Jersey GFv3 Integration One Pager [
Unknown macro: {TableOfContents title=' '}
|(TableOfContentstitle='')] 1. Introduction 1.1. Project/Component Working Name: Jersey 1.2. Name(s) and e-mail address of Document Author(s)/Supplier: Jakub Podlesak: Jakub.Podlesak@Sun.COM 1.3. Date of This Document: 12/19/08 2. Project Summary 2.1. Project Description: Integration of Jersey (JSR311 reference implementation) project into GlassFish V3. See below for a longer, more detailed technical description. 2.2. Risks and Assumptions: Current Jersey implementation depends on third party libraries. Namely: asm-3.1, jettison-1.0.1. These libraries have to be integrated into GlassFish as well, otherwise Jersey would not work. There might be a legal issue in this, but this is only an assumption at the moment. 3. Problem Summary 3.1. Problem Area: JSR-311 is part of Java EE 6. As GlassFish V3 should be Java EE 6 compliant, it has to include also an JSR-311 implementation. Jersey is such an implementation to be integrated. 3.2. Justification: Jersey is a natural choice of JSR-311 implementation. It is being developed within SUN as a JSR-311 reference implementation. Jersey is not only production ready implementation, but has also been widely used and adopted since it's early stages (even before the first release) by many people inside and outside of SUN. 4. Technical Description: 4.1. Details: So far, Jersey has been integrated and available at GFv3 Prelude as an update center module. The module adds 4 osgi modules into GlassFish glassfish/modules subdirectory:
- jsr-311.jar (JAX-RS API)
- jersey-bundle.jar (Jersey module)
- asm.jar (osgified 3rd party lib)
- jettison.jar (osgified 3rd party lib)
Additionaly, the package also includes a jersey subdirectory with JAX-RS and Jersey javadocs and example applications. Jersey integration into GFv3 would basically mean taking content of the uc module and make it part of standard GlassFish distribution. Creating of Jersey GFv3 UC module is described in the pom file at https://jersey.java.net/svn/jersey/trunk/jersey/glassfish/v3-package 4.2. Bug/RFE Number(s): N/A Provide links to the Issue tracker Bug(s)/RFE(s)where possible 4.3. In Scope: Integration of Jersey related libraries, so that end users can deploy Jersey based web applications to GlassFish without a need to bundle Jersey specific libraries along with the application war files. This covers also integration of javadocs and example apps. 4.4. Out of Scope: The project does not cover integration into GlassFish admin console neither any special asadmin commands. 4.5. Interfaces: Interfaces are a major part of Architectural review. Commands, Files, Directory Layout, Ports, DTD/Schema, admin tools, config files, APIs, CLIs, and almost anything that is externally observable is an interface. In 1-Pager it is necessary to document any interface that can be used by external projects and products. Documented public interfaces must be assigned a stability level. Some commonly used Stability levels in prior projects are: <pre> Stable : Widely used public interface. changed very rarely. Standard : Defined by a standards body (e.g: JDBCv3). Rare but incompatible clarifications and changes could occur in a standard. Product will specify version of std supported. J2SE, J2EE and WS* are classified as Standard. Evolving : Subject to carefully controlled but possibly incompatible change at a major or minor release. When a change is made all efforts will be made to address incompatiblity and migration. All incompatibilities will need to be reviewed and approved by as-ccc@sun.com. Unstable : Early access, subject to unrestricted degree of change. A few App Server interfaces are classified as Unstable. Docs must call out exported unstable interfaces. Be wary of importing Unstable interfaces. External : Defined external to GlassFish Application Server, but not by a Standards body. Suitable for describing other freeware, open source interfaces. http://www.opensolaris.org/os/community/arc/policies/interface-taxonomy/ describes the permitted interface taxonomy. </pre> 4.5.1 Exported Interfaces Files (osgi modules):
- <GF_HOME>/glassfish/modules/jsr-311.jar
- <GF_HOME>/glassfish/modules/jersey-bundle.jar
- <GF_HOME>/glassfish/modules/asm.jar contains osgified asm-3.1.jar
- <GF_HOME>/glassfish/modules/jettison.jar contains osgified jettison 1.0.1 jar
Directories:
- <GF_HOME>/jersey contains README.html doc and Jersey specific javadocs and examples:
- <GF_HOME>/jersey/examples contains GlassFish/servlet specific examples from Jersey example set
- <GF_HOME>/jersey/apidocs/jsr311 contains JAX-RS javadocs
- <GF_HOME>/jersey/apidocs/jersey contains Jersey javadoc
4.5.2 Imported interfaces Servlet API from GlassFish 4.5.3 Other interfaces (Optional) 4.6. Doc Impact: RESTful Web Services Developer's Guide 4.7. Admin/Config Impact: No admin/config impact expected. 4.8. HA Impact: No HA impact expected. 4.9. I18N/L10N Impact: Jersey code should already be i18ned. At the moment there is no plan regarding localization. 4.10. Packaging & Delivery: Integration will mean bigger installation package footprint. Raw (unzipped) Jersey UC package has about 10MB. 4.11. Security Impact: No security impact expected. 4.12. Compatibility Impact An update in JAX-RS API is expected due to integration with other Java EE APIs. Jersey API might also change. However such changes should have only minimal or no impact on clients, as the changes should be backward compatible. 4.13. Dependencies: 5. Reference Documents: Jersey specific documents should be accessible via Jersey project web page 6. Schedule: 6.1. Projected Availability: May 2009
|