Download - JavaOne 2013 "Using Java to Build Java: Betterrev" BOF Session

Transcript
Page 1: JavaOne 2013 "Using Java to Build Java: Betterrev" BOF Session

Using Java to Build JavaRevealing the Power of Open Java Technologies

Daniel Bryant, Tai-Dev Ltd (@taidevcouk)

Steve Poole, IBM (@spoole167)

London Java Community

Page 2: JavaOne 2013 "Using Java to Build Java: Betterrev" BOF Session

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!

Page 3: JavaOne 2013 "Using Java to Build Java: Betterrev" BOF Session

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?

Page 4: JavaOne 2013 "Using Java to Build Java: Betterrev" BOF Session

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!)

Page 5: JavaOne 2013 "Using Java to Build Java: Betterrev" BOF Session

Test Coverage Report

http://sticky.uwcs.co.uk/ojdk/coveragereport/Courtesy of Dr John Oliver

Page 6: JavaOne 2013 "Using Java to Build Java: Betterrev" BOF Session

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+!)

Page 7: JavaOne 2013 "Using Java to Build Java: Betterrev" BOF Session

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?

Page 8: JavaOne 2013 "Using Java to Build Java: Betterrev" BOF Session

Not quite social coding…

http://docs.joomla.org/Dvcs

Page 9: JavaOne 2013 "Using Java to Build Java: Betterrev" BOF Session

Is it anti-social???

http://www.rottenecards.com/card/32253/im-not-anti-social-im-se

Page 10: JavaOne 2013 "Using Java to Build Java: Betterrev" BOF Session

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

Page 11: JavaOne 2013 "Using Java to Build Java: Betterrev" BOF Session

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

Page 12: JavaOne 2013 "Using Java to Build Java: Betterrev" BOF Session

Architecture – Grand Vision

Page 13: JavaOne 2013 "Using Java to Build Java: Betterrev" BOF Session

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!

Page 14: JavaOne 2013 "Using Java to Build Java: Betterrev" BOF Session

Opening page

Page 15: JavaOne 2013 "Using Java to Build Java: Betterrev" BOF Session

Pull Review details

Page 16: JavaOne 2013 "Using Java to Build Java: Betterrev" BOF Session

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…

Page 17: JavaOne 2013 "Using Java to Build Java: Betterrev" BOF Session

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

Page 18: JavaOne 2013 "Using Java to Build Java: Betterrev" BOF Session

Please do get involved!

Web Resources– http://openjdk.java.net/

– https://java.net/projects/adoptopenjdk/

– https://groups.google.com/forum/#!forum/adopt-openjdk

– https://twitter.com/OpenJDK

Contact Us:– Daniel Bryant, Tai-Dev Ltd (@taidevcouk)

– Steve Poole, IBM (@spoole167)

Page 19: JavaOne 2013 "Using Java to Build Java: Betterrev" BOF Session

A shout out to the LJC and IBM…

Thanks to the LJC for supporting this– Martijn Verburg

– Richard Warburton

– Mani Sarkar

– Kaushal Singh

– Edward Wong

Thanks also to IBM