Author: stephenc
Date: Fri Nov 26 16:41:46 2010
New Revision: 1039453
URL: http://svn.apache.org/viewvc?rev=1039453&view=rev
Log:
[MRELEASE-621] Implementing a new release phase after the preparation has been
completed and immediately before committing the next development versions back
into SCM.
o This new feature can be used to hook in plugins that lock down version ranges
for the release and open them back up again after the release has been
prepared, as well as other niceties that people doing Continuous Deployment
might well want.
Added:
maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/RunCompleteGoalsPhase.java
- copied, changed from r1039341,
maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/RunPrepareGoalsPhase.java
maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/RunCompleteGoalsPhaseTest.java
- copied, changed from r1039341,
maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/RunPrepareGoalsPhaseTest.java
maven/release/trunk/maven-release-manager/src/test/resources/org/apache/maven/shared/release/phase/RunCompleteGoalsPhaseTest.xml
- copied unchanged from r1039341,
maven/release/trunk/maven-release-manager/src/test/resources/org/apache/maven/shared/release/phase/RunPrepareGoalsPhaseTest.xml
maven/release/trunk/maven-release-plugin/src/it/projects/prepare/completion-goals/
maven/release/trunk/maven-release-plugin/src/it/projects/prepare/completion-goals/pom.xml
(with props)
maven/release/trunk/maven-release-plugin/src/it/projects/prepare/completion-goals/verify.bsh
Modified:
maven/release/trunk/maven-release-manager/src/main/components-fragment.xml
maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/config/PropertiesReleaseDescriptorStore.java
maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/config/ReleaseUtils.java
maven/release/trunk/maven-release-manager/src/main/mdo/release-descriptor.mdo
maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/config/PropertiesReleaseDescriptorStoreTest.java
maven/release/trunk/maven-release-manager/src/test/resources/release.properties
maven/release/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/PrepareReleaseMojo.java
Modified:
maven/release/trunk/maven-release-manager/src/main/components-fragment.xml
URL:
http://svn.apache.org/viewvc/maven/release/trunk/maven-release-manager/src/main/components-fragment.xml?rev=1039453&r1=1039452&r2=1039453&view=diff
==============================================================================
--- maven/release/trunk/maven-release-manager/src/main/components-fragment.xml
(original)
+++ maven/release/trunk/maven-release-manager/src/main/components-fragment.xml
Fri Nov 26 16:41:46 2010
@@ -54,6 +54,7 @@
<phase>scm-tag</phase>
<phase>rewrite-poms-for-development</phase>
<phase>remove-release-poms</phase>
+ <phase>run-completion-goals</phase>
<phase>scm-commit-development</phase>
<phase>end-release</phase>
</preparePhases>
Modified:
maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/config/PropertiesReleaseDescriptorStore.java
URL:
http://svn.apache.org/viewvc/maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/config/PropertiesReleaseDescriptorStore.java?rev=1039453&r1=1039452&r2=1039453&view=diff
==============================================================================
---
maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/config/PropertiesReleaseDescriptorStore.java
(original)
+++
maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/config/PropertiesReleaseDescriptorStore.java
Fri Nov 26 16:41:46 2010
@@ -83,7 +83,7 @@ public class PropertiesReleaseDescriptor
{
IOUtil.close( inStream );
}
-
+
ReleaseDescriptor releaseDescriptor =
ReleaseUtils.copyPropertiesToReleaseDescriptor( properties );
if ( mergeDescriptor != null )
@@ -159,9 +159,13 @@ public class PropertiesReleaseDescriptor
{
properties.setProperty( "preparationGoals",
config.getPreparationGoals() );
}
-
+ if ( config.getCompletionGoals() != null )
+ {
+ properties.setProperty( "completionGoals",
config.getCompletionGoals() );
+ }
+
properties.setProperty( "remoteTagging", Boolean.toString(
config.isRemoteTagging() ) );
-
+
properties.setProperty( "pushChanges", Boolean.toString(
config.isPushChanges() ) );
// others boolean properties are not written to the properties file
because the value from the caller is always used
Modified:
maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/config/ReleaseUtils.java
URL:
http://svn.apache.org/viewvc/maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/config/ReleaseUtils.java?rev=1039453&r1=1039452&r2=1039453&view=diff
==============================================================================
---
maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/config/ReleaseUtils.java
(original)
+++
maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/config/ReleaseUtils.java
Fri Nov 26 16:41:46 2010
@@ -65,11 +65,13 @@ public class ReleaseUtils
mergeInto.setScmPrivateKeyPassPhrase(
mergeOverride( mergeInto.getScmPrivateKeyPassPhrase(),
toBeMerged.getScmPrivateKeyPassPhrase() ) );
mergeInto.setScmCommentPrefix(
- mergeOverride( mergeInto.getScmCommentPrefix(),
toBeMerged.getScmCommentPrefix() ) );
+ mergeOverride( mergeInto.getScmCommentPrefix(),
toBeMerged.getScmCommentPrefix() ) );
mergeInto.setAdditionalArguments(
mergeOverride( mergeInto.getAdditionalArguments(),
toBeMerged.getAdditionalArguments() ) );
mergeInto.setPreparationGoals(
mergeOverride( mergeInto.getPreparationGoals(),
toBeMerged.getPreparationGoals() ) );
+ mergeInto.setCompletionGoals(
+ mergeOverride( mergeInto.getCompletionGoals(),
toBeMerged.getCompletionGoals() ) );
mergeInto.setPerformGoals( mergeOverride( mergeInto.getPerformGoals(),
toBeMerged.getPerformGoals() ) );
mergeInto.setPomFileName( mergeOverride( mergeInto.getPomFileName(),
toBeMerged.getPomFileName() ) );
mergeInto.setCheckModificationExcludes(
toBeMerged.getCheckModificationExcludes() );
@@ -88,7 +90,7 @@ public class ReleaseUtils
mergeInto.setAllowTimestampedSnapshots(
toBeMerged.isAllowTimestampedSnapshots() );
mergeInto.setSnapshotReleasePluginAllowed(
toBeMerged.isSnapshotReleasePluginAllowed() );
mergeInto.setAutoVersionSubmodules(
toBeMerged.isAutoVersionSubmodules() );
- mergeInto.setDefaultReleaseVersion( mergeOverride(
mergeInto.getDefaultReleaseVersion(),
+ mergeInto.setDefaultReleaseVersion( mergeOverride(
mergeInto.getDefaultReleaseVersion(),
toBeMerged.getDefaultReleaseVersion() ) );
mergeInto.setDefaultDevelopmentVersion( mergeOverride(
mergeInto.getDefaultDevelopmentVersion(),
toBeMerged.getDefaultDevelopmentVersion() ) );
@@ -97,7 +99,7 @@ public class ReleaseUtils
mergeInto.setPushChanges( toBeMerged.isPushChanges() );
mergeInto.setWaitBeforeTagging( toBeMerged.getWaitBeforeTagging() );
- // If the user specifies versions, these should be override the
existing versions
+ // If the user specifies versions, these should be override the
existing versions
if ( toBeMerged.getReleaseVersions() != null )
{
mergeInto.getReleaseVersions().putAll(
toBeMerged.getReleaseVersions() );
@@ -127,7 +129,7 @@ public class ReleaseUtils
{
return thisValue != null ? thisValue : mergeValue;
}
-
+
public static ReleaseDescriptor copyPropertiesToReleaseDescriptor(
Properties properties )
{
ReleaseDescriptor releaseDescriptor = new ReleaseDescriptor();
@@ -144,6 +146,7 @@ public class ReleaseUtils
releaseDescriptor.setAdditionalArguments( properties.getProperty(
"exec.additionalArguments" ) );
releaseDescriptor.setPomFileName( properties.getProperty(
"exec.pomFileName" ) );
releaseDescriptor.setPreparationGoals( properties.getProperty(
"preparationGoals" ) );
+ releaseDescriptor.setCompletionGoals( properties.getProperty(
"completionGoals" ) );
String remoteTaggingStr = properties.getProperty( "remoteTagging" );
releaseDescriptor.setRemoteTagging( remoteTaggingStr == null ? false :
Boolean.valueOf( remoteTaggingStr ).booleanValue() );
String pushChanges = properties.getProperty( "pushChanges" );
Copied:
maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/RunCompleteGoalsPhase.java
(from r1039341,
maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/RunPrepareGoalsPhase.java)
URL:
http://svn.apache.org/viewvc/maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/RunCompleteGoalsPhase.java?p2=maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/RunCompleteGoalsPhase.java&p1=maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/RunPrepareGoalsPhase.java&r1=1039341&r2=1039453&rev=1039453&view=diff
==============================================================================
---
maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/RunPrepareGoalsPhase.java
(original)
+++
maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/RunCompleteGoalsPhase.java
Fri Nov 26 16:41:46 2010
@@ -19,21 +19,22 @@ package org.apache.maven.shared.release.
* under the License.
*/
+import java.io.File;
+import java.util.List;
+
import org.apache.maven.shared.release.ReleaseExecutionException;
import org.apache.maven.shared.release.ReleaseResult;
import org.apache.maven.shared.release.config.ReleaseDescriptor;
import org.apache.maven.shared.release.env.ReleaseEnvironment;
-import java.io.File;
-import java.util.List;
-
/**
- * Run the integration tests for the project to verify that it builds before
committing.
+ * Run the completion goals for the project to before committing the
continuing development stream.
*
* @author <a href="mailto:[email protected]">Brett Porter</a>
- * @plexus.component role="org.apache.maven.shared.release.phase.ReleasePhase"
role-hint="run-preparation-goals"
+ * @author <a href="mailto:[email protected]">Stephen Connolly</a>
+ * @plexus.component role="org.apache.maven.shared.release.phase.ReleasePhase"
role-hint="run-completion-goals"
*/
-public class RunPrepareGoalsPhase
+public class RunCompleteGoalsPhase
extends AbstractRunGoalsPhase
{
public ReleaseResult execute( ReleaseDescriptor releaseDescriptor,
ReleaseEnvironment releaseEnvironment, List reactorProjects )
@@ -48,7 +49,7 @@ public class RunPrepareGoalsPhase
{
ReleaseResult result = new ReleaseResult();
- logInfo( result, "Executing preparation goals - since this is
simulation mode it is running against the " +
+ logInfo( result, "Executing completion goals - since this is
simulation mode it is running against the " +
"original project, not the rewritten ones" );
execute( releaseDescriptor, releaseEnvironment, reactorProjects );
@@ -58,6 +59,6 @@ public class RunPrepareGoalsPhase
protected String getGoals( ReleaseDescriptor releaseDescriptor )
{
- return releaseDescriptor.getPreparationGoals();
+ return releaseDescriptor.getCompletionGoals();
}
}
Modified:
maven/release/trunk/maven-release-manager/src/main/mdo/release-descriptor.mdo
URL:
http://svn.apache.org/viewvc/maven/release/trunk/maven-release-manager/src/main/mdo/release-descriptor.mdo?rev=1039453&r1=1039452&r2=1039453&view=diff
==============================================================================
---
maven/release/trunk/maven-release-manager/src/main/mdo/release-descriptor.mdo
(original)
+++
maven/release/trunk/maven-release-manager/src/main/mdo/release-descriptor.mdo
Fri Nov 26 16:41:46 2010
@@ -326,6 +326,14 @@
</description>
</field>
<field>
+ <name>completionGoals</name>
+ <version>2.2.0+</version>
+ <type>String</type>
+ <description>
+ The goals to execute in on completion of preparation for the
release.
+ </description>
+ </field>
+ <field>
<name>performGoals</name>
<version>1.0.0+</version>
<type>String</type>
@@ -437,7 +445,7 @@
the source code with this revision.
</description>
</field>
-
+
<field>
<name>pushChanges</name>
<version>2.0.0+</version>
@@ -448,8 +456,8 @@
For many distributed SCMs like Git, a change like a commit is only
stored in your local copy of the repository.
Pushing the change allows your to more easily share it with other
users.
</description>
- </field>
-
+ </field>
+
<field>
<name>localCheckout</name>
<version>2.0.0+</version>
@@ -720,6 +728,10 @@
{
return false;
}
+ if ( !saveEquals( completionGoals, that.completionGoals ) )
+ {
+ return false;
+ }
if ( !saveEquals( pomFileName, that.pomFileName ) )
{
return false;
@@ -828,6 +840,7 @@
result = 29 * result + ( scmReleaseLabel != null ?
scmReleaseLabel.hashCode() : 0 );
result = 29 * result + ( additionalArguments != null ?
additionalArguments.hashCode() : 0 );
result = 29 * result + ( preparationGoals != null ?
preparationGoals.hashCode() : 0 );
+ result = 29 * result + ( completionGoals != null ?
completionGoals.hashCode() : 0 );
result = 29 * result + ( pomFileName != null ? pomFileName.hashCode()
: 0 );
result = 29 * result + ( checkModificationExcludes != null ?
checkModificationExcludes.hashCode() : 0 );
result = 29 * result + ( scmTagBase != null ? scmTagBase.hashCode() :
0 );
Modified:
maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/config/PropertiesReleaseDescriptorStoreTest.java
URL:
http://svn.apache.org/viewvc/maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/config/PropertiesReleaseDescriptorStoreTest.java?rev=1039453&r1=1039452&r2=1039453&view=diff
==============================================================================
---
maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/config/PropertiesReleaseDescriptorStoreTest.java
(original)
+++
maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/config/PropertiesReleaseDescriptorStoreTest.java
Fri Nov 26 16:41:46 2010
@@ -277,6 +277,7 @@ public class PropertiesReleaseDescriptor
config.setScmReleaseLabel( "tag-write" );
config.setAdditionalArguments( "additional-args-write" );
config.setPreparationGoals( "preparation-goals-write" );
+ config.setCompletionGoals( "completion-goals-write" );
config.setPomFileName( "pom-file-name-write" );
config.mapReleaseVersion( "groupId:artifactId", "1.0" );
@@ -309,6 +310,7 @@ public class PropertiesReleaseDescriptor
assertNull( "Expected no tag", config.getScmReleaseLabel() );
assertNull( "Expected no additional arguments",
config.getAdditionalArguments() );
assertNull( "Expected no preparation goals",
config.getPreparationGoals() );
+ assertNull( "Expected no completion goals",
config.getCompletionGoals() );
assertNull( "Expected no pom file name", config.getPomFileName() );
assertNull( "Expected no workingDirectory",
config.getWorkingDirectory() );
@@ -350,6 +352,7 @@ public class PropertiesReleaseDescriptor
expected.setScmReleaseLabel( "tag" );
expected.setAdditionalArguments( "additional-arguments" );
expected.setPreparationGoals( "preparation-goals" );
+ expected.setCompletionGoals( "completion-goals" );
expected.setPomFileName( "pom-file-name" );
expected.setWorkingDirectory( null );
expected.setGenerateReleasePoms( false );
Copied:
maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/RunCompleteGoalsPhaseTest.java
(from r1039341,
maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/RunPrepareGoalsPhaseTest.java)
URL:
http://svn.apache.org/viewvc/maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/RunCompleteGoalsPhaseTest.java?p2=maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/RunCompleteGoalsPhaseTest.java&p1=maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/RunPrepareGoalsPhaseTest.java&r1=1039341&r2=1039453&rev=1039453&view=diff
==============================================================================
---
maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/RunPrepareGoalsPhaseTest.java
(original)
+++
maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/RunCompleteGoalsPhaseTest.java
Fri Nov 26 16:41:46 2010
@@ -19,6 +19,9 @@ package org.apache.maven.shared.release.
* under the License.
*/
+import java.io.File;
+import java.util.List;
+
import org.apache.maven.settings.Settings;
import org.apache.maven.shared.release.ReleaseExecutionException;
import org.apache.maven.shared.release.ReleaseFailureException;
@@ -36,25 +39,22 @@ import org.jmock.core.matcher.InvokeOnce
import org.jmock.core.matcher.TestFailureMatcher;
import org.jmock.core.stub.ThrowStub;
-import java.io.File;
-import java.util.List;
-
/**
* Test the simple test running phase.
*
* @author <a href="mailto:[email protected]">Brett Porter</a>
*/
-public class RunPrepareGoalsPhaseTest
+public class RunCompleteGoalsPhaseTest
extends PlexusTestCase
{
- private RunPrepareGoalsPhase phase;
+ private RunCompleteGoalsPhase phase;
protected void setUp()
throws Exception
{
super.setUp();
- phase = (RunPrepareGoalsPhase) lookup( ReleasePhase.ROLE,
"run-preparation-goals" );
+ phase = (RunCompleteGoalsPhase) lookup( ReleasePhase.ROLE,
"run-completion-goals" );
}
public void testExecute()
@@ -63,7 +63,7 @@ public class RunPrepareGoalsPhaseTest
File testFile = getTestFile( "target/working-directory" );
ReleaseDescriptor config = new ReleaseDescriptor();
- config.setPreparationGoals( "clean integration-test" );
+ config.setCompletionGoals( "clean integration-test" );
config.setWorkingDirectory( testFile.getAbsolutePath() );
Mock mock = new Mock( MavenExecutor.class );
@@ -86,7 +86,7 @@ public class RunPrepareGoalsPhaseTest
File testFile = getTestFile( "target/working-directory" );
ReleaseDescriptor config = new ReleaseDescriptor();
- config.setPreparationGoals( "clean integration-test" );
+ config.setCompletionGoals( "clean integration-test" );
config.setWorkingDirectory( testFile.getAbsolutePath() );
Mock mock = new Mock( MavenExecutor.class );
@@ -108,7 +108,7 @@ public class RunPrepareGoalsPhaseTest
File testFile = getTestFile( "target/working-directory" );
ReleaseDescriptor config = new ReleaseDescriptor();
- config.setPreparationGoals( "clean integration-test" );
+ config.setCompletionGoals( "clean integration-test" );
config.setWorkingDirectory( testFile.getAbsolutePath() );
Mock mock = new Mock( MavenExecutor.class );
@@ -136,7 +136,7 @@ public class RunPrepareGoalsPhaseTest
File testFile = getTestFile( "target/working-directory" );
ReleaseDescriptor config = new ReleaseDescriptor();
- config.setPreparationGoals( "clean integration-test" );
+ config.setCompletionGoals( "clean integration-test" );
config.setWorkingDirectory( testFile.getAbsolutePath() );
Mock mock = new Mock( MavenExecutor.class );
@@ -165,7 +165,7 @@ public class RunPrepareGoalsPhaseTest
File testFile = getTestFile( "target/working-directory" );
ReleaseDescriptor config = new ReleaseDescriptor();
- config.setPreparationGoals( "" );
+ config.setCompletionGoals( "" );
config.setWorkingDirectory( testFile.getAbsolutePath() );
Mock mock = new Mock( MavenExecutor.class );
Modified:
maven/release/trunk/maven-release-manager/src/test/resources/release.properties
URL:
http://svn.apache.org/viewvc/maven/release/trunk/maven-release-manager/src/test/resources/release.properties?rev=1039453&r1=1039452&r2=1039453&view=diff
==============================================================================
---
maven/release/trunk/maven-release-manager/src/test/resources/release.properties
(original)
+++
maven/release/trunk/maven-release-manager/src/test/resources/release.properties
Fri Nov 26 16:41:46 2010
@@ -31,6 +31,7 @@ exec.additionalArguments=additional-argu
exec.pomFileName=pom-file-name
preparationGoals=preparation-goals
+completionGoals=completion-goals
project.rel.groupId\:artifactId1=2.0
project.rel.groupId\:artifactId2=3.0
Added:
maven/release/trunk/maven-release-plugin/src/it/projects/prepare/completion-goals/pom.xml
URL:
http://svn.apache.org/viewvc/maven/release/trunk/maven-release-plugin/src/it/projects/prepare/completion-goals/pom.xml?rev=1039453&view=auto
==============================================================================
---
maven/release/trunk/maven-release-plugin/src/it/projects/prepare/completion-goals/pom.xml
(added)
+++
maven/release/trunk/maven-release-plugin/src/it/projects/prepare/completion-goals/pom.xml
Fri Nov 26 16:41:46 2010
@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ 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.
+ -->
+<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+
+ <groupId>org.apache.maven.its.release</groupId>
+ <artifactId>completion-goals</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ <packaging>pom</packaging>
+
+ <name>Maven Release Plugin IT</name>
+ <url>http://maven.apache.org/</url>
+
+ <scm>
+ <connection>scm:dummy|nul</connection>
+ <developerConnection>scm:dummy|nul</developerConnection>
+ </scm>
+
+ <build>
+ <plugins>
+ <plugin>
+ <artifactId>maven-release-plugin</artifactId>
+ <version>@project.version@</version>
+ <configuration>
+ <arguments>-Dflag -Dfoo=bar -s
"@project.build.directory@/it/interpolated-settings.xml"</arguments>
+ <mavenExecutorId>invoker</mavenExecutorId>
+ <goals>validate</goals>
+ <preparationGoals>validate</preparationGoals>
+ <completionGoals>verify</completionGoals>
+ </configuration>
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.maven.its.release</groupId>
+ <artifactId>maven-scm-provider-dummy</artifactId>
+ <version>1.0</version>
+ </dependency>
+ </dependencies>
+ </plugin>
+ </plugins>
+ </build>
+</project>
Propchange:
maven/release/trunk/maven-release-plugin/src/it/projects/prepare/completion-goals/pom.xml
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
maven/release/trunk/maven-release-plugin/src/it/projects/prepare/completion-goals/pom.xml
------------------------------------------------------------------------------
svn:mime-type = text/xml
Added:
maven/release/trunk/maven-release-plugin/src/it/projects/prepare/completion-goals/verify.bsh
URL:
http://svn.apache.org/viewvc/maven/release/trunk/maven-release-plugin/src/it/projects/prepare/completion-goals/verify.bsh?rev=1039453&view=auto
==============================================================================
---
maven/release/trunk/maven-release-plugin/src/it/projects/prepare/completion-goals/verify.bsh
(added)
+++
maven/release/trunk/maven-release-plugin/src/it/projects/prepare/completion-goals/verify.bsh
Fri Nov 26 16:41:46 2010
@@ -0,0 +1,60 @@
+import java.io.*;
+import java.util.*;
+import java.util.regex.*;
+
+try
+{
+ File buildLog = new File( basedir, "build.log" );
+
+ System.out.println( "Checking logs.." );
+
+ StringBuffer data = new StringBuffer( 1024 );
+ BufferedReader reader = new BufferedReader( new FileReader( buildLog ) );
+ char[] buf = new char[1024];
+ int numRead = 0;
+ while ( ( numRead = reader.read( buf ) ) != -1 )
+ {
+ String readData = String.valueOf( buf, 0, numRead );
+ data.append( readData );
+ buf = new char[1024];
+ }
+ reader.close();
+ String contents = data.toString();
+
+ String expected = "Executing preparation goals";
+ int index = 0;
+
+ if( ( index = contents.indexOf( expected, index ) ) == -1 )
+ {
+ System.out.println( "FAILED!" );
+ return false;
+ }
+ expected = "Executing goals 'validate'";
+
+ if( ( index = contents.indexOf( expected, index ) ) == -1 )
+ {
+ System.out.println( "FAILED!" );
+ return false;
+ }
+ expected = "Executing completion goals";
+
+ if( ( index = contents.indexOf( expected, index ) ) == -1 )
+ {
+ System.out.println( "FAILED!" );
+ return false;
+ }
+ expected = "Executing goals 'verify'";
+
+ if( ( index = contents.indexOf( expected, index ) ) == -1 )
+ {
+ System.out.println( "FAILED!" );
+ return false;
+ }
+}
+catch( Throwable t )
+{
+ t.printStackTrace();
+ return false;
+}
+
+return true;
\ No newline at end of file
Modified:
maven/release/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/PrepareReleaseMojo.java
URL:
http://svn.apache.org/viewvc/maven/release/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/PrepareReleaseMojo.java?rev=1039453&r1=1039452&r2=1039453&view=diff
==============================================================================
---
maven/release/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/PrepareReleaseMojo.java
(original)
+++
maven/release/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/PrepareReleaseMojo.java
Fri Nov 26 16:41:46 2010
@@ -111,6 +111,15 @@ public class PrepareReleaseMojo
private String preparationGoals;
/**
+ * Goals to run on completion of the preparation step, after
transformation back to the next development version
+ * but before committing. Space delimited.
+ *
+ * @parameter expression="${completionGoals}" default-value=""
+ * @since 2.2
+ */
+ private String completionGoals;
+
+ /**
* Commits to do are atomic or by project.
*
* @parameter expression="${commitByProject}" default-value="false"
@@ -260,6 +269,7 @@ public class PrepareReleaseMojo
config.setGenerateReleasePoms( generateReleasePoms );
config.setScmUseEditMode( useEditMode );
config.setPreparationGoals( preparationGoals );
+ config.setCompletionGoals( completionGoals );
config.setCommitByProject( commitByProject );
config.setUpdateDependencies( updateDependencies );
config.setAutoVersionSubmodules( autoVersionSubmodules );