GlassFish v3 - the killer appserver for the killer platform (Java EE 6) is out. What I like:
- Easy installation: you can use the installer or just download the ZIP and extract it. Even easier than Glassfish v2 - you had to execute an ANT target to install the domain.
- Built-in monitoring capabilities: you can monitor web applications, EJBs, JMS directly from the admin console, command line or JMX.
- Stability / high quality: Although I even tested the esoteric parts of the spec (like TransactionSynchronizationRegistry), It was really hard to find a serious bug. I filed some issues - but none of them would be show stopper in a real world project.
- Administration: You can monitor, deploy your applications and configure glassfish through the admin console, command line, direct XML editing (actually not directly supported, but works very well) and REST interface.
- Developer friendliness: GlassFish v3 is tightly integrated with Eclipse, IntelliJ and NetBeans. Incremental deployment of EJBs / JSF 2.0 / REST / JMS (EARs, EJB-JARs or WARs) takes < 300 ms on average - just by saving the class. If it takes considerably longer - your virus scanner is probably turned on :-). GlassFish v3 is embeddable - you can fire up your EJB container in few seconds.
- Lightweight nature: The
footprint is rather low. You can run midrange applications with
-Xmx512m. The full Java EE 6 server (zip) is about 75 MB. Together with
NetBeans it takes about 145 MB (Mac OS X). The EJB 3.1 container is
smaller, than 1 MB.
- Performance / Scalability: Glassfish V2 won some performance metrics. Glassfish v3 seems (I didn't compared them yet) to be as fast as V2. I already managed to connect with several thousands clients via Grizzly. During a load test we accidentally opened several thousands HTTP, Stateful Session Bean, JPA sessions with standard configuration. Glassfish v3 just worked.
- Bleeding edge: HK2, REST administration interface, update configuration, DTrace / BTrace support, JRuby, Python, PHP support.
- Hype compliance: Glassfish
v3 is (probably) the only server which you can run on Felix and Equinox
OSGi kernel. Although I successfully avoided unnecessary use of OSGi in
my projects so far - it's not KISS - I was asked about the OSGi
support. It is good to be able to answer the question with a double
- Standard compliance: Glassfish v3 is the reference implementation of the Java EE 6. It implements all required specs pretty well.
If you need some projects to play with Glassfish v3 - most of the 34 http://kenai.com/projects/javaee-patterns/ projects were developed and tested with Glassfish v3.