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
pull/21134/head
Scott Frederick 5 years ago
parent 35bc82a693
commit 28749e7fbb

@ -102,7 +102,7 @@ This configuration will use a builder image with the name `mine/java-cnb-builder
==== Builder Configuration ==== Builder Configuration
If the builder exposes configuration options, those can be set using the `environment` property. 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"] [source,groovy,indent=0,subs="verbatim,attributes",role="primary"]
.Groovy .Groovy

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

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

@ -51,7 +51,7 @@ import org.springframework.util.StringUtils;
*/ */
public class BootBuildImage extends DefaultTask { 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; private RegularFileProperty jar;
@ -246,8 +246,8 @@ public class BootBuildImage extends DefaultTask {
if (this.environment != null && !this.environment.isEmpty()) { if (this.environment != null && !this.environment.isEmpty()) {
request = request.withEnv(this.environment); request = request.withEnv(this.environment);
} }
if (this.targetJavaVersion.isPresent() && !request.getEnv().containsKey(OPENJDK_BUILDPACK_JAVA_VERSION_KEY)) { if (this.targetJavaVersion.isPresent() && !request.getEnv().containsKey(BUILDPACK_JVM_VERSION_KEY)) {
request = request.withEnv(OPENJDK_BUILDPACK_JAVA_VERSION_KEY, translateTargetJavaVersion()); request = request.withEnv(BUILDPACK_JVM_VERSION_KEY, translateTargetJavaVersion());
} }
return request; return request;
} }

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

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

@ -146,7 +146,7 @@ The builder can be specified on the command line as well, as shown in this examp
==== Builder Configuration ==== Builder Configuration
If the builder exposes configuration options using environment variables, those can be set using the `env` attributes. 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"] [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> <configuration>
<image> <image>
<env> <env>
<BP_JAVA_VERSION>13.0.1</BP_JAVA_VERSION> <BP_JVM_VERSION>13.0.1</BP_JVM_VERSION>
</env> </env>
</image> </image>
</configuration> </configuration>

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

@ -63,7 +63,7 @@ import org.springframework.util.StringUtils;
@Execute(phase = LifecyclePhase.PACKAGE) @Execute(phase = LifecyclePhase.PACKAGE)
public class BuildImageMojo extends AbstractPackagerMojo { 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. * Directory containing the JAR.
@ -175,11 +175,11 @@ public class BuildImageMojo extends AbstractPackagerMojo {
} }
private BuildRequest customizeEnvironment(BuildRequest request) { 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); JavaCompilerPluginConfiguration compilerConfiguration = new JavaCompilerPluginConfiguration(this.project);
String targetJavaVersion = compilerConfiguration.getTargetMajorVersion(); String targetJavaVersion = compilerConfiguration.getTargetMajorVersion();
if (StringUtils.hasText(targetJavaVersion)) { if (StringUtils.hasText(targetJavaVersion)) {
return request.withEnv(OPENJDK_BUILDPACK_JAVA_VERSION_KEY, targetJavaVersion + ".*"); return request.withEnv(BUILDPACK_JVM_VERSION_KEY, targetJavaVersion + ".*");
} }
} }
return request; return request;

Loading…
Cancel
Save