JDK 9 Outreach

Rory O‘Donnell OpenJDK Quality Group Lead February 4th, 2017 @ FOSDEM

Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Safe Harbor Statement The following is intended to outline our general product direcon. It is intended for informaon purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or funconality, and should not be relied upon in making purchasing decisions. The development, release, and ming of any features or funconality described for Oracle’s products remains at the sole discreon of Oracle.

Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 4 Program Agenda

1 OpenJDK Quality Outreach Update

2 Quality Outreach By The Numbers

3 JDK 9 Outreach Experiences

4 Where Do We Go Next?

Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 5 OpenJDK Quality Outreach Update

• Doubled the number of parcipang FOSS projects – 19 added in last 6 months – 104 Open Source Projects • Issues submied by parcipang projects up almost 50% Y/Y – ~ 37 issues logged in the last six months – ~ 72 issues submied in past year – ~185 issues submied overall so far

Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 6 104 Open Source Projects Ant Antlr ECHache Javassist Classworlds MongoDB- Morphia Batik Asciidoctorj JavaEWAH MongoDB - Driver Builds ElasticSearch AssertJ jBPM IBM Redhat Infispan Chemistry Findbugs Arquillian JBossForge Eclipse GEF Redhat Commons FXGraphics Byteman Jfreechart EHCache Redhat Tools VFS Gradle BlueJ JFreeSVG Golo Redhat Wildfly CXF GraphHopper Checkstyle JITWatch Hudson Scala Team,Lightbend HttpComponents Greenfoot Classworlds Jline Jogl-jogamp SonarQube Derby Griffon Spring Jmeter Groovy JOSM Junit 5 CruiseControl SLF4J Karaf Hadoop Qdox DataCleaner Thermostat Log4j Hazelcast Roaring Polygene Tomcat Lucene/Solr HeapStats RxJava LWJGL EasyMock Travis CI Maven ZXing Metamodel Eclipse HSQLDB Ratpack EJBCA Woodstox PDFBox Eclipse-AspectJ IntelliJ Objensis ISIS Xstream POI Eclipse GEF Jackson Optaplanner Proguard Xtend Tika Eclipse- JaCoCo oVirt engine PMD Xtext Eclipse-Vert.x Reflections

FXGraphics2D

Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Projects added in the last 6 months

• Apache Polygene • BlueJ • Qdox • Greenfoot • Thermostat • Jline • oVirt engine • Apache Karaf • SLF4J • Apache HpComponents • Javassist • RxJava • EHCache • Classworlds • Golo • Zxing • Eclipse GEF • JavaEWAH • Roaring

Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |

OpenJDK Quality Outreach Update Easy To Join • e-mail to quality-discuss@.java.net or [email protected] • Someone will get back to you with details ... – Soon!

Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 9 FOSS Bugs logged in the last year Issues submied Issues submied Issues submied in past year (72) in past year in past year

Apache Lucene 14 Apache POI 5 Apache Derby 1

IntelliJ IDEA 10 Jboss Wildfly 4 Apache Ant 1

Apache Tomcat 8 PDF Box 3 Pmd 1

JOSM Apache 8 2 Scala 1 Commons Apache Maven Apache JMeter 6 2

JaCoCo 6 Hibernate 2

Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 10 Issues Submied - By Priority since Nov’13.

Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 11 Issues Submied - By Component

Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 12 JDK 9 Outreach Experiences Increased Awareness & Parcipaon • 6x increase in JDK 9-related traffic in FOSS projects since 2014 Y/Y – 2014: 1015 messages on Markmail outside of OpenJDK mailing lists – 2015: 2545 messages – 2016: 6715 messages • 1 year before JDK 9 GA: more than 2x what it was for JDK 8 at same me – 2013: 2386 messages on Markmail outside of OpenJDK mailing lists

Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 13 JDK 9 Outreach Survey

• Targeng OpenJDK Quality Outreach parcipants • Ran for two weeks before JavaOne • Summary of results was posted on [email protected] – 37 responses (out of 77 parcipang projects at the me) – 89% had tried building their FOSS project with JDK 9 EA builds – 16% planned to support JDK 9 immediately from JDK 9 GA – 54% planned to support JDK 9 in their project within six months aer JDK 9 GA – 86% planned to support JDK 9 in their project within a year aer JDK 9 GA – More: hp://mail.openjdk.java.net/pipermail/discuss/2016-November/004089.html

Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 14 JDK 9 Outreach Example JDK-8163449 : Allow per protocol seng for URLConnecon defaultUseCaches

• Submied by Mark Thomas from the project – “The default behavior of URLConnecon is to use caching. This can cause file descriptor leaks / locked files when using JarURLConnecon.

My suggeson is that the constructor for JarURLConnecon be modified to change the default for useCaches to false for JarURLConnecon instances. ” • Discussed on [email protected] and [email protected] • Resolved by adding an API for this, while maintaining current behavior • @since 9: public stac get/setDefaultUseCaches in java.net.URLConnecon

Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 15 JDK 9 Outreach Example JDK-8165116: redirect funcon is not allowed even with enableExtensionFuncons

• Outreach team can oen help with simple problems – Use javac –release flag when cross compiling for older JDKs – See hp://openjdk.java.net/jeps/247 for details • If we can‘t help you directly – We might ask you to file an issue and let us know the ID – We might ask you to start a thread on an OpenJDK list

Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 16 JDK 9 Outreach Example JDK-8165116: redirect funcon is not allowed even with enableExtensionFuncons

• Submied by Stefan Bodewig from the Apache Ant project – “This is our use-case: The user wants to execute Ant's -Task from within Eclipse which has installed a SecurityManager and the transform requires an extension. How can we make this work? ” • Discussed on [email protected] • Resolved by – fixing a bug in the JDK, and – adjustments to code in Apache Ant

Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 17 JDK 9 Outreach Examples

Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 18 JDK 9 Outreach Examples

Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 19 Where Do We Go Next?

Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 20 Safe Harbor Statement The preceding is intended to outline our general product direcon. It is intended for informaon purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or funconality, and should not be relied upon in making purchasing decisions. The development, release, and ming of any features or funconality described for Oracle’s products remains at the sole discreon of Oracle.

Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 21 Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 22