<?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/"
	>

<channel>
	<title>Legolas in Minas Tirith &#187; webserice</title>
	<atom:link href="http://www.javalinux.it/wordpress/categories/webserice/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.javalinux.it/wordpress</link>
	<description>Alessio &#38; Stefano ideas</description>
	<lastBuildDate>Wed, 14 Sep 2011 14:05:11 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>JBossWS talk @JBUG Munich</title>
		<link>http://www.javalinux.it/wordpress/2011/05/11/jbossws-talk-jbug-munich/</link>
		<comments>http://www.javalinux.it/wordpress/2011/05/11/jbossws-talk-jbug-munich/#comments</comments>
		<pubDate>Wed, 11 May 2011 13:21:28 +0000</pubDate>
		<dc:creator>Alessio SOLDANO</dc:creator>
				<category><![CDATA[java]]></category>
		<category><![CDATA[jboss]]></category>
		<category><![CDATA[jbossws]]></category>
		<category><![CDATA[webserice]]></category>

		<guid isPermaLink="false">http://www.javalinux.it/wordpress/?p=500</guid>
		<description><![CDATA[I&#8217;m having a talk on JBossWS project next Monday (May, 16th) in Munich. More details, as well as the presentation abstract, available on the JBUG Munich website. If you&#8217;re interested and happen to be around&#8230;]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m having a talk on JBossWS project next Monday (May, 16th) in Munich.</p>
<p>More details, as well as the presentation abstract, available on the <a href="http://jbug-munich.org/">JBUG Munich website</a>. If you&#8217;re interested and happen to be around&#8230; <img src='http://www.javalinux.it/wordpress/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.javalinux.it/wordpress/2011/05/11/jbossws-talk-jbug-munich/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JBossWS 2010 closing balance&#8230; an year of integration</title>
		<link>http://www.javalinux.it/wordpress/2010/12/17/jbossws-2010-closing-balance-2/</link>
		<comments>http://www.javalinux.it/wordpress/2010/12/17/jbossws-2010-closing-balance-2/#comments</comments>
		<pubDate>Fri, 17 Dec 2010 12:26:28 +0000</pubDate>
		<dc:creator>Alessio SOLDANO</dc:creator>
				<category><![CDATA[jboss]]></category>
		<category><![CDATA[jbossws]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[webserice]]></category>

		<guid isPermaLink="false">http://www.javalinux.it/wordpress/?p=482</guid>
		<description><![CDATA[Before joining Red Hat / JBoss, I used to have closing balance face to face meetings at work before Christmas. Of course I met with my direct boss&#8230; so now I find quite funny to think about writing something similar to a JBossWS 2010 closing balance here, given my boss at that time now happens [...]]]></description>
			<content:encoded><![CDATA[<p>Before joining Red Hat / JBoss, I used to have closing balance face to face meetings at work before Christmas. Of course I met with my direct boss&#8230; so now I find quite funny to think about writing something similar to a JBossWS 2010 closing balance here, given my boss at that time now happens to be the guy I share this blog with and since some months he&#8217;s finally working for Red Hat / JBoss too &#8211; Stefano <img src='http://www.javalinux.it/wordpress/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>So, what&#8217;s up with <a href="http://jboss.org/jbossws">JBossWS</a> in 2010 ? The project has gone through two major sets of releases. The 3.3.x series kind of finalized the JBossWS move to having the <a href="http://cxf.apache.org/">Apache CXF</a> based stack as its preferred one, <a href="http://community.jboss.org/wiki/AS600M4ReleaseNotes">installed by default on JBoss Application server</a>. Integrating a third-party piece of software is always something non-trivial. And even if the overall quality of what we consume (and contribute to, of course) from Apache is definitely very high, that&#8217;s simply not enough when it comes to integrating: many issues were discovered, <a href="http://jbossws.blogspot.com/2010/02/extending-jbossws-cxfmetro-with-jax-rpc.html">dealt with and solved</a>&#8230; any many are probably still to come.</p>
<p>The type of development you end up doing when providing a solution like JBossWS-CXF is pretty much different from what you are on when developing stuff from scratch. I kind of expected that to be honest. It&#8217;s not that unusual to spend days on looking for the best way of re-using / integrating already existing (or partially available) functionalities, trying to figure out an elegant solution for achieving the goal on JBoss side, while <a href="http://jbossws.blogspot.com/2010/08/implementing-jaxws-22-http-spi-on.html">enriching the third-party side of the software in a way that makes sense regardless of JBoss needs</a>. Sometime I think it&#8217;s like &#8220;plumbing&#8221;. For sure you need to go on constantly swapping your hats, the JBoss employee one and the Apache contributor one, in my case. And given we operate in an open source world here <img src='http://www.javalinux.it/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> &#8230; you might even find yourself <a href="http://jbossws.blogspot.com/2010/08/comsunnethttpserver-transport-using.html">producing fully vendor agnostic solutions just for the sake of solving your own (JBoss here) problem</a>.</p>
<p>Some might dislike this kind of work, thinking satisfaction can come only from creating your own solutions from scratch, feeling they&#8217;re your own babies. Others might appreciate the integration work, enjoying the  new challenges in this. To be honest, I think this is a really subjective feeling and you can find yourself excited by the achievements you reach in both cases. You should probably try both in any case.</p>
<p>Anyway, back to bringing Apache CXF in JBoss through JBossWS&#8230; implementing the JSR 109 requirements is a good example of integration. Apache CXF provides WS functionalities and successfully verifies those are compliant with the core JCP WS specifications (JSR 224 &#8211; JAXWS, for instance). However CXF of course does not care about all the details on how that&#8217;s supposed to work with a given application server according to the rest of the JavaEE specification, which JSR 109 is a good example of. In an ideal world the missing bits need to live in the integration project (JBossWS here)&#8230; In reality you end up coordinating different needs, reviewing and rationalizing stuff on both sides, to basically make the integration happen and be a success.</p>
<p>The second set of JBossWS 2010 releases has been the 3.4.x series. While the <a href="http://jboss.org/jbossws/news">announcement is recent story</a>, that was a multiple months effort from me and the rest of the team. We went through active collaboration on CXF (Apache contributor hat on <img src='http://www.javalinux.it/wordpress/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />  ) to have it implement JAXWS 2.2 and make it <a href="http://www.dankulp.com/blog/?p=242">pass the TCK certifaction testsuite</a> for that. While on that, we implemented the proper integration for passing the corresponding ws modules of JavaEE 6 TCK on JBoss side (with *the* red hat on <img src='http://www.javalinux.it/wordpress/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> ). This all was done while directly targeting development snapshots of Apache CXF, hence with multiple moving targets (JBoss AS, Apache CXF, our own JBossWS integration layer and even the TCK which was not final yet) to track for potential regressions.</p>
<p>At the end of the year I&#8217;m quite satisfied by <a href="http://jbossws.blogspot.com/2010/12/jbossws-340-has-landed.html">what we got</a>. From a job point of view, I&#8217;m just waiting for Santa to come with a nice present&#8230; a <a href="http://community.jboss.org/wiki/AS600FinalStatusExecutiveSummary">final release of JBoss AS 6</a> (I sent him the jbossws maven artifacts to include in the box <img src='http://www.javalinux.it/wordpress/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> , he should have got them in time&#8230; despite the snow over north Italy these days).</p>
<p>OK, now it&#8217;s time to start relaxing a bit, to enjoy the Christmas spirit&#8230;  then I&#8217;ll come back with new intentions for the next year, both directly related to JBossWS and <em><strong>not</strong></em>&#8230;</p>
<p>Merry X-mas and happy new year!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.javalinux.it/wordpress/2010/12/17/jbossws-2010-closing-balance-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Simple WS endpoint deployment with JAXWS 2.2 HTTP container abstraction</title>
		<link>http://www.javalinux.it/wordpress/2010/08/26/simple-ws-endpoint-deployment-with-jaxws-2-2-http-container-abstraction/</link>
		<comments>http://www.javalinux.it/wordpress/2010/08/26/simple-ws-endpoint-deployment-with-jaxws-2-2-http-container-abstraction/#comments</comments>
		<pubDate>Thu, 26 Aug 2010 13:03:47 +0000</pubDate>
		<dc:creator>Alessio SOLDANO</dc:creator>
				<category><![CDATA[java]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[webserice]]></category>

		<guid isPermaLink="false">http://www.javalinux.it/wordpress/?p=415</guid>
		<description><![CDATA[Recently I&#8217;ve been playing with the JAXWS Endpoint.publish(..) API. For those not really involved in WS development, JAXWS includes an API for easily deploying an endpoint in JSE environment while starting a http server just for serving calls to the specified endpoint. Endpoint endpoint = Endpoint.create(new EndpointBean()); endpoint.publish("http://localhost:8080/jaxws-endpoint1"); //invoke endpoint... endpoint.stop(); While from a user [...]]]></description>
			<content:encoded><![CDATA[<p>Recently I&#8217;ve been playing with the <strong>JAXWS Endpoint.publish(..) API</strong>. For those not really involved in WS development, JAXWS includes an API for easily deploying an endpoint in JSE environment while starting a http server just for serving calls to the specified endpoint.<br />
<code><br />
Endpoint endpoint = Endpoint.create(new EndpointBean());<br />
endpoint.publish("http://localhost:8080/jaxws-endpoint1");<br />
//invoke endpoint...<br />
endpoint.stop();<br />
</code><br />
While from a user point of view this API is of few interest on a JavaEE environment, this is still quite interesting in JSE env as well as whenever having the need for a quick/easy testing of basic endpoints.<br />
Moreover, JAXWS 2.2 added a <a href="https://jax-ws.dev.java.net/nonav/jaxws-api/2.2/javax/xml/ws/spi/http/package-summary.html">HTTP SPI</a> for establishing / fixing the layer between http server containers and JAXWS stack implementations. This basically allows any jaxws 2.2 compliant implementation to be used on top of any &#8220;compatible&#8221; http server.<br />
Jitendra Kotamraju (current JSR-224 spec lead) recently provided a <a href="http://www2.java.net/blog/jitu/archive/2010/07/09/grizzly-transport-using-jax-ws-22-http-spi">bridge project</a> for making Grizzly compatible with the JAXWS 2.2 HTTP SPI. I&#8217;ve done <a href="http://jbossws.blogspot.com/2010/08/comsunnethttpserver-transport-using.html">the same for the httpserver</a> included in the JDK6 <em>com.sun.net.httpserver.HttpServer</em>. There&#8217;s also a <a href="http://docs.codehaus.org/display/JETTY/J2se6HttpServerSPI">similar project</a> for Jetty. So, with the additions of spec 2.2 and the required vendor implementations to comply on that, users can finally do the following with <em><strong>any</strong></em> JAXWS compliant implementation:<br />
<code><br />
import javax.xml.ws.spi.http.HttpContext;<br />
..<br />
HttpContext context = ..;<br />
Endpoint endpoint = Endpoint.create(new EndpointBean());<br />
endpoint.publish(context);<br />
//invoke endpoint<br />
endpoint.stop();<br />
</code><br />
where the context is obtained according to the selected containers, for instance (using my bridge to the JDK6 httpserver):<br />
<code><br />
import com.sun.net.httpserver.HttpServer;<br />
..<br />
HttpServer server = HttpServer.create(new InetSocketAddress(currentPort), 0);<br />
HttpContext context = HttpServerContextFactory.createHttpContext(server, contextPath, path);<br />
server.start();<br />
..<br />
//here comes the endpoint publish and usage as shown above<br />
..<br />
server.stop(0);<br />
</code><br />
Quite handy, isn&#8217;t it? <img src='http://www.javalinux.it/wordpress/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.javalinux.it/wordpress/2010/08/26/simple-ws-endpoint-deployment-with-jaxws-2-2-http-container-abstraction/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Wise 1.1 released</title>
		<link>http://www.javalinux.it/wordpress/2009/08/10/wise-1-1-released/</link>
		<comments>http://www.javalinux.it/wordpress/2009/08/10/wise-1-1-released/#comments</comments>
		<pubDate>Mon, 10 Aug 2009 14:32:26 +0000</pubDate>
		<dc:creator>Stefano MAESTRI</dc:creator>
				<category><![CDATA[jboss]]></category>
		<category><![CDATA[webserice]]></category>
		<category><![CDATA[wise]]></category>

		<guid isPermaLink="false">http://www.javalinux.it/wordpress/?p=301</guid>
		<description><![CDATA[A new quite cool release of wise-core, my JBoss.org project. At the moment here you have a cross post of Wise&#8217;s blog: http://jbosswise.blogspot.com/2009/08/wise-11-released.html]]></description>
			<content:encoded><![CDATA[<p>A new quite cool release of wise-core, my JBoss.org project.</p>
<p>At the moment here you have a cross post of <a href="http://jbosswise.blogspot.com" target="_blank">Wise&#8217;s blog</a>:</p>
<p><a href="http://jbosswise.blogspot.com/2009/08/wise-11-released.html">http://jbosswise.blogspot.com/2009/08/wise-11-released.html</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.javalinux.it/wordpress/2009/08/10/wise-1-1-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WS-Trust presentation</title>
		<link>http://www.javalinux.it/wordpress/2009/05/05/ws-trust-presentation/</link>
		<comments>http://www.javalinux.it/wordpress/2009/05/05/ws-trust-presentation/#comments</comments>
		<pubDate>Tue, 05 May 2009 16:57:08 +0000</pubDate>
		<dc:creator>Alessio SOLDANO</dc:creator>
				<category><![CDATA[webserice]]></category>

		<guid isPermaLink="false">http://www.javalinux.it/wordpress/?p=288</guid>
		<description><![CDATA[These days I&#8217;ve been looking at WS-Trust. The starting point when dealing with WS-* is of course reading the right specification(s), but often examples are useful too to simply get a basic understanding of the tech while leaving the deep-in-details analisys for later in the learning process. Well, I was googling on WS-Trust last week [...]]]></description>
			<content:encoded><![CDATA[<p>These days I&#8217;ve been looking at WS-Trust. The starting point when dealing with WS-* is of course reading the right specification(s), but often examples are useful too to simply get a basic understanding of the tech while leaving the deep-in-details analisys for later in the learning process.</p>
<p>Well, I was googling on WS-Trust last week and found out a really nice video presentation on this topic and more generally on means of achieving message integrity and confidentiality using web services. I&#8217;m quite busy recently but I admit I looked at the whole presentation (almost 1h) even if I actually knew most of the contents&#8230; that remembered me my early approaches to webservices and message security at the university (perhaps that&#8217;s because of the italian accent of the speaker <img src='http://www.javalinux.it/wordpress/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />  ). I think developers beginning with WS and security might found this a nice clip, good to get an idea of how low level cryptography is used as the building block for higher level specs like WS-Trust.</p>
<p><a href="http://channel9.msdn.com/shows/Going+Deep/Vittorio-Bertocci-WS-Trust-Under-the-Hood/" target="_blank">http://channel9.msdn.com/shows/Going+Deep/Vittorio-Bertocci-WS-Trust-Under-the-Hood/</a></p>
<p>P.S. despite being on a msdn host, there&#8217;s almost nothing specific to Microsoft there <img src='http://www.javalinux.it/wordpress/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.javalinux.it/wordpress/2009/05/05/ws-trust-presentation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JBossWS and Apache CXF collaboration</title>
		<link>http://www.javalinux.it/wordpress/2009/03/26/jbossws-and-apache-cxf-collaboration/</link>
		<comments>http://www.javalinux.it/wordpress/2009/03/26/jbossws-and-apache-cxf-collaboration/#comments</comments>
		<pubDate>Thu, 26 Mar 2009 10:13:41 +0000</pubDate>
		<dc:creator>Alessio SOLDANO</dc:creator>
				<category><![CDATA[jboss]]></category>
		<category><![CDATA[jbossws]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[webserice]]></category>

		<guid isPermaLink="false">http://www.javalinux.it/wordpress/?p=275</guid>
		<description><![CDATA[I&#8217;ve just pubblished a post on the JBosWS blog regarding the JBossWS involvement in the Apache CXF project. In few words, the JBossWS team is increasing its collaboration with the CXF developers, the target being to improve both projects. It&#8217;s not that simple to achieve an active bi-directional collaboration, with both parties&#8217; needs being considered, [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve just pubblished <a href="http://jbossws.blogspot.com/2009/03/jboss-to-provide-support-for-apache-cxf.html" target="_blank">a post on the JBosWS blog</a> regarding the JBossWS involvement in the Apache CXF project. In few words, the JBossWS team is increasing its collaboration with the CXF developers, the target being to improve both projects.</p>
<p>It&#8217;s not that simple to achieve an active bi-directional collaboration, with both parties&#8217; needs being considered, but this is working quite well now. For instance, read what Daniel Kulp (CXF lead) <a href="http://www.dankulp.com/blog/?p=62" target="_blank">writes about the collaboration</a>. Needless to say I like this, that&#8217;s a nice example of what open source can make possible.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.javalinux.it/wordpress/2009/03/26/jbossws-and-apache-cxf-collaboration/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ant 1.7.1 and package-info.java compilation problem of JAX-WS generated classes</title>
		<link>http://www.javalinux.it/wordpress/2009/03/16/ant-171-and-package-infojava-compilation-problem-of-jax-ws-generated-classes/</link>
		<comments>http://www.javalinux.it/wordpress/2009/03/16/ant-171-and-package-infojava-compilation-problem-of-jax-ws-generated-classes/#comments</comments>
		<pubDate>Mon, 16 Mar 2009 14:27:20 +0000</pubDate>
		<dc:creator>Stefano MAESTRI</dc:creator>
				<category><![CDATA[jboss]]></category>
		<category><![CDATA[jbossws]]></category>
		<category><![CDATA[webserice]]></category>

		<guid isPermaLink="false">http://www.javalinux.it/wordpress/?p=261</guid>
		<description><![CDATA[Today I have spent a lot of time with a very strange issue compiling JAX-WS generated classes. I have been using jbossws wsconsume to generate some classes from a .NET wsdl and I had a very strange behaviour: Generate class calling wsconsume compile them and its client using ant and run my test perfectly working [...]]]></description>
			<content:encoded><![CDATA[<p>Today I have spent a lot of time with a very strange issue compiling JAX-WS generated classes. I have been using jbossws wsconsume to generate some classes from a .NET wsdl and I had a very strange behaviour:</p>
<ol>
<li>Generate class calling wsconsume</li>
<li>compile them and its client using ant and run my test perfectly working</li>
<li>then calling my clean task to remove .class files and recompile them and run my tests doesn&#8217;t work!</li>
</ol>
<p>IOW JAX-WS client have been working only the first time I compile them. I couldn&#8217;t figure out why it have been working in that manner, but after a lot of google search I got this <a href="http://article.gmane.org/gmane.comp.jakarta.ant.devel/52586" target="_blank">commit. </a> In practice what have been happening is better described in &#8220;Note on package-info.java&#8221; paragraph of<a href="http://ant.apache.org/manual/CoreTasks/javac.html#" target="_blank"> javac target in ant manual</a>. Starting from version 1.7.1 ant compile package-info.java only in these 3 case:</p>
<ol>
<li> <em>If a <code>package-info.class</code> file exists and is older than         the <code>package-info.java</code> file. </em></li>
<li><em> If the directory for the          <code>package-info.class</code> file does not exist. </em></li>
<li><em> If the directory for the         <code>package-info.class</code> file exists, and has an older         modification time than the         the <code>package-info.java</code> file. In this case         &lt;javac&gt; will touch the corresponding .class directory         on successful compilation. </em></li>
</ol>
<p>In practice if you havea ant task like mine:</p>
<p style="padding-left: 30px;"><span style="color: #333399;"><em>&lt;target name=&#8221;compile&#8221; depends=&#8221;init&#8221; description=&#8221;Compile the Java source code&#8221;&gt;<br />
&lt;javac destdir=&#8221;${classes.dir}&#8221; classpathref=&#8221;build.classpath&#8221; debug=&#8221;${javac.debug}&#8221; deprecation=&#8221;${javac.deprecation}&#8221; target=&#8221;1.5&#8243;&gt;<br />
&lt;src path=&#8221;${src.java.dir}&#8221; /&gt;<br />
&lt;/javac&gt;</em></span></p>
<p>Here the compilation target compile all files and so create directory where package-info.class will be contained during other generated files compilation. In this case the compilation target never re-generate package-info.class because no one of the 3 conditions is true. My workaround have been to change my build.xml file and have this compile target:</p>
<p style="padding-left: 30px;"><span style="color: #333399;">&lt;target name=&#8221;compile&#8221; depends=&#8221;init&#8221; description=&#8221;Compile the Java source code&#8221;&gt;<br />
&lt;touch&gt;<br />
&lt;fileset dir=&#8221;${src.java.dir}&#8221; includes=&#8221;**/package-info.java&#8221;/&gt;<br />
&lt;/touch&gt;<br />
&lt;javac destdir=&#8221;${classes.dir}&#8221; classpathref=&#8221;build.classpath&#8221; debug=&#8221;${javac.debug}&#8221; deprecation=&#8221;${javac.deprecation}&#8221; target=&#8221;1.5&#8243;&gt;<br />
&lt;src path=&#8221;${src.java.dir}&#8221; /&gt;<br />
&lt;/javac&gt;</span></p>
<p><span style="color: #333399;"><span style="color: #000000;">Hoping this post would be useful for someone, let me remark that is a problem of <a href="http://ant.apache.org" target="_blank">ant</a> javac task, not of <a href="http://www.jboss.org/jbossws" target="_blank">jbossws</a> and you will get the same problem with any other jaxws stack. </span></span></p>
<p><span style="color: #333399;"><span style="color: #000000;">Let me remark also that <a href="http://www.jboss.org/Wise" target="_blank">Wise</a> perfectly work in this case regenerating it&#8217;s classes on the fly <img src='http://www.javalinux.it/wordpress/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /><br />
</span></span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.javalinux.it/wordpress/2009/03/16/ant-171-and-package-infojava-compilation-problem-of-jax-ws-generated-classes/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>Wise 0.9 released</title>
		<link>http://www.javalinux.it/wordpress/2008/11/03/wise-09-released/</link>
		<comments>http://www.javalinux.it/wordpress/2008/11/03/wise-09-released/#comments</comments>
		<pubDate>Mon, 03 Nov 2008 21:03:52 +0000</pubDate>
		<dc:creator>Stefano MAESTRI</dc:creator>
				<category><![CDATA[jboss]]></category>
		<category><![CDATA[webserice]]></category>
		<category><![CDATA[wise]]></category>

		<guid isPermaLink="false">http://www.javalinux.it/wordpress/?p=219</guid>
		<description><![CDATA[Just a cross post to announce the first release of Wise as JBoss.org project.]]></description>
			<content:encoded><![CDATA[<p>Just a <a href="http://jbosswise.blogspot.com/2008/11/wise-09-released.html" target="_blank">cross post</a> to announce the first release of<a href="http://www.jboss.org/Wise" target="_blank"> Wise as JBoss.org project</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.javalinux.it/wordpress/2008/11/03/wise-09-released/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>JBossESB and Wise to implement ETL phase for a big DataWareHouse</title>
		<link>http://www.javalinux.it/wordpress/2008/09/15/jbossesb-and-wise-to-implement-etl-phase-for-a-big-datawarehouse/</link>
		<comments>http://www.javalinux.it/wordpress/2008/09/15/jbossesb-and-wise-to-implement-etl-phase-for-a-big-datawarehouse/#comments</comments>
		<pubDate>Mon, 15 Sep 2008 21:28:10 +0000</pubDate>
		<dc:creator>Stefano MAESTRI</dc:creator>
				<category><![CDATA[esb]]></category>
		<category><![CDATA[jbossfeed]]></category>
		<category><![CDATA[jbossws]]></category>
		<category><![CDATA[SOA]]></category>
		<category><![CDATA[webserice]]></category>
		<category><![CDATA[wise]]></category>

		<guid isPermaLink="false">http://www.javalinux.it/wordpress/?p=95</guid>
		<description><![CDATA[As I wrote in some previous posts me and my fine team are working from a while to a project using JBossESB Wise action in a real world enterprise application. We are using it for the ETL (Extract Transfor Load) phase for a big DWH (Data Ware House) with an incremental loading of data. In [...]]]></description>
			<content:encoded><![CDATA[<p>As I wrote in some previous posts me and my fine team are working from a while to a project using <a href="http://www.jboss.org/jbossesb/" target="_blank">JBossESB</a> <a href="http://www.javalinuxlabs.org/" target="_blank">Wise</a> action in a real world enterprise application. We are using it for the <a href="http://en.wikipedia.org/wiki/Extract,_transform,_load" target="_blank">ETL (Extract Transfor Load)</a> phase for a big <a href="http://en.wikipedia.org/wiki/Data_warehouse" target="_blank">DWH (Data Ware House)</a> with an incremental loading of data.</p>
<p>In a nutshell we trace logical changes on an <a href="http://en.wikipedia.org/wiki/OLTP" target="_blank">OLTP</a> database (it&#8217;s a financial DB where all changes can be associated logically to a single company or at least to a network of company related for various reasons). Then we use JBossESB (and in particular SQLGateway) to periodically treat modified companies and extracting and enriching information to be loaded on the DWH instance. Where wise have its place? Well a lot of information and business rule to extract or enrich data have been implemented as <a href="http://en.wikipedia.org/wiki/Webservices" target="_blank">webservices</a> in last 3/4 years. So it&#8217;s pretty natural to reuse them to implement this last application.</p>
<p>Ok, it&#8217;s the bird eye view of the problem and the solution. On the rest of the post I&#8217;ll go in more formal details, starting with requirement and environment description</p>
<h2>Requirement and environment description</h2>
<p>The main requirement have been to collect a set of data regarding a large set of company (about 5 million) in a DWH for a marketing analysis. This data comes from different systems: 3 different OLTP relational database, and legacy host based system, an external provider. The good news is that both host system and external provider are accessible using webservices. Moreover OLTP databases have some webservices extracting data applying complex business rules; they doesn&#8217;t cover all requirements, but these DBs are completely under control of our development team, and dedicated jdbc and/or EJB3 access could be developed for new goals.</p>
<p>The final users would update it&#8217;s DWH with daily frequency. The large amount of data made impossible to extract transform and load the whole data every night. We have decided to keep track of changes on the main OLTP DB, and reload completely companies changed (some thousands a day).</p>
<p>Of course this approach isn&#8217;t totally new, incremental ETL are pretty common in DWH world, and all vendors have its own proprietary solution. While these proprietary system have its place and its plus, isn&#8217;t IMHO sufficient flexible to support an heterogeneous environment as one described. I thought it&#8217;s better to track with proprietary triggers logical significative changes (not a lot in fact) and adopt a SOA solution for ETL. It would be better in terms of flexibility and would permit us to reuse much more easily a lot of already written services containig complex business rules.</p>
<p>So the solution adopted have been based on JBossESB ant its composed by these macro steps:</p>
<ol>
<li>A set of triggers on 2 of 3 named OLTP DB collect changes and write a unique identifier of the company in a dedicated table</li>
<li>A SQLGateway consume this table (the frequency of wake up and filters of the query are designed to avoid excessive and and not useful double treatment of companies due to double linked changes)</li>
<li>Any company is processed by a set of action chains. This actions could be locally defined actions reading relational database or Wise based web services invocations. A content based router policy route messages from an action chain to the next one.</li>
<li>Finally data extracted and transformed are written on the DWH.</li>
</ol>
<p>Point 3 is of course the core of the system. The SQLGateway create a message containing a pojo object called Company and any successive action trasform or enrich this object with data collected and business rules applied. Wise&#8217;s based action calls webservices and use smooks to transform and enrich input object with ws returned values. Using CBR and continuous enrichment of the same object we get at last action (writeOnDWH) an object with all data needed t be written on the DWH.</p>
<h2>Focus on Wise</h2>
<p>A lot of actions are simply webservices calls implemented with a zero-code approach using Wise. We had just to write jboss-esb.xml fragment for webservice call and smooks config files to get a lot of business rules reused. It have been really GREAT!</p>
<p>I need to add some patch to current integration in ESB to obtain the max response from wise, but results have been really impressive: we had something like 90K company processed in an hour. What does it mean in finer details? Well from wise point of view about <span style="text-decoration: underline;"><span style="color: #ff0000;"><strong>300K web services calls in an hour!</strong></span></span><br />
Well also performance and numbers of ESB have been impressive: we are running on a single Linux64 machine (AMD64 double dual core) with 10 jms-listener processing 10 different chains  (200 concurrent 3ad for any jms-listener) for a t<strong>otal of 1.7M (wise and not) of actions called in an hour.</strong></p>
<h4>Isn&#8217;t it impressive numbers?</h4>
<p>There is a list of patches I applied to wise/esb integration to support my requirement. All the code are committed on my workspace (maeste) in <a href="http://www.jboss.org/jbossesb/subversion.html">ESB svn</a>:</p>
<table id="searchresults_portlet_12313828" border="0" cellspacing="1" cellpadding="3" width="100%">
<tbody>
<tr class="rowNormal JBESB-2019-tr">
<td width="1%"><a href="https://jira.jboss.org/jira/browse/JBESB-2019"> <img title="Feature Request - A new feature of the product, which has yet to be developed." src="https://jira.jboss.org/jira/images/icons/newfeature.gif" border="0" alt="Feature Request" width="16" height="16" align="absmiddle" /> </a></td>
<td width="1%"><span style="font-size: xx-small;"><a href="https://jira.jboss.org/jira/browse/JBESB-2019" target="_blank"><span class="issuekey">JBESB-2019</span></a></span></td>
<td width="100%"><a style="text-decoration: none;" href="https://jira.jboss.org/jira/browse/JBESB-2019">wise should  pass to smooks response mapper also input data to permit continuos enrichement of message</a></td>
<td width="1%"><img title="Major - A request that should be considered seriously but is not a show stopper." src="https://jira.jboss.org/jira/images/icons/priority_major.gif" border="0" alt="Major" width="16" height="16" align="absmiddle" /></td>
</tr>
<tr class="rowAlternate JBESB-2020-tr">
<td width="1%"><a href="https://jira.jboss.org/jira/browse/JBESB-2020"> <img title="Bug - A problem which impairs or prevents the functions of the product." src="https://jira.jboss.org/jira/images/icons/bug.gif" border="0" alt="Bug" width="16" height="16" align="absmiddle" /> </a></td>
<td width="1%"><span style="font-size: xx-small;"><a href="https://jira.jboss.org/jira/browse/JBESB-2020" target="_blank"><span class="issuekey">JBESB-2020</span></a></span></td>
<td width="100%"><a style="text-decoration: none;" href="https://jira.jboss.org/jira/browse/JBESB-2020">wise have a bug for which it may download too many wsdls and store them in a temporary dir</a></td>
<td width="1%"><img title="Major - A request that should be considered seriously but is not a show stopper." src="https://jira.jboss.org/jira/images/icons/priority_major.gif" border="0" alt="Major" width="16" height="16" align="absmiddle" /></td>
</tr>
<tr class="rowNormal JBESB-2021-tr">
<td width="1%"><a href="https://jira.jboss.org/jira/browse/JBESB-2021"> <img title="Feature Request - A new feature of the product, which has yet to be developed." src="https://jira.jboss.org/jira/images/icons/newfeature.gif" border="0" alt="Feature Request" width="16" height="16" align="absmiddle" /> </a></td>
<td width="1%"><span style="font-size: xx-small;"><a href="https://jira.jboss.org/jira/browse/JBESB-2021" target="_blank"><span class="issuekey">JBESB-2021</span></a></span></td>
<td width="100%"><a style="text-decoration: none;" href="https://jira.jboss.org/jira/browse/JBESB-2021">add configurability for location where wise store smooks reports for its transformation</a></td>
<td width="1%"><img title="Major - A request that should be considered seriously but is not a show stopper." src="https://jira.jboss.org/jira/images/icons/priority_major.gif" border="0" alt="Major" width="16" height="16" align="absmiddle" /></td>
</tr>
<tr class="rowAlternate JBESB-2022-tr">
<td width="1%"><a href="https://jira.jboss.org/jira/browse/JBESB-2022"> <img title="Bug - A problem which impairs or prevents the functions of the product." src="https://jira.jboss.org/jira/images/icons/bug.gif" border="0" alt="Bug" width="16" height="16" align="absmiddle" /> </a></td>
<td width="1%"><span style="font-size: xx-small;"><a href="https://jira.jboss.org/jira/browse/JBESB-2022" target="_blank"><span class="issuekey">JBESB-2022</span></a></span></td>
<td width="100%"><a style="text-decoration: none;" href="https://jira.jboss.org/jira/browse/JBESB-2022">wise doesn&#8217;t clean its internal smooks cache</a></td>
<td width="1%"><img title="Major - A request that should be considered seriously but is not a show stopper." src="https://jira.jboss.org/jira/images/icons/priority_major.gif" border="0" alt="Major" width="16" height="16" align="absmiddle" /></td>
</tr>
<tr class="rowNormal JBESB-2023-tr">
<td width="1%"><a href="https://jira.jboss.org/jira/browse/JBESB-2023"> <img title="Bug - A problem which impairs or prevents the functions of the product." src="https://jira.jboss.org/jira/images/icons/bug.gif" border="0" alt="Bug" width="16" height="16" align="absmiddle" /> </a></td>
<td width="1%"><span style="font-size: xx-small;"><a href="https://jira.jboss.org/jira/browse/JBESB-2023" target="_blank"><span class="issuekey">JBESB-2023</span></a></span></td>
<td width="100%"><a style="text-decoration: none;" href="https://jira.jboss.org/jira/browse/JBESB-2023">Wise is failed to consume a wsdl which contains two schema element with same name and different namespace . </a></td>
<td width="1%"><img title="Major - A request that should be considered seriously but is not a show stopper." src="https://jira.jboss.org/jira/images/icons/priority_major.gif" border="0" alt="Major" width="16" height="16" align="absmiddle" /></td>
</tr>
<tr class="rowAlternate JBESB-2036-tr">
<td width="1%"><a href="https://jira.jboss.org/jira/browse/JBESB-2036"> <img title="Bug - A problem which impairs or prevents the functions of the product." src="https://jira.jboss.org/jira/images/icons/bug.gif" border="0" alt="Bug" width="16" height="16" align="absmiddle" /> </a></td>
<td width="1%"><span style="font-size: xx-small;"><a href="https://jira.jboss.org/jira/browse/JBESB-2036" target="_blank"><span class="issuekey">JBESB-2036</span></a></span></td>
<td width="100%"><a style="text-decoration: none;" href="https://jira.jboss.org/jira/browse/JBESB-2036">wise&#8217;s sample have problem because targetPackage not specified in properties files</a></td>
<td width="1%"><img title="Major - A request that should be considered seriously but is not a show stopper." src="https://jira.jboss.org/jira/images/icons/priority_major.gif" border="0" alt="Major" width="16" height="16" align="absmiddle" /></td>
</tr>
<tr class="rowNormal JBESB-2037-tr">
<td width="1%"><a href="https://jira.jboss.org/jira/browse/JBESB-2037"> <img title="Feature Request - A new feature of the product, which has yet to be developed." src="https://jira.jboss.org/jira/images/icons/newfeature.gif" border="0" alt="Feature Request" width="16" height="16" align="absmiddle" /> </a></td>
<td width="1%"><span style="font-size: xx-small;"><a href="https://jira.jboss.org/jira/browse/JBESB-2037" target="_blank"><span class="issuekey">JBESB-2037</span></a></span></td>
<td width="100%"><a style="text-decoration: none;" href="https://jira.jboss.org/jira/browse/JBESB-2037">Avoid excessive reflective inspection of wise classes for better performance</a></td>
<td width="1%"><img title="Major - A request that should be considered seriously but is not a show stopper." src="https://jira.jboss.org/jira/images/icons/priority_major.gif" border="0" alt="Major" width="16" height="16" align="absmiddle" /></td>
</tr>
</tbody>
</table>
<p>I can&#8217;t go in more detail of the implementation or put here configs files because I cna&#8217;t reveal any business details of the application. I&#8217;ll try in next future to arrange an example totally equivalent in technology content, but without any link to real business content. If you are interested let me know, but be patients&#8230;it&#8217;s not a joke and I&#8217;m very very busy these days.</p>
<h4>Thanks to my team (special thanks to Paolo and Luca)  and all contributors of Wise and ESB to make it possible <img src='http://www.javalinux.it/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </h4>
<p>PS: what about <a href="http://milyn.codehaus.org/jbossesb/huge-split-route-qs/README.html" target="_blank">huge split and route qs</a> included in ESB 4.4. Well they cover different problems, even if not far each other. The main difference is that here we haven&#8217;t a huge message to split and route, but a lot of little message to enrich and then route (content based) to next enrichment phases.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.javalinux.it/wordpress/2008/09/15/jbossesb-and-wise-to-implement-etl-phase-for-a-big-datawarehouse/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>JBossESB 4.4 have a new zero-code webservice invoker</title>
		<link>http://www.javalinux.it/wordpress/2008/08/07/jbossesb-44-have-a-new-zero-code-ws-invoker/</link>
		<comments>http://www.javalinux.it/wordpress/2008/08/07/jbossesb-44-have-a-new-zero-code-ws-invoker/#comments</comments>
		<pubDate>Thu, 07 Aug 2008 21:20:33 +0000</pubDate>
		<dc:creator>Stefano MAESTRI</dc:creator>
				<category><![CDATA[esb]]></category>
		<category><![CDATA[jboss]]></category>
		<category><![CDATA[jbossfeed]]></category>
		<category><![CDATA[SOA]]></category>
		<category><![CDATA[webserice]]></category>
		<category><![CDATA[wise]]></category>

		<guid isPermaLink="false">http://www.javalinux.it/wordpress/?p=82</guid>
		<description><![CDATA[We are proud to announce that recently released JBossESB 4.4 contain a wise based implementation of webservice client invoker. In a nutshell it is a zero-code webservice caller supporting smooks based mapping, and pluggable JAX-WS handler. Here is an abstract of the message with which I presented it to ESB community (here you find original [...]]]></description>
			<content:encoded><![CDATA[<p>We are proud to announce that<a href="http://www.jboss.com/index.html?module=bb&amp;op=viewtopic&amp;p=4169068#4169068" target="_blank"> recently released</a> <a href="http://www.jboss.org/jbossesb/" target="_self">JBossESB</a> 4.4 contain a <a href="http://www.javalinuxlabs.org/wise/index.html" target="_blank">wise</a> based implementation of webservice client invoker.</p>
<p>In a nutshell it is a zero-code webservice caller supporting <a href="http://milyn.codehaus.org" target="_blank">smooks</a> based mapping, and pluggable JAX-WS handler. Here is an abstract of the message with which I presented it to ESB community (<a href="http://www.jboss.com/index.html?module=bb&amp;op=viewtopic&amp;t=137998" target="_blank">here</a> you find original message and related discussion):</p>
<blockquote><p><span class="postbody">It uses wsconsume API to dynamically generate client object and invoke web service, delagating to JBossWS JAX-WS implementation the dirty job.<br />
It use smooks under the hood to transform user defined object into JAX-WS generated ones.</span></p>
<p>It support also standard JAX-WS handler and a generic smooks transformation handler to apply transformation to generated soap messages.</p>
<p>You can find it in my workspace under  product/services/soap/src/main/java/org/jboss/soa/esb/actions/soap/wise/<br />
I also wrote javadoc for the action class explaining how to use it and e example demonstrating 3 common use case:</p>
<p>* Direct call of a simple service without any mapping is needed<br />
* Call of a service using a smooks mapper java-to-java<br />
* Call a simple webservices without mapping, but with an handler<br />
modifying  header with smooks and an handler logging on System.out<br />
request and response<br />
In this 3 examples don&#8217;t forget to have a look to wise-core.properties for some important configs. Of course they could be integrated in action&#8217;s config in jboss-esb.xml in next future, but this first implementation leave them there.</p>
<p>On wise roadmap I have the implementation of webservices&#8217; call receiving different resources (CSV, XML and so on) using smooks to map it on JAX-WS generated client objects, giving another interesting opportunity in ESB environment.</p>
<p>It is an initial implementation, and I need to integrate wise objects generation with new smooks configgenerator ( <a class="postlink" href="http://milyn.codehaus.org/Smooks+User+Guide#SmooksUserGuide-GeneratingtheSmooksBindingConfiguration" target="_blank">http://milyn.codehaus.org/Smooks+User+Guide#SmooksUserGuide-GeneratingtheSmooksBindingConfiguration</a> ) to make user experience easier.</p></blockquote>
<p>Moreover we are working on wise-core to improve it and make it more configurable an pluggable and support much more stuffs. I&#8217;ll post a roadmap soon.</p>
<p>Stay tuned!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.javalinux.it/wordpress/2008/08/07/jbossesb-44-have-a-new-zero-code-ws-invoker/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
	</channel>
</rss>

