The state of innovation in Java EE was so in question that, earlier this summer, the Java Guardians were formed to champion the platform and demand that it be pushed forward. At JavaOne today, Oracle finally detailed its plans to address the neglected enterprise Java platform. Alongside that road map came new information on the in-development Java SE 9 and OpenJDK 9.
Anil Gaur, group vice president of engineering at Oracle, said that the Java EE 8 executive committee has fallen behind the times. “For Java EE 8, we are behind schedule. We’re in the middle of some replanning because not everything we proposed [in JSR 366] is equally relevant now. Once we get feedback, we’ll finalize that. Our goal is to finalize and ship sometime next year,” he said.
(Related: Java EE awaits its future)
At JavaOne, Gaur rolled out the Java EE 8 and 9 road maps. “Java EE has been the platform of choice for developing and deploying enterprise applications for many years. It provides a very comprehensive set of APIs for applications that require scalable, transactional security. I am pleased to see EE adopted in clouds, and also to see that many vendors have started to use EE APIs to develop microservices applications. But they are doing so in their own way and, lacking a standard in this space, it’s impossible to ensure compatibility and portability,” he said.
“We would like to extend those benefits to the new application development model for microservices. The goal is to make EE more viable for such distributed applications.” Gaur added that the EE team hopes to offer reactive programming models for developers building with EE.
“We also want to do REST-based services. These use things like HTTP2, standard key-value data stores, and eventual consistency,” he said. “Cloud services are exposed as REST and communicate asynchronously using JSON. We are seeing more and more use of NoSQL datastores.” Gaur said these are all areas where Java EE 8 will improve support.
He went on to say that EE will grow to embrace containers as well. “The services built using this new application development model are typically packaged in a container like Docker. In addition, applications can also leverage Java SE. We will be able to package just enough runtime. The archive of the server will have metadata that defines dependencies and quality-of-service requirements for what’s being deployed. Another related area is consideration for services needs to be externalized from the package, making services ephemeral and suitable for horizontal scaling. All this communicates with external configuration servers. When services startup, they will bootstrap from same configuration server,” he said in describing the new model for Java EE applications.
Gaur went on to explain that the Java EE 8 team will also be working to help developers extract state from their applications. “State has to be externalized also, so we need enhanced support for APIs for externalized state,” he said. He also stated that developers will need to have better methods of troubleshooting their applications built on Java EE.
Gaur added that the Java EE 8 team is hoping to enable resiliency patterns, such as circuit breakers and bulkheads, to allow applications to be more robust.
As for Java EE 9, Gaur said that OAuth and OpenID Connect will be supported forms of authentication in 9. He added that multi-tenancy inside the JVM is an area the teams for Java EE 8 and 9 are both working to improve.
Gaur said that, “We have started to roll out surveys from the product community. At the end of the day, it’s the community, and the expert group that will finalize the scope.”
The Java SE 9 Jigsaw puzzle
If you’ve been following Java for any amount of time, you know that Java SE 9 will offer up the long-awaited Project Jigsaw, a renamed effort to modularize Java. This project has been in the works for more than six years, and has continually provided a web of dependencies and interconnectedness for Oracle’s team to untangle.
Georges Saab, vice president of software development inside the Java Platform Group at Oracle, discussed this labor at JavaOne, where he updated the crowds on the state of Java SE 9. “Toward Java 9, the main thing is modularity. This is one of the things that is interesting because it attacks a number of different problems people have seen over the years. One area is making sure you know in a large system what’s running and know what your dependencies are. The second [is] it helps a lot in is security by reducing the surface of your code that’s visible to other code,” he said.
Decreasing the deployable size of the JVM and its surrounding environment is certainly a major benefit of a modularized Java, but Saab also said this will help reduce an application’s overall security footprint and improve performance.
Patrick Curran, chair of the Java Community Process (JCP), said that the efforts to improve the JCP are coming along nicely. Since last year, JSR 364 has been completed. This proposal sought to make it easier for individuals to join the JCP and to contribute to the process.
This effort has resulted in a “new class of membership, which we call an Associate Membership,” said Curran. “It’s specifically targeted at individuals. The Java specification participation agreement is a 12- to 13-page legal document. Many found that intimidating, so we’ve replaced that with a much simpler contribution agreement.”
In addition, the JCP Executive Committee will have two seats reserved for Associate Members in an effort to get better participation from communities, rather than just enterprises and businesses.
“The main benefit as I see it to new associate members is that if they make a useful contribution to a JSR—at the discretion of a specification lead—they get their name listed as a full contributor, which is good for their career,” said Curran. “In the past, the only way to get recognition was to be part of the expert group, which was time consuming and required a depth of expertise most developers do not have.”
The JCP has also eliminated fees for corporate members, a move which Curran said has already increased the number of participating organizations.
Finally, for the first time, aspiring JCP members will be able to send their membership agreements in online, rather than going through a more laborious process that included printing the documents and rescanning them.
What of NetBeans?
NetBeans users got some interesting news on Sept. 13. That was the day the NetBeans team at Oracle and beyond submitted a proposal to move the project to the Apache Foundation’s Incubator.
Bill Pataky, vice president of product management for PaaS, mobile software and developer tools at Oracle, said, “This is something we’ve been working on for a number of weeks. We’ve been talking about ways to open up the governance model for NetBeans. The governance model was established 18 years ago by Sun Microsystems. This was fairly cutting edge stuff back in the day, but Sun set themselves up as a benevolent dictator.”
Geertjan Wielenga, principal product manager for developer tools at Oracle, said, “This direction opens a number of new possibilities. We’ve been in touch with a team of people in the University of Nevada, Las Vegas for years who are working on accessibility issues. They created a bunch of plug-ins and add-ons on top of NetBeans to assist people with accessibility issues. Once we have Apache NetBeans, those types of projects will be really interesting. NetBeans has easy-to-understand structures and gives you insight into what’s going on.”
Pending approval from the Apache Foundation, Pataky said that internal Oracle software based on NetBeans (such as Oracle Developer Studio and JDeveloper) will use the new project as the basis of their work, ensuring there is no fork in the road for users of those other Oracle IDEs.