写点什么

JDK Enhancement Process 简介

  • 2012-02-02
  • 本文字数:1195 字

    阅读完需:约 4 分钟

去年年初,Oracle 发布了 JDK 增强提案与路线图进程,目的在于鼓励 OpenJDK 提交者贡献点子和扩展以改进 OpenJDK 生态圈。

JEP 的目的在 JEP 1: JDK Enhancement Proposal and Roadmap Process 中得到了说明。他们将增强定义为较重大的变化(比如说需要两周以上的工作量、JDK 的重要变化或是为开发者 / 用户所强烈要求的)。类似于 Python Enhancement Proposals Scala Improvement Process ,提案的目的在于根据某个特性来定义所需的增强或是修改。与 Python 一样, JEP 0 是个增强提案的列表索引,在本文撰写之际,它里面一共列出了 127 个 JEPs(还有两个元 JEPs, 分别是 JEP 1: Enhancement Proposal and Roadmap Process JEP 2: JEP Template )。

进程文档明确指出 JEPs 并不会取代 Java Community Process;因为 JCP 是标准 Java SE APIs 与相关接口的管理部门。虽然目前发布的很多 JEPs 都对应于 Java SE APIs,但还有一些是特定于 VM 的,比如说万众期待的 JEP 122: Remove the Permanent Generation

JEPs 会经历各种状态转换,如下所示:

  • 草案:开放讨论
  • 张贴:进入 JEP 归档
  • 提交:开始评估
  • 活动:批准公开发布
  • 候选:获准进入 OpenJDK 路线图
  • 资助:由小组 / 区域领导判断给予全力资助
  • 完成:完成与交付
  • 撤回:退出(或许未来还会重新加入进来)
  • 拒绝:现在或将来不值得继续

上面带下划线的是最终状态,包括完成与拒绝状态。虽然撤销也可以看作是一种最终状态,但未来还有可能重新加入进来。某些 JEPs,如 JEP0 与 JEP1,会永远处于活动状态,并不会转换到最终状态。

JEPs 与 JSRs 之间的一个主要差别在于对状态投入和检查的正式程度。JCP 具有相当严格的进程模型,必须要严格遵守才行;但 JEP 则更加轻量级,可以抛出想法并为其设定一个标识符,标识符用于同步想法、评论和其他进程。另一方面,JEPs 也会涉及到资助问题;是否有资源能够投入到项目中,哪个组织负责交付。到目前为止,所有 JEPs(101——126)都由 Oracle 资助,但 JEP 104: Annotations on Java Types 是与华盛顿大学联合资助的,其合作者 Michael Ernst 是计算机科学教授。类型检查器是 Michael Ernst 研究的一个领域,他曾在 ICSE’11 上发表过一篇关于类型检查器的论文,JEP 104 提案就来自于对该类型检查器的试验结果。

虽然大多数 JEPs 都处于张贴状态,但在本文撰写之际已经有 3 个处于提交状态了。这包括 JEP 104、 JEP 118: Access to Parameter Names at Runtime JEP 119: javax.lang.model implementation backed by core reflection 。这些提案已经处于“准备评估”阶段了(但在实际开发前,他们还需要经历候选与资助阶段)。

虽然 JEP 视图列出了各种提案,但列表视图却并没有概要显示出进程状态。此外,某个 JEP 是否会得到资助是个内部实现决策问题,并没有什么标准可言;但 Oracle 正在努力争取 OpenJDK 更多商业上的伙伴(比如 IBM),Oracle 认为这是必须的。

查看英文原文: JDK Enhancement Process

2012-02-02 00:212200
用户头像

发布了 88 篇内容, 共 273.8 次阅读, 收获喜欢 9 次。

关注

评论

发布
暂无评论
发现更多内容

IT 数字化转型

L3C老司机

数字化转型 产品研发 工程效能 项目交付 胜任力模型

极客时间运维进阶训练营第七周作业

忙着长大#

极客时间

pdf增强插件:Enfocus PitStop Pro 2022 中文激活版

真大的脸盆

Mac PDF Mac 软件 PDF编辑

prometheus架构介绍及部署使用

忙着长大#

极客时间运维进阶训练营第九周作业

忙着长大#

极客时间运维进阶训练营第十一周作业

忙着长大#

IntelliJ IDEA 2023.1 版本添加了包中类的列表功能

HoneyMoose

Spring 项目运行提示错误 Not a managed type

HoneyMoose

Spring事务失效场景

TaurusCode

Spring Boot 事务 java基础 事务失效 事务回滚

CnosDB 2.0 Arrow Flight SQL使用指北

CnosDB

开源 时序数据库 CnosDB Arrow Flight SQL

简单的录屏软件:ScreenFlow v10.0.9汉化版

真大的脸盆

Mac Mac 软件 屏幕录制 录屏软件 屏幕录像

Jenkins 修改启动的端口

HoneyMoose

WordPress 插件 g5plus 修改属性

HoneyMoose

uniapp 生成微信小程序码

源字节1号

微信小程序 开源 软件开发

前端面试实录CSS篇(最近一周)

Immerse

CSS 面试 前端

专业级音频制作软件:Logic Pro X中文激活版

真大的脸盆

Mac 音频制作 Mac 软件 音频处理

做低代码引擎有多难?OneCode五个版本心路历程

codebee

低代码 低代码开发 低代码平台 低代码报告

Git Commit Message 应该怎么写?

AlwaysBeta

git

Go 语言数组和切片的区别

AlwaysBeta

Go 源码 数组 面试题 切片

极客时间运维进阶训练营第十周作业

忙着长大#

JDK Enhancement Process简介_Java_Alex Blewitt_InfoQ精选文章