From d289acd24d0a29fae31c44dac5a0f4b169dde3a0 Mon Sep 17 00:00:00 2001 From: Callum Rogers Date: Fri, 1 Sep 2023 10:34:10 +0100 Subject: [PATCH] Remove version from JDK path (#1516) Remove version from JDK path when JDKs are included in dists. --- changelog/@unreleased/pr-1516.v2.yml | 5 +++++ .../JavaServiceDistributionExtension.java | 7 +++---- .../service/JdksInDistsIntegrationSpec.groovy | 18 +++++++++--------- 3 files changed, 17 insertions(+), 13 deletions(-) create mode 100644 changelog/@unreleased/pr-1516.v2.yml diff --git a/changelog/@unreleased/pr-1516.v2.yml b/changelog/@unreleased/pr-1516.v2.yml new file mode 100644 index 000000000..de601c24f --- /dev/null +++ b/changelog/@unreleased/pr-1516.v2.yml @@ -0,0 +1,5 @@ +type: improvement +improvement: + description: Remove version from JDK path when JDKs are included in dists. + links: + - https://github.com/palantir/sls-packaging/pull/1516 diff --git a/gradle-sls-packaging/src/main/java/com/palantir/gradle/dist/service/JavaServiceDistributionExtension.java b/gradle-sls-packaging/src/main/java/com/palantir/gradle/dist/service/JavaServiceDistributionExtension.java index 969060439..0c07c86e4 100644 --- a/gradle-sls-packaging/src/main/java/com/palantir/gradle/dist/service/JavaServiceDistributionExtension.java +++ b/gradle-sls-packaging/src/main/java/com/palantir/gradle/dist/service/JavaServiceDistributionExtension.java @@ -265,7 +265,7 @@ private static GcProfile getDefaultGcProfile(JavaVersion javaVersion) { return new GcProfile.Throughput(); } - final String jdkPathInDist(JavaVersion javaVersionValue) { + public final String jdkPathInDist(JavaVersion javaVersionValue) { // We put the JDK in a directory that contains the name and version of service. This is because in our cloud // environments (and some customer environments), there is a third party security scanning tool that will report // vulnerabilities in the JDK by printing a path, but does not display symlinks. This means it's hard to tell @@ -273,11 +273,10 @@ final String jdkPathInDist(JavaVersion javaVersionValue) { // and you end up with a report like so: // Path: /opt/palantir/services/.24710105/service/jdk17 // rather than more useful: - // Path: /opt/palantir/services/.24710105/service/multipass-2.1.3-jdks/jdk17 + // Path: /opt/palantir/services/.24710105/service/multipass-jdks/jdk17 // which is implemented below. return String.format( - "service/%s-%s-jdks/jdk%s", - getDistributionServiceName().get(), project.getVersion(), javaVersionValue.getMajorVersion()); + "service/%s-jdks/jdk%s", getDistributionServiceName().get(), javaVersionValue.getMajorVersion()); } } diff --git a/gradle-sls-packaging/src/test/groovy/com/palantir/gradle/dist/service/JdksInDistsIntegrationSpec.groovy b/gradle-sls-packaging/src/test/groovy/com/palantir/gradle/dist/service/JdksInDistsIntegrationSpec.groovy index c69a50554..6d1b4d278 100644 --- a/gradle-sls-packaging/src/test/groovy/com/palantir/gradle/dist/service/JdksInDistsIntegrationSpec.groovy +++ b/gradle-sls-packaging/src/test/groovy/com/palantir/gradle/dist/service/JdksInDistsIntegrationSpec.groovy @@ -73,7 +73,7 @@ class JdksInDistsIntegrationSpec extends IntegrationSpec { then: def rootDir = extractDist() - def jdkDir = new File(rootDir, "service/myService-1.0.0-jdks/jdk17") + def jdkDir = new File(rootDir, "service/myService-jdks/jdk17") jdkDir.exists() def releaseFileText = new File(jdkDir, "release").text @@ -81,8 +81,8 @@ class JdksInDistsIntegrationSpec extends IntegrationSpec { releaseFileText.contains 'its a jdk trust me' def launcherStatic = new File(rootDir, "service/bin/launcher-static.yml").text - launcherStatic.contains 'javaHome: "service/myService-1.0.0-jdks/jdk17"' - launcherStatic.contains ' JAVA_17_HOME: "service/myService-1.0.0-jdks/jdk17"' + launcherStatic.contains 'javaHome: "service/myService-jdks/jdk17"' + launcherStatic.contains ' JAVA_17_HOME: "service/myService-jdks/jdk17"' } def 'multiple jdks can exist in the dist'() { @@ -103,17 +103,17 @@ class JdksInDistsIntegrationSpec extends IntegrationSpec { def rootDir = extractDist() def launcherStatic = new File(rootDir, "service/bin/launcher-static.yml").text - launcherStatic.contains 'javaHome: "service/myService-1.0.0-jdks/jdk17"' + launcherStatic.contains 'javaHome: "service/myService-jdks/jdk17"' for (version in [11, 13, 17]) { - def jdkDir = new File(rootDir, "service/myService-1.0.0-jdks/jdk" + version) + def jdkDir = new File(rootDir, "service/myService-jdks/jdk" + version) assert jdkDir.exists() def releaseFileText = new File(jdkDir, "release").text assert releaseFileText.contains('its a jdk trust me') - def envVarLine = " JAVA_${version}_HOME: \"service/myService-1.0.0-jdks/jdk${version}\"" + def envVarLine = " JAVA_${version}_HOME: \"service/myService-jdks/jdk${version}\"" assert launcherStatic.contains(envVarLine) } } @@ -146,7 +146,7 @@ class JdksInDistsIntegrationSpec extends IntegrationSpec { // A way of fixing this tests seems to open up the possibility of making extra unnecessary JDK repos - ensure // this does not happen. - !new File(rootDir, "service/myService-1.0.0-jdks/jdk11").exists() + !new File(rootDir, "service/myService-jdks/jdk11").exists() } def 'even a user clearing env does not get rid of JAVA_XX_HOME env vars'() { @@ -169,8 +169,8 @@ class JdksInDistsIntegrationSpec extends IntegrationSpec { def launcherStatic = new File(rootDir, "service/bin/launcher-static.yml").text - launcherStatic.contains 'JAVA_11_HOME: "service/myService-1.0.0-jdks/jdk11"' - launcherStatic.contains 'JAVA_17_HOME: "service/myService-1.0.0-jdks/jdk17"' + launcherStatic.contains 'JAVA_11_HOME: "service/myService-jdks/jdk11"' + launcherStatic.contains 'JAVA_17_HOME: "service/myService-jdks/jdk17"' } private File extractDist() {