As of Java 7, OpenJDK is the Reference Implementation (RI) for Java. In essence, the OpenJDK is the Java we use every day! With legal and technical barriers become smaller every day, it is now more possible than ever to get involved in the language and VM that we all love.
Also, see Goals and Benefits
Who's Adopting OpenJDK?
Many individuals, JUGs and organisations, see Who Is Adopting OpenJDK
There are many levels, projects and smaller programmes within Adopt OpenJDK that you can join
You can participate in the program via:
- Google group: Adopt OpenJDK Google Group
- Mailing the Adopt OpenJDK group directly
- IRC: #adoptopenjdk channel on irc.freenode.net
- Twitter: @adoptopenjdk (follow the #adoptopenjdk hash tag on twitter)
- Google+ Community Google+ Community
See Adopt OpenJDK Etiquette for our community rules
See Initial Steps
Get a project sponsor
In order to have any serious amounts of work approved into the OpenJDK there's also the matter of liaising with a very busy OpenJDK team. Please ensure that you have an OpenJDK project sponsor for the work that you're doing. Typically you can email the Adopt OpenJDK group to get one arranged.
How you could organise yourselves
Again, we don't want to overwhelm the OpenJDK committers! So when organising a workshop/hackday we strongly recommend the following process:
- Nominate some instructors to lead the group. These should be people who have gone through the instructor training and/or are familiar with the OpenJDK build and patch submission processes.
- Don't have qualified instructors?
- Contact the Adopt OpenJDK group and one will be provided for you.
- Further training will also be provided so that you can grow your own instructors.
- Have members join the adoptopenjdk IRC channel irc.freenode.net
- Follow the process outlined for each particular event with regards to fixes, patch creation and review
- This will include co-ordinating with the OpenJDK project sponsor to get the patches in
Levels of contribution
This section covers the myriad ways in which you can contribute to the Adopt OpenJDK program
Your own build
Evangelism, Testing & Triage
Bug fixes and small enhancements
There are some General Instructions for Small Changes which apply to most of the sub projects below.
Your First Patch
In order to get a patch ready for committing, you need to have written the patch, but there are several other things you need to do.
First off, you should be comfortable with building OpenJDK & keeping up to date with the head of the relevant repo.
You should also know (from having watched the mailing lists, or by asking on the AdoptOpenJDK mailing list) which project you should be targeting for your patch. Note that this may not necessarily be the OpenJDK 8 mainline project.
You should also have installed jtreg as that will be needed for testing your patch.
Jigsaw and OSGi
There are two parts to this. Project Jigsaw itself and project Penrose, a splinter project investigating OSGi/Jigsaw interaction
- Jigsaw - TBA
- Project Penrose - Lead by Neil Bartlett
jtreg, JUnit, TestNG etc
Other JDK Enhancement Proposals (JEPs)
Read Alex Blewitt's blog post for some background information on the JEP process. Some JEPs can be classed as intermediate level proposals:
- Finding and eliminating memory leaks. JDK provides good tools for that, 3rd-party profilers are also helpful
- New platforms support. They can include operating systems, hardware, browsers, window managers - everything. Sometimes the fix is small, sometimes it makes sense to request a new OpenJDK project (e.g. BSD port, or PowerPC/AIX port)
- Performance. It's a never-ending task.
See Javadoc for details - Lead by Ben Evans and Richard Warburton
Build and CI
- Investigate the experimental patch by Lukas Stadler and get it up to date with OpenJDK 8 - Join co_jsrATsswDOTuni-linzDOTacDOTat for details
- Start discussions within mlvm-dev about coroutines, their state and their suitability going forward for the JVM
Other JDK Enhancement Proposals (JEPs)
Read Alex Blewitt's blog post for some background information on the JEP process. Some JEPs can be classed as advanced level proposals:
- Ux overhaul of the http://openjdk.java.net - This is delayed until an infrastructure move takes place.
- Triage OpenJDK Bugs - This is delayed until the public JIRA instance is available
Talks and Presentations
See the Downloads section for this project (left hand menu).