IBM will abandon the Apache Harmony open-source implementation of Java and work with Oracle on the OpenJDK project instead, the companies have announced.
The collaboration will make the OpenJDK the "primary location for open-source Java SE [Standard Edition] development", IBM and Oracle said in a statement on Monday. They added that the Java Community Process (JCP) will remain the primary standards body for Java specification work.
Bob Sutor, IBM's open-source chief, said in a blog post on Monday that the decision represented a "reverse fork", or "people developing largely similar but separate projects who decide that they instead want to work together".
Sutor noted that IBM will work with any others who wish to move their resources from Apache Harmony to OpenJDK to make the transition as easy as possible.
"IBM will still be vigorously involved in other Apache projects," he added.
From IBM's perspective, the shift to OpenJDK was a "pragmatic choice" made necessary by Oracle's refusal to open-source the technology compatibility kit (TCK) for Java, according to Sutor. The database specialist, which took over stewardship of Java when it acquired Sun in January, has kept the TCK closed, even though the rest of Java has been open-sourced into OpenJDK. Despite previously having called for the TCK to be opened up, Oracle has continued Sun's refusal to certify Apache Harmony.
"It became clear to us that first Sun and then Oracle were never planning to make the important test... for Java — the Java SE TCK — available to Apache," Sutor wrote. "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.
"Our involvement will not be casual as we plan to hold leadership positions and, with the other members of the community, fully expect to have a strong say in how the project is managed and in which technical direction it goes. We also expect to see some long-needed reforms in the JCP, the Java Community Process, to make it more democratic, transparent and open," he added.
Sacha Labourey, the former chief technical officer at Red Hat's JBoss division, said that IBM's decision to back OpenJDK was "a first victory in how [Oracle] intend to treat the Java community".
"This is really a blast against the Java community," Labourey said in a blog post on Tuesday. "The JSPA [Java Specification Participation Agreement] dictates that companies leading a [Java specification request] have to provide a licence to anybody requesting it. That is the very foundation of the JCP: to create a marketplace where all competitors are on an equal playing field. Yet, in that case, Sun refused to grant such a licence, providing an interpretation of the JSPA that would make a five-year-old kid laugh.
"Everybody else thought this interpretation was vastly nuts. Fast-forward a few months, and this becomes [Oracle's] interpretation. This probably also means the Apache Harmony project just died... How can the Java community trust a leader which doesn't stand by its own constitution?" he asked.
Oracle's reversal of position on open-sourcing the Java TCK is central to Google's defence in a patent and copyright lawsuit brought by Oracle, which relates to the implementation of Java in the Android mobile operating system. Google has answered Oracle's claims by accusing the company of acting in bad faith, as before it bought Sun, it had been a leading voice in calling for the TCK to be opened up.
Labourey suggested that the only thing that could change Oracle's domination of Java would be if Google decided to sue the company for refusing to give the Apache Software Foundation (ASF) "an appropriate Java SE licence". Alternatively, Google could help the ASF, which runs the Apache Harmony project, to sue Oracle, he said.
"Unless Google initiates a lawsuit against Oracle over the JSPA, I think this is game over," Labourey wrote. "Oracle essentially tells the Java ecosystem that the good old JCP is dead, that they are willing to rejuvenate it, but not at the expense of losing control on the only [open-source Java virtual machine] out there; that is the price to pay. While that might seem fair, the problem is that this is a unilateral decision done at the expense of a legal agreement signed by many."