From 1fd4a4d86b12b631277675962cbab6b8cf7b7aa3 Mon Sep 17 00:00:00 2001 From: Andy Wilkinson Date: Mon, 14 Feb 2022 10:25:38 +0000 Subject: [PATCH] Remove code related to unsupported versions of Gradle Closes gh-29681 --- .../plugin/ApplicationPluginAction.java | 54 ++----------------- .../boot/gradle/plugin/JavaPluginAction.java | 13 ++--- .../gradle/plugin/ResolveMainClassName.java | 8 +-- .../application/CreateBootStartScripts.java | 4 +- .../tasks/buildinfo/BuildInfoProperties.java | 13 ++--- .../boot/gradle/tasks/run/BootRun.java | 13 ++--- 6 files changed, 19 insertions(+), 86 deletions(-) diff --git a/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/main/java/org/springframework/boot/gradle/plugin/ApplicationPluginAction.java b/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/main/java/org/springframework/boot/gradle/plugin/ApplicationPluginAction.java index e8e5ee78f6..5fbffeaa87 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/main/java/org/springframework/boot/gradle/plugin/ApplicationPluginAction.java +++ b/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/main/java/org/springframework/boot/gradle/plugin/ApplicationPluginAction.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2021 the original author or authors. + * Copyright 2012-2022 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. @@ -20,7 +20,6 @@ import java.io.File; import java.io.IOException; import java.io.InputStreamReader; import java.io.StringWriter; -import java.lang.reflect.Method; import java.util.concurrent.Callable; import org.gradle.api.GradleException; @@ -30,16 +29,10 @@ import org.gradle.api.distribution.Distribution; import org.gradle.api.distribution.DistributionContainer; import org.gradle.api.file.CopySpec; import org.gradle.api.file.FileCollection; -import org.gradle.api.internal.IConventionAware; import org.gradle.api.plugins.ApplicationPlugin; import org.gradle.api.plugins.ApplicationPluginConvention; -import org.gradle.api.provider.Property; -import org.gradle.api.provider.Provider; import org.gradle.jvm.application.scripts.TemplateBasedScriptGenerator; import org.gradle.jvm.application.tasks.CreateStartScripts; -import org.gradle.util.GradleVersion; - -import org.springframework.boot.gradle.tasks.application.CreateBootStartScripts; /** * Action that is executed in response to the {@link ApplicationPlugin} being applied. @@ -54,9 +47,9 @@ final class ApplicationPluginAction implements PluginApplicationAction { .getPlugin(ApplicationPluginConvention.class); DistributionContainer distributions = project.getExtensions().getByType(DistributionContainer.class); Distribution distribution = distributions.create("boot"); - configureBaseNameConvention(project, applicationConvention, distribution); - CreateStartScripts bootStartScripts = project.getTasks().create("bootStartScripts", - determineCreateStartScriptsClass()); + distribution.getDistributionBaseName() + .convention((project.provider(() -> applicationConvention.getApplicationName() + "-boot"))); + CreateStartScripts bootStartScripts = project.getTasks().create("bootStartScripts", CreateStartScripts.class); bootStartScripts .setDescription("Generates OS-specific start scripts to run the project as a Spring Boot application."); ((TemplateBasedScriptGenerator) bootStartScripts.getUnixStartScriptGenerator()) @@ -81,45 +74,6 @@ final class ApplicationPluginAction implements PluginApplicationAction { distribution.getContents().with(binCopySpec); } - private Class determineCreateStartScriptsClass() { - return isGradle64OrLater() ? CreateStartScripts.class : CreateBootStartScripts.class; - } - - private boolean isGradle64OrLater() { - return GradleVersion.current().getBaseVersion().compareTo(GradleVersion.version("6.4")) >= 0; - } - - @SuppressWarnings("unchecked") - private void configureBaseNameConvention(Project project, ApplicationPluginConvention applicationConvention, - Distribution distribution) { - Method getDistributionBaseName = findMethod(distribution.getClass(), "getDistributionBaseName"); - if (getDistributionBaseName != null) { - try { - Property distributionBaseName = (Property) distribution.getClass() - .getMethod("getDistributionBaseName").invoke(distribution); - distributionBaseName.getClass().getMethod("convention", Provider.class).invoke(distributionBaseName, - project.provider(() -> applicationConvention.getApplicationName() + "-boot")); - return; - } - catch (Exception ex) { - // Continue - } - } - if (distribution instanceof IConventionAware) { - ((IConventionAware) distribution).getConventionMapping().map("baseName", - () -> applicationConvention.getApplicationName() + "-boot"); - } - } - - private static Method findMethod(Class type, String name) { - for (Method candidate : type.getMethods()) { - if (candidate.getName().equals(name)) { - return candidate; - } - } - return null; - } - @Override public Class> getPluginClass() { return ApplicationPlugin.class; diff --git a/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/main/java/org/springframework/boot/gradle/plugin/JavaPluginAction.java b/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/main/java/org/springframework/boot/gradle/plugin/JavaPluginAction.java index 61752d1169..0b8c8fb80a 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/main/java/org/springframework/boot/gradle/plugin/JavaPluginAction.java +++ b/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/main/java/org/springframework/boot/gradle/plugin/JavaPluginAction.java @@ -47,7 +47,6 @@ import org.gradle.api.tasks.bundling.Jar; import org.gradle.api.tasks.compile.JavaCompile; import org.gradle.jvm.toolchain.JavaToolchainService; import org.gradle.jvm.toolchain.JavaToolchainSpec; -import org.gradle.util.GradleVersion; import org.springframework.boot.gradle.tasks.bundling.BootBuildImage; import org.springframework.boot.gradle.tasks.bundling.BootJar; @@ -158,15 +157,9 @@ final class JavaPluginAction implements PluginApplicationAction { } private void configureToolchainConvention(Project project, BootRun run) { - if (isGradle67OrLater()) { - JavaToolchainSpec toolchain = project.getExtensions().getByType(JavaPluginExtension.class).getToolchain(); - JavaToolchainService toolchainService = project.getExtensions().getByType(JavaToolchainService.class); - run.getJavaLauncher().convention(toolchainService.launcherFor(toolchain)); - } - } - - private boolean isGradle67OrLater() { - return GradleVersion.current().getBaseVersion().compareTo(GradleVersion.version("6.7")) >= 0; + JavaToolchainSpec toolchain = project.getExtensions().getByType(JavaPluginExtension.class).getToolchain(); + JavaToolchainService toolchainService = project.getExtensions().getByType(JavaToolchainService.class); + run.getJavaLauncher().convention(toolchainService.launcherFor(toolchain)); } private JavaPluginConvention javaPluginConvention(Project project) { diff --git a/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/main/java/org/springframework/boot/gradle/plugin/ResolveMainClassName.java b/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/main/java/org/springframework/boot/gradle/plugin/ResolveMainClassName.java index 0628330f53..97e7046415 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/main/java/org/springframework/boot/gradle/plugin/ResolveMainClassName.java +++ b/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/main/java/org/springframework/boot/gradle/plugin/ResolveMainClassName.java @@ -176,18 +176,12 @@ public class ResolveMainClassName extends DefaultTask { return resolveMainClassNameProvider; } - @SuppressWarnings("deprecation") private static String getJavaApplicationMainClass(Convention convention) { JavaApplication javaApplication = convention.findByType(JavaApplication.class); if (javaApplication == null) { return null; } - try { - return javaApplication.getMainClass().getOrNull(); - } - catch (NoSuchMethodError ex) { - return javaApplication.getMainClassName(); - } + return javaApplication.getMainClass().getOrNull(); } private static final class ClassNameReader implements Transformer { diff --git a/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/main/java/org/springframework/boot/gradle/tasks/application/CreateBootStartScripts.java b/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/main/java/org/springframework/boot/gradle/tasks/application/CreateBootStartScripts.java index 6349046241..2fd040e7c8 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/main/java/org/springframework/boot/gradle/tasks/application/CreateBootStartScripts.java +++ b/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/main/java/org/springframework/boot/gradle/tasks/application/CreateBootStartScripts.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2019 the original author or authors. + * Copyright 2012-2022 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. @@ -25,7 +25,9 @@ import org.gradle.jvm.application.tasks.CreateStartScripts; * * @author Andy Wilkinson * @since 2.0.0 + * @deprecated since 2.5.10 for removal in 2.8.0 in favor of {@link CreateStartScripts}. */ +@Deprecated public class CreateBootStartScripts extends CreateStartScripts { @Override diff --git a/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/main/java/org/springframework/boot/gradle/tasks/buildinfo/BuildInfoProperties.java b/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/main/java/org/springframework/boot/gradle/tasks/buildinfo/BuildInfoProperties.java index 44d588cede..d3a0bcedfb 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/main/java/org/springframework/boot/gradle/tasks/buildinfo/BuildInfoProperties.java +++ b/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/main/java/org/springframework/boot/gradle/tasks/buildinfo/BuildInfoProperties.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2020 the original author or authors. + * Copyright 2012-2022 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. @@ -66,14 +66,9 @@ public class BuildInfoProperties implements Serializable { } private Provider projectVersion(Project project) { - try { - Provider externalVersionProperty = project.getProviders().gradleProperty("version") - .forUseAtConfigurationTime(); - externalVersionProperty.getOrNull(); - } - catch (NoSuchMethodError ex) { - // Gradle < 6.5 - } + Provider externalVersionProperty = project.getProviders().gradleProperty("version") + .forUseAtConfigurationTime(); + externalVersionProperty.getOrNull(); return project.provider(() -> project.getVersion().toString()); } diff --git a/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/main/java/org/springframework/boot/gradle/tasks/run/BootRun.java b/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/main/java/org/springframework/boot/gradle/tasks/run/BootRun.java index dc0572eda6..e08531c414 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/main/java/org/springframework/boot/gradle/tasks/run/BootRun.java +++ b/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/main/java/org/springframework/boot/gradle/tasks/run/BootRun.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2021 the original author or authors. + * Copyright 2012-2022 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. @@ -89,14 +89,9 @@ public class BootRun extends JavaExec { } private boolean isJava13OrLater() { - try { - Property javaLauncher = this.getJavaLauncher(); - if (javaLauncher.isPresent()) { - return javaLauncher.get().getMetadata().getLanguageVersion().asInt() >= 13; - } - } - catch (NoSuchMethodError ex) { - // Continue + Property javaLauncher = this.getJavaLauncher(); + if (javaLauncher.isPresent()) { + return javaLauncher.get().getMetadata().getLanguageVersion().asInt() >= 13; } for (Method method : String.class.getMethods()) { if (method.getName().equals("stripIndent")) {