Java Community Process (JCP) and Java Specification Request (JSR)

Last modified on October 5th, 2014 by Joe.

I wanted to introduce two important things in java, the JCP and JSR in this article. A java guy must be knowing about these and no excuse. Java community process gives us the public an opportunity to participate in the development and maintenance of the Java platform. This is one of the best thing in java. It gives us a voice to raise our concern, ask for a feature we love and change the way java works.

JCP was launched by Sun Microsystems on December, 1998. JCP was created long back just after three years from the creation of java. JCP is still alive and going great. Can we attribute the success of java platform to JCP? is the website and we can register in it. Registering in website, enables us to use it in a better way but that does not make us a JCP member. It is governed by a membership program for which we need to register separately. As of the moment of writing we have following options to register as a JCP member,

Registration process is kind of cumbersome.

JCP gives annual awards in the following three categories,

Java Specification Request (JSR)

So how do we participate? Java specification request (JSR) is the mechanism provided by JCP to participate in it. JSR is a formal documentation that describes the technology request in detailed manner. A JSR can be initiated by a JCP member. It goes through multiple stages and finally for implementation. At any time there will be multiple JSRs in different stages.

I recommend you to choose a JSR which you like and join its mailing list. Let it be your first step. Go through that JSR and try to understand it and follow it in different stages. When it gets implemented, you will have nice hold on it and may be that will take you to the next level of actively participating in a JSR.

Presently there are 927 JSRs in all. We can submit our own java specification request (JSR). JSR for the next major release Java 8 is JSR 337.

Four stages of a JSR

  1. Initiation – First stage of a JSR, just a proposal is initiated by JCP member.
  2. Early Draft Review – Once the initiation is approved, an expert group will work on creating a early draft of that JSR. JCP and executive committee will review the draft and approve it.
  3. Public Draft – Once the early draft is approved, specification comes to this public draft stage. The specification is given to the public for open review and it is revised, a reference implementation is created then a final draft is taken to Executive Committee for approval.
  4. Maintenance – Once the final draft is approved, the specification enters the maintenance phase. The specification is revised based on clarifications, requests, issues and for enhancements.

Comments on "Java Community Process (JCP) and Java Specification Request (JSR)"

  1. hamid says:

    thank you, great post
    you teach us the basics straightforward

  2. Amar Sannaik says:

    Thanks. this is very useful information.

  3. suyash says:


    Thanks once again.
    Very useful information given.

    Suyash Bhalekar

  4. Mitul says:

    Thanks for this post and yes one thing that the link for is not working…

  5. Santhosh Reddy says:

    Very good information… good to know Joe.

  6. Hitesh kakadiya says:

    just write in URL not click on

  7. Anil says:

    good post

  8. pradip garala says:

    great post…

  9. javed shaikh says:

    which is good course for me java or .net i m doing BCA III

  10. Sneidon says:

    Its good to know :)

  11. sandeep says:

    helpful. thanks for the post

  12. divya says:

    Joe! Excellent blog i have ever looked around. I keep following your blog to become good at java.. Keep updating Thanks.

  13. […] hot topic in Java 8 is support for lambda expressions. They are part of Java Specification Request (JSR 335). I wrote about closures in Java two years back. Lambda expression are informally called […]

  14. Edwin Chui Villa says:

    Hi Joe thanks for the blog it’s very helpful for me to understand many things, but I wanted to ask you how a JSR becomes in an implementation. I’ve been developing about JPA and I’m using hibernate as a implementation of JPA. I thought that hibernate implements JPA but I’m a little confused about this. I hope you can help me, I would appreciate it

  15. reza says:

    thank you
    very good

  16. Surodip says:

    Nice, simple and effective explanation.

  17. Rambabu Chamakuri says:

    Awesome…. Really great….

  18. lavanya says:

    Nice explanation .

  19. Joe says:

    Welcome Surodip.

  20. Joe says:

    Welcome Hamid.

  21. Joe says:

    It depends on your interest. Since you are in the Under Graduate program, I will insist you to concentrate on fundamentals of computer science. Over and above this, its better to learn multiple languages. During this learning, your interest will be automatically driven towards a language, then follow your senses :-)

    It may be even C or CPP, who knows!

  22. Joe says:

    Welcome Amar.

  23. Joe says:

    Thanks Santhosh.

  24. Joe says:

    Thanks Anil.

  25. Joe says:

    Thanks Divya, keep sharing :-)

  26. […] is used for learning purposes. In embedded mode, it is made available as part of the javax.script (JSR 223) […]

  27. Praveen Kumar Sugumaran says:

    Nice information, basically I’m an Android Application Developer. It helps me lot to know about Java. THANK YOU…

Comments are closed for "Java Community Process (JCP) and Java Specification Request (JSR)".