Friday Jan 11, 2013

How do I play OpenJDK?

Both as a newbie and as a senior contributor, if I'm to stay engaged in any open source project, I want to make sure I won't waste my time. If I understand the processes and they are clear and structured, I can perform miracles. I quickly want to know if I have the competence to deliver something meaningful to the project and once engaged, I want the time I've committed to be respected. I want to do the right thing and I quickly want to understand how to do that - I want to learn the rules of the game.

In OpenJDK, there is plenty of room for innovation and ideas and also clear project management to get releases out there, choosing what projects to work on and prioritizing them. Reading the OpenJDK Bylaws will help participants understand how decision processes are designed.

After learning the rules, there's still plenty of room to learn how they are applied in reality, so plenty of excitement left. I'm pleased to see that the culture of OpenJDK when reading the mailing lists is based on strong values, e.g. technical excellence, contribution and helping others. Many Java User Groups have started engaging their members with OpenJDK in the Adopt OpenJDK program.

OpenJDK Quick Start

Oracle OpenJDK people Donald Smith, Dalibor Topic and Iris Clark gave an extensive presentation on the governance model for OpenJDK at JavaOne, you should really watch that, these guys know their stuff for real.

I delivered a presentation of a summarized model to the Hamburg JUG just before Devoxx, I'll summarize the presentation below, well aware that I'm omitting some important details, so consider this a crash course, to get a feeling for the governance model. If anything seems odd, please refer to the OpenJDK Bylaws and what the OpenJDK Governing Board says.

OpenJDK Participation

You can review lists of the Groups, Projects and people in OpenJDK from the Census page.


General Community role, anyone interested signing up for different mailing lists, making minor contributions.


General Community role, someone that has signed the license agreement OCA, can propose/submit non-trivial changes to OpenJDK code.

OpenJDK Member

Senior role, after nomination of other Members. There are a bit more than 100 OpenJDK Members currently.

OpenJDK Groups

  • A Group is a set of Participants sharing an interest discussed over email and web page.
  • OpenJDK Members can propose creation of a new Group.
  • A Group can sponsor Projects.
There are currently around 20 Groups and 40 Projects listed in OpenJDK (some more active than others).

Group OpenJDK Governing Board

Makes sure everything is working as directed by the Bylaws.
Five members, two members appointed by Oracle, one member appointed by IBM and 2 “at-large” members elected annually. Sponsors projects for Java SE Platform releases like JDK8.

Group OpenJDK Members

May vote on new Projects, nominate Groups, vote for “at-large” members for the Governing Board.

Other Groups

Examples of other groups are Porters creating ports to different platforms and the group Build sponsoring update releases.

Roles of Groups

Group Member

A Contributor who has history of significant contributions to a group, and elected to membership in that Group.
May nominate other Contributors to elect a Group Member.
Has write access to the Group’s web content and file repositories

Group Lead

An OpenJDK Member who is responsible for directing and coordinating the Group’s activities.
Has the authority to sponsor Projects.
Obligation to act as contact point for Group and look after content.
Obligation to publish a quarterly report on activities on the Group.
Appointed upon Group creation by approval of the Governing Board.
A Group Lead who has departed may be replaced by approval of Group Members and ratification by Governing Board.

OpenJDK Projects

A Group can sponsor Projects.
A Project have a specific purpose like to produce code or documentation, e.g. Coin or JDK 8, and can have a code repository.
Projects are operated in an “open, transparent and meritocratic” way.


Currently there are approximately 400 authors in total.
Self-nominated, appointed by Project Lead.
Should have done a few relevant, sponsored requests.
May create change sets but may not push them directly.


Nominated and approved by other Committers after a number of significant changes.
May create and push change sets when confirmed by approval process.
May vote on new Committers.


An Experienced Committer, a larger number of changes, nominated and elected by other Reviewers in the Project.
Role only exists in Projects where a Reviewer Role is required.
Reviews and approves change sets.

Project Lead

A Committer for the Project responsible for directing and coordinating the Project’s activities.
Considered a Reviewer, and maintain Reviewer status
Elected by the sponsoring Group Lead(s).
Has full authority over all technical matters related to the Project, including when to require formal change reviews.
Has the authority to appoint and remove Authors who are not also Committers.
Obligation to act as contact point for Project and manage content.
Obligation to publish a quarterly report on activities on the Project.


Been with the Java platform since 2002, mostly JVM. Active as a scout leader with a strong passion for coordinating community efforts. Working current with OpenJDK, making sure developers can contribute efficiently. Tweet me comments! @ceciliaborg The views expressed on this blog are my own and do not necessarily reflect the views of Oracle.


« January 2013 »