The Java Community Process (JCP), established in 1998, is a formal mechanism that enables interested parties to develop standard technical specifications for Java technology. Becoming a member of the JCP requires solid knowledge of the Java programming language, its specifications, and best practices in software development. Membership in the JCP involves a detailed review of the candidate's profile, including an assessment by current members. Typically, professionals are invited to join the JCP based on their contributions and reputation within the Java community.

Once invited, the new member undergoes an evaluation by the JCP Executive Committee, ensuring that they can effectively contribute to the Java Specification Requests (JSRs). These formal documents describe proposed specifications and technologies to be added to the Java platform. New members are encouraged to engage actively and play a crucial role in supporting the Java community and its releases. It is essential that members possess expertise and in-depth technical knowledge, combined with strong professional experience, to significantly contribute to the growth and usage of the Java language.

Membership for organizations and commercial entities requires annual fees, but it is free for individuals. JSRs undergo formal public reviews before becoming final, and the JCP Executive Committee votes on their approval. A finalized JSR provides a reference implementation, which 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[update], 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
Real-Time Specification for Java (RTSJ) 1.0
Java Management Extensions (JMX) 1.0, 1.1, & 1.2
Java API for XML Processing (JAXP) 1.0
OSGI Open Services Gateway Specification
Jiro (Federated Management Architecture Specification) 1.0
Java Data Objects (JDO) 1.0
Improved BigDecimal (Java Platform, Standard Edition#java.math)
Add Generic Types To The Java Programming Language (as of J2SE 5.0)
Java EE Connector Architecture (JCA) 1.0
Enterprise JavaBeans (EJB) 2.0
JAIN SLEE API Specification (JSLEE) 1.0
Connected Limited Device Configuration (CLDC) 1.0 for Java ME
Java Architecture for XML Binding (JAXB) 1.0
JAIN SIP API Specification (JSIP) 1.0, 1.1 and 1.2 for Java ME
Connected Device Configuration (CDC) 1.0 for Java ME
Mobile Information Device Profile (MIDP) 1.0 for Java ME
Java Metadata Interface (JMI) 1.0
A Simple Assertion Facility (as of J2SE 1.4)
Logging API Specification (as of J2SE 1.4)
WBEM Services Specification (as of J2SE 1.4)
Non-blocking I/O (NIO) (as of J2SE 1.4)Grizzly, Netty
JavaServer Pages Standard Tag Library (JSTL) 1.0 and 1.1
Java Servlet 2.3 and JavaServer Pages (JSP) 1.2 Specifications
Java Database Connectivity (JDBC) 3.0
Java Network Launching Protocol and API (JNLP) 1.0, 1.5 and 6.0 (Java Web Start)
Java 2 Platform, Enterprise Edition (J2EE) 1.3
Java 2 Platform, Standard Edition (J2SE) 1.4 (Merlin)
Java API for XML Processing (JAXP) 1.1 and 1.2
Java Platform, Micro Edition (Java ME) 1.0
Java Data Mining API (JDM) 1.0
PDA Optional Packages for the J2ME Platform
J2EE Management
Java USB API
Java APIs for Bluetooth
Java EE Application Deployment
OSS Trouble Ticket API
Java API for XML Registries (JAXR) 1.0
Java Rules Engine API
Java Document Object Model (JDOM) 1.0
Java APIs for WSDL (WSDL4J) 1.0
Java EE Connector Architecture (JCA) 1.5
Java Speech API 2 (JSAPI2)
Java Database Connectivity (JDBC) Rowset Implementations
SIP Servlet API 1.0
Mobile Information Device Profile (MIDP) 2.0 for Java ME
Wireless Messaging API (WMA)
Application Isolation API
JavaServer Faces (JSF) 1.0 and 1.1
Java Memory Model and Thread Specification Revision
Java Mobile Media API (MMAPI) for Java ME
Connected Limited Device Configuration (CLDC) 1.1 for Java ME
Service Location Protocol (SLP) API for Java
Session Description Protocol (SDP) API for Java
Java 2 Platform, Enterprise Edition (J2EE) 1.4
JavaServer Pages (JSP) 2.0
Enterprise JavaBeans (EJB) 2.1
Java Servlet 2.4 and 2.5 Specifications
Java Management Extensions (JMX) Remote API 1.0
Java Platform Profiling Architecture (JPPA), which includes (among other specifications) the specification of Java Virtual Machine Tools Interface
Concurrency Utilities (as of J2SE 5.0 , and )
Portlet specification 1.0
Content repository API for Java (JCR) 1.0
Web Services Specification for Java ME
StAX (Streaming API for XML)
A Metadata Facility for the Java Programming Language
Java 2 Platform, Standard Edition (J2SE) 5.0 (Tiger)
Security and Trust Services API for J2ME (SATSA)
Location API 1.0 for Java ME
Session Initiation Protocol (SIP) API for Java ME
Web Services Metadata for the Java Platform
Mobile 3D Graphics API for Java ME 1.0 and 1.1
Java Technology for the Wireless Industry (JTWI)
Instant messaging (Java ME and Java SE)
A Standard Extension API for Integrated Development Environments
Java Compiler API
Pack200 Network Transfer Format for Java Archives
Extending the Java Programming Language with Enumerations, Autoboxing, Enhanced for loops and Static Import (as of J2SE 5.0)
Java Class File Specification Update
More Non-blocking I/O (Java) (NIO2)
Unicode Supplementary Character Support (as of J2SE 5.0 adds support for Unicode 3.1)
Wireless Messaging API 2.0 (WMA) 2.0
Java API for XML Processing (JAXP) 1.3
Java Business Integration (JBI) 1.0
Content Handler API
Java Community Process (JCP) 2.6
Connected Device Configuration (CDC) 1.1 for Java ME
Foundation Profile 1.1
Enterprise JavaBeans (EJB) 3.0
Java Database Connectivity (JDBC) 4.0
Java Architecture for XML Binding (JAXB) 2.0
Scripting for the Java Platform for Java SE 6
Java API for XML Web Services (JAX-WS), successor of JAX-RPC
XQuery API for Java (XQJ)
Scalable 2D Vector Graphics API for Java ME
Payment API (PAPI)
Java Bindings for OpenGL
Advanced Multimedia Supplements API for Java ME
Service Data Objects (SDO)
Java Bindings for OpenGL ES
JAIN SLEE API Specification (JSLEE) 1.1
The Groovy Programming Language
Java Data Objects (JDO) 2.0
Java Platform, Enterprise Edition (Java EE) 5
JavaServer Pages (JSP) 2.1
Java Data Mining API (JDM) 2.0
Mobile Service Architecture
Mobile Service Architecture 2
Common Annotations for the Java Platform (for the Metadata facility for Java)
JavaServer Faces (JSF) 1.2
Mobile Telephony API (MTA)
Java Management Extensions (JMX) 2.0
Mobile Sensor API
Contactless Communication API (NFC)
Javadoc Tag Technology Update
Pluggable Annotations Processing API (for the Metadata facility for Java)
Java Platform, Standard Edition (Java SE) 6 (Mustang)
Mobile Information Device Profile (MIDP) 3.0 for Java ME
The BeanShell Scripting Language
Units specification (see Units of Measurement)
Design-time Metadata for JavaServer Faces Components
Java Module System
XML API for Java ME
IMS Services API (See IMS)
Real-Time Specification for Java (RTSJ) 1.1
Content repository API for Java (JCR) 2.0
Portlet Specification 2.0
SIP Servlet API 1.1
Java Language & XML User Interface Markup Integration (XML-UI)
Dynamic Component Support for Java SE (see OSGi)
Supporting Dynamically Typed Languages on the JavaTM Platform
Location API 2.0 for Java ME
Improved Modularity Support in the Java Programming Language
Swing Application Framework (Java SE 7)
EE platform (CDI)OpenWebBeans
JSF Portlet Bridge
Bean ValidationHibernate Validator
Network Mobility and Mobile Data API (not official as of July, 20th, 2007 but official release is planned for 2. Q. 2008
Annotations on Java Types (Java SE 8)
JAX-RS: The Java API for RESTful Web Services (1.0 and 1.1)
JavaServer Faces (JSF) 2.0Mojarra JavaServer FacesApache MyFaces
Java Platform, Enterprise Edition (Java EE) 6
Java Persistence API (JPA) 2.0EclipseLinkHibernate, openJPA
Java EE Connector Architecture (JCA) 1.6
IMS Communication Enablers (ICE) (See IMS)
Dependency Injection for JavaHK2
Java SE 7 Release Contents[OpenJDK 7]?
Java SE 8 Release Contents[OpenJDK 8]?
Java Persistence API (JPA) 2.1EclipseLinkHibernate, openJPA
JAX-RS 2.0: The Java API for RESTful Web Services
Java Message Service 2.0 (JMS)
Java Batch[dead link],
Java Money & Currency API
Java API for WebSocket
2.0
Java API for JSON Binding (JSON-B)Jackson
Java API for RESTful Web Services (JAX-RS) 2.1Project Jersey
Java API for JSON Processing 1.12019-05-31 at the Wayback MachineJackson
Java Platform Module System (supersedes
Bean Validation 2.0Hibernate Validator
The Java Language Specification, Third Edition (JLS) (as of J2SE 5.0 incorporates changes from JSRs 14, 41, 133, 175, 201, and 204)
Java Transaction API (JTA) 1.0 and 1.1
Java 3D API 1.3
Java Community Process (JCP) 2.0, 2.1 & 2.5.
Java Message Service (JMS) API 1.0 and 1.1
Java Virtual Machine Specification, Second Edition (JVM) (as of J2SE 5.0).OpenJDK
Java 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).

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.

JCP Program and Industry Awards

Source:

2012 — 10th Annual JCP Award Winners
AwardNomineeContributionsDetailsJSR #Win?
JCP Member/Participant of the YearLondon Java Community and SouJavaprogramSupporting Java developers through the JCP.Win!
Stephen ColebourneDate and time API for Java.Comprehensive and advanced. Tireless work.
Markus EiseleActive work among the German Java community and in the Expert Group.
JUG ChennaiBecoming the most active JCP organization in India and a competitive service organization in the commercial marketplace.
Werner KeilIncredible energy and participation in seven JSRs as well as the Executive Committee.
Antoine Sabot-DurandJSR Early Draft Release – accomplished quickly and efficiently; candidate for JBoss Enterprise Framework (the successor to the Seam family of Open Source projects and CDI use cases for Java EE7).
Outstanding Spec LeadVictor Grazi, Credit SuisseJava Money & Currency APIDedicated, focused expertise in solving issues representing money and currencies.Win!
Michael ErnstAnnotations on Java TypesLevel-headed approach; a great example of a well-run JSR.
Nigel Deakin, OracleJava Message Service 2.0Outstanding, thorough, and intelligent work keeping the JMS 2 EG open and moving forward at a great pace.
Pete Muir, Red HatContexts and Dependency Injection for Java EE 1.1Voluntarily upgrading to 2.8 in late 2011 and maintaining what were already transparent methods in running his Expert Group.
Most Significant JSRJitendra KotamrajuAPI for JSON ProcessingAn important step in bringing Java into the world of the modern web.
Victor Grazi, Credit SuisseMoney and Currency APINew ways of handling monetary amounts and currency computations. Fixing critical Java Number Format and Representation bugs beyond monetary values.
Mitch UptonJava State ManagementThe 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.
Nigel DeakinJava Message Service 2Modernize JMS at a rapid pace.
Patrick CurranJCP.NextSetting the direction and procedures for the next-generation JCP.Win!

See also

Notes

External links