Apache Harmony: История разработки и прекращение проекта
Apache Harmony
Apache Harmony: свободная Java реализация от Apache. 99% совместимости с J2SE 5.0 и 97% с Java SE 6. Использовалась в Android, но проект закрыт в 2011.
Сравнивайте с английским: нажмите на абзац — оригинал откроется в окне. Кнопка EN под абзацем показывает его прямо в тексте.
Содержание
Введение
Язык программирования Java, реализация с открытым исходным кодом.
Java programming language Open source implementation
Apache Harmony — это прекращенная реализация Java с открытым исходным кодом, разработанная Apache Software Foundation. Она была анонсирована в начале мая 2005 года, а 25 октября 2006 года совет директоров проголосовал за придание Apache Harmony статуса проекта верхнего уровня. К февралю 2011 года проект Harmony достиг 99% полноты реализации J2SE 5.0 и 97% для Java SE 6. Операционная система Android исторически являлась основным потребителем Harmony, однако, начиная с Android Nougat, она все больше использует библиотеки OpenJDK. 29 октября 2011 года руководитель проекта Тим Эллисон инициировал голосование о прекращении проекта. Результат был 20 голосов за и 2 против, и проект был закрыт 16 ноября 2011 года.
Apache Harmony is a retired open source, free Java implementation, developed by the Apache Software Foundation. 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. The Android operating system has historically been a major user of Harmony, although since Android Nougat it increasingly relies on OpenJDK libraries. 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, and the project was retired on November 16, 2011.
Введение
Проект Harmony изначально задумывался как попытка объединить всех разработчиков свободных реализаций Java. Многие разработчики ожидали, что он станет проектом, стоящим над сообществами GNU, Apache и другими. Разработчики GNU были приглашены и участвовали в начальном, подготовительном планировании. Затем Apache решил не использовать код из GNU Classpath, поскольку хотел, чтобы Harmony был доступен под лицензией Apache 2.0. Разработчики Apache планировали писать необходимые классы с нуля и ожидали значительных пожертвований кода от программных компаний. Различные недоразумения на начальном этапе проекта и предложения крупных компаний, таких как IBM, о пожертвовании больших объемов существующего кода, привели к тому, что некоторые участники свободного сообщества Java стали рассматривать проект скорее как корпоративный консорциум, чем как проект Apache. Одним из ключевых моментов несовместимости между GNU Classpath и Apache Harmony была несовместимость их лицензий: GNU General Public License Classpath с исключением для компоновки против лицензии Apache Harmony. Причиной неприемлемости лицензии для ASF является то, что она накладывает ограничения на права пользователей Harmony посредством ограничений в "области применения", что не соответствует правилам Java Community Process. Sun ответила в своем блоге, что намерена создать реализацию Java-платформы с открытым исходным кодом под лицензией GPL, включая TCK, но их приоритетом было как можно быстрее сделать Java-платформу доступной для сообщества Linux под GPL. Этот ответ вызвал неоднозначную реакцию: одни критиковали Sun за недостаточную открытость в ответе на открытое письмо, другие – Apache Software Foundation; некоторые считают, что ASF действовала неразумно, слишком агрессивно требуя от Sun того, чего можно было добиться более дипломатичным путем, особенно учитывая сроки открытия библиотеки классов. Sun выпустила OpenJDK в мае 2007 года вместе со специальной лицензией, позволяющей запускать TCK в контексте OpenJDK для любой реализации GPL, существенно основанной на OpenJDK. Это не распространяется на Apache Harmony, который не лицензирован по GPL. 9 декабря 2010 года Apache Software Foundation покинула Исполнительный комитет Java Community Process в знак протеста против сложностей с получением лицензии, приемлемой для Apache и пригодной для использования в проекте Harmony.
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 the GNU, Apache and other communities. GNU developers were invited into and participated during the initial, preparatory planning. Apache then decided not to use code from GNU Classpath because it wanted Harmony to be available under the Apache License v2. 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. 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. 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. Sun answered on a company blog 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, 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. 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. 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, in protest over the difficulty in obtaining a license acceptable to Apache for use with the Harmony project.
Использование в Android SDK
Виртуальная машина, используемая в платформе Android от Google (Dalvik до версии 4.4 и ее преемник, Android Runtime (ART)), использует подмножество Harmony для ядра своей библиотеки классов. Однако Dalvik не соответствует профилям Java SE или Java ME Class Library (например, классы J2ME, AWT и Swing не поддерживаются). Android 7.0 "Nougat" заменил Harmony на OpenJDK. Боб Сутор, руководитель направления Linux и открытого исходного кода в IBM, написал в своем блоге, что "IBM перенаправит свои усилия по разработке с Apache Project Harmony на OpenJDK". В марте 2011 года Тим Эллисон из IBM объявил о своем уходе с поста председателя проектной группы Harmony. После прекращения участия IBM активность проекта значительно снизилась. 29 октября 2011 года Тим Эллисон, руководитель проекта, инициировал опрос на рассылке разработчиков Harmony о целесообразности закрытия проекта. Результаты опроса 3 ноября показали 20 голосов за закрытие и 2 против. Один из директоров, Ларри Розен, проголосовал против, основываясь на сроках, а не на обоснованности предложения; в остальном решение было единогласным. И, казалось, их усилия увенчались успехом.
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. 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. 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". In March 2011, IBM's Tim Ellison announced that he resigned as Project Management Chair for Harmony After IBM's disengagement, the project's activity level greatly declined. 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. One director, Larry Rosen, cast a "no" vote, based on the timing rather than the merits of the proposal; it was otherwise unanimous. and it seemed that their efforts were successful.
Последнее состояние разработки
Apache Harmony был принят в качестве официального проекта Apache 29 октября 2006 года.
Apache Harmony was accepted among the official Apache projects on October 29, 2006.
Обеспечение библиотекой класса
Ожидаемые пожертвования от компаний-разработчиков программного обеспечения были получены. Apache Harmony теперь содержит рабочий код, включая Swing, AWT и Java 2D, которые были предоставлены Intel. По состоянию на 2011 год проект Harmony достиг 99% завершенности для JDK 5.0 и 97% для Java SE 6. Также существует ветвь для Harmony v6.0, находящаяся в разработке для Java SE 6.0. Разработчики Apache Harmony интегрируют несколько существующих, проверенных в реальных условиях проектов с открытым исходным кодом, чтобы достичь своей цели (не изобретать велосипед). Многие из этих проектов зрелые и хорошо известны, а другие части библиотеки пришлось разрабатывать с нуля. Ниже представлен список существующих компонентов с открытым исходным кодом, используемых в проекте Apache Harmony; некоторые из них использовались еще до начала проекта.
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, the Harmony project achieved 99% completeness for JDK 5.0, and 97% for Java SE 6. 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. 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 XML parser library for Java, C++, Perl 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
Описание компонента:
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, the Harmony project achieved 99% completeness for JDK 5.0, and 97% for Java SE 6. 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. 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 XML parser library for Java, C++, Perl 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
ICU – Зрелые библиотеки C/C++ и Java для поддержки Unicode, интернационализации и глобализации программного обеспечения.
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, the Harmony project achieved 99% completeness for JDK 5.0, and 97% for Java SE 6. 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. 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 XML parser library for Java, C++, Perl 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
Apache Xalan – Процессор таблиц стилей XSLT для Java и C++ с реализацией языка XPath.
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, the Harmony project achieved 99% completeness for JDK 5.0, and 97% for Java SE 6. 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. 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 XML parser library for Java, C++, Perl 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
Apache Xerces – Библиотека для разбора XML для Java, C++ и Perl.
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, the Harmony project achieved 99% completeness for JDK 5.0, and 97% for Java SE 6. 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. 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 XML parser library for Java, C++, Perl 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
Apache Portable Runtime – Библиотека кроссплатформенной абстракции, обеспечивающая платформенную независимость.
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, the Harmony project achieved 99% completeness for JDK 5.0, and 97% for Java SE 6. 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. 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 XML parser library for Java, C++, Perl 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
Apache CXF – Надежный, высокопроизводительный веб-фреймворк для работы с протоколами, такими как SOAP, XML/HTTP, RESTful HTTP и CORBA.
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, the Harmony project achieved 99% completeness for JDK 5.0, and 97% for Java SE 6. 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. 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 XML parser library for Java, C++, Perl 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
BCEL – Библиотеки для разложения, модификации и рекомпозиции двоичных классов Java, то есть байт-кода.
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, the Harmony project achieved 99% completeness for JDK 5.0, and 97% for Java SE 6. 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. 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 XML parser library for Java, C++, Perl 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
MX4J – Инструменты Java Management Extensions (JMX) для управления и мониторинга приложений, системных объектов, устройств и сервисно-ориентированных сетей.
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, the Harmony project achieved 99% completeness for JDK 5.0, and 97% for Java SE 6. 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. 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 XML parser library for Java, C++, Perl 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
VM Magic – Набор расширений для языка Java, облегчающих системное программирование на Java путем добавления операций прямого доступа к памяти и т.д.
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, the Harmony project achieved 99% completeness for JDK 5.0, and 97% for Java SE 6. 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. 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 XML parser library for Java, C++, Perl 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
Bouncy Castle – Коллекция легковесных криптографических библиотек для Java и C#.
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, the Harmony project achieved 99% completeness for JDK 5.0, and 97% for Java SE 6. 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. 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 XML parser library for Java, C++, Perl 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
ANTLR – Языковой инструмент, предоставляющий основу для построения распознавателей, интерпретаторов, компиляторов и переводчиков из грамматических описаний, содержащих действия на многих целевых языках.
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, the Harmony project achieved 99% completeness for JDK 5.0, and 97% for Java SE 6. 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. 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 XML parser library for Java, C++, Perl 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
Документация
Гармония документирована в меньшей степени, чем альтернативные свободные реализации Java. Например, в GNU Classpath каждый метод центрального класса CORBA (ORB) имеет поясняющий комментарий как в стандартном абстрактном классе API, так и в реализации. В проекте Yoko, который использовался Harmony, большинство методов как в стандартном объявлении, так и в классе реализации оставались без документации на конец октября 2006 года. Кроме того, GNU Classpath поддерживал как устаревшие, так и новые функции CORBA (аналогично реализации Sun). В отличие от этого, Harmony оставила центральный метод устаревшего стандарта (ORB.connect(Object)) полностью нереализованным.
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 and implementation. In the Yoko project, used by Harmony, most methods both in the standard declaration and implementing class 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.
Инструменты
Для полной реализации платформы Java также необходим компилятор, преобразующий исходный код Java в байт-код, программа для управления JAR-файлами, отладчик, средство просмотра апплетов и плагин для веб-браузера, и это лишь некоторые из них. Harmony включает в себя компилятор, appletviewer, jarsigner, javah, javap, keytool, policytool и unpack200.
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.