Sun Microsystems 于 8 月 9 日宣布为 JCK(Java Compatibility Kit——Java 兼容性工具包)发布一个新的许可证版本。 这个特别拟定的 OpenJDK 社区 TCK 许可证(OpenJDK Community TCK License)——正如其名字所暗示的——被设计成方便 OpenJDK 社区更宽松地访问 JCK,因而确保了与 Java 标准保持一致。这显然是对开源版可信度的一个巨大推进。
尽管 Sun 最近已经将一些关键软件资产转移到开放许可下时,但 JCK 依旧被严密地控制。随着时间流逝,获得对其使用权已经逐渐的变得简单了,尽管这种方式并不是开源实现者所钟爱的。
新许可对哪些项目可以获得兼容性测试权设置了明确要求。其关键在于一个项目必须“基本上源自”OpenJDK 本身,而且编码必须在GPL2 许可下可用——尽管事实上OpenJDK 确实是在GPL2 许可下分发的,这意味着任何衍生品都必须遵循GPL2。“基本上源自”的真实含义在许可中并未详细说明,而且在 FAQ 中也不明确:
“如果一个实现包含了大量 OpenJDK 代码库中已有的代码,完成明显地重要工作或整体上实现了一些 API 集合,那么它“基本上源自”OpenJDK 代码库。”
正如 InfoQ最近所报道的,Apache Harmony 项目已经游说 Sun 更少地在 JCK 上作限制。Harmony 是 Java 标准的 Apache 实现的名字,它需要通过 JCK 测试以证明自己是 Java 兼容的。Apache 组织相信 Sun 实际上正在破坏 JSPA 协定,该协定是形成 Java Community Process 的基础。按照 Apache 的说法,这一协定应该约束参与者只能在非限制许可下分发技术兼容工具包(technology compatibility kits——TCK)。
作为抗议,对所有新的 JSR,只要 Sun 是该规范的领导者,Apache 现在都投反对票。Sun 的一个代言人说:“显然我们并不认为我们正在破坏对 JSPA 所应尽的职责。我们正在提供我们 TCK 的访问权和使用权——包括 Java 商标——将其置于非常良好的条款之下。”在进一步说明中,“Sun 很遗憾 Apache 暗示我们所讨论的 Java EE 平台的发展超越了 Java SE 的 TCK 许可。”最终,反对票并没有对 Sun 起到切实的影响,因为其他参与者没有参与到这场争论中,而 JSR 提议也通过了。JCP 官方在这一事件上的解释:
JSR 投票过程的唯一用意是通过 JCP EC 来评估和表达关于一个 JSR 提议的技术水平的专家观点。基于 JSR EC 的投票结果,决定了一个 JSR 提议是否将继续通过 JCP 发展以形成一个标准。我们希望 Apache 软件基金会和 Sun 能够通力合作,找到一个使争论双方都能满意的决议,以利于开发者社区的发展。”
很清楚,因为缺少对 Apache 独立开发实现(工作于 Apache 自己的开源原则之下)的让步,新的 JCK 许可对 Apache Harmony 项目将是一个打击。Sun 的代言人说:
“我们已经对 Apache 提供了(而且还正在提供)与提供给商业团体(如果想构建他们自己的独立实现)相同的 Java SE TCK 条款,除此之外,我们还对 Apache 提供了免费 TCK、免费使用 Java 商标、以及我们的免费支持服务。”
很明显,Sun 所提供的并不适合 Apache 他们自己的开放标准,因此这一争论可能还要延续一段时间。
评论