写点什么

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:212202
用户头像

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

关注

评论

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

计算机操作系统基础(十七)---进程同步之Unix域套接字

书旅

php laravel 线程 操作系统 进程

ARTS 打卡 第2周

Scotty

Java 线程的生老病死

武培轩

Java 线程 多线程 并发 线程状态

猿灯塔:spring Boot Starter开发及源码刨析(三)

猿灯塔

Java 猿灯塔

如何基于 BitMap 进行海量数据分析

GrowingIO技术专栏

互联网 数据分析 科技互联网 数据化

图说前端-使用Atomics避免SharedArrayBuffers中的race conditions(3/3)

梦见君笑

大前端 内存管理

java 后端博客系统文章系统——No3

猿灯塔

图解:深度优先搜索与广度优先搜索

淡蓝色

Java 数据结构 算法

架构师必须知道的架构知识

架构 架构师 Architecture Architect

啃碎并发(九):内存模型之基础概述

猿灯塔

Java 猿灯塔

刘华:上云还是不上云,这是一个问题

刘华Kenneth

架构 敏捷

DOM 树的构建

法正

html 大前端 DOM

不会有人还不知道全文检索工具Lucene怎么用吧?文字长文教程

给你买橘子

Java 搜索引擎 lucene 程序员 开发工具

redis系列之——Redis为什么这么快?

诸葛小猿

Java redis 程序员

如何搭建一个HBase集群

Rayjun

HBase

图说前端-内存管理(1/3)

梦见君笑

大前端 内存

给 Spring Boot 项目减减肥!18.18M 到 0.18M 是如何做到的?

给你买橘子

Java 程序员 Spring Cloud 编码 SpringBoot 2

RESTful 架构及实践

Geek_z9ygea

Java 大前端 RESTf

那些让程序员目瞪口呆的Bug

Java小咖秀

程序员 bug

计算机的时钟(一):NTP协议

ElvinYang

无价值人生记录.0:浪费1000%时间去做一个用来节省1%时间的“轮子玩具”(上:因缘)

八苦-瞿昙

C# 程序员 随笔 随笔杂谈 aop

《精益思想》读后感分享

zhongzhq

高效工作 精益 精益思想 精益生产方式

游戏夜读 | 如何分析游戏体验?

game1night

图说前端-ArrayBuffers 和 SharedArrayBuffers(2/3)

梦见君笑

大前端 内存管理

分布式系统的一些基础理论

俊俊哥

分布式事务 CAP Base

redis里的数据结构

流沙

redis

架构师训练营第六周作业

张明森

如果你想写自己的Benchmark框架

程序那些事

JVM 性能调优 GC benchmark

使用 Dockerfile 创建镜像 | Docker 系列

AlwaysBeta

Docker 容器 镜像 Dockerfile

玩转Redis高可用 - 哨兵(Sentinel)模式

Man

高可用 redis高可用 中间件

基于Kubernetes实现的大数据采集与存储实践总结

岿然独存5

Docker Kubernetes S3 EFK Fluentd

JDK Enhancement Process简介_Java_Alex Blewitt_InfoQ精选文章