adam bien's blog

Glassfish v3 - The Killer Java EE 6 Appserver Is Out - Top Ten Favorites 📎

Glassfish v3 - the killer appserver for the killer platform (Java EE 6) is out. What I like: 

  1. 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.
  2. Built-in monitoring capabilities: you can monitor web applications, EJBs, JMS directly from the admin console, command line or JMX. 
  3. 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.
  4. 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.
  5. 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.
  6. 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.
  7. 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.
  8. Bleeding edge: HK2, REST administration interface, update configuration, DTrace / BTrace support, JRuby, Python, PHP support. 
  9. 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 "yes".
  10. 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.