Apache Harmony

Apache HarmonyApache软件基金会主导的开放原始码项目,是自由Java实现计划(Free Java implementations)的一部分。基于Java SE 5与6,目标是以开放原始码方式,实现出Java SDK。该项目已于2011年10月宣布停止开发。

Apache Harmony
开发者Apache Software Foundation
当前版本5.0M15
6.0M3(2010年9月15日,​14年前​(2010-09-15
原始码库 编辑维基数据链接
编程语言C++ and Java
操作系统Windows and Linux
类型Java Virtual Machine and Java 类库
许可协议Apache许可证2.0
网站http://harmony.apache.org

这个项目的目标是营造一个大型的、健康的社区,这个社区由那些对运行时平台感兴趣的人组成。他们的任务是完成:

  1. 一个兼容的、独立的Java SE 5 JDK的实现,并根据Apache License v2发布;
  2. 一个由社区开发的模块化的运行时(包括Java虚拟机类库)体系结构。

该项目期望支持尽可能多的不同平台。一个特定的平台是否被支持,主要取决于参与者能在这个平台上定期运行测试、报告编译安装的情况,以及为该平台除虫,等等。

历史

Apache Harmony项目建立于2005年5月。到2006年10月25日,Apache董事会投票决定Apache Harmony成为顶级项目。10月29日,Apache孵化器管理委员会(Incubator PMC)投票决定Harmony完成孵化,认为它符合孵化器对社区管理和IP监管的要求。

开发者

Apache Harmony拥有32名贡献者,其中28位处于活跃期。此外,还拥有大量的其他兴趣爱好者和开发人员。

最近发展

Apache Harmony一直在稳步前进:

  1. Apache Harmony已经发布了5个milestone build
  2. JRE可以运行一些流行的应用如Apache Tomcat, Eclipse, Maven, Derby, Ant
  3. 完成了99%的Java 5 API
  4. 超过125万行的代码
  5. Harmony类库于2007年底被Google Android采用为其类库
  6. 2007年,IBM宣布在其JDK6.0中使用了部分Harmony代码

Android

Dalvik虚拟机, Google Android平台所使用的虚拟机,使用了Harmony部分的子集,作为它核心的类别函数库。

TCK的纷争

如果需要成为一个带有Java logo标志的,可以声称自己兼容Sun公司实现的JDK,需要通过JCP(Java Community Process)对其拥有的TCK(Technology Compatibility Kit)的测试。Apache Harmony项目一直在努力争取获得JCP的授权。

但是,由于Sun公司的态度,JCP并没有给Harmony授予TCK许可,而且SUN发布OpenJDK之后,还规定只有派生自OpenJDK的采用GPL协议的开源实现才能运行OpenJDK的TCK[2]

但Apache的Harmony是Apache协议的,与OpenJDK的GPLv2协议不兼容,Apache董事会和Harmony项目工作人员坚决反对这种带有条件的授权,认为这种是在开源社区里不可接受的。因此,两者谈判破裂。直到现在,Harmony一直没有获得TCK的授权。有批评称,Sun无视它签署的JCP法律协定,这摧毁了全部的信任。[3]

但该项目参与者依然认为,即使没有TCK,即无法“声称”自己兼容Sun的实现,他们依然可以做出一个好的产品并为业界所接受。

未来展望

Apache Harmony计划每2个月做一个milestone的build,并计划于今年正式发布一个5.0(即期望与Sun jdk 5.0兼容的)的发布版。

参考文献

  1. ^ The end of (Apache) Harmony. The H. 4 November 2011 [2013-06-23]. (原始内容存档于2013-07-05). 
  2. ^ OPENJDK COMMUNITY TCK LICENSE AGREEMENT V 1.1 (PDF). [2012-06-02]. (原始内容存档 (PDF)于2012-08-26). 
  3. ^ 争论:JCP在Java的未来中将扮演什么角色?. [2008-04-14]. (原始内容存档于2008-02-20). 

外部链接