DISCOAPI
Gerrit Grunwald | Senior Developer Advocate | foojay.io
ABOUTME.
Discover distributions
of OpenJDK as a
service…
Example…
You need


JDK 11.0.8
Question
1.
Which
distribution…?
Question
2.
Does the distribution
support 11.0.8…?
Question
3.
Does the distribution
support your OS…?
Question
4.
Where to get
it from…?
Question
5.
Are you allowed
to use it…?
That who have the choice...
๏Adopt OpenJDK


๏Corretto


๏Dragonwell


๏(GraalVM CE)


๏Liberica


๏(Liberica Native)


๏(Mandrel)


๏Microsoft


๏OJDK Build
๏Open Logic


๏Oracle


๏Oracle OpenJDK


๏RedHat


๏SAP Machine


๏Temurin


๏Trava


๏Zulu


๏Zulu Prime
The situation...
๏We have many different distributions


๏Not all distributions support all versions


๏Most distributions are free but some are not


๏Some distributions have special features


๏Every distribution has it’s own way to get it
The Idea
What about having a
General API that…
Serves information about…
๏Distributions


๏Versions


๏Platforms


๏Operating Systems


๏Architectures
๏Archive types


๏Release status


๏Terms of support


๏Package types


๏Signatures
DISCOAPI
REST
Endpoints
https://api.foojay.io
๏/disco/v2.0/major_versions


๏/disco/v2.0/distributions


๏/disco/v2.0/packages


๏/disco/v2.0/packages/jdks


๏/disco/v2.0/packages/jres


๏/disco/v2.0/packages/yaml


๏/disco/v2.0/ephemeral_ids
https://api.foojay.io/disco/v2.0/
major_versions
/major_versions?
๏ea=true (Early Access)


๏ga=true (General Availability)


๏maintained=true* (Actively maintained, at the moment 7, 8, 11, 13, 15, 16, 17-ea, 18-ea)
*will change over time
{


"result": [


{


"major_version": 17,


"term_of_support": "LTS",


"maintained": true,


"versions": [


"17-ea"


]


},


{


"major_version": 16,


"term_of_support": "STS",


"maintained": true,


"versions": [


"16-ea"


]


},


{


"major_version": 15,


"term_of_support": "MTS",


"maintained": true,


"versions": [


"15.0.1",


"15.0.1-ea",


"15",


"15-ea"


]


},


. . .
Returns a list of all
major versions
including early access
versions in a JSON
format
/major_versions
/major_versions
๏/latest_sts


๏/latest_mts


๏/latest_lts


๏/latest_ga


๏/latest_ea


๏/MAJOR_VERSION (e.g. 13)


๏/MAJOR_VERSION/ea (e.g. 13/ea)
https://api.foojay.io/disco/v2.0/
distributions
/distributions
๏/NAME of distribution (e.g. /zulu)
{


"result": [


{


"name": "Zulu",


"api_parameter": "zulu",


"hash_algorithm": "",


"hash_uri": "",


"signature_type": "",


"signature_algorithm": "",


"signature_uri": "",


"versions": [


"17-ea",


"16-ea",


"15.0.1",


"15",


"15-ea",


"14.0.2",


"14.0.1",


"14",


"14-ea",


"13.0.5.1",


"13.0.5",


"13.0.4",


"13.0.3",


"13.0.2",


"13.0.1",


"13",


"12.0.2",


"12.0.1",


"12",


"11.0.9.1",


"11.0.9",


"11.0.8",


"11.0.7",


"11.0.6",


...
Returns info about a
speci
fi
c distribution
including all it’s general
availability and early
access updates in
JSON format
/distributions/zulu
https://api.foojay.io/disco/v2.0/
packages
/packages?
๏version


๏from_version


๏to_version


๏version_by_de
fi
nition


๏distro


๏architecture


๏archive_type


๏package_type
๏operating_system


๏libc_type


๏release_status


๏term_of_support


๏bitness


๏javafx_bundled


๏directly_downloadable*


๏latest
directly_downloadable*
๏Oracle JDK


๏RedHat JDK
directly_downloadable => false
We only return the link to their download page !!!
{


"result": [


{


"id": "43afdc6785055999f3104208d4b9d703",


"archive_type": "tar.gz",


"distribution": "zulu",


"major_version": 16,


"java_version": "16.0.1",


"distribution_version": "16.30.15",


"latest_build_available": true,


"release_status": "ga",


"term_of_support": "sts",


"operating_system": "linux",


"lib_c_type": "musl",


"architecture": "x64",


"package_type": "jdk",


"javafx_bundled": false,


"directly_downloadable": true,


"filename": "zulu16.30.15-ca-jdk16.0.1-linux_musl_x64.tar.gz",


"ephemeral_id": "c4ffb7a327eebd365750ab7ad6b585bdaf224e9a",


"links": {


"pkg_info_uri": "https://api.foojay.io/disco/v2.0/ephemeral_ids/
c4ffb7a327eebd365750ab7ad6b585bdaf224e9a"


},


"free_use_in_production": true,


"feature": []


},


{


...


}


],


"message": "10 package(s) found"


}
Returns a list of all
packages in JSON
format
/packages
OpenSource
Source
https://github.com/foojay2020/discoapi
Examples...
I need the latest JDK,


what is avaiable ?
Latest JDK available
[


{


"id": "f5f69da2537cfbf7e6f26e484410b8d1",


"archive_type": "tar.gz",


"distribution": "zulu",


"major_version": 15,


"java_version": "15.0.1",


"distribution_version": "15.28.51.0",


"latest_build_available": true,


"release_status": "ga",


"term_of_support": "mts",


"operating_system": "linux",


"lib_c_type": "musl",


"architecture": "x64",


"package_type": "jdk",


"javafx_bundled": false,


"directly_downloadable": true,


"filename": "zulu15.28.51-ca-jdk15.0.1-linux_musl_x64.tar.gz",


"ephemeral_id": "339f5f69da2537cfbf7e6f26e484410b8d11610452685"


},


{


"id": "aa4851ec455afb6efce8e4bd0a18ee63",


"archive_type": "zip",


"distribution": "zulu",


"major_version": 15,


. . .
Returns a list of all packages
found that contain a JDK and
have the latest available
version (here 15.0.1)
https://api.foojay.io/disco/v2.0/packages?package_type=jdk&latest=available
What versions are
available in
distribution XYZ ?
Versions available in distribution
{


"name": "Zulu",


"api_parameter": "zulu",


"versions": [


"17-ea",


"16-ea",


"15.0.1",


"15",


"15-ea",


"14.0.2",


"14.0.1",


"14",


"14-ea",


"13.0.5.1",


"13.0.5",


"13.0.4",


"13.0.3",


"13.0.2",


"13.0.1",


"13",


"12.0.2",


"12.0.1",


"12",


"11.0.9.1",


"11.0.9",


. . .
Returns a list of versions in
the Zulu distribution
including all it’s general
availability and early access
updates in JSON format
https://api.foojay.io/disco/v2.0/distributions/zulu
Who has


version


11.0.9.1 ?
Who has version 11.0.9.1
[


{


"id": "91b37ae0ab88863ba65845b2e1ba5a5d",


"archive_type": "rpm",


"distribution": "zulu",


"major_version": 11,


"java_version": "11.0.9.1",


"distribution_version": "11.43.55.0",


"latest_build_available": true,


"release_status": "ga",


"term_of_support": "lts",


"operating_system": "linux",


"lib_c_type": "glibc",


"architecture": "x86",


"package_type": "jre",


"javafx_bundled": false,


"directly_downloadable": true,


"filename": "zulu11.43.55-ca-jre11.0.9.1-linux.i686.rpm",


"ephemeral_id": "34091b37ae0ab88863ba65845b2e1ba5a5d1610452754"


},


{


"id": "f365a9db0f0a6954b0d4b53e5c42f797",


"archive_type": "zip",


"distribution": "zulu",


"major_version": 11,


. . .
Returns a list of all packages
that have the version number
11.0.9.1 from all distributions
https://api.foojay.io/disco/v2.0/packages?version=11.0.9.1
The latest LTS JDK
for Mac OS


incl. JavaFX ?
Latest LTS JDK for Mac incl. FX
[


{


"id": "75f55e22ca634f0a39bc88fcff49b9c1",


"archive_type": "tar.gz",


"distribution": "zulu",


"major_version": 11,


"java_version": "11.0.9.1",


"distribution_version": "11.43.55.0",


"latest_build_available": true,


"release_status": "ga",


"term_of_support": "lts",


"operating_system": "macos",


"lib_c_type": "libc",


"architecture": "x64",


"package_type": "jdk",


"javafx_bundled": true,


"directly_downloadable": true,


"filename": "zulu11.43.55-ca-fx-jdk11.0.9.1-macosx_x64.tar.gz",


"ephemeral_id": "41175f55e22ca634f0a39bc88fcff49b9c11610454032"


},


{


"id": "3edab9b6f6661cc5a64ea19e439959e6",


"archive_type": "dmg",


"distribution": "zulu",


"major_version": 11,


. . .
Returns a list of all packages
that have the latest available
long term stable version (here
11.0.9.1) for Mac OS incl.
JavaFX from all distributions
https://api.foojay.io/disco/v2.0/packages?
version_by_de
fi
nition=latest_lts&package_type=jdk&operating_system=macos&javafx_bundled=true&latest=per_version
Is there an update
available for 11.0.8 ?
Update available for 11.0.8
{


"major_version": 11,


"term_of_support": "LTS",


"maintained": true,


"versions": [


"11.0.9.1",


"11.0.9",


"11.0.8",


"11.0.7",


"11.0.6",


"11.0.5",


"11.0.4",


"11.0.3",


"11.0.2",


"11.0.1",


"11"


]


}
Returns a list of all general
availability updates of the
major version 11.
https://api.foojay.io/disco/v2.0/major_versions/11
JDK 1.8.0_275 for
Windows as msi
JDK 1.8.0_275 for Windows as msi
[


{


"id": "23310311f36f9092d8db58880dc55ec0",


"archive_type": "msi",


"distribution": "zulu",


"major_version": 8,


"java_version": "8.0.275",


"distribution_version": "8.50.0.51",


"latest_build_available": true,


"release_status": "ga",


"term_of_support": "lts",


"operating_system": "windows",


"lib_c_type": "c_std_lib",


"architecture": "x86",


"package_type": "jdk",


"javafx_bundled": false,


"directly_downloadable": true,


"filename": "zulu8.50.0.51-ca-jdk8.0.275-win_i686.msi",


"ephemeral_id": "32923310311f36f9092d8db58880dc55ec01610454148"


},


{


"id": "949a657c47c2b71d58aebc0b022d4688",


"archive_type": "msi",


"distribution": "zulu",


"major_version": 8,


. . .
Returns a list of all packages
with the version 8.0.275 for
Windows with an archive type
of msi from all distributions
https://api.foojay.io/disco/v2.0/packages?
package_type=jdk&version=1.8.0_275&operating_system=windows&archive_type=msi
IDE plugins
Intellij


plugin
The plugin let you discover and download a
JDK to your local machine.


To install it, search for „DiscoIdea“ on the
Intellij Marketplace.
A plugin to discover/download a JDK
Intellij Plugin
Eclipse


plugin
The plugin let you discover and download a
JDK to your local machine.


To install it, search for „DiscoEclipse“ on the
Eclipse Marketplace.
A plugin to discover/download a JDK
Eclipse Plugin
NetBeans
plugin
NetBeans plugin
NetBeans plugin
NetBeans plugin
NetBeans plugin
NetBeans plugin
Visual Studio


Code


plugin
The plugin let you discover and
download a JDK to your local machine.


To install it, search for „DiscoVSC“ on
the Visual Studio Code Marketplace.
A plugin to discover/download a JDK
Visual Studio Code Plugin
Browser plugins
Chrome
extension
The extension let you discover and
download a JDK to your local machine.


To install it, search for „DiscoChrome“
on the chrome web store.
An extension to discover/download a JDK
Chrome Extension
Chrome Extension
Firefox


add-on
The extension let you discover and
download a JDK to your local machine.


To install it, search for „DiscoFox“ on
the
fi
refox addons page.
An extension to discover/download a JDK
Firefox Add-on
Edge


extension
The extension let you discover and
download a JDK to your local machine.


To install it, search for „DiscoEdge“ on
the Edge plugins page.
An extension to discover/download a JDK
Edge Extension
Safari
extension
The extension let you discover and
download a JDK to your local machine.


To install it, search for „DiscoSafari“ on
the Mac app store.
An extension to discover/download a JDK
Safari Extension
Other plugins
Website


plugin
The snippet let you discover and download
a JDK to your local machine.


Find an instruction on how to install it for
example on blogger at Harmonic Code
A html snippet to discover/download a JDK
Website Plugin
Shell


scripts
$_
Scripts
๏disco-distributions.sh


๏disco-major-versions.sh


๏disco-packages.sh
jq needs to be installed!!!
disco-distribution.sh
################################


# #


# foojay jdk discovery api #


# #


# disco-distributions.sh #


# #


################################


Be aware that you need to have jq installed


Script parameters:


--version : Returns a list of distributions that support the given version


--name : Returns a distribution with the given name if available


--help : Shows this info


disco-distributions.sh


disco-distributions.sh --version 13.0.5.1


disco-releases.sh --help
Enables you to call the
distributions endpoint of the
disco api and retrieve results
in json format
bash disco-distributions.sh --help
disco-major-versions.sh
################################


# #


# foojay jdk discovery api #


# #


# disco-major-versions.sh #


# #


################################


Be aware that you need to have jq installed


Script parameters:


--help : Shows this info


--major-version : Major Version e.g. 1, 5, 9, 11, 18


disco-major-versions.sh


disco-major-versions.sh --maintained true --ea true --ga true


disco-major-versions.sh --ea true


disco-major-versions.sh --ga true


disco-major-versions.sh --version 11 --ea true


disco-major-versions.sh --version 11 --ga true


disco-major-verions.sh --help
Enables you to call the major
versions endpoint of the disco
api and retrieve results in json
format
bash disco-major-versions.sh --help
disco-packages.sh
################################


# #


# foojay jdk discovery api #


# #


# disco-packages.sh #


# #


################################


Be aware that you need to have jq and wget installed


Script parameters:


--help : Shows this info


--version : Version (mandatory or version by definition) e.g. 1.8.0_265 or 11 or 13.0.5.1


--version_by_definition : Version by definition (mandatory if no version) e.g. latest, latest_sts, latest_mts,
latest_lts


--distro : Distribution e.g. aoj, aoj_openj9, dragonwell, corretto, liberica,
oracle_open_jdk, redhat, sap_machine, zulu


--architecture : Architecture e.g. aarch64, arm, arm64, mips, ppc, ppc64, ppc64le,
riscv64, s390x, sparc, sparcv9, x64, x86, amd64


--archive_type : File extension e.g. cab, deb, dmg, exe, msi, pkg, rpm, tar, zip


--package_type : Package type e.g. jre, jdk


--operating_system : Operating System (mandatory) e.g. windows, macos, linux


--libc_type : Type of libc e.g. glibc, libc, musl, c_std_lib


--release_status : Release status e.g. ea, ga


--term_of_support : Term of support e.g. sts, mts, lts


--bitness : Bitness e.g. 32, 64


--javafx_bundled : With JavaFX e.g. true, false


--directly_downloadable : Directly downloadable e.g. true, false


--latest : Latest e.g. overall, per_distro


--dest : Destination e.g. /Users/HanSolo


Usage example:


disco-packages.sh --dest /Users/Hansolo --operating_system windows --version 1.8.0_265 --distro zulu --package_type jdk --
architecture x64 --archive_type zip --release_status ga
Enables you to call the
packages endpoint of the
disco api and retrieve results
in json format
bash disco-packages.sh --help
Source
https://github.com/foojay2020/discoscripts
</>
Other


tools
JDK Butler
The tools makes use of the
Disco API to let you discover
JDK’s and download them to
your local machine.
A tool that let you discover JDK’s
JDK Butler
Get it from github
https://github.com/HanSolo/jdkbutler/releases
JDK Mon
The tool scans every 3h a
folder that you can de
fi
ne for
installed JDK’s.


It checks for available updates
using the Disco API and
offers the download of the
update.
A tool that monitors all your installed JDK’s
JDK Mon
Get it from github
https://github.com/HanSolo/JDKMon/releases
github actions
When using github actions to
build your project you can use
setup-java@v1.


This will use Zulu as JDK to
build and run.
setup-java@v1
github actions
...


steps:


- uses: actions/checkout@v1


- name: Set up JDK 11


uses: actions/setup-java@v1


with:


java-package: jdk


java-version: 11.0.10


- name: Build with gradle


run: ./gradlew build


...
When using github actions to
build your project you can use
setup-java@v2.


No default and you only can
choose between adopt,
adopt-openj9 and zulu.
setup-java@v2
github actions
...


steps:


- uses: actions/checkout@v1


- name: Set up JDK 11


uses: actions/setup-java@v2


with:


java-package: jdk


java-version: '11.0.10'


distribution: 'zulu'


- name: Build with gradle


run: ./gradlew build


...
Make use of foojay’s setup-
java@disco to build your code
using the JDK of your choice.
If not de
fi
ned it will default to
Zulu (as it was in setup-java@v1.0).
Use foojay2020/setup-java@disco
github actions
...


steps:


- uses: actions/checkout@v1


- name: Set up JDK 11 Corretto


uses: foojay2020/setup-java@disco


with:


java-package: jdk


java-version: 11.0.10


distro: corretto


- name: Build with gradle


run: ./gradlew build


...
We have created a testing
matrix for the Disco API using
github actions. To check what
is available you can simply
take a look at the actions in
the project.
What is available? Check Disco Testing Matrix
github actions
Check it out on github
https://github.com/foojay2020/discoTestingMatrix
SDKMAN!
foojay.io

Disco API - OpenJDK distributions as a service

  • 1.
  • 2.
    Gerrit Grunwald |Senior Developer Advocate | foojay.io ABOUTME.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
    That who havethe choice... ๏Adopt OpenJDK ๏Corretto ๏Dragonwell ๏(GraalVM CE) ๏Liberica ๏(Liberica Native) ๏(Mandrel) ๏Microsoft ๏OJDK Build ๏Open Logic ๏Oracle ๏Oracle OpenJDK ๏RedHat ๏SAP Machine ๏Temurin ๏Trava ๏Zulu ๏Zulu Prime
  • 17.
    The situation... ๏We havemany different distributions ๏Not all distributions support all versions ๏Most distributions are free but some are not ๏Some distributions have special features ๏Every distribution has it’s own way to get it
  • 18.
  • 19.
    What about havinga General API that…
  • 20.
    Serves information about… ๏Distributions ๏Versions ๏Platforms ๏OperatingSystems ๏Architectures ๏Archive types ๏Release status ๏Terms of support ๏Package types ๏Signatures
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
    /major_versions? ๏ea=true (Early Access) ๏ga=true(General Availability) ๏maintained=true* (Actively maintained, at the moment 7, 8, 11, 13, 15, 16, 17-ea, 18-ea) *will change over time
  • 26.
    { "result": [ { "major_version": 17, "term_of_support":"LTS", "maintained": true, "versions": [ "17-ea" ] }, { "major_version": 16, "term_of_support": "STS", "maintained": true, "versions": [ "16-ea" ] }, { "major_version": 15, "term_of_support": "MTS", "maintained": true, "versions": [ "15.0.1", "15.0.1-ea", "15", "15-ea" ] }, . . . Returns a list of all major versions including early access versions in a JSON format /major_versions
  • 27.
  • 28.
  • 29.
  • 30.
    { "result": [ { "name": "Zulu", "api_parameter":"zulu", "hash_algorithm": "", "hash_uri": "", "signature_type": "", "signature_algorithm": "", "signature_uri": "", "versions": [ "17-ea", "16-ea", "15.0.1", "15", "15-ea", "14.0.2", "14.0.1", "14", "14-ea", "13.0.5.1", "13.0.5", "13.0.4", "13.0.3", "13.0.2", "13.0.1", "13", "12.0.2", "12.0.1", "12", "11.0.9.1", "11.0.9", "11.0.8", "11.0.7", "11.0.6", ... Returns info about a speci fi c distribution including all it’s general availability and early access updates in JSON format /distributions/zulu
  • 31.
  • 32.
  • 33.
    directly_downloadable* ๏Oracle JDK ๏RedHat JDK directly_downloadable=> false We only return the link to their download page !!!
  • 34.
    { "result": [ { "id": "43afdc6785055999f3104208d4b9d703", "archive_type":"tar.gz", "distribution": "zulu", "major_version": 16, "java_version": "16.0.1", "distribution_version": "16.30.15", "latest_build_available": true, "release_status": "ga", "term_of_support": "sts", "operating_system": "linux", "lib_c_type": "musl", "architecture": "x64", "package_type": "jdk", "javafx_bundled": false, "directly_downloadable": true, "filename": "zulu16.30.15-ca-jdk16.0.1-linux_musl_x64.tar.gz", "ephemeral_id": "c4ffb7a327eebd365750ab7ad6b585bdaf224e9a", "links": { "pkg_info_uri": "https://api.foojay.io/disco/v2.0/ephemeral_ids/ c4ffb7a327eebd365750ab7ad6b585bdaf224e9a" }, "free_use_in_production": true, "feature": [] }, { ... } ], "message": "10 package(s) found" } Returns a list of all packages in JSON format /packages
  • 35.
  • 36.
  • 37.
  • 38.
    I need thelatest JDK, what is avaiable ?
  • 39.
    Latest JDK available [ { "id":"f5f69da2537cfbf7e6f26e484410b8d1", "archive_type": "tar.gz", "distribution": "zulu", "major_version": 15, "java_version": "15.0.1", "distribution_version": "15.28.51.0", "latest_build_available": true, "release_status": "ga", "term_of_support": "mts", "operating_system": "linux", "lib_c_type": "musl", "architecture": "x64", "package_type": "jdk", "javafx_bundled": false, "directly_downloadable": true, "filename": "zulu15.28.51-ca-jdk15.0.1-linux_musl_x64.tar.gz", "ephemeral_id": "339f5f69da2537cfbf7e6f26e484410b8d11610452685" }, { "id": "aa4851ec455afb6efce8e4bd0a18ee63", "archive_type": "zip", "distribution": "zulu", "major_version": 15, . . . Returns a list of all packages found that contain a JDK and have the latest available version (here 15.0.1) https://api.foojay.io/disco/v2.0/packages?package_type=jdk&latest=available
  • 40.
    What versions are availablein distribution XYZ ?
  • 41.
    Versions available indistribution { "name": "Zulu", "api_parameter": "zulu", "versions": [ "17-ea", "16-ea", "15.0.1", "15", "15-ea", "14.0.2", "14.0.1", "14", "14-ea", "13.0.5.1", "13.0.5", "13.0.4", "13.0.3", "13.0.2", "13.0.1", "13", "12.0.2", "12.0.1", "12", "11.0.9.1", "11.0.9", . . . Returns a list of versions in the Zulu distribution including all it’s general availability and early access updates in JSON format https://api.foojay.io/disco/v2.0/distributions/zulu
  • 42.
  • 43.
    Who has version11.0.9.1 [ { "id": "91b37ae0ab88863ba65845b2e1ba5a5d", "archive_type": "rpm", "distribution": "zulu", "major_version": 11, "java_version": "11.0.9.1", "distribution_version": "11.43.55.0", "latest_build_available": true, "release_status": "ga", "term_of_support": "lts", "operating_system": "linux", "lib_c_type": "glibc", "architecture": "x86", "package_type": "jre", "javafx_bundled": false, "directly_downloadable": true, "filename": "zulu11.43.55-ca-jre11.0.9.1-linux.i686.rpm", "ephemeral_id": "34091b37ae0ab88863ba65845b2e1ba5a5d1610452754" }, { "id": "f365a9db0f0a6954b0d4b53e5c42f797", "archive_type": "zip", "distribution": "zulu", "major_version": 11, . . . Returns a list of all packages that have the version number 11.0.9.1 from all distributions https://api.foojay.io/disco/v2.0/packages?version=11.0.9.1
  • 44.
    The latest LTSJDK for Mac OS incl. JavaFX ?
  • 45.
    Latest LTS JDKfor Mac incl. FX [ { "id": "75f55e22ca634f0a39bc88fcff49b9c1", "archive_type": "tar.gz", "distribution": "zulu", "major_version": 11, "java_version": "11.0.9.1", "distribution_version": "11.43.55.0", "latest_build_available": true, "release_status": "ga", "term_of_support": "lts", "operating_system": "macos", "lib_c_type": "libc", "architecture": "x64", "package_type": "jdk", "javafx_bundled": true, "directly_downloadable": true, "filename": "zulu11.43.55-ca-fx-jdk11.0.9.1-macosx_x64.tar.gz", "ephemeral_id": "41175f55e22ca634f0a39bc88fcff49b9c11610454032" }, { "id": "3edab9b6f6661cc5a64ea19e439959e6", "archive_type": "dmg", "distribution": "zulu", "major_version": 11, . . . Returns a list of all packages that have the latest available long term stable version (here 11.0.9.1) for Mac OS incl. JavaFX from all distributions https://api.foojay.io/disco/v2.0/packages? version_by_de fi nition=latest_lts&package_type=jdk&operating_system=macos&javafx_bundled=true&latest=per_version
  • 46.
    Is there anupdate available for 11.0.8 ?
  • 47.
    Update available for11.0.8 { "major_version": 11, "term_of_support": "LTS", "maintained": true, "versions": [ "11.0.9.1", "11.0.9", "11.0.8", "11.0.7", "11.0.6", "11.0.5", "11.0.4", "11.0.3", "11.0.2", "11.0.1", "11" ] } Returns a list of all general availability updates of the major version 11. https://api.foojay.io/disco/v2.0/major_versions/11
  • 48.
  • 49.
    JDK 1.8.0_275 forWindows as msi [ { "id": "23310311f36f9092d8db58880dc55ec0", "archive_type": "msi", "distribution": "zulu", "major_version": 8, "java_version": "8.0.275", "distribution_version": "8.50.0.51", "latest_build_available": true, "release_status": "ga", "term_of_support": "lts", "operating_system": "windows", "lib_c_type": "c_std_lib", "architecture": "x86", "package_type": "jdk", "javafx_bundled": false, "directly_downloadable": true, "filename": "zulu8.50.0.51-ca-jdk8.0.275-win_i686.msi", "ephemeral_id": "32923310311f36f9092d8db58880dc55ec01610454148" }, { "id": "949a657c47c2b71d58aebc0b022d4688", "archive_type": "msi", "distribution": "zulu", "major_version": 8, . . . Returns a list of all packages with the version 8.0.275 for Windows with an archive type of msi from all distributions https://api.foojay.io/disco/v2.0/packages? package_type=jdk&version=1.8.0_275&operating_system=windows&archive_type=msi
  • 50.
  • 51.
  • 52.
    The plugin letyou discover and download a JDK to your local machine. To install it, search for „DiscoIdea“ on the Intellij Marketplace. A plugin to discover/download a JDK Intellij Plugin
  • 53.
  • 54.
    The plugin letyou discover and download a JDK to your local machine. To install it, search for „DiscoEclipse“ on the Eclipse Marketplace. A plugin to discover/download a JDK Eclipse Plugin
  • 55.
  • 56.
  • 57.
  • 58.
  • 59.
  • 60.
  • 61.
  • 62.
    The plugin letyou discover and download a JDK to your local machine. To install it, search for „DiscoVSC“ on the Visual Studio Code Marketplace. A plugin to discover/download a JDK Visual Studio Code Plugin
  • 63.
  • 64.
  • 65.
    The extension letyou discover and download a JDK to your local machine. To install it, search for „DiscoChrome“ on the chrome web store. An extension to discover/download a JDK Chrome Extension
  • 66.
  • 67.
  • 68.
    The extension letyou discover and download a JDK to your local machine. To install it, search for „DiscoFox“ on the fi refox addons page. An extension to discover/download a JDK Firefox Add-on
  • 69.
  • 70.
    The extension letyou discover and download a JDK to your local machine. To install it, search for „DiscoEdge“ on the Edge plugins page. An extension to discover/download a JDK Edge Extension
  • 71.
  • 72.
    The extension letyou discover and download a JDK to your local machine. To install it, search for „DiscoSafari“ on the Mac app store. An extension to discover/download a JDK Safari Extension
  • 73.
  • 74.
  • 75.
    The snippet letyou discover and download a JDK to your local machine. Find an instruction on how to install it for example on blogger at Harmonic Code A html snippet to discover/download a JDK Website Plugin
  • 76.
  • 77.
  • 78.
    disco-distribution.sh ################################ # # # foojayjdk discovery api # # # # disco-distributions.sh # # # ################################ Be aware that you need to have jq installed Script parameters: --version : Returns a list of distributions that support the given version --name : Returns a distribution with the given name if available --help : Shows this info disco-distributions.sh disco-distributions.sh --version 13.0.5.1 disco-releases.sh --help Enables you to call the distributions endpoint of the disco api and retrieve results in json format bash disco-distributions.sh --help
  • 79.
    disco-major-versions.sh ################################ # # # foojayjdk discovery api # # # # disco-major-versions.sh # # # ################################ Be aware that you need to have jq installed Script parameters: --help : Shows this info --major-version : Major Version e.g. 1, 5, 9, 11, 18 disco-major-versions.sh disco-major-versions.sh --maintained true --ea true --ga true disco-major-versions.sh --ea true disco-major-versions.sh --ga true disco-major-versions.sh --version 11 --ea true disco-major-versions.sh --version 11 --ga true disco-major-verions.sh --help Enables you to call the major versions endpoint of the disco api and retrieve results in json format bash disco-major-versions.sh --help
  • 80.
    disco-packages.sh ################################ # # # foojayjdk discovery api # # # # disco-packages.sh # # # ################################ Be aware that you need to have jq and wget installed Script parameters: --help : Shows this info --version : Version (mandatory or version by definition) e.g. 1.8.0_265 or 11 or 13.0.5.1 --version_by_definition : Version by definition (mandatory if no version) e.g. latest, latest_sts, latest_mts, latest_lts --distro : Distribution e.g. aoj, aoj_openj9, dragonwell, corretto, liberica, oracle_open_jdk, redhat, sap_machine, zulu --architecture : Architecture e.g. aarch64, arm, arm64, mips, ppc, ppc64, ppc64le, riscv64, s390x, sparc, sparcv9, x64, x86, amd64 --archive_type : File extension e.g. cab, deb, dmg, exe, msi, pkg, rpm, tar, zip --package_type : Package type e.g. jre, jdk --operating_system : Operating System (mandatory) e.g. windows, macos, linux --libc_type : Type of libc e.g. glibc, libc, musl, c_std_lib --release_status : Release status e.g. ea, ga --term_of_support : Term of support e.g. sts, mts, lts --bitness : Bitness e.g. 32, 64 --javafx_bundled : With JavaFX e.g. true, false --directly_downloadable : Directly downloadable e.g. true, false --latest : Latest e.g. overall, per_distro --dest : Destination e.g. /Users/HanSolo Usage example: disco-packages.sh --dest /Users/Hansolo --operating_system windows --version 1.8.0_265 --distro zulu --package_type jdk -- architecture x64 --archive_type zip --release_status ga Enables you to call the packages endpoint of the disco api and retrieve results in json format bash disco-packages.sh --help
  • 81.
  • 82.
  • 83.
  • 84.
    The tools makesuse of the Disco API to let you discover JDK’s and download them to your local machine. A tool that let you discover JDK’s JDK Butler
  • 85.
    Get it fromgithub https://github.com/HanSolo/jdkbutler/releases
  • 86.
  • 87.
    The tool scansevery 3h a folder that you can de fi ne for installed JDK’s. It checks for available updates using the Disco API and offers the download of the update. A tool that monitors all your installed JDK’s JDK Mon
  • 88.
    Get it fromgithub https://github.com/HanSolo/JDKMon/releases
  • 89.
  • 90.
    When using githubactions to build your project you can use setup-java@v1. This will use Zulu as JDK to build and run. setup-java@v1 github actions ... steps: - uses: actions/checkout@v1 - name: Set up JDK 11 uses: actions/setup-java@v1 with: java-package: jdk java-version: 11.0.10 - name: Build with gradle run: ./gradlew build ...
  • 91.
    When using githubactions to build your project you can use setup-java@v2. No default and you only can choose between adopt, adopt-openj9 and zulu. setup-java@v2 github actions ... steps: - uses: actions/checkout@v1 - name: Set up JDK 11 uses: actions/setup-java@v2 with: java-package: jdk java-version: '11.0.10' distribution: 'zulu' - name: Build with gradle run: ./gradlew build ...
  • 92.
    Make use offoojay’s setup- java@disco to build your code using the JDK of your choice. If not de fi ned it will default to Zulu (as it was in setup-java@v1.0). Use foojay2020/setup-java@disco github actions ... steps: - uses: actions/checkout@v1 - name: Set up JDK 11 Corretto uses: foojay2020/setup-java@disco with: java-package: jdk java-version: 11.0.10 distro: corretto - name: Build with gradle run: ./gradlew build ...
  • 93.
    We have createda testing matrix for the Disco API using github actions. To check what is available you can simply take a look at the actions in the project. What is available? Check Disco Testing Matrix github actions
  • 94.
    Check it outon github https://github.com/foojay2020/discoTestingMatrix
  • 95.
  • 96.