Delete obsolete TestSourcesPlugin
Since we have migrated to Gradle's built-in test fixture support, the custom TestSourcesPlugin Gradle plugin is now obsolete. See gh-23550
This commit is contained in:
parent
7b6d83a106
commit
c91dd02905
|
@ -1,4 +1,4 @@
|
|||
# Spring Framework build
|
||||
# Spring Framework Build
|
||||
|
||||
This folder contains the custom plugins and conventions for the Spring Framework build.
|
||||
They are declared in the `build.gradle` file in this folder.
|
||||
|
@ -7,8 +7,8 @@ They are declared in the `build.gradle` file in this folder.
|
|||
|
||||
### Compiler conventions
|
||||
|
||||
The `org.springframework.build.compile` applies the Java compiler conventions to the build.
|
||||
By default, the build is compiling sources with the `1.8` source and target compatibility.
|
||||
The `org.springframework.build.compile` plubin applies the Java compiler conventions to the build.
|
||||
By default, the build compiles sources with Java `1.8` source and target compatibility.
|
||||
You can test a different source compatibility version on the CLI with a project property like:
|
||||
|
||||
```
|
||||
|
@ -25,17 +25,11 @@ but doesn't affect the classpath of dependent projects.
|
|||
This plugin does not provide a `provided` configuration, as the native `compileOnly` and `testCompileOnly`
|
||||
configurations are preferred.
|
||||
|
||||
## Test sources
|
||||
|
||||
The `org.springframework.build.test-sources` updates `testCompile` dependencies to include
|
||||
the test source sets of `project()` dependencies. This plugin is used in the Spring Framework build
|
||||
to share test utilities and fixtures amongst modules.
|
||||
|
||||
## API Diff
|
||||
|
||||
This plugin uses the [Gradle JApiCmp](https://github.com/melix/japicmp-gradle-plugin) plugin
|
||||
to generate API Diff reports for each Spring Framework module. This plugin is applied once on the root
|
||||
project and create tasks in each framework module. Unlike previous versions of this part of the build,
|
||||
project and creates tasks in each framework module. Unlike previous versions of this part of the build,
|
||||
there is no need for checking out a specific tag. The plugin will fetch the JARs we want to compare the
|
||||
current working version with. You can generate the reports for all modules or a single module:
|
||||
|
||||
|
@ -44,4 +38,4 @@ current working version with. You can generate the reports for all modules or a
|
|||
./gradlew :spring-core:apiDiff -PbaselineVersion=5.1.0.RELEASE
|
||||
```
|
||||
|
||||
The reports are located under `build/reports/api-diff/$OLDVERSION_to_$NEWVERSION/`.
|
||||
The reports are located under `build/reports/api-diff/$OLDVERSION_to_$NEWVERSION/`.
|
||||
|
|
|
@ -26,9 +26,5 @@ gradlePlugin {
|
|||
id = "org.springframework.build.optional-dependencies"
|
||||
implementationClass = "org.springframework.build.optional.OptionalDependenciesPlugin"
|
||||
}
|
||||
testSourcesPlugin {
|
||||
id = "org.springframework.build.test-sources"
|
||||
implementationClass = "org.springframework.build.testsources.TestSourcesPlugin"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,130 +0,0 @@
|
|||
/*
|
||||
* Copyright 2002-2019 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.build.testsources;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.LinkedHashSet;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import org.gradle.api.Plugin;
|
||||
import org.gradle.api.Project;
|
||||
import org.gradle.api.artifacts.Configuration;
|
||||
import org.gradle.api.artifacts.ProjectDependency;
|
||||
import org.gradle.api.plugins.JavaPlugin;
|
||||
import org.gradle.api.plugins.JavaPluginConvention;
|
||||
import org.gradle.api.tasks.SourceSet;
|
||||
import org.gradle.api.tasks.SourceSetOutput;
|
||||
|
||||
import org.springframework.build.optional.OptionalDependenciesPlugin;
|
||||
|
||||
/**
|
||||
* {@link Plugin} that automatically updates testCompile dependencies to include
|
||||
* the test source sets of {@code project()} dependencies.
|
||||
*
|
||||
* <p>This plugin is used in the Spring Framework build to share test utilities and fixtures
|
||||
* between projects.
|
||||
*
|
||||
* @author Phillip Webb
|
||||
* @author Brian Clozel
|
||||
*/
|
||||
public class TestSourcesPlugin implements Plugin<Project> {
|
||||
|
||||
/**
|
||||
* List of configurations this plugin should look for project dependencies in.
|
||||
*/
|
||||
@SuppressWarnings("deprecation")
|
||||
private static final List<String> CONFIGURATIONS = Arrays.asList(
|
||||
JavaPlugin.COMPILE_CONFIGURATION_NAME,
|
||||
JavaPlugin.API_CONFIGURATION_NAME,
|
||||
JavaPlugin.IMPLEMENTATION_CONFIGURATION_NAME,
|
||||
OptionalDependenciesPlugin.OPTIONAL_CONFIGURATION_NAME,
|
||||
JavaPlugin.TEST_COMPILE_CONFIGURATION_NAME);
|
||||
|
||||
/**
|
||||
* Projects which will not be automatically added as a test dependency.
|
||||
* <p>This is used to assist with the migration to Gradle test fixtures.
|
||||
*/
|
||||
private static final List<String> excludedProjects = Arrays.asList(
|
||||
"integration-tests",
|
||||
"kotlin-coroutines",
|
||||
"spring-aop",
|
||||
"spring-aspects",
|
||||
"spring-beans",
|
||||
"spring-context",
|
||||
"spring-context-indexer",
|
||||
"spring-context-support",
|
||||
"spring-core",
|
||||
"spring-expression",
|
||||
"spring-instrument",
|
||||
"spring-jcl",
|
||||
"spring-jdbc",
|
||||
"spring-jms",
|
||||
"spring-messaging",
|
||||
"spring-orm",
|
||||
"spring-oxm",
|
||||
// "spring-test",
|
||||
"spring-tx",
|
||||
"spring-web",
|
||||
"spring-webflux",
|
||||
// "spring-webmvc",
|
||||
"spring-websocket"
|
||||
);
|
||||
|
||||
|
||||
@Override
|
||||
public void apply(Project project) {
|
||||
project.getPlugins().withType(JavaPlugin.class, plugin -> addTestSourcesToProject(project));
|
||||
}
|
||||
|
||||
private void addTestSourcesToProject(Project project) {
|
||||
project.afterEvaluate(currentProject -> {
|
||||
Set<ProjectDependency> projectDependencies = new LinkedHashSet<>();
|
||||
collectProjectDependencies(projectDependencies, project);
|
||||
projectDependencies.forEach(dep -> addTestSourcesFromDependency(currentProject, dep));
|
||||
});
|
||||
}
|
||||
|
||||
private void collectProjectDependencies(Set<ProjectDependency> projectDependencies, Project project) {
|
||||
for (String configurationName : CONFIGURATIONS) {
|
||||
Configuration configuration = project.getConfigurations().findByName(configurationName);
|
||||
if (configuration != null) {
|
||||
configuration.getDependencies().forEach(dependency -> {
|
||||
if (dependency instanceof ProjectDependency) {
|
||||
ProjectDependency projectDependency = (ProjectDependency) dependency;
|
||||
projectDependencies.add(projectDependency);
|
||||
collectProjectDependencies(projectDependencies, projectDependency.getDependencyProject());
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@SuppressWarnings("deprecation")
|
||||
private void addTestSourcesFromDependency(Project currentProject, ProjectDependency dependency) {
|
||||
Project dependencyProject = dependency.getDependencyProject();
|
||||
if (!excludedProjects.contains(dependencyProject.getName())) {
|
||||
dependencyProject.getPlugins().withType(JavaPlugin.class, plugin -> {
|
||||
JavaPluginConvention javaPlugin = dependencyProject.getConvention().getPlugin(JavaPluginConvention.class);
|
||||
SourceSetOutput test = javaPlugin.getSourceSets().findByName(SourceSet.TEST_SOURCE_SET_NAME).getOutput();
|
||||
System.err.println(String.format("Adding test source dependencies from %s to %s", currentProject.getName(), dependencyProject.getName()));
|
||||
currentProject.getDependencies().add(JavaPlugin.TEST_COMPILE_CONFIGURATION_NAME, test);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -1,6 +1,5 @@
|
|||
apply plugin: 'org.springframework.build.compile'
|
||||
apply plugin: 'org.springframework.build.optional-dependencies'
|
||||
apply plugin: 'org.springframework.build.test-sources'
|
||||
apply from: "$rootDir/gradle/publications.gradle"
|
||||
|
||||
jar {
|
||||
|
|
|
@ -1,7 +1,5 @@
|
|||
description = "Spring Integration Tests"
|
||||
|
||||
apply plugin: "org.springframework.build.test-sources"
|
||||
|
||||
dependencies {
|
||||
testCompile(project(":spring-aop"))
|
||||
testCompile(project(":spring-beans"))
|
||||
|
|
Loading…
Reference in New Issue