
Apache Harmony
» see harmony.apache.org as it lived, on the wayback machine
~ the last words ~
The java on a machine was never something you picked. You installed whatever the installer put there, a coffee cup appeared in the system tray, and nothing about that arrangement invited a second thought. That is where i stood for the whole of Harmony's life, university first and then work, and the argument that killed this project happened somewhere i could not see.
Apache Harmony was accepted into the Apache Incubator on 18 may 2005, twelve days after Geir Magnusson Jr. posted the proposal to the mailing list. The plan was a clean-room implementation of Java SE 5, virtual machine and class library both, released under the Apache License instead of Sun's. IBM and Intel put engineers on it. It graduated to a top-level Apache project on 29 october 2006.
The problem was never the code. To call an implementation Java you have to pass the Technology Compatibility Kit, and the TCK was Sun's to hand out. Sun offered one with a field-of-use restriction attached, which would have limited where the finished runtime was allowed to run. Apache would not sign a license that constrained the people downstream of it, so Harmony spent six years as software that did what Java did without being permitted to say so.
On 10 october 2010 IBM, by then the largest contributor, moved its people to OpenJDK. Tim Ellison stepped down as project chair the following March. A retirement vote opened on 29 october 2011 and closed 20 to 2. The board moved Harmony to the Attic on 16 november 2011. The last release, 6.0M3, was already fourteen months old.
~ the record ~
| Born | 18 may 2005, accepted into the Apache Incubator |
|---|---|
| Peak | the core class library under Android, on hundreds of millions of handsets |
| Killed | 16 november 2011, retired by the ASF board on a 20 to 2 vote |
| Lifespan | six and a half years |
| Made by | the Apache Software Foundation, with IBM and Intel as the largest contributors |
| Killed by | a test suite license Sun would not grant without restrictions |
~ the license war ~
On 10 april 2007 Apache sent an open letter to Sun's chief executive, published rather than mailed quietly, asking for a TCK license without the field-of-use clause. Sun's answer arrived the following month in the shape of OpenJDK: the real Java source, released under the GPL, with a compatibility license that covered GPL implementations only. Harmony was Apache-licensed, which put it outside the door that had just been opened.
In december 2010 Apache resigned its seat on the Java Community Process executive committee and said the process was broken. That is further than an ordinary open-source falling-out goes. It was a foundation walking out of the standards body for the language, over a test suite it could not obtain on terms it could live with.
~ what android took ~
Google needed a Java class library it could ship without asking Sun's permission, and Harmony was sitting there under a license that allowed exactly that. Dalvik, and the Android Runtime after it, used a subset of Harmony's class library as its core. The project the JCP would not certify ended up as the Java running on more devices than any certified build ever reached.
Android 7.0 Nougat switched those libraries to OpenJDK in 2016, five years after the ASF had already buried the project. The code outlived its own funeral by half a decade, inside phones whose owners had no reason to have heard the name.
~ the legacy ~
Oracle sued Google over the Java APIs and the case ran for ten years before the Supreme Court called it fair use in 2021. Harmony is the fork in that road. A clean-room class library, written because the certification terms were unacceptable, is what made an unlicensed Android possible in the first place, and the argument about whether you may reimplement somebody else's interface got settled long after the people who raised it had gone home.
harmony.apache.org still resolves, because the Attic keeps retired projects up as a matter of record. The page says the project is retired and the code is where it was left. There is no successor and there does not need to be one, since OpenJDK became the thing everyone uses and the license fight ended with one side giving the source away.
~ leave a rose ~
an anonymous tribute. one rose per visitor per day.
@}-->-- ... roses left here
~ leave a wreath ~
a rose fades by morning. a wreath stays on this grave for good, with your name on it.
from $1, paid once through stripe. it keeps the graveyard running: the hosting and the nightly digging. adopt it and the headstone reads "maintained in memory by" you. the groundskeeper plants new wreaths at the next tending, usually within a day.
» one email a week: new graves and the anniversaries of the dead. subscribe
other software: OSVDB (Open Sourced Vulnerability Database), OpenFoundry, Microsoft Popfly, Microsoft NetShow
also died in 2010-2014: MyRealBox, HijackThis, NZBMatrix
~ leave a note ~
visitors before you have left these graveside notes. anonymous welcome.