Friday, September 5, 2014

JBossWS 4.3.1.Final is available

While working on the JBossWS 5 major changes, the WS team has been fixing a bunch of bugs that were reported on the 4.3.0.Final release.
As it's now more then 5 months since last Final release, we've pushed a couple of Apache CXF 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.

The binary and source distributions are available for download and the latest Maven artifacts have been added to the repository.
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.

Any feedback, just let us know :-)

WildFly 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 Maven repository.
So, what's new and great with JBossWS 5 ? The release notes for the first beta can be found on Jira as usual, however let's go through the main changes and improvements.

Apache CXF 3

The most important component upgrade with JBossWS 5 is the move from Apache CXF 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 StAX based implementation of WS-Security 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.
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.

WSDL soap:address rewrite improvements

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 options 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 endpoint path rewrite rules (supporting SED scripts) and an attribute to force the address scheme (http or https) regardless of the transport security setup of the server.
Speaking of published WSDL manipulation, system property expansion is now also supported.

Default CXF bus selection strategy change

The concept of Apache CXF bus selection strategy has been introduced in one of the previous posts. 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 TCCL_BUS. 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.


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 WildFly 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 tagged jbossws-cxf sources and get back to us with any feedback :-) Some notes on migration from previous versions of JBossWS are also being added here.
We do plan to reach 5.0.0.Final by the time WildFly 9 will reach Final too.

Thursday, March 20, 2014

JBossWS 4.3.0.Final is available!

A couple of days ago JBossWS 4.3.0.Final has been released.
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 Apache CXF 2.7.10 and Apache WSS4J 1.6.14 are now included.
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 predefined server authentication module for relying on credentials coming in a WS-Security UsernameToken.
As usual, multiple bug fixes and testsuite improvements are also part of the release.

The binary and source distributions are available for download and the latest Maven artifacts have been added to the repository.
Speaking of Maven repositories, it's some months now since the JBossWS artifacts are properly mirrored to the Maven Central repository, meaning everybody can use JBossWS even without setting the JBoss Nexus repository in local Maven settings.xml :-)

The supported target containers for this release are JBoss AS 7.2.0.Final and WildFly 8.0.0.Final. Due to the required changes in the JBossWS SPI, the next version of WildFly which will be coming with JBossWS 4.3.0.Final by default will most likely be WildFly 9.  Enjoy!

Wednesday, October 23, 2013

Controlling Apache CXF Bus creation for JAXWS clients

JBossWS 4.2.2.Final has just been released and installed in current WildFly master.
The new version comes with multiple bug fixes as well as a relevant new feature for controlling the Apache CXF Bus creation whenever JAXWS clients are built.

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 documentation.

The release also comes with upgrades to Apache CXF 2.7.7 and Apache Santuario 1.6.12.
It's now time for you to download JBossWS 4.2.2.Final, install it and give it try! Feedback is welcome as usual!

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.

Monday, July 29, 2013

JBossWS 4.2.0.Final is available!

I'm happy to announce that JBossWS 4.2.0.Final is out!
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 here, here and here.
Besides for the mentioned new features, the new version of JBossWS brings the latest and greatest Apache CXF / WSS4J and Santuario versions into WildFly, whose next release will include the whole new set of ws libraries.


It's now time for you to download JBossWS 4.2.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.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.
Have fun :-)

Wednesday, June 26, 2013

JBossWS 4.2.0.CR1 and the WS-Policy sets

Another WildFly release has just been announced... and it comes with the first 4.2.0 candidate release of JBossWS!
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 functionalities for code-first development.
I've just written some documentation, 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.
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 @PolicySets 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.
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 JBoss forum!

You can try JBossWS 4.2.0.CR1 either consuming it from the recent WildFly 8.0.0.Alpha2 or by pulling the artifacts from the Maven repository.
Enjoy!

Wednesday, May 15, 2013

JBossWS 4.2.0.Beta1 and WS-Discovery support

Just in time for the first release of WildFly, I've cut the first Beta release of JBossWS 4.2 series and had it pulled into the application server.

The latest build includes the additions I provided a preview of in the previous post as well as integration of few new features from Apache CXF. The most notable one is probably the WS-Discovery support, which you can get some preliminary doc on here.
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? :-)

Feel free to give the Beta a try, artifacts are available on the Maven repo as usual. Feedback is welcome, as always!