Posts Tagged Java EE 6

What’s Happening With JBoss?

UPDATE (Aug 2012) – The officially supported JBoss EAP 6.0 is finally released.  People using the supported EAP version will have much less confusion and one of the goals of this article was to clear up confusion about what is happening with the open source and EAP versions and how they relate.

If you are going to be using the latest versions of JBoss training is really a requirement because there are LOTS of changes (for the better) and you might need to reinvent somewhat how you approach management of JBoss in various job roles.  Training will help get you there faster and spend less time trying to figure out the new platform.

 

One thing that I’ve found to be true for enterprise clients is people don’t always have time to keep up with what is going on in the cutting edge of technology because they are busy just trying to keep up with their own responsibilities.  Since we have a lot of clients that use JBoss I figure I would help bring everybody “up to speed” with what is happening with JBoss on the Java EE front.  There have been several developments recently and there will be more over the next several months.

The first thing to determine is what “edition” of JBoss you are talking about.  Ultimately this comes down to if you are paying RedHat/JBoss for a support subscription to access the “officially supported” version of JBoss.  This “officially supported” version of JBoss is the JBoss Enterprise Application Platform (JBoss EAP).  If you are not paying for a support subscription you are likely using the “free, open-source” version of JBoss Application Server (JBoss AS).

So what is the difference between the two?  Although these are both “JBoss” editions there are some important differences:

  • The JBoss EAP contains some version of JBoss AS.  You can find the relationship between the released versions here.
  • These editions are released at different times with JBoss EAP released sometime after the version of JBoss AS it contains.
  • The versions of these two JBoss “editions” do not often match.  They did match somewhat with JBoss 5.x but they do not match now.  More on this in a second.
  • The JBoss EAP is the only version that will often have bug fixes back-ported to older versions.  JBoss AS “may” have bug fix releases but it is often only applying bug fixes to the “next” version of JBoss AS.  If it is important to have bugs fixed in JBoss without moving to a new JBoss version or you compiling JBoss source code updates yourself the JBoss EAP is a great investment.
  • A JBoss EAP subscription includes access to the JBoss Operations Network which is a great product for managing and monitoring several JBoss servers.
  • The JBoss EAP includes and is verified against specific versions of other popular libraries like Hibernate and JBoss Seam.  Often fixes released to the JBoss EAP will include critical fixes for these included libraries also.  What versions of particular libraries are included is listed here.
  • The different versions of JBoss EAP and JBoss AS will be compliant and “certified” against different versions of Java Enterprise (Java EE).  This will be especially important for Java EE 6 as discussed next.

Current/Upcoming JBoss Versions

  • JBoss AS 5.1
  • JBoss EAP 5.1 – includes JBoss AS 5.1 internally
  • JBoss AS 6.0/6.1 – Not major internal changes although some changes in web service stack and JMS stack.  Good summary here. Will never be released as part of a supported JBoss EAP version.
  • JBoss AS 7.0 – Final/GA release available. Significant internal and administrative changes compared to JBoss AS 6.x.
  • JBoss AS 7.1 – Beta release available, not yet GA/Final. Significant internal and administrative changes compared to JBoss AS 6.x.
  • JBoss EAP 6.0 – not yet released (early 2012?). Will include JBoss AS 7.1 internally

JBoss AS Downloads

JBoss EAP Information

Java EE 6 Certification

The other thing that causes some issues right now is what it means to be “Java EE Certified” for Java EE 6.  Java EE 6 introduced the concept of “profiles” so that Java EE servers could be certified against a subset of the Java EE specifications but not against the “full profile” of all specifications.  This is important because some Java EE technologies like EJB 2.x Entity EJBs are on their way out anyway now that we have modern replacements like Java Persistence (JPA).  The only profile that Java EE 6 defined besides the “full profile” is the “Java EE 6 Web Profile”.

The following are some of the highlights of the Java EE 6 Web Profile (not a complete list but the major things):

  • Servlet 3.0
  • JSP 2.2
  • JSF 2.0
  • JPA 2.0
  • Contexts and Dependency Injection for the Java EE Platform 1.0 (CDI)
  • EJB 3.1 “Lite” (This includes basically only non-remote Session EJBs)

There are some significant technologies that are in the “full profile” but NOT required in the “Web Profile” (not a complete list but the major differences):

  • JMS
  • Web Services (JAX-WS, JAX-RS “RESTful”, and JAX-RPC)
  • All of EJB 3.1 (including 2.x Entity EJBs, Message Driven EJBs, EJB Timer)
  • JavaMail

So servers that are certified against the “Java EE 6 Web Profile” are only “required” to have a subset of Java EE 6 technologies.  Now most of the JBoss AS versions offer technologies above and beyond the Web Profile but JBoss AS 7.1 (which will be included in JBoss EAP 6.0) is the only version that will target certifying against the “Full” Java EE 6 profile.  There is a good discussion here about exactly what it means (for JBoss AS 6.x anyway) to have been tested against the Java EE 6 web profile but also offer additional technologies.  It is also interesting to note that in the downloads of JBoss AS there is a download for JBoss AS 7.0.x which is “Web Profile Only” and has been officially certified for Java EE 6 by Oracle and there is an “Everything” download which has additional technologies but is specifically advertised as not being officially certified.

JBoss Versions and Java EE Certification

  • JBoss AS 5.1 – Java EE 5 Certified
  • JBoss EAP 5.1 – Java EE 5 Certified
  • JBoss AS 6.0/6.1 – Not officially certified for Java EE 6 Web Profile but tested internally by JBoss against the web profile test suite
  • JBoss AS 7.0.x – Officially certified for Java EE 6 Web Profile. An “Everything” download available with more
  • JBoss AS 7.1.x – Will be certified against “Full Java EE 6 profile”. Good description of the strategy here.
  • JBoss EAP 6.0 – Will be certified against “Full Java EE 6 profile”. Good description of the strategy here.

JBoss Versions and Support/Bug Fixes

Finally, I think the other consideration that will be important to people when switching will be consideration of how they will deal with the inevitable problems/questions that come up and how confident they might be about the software being fixed with bugs.  For those that this issue is mission critical, I would again highly suggest looking into a subscription to the JBoss Enterprise Application Platform.  This is the only form of JBoss that will have a support service level agreement and where bugs will be backported to previous versions for several years according to the JBoss Enterprise Middleware support policy.

When using one of the JBoss AS releases the only “support” that is available is from the JBoss Community and any available JBoss AS Documentation.  For users of JBoss AS I think it is important to consider the level of support from the JBoss community since that support comes primarily from three sources:

  • Other JBoss users that may have similar issues/questions
  • JBoss AS developers working on the open source project
  • JBoss EAP staff working on support of JBoss EAP specifically

Of course this community support would also apply to clients of the JBoss EAP since it is based on a version of JBoss AS and would be useful above and beyond the normal “official” support available for JBoss EAP.

The other thing to consider is if there have been bug fix releases of the JBoss AS versions or not.

Thoughts on Level of Community Support/Bug Fix Releases for JBoss AS Versions

  • JBoss AS 5.1 – No bug fix releases.  Still lots of users using this version, JBoss AS developers not as active, JBoss EAP staff active as it is part of a supported JBoss EAP version.
  • JBoss AS 6.x – 6.1 is a bug fix release of 6.0 but is the only one.  Lots of users on this one based on downloads, JBoss AS developers and JBoss EAP staff not as active since this version is very different than JBoss AS 7.x and JBoss AS 6.x will never be part of a supported JBoss EAP release.
  • JBoss AS 7.x – This has already had two 7.0.x bug fix releases in only two months which is better than previous JBoss AS versions.  Lots of community activity from users and JBoss AS developers.  JBoss EAP staff also likely active getting ready to include JBoss AS 7.1 in JBoss EAP 6.0.

Conclusions

So where does this leave you as a JBoss user?  What version should you be using now or planning to move to?  Every situation is different based on different factors like:

  • Are you migrating existing applications or developing new applications?
  • Do you use technologies that are not required by the Java EE 6 Web Profile?
  • Do you have applications that depend only on the Java EE specifications or do they utilize internal JBoss infrastructure (like custom “JBoss SAR” or “Service Archives”)?
  • How much do you need to configure administratively outside of your deployed applications (EAR, WAR, etc) and how hard would it be to determine how to configure those in a new version?
  • How important is “Full Java EE 6” certification compared to “Java EE 6 Web Profile” certification for you?
  • How important is the support offered by JBoss EAP?
  • Is there some kind of deadline you are working under that might prevent you from waiting for JBoss AS 7.1 or JBoss EAP 6 and the certification of the full Java EE 6 profile that would bring?

Certainly without knowledge of your particular situation it would be unwise for me to offer any kind of direct suggestion here.  In general though I might be hesitant to use JBoss AS 6, at least for very long, as this is not getting the attention of as many from the JBoss AS developer or JBoss EAP support staff groups and JBoss has decided that they will not release it as part of any supported platform.  There is also some question about using anything like JBoss AS 6.0 or JBoss AS 7.0 which is not certified against the full profile but offers varying degrees of additional features between the two Java EE 6 profiles.

For those that might value stability and Java EE certification above all else, and who do not have to start using new Java EE 6 features on some tight deadline, I might hold out for JBoss AS 7.1 or JBoss EAP 6.0.  You could even start investigating that migration now with the release of JBoss AS 7.1.0.Beta1!

, ,

4 Comments

Who Was First to Java EE 6?

I was doing some research on JBoss the other day and found an interesting press release from JBoss.  They claim they were the first to release “Java EE 6 via Platform-as-a-Service” with “OpenShift”.  While this is certainly true the announcement could cause some confusion about JBoss “support” and “certification” of Java EE 6.

Although I won’t get into the cloud aspects of this product I thought it was interesting to actually dive into the details of the Java EE 6 side.  I guess it really depends on how you define “first to release Java EE 6”.

For those of you that are JBoss clients you might be thinking “Great!  JBoss now has support for Java EE 6”, and you’d be wrong!  The only thing “JBoss” that is certified for Java EE 6 is the recently released OPEN SOURCE and UNSUPPORTED JBoss Application Server 7.   They do not have a version of the JBoss Enterprise Application Platform (JBoss EAP), which is the product you actually pay to receive support for, that is certified for Java EE 6.

It also depends on how you define “certified”.  As you can see on the Oracle Java EE certification page, JBoss Application Server 7 is only certified for the “Web Profile”.  This is a new concept in Java EE 6 that allows servers to be certified for a subset of the Java EE technologies (mostly the newest stuff) but not certified against all of the technologies.  In particular the “Web profile” doesn’t require JMS, web services, MDBs and a few other technologies.  JBoss Application Server 7 supposedly supports some of these even though they don’t “have to” but they are not certified for the “Full profile” which would verify the compatibility tests of all Java EE technologies.  You can find an interesting discussion some of us in the JBoss community had with those in JBoss about this approach here.

Now the good thing is that JBoss does plan to release support for the “Full profile” Java EE 6 with the release of the JBoss Enterprise Application Platform 6 (the version numbers between EAP and open source server are going to be out of sync).  This isn’t expected until early 2012 though.   Luckily those of us in the JBoss community were able to convince those driving JBoss development that there was value in the full Java EE 6 profile and not to release the JBoss EAP until that full profile support was provided.  We all felt it would be more confusing to have a version of the EAP providing only Web profile certification and then later to have full profile certification.  After all, having different versions between the open source JBoss Application Server 7 and the JBoss Enterprise Application Platform is going to be bad enough.

So if you look at the Oracle Java EE certification page, there is a popular production supported server that provides support for the full profile of Java EE 6.  That server is WebSphere Application Server 8.0.  That’s right, WebSphere BEAT JBoss (again)!  Certainly WebSphere was not the very first application server to support Java EE 6, that distinction goes to Glassfish 3.0 released as the Java EE 6 “reference implementation”.  But if you look at the “Big 3” Java application servers of WebSphere, WebLogic, and JBoss, WebSphere was first.

So about the only way you could claim that “JBoss was the first to release Java EE 6” is if:

  • You accept an unsupported, open source product (which most clients don’t want to use in production anymore)
  • You accept a “Web profile”-only version and don’t need ALL of Java EE 6
  • You use some other qualifier like “via Platform-as-a-Service”

So anyway, back to the press release.  Why would JBoss want to offer something like this if there are so many ways to pick it apart?  I think the date of the press release is telling.  The press release is from August.  WebSphere Application Server 8.0 was released in June.  I think JBoss knew they were running out of time to put their “We were first” argument out there.

Also, a closer reading of the press release does make it clear that OpenShift is targeting developers right now so the issue of production support is not meant to be provided with this current release.  The first sentence of the second paragraph of the release, “OpenShift is a free PaaS for developers who leverage open source” certainly puts this offering in the correct context.

Ah the spin of product press releases…

EDIT:  I’ve made some minor changes to be more clear that this post is not meant as a hack job on JBoss “OpenShift” but as a comment on the press release concerning OpenShift which could be read in confusing ways.  In particular phrases like “supports Java Enterprise Edition 6” can be read in confusing ways that would imply things that are not currently true about JBoss Application Server.  For those of our clients that might not follow developments in JBoss quite as closely as I do hopefully this information is useful.

, ,

4 Comments