Metro 2.2 One Pager

(template version 1.92)

1. Introduction

1.1. Project/Component Working Name:

Metro 2.2

1.2. Name(s) and e-mail address of Document Author(s)/Supplier:

Martin Grebac: snajper at java dot net
Kumar Jayanti: kumarjayanti at java dot net
Jitendra Kotamraju: jitu at java dot net
Rama Pulavarthi: ramapulavarthi at java dot net
Fabian Ritzmann: ritzmann at java dot net

1.3. Date of This Document:

04/26/11

2. Project Summary

2.1. Project Description:

Metro Web Services stack evolution

2.2. Risks and Assumptions:

WLS common logging, monitoring and management requirements have not been received to date.

3. Problem Summary

3.1. Problem Area:

3.1.1. Modular Databinding

Enable other databinding providers other than JAXB RI. WLS requirement.

3.1.2. Unified configuration

Introduce one single configuration file to improve usability and allow for integration with WLS.

3.1.3. Tubes.next / Tube splicing

Support NonAnonymous responses.

3.1.4. AsyncClientTransportFeature, AsyncClientHandlerFeature, ClientIdentityFeature

Introduce WLS interfaces.

3.1.5. Common logging

Plug into WLS logging.

3.1.6. Common monitoring and management

Plug into WLS monitoring and management.

3.1.7. Exposing WSDL model / tooling improvements

Improve integration with IDEs and improve WSDL processing performance.

3.1.8. Fix outstanding issues in WS-AT (collocated case)

WS-AT fixes that didn't make it into GlassFish 3.1.

3.1.9. Provide a plug-in mechanism in wsimport

Enable WLS integration.

3.1.10. Unified annotation programming model

Use the same package names as WLS annotations.

3.1.11. JAX-WS 2.2 Rev. a MR

JAX-WS spec updates.

3.1.12. Clean/split up Metro OSGi bundles

Make Metro OSGi bundles work in other OSGi environments than GlassFish. Split webservices-osgi.jar into smaller bundles to improve performance.

3.1.13. Improve test coverage of StreamingAttachmentFeature

Implement and clear test cases.

3.1.14. Security improvements

Multiple minor improvements: https://stbeehive.oracle.com/teamcollab/wiki/GlassFish-Security:GlassFish+3.2+Metro+Security+Tasks

3.1.15. Update Maven pushing using POMs

The current push relies on scripts massaging POMs before a push. That is error-prone when new POM are added or POMs are modified.

3.1.16. Update JAX-WS Maven plugins

Make sure the existing plugins work with the current JAX-WS release.

3.2. Justification:

3.2.1. Modular Databinding

JAX-WS RI works only with JAXB RI. However, there is a need to work with other databinding frameworks like EclipseLink JAXB/SDO impl. That means features from other databinding frameworks can be used with the core RI abstractions and protocols like WS-RM etc can be used with JAX-WS RI+any databinding framework. Required for WLS integration.

3.2.2. Unified configuration

Enable tighter integration with WLS. This feature was originally planned for GlassFish 3.1 and had to be postponed to 3.2.

3.2.3. Tubes.next / Tube splicing

Enable proper asynchronous message handling by JAX-WS.

3.2.4. AsyncClientTransportFeature, AsyncClientHandlerFeature, ClientIdentityFeature

Required for WLS integration.

3.2.5. Common logging

Required for WLS integration.

3.2.6. Common monitoring and management

Required for WLS integration.

3.2.7. Exposing WSDL model / tooling improvements

Improve uptake and support of JAX-WS by IDEs and avoid duplication of work and bugs by providing a reference implementation that processes WSDL.

3.2.8. Fix outstanding issues in WS-AT (collocated case, recovery)

WS-AT fixes that are already done but did not make it into GlassFish 3.1.

3.2.9. Provide a plug-in mechanism in wsimport

Required for WLS integration.

3.2.10. Unified annotation programming model

Required for WLS integration.

3.2.11. JAX-WS 2.2 Rev. a MR

The JAX-WS and Java EE reference implementation needs to support the latest spec revision.

3.2.12. Clean/split up Metro OSGi bundles

Enable integration of Metro into other OSGI based products. Avoid loading of the big Metro bundles when an application depends on a simple XML library (which all Java EE applications do).

3.2.13. Improve test coverage of StreamingAttachmentFeature

Ensure this feature works.

3.2.14. Security improvements

Bug fixes and minor features required by various sources.

3.2.15. Update Maven pushing using POMs

Keep Metro build maintainable.

3.2.16. Update JAX-WS Maven plugins

Make sure JAX-WS use in Maven based projects remains feasible.

4. Technical Description:

4.1. Details:

4.1.1. Modular Databinding

http://java.net/jira/browse/JAX_WS-882

4.1.2. Unified configuration

http://aseng-wiki.us.oracle.com/asengwiki/display/GlassFish/Unified+configuration

4.1.3. Tubes.next / Tube splicing

http://aseng-wiki.us.oracle.com/asengwiki/display/GlassFish/Tubes.next

4.1.4. AsyncClientTransportFeature, AsyncClientHandlerFeature, ClientIdentityFeature

http://aseng-wiki.us.oracle.com/asengwiki/display/GlassFish/AsyncClientTransportFeature%2C+AsyncClientHandlerFeature%2C+ClientIdentityFeature

4.1.5. Common logging

http://aseng-wiki.us.oracle.com/asengwiki/display/GlassFish/Common+logging

4.1.6. Common monitoring and management

http://aseng-wiki.us.oracle.com/asengwiki/display/GlassFish/Common+monitoring+and+management

4.1.7. Exposing WSDL model / tooling improvements

http://aseng-wiki.us.oracle.com/asengwiki/display/ASDevJDeveloper/JAX-WS+RI+Tooling+Enhancements

4.1.8. Fix outstanding issues in WS-AT (collocated case, recovery)

http://java.net/jira/browse/WSIT-1524http://java.net/jira/browse/WSIT-1525

4.1.9. Provide a plug-in mechanism in wsimport

http://java.net/jira/browse/JAX_WS-927

4.1.10. Unified annotation programming model

4.1.11. JAX-WS 2.2 rev. A MR

http://jcp.org/aboutJava/communityprocess/maintenance/jsr224/224changelog-2_2_rev_a.html

4.1.12. Clean/split up Metro OSGi bundles

4.1.13. Improve test coverage of StreamingAttachmentFeature

http://aseng-wiki.us.oracle.com/asengwiki/display/GlassFish/Improve+test+coverage+of+StreamingAttachmentFeature

4.1.14. Security improvements

https://stbeehive.oracle.com/teamcollab/wiki/GlassFish-Security:GlassFish+3.2+Metro+Security+Tasks

4.1.15. Update Maven pushing using POMs

Currently, JAX-WS RI uses ant based build system. It is increasingly getting difficult to use ant task to push maven artifacts.
Hence, maven can be used to push maven artifacts and rest of the build system would still use ant.

4.1.16. Update JAX-WS Maven plugins

Many developers use JAX-WS RI/metro maven artifacts. But maven plugins for tools (for e.g. wsimport) are using the older versions of the RI and do not use any features introduced in the recent releases. Hence, there is a need to update these plugins with the latest JAX-WS RI release

4.2. Bug/RFE Number(s):

https://github.com/javaee/glassfish/issues/16454http://java.net/jira/browse/WSIT-1525http://java.net/jira/browse/WSIT-1524http://java.net/jira/browse/JAX_WS-927http://java.net/jira/browse/JAX_WS-882

4.3. In Scope:

4.4. Out of Scope:

4.5. Interfaces:

4.5.1 Public Interfaces

List new, public interfaces this project exports.

  • Interface: metro-webservices.xml
  • Comment: New single Metro configuration file for unified configuration
  • Interface: Annotation namespace com.oracle
  • Comment: New proprietary annotations are added under this namespace.

4.5.2 Private Interfaces

4.5.3 Deprecated/Removed Interfaces:

4.6. Doc Impact:

Metro User Guide

4.7. Admin/Config Impact:

An additional proprietary deployment descriptor/configuration file will be supported for web service configuration. No changes to GlassFish GUIs, CLI, agents, plugins are expected however.

4.8. HA Impact:

Not anticipated.

4.9. I18N/L10N Impact:

Not anticipated.

4.10. Packaging, Delivery & Upgrade:

4.10.1. Packaging

Proposal will affect only the existing set of Metro OSGi bundles already shipped with the GlassFish server.

4.10.2. Delivery

No impact on delivery. The module is already included in the distribution.

4.10.3. Upgrade and Migration:

All changes either introduce a new functionality or are intended to remain backward-compatible. There is no known impact on existing instances or clients at this time.

4.11. Security Impact:

Metro security is fully aligned with GlassFish security concepts, mechanisms and APIs.

4.12. Compatibility Impact

Not anticipated.

4.13. Dependencies:

4.13.1 Internal Dependencies

4.13.2 External Dependencies

4.14. Testing Impact:

Existing Metro test suite will be extended with additional SQE, E2E and unit tests as appropriate for each feature of the project.

5. Reference Documents:

http://aseng-wiki.us.oracle.com/asengwiki/display/GlassFish/Metro+2.2+features+and+tasks

6. Schedule:

6.1. Projected Availability:

http://aseng-wiki.us.oracle.com/asengwiki/display/GlassFish/Metro+2.2+features+and+tasks