I think this move is a bit like the one we did with JWSDP, for those of you who remember. Back then, we've been developing a bunch of composable but independent technologies (JAXP, JAXB, JAXM, SAAJ, JAX-RPC, JAXR, ...), and we realized that for most people they are too fine-grained. It is more convenient to be able to get them in a bundle, with a lot of testing to ensure that pieces work together.
In many ways, Metro is just that. The JAX-WS RI is made highly extensible and pluggable, so that enabled us to build composable but independent features (like transaction, security, reliability, custom transports, Spring support, JSON, ...) on top of the basic web service.
But for most users, especially for those who are not using a dependency management system like Ivy or Maven, this is actually a nightmare, because you need to deal with a dozen or more of small jars. And as the number of configuration increases, people feel less comfortable about whether their particular configuration is tested.
Another goal of Metro is to enable us to consolidate documentation and samples. Today, the core JAX-WS RI has its own set of samples, documents, and FAQs. So does WSIT. While it wasn't intended, we ended up asking our users to figure out whether a particular topic that they were looking for falls into WSIT, JAX-WS RI, or jax-ws-commons.
This launch is not the end of this effort, but rather the start of it. In fact internally we call this phase 1, so for now, we have website, downloadable bundle (both milestone release and nightlies), but samples and documentation are incomplete. The phase 2 will include the followings:
- Unify the existing WSIT samples into Metro
- Unify documentation
- Cut down the size of jars significantly by removing pieces like JAX-RPC
- Bring WSIT tooling into Metro
Let us know what you think.