Skip to content

Commit 49dca33

Browse files
committed
iter
1 parent 1e3fb65 commit 49dca33

File tree

3 files changed

+19
-25
lines changed

3 files changed

+19
-25
lines changed

build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/transport/GlobalTransportVersionManagementPlugin.java

Lines changed: 10 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99

1010
package org.elasticsearch.gradle.internal.transport;
1111

12+
import org.elasticsearch.gradle.internal.BaseInternalPluginBuildPlugin;
1213
import org.gradle.api.Plugin;
1314
import org.gradle.api.Project;
1415
import org.gradle.api.artifacts.Configuration;
@@ -29,30 +30,24 @@ public void apply(Project project) {
2930
project.getPluginManager().apply(LifecycleBasePlugin.class);
3031

3132
DependencyHandler depsHandler = project.getDependencies();
32-
List<Dependency> tvDependencies = new ArrayList<>();
33-
// TODO: created a named configuration so deps can be added dynamically?
34-
for (String baseProjectPath : List.of(":modules", ":plugins", ":x-pack:plugin")) {
35-
Project baseProject = project.project(baseProjectPath);
36-
for (var pluginProject : baseProject.getSubprojects()) {
37-
if (pluginProject.getParent() != baseProject) {
38-
continue; // skip nested projects
39-
}
40-
tvDependencies.add(depsHandler.project(Map.of("path", pluginProject.getPath())));
41-
}
42-
}
43-
tvDependencies.add(depsHandler.project(Map.of("path", ":server")));
44-
45-
Configuration tvReferencesConfig = project.getConfigurations().detachedConfiguration(tvDependencies.toArray(new Dependency[0]));
33+
Dependency selfDependency = depsHandler.project(Map.of("path", project.getPath()));
34+
Configuration tvReferencesConfig = project.getConfigurations().detachedConfiguration(selfDependency);
4635
tvReferencesConfig.attributes(TransportVersionUtils::addTransportVersionReferencesAttribute);
4736

37+
// iterate through all projects, and if the ES plugin build plugin is applied, add that project back as a dep to check
38+
for (Project subProject : project.getRootProject().getSubprojects()) {
39+
subProject.getPlugins().withType(BaseInternalPluginBuildPlugin.class).configureEach(plugin -> {
40+
tvReferencesConfig.getDependencies().add(depsHandler.project(Map.of("path", subProject.getPath())));
41+
});
42+
}
43+
4844
var validateTask = project.getTasks()
4945
.register("validateTransportVersionDefinitions", ValidateTransportVersionDefinitionsTask.class, t -> {
5046
t.setGroup("Transport Versions");
5147
t.setDescription("Validates that all defined TransportVersion constants are used in at least one project");
5248
t.getDefinitionsDirectory().set(TransportVersionUtils.getDefinitionsDirectory(project));
5349
t.getReferencesFiles().setFrom(tvReferencesConfig);
5450
});
55-
5651
project.getTasks().named(LifecycleBasePlugin.CHECK_TASK_NAME).configure(t -> t.dependsOn(validateTask));
5752

5853
var generateManifestTask = project.getTasks()

build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/transport/TransportVersionManagementPlugin.java

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -31,13 +31,9 @@ public void apply(Project project) {
3131
t.getOutputFile().set(project.getLayout().getBuildDirectory().file("transport-version/references.txt"));
3232
});
3333

34-
Configuration transportVersionsConfig = project.getConfigurations().create("transportVersionNames", c -> {
35-
c.setCanBeConsumed(true);
36-
c.setCanBeResolved(false);
37-
c.attributes(TransportVersionUtils::addTransportVersionReferencesAttribute);
38-
});
39-
40-
project.getArtifacts().add(transportVersionsConfig.getName(), collectTask);
34+
Configuration tvReferencesConfig = project.getConfigurations().detachedConfiguration();
35+
tvReferencesConfig.attributes(TransportVersionUtils::addTransportVersionReferencesAttribute);
36+
project.getArtifacts().add(tvReferencesConfig.getName(), collectTask);
4137

4238
var validateTask = project.getTasks()
4339
.register("validateTransportVersionReferences", ValidateTransportVersionReferencesTask.class, t -> {
@@ -46,7 +42,6 @@ public void apply(Project project) {
4642
t.getDefinitionsDirectory().set(TransportVersionUtils.getDefinitionsDirectory(project));
4743
t.getReferencesFile().set(collectTask.get().getOutputFile());
4844
});
49-
5045
project.getTasks().named(LifecycleBasePlugin.CHECK_TASK_NAME).configure(t -> t.dependsOn(validateTask));
5146
}
5247
}

build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/transport/TransportVersionUtils.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -73,8 +73,12 @@ static List<TransportVersionReference> readReferencesFile(Path file) throws IOEx
7373
}
7474

7575
static Directory getDefinitionsDirectory(Project project) {
76-
Directory serverDir = project.project(":server").getLayout().getProjectDirectory();
77-
return serverDir.dir("src/main/resources/transport/defined");
76+
var projectName = project.findProperty("org.elasticsearch.transport.definitionsProject");
77+
if (projectName == null) {
78+
projectName = ":server";
79+
}
80+
Directory projectDir = project.project(projectName.toString()).getLayout().getProjectDirectory();
81+
return projectDir.dir("src/main/resources/transport/defined");
7882
}
7983

8084
static void addTransportVersionReferencesAttribute(AttributeContainer attributes) {

0 commit comments

Comments
 (0)