From 8e87a8dad783c3969430eef0ca2494807f875dca Mon Sep 17 00:00:00 2001 From: Edward Lynch-Milner Date: Sat, 10 Sep 2022 10:07:35 +0100 Subject: [PATCH] [MRELEASE-839]: Unable to supply tag to release for release:perform --- .../perform/MRELEASE-839/invoker.properties | 18 +++++++ .../it/projects/perform/MRELEASE-839/pom.xml | 47 +++++++++++++++++++ .../perform/MRELEASE-839/verify.groovy | 24 ++++++++++ .../plugins/release/PerformReleaseMojo.java | 2 +- .../release/PerformReleaseMojoTest.java | 20 +++++++- .../FlatMultiModuleMavenProjectStub.java | 11 +---- .../release/stubs/MavenProjectStub.java | 21 +++++++++ .../mojos/perform/perform-with-args.xml | 1 + .../perform/perform-with-flat-structure.xml | 1 + .../perform/perform-with-multiline-goals.xml | 1 + .../mojos/perform/perform-with-scm.xml | 1 + .../mojos/perform/perform-without-site.xml | 1 + .../test/resources/mojos/perform/perform.xml | 1 + 13 files changed, 137 insertions(+), 12 deletions(-) create mode 100644 maven-release-plugin/src/it/projects/perform/MRELEASE-839/invoker.properties create mode 100644 maven-release-plugin/src/it/projects/perform/MRELEASE-839/pom.xml create mode 100644 maven-release-plugin/src/it/projects/perform/MRELEASE-839/verify.groovy diff --git a/maven-release-plugin/src/it/projects/perform/MRELEASE-839/invoker.properties b/maven-release-plugin/src/it/projects/perform/MRELEASE-839/invoker.properties new file mode 100644 index 000000000..af2f6573d --- /dev/null +++ b/maven-release-plugin/src/it/projects/perform/MRELEASE-839/invoker.properties @@ -0,0 +1,18 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF 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. + +invoker.goals = release:clean release:perform \ No newline at end of file diff --git a/maven-release-plugin/src/it/projects/perform/MRELEASE-839/pom.xml b/maven-release-plugin/src/it/projects/perform/MRELEASE-839/pom.xml new file mode 100644 index 000000000..a09709e7d --- /dev/null +++ b/maven-release-plugin/src/it/projects/perform/MRELEASE-839/pom.xml @@ -0,0 +1,47 @@ + + + + 4.0.0 + + org.apache.maven.plugin.release.its + mrelease-832 + 1.0-SNAPSHOT + + + + + org.apache.maven.plugins + maven-release-plugin + @project.version@ + + + org.apache.maven.its.release + maven-scm-provider-dummy + 1.0 + + + + scm:dummy|nul + test-tag + + + + + \ No newline at end of file diff --git a/maven-release-plugin/src/it/projects/perform/MRELEASE-839/verify.groovy b/maven-release-plugin/src/it/projects/perform/MRELEASE-839/verify.groovy new file mode 100644 index 000000000..a59639a80 --- /dev/null +++ b/maven-release-plugin/src/it/projects/perform/MRELEASE-839/verify.groovy @@ -0,0 +1,24 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF 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. + */ + +File buildLog = new File( basedir, 'build.log' ) +assert buildLog.exists() + +assert buildLog.text.contains( "[DEBUG] (f) tag = test-tag" ) + diff --git a/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/PerformReleaseMojo.java b/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/PerformReleaseMojo.java index 7994e2a65..0036b690c 100644 --- a/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/PerformReleaseMojo.java +++ b/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/PerformReleaseMojo.java @@ -46,7 +46,7 @@ */ @Mojo( name = "perform", aggregator = true, requiresProject = false ) public class PerformReleaseMojo - extends AbstractReleaseMojo + extends AbstractScmReleaseMojo { /** * A space separated list of goals to execute on release perform. Default value is either deploy or diff --git a/maven-release-plugin/src/test/java/org/apache/maven/plugins/release/PerformReleaseMojoTest.java b/maven-release-plugin/src/test/java/org/apache/maven/plugins/release/PerformReleaseMojoTest.java index c423c405a..00f9cb120 100644 --- a/maven-release-plugin/src/test/java/org/apache/maven/plugins/release/PerformReleaseMojoTest.java +++ b/maven-release-plugin/src/test/java/org/apache/maven/plugins/release/PerformReleaseMojoTest.java @@ -54,6 +54,11 @@ public class PerformReleaseMojoTest { private File workingDirectory; + private static void assertTag(ArgumentCaptor argument) { + assertEquals( "test-tag", argument.getValue().getReleaseDescriptorBuilder(). + build().getScmReleaseLabel() ); + } + public void testPerform() throws Exception { @@ -67,7 +72,7 @@ public void testPerform() ReleaseManager mock = mock( ReleaseManager.class ); mojo.setReleaseManager( mock ); - + // execute mojo.execute(); @@ -78,6 +83,8 @@ public void testPerform() assertNotNull( argument.getValue().getReleaseEnvironment() ); assertNotNull( argument.getValue().getReactorProjects() ); assertEquals( Boolean.FALSE, argument.getValue().getDryRun() ); + assertNotNull( argument.getValue().getReleaseDescriptorBuilder() ); + assertTag( argument ); verifyNoMoreInteractions( mock ); } @@ -86,6 +93,9 @@ public void testPerformWithFlatStructure() { PerformReleaseMojo mojo = getMojoWithProjectSite( "perform-with-flat-structure.xml" ); + MavenProject project = (MavenProject) getVariableValueFromObject( mojo, "project" ); + setVariableValueToObject( mojo, "session", newMavenSession( project ) ); + ReleaseDescriptorBuilder builder = createReleaseDescriptorBuilder( mojo ); builder.setWorkingDirectory( workingDirectory.getAbsolutePath() ); File checkoutDirectory = getTestFile( "target/checkout" ); @@ -106,6 +116,7 @@ public void testPerformWithFlatStructure() assertNotNull( argument.getValue().getReleaseEnvironment() ); assertNotNull( argument.getValue().getReactorProjects() ); assertEquals( Boolean.FALSE, argument.getValue().getDryRun() ); + assertTag( argument ); verifyNoMoreInteractions( mock ); } @@ -141,6 +152,7 @@ public void testPerformWithoutSite() assertNotNull( argument.getValue().getReleaseEnvironment() ); assertNotNull( argument.getValue().getReactorProjects() ); assertEquals( Boolean.FALSE, argument.getValue().getDryRun() ); + assertTag( argument ); verifyNoMoreInteractions( mock ); } @@ -195,6 +207,7 @@ public void testPerformWithExecutionException() assertNotNull( argument.getValue().getReleaseEnvironment() ); assertNotNull( argument.getValue().getReactorProjects() ); assertEquals( Boolean.FALSE, argument.getValue().getDryRun() ); + assertTag( argument ); verifyNoMoreInteractions( mock ); } @@ -235,6 +248,7 @@ public void testPerformWithExecutionFailure() assertNotNull( argument.getValue().getReleaseEnvironment() ); assertNotNull( argument.getValue().getReactorProjects() ); assertEquals( Boolean.FALSE, argument.getValue().getDryRun() ); + assertTag( argument ); verifyNoMoreInteractions( mock ); } @@ -264,6 +278,7 @@ public void testPerformWithScm() assertNotNull( argument.getValue().getReleaseEnvironment() ); assertNotNull( argument.getValue().getReactorProjects() ); assertEquals( Boolean.FALSE, argument.getValue().getDryRun() ); + assertTag( argument ); verifyNoMoreInteractions( mock ); } @@ -302,6 +317,7 @@ public void testPerformWithProfiles() assertNotNull( argument.getValue().getReleaseEnvironment() ); assertNotNull( argument.getValue().getReactorProjects() ); assertEquals( Boolean.FALSE, argument.getValue().getDryRun() ); + assertTag( argument ); verifyNoMoreInteractions( mock ); } @@ -340,6 +356,7 @@ public void testPerformWithProfilesAndArguments() assertNotNull( argument.getValue().getReleaseEnvironment() ); assertNotNull( argument.getValue().getReactorProjects() ); assertEquals( Boolean.FALSE, argument.getValue().getDryRun() ); + assertTag( argument ); verifyNoMoreInteractions( mock ); } @@ -368,6 +385,7 @@ public void testPerformWithMultilineGoals() assertNotNull( argument.getValue().getReleaseEnvironment() ); assertNotNull( argument.getValue().getReactorProjects() ); assertEquals( Boolean.FALSE, argument.getValue().getDryRun() ); + assertTag( argument ); verifyNoMoreInteractions( mock ); } diff --git a/maven-release-plugin/src/test/java/org/apache/maven/plugins/release/stubs/FlatMultiModuleMavenProjectStub.java b/maven-release-plugin/src/test/java/org/apache/maven/plugins/release/stubs/FlatMultiModuleMavenProjectStub.java index 44ff46869..defe44b6b 100644 --- a/maven-release-plugin/src/test/java/org/apache/maven/plugins/release/stubs/FlatMultiModuleMavenProjectStub.java +++ b/maven-release-plugin/src/test/java/org/apache/maven/plugins/release/stubs/FlatMultiModuleMavenProjectStub.java @@ -25,7 +25,6 @@ import org.apache.maven.model.DistributionManagement; import org.apache.maven.model.Model; -import org.apache.maven.model.Scm; /** *

Stub for a MavenProject with a flat structure.

@@ -39,7 +38,7 @@ * @noinspection ClassNameSameAsAncestorName */ public class FlatMultiModuleMavenProjectStub - extends org.apache.maven.plugin.testing.stubs.MavenProjectStub + extends MavenProjectStub { public void setDistributionManagement( DistributionManagement distributionManagement ) { @@ -77,14 +76,6 @@ public File getBasedir() return new File( "/flat-multi-module/root-project" ).getAbsoluteFile(); } - public Scm getScm() - { - Scm scm = new Scm(); - scm.setConnection( "scm:svn:file://localhost/target/svnroot/flat-multi-module/trunk/root-project" ); - - return scm; - } - @Override public String getGroupId() { diff --git a/maven-release-plugin/src/test/java/org/apache/maven/plugins/release/stubs/MavenProjectStub.java b/maven-release-plugin/src/test/java/org/apache/maven/plugins/release/stubs/MavenProjectStub.java index 8e377b798..cd70ec539 100644 --- a/maven-release-plugin/src/test/java/org/apache/maven/plugins/release/stubs/MavenProjectStub.java +++ b/maven-release-plugin/src/test/java/org/apache/maven/plugins/release/stubs/MavenProjectStub.java @@ -21,6 +21,7 @@ import org.apache.maven.model.DistributionManagement; import org.apache.maven.model.Model; +import org.apache.maven.model.Scm; /** *

Stub for MavenProject.

@@ -49,6 +50,26 @@ public Model getModel() return model; } + public Scm getScm() + { + Scm scm = new Scm(); + scm.setConnection( "scm:svn:file://localhost/target/svnroot/flat-multi-module/trunk/root-project" ); + + return scm; + } + + public Model getOriginalModel() { + Model model = super.getOriginalModel(); + + if (model == null) { + model = new Model(); + model.setScm(getScm()); + setOriginalModel(model); + } + + return model; + } + public DistributionManagement getDistributionManagement() { return getModel().getDistributionManagement(); diff --git a/maven-release-plugin/src/test/resources/mojos/perform/perform-with-args.xml b/maven-release-plugin/src/test/resources/mojos/perform/perform-with-args.xml index 14af0dca5..e69ce10bb 100644 --- a/maven-release-plugin/src/test/resources/mojos/perform/perform-with-args.xml +++ b/maven-release-plugin/src/test/resources/mojos/perform/perform-with-args.xml @@ -31,6 +31,7 @@ ${basedir}/target/checkout true + test-tag deploy site-deploy -Dmaven.test.skip=true diff --git a/maven-release-plugin/src/test/resources/mojos/perform/perform-with-flat-structure.xml b/maven-release-plugin/src/test/resources/mojos/perform/perform-with-flat-structure.xml index 32e25fcb2..c319a70c9 100644 --- a/maven-release-plugin/src/test/resources/mojos/perform/perform-with-flat-structure.xml +++ b/maven-release-plugin/src/test/resources/mojos/perform/perform-with-flat-structure.xml @@ -31,6 +31,7 @@ ${basedir}/target/checkout true + test-tag scm:svn:file://localhost/target/svnroot/flat-multi-module/trunk/root-project deploy diff --git a/maven-release-plugin/src/test/resources/mojos/perform/perform-with-multiline-goals.xml b/maven-release-plugin/src/test/resources/mojos/perform/perform-with-multiline-goals.xml index f54463988..fbfbc06c9 100644 --- a/maven-release-plugin/src/test/resources/mojos/perform/perform-with-multiline-goals.xml +++ b/maven-release-plugin/src/test/resources/mojos/perform/perform-with-multiline-goals.xml @@ -31,6 +31,7 @@ ${basedir}/target/checkout true + test-tag deploy site-deploy diff --git a/maven-release-plugin/src/test/resources/mojos/perform/perform-with-scm.xml b/maven-release-plugin/src/test/resources/mojos/perform/perform-with-scm.xml index cb8a86603..e2129299d 100644 --- a/maven-release-plugin/src/test/resources/mojos/perform/perform-with-scm.xml +++ b/maven-release-plugin/src/test/resources/mojos/perform/perform-with-scm.xml @@ -31,6 +31,7 @@ ${basedir}/target/checkout true + test-tag scm-url deploy site-deploy diff --git a/maven-release-plugin/src/test/resources/mojos/perform/perform-without-site.xml b/maven-release-plugin/src/test/resources/mojos/perform/perform-without-site.xml index be9fcbb0b..fa3941cdb 100644 --- a/maven-release-plugin/src/test/resources/mojos/perform/perform-without-site.xml +++ b/maven-release-plugin/src/test/resources/mojos/perform/perform-without-site.xml @@ -32,6 +32,7 @@ ${basedir}/target/checkout deploy true + test-tag diff --git a/maven-release-plugin/src/test/resources/mojos/perform/perform.xml b/maven-release-plugin/src/test/resources/mojos/perform/perform.xml index 0580f0042..adf9ca337 100644 --- a/maven-release-plugin/src/test/resources/mojos/perform/perform.xml +++ b/maven-release-plugin/src/test/resources/mojos/perform/perform.xml @@ -32,6 +32,7 @@ ${basedir}/target/checkout deploy site-deploy true + test-tag