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

The Great Java Application Server Debate with Tomcat, JBoss, GlassFish, Jetty and Liberty Profile

Tooling support

Developers are as loyal with their IDEs as they are their appservers, so it’s important for Application Servers to support the main IDEs so they don’t force their developers into using a platform they don’t want to, or missing out on Tooling support entirely.

For many, good integration with build tools can be as important as good IDE integration, sometimes more important. The two main build tools used which we will be looking at are maven and ant.

Jetty

Jetty has an Eclipse WTP plugin (http://wiki.eclipse.org/Jetty_WTP_Plugin) that enables you to run web apps directly from Eclipse. Also, check out Run Jetty Run, another eclipse plugin.

JetBrains also has a listed plugin for IntelliJ as does NetBeans and can also be leveraged using Jetty’s Maven plugin and NetBeans together.

Jetty’s build tool integration is quite well developed. It’s has integration with Ant, Maven out the box and can also be integrated with whichever tool you like, with minimal effort.

It is possible to configure your development environment very closely to the one that you are running in production. The maven plugin for Jetty allows you to configure almost everything in the pom.xml file.

The thing that we liked with Maven’s Jetty plugin is that Jetty is so tiny. So it won’t take long for Maven to download all the internets.

Score: score3-5

Reason: The Eclipse plugin for earlier versions of Jetty is not great, light server management support.

Tomcat

The big three IDEs, Eclipse, IntelliJ IDEA and Netbeans, all have integration support for Tomcat out the box. This means you can import a server into the tooling and deploy projects onto the server. NetBeans offers a distribution which wraps a Tomcat image so that you can deploy as soon as NetBeans installs :o) Eclipse also has the additional download feature which allows you to download and install Tomcat from within your tooling, meaning you don’t have to do it via a browser and later import it.

Tomcat seems to be very tightly integrated with Ant, and most documentation includes ant examples rather than Maven, although Maven has good integration as well.

Score: score-4-5

Reason: Great IDE support, and download/install through eclipse gives a good experience

Your time is too valuable to sit around waiting for your code to redeploy. Seriously, imagine how much more you could accomplish if you choose to Eliminate Redeploys from your daily routine!

JBoss

The umbrella project for multiple Eclipse plugins, jboss-tools, includes among other things JBoss Developer Studio which has a server adaptor for JBoss Servers and allows you to manage jbosses from your IDE. IDEA has a closed source “JBoss Integration” plugin to manage servers, and NetBeans has integration and ability to manage AS 7-th since version 7.2.1.

There’s a maven plugin to manage your jboss instances. Its functionality includes starting and stopping, deploying and redeploying apps, managing resources and executing commands like through a jboss CLI.

Score: score-4-5

Reason: Good cross IDE support, able to make light server config changes, good maven support

What if you no longer had to redeploy your Java code to see changes? The choice is yours. In just a few clicks you can Say Goodbye to Java Redeploys forever.

Liberty Profile

The Liberty Profile tools, named IBM WebSphere Application Server Developer Tools for Eclipse (a product name that almost needs punctuation) is only supported on the Eclipse platform. If you’re an IntelliJ IDEA or NetBeans fan, you’re out of luck. The tools let you download and install the whole server easily, and provides feature rich development for the programming models which the Liberty Profile supports. It also provides rich editor support for server config changes in a similar style to a deployment descriptor editor which you’ve likely seen/used. Overall the tooling is good, on Eclipse.

The Liberty profile also includes a Maven plugin which provides allows you to drive some actions to a server, You can install, start, stop, package and create server using predefined goals. Driving these is fairly easy:

mvn liberty:package-server -DserverHome=/path/to/server_home -DserverName=[server_name] -DpackageFile=/path/to/packaged server file location

Score: score-4

Reason: Great eclipse support and rich server config changes. Good Maven support, but lacking in cross IDE support.

GlassFish

GlassFish has plugins available for all major IDEs these days. But the problem with the plugin is that the information is scattered around. The plugin for NetBeans is already bundled with the IDE, as you’d expect given the vendor behind it, but others need to find the correct website to install the plugin. Fortunately, GlassFish Tools are available in the Eclipse Marketplace for Eclipse users – this makes Eclipse user’s lives a lot easier.

IntelliJ IDEA users are lucky too – they have the plugin already bundled with the IDE.

GlassFish has also plugin for Maven and Ant which are quite well developed, enabling functionalities like deploy, undeploy, start and stop the server.

Score: score-4-5

Reason: Info about where to find plugins is poor, great IDE support once the plugins were found (particularly with NetBeans and Eclipse).

DOWNLOAD THE PDF