What are the key changes coming in EAP6?
With the community release of JBoss, Application Server (AS) 7, some of you may be wondering what is coming in the next release of JBoss Enterprise Application Platform (EAP) 6. While we are not 100% sure of all the features that will be included at this stage, I can give you a overview.
JBoss EAP 6 will be based on the AS 7.1 release, and will be Java Enterprise Edition (JEE) 6 compliant. That means that we can look forward to using all these great features of JEE 6.
Managed Beans
Context Dependency Injection (JSR-299)
Dependency Injection for Java (JSR-330)
EJB 3.1
JPA 2
For any Seam 2 developers out there, you will already have a head start on the learning curve for Context and Dependency Injection (CDI). CDI is based on Seam 2, and it's contextual component model. Seam has now been split into Weld, and Seam 3, where Weld is the contextual component model, implementing the CDI (JSR-299) specification.
One of the key features of JBoss EAP 6 will be the significant improvement in startup time, and reduction in the memory footprint. This is great news for developers because they will be able to quickly startup a JBoss instance, to test changes to their application. For system administrators they will be able to reserve more memory for the applications hosted on JBoss, instead of to JBoss itself. For anyone looking to deploy JBoss to Cloud provider services, it will mean a reduction in cost.
Another feature that system adminstrators should enjoy is ease of configuration. In EAP 6 the configuration will be changed, so that it is focused on the user, or system administrator. There will be a single configuration file for users to edit, and you will not have to worry that a change to that file will break internal features. Couple that with a command line interface for managing the server, and administrator console, that both persist to the single configuration file, and you have a dramatically simplified configuration system.
One more feature that is much anticipated is a distributed configuration system. This is coined 'domain' mode in AS 7. Domain mode allows you to have a single point to configure a group of JBoss instances. Those instance may or may not form a JBoss cluster, it's not important, what is means is that you can change configuration in one place (on one server), and have that configuration change pushed around to all the servers in the group.
One last change that developers will love, is modularised classloading. With the current version of JBoss, EAP 5, you cannot use your own version of certain libraries that are shipped with JBoss, such as JAXB. With the new modular classloading mechanism you will be able to deploy a different version of an internal library, such as JAXB, as part of your application, and not worry about classloader conflicts with internal libraries.
While we cannot guarantee that all these features of AS 7 will be available in EAP 6, we can say that the above features are most likely to be included. For a more indepth view of this topic please see another article I have written about AS 7 [1], and these videos also on AS7, [2].
[1] http://community.jboss.org/wiki/JBossApplicationServer7-WhatsComing
[2] http://vimeo.com/jbossdeveloper/videos
Responses
Is there a timeline for the release date of JBoss EAP 6.0 ?
There is no interoperability between eap 4 and eap5 as far as remote ejb3 calls go, which is enormous PITA. What about interoperability of eap 6 with earlier versions?
Yes I am basically asking about remote EJB lookup using JNDI, because this is where I encountered my first problem. In case of eap4 to eap5 connection it didn't work at all. I think that is pretty common pattern of application development and I did not see it being discouraged anywhere (till now anyway - if it is such a pain on application server upgrade I will start to discourage it myself). If one has any significant number of interconnected apps it makes it practically impossible to upgrade from from eap4 to eap5. I'm surprised to see no documentation about that in eap5 docs, also I'm surprised to see no docs about migration of apps from eap4 to eap5 with description of potential pitfalls and solutions to them if available. How this will be handled for eap6 (eap6 to eap5 and eap5 to eap6 interoperability and documentation thereof)?