|
Java开发者欢喜为私有api—现在! 远程控制软件,灰鸽子下载
后的计划消除sun.misc的使用。甲骨文Java 9中不安全的强烈抨击,精心制作了一个解决方案保持API的功能
解决争议受欢迎但不支持的Java API,甲骨文的计划现在呼吁使大多数内部API访问默认Java 9,让几人仍可访问。
这个问题已经围绕sun.misc。不安全,一个不受支持的API,第三方Java技术开发人员的关键,如内存数据平台提供者Hazelcast,他们担心计划消除访问Java 9会使他们的产品不可行。但中(JDK增强提议)本周发布要求封装大多数内部api将离开一些,包括sun.misc。安全,可以在Java 9。Java升级将于明年召开。
(见《完全覆盖20:Java的编程主宰卷| JVM,Java的另一大遗产|其成功,失败,和未来的Java永远地改变了编程| |如何跟上热门话题与《应用程序开发通讯应用程序开发。]
本周在openjdk邮件列表后,甲骨文的马克•莱因霍尔德Java平台集团的首席架构师,称为封装模块化Java 9的一部分,这是升级的关键特性。默认情况下,这些内部api将不会访问代码之外的JDK。“这种变化将改善平台的完整性,因为许多这些内部api定义特权,安全敏感操作。从长远来看,它还将降低成本由JDK本身的维护者和库和应用程序的维护人员,故意与否,利用这些非标准的,不稳定,不受支持的内部api。”
莱因霍尔德说,“众所周知,一些流行的库利用这些内部api,比如sun.misc。不安全,调用方法,将是困难的,如果不是不可能的话)来实现以外的JDK。”
确保广泛的测试和采用的Java版本,Oracle计划处理这些“关键”api以以下方式:如果有一个支持替换在JDK 8中,那么它将封装;如果它不支持更换在JDK 8中,那么它会被封装在JDK 9(Java 9),所以它仍然可以访问外部代码。如果有支持JDK 9中替换,然后JDK 9中的api将弃用,封装,并可能被删除在JDK 10中,莱因霍尔德说。
Hazelcast技术传教士和高级解决方案架构师克里斯托夫•恩格尔伯特·松了一大口气。“幸运的是,甲骨文似乎听人”。
莱因霍尔德的提议是“很有趣,”分析师John Rymer说,Forrester的研究。“我认为球是在第三方供应商的法院是更具体的关于即将到来的灾难。莱因霍尔德的反应表明,甲骨文覆盖,所以差距在哪里?” 灰鸽子使用教程,远控。
中提到了一些风险和假设的封装方案。“如果一些广泛使用的关键内部API是不确定的时间,JDK 9是释放,然后应用程序依赖于它会失败。对这种情况下的短期解决方案是最终用户公开API通过上述命令行标志;从长远来看,在一个JDK 9更新发布API可以搬到jdk.internal模块和导出外用。” |
|