Apache 怒了,威胁说要离开 JCP

  • Alex Blewitt
  • 张龙

2010 年 11 月 16 日

话题:JavaOracleApache语言 & 开发

近日,Apache 软件基金会董事做出了一个史无前例的举动:如果他们作为 Java 规范实现者的权利得不到满足,那么就打算离开 JCP

在 JSPA 上,Oracle 与 ASF 同意一起参与 JCP 的建设,ASF 享有 Java SE 测试包(即”TCK“)的许可权,这样 ASF 就可以基于 Apache License 测试并发布 Apache Harmony 项目了。但现在 Oracle 违背了他们所签订的合同契约,只提供了附加额外条款与条件的 TCK 许可,而该许可与开源或免费软件许可又不兼容。

ASF 声称如果他们作为 Java 规范实现者的权利得不到 JCP 执委会最大限度的满足,那么他们将终止与 JCP 的合作关系。缺乏积极、有力、清晰执行力的权利反映出 JSPA 是毫无价值的,只能证明 JCP 规范只不过专有文档而已。

最具争议的事情就是 Sun(现在的 Oracle)拒绝为 Apache 开源的 Java 实现提供测试兼容包(TCK)。其中的原因在于财政——Oracle 很大一部分收益来自于移动设备上的 Java,而移动设备上免费的 JVM 可能会威胁到 Oracle 的收入来源(OpenJDK 对于很多嵌入式设备都是不适用的,因为它要求所有的源代码都得基于 GPL 发布,这就需要商业许可了)。

然而,JCP 文档还需要使用 JSRs。对于 Java 6 平台的JSR 270来说,许可条款包括:

10. 应该向非营利组织与参与创建 Java SE 6 规范兼容性实现的个人无偿提供 Java SE 6 TCK,只需带有商标与商标版权即可,但不提供支持。

2007 年 4 月开始 Apache 董事就开始抱怨这种矛盾,然后又是 Java 5 规范。现在,主要的问题在于使用限制上:

从 2006 年 8 月开始,ASF 就开始尝试从 Sun 搞来 Java SE 测试包的许可。该测试包叫做”Java Compatibility Kit“(即”JCK“),Apache Harmony 项目需要使用它说明它与 Java SE 规范的兼容程度,而这正是 Sun 规范许可所要求的。Sun 所提供的 JCK 许可通过限制”使用条款“对软件用户增加了不少知识产权方面的约束。

这些限制与Java 规范参与协议(JSPA)之间矛盾重重——JCP 的条款是由 Sun 所统治的。特别地,JSPA 要求:

  1. 规范领导不能”增加任何契约来限制任何许可创建或是分发独立实现的权利“(第 5.C.III 节)。
  2. 规范领导必须为任何兼容的规范实现提供必要的免知识产权的许可(第 5.B 节)。

该实现正好与Oracle 和 Google 之间的专利诉讼交叉,而后者的诉讼主要关注在 JVM 本身。虽然 Harmony 带有 DRLVM(最初由 Intel 捐献),但 TCK 本应该授权使用这些专利。要是没有 TCK,Apache Harmony 的 JVM 可能就会违背某些专利——但 Oracle 发起的庭审自动卷入到了关于 JSPA 的争论,Oracle 希望避免这些情况的发生。

由于IBM 加入到了 OpenJDK 当中,人们不禁要问:Oracle 能否拯救 Java 呢?Oracle 的立场依旧强硬——不管之前人们怎么说,在最后验收前,应该将这种残局公之于众。

然而遗憾的是,虽然 Oracle 仍旧需要人手,但Doug Lea 等人却已经离开了 JCP

无论 Apache 是否还留在 JCP,Oracle 已经不太可能改变他们对无限制 TCK 的立场了。即便 Apache 还留在 JCP 并且对 Java 7 投了反对票,Oracle 也会竭尽所能地推进 Java 7。

Oracle 已经将自己推向了社区的角落。MySQL 之前的众多开发者都选择了离开(并且创建了开源产品,如MariaDBDrizzle);OpenSolaris 董事也已离职去了Illumos,还有其他很多优秀人才也都离开了。人们甚至还发起了一个投票,质疑 JCP 是否还是一个独立的标准化组织

自从 Oracle 开始控制 Java 与 JCP 起,他们就可以像终止 OpenSolaris 项目一样轻松终止 JCP。由于 Apache 没有足够的资源支撑起这场战役,因此无论他们是走是留都对明年 Oracle 发布 Java 7 没有太大的影响。结果,离开 JCP 可能是 Apache 唯一的选择。

查看英文原文:Apache Threatens to Leave JCP

JavaOracleApache语言 & 开发