Skip to content

Commit

Permalink
Support Java 17 for GraalVM 21.3.0 (#455)
Browse files Browse the repository at this point in the history
  • Loading branch information
jvican authored Oct 25, 2021
1 parent a851084 commit 813f9a8
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 2 deletions.
8 changes: 6 additions & 2 deletions src/main/java/com/palantir/gradle/graal/GraalExtension.java
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ public class GraalExtension {
private static final String DOWNLOAD_BASE_URL_GRAAL_19_3 =
"https://github.com/graalvm/graalvm-ce-builds/" + "releases/download/";
private static final String DEFAULT_GRAAL_VERSION = "20.2.0";
private static final List<String> SUPPORTED_JAVA_VERSIONS = Arrays.asList("16", "11", "8");
private static final List<String> SUPPORTED_JAVA_VERSIONS = Arrays.asList("17", "16", "11", "8");
private static final String DEFAULT_JAVA_VERSION = "8";

private final Property<String> downloadBaseUrl;
Expand Down Expand Up @@ -223,7 +223,11 @@ public final Provider<String> getGraalDirectoryName() {
}

private String getDefaultDownloadBaseUrl() {
if (javaVersion.get().equals("16")
if (javaVersion.get().equals("17")
&& !GraalVersionUtil.isGraalVersionGreaterOrEqualThan(graalVersion.get(), 21, 3)) {
throw new GradleException(
"Unsupported GraalVM version " + graalVersion.get() + " for Java 17, needs >= 21.3.0.");
} else if (javaVersion.get().equals("16")
&& !GraalVersionUtil.isGraalVersionGreaterOrEqualThan(graalVersion.get(), 21, 1)) {
throw new GradleException(
"Unsupported GraalVM version " + graalVersion.get() + " for Java 16, needs >= 21.1.0.");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -106,6 +106,26 @@ class GradleExtensionSpec extends ProjectSpec {
extension.getGraalDirectoryName().get() =~ "graalvm-ce-java16-21.1.0"
}

def 'extension should throw exception for graalVersion 21.1.0 and Java version 17'() {
when:
extension.javaVersion("17")
extension.graalVersion("21.1.0")
extension.getDownloadBaseUrl().get()

then:
thrown GradleException
}

def 'extension returns the correct Graal download URL and directory name for Java version 17 and graalVersion 21.3.0'() {
when:
extension.javaVersion("17")
extension.graalVersion("21.3.0")

then:
extension.getDownloadBaseUrl().get() =~ "https://github.com/graalvm/graalvm-ce-builds/releases/download/"
extension.getGraalDirectoryName().get() =~ "graalvm-ce-java17-21.3.0"
}

def 'extension should throw exception for unsupported Java version'() {
when:
extension.javaVersion("12")
Expand Down

0 comments on commit 813f9a8

Please sign in to comment.