In contrast to my previous post I wanted to lighten things up with a bit of positivity and it just so happens that this is about a Java application server (of the sort I was moaning about earlier) that in its latest incarnation is actually really nice to work with.
Some boring history
The landscape of application servers changes at a fast pace, meaning that the decision as to which platform meets an organisation’s needs can change from one year to the next. Not a problem if the standards were followed such that you can simply take all your applications and deploy them in another environment without making any changes. While that is the promise of standards based application servers such as Java EE products, as highlighted in numerous posts I’ve made, this is not the reality.
The above means that from my own personal perspective my ‘favourite’ application server to work with has changed over time. Back when Java was owned by Sun Microsystems, I was very impressed with the open source, freely available reference implementation of Java EE that was Glassfish. This was a solid offering that was so close to the spec most likely because Sun were behind Glassfish and they also ultimately presided over Java, the JCP. They were almost, but not quite, the benevolent dictator – which was fine by me. Glassfish had a great admin user interface – actually way better in terms of UX than all the commercial offerings of the time in my opinion.
Since then of course Oracle have taken over as a less than benevolent dictator, and of course they are more likely to push their own commercial products. I don’t have a huge problem with this in principle and some good things have happened in the Java world under their watch. However it inevitably means that other products have moved on at a faster pace than Glassfish. Java and the JCP programme behind Java EE specs are still ‘open source’, but since Oracle actually sell application servers (and lots of other enterprise products) I find it hard to believe there is not a conflict of interest and that the direction of this is not somewhat controlled by them.
What’s your point?
Well one of the Java EE offerings around for some time is JBoss. The company behind JBoss is Redhat, a well known for-profit provider of open source software. I previously found JBoss it to be lacking in a decent admin UI and somewhat clunky to configure through a confusing mire of XML files. There were also many issues with class loading conflicts that it seems so many of these environments struggle with. Having said this it was certainly not a bad option if you were going down the Java EE route.
Enter WildFly – which is the latest version of JBoss. It has been reimagined and is a lighter weight, easy to work with solution. It has a nice modular system for class loading and the XML configuration has been paired down to a straightforward set of very human readable files. It is also based on years of rigorous work pushing the boundaries of many aspects of Java software development providing options for many things such as dependency injection. But the nice thing is you don’t have to use any of the Redhat stack (such as Weld DI), if you don’t want to. It doesn’t seem to make it nearly impossible to work with other third party libraries for which they have their own implementation. The same can’t be said for other commercial application servers. It also has a nice, dare I say it, visually pleasing admin UI.
I should add I’m in no way affiliated with JBoss / WildFly, nor would recommend you choose to use it purely on the basis of this blog post either! But do consider checking it out at http://wildfly.org/ if you are interested in new developments in application server technologies.