Though its release was largely overshadowed by the demise of its parent company, Java EE 6 is still here and is still offering compelling advantages for developers. From the new REST API to the slimmed down Web Profile, Java EE 6 takes a head-on approach to its classic problems of bloat and Web difficulties.
With EE 6, Java Server Faces (JSF), JAX-RS and the revised servlet specifications all combine to bring an easier path to Web applications for Java developers. Even more exciting for those developers is the Web Profile form of Java EE 6, a smaller form of the EE platform with most non-Web methods, libraries and dependencies removed.
Those new features for the language and its ecosystem are just part of the EE 6 release, however. Sun also released NetBeans 6.8 and the GlassFish Enterprise Application Server version 3 back in December. GlassFish has proven to be the star of the new platform, with over 20 million downloads since release. It is also a part of the Web Profile, giving developers a cutting-edge application server for their Web environments.
The Web Profile was built in response to developer complaints that Java EE was becoming too large to easily manage. Java EE 6 adds the concept of Profiles, which will be targeted installations for specific purposes. Initially, only the Web Profile is available, but Sun has said it is looking into more configurations. The Web Profile version of Java EE 6 installs only the pieces of the language and ecosystem needed to run Web applications, such as JavaServer Faces, Java Persistence API and other Web-related technologies.
GlassFish, too, can be slimmed down for specific Web purposes. Both the Java EE 6 environment and the GlassFish application server can then be upgraded to the full Java EE 6 stack without the need to change or update applications, said Tom Kincaid, former executive director of Sun’s Application Platform organization.
JSR 330 was a last-minute addition to the Java EE 6 specification, but it was a major change to the way Java works in a live environment. JSR 330 is a specification for dependency injections in Java originated at Google. JSR 330 came together and was passed through the JCP last fall, a break-neck pace for the JCP to approve a new specification. From the specification page at the JCP website, JSR 330 created “a set of annotations for use on injectable classes,” and “a type-safe, user-friendly injector configuration API that provides an integration point for higher-level dependency injection configuration approaches.”
Enterprise JavaBeans (EJB) also got a revision in the Java EE 6 platform. Version 3.1, said Roberto Chinnici, senior engineer at Oracle and Sun, rounds out JavaBeans with more complete capabilities. “I think the feedback we got on EJB 3, when people actually got their hands on it and wrote programs with it, was very positive,” he said.
“I think there were areas where EJB 3 didn’t do 100% of the work, and 3.1 is adding to that. You can now have a single EJB component, which is unique across an entire server. It’s a common design pattern people use in the Java language. There was no way to express that in EJB 3.”