在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来说,许可条款包括:应该向非营利组织与参与创建java se 6规范兼容性实现的个人无偿提供java se 6 tck,只需带有商标与商标百家乐凯发k8的版权即可,但不提供支持。
从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唯一的选择。