diff --git a/spring-boot-project/spring-boot-cli/src/intTest/java/org/springframework/boot/cli/infrastructure/CommandLineInvoker.java b/spring-boot-project/spring-boot-cli/src/intTest/java/org/springframework/boot/cli/infrastructure/CommandLineInvoker.java index c1a2bffa928e..f6b56eb015b3 100644 --- a/spring-boot-project/spring-boot-cli/src/intTest/java/org/springframework/boot/cli/infrastructure/CommandLineInvoker.java +++ b/spring-boot-project/spring-boot-cli/src/intTest/java/org/springframework/boot/cli/infrastructure/CommandLineInvoker.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2020 the original author or authors. + * Copyright 2012-2021 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -83,8 +83,8 @@ private Process runCliProcess(String... args) throws IOException { private File findLaunchScript() throws IOException { File unpacked = new File(this.temp, "unpacked-cli"); if (!unpacked.isDirectory()) { - File zip = new File(new BuildOutput(getClass()).getRootLocation(), "distributions") - .listFiles((pathname) -> pathname.getName().endsWith("-bin.zip"))[0]; + File zip = new File(new BuildOutput(getClass()).getRootLocation(), + "distributions/spring-boot-cli-" + Versions.getBootVersion() + "-bin.zip"); try (ZipInputStream input = new ZipInputStream(new FileInputStream(zip))) { ZipEntry entry; while ((entry = input.getNextEntry()) != null) { diff --git a/spring-boot-project/spring-boot-cli/src/intTest/java/org/springframework/boot/cli/infrastructure/Versions.java b/spring-boot-project/spring-boot-cli/src/intTest/java/org/springframework/boot/cli/infrastructure/Versions.java new file mode 100644 index 000000000000..55669d72c306 --- /dev/null +++ b/spring-boot-project/spring-boot-cli/src/intTest/java/org/springframework/boot/cli/infrastructure/Versions.java @@ -0,0 +1,44 @@ +/* + * Copyright 2012-2021 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.boot.cli.infrastructure; + +import java.io.FileInputStream; +import java.io.IOException; +import java.util.Properties; + +/** + * Provides access to the current Boot version by referring to {@code gradle.properties}. + * + * @author Andy Wilkinson + */ +final class Versions { + + private Versions() { + } + + static String getBootVersion() { + Properties gradleProperties = new Properties(); + try (FileInputStream input = new FileInputStream("../../gradle.properties")) { + gradleProperties.load(input); + return gradleProperties.getProperty("version"); + } + catch (IOException ex) { + throw new RuntimeException(ex); + } + } + +}