SlideShare a Scribd company logo
Contributing to OpenJDK for 
the GitHub Generation 
Daniel Bryant (@danielbryantuk) 
Mani Sarkar (@theNeomatrix369) 
Edward Yue Shong Wong (@arkangelofkaos) 
London Java Community
Tonight’s Agenda 
∙ 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, 
nashorn…) 
∙ Has anyone built it locally? 
– On MS Windows…
Building OpenJDK 
∙ 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 
http://sticky.uwcs.co.uk/ojdk/coveragereport/ 
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… 
http://docs.joomla.org/Dvcs
Is it anti-social??? 
http://www.rottenecards.com/card/32253/im-not-anti-social-im-se
The problems… 
∙ 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
Our Goals 
∙ “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
Architecture – Grand Vision
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!
Opening page
Pull Review details
Future Work 
∙ 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 
– https://bitbucket.org/adoptopenjdk/betterrev 
∙ Join our Google Group: 
– https://groups.google.com/forum/#!forum/betterrev
Please do get involved! 
∙ Web Resources 
– http://openjdk.java.net/ 
– https://java.net/projects/adoptopenjdk/ 
– https://groups.google.com/forum/#!forum/adopt-https:// 
groups.google.com/forum/#!forum/adopt-openjdk 
∙ Contact Us: 
– Daniel Bryant (@danielbryantuk) 
– Mani Sarkar (@theNeomatrix369) 
– Edward Yue Shong Wong (@arkangelofkaos)
A shout out to the LJC and IBM… 
∙ Thanks to other LJC members for supporting 
this 
– Martijn Verburg 
– Richard Warburton 
∙ Big thanks also to IBM 
– Steve Poole

More Related Content

PPT
DEVOXX BE 2013 'Betterrev: Social Participation in OpenJDK'
PPT
LJCConf 2013 "Contributing to OpenJDK for the GitHub Generation"
PPT
JavaOne 2013 "Using Java to Build Java: Betterrev" BOF Session
PDF
Windows Just Got Chocolatey (Package Management) LISA15
PDF
Building at a glance
PDF
Android Made Simple
ODP
Vagrant and puppet: Deployment made easy
PPTX
Dockerizing your java development environment
DEVOXX BE 2013 'Betterrev: Social Participation in OpenJDK'
LJCConf 2013 "Contributing to OpenJDK for the GitHub Generation"
JavaOne 2013 "Using Java to Build Java: Betterrev" BOF Session
Windows Just Got Chocolatey (Package Management) LISA15
Building at a glance
Android Made Simple
Vagrant and puppet: Deployment made easy
Dockerizing your java development environment

What's hot (20)

PDF
Easily Manage Software on Windows with Chocolatey - PuppetConf 2016
ODP
Development nightmares
PDF
Droidcon IT 2015
PDF
Android Building, Testing and reversing
PDF
Magento Continuous Integration & Continuous Delivery @MM17HR
PPTX
Running a Successful Open Source Project
PDF
JHipster Conf 2019 English keynote
PDF
Better delivery with DevOps Driven Development
PDF
So You Want to be an OpenStack Contributor
PDF
Extending NetBeans IDE
PDF
Trying Out Tomorrow’s WordPress Today
PPTX
Evolution of NuGet
PPTX
The New York Times: Sustainable Systems, Powered by Python
PPTX
Collaborating on GitHub for Open Source Documentation
PDF
Continuous integration for androids
PPTX
2011 - Dotnet Information Day: NUGET
PDF
Continuous Integration Is for Teams: Moving past buzzword driven development
ODP
Jenkins djangovillage
PDF
Memorial Sloan Kettering: Adventures in Drupal 8
PDF
From zero to hero with React Native!
Easily Manage Software on Windows with Chocolatey - PuppetConf 2016
Development nightmares
Droidcon IT 2015
Android Building, Testing and reversing
Magento Continuous Integration & Continuous Delivery @MM17HR
Running a Successful Open Source Project
JHipster Conf 2019 English keynote
Better delivery with DevOps Driven Development
So You Want to be an OpenStack Contributor
Extending NetBeans IDE
Trying Out Tomorrow’s WordPress Today
Evolution of NuGet
The New York Times: Sustainable Systems, Powered by Python
Collaborating on GitHub for Open Source Documentation
Continuous integration for androids
2011 - Dotnet Information Day: NUGET
Continuous Integration Is for Teams: Moving past buzzword driven development
Jenkins djangovillage
Memorial Sloan Kettering: Adventures in Drupal 8
From zero to hero with React Native!
Ad

Viewers also liked (16)

DOCX
Hhp paper
PDF
Adopt OpenJDK presentation (slide deck)
PDF
Adopt OpenJDK, Betterrev blind ignite presentation
PPTX
Scaun cu rotile cu verticalizare
PPTX
Scaune cu rotile
PDF
How is Java / JVM built ? Adopt OpenJDK is your answer !
PPTX
Java2 days 2013-j-treg
PDF
Fosdem2014 fromwebrevtobetterrevbryantsarkar-140203131215-phpapp02
PPTX
Java2 days 2013-lambda
PDF
Essential technical skills
PDF
Refactoring developer habits
PDF
How is Java / JVM built ? Back then and now...
PDF
Kanban kata
PDF
Leaning on the two Ts
PDF
History of java
PPTX
Sonar qube to impove code quality
Hhp paper
Adopt OpenJDK presentation (slide deck)
Adopt OpenJDK, Betterrev blind ignite presentation
Scaun cu rotile cu verticalizare
Scaune cu rotile
How is Java / JVM built ? Adopt OpenJDK is your answer !
Java2 days 2013-j-treg
Fosdem2014 fromwebrevtobetterrevbryantsarkar-140203131215-phpapp02
Java2 days 2013-lambda
Essential technical skills
Refactoring developer habits
How is Java / JVM built ? Back then and now...
Kanban kata
Leaning on the two Ts
History of java
Sonar qube to impove code quality
Ad

Similar to Ljc conf open jdk betterrev bof (20)

PDF
Everyone wants (someone else) to do it: writing documentation for open source...
PDF
August Webinar - Water Cooler Talks: A Look into a Developer's Workbench
PDF
Cloud Native Rejekts Europe 2022 - Learnings From Creating CI/CD Pipelines
PPTX
MOBILE QUESTIONS & ANSWER WEBSITE
PPTX
Yocto_DevDay_Advanced_Class_Portland_2018.pptx
PDF
Join the Java Evolution GIDS Bangalore & Pune
PDF
Adopt OpenJDK - Lessons learned and Where we're going (FOSDEM 2013)
PPTX
Introducing the JAQ (Java, Angular, Sql/NoSQL) Stack
PDF
Adopt OpenJDK the past, the present & the future
PPTX
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...
PDF
005528214.pdf
PPTX
whats-new-netbeans-ide-7x.pptx
PDF
8 Principles for Enabling Build/Measure/Learn: Lean Engineering in Action
PPTX
JavaFX - Sketch Board to Production
PDF
Keeping your build tool updated in a multi repository world
PDF
Counterclockwise past present future
PDF
How to create/improve OSS product and its community (revised)
PDF
Usable Software Design
PDF
Achieving Full Stack DevOps at Colonial Life
Everyone wants (someone else) to do it: writing documentation for open source...
August Webinar - Water Cooler Talks: A Look into a Developer's Workbench
Cloud Native Rejekts Europe 2022 - Learnings From Creating CI/CD Pipelines
MOBILE QUESTIONS & ANSWER WEBSITE
Yocto_DevDay_Advanced_Class_Portland_2018.pptx
Join the Java Evolution GIDS Bangalore & Pune
Adopt OpenJDK - Lessons learned and Where we're going (FOSDEM 2013)
Introducing the JAQ (Java, Angular, Sql/NoSQL) Stack
Adopt OpenJDK the past, the present & the future
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...
005528214.pdf
whats-new-netbeans-ide-7x.pptx
8 Principles for Enabling Build/Measure/Learn: Lean Engineering in Action
JavaFX - Sketch Board to Production
Keeping your build tool updated in a multi repository world
Counterclockwise past present future
How to create/improve OSS product and its community (revised)
Usable Software Design
Achieving Full Stack DevOps at Colonial Life

Recently uploaded (20)

PDF
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
PPTX
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
PPTX
VVF-Customer-Presentation2025-Ver1.9.pptx
PDF
Odoo Companies in India – Driving Business Transformation.pdf
PDF
medical staffing services at VALiNTRY
PDF
Wondershare Filmora 15 Crack With Activation Key [2025
PDF
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
PDF
Softaken Excel to vCard Converter Software.pdf
PPTX
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
PDF
2025 Textile ERP Trends: SAP, Odoo & Oracle
PDF
Digital Strategies for Manufacturing Companies
PDF
Upgrade and Innovation Strategies for SAP ERP Customers
PPT
Introduction Database Management System for Course Database
PDF
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
PDF
PTS Company Brochure 2025 (1).pdf.......
PDF
System and Network Administration Chapter 2
PPTX
ManageIQ - Sprint 268 Review - Slide Deck
PPTX
Online Work Permit System for Fast Permit Processing
PPTX
CHAPTER 12 - CYBER SECURITY AND FUTURE SKILLS (1) (1).pptx
PDF
Design an Analysis of Algorithms I-SECS-1021-03
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
VVF-Customer-Presentation2025-Ver1.9.pptx
Odoo Companies in India – Driving Business Transformation.pdf
medical staffing services at VALiNTRY
Wondershare Filmora 15 Crack With Activation Key [2025
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
Softaken Excel to vCard Converter Software.pdf
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
2025 Textile ERP Trends: SAP, Odoo & Oracle
Digital Strategies for Manufacturing Companies
Upgrade and Innovation Strategies for SAP ERP Customers
Introduction Database Management System for Course Database
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
PTS Company Brochure 2025 (1).pdf.......
System and Network Administration Chapter 2
ManageIQ - Sprint 268 Review - Slide Deck
Online Work Permit System for Fast Permit Processing
CHAPTER 12 - CYBER SECURITY AND FUTURE SKILLS (1) (1).pptx
Design an Analysis of Algorithms I-SECS-1021-03

Ljc conf open jdk betterrev bof

  • 1. Contributing to OpenJDK for the GitHub Generation Daniel Bryant (@danielbryantuk) Mani Sarkar (@theNeomatrix369) Edward Yue Shong Wong (@arkangelofkaos) London Java Community
  • 2. Tonight’s Agenda ∙ 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!
  • 3. 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, nashorn…) ∙ Has anyone built it locally? – On MS Windows…
  • 4. Building OpenJDK ∙ 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!)
  • 5. Test Coverage Report http://sticky.uwcs.co.uk/ojdk/coveragereport/ Courtesy of John Oliver (@johno_oliver)
  • 6. 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+!)
  • 7. 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?
  • 8. Not quite social coding… http://docs.joomla.org/Dvcs
  • 9. Is it anti-social??? http://www.rottenecards.com/card/32253/im-not-anti-social-im-se
  • 10. The problems… ∙ 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
  • 11. Our Goals ∙ “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
  • 13. 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!
  • 16. Future Work ∙ 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…
  • 17. 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 – https://bitbucket.org/adoptopenjdk/betterrev ∙ Join our Google Group: – https://groups.google.com/forum/#!forum/betterrev
  • 18. Please do get involved! ∙ Web Resources – http://openjdk.java.net/ – https://java.net/projects/adoptopenjdk/ – https://groups.google.com/forum/#!forum/adopt-https:// groups.google.com/forum/#!forum/adopt-openjdk ∙ Contact Us: – Daniel Bryant (@danielbryantuk) – Mani Sarkar (@theNeomatrix369) – Edward Yue Shong Wong (@arkangelofkaos)
  • 19. A shout out to the LJC and IBM… ∙ Thanks to other LJC members for supporting this – Martijn Verburg – Richard Warburton ∙ Big thanks also to IBM – Steve Poole