views:

462

answers:

3

We are at the edge of getting Java EE6 (with Glassfish v3 as reference implementation). Planned release is December 09. While still quite a number of companies are struggling to move their codebase to EE5 (from earlier versions), we are in the luxurious situation to start development of a new product and could choose to do it with EE6 as platform. That potentially avoids the migration effort at a later stage and benefit from all the rightsized features in EE6.

Contra or few of the problems (when doing things at the bleeding edge, aka using EE6):

  • not much expertise around yet (blogs, books, forums, yourself,..)
  • there wont be any other EE6 application server soon (beta's maybe early/mid next year ?)
  • 3rd party libraries/frameworks are maybe not verified or tested against EE6 yet.

A generic question that would not result in a specific answer, but maybe your take on the topic ?

Sven

A: 

Before you are done JEE 7 will be out anyway. Go for it, and learn in the process.

Thorbjørn Ravn Andersen
Are you sure? JEE6 is still in 'preview' state and they'll release JEE7 before December 09 (that's the date I captured from devdudes question ;) ) ?
Andreas_D
Before _YOU_ are done...
Thorbjørn Ravn Andersen
Guess you mix Java EE6 and JDK/JRE 7 ?
devdude
+2  A: 

If you are in a luxurious situation to start a project with EE6, then I'd suggest to pioneer.

Not only the overall experience will matter in a short time (let's say EE6 will be mature and widely used in less than two years, imagine a bunch of Java EE6 experts when all the companies will switch), but EE6 is just plain simpler than EE5, so if you have members in the team that have only a little experience in Java EE, you'll probably get your job done faster.

There's already a book on Java EE6 with Glassfish v3, and the basics is not that different from the previous version (ie. if you stick to what you know from EE5, you'll be fine for a long time). Glassfish v3 is quite okay if you need the RI for Java EE6.

What kind of 3rd party libraries do you need?

Tamás Mezei
We are using ZK (http://zkoss.org/) as web/ajax framework, Shiro (http://cwiki.apache.org/confluence/display/SHIRO/Index) as security framework, SLF4J (http://www.slf4j.org/) plus logback for logging, EJB3Unit for testing and Oval for validation library. All works together fine in previous EE5 based releases, though we didnt test all yet for EE6.
devdude
ZK should work as it's mostly client-side, and if you are using the session bean lookup component, it should return valid objects (session beans are just session beans).SLF4J and logback should work also, they have little to do with EE things. Oval looks fine also.I'm not sure about Shiro but it seems that it doesn't need that much from EJB components. I haven't checked EJB3Unit for EE6 yet.
Tamás Mezei
EJB3UNIT targets EJB3. It wont work with plain 3.1 code. We tried, it requires eg. a local interface. The library might not be required anymore (in EE6 context) because you can use embeddable glassfish for junit tests. (http://java.dzone.com/articles/ejb-31-%E2%80%93-ejb-new-and-improved-?page=1)
devdude
You can use local interfaces with EJB3.1, but I guess, if EJB3Unit is written well, there's little to update for 3.1.Otherwise, we've run into other problems with EJB3Unit and some special bean inheritances so we decided not to use it. Embedded GF looks to be a nice alternative.
Tamás Mezei
+2  A: 

How big and important is the project? Do you have any deadlines? I'm really eager to new technologies or frameworks but I rather suggest to begin with JEE5 and gradually migrate to JEE6. JEE it's a big stack of technologies and in release time some of them will have not enough support from third party vendors. So my advice is: use these part of JEE6 that are mature at this time and have strong support from others vendors.

cetnar
Sure, you could start deploying EE5 application on GF V3, but I would not under-estimate the effort to migrate a codebase to full EE6. Yes, certainly easier to move from EE5 to EE6 than from earlier versions ("from the no-annotation-era"). Which boss approves time and money to migrate later without any "visible" benefits ?One sample: The JNDI naming convention was changed (http://blogs.sun.com/kensaks/entry/portable_global_jndi_names)
devdude
@devdude. Many tools and libraries ofers today a lot of enhancements to JEE5 that will be part of JEE6 (e.g. Seam JSF 2.0 enhancements, Weld (JSR-299 implementation) - so today you can use mamy of JEE6 fetures and further migration to others parts of JEE6 stack will be less painful.
cetnar