When asked in a recent interview what makes the release of JBoss Application Server 7 (AS7) significant, we replied,
"We are so excited about this software."
"You [JBoss] say that about everything."
But this release really is different. There's genuine excitement and optimism about AS 7 at Red Hat, which permeates deep into the community as well.
Now, I have a confession to make. I've never been a huge fan of JBoss AS. Despite using it quite regularly in development, production and trading, I always felt as though their was something better out there. My main gripes? Speed and compliance.
This is not really a big secret. While contributing to Seam 2 as a community member, I often focused on issues that dealt with running Seam on GlassFish, and frequently advocated for the combination. I echoed that recommendation in my book.
When EE 6 went final, I again gravitated towards GlassFish because it was the only option available for running EE 6 applications, which I very much wanted to start educating developers about. GlassFish also started in under 10 seconds, which certainly helped. Can you blame me for wanting to cut out the putzing around?
Working on the Arquillian project has given me the opportunity to compare application servers more objectively, so as to backup my gut with some real data. I tracked the progress of AS 6 development using the Arquillian showcase. Each milestone unlocked additional tests, like levels in a game of Angry Birds.
But the birds were still angry because not all the standard EE 6 tests were working; that is, until the final release. I was excited about JBoss AS 6.0.0.Final because it was finally compliant...meaning it's a Java EE 6 Web Profile certified implementation and, for the most part, behaved with the element of least (unwanted) surprise. The startup speed had improved over AS 5, but still long enough to be annoying.
However, that honeymoon soon ended when the Seam team began preparing for the first release of the reincarnated Seam framework, Seam 3. We quickly discovered that classpath leakage, a fundamental problem that has long plagued AS 6, was interfering with the compatibility of CDI extensions. To make matters worse, GlassFish had the exact opposite problem. Despite having a more sound, modular architecture, it exhibited remedial classpath resolution problems CDI archives, in addition to other emerging compliance issues. At times, I was beginning to lose my faith in the viability of the Java EE application servers.
Enter AS 7...
And then JBoss AS 7 came along. It wasn't love at first sight, but let's call it love at second sight on the 'Ides of March'. I can now say with confidence that AS 7 is the first JBoss AS line I've ever loved. What's more, I believe it's the best Java application server ever made. It's downright incredible. Its superior quality compelled me to join the release team, advocate for it and to take that message to my audience by speaking about it. My wife even got involved in polishing the communication and and crafting an engaging slide deck (7 reasons to love AS 7).
Why all of a sudden do I like, or rather love, JBoss AS? We'll, the answer is simple, really. I want to use the best option available. I look at several factors when evaluating and application server:
AS 7 is not merely a progression, but a complete departure from the JBoss AS legacy of problems. It has been redesigned from the ground up as a highly tuned, modular server in order to deliver on these requirements, and many more. That's the only way it could move forward, and shoot so far out in front of the pack.
AS 7 is #@*%ing fast. It shatters the competition and my expectations. See the results (record time: 700ms). Easy win there.
AS 7 is Java EE 6 web profile certified (Full profile certification is slated for 7.1). That's a start, but robustness is a constantly evolving goal. The integration test suite for AS 7 is based on Arquillian, which means it consists of real tests, and those tests are easy for anyone to run in their IDE. If a problem comes up, we have a common language for demonstrating the scenario and easily collaborating with the community of developers and users on a fix. And, of course, all those Arquillian showcase tests pass too
I'd like to give a shout out to Andrew Rubinger for structuring the testsuite, to Thomas Diesler and Aslak Knutsen for evolving the AS 7 container adapter and to Stuart Douglas for being a test writing machine. In the end, credit goes to all for a group effort. Tests are engineering rigor of this application server. Run them proudly!
Compliance also means a clean environment. The modular classloader keeps applications isolated, so you can use your own XML parser or Hibernate libraries without experiencing classloader hell. You also don't slip into depending on internals of the application server, such as non-public APIs and libraries. The modular structure steers you clear of compliance issues not covered explicitly by the TCK.
AS 7 takes and aggressive approach to memory management, leaving plenty of headroom for the application. It should not get slower over time, no matter how many deployment cycles you throw at it. It avoids the use of reflection internally, uses indexes to lookup classes and annotations quickly and keeps applications isolated, all which contribute to the performance boost.
Finally, AS 7 is incredibly easy to configure. You can control a single server in isolation or many servers using a domain controller. In both cases, the configuration is centralized in a primary configuration file (with one secondary configuration when using the domain control). Just as an example, you can change all the port numbers using a single attribute. There are four ways to change settings, including a cli for geeks and scripts, and a super fast web console for the more casual and visual users. I'm also relieved that deployments are the only files that belong in the deployments directory. Finally!
I'm not ashamed to say I'm a fanboy of JBoss AS 7. Label me. It certainly deserves the acclamation. It's the application server we've all been waiting for and certain deserves the acclimation. Hats off to Jason Greene, the AS 7 team and our awesome community. It's only going to get better from here.
For those of you who are Red Hat customers, EAP 6, which is being built on AS 7, is going to be awesome too. That's a product we can be so proud of having in production environments.
Experience the speed!