Eclipse Metro
# Eclipse Metro

Metro is a high-performance, extensible, easy-to-use web service stack. Although historically an open-source part of the GlassFish application server, it can also be used in a stand-alone configuration. Components of Metro include: JAXB RI, JAX-WS RI, SAAJ RI, StAX (SJSXP implementation) and WSIT. Originally available under the CDDL and GPLv2 with classpath exception, it is now available under Eclipse Distribution License [Wikidata]

## History

Originally, the Glassfish project developed two semi-independent projects:

* JAX-WS RI, the Reference implementation of the JAX-WS specification
* WSIT, a Java implementation of some of the WS-* and an enhanced support for interoperability with the .NET Framework. It is based on JAX-WS RI as "Web Service layer".

In June 2007, it was decided to bundle these two components as a single component named Metro.

## Features

Metro compares well with other web service frameworks in terms of functionality. Codehaus started a comparison which compared Apache Axis 1.x, Axis 2.x, Celtix, Glue, JBossWS, Xfire 1.2 and JAX-WS RI + WSIT (the bundle was not yet named Metro at that time). This was later updated by the ASF to replace Celtix with CXF and to include OracleAS 10g.

Metro includes JAXB RI, JAX-WS RI, SAAJ RI, SJSXP, and WSIT, along with libraries that those components depend on, such as xmlstreambuffer, mimepull, etc.

Its features include:

* Basic Profile 1.1 Compliant
* Easily Create Services from POJOs
* RPC-Encoding
* Spring Support
* REST Support
* Soap 1.1/1.2
* Streaming XML (StAX based)
* WSDL 1.1 ->Code (Client)/(Server)
* Server and Client-side Asynchrony

Supported WS-* Standards

| WS-Addressing | WS-Atomic Transaction | WS-Coordination |
| - | - | - |
| WS-Metadata Exchange | WS-ReliableMessaging | WS-Policy |
| WS-Secure Conversation | WS-Security Policy | WS-Security |
| WS-Trust | WSDL 1.1 Support | |

Supported Transport protocols include:

* HTTP
* JMS
* SMTP/POP3
* TCP
* In-VM

Metro augments the JAX-WS environment with advanced features such as trusted, end-to-end security; optimized transport (MTOM, Fast Infoset), reliable messaging, and transactional behavior for SOAP web services.

## Market share

Metro is bundled with Java SE 6 in order to allow consumers of Java SE 6 to consume Web Services.

Metro is bundled with numerous application servers such as:

* GlassFish
* Sun Java System Application Server Platform Edition 9.x
* Oracle WebLogic Server
* JBoss (version 5.x only)
* TmaxSoft JEUS 6.x

The JAXB reference implementation developed for Metro is used in virtually every Java Web Services framework (Apache Axis2, Codehaus XFire, Apache CXF) and Application Servers.

