Java EE 6 or don’t leave home without a projector

Yesterday, we’ve had a meeting at  Princeton JUG – Reza Rahman has been giving a sneak preview of JEE  6 .   The meeting started with a little surprise – projector in the place we meet has not been working.  Man, I have my own projector at home…which is 25 minutes away.  No biggies. People were determined to find out what’s going on with JEE 6, especially when we have such a presenter – Reza is the author of the book “EJB 3 in Action” and a member of the Java EE 6 and EJB 3.1 expert groups.  Actually, who needs the projector? A 15 inch monitor was adequate.

Everyone has really enjoyed the presentation. The thing is that during the last several years JEE became a  stable and mature but not too exiting  environment. People routinely were bashing JEE for not being cool and a number of Java developers defected to Spring trying to get high.  But JEE6 looks really interesting to me and other people who attended yesterday’s meeting seem to like it too.  They were asking literally dozens of questions, which does not happen that often.
These are some of the features that I’d like to highlight and briefly commented

1. Pruning – removing of dead wood from the code (JAX-RPC, EJB 2.x Entity beans CMP)
2. Profiles – JEE 6 will offer three profiles  (will be packaged in three ways). The  Minimal profile is basically a Servlet container.  The Intermediate profile adds EJB 3.1, WebBeans , JTA and JPA, and the full profile adds JMS, JCA,  and a bunch of JAX’es.
I’d re-packaged the Minimal profile to include JMS and transaction management. Give me a Servlet container, JOTM and MOM, and I’ll turn the world upside down. Lots of enterprise applications can be build just by using such products/APIs.
WebBeans (JSR 299) unifies JSF, JPA and EJB 3. It introduces Conversations (circumcised  sessions), dependency injections, and annotation meta-programming.

3. There are some efforts to revitalize JSF(convention over configuration, REST and AJAX support), but I’m a little skeptical about this technology.  We live in the era of RIA, and  I would remove JSF from the JEE spec. Just concentrate on JavaFX, will you?

4. EJB 3.1 will become simpler (haven’t we heard this already? ).  Interesting development here is an introduction of a Singleton Bean as a global repository for your application, cron-style declarative and programmatic timers, Java SE support (think about it – you can create a server container on the fly right in your desktop application), EJB Lite.

5.Java Persistence API gets Bean validation (JSR 303) that will let you validate data at various level. I hope there will be a way to selectively turn this validation on or off.

6.Servlet 3.0 (JSR 3.0) is something that I’m watching closely because of its huge scalability potential. Use of non-blocking I/O and asynchronous processing (suspending and resuming of queries) will dramatically increase the number of supported concurrent users . The open source Jetty already offers Servlet 3.0 implementation, and commercial  vendors will implement it too.  A servlet turns into an annotated POJO.

7.And finally, JEE 6 will offer Web Service support with the ReEST using  JAX-RS API.

In my opinion, it’s a  good set and you are welcome to send your suggestion to people in charge of JEE 6 at  jsr-316-comments@jcp.org .

So speak up, attend you local Java Users Group, and most importantly, don’t leave home without a projector.

Yakov Fain