Update CNB buildpack Java version env variable

Prior to this commit, the build tool plugins set the environment
variable BP_JAVA_VERSION when invoking the CNB builder to set the
version of the JDK/JRE that the builder should use in the created
image.

With CNB API 0.3, the convention changed the name of this environment
variable to BP_JVM_VERSION. This commit updates the build tool
plugins to match the newer convention.

See gh-21273
This commit is contained in:
Scott Frederick 2020-05-08 17:07:51 -05:00
parent 35bc82a693
commit 28749e7fbb
9 changed files with 17 additions and 17 deletions

View File

@ -102,7 +102,7 @@ This configuration will use a builder image with the name `mine/java-cnb-builder
==== Builder Configuration
If the builder exposes configuration options, those can be set using the `environment` property.
The following example assumes that the default builder defines a `BP_JAVA_VERSION` property (typically used to customize the JDK version the image should use):
The following example assumes that the default builder defines a `BP_JVM_VERSION` property (typically used to customize the JDK version the image should use):
[source,groovy,indent=0,subs="verbatim,attributes",role="primary"]
.Groovy

View File

@ -9,6 +9,6 @@ bootJar {
// tag::env[]
bootBuildImage {
environment = ["BP_JAVA_VERSION" : "13.0.1"]
environment = ["BP_JVM_VERSION" : "13.0.1"]
}
// end::env[]

View File

@ -11,6 +11,6 @@ tasks.getByName<BootJar>("bootJar") {
// tag::env[]
tasks.getByName<BootBuildImage>("bootBuildImage") {
environment = ["BP_JAVA_VERSION" : "13.0.1"]
environment = ["BP_JVM_VERSION" : "13.0.1"]
}
// end::env[]

View File

@ -51,7 +51,7 @@ import org.springframework.util.StringUtils;
*/
public class BootBuildImage extends DefaultTask {
private static final String OPENJDK_BUILDPACK_JAVA_VERSION_KEY = "BP_JAVA_VERSION";
private static final String BUILDPACK_JVM_VERSION_KEY = "BP_JVM_VERSION";
private RegularFileProperty jar;
@ -246,8 +246,8 @@ public class BootBuildImage extends DefaultTask {
if (this.environment != null && !this.environment.isEmpty()) {
request = request.withEnv(this.environment);
}
if (this.targetJavaVersion.isPresent() && !request.getEnv().containsKey(OPENJDK_BUILDPACK_JAVA_VERSION_KEY)) {
request = request.withEnv(OPENJDK_BUILDPACK_JAVA_VERSION_KEY, translateTargetJavaVersion());
if (this.targetJavaVersion.isPresent() && !request.getEnv().containsKey(BUILDPACK_JVM_VERSION_KEY)) {
request = request.withEnv(BUILDPACK_JVM_VERSION_KEY, translateTargetJavaVersion());
}
return request;
}

View File

@ -131,15 +131,15 @@ class BootBuildImageTests {
@Test
void whenJavaVersionIsSetInEnvironmentItIsIncludedInTheRequest() {
this.buildImage.environment("BP_JAVA_VERSION", "from-env");
this.buildImage.environment("BP_JVM_VERSION", "from-env");
this.buildImage.getTargetJavaVersion().set(JavaVersion.VERSION_1_8);
assertThat(this.buildImage.createRequest().getEnv()).containsEntry("BP_JAVA_VERSION", "from-env").hasSize(1);
assertThat(this.buildImage.createRequest().getEnv()).containsEntry("BP_JVM_VERSION", "from-env").hasSize(1);
}
@Test
void whenTargetCompatibilityIsSetThenJavaVersionIsIncludedInTheRequest() {
this.buildImage.getTargetJavaVersion().set(JavaVersion.VERSION_1_8);
assertThat(this.buildImage.createRequest().getEnv()).containsEntry("BP_JAVA_VERSION", "8.*").hasSize(1);
assertThat(this.buildImage.createRequest().getEnv()).containsEntry("BP_JVM_VERSION", "8.*").hasSize(1);
}
@Test
@ -147,7 +147,7 @@ class BootBuildImageTests {
this.buildImage.environment("ALPHA", "a");
this.buildImage.getTargetJavaVersion().set(JavaVersion.VERSION_11);
assertThat(this.buildImage.createRequest().getEnv()).containsEntry("ALPHA", "a")
.containsEntry("BP_JAVA_VERSION", "11.*").hasSize(2);
.containsEntry("BP_JVM_VERSION", "11.*").hasSize(2);
}
@Test

View File

@ -7,5 +7,5 @@ sourceCompatibility = '1.8'
targetCompatibility = '1.8'
bootBuildImage {
environment = ["BP_JAVA_VERSION" : "13.9.9"]
environment = ["BP_JVM_VERSION" : "13.9.9"]
}

View File

@ -146,7 +146,7 @@ The builder can be specified on the command line as well, as shown in this examp
==== Builder Configuration
If the builder exposes configuration options using environment variables, those can be set using the `env` attributes.
The following example assumes that the default builder defines a `BP_JAVA_VERSION` property (typically used to customize the JDK version the image should use):
The following example assumes that the default builder defines a `BP_JVM_VERSION` property (typically used to customize the JDK version the image should use):
[source,xml,indent=0,subs="verbatim,attributes"]
----
@ -160,7 +160,7 @@ The following example assumes that the default builder defines a `BP_JAVA_VERSIO
<configuration>
<image>
<env>
<BP_JAVA_VERSION>13.0.1</BP_JAVA_VERSION>
<BP_JVM_VERSION>13.0.1</BP_JVM_VERSION>
</env>
</image>
</configuration>

View File

@ -24,7 +24,7 @@
<configuration>
<image>
<env>
<BP_JAVA_VERSION>13.9.9</BP_JAVA_VERSION>
<BP_JVM_VERSION>13.9.9</BP_JVM_VERSION>
</env>
</image>
</configuration>

View File

@ -63,7 +63,7 @@ import org.springframework.util.StringUtils;
@Execute(phase = LifecyclePhase.PACKAGE)
public class BuildImageMojo extends AbstractPackagerMojo {
private static final String OPENJDK_BUILDPACK_JAVA_VERSION_KEY = "BP_JAVA_VERSION";
private static final String BUILDPACK_JVM_VERSION_KEY = "BP_JVM_VERSION";
/**
* Directory containing the JAR.
@ -175,11 +175,11 @@ public class BuildImageMojo extends AbstractPackagerMojo {
}
private BuildRequest customizeEnvironment(BuildRequest request) {
if (!request.getEnv().containsKey(OPENJDK_BUILDPACK_JAVA_VERSION_KEY)) {
if (!request.getEnv().containsKey(BUILDPACK_JVM_VERSION_KEY)) {
JavaCompilerPluginConfiguration compilerConfiguration = new JavaCompilerPluginConfiguration(this.project);
String targetJavaVersion = compilerConfiguration.getTargetMajorVersion();
if (StringUtils.hasText(targetJavaVersion)) {
return request.withEnv(OPENJDK_BUILDPACK_JAVA_VERSION_KEY, targetJavaVersion + ".*");
return request.withEnv(BUILDPACK_JVM_VERSION_KEY, targetJavaVersion + ".*");
}
}
return request;