What are the key changes coming in EAP6?

Latest response

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

Would EAP6 support JSF 2.0?

JSF 2.0 is slated (subject to change) to be supported in EAP 6

Is there a timeline for the release date of JBoss EAP 6.0 ?

 

Hi Andreas

 

Thanks for your questions.

 

We are in a re-planning process and do not have a final date for EAP 6 right now – we will have a final date in January.

 

Keep an eye on these forums or on jboss.com for any announcements in the new year.

 

Regards

Mustafa

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?

Hello,

Thanks for commenting in the Red Hat forums. You mentioned that remote EJB interopability didn't work between EAP 4, and EAP 5. Are you are refering to the JBoss Remoting issue between the two versions, as described here, [1].

This is more or a design issue. In all of the enterprise editions, Red Hat chose not to implement an application client container in JBoss, from [2]. You can read how to do this for the community version of JBoss in this article [3].

In the case where you want to look a EJB from a remote server, you need to do this outside the JBoss JVM. JBoss' primary focus is on being an EJB Server, not client. The articles, [1], and [3] referenced here, both indicate that you need to start a seperate JVM as the EJB client. There is also similar functionality available on AS 7, however it is yet to be documented.

[1] https://access.redhat.com/kb/docs/DOC-64041

[2] https://access.redhat.com/kb/docs/DOC-51211

[3] https://community.jboss.org/wiki/HowtouseanapplicationclientinJboss-5

[4] https://community.jboss.org/message/638220

After discussing this with a another Red Hat associate, I realized you were probably asking about doing a remote EJB lookup using JNDI, and where not bothered to use the EJB Application Client container.

I think this would be possible from EAP 6 to EAP 5. You would probably just bundle the EAP 5 EJB client jars with your application, however I haven't tried it yet.

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)?

Hi John,

 

I just noticed Jaikiran Pai added this documentation to the community AS7 site.

 

https://docs.jboss.org/author/display/AS71/EJB+invocations+from+a+remote+server+instance

 

I am planning to give it a go using two AS7 instances, but also with AS7-EAP5. I have a feeling that the same classloading problems which inhibited this on EAP5 will be prevent remote lookup of EJBs from the EAP5 instance, but I'll report if I find anything.

 

Jason

Hi John,

 

I did some research, and it seems this is still not possible between AS 7 and AS 5 instances. You need to do something like this, to do the remote EJB lookup in a separate classloader:

 

http://wolf-71.blogspot.com.au/2010/02/et-phone-home.html

 

Jason

Thanks. I appreciate this :)

Hi,

We need to know which is the strategy regarding Seam in EAP6.

Is it going to be a Seam 3 like project or Deltaspike support, ....

Please, let us know.

Thanks in advance

Hi Esteve,

 

Seam 3 will be supported in EAP 6. The CDI implementation is called Weld, and Seam 3 adds some extenstions to that core CDI funcationality.

 

From reading the DeltaSpikeProposal, [1], sounds like it is trying to tie together Seam 3 with other CDI extensions.

 

[1] http://wiki.apache.org/incubator/DeltaSpikeProposal