Well, it’s been quite a year for everyone. We’ve all had to clear out the home office, stock up on toilet paper and eat lots of takeaway food to make up for the lack of dining out. As we look forward to 2021, I wanted to put aside the struggles of mask-wearing and not seeing loved ones, and share some positive things that have happened this year.

Microsoft

Since the jClarity acquisition last year, we have been working hard to create a Java at Microsoft team completely from scratch. Some of the key highlights:

Announcing an OpenJDK Windows ARM64 and macOS…


Summary

Apple has recently changed the requirements for applications to install on macOS 10.15 and above. The change requires developers to notarize the application before it gets shipped. Notarization involves submitting the application to Apple to be scanned and generates a JSON report with any issues. More information about notarization can be found here.

As a response to multiple complaints from developers, Apple has loosened the requirements until January 2020 but after that you need to comply with all of the original requirements.

How does this affect my runtime?

There are a few different scenarios around today so let’s walk through them…

You’ve never code signed your runtime before:

If you’ve always shipped your…


Some changes have been made to the way we codesign our macOS binaries

codesign verification of a hardened runtime

Summary

Apple has recently changed the requirements for applications to install on macOS 10.15 and above. The change requires developers to notarize the application before it gets shipped. Notarization involves submitting the application to Apple to be scanned and generates a JSON report with any issues. More information about notarization can be found here.

What’s changed?

We have enabled hardened runtime on our macOS binaries which will allow them to be bundled into applications and pass Apple’s Notarization tests. OpenJDK 11+ will work out of the box, OpenJDK8 needs a…


You asked and we listened! Official RPM and DEB files are now ready!

full list of currently supported adoptopenjdk versions

AdoptOpenJDK Package Names

The following name schema is being used:

JDK

adoptopenjdk-<version>-<jvm>
e.g adoptopenjdk-8-hotspot or adoptopenjdk-11-openj9

JRE

adoptopenjdk-<version>-<jvm>-jre
e.g adoptopenjdk-8-hotspot-jre or adoptopenjdk-11-openj9-jre

For the full matrix of supported platforms read the documentation here.

Debian/Ubuntu Instructions

1. Import the official AdoptOpenJDK GPG key

wget -qO - https://adoptopenjdk.jfrog.io/adoptopenjdk/api/gpg/key/public | sudo apt-key add -

2. Import the AdoptOpenJDK DEB repo using add-apt-repository. If you get a command not found error then try apt-get install -y software-properties-common first.

sudo add-apt-repository --yes https://adoptopenjdk.jfrog.io/adoptopenjdk/deb/

3. Install the openjdk version you require

apt-get update # update if you haven't already
apt-get install…


Do you want to sponsor the AdoptOpenJDK project?

Current AdoptOpenJDK sponsors, April 2019 (https://adoptopenjdk.net/sponsors)

Thank you to our sponsors

Before we get started I just want to say a massive thank you to all the incredible companies that already sponsor the AdoptOpenJDK project! Without your generous donations, the project simply wouldn’t be able to run and continue to grow at the rate that it already does.

Why should you sponsor AdoptOpenJDK?

We believe that OpenJDK™ / Java™ is part of the public good. AdoptOpenJDK’s mission is to produce professionally tested OpenJDK™ binaries for as many platforms, architectures, and versions as possible. …


There have been many milestones reached at AdoptOpenJDK

20 Million Downloads

First and foremost AdoptOpenJDK has officially hit 20 million downloads! Steve Wallin was the first to tweet about it here:

With the recent launch of the AdoptOpenJDK Download Dashboard, it has become easier than ever to track the downloads for each release. It was only on the 14th March that the project hit the 15 million downloads milestone so to get another 5 million downloads in under a month is a true testament to the rapid growth of the project.

https://dash.adoptopenjdk.net — 8th April 2019

OpenJDK 12

Yes, that’s right! The first public OpenJDK™ 12 release came out…


As a result of a recent change in our build-scripts, the directory layout of our macOS tarballs has changed. Many developers had requested that we ship our binaries in the native macOS binary layout rather than our traditional JDK layout.

Why the change?

There are several good reasons to change the directory layout to match most of the other Java implementations. The main reason that we have chosen to do so is to allow our Homebrew recipes to be merged into core making it much easier for developers to easily download our binaries!

What does this mean for me?

Essentially the directory tree has changed, previously when you extracted…


What a crazy last week it has been for everyone at AdoptOpenJDK. We are very excited to have begun adding OpenJ9 builds to our website! The interest has been overwhelming and it was incredible to see our website reach well over 250,000 hits after a small thread on Reddit quickly became much more! The picture below from our Cloudflare analytics tool shows very clearly when the post was added to Reddit and the views kept pouring in for the rest of the day.

Cloudflare traffic stats

Platform Support

We currently only have builds for x86, s390x and ppc64le Linux but we plan to add Windows, macOS and many more as soon as the OpenJ9 team is ready. The easiest way to download them is at adoptopenjdk.net.

To read more about the advantages of using OpenJ9 over Hotspot read the OpenJ9 FAQ here.


Adding Java to zOS

All Jenkins build agents require Java to be on the machine to run the Slave agent. Normally an OpenJDK binary would be recommended to run the slave agent but there is no official zOS OpenJDK binary so I would recommend fetching IBM’s Java from here.

Adding the Machine to Jenkins

Head over to https://<jenkins-server>/computer/new, specify a node name and tick permanent agent.

Once you have reached the machine configuration page specify the Launch method as Launch slave agents via SSH. Set the host IP Address, Credentials and Host Key Verification Strategy and then click advanced.


Any project with more than a handful of machines will appreciate how much work is required to maintain them and ensure that access is kept to the minimum number of people. When we started creating our build farm we quickly realised how time-consuming this could be and so we wanted to find a neat solution to save us some time. One of the biggest issues that we found was giving people temporary access to machines. We would often find that the access was never revoked and this therefore became an administrators nightmare.

Whilst searching on the internet I came across…

George Adams

Senior Program Manager @Microsoft. Chair of TSC @adoptopenjdk . Views are my own.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store