From b67594b25d882eedc4af07757b3e1e07bbfd9232 Mon Sep 17 00:00:00 2001 From: "Daniel Doubrovkine (dB.)" Date: Wed, 27 Apr 2022 09:10:25 -0400 Subject: [PATCH] Revert "Gradle custom java zippublish plugin (#2988)" This reverts commit d61aa40f8b0286ac79b839cc92fd02490c1c76de. --- .../org/opensearch/gradle/PublishPlugin.java | 23 ++-- .../opensearch/gradle/pluginzip/Publish.java | 74 ------------- .../opensearch.pluginzip.properties | 1 - .../gradle/pluginzip/PublishTests.java | 104 ------------------ 4 files changed, 10 insertions(+), 192 deletions(-) delete mode 100644 buildSrc/src/main/java/org/opensearch/gradle/pluginzip/Publish.java delete mode 100644 buildSrc/src/main/resources/META-INF/gradle-plugins/opensearch.pluginzip.properties delete mode 100644 buildSrc/src/test/java/org/opensearch/gradle/pluginzip/PublishTests.java diff --git a/buildSrc/src/main/java/org/opensearch/gradle/PublishPlugin.java b/buildSrc/src/main/java/org/opensearch/gradle/PublishPlugin.java index 2a0521b17d55e..d164b54c7506c 100644 --- a/buildSrc/src/main/java/org/opensearch/gradle/PublishPlugin.java +++ b/buildSrc/src/main/java/org/opensearch/gradle/PublishPlugin.java @@ -125,21 +125,18 @@ public String call() throws Exception { // Add git origin info to generated POM files publication.getPom().withXml(PublishPlugin::addScmInfo); - if (!publication.getName().toLowerCase().contains("zip")) { + // have to defer this until archivesBaseName is set + project.afterEvaluate(p -> publication.setArtifactId(getArchivesBaseName(project))); - // have to defer this until archivesBaseName is set - project.afterEvaluate(p -> publication.setArtifactId(getArchivesBaseName(project))); - - // publish sources and javadoc for Java projects. - if (project.getPluginManager().hasPlugin("opensearch.java")) { - publication.artifact(project.getTasks().getByName("sourcesJar")); - publication.artifact(project.getTasks().getByName("javadocJar")); - } - - generatePomTask.configure( - t -> t.dependsOn(String.format("generatePomFileFor%sPublication", Util.capitalize(publication.getName()))) - ); + // publish sources and javadoc for Java projects. + if (project.getPluginManager().hasPlugin("opensearch.java")) { + publication.artifact(project.getTasks().getByName("sourcesJar")); + publication.artifact(project.getTasks().getByName("javadocJar")); } + + generatePomTask.configure( + t -> t.dependsOn(String.format("generatePomFileFor%sPublication", Util.capitalize(publication.getName()))) + ); }); } diff --git a/buildSrc/src/main/java/org/opensearch/gradle/pluginzip/Publish.java b/buildSrc/src/main/java/org/opensearch/gradle/pluginzip/Publish.java deleted file mode 100644 index e8b4ecec7a56d..0000000000000 --- a/buildSrc/src/main/java/org/opensearch/gradle/pluginzip/Publish.java +++ /dev/null @@ -1,74 +0,0 @@ -/* - * SPDX-License-Identifier: Apache-2.0 - * - * The OpenSearch Contributors require contributions made to - * this file be licensed under the Apache-2.0 license or a - * compatible open source license. - */ -package org.opensearch.gradle.pluginzip; - -import java.util.*; -import org.gradle.api.Plugin; -import org.gradle.api.Project; -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; - -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"; - public final static String PLUGIN_ZIP_PUBLISH_POM_TASK = "generatePomFileForPluginZipPublication"; - public final static String LOCALMAVEN = "publishToMavenLocal"; - public final static String LOCAL_STAGING_REPO_PATH = "/build/local-staging-repo"; - public String zipDistributionLocation = "/build/distributions/"; - - public static void configMaven(Project project) { - final Path buildDirectory = project.getRootDir().toPath(); - project.getPluginManager().apply(MavenPublishPlugin.class); - project.getExtensions().configure(PublishingExtension.class, publishing -> { - publishing.repositories(repositories -> { - repositories.maven(maven -> { - maven.setName(STAGING_REPO); - maven.setUrl(buildDirectory.toString() + LOCAL_STAGING_REPO_PATH); - }); - }); - publishing.publications(publications -> { - 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); - }); - }); - }); - } - - static String getProperty(String name, Project project) { - if (project.hasProperty(name)) { - Object property = project.property(name); - if (property != null) { - return property.toString(); - } - } - return null; - } - - @Override - public void apply(Project project) { - this.project = project; - project.afterEvaluate(evaluatedProject -> { configMaven(project); }); - project.getGradle().getTaskGraph().whenReady(graph -> { - if (graph.hasTask(LOCALMAVEN)) { - project.getTasks().getByName(PLUGIN_ZIP_PUBLISH_POM_TASK).setEnabled(false); - } - - }); - } -} diff --git a/buildSrc/src/main/resources/META-INF/gradle-plugins/opensearch.pluginzip.properties b/buildSrc/src/main/resources/META-INF/gradle-plugins/opensearch.pluginzip.properties deleted file mode 100644 index 600218ff76835..0000000000000 --- a/buildSrc/src/main/resources/META-INF/gradle-plugins/opensearch.pluginzip.properties +++ /dev/null @@ -1 +0,0 @@ -implementation-class=org.opensearch.gradle.pluginzip.Publish diff --git a/buildSrc/src/test/java/org/opensearch/gradle/pluginzip/PublishTests.java b/buildSrc/src/test/java/org/opensearch/gradle/pluginzip/PublishTests.java deleted file mode 100644 index ae94ace55e637..0000000000000 --- a/buildSrc/src/test/java/org/opensearch/gradle/pluginzip/PublishTests.java +++ /dev/null @@ -1,104 +0,0 @@ -/* - * SPDX-License-Identifier: Apache-2.0 - * - * The OpenSearch Contributors require contributions made to - * this file be licensed under the Apache-2.0 license or a - * compatible open source license. - */ - -package org.opensearch.gradle.pluginzip; - -import org.gradle.testkit.runner.BuildResult; -import org.gradle.testkit.runner.GradleRunner; -import org.gradle.testfixtures.ProjectBuilder; -import org.gradle.api.Project; -import org.opensearch.gradle.test.GradleUnitTestCase; -import org.junit.Test; -import java.io.IOException; -import org.gradle.api.publish.maven.tasks.PublishToMavenRepository; -import java.io.File; -import org.gradle.testkit.runner.BuildResult; -import java.io.FileWriter; -import java.io.Writer; -import static org.gradle.testkit.runner.TaskOutcome.SUCCESS; -import static org.junit.Assert.assertEquals; -import java.nio.file.Files; -import org.apache.maven.model.Model; -import org.apache.maven.model.io.xpp3.MavenXpp3Reader; -import org.codehaus.plexus.util.xml.pull.XmlPullParserException; -import java.io.FileReader; -import org.gradle.api.tasks.bundling.Zip; - -public class PublishTests extends GradleUnitTestCase { - - @Test - public void testZipPublish() throws IOException, XmlPullParserException { - Project project = ProjectBuilder.builder().build(); - String zipPublishTask = "publishPluginZipPublicationToZipStagingRepository"; - // Apply the opensearch.pluginzip plugin - project.getPluginManager().apply("opensearch.pluginzip"); - // Check if the plugin has been applied to the project - assertTrue(project.getPluginManager().hasPlugin("opensearch.pluginzip")); - // Check if the project has the task from class PublishToMavenRepository after plugin apply - assertNotNull(project.getTasks().withType(PublishToMavenRepository.class)); - // Create a mock bundlePlugin task - Zip task = project.getTasks().create("bundlePlugin", Zip.class); - Publish.configMaven(project); - // Check if the main task publishPluginZipPublicationToZipStagingRepository exists after plugin apply - assertTrue(project.getTasks().getNames().contains(zipPublishTask)); - assertNotNull("Task to generate: ", project.getTasks().getByName(zipPublishTask)); - // Run Gradle functional tests, but calling a build.gradle file, that resembles the plugin publish behavior - File projectDir = new File("build/functionalTest"); - // Create a sample plugin zip file - File sampleZip = new File("build/functionalTest/sample-plugin.zip"); - Files.createDirectories(projectDir.toPath()); - Files.createFile(sampleZip.toPath()); - writeString(new File(projectDir, "settings.gradle"), ""); - // Generate the build.gradle file - String buildFileContent = "apply plugin: 'maven-publish' \n" - + "publishing {\n" - + " repositories {\n" - + " maven {\n" - + " url = 'local-staging-repo/'\n" - + " name = 'zipStaging'\n" - + " }\n" - + " }\n" - + " publications {\n" - + " pluginZip(MavenPublication) {\n" - + " groupId = 'org.opensearch.plugin' \n" - + " artifactId = 'sample-plugin' \n" - + " version = '2.0.0.0' \n" - + " artifact('sample-plugin.zip') \n" - + " }\n" - + " }\n" - + "}"; - writeString(new File(projectDir, "build.gradle"), buildFileContent); - // Execute the task publishPluginZipPublicationToZipStagingRepository - GradleRunner runner = GradleRunner.create(); - runner.forwardOutput(); - runner.withPluginClasspath(); - runner.withArguments(zipPublishTask); - runner.withProjectDir(projectDir); - BuildResult result = runner.build(); - // Check if task publishMavenzipPublicationToZipstagingRepository has ran well - assertEquals(SUCCESS, result.task(":" + zipPublishTask).getOutcome()); - // check if the zip has been published to local staging repo - assertTrue( - new File("build/functionalTest/local-staging-repo/org/opensearch/plugin/sample-plugin/2.0.0.0/sample-plugin-2.0.0.0.zip") - .exists() - ); - // Parse the maven file and validate the groupID to org.opensearch.plugin - MavenXpp3Reader reader = new MavenXpp3Reader(); - Model model = reader.read( - new FileReader("build/functionalTest/local-staging-repo/org/opensearch/plugin/sample-plugin/2.0.0.0/sample-plugin-2.0.0.0.pom") - ); - assertEquals(model.getGroupId(), "org.opensearch.plugin"); - } - - private void writeString(File file, String string) throws IOException { - try (Writer writer = new FileWriter(file)) { - writer.write(string); - } - } - -}