Glassfish v3
Lloyd Chambers, Jerome Dochez, et al
01 December 2009
Web and Application Platform PAC (WAPPAC)
LSARC
Anil.Gaur@sun.com
Software Infrastructure
Abhijit.Kumar@sun.com
jerome.dochez@sun.com
john.clingan@sun.com
Jerome.Dochez@sun.com, kedar.Mhaswade@sun.com, abhijit.kumar@sun.com
This project is Sun's open-source application server, please see the FAQ.
Planning, specification and other documents are online at glassfish.dev.java.net.
This is the release version of GlassFish V3, first seen at ARC as "GlassFish V3 Prelude", see http://sac.eng/arc/LSARC/2008/611. Previous cases (GlassFish V2): http://sac.sfbay/Archives/CaseLog/arc/WSARC/2006/586/
GlassFish V3 is an single-server release of the Glassfish V3 application server. Clustering support is planned for a future release. Customers that require clustering support should continue to use Glassfish V2 until Glassfish V3.clustering is released.
GlassFish V3 is the next version of Sun's Java EE application server. The new features/themes of this release are modularity, extensibility and embeddability. The GlassFish V3 release delivers a full Java EE 6 based web and ejb tier, scripting support, OSGi support, JDBC and persistence API on top of the new modular kernel of GlassFish. In addition, through update center the users will be able to obtain new Java EE 6 APIs and containers (for example, EJB 3.1 and JAX-RS 1.0).
Previous versions of the application server were a monolithic implementation of all the features making upgradability of one particular feature almost impossible to achieve. GlassFish V3 offers a modular environment with any desired degree of granularity, where each module represent a well-defined area of functionality. This change required a rewrite of server management and runtime code to support a module-based environment. Fortunately, most of these underpinnings have little or no direct impact on the deployment of Java EE applications, while at the same time offering the ability to run the "new and exciting" web-based technologies. Furthermore, the "pluggable" nature of Glassfish V3 means that anyone can add new functionality; this was difficult or impossible with Glassfish V2.
A high degree of compatibility with Glassfish V2 has been achieved for this release, but fundamental changes in the infrastructure mean that compatibility ranges from fair to very high to perfect, depending on the area.
Backward compatibility — the shift to a modular architecture required a rewrite of key management and runtime areas. Because some of these changes are structural in nature, some areas in the management and monitoring areas "make no sense" in the V3 environment. While GlassFish V3 has excellent support for backward compatibility in terms of deploying applications, management functionality is not entirely backward compatible.
Provide a compelling Java EE application server targeting a wide range of deployment environments, from handheld devices to large server farms.
A high performance, scalable, customizable and embaddable Java EE application server is key to Sun's web strategy
Glassfish V3 will provide a compelling Java EE environment to suite a wide range of performance and footprint requirements.
This release support Java EE 6. It extends and continues the Java EE support
seen in previous releases. See section 2.1.
See Issue Tracker at glassfish.dev.java.net.
Java EE 6 and a wide variety of web technologies.
Interface taxonomy: www.opensolaris.org/os/community/arc/policies/interface-taxonomy/
The notation "**" as applied to Java packages here means all classes and sub-packages. All Glassfish V3 jars live in $INSTALL_DIR/glassfish/modules/, which by default is the user’s home directory.
The included jars/modules/APIs are not intended for standalone use outside of the Glassfish V3 environment, and as such should be understood as “Private”. The interface taxonomy as specified below refers to the usage within the Glassfish V3 runtime environment.
| Exported Interfaces | |||
|---|---|---|---|
| Interface |
Stability |
Former |
Comments |
| File Layout | Uncommitted | Please see the packaging one-pager and file-layout one pager. | |
| domain.xml | Uncommitted | Evolving | Contents are no longer defined by a DTD and can be dynamic depending on installed modules. |
| domain.xml DTD | n/a | Evolving | A DTD is no longer be used in GlassFish V3 |
| 'asadmin' CLI | Committed | Committed | Heavily used. See command reference. Largely compatible with GlassFish V3 command set. |
| 'asadmi' CLI output | Not an Interface | Not an Interface | Output is for humans. |
| Admin GUI | Not an Interface | Not an Interface | Web-based GUI. |
| JDK 1.6 | Committed | n/a | Standard |
Java EE 6 |
Committed |
n/a |
Standard. See java.sun.com/javaee/. JMS, JAX-WS 2.2, JAXB 2.2, JACC 1.1, JCA 1.6, JTS/JTA 1.1, Servlet 3.0, JSP 2.2, JSTL 1.2, EL 1.1 |
| JSR 45 | Committed | n/a | Debugging Support for Other Languages |
| JSR 77 | Committed | Standard | Java EE management |
| JSR 88 | Committed | Standard | Java EE deployment |
JSR-208 |
Committed |
Standard |
Java Business Integration (JBI) |
| JSR 250 | Committed | n/a | Common Annotations for the JavaTM Platform |
| JSR 299 | Committed | n/a | Web Beans |
| JSR 303 | Committed | n/a | Bean validation. |
| JSR 311 | Committed | n/a | |
| JSR 317 | Committed | n/a | Java Persistence API |
| Metro | Uncommitted | See metro.dev.java.net. | |
| Jersey | Uncommitted | See jersey.dev.java.net. | |
| JPA 2.0 (EclipseLink) | Uncommitted | See www.eclipse.org/eclipselink/ | |
| JRuby/Rails | Volatile | Evolves outside Glassfish V3. Web site. | |
| Groovy/Grails | Volatile | Evolves outside Glassfish V3. | |
| jMaki Ajax framework | Volatile | Evolves outside Glassfish V3. | |
| Hundred Kilobyte Kernel (HK2) | Uncommitted | n/a | For module developers onl, part of Glassfish project. See hk2.dev.java.net |
| glassfish-api | Uncommitted | n/a | All interfaces in glassfish-api are Uncommitted by default unless otherwise specified. org.glassfish.internal.api.** |
| glassfish-internal-api | Volatile | n/a | All interfaces in glassfish-internal-api are Volatile by default unless otherwise specified. org.glassfish.internal.** |
Glassfish Management api (gmbal~gf_common) • AMX • Probe provider statistics • Statistics classes |
Committed | n/a | See the Specification for AMX compliant MBeans. org.glassfish.external.amx.** jar name: management.api.jar |
| Gmbal | Uncommitted | n/a | Implementation technology used internally for MBeans org.glassfish.gmbal.** jar name: gmbal.jar |
| AMX convenience interfaces, client proxy code. |
Uncommitted | Evolving | Proxy interfaces vary with implementor of MBeans and are subject to change as the underlying configuration changes. Specific packages and classes are annotated in javadoc explicitly with @Taxonomy to any override stability level. org.glassfish.admin.amx.intf.** jar files: amx-core.jar, amx-config.jar, amx-j2ee.jar |
| Embedded API | Uncommitted | n/a | TBD |
| Security | TBD | TBD | |
| Imported Interfaces | |||
|---|---|---|---|
| Interface |
Stability |
Former Stability |
Comments |
| JDK 1.6 | Committed | n/a | |
| Java EE 6 | Committed | n/a | Formerly Java EE 5. jar file: javaee.jar |
| DTrace | |||
OSGI |
Standard |
n/a |
See http://osgi.org and one pager. |
| Grizzly web/IO framework | Committed | n/a | See java.net page. |
| Apache Derby | Volatile | n/a | Used for samples. |
| Jersey | |||
| MQ IPS package for glassfish | Contracted Committed Private | n/a | Need contract for glassfish special package. Details. |
| ANTLR | Volatile | antlr-repackaged.jar. |
|
Greatly revised documentation will be shipped with the product to cover the expanded feature set. It will explain the differences of GlassFish V3 compared to Glassfish V2 as well as the compatibility issues.
A high level of compatibility with Glassfish V2 has been achieved in most nearly every area. Some administrative areas are incompatible due to fundamental design changes (modularity), the most notable example being AMX (JMX support).
The admin CLI 'asadmin' is largely compatible with V2.
The GUI has been overhauled and reworked for Glassfish V3.
Clustering is not supported in GlassFish V3.
The usual internationalization guidelines are being followed.
Please see the packaging one-pager and file-layout one pager. They can also be found in the case directory.
Standard Java EE security is in place, consistent with Glassfish V2.
Administrative tools 'asadmin' CLI and GUI use approaches the same as GlassFish V2.
JMX support might not support TLS/SSL in this release, depending on schedule.
The product maintains compatibility with previous evolving and standard interfaces.
A high degree of compatibility is maintained, but the Change Control Committee has recorded and documented the incompatibilities that exist (primarily in the administrative tools due to the change in product architecture).
None.
GlassFish - https://glassfish.dev.java.net/
Java EE - http://java.sun.com/javaee/
WSIT - http://wsit.dev.java.net/
SPECJAppServer2004 - http://www.spec.org/jAppServer2004/
Glassfish V2 (WSARC/2006/586)
http://sac.sfbay/Archives/CaseLog/arc/WSARC/2006/586
Scheduled for customer release in December 2009.