Injecting JSR330 into JSR299

Last week, I blogged about Guice 2.0 and the state of Java EE 6 dependency injection: JSR299, competing with another injection standard: JSR330. Well, the wise men of the Java EE 6 spec, just before finalizing it, have just decided to adopt JSR 330 into JSR 299. This is great news! JSR330 is not limited to the application server, so this means we can use the same notation mechanism on the server, desktop, mobile, etc. Also, JSR330 are just a set of interface and annotations, this means you’ll be able to use it in today’s technology as well, combined with Guice or Spring, providing a smoother ride to Java EE 6 later on. Most important, the competing specs would have caused some massive confusion and agitation, and fortunately, this has now been prevented before the fact.

In the announcement, Java EE 6 is pushed to a November release (from September), and of course, some mea culpa here, because all the current JSR 299 samples will break and some serious late-game refactoring is needed. Better late than never though: Java EE 6 will be around for a while, and it’s important for these kind of decisions to be right the first time.