From 7720ae0d0412a97b77d1077be08cca6a95eedecf Mon Sep 17 00:00:00 2001 From: Andriy Redko Date: Mon, 9 May 2022 10:38:20 -0400 Subject: [PATCH] Allow to configure POM for ZIP publication Signed-off-by: Andriy Redko --- .../opensearch/gradle/pluginzip/Publish.java | 28 ++++++++++++------- .../gradle/pluginzip/PublishTests.java | 2 +- 2 files changed, 19 insertions(+), 11 deletions(-) diff --git a/buildSrc/src/main/java/org/opensearch/gradle/pluginzip/Publish.java b/buildSrc/src/main/java/org/opensearch/gradle/pluginzip/Publish.java index 0a3b198b4d32f..d83384ec7d172 100644 --- a/buildSrc/src/main/java/org/opensearch/gradle/pluginzip/Publish.java +++ b/buildSrc/src/main/java/org/opensearch/gradle/pluginzip/Publish.java @@ -7,18 +7,17 @@ */ package org.opensearch.gradle.pluginzip; -import java.util.*; import org.gradle.api.Plugin; import org.gradle.api.Project; +import org.gradle.api.publish.Publication; import org.gradle.api.publish.PublishingExtension; import org.gradle.api.publish.maven.MavenPublication; import org.gradle.api.publish.maven.plugins.MavenPublishPlugin; + import java.nio.file.Path; import org.gradle.api.Task; public class Publish implements Plugin { - private Project project; - public final static String EXTENSION_NAME = "zipmavensettings"; public final static String PUBLICATION_NAME = "pluginZip"; public final static String STAGING_REPO = "zipStaging"; @@ -38,7 +37,19 @@ public static void configMaven(Project project) { }); }); publishing.publications(publications -> { - publications.create(PUBLICATION_NAME, MavenPublication.class, mavenZip -> { + final Publication publication = publications.findByName(PUBLICATION_NAME); + if (publication == null) { + publications.create(PUBLICATION_NAME, MavenPublication.class, mavenZip -> { + String zipGroup = "org.opensearch.plugin"; + String zipArtifact = project.getName(); + String zipVersion = getProperty("version", project); + mavenZip.artifact(project.getTasks().named("bundlePlugin")); + mavenZip.setGroupId(zipGroup); + mavenZip.setArtifactId(zipArtifact); + mavenZip.setVersion(zipVersion); + }); + } else { + final MavenPublication mavenZip = (MavenPublication) publication; String zipGroup = "org.opensearch.plugin"; String zipArtifact = project.getName(); String zipVersion = getProperty("version", project); @@ -46,7 +57,7 @@ public static void configMaven(Project project) { mavenZip.setGroupId(zipGroup); mavenZip.setArtifactId(zipArtifact); mavenZip.setVersion(zipVersion); - }); + } }); }); } @@ -63,7 +74,6 @@ static String getProperty(String name, Project project) { @Override public void apply(Project project) { - this.project = project; project.afterEvaluate(evaluatedProject -> { configMaven(project); Task validatePluginZipPom = project.getTasks().findByName("validatePluginZipPom"); @@ -72,10 +82,8 @@ public void apply(Project project) { } Task publishPluginZipPublicationToZipStagingRepository = project.getTasks() .findByName("publishPluginZipPublicationToZipStagingRepository"); - if (validatePluginZipPom != null) { - project.getTasks() - .getByName("publishPluginZipPublicationToZipStagingRepository") - .dependsOn("generatePomFileForNebulaPublication"); + if (publishPluginZipPublicationToZipStagingRepository != null) { + publishPluginZipPublicationToZipStagingRepository.dependsOn("generatePomFileForNebulaPublication"); } }); } diff --git a/buildSrc/src/test/java/org/opensearch/gradle/pluginzip/PublishTests.java b/buildSrc/src/test/java/org/opensearch/gradle/pluginzip/PublishTests.java index 4ca1c856b3247..851c450699bd7 100644 --- a/buildSrc/src/test/java/org/opensearch/gradle/pluginzip/PublishTests.java +++ b/buildSrc/src/test/java/org/opensearch/gradle/pluginzip/PublishTests.java @@ -13,6 +13,7 @@ import org.gradle.testfixtures.ProjectBuilder; import org.gradle.api.Project; import org.opensearch.gradle.test.GradleUnitTestCase; +import org.junit.After; import org.junit.Before; import org.junit.Test; import org.junit.rules.TemporaryFolder; @@ -31,7 +32,6 @@ import org.codehaus.plexus.util.xml.pull.XmlPullParserException; import java.io.FileReader; import org.gradle.api.tasks.bundling.Zip; -import org.gradle.internal.impldep.org.junit.After; import java.util.List; import java.util.ArrayList;