<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Vivyzer's Weblog</title>
	<atom:link href="http://vivyzer.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://vivyzer.wordpress.com</link>
	<description>Just another WordPress.com weblog</description>
	<lastBuildDate>Fri, 06 Jan 2012 10:12:21 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='vivyzer.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Vivyzer's Weblog</title>
		<link>http://vivyzer.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://vivyzer.wordpress.com/osd.xml" title="Vivyzer&#039;s Weblog" />
	<atom:link rel='hub' href='http://vivyzer.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Initialization parameters in GWT application</title>
		<link>http://vivyzer.wordpress.com/2011/09/24/initialization-parameter-in-gwt-application/</link>
		<comments>http://vivyzer.wordpress.com/2011/09/24/initialization-parameter-in-gwt-application/#comments</comments>
		<pubDate>Sat, 24 Sep 2011 13:21:39 +0000</pubDate>
		<dc:creator>vivyzer</dc:creator>
				<category><![CDATA[GWT]]></category>

		<guid isPermaLink="false">http://vivyzer.wordpress.com/?p=102</guid>
		<description><![CDATA[I started working on new GWT based application recently. It was required to pass some initialization parameters to the GWT application. I am using struts 2 along with GWT front end. There are multiple ways to read parameters in a GWT application. One way could be to make a RPC call to the server and [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=vivyzer.wordpress.com&amp;blog=4906305&amp;post=102&amp;subd=vivyzer&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I started working on new GWT based application recently. It was required to pass some initialization parameters to the GWT application. I am using struts 2 along with GWT front end.<br />
There are multiple ways to read parameters in a GWT application. One way could be to make a RPC call to the server and get all the required parameters. This technique would require a server call, and should be used if data is sensitive.<br />
However, if the parameter does not contain any sensitive information and it is only a simple initialization parameter, it can be accessed in the following way.<br />
On the host page set it the variable in Javascript key value pair and access it using GWT dictionary.<br />
Assuming the variable is set in request using setAttribute method of HttpServletRequest like following:</p>
<p><code>request.setAttribute("myVar", "value1"); </code></p>
<p>Now in the host page use scriptlet to populate the Javascript Key value pair:</p>
<p><code>&lt;%<br />
String myVar = "";<br />
myVar= (String)request.getAttribute("myVar");</code></p>
<p>%&gt;</p>
<p><em>&lt;script language=&#8221;javascript&#8221;&gt;</em></p>
<p><em>var initParamList = { myVar: &#8220;&lt;%myVar%&gt;&#8221; };</em></p>
<p><em>&lt;/script&gt;</em></p>
<p>Now this variable can be accessed in GWT application using dictionary.</p>
<p><code>Dictionary dict = Dictionary.getDictionary("initParamList");<br />
String myVar = dict.get("myVar"); </code></p>
<p>To use dictionary, following line needs to be added in gwt.xml file.</p>
<p><em>  &lt;inherits name=&#8221;com.google.gwt.i18n.I18N&#8221;/&gt;</em></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/vivyzer.wordpress.com/102/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/vivyzer.wordpress.com/102/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/vivyzer.wordpress.com/102/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/vivyzer.wordpress.com/102/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/vivyzer.wordpress.com/102/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/vivyzer.wordpress.com/102/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/vivyzer.wordpress.com/102/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/vivyzer.wordpress.com/102/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/vivyzer.wordpress.com/102/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/vivyzer.wordpress.com/102/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/vivyzer.wordpress.com/102/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/vivyzer.wordpress.com/102/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/vivyzer.wordpress.com/102/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/vivyzer.wordpress.com/102/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=vivyzer.wordpress.com&amp;blog=4906305&amp;post=102&amp;subd=vivyzer&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://vivyzer.wordpress.com/2011/09/24/initialization-parameter-in-gwt-application/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/28ab71a30a2f0f4aba46276fe916b5cc?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">vivyzer</media:title>
		</media:content>
	</item>
		<item>
		<title>Generate c# classes using xsd.exe for schema which imports other schemas</title>
		<link>http://vivyzer.wordpress.com/2010/09/08/generate-c-classes-using-xsd-exe-for-schema-which-imports-other-schemas/</link>
		<comments>http://vivyzer.wordpress.com/2010/09/08/generate-c-classes-using-xsd-exe-for-schema-which-imports-other-schemas/#comments</comments>
		<pubDate>Wed, 08 Sep 2010 05:03:36 +0000</pubDate>
		<dc:creator>vivyzer</dc:creator>
				<category><![CDATA[.Net]]></category>

		<guid isPermaLink="false">http://vivyzer.wordpress.com/?p=86</guid>
		<description><![CDATA[When using xsd.exe to generate c# classes for schema which imports other schema using following command line. "C:\Program Files\Microsoft SDKs\Windows\v6.0A\bin\xsd.exe" /c /edb /l:cs /n:"com.test" main.xsd /o:classes It gives error which is similar to following : Warning: Schema could not be validated. Class generation may fail or may produce incorrect results. Error: Error generating classes for [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=vivyzer.wordpress.com&amp;blog=4906305&amp;post=86&amp;subd=vivyzer&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>When using <a href="http://msdn.microsoft.com/en-us/library/x6c1kb0s%28VS.71%29.aspx">xsd.exe</a> to generate c# classes for schema which imports other schema using following command line.</p>
<p><code>"C:\Program Files\Microsoft SDKs\Windows\v6.0A\bin\xsd.exe" /c /edb /l:cs /n:"com.test" main.xsd /o:classes</code></p>
<p>It gives error which is similar to following :</p>
<p>Warning: Schema could not be validated. Class generation may fail or may produce incorrect results.</p>
<p><em>Error: Error generating classes for schema &#8216;Main&#8217;.<br />
- The datatype &#8216;<strong>some datatype</strong>&#8216; is missing.</em></p>
<p>&#8216;<strong>some datatype</strong>&#8216; is defined in one of imported schemas.</p>
<p>It happens due to the fact that schema location is optional and xsd.exe does not consider that.</p>
<p>To overcome this issue, all the xsd&#8217;s which are imported and used in the schema must be included in the command line while running xsd.exe. Something similar to following should work.</p>
<p><code>"C:\Program Files\Microsoft SDKs\Windows\v6.0A\bin\xsd.exe" /c /edb /l:cs /n:"com.test" main.xsd importedxsd1.xsd importedxsd2.xsd /o:classes</code></p>
<p>This will generate the classes from main.xsd.<br />
main.xsd imports importedxsd1.xsd and importedxsd2.xsd.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/vivyzer.wordpress.com/86/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/vivyzer.wordpress.com/86/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/vivyzer.wordpress.com/86/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/vivyzer.wordpress.com/86/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/vivyzer.wordpress.com/86/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/vivyzer.wordpress.com/86/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/vivyzer.wordpress.com/86/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/vivyzer.wordpress.com/86/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/vivyzer.wordpress.com/86/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/vivyzer.wordpress.com/86/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/vivyzer.wordpress.com/86/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/vivyzer.wordpress.com/86/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/vivyzer.wordpress.com/86/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/vivyzer.wordpress.com/86/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=vivyzer.wordpress.com&amp;blog=4906305&amp;post=86&amp;subd=vivyzer&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://vivyzer.wordpress.com/2010/09/08/generate-c-classes-using-xsd-exe-for-schema-which-imports-other-schemas/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/28ab71a30a2f0f4aba46276fe916b5cc?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">vivyzer</media:title>
		</media:content>
	</item>
		<item>
		<title>Use java.util.concurrent ThreadPoolExecutor and CompletionService to know the status of thread execution.</title>
		<link>http://vivyzer.wordpress.com/2009/01/08/use-javautilconcurrent-threadpoolexecutor-and-completionservice-to-know-the-status-of-thread-execution/</link>
		<comments>http://vivyzer.wordpress.com/2009/01/08/use-javautilconcurrent-threadpoolexecutor-and-completionservice-to-know-the-status-of-thread-execution/#comments</comments>
		<pubDate>Thu, 08 Jan 2009 11:58:10 +0000</pubDate>
		<dc:creator>vivyzer</dc:creator>
				<category><![CDATA[java]]></category>

		<guid isPermaLink="false">http://vivyzer.wordpress.com/?p=72</guid>
		<description><![CDATA[While going through java.util.concurrent.Future api, I thought about creating a small code which uses multiple threads for execution. My requirement was to submit multiple processes to executor and wanted to know when all the threads execution is finished. Many times it is required that a thread manager has to know when all threads have finished [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=vivyzer.wordpress.com&amp;blog=4906305&amp;post=72&amp;subd=vivyzer&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>While going through <a href="http://java.sun.com/j2se/1.5.0/docs/api/java/util/concurrent/Future.html">java.util.concurrent.Future</a> api, I thought about creating a small code which uses multiple threads for execution. My requirement was to submit multiple processes to executor and wanted to know when all the threads execution is finished. Many times it is required that a thread manager has to know when all threads have finished the execution.<br />
The java.util.concurrent.Future can be used to do this. There are multiple ways to use Future. I have used <a href="http://java.sun.com/j2se/1.5.0/docs/api/java/util/concurrent/Callable.html">Callable</a> interface and <a href="http://java.sun.com/j2se/1.5.0/docs/api/java/util/concurrent/CompletionService.html">CompletionService</a> interface to achieve this. Following code creates a fixed size thread pool (3) and gives four tasks to it. Three tasks get started immediately, while the fourth gets executed once it finds a free thread. After submitting the tasks to executor the program waits for the completion of all the threads.</p>
<p><code><br />
import java.util.concurrent.Callable;<br />
import java.util.concurrent.CompletionService;<br />
import java.util.concurrent.ExecutorCompletionService;<br />
import java.util.concurrent.ExecutorService;<br />
import java.util.concurrent.Executors;</p>
<p>public class ExecutorTest {<br />
	private ExecutorService pool = Executors.newFixedThreadPool(3);	</p>
<p>	public void doExecution(){<br />
		CompletionService cs = new ExecutorCompletionService(this.pool);<br />
		final MyProcess m1 = new MyProcess("th1");<br />
		final MyProcess m2 = new MyProcess("th2");<br />
		final MyProcess m3 = new MyProcess("th3");<br />
		final MyProcess m4 = new MyProcess("th4");</p>
<p>		try {<br />
			cs.submit(new Callable(){<br />
				public Integer call(){<br />
					return m1.run();<br />
				}<br />
			});<br />
			cs.submit(new Callable(){<br />
				public Integer call(){<br />
					return m2.run();<br />
				}<br />
			});</p>
<p>			cs.submit(new Callable(){<br />
				public Integer call(){<br />
					return m3.run();<br />
				}<br />
			});</p>
<p>			cs.submit(new Callable(){<br />
				public Integer call(){<br />
					return m4.run();<br />
				}<br />
			});</p>
<p>			for(int i=0;i&lt;4;i++){<br />
				try {<br />
					System.out.println(cs.take().get());<br />
				} catch (Exception e) {<br />
					e.printStackTrace();<br />
				}<br />
			}<br />
			System.out.println("finished");<br />
		} finally  {<br />
			pool.shutdown();<br />
		}</p>
<p>	}</p>
<p>	public static void main(String args[]) {<br />
		ExecutorTest e = new ExecutorTest();<br />
		e.doExecution();<br />
	}<br />
}</p>
<p> class MyProcess {<br />
	String processName;<br />
	MyProcess(String name){<br />
		processName = name;<br />
	}<br />
	public int run(){<br />
			try {<br />
				System.out.println("starting execution -- "+processName);<br />
				for(int j=0;j&lt;4;j++){<br />
					Thread.sleep(1000);<br />
				}<br />
				System.out.println("completing  -- "+processName);</p>
<p>			} catch (InterruptedException e) {<br />
				e.printStackTrace();<br />
			}<br />
			return 1;<br />
	}<br />
}<br />
</code></p>
<p>cs.take() waits till the task returns. Callable interface is similar to Runnable. The java docs for concurrent api describes it as :<br />
The Callable interface is similar to <a href="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Runnable.html">Runnable</a>, in that both are designed for classes whose instances are potentially executed by another thread. A Runnable, however, does not return a result and cannot throw a checked exception.</p>
<p>executor.submit can also be called with a Runnable instance task which will return a Future representing that task.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/vivyzer.wordpress.com/72/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/vivyzer.wordpress.com/72/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/vivyzer.wordpress.com/72/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/vivyzer.wordpress.com/72/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/vivyzer.wordpress.com/72/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/vivyzer.wordpress.com/72/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/vivyzer.wordpress.com/72/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/vivyzer.wordpress.com/72/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/vivyzer.wordpress.com/72/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/vivyzer.wordpress.com/72/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/vivyzer.wordpress.com/72/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/vivyzer.wordpress.com/72/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/vivyzer.wordpress.com/72/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/vivyzer.wordpress.com/72/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=vivyzer.wordpress.com&amp;blog=4906305&amp;post=72&amp;subd=vivyzer&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://vivyzer.wordpress.com/2009/01/08/use-javautilconcurrent-threadpoolexecutor-and-completionservice-to-know-the-status-of-thread-execution/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/28ab71a30a2f0f4aba46276fe916b5cc?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">vivyzer</media:title>
		</media:content>
	</item>
		<item>
		<title>Sample OSGI application using maven, spring dynamic modules and eclipse equinox</title>
		<link>http://vivyzer.wordpress.com/2008/11/04/sample-osgi-application-using-maven-spring-dynamic-modules-and-eclipse-equinox/</link>
		<comments>http://vivyzer.wordpress.com/2008/11/04/sample-osgi-application-using-maven-spring-dynamic-modules-and-eclipse-equinox/#comments</comments>
		<pubDate>Tue, 04 Nov 2008 03:26:24 +0000</pubDate>
		<dc:creator>vivyzer</dc:creator>
				<category><![CDATA[Equinox]]></category>
		<category><![CDATA[maven]]></category>
		<category><![CDATA[OSGI]]></category>
		<category><![CDATA[Spring dynamic modules]]></category>

		<guid isPermaLink="false">http://vivyzer.wordpress.com/?p=43</guid>
		<description><![CDATA[After setting up spring dynamic modules with equinox, I thought of creating an OSGI application using maven and spring. Its a very simple application in which I have created an OSGI bundle which exposes a sum method. The other bundle is client which consumes the sum service.  Its using maven jar plugin to create the [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=vivyzer.wordpress.com&amp;blog=4906305&amp;post=43&amp;subd=vivyzer&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>After setting up spring dynamic modules with equinox, I thought of creating an OSGI application using maven and spring. Its a very simple application in which I have created an OSGI bundle which exposes a sum method. The other bundle is client which consumes the sum service.  Its using maven jar plugin to create the OSGI bundles.</p>
<p>The directory structure is below, which is a very simple maven project structure.<br />
<a href="http://vivyzer.files.wordpress.com/2008/11/directorystructure1.jpg"><img class="alignnone size-medium wp-image-49" title="directorystructure1" src="http://vivyzer.files.wordpress.com/2008/11/directorystructure1.jpg?w=217&#038;h=300" alt="" width="217" height="300" /></a></p>
<p>Lets start with service bundle.  I call it SumServiceBundle. I have defined an interface which has a single method sum.</p>
<p><code><br />
package com.test;<br />
public interface SumInterface {<br />
public int sum(int i,int j);<br />
}<br />
</code></p>
<p>The implementation of this interface in <strong>Sum.java</strong>.<br />
<code><br />
package com.test.impl;<br />
import com.test.SumInterface;<br />
public class Sum implements SumInterface<br />
{<br />
public int sum(int i,int j){<br />
return i+j;<br />
}<br />
}<br />
</code></p>
<p>Now I have to define the service description in spring files present in resources\META-INF\spring.<br />
I have created two files simplesum.xml and simplesum-osgi.xml.</p>
<p>Contents of simplesum-osgi.xml are :<br />
Contents of simplesum.xml are :</p>
<p>These two xml files describes the spring configuration of the bundle once it is deployed. simplesum-osgi.xml exports the simplesum as OSGI service.<br />
One last step for creating the service is to create or generate the manifest file which provide the information about the OSGI bundle. I have kept manifest file at resources\META-INF\MANIFEST.MF.</p>
<p>MANIFEST.MF<br />
<code><br />
Bundle-Version: 1.0<br />
Bundle-SymbolicName: com.test<br />
Bundle-Name: Simple-Sum-Service<br />
Bundle-Vendor: Spring Framework<br />
Export-Package: com.test<br />
Bundle-ManifestVersion: 2<br />
Import-Package: org.osgi.framework;version="1.3",org.springframework.beans.propertyeditors;version="2.5",org.springframework.osgi.service.importer,org.springframework.osgi.service.importer.support,org.xml.sax<br />
</code></p>
<p>Finally the maven pom.xml for this project.</p>
<p>&lt;?xml version=&#8221;1.0&#8243;?&gt;&lt;project&gt;</p>
<p>&lt;modelVersion&gt;4.0.0&lt;/modelVersion&gt;<br />
&lt;groupId&gt;com.test.osgi&lt;/groupId&gt;<br />
&lt;artifactId&gt;sum-service-bundle&lt;/artifactId&gt;<br />
&lt;packaging&gt;jar&lt;/packaging&gt;<br />
&lt;name&gt;sum-service-bundle&lt;/name&gt;<br />
&lt;version&gt;1.1.2&lt;/version&gt;</p>
<p>&lt;build&gt;<br />
&lt;plugins&gt;<br />
&lt;plugin&gt;<br />
&lt;groupId&gt;org.apache.maven.plugins&lt;/groupId&gt;<br />
&lt;artifactId&gt;maven-jar-plugin&lt;/artifactId&gt;<br />
&lt;configuration&gt;<br />
&lt;archive&gt;<br />
&lt;manifestFile&gt;src/main/resources/META-INF/MANIFEST.MF&lt;/manifestFile&gt;<br />
&lt;/archive&gt;<br />
&lt;/configuration&gt;<br />
&lt;/plugin&gt;<br />
&lt;/plugins&gt;<br />
&lt;/build&gt;<br />
&lt;/project&gt;</p>
<p>running mvn clean install will create sum-service-bundle-1.1.2.jar in target folder which can be deployed on equinox.</p>
<p>Now the client. I call it SumServiceClient. When client starts, it calls the sum service. Client class implements BundleActivator.<br />
SumClientActivator.java<br />
<code><br />
package com.client;<br />
import org.osgi.framework.BundleActivator;<br />
import org.osgi.framework.BundleContext;<br />
import org.osgi.util.tracker.ServiceTracker;<br />
import com.test.SumInterface;<br />
</code><br />
<code><br />
public class SumClientActivator implements BundleActivator {<br />
private ServiceTracker finderTracker;<br />
</code><br />
<code><br />
public void start(BundleContext context) throws Exception {<br />
finderTracker = new ServiceTracker(context, SumInterface.class.getName(), null);<br />
finderTracker.open();<br />
SumInterface sumObj =(SumInterface)finderTracker.getService();<br />
System.out.println("calling service");<br />
System.out.println("Result :" +sumObj.sum(10,20));<br />
}<br />
</code><br />
<code><br />
public void stop(BundleContext context) throws Exception {<br />
System.out.println(" Stopping ");<br />
}<br />
}<br />
</code></p>
<p>The Manifest is present in \resources\META-INF\MANIFEST.MF.<br />
MANIFEST.MF<br />
<code><br />
Manifest-Version: 1.0<br />
Bundle-ManifestVersion: 2<br />
Bundle-Name: Sum Client<br />
Bundle-SymbolicName: SumClient<br />
Bundle-Version: 1.0.0<br />
Bundle-Activator: com.client.SumClientActivator<br />
Import-Package: org.osgi.framework,com.test,org.osgi.util.tracker<br />
version: "[1.0.0,2.0.0)"</code></p>
<p>Finally the pom.xml.</p>
<p>&lt;?xml version=&#8221;1.0&#8243;?&gt;&lt;project&gt;<br />
&lt;modelVersion&gt;4.0.0&lt;/modelVersion&gt;<br />
&lt;groupId&gt;com.test.osgi&lt;/groupId&gt;<br />
&lt;artifactId&gt;sum-client-bundle&lt;/artifactId&gt;<br />
&lt;packaging&gt;jar&lt;/packaging&gt;<br />
&lt;name&gt;sum-client-bundle&lt;/name&gt;<br />
&lt;version&gt;1.1.2&lt;/version&gt;<br />
&lt;dependencies&gt;<br />
&lt;dependency&gt;<br />
&lt;groupId&gt;com.test.osgi&lt;/groupId&gt;<br />
&lt;artifactId&gt;sum-service-bundle&lt;/artifactId&gt;<br />
&lt;version&gt;1.1.2&lt;/version&gt;<br />
&lt;scope&gt;provided&lt;/scope&gt;<br />
&lt;/dependency&gt;<br />
&lt;dependency&gt;<br />
&lt;groupId&gt;org.eclipse&lt;/groupId&gt;<br />
&lt;artifactId&gt;osgi&lt;/artifactId&gt;<br />
&lt;version&gt;3.3.0-v20070530&lt;/version&gt;<br />
&lt;/dependency&gt;<br />
&lt;/dependencies&gt;</p>
<p>&lt;build&gt;<br />
&lt;plugins&gt;<br />
&lt;plugin&gt;<br />
&lt;groupId&gt;org.apache.maven.plugins&lt;/groupId&gt;<br />
&lt;artifactId&gt;maven-jar-plugin&lt;/artifactId&gt;<br />
&lt;configuration&gt;<br />
&lt;archive&gt;<br />
&lt;manifestFile&gt;src/main/resources/META-INF/MANIFEST.MF&lt;/manifestFile&gt;<br />
&lt;/archive&gt;<br />
&lt;/configuration&gt;<br />
&lt;/plugin&gt;<br />
&lt;/plugins&gt;<br />
&lt;/build&gt;<br />
&lt;/project&gt;</p>
<p>Final step is to run &#8220;mvn clean install&#8221; in both projects and place the bundles in equinox.  When client bundle starts it calls the service and prints result on the console.</p>
<p><strong>An excellent introduction to OSGI by Neil bartlett is <a href="http://neilbartlett.name/blog/osgi-articles/">here</a></strong></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/vivyzer.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/vivyzer.wordpress.com/43/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/vivyzer.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/vivyzer.wordpress.com/43/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/vivyzer.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/vivyzer.wordpress.com/43/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/vivyzer.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/vivyzer.wordpress.com/43/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/vivyzer.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/vivyzer.wordpress.com/43/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/vivyzer.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/vivyzer.wordpress.com/43/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/vivyzer.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/vivyzer.wordpress.com/43/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=vivyzer.wordpress.com&amp;blog=4906305&amp;post=43&amp;subd=vivyzer&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://vivyzer.wordpress.com/2008/11/04/sample-osgi-application-using-maven-spring-dynamic-modules-and-eclipse-equinox/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/28ab71a30a2f0f4aba46276fe916b5cc?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">vivyzer</media:title>
		</media:content>

		<media:content url="http://vivyzer.files.wordpress.com/2008/11/directorystructure1.jpg?w=217" medium="image">
			<media:title type="html">directorystructure1</media:title>
		</media:content>
	</item>
		<item>
		<title>Setting up Spring Dynamic Modules with Eclipse Equinox</title>
		<link>http://vivyzer.wordpress.com/2008/10/24/setting-up-spring-dynamic-modules-with-eclipse-equinox/</link>
		<comments>http://vivyzer.wordpress.com/2008/10/24/setting-up-spring-dynamic-modules-with-eclipse-equinox/#comments</comments>
		<pubDate>Fri, 24 Oct 2008 09:54:55 +0000</pubDate>
		<dc:creator>vivyzer</dc:creator>
				<category><![CDATA[Equinox]]></category>
		<category><![CDATA[OSGI]]></category>
		<category><![CDATA[Spring dynamic modules]]></category>

		<guid isPermaLink="false">http://vivyzer.wordpress.com/?p=32</guid>
		<description><![CDATA[I was trying to develop a test module using OSGI and Spring dynamic modules. For running a spring dm module on equinox, a small configuration is required which makes spring available on equinox. You can find the jar required for running equinox in eclipse. It is present in plugins folder. The jar can be directly [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=vivyzer.wordpress.com&amp;blog=4906305&amp;post=32&amp;subd=vivyzer&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I was trying to develop a test module using <a href="http://www.osgi.org/">OSGI</a> and Spring dynamic modules. For running a spring dm module on equinox, a small configuration is required which makes spring available on equinox.<br />
You can find the jar required for running equinox in eclipse. It is present in plugins folder. The jar can be directly used to run equinox. For me its org.eclipse.osgi_3.3.2.R33x_v20080105.jar. Just copy this jar in a directory and you can run equinox using following command :<br />
<code> java -jar  org.eclipse.osgi_3.3.2.R33x_v20080105.jar -console </code></p>
<p>This will show the OSGI prompt. For getting help type ? or help.</p>
<p>Spring dynamic modules is available on this <a href="http://www.springframework.org/osgi">link</a>.<br />
Now for using spring dynamic modules, the equinox should be made aware of spring jars.This can be done using a simple configuration file. <strong>Create a file config.ini</strong>. I have placed this file in a directory named config on my system. In this file, all the spring related jar should be specified. The contents of my config.ini are following:<br />
<code><br />
osgi.clean=true<br />
eclipse.ignoreApp=true<br />
osgi.bundles=springdm/aopalliance.osgi-1.0-SNAPSHOT.jar@start, \<br />
	springdm/api-0.9.5.jar@start, \<br />
	springdm/jcl104-over-slf4j-1.4.3.jar@start, \<br />
	springdm/log4j.osgi-1.2.15-SNAPSHOT.jar@start, \<br />
	springdm/service-0.9.5.jar@start, \<br />
	springdm/services-3.1.200-v20070605.jar@start, \<br />
	springdm/slf4j-api-1.4.3.jar@start, \<br />
	springdm/slf4j-log4j12-1.4.3.jar@start, \<br />
	springdm/spring-aop-2.5.5.jar@start, \<br />
	springdm/spring-beans-2.5.5.jar@start, \<br />
	springdm/spring-context-2.5.5.jar@start, \<br />
	springdm/spring-context-support-2.5.5.jar@start, \<br />
	springdm/spring-core-2.5.5.jar@start, \<br />
	springdm/spring-osgi-annotation-1.1.2.jar@start, \<br />
	springdm/spring-osgi-core-1.1.2.jar@start, \<br />
	springdm/spring-osgi-extender-1.1.2.jar@start, \<br />
	springdm/spring-osgi-io-1.1.2.jar@start, \<br />
	springdm/spring-tx-2.5.4.jar@start, \<br />
	springdm/jta-1.0.1.jar@start<br />
</code></p>
<p>I have created directory &#8220;springdm&#8221; and placed all the spring jars in that directory. Now during the startup, equinox will load all the jars. </p>
<p>To run equinox with configuration option, use following command :<br />
<code> java -jar  org.eclipse.osgi_3.3.2.R33x_v20080105.jar -console -configuration config </code></p>
<p><strong>config </strong>is the folder where I have kept config.ini. Now spring dynamic modules can be deployed on equinox.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/vivyzer.wordpress.com/32/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/vivyzer.wordpress.com/32/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/vivyzer.wordpress.com/32/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/vivyzer.wordpress.com/32/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/vivyzer.wordpress.com/32/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/vivyzer.wordpress.com/32/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/vivyzer.wordpress.com/32/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/vivyzer.wordpress.com/32/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/vivyzer.wordpress.com/32/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/vivyzer.wordpress.com/32/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/vivyzer.wordpress.com/32/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/vivyzer.wordpress.com/32/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/vivyzer.wordpress.com/32/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/vivyzer.wordpress.com/32/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=vivyzer.wordpress.com&amp;blog=4906305&amp;post=32&amp;subd=vivyzer&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://vivyzer.wordpress.com/2008/10/24/setting-up-spring-dynamic-modules-with-eclipse-equinox/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/28ab71a30a2f0f4aba46276fe916b5cc?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">vivyzer</media:title>
		</media:content>
	</item>
		<item>
		<title>Run multiple mysql servers on same machine (windows xp).</title>
		<link>http://vivyzer.wordpress.com/2008/10/03/running-multiple-mysql-servers-on-windows-xp/</link>
		<comments>http://vivyzer.wordpress.com/2008/10/03/running-multiple-mysql-servers-on-windows-xp/#comments</comments>
		<pubDate>Fri, 03 Oct 2008 06:36:20 +0000</pubDate>
		<dc:creator>vivyzer</dc:creator>
				<category><![CDATA[mysql]]></category>

		<guid isPermaLink="false">http://vivyzer.wordpress.com/?p=25</guid>
		<description><![CDATA[While experimenting with hibernate shards, I needed to step up multiple mysql servers on my windows xp machine. While Most of the information is already available on mysql.com. Still I am just writing all the steps which I followed to make multiple mysql servers run on my machine. I have used the no installer version [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=vivyzer.wordpress.com&amp;blog=4906305&amp;post=25&amp;subd=vivyzer&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>While experimenting with hibernate shards, I needed to step up multiple mysql servers on my windows xp machine.</p>
<p>While Most of the information is already available on <a href="http://dev.mysql.com/">mysql.com</a>. Still I am just writing all the steps which I followed to make multiple mysql servers run on my machine. I have used the no installer version (mysql-noinstall-5.0.27-win32.zip).</p>
<p>1. Create two directories for server installation. For me it was c:\mysql1 and c:\mysql2</p>
<p>2. Unzip the package in both the directories.</p>
<p>3. Copy my-small.ini present in root directory with the name my.ini.</p>
<p>4. Change the following mysqld configuration in my.ini. For first instance:<br />
<code><br />
[mysqld]<br />
port		= 3307<br />
basedir="C:/mysql1/"<br />
datadir="C:/mysql1/data/"<br />
</code><br />
5. Repeat step 4 for second instance. Use the following values:<br />
<code><br />
[mysqld]<br />
port		= 3308<br />
basedir="C:/mysql2/"<br />
datadir="C:/mysql2/data/"<br />
</code></p>
<p>Any other change is not required for simple configuration.</p>
<p>6. From the bin directory run the following command:<br />
<code><br />
C:\mysql1\bin&gt;mysqld ----console<br />
C:\mysql2\bin&gt;mysqld ----console<br />
</code><br />
The servers will start in console mode. A window will open asking you to allow mysql to connect to the internet. Select ok.</p>
<p>7. Once the servers are started, use the following command to connect from client:<br />
<code><br />
C:\mysql1\bin&gt;mysql ----port=3307 -uroot<br />
C:\mysql1\bin&gt;mysql ----port=3308 -uroot<br />
</code></p>
<p>That&#8217;s it. <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/vivyzer.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/vivyzer.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/vivyzer.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/vivyzer.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/vivyzer.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/vivyzer.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/vivyzer.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/vivyzer.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/vivyzer.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/vivyzer.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/vivyzer.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/vivyzer.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/vivyzer.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/vivyzer.wordpress.com/25/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=vivyzer.wordpress.com&amp;blog=4906305&amp;post=25&amp;subd=vivyzer&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://vivyzer.wordpress.com/2008/10/03/running-multiple-mysql-servers-on-windows-xp/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/28ab71a30a2f0f4aba46276fe916b5cc?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">vivyzer</media:title>
		</media:content>
	</item>
		<item>
		<title>Integrating spring mvc, tiles2 and maven2</title>
		<link>http://vivyzer.wordpress.com/2008/09/19/integrating-spring-mvc-tiles2-and-maven2/</link>
		<comments>http://vivyzer.wordpress.com/2008/09/19/integrating-spring-mvc-tiles2-and-maven2/#comments</comments>
		<pubDate>Fri, 19 Sep 2008 09:44:49 +0000</pubDate>
		<dc:creator>vivyzer</dc:creator>
				<category><![CDATA[Spring]]></category>

		<guid isPermaLink="false">http://vivyzer.wordpress.com/?p=3</guid>
		<description><![CDATA[After struggling for quite some time to integrate spring mvc, maven 2 and tiles for a web project. Finally I got it working. Follow the steps below to integrate tiles2 with spring mvc. First the maven2 dependencies. Complete dependency set for my project. &#60;dependency&#62; &#60;groupid&#62;org.springframework&#60;/groupid&#62; &#60;artifactid&#62;spring&#60;/artifactid&#62; &#60;version&#62;2.5.5&#60;/version&#62; &#60;/dependency&#62; &#60;dependency&#62; &#60;groupid&#62;org.springframework&#60;/groupid&#62; &#60;artifactid&#62;spring-webmvc&#60;/artifactid&#62; &#60;version&#62;2.5.5&#60;/version&#62; &#60;/dependency&#62; &#60;dependency&#62; &#60;groupid&#62;org.hibernate&#60;/groupid&#62; [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=vivyzer.wordpress.com&amp;blog=4906305&amp;post=3&amp;subd=vivyzer&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p class="MsoNormal">After struggling for quite some time to integrate spring mvc, maven 2 and tiles for a web project. Finally I got it working.</p>
<p class="MsoNormal"><strong>Follow the steps below to integrate tiles2 with spring mvc.</strong></p>
<p class="MsoNormal"><strong>First the maven2 dependencies. Complete dependency set for my project.</strong></p>
<p>&lt;dependency&gt;<br />
&lt;groupid&gt;org.springframework&lt;/groupid&gt;<br />
&lt;artifactid&gt;spring&lt;/artifactid&gt;<br />
&lt;version&gt;2.5.5&lt;/version&gt;<br />
&lt;/dependency&gt;</p>
<p>&lt;dependency&gt;<br />
&lt;groupid&gt;org.springframework&lt;/groupid&gt;<br />
&lt;artifactid&gt;spring-webmvc&lt;/artifactid&gt;<br />
&lt;version&gt;2.5.5&lt;/version&gt;<br />
&lt;/dependency&gt;</p>
<p>&lt;dependency&gt;<br />
&lt;groupid&gt;org.hibernate&lt;/groupid&gt;<br />
&lt;artifactid&gt;hibernate&lt;/artifactid&gt;<br />
&lt;version&gt;3.2.5.ga&lt;/version&gt;<br />
&lt;/dependency&gt;</p>
<p>&lt;dependency&gt;<br />
&lt;groupid&gt;org.hibernate&lt;/groupid&gt;<br />
&lt;artifactid&gt;hibernate-entitymanager&lt;/artifactid&gt;<br />
&lt;version&gt;3.3.1.ga&lt;/version&gt;<br />
&lt;/dependency&gt;</p>
<p>&lt;dependency&gt;<br />
&lt;groupid&gt;org.hibernate&lt;/groupid&gt;<br />
&lt;artifactid&gt;hibernate-commons-annotations&lt;/artifactid&gt;<br />
&lt;version&gt;3.3.0.ga&lt;/version&gt;<br />
&lt;/dependency&gt;</p>
<p>&lt;dependency&gt;<br />
&lt;groupid&gt;hsqldb&lt;/groupid&gt;<br />
&lt;artifactid&gt;hsqldb&lt;/artifactid&gt;<br />
&lt;version&gt;1.8.0.7&lt;/version&gt;<br />
&lt;/dependency&gt;</p>
<p>&lt;dependency&gt;<br />
&lt;groupid&gt;concurrent&lt;/groupid&gt;<br />
&lt;artifactid&gt;concurrent&lt;/artifactid&gt;<br />
&lt;version&gt;1.3.4&lt;/version&gt;<br />
&lt;/dependency&gt;</p>
<p>&lt;dependency&gt;<br />
&lt;groupid&gt;javax.servlet&lt;/groupid&gt;<br />
&lt;artifactid&gt;jstl&lt;/artifactid&gt;<br />
&lt;scope&gt;runtime&lt;/scope&gt;<br />
&lt;version&gt;1.1.2&lt;/version&gt;<br />
&lt;/dependency&gt;</p>
<p>&lt;dependency&gt;<br />
&lt;groupid&gt;javax.servlet&lt;/groupid&gt;<br />
&lt;artifactid&gt;servlet-api&lt;/artifactid&gt;<br />
&lt;version&gt;2.5&lt;/version&gt;<br />
&lt;/dependency&gt;</p>
<p>&lt;dependency&gt;<br />
&lt;groupid&gt;taglibs&lt;/groupid&gt;<br />
&lt;artifactid&gt;standard&lt;/artifactid&gt;<br />
&lt;scope&gt;runtime&lt;/scope&gt;<br />
&lt;version&gt;1.1.2&lt;/version&gt;<br />
&lt;/dependency&gt;</p>
<p>&lt;dependency&gt;<br />
&lt;groupid&gt;commons-collections&lt;/groupid&gt;<br />
&lt;artifactid&gt;commons-collections&lt;/artifactid&gt;<br />
&lt;scope&gt;runtime&lt;/scope&gt;<br />
&lt;version&gt;3.2&lt;/version&gt;<br />
&lt;/dependency&gt;</p>
<p>&lt;dependency&gt;<br />
&lt;groupid&gt;org.apache.tiles&lt;/groupid&gt;<br />
&lt;artifactid&gt;tiles-core&lt;/artifactid&gt;<br />
&lt;version&gt;2.0.6&lt;/version&gt;<br />
&lt;/dependency&gt;</p>
<p>&lt;dependency&gt;<br />
&lt;groupid&gt;org.apache.tiles&lt;/groupid&gt;<br />
&lt;artifactid&gt;tiles-jsp&lt;/artifactid&gt;<br />
&lt;version&gt;2.0.6&lt;/version&gt;<br />
&lt;/dependency&gt;</p>
<p>&lt;dependency&gt;<br />
&lt;groupid&gt;org.apache.struts&lt;/groupid&gt;<br />
&lt;artifactid&gt;struts-tiles&lt;/artifactid&gt;<br />
&lt;version&gt;1.3.9&lt;/version&gt;<br />
&lt;scope&gt;runtime&lt;/scope&gt;<br />
&lt;/dependency&gt;</p>
<p class="MsoNormal">
<p class="MsoNormal"><strong>Project structure is like any other maven based web project.</strong></p>
<p class="MsoNormal"><strong>Web.xml</strong> -</p>
<p class="MsoNormal">&lt;servlet&gt;</p>
<p class="MsoNormal"><span> </span>&lt;servlet-name&gt;myapp&lt;/servlet-name&gt;</p>
<p class="MsoNormal"><span> </span>&lt;servlet-class&gt;org.springframework.web.servlet.DispatcherServlet&lt;/servlet-class&gt;</p>
<p class="MsoNormal"><span> </span>&lt;load-on-startup&gt;1&lt;/load-on-startup&gt;</p>
<p class="MsoNormal"><span> </span>&lt;/servlet&gt;</p>
<p class="MsoNormal"><span> </span>&lt;servlet-mapping&gt;</p>
<p class="MsoNormal"><span> </span>&lt;servlet-name&gt;myapp&lt;/servlet-name&gt;</p>
<p class="MsoNormal"><span> </span>&lt;url-pattern&gt;*.htm&lt;/url-pattern&gt;</p>
<p class="MsoNormal"><span> </span>&lt;/servlet-mapping&gt;</p>
<p class="MsoNormal">
<p class="MsoNormal">Now for <strong>integration of tiles2</strong>, I will have to make the application aware of tiles. This is done in myapp-servlet.xml.<span> </span>This is spring configuration file for spring mvc. The portion of file relevant for tiles is following:</p>
<p class="MsoNormal">&lt;?xml version=&#8221;1.0&#8243; encoding=&#8221;UTF-8&#8243;?&gt;</p>
<p class="MsoNormal">&lt;beans xmlns=&#8221;http://www.springframework.org/schema/beans&#8221; xsi=&#8221;http://www.w3.org/2001/XMLSchema-instance&#8221; schemalocation=&#8221;http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd&#8221;&gt;</p>
<p class="MsoNormal">
<p class="MsoNormal"><span> </span></p>
<p class="MsoNormal"><span> </span>&lt;bean id=&#8221;viewResolver&#8221; class=&#8221;org.springframework.web.servlet.view.UrlBasedViewResolver&#8221;&gt;</p>
<p class="MsoNormal">&lt;property name=&#8221;viewClass&#8221; value=&#8221;org.springframework.web.servlet.view.tiles2.TilesView&#8221;&gt;<span><br />
</span>&lt;/bean&gt;</p>
<p class="MsoNormal"><span> </span>&lt;bean id=&#8221;tilesConfigurer&#8221; class=&#8221;org.springframework.web.servlet.view.tiles2.TilesConfigurer&#8221;&gt;</p>
<p class="MsoNormal">&lt;property name=&#8221;definitions&#8221;&gt;</p>
<p class="MsoNormal">&lt;list&gt;&lt;value&gt;/WEB-INF/tiles-def.xml&lt;/value&gt;&lt;/list&gt;</p>
<p class="MsoNormal">&lt;/property&gt;</p>
<p class="MsoNormal">&lt;/bean&gt;</p>
<p class="MsoNormal">
<p class="MsoNormal">
<p class="MsoNormal">I have defined the controller mapping using SimpleUrlHandlerMapping.</p>
<p class="MsoNormal"><strong>Next step is to define tiles definition. I have added it in /WEB-INF/tiles-def.xml.</strong></p>
<p class="MsoNormal">The contents of tiles-def.xml are following :</p>
<p class="MsoNormal">
<p class="MsoNormal">&lt;?xml version=&#8221;1.0&#8243; encoding=&#8221;ISO-8859-1&#8243; ?&gt;&lt;!DOCTYPE tiles-definitions PUBLIC<span><br />
</span>&#8220;-//Apache Software Foundation//DTD Tiles Configuration 2.0//EN&#8221;<span><br />
</span>&#8220;http://tiles.apache.org/dtds/tiles-config_2_0.dtd&#8221;&gt;</p>
<p class="MsoNormal">&lt;tiles-definitions&gt;&lt;definition name=&#8221;template&#8221; template=&#8221;/WEB-INF/templates/layout.jsp&#8221;&gt;</p>
<p class="MsoNormal">&lt;put-attribute name=&#8221;title&#8221; value=&#8221;My Application&#8221;&gt;</p>
<p class="MsoNormal">&lt;put-attribute name=&#8221;header&#8221; value=&#8221;/WEB-INF/templates/header.jsp&#8221;&gt;<span> </span></p>
<p class="MsoNormal"><span> </span>&lt;put-attribute name=&#8221;footer&#8221; value=&#8221;/WEB-INF/templates/footer.jsp&#8221;&gt;</p>
<p class="MsoNormal">&lt;/definition&gt;</p>
<p class="MsoNormal">&lt;definition name=&#8221;test&#8221; extends=&#8221;template&#8221;&gt;</p>
<p class="MsoNormal"><span> </span>&lt;put-attribute name=&#8221;title&#8221; value=&#8221;test MyApp&#8221;&gt;</p>
<p class="MsoNormal"><span> </span>&lt;put-attribute name=&#8221;content&#8221; value=&#8221;/WEB-INF/jsp/test.jsp&#8221;&gt;</p>
<p class="MsoNormal">&lt;/definition&gt;</p>
<p class="MsoNormal">&lt;/tiles-definitions&gt;</p>
<p class="MsoNormal">
<p class="MsoNormal">The controller of the application returns &#8220;test&#8221; ModelAndView.</p>
<p class="MsoNormal">public ModelAndView handleRequest(HttpServletRequest request,</p>
<p class="MsoNormal"><span> </span>HttpServletResponse response) throws ServletException, IOException {<span> </span></p>
<p class="MsoNormal"><span> </span>return new ModelAndView(&#8220;test&#8221;);<span> </span></p>
<p class="MsoNormal"><span> </span></p>
<p class="MsoNormal"><span> </span>}</p>
<p class="MsoNormal">
<p class="MsoNormal">When this model is returned it will be processed using tiles definitions and renders it as defined in the files.</p>
<p class="MsoNormal"><strong>Next step is to create the layout jsp&#8217;s</strong>. I have created all the layout files in WEB-INF/templates/ folder. I contains all the jsp&#8217;s defined in tiles-def.xml like layout.jsp, header.jsp, footer.jsp ..</p>
<p class="MsoNormal">Contents of layout.jsp</p>
<p class="MsoNormal">&lt;%@ taglib uri=&#8221;http://tiles.apache.org/tags-tiles&#8221; prefix=&#8221;tiles&#8221;%&gt;</p>
<p>&lt;html&gt;</p>
<p>&lt;head&gt;&lt;/head&gt;</p>
<p class="MsoNormal">&lt;body&gt;</p>
<p class="MsoNormal">&lt;div id=&#8221;header&#8221;&gt;&lt;tiles:insertattribute name=&#8221;header&#8221;&gt;&lt;/div&gt;</p>
<p class="MsoNormal">&lt;div id=&#8221;center&#8221;&gt;&lt;tiles:insertattribute name=&#8221;content&#8221;&gt;&lt;/div&gt;</p>
<p class="MsoNormal">&lt;div id=&#8221;footer&#8221;&gt;&lt;tiles:insertattribute name=&#8221;footer&#8221;&gt;&lt;/div&gt;</p>
<p class="MsoNormal">&lt;/body&gt;</p>
<p class="MsoNormal">&lt;/html&gt;</p>
<p class="MsoNormal">
<p class="MsoNormal">I think these steps are only needed for tiles2 integration with spring mvc. If I have missed anything. Let me know.</p>
<p class="MsoNormal">
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/vivyzer.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/vivyzer.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/vivyzer.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/vivyzer.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/vivyzer.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/vivyzer.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/vivyzer.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/vivyzer.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/vivyzer.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/vivyzer.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/vivyzer.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/vivyzer.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/vivyzer.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/vivyzer.wordpress.com/3/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=vivyzer.wordpress.com&amp;blog=4906305&amp;post=3&amp;subd=vivyzer&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://vivyzer.wordpress.com/2008/09/19/integrating-spring-mvc-tiles2-and-maven2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/28ab71a30a2f0f4aba46276fe916b5cc?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">vivyzer</media:title>
		</media:content>
	</item>
	</channel>
</rss>
