The recent release of the OpenJDK and Java SE 7 gave JavaOne attendees plenty to talk about this year. Hosted alongside Oracle’s OpenWorld, JavaOne was packed with details about the recent releases and the future of Java as a platform.
Adam Messinger, vice president of development for Oracle Fusion Middleware group, laid out the future of the language in a keynote speech at Oracle OpenWorld yesterday morning, and he also announced the release of JavaFX 2.0 for Windows and its related tooling in NetBeans 7.1. JavaFX will also be pushed into the OpenJDK 8 release, and the rest of the JavaFX code will be ready for open-source release.
Project Avatar (also attached to OpenJDK 8) is aimed at blending HTML5 front ends with Java back ends, regardless of platform. Cameron Purdy, vice president of development at Oracle, said that it is imperative for HTML5 and Java to work well together.
“The industry is coming to a point where there’s going to be a lot of investment in HTML5 technologies,” he said. “I would bet on that being aggressively and widely adopted around the industry, and we are betting on that. We’re making very specific investments to both modernize and make it relevant to the next generation of applications.”
Java EE evolving
The OpenJDK is not the only thing in focus for Oracle’s Java developers. Purdy also detailed some of the goals for the Java EE 7 release. In a word, the theme of this release will be “cloud.”
Purdy also said that there are already seven implementations of the Java EE 6 application server. “This is the fastest uptake we’ve had from an implementation point of a specification. Java EE 6 is alive and well,” he said.
“What we’re looking to do in Java EE 7 is to build on that and continue on these themes. We’re looking at cloud computing. How do we create the next generation of the EE platform? That is really geared for the style of application represented by cloud compute environments. We’re looking at being able to create application containers that run on anything from EC2 to virtualization technologies, and down to real hardware.”
To that end, Java EE 7 may add some provisioning features, said Purdy. Thus, Java EE 7 applications could conceivably handle their own autoscaling in cloud-hosted environments, and could provision extra servers for time with a high volume of workloads.
Further changes to EE are aimed at the way the project will be handled internally at Oracle, said Purdy. “Java EE is being developed in the open. While we’re behind the curve on cloud, that’s the best place to be standardizing from. You can see what works and what doesn’t work,” he said.
Java ME comes home
Messinger also had big news for the future of Java ME. Rather than announcing new features or platform expansions, he announced that the entire project will be coming back to Java SE. Rather than keeping Java ME as an entirely separate branch of Java, it will become a subset of the OpenJDK’s many projects, enabled through the Java modularization project in OpenJDK 8, known as Project Jigsaw.
“Over time, Java ME and Java SE have diverged slightly. They both sprang from Java 1.4, and I think it’s time to converge them again,” said Messinger.
“ME has two flavors: a small flavor known as CLDC. CLDC cannot use all of the features in Java 7, so it will always be a subset. Some of the more dynamic features may not make it.
“The other ME flavor, known as CDC, is used on Blu-ray players and tablets. [For] that piece, we think we an accommodate [advanced Java features via] a subset of SE. That subset is enabled by Project Jigsaw.”
The merging of two Javas is mirrored on the JCP by the merging of two executive committees. There will no longer be a separate Java ME executive committee, said Patrick Curran, chair of the JCP. But that’s just one of many changes coming to the organization.
“The JCP has been extremely busy,” he said. “Things were kind of quiet in the last two years of Sun’s rule. We’ve had 17 new JSRs submitted since December. We’ve also undertaken a revision of the process itself. We revise the process through the process.”
The plan to revise the JCP will unfold across three separate JSRs, each of which will focus on a distinct set of issues. “First, we wanted to work on stuff that was important, but relatively non-controversial,” said Curran. “We’re focusing on transparency and openness. In the future, we’re going to mandate that all workgroups do work in the open, via public mailing lists and issue trackers. We’re going to have similar requirements around the executive committee too.”
This first revision comes under JSR 348, he said.
Curran detailed the plans for the next two JCP revision JSRs, as well. “Next, we will focus on merging the two executive committees into one. It seems the right thing to do,” he said.
“We should have a single executive committee, which will deal with all of the three platforms. We’ll do another JSR shortly to merge the two executive committees. Then we’ll tackle bigger issues around IP rights.”
That last JSR is bound to be controversial, and even Curran admits as much. IP rights are at the heart of a dispute between the Apache Foundation and the JCP. Earlier this year, Apache resigned from the JCP over the terms-of-use restrictions on the Test Compatibility Kit for Java implementations. The TCK, as it is known, restricts the type of devices to which an implementation of Java tested with the TCK can be deployed upon.
Curran said that this and other contentious legal issues will
be the focus of the third JCP revision JSR. However, he added that this JSR could take a while to be completed, as lawyers from both sides will want to validate any changes and be included in the process.
Divisions in mobile
Beyond the future, Messinger also demonstrated some here-and-now technologies in his keynote. Most notable were Java applications running on an iPod Touch. He explained that developers can now embed the Java virtual machine within a mobile application and wrap it in Objective-C, so that the end product can be sold in the iPhone App Store.
“The way this works is by linking the JVM into the program. So rather than Java being installed on the phone, instead it’s being linked to the program,” said Messinger. “It looks like a statically linked lib.c. That’s the path we plan to take for supporting the Mac OS App Store. You can’t ship a pure Java application to the Mac App Store, but you can package it with a JVM.”
At JavaOne, Messinger also announced the release of Java SE 7 (as well as JavaFX) for Mac OS X. It is currently in a beta release, said Nandini Ramani, vice president of development for Oracle Fusion Middleware group. JavaFX 2.0 itself is a major upgrade from the previously titled JavaFX Script 1.0 release, she said.
As for new features, she said, “We have an HTML editor. We converted all of the JavaFX Script APIs to be totally Java. We’ve retained some of what people found interesting about JavaFX Script. We have a hardware-accelerated graphics stack. We have a new layer like AWT, called Glass. We have support for streaming media, graphics, and all the things that make up a good RIA platform.
JavaFX 3.0 will be open source and part of the OpenJDK 8 release, said Ramani. In the meantime, a version for Linux will be pushed along to completion.
OpenJDK 8 will also include some better replacements for those long-remaining bits of IP-encumbered code from previous versions of Java. Thus, said Messinger, the browser plug-in for Java, which has remained closed source, will finally be making its way into the open-source community.