DEVOXX BE 2013 'Betterrev: Social Participation in OpenJDK'
Social Participation in OpenJDK
Daniel Bryant (@taidevcouk)
Richard Warburton (@RichardWarburto)
Martijn Verburg (@karianna)
London Java Community
• OpenJDK – Java for the people!
• Contributing to OpenJDK is easy… right?
• The problem, and our planned solution
• Progress so far…
• Future work – we need your help!
• This is a BOF session
– We encourage questions and discussion!
What is OpenJDK?
• Is everyone familiar with the OpenJDK?
– Free and open source implementation of Java SE
– Reference Implementation for JDK since Java 7
– Code split into various Mercurial repos (jdk, Hotspot,
• Has anyone built it locally?
– On MS Windows…
• Java used extensively (and others… C++ etc)
• Ensuring quality
– We all Unit Test our code (…right?)
– Essential for a platform/SDK like Java
• Jtreg - “Regression Test Harness”
– Think Unit (and Integration) Testing for the JDK
– TestNG / JUnit / Shell scripts
– Some good code coverage (some bad!)
Test Coverage Report
Courtesy of John Oliver (@johno_oliver)
Contributing to OpenJDK is easy…
• Sign OCA
• Download the codebase
• Find something interesting to work on
– Bug database/tracker/Jira
– Write new tests
– Re-write old tests
– Get inspiration from the mailing lists (50+!)
Contributing to OpenJDK is easy…right?
• Find a sponsor
• Submit a patch
– Include comments, code changes and jtreg tests
– Generate a “webrev”
– Wait for feedback…
• This is a slow (and perhaps unintuitive) process
– Why can’t I just fork and pull?
Not quite social coding…
Is it anti-social???
• Doesn’t quite feel like “social coding” should…
– You’re working on an island
– Modifications not visible to the world
– Discussions not close to code
• Testing is difficult
– Added complexity of working with a VM/SDK
– Does patch works across all platforms/permutations?
– Coding standards
• “To encourage contributions to OpenJDK"
• Streamline the whole process
– More social…
• Ensure (and assist with) quality
– Lack of test coverage, incorrect code style
– Easier to test across platforms/permutations
• Provide visible feedback for community
Progress so far…
• “Betterev” web app nearing completion
– Built in Play 2 framework (not ideal…)
• Event-driven architecture
– Utilising Akka to build event-bus
• Planning Test Farm implementation
– Servers aren’t free!
• Personal Challenges
– Large scope needs large time commitments
– Communication and organisation are vital!
• Deploy alpha release
– Complete web app (what to do with Play??)
– Implement build farm (DevOps magic)
• Start demonstrating this tool
– Get some “buy in”…
• LJC working hard to commit more time…
Please do get involved!
• We need passionate Java developers like you!
– What’s better than helping to make contributing to
your favourite language easier?
• Find us on Bitbucket
• Join our Google Group:
Please do get involved!
• Web Resources
• Contact Us:
– Daniel Bryant (@taidevcouk)
– Richard Warburton (@RichardWarburto)
– Martijn Verburg (@karianna)
A shout out to the LJC and IBM…
• Thanks to the LJC for supporting this
– Martijn Verburg
– Richard Warburton
– Mani Sarkar
– Edward Wong
• Thanks also to IBM