Java Community Process

The Java Community Process (JCP), established in 1998, is a formalized mechanism that allows interested parties to develop standard technical specifications for Java technology. Anyone can become a JCP Member by filling a form available at the JCP website. JCP membership for organizations and commercial entities requires annual fees – but is free for individuals.[1]

The JCP involves the use of Java Specification Requests (JSRs) – the formal documents that describe proposed specifications and technologies for adding to the Java platform. Formal public reviews of JSRs take place before a JSR becomes final and the JCP Executive Committee votes on it. A final JSR provides a reference implementation that is a free implementation of the technology in source code form and a Technology Compatibility Kit to verify the API specification.

The JCP itself is described by a JSR. As of 2020, JSR 387 describes the current version (2.11) of the JCP.

List of JSRs

There are hundreds of JSRs. Some of the more visible JSRs include:

JSR #Specification or TechnologyReference implementationsOther implementations
1Real-Time Specification for Java (RTSJ) 1.0
3Java Management Extensions (JMX) 1.0, 1.1, & 1.2[2]
5Java API for XML Processing (JAXP) 1.0
8OSGI Open Services Gateway Specification
9Jiro (Federated Management Architecture Specification) 1.0
12Java Data Objects (JDO) 1.0
13Improved BigDecimal (Java Platform, Standard Edition#java.math)
14Add Generic Types To The Java Programming Language (as of J2SE 5.0)
16Java EE Connector Architecture (JCA) 1.0
19Enterprise JavaBeans (EJB) 2.0
22JAIN SLEE API Specification (JSLEE) 1.0
30Connected Limited Device Configuration (CLDC) 1.0 for Java ME
31Java Architecture for XML Binding (JAXB) 1.0
32JAIN SIP API Specification (JSIP) 1.0, 1.1 and 1.2 for Java ME
36Connected Device Configuration (CDC) 1.0 for Java ME
37Mobile Information Device Profile (MIDP) 1.0 for Java ME
40Java Metadata Interface (JMI) 1.0
41A Simple Assertion Facility (as of J2SE 1.4)
47Logging API Specification (as of J2SE 1.4)
48WBEM Services Specification (as of J2SE 1.4)
51Non-blocking I/O (NIO) (as of J2SE 1.4)Grizzly, Netty
52JavaServer Pages Standard Tag Library (JSTL) 1.0 and 1.1[3]
53Java Servlet 2.3 and JavaServer Pages (JSP) 1.2 Specifications
54Java Database Connectivity (JDBC) 3.0
56Java Network Launching Protocol and API (JNLP) 1.0, 1.5 and 6.0[4] (Java Web Start)
58Java 2 Platform, Enterprise Edition (J2EE) 1.3
59Java 2 Platform, Standard Edition (J2SE) 1.4 (Merlin)
63Java API for XML Processing (JAXP) 1.1 and 1.2[5]
68Java Platform, Micro Edition (Java ME) 1.0
73Java Data Mining API (JDM) 1.0
75PDA Optional Packages for the J2ME Platform
77J2EE Management
80Java USB API
82Java APIs for Bluetooth
88Java EE Application Deployment
91OSS Trouble Ticket API
93Java API for XML Registries (JAXR) 1.0
94Java Rules Engine API
102Java Document Object Model (JDOM) 1.0
110Java APIs for WSDL (WSDL4J) 1.0
112Java EE Connector Architecture (JCA) 1.5
113Java Speech API 2 (JSAPI2)
114Java Database Connectivity (JDBC) Rowset Implementations
116SIP Servlet API 1.0
118Mobile Information Device Profile (MIDP) 2.0 for Java ME
120Wireless Messaging API (WMA)
121Application Isolation API
127JavaServer Faces (JSF) 1.0 and 1.1[6]
133Java Memory Model and Thread Specification Revision
135Java Mobile Media API (MMAPI) for Java ME
139Connected Limited Device Configuration (CLDC) 1.1 for Java ME
140Service Location Protocol (SLP) API for Java
141Session Description Protocol (SDP) API for Java
151Java 2 Platform, Enterprise Edition (J2EE) 1.4
152JavaServer Pages (JSP) 2.0
153Enterprise JavaBeans (EJB) 2.1
154Java Servlet 2.4 and 2.5 Specifications[7]
160Java Management Extensions (JMX) Remote API 1.0
163Java Platform Profiling Architecture (JPPA), which includes (among other specifications) the specification of Java Virtual Machine Tools Interface
166Concurrency Utilities (as of J2SE 5.0 java.util.concurrent, java.util.concurrent.atomic and java.util.concurrent.locks)
168Portlet specification 1.0
170Content repository API for Java (JCR) 1.0
172Web Services Specification for Java ME
173StAX (Streaming API for XML)
175A Metadata Facility for the Java Programming Language
176Java 2 Platform, Standard Edition (J2SE) 5.0 (Tiger)
177Security and Trust Services API for J2ME (SATSA)
179Location API 1.0 for Java ME
180Session Initiation Protocol (SIP) API for Java ME
181Web Services Metadata for the Java Platform
184Mobile 3D Graphics API for Java ME 1.0 and 1.1
185Java Technology for the Wireless Industry (JTWI)
187Instant messaging (Java ME and Java SE)
198A Standard Extension API for Integrated Development Environments
199Java Compiler API
200Pack200 Network Transfer Format for Java Archives
201Extending the Java Programming Language with Enumerations, Autoboxing, Enhanced for loops and Static Import (as of J2SE 5.0)
202Java Class File Specification Update
203More Non-blocking I/O (Java) (NIO2)
204Unicode Supplementary Character Support (as of J2SE 5.0 adds support for Unicode 3.1)
205Wireless Messaging API 2.0 (WMA) 2.0
206Java API for XML Processing (JAXP) 1.3
208Java Business Integration (JBI) 1.0
211Content Handler API
215Java Community Process (JCP) 2.6
218Connected Device Configuration (CDC) 1.1 for Java ME
219Foundation Profile 1.1
220Enterprise JavaBeans (EJB) 3.0
221Java Database Connectivity (JDBC) 4.0
222Java Architecture for XML Binding (JAXB) 2.0
223Scripting for the Java Platform for Java SE 6
224Java API for XML Web Services (JAX-WS), successor of JAX-RPC
225XQuery API for Java (XQJ)
226Scalable 2D Vector Graphics API for Java ME
229Payment API (PAPI)
231Java Bindings for OpenGL
234Advanced Multimedia Supplements API for Java ME
235Service Data Objects (SDO)
239Java Bindings for OpenGL ES
240JAIN SLEE API Specification (JSLEE) 1.1
241The Groovy Programming Language
243Java Data Objects (JDO) 2.0
244Java Platform, Enterprise Edition (Java EE) 5
245JavaServer Pages (JSP) 2.1
247Java Data Mining API (JDM) 2.0
248Mobile Service Architecture
249Mobile Service Architecture 2
250Common Annotations for the Java Platform (for the Metadata facility for Java)
252JavaServer Faces (JSF) 1.2
253Mobile Telephony API (MTA)
255Java Management Extensions (JMX) 2.0
256Mobile Sensor API
257Contactless Communication API (NFC)
260Javadoc Tag Technology Update
269Pluggable Annotations Processing API (for the Metadata facility for Java)
270Java Platform, Standard Edition (Java SE) 6 (Mustang)
271Mobile Information Device Profile (MIDP) 3.0 for Java ME
274The BeanShell Scripting Language
275Units specification (see Units of Measurement)
276Design-time Metadata for JavaServer Faces Components
277Java Module System
280XML API for Java ME
281IMS Services API (See IMS)
282Real-Time Specification for Java (RTSJ) 1.1
283Content repository API for Java (JCR) 2.0
286Portlet Specification 2.0
289SIP Servlet API 1.1
290Java Language & XML User Interface Markup Integration (XML-UI)
291Dynamic Component Support for Java SE (see OSGi)
292Supporting Dynamically Typed Languages on the JavaTM Platform
293Location API 2.0 for Java ME
294Improved Modularity Support in the Java Programming Language
296Swing Application Framework (Java SE 7)
299Contexts and Dependency Injection for the Java EE platform (CDI)WeldOpenWebBeans
301JSF Portlet Bridge
303Bean ValidationHibernate Validator
307Network Mobility and Mobile Data API (not official as of July, 20th, 2007 but official release is planned for 2. Q. 2008
308Annotations on Java Types (Java SE 8)
314JavaServer Faces (JSF) 2.0Mojarra JavaServer FacesApache MyFaces
316Java Platform, Enterprise Edition (Java EE) 6
317Java Persistence API (JPA) 2.0EclipseLinkHibernate, openJPA
322Java EE Connector Architecture (JCA) 1.6
325IMS Communication Enablers (ICE) (See IMS)
330Dependency Injection for Java
336Java SE 7 Release Contents[OpenJDK 7]?
337Java SE 8 Release Contents[OpenJDK 8]?
338Java Persistence API (JPA) 2.1EclipseLinkHibernate, openJPA
343Java Message Service 2.0 (JMS)
352Java BatchIBM Java BatchJBeret, Spring Batch
354Java Money & Currency API
356Java API for WebSocket
365 Contexts and Dependency Injection for Java 2.0 Weld
367Java API for JSON Binding (JSON-B)Eclipse YassonJackson
370Java API for RESTful Web Services (JAX-RS) 2.1Project Jersey
374Java API for JSON Processing 1.1Eclipse JSON-PJackson
376Java Platform Module System (supersedes 277
380Bean Validation 2.0Hibernate Validator
901The Java Language Specification, Third Edition (JLS) (as of J2SE 5.0 incorporates changes from JSRs 14, 41, 133, 175, 201, and 204)
907Java Transaction API (JTA) 1.0 and 1.1
912Java 3D API 1.3
913Java Community Process (JCP) 2.0, 2.1 & 2.5.[8]
914Java Message Service (JMS) API 1.0 and 1.1
924Java Virtual Machine Specification, Second Edition (JVM) (as of J2SE 5.0).[9]OpenJDK
926Java 3D API 1.5

Criticism

A JCP representative (far right) speaks to the trade press during a panel discussion at the JavaOne conference in 2012

The JCP's executive board has been characterized as a "rubber stamp organization" since Oracle acquired Sun Microsystems (the original developer of the Java language).[10]

The Apache Software Foundation resigned its seat on the board in December 2010 because Oracle was unwilling to license the Technology Compatibility Kit for Apache's version of Java.[11]

JCP Program and Industry Awards

Source:[12]

2012 — 10th Annual JCP Award Winners[13]
Award Nominee Contributions Details JSR # Win?
JCP Member/Participant of the Year London Java Community and SouJava ″Adopt a JSR!″ program Supporting Java developers through the JCP. Win!
Stephen Colebourne Date and time API for Java. Comprehensive and advanced. Tireless work. 310
Markus Eisele Active work among the German Java community and in the JSR 342 Expert Group. 342
JUG Chennai Becoming the most active JCP organization in India and a competitive service organization in the commercial marketplace.
Werner Keil Incredible energy and participation in seven JSRs as well as the Executive Committee.
Antoine Sabot-Durand
Outstanding Spec Lead Victor Grazi,

Credit Suisse

Java Money & Currency API Dedicated, focused expertise in solving issues representing money and currencies. 354 Win!
Michael Ernst Annotations on Java Types Level-headed approach; a great example of a well-run JSR. 308
Nigel Deakin,

Oracle

Java Message Service 2.0 Outstanding, thorough, and intelligent work keeping the JMS 2 EG open and moving forward at a great pace. 343
Pete Muir,

Red Hat

Contexts and Dependency Injection for Java EE 1.1 Voluntarily upgrading to 2.8 in late 2011 and maintaining what were already transparent methods in running his Expert Group. 346
Most Significant JSR Jitendra Kotamraju API for JSON Processing An important step in bringing Java into the world of the modern web. 353
Victor Grazi,

Credit Suisse

Money and Currency API New ways of handling monetary amounts and currency computations. Fixing critical Java Number Format and Representation bugs beyond monetary values. 354
Mitch Upton Java State Management The potential to improve how Application Servers and Distributed Services are going to look in the near future as well as simplifying deployment in PaaS and Cloud environments. 350
Nigel Deakin Java Message Service 2 Modernize JMS at a rapid pace. 343
Patrick Curran JCP.Next Setting the direction and procedures for the next-generation JCP. 348 355 358 Win!

See also

Notes

  1. "Becoming a JCP Member". Retrieved 11 June 2011.
  2. JSR 3 originally specified the JMX 1.0 release. Two subsequent "final" releases have provided JMX 1.1 and JMX 1.2. JMX 2.0 is specified by JSR 255.
  3. JSR 52 originally specified the JSTL 1.0 release. A subsequent maintenance release provided JSTL 1.1.
  4. JSR 56 originally specified the JNLP 1.0 release. A subsequent "final" release provided JNLP 1.5, which was primarily a maintenance release. As of February, 2006, the JNLP 6.0 maintenance release has been completed but not finalized.
  5. JSR 63 originally specified the JAXP 1.1 release. A subsequent maintenance release of JSR 63 provided the JAXP 1.2 specification. JAXP 1.3 is specified by JSR 206.
  6. JSR 127 originally specified the JSF 1.0 release. A subsequent maintenance release provided the JSF 1.1 specification. JSF 1.2 is specified by JSR 252.
  7. JSR 154 originally specified the Java Servlet 2.4 release. As of February, 2006 a maintenance draft of the 2.5 servlet specification is under review, scheduled to close on March 20, 2006.
  8. JSR 913 originally specified JCP 2.0. It was subsequently amended by various changes to voting rules to produce version 2.1 and then further changed by licensing rules, policy, and processes to get to version 2.5. JCP 2.6 is defined by JSR 215.
  9. JSR 924 originally specified changes to the JVM to support changes in J2SE 5.0. As of 2006 a maintenance update to support changes proposed by JSR 202 is underway.
  10. Handy, Alex (12 September 2011). "Java is open, but is the process?". SD Times. Retrieved 21 September 2011.
  11. Whiting, Rick (10 December 2010). "Apache Quits Java Governing Board Over Dispute With Oracle". CRN. Retrieved 21 September 2011.
  12. The Java Community Process(SM) Program - Press & Success - News Stories. Jcp.org. Retrieved on 2013-07-17.
  13. The Java Community Process(SM) Program - Press & Success - News Stories. Jcp.org. Retrieved on 2013-07-17.
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.