Apache Harmony Retiring to the Attic

DZone 's Guide to

Apache Harmony Retiring to the Attic

· Java Zone ·
Free Resource

In a development that seemed destined to happen since IBM's joining OpenJDK, Apache Harmony's Project Management Committee (PMC) has voted 18-2 to move Apache Harmony to the Apache Attic. The Apache Attic page explains the purpose of the Apache Attic: "The Apache Attic was created in November 2008 to provide process and solutions to make it clear when an Apache project has reached its end of life." In short, it has been determined that Apache Harmony has reached its end of life.

Although Apache Harmony enjoyed widespread popularity among numerous Java developers hoping for an open source implementation of standard Java, it was never able to garner support from Sun or Oracle to provide an "independent, compatible implementation of Java SE." With main supporter IBM moving to OpenJDK, this latest development is not too surprising.

Not all projects die once they hit the attic and some live on after retirement. iBatis, for example, lives on as MyBatis (hosted on Google Code). This project "forking" is an example of one of the three approaches for "leaving the attic again." The other two ways of leaving the attic are to return to the Apache Incubator or to recreate a PMC for the project. At this point, my best guess is that none of the three approaches will be used. There is talk on the mailing list of moving it to the public domain, but that also appears unlikely given licensing issues. There has also been hope of Google forking it, but that may be less appealing to Google given the current lawsuit over Android.

With the retirement of Apache Harmony, OpenJDK becomes the sole large open source implementation of Java SE. With the support of Oracle, IBM, Apple, and Twitter (among others), OpenJDK has definitely had the inside track to this position.


From http://marxsoftware.blogspot.com/2011/11/apache-harmony-retiring-to-attic.html


Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}