From d60eafe8a5bd044768957229dc4e6c062e0813a2 Mon Sep 17 00:00:00 2001 From: pgodithi Date: Mon, 18 Apr 2022 03:50:54 -0700 Subject: [PATCH 01/63] Added custom plugin Signed-off-by: pgodithi Added custom plugin Signed-off-by: pgodithi Added custom plugin Signed-off-by: pgodithi Added custom plugin Signed-off-by: pgodithi Added custom plugin Signed-off-by: pgodithi Added custom plugin Signed-off-by: pgodithi Added custom plugin Signed-off-by: pgodithi Added custom plugin Signed-off-by: pgodithi Added custom plugin Signed-off-by: pgodithi Added custom plugin Signed-off-by: pgodithi Added custom plugin Signed-off-by: pgodithi Added custom plugin Signed-off-by: pgodithi Added custom plugin Signed-off-by: pgodithi Added custom plugin Signed-off-by: pgodithi Added custom plugin Signed-off-by: pgodithi Added custom plugin Signed-off-by: pgodithi Added custom plugin Signed-off-by: pgodithi Added custom plugin Signed-off-by: pgodithi Added custom plugin Signed-off-by: pgodithi Added custom plugin Signed-off-by: pgodithi Added custom plugin Signed-off-by: pgodithi Added custom plugin Signed-off-by: pgodithi Added custom plugin Signed-off-by: pgodithi Added custom plugin Signed-off-by: pgodithi Added custom plugin Signed-off-by: pgodithi Added custom plugin Signed-off-by: pgodithi Added custom plugin Signed-off-by: pgodithi Added custom plugin Signed-off-by: pgodithi Added custom plugin Signed-off-by: pgodithi Added custom plugin Signed-off-by: pgodithi Added custom plugin Signed-off-by: pgodithi Added custom plugin Signed-off-by: pgodithi Added custom plugin Signed-off-by: pgodithi Added custom plugin Signed-off-by: pgodithi Added custom plugin Signed-off-by: pgodithi Added custom plugin Signed-off-by: pgodithi Added custom plugin Signed-off-by: pgodithi Added custom plugin Signed-off-by: pgodithi Added custom plugin Signed-off-by: pgodithi Added custom plugin Signed-off-by: pgodithi Added custom plugin Signed-off-by: pgodithi Added custom plugin Signed-off-by: pgodithi Added custom plugin Signed-off-by: pgodithi Added custom plugin Signed-off-by: pgodithi Added custom plugin Signed-off-by: pgodithi Added custom plugin Signed-off-by: pgodithi Added custom plugin Signed-off-by: pgodithi Added custom plugin Signed-off-by: pgodithi Added custom plugin Signed-off-by: pgodithi Added custom plugin Signed-off-by: pgodithi Added custom plugin Signed-off-by: pgodithi Added custom plugin Signed-off-by: pgodithi Added custom plugin Signed-off-by: pgodithi Added custom plugin Signed-off-by: pgodithi Added custom plugin Signed-off-by: pgodithi Added custom plugin Signed-off-by: pgodithi Added custom plugin Signed-off-by: pgodithi Added custom plugin Signed-off-by: pgodithi Added custom plugin Signed-off-by: pgodithi Added custom plugin Signed-off-by: pgodithi Added custom plugin Signed-off-by: pgodithi Added custom plugin Signed-off-by: pgodithi Added custom plugin Signed-off-by: pgodithi Added custom plugin Signed-off-by: pgodithi Added custom plugin Signed-off-by: pgodithi Added custom plugin Signed-off-by: pgodithi Added custom plugin Signed-off-by: pgodithi Added custom plugin Signed-off-by: pgodithi --- .../org/opensearch/gradle/PublishPlugin.java | 32 +++--- .../gradle/zipplugin/ZipPublish.java | 105 ++++++++++++++++++ .../gradle/zipplugin/ZipPublishExtension.java | 15 +++ .../gradle/zipplugin/ZipPublishUtil.java | 9 ++ .../opensearch.zippublish.properties | 1 + .../gradle/zipplugin/ZipPublishTest.groovy | 14 +++ 6 files changed, 161 insertions(+), 15 deletions(-) create mode 100644 buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublish.java create mode 100644 buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublishExtension.java create mode 100644 buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublishUtil.java create mode 100644 buildSrc/src/main/resources/META-INF/gradle-plugins/opensearch.zippublish.properties create mode 100644 buildSrc/src/test/groovy/org/opensearch/gradle/zipplugin/ZipPublishTest.groovy diff --git a/buildSrc/src/main/java/org/opensearch/gradle/PublishPlugin.java b/buildSrc/src/main/java/org/opensearch/gradle/PublishPlugin.java index d164b54c7506c..8410d627c2377 100644 --- a/buildSrc/src/main/java/org/opensearch/gradle/PublishPlugin.java +++ b/buildSrc/src/main/java/org/opensearch/gradle/PublishPlugin.java @@ -120,23 +120,25 @@ public String call() throws Exception { }); }); }); - publishing.getPublications().withType(MavenPublication.class, publication -> { - // Add git origin info to generated POM files - publication.getPom().withXml(PublishPlugin::addScmInfo); - - // 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")); + String search = "zip"; + if (!publication.getName().toLowerCase().contains(search.toLowerCase())) { + System.out.println("The Publication: " + publication.getName()); + // Add git origin info to generated POM files + publication.getPom().withXml(PublishPlugin::addScmInfo); + + // 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()))); + }); + } } - - generatePomTask.configure( - t -> t.dependsOn(String.format("generatePomFileFor%sPublication", Util.capitalize(publication.getName()))) - ); }); } diff --git a/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublish.java b/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublish.java new file mode 100644 index 0000000000000..0b496bcdd8ba0 --- /dev/null +++ b/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublish.java @@ -0,0 +1,105 @@ +package org.opensearch.gradle.zipplugin; + +import java.util.*; +import org.gradle.api.Plugin; +import org.gradle.api.Project; +import org.gradle.api.provider.Property; +import org.gradle.api.publish.PublishingExtension; +import org.gradle.api.publish.maven.MavenPublication; +import org.gradle.api.publish.maven.plugins.MavenPublishPlugin; +import org.gradle.api.file.DirectoryProperty; +import org.gradle.api.provider.Provider; +import java.nio.file.Path; +import org.opensearch.gradle.zipplugin.ZipPublishExtension; +import org.gradle.api.tasks.TaskAction; +import org.gradle.api.Task; +import org.opensearch.gradle.zipplugin.ZipPublishUtil; + + +public class ZipPublish implements Plugin { + private Project project; + + static final String EXTENSION_NAME = "zipmavensettings"; + public final static String PUBLICATION_NAME = "mavenzip"; + public final static String STAGING_REPO = "zipstaging"; + public final static String MAVEN_ZIP_PUBLISH_TASK = "publish" + ZipPublishUtil.capitalize(PUBLICATION_NAME) + "PublicationTo" + ZipPublishUtil.capitalize(STAGING_REPO) + "Repository"; + public final static String MAVEN_ZIP_PUBLISH_POM_TASK = "generatePomFileFor" + ZipPublishUtil.capitalize(PUBLICATION_NAME) + "Publication"; + public final static String LOCALMAVEN = "publishToMavenLocal"; + + private void configMaven() { + final Path buildDirectory = this.project.getRootDir().toPath(); + this.project.getPluginManager().apply(MavenPublishPlugin.class); + this.project.getExtensions().configure(PublishingExtension.class, publishing -> { + publishing.repositories(repositories -> { + repositories.maven(maven -> { + maven.setName(STAGING_REPO); + maven.setUrl(buildDirectory.toString() + "/build/local-staging-repo"); + }); + }); + System.out.println("Starting " + MAVEN_ZIP_PUBLISH_TASK + " task"); + publishing.publications(publications -> { + publications.create(PUBLICATION_NAME, MavenPublication.class, mavenZip -> { + ZipPublishExtension extset = this.project.getExtensions().findByType(ZipPublishExtension.class); + //Getting the Zip group from created extension + String zipGroup = extset.getZipgroup(); + String zipArtifact = getProperty("zipArtifact"); + //Getting the Zip version from gradle property with/without added snapshot and qualifier + String zipVersion = getProperty("zipVersion"); + String version = ""; + String extra = ""; + if (zipVersion != null){ + StringTokenizer st = new StringTokenizer(zipVersion); + version = st.nextToken("-") + ".0"; + try { + extra = zipVersion.substring(zipVersion.indexOf("-")); + } catch (Exception e) { + System.out.println(""); + } + }; + String finalZipVersion = version + extra; + String zipFilePath = "/build/distributions/" + zipArtifact + "-" + finalZipVersion + ".zip"; + //-PzipFilePath=/build/distributions/opensearch-job-scheduler-2.0.0.0-alpha1-SNAPSHOT.zip + mavenZip.artifact(buildDirectory.toString() + zipFilePath); + mavenZip.setGroupId(zipGroup); + mavenZip.setArtifactId(zipArtifact); + mavenZip.setVersion(finalZipVersion); + }); + }); + }); + } + private String getProperty(String name) { + if (this.project.hasProperty(name)) { + Object property = this.project.property(name); + if (property != null) { + return property.toString(); + } + } + return null; + } + + @Override + public void apply(Project project) { + final Path buildDirectory = project.getRootDir().toPath(); + this.project = project; + project.getExtensions().create(EXTENSION_NAME, ZipPublishExtension.class); + configMaven(); + Task compileJava = project.getTasks().findByName("compileJava"); + if(compileJava != null) { + compileJava.setEnabled(false); + } + Task sourceJarTask = project.getTasks().findByName("sourcesJar"); + if(sourceJarTask != null) { + sourceJarTask.setEnabled(false); + } + Task javaDocJarTask = project.getTasks().findByName("javadocJar"); + if(javaDocJarTask != null) { + javaDocJarTask.setEnabled(false); + } + project.getGradle().getTaskGraph().whenReady(graph -> { + if (graph.hasTask(LOCALMAVEN)){ + project.getTasks().getByName(MAVEN_ZIP_PUBLISH_POM_TASK).setEnabled(false); + } + + }); + } +} diff --git a/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublishExtension.java b/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublishExtension.java new file mode 100644 index 0000000000000..b585c770f601f --- /dev/null +++ b/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublishExtension.java @@ -0,0 +1,15 @@ +package org.opensearch.gradle.zipplugin; + +public class ZipPublishExtension { + + private String zipGroup = "org.opensearch.plugin"; + + public void setZipgroup(String zipGroup){ + this.zipGroup=zipGroup; + } + public String getZipgroup(){ + return zipGroup; + } + +} + diff --git a/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublishUtil.java b/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublishUtil.java new file mode 100644 index 0000000000000..7ddf8018c98f7 --- /dev/null +++ b/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublishUtil.java @@ -0,0 +1,9 @@ +package org.opensearch.gradle.zipplugin; + +class ZipPublishUtil { + + static String capitalize(String str) { + return str.substring(0, 1).toUpperCase() + str.substring(1); + } + +} diff --git a/buildSrc/src/main/resources/META-INF/gradle-plugins/opensearch.zippublish.properties b/buildSrc/src/main/resources/META-INF/gradle-plugins/opensearch.zippublish.properties new file mode 100644 index 0000000000000..72b68211f0149 --- /dev/null +++ b/buildSrc/src/main/resources/META-INF/gradle-plugins/opensearch.zippublish.properties @@ -0,0 +1 @@ +implementation-class=org.opensearch.gradle.zipplugin.ZipPublish diff --git a/buildSrc/src/test/groovy/org/opensearch/gradle/zipplugin/ZipPublishTest.groovy b/buildSrc/src/test/groovy/org/opensearch/gradle/zipplugin/ZipPublishTest.groovy new file mode 100644 index 0000000000000..aa4b2887e2c7d --- /dev/null +++ b/buildSrc/src/test/groovy/org/opensearch/gradle/zipplugin/ZipPublishTest.groovy @@ -0,0 +1,14 @@ +package org.opensearch.gradle.zipplugin; + +import org.gradle.testfixtures.ProjectBuilder +import org.gradle.api.Project + + +class ZipPublishTest { + public void zippublish_plugin_should_add_task_to_project() { + Project project = ProjectBuilder.builder().build() + project.getPlugins().apply 'opensearch.zippublish' + + assertTrue(project.tasks.publishMavenzipPublicationToZipstagingRepository instanceof ZipPublish) + } +} \ No newline at end of file From 4a6185229740f990c99ceb88113be9947325845e Mon Sep 17 00:00:00 2001 From: pgodithi Date: Wed, 20 Apr 2022 06:05:45 -0700 Subject: [PATCH 02/63] fixed failure checks Signed-off-by: pgodithi --- .../java/org/opensearch/gradle/PublishPlugin.java | 6 +++--- .../opensearch/gradle/zipplugin/ZipPublish.java | 15 +++++++++------ .../gradle/zipplugin/ZipPublishExtension.java | 4 ++-- 3 files changed, 14 insertions(+), 11 deletions(-) diff --git a/buildSrc/src/main/java/org/opensearch/gradle/PublishPlugin.java b/buildSrc/src/main/java/org/opensearch/gradle/PublishPlugin.java index 8410d627c2377..5ca092a28cd4a 100644 --- a/buildSrc/src/main/java/org/opensearch/gradle/PublishPlugin.java +++ b/buildSrc/src/main/java/org/opensearch/gradle/PublishPlugin.java @@ -121,9 +121,9 @@ public String call() throws Exception { }); }); publishing.getPublications().withType(MavenPublication.class, publication -> { - String search = "zip"; - if (!publication.getName().toLowerCase().contains(search.toLowerCase())) { - System.out.println("The Publication: " + publication.getName()); + //To exclude java artifcats for maven zip type publications + String zipPublicationSearch = "zip"; + if (!publication.getName().toLowerCase().contains(zipPublicationSearch.toLowerCase())) { // Add git origin info to generated POM files publication.getPom().withXml(PublishPlugin::addScmInfo); diff --git a/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublish.java b/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublish.java index 0b496bcdd8ba0..4200cbccd385f 100644 --- a/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublish.java +++ b/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublish.java @@ -19,12 +19,14 @@ public class ZipPublish implements Plugin { private Project project; - static final String EXTENSION_NAME = "zipmavensettings"; + public final static String EXTENSION_NAME = "zipmavensettings"; public final static String PUBLICATION_NAME = "mavenzip"; public final static String STAGING_REPO = "zipstaging"; public final static String MAVEN_ZIP_PUBLISH_TASK = "publish" + ZipPublishUtil.capitalize(PUBLICATION_NAME) + "PublicationTo" + ZipPublishUtil.capitalize(STAGING_REPO) + "Repository"; public final static String MAVEN_ZIP_PUBLISH_POM_TASK = "generatePomFileFor" + ZipPublishUtil.capitalize(PUBLICATION_NAME) + "Publication"; public final static String LOCALMAVEN = "publishToMavenLocal"; + public final static String LOCAL_STAGING_REPO_PATH = "/build/local-staging-repo"; + public final static String BUILD_DISTRIBUTIONS_LOCATION = "/build/distributions/"; private void configMaven() { final Path buildDirectory = this.project.getRootDir().toPath(); @@ -33,7 +35,7 @@ private void configMaven() { publishing.repositories(repositories -> { repositories.maven(maven -> { maven.setName(STAGING_REPO); - maven.setUrl(buildDirectory.toString() + "/build/local-staging-repo"); + maven.setUrl(buildDirectory.toString() + LOCAL_STAGING_REPO_PATH); }); }); System.out.println("Starting " + MAVEN_ZIP_PUBLISH_TASK + " task"); @@ -46,18 +48,18 @@ private void configMaven() { //Getting the Zip version from gradle property with/without added snapshot and qualifier String zipVersion = getProperty("zipVersion"); String version = ""; - String extra = ""; + String extraSuffix = ""; if (zipVersion != null){ StringTokenizer st = new StringTokenizer(zipVersion); version = st.nextToken("-") + ".0"; try { - extra = zipVersion.substring(zipVersion.indexOf("-")); + extraSuffix = zipVersion.substring(zipVersion.indexOf("-")); } catch (Exception e) { System.out.println(""); } }; - String finalZipVersion = version + extra; - String zipFilePath = "/build/distributions/" + zipArtifact + "-" + finalZipVersion + ".zip"; + String finalZipVersion = version + extraSuffix; + String zipFilePath = BUILD_DISTRIBUTIONS_LOCATION + zipArtifact + "-" + finalZipVersion + ".zip"; //-PzipFilePath=/build/distributions/opensearch-job-scheduler-2.0.0.0-alpha1-SNAPSHOT.zip mavenZip.artifact(buildDirectory.toString() + zipFilePath); mavenZip.setGroupId(zipGroup); @@ -82,6 +84,7 @@ public void apply(Project project) { final Path buildDirectory = project.getRootDir().toPath(); this.project = project; project.getExtensions().create(EXTENSION_NAME, ZipPublishExtension.class); + //Applies the new publication once the plugin is applied configMaven(); Task compileJava = project.getTasks().findByName("compileJava"); if(compileJava != null) { diff --git a/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublishExtension.java b/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublishExtension.java index b585c770f601f..38f09fc5de8fa 100644 --- a/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublishExtension.java +++ b/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublishExtension.java @@ -8,8 +8,8 @@ public void setZipgroup(String zipGroup){ this.zipGroup=zipGroup; } public String getZipgroup(){ - return zipGroup; - } + return zipGroup; + } } From 1e8c5f1338b66ef2ee52608ce7aa9b3ac101f685 Mon Sep 17 00:00:00 2001 From: pgodithi Date: Wed, 20 Apr 2022 06:30:51 -0700 Subject: [PATCH 03/63] fixed failure checks Signed-off-by: pgodithi --- .../gradle/test/TestWithSslPlugin.java | 1 + .../org/opensearch/gradle/PublishPlugin.java | 10 +-- .../gradle/zipplugin/ZipPublish.java | 74 +++++++++++++------ .../gradle/zipplugin/ZipPublishExtension.java | 39 +++++++++- .../gradle/zipplugin/ZipPublishUtil.java | 31 ++++++++ .../gradle/zipplugin/ZipPublishTest.groovy | 31 ++++++++ 6 files changed, 156 insertions(+), 30 deletions(-) diff --git a/buildSrc/src/main/groovy/org/opensearch/gradle/test/TestWithSslPlugin.java b/buildSrc/src/main/groovy/org/opensearch/gradle/test/TestWithSslPlugin.java index 33e8966bd32c1..ff1ecfd7de578 100644 --- a/buildSrc/src/main/groovy/org/opensearch/gradle/test/TestWithSslPlugin.java +++ b/buildSrc/src/main/groovy/org/opensearch/gradle/test/TestWithSslPlugin.java @@ -49,6 +49,7 @@ public class TestWithSslPlugin implements Plugin { @Override + @SuppressWarnings({ "unchecked" }) public void apply(Project project) { File keyStoreDir = new File(project.getBuildDir(), "keystore"); TaskProvider exportKeyStore = project.getTasks() diff --git a/buildSrc/src/main/java/org/opensearch/gradle/PublishPlugin.java b/buildSrc/src/main/java/org/opensearch/gradle/PublishPlugin.java index 5ca092a28cd4a..b5af379d8b67d 100644 --- a/buildSrc/src/main/java/org/opensearch/gradle/PublishPlugin.java +++ b/buildSrc/src/main/java/org/opensearch/gradle/PublishPlugin.java @@ -121,8 +121,8 @@ public String call() throws Exception { }); }); publishing.getPublications().withType(MavenPublication.class, publication -> { - //To exclude java artifcats for maven zip type publications - String zipPublicationSearch = "zip"; + // To exclude java artifcats for maven zip type publications + String zipPublicationSearch = "zip"; if (!publication.getName().toLowerCase().contains(zipPublicationSearch.toLowerCase())) { // Add git origin info to generated POM files publication.getPom().withXml(PublishPlugin::addScmInfo); @@ -134,9 +134,9 @@ public String call() throws Exception { 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()))); - }); + generatePomTask.configure( + t -> { t.dependsOn(String.format("generatePomFileFor%sPublication", Util.capitalize(publication.getName()))); } + ); } } }); diff --git a/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublish.java b/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublish.java index 4200cbccd385f..35ca50b489708 100644 --- a/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublish.java +++ b/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublish.java @@ -1,20 +1,44 @@ +/* + * 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. + */ + +/* + * Licensed to Elasticsearch under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +/* + * Modifications Copyright OpenSearch Contributors. See + * GitHub history for details. + */ package org.opensearch.gradle.zipplugin; import java.util.*; import org.gradle.api.Plugin; import org.gradle.api.Project; -import org.gradle.api.provider.Property; import org.gradle.api.publish.PublishingExtension; import org.gradle.api.publish.maven.MavenPublication; import org.gradle.api.publish.maven.plugins.MavenPublishPlugin; -import org.gradle.api.file.DirectoryProperty; -import org.gradle.api.provider.Provider; import java.nio.file.Path; -import org.opensearch.gradle.zipplugin.ZipPublishExtension; -import org.gradle.api.tasks.TaskAction; import org.gradle.api.Task; -import org.opensearch.gradle.zipplugin.ZipPublishUtil; - public class ZipPublish implements Plugin { private Project project; @@ -22,8 +46,14 @@ public class ZipPublish implements Plugin { public final static String EXTENSION_NAME = "zipmavensettings"; public final static String PUBLICATION_NAME = "mavenzip"; public final static String STAGING_REPO = "zipstaging"; - public final static String MAVEN_ZIP_PUBLISH_TASK = "publish" + ZipPublishUtil.capitalize(PUBLICATION_NAME) + "PublicationTo" + ZipPublishUtil.capitalize(STAGING_REPO) + "Repository"; - public final static String MAVEN_ZIP_PUBLISH_POM_TASK = "generatePomFileFor" + ZipPublishUtil.capitalize(PUBLICATION_NAME) + "Publication"; + public final static String MAVEN_ZIP_PUBLISH_TASK = "publish" + + ZipPublishUtil.capitalize(PUBLICATION_NAME) + + "PublicationTo" + + ZipPublishUtil.capitalize(STAGING_REPO) + + "Repository"; + public final static String MAVEN_ZIP_PUBLISH_POM_TASK = "generatePomFileFor" + + ZipPublishUtil.capitalize(PUBLICATION_NAME) + + "Publication"; public final static String LOCALMAVEN = "publishToMavenLocal"; public final static String LOCAL_STAGING_REPO_PATH = "/build/local-staging-repo"; public final static String BUILD_DISTRIBUTIONS_LOCATION = "/build/distributions/"; @@ -42,25 +72,26 @@ private void configMaven() { publishing.publications(publications -> { publications.create(PUBLICATION_NAME, MavenPublication.class, mavenZip -> { ZipPublishExtension extset = this.project.getExtensions().findByType(ZipPublishExtension.class); - //Getting the Zip group from created extension + // Getting the Zip group from created extension String zipGroup = extset.getZipgroup(); String zipArtifact = getProperty("zipArtifact"); - //Getting the Zip version from gradle property with/without added snapshot and qualifier + // Getting the Zip version from gradle property with/without added snapshot and qualifier String zipVersion = getProperty("zipVersion"); String version = ""; String extraSuffix = ""; - if (zipVersion != null){ - StringTokenizer st = new StringTokenizer(zipVersion); - version = st.nextToken("-") + ".0"; + if (zipVersion != null) { + StringTokenizer st = new StringTokenizer(zipVersion); + version = st.nextToken("-") + ".0"; try { extraSuffix = zipVersion.substring(zipVersion.indexOf("-")); } catch (Exception e) { System.out.println(""); } - }; + } + ; String finalZipVersion = version + extraSuffix; String zipFilePath = BUILD_DISTRIBUTIONS_LOCATION + zipArtifact + "-" + finalZipVersion + ".zip"; - //-PzipFilePath=/build/distributions/opensearch-job-scheduler-2.0.0.0-alpha1-SNAPSHOT.zip + // -PzipFilePath=/build/distributions/opensearch-job-scheduler-2.0.0.0-alpha1-SNAPSHOT.zip mavenZip.artifact(buildDirectory.toString() + zipFilePath); mavenZip.setGroupId(zipGroup); mavenZip.setArtifactId(zipArtifact); @@ -69,6 +100,7 @@ private void configMaven() { }); }); } + private String getProperty(String name) { if (this.project.hasProperty(name)) { Object property = this.project.property(name); @@ -84,22 +116,22 @@ public void apply(Project project) { final Path buildDirectory = project.getRootDir().toPath(); this.project = project; project.getExtensions().create(EXTENSION_NAME, ZipPublishExtension.class); - //Applies the new publication once the plugin is applied + // Applies the new publication once the plugin is applied configMaven(); Task compileJava = project.getTasks().findByName("compileJava"); - if(compileJava != null) { + if (compileJava != null) { compileJava.setEnabled(false); } Task sourceJarTask = project.getTasks().findByName("sourcesJar"); - if(sourceJarTask != null) { + if (sourceJarTask != null) { sourceJarTask.setEnabled(false); } Task javaDocJarTask = project.getTasks().findByName("javadocJar"); - if(javaDocJarTask != null) { + if (javaDocJarTask != null) { javaDocJarTask.setEnabled(false); } project.getGradle().getTaskGraph().whenReady(graph -> { - if (graph.hasTask(LOCALMAVEN)){ + if (graph.hasTask(LOCALMAVEN)) { project.getTasks().getByName(MAVEN_ZIP_PUBLISH_POM_TASK).setEnabled(false); } diff --git a/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublishExtension.java b/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublishExtension.java index 38f09fc5de8fa..8d3a4cc2d2a6d 100644 --- a/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublishExtension.java +++ b/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublishExtension.java @@ -1,15 +1,46 @@ +/* + * 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. + */ + +/* + * Licensed to Elasticsearch under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +/* + * Modifications Copyright OpenSearch Contributors. See + * GitHub history for details. + */ package org.opensearch.gradle.zipplugin; public class ZipPublishExtension { private String zipGroup = "org.opensearch.plugin"; - public void setZipgroup(String zipGroup){ - this.zipGroup=zipGroup; + public void setZipgroup(String zipGroup) { + this.zipGroup = zipGroup; } - public String getZipgroup(){ + + public String getZipgroup() { return zipGroup; } } - diff --git a/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublishUtil.java b/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublishUtil.java index 7ddf8018c98f7..b31ea602a919c 100644 --- a/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublishUtil.java +++ b/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublishUtil.java @@ -1,3 +1,34 @@ +/* + * 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. + */ + +/* + * Licensed to Elasticsearch under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +/* + * Modifications Copyright OpenSearch Contributors. See + * GitHub history for details. + */ package org.opensearch.gradle.zipplugin; class ZipPublishUtil { diff --git a/buildSrc/src/test/groovy/org/opensearch/gradle/zipplugin/ZipPublishTest.groovy b/buildSrc/src/test/groovy/org/opensearch/gradle/zipplugin/ZipPublishTest.groovy index aa4b2887e2c7d..f80f32f3852d8 100644 --- a/buildSrc/src/test/groovy/org/opensearch/gradle/zipplugin/ZipPublishTest.groovy +++ b/buildSrc/src/test/groovy/org/opensearch/gradle/zipplugin/ZipPublishTest.groovy @@ -1,3 +1,34 @@ +/* + * 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. + */ + +/* + * Licensed to Elasticsearch under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +/* + * Modifications Copyright OpenSearch Contributors. See + * GitHub history for details. + */ package org.opensearch.gradle.zipplugin; import org.gradle.testfixtures.ProjectBuilder From 5e87cde61f82994757bccb57d2d92a528ff18584 Mon Sep 17 00:00:00 2001 From: pgodithi Date: Wed, 20 Apr 2022 07:06:32 -0700 Subject: [PATCH 04/63] ref String to null Signed-off-by: pgodithi --- .../main/java/org/opensearch/gradle/zipplugin/ZipPublish.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublish.java b/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublish.java index 35ca50b489708..c25517f0275e7 100644 --- a/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublish.java +++ b/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublish.java @@ -77,8 +77,8 @@ private void configMaven() { String zipArtifact = getProperty("zipArtifact"); // Getting the Zip version from gradle property with/without added snapshot and qualifier String zipVersion = getProperty("zipVersion"); - String version = ""; - String extraSuffix = ""; + String version = null; + String extraSuffix = null; if (zipVersion != null) { StringTokenizer st = new StringTokenizer(zipVersion); version = st.nextToken("-") + ".0"; From 770c886d2310842d2e04b0e6050242634bca7865 Mon Sep 17 00:00:00 2001 From: pgodithi Date: Wed, 20 Apr 2022 11:43:48 -0700 Subject: [PATCH 05/63] Added gradlePlugin config Signed-off-by: pgodithi --- buildSrc/build.gradle | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle index 503e3df9305ba..2318fc000ec01 100644 --- a/buildSrc/build.gradle +++ b/buildSrc/build.gradle @@ -37,6 +37,15 @@ plugins { id 'java-test-fixtures' } +gradlePlugin { + plugins { + zipPlugin { + id = 'opensearch.zippublish' + implementationClass = 'org.opensearch.gradle.zipplugin.ZipPublish' + } + } +} + group = 'org.opensearch.gradle' String minimumGradleVersion = file('src/main/resources/minimumGradleVersion').text.trim() From 342bc64c4002dbaa80ef8178d5ee030e1c1f7c19 Mon Sep 17 00:00:00 2001 From: pgodithi Date: Wed, 20 Apr 2022 11:50:39 -0700 Subject: [PATCH 06/63] Added gradlePlugin config Signed-off-by: pgodithi --- buildSrc/build.gradle | 1 - 1 file changed, 1 deletion(-) diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle index 2318fc000ec01..5b81ab7e391be 100644 --- a/buildSrc/build.gradle +++ b/buildSrc/build.gradle @@ -41,7 +41,6 @@ gradlePlugin { plugins { zipPlugin { id = 'opensearch.zippublish' - implementationClass = 'org.opensearch.gradle.zipplugin.ZipPublish' } } } From a8647ec8eadad57fefd83b9b89358bdf44439b66 Mon Sep 17 00:00:00 2001 From: pgodithi Date: Wed, 20 Apr 2022 11:51:28 -0700 Subject: [PATCH 07/63] Added gradlePlugin config Signed-off-by: pgodithi --- buildSrc/build.gradle | 8 -------- 1 file changed, 8 deletions(-) diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle index 5b81ab7e391be..503e3df9305ba 100644 --- a/buildSrc/build.gradle +++ b/buildSrc/build.gradle @@ -37,14 +37,6 @@ plugins { id 'java-test-fixtures' } -gradlePlugin { - plugins { - zipPlugin { - id = 'opensearch.zippublish' - } - } -} - group = 'org.opensearch.gradle' String minimumGradleVersion = file('src/main/resources/minimumGradleVersion').text.trim() From 0865be22a75f7c53009cab2a67bdad6f00d3b18c Mon Sep 17 00:00:00 2001 From: pgodithi Date: Thu, 21 Apr 2022 06:40:46 -0700 Subject: [PATCH 08/63] Added zipFilePath injection Signed-off-by: pgodithi --- .../org/opensearch/gradle/zipplugin/ZipPublish.java | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublish.java b/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublish.java index c25517f0275e7..375698475c351 100644 --- a/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublish.java +++ b/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublish.java @@ -56,7 +56,7 @@ public class ZipPublish implements Plugin { + "Publication"; public final static String LOCALMAVEN = "publishToMavenLocal"; public final static String LOCAL_STAGING_REPO_PATH = "/build/local-staging-repo"; - public final static String BUILD_DISTRIBUTIONS_LOCATION = "/build/distributions/"; + public static String BUILD_DISTRIBUTIONS_LOCATION = "/build/distributions/"; private void configMaven() { final Path buildDirectory = this.project.getRootDir().toPath(); @@ -88,10 +88,16 @@ private void configMaven() { System.out.println(""); } } - ; String finalZipVersion = version + extraSuffix; - String zipFilePath = BUILD_DISTRIBUTIONS_LOCATION + zipArtifact + "-" + finalZipVersion + ".zip"; + String zipFilePath = null; // -PzipFilePath=/build/distributions/opensearch-job-scheduler-2.0.0.0-alpha1-SNAPSHOT.zip + if(getProperty("zipFilePath") != null) { + BUILD_DISTRIBUTIONS_LOCATION = getProperty("zipFilePath"); + zipFilePath = BUILD_DISTRIBUTIONS_LOCATION + zipArtifact + "-" + finalZipVersion + ".zip"; + } + else { + zipFilePath = BUILD_DISTRIBUTIONS_LOCATION + zipArtifact + "-" + finalZipVersion + ".zip"; + } mavenZip.artifact(buildDirectory.toString() + zipFilePath); mavenZip.setGroupId(zipGroup); mavenZip.setArtifactId(zipArtifact); From be37b91165ea054052fc8722bcefa42ef9b9f08b Mon Sep 17 00:00:00 2001 From: pgodithi Date: Thu, 21 Apr 2022 06:50:42 -0700 Subject: [PATCH 09/63] Added custom plugin eval logic Signed-off-by: pgodithi --- .../java/org/opensearch/gradle/zipplugin/ZipPublish.java | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublish.java b/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublish.java index 375698475c351..bf23bf1b08009 100644 --- a/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublish.java +++ b/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublish.java @@ -91,11 +91,10 @@ private void configMaven() { String finalZipVersion = version + extraSuffix; String zipFilePath = null; // -PzipFilePath=/build/distributions/opensearch-job-scheduler-2.0.0.0-alpha1-SNAPSHOT.zip - if(getProperty("zipFilePath") != null) { + if (getProperty("zipFilePath") != null) { BUILD_DISTRIBUTIONS_LOCATION = getProperty("zipFilePath"); zipFilePath = BUILD_DISTRIBUTIONS_LOCATION + zipArtifact + "-" + finalZipVersion + ".zip"; - } - else { + } else { zipFilePath = BUILD_DISTRIBUTIONS_LOCATION + zipArtifact + "-" + finalZipVersion + ".zip"; } mavenZip.artifact(buildDirectory.toString() + zipFilePath); From 8a7c18ea504993cd4295d9d5c6b93a02f1ae1985 Mon Sep 17 00:00:00 2001 From: pgodithi Date: Thu, 21 Apr 2022 11:22:59 -0700 Subject: [PATCH 10/63] Added system property for version check Signed-off-by: pgodithi --- .../org/opensearch/gradle/zipplugin/ZipPublish.java | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublish.java b/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublish.java index bf23bf1b08009..de1c9fc839569 100644 --- a/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublish.java +++ b/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublish.java @@ -76,7 +76,7 @@ private void configMaven() { String zipGroup = extset.getZipgroup(); String zipArtifact = getProperty("zipArtifact"); // Getting the Zip version from gradle property with/without added snapshot and qualifier - String zipVersion = getProperty("zipVersion"); + String zipVersion = System.getProperty("opensearch.version"); String version = null; String extraSuffix = null; if (zipVersion != null) { @@ -91,10 +91,11 @@ private void configMaven() { String finalZipVersion = version + extraSuffix; String zipFilePath = null; // -PzipFilePath=/build/distributions/opensearch-job-scheduler-2.0.0.0-alpha1-SNAPSHOT.zip - if (getProperty("zipFilePath") != null) { + if(getProperty("zipFilePath") != null) { BUILD_DISTRIBUTIONS_LOCATION = getProperty("zipFilePath"); zipFilePath = BUILD_DISTRIBUTIONS_LOCATION + zipArtifact + "-" + finalZipVersion + ".zip"; - } else { + } + else { zipFilePath = BUILD_DISTRIBUTIONS_LOCATION + zipArtifact + "-" + finalZipVersion + ".zip"; } mavenZip.artifact(buildDirectory.toString() + zipFilePath); @@ -105,7 +106,7 @@ private void configMaven() { }); }); } - + //function to get Project properties private String getProperty(String name) { if (this.project.hasProperty(name)) { Object property = this.project.property(name); @@ -142,4 +143,4 @@ public void apply(Project project) { }); } -} +} \ No newline at end of file From a43e651ade03f04a6fbbb3d82407b0d3ceaa6ca6 Mon Sep 17 00:00:00 2001 From: pgodithi Date: Thu, 21 Apr 2022 12:18:19 -0700 Subject: [PATCH 11/63] spotlessApply check Signed-off-by: pgodithi --- .../org/opensearch/gradle/zipplugin/ZipPublish.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublish.java b/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublish.java index de1c9fc839569..ba4b4f8008230 100644 --- a/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublish.java +++ b/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublish.java @@ -91,11 +91,10 @@ private void configMaven() { String finalZipVersion = version + extraSuffix; String zipFilePath = null; // -PzipFilePath=/build/distributions/opensearch-job-scheduler-2.0.0.0-alpha1-SNAPSHOT.zip - if(getProperty("zipFilePath") != null) { + if (getProperty("zipFilePath") != null) { BUILD_DISTRIBUTIONS_LOCATION = getProperty("zipFilePath"); zipFilePath = BUILD_DISTRIBUTIONS_LOCATION + zipArtifact + "-" + finalZipVersion + ".zip"; - } - else { + } else { zipFilePath = BUILD_DISTRIBUTIONS_LOCATION + zipArtifact + "-" + finalZipVersion + ".zip"; } mavenZip.artifact(buildDirectory.toString() + zipFilePath); @@ -106,7 +105,8 @@ private void configMaven() { }); }); } - //function to get Project properties + + // function to get Project properties private String getProperty(String name) { if (this.project.hasProperty(name)) { Object property = this.project.property(name); @@ -143,4 +143,4 @@ public void apply(Project project) { }); } -} \ No newline at end of file +} From a523ab1efb280273b689cad68ac90144fbb60526 Mon Sep 17 00:00:00 2001 From: pgodithi Date: Thu, 21 Apr 2022 14:33:44 -0700 Subject: [PATCH 12/63] Added custom plugin eval logic Signed-off-by: pgodithi --- .../gradle/test/TestWithSslPlugin.java | 1 - .../org/opensearch/gradle/PublishPlugin.java | 30 ++++++++----------- .../gradle/zipplugin/ZipPublish.java | 24 --------------- .../gradle/zipplugin/ZipPublishExtension.java | 24 --------------- .../gradle/zipplugin/ZipPublishUtil.java | 24 --------------- .../gradle/zipplugin/ZipPublishTest.groovy | 24 --------------- 6 files changed, 13 insertions(+), 114 deletions(-) diff --git a/buildSrc/src/main/groovy/org/opensearch/gradle/test/TestWithSslPlugin.java b/buildSrc/src/main/groovy/org/opensearch/gradle/test/TestWithSslPlugin.java index ff1ecfd7de578..33e8966bd32c1 100644 --- a/buildSrc/src/main/groovy/org/opensearch/gradle/test/TestWithSslPlugin.java +++ b/buildSrc/src/main/groovy/org/opensearch/gradle/test/TestWithSslPlugin.java @@ -49,7 +49,6 @@ public class TestWithSslPlugin implements Plugin { @Override - @SuppressWarnings({ "unchecked" }) public void apply(Project project) { File keyStoreDir = new File(project.getBuildDir(), "keystore"); TaskProvider exportKeyStore = project.getTasks() diff --git a/buildSrc/src/main/java/org/opensearch/gradle/PublishPlugin.java b/buildSrc/src/main/java/org/opensearch/gradle/PublishPlugin.java index b5af379d8b67d..22402b39faa39 100644 --- a/buildSrc/src/main/java/org/opensearch/gradle/PublishPlugin.java +++ b/buildSrc/src/main/java/org/opensearch/gradle/PublishPlugin.java @@ -121,23 +121,19 @@ public String call() throws Exception { }); }); publishing.getPublications().withType(MavenPublication.class, publication -> { - // To exclude java artifcats for maven zip type publications - String zipPublicationSearch = "zip"; - if (!publication.getName().toLowerCase().contains(zipPublicationSearch.toLowerCase())) { - // Add git origin info to generated POM files - publication.getPom().withXml(PublishPlugin::addScmInfo); - - // 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()))); } - ); - } + // Add git origin info to generated POM files + publication.getPom().withXml(PublishPlugin::addScmInfo); + + // 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()))); } + ); } }); diff --git a/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublish.java b/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublish.java index ba4b4f8008230..25575bd90c91f 100644 --- a/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublish.java +++ b/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublish.java @@ -5,30 +5,6 @@ * this file be licensed under the Apache-2.0 license or a * compatible open source license. */ - -/* - * Licensed to Elasticsearch under one or more contributor - * license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright - * ownership. Elasticsearch licenses this file to you under - * the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -/* - * Modifications Copyright OpenSearch Contributors. See - * GitHub history for details. - */ package org.opensearch.gradle.zipplugin; import java.util.*; diff --git a/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublishExtension.java b/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublishExtension.java index 8d3a4cc2d2a6d..47a9dbc80ff8c 100644 --- a/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublishExtension.java +++ b/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublishExtension.java @@ -5,30 +5,6 @@ * this file be licensed under the Apache-2.0 license or a * compatible open source license. */ - -/* - * Licensed to Elasticsearch under one or more contributor - * license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright - * ownership. Elasticsearch licenses this file to you under - * the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -/* - * Modifications Copyright OpenSearch Contributors. See - * GitHub history for details. - */ package org.opensearch.gradle.zipplugin; public class ZipPublishExtension { diff --git a/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublishUtil.java b/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublishUtil.java index b31ea602a919c..a2377e62178c7 100644 --- a/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublishUtil.java +++ b/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublishUtil.java @@ -5,30 +5,6 @@ * this file be licensed under the Apache-2.0 license or a * compatible open source license. */ - -/* - * Licensed to Elasticsearch under one or more contributor - * license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright - * ownership. Elasticsearch licenses this file to you under - * the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -/* - * Modifications Copyright OpenSearch Contributors. See - * GitHub history for details. - */ package org.opensearch.gradle.zipplugin; class ZipPublishUtil { diff --git a/buildSrc/src/test/groovy/org/opensearch/gradle/zipplugin/ZipPublishTest.groovy b/buildSrc/src/test/groovy/org/opensearch/gradle/zipplugin/ZipPublishTest.groovy index f80f32f3852d8..02ca8ece22458 100644 --- a/buildSrc/src/test/groovy/org/opensearch/gradle/zipplugin/ZipPublishTest.groovy +++ b/buildSrc/src/test/groovy/org/opensearch/gradle/zipplugin/ZipPublishTest.groovy @@ -5,30 +5,6 @@ * this file be licensed under the Apache-2.0 license or a * compatible open source license. */ - -/* - * Licensed to Elasticsearch under one or more contributor - * license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright - * ownership. Elasticsearch licenses this file to you under - * the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -/* - * Modifications Copyright OpenSearch Contributors. See - * GitHub history for details. - */ package org.opensearch.gradle.zipplugin; import org.gradle.testfixtures.ProjectBuilder From e8a11b7c306c1a9d235583ada803c863581dd6f4 Mon Sep 17 00:00:00 2001 From: pgodithi Date: Thu, 21 Apr 2022 14:44:07 -0700 Subject: [PATCH 13/63] spotlessJavaCheck fix Signed-off-by: pgodithi --- .../src/main/java/org/opensearch/gradle/PublishPlugin.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/buildSrc/src/main/java/org/opensearch/gradle/PublishPlugin.java b/buildSrc/src/main/java/org/opensearch/gradle/PublishPlugin.java index 22402b39faa39..34a3bca816fe0 100644 --- a/buildSrc/src/main/java/org/opensearch/gradle/PublishPlugin.java +++ b/buildSrc/src/main/java/org/opensearch/gradle/PublishPlugin.java @@ -131,10 +131,11 @@ public String call() throws Exception { 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()))); } - ); } + + generatePomTask.configure( + t -> { t.dependsOn(String.format("generatePomFileFor%sPublication", Util.capitalize(publication.getName()))); } + ); }); } From cf9e2919b4cf0b77b6b8730ea254c463bbcb0c11 Mon Sep 17 00:00:00 2001 From: pgodithi Date: Thu, 21 Apr 2022 18:29:12 -0700 Subject: [PATCH 14/63] Reverted back existing publish plugin Signed-off-by: pgodithi --- .../src/main/java/org/opensearch/gradle/PublishPlugin.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/buildSrc/src/main/java/org/opensearch/gradle/PublishPlugin.java b/buildSrc/src/main/java/org/opensearch/gradle/PublishPlugin.java index 34a3bca816fe0..d164b54c7506c 100644 --- a/buildSrc/src/main/java/org/opensearch/gradle/PublishPlugin.java +++ b/buildSrc/src/main/java/org/opensearch/gradle/PublishPlugin.java @@ -120,6 +120,7 @@ public String call() throws Exception { }); }); }); + publishing.getPublications().withType(MavenPublication.class, publication -> { // Add git origin info to generated POM files publication.getPom().withXml(PublishPlugin::addScmInfo); @@ -134,7 +135,7 @@ public String call() throws Exception { } generatePomTask.configure( - t -> { t.dependsOn(String.format("generatePomFileFor%sPublication", Util.capitalize(publication.getName()))); } + t -> t.dependsOn(String.format("generatePomFileFor%sPublication", Util.capitalize(publication.getName()))) ); }); From 88d21d44adb642d13411d6423cb82000d89693c9 Mon Sep 17 00:00:00 2001 From: pgodithi Date: Thu, 21 Apr 2022 18:51:59 -0700 Subject: [PATCH 15/63] Added feedback code fix Signed-off-by: pgodithi --- .../java/org/opensearch/gradle/zipplugin/ZipPublish.java | 8 +------- .../opensearch/gradle/zipplugin/ZipPublishExtension.java | 4 ++-- .../org/opensearch/gradle/zipplugin/ZipPublishTest.groovy | 4 ++-- 3 files changed, 5 insertions(+), 11 deletions(-) diff --git a/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublish.java b/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublish.java index 25575bd90c91f..ce7ed2da020df 100644 --- a/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublish.java +++ b/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublish.java @@ -22,11 +22,6 @@ public class ZipPublish implements Plugin { public final static String EXTENSION_NAME = "zipmavensettings"; public final static String PUBLICATION_NAME = "mavenzip"; public final static String STAGING_REPO = "zipstaging"; - public final static String MAVEN_ZIP_PUBLISH_TASK = "publish" - + ZipPublishUtil.capitalize(PUBLICATION_NAME) - + "PublicationTo" - + ZipPublishUtil.capitalize(STAGING_REPO) - + "Repository"; public final static String MAVEN_ZIP_PUBLISH_POM_TASK = "generatePomFileFor" + ZipPublishUtil.capitalize(PUBLICATION_NAME) + "Publication"; @@ -44,12 +39,11 @@ private void configMaven() { maven.setUrl(buildDirectory.toString() + LOCAL_STAGING_REPO_PATH); }); }); - System.out.println("Starting " + MAVEN_ZIP_PUBLISH_TASK + " task"); publishing.publications(publications -> { publications.create(PUBLICATION_NAME, MavenPublication.class, mavenZip -> { ZipPublishExtension extset = this.project.getExtensions().findByType(ZipPublishExtension.class); // Getting the Zip group from created extension - String zipGroup = extset.getZipgroup(); + String zipGroup = extset.getZipGroup(); String zipArtifact = getProperty("zipArtifact"); // Getting the Zip version from gradle property with/without added snapshot and qualifier String zipVersion = System.getProperty("opensearch.version"); diff --git a/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublishExtension.java b/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublishExtension.java index 47a9dbc80ff8c..a3f7d0922575c 100644 --- a/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublishExtension.java +++ b/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublishExtension.java @@ -11,11 +11,11 @@ public class ZipPublishExtension { private String zipGroup = "org.opensearch.plugin"; - public void setZipgroup(String zipGroup) { + public void setZipGroup(String zipGroup) { this.zipGroup = zipGroup; } - public String getZipgroup() { + public String getZipGroup() { return zipGroup; } diff --git a/buildSrc/src/test/groovy/org/opensearch/gradle/zipplugin/ZipPublishTest.groovy b/buildSrc/src/test/groovy/org/opensearch/gradle/zipplugin/ZipPublishTest.groovy index 02ca8ece22458..644e457a12ede 100644 --- a/buildSrc/src/test/groovy/org/opensearch/gradle/zipplugin/ZipPublishTest.groovy +++ b/buildSrc/src/test/groovy/org/opensearch/gradle/zipplugin/ZipPublishTest.groovy @@ -11,8 +11,8 @@ import org.gradle.testfixtures.ProjectBuilder import org.gradle.api.Project -class ZipPublishTest { - public void zippublish_plugin_should_add_task_to_project() { +class ZipPublishTest { + public void zipPublishTest() { Project project = ProjectBuilder.builder().build() project.getPlugins().apply 'opensearch.zippublish' From 056d06e62b0d50b7693bf5c090bb2e9881cf2d2d Mon Sep 17 00:00:00 2001 From: pgodithi Date: Fri, 22 Apr 2022 07:37:34 -0700 Subject: [PATCH 16/63] modified BUILD_DISTRIBUTIONS_LOCATION to zipDistributionLocation Signed-off-by: pgodithi --- .../java/org/opensearch/gradle/zipplugin/ZipPublish.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublish.java b/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublish.java index ce7ed2da020df..7fb82799a1f17 100644 --- a/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublish.java +++ b/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublish.java @@ -27,7 +27,7 @@ public class ZipPublish implements Plugin { + "Publication"; public final static String LOCALMAVEN = "publishToMavenLocal"; public final static String LOCAL_STAGING_REPO_PATH = "/build/local-staging-repo"; - public static String BUILD_DISTRIBUTIONS_LOCATION = "/build/distributions/"; + public String zipDistributionLocation = "/build/distributions/"; private void configMaven() { final Path buildDirectory = this.project.getRootDir().toPath(); @@ -62,10 +62,10 @@ private void configMaven() { String zipFilePath = null; // -PzipFilePath=/build/distributions/opensearch-job-scheduler-2.0.0.0-alpha1-SNAPSHOT.zip if (getProperty("zipFilePath") != null) { - BUILD_DISTRIBUTIONS_LOCATION = getProperty("zipFilePath"); - zipFilePath = BUILD_DISTRIBUTIONS_LOCATION + zipArtifact + "-" + finalZipVersion + ".zip"; + zipDistributionLocation = getProperty("zipFilePath"); + zipFilePath = zipDistributionLocation + zipArtifact + "-" + finalZipVersion + ".zip"; } else { - zipFilePath = BUILD_DISTRIBUTIONS_LOCATION + zipArtifact + "-" + finalZipVersion + ".zip"; + zipFilePath = zipDistributionLocation + zipArtifact + "-" + finalZipVersion + ".zip"; } mavenZip.artifact(buildDirectory.toString() + zipFilePath); mavenZip.setGroupId(zipGroup); From edf9028e24de5632c627deac457343e14dcc51cd Mon Sep 17 00:00:00 2001 From: pgodithi Date: Fri, 22 Apr 2022 10:05:50 -0700 Subject: [PATCH 17/63] fix lint issues Signed-off-by: pgodithi --- .../gradle/zipplugin/ZipPublish.java | 27 +++---------------- .../gradle/zipplugin/ZipPublishExtension.java | 4 +++ 2 files changed, 8 insertions(+), 23 deletions(-) diff --git a/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublish.java b/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublish.java index 7fb82799a1f17..6e02db2bb3645 100644 --- a/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublish.java +++ b/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublish.java @@ -46,31 +46,12 @@ private void configMaven() { String zipGroup = extset.getZipGroup(); String zipArtifact = getProperty("zipArtifact"); // Getting the Zip version from gradle property with/without added snapshot and qualifier - String zipVersion = System.getProperty("opensearch.version"); - String version = null; - String extraSuffix = null; - if (zipVersion != null) { - StringTokenizer st = new StringTokenizer(zipVersion); - version = st.nextToken("-") + ".0"; - try { - extraSuffix = zipVersion.substring(zipVersion.indexOf("-")); - } catch (Exception e) { - System.out.println(""); - } - } - String finalZipVersion = version + extraSuffix; + String zipVersion = extset.getZipVersion(); String zipFilePath = null; - // -PzipFilePath=/build/distributions/opensearch-job-scheduler-2.0.0.0-alpha1-SNAPSHOT.zip - if (getProperty("zipFilePath") != null) { - zipDistributionLocation = getProperty("zipFilePath"); - zipFilePath = zipDistributionLocation + zipArtifact + "-" + finalZipVersion + ".zip"; - } else { - zipFilePath = zipDistributionLocation + zipArtifact + "-" + finalZipVersion + ".zip"; - } - mavenZip.artifact(buildDirectory.toString() + zipFilePath); + mavenZip.artifact(project.getTasks().named("bundlePlugin")); mavenZip.setGroupId(zipGroup); mavenZip.setArtifactId(zipArtifact); - mavenZip.setVersion(finalZipVersion); + mavenZip.setVersion(zipVersion); }); }); }); @@ -91,7 +72,7 @@ private String getProperty(String name) { public void apply(Project project) { final Path buildDirectory = project.getRootDir().toPath(); this.project = project; - project.getExtensions().create(EXTENSION_NAME, ZipPublishExtension.class); + project.getExtensions().create(EXTENSION_NAME, ZipPublishExtension.class, project); // Applies the new publication once the plugin is applied configMaven(); Task compileJava = project.getTasks().findByName("compileJava"); diff --git a/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublishExtension.java b/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublishExtension.java index a3f7d0922575c..e55f7ed38c99a 100644 --- a/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublishExtension.java +++ b/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublishExtension.java @@ -10,6 +10,7 @@ public class ZipPublishExtension { private String zipGroup = "org.opensearch.plugin"; + private String version; public void setZipGroup(String zipGroup) { this.zipGroup = zipGroup; @@ -18,5 +19,8 @@ public void setZipGroup(String zipGroup) { public String getZipGroup() { return zipGroup; } + public String getZipVersion() { + return version; + } } From 6baf6462d0fd80c300a4c216244b984483008154 Mon Sep 17 00:00:00 2001 From: pgodithi Date: Fri, 22 Apr 2022 12:43:46 -0700 Subject: [PATCH 18/63] fix lint issues Signed-off-by: pgodithi --- .../opensearch/gradle/zipplugin/ZipPublishExtension.java | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublishExtension.java b/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublishExtension.java index e55f7ed38c99a..8e30eb7b9a28b 100644 --- a/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublishExtension.java +++ b/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublishExtension.java @@ -8,19 +8,15 @@ package org.opensearch.gradle.zipplugin; public class ZipPublishExtension { - private String zipGroup = "org.opensearch.plugin"; - private String version; public void setZipGroup(String zipGroup) { this.zipGroup = zipGroup; } - + public String getZipGroup() { return zipGroup; } - public String getZipVersion() { - return version; - } } + From f8a528c203e4512f10c6df89dea10daf3f301923 Mon Sep 17 00:00:00 2001 From: pgodithi Date: Fri, 22 Apr 2022 12:48:35 -0700 Subject: [PATCH 19/63] changed the zip artifcat identify logic Signed-off-by: pgodithi --- .../gradle/zipplugin/ZipPublish.java | 33 +++++-------------- .../gradle/zipplugin/ZipPublishExtension.java | 3 +- .../gradle/zipplugin/ZipPublishUtil.java | 12 +++++++ 3 files changed, 22 insertions(+), 26 deletions(-) diff --git a/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublish.java b/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublish.java index 6e02db2bb3645..95ccea21721f2 100644 --- a/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublish.java +++ b/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublish.java @@ -29,10 +29,10 @@ public class ZipPublish implements Plugin { public final static String LOCAL_STAGING_REPO_PATH = "/build/local-staging-repo"; public String zipDistributionLocation = "/build/distributions/"; - private void configMaven() { - final Path buildDirectory = this.project.getRootDir().toPath(); - this.project.getPluginManager().apply(MavenPublishPlugin.class); - this.project.getExtensions().configure(PublishingExtension.class, publishing -> { + private 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); @@ -41,13 +41,11 @@ private void configMaven() { }); publishing.publications(publications -> { publications.create(PUBLICATION_NAME, MavenPublication.class, mavenZip -> { - ZipPublishExtension extset = this.project.getExtensions().findByType(ZipPublishExtension.class); + ZipPublishExtension extset = project.getExtensions().findByType(ZipPublishExtension.class); // Getting the Zip group from created extension String zipGroup = extset.getZipGroup(); - String zipArtifact = getProperty("zipArtifact"); - // Getting the Zip version from gradle property with/without added snapshot and qualifier - String zipVersion = extset.getZipVersion(); - String zipFilePath = null; + String zipArtifact = project.getName(); + String zipVersion = ZipPublishUtil.getProperty("version", project); mavenZip.artifact(project.getTasks().named("bundlePlugin")); mavenZip.setGroupId(zipGroup); mavenZip.setArtifactId(zipArtifact); @@ -57,24 +55,11 @@ private void configMaven() { }); } - // function to get Project properties - private String getProperty(String name) { - if (this.project.hasProperty(name)) { - Object property = this.project.property(name); - if (property != null) { - return property.toString(); - } - } - return null; - } - @Override public void apply(Project project) { - final Path buildDirectory = project.getRootDir().toPath(); this.project = project; - project.getExtensions().create(EXTENSION_NAME, ZipPublishExtension.class, project); - // Applies the new publication once the plugin is applied - configMaven(); + project.getExtensions().create(EXTENSION_NAME, ZipPublishExtension.class); + project.afterEvaluate(evaluatedProject -> { configMaven(project); }); Task compileJava = project.getTasks().findByName("compileJava"); if (compileJava != null) { compileJava.setEnabled(false); diff --git a/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublishExtension.java b/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublishExtension.java index 8e30eb7b9a28b..ae2996cb5ed5b 100644 --- a/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublishExtension.java +++ b/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublishExtension.java @@ -13,10 +13,9 @@ public class ZipPublishExtension { public void setZipGroup(String zipGroup) { this.zipGroup = zipGroup; } - + public String getZipGroup() { return zipGroup; } } - diff --git a/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublishUtil.java b/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublishUtil.java index a2377e62178c7..b8bfaa0d935d1 100644 --- a/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublishUtil.java +++ b/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublishUtil.java @@ -7,10 +7,22 @@ */ package org.opensearch.gradle.zipplugin; +import org.gradle.api.Project; + class ZipPublishUtil { static String capitalize(String str) { return str.substring(0, 1).toUpperCase() + str.substring(1); } + static String getProperty(String name, Project project) { + if (project.hasProperty(name)) { + Object property = project.property(name); + if (property != null) { + return property.toString(); + } + } + return null; + } + } From ebd85a38b900e2fbfad367203d88aa05d0e36e3b Mon Sep 17 00:00:00 2001 From: pgodithi Date: Fri, 22 Apr 2022 13:03:39 -0700 Subject: [PATCH 20/63] Changed the zip file identify logic Signed-off-by: pgodithi --- .../gradle/zipplugin/ZipPublish.java | 54 ++++--------------- .../gradle/zipplugin/ZipPublishExtension.java | 1 - .../gradle/zipplugin/ZipPublishUtil.java | 12 +++++ .../gradle/zipplugin/ZipPublishTest.groovy | 1 + 4 files changed, 23 insertions(+), 45 deletions(-) diff --git a/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublish.java b/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublish.java index 7fb82799a1f17..95ccea21721f2 100644 --- a/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublish.java +++ b/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublish.java @@ -29,10 +29,10 @@ public class ZipPublish implements Plugin { public final static String LOCAL_STAGING_REPO_PATH = "/build/local-staging-repo"; public String zipDistributionLocation = "/build/distributions/"; - private void configMaven() { - final Path buildDirectory = this.project.getRootDir().toPath(); - this.project.getPluginManager().apply(MavenPublishPlugin.class); - this.project.getExtensions().configure(PublishingExtension.class, publishing -> { + private 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); @@ -41,59 +41,25 @@ private void configMaven() { }); publishing.publications(publications -> { publications.create(PUBLICATION_NAME, MavenPublication.class, mavenZip -> { - ZipPublishExtension extset = this.project.getExtensions().findByType(ZipPublishExtension.class); + ZipPublishExtension extset = project.getExtensions().findByType(ZipPublishExtension.class); // Getting the Zip group from created extension String zipGroup = extset.getZipGroup(); - String zipArtifact = getProperty("zipArtifact"); - // Getting the Zip version from gradle property with/without added snapshot and qualifier - String zipVersion = System.getProperty("opensearch.version"); - String version = null; - String extraSuffix = null; - if (zipVersion != null) { - StringTokenizer st = new StringTokenizer(zipVersion); - version = st.nextToken("-") + ".0"; - try { - extraSuffix = zipVersion.substring(zipVersion.indexOf("-")); - } catch (Exception e) { - System.out.println(""); - } - } - String finalZipVersion = version + extraSuffix; - String zipFilePath = null; - // -PzipFilePath=/build/distributions/opensearch-job-scheduler-2.0.0.0-alpha1-SNAPSHOT.zip - if (getProperty("zipFilePath") != null) { - zipDistributionLocation = getProperty("zipFilePath"); - zipFilePath = zipDistributionLocation + zipArtifact + "-" + finalZipVersion + ".zip"; - } else { - zipFilePath = zipDistributionLocation + zipArtifact + "-" + finalZipVersion + ".zip"; - } - mavenZip.artifact(buildDirectory.toString() + zipFilePath); + String zipArtifact = project.getName(); + String zipVersion = ZipPublishUtil.getProperty("version", project); + mavenZip.artifact(project.getTasks().named("bundlePlugin")); mavenZip.setGroupId(zipGroup); mavenZip.setArtifactId(zipArtifact); - mavenZip.setVersion(finalZipVersion); + mavenZip.setVersion(zipVersion); }); }); }); } - // function to get Project properties - private String getProperty(String name) { - if (this.project.hasProperty(name)) { - Object property = this.project.property(name); - if (property != null) { - return property.toString(); - } - } - return null; - } - @Override public void apply(Project project) { - final Path buildDirectory = project.getRootDir().toPath(); this.project = project; project.getExtensions().create(EXTENSION_NAME, ZipPublishExtension.class); - // Applies the new publication once the plugin is applied - configMaven(); + project.afterEvaluate(evaluatedProject -> { configMaven(project); }); Task compileJava = project.getTasks().findByName("compileJava"); if (compileJava != null) { compileJava.setEnabled(false); diff --git a/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublishExtension.java b/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublishExtension.java index a3f7d0922575c..ae2996cb5ed5b 100644 --- a/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublishExtension.java +++ b/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublishExtension.java @@ -8,7 +8,6 @@ package org.opensearch.gradle.zipplugin; public class ZipPublishExtension { - private String zipGroup = "org.opensearch.plugin"; public void setZipGroup(String zipGroup) { diff --git a/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublishUtil.java b/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublishUtil.java index a2377e62178c7..b8bfaa0d935d1 100644 --- a/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublishUtil.java +++ b/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublishUtil.java @@ -7,10 +7,22 @@ */ package org.opensearch.gradle.zipplugin; +import org.gradle.api.Project; + class ZipPublishUtil { static String capitalize(String str) { return str.substring(0, 1).toUpperCase() + str.substring(1); } + static String getProperty(String name, Project project) { + if (project.hasProperty(name)) { + Object property = project.property(name); + if (property != null) { + return property.toString(); + } + } + return null; + } + } diff --git a/buildSrc/src/test/groovy/org/opensearch/gradle/zipplugin/ZipPublishTest.groovy b/buildSrc/src/test/groovy/org/opensearch/gradle/zipplugin/ZipPublishTest.groovy index 644e457a12ede..3bee614a0ef7b 100644 --- a/buildSrc/src/test/groovy/org/opensearch/gradle/zipplugin/ZipPublishTest.groovy +++ b/buildSrc/src/test/groovy/org/opensearch/gradle/zipplugin/ZipPublishTest.groovy @@ -16,6 +16,7 @@ class ZipPublishTest { Project project = ProjectBuilder.builder().build() project.getPlugins().apply 'opensearch.zippublish' + assertTrue(project.plugins.hasPlugin("opensearch.zippublish")) assertTrue(project.tasks.publishMavenzipPublicationToZipstagingRepository instanceof ZipPublish) } } \ No newline at end of file From 26d83ee730f096ea18c61c7c8192e9ea4cc96235 Mon Sep 17 00:00:00 2001 From: pgodithi Date: Fri, 22 Apr 2022 13:11:22 -0700 Subject: [PATCH 21/63] Changed the zip file identify logic Signed-off-by: pgodithi --- .../gradle/zipplugin/ZipPublish.java | 36 ++++++++++--------- 1 file changed, 19 insertions(+), 17 deletions(-) diff --git a/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublish.java b/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublish.java index 95ccea21721f2..7804cef2bf667 100644 --- a/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublish.java +++ b/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublish.java @@ -59,24 +59,26 @@ private void configMaven(Project project) { public void apply(Project project) { this.project = project; project.getExtensions().create(EXTENSION_NAME, ZipPublishExtension.class); - project.afterEvaluate(evaluatedProject -> { configMaven(project); }); - Task compileJava = project.getTasks().findByName("compileJava"); - if (compileJava != null) { - compileJava.setEnabled(false); - } - Task sourceJarTask = project.getTasks().findByName("sourcesJar"); - if (sourceJarTask != null) { - sourceJarTask.setEnabled(false); - } - Task javaDocJarTask = project.getTasks().findByName("javadocJar"); - if (javaDocJarTask != null) { - javaDocJarTask.setEnabled(false); - } - project.getGradle().getTaskGraph().whenReady(graph -> { - if (graph.hasTask(LOCALMAVEN)) { - project.getTasks().getByName(MAVEN_ZIP_PUBLISH_POM_TASK).setEnabled(false); + project.afterEvaluate(evaluatedProject -> { + configMaven(project); + Task compileJava = project.getTasks().findByName("compileJava"); + if (compileJava != null) { + compileJava.setEnabled(false); } - + Task sourceJarTask = project.getTasks().findByName("sourcesJar"); + if (sourceJarTask != null) { + sourceJarTask.setEnabled(false); + } + Task javaDocJarTask = project.getTasks().findByName("javadocJar"); + if (javaDocJarTask != null) { + javaDocJarTask.setEnabled(false); + } + project.getGradle().getTaskGraph().whenReady(graph -> { + if (graph.hasTask(LOCALMAVEN)) { + project.getTasks().getByName(MAVEN_ZIP_PUBLISH_POM_TASK).setEnabled(false); + } + + }); }); } } From cf9ee098b0a42fe736d9c0aabaca7948adb8e69a Mon Sep 17 00:00:00 2001 From: pgodithi Date: Fri, 22 Apr 2022 13:22:34 -0700 Subject: [PATCH 22/63] Changed the zip file identify logic Signed-off-by: pgodithi --- .../gradle/zipplugin/ZipPublish.java | 44 +++++++++++-------- 1 file changed, 25 insertions(+), 19 deletions(-) diff --git a/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublish.java b/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublish.java index 7804cef2bf667..6ee599adbc08c 100644 --- a/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublish.java +++ b/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublish.java @@ -59,26 +59,32 @@ private void configMaven(Project project) { public void apply(Project project) { this.project = project; project.getExtensions().create(EXTENSION_NAME, ZipPublishExtension.class); - project.afterEvaluate(evaluatedProject -> { - configMaven(project); - Task compileJava = project.getTasks().findByName("compileJava"); - if (compileJava != null) { - compileJava.setEnabled(false); + project.afterEvaluate(evaluatedProject -> { configMaven(project); }); + Task compileJava = project.getTasks().findByName("compileJava"); + if (compileJava != null) { + compileJava.setEnabled(false); + } + Task sourceJarTask = project.getTasks().findByName("sourcesJar"); + if (sourceJarTask != null) { + sourceJarTask.setEnabled(false); + } + Task javaDocJarTask = project.getTasks().findByName("javadocJar"); + if (javaDocJarTask != null) { + javaDocJarTask.setEnabled(false); + } + Task zipToMavenLocal = project.getTasks().findByName("publishMavenzipPublicationToMavenLocal"); + if (zipToMavenLocal != null) { + zipToMavenLocal.setEnabled(false); + } + Task zipToExistingStagingRepo = project.getTasks().findByName("publishMavenzipPublicationToStagingRepository"); + if (zipToExistingStagingRepo != null) { + zipToExistingStagingRepo.setEnabled(false); + } + project.getGradle().getTaskGraph().whenReady(graph -> { + if (graph.hasTask(LOCALMAVEN)) { + project.getTasks().getByName(MAVEN_ZIP_PUBLISH_POM_TASK).setEnabled(false); } - Task sourceJarTask = project.getTasks().findByName("sourcesJar"); - if (sourceJarTask != null) { - sourceJarTask.setEnabled(false); - } - Task javaDocJarTask = project.getTasks().findByName("javadocJar"); - if (javaDocJarTask != null) { - javaDocJarTask.setEnabled(false); - } - project.getGradle().getTaskGraph().whenReady(graph -> { - if (graph.hasTask(LOCALMAVEN)) { - project.getTasks().getByName(MAVEN_ZIP_PUBLISH_POM_TASK).setEnabled(false); - } - - }); + }); } } From 1aeb73a9dac47229ce5da472e0aa6cba9bc6568f Mon Sep 17 00:00:00 2001 From: pgodithi Date: Fri, 22 Apr 2022 13:29:13 -0700 Subject: [PATCH 23/63] Changed the zip file identify logic Signed-off-by: pgodithi --- .../opensearch/gradle/zipplugin/ZipPublish.java | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublish.java b/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublish.java index 6ee599adbc08c..7d8c7943b1285 100644 --- a/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublish.java +++ b/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublish.java @@ -72,18 +72,16 @@ public void apply(Project project) { if (javaDocJarTask != null) { javaDocJarTask.setEnabled(false); } - Task zipToMavenLocal = project.getTasks().findByName("publishMavenzipPublicationToMavenLocal"); - if (zipToMavenLocal != null) { - zipToMavenLocal.setEnabled(false); - } - Task zipToExistingStagingRepo = project.getTasks().findByName("publishMavenzipPublicationToStagingRepository"); - if (zipToExistingStagingRepo != null) { - zipToExistingStagingRepo.setEnabled(false); - } project.getGradle().getTaskGraph().whenReady(graph -> { if (graph.hasTask(LOCALMAVEN)) { project.getTasks().getByName(MAVEN_ZIP_PUBLISH_POM_TASK).setEnabled(false); } + if(graph.hasTask("publishMavenzipPublicationToMavenLocal")) { + project.getTasks().getByName("publishMavenzipPublicationToMavenLocal").setEnabled(false); + } + if(graph.hasTask("publishMavenzipPublicationToStagingRepository")) { + project.getTasks().getByName("publishMavenzipPublicationToStagingRepository").setEnabled(false); + } }); } From b98ab6428b97ec270292d1bbef0249757726c998 Mon Sep 17 00:00:00 2001 From: pgodithi Date: Fri, 22 Apr 2022 13:34:04 -0700 Subject: [PATCH 24/63] Changed the zip file identify logic Signed-off-by: pgodithi --- .../java/org/opensearch/gradle/zipplugin/ZipPublish.java | 6 ------ 1 file changed, 6 deletions(-) diff --git a/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublish.java b/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublish.java index 7d8c7943b1285..95ccea21721f2 100644 --- a/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublish.java +++ b/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublish.java @@ -76,12 +76,6 @@ public void apply(Project project) { if (graph.hasTask(LOCALMAVEN)) { project.getTasks().getByName(MAVEN_ZIP_PUBLISH_POM_TASK).setEnabled(false); } - if(graph.hasTask("publishMavenzipPublicationToMavenLocal")) { - project.getTasks().getByName("publishMavenzipPublicationToMavenLocal").setEnabled(false); - } - if(graph.hasTask("publishMavenzipPublicationToStagingRepository")) { - project.getTasks().getByName("publishMavenzipPublicationToStagingRepository").setEnabled(false); - } }); } From 321ec962515bb27d84d1c3435e7549510a62b65d Mon Sep 17 00:00:00 2001 From: pgodithi Date: Fri, 22 Apr 2022 13:35:18 -0700 Subject: [PATCH 25/63] Changed the zip file identify logic Signed-off-by: pgodithi --- .../main/java/org/opensearch/gradle/zipplugin/ZipPublish.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublish.java b/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublish.java index 95ccea21721f2..1171498cbca86 100644 --- a/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublish.java +++ b/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublish.java @@ -79,4 +79,4 @@ public void apply(Project project) { }); } -} +} \ No newline at end of file From 5e97819335db4152fe56df5550ff1240806d6a0c Mon Sep 17 00:00:00 2001 From: pgodithi Date: Fri, 22 Apr 2022 13:37:04 -0700 Subject: [PATCH 26/63] ran spotlessApply Signed-off-by: pgodithi --- .../main/java/org/opensearch/gradle/zipplugin/ZipPublish.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublish.java b/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublish.java index 1171498cbca86..95ccea21721f2 100644 --- a/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublish.java +++ b/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublish.java @@ -79,4 +79,4 @@ public void apply(Project project) { }); } -} \ No newline at end of file +} From 9ccbf811a46e26148e157b1501d6429659995308 Mon Sep 17 00:00:00 2001 From: pgodithi Date: Fri, 22 Apr 2022 15:31:57 -0700 Subject: [PATCH 27/63] ran spotlessApply Signed-off-by: pgodithi --- .../main/java/org/opensearch/gradle/zipplugin/ZipPublish.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublish.java b/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublish.java index 95ccea21721f2..8c6687f96b1bf 100644 --- a/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublish.java +++ b/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublish.java @@ -60,7 +60,7 @@ public void apply(Project project) { this.project = project; project.getExtensions().create(EXTENSION_NAME, ZipPublishExtension.class); project.afterEvaluate(evaluatedProject -> { configMaven(project); }); - Task compileJava = project.getTasks().findByName("compileJava"); + /*Task compileJava = project.getTasks().findByName("compileJava"); if (compileJava != null) { compileJava.setEnabled(false); } @@ -71,7 +71,7 @@ public void apply(Project project) { Task javaDocJarTask = project.getTasks().findByName("javadocJar"); if (javaDocJarTask != null) { javaDocJarTask.setEnabled(false); - } + }*/ project.getGradle().getTaskGraph().whenReady(graph -> { if (graph.hasTask(LOCALMAVEN)) { project.getTasks().getByName(MAVEN_ZIP_PUBLISH_POM_TASK).setEnabled(false); From 8b853205463cd4fcabeec32485016b69123784d7 Mon Sep 17 00:00:00 2001 From: pgodithi Date: Sat, 23 Apr 2022 06:15:16 -0700 Subject: [PATCH 28/63] fix lint issues Signed-off-by: pgodithi --- .../gradle/zipplugin/ZipPublish.java | 1 - .../gradle/zipplugin/ZipPublishTest.groovy | 22 -------- .../gradle/zipplugin/ZipPublishTests.java | 53 +++++++++++++++++++ 3 files changed, 53 insertions(+), 23 deletions(-) delete mode 100644 buildSrc/src/test/groovy/org/opensearch/gradle/zipplugin/ZipPublishTest.groovy create mode 100644 buildSrc/src/test/java/org/opensearch/gradle/zipplugin/ZipPublishTests.java diff --git a/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublish.java b/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublish.java index 8c6687f96b1bf..0e57cb85591c0 100644 --- a/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublish.java +++ b/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublish.java @@ -14,7 +14,6 @@ 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 ZipPublish implements Plugin { private Project project; diff --git a/buildSrc/src/test/groovy/org/opensearch/gradle/zipplugin/ZipPublishTest.groovy b/buildSrc/src/test/groovy/org/opensearch/gradle/zipplugin/ZipPublishTest.groovy deleted file mode 100644 index 3bee614a0ef7b..0000000000000 --- a/buildSrc/src/test/groovy/org/opensearch/gradle/zipplugin/ZipPublishTest.groovy +++ /dev/null @@ -1,22 +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.zipplugin; - -import org.gradle.testfixtures.ProjectBuilder -import org.gradle.api.Project - - -class ZipPublishTest { - public void zipPublishTest() { - Project project = ProjectBuilder.builder().build() - project.getPlugins().apply 'opensearch.zippublish' - - assertTrue(project.plugins.hasPlugin("opensearch.zippublish")) - assertTrue(project.tasks.publishMavenzipPublicationToZipstagingRepository instanceof ZipPublish) - } -} \ No newline at end of file diff --git a/buildSrc/src/test/java/org/opensearch/gradle/zipplugin/ZipPublishTests.java b/buildSrc/src/test/java/org/opensearch/gradle/zipplugin/ZipPublishTests.java new file mode 100644 index 0000000000000..5688b9098e82f --- /dev/null +++ b/buildSrc/src/test/java/org/opensearch/gradle/zipplugin/ZipPublishTests.java @@ -0,0 +1,53 @@ +/* + * 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.zipplugin; + +import org.gradle.testfixtures.ProjectBuilder; +import org.gradle.api.Project; +import org.opensearch.gradle.test.GradleUnitTestCase; +import org.junit.Test; +import java.io.File; +import java.io.IOException; +import java.io.Writer; +import java.io.FileWriter; +import java.nio.file.Files; +import org.gradle.testkit.runner.GradleRunner; +import org.gradle.testkit.runner.BuildResult; + +public class ZipPublishTests extends GradleUnitTestCase { + + @Test + public void testZipPublish() throws IOException { + System.out.println("Testing ZipPublishTests"); + Project project = ProjectBuilder.builder().build(); + project.getPluginManager().apply("opensearch.zippublish"); + assertTrue(project.getPluginManager().hasPlugin("opensearch.zippublish")); + assertNotNull("plugin should have a task", project.getTasks().findByName("publishMavenzipPublicationToZipstagingRepository")); + File projectDir = new File("build/functionalTest"); + Files.createDirectories(projectDir.toPath()); + writeString(new File(projectDir, "settings.gradle"), ""); + writeString(new File(projectDir, "build.gradle"), "plugins {" + " id('opensearch.zippublish')" + "}"); + + GradleRunner runner = GradleRunner.create(); + runner.forwardOutput(); + runner.withPluginClasspath(); + runner.withArguments("publishMavenzipPublicationToZipstagingRepository"); + runner.withProjectDir(projectDir); + BuildResult result = runner.build(); + + assertTrue(result.getOutput().contains("someoutput from the publishMavenzipPublicationToZipstagingRepository task")); + } + + private void writeString(File file, String string) throws IOException { + try (Writer writer = new FileWriter(file)) { + writer.write(string); + } + } + +} From 4d83dd14840efc2b1ea10d658b0ed7d431539165 Mon Sep 17 00:00:00 2001 From: pgodithi Date: Sat, 23 Apr 2022 06:19:44 -0700 Subject: [PATCH 29/63] fix lint issues Signed-off-by: pgodithi --- .../java/org/opensearch/gradle/zipplugin/ZipPublishTests.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildSrc/src/test/java/org/opensearch/gradle/zipplugin/ZipPublishTests.java b/buildSrc/src/test/java/org/opensearch/gradle/zipplugin/ZipPublishTests.java index 5688b9098e82f..c61310a93a83a 100644 --- a/buildSrc/src/test/java/org/opensearch/gradle/zipplugin/ZipPublishTests.java +++ b/buildSrc/src/test/java/org/opensearch/gradle/zipplugin/ZipPublishTests.java @@ -28,7 +28,7 @@ public void testZipPublish() throws IOException { Project project = ProjectBuilder.builder().build(); project.getPluginManager().apply("opensearch.zippublish"); assertTrue(project.getPluginManager().hasPlugin("opensearch.zippublish")); - assertNotNull("plugin should have a task", project.getTasks().findByName("publishMavenzipPublicationToZipstagingRepository")); + assertTrue("plugin should have a task", project.getTasks().findByName("publishMavenzipPublicationToZipstagingRepository")); File projectDir = new File("build/functionalTest"); Files.createDirectories(projectDir.toPath()); writeString(new File(projectDir, "settings.gradle"), ""); From ac2f151c2567641e007aea752c2bc403cd6f188d Mon Sep 17 00:00:00 2001 From: pgodithi Date: Sat, 23 Apr 2022 06:21:16 -0700 Subject: [PATCH 30/63] fix lint issues Signed-off-by: pgodithi --- .../java/org/opensearch/gradle/zipplugin/ZipPublishTests.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildSrc/src/test/java/org/opensearch/gradle/zipplugin/ZipPublishTests.java b/buildSrc/src/test/java/org/opensearch/gradle/zipplugin/ZipPublishTests.java index c61310a93a83a..f7a4d9b8bdf64 100644 --- a/buildSrc/src/test/java/org/opensearch/gradle/zipplugin/ZipPublishTests.java +++ b/buildSrc/src/test/java/org/opensearch/gradle/zipplugin/ZipPublishTests.java @@ -28,7 +28,7 @@ public void testZipPublish() throws IOException { Project project = ProjectBuilder.builder().build(); project.getPluginManager().apply("opensearch.zippublish"); assertTrue(project.getPluginManager().hasPlugin("opensearch.zippublish")); - assertTrue("plugin should have a task", project.getTasks().findByName("publishMavenzipPublicationToZipstagingRepository")); + assertTrue(project.getTasks().findByName("publishMavenzipPublicationToZipstagingRepository")); File projectDir = new File("build/functionalTest"); Files.createDirectories(projectDir.toPath()); writeString(new File(projectDir, "settings.gradle"), ""); From daa06c39a04c1728b83201de8413c406d161bdd4 Mon Sep 17 00:00:00 2001 From: pgodithi Date: Sat, 23 Apr 2022 06:21:26 -0700 Subject: [PATCH 31/63] fix lint issues Signed-off-by: pgodithi --- .../java/org/opensearch/gradle/zipplugin/ZipPublishTests.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildSrc/src/test/java/org/opensearch/gradle/zipplugin/ZipPublishTests.java b/buildSrc/src/test/java/org/opensearch/gradle/zipplugin/ZipPublishTests.java index f7a4d9b8bdf64..c61310a93a83a 100644 --- a/buildSrc/src/test/java/org/opensearch/gradle/zipplugin/ZipPublishTests.java +++ b/buildSrc/src/test/java/org/opensearch/gradle/zipplugin/ZipPublishTests.java @@ -28,7 +28,7 @@ public void testZipPublish() throws IOException { Project project = ProjectBuilder.builder().build(); project.getPluginManager().apply("opensearch.zippublish"); assertTrue(project.getPluginManager().hasPlugin("opensearch.zippublish")); - assertTrue(project.getTasks().findByName("publishMavenzipPublicationToZipstagingRepository")); + assertTrue("plugin should have a task", project.getTasks().findByName("publishMavenzipPublicationToZipstagingRepository")); File projectDir = new File("build/functionalTest"); Files.createDirectories(projectDir.toPath()); writeString(new File(projectDir, "settings.gradle"), ""); From 88d4562e0bd08047547ceb7917bfb3b9950dab48 Mon Sep 17 00:00:00 2001 From: pgodithi Date: Sat, 23 Apr 2022 06:23:21 -0700 Subject: [PATCH 32/63] fix lint issues Signed-off-by: pgodithi --- .../java/org/opensearch/gradle/zipplugin/ZipPublishTests.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/buildSrc/src/test/java/org/opensearch/gradle/zipplugin/ZipPublishTests.java b/buildSrc/src/test/java/org/opensearch/gradle/zipplugin/ZipPublishTests.java index c61310a93a83a..dd96983d29614 100644 --- a/buildSrc/src/test/java/org/opensearch/gradle/zipplugin/ZipPublishTests.java +++ b/buildSrc/src/test/java/org/opensearch/gradle/zipplugin/ZipPublishTests.java @@ -19,6 +19,7 @@ import java.nio.file.Files; import org.gradle.testkit.runner.GradleRunner; import org.gradle.testkit.runner.BuildResult; +import org.opensearch.gradle.zipplugin.ZipPublish; public class ZipPublishTests extends GradleUnitTestCase { @@ -28,7 +29,8 @@ public void testZipPublish() throws IOException { Project project = ProjectBuilder.builder().build(); project.getPluginManager().apply("opensearch.zippublish"); assertTrue(project.getPluginManager().hasPlugin("opensearch.zippublish")); - assertTrue("plugin should have a task", project.getTasks().findByName("publishMavenzipPublicationToZipstagingRepository")); + assertTrue(project.getTasks().findByName("publishMavenzipPublicationToZipstagingRepository") instanceof ZipPublish); + //assertTrue("plugin should have a task", project.getTasks().findByName("publishMavenzipPublicationToZipstagingRepository")); File projectDir = new File("build/functionalTest"); Files.createDirectories(projectDir.toPath()); writeString(new File(projectDir, "settings.gradle"), ""); From dba1cac4b202f26f18d6afcdaefaaffab3872828 Mon Sep 17 00:00:00 2001 From: pgodithi Date: Sat, 23 Apr 2022 06:24:59 -0700 Subject: [PATCH 33/63] fix lint issues Signed-off-by: pgodithi --- .../java/org/opensearch/gradle/zipplugin/ZipPublishTests.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/buildSrc/src/test/java/org/opensearch/gradle/zipplugin/ZipPublishTests.java b/buildSrc/src/test/java/org/opensearch/gradle/zipplugin/ZipPublishTests.java index dd96983d29614..721ee40863788 100644 --- a/buildSrc/src/test/java/org/opensearch/gradle/zipplugin/ZipPublishTests.java +++ b/buildSrc/src/test/java/org/opensearch/gradle/zipplugin/ZipPublishTests.java @@ -19,7 +19,6 @@ import java.nio.file.Files; import org.gradle.testkit.runner.GradleRunner; import org.gradle.testkit.runner.BuildResult; -import org.opensearch.gradle.zipplugin.ZipPublish; public class ZipPublishTests extends GradleUnitTestCase { @@ -29,7 +28,7 @@ public void testZipPublish() throws IOException { Project project = ProjectBuilder.builder().build(); project.getPluginManager().apply("opensearch.zippublish"); assertTrue(project.getPluginManager().hasPlugin("opensearch.zippublish")); - assertTrue(project.getTasks().findByName("publishMavenzipPublicationToZipstagingRepository") instanceof ZipPublish); + assertTrue(project.getTasks().findByName("publishMavenzipPublicationToZipstagingRepository")); //assertTrue("plugin should have a task", project.getTasks().findByName("publishMavenzipPublicationToZipstagingRepository")); File projectDir = new File("build/functionalTest"); Files.createDirectories(projectDir.toPath()); From 36a98f994b5b202a4556a5709dbbbd3f416b108a Mon Sep 17 00:00:00 2001 From: pgodithi Date: Sat, 23 Apr 2022 06:29:32 -0700 Subject: [PATCH 34/63] fix lint issues Signed-off-by: pgodithi --- .../org/opensearch/gradle/zipplugin/ZipPublishTests.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/buildSrc/src/test/java/org/opensearch/gradle/zipplugin/ZipPublishTests.java b/buildSrc/src/test/java/org/opensearch/gradle/zipplugin/ZipPublishTests.java index 721ee40863788..f0e090d79b507 100644 --- a/buildSrc/src/test/java/org/opensearch/gradle/zipplugin/ZipPublishTests.java +++ b/buildSrc/src/test/java/org/opensearch/gradle/zipplugin/ZipPublishTests.java @@ -28,7 +28,10 @@ public void testZipPublish() throws IOException { Project project = ProjectBuilder.builder().build(); project.getPluginManager().apply("opensearch.zippublish"); assertTrue(project.getPluginManager().hasPlugin("opensearch.zippublish")); - assertTrue(project.getTasks().findByName("publishMavenzipPublicationToZipstagingRepository")); + Task checkPublishTask = project.getTasks().findByName("publishMavenzipPublicationToZipstagingRepository"); + if(checkPublishTask!= null){ + assertTrue(); + } //assertTrue("plugin should have a task", project.getTasks().findByName("publishMavenzipPublicationToZipstagingRepository")); File projectDir = new File("build/functionalTest"); Files.createDirectories(projectDir.toPath()); From 5e3ca975473be3b03babd6195b4be5f742282c32 Mon Sep 17 00:00:00 2001 From: pgodithi Date: Sat, 23 Apr 2022 06:32:23 -0700 Subject: [PATCH 35/63] fix lint issues Signed-off-by: pgodithi --- .../org/opensearch/gradle/zipplugin/ZipPublishTests.java | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/buildSrc/src/test/java/org/opensearch/gradle/zipplugin/ZipPublishTests.java b/buildSrc/src/test/java/org/opensearch/gradle/zipplugin/ZipPublishTests.java index f0e090d79b507..167e77bad1ebb 100644 --- a/buildSrc/src/test/java/org/opensearch/gradle/zipplugin/ZipPublishTests.java +++ b/buildSrc/src/test/java/org/opensearch/gradle/zipplugin/ZipPublishTests.java @@ -26,13 +26,8 @@ public class ZipPublishTests extends GradleUnitTestCase { public void testZipPublish() throws IOException { System.out.println("Testing ZipPublishTests"); Project project = ProjectBuilder.builder().build(); - project.getPluginManager().apply("opensearch.zippublish"); + project.getPluginManager().apply(ZipPublish.class); assertTrue(project.getPluginManager().hasPlugin("opensearch.zippublish")); - Task checkPublishTask = project.getTasks().findByName("publishMavenzipPublicationToZipstagingRepository"); - if(checkPublishTask!= null){ - assertTrue(); - } - //assertTrue("plugin should have a task", project.getTasks().findByName("publishMavenzipPublicationToZipstagingRepository")); File projectDir = new File("build/functionalTest"); Files.createDirectories(projectDir.toPath()); writeString(new File(projectDir, "settings.gradle"), ""); From f1da84e7f3d1183d84209b94f22b6b6c0f948de1 Mon Sep 17 00:00:00 2001 From: pgodithi Date: Sat, 23 Apr 2022 06:52:23 -0700 Subject: [PATCH 36/63] fix lint issues Signed-off-by: pgodithi --- .../gradle/zipplugin/ZipPublishTests.java | 22 ++----------------- 1 file changed, 2 insertions(+), 20 deletions(-) diff --git a/buildSrc/src/test/java/org/opensearch/gradle/zipplugin/ZipPublishTests.java b/buildSrc/src/test/java/org/opensearch/gradle/zipplugin/ZipPublishTests.java index 167e77bad1ebb..8053aaa83c2c8 100644 --- a/buildSrc/src/test/java/org/opensearch/gradle/zipplugin/ZipPublishTests.java +++ b/buildSrc/src/test/java/org/opensearch/gradle/zipplugin/ZipPublishTests.java @@ -16,9 +16,8 @@ import java.io.IOException; import java.io.Writer; import java.io.FileWriter; -import java.nio.file.Files; -import org.gradle.testkit.runner.GradleRunner; import org.gradle.testkit.runner.BuildResult; +import org.gradle.api.publish.maven.MavenPublication; public class ZipPublishTests extends GradleUnitTestCase { @@ -28,25 +27,8 @@ public void testZipPublish() throws IOException { Project project = ProjectBuilder.builder().build(); project.getPluginManager().apply(ZipPublish.class); assertTrue(project.getPluginManager().hasPlugin("opensearch.zippublish")); - File projectDir = new File("build/functionalTest"); - Files.createDirectories(projectDir.toPath()); - writeString(new File(projectDir, "settings.gradle"), ""); - writeString(new File(projectDir, "build.gradle"), "plugins {" + " id('opensearch.zippublish')" + "}"); - - GradleRunner runner = GradleRunner.create(); - runner.forwardOutput(); - runner.withPluginClasspath(); - runner.withArguments("publishMavenzipPublicationToZipstagingRepository"); - runner.withProjectDir(projectDir); - BuildResult result = runner.build(); - - assertTrue(result.getOutput().contains("someoutput from the publishMavenzipPublicationToZipstagingRepository task")); + assertTrue(project.getTasks().findByName("publishMavenzipPublicationToZipstagingRepository") instanceof MavenPublication); } - private void writeString(File file, String string) throws IOException { - try (Writer writer = new FileWriter(file)) { - writer.write(string); - } - } } From 71b1337b8d34b7122165483a6ac416e9c1a47956 Mon Sep 17 00:00:00 2001 From: pgodithi Date: Sat, 23 Apr 2022 06:54:15 -0700 Subject: [PATCH 37/63] fix lint issues Signed-off-by: pgodithi --- .../java/org/opensearch/gradle/zipplugin/ZipPublishTests.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildSrc/src/test/java/org/opensearch/gradle/zipplugin/ZipPublishTests.java b/buildSrc/src/test/java/org/opensearch/gradle/zipplugin/ZipPublishTests.java index 8053aaa83c2c8..7c74a8c561bda 100644 --- a/buildSrc/src/test/java/org/opensearch/gradle/zipplugin/ZipPublishTests.java +++ b/buildSrc/src/test/java/org/opensearch/gradle/zipplugin/ZipPublishTests.java @@ -27,7 +27,7 @@ public void testZipPublish() throws IOException { Project project = ProjectBuilder.builder().build(); project.getPluginManager().apply(ZipPublish.class); assertTrue(project.getPluginManager().hasPlugin("opensearch.zippublish")); - assertTrue(project.getTasks().findByName("publishMavenzipPublicationToZipstagingRepository") instanceof MavenPublication); + assertTrue(dependencies.contains(project.getTasks().findByName("publishMavenzipPublicationToZipstagingRepository"))); } From 15cd29f2ce129bd76904263fbe86db080c4de307 Mon Sep 17 00:00:00 2001 From: pgodithi Date: Sat, 23 Apr 2022 06:58:13 -0700 Subject: [PATCH 38/63] fix lint issues Signed-off-by: pgodithi --- .../java/org/opensearch/gradle/zipplugin/ZipPublishTests.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/buildSrc/src/test/java/org/opensearch/gradle/zipplugin/ZipPublishTests.java b/buildSrc/src/test/java/org/opensearch/gradle/zipplugin/ZipPublishTests.java index 7c74a8c561bda..9226c4bda6119 100644 --- a/buildSrc/src/test/java/org/opensearch/gradle/zipplugin/ZipPublishTests.java +++ b/buildSrc/src/test/java/org/opensearch/gradle/zipplugin/ZipPublishTests.java @@ -27,7 +27,8 @@ public void testZipPublish() throws IOException { Project project = ProjectBuilder.builder().build(); project.getPluginManager().apply(ZipPublish.class); assertTrue(project.getPluginManager().hasPlugin("opensearch.zippublish")); - assertTrue(dependencies.contains(project.getTasks().findByName("publishMavenzipPublicationToZipstagingRepository"))); + Task zipPublishTask = project.getTasks().findByName("publishMavenzipPublicationToZipstagingRepository"); + assertNotNull(zipPublishTask); } From 122d48f9498ae8fbff450fcc3b9a8b243b0ae1a4 Mon Sep 17 00:00:00 2001 From: pgodithi Date: Sat, 23 Apr 2022 06:59:21 -0700 Subject: [PATCH 39/63] fix lint issues Signed-off-by: pgodithi --- .../java/org/opensearch/gradle/zipplugin/ZipPublish.java | 4 ++-- .../org/opensearch/gradle/zipplugin/ZipPublishTests.java | 6 +----- 2 files changed, 3 insertions(+), 7 deletions(-) diff --git a/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublish.java b/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublish.java index 0e57cb85591c0..d481e9e0f005a 100644 --- a/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublish.java +++ b/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublish.java @@ -59,7 +59,7 @@ public void apply(Project project) { this.project = project; project.getExtensions().create(EXTENSION_NAME, ZipPublishExtension.class); project.afterEvaluate(evaluatedProject -> { configMaven(project); }); - /*Task compileJava = project.getTasks().findByName("compileJava"); + Task compileJava = project.getTasks().findByName("compileJava"); if (compileJava != null) { compileJava.setEnabled(false); } @@ -70,7 +70,7 @@ public void apply(Project project) { Task javaDocJarTask = project.getTasks().findByName("javadocJar"); if (javaDocJarTask != null) { javaDocJarTask.setEnabled(false); - }*/ + } project.getGradle().getTaskGraph().whenReady(graph -> { if (graph.hasTask(LOCALMAVEN)) { project.getTasks().getByName(MAVEN_ZIP_PUBLISH_POM_TASK).setEnabled(false); diff --git a/buildSrc/src/test/java/org/opensearch/gradle/zipplugin/ZipPublishTests.java b/buildSrc/src/test/java/org/opensearch/gradle/zipplugin/ZipPublishTests.java index 9226c4bda6119..a5cac7b446515 100644 --- a/buildSrc/src/test/java/org/opensearch/gradle/zipplugin/ZipPublishTests.java +++ b/buildSrc/src/test/java/org/opensearch/gradle/zipplugin/ZipPublishTests.java @@ -10,14 +10,10 @@ import org.gradle.testfixtures.ProjectBuilder; import org.gradle.api.Project; +import org.gradle.api.Plugin; import org.opensearch.gradle.test.GradleUnitTestCase; import org.junit.Test; -import java.io.File; import java.io.IOException; -import java.io.Writer; -import java.io.FileWriter; -import org.gradle.testkit.runner.BuildResult; -import org.gradle.api.publish.maven.MavenPublication; public class ZipPublishTests extends GradleUnitTestCase { From 30ca4c6c7c00cb42e1c046fb842e34dc3ebb84d5 Mon Sep 17 00:00:00 2001 From: pgodithi Date: Sat, 23 Apr 2022 07:00:32 -0700 Subject: [PATCH 40/63] fix lint issues Signed-off-by: pgodithi --- .../main/java/org/opensearch/gradle/zipplugin/ZipPublish.java | 1 + .../java/org/opensearch/gradle/zipplugin/ZipPublishTests.java | 1 + 2 files changed, 2 insertions(+) diff --git a/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublish.java b/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublish.java index d481e9e0f005a..95ccea21721f2 100644 --- a/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublish.java +++ b/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublish.java @@ -14,6 +14,7 @@ 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 ZipPublish implements Plugin { private Project project; diff --git a/buildSrc/src/test/java/org/opensearch/gradle/zipplugin/ZipPublishTests.java b/buildSrc/src/test/java/org/opensearch/gradle/zipplugin/ZipPublishTests.java index a5cac7b446515..4a25be60f76b8 100644 --- a/buildSrc/src/test/java/org/opensearch/gradle/zipplugin/ZipPublishTests.java +++ b/buildSrc/src/test/java/org/opensearch/gradle/zipplugin/ZipPublishTests.java @@ -14,6 +14,7 @@ import org.opensearch.gradle.test.GradleUnitTestCase; import org.junit.Test; import java.io.IOException; +import org.gradle.api.Task; public class ZipPublishTests extends GradleUnitTestCase { From c7335866e2287bea19933acaa0c6e560b571ffbf Mon Sep 17 00:00:00 2001 From: pgodithi Date: Sat, 23 Apr 2022 07:03:45 -0700 Subject: [PATCH 41/63] fix lint issues Signed-off-by: pgodithi --- .../java/org/opensearch/gradle/zipplugin/ZipPublishTests.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/buildSrc/src/test/java/org/opensearch/gradle/zipplugin/ZipPublishTests.java b/buildSrc/src/test/java/org/opensearch/gradle/zipplugin/ZipPublishTests.java index 4a25be60f76b8..12e92b81148d9 100644 --- a/buildSrc/src/test/java/org/opensearch/gradle/zipplugin/ZipPublishTests.java +++ b/buildSrc/src/test/java/org/opensearch/gradle/zipplugin/ZipPublishTests.java @@ -24,8 +24,8 @@ public void testZipPublish() throws IOException { Project project = ProjectBuilder.builder().build(); project.getPluginManager().apply(ZipPublish.class); assertTrue(project.getPluginManager().hasPlugin("opensearch.zippublish")); - Task zipPublishTask = project.getTasks().findByName("publishMavenzipPublicationToZipstagingRepository"); - assertNotNull(zipPublishTask); + /*Task zipPublishTask = project.getTasks().findByName("publishMavenzipPublicationToZipstagingRepository"); + assertNotNull(zipPublishTask);*/ } From 89bf24a84bf26c1afadfdf6887d2719fea449c5b Mon Sep 17 00:00:00 2001 From: pgodithi Date: Sat, 23 Apr 2022 07:04:52 -0700 Subject: [PATCH 42/63] fix lint issues Signed-off-by: pgodithi --- .../java/org/opensearch/gradle/zipplugin/ZipPublishTests.java | 1 + 1 file changed, 1 insertion(+) diff --git a/buildSrc/src/test/java/org/opensearch/gradle/zipplugin/ZipPublishTests.java b/buildSrc/src/test/java/org/opensearch/gradle/zipplugin/ZipPublishTests.java index 12e92b81148d9..d608324d73be3 100644 --- a/buildSrc/src/test/java/org/opensearch/gradle/zipplugin/ZipPublishTests.java +++ b/buildSrc/src/test/java/org/opensearch/gradle/zipplugin/ZipPublishTests.java @@ -26,6 +26,7 @@ public void testZipPublish() throws IOException { assertTrue(project.getPluginManager().hasPlugin("opensearch.zippublish")); /*Task zipPublishTask = project.getTasks().findByName("publishMavenzipPublicationToZipstagingRepository"); assertNotNull(zipPublishTask);*/ + assertNotNull(project.getTasks().getByName("publishMavenzipPublicationToZipstagingRepository")); } From 416e74e5cd452925f4e2efe7653781f1c03606a3 Mon Sep 17 00:00:00 2001 From: pgodithi Date: Sat, 23 Apr 2022 07:06:28 -0700 Subject: [PATCH 43/63] fix lint issues Signed-off-by: pgodithi --- .../java/org/opensearch/gradle/zipplugin/ZipPublishTests.java | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/buildSrc/src/test/java/org/opensearch/gradle/zipplugin/ZipPublishTests.java b/buildSrc/src/test/java/org/opensearch/gradle/zipplugin/ZipPublishTests.java index d608324d73be3..4cdf1d2c5f837 100644 --- a/buildSrc/src/test/java/org/opensearch/gradle/zipplugin/ZipPublishTests.java +++ b/buildSrc/src/test/java/org/opensearch/gradle/zipplugin/ZipPublishTests.java @@ -22,10 +22,8 @@ public class ZipPublishTests extends GradleUnitTestCase { public void testZipPublish() throws IOException { System.out.println("Testing ZipPublishTests"); Project project = ProjectBuilder.builder().build(); - project.getPluginManager().apply(ZipPublish.class); + project.getPluginManager().apply("opensearch.zippublish"); assertTrue(project.getPluginManager().hasPlugin("opensearch.zippublish")); - /*Task zipPublishTask = project.getTasks().findByName("publishMavenzipPublicationToZipstagingRepository"); - assertNotNull(zipPublishTask);*/ assertNotNull(project.getTasks().getByName("publishMavenzipPublicationToZipstagingRepository")); } From 02a8234ce13e082c0716f44aa3273ec6cf5f3bcf Mon Sep 17 00:00:00 2001 From: pgodithi Date: Sat, 23 Apr 2022 07:12:25 -0700 Subject: [PATCH 44/63] fix lint issues Signed-off-by: pgodithi --- .../java/org/opensearch/gradle/zipplugin/ZipPublishTests.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/buildSrc/src/test/java/org/opensearch/gradle/zipplugin/ZipPublishTests.java b/buildSrc/src/test/java/org/opensearch/gradle/zipplugin/ZipPublishTests.java index 4cdf1d2c5f837..b84b834067739 100644 --- a/buildSrc/src/test/java/org/opensearch/gradle/zipplugin/ZipPublishTests.java +++ b/buildSrc/src/test/java/org/opensearch/gradle/zipplugin/ZipPublishTests.java @@ -20,11 +20,9 @@ public class ZipPublishTests extends GradleUnitTestCase { @Test public void testZipPublish() throws IOException { - System.out.println("Testing ZipPublishTests"); Project project = ProjectBuilder.builder().build(); project.getPluginManager().apply("opensearch.zippublish"); assertTrue(project.getPluginManager().hasPlugin("opensearch.zippublish")); - assertNotNull(project.getTasks().getByName("publishMavenzipPublicationToZipstagingRepository")); } From ad1e589cd447b99db6bb03ebb754dbb30edc8d89 Mon Sep 17 00:00:00 2001 From: pgodithi Date: Sat, 23 Apr 2022 07:43:56 -0700 Subject: [PATCH 45/63] fix lint issues Signed-off-by: pgodithi --- .../org/opensearch/gradle/zipplugin/ZipPublishTests.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/buildSrc/src/test/java/org/opensearch/gradle/zipplugin/ZipPublishTests.java b/buildSrc/src/test/java/org/opensearch/gradle/zipplugin/ZipPublishTests.java index b84b834067739..ed44c722ddfb9 100644 --- a/buildSrc/src/test/java/org/opensearch/gradle/zipplugin/ZipPublishTests.java +++ b/buildSrc/src/test/java/org/opensearch/gradle/zipplugin/ZipPublishTests.java @@ -23,6 +23,13 @@ public void testZipPublish() throws IOException { Project project = ProjectBuilder.builder().build(); project.getPluginManager().apply("opensearch.zippublish"); assertTrue(project.getPluginManager().hasPlugin("opensearch.zippublish")); + assertNotNull( + "plugin extension created with the right name", + project.getExtensions().findByName(ZipPublish.EXTENSION_NAME) + ); + assertNotNull("plugin extensions has the right type", project.getExtensions().findByType(ZipPublishExtension.class)); + assertNotNull("plugin has the task", project.getExtensions().findByType(ZipPublishExtension.class)); + assertNotNull("plugin has the task", project.getTasks().getByName("publishMavenzipPublicationToZipstagingRepository")); } From 2f9bca8c3e8e464f9440151b9f4076ffbde30c67 Mon Sep 17 00:00:00 2001 From: pgodithi Date: Sat, 23 Apr 2022 07:45:15 -0700 Subject: [PATCH 46/63] fix lint issues Signed-off-by: pgodithi --- .../java/org/opensearch/gradle/zipplugin/ZipPublishTests.java | 1 - 1 file changed, 1 deletion(-) diff --git a/buildSrc/src/test/java/org/opensearch/gradle/zipplugin/ZipPublishTests.java b/buildSrc/src/test/java/org/opensearch/gradle/zipplugin/ZipPublishTests.java index ed44c722ddfb9..82323a9c838d2 100644 --- a/buildSrc/src/test/java/org/opensearch/gradle/zipplugin/ZipPublishTests.java +++ b/buildSrc/src/test/java/org/opensearch/gradle/zipplugin/ZipPublishTests.java @@ -29,7 +29,6 @@ public void testZipPublish() throws IOException { ); assertNotNull("plugin extensions has the right type", project.getExtensions().findByType(ZipPublishExtension.class)); assertNotNull("plugin has the task", project.getExtensions().findByType(ZipPublishExtension.class)); - assertNotNull("plugin has the task", project.getTasks().getByName("publishMavenzipPublicationToZipstagingRepository")); } From ed0d1b0f5f67a3129e133a353c5ff9c3fa6b14d0 Mon Sep 17 00:00:00 2001 From: pgodithi Date: Sat, 23 Apr 2022 07:57:50 -0700 Subject: [PATCH 47/63] fix lint issues Signed-off-by: pgodithi --- .../org/opensearch/gradle/zipplugin/ZipPublishTests.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/buildSrc/src/test/java/org/opensearch/gradle/zipplugin/ZipPublishTests.java b/buildSrc/src/test/java/org/opensearch/gradle/zipplugin/ZipPublishTests.java index 82323a9c838d2..da984291195ee 100644 --- a/buildSrc/src/test/java/org/opensearch/gradle/zipplugin/ZipPublishTests.java +++ b/buildSrc/src/test/java/org/opensearch/gradle/zipplugin/ZipPublishTests.java @@ -15,6 +15,7 @@ import org.junit.Test; import java.io.IOException; import org.gradle.api.Task; +import org.gradle.api.publish.maven.tasks.PublishToMavenRepository; public class ZipPublishTests extends GradleUnitTestCase { @@ -28,7 +29,12 @@ public void testZipPublish() throws IOException { project.getExtensions().findByName(ZipPublish.EXTENSION_NAME) ); assertNotNull("plugin extensions has the right type", project.getExtensions().findByType(ZipPublishExtension.class)); - assertNotNull("plugin has the task", project.getExtensions().findByType(ZipPublishExtension.class)); + + assertNotNull(project.getTasks().withType(PublishToMavenRepository)); + + //project.tasks["publishTestPublicationToMavenRepository"] instanceof PublishToMavenRepository + + //assertNotNull(project.getTasks().getByName("hello")); } From 4445608ec0c5ad3f20143232bb6cd6ffa7fa7038 Mon Sep 17 00:00:00 2001 From: pgodithi Date: Sat, 23 Apr 2022 07:58:25 -0700 Subject: [PATCH 48/63] fix lint issues Signed-off-by: pgodithi --- .../java/org/opensearch/gradle/zipplugin/ZipPublishTests.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildSrc/src/test/java/org/opensearch/gradle/zipplugin/ZipPublishTests.java b/buildSrc/src/test/java/org/opensearch/gradle/zipplugin/ZipPublishTests.java index da984291195ee..2ea25b9f432a7 100644 --- a/buildSrc/src/test/java/org/opensearch/gradle/zipplugin/ZipPublishTests.java +++ b/buildSrc/src/test/java/org/opensearch/gradle/zipplugin/ZipPublishTests.java @@ -30,7 +30,7 @@ public void testZipPublish() throws IOException { ); assertNotNull("plugin extensions has the right type", project.getExtensions().findByType(ZipPublishExtension.class)); - assertNotNull(project.getTasks().withType(PublishToMavenRepository)); + assertNotNull(project.getTasks().findByType(PublishToMavenRepository.class)); //project.tasks["publishTestPublicationToMavenRepository"] instanceof PublishToMavenRepository From b48cf2e8f3eae58e3420c836dae6b894128f6b92 Mon Sep 17 00:00:00 2001 From: pgodithi Date: Sat, 23 Apr 2022 07:59:36 -0700 Subject: [PATCH 49/63] fix lint issues Signed-off-by: pgodithi --- .../java/org/opensearch/gradle/zipplugin/ZipPublishTests.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildSrc/src/test/java/org/opensearch/gradle/zipplugin/ZipPublishTests.java b/buildSrc/src/test/java/org/opensearch/gradle/zipplugin/ZipPublishTests.java index 2ea25b9f432a7..80c2727ec8b01 100644 --- a/buildSrc/src/test/java/org/opensearch/gradle/zipplugin/ZipPublishTests.java +++ b/buildSrc/src/test/java/org/opensearch/gradle/zipplugin/ZipPublishTests.java @@ -30,7 +30,7 @@ public void testZipPublish() throws IOException { ); assertNotNull("plugin extensions has the right type", project.getExtensions().findByType(ZipPublishExtension.class)); - assertNotNull(project.getTasks().findByType(PublishToMavenRepository.class)); + assertNotNull(project.getTasks().withType(PublishToMavenRepository.class)); //project.tasks["publishTestPublicationToMavenRepository"] instanceof PublishToMavenRepository From 710611c2352fb27cb2b6e1c4d889841bb21e8712 Mon Sep 17 00:00:00 2001 From: pgodithi Date: Sat, 23 Apr 2022 08:01:08 -0700 Subject: [PATCH 50/63] fix lint issues Signed-off-by: pgodithi --- .../java/org/opensearch/gradle/zipplugin/ZipPublishTests.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildSrc/src/test/java/org/opensearch/gradle/zipplugin/ZipPublishTests.java b/buildSrc/src/test/java/org/opensearch/gradle/zipplugin/ZipPublishTests.java index 80c2727ec8b01..23bd0ffc01afa 100644 --- a/buildSrc/src/test/java/org/opensearch/gradle/zipplugin/ZipPublishTests.java +++ b/buildSrc/src/test/java/org/opensearch/gradle/zipplugin/ZipPublishTests.java @@ -31,7 +31,7 @@ public void testZipPublish() throws IOException { assertNotNull("plugin extensions has the right type", project.getExtensions().findByType(ZipPublishExtension.class)); assertNotNull(project.getTasks().withType(PublishToMavenRepository.class)); - + assertTrue(project.getTasks().getByName("publishMavenzipPublicationToZipstagingRepository") instanceof PublishToMavenRepository); //project.tasks["publishTestPublicationToMavenRepository"] instanceof PublishToMavenRepository //assertNotNull(project.getTasks().getByName("hello")); From b61104dcb08a9aa0a4c75fcec74921faf93d3f39 Mon Sep 17 00:00:00 2001 From: pgodithi Date: Sat, 23 Apr 2022 08:02:31 -0700 Subject: [PATCH 51/63] fix lint issues Signed-off-by: pgodithi --- .../java/org/opensearch/gradle/zipplugin/ZipPublishTests.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/buildSrc/src/test/java/org/opensearch/gradle/zipplugin/ZipPublishTests.java b/buildSrc/src/test/java/org/opensearch/gradle/zipplugin/ZipPublishTests.java index 23bd0ffc01afa..55c1a7df1eb2e 100644 --- a/buildSrc/src/test/java/org/opensearch/gradle/zipplugin/ZipPublishTests.java +++ b/buildSrc/src/test/java/org/opensearch/gradle/zipplugin/ZipPublishTests.java @@ -16,6 +16,7 @@ import java.io.IOException; import org.gradle.api.Task; import org.gradle.api.publish.maven.tasks.PublishToMavenRepository; +import org.gradle.api.publish.maven.MavenPublication; public class ZipPublishTests extends GradleUnitTestCase { @@ -31,7 +32,7 @@ public void testZipPublish() throws IOException { assertNotNull("plugin extensions has the right type", project.getExtensions().findByType(ZipPublishExtension.class)); assertNotNull(project.getTasks().withType(PublishToMavenRepository.class)); - assertTrue(project.getTasks().getByName("publishMavenzipPublicationToZipstagingRepository") instanceof PublishToMavenRepository); + assertTrue(project.getTasks().getByName("publishMavenzipPublicationToZipstagingRepository") instanceof MavenPublication); //project.tasks["publishTestPublicationToMavenRepository"] instanceof PublishToMavenRepository //assertNotNull(project.getTasks().getByName("hello")); From eb17f5ac8ca99ff9fb4602443812d8ba62d384ba Mon Sep 17 00:00:00 2001 From: pgodithi Date: Sat, 23 Apr 2022 08:03:13 -0700 Subject: [PATCH 52/63] fix lint issues Signed-off-by: pgodithi --- .../java/org/opensearch/gradle/zipplugin/ZipPublishTests.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildSrc/src/test/java/org/opensearch/gradle/zipplugin/ZipPublishTests.java b/buildSrc/src/test/java/org/opensearch/gradle/zipplugin/ZipPublishTests.java index 55c1a7df1eb2e..2962c3b4ccb87 100644 --- a/buildSrc/src/test/java/org/opensearch/gradle/zipplugin/ZipPublishTests.java +++ b/buildSrc/src/test/java/org/opensearch/gradle/zipplugin/ZipPublishTests.java @@ -32,7 +32,7 @@ public void testZipPublish() throws IOException { assertNotNull("plugin extensions has the right type", project.getExtensions().findByType(ZipPublishExtension.class)); assertNotNull(project.getTasks().withType(PublishToMavenRepository.class)); - assertTrue(project.getTasks().getByName("publishMavenzipPublicationToZipstagingRepository") instanceof MavenPublication); + assertTrue(project.getTasks().findByName("publishMavenzipPublicationToZipstagingRepository") instanceof MavenPublication); //project.tasks["publishTestPublicationToMavenRepository"] instanceof PublishToMavenRepository //assertNotNull(project.getTasks().getByName("hello")); From bfb812d8a7dea31d10245f9207daec3faae2a9f1 Mon Sep 17 00:00:00 2001 From: pgodithi Date: Sat, 23 Apr 2022 08:14:00 -0700 Subject: [PATCH 53/63] fix lint issues Signed-off-by: pgodithi --- .../gradle/zipplugin/ZipPublish.java | 16 ++++++++--- .../gradle/zipplugin/ZipPublishUtil.java | 28 ------------------- .../gradle/zipplugin/ZipPublishTests.java | 14 +--------- 3 files changed, 13 insertions(+), 45 deletions(-) delete mode 100644 buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublishUtil.java diff --git a/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublish.java b/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublish.java index 95ccea21721f2..b478aa787eba4 100644 --- a/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublish.java +++ b/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublish.java @@ -22,9 +22,7 @@ public class ZipPublish implements Plugin { public final static String EXTENSION_NAME = "zipmavensettings"; public final static String PUBLICATION_NAME = "mavenzip"; public final static String STAGING_REPO = "zipstaging"; - public final static String MAVEN_ZIP_PUBLISH_POM_TASK = "generatePomFileFor" - + ZipPublishUtil.capitalize(PUBLICATION_NAME) - + "Publication"; + public final static String MAVEN_ZIP_PUBLISH_POM_TASK = "generatePomFileForMavenzipPublication"; public final static String LOCALMAVEN = "publishToMavenLocal"; public final static String LOCAL_STAGING_REPO_PATH = "/build/local-staging-repo"; public String zipDistributionLocation = "/build/distributions/"; @@ -45,7 +43,7 @@ private void configMaven(Project project) { // Getting the Zip group from created extension String zipGroup = extset.getZipGroup(); String zipArtifact = project.getName(); - String zipVersion = ZipPublishUtil.getProperty("version", project); + String zipVersion = getProperty("version", project); mavenZip.artifact(project.getTasks().named("bundlePlugin")); mavenZip.setGroupId(zipGroup); mavenZip.setArtifactId(zipArtifact); @@ -55,6 +53,16 @@ private void configMaven(Project project) { }); } + 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; diff --git a/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublishUtil.java b/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublishUtil.java deleted file mode 100644 index b8bfaa0d935d1..0000000000000 --- a/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublishUtil.java +++ /dev/null @@ -1,28 +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.zipplugin; - -import org.gradle.api.Project; - -class ZipPublishUtil { - - static String capitalize(String str) { - return str.substring(0, 1).toUpperCase() + str.substring(1); - } - - static String getProperty(String name, Project project) { - if (project.hasProperty(name)) { - Object property = project.property(name); - if (property != null) { - return property.toString(); - } - } - return null; - } - -} diff --git a/buildSrc/src/test/java/org/opensearch/gradle/zipplugin/ZipPublishTests.java b/buildSrc/src/test/java/org/opensearch/gradle/zipplugin/ZipPublishTests.java index 2962c3b4ccb87..06b82f5f0b989 100644 --- a/buildSrc/src/test/java/org/opensearch/gradle/zipplugin/ZipPublishTests.java +++ b/buildSrc/src/test/java/org/opensearch/gradle/zipplugin/ZipPublishTests.java @@ -10,13 +10,10 @@ import org.gradle.testfixtures.ProjectBuilder; import org.gradle.api.Project; -import org.gradle.api.Plugin; import org.opensearch.gradle.test.GradleUnitTestCase; import org.junit.Test; import java.io.IOException; -import org.gradle.api.Task; import org.gradle.api.publish.maven.tasks.PublishToMavenRepository; -import org.gradle.api.publish.maven.MavenPublication; public class ZipPublishTests extends GradleUnitTestCase { @@ -25,18 +22,9 @@ public void testZipPublish() throws IOException { Project project = ProjectBuilder.builder().build(); project.getPluginManager().apply("opensearch.zippublish"); assertTrue(project.getPluginManager().hasPlugin("opensearch.zippublish")); - assertNotNull( - "plugin extension created with the right name", - project.getExtensions().findByName(ZipPublish.EXTENSION_NAME) - ); + assertNotNull("plugin extension created with the right name", project.getExtensions().findByName(ZipPublish.EXTENSION_NAME)); assertNotNull("plugin extensions has the right type", project.getExtensions().findByType(ZipPublishExtension.class)); - assertNotNull(project.getTasks().withType(PublishToMavenRepository.class)); - assertTrue(project.getTasks().findByName("publishMavenzipPublicationToZipstagingRepository") instanceof MavenPublication); - //project.tasks["publishTestPublicationToMavenRepository"] instanceof PublishToMavenRepository - - //assertNotNull(project.getTasks().getByName("hello")); } - } From 740516eb2d34193592d202b1073bf8c5036767f2 Mon Sep 17 00:00:00 2001 From: pgodithi Date: Sat, 23 Apr 2022 08:37:24 -0700 Subject: [PATCH 54/63] fix lint issues Signed-off-by: pgodithi --- .../java/org/opensearch/gradle/zipplugin/ZipPublishTests.java | 1 + 1 file changed, 1 insertion(+) diff --git a/buildSrc/src/test/java/org/opensearch/gradle/zipplugin/ZipPublishTests.java b/buildSrc/src/test/java/org/opensearch/gradle/zipplugin/ZipPublishTests.java index 06b82f5f0b989..431466a7757ab 100644 --- a/buildSrc/src/test/java/org/opensearch/gradle/zipplugin/ZipPublishTests.java +++ b/buildSrc/src/test/java/org/opensearch/gradle/zipplugin/ZipPublishTests.java @@ -25,6 +25,7 @@ public void testZipPublish() throws IOException { assertNotNull("plugin extension created with the right name", project.getExtensions().findByName(ZipPublish.EXTENSION_NAME)); assertNotNull("plugin extensions has the right type", project.getExtensions().findByType(ZipPublishExtension.class)); assertNotNull(project.getTasks().withType(PublishToMavenRepository.class)); + assertTrue(project.getTasks().findByName("publishMavenzipPublicationToZipstagingRepository") instanceof ZipPublish); } } From 3071a55e45670755c0e2d974a1c88e41d6352a1b Mon Sep 17 00:00:00 2001 From: pgodithi Date: Sat, 23 Apr 2022 08:38:33 -0700 Subject: [PATCH 55/63] fix lint issues Signed-off-by: pgodithi --- .../java/org/opensearch/gradle/zipplugin/ZipPublishTests.java | 1 - 1 file changed, 1 deletion(-) diff --git a/buildSrc/src/test/java/org/opensearch/gradle/zipplugin/ZipPublishTests.java b/buildSrc/src/test/java/org/opensearch/gradle/zipplugin/ZipPublishTests.java index 431466a7757ab..06b82f5f0b989 100644 --- a/buildSrc/src/test/java/org/opensearch/gradle/zipplugin/ZipPublishTests.java +++ b/buildSrc/src/test/java/org/opensearch/gradle/zipplugin/ZipPublishTests.java @@ -25,7 +25,6 @@ public void testZipPublish() throws IOException { assertNotNull("plugin extension created with the right name", project.getExtensions().findByName(ZipPublish.EXTENSION_NAME)); assertNotNull("plugin extensions has the right type", project.getExtensions().findByType(ZipPublishExtension.class)); assertNotNull(project.getTasks().withType(PublishToMavenRepository.class)); - assertTrue(project.getTasks().findByName("publishMavenzipPublicationToZipstagingRepository") instanceof ZipPublish); } } From c2b5121356221f1b28c62431b76ec5595eb72ea8 Mon Sep 17 00:00:00 2001 From: pgodithi Date: Sat, 23 Apr 2022 08:42:18 -0700 Subject: [PATCH 56/63] Code cleanup Signed-off-by: pgodithi --- .../gradle/zipplugin/ZipPublish.java | 16 ++++++++--- .../gradle/zipplugin/ZipPublishUtil.java | 28 ------------------- .../gradle/zipplugin/ZipPublishTest.groovy | 22 --------------- 3 files changed, 12 insertions(+), 54 deletions(-) delete mode 100644 buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublishUtil.java delete mode 100644 buildSrc/src/test/groovy/org/opensearch/gradle/zipplugin/ZipPublishTest.groovy diff --git a/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublish.java b/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublish.java index 95ccea21721f2..b478aa787eba4 100644 --- a/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublish.java +++ b/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublish.java @@ -22,9 +22,7 @@ public class ZipPublish implements Plugin { public final static String EXTENSION_NAME = "zipmavensettings"; public final static String PUBLICATION_NAME = "mavenzip"; public final static String STAGING_REPO = "zipstaging"; - public final static String MAVEN_ZIP_PUBLISH_POM_TASK = "generatePomFileFor" - + ZipPublishUtil.capitalize(PUBLICATION_NAME) - + "Publication"; + public final static String MAVEN_ZIP_PUBLISH_POM_TASK = "generatePomFileForMavenzipPublication"; public final static String LOCALMAVEN = "publishToMavenLocal"; public final static String LOCAL_STAGING_REPO_PATH = "/build/local-staging-repo"; public String zipDistributionLocation = "/build/distributions/"; @@ -45,7 +43,7 @@ private void configMaven(Project project) { // Getting the Zip group from created extension String zipGroup = extset.getZipGroup(); String zipArtifact = project.getName(); - String zipVersion = ZipPublishUtil.getProperty("version", project); + String zipVersion = getProperty("version", project); mavenZip.artifact(project.getTasks().named("bundlePlugin")); mavenZip.setGroupId(zipGroup); mavenZip.setArtifactId(zipArtifact); @@ -55,6 +53,16 @@ private void configMaven(Project project) { }); } + 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; diff --git a/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublishUtil.java b/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublishUtil.java deleted file mode 100644 index b8bfaa0d935d1..0000000000000 --- a/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublishUtil.java +++ /dev/null @@ -1,28 +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.zipplugin; - -import org.gradle.api.Project; - -class ZipPublishUtil { - - static String capitalize(String str) { - return str.substring(0, 1).toUpperCase() + str.substring(1); - } - - static String getProperty(String name, Project project) { - if (project.hasProperty(name)) { - Object property = project.property(name); - if (property != null) { - return property.toString(); - } - } - return null; - } - -} diff --git a/buildSrc/src/test/groovy/org/opensearch/gradle/zipplugin/ZipPublishTest.groovy b/buildSrc/src/test/groovy/org/opensearch/gradle/zipplugin/ZipPublishTest.groovy deleted file mode 100644 index 3bee614a0ef7b..0000000000000 --- a/buildSrc/src/test/groovy/org/opensearch/gradle/zipplugin/ZipPublishTest.groovy +++ /dev/null @@ -1,22 +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.zipplugin; - -import org.gradle.testfixtures.ProjectBuilder -import org.gradle.api.Project - - -class ZipPublishTest { - public void zipPublishTest() { - Project project = ProjectBuilder.builder().build() - project.getPlugins().apply 'opensearch.zippublish' - - assertTrue(project.plugins.hasPlugin("opensearch.zippublish")) - assertTrue(project.tasks.publishMavenzipPublicationToZipstagingRepository instanceof ZipPublish) - } -} \ No newline at end of file From f44aa2a6ab189158d00423c5acd3191eed75010a Mon Sep 17 00:00:00 2001 From: pgodithi Date: Sat, 23 Apr 2022 08:42:54 -0700 Subject: [PATCH 57/63] Code cleanup Signed-off-by: pgodithi --- .../gradle/zipplugin/ZipPublishTests.java | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 buildSrc/src/test/java/org/opensearch/gradle/zipplugin/ZipPublishTests.java diff --git a/buildSrc/src/test/java/org/opensearch/gradle/zipplugin/ZipPublishTests.java b/buildSrc/src/test/java/org/opensearch/gradle/zipplugin/ZipPublishTests.java new file mode 100644 index 0000000000000..06b82f5f0b989 --- /dev/null +++ b/buildSrc/src/test/java/org/opensearch/gradle/zipplugin/ZipPublishTests.java @@ -0,0 +1,30 @@ +/* + * 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.zipplugin; + +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; + +public class ZipPublishTests extends GradleUnitTestCase { + + @Test + public void testZipPublish() throws IOException { + Project project = ProjectBuilder.builder().build(); + project.getPluginManager().apply("opensearch.zippublish"); + assertTrue(project.getPluginManager().hasPlugin("opensearch.zippublish")); + assertNotNull("plugin extension created with the right name", project.getExtensions().findByName(ZipPublish.EXTENSION_NAME)); + assertNotNull("plugin extensions has the right type", project.getExtensions().findByType(ZipPublishExtension.class)); + assertNotNull(project.getTasks().withType(PublishToMavenRepository.class)); + } + +} From 303465fabb0dfa0919a53cb6a8d0e061169541ec Mon Sep 17 00:00:00 2001 From: pgodithi Date: Sat, 23 Apr 2022 09:00:49 -0700 Subject: [PATCH 58/63] Code cleanup Signed-off-by: pgodithi --- .../main/java/org/opensearch/gradle/zipplugin/ZipPublish.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublish.java b/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublish.java index b478aa787eba4..347f90de471fb 100644 --- a/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublish.java +++ b/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublish.java @@ -22,7 +22,7 @@ public class ZipPublish implements Plugin { public final static String EXTENSION_NAME = "zipmavensettings"; public final static String PUBLICATION_NAME = "mavenzip"; public final static String STAGING_REPO = "zipstaging"; - public final static String MAVEN_ZIP_PUBLISH_POM_TASK = "generatePomFileForMavenzipPublication"; + public final static String MAVEN_ZIP_PUBLISH_POM_TASK = "generatePomFileForMavenZipPublication"; public final static String LOCALMAVEN = "publishToMavenLocal"; public final static String LOCAL_STAGING_REPO_PATH = "/build/local-staging-repo"; public String zipDistributionLocation = "/build/distributions/"; From 8f4a8d3235c6e3963e3471593edf1eaa4e7ec492 Mon Sep 17 00:00:00 2001 From: pgodithi Date: Sat, 23 Apr 2022 09:03:39 -0700 Subject: [PATCH 59/63] Code cleanup typos Signed-off-by: pgodithi --- .../main/java/org/opensearch/gradle/zipplugin/ZipPublish.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublish.java b/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublish.java index 347f90de471fb..b478aa787eba4 100644 --- a/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublish.java +++ b/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublish.java @@ -22,7 +22,7 @@ public class ZipPublish implements Plugin { public final static String EXTENSION_NAME = "zipmavensettings"; public final static String PUBLICATION_NAME = "mavenzip"; public final static String STAGING_REPO = "zipstaging"; - public final static String MAVEN_ZIP_PUBLISH_POM_TASK = "generatePomFileForMavenZipPublication"; + public final static String MAVEN_ZIP_PUBLISH_POM_TASK = "generatePomFileForMavenzipPublication"; public final static String LOCALMAVEN = "publishToMavenLocal"; public final static String LOCAL_STAGING_REPO_PATH = "/build/local-staging-repo"; public String zipDistributionLocation = "/build/distributions/"; From 9b1cb92ebccae5ea41fca62cdd38166e4aa94914 Mon Sep 17 00:00:00 2001 From: pgodithi Date: Mon, 25 Apr 2022 20:23:39 -0700 Subject: [PATCH 60/63] code cleanup and extended unit tests Signed-off-by: pgodithi --- .../gradle/zipplugin/ZipPublish.java | 20 +---- .../gradle/zipplugin/ZipPublishExtension.java | 21 ----- .../gradle/zipplugin/ZipPublishTests.java | 82 ++++++++++++++++++- 3 files changed, 81 insertions(+), 42 deletions(-) delete mode 100644 buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublishExtension.java diff --git a/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublish.java b/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublish.java index b478aa787eba4..0a36853f521c6 100644 --- a/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublish.java +++ b/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublish.java @@ -14,7 +14,6 @@ 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 ZipPublish implements Plugin { private Project project; @@ -27,7 +26,7 @@ public class ZipPublish implements Plugin { public final static String LOCAL_STAGING_REPO_PATH = "/build/local-staging-repo"; public String zipDistributionLocation = "/build/distributions/"; - private void configMaven(Project project) { + public static void configMaven(Project project) { final Path buildDirectory = project.getRootDir().toPath(); project.getPluginManager().apply(MavenPublishPlugin.class); project.getExtensions().configure(PublishingExtension.class, publishing -> { @@ -39,9 +38,7 @@ private void configMaven(Project project) { }); publishing.publications(publications -> { publications.create(PUBLICATION_NAME, MavenPublication.class, mavenZip -> { - ZipPublishExtension extset = project.getExtensions().findByType(ZipPublishExtension.class); - // Getting the Zip group from created extension - String zipGroup = extset.getZipGroup(); + String zipGroup = "org.opensearch.plugin"; String zipArtifact = project.getName(); String zipVersion = getProperty("version", project); mavenZip.artifact(project.getTasks().named("bundlePlugin")); @@ -66,20 +63,7 @@ static String getProperty(String name, Project project) { @Override public void apply(Project project) { this.project = project; - project.getExtensions().create(EXTENSION_NAME, ZipPublishExtension.class); project.afterEvaluate(evaluatedProject -> { configMaven(project); }); - Task compileJava = project.getTasks().findByName("compileJava"); - if (compileJava != null) { - compileJava.setEnabled(false); - } - Task sourceJarTask = project.getTasks().findByName("sourcesJar"); - if (sourceJarTask != null) { - sourceJarTask.setEnabled(false); - } - Task javaDocJarTask = project.getTasks().findByName("javadocJar"); - if (javaDocJarTask != null) { - javaDocJarTask.setEnabled(false); - } project.getGradle().getTaskGraph().whenReady(graph -> { if (graph.hasTask(LOCALMAVEN)) { project.getTasks().getByName(MAVEN_ZIP_PUBLISH_POM_TASK).setEnabled(false); diff --git a/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublishExtension.java b/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublishExtension.java deleted file mode 100644 index ae2996cb5ed5b..0000000000000 --- a/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublishExtension.java +++ /dev/null @@ -1,21 +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.zipplugin; - -public class ZipPublishExtension { - private String zipGroup = "org.opensearch.plugin"; - - public void setZipGroup(String zipGroup) { - this.zipGroup = zipGroup; - } - - public String getZipGroup() { - return zipGroup; - } - -} diff --git a/buildSrc/src/test/java/org/opensearch/gradle/zipplugin/ZipPublishTests.java b/buildSrc/src/test/java/org/opensearch/gradle/zipplugin/ZipPublishTests.java index 06b82f5f0b989..b694dac53b209 100644 --- a/buildSrc/src/test/java/org/opensearch/gradle/zipplugin/ZipPublishTests.java +++ b/buildSrc/src/test/java/org/opensearch/gradle/zipplugin/ZipPublishTests.java @@ -8,23 +8,99 @@ package org.opensearch.gradle.zipplugin; +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 ZipPublishTests extends GradleUnitTestCase { + File testZip = new File("sample-plugin.zip"); + @Test - public void testZipPublish() throws IOException { + public void testZipPublish() throws IOException, XmlPullParserException { Project project = ProjectBuilder.builder().build(); + // Apply the opensearch.zippublish plugin project.getPluginManager().apply("opensearch.zippublish"); + // Check if the plugin has been applied to the project assertTrue(project.getPluginManager().hasPlugin("opensearch.zippublish")); - assertNotNull("plugin extension created with the right name", project.getExtensions().findByName(ZipPublish.EXTENSION_NAME)); - assertNotNull("plugin extensions has the right type", project.getExtensions().findByType(ZipPublishExtension.class)); + // 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); + ZipPublish.configMaven(project); + // Check if the main task publishMavenzipPublicationToZipstagingRepository exists after plugin apply + assertTrue(project.getTasks().getNames().contains("publishMavenzipPublicationToZipstagingRepository")); + assertNotNull("Task to generate: ", project.getTasks().getByName("publishMavenzipPublicationToZipstagingRepository")); + // 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" + + " mavenzip(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 publishMavenzipPublicationToZipstagingRepository + GradleRunner runner = GradleRunner.create(); + runner.forwardOutput(); + runner.withPluginClasspath(); + runner.withArguments("publishMavenzipPublicationToZipstagingRepository"); + runner.withProjectDir(projectDir); + BuildResult result = runner.build(); + // Check if task publishMavenzipPublicationToZipstagingRepository has ran well + assertEquals(SUCCESS, result.task(":" + "publishMavenzipPublicationToZipstagingRepository").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") + ); + String pluginGroupId = "org.opensearch.plugin"; + assertEquals(model.getGroupId(), pluginGroupId); + } + + private void writeString(File file, String string) throws IOException { + try (Writer writer = new FileWriter(file)) { + writer.write(string); + } } } From c8666415651fd8449aeded8a187f93f97f0b8d84 Mon Sep 17 00:00:00 2001 From: pgodithi Date: Mon, 25 Apr 2022 20:30:13 -0700 Subject: [PATCH 61/63] code cleanup and extended unit tests Signed-off-by: pgodithi --- .../org/opensearch/gradle/PublishPlugin.java | 23 +++++++++++-------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/buildSrc/src/main/java/org/opensearch/gradle/PublishPlugin.java b/buildSrc/src/main/java/org/opensearch/gradle/PublishPlugin.java index d164b54c7506c..2a0521b17d55e 100644 --- a/buildSrc/src/main/java/org/opensearch/gradle/PublishPlugin.java +++ b/buildSrc/src/main/java/org/opensearch/gradle/PublishPlugin.java @@ -125,18 +125,21 @@ public String call() throws Exception { // Add git origin info to generated POM files publication.getPom().withXml(PublishPlugin::addScmInfo); - // have to defer this until archivesBaseName is set - project.afterEvaluate(p -> publication.setArtifactId(getArchivesBaseName(project))); + if (!publication.getName().toLowerCase().contains("zip")) { - // 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")); - } + // 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()))) - ); + generatePomTask.configure( + t -> t.dependsOn(String.format("generatePomFileFor%sPublication", Util.capitalize(publication.getName()))) + ); + } }); } From 9f32f4d2527e34e47ecc47f86700253643774657 Mon Sep 17 00:00:00 2001 From: pgodithi Date: Tue, 26 Apr 2022 08:55:26 -0700 Subject: [PATCH 62/63] Naming convention fix Signed-off-by: pgodithi --- .../gradle/zipplugin/ZipPublish.java | 74 ------------ .../opensearch.zippublish.properties | 1 - .../gradle/zipplugin/ZipPublishTests.java | 106 ------------------ 3 files changed, 181 deletions(-) delete mode 100644 buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublish.java delete mode 100644 buildSrc/src/main/resources/META-INF/gradle-plugins/opensearch.zippublish.properties delete mode 100644 buildSrc/src/test/java/org/opensearch/gradle/zipplugin/ZipPublishTests.java diff --git a/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublish.java b/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublish.java deleted file mode 100644 index 0a36853f521c6..0000000000000 --- a/buildSrc/src/main/java/org/opensearch/gradle/zipplugin/ZipPublish.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.zipplugin; - -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 ZipPublish implements Plugin { - private Project project; - - public final static String EXTENSION_NAME = "zipmavensettings"; - public final static String PUBLICATION_NAME = "mavenzip"; - public final static String STAGING_REPO = "zipstaging"; - public final static String MAVEN_ZIP_PUBLISH_POM_TASK = "generatePomFileForMavenzipPublication"; - 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(MAVEN_ZIP_PUBLISH_POM_TASK).setEnabled(false); - } - - }); - } -} diff --git a/buildSrc/src/main/resources/META-INF/gradle-plugins/opensearch.zippublish.properties b/buildSrc/src/main/resources/META-INF/gradle-plugins/opensearch.zippublish.properties deleted file mode 100644 index 72b68211f0149..0000000000000 --- a/buildSrc/src/main/resources/META-INF/gradle-plugins/opensearch.zippublish.properties +++ /dev/null @@ -1 +0,0 @@ -implementation-class=org.opensearch.gradle.zipplugin.ZipPublish diff --git a/buildSrc/src/test/java/org/opensearch/gradle/zipplugin/ZipPublishTests.java b/buildSrc/src/test/java/org/opensearch/gradle/zipplugin/ZipPublishTests.java deleted file mode 100644 index b694dac53b209..0000000000000 --- a/buildSrc/src/test/java/org/opensearch/gradle/zipplugin/ZipPublishTests.java +++ /dev/null @@ -1,106 +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.zipplugin; - -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 ZipPublishTests extends GradleUnitTestCase { - - File testZip = new File("sample-plugin.zip"); - - @Test - public void testZipPublish() throws IOException, XmlPullParserException { - Project project = ProjectBuilder.builder().build(); - // Apply the opensearch.zippublish plugin - project.getPluginManager().apply("opensearch.zippublish"); - // Check if the plugin has been applied to the project - assertTrue(project.getPluginManager().hasPlugin("opensearch.zippublish")); - // 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); - ZipPublish.configMaven(project); - // Check if the main task publishMavenzipPublicationToZipstagingRepository exists after plugin apply - assertTrue(project.getTasks().getNames().contains("publishMavenzipPublicationToZipstagingRepository")); - assertNotNull("Task to generate: ", project.getTasks().getByName("publishMavenzipPublicationToZipstagingRepository")); - // 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" - + " mavenzip(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 publishMavenzipPublicationToZipstagingRepository - GradleRunner runner = GradleRunner.create(); - runner.forwardOutput(); - runner.withPluginClasspath(); - runner.withArguments("publishMavenzipPublicationToZipstagingRepository"); - runner.withProjectDir(projectDir); - BuildResult result = runner.build(); - // Check if task publishMavenzipPublicationToZipstagingRepository has ran well - assertEquals(SUCCESS, result.task(":" + "publishMavenzipPublicationToZipstagingRepository").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") - ); - String pluginGroupId = "org.opensearch.plugin"; - assertEquals(model.getGroupId(), pluginGroupId); - } - - private void writeString(File file, String string) throws IOException { - try (Writer writer = new FileWriter(file)) { - writer.write(string); - } - } - -} From cdac61da9066e78f3e4102d8e13b1254990b2bc1 Mon Sep 17 00:00:00 2001 From: pgodithi Date: Tue, 26 Apr 2022 08:55:31 -0700 Subject: [PATCH 63/63] Naming convention fix Signed-off-by: pgodithi --- .../opensearch/gradle/pluginzip/Publish.java | 74 +++++++++++++ .../opensearch.pluginzip.properties | 1 + .../gradle/pluginzip/PublishTests.java | 104 ++++++++++++++++++ 3 files changed, 179 insertions(+) create mode 100644 buildSrc/src/main/java/org/opensearch/gradle/pluginzip/Publish.java create mode 100644 buildSrc/src/main/resources/META-INF/gradle-plugins/opensearch.pluginzip.properties create mode 100644 buildSrc/src/test/java/org/opensearch/gradle/pluginzip/PublishTests.java diff --git a/buildSrc/src/main/java/org/opensearch/gradle/pluginzip/Publish.java b/buildSrc/src/main/java/org/opensearch/gradle/pluginzip/Publish.java new file mode 100644 index 0000000000000..e8b4ecec7a56d --- /dev/null +++ b/buildSrc/src/main/java/org/opensearch/gradle/pluginzip/Publish.java @@ -0,0 +1,74 @@ +/* + * 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 new file mode 100644 index 0000000000000..600218ff76835 --- /dev/null +++ b/buildSrc/src/main/resources/META-INF/gradle-plugins/opensearch.pluginzip.properties @@ -0,0 +1 @@ +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 new file mode 100644 index 0000000000000..ae94ace55e637 --- /dev/null +++ b/buildSrc/src/test/java/org/opensearch/gradle/pluginzip/PublishTests.java @@ -0,0 +1,104 @@ +/* + * 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); + } + } + +}