Tuesday, October 16, 2012

JBossWS 4.1.0.Final has been released!

It's been a long ride, but today I can finally announce that JBossWS 4.1.0.Final is out!
This release is the result of 6+ months of work on integrating most of the latest Apache CXF additions as well as providing new options and mechanisms for better stack configuration on JBoss AS.
On June I introduced 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.

Apache CXF 2.6

We've moved the integration to Apache CXF 2.6.3, which comes with relevant improvements and new features in multiple areas, including WS-Security, WS-MetadataExchange and WS-ReliableMessaging.

WS-Security work

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 PicketLink STS one. A sample application (whose sources are also included in the binary release distribution) is covered in the documentation.
Besides WS-Trust, I've also enriched the JBossWS testsuite to verify most of the WS-SecurityPolicy Examples 1.0 scenarios (already implemented in Apache CXF testsuite) 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.
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.

Configuration improvements

The jboss-webservices.xml 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.
Besides that, we've completed the work around the predefined client/endpoint configurations 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.

Other improvements

There's of course much more in this release, including:

  • verified IPv6 support
  • rewritten JAX-WS POJO invocation mechanism, to enable CDI injections in WS endpoints in the next future
  • WSProvide option for specifying soap:address location to use in generated wsdl
  • improved testsuite (execution time, memory footprint, code & feature coverage)
  • a lot of bug fixes
Please have a look at the release notes for the complete list of changes.

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.

It's now time for you to download JBossWS 4.1.0.Final, install and give it a try! Feedback is welcome as usual!
The documentation is included in the release distribution (together with the sample testsuite) and is also available at https://docs.jboss.org/author/display/JBWS in its latest version (might include not-released-yet features in future).
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.
Have fun :-)

Monday, June 11, 2012

Looking at the next future... JBossWS 4.1

With the summer coming, it's now few months since the last 4.0.x release of JBossWS. While working on finalizing JBoss Enterprise Application Platform 6, the WS team here has started the JBossWS 4.1 dev cycle.
Last week, the first Beta version has been released, 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 4.1.0.Beta1:

  • Upgrade to Apache CXF 2.6.1: 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, ...
  • Apache CXF Security Token Service (STS) integration: 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
  • Configurability improvements: the jboss-webservices.xml 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
  • IPv6 support: with the world finally really moving to IPv6, 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
  • JBossWS-Native cleanup: 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!
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:
  • Parallel / concurrent testsuite run: 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 ;-)
  • Reduced testsuite memory footprint: 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 ;-)
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 Maven repository. The release notes are here.

Expect more to come during the summer!

Thursday, April 12, 2012

WS endpoints on OpenShift

OpenShift is the Red Hat's Cloud Computing Platform as a Service (PaaS) offering. OpenShift is an application platform in the cloud where application developers and teams can build, test, deploy, and run their applications.

OpenShift supports multiple cartridges, one of them being the JBoss Application Server 7.1 one. In few words, it's possible to have an AS 7.1 instance run on the cloud in few clicks.

One of the point of implementing WebServices standards is in ensuring interoperability. But for checking actual interoperability, vendors need to have public endpoints available for those willing to try them. The JBossWS project used to have them, but unfortunately they've gone up and down multiple times for multiple reasons and have not been maintained a lot.

So, given I actually wanted to check some WS endpoint deployments on OpenShift, yesterday I decided to code a really skinny webapp and upload it together with some endpoints on my OpenShift account. That allows everybody to invoke the endpoints and use few test clients there to call back to their endpoints.

The endpoints are some of the JBossWS-CXF testsuite archives, no changes required. The web app is a very simple CDI + JSF application, delegating to very simple JAX-WS clients whose code is again taken from the JBossWS-CXF testsuite. The covered scenarios are WS-Security Policy ones at the moment, but further ones might come in the future.

You can give this a try at [1]

The webapp sources are at [2] . Those willing to simply run an equivalent openshift application on their account, can simply clone a github mirror of my application I have at [3].
Finally, if you need any direction on creating and managing OpenShift applications, these are good starting points: [4], [5].

The first good piece of news is that besides the need for enabling the JMX subsystem on AS7.1 on OpenShift (to workaround [6]), I found no actual road-blocks to both deploying and invoking the endpoints (and the ws client webapp). Besides that... some JBossWS interop endpoints are finally back ;-)

Happy testing ;-)

Saturday, April 7, 2012

April 12th: a JBoss day in Northern Italy

Next week is going to be a hot one for those interested in learning more about JBoss technologies in Italy!

JBug Milan next meeting is scheduled for April 12th: Stefano Maestri and Sanne Grinovero are presenting on the JBoss Application Server 7 and Hibernate Search & Lucene. The meeting is going to be hosted by InfoCamere in Padua.

Just few hours later, the 47th meeting of the Milan Java User Group is also scheduled, at Veespo in Milan city center. There I'm presenting on the JBossWS project, with a special focus on the webservice functionality the project brings to JBoss Application Server 7.

If you happen to be around, definitely consider joining us!

Monday, February 20, 2012

JBoss Application Server 7.1.0

Last week marked one of the largest releases in JBoss history: JBoss AS 7.1.0.Final "Thunder" is finally out. You can read about the shiny features and achievements that come with the release in any of the multiple posts that have been published these days [1][2][3][4], AS 7.1.0.Final really deserves being tried, you'll love it ;-)

Here I'd just like to stress the relevance of having achieved JavaEE 6 Full Profile compliance. JBoss AS 7.1.0 satisfies all JavaEE compatibility requirements, allowing for real portability of nowadays enterprise Java applications. Regardless of that, AS 7.1.0.Final is still faster, smaller and more manageable than any previous JBoss AS release.

From a webservice point of view, officially achieving JavaEE Full Profile compatibility is the result of more then an year of hard working with TCKs (even before AS 7 actual development start!), given the ws related test groups are among the biggest ones in there.
Finally, I believe this is a great result / milestone also for the Apache CXF project, as JBossWS 4.0.1 installed on JBoss AS 7.1.0 relies on Apache CXF 2.4.6 for serving any JAX-WS functionality.

Time to try JBoss AS 7.1 ! http://www.jboss.org/jbossas/downloads

Sunday, February 5, 2012

JBossWS 4.0.1 release

JBoss AS 7.1.0.Final is coming soon, so here we are with the last minute updates in the webservices area with another JBossWS release ;-)
JBossWS 4.0.1 includes important bug fixes and covers some application server integration changes for improving management. Besides that Apache CXF has been upgraded to the 2.4.6 release which also comes with many improvements and bug fixes.

Have a look at the release notes for further details [1][2]! Feedback is welcome as always.