Download

The WildFly 9 CR1 release is available on wildfly.org/downloads





Java EE7

As with WildFly 8, WildFly 9 implements both the Java EE7 full and web profile specifications.

HTTP/2 & SPDY Support

Undertow, the web server in WildFly has added support for the new HTTP/2 standard. HTTP/2 reduces latency by compressing headers and multiplexing many streams over the same TCP connection. It also supports the ability for a server to push resources to the client before it has requested them, leading to faster page loads. We also include support for SPDY, the predecessor to HTTP/2, in order to support clients that have not yet updated to the new specification. Although, currently, recent versions of Chrome and Firefox provide support for the standard out of the box.





Note that using HTTP/2 requires using Java 8 with a specialized setup procedure. This is because the HTTP/2 standard requires a TLS stack that supports ALPN, and a stock Java install does not include support for it. The extra setup steps will go away once Java 9 is released, which is expected to include ALPN support. Since HTTP/2 is also a goal for Java EE8, it is also expected to be made available in a future Java SE 8 update, likely after Java 9 is released.

Front End Load Balancer Support

WildFly can now be configured to function as an intelligent load balancer, proxying requests to backend WildFly nodes using HTTP, HTTP/2, SPDY, and mod_cluster protocols. This removes the need to use a native web server, such as Apache for this use case. To see this feature in action, check out a recent interview with Stuart Douglas, the lead of the Undertow project. He demonstrates how domain management, clustering, and the new load balancing capability can be used to deploy and manage a full HA setup from a single point, the WildFly CLI.





Server Suspend Mode / Graceful Shutdown

Previously, in order to achieve graceful draining of sessions/requests, a load balancer was required. The new server suspend mode in WildFly, once activated rejects new requests but allows old ones to complete. Once the suspension process has completed the server can either be stopped without aborting in-flight transactions, left in suspended state while maintenance is performed, or returned back to running state where new requests are once again allowed.

Offline CLI Support

You can now manage the server using CLI commands, without having a running server. This works similar to the admin-only mode, but does not require launching the server, and using a TCP port. Instead the CLI embeds the server and launches it directly in admin-only mode.





For more information, check out the detailed article on this feature, written by Brian Stansberry, the lead of WildFly's domain management capabilities.

New Servlet Distribution

The new "web" distribution (not to be confused with the Java EE Web Profile), provides a stripped down, yet manageable Servlet-only distribution. This is useful for applications that prefer to roll-their-own frameworks.

Core / Full Split

The base architecture of WildFly has been fully separated, and is now versioned separately from the full platform. We now have two different source repositories as a result.

Logging

In WildFly 8.2 the logging subsystem got a new resource, log-file. The resource lists all log files defined in the jboss.server.log.dir that are defined in the subsystem. You can now download these files via the console or other management resources.





Curl Example:

curl --digest -L -D - http://127.0.0.1:9990/management?useStreamAsResponse --header "Content-Type: application/json" -u user:password.1234 -d '{"operation":"read-attribute","address":[{"subsystem":"logging"},{"log-file":"server.log"}],"name":"stream"}'

HTTP Get Example:

http://localhost:9990/management/subsystem/logging/log-file/server.log?operation=attribute&name=stream&useStreamAsResponse

Web Services

The Web Services subsystem is now based on JBossWS 5.0.0.Final. This is a major leap forward, bringing new features and performances improvements in WildFly. Here is a list of the most notable new featues included in WildFly:

JBossWS 5 migration notes are also available here for those migrating existing applications from WildFly 8 / JBossWS 4.





Switched to the OpenJDK Orb

We have switched our IIOP implementation from JacORB to a downstream branch of the OpenJDK Orb. This change should lead to better interoperability with the JVM ORB and the Java EE RI.







Clustering

All clustering services, including all Infinispan caches, will now share a single JGroups channel by default. The channels supplied by the JGroups subsystem are now fully managed resources and can multiplex messages to any number of "forks" via the FORK protocol. This requires fewer resources than the multi-channel, shared transport configuration of previous releases.





JCA, data sources and resource adapters

The IronJacamar container has been upgraded to version 1.2.4.Final, fixing bugs and adding some new features.





Highlights:

<max-pool-size> is now across all credentials used for the resource

Pool type is determined by the decrementer policy

Allow an existing connection to be obtained during MARKED_FOR_ROLLBACK

Support <validate-on-match> for resource adapter deployments

Support for the IronJacamar tracer module

datasource:enable / datasource:disable are now DEPRECATED

-ds.xml deployments are now DEPRECATED

Management Console

New subsystem configuration: Remoting

Support for datasource templates. Quickly configure the most commonly used datasources (PostgreSQL, MySQL, Oracle, SQLServer, DB2 and Sybase)

Provide all flush-* operations for connection pools

Improved log viewer: The full log file is now displayed. You can search inside a log file or download and open it in an external editor.

Enhanced model browser with support for singleton resources

Get more details about applied patches

Ability to launch the management console independently from WildFly. See http://hal.gitbooks.io/dev/content/release-coordination/distribution.html#standalone-console for more details.