Showing posts with label maven. Show all posts
Showing posts with label maven. Show all posts

Tuesday, September 16, 2014

How to kick start a WS project in few seconds

One of the goals I committed to when I joined the JBoss Web Services 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.
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 Wise project, which gets very limited attention from us due to lack of time, but currently powers the Web Service Tester within JBoss Tools, just to say).
In the last years Maven has been adopted as the de-facto standard solution for building projects; as a consequence, the JBossWS team made available a couple of Maven plugins for running its JAX-WS tools (wsconsume and wsprovide). 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.
In February last year, with the aim of further clarifying how the plugins could be leveraged in final user projects, I wrote a post on the forum describing an example of the above mentioned Maven plugins.
The next step was to simplify the sample project creation and that's what has been eventually addressed. The JBossWS project now features a custom Maven Archetype, basically a WS-enabled project template toolkit.
Whenever a user needs to start a new project aiming at providing and/or consuming a JAX-WS endpoint, the new jaxws-codefirst archetype 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:

mvn archetype:generate -Dfilter=org.jboss.ws.plugins.archetypes:

The generated project includes:
  • a sample HelloWorld code-first POJO endpoint
  • an integration test that gets the WSDL contract for the above service, builds up a client and invokes the endpoint
  • 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
  • a plugin for deploying the archive on WildFly.
The project is built and tested by simply running:

mvn wildfly:deploy
mvn integration-test

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. No need to start from scratch anymore :-)
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.

Thursday, February 14, 2013

Maven plugin for JAXWS tools, again!

Back in March 2010 I wrote about our JBossWS Maven plugin for running JAXWS tools (wsconsume and wsprovide). 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.
Yesterday I cut a micro 1.1.1.Final release of the plugin (org.jboss.ws.plugins:maven-jaxws-tools-plugin), which is available on the usual JBoss Maven repository. You're welcome to go and try it.
On that purpose, I've written a small sample project showing how a user project can actually use the wsconsume plugin. It's available on the wiki, have a look and see how easy it's to use it! :-)

Thursday, December 22, 2011

Christmas releases!

It's Xmas time and here we are with many great releases!

Few hours ago, JBoss Application Server 7.1.0 CR1 has been released: it comes with over 370 jira resolved, numerous management and clustering improvements and the EE6 Full Profile support is feature complete.

Speaking of web services, one of the AS 7.1.0.CR1 updated components is JBossWS 4.0.0.GA, which has been released yesterday and is available for download starting from today.
The first final version of the JBossWS 4 series solves few minor issues over the previously announced and described CR1 version. Have a look at the release notes and documentation for further details!

Finally, I've also released the 1.1.0.GA version of the JBoss JAX-WS Maven Plugin, which basically introduces support for the new JBossWS 4 stacks and fixes an important bug for those leveraging the Maven War Plugin too in their maven project. The artifacts are available as usual on the maven repository.

Definitely a lot of stuff to play with during the Christmas vacations ;-) Enjoy!

JBossWS 5.4.0.FInal is released !

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