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.
There are hundreds of JSRs. Some of the more visible JSRs include:
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). [9]
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. [10]
Source: [11]
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, | 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, | 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, | 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, | 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! |
A Java virtual machine (JVM) is a virtual machine that enables a computer to run Java programs as well as programs written in other languages that are also compiled to Java bytecode. The JVM is detailed by a specification that formally describes what is required in a JVM implementation. Having a specification ensures interoperability of Java programs across different implementations so that program authors using the Java Development Kit (JDK) need not worry about idiosyncrasies of the underlying hardware platform.
Jakarta Enterprise Beans is one of several Java APIs for modular construction of enterprise software. EJB is a server-side software component that encapsulates business logic of an application. An EJB web container provides a runtime environment for web related software components, including computer security, Java servlet lifecycle management, transaction processing, and other web services. The EJB specification is a subset of the Java EE specification.
Jakarta EE, formerly Java Platform, Enterprise Edition and Java 2 Platform, Enterprise Edition (J2EE), is a set of specifications, extending Java SE with specifications for enterprise features such as distributed computing and web services. Jakarta EE applications are run on reference runtimes, which can be microservices or application servers, which handle transactions, security, scalability, concurrency and management of the components they are deploying.
Jakarta Faces, formerly Jakarta Server Faces and JavaServer Faces (JSF) is a Java specification for building component-based user interfaces for web applications. It was formalized as a standard through the Java Community Process as part of the Java Platform, Enterprise Edition. It is an MVC web framework that simplifies the construction of user interfaces (UI) for server-based applications by using reusable UI components in a page.
Java Management Extensions (JMX) is a Java technology that supplies tools for managing and monitoring applications, system objects, devices and service-oriented networks. Those resources are represented by objects called MBeans. In the API, classes can be dynamically loaded and instantiated. Managing and monitoring applications can be designed and developed using the Java Dynamic Management Kit.
BeanShell is a small, free, embeddable Java source interpreter with object scripting language features, written in Java. It runs in the Java Runtime Environment (JRE), dynamically executes standard Java syntax and extends it with common scripting conveniences such as loose types, commands, and method closures, like those in Perl and JavaScript.
Java APIs for Bluetooth Wireless Technology (JABWT) is a J2ME specification for APIs that allows Java MIDlets running on embedded devices such as mobile phones to use Bluetooth for short-range wireless communication. JABWT was developed as JSR-82 under the Java Community Process.
A Java Portlet Specification defines a contract between portlets and their containers; they provides a convenient programming model for Java portlet developers. It is defined through various Java Specification Requests (JSRs).
The Jakarta Standard Tag Library is a component of the Java EE Web application development platform. It extends the JSP specification by adding a tag library of JSP tags for common tasks, such as XML data processing, conditional execution, database access, loops and internationalization.
Java Business Integration (JBI) is a specification developed under the Java Community Process (JCP) for an approach to implementing a service-oriented architecture (SOA). The JCP reference is JSR 208 for JBI 1.0 and JSR 312 for JBI 2.0. JSR 312 was removed from the JCP balloting process on 17 Dec, 2010 by the submitters without being accepted.
A Technology Compatibility Kit (TCK) is a suite of tests that at least nominally checks a particular alleged implementation of a Java Specification Request (JSR) for compliance. It is one of the three required pieces for a ratified JSR in the Java Community Process, which are:
GlassFish is an open-source Jakarta EE platform application server project started by Sun Microsystems, then sponsored by Oracle Corporation, and now living at the Eclipse Foundation and supported by OmniFish, Fujitsu and Payara. The supported version under Oracle was called Oracle GlassFish Server. GlassFish is free software and was initially dual-licensed under two free software licences: the Common Development and Distribution License (CDDL) and the GNU General Public License (GPL) with the Classpath exception. After having been transferred to Eclipse, GlassFish remained dual-licensed, but the CDDL license was replaced by the Eclipse Public License (EPL).
Java is a set of computer software and specifications that provides a software platform for developing application software and deploying it in a cross-platform computing environment. Java is used in a wide variety of computing platforms from embedded devices and mobile phones to enterprise servers and supercomputers. Java applets, which are less common than standalone Java applications, were commonly run in secure, sandboxed environments to provide many features of native applications through being embedded in HTML pages.
Apache MyFaces is an Apache Software Foundation project that creates and maintains an open-source JavaServer Faces implementation, along with several libraries of JSF components that can be deployed on the core implementation. The project is divided into several sub-projects:
Jakarta Persistence, also known as JPA is a Jakarta EE application programming interface specification that describes the management of relational data in enterprise Java applications.
The Jakarta Expression Language is a special purpose programming language mostly used in Jakarta EE web applications for embedding and evaluating expressions in web pages. The specification writers and expert groups of the Java EE web-tier technologies have worked on a unified expression language which was first included in the JSP 2.1 specification (JSR-245), and later specified by itself in JSR-341, part of Java EE 7.
In computing, Facelets is an open-source Web template system under the Apache license and the default view handler technology for Jakarta Faces. The language requires valid input XML documents to work. Facelets supports all of the JSF UI components and focuses completely on building the JSF component tree, reflecting the view for a JSF application.
Jakarta RESTful Web Services, is a Jakarta EE API specification that provides support in creating web services according to the Representational State Transfer (REST) architectural pattern. JAX-RS uses annotations, introduced in Java SE 5, to simplify the development and deployment of web service clients and endpoints.
Java Database Connectivity (JDBC) is an application programming interface (API) for the Java programming language which defines how a client may access a database. It is a Java-based data access technology used for Java database connectivity. It is part of the Java Standard Edition platform, from Oracle Corporation. It provides methods to query and update data in a database, and is oriented toward relational databases. A JDBC-to-ODBC bridge enables connections to any ODBC-accessible data source in the Java virtual machine (JVM) host environment.
The JCP Executive Committee (EC) is the group of members guiding the evolution of Java technology in the Java Community Process (JCP). The EC represents both major stakeholders and a representative cross-section of the Java Community. It is composed of 16 JCP members plus a non-voting chair. The chair of the EC is a member of the Process Management Office (PMO). The 16 voting members are selected from JCP members.