Imagine a bacon-wrapped Ferrari. Still not better than our free technical reports.
See all our reports

Abandon Fish! Migrating from GlassFish to JBoss or TomEE

Chapter I: A little history of GlassFish

“This announcement and Oracle’s ‘optimizations’ is the perfect opportunity for other vendors like TomEE (with commercial support by Tomitribe), Wildfly (supported by Red Hat) or WebSphere Liberty Profile (supported by IBM), to step in.”

Adam Bien, In his Blog

Read it later! (PDF download)


From caviar to great white shark

Officially, the tool we all know as “GlassFish” is really GlassFish Open Source Edition, which is Oracle’s GPL/CDDL-licensed Java EE application server.

GlassFish came a long way, starting as a Sun Microsystems Inc. project back in mid-2005. It was based on the source code for the Sun Java System Application Server (SJAS) PE 9, which was donated to the community by Sun Microsystems along with Oracle’s donation of TopLink persistence code. The joint goal was to encourage communication between Sun & Oracle engineers and the community, enabling all developers to participate in the application server development process along with the JCP.

With this donation, developers from all over the world could access source code, nightly builds, discussion groups, and mailing lists. For the very first time in history, developers were able to meaningfully contribute to the application server creation process.


What? A free, faster competitor to Oracle and IBM?

Historically, GlassFish has always been backed up by a commercial distribution. Initially named SJAS, it became Sun GlassFish Enterprise Server with the Version 2.1 in mid-2009. At the end of the same year. Sun released the first Java EE 6 compatible version carrying the famous “v3” as the version number. It contained the completely rebuilt OSGi foundation created on Apache Felix and delivered an awesome developer experience by cutting down startup-times, providing hot-deployment and preserving http sessions across development redeployments.

GlassFish’s main competitor back in the day was the extremely lightweight Apache Tomcat. Developers got attracted to both the new Java EE 6 specification, which finally improved development productivity and ease of use, establishing convenient handling and administration as well. All this happened a year and a half after Oracle completed its acquisition of BEA Systems.

With increasing uptake on Java EE technologies, GlassFish became a solid alternative for even the most attractive and performant commercial application servers. Leading the field by continuously delivering technical innovation and driving specifications on the JCP had always been BEA Systems with their WebLogic server, but the release of GlassFish 2.1 was in more or less direct competition with Oracle’s and IBM’s WebSphere product line. But GlassFish was for free. And much faster.


Oracle buys Sun Microsystems

The famous Oracle-Sun merger in early-2010 changed the rules. The GlassFish community was afraid of Oracle cutting off GlassFish completely in favor of the commercial WebLogic product they just recently integrated as their foundation for almost all commercial products. But basically nothing happened. Aside from a bunch of extra marketing and re-naming efforts for both the OSS and the commercial edition, pretty much everything else remained the same.

It had seemed that Oracle wanted invest into their new assets by putting up the so called 100-day releases with patches for both 2.1 and 3.0 versions. Unfortunately, this was followed by nothing groundbreaking. The 3.1.0 – 3.1.2 releases brought clustering back to the 3.x branch and delivered on long-overdue component updates and fixes in early 2011.

In mid-2012, a micro-release 3.1.2.2 fixed a handful of exceptional issues. No further updates took place until June 2013, with the initial release of GlassFish 4.0 being the reference implementation of Java EE 7. The community stood behind GlassFish the whole time. The NetBeans bundle, the unzip and start packages, the comparably good startup times and the overall availability of examples and documentation made GlassFish the #1 choice not only for beginners but also for people running real applications on it.


Download the PDF

1 2 3 4 5 6 7 8 9Next »
  • JL

    I hope you can have support for TomEE with LiveRebel, i use TomEE but liverebel dont support it.

  • http://www.zeroturnaround.com/ Toomas Römer

    Hi JL,

    I wish we could support most of the popular application servers out there. Right now we are looking if we can support Weblogic and Websphere for example. Yes, these are still missing from our offering.

    I know that TomEE is not in the LiveRebel roadmap for this year but if there is enough interest we can re-prioritise the roadmap. Now this will depend on the market. We’ll live and see!

    Toomas

  • henk53

    Nice report! I have a few small comments:

    >The JNDI name on JBoss is also different from Glassfish. You need to append the prefix java:/or java:jboss/, resulting in java:/jdbc/appds or java:jboss/jdbc/appds respectively.

    OR… you could just use the standard java:global or java:app namespaces AND you could make use of the Java EE standardized datasource definition. See:

    http://henk53.wordpress.com/2012/04/#step10
    http://henk53.wordpress.com/2012/06/30/the-state-of-datasourcedefinition-in-java-ee
    http://smokeandice.blogspot.com/2009/12/datasourcedefinition-hidden-gem-from.html

    >Both WildFly and JBoss EAP have implementations of JSF based on Mojarra,[...]

    This is not entirely true.

    The above seems to assume that JBoss has a modified Mojarra version, but JBoss HAS NOT modified Mojarra! The version of Mojarra they package is identical to the released binary. They only thing they do is build it from source themselves, which necessitates splitting it into the API and implementation parts. The jars that Mojarra releases are optionally available with this split, but for the source you have to do this yourself. Other than some line endings (Unix/Windows) which are automatically corrected by their build tool, the source is 100% identical. See https://github.com/jboss/mojarra

    Even without the multi-jsf feature you could always just replace the mojarra jars inside JBoss with a different version and this has always worked.

    They do have some integration code for JSF that is JBoss specific, but this just implements the required JSF SPI (see the spec document). Every AS has to implement that, and for JSF it’s a relative small amount of code. CDI also requires a SPI to be implemented and it’s much bigger.

    To my knowledge the only server that ships with a modified JSF version is Liberty, which ships with an (antiquated) modified MyFaces 2.0.Ancient version.

  • ide

    And now NetBeans has be scuttled but this move won’t be announced.

  • Yannick Majoros

    For my part, I see no reason to trust jboss devs more than oracle on fixing bugs. In fact, the latter needs to keep going on to be able to provide a Java EE 8 reference implementation.

    I migrated to GF4 / Java EE 7 as soon as I could, and that’s always more difficult with jboss. Wildfly is just out, GF4 was released back in june last year and had been in continuous development for years.

  • Esteban

    JBoss EAP 6 is Open Source but you have to get a subscription (you have to pay money in other words) for using it in a Production environment.