Apache Harmony

Apache Harmony
Тип Java Virtual Machine
Розробник Apache Software Foundation
Стабільний випуск 6.0 M3 (15 вересня 2010)
Платформа віртуальна машина Java
Операційна система Windows і Linux
Мова програмування C++ і Java
Стан розробки Закрито
Ліцензія Apache License 2.0
Репозиторій svn.apache.org/repos/asf/harmony/
Вебсайт harmony.apache.org

Apache Harmony — альтернативна вільна реалізація платформи Java SE (J2SE 5 і 6) від Apache Software Foundation і була каменем спотикання в конфлікті з компанією Sun Microsystems і надалі з Oracle.

Історія

Початковою метою проєкту Harmony була спроба об’єднати всіх розробників вільних реалізацій платформи Java у межах одного проєкту. Багато розробників очікували, що проєкт не буде підконтрольний GNU, Apache чи іншій спільноті, а буде керуватися окремо. Розробники від GNU брали участь у підготовчому плануванні проєкту.

Проте пізніше було вирішено не використовувати код GNU Classpath і що проєкт буде мати несумісну ліцензію, що значно ускладнило співробітництво між Harmony і існуючими вільними реалізаціями Java. Розробники Apache не планували переписування усіх класів з нуля, а очікували на пожертвування коду від великих компаній з розробки ПЗ.

На початковому етапі розробки проєкт Apache Harmony прийняв великі внески коду від декількох компаній. На листопад 2006 року у проєкті брали участь 16 розробників, 12 з яких були співробітниками IBM або Intel.

Закриття проєкту

Проєкт Apache Harmony був заснований за кілька років до відкриття під ліцензією GPLv2 коду JDK і домігся відмінної сумісності з Java SE. Тим не менш, небажання Sun і Oracle піти на скасування обмежень на сферу використання продуктів, протестованих в JCK (Java Compatibility Kit), призвело до неможливості формального визнання проєкту Apache Harmony повністю сумісним з Java SE. Для вільних GPL-проєктів JCK поширюється без обмежень, але реалізація Apache Harmony поширюється під ліцензією Apache 2.0. Компанія Sun пішла на певні поступки і дала можливість безплатно використовувати JCK в проєктах Apache, але за умови дотримання низки обмежень, наприклад, заборонено тестувати в JCK реалізації Java SE, які можуть бути використані для роботи контент-кіосків (платіжні термінали, інформаційні автомати, банкомати тощо).

Таким чином, використання тестового пакета для перевірки сумісності Apache Harmony з Java в певних областях вимагало оплати ліцензійних відрахувань, що на думку представників Apache, порушує угоду JSPA (Java Specification Participation Agreement), в якому обговорено безплатний характер поширення специфікацій. Oracle же вважає, що дотримується заявленої угоди, бо ліцензує JCK на умовах FRAND ("fair, reasonable and non-discriminatory" - "справедливий, прийнятний, неупереджений").

Після того як спроби залагодити конфлікт протягом багатьох років не увінчалися успіхом, фонд Apache закликав учасників комітету JCP голосувати проти прийняття специфікацій для наступної версії Java. У підсумку, бунт не вдався, а фонд Apache демонстративно заявив про вихід зі складу комітету JCP, що приймає рішення про подальший розвиток Java SE/EE. При виході було заявлено про неможливість створення незалежних відкритих реалізацій Java, які могли б гарантувати користувачам захист від можливих позовів, пов'язаних порушенням інтелектуальної власності авторів специфікацій. Також було вказано на те, що Java-технології залишаються власницькими, незважаючи на відкритий код OpenJDK, бо одноосібне втручання компанії Oracle спотворює процес прозорого управління в екосистемі Java. Приблизно в цей же час проєкт Apache Harmony позбувся свого основного союзника і спонсора — компанія IBM заявила про співпрацю з Oracle і підключилася до розвитку OpenJDK.

3 листопада 2011 року більшістю голосів (20 - "за" і 2 - "проти") розробники проголосували за переміщення всіх пов'язаних з проєктом напрацювань в репозиторій застарілих проєктів Apache Attic.[1][2]

Використання в Android

Віртуальна машина Dalvik, що є частиною платформи Google Android, використовує частину проєкту Harmony як основну складову бібліотеки класів. Проте Dalvik не відповідає стандартному API Java SE і Java ME, а взамін використовує власну стандартну бібліотеку, що побудована поверх бібліотеки класів проєкту Harmony.

Виноски

  1. Move Apache Harmony to the Attic. Архів оригіналу за 27 квітня 2012. Процитовано 2 квітня 2012.
  2. Закрытие проекта Apache Harmony, независимой реализации Java SE. Архів оригіналу за 20 травня 2012. Процитовано 2 квітня 2012.

Дивись також

  • п
  • о
  • р
Платформи Java
Технології Sun
Squawk · Java Development Kit · OpenJDK · JavaFX
Основні технології Java
Основні сторонні технології
JRockit · GNU Classpath · Kaffe · TopLink · Apache Harmony · Apache Struts · Spring framework · Hibernate · JBoss application server · Tapestry · Jazelle
Історія
Мови програмування JVM
BeanShell · Clojure · Groovy · Java Tcl · JRuby · Jython · Processing · Rhino · Scala · більше…
Java конференції
JavaOne
  • п
  • о
  • р
Основні проєкти
ActiveMQ · Airflow  · Ant · Apache HTTP Server · APR · Apache Beam[en]  · Bloodhound  · Buildr · Camel · Cassandra · Cayenne · Chemistry  · CloudStack  · Cocoon · Commons · Cordova  · CouchDB · CXF · Deltacloud · Derby  · Directory · Excalibur · Felix · Flex  · Forrest · Geronimo · Gump · Hadoop · iBATIS  · Isis  · Jackrabbit · James · Lenya · Lucene · Maven · mod_perl · MyFaces · OFBiz  · OpenEJB · OpenJPA · OpenNLP  · OpenOffice · POI · Qpid · Rave · Roller · Sling · SpamAssassin  · Spark  · Sqoop · Stratos  · Struts  · Subversion  · Tapestry  · Tika · Tomcat · Traffic Server · Tuscany · Velocity · Wicket · XMLBeans[en]
Інші проєкти
Jakarta Project · Apache XML · Apache Incubator
Підпроєкти
BCEL · BSF · Cactus · Chainsaw · HBase · JMeter · Xerces · Batik · FOP · Log4j · XAP · River · ServiceMix · Log4Net · Abdera · Ivy · ODE · JSPWiki · Wink · Solr
Інкубатор
MXNet  · OpenMeetings  · Superset
Колишні проєкти (Attic)
Beehive · Harmony · HiveMind · Slide · Shale  · Wave
Ліцензія: Apache License · Сайт: http://apache.org/