Apache Harmony
{{Short description|Java programming language Open source implementation}}
{{Use mdy dates|date=August 2023}}
{{Update|inaccurate=yes|article|date=February 2013}}
{{Infobox software
| name = Apache Harmony
| logo = Apache Harmony Logo.png
| logo size = 300px
| screenshot =
| caption =
| developer = Apache Software Foundation
| discontinued = Yes
| latest release version = {{Multiple releases
|branch1 = 5.x
|version1 = 5.0M15
|date1 = {{Start date and age|2010|09|15}}
|branch2 = 6.x
|version2 = 6.0M3
|date2 ={{Start date and age|2010|09|15}}
}}
| latest release date =
| latest preview version =
| latest preview date =
| operating system = Linux, Windows
| programming language = C, Java
| genre = Java virtual machine, Java Library
| license = Apache License 2.0
| website = {{URL|https://harmony.apache.org/|harmony.apache.org}}
}}
Apache Harmony is a retired open source, free Java implementation, developed by the Apache Software Foundation.{{cite web
| url=http://harmony.apache.org/faq.html
| title=Original FAQ Questions from Project Launch
| publisher=harmony.apache.org
|quote=We are starting with Java SE 5, as that is the first version of Java SE for which the licensing allows an open source implementation, but we'll continue with Java SE 6 and any subsequent versions that follow.
| access-date=2011-02-27}} It was announced in early May 2005 and on October 25, 2006, the board of directors voted to make Apache Harmony a top-level project. The Harmony project achieved (as of February 2011) 99% completeness for J2SE 5.0, and 97% for Java SE 6.{{cite web| url=http://harmony.apache.org/subcomponents/classlibrary/status.html| title=Class Library Component Status
| publisher=harmony.apache.org| access-date=2011-02-27}} The Android operating system has historically been a major user of Harmony, although since Android Nougat it increasingly relies on OpenJDK libraries.{{cite web|title=Android N switches to OpenJDK, Google tells Oracle it is protected by the GPL|url=https://arstechnica.com/tech-policy/2016/01/android-n-switches-to-openjdk-google-tells-oracle-it-is-protected-by-the-gpl/|first=Ron|last=Amadeo|date=January 7, 2016|website=Ars Technica|publisher=Condé Nast|access-date=July 1, 2016}}
On October 29, 2011 a vote was started by the project lead Tim Ellison whether to retire the project. The outcome was 20 to 2 in favor,{{cite web |url=http://mail-archives.apache.org/mod_mbox/harmony-dev/201111.mbox/browser |archive-url=https://web.archive.org/web/20131214183218/http://mail-archives.apache.org/mod_mbox/harmony-dev/201111.mbox/browser |title=Move Apache Harmony to the Attic (updated) |first=Tim |last=Ellison |publisher=org.apache.harmony.dev |archive-date=2013-12-14 |date=2011-11-03 }} [http://old.nabble.com/-Result--Move-Apache-Harmony-to-the-Attic-%28updated%29-p32772228.html Alt URL] {{Webarchive|url=https://web.archive.org/web/20130207042445/http://old.nabble.com/-Result--Move-Apache-Harmony-to-the-Attic-(updated)-p32772228.html |date=February 7, 2013 }} and the project was retired on November 16, 2011.{{cite web |url=http://mail-archives.apache.org/mod_mbox/harmony-dev/201111.mbox/browser |archive-url=https://web.archive.org/web/20131214183218/http://mail-archives.apache.org/mod_mbox/harmony-dev/201111.mbox/browser |title=Board accepted attic resolution |first=Tim |last=Ellison |publisher=org.apache.harmony.dev |date=2011-11-16 |archive-date=2013-12-14 |access-date=2011-11-27 }} [http://old.nabble.com/Board-accepted-attic-resolution-td32862837.html Alt URL] {{Webarchive|url=https://web.archive.org/web/20130314005522/http://old.nabble.com/Board-accepted-attic-resolution-td32862837.html |date=March 14, 2013 }}{{cite news |url=http://www.h-online.com/open/news/item/The-end-of-Apache-Harmony-1371819.html |title=The end of (Apache) Harmony |publisher=The H |date=November 4, 2011}}
History
= Initiation =
The Harmony project was initially conceived as an effort to unite all developers of the free Java implementations. Many developers expected that it would be the project above{{clarify|date=November 2014}} the GNU, Apache and other communities. GNU developers were invited into and participated during the initial, preparatory planning.{{cite web| url=http://article.gmane.org/gmane.comp.java.classpath.devel/5521| title=Harmony!| author=Mark Wielaard| date=2005-05-09| quote=Apache has set up a proposal for discussion around a full free j2se implementation. Which they call "Harmony". This is (at the moment) not about code, but about finding out a direction for getting to such a beast. Dalibor, Tom, Jeroen and I were asked to help them in that discussion and possibly show them how to set up a good architecture for it.| access-date=October 21, 2010| archive-url=https://web.archive.org/web/20080516004824/http://article.gmane.org/gmane.comp.java.classpath.devel/5521| archive-date=May 16, 2008| url-status=dead}} Apache then decided not to use code from GNU Classpath because it wanted Harmony to be available under the Apache License v2.{{cite web| url=https://lwn.net/Articles/135111/| title=A proposal for a free Java implementation| author=Geir Magnusson Jr.| date=2006-05-24| publisher=Apache}} Apache developers would then write the needed classes from scratch and expect necessary large code donations from software companies. Various misunderstandings at the start of the project, and proposals from major companies like IBM to donate large amounts of existing code, led some people in the free Java community to view the project as a corporate consortium than an Apache project.{{cite web| url=https://lwn.net/Articles/184967/| title=Toward a free Java| author=Mark Wielaard| date=2006-05-24| publisher=LWN.net|quote=All this means that, despite the fact that there is now some code available donated by Intel, there is no practical cooperation between the original free software projects backing Harmony and the project now known as Apache Harmony. All this made some people think of Harmony as a company consortium in the guise of an ASF project and not a full community project.}}
One major point of incompatibility between the GNU Classpath and Apache Harmony projects was their incompatible licenses: Classpath's GNU General Public License with the linking exception versus Harmony's Apache License.
= Difficulties to obtain a TCK license from Sun =
{{See also|Technology Compatibility Kit}}
On April 10, 2007, the Apache Software Foundation sent an open letter to Sun Microsystems CEO, Jonathan Schwartz regarding their inability to acquire an acceptable license for the Java SE 5 Technology Compatibility Kit (TCK), a test kit needed by the project to demonstrate compatibility with the Java SE 5 specification, as needed by the Sun specification license for Java SE 5.{{cite web|url=http://www.apache.org/jcp/sunopenletter.html|title=Open Letter to Sun Microsystems - JCK|publisher=apache.org}} What makes the license unacceptable for ASF is the fact that it imposes rights restrictions through limits on the "field of use" available to users of Harmony, not compliant with the Java Community Process rules.According to ASF, 1) a specification lead cannot impose any contractual condition or covenant that would limit or restrict the right of any licensee to create or distribute such Independent Implementations (section 5.C.III), and 2) a specification lead must license all necessary IP royalty-free to any compatible implementation of a specification (section 5.B).
Sun answered on a company blog{{cite web|url=http://blogs.sun.com/ontherecord/ |title= On the Record |url-status=dead |archive-url=https://web.archive.org/web/20070421103127/http://blogs.sun.com/ontherecord/ |archive-date=April 21, 2007 }}{{cite web|url=http://java.sys-con.com/read/360602.htm|title=Sun to Apache: "Open Source Process is a Journey" - Java IoT|access-date=April 14, 2007|archive-date=July 9, 2008|archive-url=https://web.archive.org/web/20080709013915/http://java.sys-con.com/read/360602.htm|url-status=dead}} that it intended to create an open source implementation of the Java platform under GPL, including the TCK, but that their priority was to make the Java Platform accessible to the Linux community under GPL as quickly as possible.
This answer triggered some reactions, either criticizing Sun for not responding "in a sufficiently open manner" to an open letter,{{cite web|url=http://ianskerrett.wordpress.com/2007/04/16/the-silence-from-an-open-sun/|title=The Silence from an Open Sun|work=Ian Skerrett|date=April 16, 2007}} or rather Apache Software Foundation; some think that ASF acted unwisely to aggressively demand something they could have obtained with more diplomacy from Sun, especially considering the timescale of the opening class library.{{Cite web|url=https://gnu.wildebeest.org/blog/mjw/2007/04/21/openjck/|title=Mark J. Wielaard » Blog Archive » OpenJCK|accessdate=August 27, 2023}}{{cite web|url=http://jroller.com/page/dgilbert?entry=five_reasons_why_apache_will|title=Five Reasons Why Apache Will Regret That Open Letter
|last=Gilbert|first=Dave|date=2007-04-16|access-date=2008-03-08|archive-url=https://web.archive.org/web/20070418002440/http://jroller.com/page/dgilbert?entry=five_reasons_why_apache_will|archive-date=18 April 2007 |url-status=dead}}
Sun released the OpenJDK in May 2007, along with a specific license to allow to run the TCK in the OpenJDK context for any GPL implementation deriving substantially from OpenJDK.{{cite web
| url=http://openjdk.java.net/legal/openjdk-tck-license.pdf
| title=OpenJDK Community TCK License Agreement V 1.1
| publisher=Sun Microsystems
|quote=Subject to and conditioned upon its Licensee Implementation being substantially derived from OpenJDK Code and, if such Implementation has or is to be distributed to a third party, its being distributed under the GPL License, Sun hereby grants to Licensee, to the extent of Sun's Intellectual Property Rights in the TCK, a worldwide, personal, non-exclusive, non-transferable, limited license to use the TCK internally and solely for the purpose of developing and testing Licensee Implementation.
| access-date=2008-03-08}} This does not cover Apache Harmony, which is not GPL-licensed. On December 9, 2010, the Apache Software Foundation resigned from the Java Community Process Executive Committee,{{cite web | url=https://blogs.apache.org/foundation/entry/the_asf_resigns_from_the | title=The ASF Resigns From the JCP Executive Committee | date=December 9, 2010 | publisher=Apache Software Foundation}} in protest over the difficulty in obtaining a license acceptable to Apache for use with the Harmony project.{{Cite web | url=https://arstechnica.com/open-source/news/2010/12/apache-resigns-from-jcp-in-protest-of-oracle-governance-failures.ars | title=Apache quits Java governance group in protest of Oracle abuses | date=December 9, 2010 | publisher=Ars Technica }}
= Use in Android SDK =
The virtual machine that is used in Google's Android platform (Dalvik up to version 4.4, and its successor, Android Runtime (ART)) uses a subset of Harmony for the core of its Class Library.{{cite web
| url=http://www.infoq.com/news/2007/11/android-java
| title=Google's Android SDK Bypasses Java ME in Favor of Java Lite and Apache Harmon
| publisher=infoq.com
| date=2007-11-12
| quote=Instead of providing a full version of the Java SE or Java ME Google has diverged on two fronts. First, a limited subset of the core Java packages is provided. (...) By going this route Android is following in the footsteps of another Google project GWT which uses Java as its development language but does not support the full JDK.
| access-date=2009-05-31}}{{cite web
| url=http://developer.android.com/reference/packages.html
| title=Package Index
| publisher=Open Handset Alliance
| access-date=2009-05-31| archive-url= https://web.archive.org/web/20090627025423/http://developer.android.com/reference/packages.html| archive-date= June 27, 2009 | url-status= live}} However, Dalvik does not align to Java SE nor Java ME Class Library profiles (for example J2ME classes, AWT and Swing are not supported).
Android 7.0 "Nougat" replaced Harmony with OpenJDK.
= End of the project =
On October 11, 2010, IBM, by far the biggest participant in the project, decided to join Oracle on the OpenJDK project, effectively shifting its efforts from Harmony to the Oracle reference implementation.{{cite web
| url=http://www.marketwire.com/press-release/Oracle-and-IBM-Collaborate-to-Accelerate-Java-Innovation-Through-OpenJDK-NASDAQ-ORCL-1332855.htm
| title=Oracle and IBM Collaborate to Accelerate Java Innovation Through OpenJDK
| publisher=Oracle Corporation
| access-date=2010-10-22| archive-url= https://web.archive.org/web/20101014150141/http://www.marketwire.com/press-release/Oracle-and-IBM-Collaborate-to-Accelerate-Java-Innovation-Through-OpenJDK-NASDAQ-ORCL-1332855.htm| archive-date= October 14, 2010 | url-status= live}}{{cite web
| url=https://arstechnica.com/open-source/news/2010/10/ibm-joins-openjdk-as-oracle-shuns-apache-harmony.ars
| title=Java wars: IBM joins OpenJDK as Oracle shuns Apache Harmony
|author=Ryan Paul
| date=October 13, 2010
| publisher=Ars Technica
| access-date=2010-10-22| archive-url= https://web.archive.org/web/20101019094951/http://arstechnica.com/open-source/news/2010/10/ibm-joins-openjdk-as-oracle-shuns-apache-harmony.ars| archive-date= October 19, 2010 | url-status= live}} Bob Sutor, IBM's head of Linux and open source, blogged that "IBM will be shifting its development effort from the Apache Project Harmony to OpenJDK".{{cite web
|url = http://www.sutor.com/c/2010/10/ibm-joins-the-openjdk-community/
|title = IBM joins the OpenJDK community, will help unify open source Java efforts
|author = Bob Sutor
|quote = IBM will be shifting its development effort from the Apache Project Harmony to OpenJDK. For others who wish to do the same, we’ll work together to make the transition as easy as possible. IBM will still be vigorously involved in other Apache projects.
|access-date = 2010-10-22
|archive-url = https://web.archive.org/web/20101018160132/http://www.sutor.com/c/2010/10/ibm-joins-the-openjdk-community/
|archive-date = October 18, 2010
|url-status = dead
}} In March 2011, IBM's Tim Ellison announced that he resigned as Project Management Chair for Harmony{{cite web
| url=http://harmony.markmail.org/message/ah5f42h4p2bhub6o
| title=Rebooting the Harmony project
| author=Tim Ellison
| date=2011-03-14
| access-date=2011-03-20}}{{cite web
| url=http://www.infoq.com/news/2011/03/apache-harmony
| title=What is the Future of Apache Harmony?
| publisher=infoq.com
| date=2011-03-14
| access-date=2011-03-20}} After IBM's disengagement, the project's activity level greatly declined.{{cite web|url=http://mail-archives.apache.org/mod_mbox/harmony-dev/|title=Mailing list archives: dev@harmony.apache.org|publisher=apache.org|access-date=2011-09-11}}
On October 29, 2011, a poll was started on the harmony-dev mailing list by the project lead Tim Ellison whether to retire the project. The outcome on November 3, was 20 to 2 in favor of retirement. On November 16, 2011, the Apache Software Foundation board of directors passed a motion to terminate the project.{{cite web | url=http://www.apache.org/foundation/records/minutes/2011/board_minutes_2011_11_16.txt | title=Board of Directors Meeting Minutes | publisher=Apache Software Foundation | date=November 16, 2011 | access-date=August 8, 2012 | quote=Larry wishes it to be noted that he is not against termination, he simply would have preferred to have more time to work on the messaging.}} One director, Larry Rosen, cast a "no" vote, based on the timing rather than the merits of the proposal; it was otherwise unanimous. The project was retired on November 16, 2011.
Development team
At the start, Apache Harmony received some large code contributions from several companies. Development discussions have taken place on open mailing lists. Later, the Apache Software foundation mentors put a lot of effort
into bringing the development process more in line with "the Apache way,"{{cite web| url=http://article.gmane.org/gmane.comp.java.harmony.devel/10742| title=We would like all the development to happen right here| author=Leo Simons| date=2006-07-24| access-date=July 28, 2006| archive-url=https://web.archive.org/web/20070929124030/http://article.gmane.org/gmane.comp.java.harmony.devel/10742| archive-date=September 29, 2007| url-status=dead}}{{cite web| url=http://incubator.apache.org/learn/theapacheway.html| title=The Apache Way| access-date=July 28, 2006| archive-url=https://web.archive.org/web/20060821223354/http://incubator.apache.org/learn/theapacheway.html| archive-date=August 21, 2006| url-status=dead}} and it seemed that their efforts were successful.
Last development status
Apache Harmony was accepted among the official Apache projects on October 29, 2006.
= Architecture =
The Dynamic Runtime Layer virtual machine consists of the following components:
- The VM core: with its subcomponents concentrates most of the JVM control functions.
- The porting layer: hides platform-specific details from other VM components behind a single interface and is based on the Apache Portable Runtime layer.
- The garbage collector: allocates Java objects in the heap memory and reclaims unreachable objects using various algorithms
- Execution Manager: selects the execution engine for compiling a method, handles profiles and the dynamic recompilation logic.
- Class Library: is a Java standard library.
- The thread manager that handle operating system threading
- The execution engine: consists of the following:
- The just-in-time compiler for compilation and execution of method code.
- The interpreter for easier debugging.
= Support platform and operating system =
The project provided a portable implementation that ease development on many platforms and operating systems. The main focus was on Windows and Linux operating systems on x86 and x86-64 architectures.{{cite web|url=http://harmony.apache.org/supported_platforms.html|title=Apache Harmony - Supported Platforms|author=Harmony Documentation Team|publisher=harmony.apache.org}}
class="wikitable" |
! Windows 2000
! Windows XP, Server 2003, Vista ! Linux RHEL, SLES, Debian, Gentoo, Fedora ! FreeBSD ! AIX ! Mac OS X |
---|
IA-32 (Pentium III or better)
| {{No}} | {{Yes}} | {{Yes}} | {{No}} | {{n/a}} | {{n/a}} |
x86-64 (Intel 64, AMD64)
| {{n/a}} | {{Yes}} | {{Yes}} | {{n/a}} | {{n/a}} | {{n/a}} |
Itanium (IA64, IPF)
| {{n/a}} | {{No}} | {{Yes}} | {{n/a}} | {{n/a}} | {{n/a}} |
PowerPC 32-bit
| {{n/a}} | {{n/a}} | {{No}} | {{n/a}} | {{n/a}} | {{n/a}} |
PowerPC 64-bit
| {{n/a}} | {{n/a}} | {{No}} | {{n/a}} | {{No}} | {{n/a}} |
zSeries 31-bit
| {{n/a}} | {{n/a}} | {{No}} | {{n/a}} | {{n/a}} | {{n/a}} |
= Class library coverage =
The expected donations from software companies were actually received. The Apache Harmony now contains the working code, including the Swing, AWT and Java 2D code which were contributed by Intel.
{{As of|2011|02}}, the Harmony project achieved 99% completeness for JDK 5.0, and 97% for Java SE 6.
The progress of the Apache Harmony project can be tracked against J2SE 1.4 and Java SE 5.0.{{Cite web|url=http://people.apache.org/~chunrong/latest-harmony-japi.html|title=Results of comparison between JDK_5.0 and Harmony_5.0|website=people.apache.org|accessdate=August 27, 2023}} Also, there is a branch for Harmony v6.0 in development for Java SE 6.0.
Apache Harmony developers integrate several existing, field-tested open-source projects to meet their goal (not reinventing the wheel). Many of these projects are mature and well known and other parts of the library needed to be written from scratch.
This is a list of existing open source components that are used in the Apache Harmony project; some of them were in use before the project started.
class="wikitable"
! Component ! Description |
ICU
| Mature C/C++ and Java libraries for Unicode support and software internationalization and globalization |
Apache Xalan
| XSLT stylesheet processor for Java, C++ which implements XPath language |
Apache Xerces |
Apache Portable Runtime
| Cross-platform abstraction library, provides platform independence |
Apache CXF
| Robust, high performance Web services framework work over protocols such as SOAP, XML/HTTP, RESTful HTTP, CORBA |
BCEL
| Libraries to decompose, modify, and recompose binary Java classes, i.e., bytecode |
MX4J
| Java Management Extensions (JMX) tools to manage and monitor applications, system objects, devices and service-oriented networks |
VM Magic
| Set of extensions to Java language to facilitate systems programming in Java by adding direct memory operations, etc. |
Bouncy Castle
| Libraries collection of lightweight cryptography for Java and C# |
ANTLR
| Language tool, provides a framework to construct recognizers, interpreters, compilers, and translators from grammatical descriptions containing actions in many target languages |
= Documentation =
Harmony is less documented than the alternative free Java implementations. For instance, in GNU Classpath every method of the central CORBA class (ORB) has the explaining comment both in the standard abstract API class[http://cvs.savannah.gnu.org/viewcvs/*checkout*/classpath/org/omg/CORBA/ORB.java?rev=1.2.2.12&root=classpath Class path] {{Dead link|date=June 2020 |bot=InternetArchiveBot |fix-attempted=yes }} and implementation.[http://cvs.savannah.gnu.org/viewcvs/*checkout*/classpath/gnu/CORBA/OrbFunctional.java?rev=1.6&root=classpath Class path] {{Dead link|date=June 2020 |bot=InternetArchiveBot |fix-attempted=yes }} In the Yoko project, used by Harmony,{{cite web|url=http://www.mail-archive.com/yoko-dev@incubator.apache.org/msg01428.html|title=Harmony uses latest Yoko jars...|date=September 27, 2006}} most methods both in the standard declaration{{cite web|url=http://svn.apache.org/repos/asf/incubator/yoko/trunk/yoko-spec-corba/src/main/java/org/omg/CORBA/ORB.java|title=License|website=apache.org|access-date=27 August 2023}} and implementing class{{cite web|url=http://svn.apache.org/repos/asf/incubator/yoko/trunk/core/src/main/java/org/apache/yoko/orb/OBCORBA/ORB_impl.java|title=License|website=apache.org|access-date=27 August 2023}} were undocumented at the end of October 2006. Also, GNU Classpath supported both older and newer CORBA features (same as Sun's implementation). Harmony, differently, left the central method of the older standard (ORB.connect(Object)
) fully unimplemented.
= Tools =
A complete implementation of the Java platform also needs a compiler that translates Java source code into bytecodes, a program that manages JAR files, a debugger, and an applet viewer and web browser plugin, to name a few. Harmony has the compiler, appletviewer, jarsigner, javah, javap, keytool, policytool, and unpack200.{{Cite web|url=https://harmony.apache.org/roadmap.html|title=Apache Harmony - Project Roadmap|website=harmony.apache.org|accessdate=August 27, 2023}}
= Virtual machine support =
Harmony has seven virtual machine implementations that run Harmony Class Library, all of which were donations by external groups:
- JC Harmony Edition VM, "JCHEVM," based on the JCVM's interpreter, contributed by the author, Archie Cobbs.
- BootJVM, a simple bootstrapping virtual machine, contributed by Daniel Lydick.
- SableVM, an advanced, portable interpreter, contributed by authors from the Sable Research Group; and the Dynamic Runtime Layer Virtual Machine.
- DRLVM, a just-in-time compiler contributed by Intel.
- BEA announced the availability of an evaluation version of JRockit VM running Apache Harmony Class Library.{{cite web|url=http://mail-archives.apache.org/mod_mbox/harmony-dev/200701.mbox/%3C1D7F0297-B0C5-4B05-AD27-B457B309C425@pobox.com%3E|title=[general] JRockit H27.2.1 for Harmony Class Library released now}}
- JikesRVM, an open-source meta-circular JVM that use the Apache Harmony Class Library.{{cite web|url=http://mail-archives.apache.org/mod_mbox/harmony-dev/200808.mbox/%3cb1e4cffb0808070820u2554f4faw4d98aa5059b5b425@mail.gmail.com%3e|title=Announcing Jikes RVM 3.0 + Apache Harmony!}}
- Ja.NET SE, an open source project providing a Java 5 JDK (class libraries, tools, etc.) that run on the .NET Framework CLR. Ja.NET SE is based on the Apache Harmony Class Libraries.{{cite web|url=http://www.janetdev.org/|title=Janet Dev}}
In the end of November 2006, the language support provided by these virtual machine was still incomplete, and the build instructions recommended to use IBM's proprietary J9 instead to run the class library test suite. However, this is not necessary anymore (as of July 2007).
As for the rest of the project, DRLVM virtual machine development has now stalled (as of May 2011).{{cite web
| url=https://issues.apache.org/jira/browse/HARMONY#selectedTab=com.atlassian.jira.plugin.ext.subversion%3Asubversion-project-tab
| title=Subversion Commits
| publisher=harmony.apache.org
| access-date=2011-05-28}}
Application status
Since its conception, Harmony grew in its ability to execute non-trivial Java applications.{{cite web|url=http://wiki.apache.org/harmony/Application_Status|title=Application_Status|publisher=apache.org|access-date=November 4, 2006|archive-url=https://web.archive.org/web/20070810010109/http://wiki.apache.org/harmony/Application_Status|archive-date=August 10, 2007|url-status=dead}} {{as of|2007|7}}, supported applications include:
- Eclipse: 99.3% of the 36000 reference implementation (RI) test pass on Harmony's DRLVM + class library.{{Cite web |url=http://wiki.apache.org/harmony/Eclipse_Unit_Tests_Pass_on_DRLVM#PassRate_2007 |title=Eclipse Unit Tests Pass on DRLVM - Harmony Wiki |access-date=November 4, 2006 |archive-url=https://web.archive.org/web/20070208110623/http://wiki.apache.org/harmony/Eclipse_Unit_Tests_Pass_on_DRLVM#PassRate_2007 |archive-date=February 8, 2007 |url-status=dead }}
- Apache Tomcat: 100% of the RI tests pass.{{cite web|url=http://wiki.apache.org/harmony/Apache_Tomcat|title=Apache_Tomcat|publisher=apache.org|access-date=November 4, 2006|archive-url=https://web.archive.org/web/20070210122940/http://wiki.apache.org/harmony/Apache_Tomcat|archive-date=February 10, 2007|url-status=dead}}
- JUnit: 100% of the RI tests pass.{{cite web|url=http://wiki.apache.org/harmony/JUnit|title=JUnit|publisher=apache.org}}
- Apache Ant: 97% of the RI tests pass.{{cite web|url=http://wiki.apache.org/harmony/Apache_Ant|title=Apache_Ant|publisher=apache.org|access-date=November 4, 2006|archive-url=https://web.archive.org/web/20070210122607/http://wiki.apache.org/harmony/Apache_Ant|archive-date=February 10, 2007|url-status=dead}}
- Other applications pass with a high success rate, such as Apache Derby, Apache Axis, Log4j, Apache Velocity, Apache Cocoon, jEdit, and Apache Commons.
However, Harmony's incomplete library prevented it from launching some other applications:
- ArgoUML: because it needs a Java applet implementation, which was still unavailable in Harmony.
- Apache Geronimo runs on Apache Harmony with some issues and workarounds.{{cite web|url=http://cwiki.apache.org/confluence/display/GMOxDOC20/Apache+Harmony|title=Apache Harmony|publisher=apache.org}}
- Vuze, formerly Azureus, because of unimplemented security classes.
See also
{{Portal|Free and open-source software|Computer programming}}
References
{{Reflist|30em}}
External links
- {{official website}}
- [http://mail-archives.apache.org/mod_mbox/incubator-general/200505.mbox/%3CE3603144-2C26-4C31-896D-6CC7445A63EB@apache.org%3E Apache Harmony FAQ]
- [http://svn.apache.org/viewvc/harmony/?root=Apache-SVN Apache Harmony source code repository]
- [http://developers.sun.com/learning/javaoneonline/2006/coreplatform/TS-3752.html JavaOne 2006 Online Harmony Session]
- [http://developers.sun.com/learning/javaoneonline/j1sessn.jsp?sessn=TS-7820&yr=2007&track=6 JavaOne 2007 Online Harmony Session]
- [http://parleys.com/display/PARLEYS/Apache+Harmony?showComments=true Apache Harmony] by Geir Magnusson Jr at JavaPolis 2006
- [http://www.osnews.com/story.php?news_id=10806 The Java open source debate - a good summary of the debate]
- [http://www.infoq.com/news/2011/03/apache-harmony What is the Future of Apache Harmony?]
- [http://www.h-online.com/open/news/item/Apache-Harmony-loses-project-manager-1210343.html Apache Harmony loses project manager]
{{Java Virtual Machine}}
{{Java (software platform)}}
{{Apache Software Foundation}}
Category:Java (programming language) libraries