优化 Java 下载功能 (#3342)

* update

* update
This commit is contained in:
Glavo 2024-10-15 18:47:57 +08:00 committed by GitHub
parent 32c3b694b3
commit 5b345affec
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 17 additions and 4 deletions

View File

@ -79,7 +79,7 @@ public final class DiscoFetchJavaListTask extends Task<TreeMap<Integer, DiscoJav
TreeMap<Integer, DiscoJavaRemoteVersion> map = new TreeMap<>();
for (DiscoJavaRemoteVersion version : result) {
if (!distribution.getApiParameter().equals(version.getDistribution()))
if (!distribution.testVersion(version))
continue;
int jdkVersion = version.getJdkVersion();

View File

@ -46,7 +46,16 @@ public enum DiscoJavaDistribution implements JavaDistribution<DiscoJavaRemoteVer
EnumSet.of(JDK, JRE, JDKFX, JREFX),
pair(WINDOWS, EnumSet.of(X86_64, X86, ARM64)),
pair(LINUX, EnumSet.of(X86_64, X86, ARM64, ARM32, RISCV64, PPC64LE)),
pair(OSX, EnumSet.of(X86_64, ARM64))),
pair(OSX, EnumSet.of(X86_64, ARM64))) {
@Override
public boolean testVersion(DiscoJavaRemoteVersion version) {
if (!super.testVersion(version))
return false;
String fileName = version.getFileName();
return !fileName.endsWith("-lite.tar.gz") && !fileName.endsWith("-lite.zip");
}
},
ZULU("Zulu", "zulu", "Azul",
EnumSet.of(JDK, JRE, JDKFX, JREFX),
pair(WINDOWS, EnumSet.of(X86_64, X86, ARM64)),
@ -54,8 +63,8 @@ public enum DiscoJavaDistribution implements JavaDistribution<DiscoJavaRemoteVer
pair(OSX, EnumSet.of(X86_64, ARM64))),
GRAALVM("GraalVM", "graalvm", "Oracle",
EnumSet.of(JDK),
pair(WINDOWS, EnumSet.of(X86_64, X86)),
pair(LINUX, EnumSet.of(X86_64, X86, ARM64, ARM32, RISCV64, PPC64LE)),
pair(WINDOWS, EnumSet.of(X86_64)),
pair(LINUX, EnumSet.of(X86_64, ARM64)),
pair(OSX, EnumSet.of(X86_64, ARM64)));
public static DiscoJavaDistribution of(String name) {
@ -113,4 +122,8 @@ public enum DiscoJavaDistribution implements JavaDistribution<DiscoJavaRemoteVer
public Task<TreeMap<Integer, DiscoJavaRemoteVersion>> getFetchJavaVersionsTask(DownloadProvider provider, Platform platform, JavaPackageType packageType) {
return new DiscoFetchJavaListTask(provider, this, platform, packageType);
}
public boolean testVersion(DiscoJavaRemoteVersion version) {
return this.getApiParameter().equals(version.getDistribution());
}
}