Skip to content

Commit

Permalink
Support for Graal Dev builds
Browse files Browse the repository at this point in the history
  • Loading branch information
Spikhalskiy committed Mar 17, 2022
1 parent db34e6e commit bc36f50
Show file tree
Hide file tree
Showing 3 changed files with 22 additions and 8 deletions.
13 changes: 7 additions & 6 deletions src/main/java/com/palantir/gradle/graal/DownloadGraalTask.java
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,8 @@ public class DownloadGraalTask extends DefaultTask {
// RC versions don't have a windows variant, so no [ext] is needed
private static final String ARTIFACT_PATTERN_RC_VERSION =
"[url]/vm-[version]/graalvm-ce-[javaVersion]-[version]-[os]-[arch].tar.gz";
private static final String ARTIFACT_PATTERN_DEV_VERSION =
"[url]/[version]/graalvm-ce-[javaVersion]-[os]-[arch]-[version].[ext]";
private static final String ARTIFACT_PATTERN_RELEASE_VERSION =
"[url]/vm-[version]/graalvm-ce-[javaVersion]-[os]-[arch]-[version].[ext]";

Expand All @@ -58,7 +60,10 @@ public final void downloadGraal() throws IOException {
Files.createDirectories(getArchive().get().getAsFile().toPath().getParent());

final String artifactPattern =
isGraalRcVersion() ? ARTIFACT_PATTERN_RC_VERSION : ARTIFACT_PATTERN_RELEASE_VERSION;
GraalVersionUtil.isGraalRcVersion(graalVersion.get()) ? ARTIFACT_PATTERN_RC_VERSION : (
GraalVersionUtil.isGraalDevVersion(graalVersion.get()) ?
ARTIFACT_PATTERN_DEV_VERSION : ARTIFACT_PATTERN_RELEASE_VERSION
);

try (InputStream in = new URL(render(artifactPattern)).openStream()) {
Files.copy(in, getArchive().get().getAsFile().toPath(), StandardCopyOption.REPLACE_EXISTING);
Expand Down Expand Up @@ -119,7 +124,7 @@ private String render(String pattern) {
private String getOperatingSystem() {
switch (Platform.operatingSystem()) {
case MAC:
return isGraalRcVersion() ? "macos" : "darwin";
return GraalVersionUtil.isGraalRcVersion(graalVersion.get()) ? "macos" : "darwin";
case LINUX:
return "linux";
case WINDOWS:
Expand Down Expand Up @@ -150,10 +155,6 @@ private String getArchiveExtension() {
}
}

private boolean isGraalRcVersion() {
return graalVersion.get().startsWith("1.0.0-rc");
}

final void setCacheDir(Path value) {
cacheDir.set(value);
}
Expand Down
9 changes: 7 additions & 2 deletions src/main/java/com/palantir/gradle/graal/GraalExtension.java
Original file line number Diff line number Diff line change
Expand Up @@ -40,9 +40,12 @@ public class GraalExtension {
+ "{version}\\{edition}\\VC\\Auxiliary\\"
+ "Build\\vcvars64.bat";

private static final String DEFAULT_DOWNLOAD_BASE_URL = "https://github.com/oracle/graal/releases/download/";
private static final String RELEASES_DOWNLOAD_POSTFIX = "/releases/download/";
private static final String DEFAULT_DOWNLOAD_BASE_URL = "https://github.com/oracle/graal" + RELEASES_DOWNLOAD_POSTFIX;
private static final String DOWNLOAD_BASE_URL_GRAAL_19_3 =
"https://github.com/graalvm/graalvm-ce-builds/" + "releases/download/";
"https://github.com/graalvm/graalvm-ce-builds" + RELEASES_DOWNLOAD_POSTFIX;
private static final String DOWNLOAD_BASE_DEV =
"https://github.com/graalvm/graalvm-ce-dev-builds" + RELEASES_DOWNLOAD_POSTFIX;
private static final String DEFAULT_GRAAL_VERSION = "20.2.0";
private static final List<String> SUPPORTED_JAVA_VERSIONS = Arrays.asList("17", "16", "11", "8");
private static final String DEFAULT_JAVA_VERSION = "8";
Expand Down Expand Up @@ -233,6 +236,8 @@ private String getDefaultDownloadBaseUrl() {
"Unsupported GraalVM version " + graalVersion.get() + " for Java 16, needs >= 21.1.0.");
} else if (GraalVersionUtil.isGraalVersionGreaterOrEqualThan(graalVersion.get(), 19, 3)) {
return DOWNLOAD_BASE_URL_GRAAL_19_3;
} else if (GraalVersionUtil.isGraalDevVersion(graalVersion.get())) {
return DOWNLOAD_BASE_DEV;
} else if (!javaVersion.get().equals("8")) {
throw new GradleException("Unsupported Java version for GraalVM version.");
}
Expand Down
8 changes: 8 additions & 0 deletions src/main/java/com/palantir/gradle/graal/GraalVersionUtil.java
Original file line number Diff line number Diff line change
Expand Up @@ -28,5 +28,13 @@ public static boolean isGraalVersionGreaterOrEqualThan(String graalVersion, int
}
}

public static boolean isGraalRcVersion(String graalVersion) {
return graalVersion.startsWith("1.0.0-rc");
}

public static boolean isGraalDevVersion(String graalVersion) {
return graalVersion.contains("-dev-");
}

private GraalVersionUtil() {}
}

0 comments on commit bc36f50

Please sign in to comment.