diff options
Diffstat (limited to 'meta/model')
| -rw-r--r-- | meta/model/java.py | 151 |
1 files changed, 92 insertions, 59 deletions
diff --git a/meta/model/java.py b/meta/model/java.py index b941860726..4a7571e491 100644 --- a/meta/model/java.py +++ b/meta/model/java.py @@ -18,7 +18,7 @@ class JavaRuntimeOS(StrEnum): MacOsX64 = "mac-os-x64" MacOsX86 = "mac-os-x86" # rare MacOsArm64 = "mac-os-arm64" - # MacOsArm32 = "mac-os-arm32" # doesn't exsist + # MacOsArm32 = "mac-os-arm32" # doesn't exist LinuxX64 = "linux-x64" LinuxX86 = "linux-x86" LinuxArm64 = "linux-arm64" @@ -123,15 +123,18 @@ class APIQuery(MetaBase): return urlencode(set_parts, doseq=True) -class AdoptiumJvmImpl(StrEnum): - Hostspot = "hotspot" +# Adoptx refers to both Adoptium (Eclipse Temurin) and AdoptOpenJDK (IBM Semeru Runtime Open Edition) +class AdoptxJvmImpl(StrEnum): + Hotspot = "hotspot" + OpenJ9 = "openj9" -class AdoptiumVendor(StrEnum): +class AdoptxVendor(StrEnum): Eclipse = "eclipse" + Ibm = "ibm" -class AdoptiumArchitecture(StrEnum): +class AdoptxArchitecture(StrEnum): X64 = "x64" X86 = "x86" X32 = "x32" @@ -144,22 +147,22 @@ class AdoptiumArchitecture(StrEnum): Riscv64 = "riscv64" -class AdoptiumReleaseType(StrEnum): - GenralAccess = "ga" +class AdoptxReleaseType(StrEnum): + GeneralAccess = "ga" EarlyAccess = "ea" -class AdoptiumSortMethod(StrEnum): +class AdoptxSortMethod(StrEnum): Default = "DEFAULT" Date = "DATE" -class AdoptiumSortOrder(StrEnum): +class AdoptxSortOrder(StrEnum): Asc = "ASC" Desc = "DESC" -class AdoptiumImageType(StrEnum): +class AdoptxImageType(StrEnum): Jdk = "jdk" Jre = "jre" Testimage = "testimage" @@ -169,12 +172,12 @@ class AdoptiumImageType(StrEnum): Sbom = "sbom" -class AdoptiumHeapSize(StrEnum): +class AdoptxHeapSize(StrEnum): Normal = "normal" Large = "large" -class AdoptiumProject(StrEnum): +class AdoptxProject(StrEnum): Jdk = "jdk" Valhalla = "valhalla" Metropolis = "metropolis" @@ -182,12 +185,12 @@ class AdoptiumProject(StrEnum): Shenandoah = "shenandoah" -class AdoptiumCLib(StrEnum): +class AdoptxCLib(StrEnum): Musl = "musl" Glibc = "glibc" -class AdoptiumOs(StrEnum): +class AdoptxOs(StrEnum): Linux = "linux" Windows = "windows" Mac = "mac" @@ -196,43 +199,72 @@ class AdoptiumOs(StrEnum): AlpineLinux = "alpine-linux" -ADOPTIUM_API_BASE = " https://api.adoptium.net" -ADOPTIUM_API_FEATURE_RELEASES = f"{ADOPTIUM_API_BASE}/v3/assets/feature_releases/{{feature_version}}/{{release_type}}" +ADOPTIUM_API_BASE = "https://api.adoptium.net" +OPENJ9_API_BASE = " https://api.adoptopenjdk.net" +ADOPTX_API_FEATURE_RELEASES = f"{{base_url}}/v3/assets/feature_releases/{{feature_version}}/{{release_type}}" # ?image_type={{image_type}}&heap_size={{heap_size}}&project={{project}}&vendor={{vendor}}&page_size={{page_size}}&page={{page}}&sort_method={{sort_method}}&sort_order={{sort_order}} -ADOPTIUM_API_AVAILABLE_RELEASES = f"{ADOPTIUM_API_BASE}/v3/info/available_releases" +ADOPTX_API_AVAILABLE_RELEASES = f"{{base_url}}/v3/info/available_releases" -class AdoptiumAPIFeatureReleasesQuery(APIQuery): - architecture: Optional[AdoptiumArchitecture] = None +class AdoptxAPIFeatureReleasesQuery(APIQuery): + architecture: Optional[AdoptxArchitecture] = None before: Optional[datetime] = None - c_lib: Optional[AdoptiumCLib] = None - heap_size: Optional[AdoptiumHeapSize] = AdoptiumHeapSize.Normal - image_type: Optional[AdoptiumImageType] = None - jvm_impl: Optional[AdoptiumJvmImpl] = None - os: Optional[AdoptiumOs] = None + c_lib: Optional[AdoptxCLib] = None + heap_size: Optional[AdoptxHeapSize] = AdoptxHeapSize.Normal + image_type: Optional[AdoptxImageType] = None + jvm_impl: Optional[AdoptxJvmImpl] = None + os: Optional[AdoptxOs] = None + vendor: Optional[AdoptxVendor] = None page_size: int = 10 page: int = 0 - project: Optional[AdoptiumProject] = AdoptiumProject.Jdk - sort_method: Optional[AdoptiumSortMethod] = AdoptiumSortMethod.Default - sort_order: Optional[AdoptiumSortOrder] = AdoptiumSortOrder.Desc - vendor: Optional[AdoptiumVendor] = AdoptiumVendor.Eclipse + project: Optional[AdoptxProject] = AdoptxProject.Jdk + sort_method: Optional[AdoptxSortMethod] = AdoptxSortMethod.Default + sort_order: Optional[AdoptxSortOrder] = AdoptxSortOrder.Desc -def adoptiumAPIFeatureReleasesUrl( - feature: int, - release_type: AdoptiumReleaseType = AdoptiumReleaseType.GenralAccess, - query: AdoptiumAPIFeatureReleasesQuery = AdoptiumAPIFeatureReleasesQuery(), +def adoptxAPIFeatureReleasesUrl( + base_url: str, + feature_version: int, + release_type: AdoptxReleaseType = AdoptxReleaseType.GeneralAccess, + query: AdoptxAPIFeatureReleasesQuery = AdoptxAPIFeatureReleasesQuery(), ): url = urlparse( - ADOPTIUM_API_FEATURE_RELEASES.format( - feature_version=feature, + ADOPTX_API_FEATURE_RELEASES.format( + base_url=base_url, + feature_version=feature_version, release_type=release_type.value, ) ) return urlunparse(url._replace(query=query.to_query())) -class AdoptiumAvailableReleases(MetaBase): +def adoptiumAPIFeatureReleasesUrl( + feature_version: int, + release_type: AdoptxReleaseType = AdoptxReleaseType.GeneralAccess, + query: AdoptxAPIFeatureReleasesQuery = AdoptxAPIFeatureReleasesQuery(), +): + return adoptxAPIFeatureReleasesUrl( + feature_version=feature_version, + release_type=release_type, + query=query, + base_url=ADOPTIUM_API_BASE, + ) + + +def openj9APIFeatureReleasesUrl( + feature_version: int, + release_type: AdoptxReleaseType = AdoptxReleaseType.GeneralAccess, + query: AdoptxAPIFeatureReleasesQuery = AdoptxAPIFeatureReleasesQuery(), +): + return adoptxAPIFeatureReleasesUrl( + feature_version=feature_version, + release_type=release_type, + query=query, + base_url=OPENJ9_API_BASE, + ) + + +class AdoptxAvailableReleases(MetaBase): available_releases: list[int] available_lts_releases: list[int] most_recent_lts: Optional[int] @@ -241,13 +273,13 @@ class AdoptiumAvailableReleases(MetaBase): tip_version: Optional[int] -class AdoptiumFile(MetaBase): +class AdoptxFile(MetaBase): name: str link: str size: Optional[int] -class AdoptiumPackage(AdoptiumFile): +class AdoptxPackage(AdoptxFile): checksum: Optional[str] checksum_link: Optional[str] signature_link: Optional[str] @@ -255,22 +287,22 @@ class AdoptiumPackage(AdoptiumFile): # we intentionally omit download_count -class AdoptiumBinary(MetaBase): +class AdoptxBinary(MetaBase): os: str - architecture: AdoptiumArchitecture - image_type: AdoptiumImageType - c_lib: Optional[AdoptiumCLib] - jvm_impl: AdoptiumJvmImpl - package: Optional[AdoptiumPackage] - installer: Optional[AdoptiumPackage] - heap_size: AdoptiumHeapSize + architecture: AdoptxArchitecture + image_type: AdoptxImageType + c_lib: Optional[AdoptxCLib] + jvm_impl: AdoptxJvmImpl + package: Optional[AdoptxPackage] + installer: Optional[AdoptxPackage] + heap_size: AdoptxHeapSize updated_at: datetime scm_ref: Optional[str] - project: AdoptiumProject + project: AdoptxProject # we intentionally omit download_count -class AdoptiumVersion(MetaBase): +class AdoptxVersion(MetaBase): major: Optional[int] minor: Optional[int] security: Optional[int] @@ -283,31 +315,31 @@ class AdoptiumVersion(MetaBase): optional: Optional[str] -class AdoptiumRelease(MetaBase): +class AdoptxRelease(MetaBase): release_id: str = Field(alias="id") release_link: str release_name: str timestamp: datetime updated_at: datetime - binaries: list[AdoptiumBinary] + binaries: list[AdoptxBinary] release_type: str - vendor: AdoptiumVendor - version_data: AdoptiumVersion - source: Optional[AdoptiumFile] - release_notes: Optional[AdoptiumFile] + vendor: AdoptxVendor + version_data: AdoptxVersion + source: Optional[AdoptxFile] + release_notes: Optional[AdoptxFile] # we intentionally omit download_count -class AdoptiumReleases(MetaBase): - __root__: list[AdoptiumRelease] +class AdoptxReleases(MetaBase): + __root__: list[AdoptxRelease] - def __iter__(self) -> Generator[tuple[str, AdoptiumRelease], None, None]: + def __iter__(self) -> Generator[tuple[str, AdoptxRelease], None, None]: yield from ((str(i), val) for i, val in enumerate(self.__root__)) - def __getitem__(self, item: int) -> AdoptiumRelease: + def __getitem__(self, item: int) -> AdoptxRelease: return self.__root__[item] - def append(self, rls: AdoptiumRelease): + def append(self, rls: AdoptxRelease): self.__root__.append(rls) @@ -556,7 +588,8 @@ class ZuluPackagesDetail(MetaBase): MOJANG_OS_NAMES = ["mac-os", "linux", "windows"] MOJANG_OS_ARCHITECTURES = [ - "x64" "x86", + "x64", + "x86", "arm64", "arm32", ] |
