Skip to content

Commit 7c034c3

Browse files
committed
Merge branch '2.5.x'
Closes spring-projectsgh-27967
2 parents 8c819c9 + f530819 commit 7c034c3

File tree

2 files changed

+22
-22
lines changed
  • buildSrc/src/main/java/org/springframework/boot/build/optional
  • spring-boot-project/spring-boot-tools/spring-boot-gradle-test-support/src/main/java/org/springframework/boot/testsupport/gradle/testkit

2 files changed

+22
-22
lines changed
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2012-2020 the original author or authors.
2+
* Copyright 2012-2021 the original author or authors.
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -19,19 +19,15 @@
1919
import org.gradle.api.Plugin;
2020
import org.gradle.api.Project;
2121
import org.gradle.api.artifacts.Configuration;
22-
import org.gradle.api.attributes.Usage;
2322
import org.gradle.api.plugins.JavaPlugin;
2423
import org.gradle.api.plugins.JavaPluginConvention;
2524
import org.gradle.api.tasks.SourceSetContainer;
26-
import org.gradle.api.tasks.javadoc.Javadoc;
27-
import org.gradle.plugins.ide.eclipse.EclipsePlugin;
28-
import org.gradle.plugins.ide.eclipse.model.EclipseModel;
2925

3026
/**
3127
* A {@code Plugin} that adds support for Maven-style optional dependencies. Creates a new
3228
* {@code optional} configuration. The {@code optional} configuration is part of the
33-
* project's compile and runtime classpath's but does not affect the classpath of
34-
* dependent projects.
29+
* project's compile and runtime classpaths but does not affect the classpath of dependent
30+
* projects.
3531
*
3632
* @author Andy Wilkinson
3733
*/
@@ -44,22 +40,19 @@ public class OptionalDependenciesPlugin implements Plugin<Project> {
4440

4541
@Override
4642
public void apply(Project project) {
47-
Configuration optional = project.getConfigurations().create(OPTIONAL_CONFIGURATION_NAME);
48-
optional.attributes((attributes) -> attributes.attribute(Usage.USAGE_ATTRIBUTE,
49-
project.getObjects().named(Usage.class, Usage.JAVA_RUNTIME)));
43+
Configuration optional = project.getConfigurations().create("optional");
44+
optional.setCanBeConsumed(false);
45+
optional.setCanBeResolved(false);
5046
project.getPlugins().withType(JavaPlugin.class, (javaPlugin) -> {
5147
SourceSetContainer sourceSets = project.getConvention().getPlugin(JavaPluginConvention.class)
5248
.getSourceSets();
5349
sourceSets.all((sourceSet) -> {
54-
sourceSet.setCompileClasspath(sourceSet.getCompileClasspath().plus(optional));
55-
sourceSet.setRuntimeClasspath(sourceSet.getRuntimeClasspath().plus(optional));
50+
project.getConfigurations().getByName(sourceSet.getCompileClasspathConfigurationName())
51+
.extendsFrom(optional);
52+
project.getConfigurations().getByName(sourceSet.getRuntimeClasspathConfigurationName())
53+
.extendsFrom(optional);
5654
});
57-
project.getTasks().withType(Javadoc.class)
58-
.all((javadoc) -> javadoc.setClasspath(javadoc.getClasspath().plus(optional)));
5955
});
60-
project.getPlugins().withType(EclipsePlugin.class,
61-
(eclipsePlugin) -> project.getExtensions().getByType(EclipseModel.class)
62-
.classpath((classpath) -> classpath.getPlusConfigurations().add(optional)));
6356
}
6457

6558
}

spring-boot-project/spring-boot-tools/spring-boot-gradle-test-support/src/main/java/org/springframework/boot/testsupport/gradle/testkit/GradleBuild.java

+12-5
Original file line numberDiff line numberDiff line change
@@ -44,9 +44,6 @@
4444
import org.gradle.testkit.runner.BuildResult;
4545
import org.gradle.testkit.runner.GradleRunner;
4646
import org.gradle.util.GradleVersion;
47-
import org.jetbrains.kotlin.cli.common.PropertiesKt;
48-
import org.jetbrains.kotlin.compilerRunner.KotlinLogger;
49-
import org.jetbrains.kotlin.daemon.client.KotlinCompilerClient;
5047
import org.jetbrains.kotlin.gradle.model.KotlinProject;
5148
import org.jetbrains.kotlin.gradle.plugin.KotlinCompilerPluginSupportPlugin;
5249
import org.jetbrains.kotlin.gradle.plugin.KotlinPlugin;
@@ -113,9 +110,10 @@ private List<File> pluginClasspath() {
113110
new File("build/resources/main"), new File(pathOfJarContaining(LaunchScript.class)),
114111
new File(pathOfJarContaining(ClassVisitor.class)),
115112
new File(pathOfJarContaining(DependencyManagementPlugin.class)),
116-
new File(pathOfJarContaining(PropertiesKt.class)), new File(pathOfJarContaining(KotlinLogger.class)),
113+
new File(pathOfJarContaining("org.jetbrains.kotlin.cli.common.PropertiesKt")),
114+
new File(pathOfJarContaining("org.jetbrains.kotlin.compilerRunner.KotlinLogger")),
117115
new File(pathOfJarContaining(KotlinPlugin.class)), new File(pathOfJarContaining(KotlinProject.class)),
118-
new File(pathOfJarContaining(KotlinCompilerClient.class)),
116+
new File(pathOfJarContaining("org.jetbrains.kotlin.daemon.client.KotlinCompilerClient")),
119117
new File(pathOfJarContaining(KotlinCompilerPluginSupportPlugin.class)),
120118
new File(pathOfJarContaining(LanguageSettings.class)),
121119
new File(pathOfJarContaining(ArchiveEntry.class)), new File(pathOfJarContaining(BuildRequest.class)),
@@ -127,6 +125,15 @@ private List<File> pluginClasspath() {
127125
new File(pathOfJarContaining(Toml.class)), new File(pathOfJarContaining(Lexer.class)));
128126
}
129127

128+
private String pathOfJarContaining(String className) {
129+
try {
130+
return pathOfJarContaining(Class.forName(className));
131+
}
132+
catch (ClassNotFoundException ex) {
133+
throw new IllegalArgumentException(ex);
134+
}
135+
}
136+
130137
private String pathOfJarContaining(Class<?> type) {
131138
return type.getProtectionDomain().getCodeSource().getLocation().getPath();
132139
}

0 commit comments

Comments
 (0)