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?

Java SE 8 技術手冊第 2 章 - 從JDK到IDE
Java SE 8 技術手冊第 2 章 - 從JDK到IDEJava SE 8 技術手冊第 2 章 - 從JDK到IDE
Java SE 8 技術手冊第 2 章 - 從JDK到IDEJustin Lin
 
Taipei.py 2018 - Control device via ioctl from Python
Taipei.py 2018 - Control device via ioctl from Python Taipei.py 2018 - Control device via ioctl from Python
Taipei.py 2018 - Control device via ioctl from Python Hua Chu
 
Bytecode manipulation with Javassist and ASM
Bytecode manipulation with Javassist and ASMBytecode manipulation with Javassist and ASM
Bytecode manipulation with Javassist and ASMashleypuls
 
java 8 람다식 소개와 의미 고찰
java 8 람다식 소개와 의미 고찰java 8 람다식 소개와 의미 고찰
java 8 람다식 소개와 의미 고찰Sungchul Park
 
Unified JVM Logging
Unified JVM LoggingUnified JVM Logging
Unified JVM LoggingYuji Kubota
 
OVS VXLAN Network Accelaration on OpenStack (VXLAN offload and DPDK) - OpenSt...
OVS VXLAN Network Accelaration on OpenStack (VXLAN offload and DPDK) - OpenSt...OVS VXLAN Network Accelaration on OpenStack (VXLAN offload and DPDK) - OpenSt...
OVS VXLAN Network Accelaration on OpenStack (VXLAN offload and DPDK) - OpenSt...VirtualTech Japan Inc.
 
Garbage First Garbage Collector (G1 GC) - Migration to, Expectations and Adva...
Garbage First Garbage Collector (G1 GC) - Migration to, Expectations and Adva...Garbage First Garbage Collector (G1 GC) - Migration to, Expectations and Adva...
Garbage First Garbage Collector (G1 GC) - Migration to, Expectations and Adva...Monica Beckwith
 
JVM のいろはにほ #javajo
JVM のいろはにほ #javajoJVM のいろはにほ #javajo
JVM のいろはにほ #javajoYuji Kubota
 
Struts2を始めよう!
Struts2を始めよう!Struts2を始めよう!
Struts2を始めよう!Shinpei Ohtani
 
大規模環境でRailsと4年間付き合ってきて@ クックパッド * 食べログ合同勉強会
大規模環境でRailsと4年間付き合ってきて@ クックパッド * 食べログ合同勉強会大規模環境でRailsと4年間付き合ってきて@ クックパッド * 食べログ合同勉強会
大規模環境でRailsと4年間付き合ってきて@ クックパッド * 食べログ合同勉強会Takayuki Kyowa
 
Memory Management in the Java Virtual Machine(Garbage collection)
Memory Management in the Java Virtual Machine(Garbage collection)Memory Management in the Java Virtual Machine(Garbage collection)
Memory Management in the Java Virtual Machine(Garbage collection)Prashanth Kumar
 
How To Use AGL CAN Signal
How To Use AGL CAN SignalHow To Use AGL CAN Signal
How To Use AGL CAN SignalYuichi Kusakabe
 

Was ist angesagt? (20)

Java SE 8 技術手冊第 2 章 - 從JDK到IDE
Java SE 8 技術手冊第 2 章 - 從JDK到IDEJava SE 8 技術手冊第 2 章 - 從JDK到IDE
Java SE 8 技術手冊第 2 章 - 從JDK到IDE
 
Taipei.py 2018 - Control device via ioctl from Python
Taipei.py 2018 - Control device via ioctl from Python Taipei.py 2018 - Control device via ioctl from Python
Taipei.py 2018 - Control device via ioctl from Python
 
Bytecode manipulation with Javassist and ASM
Bytecode manipulation with Javassist and ASMBytecode manipulation with Javassist and ASM
Bytecode manipulation with Javassist and ASM
 
java 8 람다식 소개와 의미 고찰
java 8 람다식 소개와 의미 고찰java 8 람다식 소개와 의미 고찰
java 8 람다식 소개와 의미 고찰
 
Unified JVM Logging
Unified JVM LoggingUnified JVM Logging
Unified JVM Logging
 
OVS VXLAN Network Accelaration on OpenStack (VXLAN offload and DPDK) - OpenSt...
OVS VXLAN Network Accelaration on OpenStack (VXLAN offload and DPDK) - OpenSt...OVS VXLAN Network Accelaration on OpenStack (VXLAN offload and DPDK) - OpenSt...
OVS VXLAN Network Accelaration on OpenStack (VXLAN offload and DPDK) - OpenSt...
 
Linux startup
Linux startupLinux startup
Linux startup
 
Kamonを理解する
Kamonを理解するKamonを理解する
Kamonを理解する
 
Garbage First Garbage Collector (G1 GC) - Migration to, Expectations and Adva...
Garbage First Garbage Collector (G1 GC) - Migration to, Expectations and Adva...Garbage First Garbage Collector (G1 GC) - Migration to, Expectations and Adva...
Garbage First Garbage Collector (G1 GC) - Migration to, Expectations and Adva...
 
JVM のいろはにほ #javajo
JVM のいろはにほ #javajoJVM のいろはにほ #javajo
JVM のいろはにほ #javajo
 
Struts2を始めよう!
Struts2を始めよう!Struts2を始めよう!
Struts2を始めよう!
 
大規模環境でRailsと4年間付き合ってきて@ クックパッド * 食べログ合同勉強会
大規模環境でRailsと4年間付き合ってきて@ クックパッド * 食べログ合同勉強会大規模環境でRailsと4年間付き合ってきて@ クックパッド * 食べログ合同勉強会
大規模環境でRailsと4年間付き合ってきて@ クックパッド * 食べログ合同勉強会
 
KafkaとPulsar
KafkaとPulsarKafkaとPulsar
KafkaとPulsar
 
Maven Overview
Maven OverviewMaven Overview
Maven Overview
 
SwiftのDI方法につい て最近考えてた話
SwiftのDI方法につい て最近考えてた話SwiftのDI方法につい て最近考えてた話
SwiftのDI方法につい て最近考えてた話
 
Memory Management in the Java Virtual Machine(Garbage collection)
Memory Management in the Java Virtual Machine(Garbage collection)Memory Management in the Java Virtual Machine(Garbage collection)
Memory Management in the Java Virtual Machine(Garbage collection)
 
Learn C Programming Language by Using GDB
Learn C Programming Language by Using GDBLearn C Programming Language by Using GDB
Learn C Programming Language by Using GDB
 
How To Use AGL CAN Signal
How To Use AGL CAN SignalHow To Use AGL CAN Signal
How To Use AGL CAN Signal
 
Quarkus入門
Quarkus入門Quarkus入門
Quarkus入門
 
V6 unix in okinawa
V6 unix in okinawaV6 unix in okinawa
V6 unix in okinawa
 

Ä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

How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerThousandEyes
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...panagenda
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AIABDERRAOUF MEHENNI
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 

Kürzlich hochgeladen (20)

Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 

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