summaryrefslogtreecommitdiff
path: root/meta/run/generate_java.py
diff options
context:
space:
mode:
authorAlexandru Ionut Tripon <alexandru.tripon97@gmail.com>2026-03-17 23:37:54 +0200
committerGitHub <noreply@github.com>2026-03-17 23:37:54 +0200
commita47a0ace170abd2bb0ff97d462c3e2b2e3f16aa4 (patch)
tree97cd6de4f0c7fb1ccc9610d6227605c019a1f16a /meta/run/generate_java.py
parentf0b3db95194bde0efd39424056e788ea57613a36 (diff)
parentca67d9498d3bef29c8660f5c3bd4013a45e98245 (diff)
downloadProject-Tick-a47a0ace170abd2bb0ff97d462c3e2b2e3f16aa4.tar.gz
Project-Tick-a47a0ace170abd2bb0ff97d462c3e2b2e3f16aa4.zip
Merge pull request #115 from ludgie/ibm-semeru-openj9-java
feat: ibm semeru runtime open edition support
Diffstat (limited to 'meta/run/generate_java.py')
-rw-r--r--meta/run/generate_java.py75
1 files changed, 58 insertions, 17 deletions
diff --git a/meta/run/generate_java.py b/meta/run/generate_java.py
index 13e01a0496..257326542a 100644
--- a/meta/run/generate_java.py
+++ b/meta/run/generate_java.py
@@ -9,9 +9,12 @@ from meta.common import ensure_component_dir, launcher_path, upstream_path
from meta.common.java import (
JAVA_MINECRAFT_COMPONENT,
JAVA_ADOPTIUM_COMPONENT,
+ JAVA_OPENJ9_COMPONENT,
JAVA_AZUL_COMPONENT,
ADOPTIUM_DIR,
ADOPTIUM_VERSIONS_DIR,
+ OPENJ9_DIR,
+ OPENJ9_VERSIONS_DIR,
AZUL_DIR,
AZUL_VERSIONS_DIR,
)
@@ -25,11 +28,11 @@ from meta.model.java import (
JavaChecksumMeta,
JavaChecksumType,
JavaRuntimeDownloadType,
- AdoptiumAvailableReleases,
- AdoptiumReleases,
- AdoptiumRelease,
- AdoptiumImageType,
- AdoptiumBinary,
+ AdoptxAvailableReleases,
+ AdoptxReleases,
+ AdoptxRelease,
+ AdoptxImageType,
+ AdoptxBinary,
ZuluPackageList,
ZuluPackageDetail,
AzulJavaPackageType,
@@ -193,9 +196,9 @@ def mojang_runtime_to_java_runtime(
)
-def adoptium_release_binary_to_java_runtime(
- rls: AdoptiumRelease,
- binary: AdoptiumBinary,
+def adoptx_release_binary_to_java_runtime(
+ rls: AdoptxRelease,
+ binary: AdoptxBinary,
runtime_os: JavaRuntimeOS,
) -> JavaRuntimeMeta:
assert binary.package is not None
@@ -216,7 +219,13 @@ def adoptium_release_binary_to_java_runtime(
),
build=rls.version_data.build,
)
- rls_name = f"{rls.vendor}_temurin_{binary.image_type}{version}"
+
+ if rls.vendor == "eclipse":
+ rls_distribution = "temurin"
+ elif rls.vendor == "ibm":
+ rls_distribution = "semeru-open"
+
+ rls_name = f"{rls.vendor}_{rls_distribution}_{binary.image_type}{version}"
return JavaRuntimeMeta(
name=rls_name,
vendor=rls.vendor,
@@ -315,7 +324,7 @@ def main():
def add_java_runtime(runtime: JavaRuntimeMeta, major: int):
if major not in javas:
javas[major] = list[JavaRuntimeMeta]()
- print(f"Regestering runtime: {runtime.name} for Java {major}")
+ print(f"Registering runtime: {runtime.name} for Java {major}")
javas[major].append(runtime)
# only add specific versions to the list
@@ -349,18 +358,18 @@ def main():
print("Processing Adoptium Releases")
adoptium_path = os.path.join(UPSTREAM_DIR, ADOPTIUM_DIR, "available_releases.json")
if os.path.exists(adoptium_path):
- adoptium_available_releases = AdoptiumAvailableReleases.parse_file(
+ adoptium_available_releases = AdoptxAvailableReleases.parse_file(
adoptium_path
)
for major in adoptium_available_releases.available_releases:
- adoptium_releases = AdoptiumReleases.parse_file(
+ adoptium_releases = AdoptxReleases.parse_file(
os.path.join(UPSTREAM_DIR, ADOPTIUM_VERSIONS_DIR, f"java{major}.json")
)
for _, rls in adoptium_releases:
for binary in rls.binaries:
if (
binary.package is None
- or binary.image_type is not AdoptiumImageType.Jre
+ or binary.image_type is not AdoptxImageType.Jre
):
continue
binary_arch = translate_arch(str(binary.architecture))
@@ -370,13 +379,44 @@ def main():
continue
java_os = JavaRuntimeOS(f"{binary_os}-{binary_arch}")
- runtime = adoptium_release_binary_to_java_runtime(
+ runtime = adoptx_release_binary_to_java_runtime(
rls, binary, java_os
)
add_java_runtime(runtime, major)
-
writeJavas(javas=javas, uid=JAVA_ADOPTIUM_COMPONENT)
javas = {}
+
+ print("Processing OpenJ9 Releases")
+ openj9_path = os.path.join(UPSTREAM_DIR, OPENJ9_DIR, "available_releases.json")
+ if os.path.exists(openj9_path):
+ openj9_available_releases = AdoptxAvailableReleases.parse_file(
+ openj9_path
+ )
+ for major in openj9_available_releases.available_releases:
+ openj9_releases = AdoptxReleases.parse_file(
+ os.path.join(UPSTREAM_DIR, OPENJ9_VERSIONS_DIR, f"java{major}.json")
+ )
+ for _, rls in openj9_releases:
+ for binary in rls.binaries:
+ if (
+ binary.package is None
+ or binary.image_type is not AdoptxImageType.Jre
+ ):
+ continue
+ binary_arch = translate_arch(str(binary.architecture))
+ binary_os = translate_os(str(binary.os))
+ if binary_arch is None or binary_os is None:
+ print(f"Ignoring release for {binary.os} {binary.architecture}")
+ continue
+
+ java_os = JavaRuntimeOS(f"{binary_os}-{binary_arch}")
+ runtime = adoptx_release_binary_to_java_runtime(
+ rls, binary, java_os
+ )
+ add_java_runtime(runtime, major)
+ writeJavas(javas=javas, uid=JAVA_OPENJ9_COMPONENT)
+ javas = {}
+
print("Processing Azul Packages")
azul_path = os.path.join(UPSTREAM_DIR, AZUL_DIR, "packages.json")
if os.path.exists(azul_path):
@@ -410,7 +450,7 @@ def main():
writeJavas(javas=javas, uid=JAVA_AZUL_COMPONENT)
javas = {}
- # constructs the missing mojang javas based on adoptium or azul
+ # constructs the missing mojang javas based on adoptium or azul (do not consider openj9 since it is for more niche cases)
def get_mojang_extra_java(
mojang_component: MojangJavaComponent, java_os: JavaRuntimeOS
) -> JavaRuntimeMeta | None:
@@ -434,6 +474,7 @@ def main():
mojang_java_manifest = JavaIndex.parse_file(
os.path.join(UPSTREAM_DIR, JAVA_MANIFEST_FILE)
)
+ # print(mojang_java_manifest)
for mojang_os_name in mojang_java_manifest:
if mojang_os_name == MojangJavaOsName.Gamecore:
continue # empty
@@ -471,7 +512,7 @@ def main():
major = int(mojang_runtime.version.name.partition(".")[0])
runtime = mojang_runtime_to_java_runtime(mojang_runtime, comp, java_os)
add_java_runtime(runtime, major)
- # mojang doesn't provide any versions for the following systems so borrow info from adoptium/azul
+ # mojang doesn't provide any versions for the following systems so borrow info from adoptium/azul (do not consider openj9 since it is for more niche cases)
for java_os in [
JavaRuntimeOS.WindowsArm32,
JavaRuntimeOS.LinuxArm32,