- What is the Java Community Process?
- Java Community Process
- Java Specification Request
- Process to get JCP Membership
- Role of executive committee in JCP
- An Update on JetBrains and the Java Community Process
- FAQ
- What is the Java Community Process?
- What is a JSR?
- What is the role of the Executive Committee?
- Who else is on the Executive Committee?
- Who represents JetBrains on the EC?
- What’s the difference between the JCP and OpenJDK?
What is the Java Community Process?
Have you ever thought of how the Java technologies are formalized and getting standardized? Would you like to know what the Java community process and how does it work, what is the process for its membership, etc. Welcome to this post you will get everything here.
It’s important to understand the platform’s key components before going into the Java Community Process (JCP). Java is a platform independent, object oriented and robust language. Currently it is one of the most popular HLL (High Level Language) among the community. Java is available in three editions: Java Micro Edition (Java ME), Java Enterprise Edition (Java EE), and Java Standard Edition (Java SE).
Both Java Standard Edition and Java Enterprise Edition are used for various kinds of application development like web application development, mobile application development, application servers, big data technologies and many more. While Java Micro Edition is used for embedded applications.
Hope you got a brief idea about Java. Now you will get a brief about the JCP.
Java Community Process
This Java Community Process in short is called JCP, which allows interested parties to submit suggestions for enhancements that are (hopefully) taken into consideration and then implemented. Here, the procedure is explained.
Sun Microsystems was the company that introduced JCP in December 1998. JCP came into existence just three years after Java did. JCP is still around and doing well. Is it possible to solely attribute JCP’s success to the Java platform?
In this post, I would like to discuss two important aspects of Java, namely the JCP and the JSR. Java users have no excuse for not being aware of these issues. The public can participate in the development and upkeep of Java through Java community processes. The Java platform is one of Java’s best features. It changes how Java works and lets us speak up to voice our dissatisfaction or request a feature we like.
Java Specification Request
The document that initiates a Java enhancement is the Java Specification Request. Platform Java A member of the JCP program is responsible for writing an JSR that identifies an opportunity to improve this platform and submitting it for revision. Before being published or deleted, the JSR is then resubmitted to a number of stages. From the initial creation of the JSR to its release, the phases are listed in the table below.
Jcp.org is the official website, and we can use it to register. We can gain better access to the website by registering, but this does not make us a JCP member. It is managed by a membership program for which we must separately sign up. The following options are available to us for registering as JCP members at the time of writing.
Process to get JCP Membership
- A Java Specification Participation Agreement (JSPA), Associate Membership Agreement (AMA), or Partner Membership Agreement (PMA) must be signed by an organization or individual in order to officially participate in any stage of a JSR or process in the JCP.
- Any person or organization that signs one of these agreements is given one of the three categories of JCP Membership that are available: Full member, partner member, or associate member, Members of each of these types are qualified to play various roles in the process. The JCP provides a comprehensive explanation of how members of various types—individuals, businesses, and nonprofits—acquire membership and how they can contribute.
- Partner Members can serve on the Executive Committee, attend JCP Member events, and vote in the annual Executive Committee elections for two Associate seats. Full Members are eligible to lead these specifications, serve on the Executive Committee, contribute to JSRs, and vote in the yearly elections for the Executive Committee. Associate Members can contribute to JSRs’ Expert Groups, attend JCP Member events, and vote in the annual Executive Committee elections for two Associate seats.
Role of executive committee in JCP
In the JCP program, the Executive Committee (EC) plays a significant role. All JSRs submitted to the program must be analysed, commented on, voted on, and approved by this group. The EC and the entire JCP program are not only in charge of directing the evolution of the platform as a whole, but they are also in charge of keeping the JCP program in line with what the community expects of it and its members.
Well, this was an overview about the JCP, how it works and the role of the JCP executive committee. If you wish to get more updates about such contents, stay connected with us and please share and like our post.
An Update on JetBrains and the Java Community Process
JetBrains has been on the Java Community Process (JCP) Executive Committee (EC) for nearly two years, having been re-elected in November 2018. We want to take a minute to summarize a little of what we’ve seen so far; to look forward into the future; and to answer some common questions.
JetBrains wants to represent the interests of Java developers. We’re in a good position to do this because: a) as IntelliJ IDEA is the most used Java IDE we have a lot of customers who are Java developers and are not shy in letting us know their opinions; and b) we have a lot of Java and JVM developers in our company!
We joined the Executive Committee at quite an exciting time, as it was just as Java 9 was being debated. The key feature for Java 9 was the Java Module System (JSR 376), and this was a relatively controversial JSR, having been rejected during the public review ballot. This was also a great example of what the JCP is for – we have to consider the impact of a new standard on the whole Java community to make sure it helps move Java forward in a way which benefits everyone.
Since joining the JCP the Java landscape has changed quite rapidly and it’s a very interesting time to be involved:
- Oracle is releasing a new JDK every 6 months. This is a big change from having releases every three years or so.
- Licensing, updates, and support have all changed for Oracle’s JDK(s), which has opened up some healthy competition.
- Java EE has moved into its own working group and is independent of the JCP.
Point 1 has necessitated changes to the way the JCP works since a lengthy, heavyweight standards process cannot cope with such rapid releases. Point 3 has reduced the number of JSRs the committee has to oversee, since many standards were traditionally in the enterprise Java space.
JetBrains is very interested to see how the updated process will work with the faster release cadence (spoiler: so far it seems to be going well).
We also want to continue making sure that the specifications being approved make sense for the Java Community. With an explosion of interest in new applications of technology, such as machine learning, one of the challenges of creating a “standard” is to time it right – too early, and it’s hard to anticipate all the ways this technology might be used; too late, and the space is fragmented and difficult to create a single standard. For some upcoming JSRs we want to be clear whether it’s the right time for these specifications.
Finally, we want to make sure that the JCP itself is fit for purpose. In our fast-moving technology world, it’s tempting to think a standards body is old fashioned and will only slow down progress. The key is to evolve the standards process itself along with the technology it represents. We’ve seen that so far the JCP is not only able to evolve to keep up with the community, but has made huge strides in recent years to become more relevant than ever. For example, the JCP has successfully moved its focus away from large corporate memberships by introducing new memberships for user groups and individuals, doing away with a lot of the intimidating legal paperwork.
The JCP is an increasingly relevant part of the Java community. It’s a central place for JDK vendors, large organizations, and user groups to come together and discuss what the right direction for the language is, given all these interested parties and their different requirements and usages. We are honored to be a part of it.
FAQ
What is the Java Community Process?
It’s the formal process by which standards are decided in Java. These standards are represented via a Java Specification Request (JSR).
What is a JSR?
A Java Specification Request (JSR) is a proposal of a standard. Example specifications include things like Java Persistence (JPA), the Date and Time API which came into Java 8, and versions of Java like Java 12. These JSRs pass through various stages before they are finally approved as a standard. These standards are important to provide consistency between different implementations of Java or Java libraries or frameworks.
What is the role of the Executive Committee?
The members of the Executive Committee vote on these JSRs as they pass through various stages. We can vote “no” if we think that a JSR is not ready to progress to the next stage.
Who else is on the Executive Committee?
Here’s the full list. It’s a wide range of organizations, from JDK vendors like Oracle, Azul, Red Hat, and IBM, open source foundations like the Eclipse Foundation, companies who use Java heavily like Goldman Sachs and Twitter, user groups like the London Java Community, and a number of individuals too.
Who represents JetBrains on the EC?
We’re represented by Anna Kozlova and Trisha Gee, and we have a loose committee of people internally to JetBrains with a range of interests and experience who are on expert groups or involved in keeping up with different specifications.
What’s the difference between the JCP and OpenJDK?
“[The] new model has more clear division of responsibilities”
- OpenJDK “JDK” Project – Looking to the future
- Technical direction, development
- Integrity, completeness, and accuracy of specification, TCK
- Independent implementability
- Support lifetimes and policies, update trains, backports, etc