Skip to main content
This revision made May 25, 2013 15:09, by Martijn Verburg

Introduction

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.

Goals

The Adopt OpenJDK program has a number of goals:

  1. Lower the technical barriers to allow developers, JUGs and organisations to get involved in OpenJDK
  2. Improve the Java, the language and the platform
  3. To promote OpenJDK in the wider Java community
  4. Broaden the base of contributors to OpenJDK

Benefits for you

You learn about F/OSS technology, unit testing, and contributing to large source code projects. You also get some other benefits:

  • Participate in community events, hack with your friends!
  • Add your name to the list of Java contributors
  • Learn new project management skills
  • Learn devops (Betterrev)
  • Learn unit and regression testing (Test Fests)
  • Add it to your list of Fu skills on your resume/CV (Lambdas, Javacountdown and more).

Who's Adopting OpenJDK?

Talks and Presentations

Hosted

See the Downloads section for this project (left hand menu).

JavaOne 2012

Getting Started

An overall guideline for this program is that we want to gather up the enthusiasm and skill sets of Java developers around the world, but then focus their efforts at specific areas within the OpenJDK. For example, this means that we'll encourage most Adopt OpenJDK members to tackle library level and/or low hanging fruit categories of changes (we acknowledge that we're not all language designers). A smaller number of JUG members who are really qualified in the area of library design, hotspot internals etc (if you think syntax is the important bit, then this probably isn't you) will be encouraged to contribute in more advanced areas. This of course includes enthusiasts who are willing to put in the time to really learn about this stuff. As Yara from SouJava pointed out at Devoxx, this is a great opportunity to also mentor budding experts in the various parts of the OpenJDK, so that there is a path for those who want to travel it!

Sign Up

You can participate in the program via:

  1. Google group: Adopt OpenJDK Google Group
  2. Mailing the Adopt OpenJDK group directly
  3. IRC: #adoptopenjdk channel on irc.freenode.net
  4. Twitter: @adoptopenjdk (follow the #adoptopenjdk hash tag on twitter)
  5. Google+ Community Google+ Community

Mailing List and IRC Channel rules

Adopt OpenJDK Etiquette

Initial Steps

Any time you need help please mail the Adopt OpenJDK group or if that fails the JUG leaders list.

There are a couple of steps you should take if you are going to contribute to the OpenJDK

  1. Mandatory - Read up on How to Contribute to the Open JDK
  2. Mandatory/Optional - Sign the Oracle Contributors License Agreement (OCA) (PDF) if you're submitting any work that contains any sort of substantial IP (this isn't required for something as simple as fixing a javac compiler warnings).

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:

  1. 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.
    1. Don't have qualified instructors?
      1. Contact the Adopt OpenJDK group and one will be provided for you.
      2. Further training will also be provided so that you can grow your own instructors.
  2. Have members join the adoptopenjdk IRC channel irc.freenode.net
  3. Follow the process outlined for each particular event with regards to fixes, patch creation and review
    1. 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

Starter Level

VM Build

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.

Intermediate Level

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:

  • TBA

Advanced Level

  • 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.

Javadoc overhaul

See Javadoc for details - Lead by Ben Evans and Richard Warburton

Lambdas

Build and CI

Coroutines

  • 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

Concurrency Testing

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:

  • TBA

Misc Projects

Delayed Projects

  • 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
Difference compared to previous revision
The Adopt OpenJDK program has a number of goals: # EncLouwer the technicragal barringers to allow developers, JUGs and organisations to get involved in OpenJDK # Improvingdevelopers, JUGs and organisations to get involved in OpenJDK # Improve the Java, the the language and the VMlanguage and the platform # To promote OpenJDK in the wider Java community # Broaden the base of contributors to OpenJDK ... You learn about F/OSS technology, unit testing, and contributing to large source code projects. You also get some other benefits: * Participate in a # To promote OpenJDK in the wider Java community # Broaden the base of contributors to OpenJDK ... You learn about F/OSS technology, unit testing, and contributing to large source code projects. You also get some other benefits: * Participate in community events, hack with your friends!community event * Add your name to the list of Java contributors * Learn new massive * Add your name to the list of Java contributors * Learn new project management skills * Learn devops ([https://bitbucket.org/adoptopenjdk/betterrev Betterrev]) * Learn unproject management skills * Learn unit and regression testing (jit and regression testing ([[Testr Fegsts]]) * Add it to your list of Fu skills (on your rresume/CV) * Dresume/CV ([https://gink thub.com/AdoptOpbeveenJDK/lambda-tutoriragesal L anambd eatdas], food w[https://gith ub.com/Adcool peooptOple *penJDK/javacountdown GeJavacountdown] andt a t-shi mort :-e). == Who's Adopting OpenJDK? ==
 
 
Close
loading
Please Confirm
Close