Taking WildFly 8 for a test drive
The final version of WildFly 8 has officially dropped – Bernhard Löwenstein analyses all the key features and explains what’s new.
The final version of WildFly 8 is available for download
as of today. This article gives an overview of the key features and
changes to the open-source Java enterprise application
To resolve confusion over all the JBoss names flying
around, Red Hat put the version 7 title, “JBoss Application
Server”, out to pasture, and, after consulting the community,
arrived on the name “WildFly” for future releases.
The final version of Wildfly 8 is now available –
however, even before this point was reached, the first release
candidate had officially passed the Java EE 7 compatibility test.
The only releases to achieve this previously were the reference
implementations of GlassFish Server Open Source Edition 4.0 and
TMAX JEUS 8.
Now that Oracle has severed commercial support for
GlassFish and will only be backing its WebLogic Server, going
forward, WildFly 8 is currently the only fully supported fully
profile compliant Java EE 7 open-source application server with a
A feature that really stands out in this new release
is newly integrated web server
Undertow, which was a Tomcat Fork in previous versions. This
relatively fresh project from the JBoss community aims to produce a
particularly high-performing and scalable web server. It’s likely
this ambitious goal has already been attained: Even with more than
one million concurrent connections, the system operates in a way
which is more than performant.
All this is made possible mainly by exploiting the
functionalities provided by the NIO interface. The web server
supports blocking and non-blocking handlers, traditional and
asynchronous servlets, and WebSocket handler.
Additionally, Undertow is very well adapted to
individual challenges, which, among other things, demonstrates that
you can integrate your own protocols. Furthermore, it can be quite
efficient to use compared to a non-blocking reverse proxy Web
server. Embedded operation is also possible. For this, one must
only embed a JAR library of roughly 1MB. During runtime, a simple
instance only consumes around 4 MB heap space. As a
demonstration of the lightness of Undertow, these facts speak
Reduction of Ports
By exploiting the possibilities offered by the HTTP
upgrade, the number of ports in WildFly 8 could be reduced to
two, so that there is now only one HTTP port for management
concerns (default: 9990) and one for application concerns (default:
8080). This is of course a great advantage, especially in cloud
environments, as there are often hundreds of instances running in
parallel on a single server.
Access Control and Patching
Access control for server administration has also been
introduced to WildFly 8. Previously, each administrator had
universal rights and could view and modify the entire configuration
of the server. Now, rights can be moderated and appropriate
restrictions can be put in place. You can assign to users or groups
specific management roles that determine the extent to which the
server is visible and configurable.
A distinction is made here between monitor, operator,
maintainer, deployer, auditor, administrator and superuser. Someone
with a monitor role can see only non-critical runtime information,
and a superuser has, as with JBoss AS7, the same rights as an
administrator. There are various optional levels of control in
Another interesting innovation to report on is
patching. It has recently been made possible to introduce modules
and binary files into an existing installation of the application
server using the WildFly management protocol remotely.
Fit for Java EE 7
In addition to the previously described features and
changes that relate to the application server itself, there are
many that are also attributable to WildFly 8’s Java EE 7
support. I want to pick out the most important ones.
In June 2013, Oracle released the official
Java-Edition of the standardized client-API for accessing RESTful
Web Services. WildFly 8 comes with RESTEasy – a JAX-RS
implementation you can use at home. This was already included in
the 7 version.
The newly added WebSocket technology allows the direct
exchange of text, binary, and control messages between a web client
and its associated web server – in both directions. In recent years
various solutions for this have emerged, however, from a technical
point of view, these were only auxiliary solutions.
Unlike previous solutions, Java EE 7 now provides for
such concerns with WebSockets – a standardized technology that
organizations can use as an elegant and scalable programming
For JSON, the platform now has a new API. It allows
for the construction of JSON objects using builder pattern and
processing by eventdriven streaming API or Object Model API. The
feature of JSON Binding, however, was deferred to Java EE 8.
For the first time in over a decade, JMS has undergone
a facelift. For sending a message, you’ll now find that a single
line of code suffices – provided you can inject the required JMS
objects from the container. In addition, there are extensions in
terms of parallel processing. An executor service is also available
now in the enterprise environment which processes the tasks
that are passed to it by utilizing the available system
Finally, new technology for the processing of mass
data (without user interaction) should be mentioned. The individual
steps for batch jobs are in this case defined in XML form. Each
step executes according to the familiar batch Pattern – i.e.
reading, editing and writing a specific task. WildFly 8 is now
ready with all the aforementioned features. There are also many
other minor adjustments and additions, but there’s not room to
cover them all here.
In contrast to the extensive architectural changes in
versions spanning from 6 to 7, WildFly 8 follows the set JBoss AS7
pattern. Although the Red Hat Application Server now flies
under a new banner, it’s merely a further development to the very
successful 7 Series version, rather than being an all-out
The biggest change is certainly the replacement of the existing
Web server. Developers are already reporting successful results
from initial tests now that Undertow is in place. Furthermore, the
reduction to two HTTP ports, the introduction of management roles
to assign to the server, the fact that administrators can tailor
rights, and integration with a patching infrastructure are all
positive changes. WildFly 8 is a great fit for Java EE – this
project can be considered very successful.
This is a translation of an article which was originally
published in German on JAXenter.de.