tag:blogger.com,1999:blog-53626016105745543202024-03-13T23:27:01.598-07:00JBossWSAlessio Soldanohttp://www.blogger.com/profile/15231208472339526847noreply@blogger.comBlogger61125tag:blogger.com,1999:blog-5362601610574554320.post-12576209075033872642020-01-15T01:41:00.001-08:002020-01-15T01:41:51.148-08:00JBossWS 5.4.0.FInal is released !<div dir="ltr" style="text-align: left;" trbidi="on">
<br class="Apple-interchange-newline" />I am pleased to annouce JBossWS 5.4.0 Final is out. In this release we upgraded many components as usual and brings Elytron client configuration support. Apache CXF is now upgraded to 3.3.4 and more issues has been fixed in this release. For more detailed info and full list of issues resolved, please check <a href="https://issues.redhat.com/secure/ReleaseNote.jspa?version=12341950&projectId=12310050">release notes.</a><br />
<br />
If you have any problem and want to send feedback for this new release, please post at<a href="https://developer.jboss.org/en/jbossws/cxf"> jbossws forum</a> or file issues in JIRA at: <a href="https://issues.jboss.org/projects/JBWS">https://issues.jboss.org/projects/JBWS</a></div>
jimmahttp://www.blogger.com/profile/05747202780158976279noreply@blogger.com0tag:blogger.com,1999:blog-5362601610574554320.post-83571321123876645202019-05-14T03:54:00.001-07:002019-05-14T03:56:28.752-07:00JBossWS 5.3.0.Final is out!<div dir="ltr" style="text-align: left;" trbidi="on">
<br />
After couple days work, I am proud to announce JBossWS 5.3.0.Final has been <a href="https://jbossws.github.io/">released</a><a href="https://jbossws.github.io/">.</a> <br />
<br />
This new release brings a lot of component upgrade, issue fix and improvement. Apache CXF is now upgraded to 3.3.1. and JDK11 or higher version is better supported. For more detailed info and full list of issues resolved, please check <a href="http://download.jboss.org/jbossws/ReleaseNotes-jbossws-cxf-5.3.0.Final.txt">release notes.</a><br />
<br />
If you have any problem and want to send feedback for this new release, please post at<a href="https://developer.jboss.org/en/jbossws/cxf"> jbossws forum</a> or file issues in JIRA at: <a href="https://issues.jboss.org/projects/JBWS">https://issues.jboss.org/projects/JBWS</a> </div>
jimmahttp://www.blogger.com/profile/05747202780158976279noreply@blogger.com0tag:blogger.com,1999:blog-5362601610574554320.post-59836097526738235662017-11-13T02:09:00.002-08:002017-11-13T02:09:59.031-08:00JBossWS 5.2.0.Final is availableAfter some micro bug fix releases on the 5.1 stream, <b>JBossWS 5.2.0.Final</b> has eventually been <a href="http://jbossws.jboss.org/downloads/latest">released</a>.<br />
The latest versions brings a lot of component upgrades to <b>WildFly</b>, the most relevant ones being <b>Apache CXF 3.2</b> and <b>JAXB 2.3</b>. Thanks to many other minor improvements and fixes in the stack, the result is that JBossWS 5.2.0.Final is compatible (and has been tested) with the latest final <b>JDK 9</b>.<br />
Please have a look at the <a href="http://download.jboss.org/jbossws/ReleaseNotes-jbossws-cxf-5.2.0.Final.txt">release notes</a> for further details and give it a try! <br />
<br />Alessio Soldanohttp://www.blogger.com/profile/15231208472339526847noreply@blogger.com0tag:blogger.com,1999:blog-5362601610574554320.post-10310937306279599782016-08-27T14:08:00.000-07:002016-08-27T14:08:00.466-07:00Summer's nearly over..Summer is nearly over and last time I wrote here was just before last Christmas.. definitely time for an update!<br />
<br />
During the first half of this year we've been working on fixing reported bugs of the JBossWS 5.1.x series. There are some plans for kicking off the 5.2 development, but at the moment the focus is still on maintaining the 5.1 series.<br />
<br />
Anyway, JBossWS <a href="http://download.jboss.org/jbossws/ReleaseNotes-jbossws-cxf-5.1.3.Final.txt">5.1.3.Final</a>, <a href="http://download.jboss.org/jbossws/ReleaseNotes-jbossws-cxf-5.1.4.Final.txt">5.1.4.Final</a> and <a href="http://download.jboss.org/jbossws/ReleaseNotes-jbossws-cxf-5.1.5.Final.txt">5.1.5.Final</a> has been released and included in <a href="http://wildfly.org/">WildFly</a>... hey, did you notice that <b><a href="http://wildfly.org/news/2016/08/19/WildFly10-1-Released/">WildFly 10.1.0.Final</a> is out</b>? :-D Go and download it, it's really worth trying it!<br />
<br />
As a consequence of 10.1.0.Final having been released, WildFly master has moved to 11 and here we are with a fresh WS piece of news...<br />
<b>JBoss Wise is coming into WildFly!</b> You can read more <a href="http://jbosswise.blogspot.com/2016/08/wise-gui-on-wildfly.html">here</a>, anyway what this basically means is that a GUI for testing WS endpoints is going to be available by default in WildFly soon.<br />
Really nice, isn't it? :-)Alessio Soldanohttp://www.blogger.com/profile/15231208472339526847noreply@blogger.com0tag:blogger.com,1999:blog-5362601610574554320.post-39949150029891462602015-12-23T06:20:00.000-08:002015-12-23T06:20:42.702-08:00Christmas 2015 releases!Just few hours before the holiday break and here we are with the last releases of the year!<br />
First of all, <b>WildFly 10.0.0.CR5</b> has been released and will soon turn into <i>Final</i> assuming no major flaw is reported. You can read more on the release at <a href="http://wildfly.org/news/2015/12/23/WildFly10-CR5-Released/">wildfly.org</a>!<br />
Speaking of web services, yesterday I've tagged the second micro release of JBossWS 5.1.x series and today you can download it from <a href="http://jbossws.jboss.org/downloads/latest">jbossws.jboss.org</a>. You might have noticed that we've released two bug fix versions this month: <b>JBossWS 5.1.1.Final</b> was mainly a <u>bug fix</u> release (but of course we also moved to the most recent <a href="http://cxf.apache.org/">Apache CXF</a> version), while <b>JBossWS 5.1.2.Final</b> is basically a <u>performance</u> improvement release, cut just in time to include it as a last minute change in WildFly 10 :-)<br />
As usual, have a look at the <a href="http://download.jboss.org/jbossws/ReleaseNotes-jbossws-cxf-5.1.2.Final.txt">release notes</a> for a detailed list of changes. The supported target containers for both JBossWS releases are WildFly 9.0.0.Final, 9.0.1.Final and 9.0.2.Final.<br />
<br />
<i>The year is almost over, time to relax, give the last WildFly 10 CR a try and then get back fully recharged in 2016 to play with WildFly 10 Final :-)</i><br />
<b>Greetings!</b>Alessio Soldanohttp://www.blogger.com/profile/15231208472339526847noreply@blogger.com0tag:blogger.com,1999:blog-5362601610574554320.post-65053123676616490132015-09-02T06:21:00.000-07:002015-09-02T06:21:08.914-07:00JBossWS 5.1.0.Final is available!One month after the beta release, <b>JBossWS 5.1.0</b> is eventually <b>final</b>!<br />
This time, we have gone for a time-boxed release approach and limited the number of new features on top of previous release. The reason is that we really wanted the upcoming <b>WildFly 10</b> to include the latest and greatest WS components. As a matter of fact, JBossWS 5.1.0 brings <b>Apache CXF 3.1</b> series into the WildFly container; the latest <a href="http://cxf.apache.org/">Apache CXF</a> versions, in turn, come with few <b>performance improvements</b> that we directly contributed to, while working on optimizing the whole WildFly WS stack.<br />
On top of that and besides for a bunch of bug fixes, an interesting new feature has just been added to JBossWS 5.1, which is support for <i>jboss-webservices.xml</i> descriptor in EAR deployment archives. This allows setting a given behaviour of the stack for all sub-deployments included in an EAR archive packaged application, preventing the user from having to specify the same options in multiple <i>jboss-webservices.xml</i> descriptors.<br />
You can have a look at the <a href="http://download.jboss.org/jbossws/ReleaseNotes-jbossws-cxf-5.1.0.Final.txt">release notes</a> for a list of the improvements and fixed issues.<br />
<br />
JBossWS 5.1.0.Final is available for direct <a href="http://jbossws.jboss.org/downloads/latest">download</a> and on both the JBoss and Maven Central repositories. The release documentation is <a href="https://docs.jboss.org/jbossws/5.1.0.Final/">here</a>.<br />
<br />
The supported target containers are WildFly 8.2.1.Final, WildFly 9.0.0.Final and WildFly 9.0.1.Final... and of course WildFly 10.0.0.CR1 and later will be including it by default already.<br />
Enjoy!Alessio Soldanohttp://www.blogger.com/profile/15231208472339526847noreply@blogger.com0tag:blogger.com,1999:blog-5362601610574554320.post-65050328679844075332015-08-06T01:13:00.002-07:002015-08-06T01:13:51.995-07:00JBossWS 5.0.1.Final and 5.1.0.Beta1It's summer time, time for a break and for taking some rest... not really, as we released two new versions of <b>JBossWS</b> this week :-)<br />
<br />
<b>JBossWS 5.0.1.Final</b> is a bug fix <a href="http://jbossws.jboss.org/downloads/latest">release</a>, solving some <a href="http://download.jboss.org/jbossws/ReleaseNotes-jbossws-cxf-5.0.1.Final.txt">issues</a> that were found in the first version of the JBossWS 5 series. It also includes Apache CXF (<a href="http://cxf.apache.org/cxf-306-release-notes.html">3.0.6</a>) and WSS4J upgrades that come with additional multiple fixes and security improvements. The target containers for JBossWS 5.0.1.Final are WildFly 9.0.0.Final as well as the recently released WildFly 8.2.1.Final and 9.0.1.Final.<br />
<br />
<b>JBossWS 5.1.0.Beta1</b> is the first <a href="http://repo1.maven.org/maven2/org/jboss/ws/cxf/jbossws-cxf/5.1.0.Beta1/">milestone</a> of the new webservices stack for WildFly 10, instead. While it drops support for Spring integration (<i>jbossws-cxf.xml</i> descriptor, which was not used a lot and causing confusion and problems), it eventually pulls the latest Apache CXF <a href="http://cxf.apache.org/docs/31-migration-guide.html">3.1.x series</a>. Of course, all the fixes in 5.0.1.Final are included in <a href="https://issues.jboss.org/secure/ReleaseNote.jspa?projectId=12310050&version=12326872">5.1.0.Beta1</a> as well.<br />
Additional new features are coming to 5.1.0 in the next months before it goes Final :-)<br />
<br />
<i>Summer time... time to get the latest JBossWS releases and give them a try ;-)</i><br />
Enjoy!Alessio Soldanohttp://www.blogger.com/profile/15231208472339526847noreply@blogger.com0tag:blogger.com,1999:blog-5362601610574554320.post-80042222549432783792015-06-26T02:45:00.000-07:002015-06-26T02:49:03.229-07:00Migrating sources to GitHubI've been asked multiple times why the <i>JBossWS</i> project sources were still hosted on a <i>Subversion</i> repository. I've also had to put up with the complaints on time-consuming checkouts and even a bit of mockery from someone for not having migrated to <i>Git</i> yet...<br />
Anyway, last week I had some quiet days, got the inspiration and started the migration... so now the <i>JBossWS</i> sources are eventually hosted on <i><a href="https://github.com/jbossws">GitHub</a></i> :-)<br />
<br />
I've started by creating a <i>jbossws</i> organization on <i>GitHub</i>. Since the JBossWS project is actually a collection of multiple components each having its own lifecycle, I decided to create a repository for each of them into the organization.<br />
A proper migration requires importing the whole svn repository history, of course; the easiest approach to achieve that is to rely on the <a href="https://import.github.com/new">GitHub importer</a>. The tool worked fine for me with the smallest repositories (for instance the <i>jbossws-api</i> and <i>jbossws-spi</i> ones), even if it took something like 2 hours for each import (but it's nice that you can let it run on background and be notified by email when the process is completed). Unfortunately, when letting the tool process big sections of the <i>JBossWS</i> <i>Subversion</i> repository (like the <i>jbossws-cxf</i> stack integration), weird import errors were eventually reported, so I had to figure out another way to perform the import.<br />
<br />
The alternative approach that worked is based on <i>git-svn</i>. The first step is to build up a comprehensive author mapping file linking <i>svn</i> commit authors to <i>GitHub</i> users. I used the following <i>bash</i> command:<br />
<br />
<code>> svn log -q | awk -F '|' '/^r/ {sub("^ ", "", $2); sub(" $", "", $2);
print $2" = "$2" <"$2">"}' | sort -u > authors-transform.txt</code>
<br />
<br />
Then I created a local <i>Git</i> repository from the Subversion sources with the following command:<br />
<br />
<code>> git svn clone --stdlayout --no-metadata -A authors-transform.txt http://anonsvn.jboss.org/repos/jbossws/stack/cxf /tmp/rep</code>
<br />
<br />
The process still takes multiple hours and fails if a not-mapped user commit is found, but when it's completed you have a copy of all sources in a local <i>Git</i> repository that is almost ready to push. Almost... as I still had to deal with tags because they're fetched the same as branches by the command above.<br />
I moved to the <i>/tmp/rep</i> directory and started by adding a remote repository link and pushing the master:<br />
<br />
<code>> git remote add origin https://github.com/jbossws/jbossws-cxf.git</code><br />
<code>> git push -u origin master</code>
<br />
<br />
Then you'd have to manually create all the tags, but that's clearly unpractical if you have hundreds of them, so I googled a bit and ended up using the following two commands to generate the actual commands for pushing branches and tags respectively to the remote repository:<br />
<br />
<code>> printf "git push origin "; git show-ref | grep refs/remotes | grep -v
'@' | grep -v remotes/tags | perl -ne 'print
"refs/remotes/$1:refs/heads/$1 " if m!refs/remotes/(.*)!'; echo</code>
<br />
<br />
<code>> printf "git push origin "; git show-ref | grep refs/remotes/tags | grep -v '@' | perl -ne 'print "refs/remotes/tags/$1:refs/tags/$1 " if m!refs/remotes/tags/(.*)!'; echo</code>
<br />
<br />
I only had to clean up the output of the first command a bit as the trunk branch was clearly not to be pushed (it's the master pushed previously) and I actually did not want to push some stale branches.<br />
After having iterated the process above for all <i>JBossWS</i> components that failed the automatic import process, I finally had all the sources there at <i>GitHub</i>.<br />
<br />
The final steps were to disable the issue tracker & wiki on <i>GitHub</i> (we already use <i>JIRA</i> and have an equivalent to the wiki at <i>jboss.org</i>) and to invite proper users to join the Owner group for the organization as well as other specific groups that were needed.<br />
<br />
A day was later spent on updating the <a href="http://jbossws-qa.jboss.org:8180/hudson/">continuous integration build environment</a> and the <a href="http://jbossws.jboss.org/">project home page</a> to point to the new repositories... but that's not that interesting to be described in details here ;-)<br />
<br />
<i><b>Enjoy the new repos, fork JBossWS and feel free to submit pull requests with your patches!</b></i>Alessio Soldanohttp://www.blogger.com/profile/15231208472339526847noreply@blogger.com0tag:blogger.com,1999:blog-5362601610574554320.post-52755732240521138742015-04-27T05:36:00.000-07:002015-04-27T07:10:49.648-07:00JBossWS 5.0.0.Final is available!<b>I'm happy to announce that JBossWS 5.0.0.Final is out!</b><br />
The release comes with lots of new features and bug fixes. To get an idea of the new functionalities you can have a look at previous posts <a href="http://jbossws.blogspot.com/2015/03/moving-towards-jbossws-5.html">here</a>, <a href="http://jbossws.blogspot.com/2014/09/wildfly-9-and-jbossws-5-future-is-coming.html">here</a> and <a href="http://jbossws.blogspot.com/2014/09/how-to-kick-start-ws-project-in-few.html">here</a>.<br />
Besides for the upgrade to <a href="http://cxf.apache.org/">Apache CXF</a> 3 series, which brings a lot of new and interesting <a href="http://cxf.apache.org/docs/30-migration-guide.html">features</a>, this release mainly focuses on providing simplified configurations options to the user. In particular:<br />
<ul>
<li>it makes very easy to have predefined client and endpoint configurations set for user WS client and endpoints; this is achieved by <a href="https://docs.jboss.org/author/display/JBWS/Predefined+client+and+endpoint+configurations#Predefinedclientandendpointconfigurations-Automaticconfigurationfromdefaultdescriptors">sensible defaults to the configuration names</a></li>
<li>it allows declaring Apache CXF <a href="https://docs.jboss.org/author/display/JBWS/Apache+CXF+integration#ApacheCXFintegration-ApacheCXFinterceptors">interceptors</a> and <a href="https://docs.jboss.org/author/display/JBWS/Apache+CXF+integration#ApacheCXFintegration-Features">features</a> using configuration properties</li>
<li>it allows <a href="https://docs.jboss.org/author/display/JBWS/Apache+CXF+integration#ApacheCXFintegration-HTTPConduitconfiguration">tuning the default Apache CXF HTTP Conduit</a>, effectively making it possible to control HTTP transport options (like e.g. chunk mode) through system properties.</li>
</ul>
With the above items (as well as <a href="https://docs.jboss.org/author/display/JBWS/Apache+CXF+integration#ApacheCXFintegration-Propertiesdrivenbeancreation">other new functionalities</a>) covering most of the scenarios in which users would have needed Spring based descriptors, the JBossWS integration with Spring is now declared deprecated.<br />
<br />
It's now time for you to download JBossWS 5.0.0.Final, install and give it a try! Feedback is welcome as usual!<br />
<br />
The documentation is included in the <a href="http://jbossws.jboss.org/downloads/latest">release</a> (together with the sample testsuite) and is also available at <a href="https://docs.jboss.org/jbossws/5.0.0.Final/">https://docs.jboss.org/jbossws/5.0.0.Final/</a> in its latest version.<br />
The supported target containers for this release are WildFly 8.0.0.Final, WildFly 8.1.0.Final and WildFly 8.2.0.Final. The current WildFly master has also been updated to the new WS components so that future WildFly releases will come with it.<br />
Have fun :-)Alessio Soldanohttp://www.blogger.com/profile/15231208472339526847noreply@blogger.com1tag:blogger.com,1999:blog-5362601610574554320.post-9209505918485423172015-03-24T09:29:00.000-07:002015-03-24T09:44:38.123-07:00Moving towards JBossWS 5...Even if I've been silent here lately, my team is actively working on <b>JBossWS 5</b> and we're getting closer to the first non-Beta release.<br />
<br />
The first Beta release (<a href="https://issues.jboss.org/issues/?jql=project%20%3D%20JBWS%20AND%20fixVersion%20%3D%20jbossws-cxf-5.0.0.Beta1%20ORDER%20BY%20issuetype%20DESC">JBossWS 5.0.0.Beta1</a>) was tagged in September last year; it brought Apache CXF 3 series in JBossWS / WildFly and eventually dropped JAX-RPC support ;-)<br />
<br />
<a href="https://issues.jboss.org/issues/?jql=project%20%3D%20JBWS%20AND%20fixVersion%20%3D%20jbossws-cxf-5.0.0.Beta2%20ORDER%20BY%20issuetype%20DESC">JBossWS 5.0.0.Beta2</a> was tagged a couple of months later and featured <a href="https://docs.jboss.org/author/display/JBWS/Predefined+client+and+endpoint+configurations#Predefinedclientandendpointconfigurations-Automaticconfigurationfromdefaultdescriptors">improvements in the pre-defined client/endpoint configuration area</a> and the <a href="https://docs.jboss.org/author/display/JBWS/Apache+CXF+integration#ApacheCXFintegration-ApacheCXFinterceptors">options for declaring Apache CXF interceptors through simple configuration properties</a>.<br />
<br />
The latest Beta release so far, <a href="https://issues.jboss.org/issues/?jql=project%20%3D%20JBWS%20AND%20fixVersion%20%3D%20jbossws-cxf-5.0.0.Beta3%20ORDER%20BY%20issuetype%20DESC">JBossWS 5.0.0.Beta3</a>, has been tagged and integrated in current WildFly master last month; the most notable change in it is the completely <a href="https://docs.jboss.org/author/display/JBWS/Build+and+testsuite+framework">new build and testsuite framework</a>, which now fully relies on <a href="http://arquillian.org/">Arquillian</a> and ShrinkWrap for WS endpoints testing.<br />
<br />
More interesting additions, in the direction of enabling <a href="https://docs.jboss.org/author/display/JBWS/Apache+CXF+integration#ApacheCXFintegration-Propertiesdrivenbeancreation">configuring Apache CXF proprietary features without recurring to Spring descriptors</a>, have already been implemented and are coming soon.<br />
<br />
Now, you're welcome to go, <a href="http://anonsvn.jboss.org/repos/jbossws/stack/cxf/tags/jbossws-cxf-5.0.0.Beta3/">checkout JBossWS 5.0.0.Beta3 tag</a> and play with it. Or you can simply hack on the <a href="https://github.com/wildfly/wildfly">latest WildFly master</a>. (also note that WildFly 9 Beta1 is being released very soon!)<br />
Alternatively, you could also play with another recent WS release, the 1.1.0.Beta1 version of the our <i>jaxws-codefirst</i> Maven Archetype, which has just been moved to rely on JBossWS 5 Beta artifacts. You can read about it in a <a href="http://jbossws.blogspot.it/2014/09/how-to-kick-start-ws-project-in-few.html">previous post</a> of mine, but it basically boils down to simply using the following command line to kick start a WS project in few seconds:<br />
<div style="text-align: center;">
<i>mvn archetype:generate -Dfilter=org.jboss.ws.plugins.archetypes:</i> </div>
<br />
That's all for now, stay tuned, JBossWS 5 is coming... :-)Alessio Soldanohttp://www.blogger.com/profile/15231208472339526847noreply@blogger.com0tag:blogger.com,1999:blog-5362601610574554320.post-2320734292500833122014-09-23T05:37:00.000-07:002014-09-24T02:40:02.042-07:00A book on JAX-WS in WildFly and more...It was last winter when I was offered to author a book on the Web Services stack provided by JBossWS / Apache CXF in WildFly. I eventually took up the challenge and invested part my spare time on writing the book.<br />
To be honest, what really inspired me was the chance of finally being able to write down from scratch how I believe a user should approach the Web Services world and move on from the theory to real world usage scenarios.<br />
As a matter of fact, throughout the years I spent contributing and leading the JBossWS project, I've often had to deal with users picking up concepts and code snippets from books here and there and then asking why they were not achieving what they expected in JBoss AS / WildFly. This opportunity looked like a way to eventually say <i>"look, if you really don't want to read and understand the project documentation, here is a book that likely has all you need and nothing more"</i> ;-)<br />
The goal was probably a bit too ambitious, nevertheless I believe the result of my effort is definitely good.<br />
<b>So, if you want to get your hands on my <a href="http://www.itbuzzpress.com/ebooks/advanced-jax-ws-web-services.html">JAX-WS book</a>, it's currently available in electronic edition at <a href="http://www.itbuzzpress.com/ebooks/advanced-jax-ws-web-services.html">itBuzzpress.com</a> and on <a href="http://www.amazon.com/Advanced-JAX-WS-Web-Services-opensource-ebook/dp/B00NG778ZO">Amazon</a>.</b> Printed edition coming soon.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://www.itbuzzpress.com/ebooks/advanced-jax-ws-web-services.html" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://www.itbuzzpress.com/images/books/advanced_jaxws_short.jpg" /></a></div>
Alessio Soldanohttp://www.blogger.com/profile/15231208472339526847noreply@blogger.com0tag:blogger.com,1999:blog-5362601610574554320.post-44410558728535218912014-09-16T06:17:00.000-07:002014-09-16T06:17:03.154-07:00How to kick start a WS project in few secondsOne of the goals I committed to when I joined the <a href="http://jbossws.jboss.org/">JBoss Web Services</a> project back in 2007 was to improve the JBossWS tooling offer and possibly make the users' life easier when they have to deal with WS technologies.<br />
Some of the solutions we developed in this area during the past years are now surpassed, others are still here and being used (as an example, think about the <a href="http://wise.jboss.org/">Wise</a> project, which gets very limited attention from us due to lack of time, but currently powers the <a href="http://docs.jboss.org/tools/4.1.0.Final/en/ws_soap_reference/html/web_service_test_view.html">Web Service Tester</a> within <a href="http://tools.jboss.org/">JBoss Tools</a>, just to say).<br />
In the last years Maven has been adopted as the <i>de-facto</i> standard solution for building projects; as a consequence, the JBossWS team made available a couple of <a href="http://jbossws.blogspot.it/2013/02/maven-plugin-for-jaxws-tools-again.html">Maven plugins</a> for running its <a href="https://docs.jboss.org/author/display/JBWS/JAX-WS+Tools">JAX-WS tools</a> (<a href="https://docs.jboss.org/author/display/JBWS/wsconsume">wsconsume</a> and <a href="https://docs.jboss.org/author/display/JBWS/wsprovide">wsprovide</a>). As part of a customer project build it is hence possible to automatically generate a JAX-WS client or Service Endpoint Interface from a given WSDL contract and viceversa.<br />
In February last year, with the aim of further clarifying how the plugins could be leveraged in final user projects, I wrote a <a href="https://developer.jboss.org/wiki/JAXWSToolsMavenPluginSample">post on the forum </a>describing an example of the above mentioned Maven plugins.<br />
The next step was to simplify the sample project creation and that's what has been eventually addressed. <b>The JBossWS project now features a custom <a href="http://maven.apache.org/guides/introduction/introduction-to-archetypes.html">Maven Archetype</a>, basically a WS-enabled project template toolkit.</b><br />
Whenever a user needs to start a new project aiming at providing and/or consuming a JAX-WS endpoint, the <a href="https://repository.jboss.org/nexus/content/groups/public/org/jboss/ws/plugins/archetypes/jaxws-codefirst/">new <i>jaxws-codefirst</i> archetype</a> allows creating a starting project (including working build and sample helloworld client and endpoint) in few seconds. It's simply a matter of issuing a command and replying to simple questions on the desired artifact and group ids for the project being generated:<br />
<br />
<i>mvn archetype:generate -Dfilter=org.jboss.ws.plugins.archetypes:</i><br />
<br />
The generated project includes:<br />
<ul>
<li>a sample HelloWorld code-first POJO endpoint</li>
<li>an integration test that gets the WSDL contract for the above service, builds up a client and invokes the endpoint </li>
<li>a pom.xml for creating a war archive; the project has proper WS component dependencies and uses both wsprovide and wsconsume maven plugins for generating the contract for the code-first endpoint and then generating the client stubs for such contract</li>
<li>a plugin for deploying the archive on WildFly.</li>
</ul>
The project is built and tested by simply running:<br />
<br />
<i>mvn wildfly:deploy</i><br />
<i>mvn integration-test</i><br />
<br />
The build processes the various plugins and calls into the JBossWS tools to generate all the required classes for building the deployment archive and client. The user can test the sample, have a look at the project structure and then either trash the sample endpoint and testcase and replace them with his own components, or modify them step-by-step to achieve what he needs. <b>No need to start from scratch anymore :-)</b><br />
A 1.0.0.Beta1 version of the archetype is currently available; it relies on JBossWS 4.2.3.Final and is out there for early testers. I've been fixing few bugs on it recently and the plan is to release a new version, based on JBossWS 5, together with the next release of the webservices stack. So give it a try and send us your feedback; we'll try to fix any issue before the release.<br />
<ul>
</ul>
Alessio Soldanohttp://www.blogger.com/profile/15231208472339526847noreply@blogger.com1tag:blogger.com,1999:blog-5362601610574554320.post-87068309981466840902014-09-05T06:56:00.000-07:002014-09-05T06:56:23.886-07:00JBossWS 4.3.1.Final is availableWhile working on the <a href="http://jbossws.blogspot.it/2014/09/wildfly-9-and-jbossws-5-future-is-coming.html">JBossWS 5 major changes</a>, the WS team has been fixing a bunch of <a href="http://download.jboss.org/jbossws/ReleaseNotes-jbossws-cxf-4.3.1.Final.txt">bugs</a> that were reported on the 4.3.0.Final release.<br />
As it's now more then 5 months since last Final release, we've pushed a couple of <a href="http://cxf.apache.org/">Apache CXF</a> upgrades (2.7.11 and 2.7.12) into the 4.3.x maintenance branch and released a new micro version, JBossWS 4.3.1.Final.<br />
<br />
The binary and source distributions are available for <a href="http://www.jboss.org/jbossws/downloads/latest">download</a> and the latest Maven artifacts have been added to the <a href="https://repository.jboss.org/nexus/content/groups/public/org/jboss/ws/">repository</a>.<br />
The supported target containers for this release are JBoss AS 7.2.0.Final, WildFly 8.0.0.Final and WildFly 8.1.0.Final.<br />
<br />
Any feedback, just let us know :-) Alessio Soldanohttp://www.blogger.com/profile/15231208472339526847noreply@blogger.com0tag:blogger.com,1999:blog-5362601610574554320.post-22836889979901593642014-09-05T00:25:00.000-07:002014-09-05T00:25:16.154-07:00WildFly 9 and JBossWS 5, the future is coming...After few months of silence, here we are again with some webservices updates. We've been working on next major release of JBossWS the whole spring and summer and few days ago the first Beta of JBossWS 5 has been released to the <a href="http://central.maven.org/maven2/org/jboss/ws/cxf/">Maven repository</a>.<br />
So, what's new and great with JBossWS 5 ? The release notes for the first beta can be <a href="https://issues.jboss.org/secure/ReleaseNote.jspa?projectId=12310050&version=12323761">found on Jira</a> as usual, however let's go through the main changes and improvements.<br />
<h4>
Apache CXF 3</h4>
The most important component upgrade with JBossWS 5 is the move from <a href="http://cxf.apache.org/">Apache CXF</a> 2.7.x series to the 3.0.x series, which also pulls updates to Apache WSS4J 2.0.x and Apache Santuario 2.0.x. Apache CXF 3 brings a bunch of new features. The most notable one is probably the addition of WS-Security streaming support: a new <a href="http://ws.apache.org/wss4j/streaming.html">StAX based implementation of WS-Security</a> is available as an alternative to the existing DOM based one; the streaming implementation ensures better performances when dealing with large SOAP messages, as less memory is consumed to parse the message headers and the stack can completely avoid the message conversion to DOM if there's no other reason for doing that.<br />
Among the other improvements in Apache CXF 3, a more complete support of WS-RM 1.1 is provided and a new asynchronous http transport is available.<br />
<h4>
WSDL soap:address rewrite improvements</h4>
JBossWS features a mechanism for rewriting the soap:address element in the WSDL that's published for both code-first and contract-first endpoint deployments. This is commonly used to control the endpoint address that's advertised when the actual application server instances are running behind load balancer or proxy hosts. Multiple <a href="https://docs.jboss.org/author/display/WFLY9/Web+services+configuration">options</a> are available to define how the address computed by the container has to be tweaked to be a valid address for the user actually invoking the endpoint from outside of the server network. With JBossWS 5, few additional options have been added, like <a href="https://issues.jboss.org/browse/JBWS-3750">endpoint path rewrite rules</a> (supporting SED scripts) and an attribute to <a href="https://issues.jboss.org/browse/JBWS-3785">force the address scheme</a> (http or https) regardless of the transport security setup of the server.<br />
Speaking of published WSDL manipulation, <a href="https://issues.jboss.org/browse/JBWS-3628">system property expansion</a> is now also supported.<br />
<h4>
Default CXF bus selection strategy change</h4>
The concept of Apache CXF bus <a href="https://docs.jboss.org/author/display/JBWS/Apache+CXF+integration#ApacheCXFintegration-BusselectionstrategiesforJAXWSclients">selection strategy</a> has been introduced in <a href="http://jbossws.blogspot.com/2013/10/controlling-apache-cxf-bus-creation-for.html">one of the previous posts</a>. With JBossWS 5, the default strategy for JAX-WS clients running in-container (that is in WildFly, perhaps invoked by a EE component like a servlet, EJB3 bean or CDI bean) is now <a href="https://docs.jboss.org/author/display/JBWS/Apache+CXF+integration#ApacheCXFintegration-Threadcontextclassloaderbusstrategy%28TCCLBUS%29">TCCL_BUS</a>. The change is going to ensure better performances, reducing the number of Bus creations and the amount of memory used for them. The reason for such a change stands in the container basically defining a different classloader for each deployment, which is usually the proper level of isolation for JAX-WS client busses. The user can still configure the server to use the previous default behavior.<br />
<br />
<br />
The new JBossWS 5.0.0.Beta1 components, including the new Apache component dependencies, have been pushed to the current WildFly master. That basically mean that the great upcoming <a href="http://wildfly.org/">WildFly</a> 9 Beta release is going to ship with the latest webservices stack too. So either wait few days for the new container to be released or deploy the new stack from the <a href="http://anonsvn.jboss.org/repos/jbossws/stack/cxf/tags/jbossws-cxf-5.0.0.Beta1/">tagged jbossws-cxf sources</a> and get back to us with any feedback :-) Some notes on migration from previous versions of JBossWS are also being added <a href="https://developer.jboss.org/wiki/JBossWS5MigrationNotes">here</a>.<br />
We do plan to reach 5.0.0.Final by the time WildFly 9 will reach Final too.Alessio Soldanohttp://www.blogger.com/profile/15231208472339526847noreply@blogger.com2tag:blogger.com,1999:blog-5362601610574554320.post-43024422023420032712014-03-20T07:48:00.000-07:002014-03-20T07:48:52.767-07:00JBossWS 4.3.0.Final is available!A couple of days ago <a href="http://www.jboss.org/jbossws">JBossWS</a> 4.3.0.Final has been released.<br />
The latest minor release of the JBoss Web Services stack improves stability, by preventing concurrency issues and ensuring thread safety whenever required. Besides for that, the embedded Apache libraries have been updated, in particular <a href="http://cxf.apache.org/">Apache CXF</a> 2.7.10 and <a href="https://ws.apache.org/wss4j/">Apache WSS4J</a> 1.6.14 are now included.<br />
Finally, the SOAP Profile of JSR-196 (Java Authentication Service Provider Interface for Containers - JASPIC) is now supported and the JBossWS integration code comes with a <a href="https://docs.jboss.org/author/display/JBWS/Authentication#Authentication-JASPIAuthentication">predefined server authentication module</a> for relying on credentials coming in a WS-Security UsernameToken.<br />
As usual, multiple bug fixes and testsuite improvements are also part of the release. <br />
<br />
The binary and source distributions are available for <a href="http://www.jboss.org/jbossws/downloads/latest">download</a> and the latest Maven artifacts have been added to the <a href="https://repository.jboss.org/nexus/content/groups/public/org/jboss/ws/">repository</a>.<br />
Speaking of Maven repositories, it's some months now since the JBossWS artifacts are properly mirrored to the <a href="http://central.maven.org/maven2/org/jboss/ws/cxf/jbossws-cxf-client/">Maven Central repository</a>, meaning everybody can use JBossWS even without setting the JBoss Nexus repository in local Maven <i>settings.xml</i> :-)<br />
<br />
The supported target containers for this release are JBoss AS 7.2.0.Final and WildFly 8.0.0.Final. Due to the required <a href="https://community.jboss.org/wiki/JBossWS430MigrationNotes">changes in the JBossWS SPI</a>, the next version of WildFly which will be coming with JBossWS 4.3.0.Final by default will most likely be WildFly 9. Enjoy!Alessio Soldanohttp://www.blogger.com/profile/15231208472339526847noreply@blogger.com0tag:blogger.com,1999:blog-5362601610574554320.post-47732085062610587982013-10-23T05:23:00.000-07:002013-10-23T05:42:49.137-07:00Controlling Apache CXF Bus creation for JAXWS clientsJBossWS 4.2.2.Final has just been <a href="http://www.jboss.org/jbossws/news">released</a> and <a href="https://github.com/wildfly/wildfly/commit/c8212615a0d1006c1f4c652743493d297eadb1e5">installed</a> in current <a href="http://wildfly.org/">WildFly</a> master.<br />
The new version comes with <a href="http://download.jboss.org/jbossws/ReleaseNotes-jbossws-cxf-4.2.2.Final.txt">multiple bug fixes</a> as well as a <a href="https://issues.jboss.org/browse/JBWS-3713">relevant new feature</a> for controlling the <a href="http://cxf.apache.org/">Apache CXF</a> Bus creation whenever JAXWS clients are built.<br />
<br />
Basing the JAXWS functionalities of JBoss AS / WildFly on Apache CXF opened up interesting integration topics, one of them being when to create new CXF Bus instances and when / how to share them in the container. With the latest JBossWS integration release, the strategy for selecting/creating Bus instances to serve (in-container) JAXWS client can be chosen by the final user. This allows better control and can also be used for performance tuning. You can read more about the new feature in the <a href="https://docs.jboss.org/author/display/JBWS/Apache+CXF+integration#ApacheCXFintegration-BusselectionstrategiesforJAXWSclients">documentation</a>.<br />
<br />
The release also comes with upgrades to Apache CXF 2.7.7 and Apache Santuario 1.6.12.<br />
It's now time for you to <a href="http://www.jboss.org/jbossws/downloads/latest">download</a> JBossWS 4.2.2.Final, install it and give it try! Feedback is welcome as usual!<br />
<br />
The supported target containers for this release are JBoss AS 7.1.2.Final, JBoss AS 7.1.3.Final and JBoss AS 7.2.0.Final. Of course, next releases of WildFly are also going to include the new WS components.Alessio Soldanohttp://www.blogger.com/profile/15231208472339526847noreply@blogger.com0tag:blogger.com,1999:blog-5362601610574554320.post-18138179833876479322013-07-29T08:50:00.001-07:002013-07-29T08:50:39.036-07:00JBossWS 4.2.0.Final is available!I'm happy to announce that <b>JBossWS 4.2.0.Final</b> is out!<br />
The release comes with lots of new features and bug fixes. To get an idea of the most relevant new functionalities you can have a look at previous posts <a href="http://jbossws.blogspot.it/2013/04/jbossws-42-feature-preview.html">here</a>, <a href="http://jbossws.blogspot.it/2013/05/jbossws-420beta1-and-ws-discovery.html">here</a> and <a href="http://jbossws.blogspot.it/2013/06/jbossws-420cr1-and-ws-policy-sets.html">here</a>.<br />
Besides for the mentioned new features, the new version of JBossWS brings the latest and greatest <i>Apache CXF / WSS4J and Santuario</i> versions into <b>WildFly</b>, whose next release will include the whole new set of ws libraries.<br />
<br />
<br />
<div>
It's now time for you to <a href="http://www.jboss.org/jbossws/downloads/latest">download</a> JBossWS 4.2.0.Final, install and give it a try! Feedback is welcome as usual!<br />
<br /></div>
<div>
The documentation is included in the release distribution (together with the sample testsuite) and is also available at <a href="https://docs.jboss.org/author/display/JBWS">https://docs.jboss.org/author/display/JBWS</a> in its latest version (might include not-released-yet features in future).</div>
<div>
The supported target containers for this release are JBoss AS 7.1.2.Final, JBoss AS 7.1.3.Final and JBoss AS 7.2.0.Final. The current WildFly master is also being updated to the new WS components so that future WildFly releases will come with it.</div>
<div>
Have fun :-)</div>
Alessio Soldanohttp://www.blogger.com/profile/15231208472339526847noreply@blogger.com0tag:blogger.com,1999:blog-5362601610574554320.post-85761990036108131162013-06-26T09:01:00.000-07:002013-06-26T09:01:34.188-07:00JBossWS 4.2.0.CR1 and the WS-Policy setsAnother <a href="http://lists.jboss.org/pipermail/wildfly-dev/2013-June/000382.html">WildFly release</a> has just been announced... and it comes with the first 4.2.0 candidate release of JBossWS!<br />
The latest JBossWS release comes with some bug fixes over the former Beta build as well as with the last new feature we planned for addition in 4.2.0, that is additional WS-Policy <a href="https://issues.jboss.org/browse/JBWS-3648">functionalities</a> for code-first development.<br />
I've just written <a href="https://docs.jboss.org/author/display/JBWS/WS-Policy#WS-Policy-Policysets">some documentation</a>, but let me summarize the new features here: some users noticed that writing policy assertions for endpoint wsdl contracts is usually quite difficult and often represents an obstacle to quick development of ws-policy enabled endpoints prototypes.<br />
So we basically decided to provide means for users to choose desired policy assertions among a list of pre-defined groups serving well known needs / scenarios. The result is a custom <i>@PolicySets</i> annotation to list groups of policy assertions; those will be automatically attached to the proper elements in the wsdl contract that is generated at deployment time and the ws stack will behave accordingly at runtime.<br />
<script src="https://gist.github.com/asoldano/0339350341f43cae89e2.js"></script>
The JBossWS 4.2.0.CR1 artifacts come with some initial sets, more are to be added before going final (the feature is implemented, it's just a matter of deciding which set/combination of policies to grant a label). So this is yet another example where feedback is welcome... if you have suggestions for the pre-defined set to add, just post on the <a href="https://community.jboss.org/en/jbossws?view=overview">JBoss forum</a>!<br />
<br />
You can try JBossWS 4.2.0.CR1 either consuming it from the recent <a href="http://www.wildfly.org/download/">WildFly 8.0.0.Alpha2</a> or by pulling the artifacts from the Maven repository.<br />
Enjoy!Alessio Soldanohttp://www.blogger.com/profile/15231208472339526847noreply@blogger.com2tag:blogger.com,1999:blog-5362601610574554320.post-20026699483915884922013-05-15T07:28:00.000-07:002013-05-15T07:29:07.920-07:00JBossWS 4.2.0.Beta1 and WS-Discovery support<a href="http://lists.jboss.org/pipermail/wildfly-dev/2013-May/000062.html">Just in time</a> for the first release of <b>WildFly</b>, I've cut the first Beta release of <b>JBossWS 4.2</b> series and had it <a href="https://github.com/wildfly/wildfly/pull/4501">pulled</a> into the application server.<br />
<br />
The latest build includes the additions I provided a preview of in the <a href="http://jbossws.blogspot.it/2013/04/jbossws-42-feature-preview.html">previous post</a> as well as integration of few new features from <i>Apache CXF</i>. The most notable one is probably the <a href="http://docs.oasis-open.org/ws-dd/discovery/1.1/os/wsdd-discovery-1.1-spec-os.html">WS-Discovery</a> support, which you can get some preliminary doc on <a href="https://docs.jboss.org/author/display/JBWS/WS-Discovery">here</a>.<br />
Users can now have ws endpoints from selected deployments be automatically registered in a WS-Discovery service endpoint; that in turn can be queried to locate existing endpoints over the network. Nice, isn't it? :-)<br />
<br />
Feel free to give the Beta a try, artifacts are available on the Maven repo as usual. Feedback is welcome, as always!<br />
<br />Alessio Soldanohttp://www.blogger.com/profile/15231208472339526847noreply@blogger.com0tag:blogger.com,1999:blog-5362601610574554320.post-42724542916406499112013-04-18T09:48:00.000-07:002013-04-18T09:50:42.111-07:00JBossWS 4.2 feature previewThis blog post is about few additions that are coming with <b>JBossWS 4.2</b> release which I actually started working on due to some specific <a href="http://www.jboss.org/jbosstm"><b>Narayana</b></a> requirements, but ended up using for additional tasks too.<br />
<br />
Starting from version 2.1, the <i>JAX-WS API</i> contains the <a href="http://docs.oracle.com/javase/6/docs/api/javax/xml/ws/WebServiceFeature.html"><i>javax.xml.ws.WebServiceFeature</i></a> abstract class which is used to <a href="http://docs.oracle.com/javase/6/docs/api/javax/xml/ws/class-use/WebServiceFeature.html">configure clients</a>, e.g. when getting the <i>port</i> stub. The <i>JAX-WS</i> reference impl, which is also included in the <i>JDK</i>, bundles three implementations of <i>WebServiceFeature</i> for controlling <a href="http://docs.oracle.com/javase/6/docs/api/javax/xml/ws/soap/AddressingFeature.html">addressing</a>, <a href="http://docs.oracle.com/javase/6/docs/api/javax/xml/ws/soap/MTOMFeature.html">MTOM</a> and <a href="http://docs.oracle.com/javase/6/docs/api/javax/xml/ws/RespectBindingFeature.html">wsdl:extension usage</a>.<br />
<br />
As of <a href="https://repository.jboss.org/nexus/content/groups/public-jboss/org/jboss/ws/cxf/jbossws-cxf/4.2.0.Alpha1/">JBossWS 4.2.0.Alpha1</a>, a custom extension of <i>WebServiceFeature</i> is available, <a href="http://anonsvn.jboss.org/repos/jbossws/api/tags/jbossws-api-1.0.2.Alpha1/src/main/java/org/jboss/ws/api/configuration/AbstractClientFeature.java"><i>org.jboss.ws.api.configuration.AbstractClientFeature</i></a>. That offers users and project integrators a way of initializing the client <a href="http://docs.oracle.com/javase/6/docs/api/javax/xml/ws/BindingProvider.html"><i>BindingProvider</i></a>, setting handlers, etc. The JBoss project for distributed webservices transactions, Narayana, actually leveraged this addition to<a href="http://jbossts.blogspot.it/2013/04/simplified-xts-context-propagation.html"> really simplify the way users write clients</a> for <i>WS-AT</i> and <i>WS-BA</i> enabled webservices. Two custom features built on top of <i>AbstractClientFeature</i> let Narayama hide all its context propagation configuration from the user eyes ;-)<br />
<br />
Now, as most of you probably know, JBossWS also comes with a notion of <a href="https://docs.jboss.org/author/display/JBWS/Predefined+client+and+endpoint+configurations">predefined client-configuration</a> which can be used to prepare <i>JAX-WS</i> client configuration templates to associate client ports to. Configurations can include properties as well as handlers declaration and are provided either as part of the <b>JBoss AS</b> webservices subsystem configuration (<i>standalone.xml</i> / <i>domain.xml</i>) or as a separate file.<br />
The <i>AbstractClientFeature</i> extension above offered a way for also simplifying a client-configuration setup for a given <i>JAX-WS</i> client; the <a href="http://anonsvn.jboss.org/repos/jbossws/api/tags/jbossws-api-1.0.2.Alpha1/src/main/java/org/jboss/ws/api/configuration/ClientConfigFeature.java"><i>org.jboss.ws.api.configuration.ClientConfigFeature</i></a> allows specifying the name of the desired client-configuration as well as the file to read that from (null for reading from the AS model):<br />
<br />
<script src="https://gist.github.com/asoldano/d9602205b66bde0c641c.js"></script>
Nice, isn't it?
<br />
Feel free to try this as well as any other additions on JBossWS trunk, the 4.2.0 final release is coming in the next months. <b>Feedback is welcome!</b>Alessio Soldanohttp://www.blogger.com/profile/15231208472339526847noreply@blogger.com0tag:blogger.com,1999:blog-5362601610574554320.post-30133293082554677112013-02-14T01:40:00.001-08:002013-02-14T02:15:43.387-08:00Maven plugin for JAXWS tools, again!Back in March 2010 I <a href="http://jbossws.blogspot.it/2010/03/maven-plugin-for-jaxws-tools.html">wrote</a> about our <b>JBossWS Maven plugin</b> for running <a href="https://docs.jboss.org/author/display/JBWS/JAX-WS+Tools"><b>JAXWS tools</b></a> (<a href="https://docs.jboss.org/author/display/JBWS/wsconsume">wsconsume</a> and <a href="https://docs.jboss.org/author/display/JBWS/wsprovide">wsprovide</a>). The plugin allows embedding tools' invocation into user Maven projects, so that given a wsdl contract you can e.g. automatically generate stub classes and interfaces for a ws endpoint you want to implement or for an endpoint you want to build a client for.<br />
Yesterday I cut a micro <b>1.1.1.Final release</b> of the plugin (<span class="Apple-style-span" style="font-family: monospace; font-size: 13px;">org.jboss.ws.plugins:</span><span class="Apple-style-span" style="font-family: monospace; font-size: 13px;">maven-jaxws-tools-plugin</span>), which is <a href="https://repository.jboss.org/nexus/content/groups/public-jboss/org/jboss/ws/plugins/maven-jaxws-tools-plugin/1.1.1.Final/">available</a> on the usual <i>JBoss Maven repository</i>. You're welcome to go and try it.<br />
On that purpose, I've written a small <b>sample projec</b>t showing how a user project can actually use the <i>wsconsume</i> plugin. It's <a href="https://community.jboss.org/wiki/JAXWSToolsMavenPluginSample">available on the wiki</a>, have a look and see how easy it's to use it! :-)Alessio Soldanohttp://www.blogger.com/profile/15231208472339526847noreply@blogger.com4tag:blogger.com,1999:blog-5362601610574554320.post-43948513632400634282013-02-11T07:11:00.000-08:002013-02-11T07:11:11.011-08:00WS testing... Wise is back!<a href="http://www.jboss.org/wise">Wise</a> is an interesting project with the aim of simplifying webservices invocation. One of the possible <a href="https://community.jboss.org/wiki/Wise-coreProgrammerGuideversion20">usecases</a> it enables is <i>quick testing of WS endpoints without the need of generating and compiling client stubs or directly writing SOAP / XML messages</i>.<br />
<br />
I've spent some time lately on this topic and finally cut a <a href="http://www.jboss.org/wise/downloads">new release</a> of Wise including a <a href="https://community.jboss.org/wiki/WiseGUIversion10">web gui</a>. This runs of top of JBoss AS 7 and is hence based on JBossWS. <a href="http://jbosswise.blogspot.it/2013/02/wise-is-back.html">Consider having a look</a>, to me it's a convenient tool when it's time to test WS services (especially for business quality acceptance) and you don't want to get your hands dirty with code or xml (or you're not expected to do that, perhaps because you're a business quality engineer ;-) )<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://2.bp.blogspot.com/-u0C-ls4vn_k/URkJf4k8PpI/AAAAAAAABCI/3KtAIY5PTW4/s1600/wise-gui-img4.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="400" src="http://2.bp.blogspot.com/-u0C-ls4vn_k/URkJf4k8PpI/AAAAAAAABCI/3KtAIY5PTW4/s400/wise-gui-img4.png" width="286" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Wise Web GUI - Invoking a test endpoint</td></tr>
</tbody></table>
<br />Alessio Soldanohttp://www.blogger.com/profile/15231208472339526847noreply@blogger.com0tag:blogger.com,1999:blog-5362601610574554320.post-43538543123067376372013-01-30T01:26:00.001-08:002013-01-30T01:26:40.055-08:00JAX-WS tools and the Java Compiler API<br />
<div>
As of today, <b>Apache CXF</b> is well integrated into
<b>JBoss AS 7</b> and working properly through the <b>JBossWS</b> layer. The
application server satisfies the JavaEE 6 requirements (of course
including the WS related ones) and most of the Apache CXF specific
funtionalities are <a href="http://jbossws.jboss.org:8180/hudson/">continuously tested</a> by the JBossWS own testsuite
and covered in the <a href="https://docs.jboss.org/author/display/AS72/Webservices+reference+guide">application server webservices documentation</a> .</div>
<div>
<br /></div>
<div>
While we do have plans for future new features and
contributions, even directly on Apache CXF, we still have very few
action items to work on in the pure JBoss AS integration area. Last week
I dealt with one of them, which turned out to be quite interesting from
a technical point of view, so I thought it's worth to share it here.</div>
<div>
<br /></div>
<div>
It is well known that JBoss AS 7 is built on top of
the <a href="http://in.relation.to/16904.lace">modules</a>' concept and comes with a fully <a href="https://docs.jboss.org/author/display/AS71/Class+Loading+in+AS7">modular classloader</a> defined by module dependencies and really allowing controlling which
classes to load, etc. As part of the move to the new classloading
mechanism, we created modules for most of the Java EE apis that we
include in the application server, JAX-WS api being one of them. Our own JAX-WS api
module comes with a slightly modified version of the vanilla jaxws 2.2
apis, which resolves the <i>javax.xml.ws.spi.Provider</i> into the
corresponding JBossWS implementation (defaults to it, unless different
configuration is specified using the <i>Service API</i> mechanism). The jaxws
api module is then used to define the classloader for any application in
the application server, so that whenever JAXWS is required its classes are used and the
<b>JBossWS (Apache CXF based) implementation is automatically used</b> under
the hood. Besides for the fact that we're easily enforcing usage of our
JAX-WS impl this way, the real benefit of such an approach is that we
always <b>control the JAX-WS api level</b> (currently 2.2) in use.</div>
<div>
<br /></div>
<div>
As a matter of fact, a mismatch in JAXWS api version
is usually a common source of major final user headaches; the reason
for that is basically in JDK 6 (well, actually starting from update 4)
coming with JAXWS 2.1 api included. Unless the bootclasspath is properly
modified by setting the <i>java.endorsed.dirs</i> env to a directory containing the jaxws 2.2 api jar when starting the virtual machine, 2.1 api classes
from the JDK will always be used by default whenever making use of
JAX-WS apis. Users will eventually forget about that, make mistakes in
setting that, get confused with tools / IDE configuration of that,
etc... and not understand what's really happening and why they're
getting bunch of errors.</div>
<div>
<br /></div>
<div>
JBoss AS 7 relies on JBoss Modules for modular
classloading and does not require any <i>java.endorsed.dirs</i> setup when
booting the AS. So far so good :-)</div>
<div>
JBossWS (as well as Apache
CXF) however provides JAX-WS tools for wsdl-to-java and java-to-wsdl
generation; each of them comes with <i>wsconsume.sh/bat</i> and <i>wsprovide.sh/bat</i>
scripts to execute on command line. The tools internally rely on Apache
CXF corresponding tools, which generate code and compile it. In order
for having CXF compile jaxws 2.2 compliant code, we used to need setting
the <i>java.endorsed.dirs</i> env in the wsconsume and wsprovide scripts,
failing that the code couldn't simply be compiled, because CXF runs
<i>javac</i> which would of course get the JAXWS api directly from the JDK.</div>
<div>
<br /></div>
<div>
So, a <a href="https://issues.jboss.org/browse/AS7-6355">jira</a> has been created for fixing this, as
we do not want to set the <i>java.endorsed.dirs</i> anymore, even for ws tools.
How to solve this then?</div>
<div>
Fortunately, Apache CXF tools
recently moved to direct usage of <b>Java Compiler API</b> to compile sources,
instead of forking a process for running javac (forking is still
possible, yet not the default behaviour). Starting from JDK 6, the Java
Compiler API (JSR-199) offers a powerfull (yet quite complicated) way of
creating a compilation task and supplying source files to it for being
compiled. Below is an excerpt of the CXF code making use of JSR-199:</div>
<div>
<br /></div>
<script src="https://gist.github.com/4671804.js"></script>
<div>
<br /></div>
<div>
The <a href="http://docs.oracle.com/javase/6/docs/api/javax/tools/JavaFileManager.html">javax.tools.JavaFileManager</a> interface allows
for controlling loading of any class involved in the compilation task;
it's possible to define and install a custom <a href="http://docs.oracle.com/javase/6/docs/api/javax/tools/ForwardingJavaFileManager.html">ForwardingJavaFileManager</a> to
override the methods that actually fetch and provide the bytecode for
any class.</div>
<div>
<br /></div>
<div>
So, what we ended up in <a href="https://source.jboss.org/viewrep/JBossWS/stack/cxf/trunk/modules/client/src/main/java/org/jboss/wsf/stack/cxf/tools/CXFConsumerImpl.java?r1=16758&r2=17246">doing here</a> was to define an extension of <i>ForwardingJavaFileManager</i> that would <b>intercept requests for
the JAXWS</b> (and JAXB...) <b>api classes, load the corresponding ones from our
JBoss Module classloader, read their bytecode and create proper
<a href="http://docs.oracle.com/javase/6/docs/api/javax/tools/JavaFileObject.html">JavaFileObject</a> instances to return to the JDK compiler</b>. It took a while
to write a decent JavaFileManager implementation (also considering I didn't want
any JBoss Module specific code in it in JBossWS), but it finally worked and <b>allowed
compiling jaxws 2.2 code with JDK6 and no endorsing configuration</b>.</div>
<div>
<br /></div>
<div>
Then, the usual JBossWS open source <b>integration
process</b> started, as I had to figure out how to extend Apache CXF in a
general way so that I could made my JavaFileManager available <a href="http://svn.apache.org/repos/asf/cxf/tags/cxf-2.7.2/api/src/main/java/org/apache/cxf/common/util/Compiler.java">deep</a> into the CXF
tools code. Once again, the <i>Apache CXF community proved to be really
open</i> to extensions and contributions even for really specific stuff like
this and the Apache CXF project lead even figured out possible
<a href="http://mail-archives.apache.org/mod_mbox/cxf-dev/201301.mbox/%3C2F7A988A-F0AF-434D-B287-0F3AD5A3249D%40apache.org%3E">different scenarios that would benefit</a> from my extension. So a CXF <a href="https://issues.apache.org/jira/browse/CXF-4777">jira</a> was created, we discussed design a bit on IRC and I committed my changes on
Apache CXF and JBossWS.<br />
<br /></div>
<div>
A new Apache CXF release is coming out very soon and hopefully by
the end of next week I'll be able to include it in JBoss AS upstream and
fix the <i>wsconsume/wsprovide</i> command line scripts, <b>cool!</b></div>
<div>
<br /></div>
<div>
This is what <b>integration</b> really means to me :-)</div>
<div>
</div>
Alessio Soldanohttp://www.blogger.com/profile/15231208472339526847noreply@blogger.com0tag:blogger.com,1999:blog-5362601610574554320.post-76876662625325903052012-10-16T03:02:00.001-07:002012-10-16T03:11:18.379-07:00JBossWS 4.1.0.Final has been released!It's been a long ride, but today I can finally announce that <b>JBossWS 4.1.0.Final</b> is out!<br />
This release is the result of 6+ months of work on integrating most of the latest <a href="http://cxf.apache.org/">Apache CXF</a> additions as well as providing new options and mechanisms for better stack configuration on <b>JBoss AS</b>.<br />
On June I <a href="http://jbossws.blogspot.it/2012/06/looking-at-next-future-jbossws-41.html">introduced</a> some of 4.1 news just after having released the first Beta; below is a brief summary of what has finally been included in Final.<br />
<h4>
Apache CXF 2.6</h4>
We've moved the integration to <b>Apache CXF 2.6.3</b>, which comes with relevant improvements and new features in multiple areas, including WS-Security, WS-MetadataExchange and WS-ReliableMessaging.<br />
<h4>
WS-Security work</h4>
First of all, I finally had chance to go through most of the WS-Trust recent improvements in CXF and verify the integration on JBoss AS 7. In particular, I tried some of the most common WS-Trust scenarios and verified it's possible to deploy and successfully use a Security Token Service (STS) based on either the Apache CXF STS implementation or the <a href="http://www.jboss.org/picketlink">PicketLink</a> STS one. A sample application (whose sources are also included in the binary release distribution) is <a href="https://docs.jboss.org/author/display/JBWS/WS-Trust+and+STS">covered in the documentation</a>.<br />
Besides WS-Trust, I've also enriched the JBossWS testsuite to verify most of the <a href="http://docs.oasis-open.org/ws-sx/security-policy/examples/ws-sp-usecases-examples.html">WS-SecurityPolicy Examples 1.0</a> scenarios (already <a href="http://coheigea.blogspot.com/2011/12/ws-securitypolicy-examples-in-apache.html">implemented in Apache CXF testsuite</a>) are also easily implemented on top of JBoss AS leveraging the JBossWS integration; once again, this shows how many (amazing) security policy functionatities Apache CXF brings into our application server.<br />
Finally, speaking of security, it's important to mention that this release (including transitive dependencies), comes with few security vulnerabilities fixes in multiple areas, so you should definitely upgrade.<br />
<h4>
Configuration improvements</h4>
The <i>jboss-webservices.xml</i> descriptor <a href="https://docs.jboss.org/author/display/JBWS/Apache+CXF+integration#ApacheCXFintegration-Deploymentdescriptorproperties">has been enhanced</a> to allow passing in properties for controlling some of the Apache CXF internals potentially affecting runtime integration, e.g. the queue depth of the asynchronous (@OneWay) work queue, or the server side preferred policy alternative selector.<br />
Besides that, we've completed the work around the <a href="https://docs.jboss.org/author/display/JBWS/Predefined+client+and+endpoint+configurations">predefined client/endpoint configurations</a> mechanism that was started in 4.0.x series. This comes with a great flexibility and enables interesting user scenarios; you can e.g. define a common handler to be plugged in any handler chain of clients / endpoints of a given group (even spanning multiple deployments), or enable schema validation on messages exchanged by those clients / enpoints... all without touching the user deployments, but by simply editing the referred configuration in the JBoss domain (e.g. in standalone.xml) or in a file descriptor.<br />
<h4>
Other improvements</h4>
There's of course much more in this release, including:<br />
<br />
<ul>
<li>verified IPv6 support</li>
<li>rewritten JAX-WS POJO invocation mechanism, to enable CDI injections in WS endpoints in the next future</li>
<li>WSProvide option for specifying soap:address location to use in generated wsdl</li>
<li>improved testsuite (execution time, memory footprint, code & feature coverage)</li>
<li>a lot of bug fixes</li>
</ul>
<div>
Please have a look at the <a href="http://download.jboss.org/jbossws/ReleaseNotes-jbossws-cxf-4.1.0.Final.txt">release notes</a> for the complete list of changes.</div>
<div>
<br /></div>
<div>
Finally a note on the JBossWS multiple stack integration efforts; as previously announced JBossWS-Native reached EOL and is not being released as full stack to the community anymore. Its sub-components have been slimmed down to the minimum required for still supporting JAX-RPC and it is included as support library for JBossWS-CXF into JBoss AS.</div>
<div>
<br /></div>
<div>
It's now time for you to <a href="http://www.jboss.org/jbossws/downloads">download</a> JBossWS 4.1.0.Final, install and give it a try! Feedback is welcome as usual!</div>
<div>
The documentation is included in the release distribution (together with the sample testsuite) and is also available at <a href="https://docs.jboss.org/author/display/JBWS">https://docs.jboss.org/author/display/JBWS</a> in its latest version (might include not-released-yet features in future).</div>
<div>
The supported target containers for this release are JBoss AS 7.1.0.Final, JBoss AS 7.1.1.Final and JBoss AS 7.1.2.Final. The current AS master is also being updated to the new WS components so that future AS releases will come with it.</div>
<div>
Have fun :-)</div>
Alessio Soldanohttp://www.blogger.com/profile/15231208472339526847noreply@blogger.com0tag:blogger.com,1999:blog-5362601610574554320.post-78250862157602206702012-06-11T02:25:00.000-07:002012-06-11T02:25:15.401-07:00Looking at the next future... JBossWS 4.1With the summer coming, it's now few months since the last 4.0.x release of JBossWS. While working on finalizing <a href="http://www.redhat.com/products/jbossenterprisemiddleware/application-platform/">JBoss Enterprise Application Platform 6</a>, the WS team here has started the <b>JBossWS 4.1 dev cycle</b>.<br />
Last week, the <b>first Beta version has been released</b>, covering a bunch of new features on topics we identified during the last year and which could not fit the former 4.0 cycle. Here is a list of the most noteworthy ones in <i>4.1.0.Beta1</i>:<br />
<br />
<ul>
<li><b>Upgrade to <a href="http://cxf.apache.org/">Apache CXF</a> 2.6.1</b>: this comes with many bug fixes and new features from Apache CXF side, like eg. WS-ReliableMessaging 1.1 support, lots of improvements in WS-Security area, WS-MetadataExchange (Aug 2006 spec) support, ...</li>
<li><b>Apache CXF Security Token Service (STS) integration</b>: one of most active area in CXF development lately, which is now verified to work properly under the JBoss WS 4.1 / JBoss AS 7.1 integration</li>
<li><b>Configurability improvements</b>: the <i>jboss-webservices.xml</i> descriptor has been enhanced to allow passing in properties for controlling some of the Apache CXF internals potentially affecting runtime integration, e.g. the queue depth of the asynchronous (@OneWay) work queue, or the server side preferred policy alternative selector</li>
<li><b>IPv6 support</b>: with the world finally really <a href="http://www.worldipv6launch.org/">moving to IPv6</a>, we've gone through yet another IPv6 testing phase and are currently able to successfully run the whole JBossWS testsuite against JBoss AS 7.1 using IPv6</li>
<li><b>JBossWS-Native cleanup</b>: after years of coexistence of multiple JBossWS integration stacks, the time for putting the old JBossWS-Native to EOL has come. As a consequence, we've slimmed down its sub-components to the minimum required for still supporting JAX-RPC and be included as support library for JBossWS-CXF into JBoss AS. Long life to the JBossWS integration with Apache CXF!</li>
</ul>
<div>
This is a beta, basically because we've further new features to add and many tests / verification still to run, so any contribution and feedback from the community is more then welcome, as usual. This time, however, we also come with two development-related only changes that are likely to ease testing:</div>
<div>
<ul>
<li><i>Parallel / concurrent testsuite run</i>: the JBossWS testsuite has been revisited and multiple tests are now executed at the same time. No need for any change on user side, a couple of minutes less for a full run and few bugs isolated thanks for the new testing conditions ;-)</li>
<li><i>Reduced testsuite memory footprint</i>: I've been profiling the testsuite (client side) and optimized it a bit, so that you can have concurrent runs even if you don't have tons of RAM ;-)</li>
</ul>
<div>
That's all for now. JBossWS 4.1.0.Beta1 has been installed on the current JBoss AS 7.2 master and the artifacts are available on the <a href="https://repository.jboss.org/nexus/content/groups/public-jboss/org/jboss/ws/">Maven repository</a>. The release notes are <a href="https://issues.jboss.org/secure/ReleaseNote.jspa?projectId=12310050&version=12319565">here</a>.</div>
</div>
<div>
<br /></div>
<div>
Expect more to come during the summer!</div>Alessio Soldanohttp://www.blogger.com/profile/15231208472339526847noreply@blogger.com6Milan, Italy45.463681 9.188171445.3745885 9.0302429 45.5527735 9.3460999