Eclipse Metro

{{Short description|Web service stack}}

{{more citations needed|date=June 2021}}

{{Infobox software

| name = Metro

| logo =

| logo caption =

| logo alt =

| logo size =

| collapsible =

| screenshot =

| screenshot size =

| screenshot alt =

| caption =

| other_names =

| author = Sun Microsystems

| developer = Eclipse Foundation

| released = {{Start date and age|2007|09|17}}

| ver layout =

| discontinued =

| latest release version = 3.0.1

| latest release date = {{Start date and age|2021|04|14}}

| latest preview version =

| latest preview date =

| repo =

| qid =

| programming language = Java

| middleware =

| engine =

| operating system =

| platform = Jakarta EE

| included with =

| replaces =

| replaced_by =

| service_name =

| size =

| standard =

| language =

| language count =

| language footnote =

| genre = web service framework

| license = {{ill|Eclipse Distribution License|lt=EDL 1.0|qid=Q26245522}}

| website = {{official URL}}

| AsOf =

}}

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.{{cite web|url=https://metro.dev.java.net/discover/ |title=metro: Discover Metro |url-status=dead |archiveurl=https://web.archive.org/web/20070708134345/https://metro.dev.java.net/discover/ |archivedate=2007-07-08 }} 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,{{cite web|url=http://metro.java.net/discover/faq.html|title=metro: Metro FAQ}} it is now available under {{ill|Eclipse Distribution License|qid=Q26245522}}

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.{{cite web |last=Gupta |first=Arun |date=2007-06-19 |df=mdy |title=Announcing Metro - Naming the Web Services stack in GlassFish |department=Miles to go… |website=blogs.sun.com |url=http://blogs.sun.com/arungupta/entry/announcing_metro_naming_the_web |archive-url=https://web.archive.org/web/20090926144443/http://blogs.sun.com/arungupta/entry/announcing_metro_naming_the_web |archive-date=2009-09-26}}

Features

Metro compares well with other web service frameworks in terms of functionality. Codehaus started a comparison{{cite web |title=Stack Comparison |department=XFire |website=xfire.codehaus.org |url=http://xfire.codehaus.org/Stack+Comparison |archive-url=https://web.archive.org/web/20061230114334/http://xfire.codehaus.org/Stack+Comparison |archive-date=2006-12-30}} 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.{{cite web |title=StackComparison |department=Apache Web Services Wiki |website=Apache Wiki Farm |url=https://wiki.apache.org/ws/StackComparison |archive-url=https://web.archive.org/web/20170904141955/https://wiki.apache.org/ws/StackComparison |archive-date=2017-09-04}}

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.{{Cite web|url=https://metro.java.net/discover/faq.html|title = Metro}}

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

class="wikitable"

| 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.{{cite web |title=JAX-WS FAQ |website=jax-ws |url=https://jax-ws.dev.java.net/faq/index.html#different_versions |archive-url=https://web.archive.org/web/20070807124130/https://jax-ws.dev.java.net/faq/index.html#different_versions |archive-date=2007-08-07}}

Metro is bundled with numerous application servers such as:{{cite web |last=Gupta |first=Arun |date=2007-07-22 |df=mdy |title=Metro - Now on Tomcat 6.x also |department=GlassFish |website=blogs.sun.com |url=http://blogs.sun.com/theaquarium/entry/metro_now_on_tomcat_6 |archive-url=https://web.archive.org/web/20090615134727/http://blogs.sun.com/theaquarium/entry/metro_now_on_tomcat_6 |archive-date=2009-06-15}}

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.

References

{{Reflist}}