SlideShare ist ein Scribd-Unternehmen logo
1 von 96
Downloaden Sie, um offline zu lesen
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

Weitere ähnliche Inhalte

Was ist angesagt?

Rules Programming tutorial
Rules Programming tutorialRules Programming tutorial
Rules Programming tutorialSrinath Perera
 
Manhattan Square - Bairro Savassi - Residencial / Pré-lançamento / LOFTS: 1,...
Manhattan Square - Bairro Savassi  - Residencial / Pré-lançamento / LOFTS: 1,...Manhattan Square - Bairro Savassi  - Residencial / Pré-lançamento / LOFTS: 1,...
Manhattan Square - Bairro Savassi - Residencial / Pré-lançamento / LOFTS: 1,...Patrimar
 
Functional Patterns in Domain Modeling
Functional Patterns in Domain ModelingFunctional Patterns in Domain Modeling
Functional Patterns in Domain ModelingDebasish Ghosh
 
Simple REST-APIs with Dropwizard and Swagger
Simple REST-APIs with Dropwizard and SwaggerSimple REST-APIs with Dropwizard and Swagger
Simple REST-APIs with Dropwizard and SwaggerLeanIX GmbH
 
キャッシュコヒーレントに囚われない並列カウンタ達
キャッシュコヒーレントに囚われない並列カウンタ達キャッシュコヒーレントに囚われない並列カウンタ達
キャッシュコヒーレントに囚われない並列カウンタ達Kumazaki Hiroki
 
Siv3Dで楽しむゲームとメディアアート開発
Siv3Dで楽しむゲームとメディアアート開発Siv3Dで楽しむゲームとメディアアート開発
Siv3Dで楽しむゲームとメディアアート開発Ryo Suzuki
 
Drools 6 deep dive
Drools 6 deep diveDrools 6 deep dive
Drools 6 deep diveMario Fusco
 
DEXCS2022OF_Install.pdf
DEXCS2022OF_Install.pdfDEXCS2022OF_Install.pdf
DEXCS2022OF_Install.pdfEtsuji Nomura
 
關於測試,我說的其實是......
關於測試,我說的其實是......關於測試,我說的其實是......
關於測試,我說的其實是......hugo lu
 
JVM Mechanics: When Does the JVM JIT & Deoptimize?
JVM Mechanics: When Does the JVM JIT & Deoptimize?JVM Mechanics: When Does the JVM JIT & Deoptimize?
JVM Mechanics: When Does the JVM JIT & Deoptimize?Doug Hawkins
 
Advanced Node.JS Meetup
Advanced Node.JS MeetupAdvanced Node.JS Meetup
Advanced Node.JS MeetupLINAGORA
 
Estrutura de dados em Java - Ponteiros e Alocação de Memória
Estrutura de dados em Java - Ponteiros e Alocação de Memória Estrutura de dados em Java - Ponteiros e Alocação de Memória
Estrutura de dados em Java - Ponteiros e Alocação de Memória Adriano Teixeira de Souza
 
Understanding PostgreSQL LW Locks
Understanding PostgreSQL LW LocksUnderstanding PostgreSQL LW Locks
Understanding PostgreSQL LW LocksJignesh Shah
 
Leverage CompletableFutures to handle async queries. DevNexus 2022
Leverage CompletableFutures to handle async queries. DevNexus 2022Leverage CompletableFutures to handle async queries. DevNexus 2022
Leverage CompletableFutures to handle async queries. DevNexus 2022David Gómez García
 
Indeedなう 予選A 解説
Indeedなう 予選A 解説Indeedなう 予選A 解説
Indeedなう 予選A 解説AtCoder Inc.
 
C++20 the small things - Timur Doumler
C++20 the small things - Timur DoumlerC++20 the small things - Timur Doumler
C++20 the small things - Timur Doumlercorehard_by
 
不偏ゲームがNIMに帰着する証明
不偏ゲームがNIMに帰着する証明不偏ゲームがNIMに帰着する証明
不偏ゲームがNIMに帰着する証明Azaika At
 

Was ist angesagt? (20)

Rules Programming tutorial
Rules Programming tutorialRules Programming tutorial
Rules Programming tutorial
 
Manhattan Square - Bairro Savassi - Residencial / Pré-lançamento / LOFTS: 1,...
Manhattan Square - Bairro Savassi  - Residencial / Pré-lançamento / LOFTS: 1,...Manhattan Square - Bairro Savassi  - Residencial / Pré-lançamento / LOFTS: 1,...
Manhattan Square - Bairro Savassi - Residencial / Pré-lançamento / LOFTS: 1,...
 
Functional Patterns in Domain Modeling
Functional Patterns in Domain ModelingFunctional Patterns in Domain Modeling
Functional Patterns in Domain Modeling
 
Simple REST-APIs with Dropwizard and Swagger
Simple REST-APIs with Dropwizard and SwaggerSimple REST-APIs with Dropwizard and Swagger
Simple REST-APIs with Dropwizard and Swagger
 
キャッシュコヒーレントに囚われない並列カウンタ達
キャッシュコヒーレントに囚われない並列カウンタ達キャッシュコヒーレントに囚われない並列カウンタ達
キャッシュコヒーレントに囚われない並列カウンタ達
 
Siv3Dで楽しむゲームとメディアアート開発
Siv3Dで楽しむゲームとメディアアート開発Siv3Dで楽しむゲームとメディアアート開発
Siv3Dで楽しむゲームとメディアアート開発
 
Labs Jogos Java
Labs Jogos JavaLabs Jogos Java
Labs Jogos Java
 
Drools 6 deep dive
Drools 6 deep diveDrools 6 deep dive
Drools 6 deep dive
 
DEXCS2022OF_Install.pdf
DEXCS2022OF_Install.pdfDEXCS2022OF_Install.pdf
DEXCS2022OF_Install.pdf
 
關於測試,我說的其實是......
關於測試,我說的其實是......關於測試,我說的其實是......
關於測試,我說的其實是......
 
JVM Mechanics: When Does the JVM JIT & Deoptimize?
JVM Mechanics: When Does the JVM JIT & Deoptimize?JVM Mechanics: When Does the JVM JIT & Deoptimize?
JVM Mechanics: When Does the JVM JIT & Deoptimize?
 
Advanced Node.JS Meetup
Advanced Node.JS MeetupAdvanced Node.JS Meetup
Advanced Node.JS Meetup
 
Estrutura de dados em Java - Ponteiros e Alocação de Memória
Estrutura de dados em Java - Ponteiros e Alocação de Memória Estrutura de dados em Java - Ponteiros e Alocação de Memória
Estrutura de dados em Java - Ponteiros e Alocação de Memória
 
Understanding PostgreSQL LW Locks
Understanding PostgreSQL LW LocksUnderstanding PostgreSQL LW Locks
Understanding PostgreSQL LW Locks
 
Drools Ecosystem
Drools EcosystemDrools Ecosystem
Drools Ecosystem
 
Java Performance Tuning
Java Performance TuningJava Performance Tuning
Java Performance Tuning
 
Leverage CompletableFutures to handle async queries. DevNexus 2022
Leverage CompletableFutures to handle async queries. DevNexus 2022Leverage CompletableFutures to handle async queries. DevNexus 2022
Leverage CompletableFutures to handle async queries. DevNexus 2022
 
Indeedなう 予選A 解説
Indeedなう 予選A 解説Indeedなう 予選A 解説
Indeedなう 予選A 解説
 
C++20 the small things - Timur Doumler
C++20 the small things - Timur DoumlerC++20 the small things - Timur Doumler
C++20 the small things - Timur Doumler
 
不偏ゲームがNIMに帰着する証明
不偏ゲームがNIMに帰着する証明不偏ゲームがNIMに帰着する証明
不偏ゲームがNIMに帰着する証明
 

Ähnlich wie Disco API - OpenJDK distributions as a service

Does Cowgirl Dream of Red Swirl?
Does Cowgirl Dream of Red Swirl?Does Cowgirl Dream of Red Swirl?
Does Cowgirl Dream of Red Swirl?Hideki Yamane
 
Open Solaris 2008.05
Open Solaris 2008.05Open Solaris 2008.05
Open Solaris 2008.05Angad Singh
 
Iz Pack
Iz PackIz Pack
Iz PackInria
 
So go installation guide
So go installation guideSo go installation guide
So go installation guideJavier Urbaneja
 
Fusioninventory openworldforum-paris-2011-september
Fusioninventory openworldforum-paris-2011-septemberFusioninventory openworldforum-paris-2011-september
Fusioninventory openworldforum-paris-2011-septemberGonéri Le Bouder
 
Fos sintro pres-dav
Fos sintro pres-davFos sintro pres-dav
Fos sintro pres-davParin Sharma
 
Freesmartphone.org
Freesmartphone.orgFreesmartphone.org
Freesmartphone.orgsudharsh
 
Zoo Overview
Zoo OverviewZoo Overview
Zoo Overviewdjayzen
 
IPS: Image Packaging System
IPS: Image Packaging SystemIPS: Image Packaging System
IPS: Image Packaging SystemEric Sproul
 
Introduction to OSGi (Tokyo JUG)
Introduction to OSGi (Tokyo JUG)Introduction to OSGi (Tokyo JUG)
Introduction to OSGi (Tokyo JUG)njbartlett
 
Cape Cod Web Technology Meetup - 3
Cape Cod Web Technology Meetup - 3Cape Cod Web Technology Meetup - 3
Cape Cod Web Technology Meetup - 3Asher Martin
 
UKOUG - What is Delivered with Solaris 11.4
UKOUG - What is Delivered with Solaris 11.4UKOUG - What is Delivered with Solaris 11.4
UKOUG - What is Delivered with Solaris 11.4JomaSoft
 
How to migrate SourcePro apps from Solaris to Linux
How to migrate SourcePro apps from Solaris to LinuxHow to migrate SourcePro apps from Solaris to Linux
How to migrate SourcePro apps from Solaris to LinuxRogue Wave Software
 
[Droidcon Paris 2013]Multi-Versioning Android Tips
[Droidcon Paris 2013]Multi-Versioning Android Tips[Droidcon Paris 2013]Multi-Versioning Android Tips
[Droidcon Paris 2013]Multi-Versioning Android TipsKenichi Kambara
 

Ähnlich wie Disco API - OpenJDK distributions as a service (20)

Does Cowgirl Dream of Red Swirl?
Does Cowgirl Dream of Red Swirl?Does Cowgirl Dream of Red Swirl?
Does Cowgirl Dream of Red Swirl?
 
Open Solaris 2008.05
Open Solaris 2008.05Open Solaris 2008.05
Open Solaris 2008.05
 
Iz Pack
Iz PackIz Pack
Iz Pack
 
Foss Presentation
Foss PresentationFoss Presentation
Foss Presentation
 
Introduction to OpenSolaris 2008.11
Introduction to OpenSolaris 2008.11Introduction to OpenSolaris 2008.11
Introduction to OpenSolaris 2008.11
 
So go installation guide
So go installation guideSo go installation guide
So go installation guide
 
Fusioninventory openworldforum-paris-2011-september
Fusioninventory openworldforum-paris-2011-septemberFusioninventory openworldforum-paris-2011-september
Fusioninventory openworldforum-paris-2011-september
 
Fos sintro pres-dav
Fos sintro pres-davFos sintro pres-dav
Fos sintro pres-dav
 
Freesmartphone.org
Freesmartphone.orgFreesmartphone.org
Freesmartphone.org
 
Joomla Day DK 2012
Joomla Day DK 2012Joomla Day DK 2012
Joomla Day DK 2012
 
Fedora Modularity
Fedora ModularityFedora Modularity
Fedora Modularity
 
Terraform 101
Terraform 101Terraform 101
Terraform 101
 
Zoo Overview
Zoo OverviewZoo Overview
Zoo Overview
 
IPS: Image Packaging System
IPS: Image Packaging SystemIPS: Image Packaging System
IPS: Image Packaging System
 
Introduction to OSGi (Tokyo JUG)
Introduction to OSGi (Tokyo JUG)Introduction to OSGi (Tokyo JUG)
Introduction to OSGi (Tokyo JUG)
 
Cape Cod Web Technology Meetup - 3
Cape Cod Web Technology Meetup - 3Cape Cod Web Technology Meetup - 3
Cape Cod Web Technology Meetup - 3
 
UKOUG - What is Delivered with Solaris 11.4
UKOUG - What is Delivered with Solaris 11.4UKOUG - What is Delivered with Solaris 11.4
UKOUG - What is Delivered with Solaris 11.4
 
Fusioninventory rmll-2011
Fusioninventory rmll-2011Fusioninventory rmll-2011
Fusioninventory rmll-2011
 
How to migrate SourcePro apps from Solaris to Linux
How to migrate SourcePro apps from Solaris to LinuxHow to migrate SourcePro apps from Solaris to Linux
How to migrate SourcePro apps from Solaris to Linux
 
[Droidcon Paris 2013]Multi-Versioning Android Tips
[Droidcon Paris 2013]Multi-Versioning Android Tips[Droidcon Paris 2013]Multi-Versioning Android Tips
[Droidcon Paris 2013]Multi-Versioning Android Tips
 

Kürzlich hochgeladen

A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfMarharyta Nedzelska
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...confluent
 
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Cizo Technology Services
 
Comparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfComparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfDrew Moseley
 
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdfExploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdfkalichargn70th171
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanyChristoph Pohl
 
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdf
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdfInnovate and Collaborate- Harnessing the Power of Open Source Software.pdf
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdfYashikaSharma391629
 
Understanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM ArchitectureUnderstanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM Architecturerahul_net
 
What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...Technogeeks
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfAlina Yurenko
 
Lecture # 8 software design and architecture (SDA).ppt
Lecture # 8 software design and architecture (SDA).pptLecture # 8 software design and architecture (SDA).ppt
Lecture # 8 software design and architecture (SDA).pptesrabilgic2
 
VK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web DevelopmentVK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web Developmentvyaparkranti
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationBradBedford3
 
Patterns for automating API delivery. API conference
Patterns for automating API delivery. API conferencePatterns for automating API delivery. API conference
Patterns for automating API delivery. API conferencessuser9e7c64
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作qr0udbr0
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Natan Silnitsky
 
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxUI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxAndreas Kunz
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...OnePlan Solutions
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtimeandrehoraa
 

Kürzlich hochgeladen (20)

A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdf
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
 
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
 
Comparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfComparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdf
 
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdfExploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
 
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdf
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdfInnovate and Collaborate- Harnessing the Power of Open Source Software.pdf
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdf
 
Understanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM ArchitectureUnderstanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM Architecture
 
What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
 
Lecture # 8 software design and architecture (SDA).ppt
Lecture # 8 software design and architecture (SDA).pptLecture # 8 software design and architecture (SDA).ppt
Lecture # 8 software design and architecture (SDA).ppt
 
VK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web DevelopmentVK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web Development
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion Application
 
Advantages of Odoo ERP 17 for Your Business
Advantages of Odoo ERP 17 for Your BusinessAdvantages of Odoo ERP 17 for Your Business
Advantages of Odoo ERP 17 for Your Business
 
Patterns for automating API delivery. API conference
Patterns for automating API delivery. API conferencePatterns for automating API delivery. API conference
Patterns for automating API delivery. API conference
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
 
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxUI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtime
 

Disco API - OpenJDK distributions as a service

  • 2. Gerrit Grunwald | Senior Developer Advocate | foojay.io ABOUTME.
  • 13. Where to get it from…?
  • 15. Are you allowed to use it…?
  • 16. 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
  • 17. 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
  • 19. What about having a General API that…
  • 20. Serves information about… ๏Distributions ๏Versions ๏Platforms ๏Operating Systems ๏Architectures ๏Archive types ๏Release status ๏Terms of support ๏Package types ๏Signatures
  • 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
  • 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
  • 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
  • 38. I need the latest 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 available in distribution XYZ ?
  • 41. 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
  • 43. 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
  • 44. The latest LTS JDK for Mac OS incl. JavaFX ?
  • 45. 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
  • 46. Is there an update available for 11.0.8 ?
  • 47. 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
  • 49. 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
  • 52. 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
  • 54. 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
  • 62. 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
  • 65. 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
  • 68. 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
  • 70. 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
  • 72. 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
  • 75. 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
  • 78. 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
  • 79. 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
  • 80. 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
  • 84. 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
  • 85. Get it from github https://github.com/HanSolo/jdkbutler/releases
  • 87. 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
  • 88. Get it from github https://github.com/HanSolo/JDKMon/releases
  • 90. 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 ...
  • 91. 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 ...
  • 92. 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 ...
  • 93. 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
  • 94. Check it out on github https://github.com/foojay2020/discoTestingMatrix