Glassfish v3 and deployment
By hzhang on Dec 10, 2009
The Java EE 6 compatible Glassfish v3 is released today! In addition to provide v2 feature parity, the v3 deployment implements the new Java EE 6 spec requirements which include the deployment of ejb lite (EJBs packaged inside the war), the portable naming (where you can define application name and module name in the deployment descriptors and then use them in JNDI lookup) and etc.
Among many changes that went into v3 deployment, the most important piece is the new pluggable/extensible deployment framework. This pluggable deployment framework allows you to plug in new module/container types with the container SPIs (see Add-On Component Development Guide for more details). The JSR 299 (Context and Dependency Injection) RI was integrated through the framework. The Java EE standard module/container types were also re-written to retro-fit into the framework. This deployment framework also sends application lifecycle events at various points of the deployment to allow application developers to perform tasks (such as application initialization/clean up work) as needed at those points.
In v3, the code paths of the application loading during deployment and server start up have been converged to provide users more consistent behaviors (which also helps make code maintenance easier). As a result, we don't write out the generated deployment descriptors (merged version from the original deployment descriptors and the annotations) by default any more. If you need to use the generated deployment descriptors for debugging purpose, you can use the system property (-Dwriteout.xml=true) to write them out.