Apache Harmony

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до: навігація, пошук
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.

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

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