Files
renovate/lib/modules/datasource/java-version
Sebastian Poxhofer 1e6ffa8171 refactor(datasource): add cached() helper to the Datasource base class (#46102)
Every datasource that caches its releases hand-wrote the same
`withCache({ namespace: `datasource-${id}`, ... }, () => this._getReleases(config))`
wrapper, repeating the namespace literal and using underscore-prefixed
method names that `docs/development/best-practices.md` discourages.

Add `Datasource.cacheNamespace` (derived from the datasource id) and a
protected `Datasource.cached()` helper that defaults `namespace` to it,
exporting `CachedOptions` from `with-cache.ts`. Migrate 29 datasources
onto the helper, dropping their namespace literals, the static
`cacheNamespace` field in `github-digest`, and renaming the wrapped
`_getX` methods to `fetchX`.

Behaviour change: `golang-version` used the constant cache key `'all'`
while declaring `customRegistrySupport = true`, so a custom registryUrl
shared the cache entry with the default one. The key is now
`${config.registryUrl}`, which invalidates existing entries once.
2026-09-22 19:30:25 +00:00
..

This datasource returns releases from the Adoptium API.

It uses image_type=<jre|jdk>&project=jdk&release_type=ga&sort_method=DATE&sort_order=DESC as filter parameters. This means that the datasource finds:

  • JRE or JDK images
  • with a JDK project
  • which have the General Availability status And finally, the results are sorted in descending order.

When Renovate contacts the Adoptium API, it fetches 50 pages. Each page has 50 items. So 2500 items are fetched from the API in total.

If you want to get releases which come with the JDK, set the packageName to java-jdk or java.

If you want to get releases which come with the JRE, set the packageName to java-jre. LTS releases of Java will have a version that comes with the JRE. Non-LTS releases may not always include the JRE.

Additionally you can filter by os and architecture. For example, to get only Linux x64 jre releases, you can pass java-jre?os=linux&architecture=x64 as packageName. See https://api.adoptium.net/q/swagger-ui/#/Release%20Info/getReleaseVersions for allowed values.

Use java?system=true to let renovate detect the current os and architecture.