
Java Community Process
The Java Community Process (JCP) was introduced by Sun Microsystems in 1998. Its primary goal was to engage the greater Java community in the process of developing and revising Java Application Programming Interfaces (APIs). The process is currently at version 2.6 (http://jcp.org/en/procedures/jcp2).
The JCP works by bringing together a group of experts in the subject area, under the guidance of a technical specification lead to not only develop or revise a specification, but also to build a reference implementation as well as a technology compatibility kit.
The process starts with the submission of a Java Specification Request (JSR), which either proposes a brand new specification or a significant revision to an existing specification.
An API is the contract that is made by a software package in terms of the functionality that it makes available to the developer. There is an implicit guarantee that APIs can be relied upon to exist for a very long time. You can see this at work in many Java APIs, where even questionable API decisions live on in perpetuity, as deprecated methods.
A specification has, at its core, the API for some aspect of the technology. For example, the Servlet 2.5 specification of August 2007 devotes almost half its pages to the API embodied in its javax.servlet
and javax.servlet.http
packages. The rest of its pages are split between the description of concepts that are introduced by the specification (servlets, the servlet context, sessions, filters, and so on) and a description of the functional requirements of a Java Enterprise Edition 5 servlet container.
A platform edition specification is a more involved animal and defines a baseline set of APIs that provide a foundation upon which applications can be built. For example, the Java Enterprise Edition platform describes a set of APIs (such as the JDBC, JNDI, and Servlet APIs) that are guaranteed to be available to any application that runs within a Java EE compliant server.
A reference implementation is the proof of concept implementation for a given specification, and is intended to prove that the specification can actually be implemented. Apache Tomcat serves as the reference implementation for the Servlet and JSP APIs; whereas the Sun Java System Application Server (GlassFish) is the reference implementation for the entire Java EE 5 stack.
A technology compatibility kit is used to verify that a given implementation is compliant with its specification. It consists of a set of tests, a mechanism to automate these tests, useful tools, and documentation. The reference implementation also serves as a useful platform against which to validate the tests in the TCK.
The current version for the Servlet API is the Java™ Servlet Specification version 2.5 Maintenance Release 6 specification. This specification was developed using the JCP as Java Specification Request 154.
This document can be downloaded from http://jcp.org/en/jsr/detail?id=154.
A more recent maintenance release specification of the API can be obtained from http://jcp.org/aboutJava/communityprocess/mrel/jsr154/index.html.