Blog archive

Red Hat Submits JSRs for Java EE 7; Looks for the Java Love

What's the first big-enterprise name that pops into your head when you hear "Java community" these days? Oracle, of course, but also IBM, and lately Apple. How about Red Hat?

Red Hat doesn't always get recognized for its efforts to move Java forward. And frankly, they're kinda tired of going unnoticed.

"We often don't get the credit we're due when it comes to moving Java forward," Rich Sharples, director of product management in Red Hat's Application Platforms group, told me the other day. "Red Hat is a very active contributor to all things Java. We're the largest contributor to the OpenJDK, outside of Oracle itself. And for the last couple of releases -- Java EE 5 and Java EE 6 -- we played it pivotal role in making Java EE a much more accessible and product platform for developers."

As of today, you can add Java EE 7 to that list: Red Hat has submitted three new Java Specification Requests (JSRs) for the upcoming Java EE 7 (JSR 342). The new JSRs were submitted to create standards for Platform-as-a-Service (PaaS) and cloud deployments, Sharples explained. As the press release announcing the JSRs put it, they offer Java EE 7 users "a new consistency, flexibility," and "portability across on-premise and cloud environments, and they reflect Java EE's position as one of the most flexible and adaptable application platforms in the market."

Red Hat was responsible for the Context and Dependency Injection (CDI) spec in Java EE 6 (JSR 299), so it's not surprising see CDI 1.1 heading its list of proposed JSRs for Java EE 7. The purpose of JSR 299 was to unify the JSF managed bean component model with the EJB component model, creating a significantly simplified programming model for web-based applications. CDI 1.1 goes on to simplify and unify various layers of a Java EE application with a standard model for Dependency Injection and lifecycle management. The components are allowed to interact in a loosely coupled way, and the developer can build even simpler, more easily maintainable, and more portable apps without having to introduce non-standard, proprietary frameworks.

CDI was the brainchild of JBoss Fellow Gavin King, has become the standard for dependency injection for Java EE. The spec, formerly known as Web Beans, grew out of an open source project called Seam, an application framework on Java EE 5, which he also created.

The company is also proposing a specification for distributed data grids, which Sharples claims will allow easier and more cost-effective scaling for the data-tier, which is essential for large-scale cloud or utility computing and multi-tenant application platforms.

The third proposed JSR -- Bean Validation -- is described by the company as a means of providing "a consistent approach to implementing validation logic throughout an application, from the persistence layer to the presentation layer. The unified approach helps avoid duplication and inconsistencies, ultimately resulting in speedier development."

The new specs aren't actually JSRs yet; they still have to go through several stages within the Java Community Process. From the initial JSR Review stage, in which Red Hat's proposed specs will be evaluated and approved by the Executive Committee (EC), they will move into the Early Draft Review stage, the Public Review stage, the Proposed Final Draft stage, then Final Release, and finally Maintenance. Along the way, they could be voted down by the EC, withdrawn by the spec leads, or rendered "inactive," the fate of JSRs that have posted neither a Final Release nor a JCP milestone draft for the last 18 months.

I don't blame Red Hat for blowing its own horn about its role in the evolution of Java. The company has served on the EC, and it has been a Java spec leader or Expert Working Group member for more than 35 JSRs. The first Context and Dependency Injection spec -- SR 299 -- had a big impact on Java EE 6. The company was behind Enterprise JavaBeans (EJB) 3, JavaServer Faces, and the Java Persistence API. And it's currently is collaborating on four existing JSRs for Java EE 7: Java API for RESTful Web Services 2.0 (JSR-339); Java Message Service 2.0 (JSR-343), Java Server Faces 2.2 (JSR-344), and Java Content Repository API (JSR-333).

"I think most developers understand Red Hat's role in moving Java EE forward," Sharples said. "Our approach to delivering new technology, rather than the ivory-tower, closed-door, designed-by-committee approaches some of these other organizations take, we're on the ground, so to speak. And we do get credit from the developer community, but we certainly don't get noticed by the mainstream press."

No one would ever call me mainstream, but in the spirit of giving credit where credit is due, my hat's off to Red Hat.



Posted by John K. Waters on April 14, 2011