Skip to content

Commit 73e6379

Browse files
committed
separate into separate plugin
1 parent 2c1a15f commit 73e6379

File tree

2 files changed

+35
-13
lines changed

2 files changed

+35
-13
lines changed

build-tools/src/main/java/org/elasticsearch/gradle/plugin/PluginBuildPlugin.java

Lines changed: 3 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111

1212
import org.elasticsearch.gradle.VersionProperties;
1313
import org.elasticsearch.gradle.dependencies.CompileOnlyResolvePlugin;
14+
import org.elasticsearch.gradle.test.TestBuildInfoPlugin;
1415
import org.gradle.api.Plugin;
1516
import org.gradle.api.Project;
1617
import org.gradle.api.file.Directory;
@@ -38,6 +39,7 @@ public PluginBuildPlugin(ProviderFactory providerFactory) {
3839
@Override
3940
public void apply(final Project project) {
4041
project.getPluginManager().apply(BasePluginBuildPlugin.class);
42+
project.getPluginManager().apply(TestBuildInfoPlugin.class);
4143

4244
var dependencies = project.getDependencies();
4345
dependencies.add("compileOnly", "org.elasticsearch:elasticsearch:" + VersionProperties.getElasticsearch());
@@ -56,20 +58,9 @@ public void apply(final Project project) {
5658
task.getOutputFile().set(file);
5759
});
5860

59-
SourceSetContainer sourceSets = project.getExtensions().getByType(SourceSetContainer.class);
60-
61-
var testBuildInfoTask = project.getTasks().register("generateTestBuildInfo", GenerateTestBuildInfoTask.class, task -> {
61+
project.getTasks().withType(GenerateTestBuildInfoTask.class).named("generateTestBuildInfo").configure(task -> {
6262
var propertiesExtension = project.getExtensions().getByType(PluginPropertiesExtension.class);
6363
task.getComponentName().set(providerFactory.provider(propertiesExtension::getName));
64-
task.getCodeLocations()
65-
.set(
66-
project.getConfigurations()
67-
.getByName("runtimeClasspath")
68-
.minus(project.getConfigurations().getByName(CompileOnlyResolvePlugin.RESOLVEABLE_COMPILE_ONLY_CONFIGURATION_NAME))
69-
.plus(sourceSets.getByName(SourceSet.MAIN_SOURCE_SET_NAME).getOutput().getClassesDirs())
70-
);
71-
Provider<Directory> directory = project.getLayout().getBuildDirectory().dir("generated-build-info");
72-
task.getOutputDirectory().set(directory);
7364
});
7465

7566
project.getTasks().withType(ProcessResources.class).named("processResources").configure(task -> {
@@ -79,7 +70,6 @@ public void apply(final Project project) {
7970
copy.from(pluginProperties);
8071
copy.from(project.getLayout().getProjectDirectory().file("src/main/plugin-metadata/entitlement-policy.yaml"));
8172
});
82-
task.into("META-INF", copy -> copy.from(testBuildInfoTask));
8373
});
8474
}
8575
}

build-tools/src/main/java/org/elasticsearch/gradle/test/TestBuildInfoPlugin.java

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,45 @@
99

1010
package org.elasticsearch.gradle.test;
1111

12+
import org.elasticsearch.gradle.dependencies.CompileOnlyResolvePlugin;
13+
import org.elasticsearch.gradle.plugin.GenerateTestBuildInfoTask;
1214
import org.gradle.api.Plugin;
1315
import org.gradle.api.Project;
16+
import org.gradle.api.file.Directory;
17+
import org.gradle.api.provider.Provider;
18+
import org.gradle.api.provider.ProviderFactory;
19+
import org.gradle.api.tasks.SourceSet;
20+
import org.gradle.api.tasks.SourceSetContainer;
21+
import org.gradle.language.jvm.tasks.ProcessResources;
22+
23+
import javax.inject.Inject;
1424

1525
public class TestBuildInfoPlugin implements Plugin<Project> {
1626

27+
protected final ProviderFactory providerFactory;
28+
29+
@Inject
30+
public TestBuildInfoPlugin(ProviderFactory providerFactory) {
31+
this.providerFactory = providerFactory;
32+
}
33+
1734
@Override
1835
public void apply(Project project) {
36+
var testBuildInfoTask = project.getTasks().register("generateTestBuildInfo", GenerateTestBuildInfoTask.class, task -> {
37+
var sourceSets = project.getExtensions().getByType(SourceSetContainer.class);
38+
task.getCodeLocations()
39+
.set(
40+
project.getConfigurations()
41+
.getByName("runtimeClasspath")
42+
.minus(project.getConfigurations().getByName(CompileOnlyResolvePlugin.RESOLVEABLE_COMPILE_ONLY_CONFIGURATION_NAME))
43+
.plus(sourceSets.getByName(SourceSet.MAIN_SOURCE_SET_NAME).getOutput().getClassesDirs())
44+
);
45+
Provider<Directory> directory = project.getLayout().getBuildDirectory().dir("generated-build-info");
46+
task.getOutputDirectory().set(directory);
47+
});
1948

49+
project.getTasks().withType(ProcessResources.class).named("processResources").configure(task -> {
50+
task.into("META-INF", copy -> copy.from(testBuildInfoTask));
51+
});
2052
}
2153
}

0 commit comments

Comments
 (0)