Apache Harmony

Матеріал з Вікіпедії — вільної енциклопедії.
Jump to navigation Jump to search
Apache Harmony
Apache Harmony Logo.png
Тип Java Virtual Machine
Розробник Apache Software Foundation
Стабільний випуск 6.0 M3 (15 вересня 2010)
Платформа Віртуальна машина Java
Операційна система Windows і Linux
Написано на C++ і Java
Стан розробки Закрито
Ліцензія Apache License 2.0
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.

Виноски[ред.ред. код]

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