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.

Дивись також[ред. | ред. код]