JCP(Java Community Process)成立于1998年,是使有兴趣的各方参与定义Java的特征和未来版本的正式过程。
JSR(Java规范请求,Java Specification Request),JCP使用JSR作为正式规范文档,描述被提议加入到Java体系中的的规范和技术。 JSR变为final状态前需要正式的公开审查,并由JCP Executive Committee投票决定。最终的JSR会提供一个参考实现,它是免费而且公开源代码的。任何人都可以提交JSR,以向Java平台增添新的API和服务。
JCP的官方网站是:
JSR的几个状态:
Final 结束
Maintenance 维护
Active 活动
Withdrawn 搁置状态(或者回收状态)
Rejected 否决
前三个状态是有效的,否决通常是初期评审、草稿审批或者是最终审批投票的某个阶段投票否决,搁置有各种原因,有不能组成专家组的,有概念不清晰的。
JCP维护的规范包括J2ME、J2SE、J2EE,XML,OSS,JAIN等。组织成员可以提交JSR(Java Specification Requests),通过特定程序以后主要包括(Java技术规范、参考实现(RI)、技术兼容包(TCK)),进入到下一版本的规范里面。所有声称符合J2EE规范的J2EE类产品(应用服务器、应用软件、开发工具等),必须通过该组织提供的TCK兼容性测试(需要购买测试包),通过该测试后,需要缴纳J2EE商标使用费。两项完成,即是通过J2EE认证(Authorized Java Licensees of J2EE)。
比如servlet规范的产生经历了一下几个过程:
初期评审-->初期评审投票-->专家组产生-->早期草案审查-->重新投票-->公开评审-->公开评审投票-->提议最终草案-->最终审批投票-->最终发布版本
到此,如果没有意外,这个状态应该是active,如果后续进行维护,可能还有一个或多个维护草案和维护草案发布,这个时候的状态是Maintenance,如servlet3.0对应的JSR315,如果后续不再维护,就进入结束,这个时候的状态是Final,如XML解析规范对应的JSR5。
这里列出了所有的JSR:
一些常用的JSR:
JSR 53: JavaTM Servlet 2.3 and JavaServer PagesTM 1.2 Specifications:
JSR 154: JavaTM Servlet 2.4 Specification:
JSR 315: JavaTM Servlet 3.0 Specification:
JSR 340: Java Servlet 3.1 Specification:
JSR 369: JavaTM Servlet 4.0 Specification
JSR 5: XML Parsing Specification:
JSR 330: Dependency Injection for Java:
其它一些厂商实现了JSR330规范: