The AdoptOpenJDK project has recently announced that its build farm is now fully operational and is producing community OpenJDK binaries as free software. Developers wanting to build and run Java applications using an OpenJDK Java Development Kit (JDK) or Java Runtime Environment (JRE) have a wide choice of OpenJDK vendors they can go to, including Oracle, Red Hat, Azul and others. Into that mix we now also have AdoptOpenJDK as a community vendor of OpenJDK binaries.
From the announcement:
The AdoptOpenJDK build farm is producing OpenJDK binaries for all platforms (ARM32/64, z/os, AIX, Linux x86, Linux s390, Mac, Windows etc) that are professionally tested (OpenJDK tests, test suites from Scala, Tomcat et al, performance tests and most importantly the TCK itself).
InfoQ caught up with Martijn Verburg, leader of the London Java Community, co-founder of AdoptOpenJDK and CEO of jClarity in order to find out more.
InfoQ: What is the TCK? Or is it JCK? What do those terms mean, and what's the significance of it? Why is the London Java Community (LJC) user group getting access to it significant?
Martijn Verburg: The Java Compatibility Kit (JCK) is synonymous with Technical Compatibility Kit (TCK) for Java SE; they're effectively different names for the same thing.
The JCK allows organizations who build OpenJDK derivatives to then run those OpenJDK derivatives against the official test suite and make sure that the binary produced is compatible to the Java standard.
Another way of looking at it, is that the AdoptOpenJDK release binaries will have a quality mark so that organizations can confidently use those binaries in production.
The LJC getting access is significant as it allows the AdoptOpenJDK build farm to produce binaries for Java 8+ that the community can trust as being of certain quality level.
InfoQ: What does the announcement mean for developers? What should devs look for when selecting a JDK to use?
Verburg: Developers will have a wide choice of OpenJDK vendors they can go to including Oracle, Red Hat, Azul, and others. Into that mix we now also have AdoptOpenJDK as a community vendor of OpenJDK binaries.
For production purposes developers should *always* use an OpenJDK binary that has actually passed the JCK. They may feel may feel comfortable using non JCK'd binaries in development and test, but it's not a risk we would ever recommend for production.
InfoQ: What is the AdoptOpenJDK project? How does it relate to the build farm that's discussed in the announcement - what is it? Where did it come from? Who is participating in it?
Verburg: The project started as an advocacy movement to onboard new developers into OpenJDK and we still do this today. A standard activity for new developers was to build OpenJDK (non trivial on certain platform and version combinations) and folks quickly asked for a rudimentary build farm to help them.
The LJC therefore started one and it then really took off after announcement of the new six month release cycle and various vendor announcements of their support plans for this new release cycle which left gaps for many platform / version combinations.
After the initial proof of concept was built, engineers from various OpenJDK vendors such as IBM, Red Hat, SAP, Oracle etc all started to join in as they saw the value in an common, open, audit-able infrastructure as code build farm for all. "No-one competes on build farms" has been a common refrain.
InfoQ: Who is the project run by? How do developers get involved?
Verburg: The build farm is legally speaking run by the London Java Community (a non-profit Java User Group) and we're forming a Technical Steering Committee (TSC) which will have representation from all of the major players in the OpenJDK community.
There's now over 200 folks on the project and we're always looking for more help. People can sign up for our Slack channel and they should read the steering committee document as a starting point.
InfoQ: What is your view of Java 10? What does it bring to developers?
Verburg: the new "var", and the extra type inference it brings to the platform, is a great new feature and will help reduce the verbosity of some of the Java source code we write today. However, a word of caution, developers should definitely follow the recommended style guide for this!
Much better Docker container support and some performance enhancements, such as parallel full GC's for G1, are very welcome to those of us who deploy and run JVMs at scale.
InfoQ: Any final comments?
Verburg: It's a very exciting time for Java, the race is on to make it a world class VM for container / serverless / cloud while still providing the programming idioms that millions of developers are productive with today!
I'm really happy that Java is moving faster, but only time will tell if a six month release cycle is something that the ecosystem will get comfortable with. Wearing my jClarity hat, we've only seen < 10% of our customers adopt Java 9 / 10, with most taking a more conservative approach and waiting for 11.
For further details about AdoptOpenJDK, please consult the project website and the Technical Steering Committee page.