Skip to main content
This revision made March 28, 2014 09:45, by Martijn Verburg


This section covers the myriad ways in which you can contribute to the Adopt OpenJDK program. As always the latest coding projects are on our BitBucket and GitHub repos.

Starter Level

Understand OpenJDK

There's a lot to learn about the technology and the open source project

Build OpenJDK

Build Java itself!

Testing (Test Fests)

Improve the quality of Java!

  • Test Fests - Hackdays focusing on improving the quality and quantity of OpenJDK tests.
  • Testing Java - Co-ordinating projects to use early builds of Java 8/9

Betterrev

Betterrev - A new website and workflow to improve patch submission process for OpenJDK. Includes:

  1. Pull Request mechanism for patch submission
  2. Build Farm
  3. Continous Integration with JTreg regression tests
  4. Static code analysis
  5. Patch creation
  6. License checking
  7. Patch submission
  8. And more

Javacountdown

Javacountdown - A JavaEE 6/7 and HTML 5 website to track global usage of Java in the Browser and encourage its demise.

Javadoc Updater Tool

Evangelism

  • Ux overhaul of the wiki pages

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 Adopt OpenJDK mailing list) which project you should be targeting for your patch. Note that this may not necessarily be the OpenJDK 9 mainline project.

You should also have installed jtreg as that will be needed for testing your patch.

Java 9

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

Javadoc overhaul

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

Coroutines

  • Investigate the experimental patch by Lukas Stadler and get it up to date with OpenJDK 9 - 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

Java Microbenchmark Framework

Giving feedback, adding tutorials etc for the Java Microbenchmark framework

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

Java 8

Java 8 has now been released, here are the projects we ran to support it. You can still find useful tutorials and material there!

Lambdas

Java 8 will include Lambdas (aka closures), bringing functional programming capabilities to Java

Nashorn (Javascript in Java 8+)

  • For more details see the page on Nashorn

PermGen Removal

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

Back to AdoptOpenJDK

Difference compared to previous revision
<span>Improve the quality of Java! * [[Test Fests]] - Hackdays focusing on improving the quality and quantity of OpenJDK tests. * [[Testing Java 8<span style="text-decoration:underline;color:green"> | Testing Java</span>__TOC__ This section covers the myriad ways in which you can contribute to the Adopt OpenJDK program. As always the latest coding projects are on our [https://bitbucket.org/adoptopenjdk/ BitBucket] and [https://github.com/AdoptOpenJDK/ GitHub] repos. ... Improve the quality of Java! * [[Test Fests]] - Hackdays focusing on improving the quality and quantity of OpenJDK tests. * [[Testing Java 8]] - Co-ordinating projects to use early builds of Java 8<span style="text-decoration:line-through;color:red"> == Lambdas == Java 8 will include Lambdas (aka closures), bringing functional programming capabilities to Java * [https:</span>/<span style="text-decoration:line-through;color:red">/github.com/AdoptOpenJDK/lambda-tutorial Lambda Tutorials] - Hands on, test driven tutorials for Java 8 * [http://www.meetup.com/Londonjavacommunity/events/64</span>9<span style="text-decoration:line-through;color:red">39182 Lambdas Hackday 1] and [http://www.meetup.com/Londonjavacommunity/events/70388732 Lambdas Hackday 2] - Hackdays exploring Lambdas and the new Collections APIs</span> <span style="text-decoration:line-through;color:red">* Also, see JSR 335 at the [http://adoptajsr.java.net Adopt a JSR] program</span><span style="text-decoration:line-through;color:red"> </span>]] - Co-ordinating projects to use early builds of Java 8/9 == Betterrev == ... == Javacountdown == [https://github.com/AdoptOpenJDK/Javacountdown Javacountdown] - A JavaEE 6<span style="text-decoration:underline;color:green">/7</span>== Betterrev == [https://bitbucket.org/adoptopenjdk/betterrev Betterrev] - A new website and workflow to improve patch submission process for OpenJDK. Includes: ... == Evangelism == * Ux overhaul of the [https://wikis.oracle.com/display/OpenJDK/Home|OpenJDK wiki] pages<span style="text-decoration:line-through;color:red">* [[PermGen Removal]]</span> <span style="text-decoration:line-through;color:red"> </span> and HTML 5 website to track global usage of Java in the Browser and encourage its demise. == Javadoc Updater Tool == ... 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 Adopt<span style="text-decoration:underline;color:green"> </span>== Bug fixes and small enhancements == There are some [[General Instructions for Small Changes]] which apply to most of the sub projects below. ... 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 <span style="text-decoration:line-through;color:red">8</span>OpenJDK mailing list) which project you should be targeting for your patch. Note that this may not necessarily be the OpenJDK <span style="text-decoration:underline;color:green">9</span> mainline project. You should also have [http://java.net/projects/adoptopenjdk/pages/InstallJtreg installed jtreg] as that will be needed for testing your patch. =<span style="text-decoration:underline;color:green"> Java 9 </span>=<span style="text-decoration:underline;color:green"> ==</span> mainline project. You should also have [http://java.net/projects/adoptopenjdk/pages/InstallJtreg installed jtreg] as that will be needed for testing your patch. ... * Jigsaw - TBA * Project Penrose - Lead by Neil Bartlett == <span style="text-decoration:line-through;color:red">Nashorn (</span>Java<span style="text-decoration:line-through;color:red">script in Java 8+) == * For more </span>d<span style="text-decoration:line-through;color:red">etails see the page </span>o<span style="text-decoration:line-through;color:red">n [[Nashorn]] == Other JDK Enhan</span>c<span style="text-decoration:line-through;color:red">ement</span> <span style="text-decoration:line-through;color:red">Pr</span>o<span style="text-decoration:line-through;color:red">posals (JEPs) == Read Alex Blewitt's [http://www.infoq.com/news/2011/11/jdk-jeps blog post] for some background information on the JEP process. Some JEPs can be classed as intermediate le</span>ve<span style="text-decoration:line-through;color:red">l p</span>r<span style="text-decoration:line-through;color:red">oposals: * TBA = Advanced Level = * Finding and eliminating memory leaks. JDK provides good tools for t</span>ha<span style="text-decoration:line-through;color:red">t, 3rd-party profilers are also helpf</span>ul<span style="text-decoration:line-through;color:red"> *</span> <span style="text-decoration:line-through;color:red">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. </span>==<span style="text-decoration:line-through;color:red"> Javadoc overhaul ==</span> See [[Javadoc]] for details - Lead by [https://www.twitter.com/#!/kittylyst Ben Evans] and [https://www.twitter.com/#!/richardwarburto Richard Warburton] ... == Coroutines == * Investigate the experimental patch by Lukas Stadler and get it up to date with OpenJDK <span style="text-decoration:line-through;color:red">8</span> Jigsaw and OSGi == There are two parts to this. Project Jigsaw itself and project Penrose, a splinter project investigating OSGi/Jigsaw interaction ... == Coroutines == * Investigate the experimental patch by Lukas Stadler and get it up to date with OpenJDK <span style="text-decoration:underline;color:green">9</span> - 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 == ... * TBA =<span style="text-decoration:underline;color:green">Java</span> <span style="text-decoration:underline;color:green">8= Java 8 has now been released, here are the projects we ran to support it. You can still find useful tutorials and material there! == Lambdas == Java 8 will include Lambdas (aka closures), bringing functional programming capabilities to Java * [https://github.com/AdoptOpenJDK/lambda-tutorial Lambda Tutorials] - Hands on, test driven tutorials for Java 8 * [http://www.meetup.com/Londonjavacommunity/events/64939182 Lambdas Hackday 1] and [http://www.meetup.com/Londonjavacommunity/events/70388732 Lambdas Hackday 2] - Hackdays exploring Lambdas and the new Collections APIs * Also, see JSR 335 at the [http://adoptajsr.java.net Adopt a JSR] program == Nashorn (Javascript in Java 8+) == * For more details see the page on [[Nashorn]] == PermGen Removal == * [[PermGen Removal]] = </span>Misc Projects = * Preparation for Tuples - TBA - Lead by [https://www.twitter.com/#!/mikeb2701 Mike Barker] * Value Types - TBA - See John Rose's [https://blogs.oracle.com/jrose/entry/value_types_in_the_vm Value Types Blog Post] ... * Value Types - TBA - See John Rose's [https://blogs.oracle.com/jrose/entry/value_types_in_the_vm Value Types Blog Post] * Some rough goals are listed here: [[AdoptOpenJDKGoals]] =<span style="text-decoration:underline;color:green"> </span>Delayed Projects<span style="text-decoration:underline;color:green"> </span>= * 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 Back to [[AdoptOpenJDK]]<span>
 
 
Close
loading
Please Confirm
Close