Disclaimer: This post is written by developers to demystify the process and some of the differences between the JSPA (Java Specification Participation Agreement) and the OCA (Oracle Contribution Agreement). Both of these may have legal implications to intellectual property rules that might be written into your employment contract. If you are in any doubt please seek legal advice before signing one of these contracts, the last thing either you or the community wants is for you to find yourself in a legal conflict.

If you are thinking about contributing to Java there are two levels on which you can get involved. Depending on what you want to contribute you will need to sign either one or both of the JSPA (Java Specification Participation Agreement) or the OCA (Oracle Contribution Agreement).

JSPA

The Java Specification Participation Agreement is an 11 page document enabling you to participate towards the JSR (Java Specification Requests) process.

  • The JSPA enables you to contribute to JSRs and sit on the expert group of individuals representing that change.
  • Your employer may have already signed the JSPA, in the first instance you should check with them as you might already be covered for your participation by their contract.
  • If your employer hasn’t signed the JSPA, you will probably want to participate as an individual (there is a cost associated with company memberships, however an individual membership is free of charge).
  • Your employer needs to agree with you signing the JSPA (even as an individual) and your employer needs to sign your individual JSPA paperwork. Note: the signature needs to meet certain standards – if you’re not sure you need to look at the Oracle website, especially if it’s a squiggle! (from experience)
  • I worked for a large investment bank and this was not a problem to be signed off by the legal team, but it did take around a month. So if you are thinking of participating in a JSR it’s a good idea to get this signed off early.
  • Once you send to Oracle the process is usually fairly quick to resolve, you can either fax (if that still exists where you are) or E-Mail each of the pages back as a PDF.

OCA

The OCA is required for direct code based contributions that are to be checked in to Java. It is a short single page document.

  • If you’re working on Open JDK and your work is approved for submission you will need to have one of these.
  • The essence of this agreement is to share the ownership of the change between yourself and Oracle.
  • If you’re thinking about taking this path it’s only a simple one page document that is quick to complete, so I recommend doing this upfront.
  • If you are going through your employers approval process it is potentially a good idea to try get both of these agreements signed off at the same time if you need to.

One final thing to note is that you can still attend hack days and bug fixing days without having the above signed, so if you’re not sure about how to get started, a hack day, Adopt-A-JSR or Adopt Open JDK  is for you.