近日,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要求: 规范领导不能”增加任何契约来限制任何许可创建或是分发独立实现的权利“(第5.C.III节)。 规范领导必须为任何兼容的规范实现提供必要的免知识产权的许可(第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之前的众多开发者都选择了离开(并且创建了开源产品,如MariaDB与Drizzle);OpenSolaris董事也已离职去了Illumos,还有其他很多优秀人才也都离开了。人们甚至还发起了一个投票,质疑JCP是否还是一个独立的标准化组织。 自从Oracle开始控制Java与JCP起,他们就可以像终止OpenSolaris项目一样轻松终止JCP。由于Apache没有足够的资源支撑起这场战役,因此无论他们是走是留都对明年Oracle发布Java 7没有太大的影响。结果,离开JCP可能是Apache唯一的选择。 |