IBM has announced its intention to join the OpenJDK project, the official open source Java runtime effort that is led by Oracle. IBM's move to take a more active role in OpenJDK could end the company's commitment to Apache's Harmony project, and it should dissolve a long-standing stalemate that has hindered collaboration in the Java ecosystem.

The Harmony project, which is developed by the Apache Software Foundation, offers an open source Java runtime that is distributed under the permissive Apache license. Sun's controversial refusal to provide critical Java compatibility tests under licensing terms that were suitable for the Harmony project created a divisive feud that polarized major Java stakeholders.

Sun's position on the issue conflicted with a policy established in 2006 through the Java Community Process (JCP)—the official Java governance body—which affirmed that the licensing terms of the compatibility tests would not preclude third-party open source implementations. Although Sun was contractually bound by the Java Specification Participation Agreement to follow through with the commitment embodied by that policy, the company failed to do so. Sun wanted the test suite license to limit fields of use, a restriction that is unambiguously antithetical to open source licensing.

Without access to the test suite, the Harmony developers were not able to certify their implementation's conformance with the Java standard, thus creating the risk of fragmentation. Commercial Java adopters who favor permissive licensing were supportive of Harmony, but were unable to compel Sun to provide access to the compatibility tests under appropriate licensing terms. The dispute demonstrated that the JCP was ineffectual as a vendor-neutral governance body and raised serious questions about Sun's commitment to advancing Java as an open language.

Prior to acquiring Sun, Oracle was one of several companies that sided with Harmony and called for the test suite to be made available under suitable terms, as stipulated by the JCP policy. Oracle reversed its position, however, after completing its acquisition of Sun. Like Sun, Oracle intends to exercise its control over the test suite licensing in a manner that will drive open source Java adopters towards OpenJDK, the implementation that it controls.

IBM's move



Because IBM is one of the most substantial corporate backers of the Harmony project, its decision to join OpenJDK will effectively end the stalemate. Left with no viable path for advancing Harmony as a compatible Java implementation, IBM didn't really have much of a choice.

Bob Sutor, IBM's head of Linux and open source, described the reasoning behind the decision in a very frank blog entry that was published this week.

"IBM will work with Oracle and the Java community to make OpenJDK the primary high performance open source runtime for Java. IBM will be shifting its development effort from the Apache Project Harmony to OpenJDK," he wrote. "We think this is the pragmatic choice. It became clear to us that first Sun and then Oracle were never planning to make the important test and certification tests for Java, the Java SE TCK, available to Apache. We disagreed with this choice, but it was not ours to make. So rather than continue to drive Harmony as an unofficial and uncertified Java effort, we decided to shift direction and put our efforts into OpenJDK."

Sutor says that IBM will be taking a leadership role in the JCP and will encourage Oracle to resolve some of the long-standing problems that have plagued the governance body. He claims that participants can expect to see the JCP become more transparent and inclusive in the future when Oracle enacts much-needed reforms. If you read between the lines, it looks a lot like IBM might have wrung some concessions from Oracle about JCP governance in exchange for agreeing to back OpenJDK instead of Harmony.

Consolidating community involvement around OpenJDK will reduce fragmentation and make the open source Java ecosystem more cohesive. If the JCP reforms go through, then the resulting increase in transparency and inclusiveness will also be beneficial for Java's future.

It's increasingly clear, however, that Oracle has inherited Sun's hostility toward the idea of independent open source Java implementations. Oracle's desire to prevent the development of certifiably compatible, permissively licensed Java implementations could have a negative impact on the health of Java in the long term.

Listing image by Codepo8