About the authors
Ben Evans is the LJC’s representative on the Java SE/EE Executive Committee. Martijn Verburg is one of the co-leaders of the London Java Community (LJC).
Earlier this month, the LJC, aka the London Java User Group (JUG) became the first JUG to be elected to an open seat on the Java Standard Edition/Enterprise Edition Executive Committee (Java SE/EE EC in short). In this post, we’ll explain what the forthcoming changes to the Java Community Process (JCP) mean and how the LJC intends to help with the process of reform at the SE/EE Committee level.
What is the JCP? What is a JSR? What is the Executive Committee?
The JCP is the process by which new versions of Java and standardized Java technologies are produced. The process involves the use of a standardized set of documents which define the new technology. These are referred to as Java Specification Requests (JSRs). A JSR must also include:
- A Reference Implementation (RI)
- A Testing Compatibility Kit (TCK)
JSRs are usually referred to by their number – so for example the effort to define generics (which ultimately made its way into Java 5) was JSR 14, and the Java Persistence API (JPA) v2.0 was JSR 317. There are even JSRs for the new versions of Java itself! For example, JSR 336 defines what will be in Java SE 7.
The body which is responsible for deciding which JSRs can become official Java standards is the Executive Committee, which is made up of a number of corporations, exceptional individuals and interested parties – including ourselves, Oracle, IBM, Fujitsu, Google, Red Hat and others.
We’ll be putting up a post in the very near future which explains how our participation in the EC will work – but we want to hear your views about the issues facing the community – so we can do the best job of representing you that we can.
Every JSR goes through the same lifecycle, as shown in the diagram.
How to become a JCP member
You can become a JCP individual member very easily and you can also join as part of a corporate, academic, non-profit or JUG organisation (LJC members, please sign up!). This is the first step you should take to get involved. It’s actually very easy to join, see the JCP home page for instructions – http://jcp.org/en/home/index
It’s not as easy to get involved in a JSR as we’d like
Currently it can be quite difficult to get involved in some of the JSRs. Under existing rules, parts or even all of a JSR can effectively be run in private, making it impossible for outsiders to join. Most JSRs run at least partly in the open, but several don’t.
There is also a tendency to come up with a TCK and RI quite late in the process, which doesn’t allow the wider community to actually ‘play’ with the proposed JSR and give meaningful feedback.
Some JSRs are simply just deeply technical and only real experts can get involved early on, but that’s just the nature of the beast of something like JSR-292 (the new invokedynamic bytecode for the JVM).
But you should still jump on in
That said there are several JSRs which are run in the open and do solicit feedback with early RI’s and TCKs. Please visit the JCP home page and browse through the JSRs on the left hand menu. Each JSR page will list their public mailing lists, issue trackers etc. Simply join the mailing list, say hello and ask how you can help out (even though you’re not necessarily a domain expert).
JSR-107 (Caching) is an example of a recently revived JSR that’s running out in the open and is happy to receive help (big and small) from Java enthusiasts.
In the coming weeks, we’ll be explaining which JSRs are currently active – so people could participate in right now. We’re also about to see the work for JDK 8 kick off in earnest. This is a really great time to start thinking about how you could get involved.
If you have questions, or want to know more – please comment here, or start a thread on the LJC mailing list. We really want to help and encourage as many people to get involved as possible – and there’s lots of help available.
Things are about to get better!
This is a massive time of change in the Java ecosystem and during times of change you have the best chance to positively influence the outcome.
Oracle is working very hard to make the JCP and JSRs more open. Despite much anti-Oracle publicity, they really are trying hard (see JSR 348 comments below). Sure, there’s still plenty of areas that we’d like to see the process work differently (and we’ll be advocating for those), but our experience so far has been very positive and we think there’s real potential for some very constructive change.
For the first time, two JUGs are on the EC (us & SouJava – The Brazilian JUG). This means that the world wide developer community (9-10 million) has direct representation for the first time
JSR 348 has just been announced which is going to take great strides to open up the JCP, the Expert Groups (EGs) and just the overall ecosystem of standards. We implore you to get involved and send in feedback, whether its to us, your local JUG leader or through hte official JCP channels (see the contact us on at jcp.org)
The LJC and many other EC and EG members are very firmly in the camp of making JSRs more accessible to everyone. As well as enforcing openness via JSR 348, we also see a very real chance to have each JSR really engage with the community. We’re going to try and work with JSR EGs to see how we can raise their profile, make them really easy to access etc. Something along the lines of running a successful open source project is what we’re looking at.
Phew, long post. But there’s a reason for that, we’re really excited about the future! :)
Ben (@kittylyst) & Martijn (@karianna)