SlideShare a Scribd company logo
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

More Related Content

What's hot

Grok et Plonk vont à la chasse au mammouth
Grok et Plonk vont à la chasse au mammouthGrok et Plonk vont à la chasse au mammouth
Grok et Plonk vont à la chasse au mammouth
Agile En Seine
 
Openstack swift - VietOpenStack 6thmeeetup
Openstack swift - VietOpenStack 6thmeeetupOpenstack swift - VietOpenStack 6thmeeetup
Openstack swift - VietOpenStack 6thmeeetup
Vietnam Open Infrastructure User Group
 
Rancher MasterClass - Avoiding-configuration-drift.pptx
Rancher  MasterClass - Avoiding-configuration-drift.pptxRancher  MasterClass - Avoiding-configuration-drift.pptx
Rancher MasterClass - Avoiding-configuration-drift.pptx
LibbySchulze
 
Kubernetes Networking
Kubernetes NetworkingKubernetes Networking
Kubernetes Networking
CJ Cullen
 
Openstack - An introduction/Installation - Presented at Dr Dobb's conference...
 Openstack - An introduction/Installation - Presented at Dr Dobb's conference... Openstack - An introduction/Installation - Presented at Dr Dobb's conference...
Openstack - An introduction/Installation - Presented at Dr Dobb's conference...
Rahul Krishna Upadhyaya
 
Introduction to Grafana Loki
Introduction to Grafana LokiIntroduction to Grafana Loki
Introduction to Grafana Loki
Julien Pivotto
 
The Product Owner Playbook - Introduction
The Product Owner Playbook - IntroductionThe Product Owner Playbook - Introduction
The Product Owner Playbook - Introduction
Cprime
 
Reactive Microservices with Quarkus
Reactive Microservices with QuarkusReactive Microservices with Quarkus
Reactive Microservices with Quarkus
Niklas Heidloff
 
The Reactive Principles: Design Principles For Cloud Native Applications
The Reactive Principles: Design Principles For Cloud Native ApplicationsThe Reactive Principles: Design Principles For Cloud Native Applications
The Reactive Principles: Design Principles For Cloud Native Applications
Jonas Bonér
 
Monitorama - Please, no more Minutes, Milliseconds, Monoliths or Monitoring T...
Monitorama - Please, no more Minutes, Milliseconds, Monoliths or Monitoring T...Monitorama - Please, no more Minutes, Milliseconds, Monoliths or Monitoring T...
Monitorama - Please, no more Minutes, Milliseconds, Monoliths or Monitoring T...
Adrian Cockcroft
 
Container Security Deep Dive & Kubernetes
Container Security Deep Dive & Kubernetes Container Security Deep Dive & Kubernetes
Container Security Deep Dive & Kubernetes
Aqua Security
 
DevOps @ OpenShift Online
DevOps @ OpenShift OnlineDevOps @ OpenShift Online
DevOps @ OpenShift Online
OpenShift Origin
 
[9월 런치 세미나] 도커와 쿠버네티스 기술에 스며들다
[9월 런치 세미나] 도커와 쿠버네티스 기술에 스며들다[9월 런치 세미나] 도커와 쿠버네티스 기술에 스며들다
[9월 런치 세미나] 도커와 쿠버네티스 기술에 스며들다
NAVER CLOUD PLATFORMㅣ네이버 클라우드 플랫폼
 
Microservices for Application Modernisation
Microservices for Application ModernisationMicroservices for Application Modernisation
Microservices for Application Modernisation
Ajay Kumar Uppal
 
Devops as a service
Devops as a serviceDevops as a service
Devops as a service
Saravanan Subburayal
 
오픈소스 WAS를 위한 클러스터 솔루션 - OPENMARU Cluster
오픈소스 WAS를 위한 클러스터 솔루션 - OPENMARU Cluster오픈소스 WAS를 위한 클러스터 솔루션 - OPENMARU Cluster
오픈소스 WAS를 위한 클러스터 솔루션 - OPENMARU Cluster
Opennaru, inc.
 
Supercharging CI/CD with GitLab and Rancher - June 2017 Online Meetup
Supercharging CI/CD with GitLab and Rancher - June 2017 Online MeetupSupercharging CI/CD with GitLab and Rancher - June 2017 Online Meetup
Supercharging CI/CD with GitLab and Rancher - June 2017 Online Meetup
Shannon Williams
 
Kubernetes Basics
Kubernetes BasicsKubernetes Basics
Kubernetes Basics
Eueung Mulyana
 
Netflix: A State of Xen - Chaos Monkey & Cassandra
Netflix: A State of Xen - Chaos Monkey & CassandraNetflix: A State of Xen - Chaos Monkey & Cassandra
Netflix: A State of Xen - Chaos Monkey & Cassandra
DataStax Academy
 
[2019 DevOpsDays Taipei]Azure DevOps 建立 DevOps 團隊
[2019 DevOpsDays Taipei]Azure DevOps 建立 DevOps 團隊[2019 DevOpsDays Taipei]Azure DevOps 建立 DevOps 團隊
[2019 DevOpsDays Taipei]Azure DevOps 建立 DevOps 團隊
Edward Kuo
 

What's hot (20)

Grok et Plonk vont à la chasse au mammouth
Grok et Plonk vont à la chasse au mammouthGrok et Plonk vont à la chasse au mammouth
Grok et Plonk vont à la chasse au mammouth
 
Openstack swift - VietOpenStack 6thmeeetup
Openstack swift - VietOpenStack 6thmeeetupOpenstack swift - VietOpenStack 6thmeeetup
Openstack swift - VietOpenStack 6thmeeetup
 
Rancher MasterClass - Avoiding-configuration-drift.pptx
Rancher  MasterClass - Avoiding-configuration-drift.pptxRancher  MasterClass - Avoiding-configuration-drift.pptx
Rancher MasterClass - Avoiding-configuration-drift.pptx
 
Kubernetes Networking
Kubernetes NetworkingKubernetes Networking
Kubernetes Networking
 
Openstack - An introduction/Installation - Presented at Dr Dobb's conference...
 Openstack - An introduction/Installation - Presented at Dr Dobb's conference... Openstack - An introduction/Installation - Presented at Dr Dobb's conference...
Openstack - An introduction/Installation - Presented at Dr Dobb's conference...
 
Introduction to Grafana Loki
Introduction to Grafana LokiIntroduction to Grafana Loki
Introduction to Grafana Loki
 
The Product Owner Playbook - Introduction
The Product Owner Playbook - IntroductionThe Product Owner Playbook - Introduction
The Product Owner Playbook - Introduction
 
Reactive Microservices with Quarkus
Reactive Microservices with QuarkusReactive Microservices with Quarkus
Reactive Microservices with Quarkus
 
The Reactive Principles: Design Principles For Cloud Native Applications
The Reactive Principles: Design Principles For Cloud Native ApplicationsThe Reactive Principles: Design Principles For Cloud Native Applications
The Reactive Principles: Design Principles For Cloud Native Applications
 
Monitorama - Please, no more Minutes, Milliseconds, Monoliths or Monitoring T...
Monitorama - Please, no more Minutes, Milliseconds, Monoliths or Monitoring T...Monitorama - Please, no more Minutes, Milliseconds, Monoliths or Monitoring T...
Monitorama - Please, no more Minutes, Milliseconds, Monoliths or Monitoring T...
 
Container Security Deep Dive & Kubernetes
Container Security Deep Dive & Kubernetes Container Security Deep Dive & Kubernetes
Container Security Deep Dive & Kubernetes
 
DevOps @ OpenShift Online
DevOps @ OpenShift OnlineDevOps @ OpenShift Online
DevOps @ OpenShift Online
 
[9월 런치 세미나] 도커와 쿠버네티스 기술에 스며들다
[9월 런치 세미나] 도커와 쿠버네티스 기술에 스며들다[9월 런치 세미나] 도커와 쿠버네티스 기술에 스며들다
[9월 런치 세미나] 도커와 쿠버네티스 기술에 스며들다
 
Microservices for Application Modernisation
Microservices for Application ModernisationMicroservices for Application Modernisation
Microservices for Application Modernisation
 
Devops as a service
Devops as a serviceDevops as a service
Devops as a service
 
오픈소스 WAS를 위한 클러스터 솔루션 - OPENMARU Cluster
오픈소스 WAS를 위한 클러스터 솔루션 - OPENMARU Cluster오픈소스 WAS를 위한 클러스터 솔루션 - OPENMARU Cluster
오픈소스 WAS를 위한 클러스터 솔루션 - OPENMARU Cluster
 
Supercharging CI/CD with GitLab and Rancher - June 2017 Online Meetup
Supercharging CI/CD with GitLab and Rancher - June 2017 Online MeetupSupercharging CI/CD with GitLab and Rancher - June 2017 Online Meetup
Supercharging CI/CD with GitLab and Rancher - June 2017 Online Meetup
 
Kubernetes Basics
Kubernetes BasicsKubernetes Basics
Kubernetes Basics
 
Netflix: A State of Xen - Chaos Monkey & Cassandra
Netflix: A State of Xen - Chaos Monkey & CassandraNetflix: A State of Xen - Chaos Monkey & Cassandra
Netflix: A State of Xen - Chaos Monkey & Cassandra
 
[2019 DevOpsDays Taipei]Azure DevOps 建立 DevOps 團隊
[2019 DevOpsDays Taipei]Azure DevOps 建立 DevOps 團隊[2019 DevOpsDays Taipei]Azure DevOps 建立 DevOps 團隊
[2019 DevOpsDays Taipei]Azure DevOps 建立 DevOps 團隊
 

Similar to 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.05
Angad Singh
 
Iz Pack
Iz PackIz Pack
Iz Pack
Inria
 
Foss Presentation
Foss PresentationFoss Presentation
Foss Presentation
Ahmed Mekkawy
 
Introduction to OpenSolaris 2008.11
Introduction to OpenSolaris 2008.11Introduction to OpenSolaris 2008.11
Introduction to OpenSolaris 2008.11
Eduardo Pelegri-Llopart
 
So go installation guide
So go installation guideSo go installation guide
So go installation guide
Javier Urbaneja
 
Fusioninventory openworldforum-paris-2011-september
Fusioninventory openworldforum-paris-2011-septemberFusioninventory openworldforum-paris-2011-september
Fusioninventory openworldforum-paris-2011-september
Gonéri Le Bouder
 
Fos sintro pres-dav
Fos sintro pres-davFos sintro pres-dav
Fos sintro pres-dav
Parin Sharma
 
Freesmartphone.org
Freesmartphone.orgFreesmartphone.org
Freesmartphone.org
sudharsh
 
Joomla Day DK 2012
Joomla Day DK 2012Joomla Day DK 2012
Joomla Day DK 2012
Rouven Weßling
 
Fedora Modularity
Fedora ModularityFedora Modularity
Fedora Modularity
Adam Šamalík
 
Terraform 101
Terraform 101Terraform 101
Terraform 101
Haggai Philip Zagury
 
Zoo Overview
Zoo OverviewZoo Overview
Zoo Overview
djayzen
 
IPS: Image Packaging System
IPS: Image Packaging SystemIPS: Image Packaging System
IPS: Image Packaging System
Eric 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 - 3
Asher 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.4
JomaSoft
 
Fusioninventory rmll-2011
Fusioninventory rmll-2011Fusioninventory rmll-2011
Fusioninventory rmll-2011
Gonéri Le Bouder
 
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
Rogue 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 Tips
Kenichi Kambara
 

Similar to 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
 

Recently uploaded

Why Apache Kafka Clusters Are Like Galaxies (And Other Cosmic Kafka Quandarie...
Why Apache Kafka Clusters Are Like Galaxies (And Other Cosmic Kafka Quandarie...Why Apache Kafka Clusters Are Like Galaxies (And Other Cosmic Kafka Quandarie...
Why Apache Kafka Clusters Are Like Galaxies (And Other Cosmic Kafka Quandarie...
Paul Brebner
 
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CDKuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
rodomar2
 
The Rising Future of CPaaS in the Middle East 2024
The Rising Future of CPaaS in the Middle East 2024The Rising Future of CPaaS in the Middle East 2024
The Rising Future of CPaaS in the Middle East 2024
Yara Milbes
 
Webinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for EmbeddedWebinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for Embedded
ICS
 
DECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSIS
DECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSISDECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSIS
DECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSIS
Tier1 app
 
Malibou Pitch Deck For Its €3M Seed Round
Malibou Pitch Deck For Its €3M Seed RoundMalibou Pitch Deck For Its €3M Seed Round
Malibou Pitch Deck For Its €3M Seed Round
sjcobrien
 
14 th Edition of International conference on computer vision
14 th Edition of International conference on computer vision14 th Edition of International conference on computer vision
14 th Edition of International conference on computer vision
ShulagnaSarkar2
 
How Can Hiring A Mobile App Development Company Help Your Business Grow?
How Can Hiring A Mobile App Development Company Help Your Business Grow?How Can Hiring A Mobile App Development Company Help Your Business Grow?
How Can Hiring A Mobile App Development Company Help Your Business Grow?
ToXSL Technologies
 
ppt on the brain chip neuralink.pptx
ppt  on   the brain  chip neuralink.pptxppt  on   the brain  chip neuralink.pptx
ppt on the brain chip neuralink.pptx
Reetu63
 
Preparing Non - Technical Founders for Engaging a Tech Agency
Preparing Non - Technical Founders for Engaging  a  Tech AgencyPreparing Non - Technical Founders for Engaging  a  Tech Agency
Preparing Non - Technical Founders for Engaging a Tech Agency
ISH Technologies
 
ACE - Team 24 Wrapup event at ahmedabad.
ACE - Team 24 Wrapup event at ahmedabad.ACE - Team 24 Wrapup event at ahmedabad.
ACE - Team 24 Wrapup event at ahmedabad.
Maitrey Patel
 
Baha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdf
Baha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdfBaha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdf
Baha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdf
Baha Majid
 
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, FactsALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
Green Software Development
 
Quarter 3 SLRP grade 9.. gshajsbhhaheabh
Quarter 3 SLRP grade 9.. gshajsbhhaheabhQuarter 3 SLRP grade 9.. gshajsbhhaheabh
Quarter 3 SLRP grade 9.. gshajsbhhaheabh
aisafed42
 
Enums On Steroids - let's look at sealed classes !
Enums On Steroids - let's look at sealed classes !Enums On Steroids - let's look at sealed classes !
Enums On Steroids - let's look at sealed classes !
Marcin Chrost
 
WWDC 2024 Keynote Review: For CocoaCoders Austin
WWDC 2024 Keynote Review: For CocoaCoders AustinWWDC 2024 Keynote Review: For CocoaCoders Austin
WWDC 2024 Keynote Review: For CocoaCoders Austin
Patrick Weigel
 
Enhanced Screen Flows UI/UX using SLDS with Tom Kitt
Enhanced Screen Flows UI/UX using SLDS with Tom KittEnhanced Screen Flows UI/UX using SLDS with Tom Kitt
Enhanced Screen Flows UI/UX using SLDS with Tom Kitt
Peter Caitens
 
E-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet DynamicsE-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet Dynamics
Hornet Dynamics
 
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
XfilesPro
 
All you need to know about Spring Boot and GraalVM
All you need to know about Spring Boot and GraalVMAll you need to know about Spring Boot and GraalVM
All you need to know about Spring Boot and GraalVM
Alina Yurenko
 

Recently uploaded (20)

Why Apache Kafka Clusters Are Like Galaxies (And Other Cosmic Kafka Quandarie...
Why Apache Kafka Clusters Are Like Galaxies (And Other Cosmic Kafka Quandarie...Why Apache Kafka Clusters Are Like Galaxies (And Other Cosmic Kafka Quandarie...
Why Apache Kafka Clusters Are Like Galaxies (And Other Cosmic Kafka Quandarie...
 
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CDKuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
 
The Rising Future of CPaaS in the Middle East 2024
The Rising Future of CPaaS in the Middle East 2024The Rising Future of CPaaS in the Middle East 2024
The Rising Future of CPaaS in the Middle East 2024
 
Webinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for EmbeddedWebinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for Embedded
 
DECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSIS
DECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSISDECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSIS
DECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSIS
 
Malibou Pitch Deck For Its €3M Seed Round
Malibou Pitch Deck For Its €3M Seed RoundMalibou Pitch Deck For Its €3M Seed Round
Malibou Pitch Deck For Its €3M Seed Round
 
14 th Edition of International conference on computer vision
14 th Edition of International conference on computer vision14 th Edition of International conference on computer vision
14 th Edition of International conference on computer vision
 
How Can Hiring A Mobile App Development Company Help Your Business Grow?
How Can Hiring A Mobile App Development Company Help Your Business Grow?How Can Hiring A Mobile App Development Company Help Your Business Grow?
How Can Hiring A Mobile App Development Company Help Your Business Grow?
 
ppt on the brain chip neuralink.pptx
ppt  on   the brain  chip neuralink.pptxppt  on   the brain  chip neuralink.pptx
ppt on the brain chip neuralink.pptx
 
Preparing Non - Technical Founders for Engaging a Tech Agency
Preparing Non - Technical Founders for Engaging  a  Tech AgencyPreparing Non - Technical Founders for Engaging  a  Tech Agency
Preparing Non - Technical Founders for Engaging a Tech Agency
 
ACE - Team 24 Wrapup event at ahmedabad.
ACE - Team 24 Wrapup event at ahmedabad.ACE - Team 24 Wrapup event at ahmedabad.
ACE - Team 24 Wrapup event at ahmedabad.
 
Baha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdf
Baha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdfBaha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdf
Baha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdf
 
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, FactsALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
 
Quarter 3 SLRP grade 9.. gshajsbhhaheabh
Quarter 3 SLRP grade 9.. gshajsbhhaheabhQuarter 3 SLRP grade 9.. gshajsbhhaheabh
Quarter 3 SLRP grade 9.. gshajsbhhaheabh
 
Enums On Steroids - let's look at sealed classes !
Enums On Steroids - let's look at sealed classes !Enums On Steroids - let's look at sealed classes !
Enums On Steroids - let's look at sealed classes !
 
WWDC 2024 Keynote Review: For CocoaCoders Austin
WWDC 2024 Keynote Review: For CocoaCoders AustinWWDC 2024 Keynote Review: For CocoaCoders Austin
WWDC 2024 Keynote Review: For CocoaCoders Austin
 
Enhanced Screen Flows UI/UX using SLDS with Tom Kitt
Enhanced Screen Flows UI/UX using SLDS with Tom KittEnhanced Screen Flows UI/UX using SLDS with Tom Kitt
Enhanced Screen Flows UI/UX using SLDS with Tom Kitt
 
E-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet DynamicsE-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet Dynamics
 
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
 
All you need to know about Spring Boot and GraalVM
All you need to know about Spring Boot and GraalVMAll you need to know about Spring Boot and GraalVM
All you need to know about Spring Boot and GraalVM
 

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