SAN FRANCISCO (05/07/2008) - Upcoming versions of the Java platform will be fitted with capabilities such as flexibility, OSGi support, and modularity, Sun Microsystems officials said Tuesday afternoon at the JavaOne conference in San Francisco.
Roadmaps were detailed for Java Platform, Enterprise Edition (Java EE) 6 and Java Platform, Standard Edition (Java SE) 7. Java SE serves as a base Java platform, with the Enterprise version adding enterprise-level capabilities.
With Java EE 6, Sun seeks to increase flexibility in implementing the platform.
"For EE 6, the theme is what I like to call rightsizing, which essentially means making the platform the right size for you," said Roberto Chinnici, Java EE platform lead at Sun.
With version 6, profiles will be created based on specific needs, such as a Web profile focused on Web developers, Chinnici said. The Web profile is not fully defined yet, but will feature technologies that appear in the vast majority of Web applications. Other profiles are expected such as a telecommunications profile that features SIP (Session Initiation Protocol) services.
Profiles can be created by filing a Java Specification Request as part of the Java Community Process, according to Chinnici.
Also planned is a pruning process by which certain parts of the Java platform can be made optional. "The typical candidate is those technologies that have been superseded effectively by new ones," said Chinnici, citing JAX RPC and Entity Beans as candidates for pruning.
Scripting languages will be made first-class citizens on the Java platform as well. Web development will be made easier through annotations across Web APIs. Developers should see a reduced need to edit web.xml descriptors. Third-party libraries will self-register themselves, removing a common source of errors for developers.
Another feature of version 6 is an API for REST-ful Web services. "We felt we need a new API entirely focused on them," Chinnici said.
Enterprise JavaBeans can go inside a Web application via version 6, removing the need for nested packaging.
There is no specific release date yet for Java EE 6, although it has been anticipated for later this year.
Java SE 7, due in summer 2009, features modularity in development and deployment. These capabilities are based on JSR 294, for improved modularity support, and JSR 277, for a Java Module System.
The goal of the Java module system is to bolster the packaging of applications via the JAM format.
Java Development Kit (JDK) 7, which is to be based on Java SE 7, supports OSGi bundles. "We're announcing the availability of a new specification that defines the interoperability between the Java module system for SE 7 and OSGi bundles," said Danny Coward, chief architect in the client software group at Sun. "What this means is in JDK 7, developers who create applications that use OSGi bundles will be able to run them unmodified on JDK 7.
"The goal here really is to embrace OSGI," and help developers bring code over to run on JDK 7, Coward said.
The embrace of OSGi as a bundling and deployment model was lauded by analyst Anne Thomas Manes of Burton Group.
"Deployment of systems is really pretty awful in the current version of Java," Manes said. Using OSGi as a solution to this is a good idea, she stressed.
"I'm wondering why they needed to do the module support and not just go with OSGi support. But as long as the module support fully supports OSGi, that's OK," Manes said.
As part of Sun's plan to expand language support on the Java Virtual Machine, dependencies on just using one language on the JVM will be removed. Developers will have an easier time writing compilers and languages based on other languages and executing them on the Java platform.
Speakers noted that the planned GlassFish version 3 application server also supports OSGi. It will support dynamic languages such as Ruby and Groovy as well as Java EE 6.