Skip to content

Commit c04dad5

Browse files
authored
Add explicit dependency to validatePom and generatePom tasks. (opensearch-project#12807)
* Add explicit dependency to PomValidation Signed-off-by: Zelin Hao <zelinhao@amazon.com> * Update CHANGELOG Signed-off-by: Zelin Hao <zelinhao@amazon.com> --------- Signed-off-by: Zelin Hao <zelinhao@amazon.com>
1 parent 4010ff1 commit c04dad5

File tree

4 files changed

+19
-9
lines changed

4 files changed

+19
-9
lines changed

CHANGELOG.md

+1
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
1919
- Remote reindex: Add support for configurable retry mechanism ([#12561](https://github.com/opensearch-project/OpenSearch/pull/12561))
2020
- [Admission Control] Integrate IO Usage Tracker to the Resource Usage Collector Service and Emit IO Usage Stats ([#11880](https://github.com/opensearch-project/OpenSearch/pull/11880))
2121
- Tracing for deep search path ([#12103](https://github.com/opensearch-project/OpenSearch/pull/12103))
22+
- Add explicit dependency to validatePom and generatePom tasks ([#12103](https://github.com/opensearch-project/OpenSearch/pull/12807))
2223

2324
### Dependencies
2425
- Bump `log4j-core` from 2.18.0 to 2.19.0

buildSrc/src/main/java/org/opensearch/gradle/pluginzip/Publish.java

+5-4
Original file line numberDiff line numberDiff line change
@@ -65,9 +65,6 @@ public void apply(Project project) {
6565
addLocalMavenRepo(project);
6666
addZipArtifact(project);
6767
Task validatePluginZipPom = project.getTasks().findByName("validatePluginZipPom");
68-
if (validatePluginZipPom != null) {
69-
validatePluginZipPom.dependsOn("generatePomFileForNebulaPublication");
70-
}
7168

7269
// There are number of tasks prefixed by 'publishPluginZipPublication', f.e.:
7370
// publishPluginZipPublicationToZipStagingRepository, publishPluginZipPublicationToMavenLocal
@@ -76,7 +73,11 @@ public void apply(Project project) {
7673
.filter(t -> t.getName().startsWith("publishPluginZipPublicationTo"))
7774
.collect(Collectors.toSet());
7875
if (!publishPluginZipPublicationToTasks.isEmpty()) {
79-
publishPluginZipPublicationToTasks.forEach(t -> t.dependsOn("generatePomFileForNebulaPublication"));
76+
if (validatePluginZipPom != null) {
77+
publishPluginZipPublicationToTasks.forEach(t -> t.dependsOn(validatePluginZipPom));
78+
} else {
79+
publishPluginZipPublicationToTasks.forEach(t -> t.dependsOn("generatePomFileForNebulaPublication"));
80+
}
8081
}
8182
} else {
8283
project.getLogger()

buildSrc/src/main/java/org/opensearch/gradle/precommit/PomValidationPrecommitPlugin.java

+12-5
Original file line numberDiff line numberDiff line change
@@ -48,17 +48,24 @@ public class PomValidationPrecommitPlugin extends PrecommitPlugin {
4848
public TaskProvider<? extends Task> createTask(Project project) {
4949
TaskProvider<Task> validatePom = project.getTasks().register("validatePom");
5050
PublishingExtension publishing = project.getExtensions().getByType(PublishingExtension.class);
51-
publishing.getPublications().all(publication -> {
51+
publishing.getPublications().configureEach(publication -> {
5252
String publicationName = Util.capitalize(publication.getName());
5353
TaskProvider<PomValidationTask> validateTask = project.getTasks()
5454
.register("validate" + publicationName + "Pom", PomValidationTask.class);
5555
validatePom.configure(t -> t.dependsOn(validateTask));
56+
TaskProvider<GenerateMavenPom> generateMavenPom = project.getTasks()
57+
.withType(GenerateMavenPom.class)
58+
.named("generatePomFileFor" + publicationName + "Publication");
5659
validateTask.configure(task -> {
57-
GenerateMavenPom generateMavenPom = project.getTasks()
58-
.withType(GenerateMavenPom.class)
59-
.getByName("generatePomFileFor" + publicationName + "Publication");
6060
task.dependsOn(generateMavenPom);
61-
task.getPomFile().fileValue(generateMavenPom.getDestination());
61+
task.getPomFile().fileProvider(generateMavenPom.map(GenerateMavenPom::getDestination));
62+
publishing.getPublications().configureEach(publicationForPomGen -> {
63+
task.mustRunAfter(
64+
project.getTasks()
65+
.withType(GenerateMavenPom.class)
66+
.getByName("generatePomFileFor" + Util.capitalize(publicationForPomGen.getName()) + "Publication")
67+
);
68+
});
6269
});
6370
});
6471

buildSrc/src/main/java/org/opensearch/gradle/precommit/PomValidationTask.java

+1
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,7 @@ private <T> void validateNonNull(String element, T value, Runnable validator) {
106106

107107
private void validateString(String element, String value) {
108108
validateNonNull(element, value, () -> validateNonEmpty(element, value, s -> s.trim().isEmpty()));
109+
getLogger().info(element + " with value " + value + " is validated.");
109110
}
110111

111112
private <T> void validateCollection(String element, Collection<T> value, Consumer<T> validator) {

0 commit comments

Comments
 (0)