Java Community Process
| Company type | Consortium |
|---|---|
| Industry | Software development, Information technology |
| Founded | 1998 |
Area served | Worldwide |
| Products | Java Specification Requests (JSRs), Technology Compatibility Kits, Reference Implementations |
| Website | jcp |
The Java Community Process (JCP), founded in 1998, serves as an official framework that allows various participants to collaboratively create standardized technical specifications for Java technologies. To join, candidates must demonstrate considerable expertise in the Java programming language, its standards, and software engineering best practices. Typically, invitations are extended to individuals recognized for their significant contributions and standing within the Java ecosystem.
Prospective members are assessed by the JCP Executive Committee to confirm their capability to actively engage with Java Specification Requests (JSRs), which outline suggested specifications and innovations for the Java platform. These members are instrumental in advancing the Java community and its product releases, requiring substantial technical proficiency and industry experience to foster the development and widespread adoption of the Java language.
While organizational members pay an annual fee, individual participation is offered at no cost. JSRs undergo a structured public review process before receiving final endorsement from the Executive Committee. Approved JSRs provide a reference implementation—a freely available source code version—and a Technology Compatibility Kit designed to ensure adherence to the defined API standards.
The governance of the JCP itself is specified by a JSR; as of 2020, JSR 387 establishes version 2.11 of the process.
List of JSRs
The Java ecosystem includes hundreds of JSRs, many of which constitute essential standards underpinning its business environment. Prominent examples include:
| JSR # | Specification or Technology | Reference implementations | Other implementations |
|---|---|---|---|
| 1 | Real-Time Specification for Java (RTSJ) 1.0 | ||
| 3 | Java Management Extensions (JMX) 1.0, 1.1, & 1.2 | ||
| 5 | Java API for XML Processing (JAXP) 1.0 | ||
| 8 | OSGI Open Services Gateway Specification | ||
| 12 | Java Data Objects (JDO) 1.0 | ||
| 14 | Add Generic Types To The Java Programming Language (J2SE 5.0) | ||
| 16 | Java EE Connector Architecture (JCA) 1.0 | ||
| 19 | Enterprise JavaBeans (EJB) 2.0 | ||
| 30 | Connected Limited Device Configuration (CLDC) 1.0 for Java ME | ||
| 31 | Java Architecture for XML Binding (JAXB) 1.0 | ||
| 36 | Connected Device Configuration (CDC) 1.0 for Java ME | ||
| 40 | Java Metadata Interface (JMI) 1.0 | ||
| 51 | Non-blocking I/O (NIO) | Grizzly, Netty | |
| 52 | JavaServer Pages Standard Tag Library (JSTL) 1.0 and 1.1 | ||
| 53 | Java Servlet 2.3 and JavaServer Pages (JSP) 1.2 Specifications | ||
| 54 | Java Database Connectivity (JDBC) 3.0 | ||
| 58 | J2EE 1.3 | ||
| 59 | J2SE 1.4 (Merlin) | ||
| 68 | Java Platform, Micro Edition (Java ME) 1.0 | ||
| 73 | Java Data Mining API (JDM) 1.0 | ||
| 80 | Java Universal Serial Bus API | ||
| 82 | Java APIs for Bluetooth | ||
| 93 | Java API for XML Registries (JAXR) 1.0 | ||
| 102 | Java Document Object Model (JDOM) 1.0 | ||
| 112 | Java EE Connector Architecture (JCA) 1.5 | ||
| 127 | JavaServer Faces (JSF) 1.0 and 1.1 | ||
| 135 | Java Mobile Media API (MMAPI) for Java ME | ||
| 140 | Service Location Protocol (SLP) API for Java | ||
| 151 | Java Platform, Enterprise Edition (J2EE) 1.4 | ||
| 154 | Java Servlet 2.4 and 2.5 Specifications | ||
| 160 | Java Management Extensions Remote API 1.0 | ||
| 166 | Concurrency Utilities for Java SE and EE | ||
| 176 | Java Platform, Standard Edition (J2SE) 5.0 ("Tiger") | ||
| 220 | Enterprise JavaBeans (EJB) 3.0 | ||
| 221 | Java Database Connectivity (JDBC) 4.0 | ||
| 222 | Java Architecture for XML Binding (JAXB) 2.0 | ||
| 224 | Java API for XML Web Services (JAX-WS) | ||
| 252 | JavaServer Faces (JSF) 1.2 | ||
| 255 | Java Management Extensions (JMX) 2.0 | ||
| 270 | Java Platform, Standard Edition (Java SE) 6 ("Mustang") | ||
| 299 | Contexts and Dependency Injection for Java EE platform (CDI) | Weld | Apache OpenWebBeans |
| 311 | Jakarta RESTful Web Services, JAX-RS versions 1.x | ||
| 314 | JavaServer Faces (JSF) 2.0 | Mojarra JavaServer Faces | Apache MyFaces |
| 317 | Java Persistence API (JPA) 2.0 | EclipseLink, Hibernate, openJPA | |
| 336 | [OpenJDK 7] - Java SE 7 Release Contents | ||
| 337 | [OpenJDK 8] - Java SE 8 Release Contents | ||
| 338 | Java Persistence API (JPA) 2.1 | EclipseLink, Hibernate, openJPA | |
| Other significant JSRs address updates to the Java Language Specification, Transaction APIs, JVM enhancements, and modularity advancements. | |||
Criticism
Following Oracle's acquisition of Sun Microsystems, the original creator of the Java programming language, the JCP's executive board has been criticized as a mere rubber stamp organization.
In December 2010, the Apache Software Foundation withdrew from the board, citing Oracle's refusal to grant a license for the Technology Compatibility Kit required by Apache's Java implementation.
JCP Program and Industry Awards
| Award | Recipient | Contribution | Notes | JSR # | Awarded? |
|---|---|---|---|---|---|
| JCP Member/Participant of the Year | London Java Community and SouJava | Initiated "Adopt a JSR!" program to assist Java developers within the JCP. | Yes | ||
| Stephen Colebourne | Developed the Date and Time API for Java. | Comprehensive and sophisticated work; demonstrated exceptional dedication. | 310 | ||
| Markus Eisele | Active contributor to the German Java community and member of JSR 342 Expert Group. | 342 | |||
| JUG Chennai | Recognized as India's most active JCP group with strong commercial competitiveness. | ||||
| Werner Keil | Engaged energetically in seven JSRs and served on the Executive Committee. | ||||
| Antoine Sabot-Durand | Efficiently delivered "JSR Early Draft Release"; Agorava Project candidate for JBoss Enterprise Framework. | ||||
| Outstanding Spec Lead | Victor Grazi, Credit Suisse | Led development of Java Money & Currency API; specialized in monetary and currency modeling. | 354 | Yes | |
| Michael Ernst | Managed Annotations on Java Types with exemplary leadership. | 308 | |||
| Nigel Deakin, Oracle Corporation | Directed Java Message Service 2.0; contributed diligent leadership to JMS 2 Expert Group. | 343 | |||
| Pete Muir, Red Hat | Oversaw Contexts and Dependency Injection for Java EE 1.1 updates to version 2.8, ensuring transparency. | 346 | |||
| Most Significant JSR | Jitendra Kotamraju | Advanced API for JSON Processing to enhance Java's web capabilities. | 353 | ||
| Victor Grazi, Credit Suisse | Improved Money and Currency API by refining monetary calculations and fixing critical defects. | 354 | |||
| Mitch Upton | Enhanced Java State Management to support Application Servers, Distributed Services, and cloud environments. | 350 | |||
| Nigel Deakin | Modernized Java Message Service 2 with rapid development efforts. | 343 | |||
| Patrick Curran | "JCP.Next" initiative leader focusing on evolving future JCP processes. | 348 / 355 / 358 | Yes |