Remove AbstractRunGoalsPhase#setMavenExecutor; only used for tests and won't work after M3.0 migration because componentsMap will become immutable.
diff --git a/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/AbstractRunGoalsPhase.java b/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/AbstractRunGoalsPhase.java
index f5b2ee6..f424668 100644
--- a/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/AbstractRunGoalsPhase.java
+++ b/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/AbstractRunGoalsPhase.java
@@ -20,7 +20,6 @@
*/
import java.io.File;
-import java.util.HashMap;
import java.util.Map;
import org.apache.maven.shared.release.ReleaseExecutionException;
@@ -96,24 +95,6 @@
return result;
}
- /**
- * @deprecated Use {@link AbstractRunGoalsPhase#setMavenExecutor(String, MavenExecutor)} instead.
- */
- public void setMavenExecutor( MavenExecutor mavenExecutor )
- {
- setMavenExecutor( ReleaseEnvironment.DEFAULT_MAVEN_EXECUTOR_ID, mavenExecutor );
- }
-
- public void setMavenExecutor( String id, MavenExecutor executor )
- {
- if ( mavenExecutors == null )
- {
- mavenExecutors = new HashMap<String, MavenExecutor>();
- }
-
- mavenExecutors.put( id, executor );
- }
-
protected abstract String getGoals( ReleaseDescriptor releaseDescriptor );
/**
diff --git a/maven-release-manager/src/test/java/org/apache/maven/shared/release/DefaultReleaseManagerTest.java b/maven-release-manager/src/test/java/org/apache/maven/shared/release/DefaultReleaseManagerTest.java
index b746f07..8a5e8bc 100644
--- a/maven-release-manager/src/test/java/org/apache/maven/shared/release/DefaultReleaseManagerTest.java
+++ b/maven-release-manager/src/test/java/org/apache/maven/shared/release/DefaultReleaseManagerTest.java
@@ -22,7 +22,6 @@
import org.apache.maven.project.MavenProject;
import org.apache.maven.scm.CommandParameters;
import org.apache.maven.scm.ScmException;
-import org.apache.maven.scm.ScmFile;
import org.apache.maven.scm.ScmFileSet;
import org.apache.maven.scm.ScmTag;
import org.apache.maven.scm.command.checkout.CheckOutScmResult;
@@ -39,11 +38,8 @@
import org.apache.maven.shared.release.config.ReleaseDescriptorStoreStub;
import org.apache.maven.shared.release.env.DefaultReleaseEnvironment;
import org.apache.maven.shared.release.env.ReleaseEnvironment;
-import org.apache.maven.shared.release.exec.MavenExecutor;
-import org.apache.maven.shared.release.phase.IsScmFileSetEquals;
import org.apache.maven.shared.release.phase.ReleasePhase;
import org.apache.maven.shared.release.phase.ReleasePhaseStub;
-import org.apache.maven.shared.release.phase.RunPerformGoalsPhase;
import org.apache.maven.shared.release.scm.DefaultScmRepositoryConfigurator;
import org.apache.maven.shared.release.scm.ReleaseScmCommandException;
import org.apache.maven.shared.release.scm.ReleaseScmRepositoryException;
@@ -412,49 +408,7 @@
verifyNoMoreInteractions( configStoreMock );
}
- public void testReleasePerform()
- throws Exception
- {
- // prepare
- DefaultReleaseManager releaseManager = (DefaultReleaseManager) lookup( ReleaseManager.ROLE, "test" );
-
- ReleaseDescriptor releaseDescriptor = new ReleaseDescriptor();
- releaseDescriptor.setScmSourceUrl( "scm-url" );
- releaseDescriptor.setPerformGoals( "goal1 goal2" );
- File checkoutDirectory = getTestFile( "target/checkout-directory" );
- releaseDescriptor.setCheckoutDirectory( checkoutDirectory.getAbsolutePath() );
-
- MavenExecutor mock = mock( MavenExecutor.class );
- RunPerformGoalsPhase phase = (RunPerformGoalsPhase) lookup( ReleasePhase.ROLE, "run-perform-goals" );
- phase.setMavenExecutor( mock );
-
- ScmProvider scmProviderMock = mock( ScmProvider.class );
- when( scmProviderMock.checkOut( isA( ScmRepository.class ),
- argThat( new IsScmFileSetEquals( new ScmFileSet( checkoutDirectory ) ) ),
- isA( ScmTag.class ),
- isA( CommandParameters.class )) )
- .thenReturn( new CheckOutScmResult( "...", Collections.<ScmFile>emptyList() ) );
-
- ScmManagerStub stub = (ScmManagerStub) lookup( ScmManager.ROLE );
- stub.setScmProvider( scmProviderMock );
-
- // execute
- releaseManager.perform( releaseDescriptor, new DefaultReleaseEnvironment(), createReactorProjects() );
-
- // verify
- verify( mock ).executeGoals( eq( checkoutDirectory ),
- eq( "goal1 goal2" ),
- isA( ReleaseEnvironment.class ),
- eq( true ),
- eq( "-DperformRelease=true -f pom.xml" ),
- isNull( String.class ),
- isA( ReleaseResult.class ) );
- verify( scmProviderMock ).checkOut( isA( ScmRepository.class ),
- argThat( new IsScmFileSetEquals( new ScmFileSet( checkoutDirectory ) ) ),
- isA( ScmTag.class ),
- isA( CommandParameters.class ));
- verifyNoMoreInteractions( mock, scmProviderMock );
- }
+
private static List<MavenProject> createReactorProjects()
{
@@ -478,192 +432,6 @@
assertTrue( result.getOutput().length() > 0 );
}
- public void testReleasePerformNoReleaseProfile()
- throws Exception
- {
- // prepare
- DefaultReleaseManager releaseManager = (DefaultReleaseManager) lookup( ReleaseManager.ROLE, "test" );
-
- ReleaseDescriptor releaseDescriptor = new ReleaseDescriptor();
- releaseDescriptor.setScmSourceUrl( "scm-url" );
- releaseDescriptor.setPerformGoals( "goal1 goal2" );
- File checkoutDirectory = getTestFile( "target/checkout-directory" );
- releaseDescriptor.setCheckoutDirectory( checkoutDirectory.getAbsolutePath() );
-
- MavenExecutor mock = mock( MavenExecutor.class );
- RunPerformGoalsPhase phase = (RunPerformGoalsPhase) lookup( ReleasePhase.ROLE, "run-perform-goals" );
- phase.setMavenExecutor( mock );
-
- ScmProvider scmProviderMock = mock( ScmProvider.class );
- when( scmProviderMock.checkOut( isA( ScmRepository.class ),
- argThat( new IsScmFileSetEquals( new ScmFileSet( checkoutDirectory ) ) ),
- isA( ScmTag.class ),
- isA( CommandParameters.class )) )
- .thenReturn( new CheckOutScmResult( "...", Collections.<ScmFile>emptyList() ) );
-
- ScmManagerStub stub = (ScmManagerStub) lookup( ScmManager.ROLE );
- stub.setScmProvider( scmProviderMock );
-
- releaseDescriptor.setUseReleaseProfile( false );
-
- // execute
- releaseManager.perform( releaseDescriptor, new DefaultReleaseEnvironment(), createReactorProjects() );
-
- // verify
- verify( mock ).executeGoals( eq( checkoutDirectory ),
- eq( "goal1 goal2" ),
- isA( ReleaseEnvironment.class ),
- eq( true ),
- eq( "-f pom.xml" ),
- isNull( String.class ),
- isA( ReleaseResult.class ) );
- verify( scmProviderMock ).checkOut( isA( ScmRepository.class ),
- argThat( new IsScmFileSetEquals( new ScmFileSet( checkoutDirectory ) ) ),
- isA( ScmTag.class ),
- isA( CommandParameters.class ));
- verifyNoMoreInteractions( mock, scmProviderMock );
- }
-
- public void testReleasePerformWithArguments()
- throws Exception
- {
- // prepare
- DefaultReleaseManager releaseManager = (DefaultReleaseManager) lookup( ReleaseManager.ROLE, "test" );
-
- ReleaseDescriptor releaseDescriptor = new ReleaseDescriptor();
- releaseDescriptor.setScmSourceUrl( "scm-url" );
- releaseDescriptor.setAdditionalArguments( "-Dmaven.test.skip=true" );
- releaseDescriptor.setPerformGoals( "goal1 goal2" );
- File checkoutDirectory = getTestFile( "target/checkout-directory" );
- releaseDescriptor.setCheckoutDirectory( checkoutDirectory.getAbsolutePath() );
-
- MavenExecutor mock = mock( MavenExecutor.class );
- RunPerformGoalsPhase phase = (RunPerformGoalsPhase) lookup( ReleasePhase.ROLE, "run-perform-goals" );
- phase.setMavenExecutor( mock );
-
- ScmProvider scmProviderMock = mock( ScmProvider.class );
- when( scmProviderMock.checkOut( isA( ScmRepository.class ),
- argThat( new IsScmFileSetEquals( new ScmFileSet( checkoutDirectory ) ) ),
- isA( ScmTag.class ),
- isA( CommandParameters.class )) )
- .thenReturn( new CheckOutScmResult( "...", Collections.<ScmFile>emptyList() ) );
-
- ScmManagerStub stub = (ScmManagerStub) lookup( ScmManager.ROLE );
- stub.setScmProvider( scmProviderMock );
-
- // execute
- releaseManager.perform( releaseDescriptor, new DefaultReleaseEnvironment(), createReactorProjects() );
-
- // verify
- verify( mock ).executeGoals( eq( checkoutDirectory ),
- eq( "goal1 goal2" ),
- isA( ReleaseEnvironment.class),
- eq( true),
- eq( "-Dmaven.test.skip=true -DperformRelease=true -f pom.xml" ),
- isNull( String.class ),
- isA( ReleaseResult.class ) );
- verify( scmProviderMock ).checkOut( isA( ScmRepository.class ),
- argThat( new IsScmFileSetEquals( new ScmFileSet( checkoutDirectory ) ) ),
- isA( ScmTag.class ),
- isA( CommandParameters.class ));
- verifyNoMoreInteractions( mock, scmProviderMock );
- }
-
- public void testReleasePerformWithArgumentsNoReleaseProfile()
- throws Exception
- {
- // prepare
- DefaultReleaseManager releaseManager = (DefaultReleaseManager) lookup( ReleaseManager.ROLE, "test" );
-
- ReleaseDescriptor releaseDescriptor = new ReleaseDescriptor();
- releaseDescriptor.setScmSourceUrl( "scm-url" );
- releaseDescriptor.setAdditionalArguments( "-Dmaven.test.skip=true" );
- releaseDescriptor.setPerformGoals( "goal1 goal2" );
- File checkoutDirectory = getTestFile( "target/checkout-directory" );
- releaseDescriptor.setCheckoutDirectory( checkoutDirectory.getAbsolutePath() );
-
- MavenExecutor mock = mock( MavenExecutor.class );
- RunPerformGoalsPhase phase = (RunPerformGoalsPhase) lookup( ReleasePhase.ROLE, "run-perform-goals" );
- phase.setMavenExecutor( mock );
-
- ScmProvider scmProviderMock = mock( ScmProvider.class );
- when( scmProviderMock.checkOut( isA( ScmRepository.class ),
- argThat( new IsScmFileSetEquals( new ScmFileSet( checkoutDirectory ) ) ),
- isA( ScmTag.class ),
- isA( CommandParameters.class )))
- .thenReturn( new CheckOutScmResult( "...", Collections.<ScmFile>emptyList() ) );
-
- ScmManagerStub stub = (ScmManagerStub) lookup( ScmManager.ROLE );
- stub.setScmProvider( scmProviderMock );
-
- releaseDescriptor.setUseReleaseProfile( false );
-
- // execute
- releaseManager.perform( releaseDescriptor, new DefaultReleaseEnvironment(), createReactorProjects() );
-
- // verify
- verify( mock ).executeGoals( eq( checkoutDirectory ),
- eq( "goal1 goal2" ),
- isA( ReleaseEnvironment.class ),
- eq( true ),
- eq( "-Dmaven.test.skip=true -f pom.xml" ),
- isNull( String.class ),
- isA( ReleaseResult.class ) );
- verify( scmProviderMock ).checkOut( isA( ScmRepository.class ),
- argThat( new IsScmFileSetEquals( new ScmFileSet( checkoutDirectory ) ) ),
- isA( ScmTag.class ),
- isA( CommandParameters.class ));
- verifyNoMoreInteractions( mock, scmProviderMock );
- }
-
- public void testReleasePerformWithReleasePropertiesCompleted()
- throws Exception
- {
- // prepare
- DefaultReleaseManager releaseManager = (DefaultReleaseManager) lookup( ReleaseManager.ROLE, "test" );
-
- ReleaseDescriptor releaseDescriptor = new ReleaseDescriptor();
- releaseDescriptor.setScmSourceUrl( "scm-url" );
- releaseDescriptor.setPerformGoals( "goal1 goal2" );
- File checkoutDirectory = getTestFile( "target/checkout-directory" );
- releaseDescriptor.setCheckoutDirectory( checkoutDirectory.getAbsolutePath() );
-
- MavenExecutor mock = mock( MavenExecutor.class );
- RunPerformGoalsPhase phase = (RunPerformGoalsPhase) lookup( ReleasePhase.ROLE, "run-perform-goals" );
- phase.setMavenExecutor( mock );
-
- ScmProvider scmProviderMock = mock( ScmProvider.class );
- when( scmProviderMock.checkOut( isA( ScmRepository.class ),
- argThat( new IsScmFileSetEquals( new ScmFileSet( checkoutDirectory ) ) ),
- isA( ScmTag.class ),
- isA( CommandParameters.class )) )
- .thenReturn( new CheckOutScmResult( "...", Collections.<ScmFile>emptyList() ) );
-
- ScmManagerStub stub = (ScmManagerStub) lookup( ScmManager.ROLE );
- stub.setScmProvider( scmProviderMock );
-
- ReleaseDescriptorStoreStub configStore = new ReleaseDescriptorStoreStub();
- configStore.getReleaseConfiguration().setCompletedPhase( "end-release" );
- releaseManager.setConfigStore( configStore );
-
- // execute
- releaseManager.perform( releaseDescriptor, new DefaultReleaseEnvironment(), createReactorProjects() );
-
- // verify
- verify( mock ).executeGoals( eq( checkoutDirectory ),
- eq( "goal1 goal2" ),
- isA( ReleaseEnvironment.class ),
- eq( true ),
- eq( "-DperformRelease=true -f pom.xml" ),
- isNull( String.class ),
- isA( ReleaseResult.class ) );
- verify( scmProviderMock ).checkOut( isA( ScmRepository.class ),
- argThat( new IsScmFileSetEquals( new ScmFileSet( checkoutDirectory ) ) ),
- isA( ScmTag.class ),
- isA( CommandParameters.class ));
- verifyNoMoreInteractions( mock, scmProviderMock );
- }
-
public void testReleaseConfigurationStoreReadFailureOnPerform()
throws Exception
{
diff --git a/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/AbstractReleaseTestCase.java b/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/AbstractReleaseTestCase.java
index 1cd260c..099b3bd 100644
--- a/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/AbstractReleaseTestCase.java
+++ b/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/AbstractReleaseTestCase.java
@@ -21,11 +21,9 @@
*/
import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.fail;
import java.io.File;
import java.io.IOException;
-import java.io.Reader;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
@@ -64,11 +62,7 @@
import org.codehaus.plexus.context.DefaultContext;
import org.codehaus.plexus.personality.plexus.lifecycle.phase.Contextualizable;
import org.codehaus.plexus.util.FileUtils;
-import org.codehaus.plexus.util.IOUtil;
-import org.codehaus.plexus.util.ReaderFactory;
import org.codehaus.plexus.util.StringUtils;
-import org.w3c.dom.Node;
-import org.xml.sax.SAXException;
import org.xmlunit.builder.DiffBuilder;
import org.xmlunit.diff.Comparison;
import org.xmlunit.diff.ComparisonResult;
diff --git a/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/RunCompleteGoalsPhaseTest.java b/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/RunCompleteGoalsPhaseTest.java
index 7d31d4b..83e5a57 100644
--- a/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/RunCompleteGoalsPhaseTest.java
+++ b/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/RunCompleteGoalsPhaseTest.java
@@ -33,7 +33,6 @@
import java.util.List;
import org.apache.maven.project.MavenProject;
-import org.apache.maven.settings.Settings;
import org.apache.maven.shared.release.PlexusJUnit4TestCase;
import org.apache.maven.shared.release.ReleaseExecutionException;
import org.apache.maven.shared.release.ReleaseFailureException;
@@ -43,6 +42,7 @@
import org.apache.maven.shared.release.env.ReleaseEnvironment;
import org.apache.maven.shared.release.exec.MavenExecutor;
import org.apache.maven.shared.release.exec.MavenExecutorException;
+import org.apache.maven.shared.release.stubs.MavenExecutorWrapper;
import org.junit.Test;
/**
@@ -55,12 +55,21 @@
{
private RunCompleteGoalsPhase phase;
+ private MavenExecutorWrapper mavenExecutorWrapper;
+
+ private ReleaseEnvironment releaseEnvironment;
+
public void setUp()
throws Exception
{
super.setUp();
phase = (RunCompleteGoalsPhase) lookup( ReleasePhase.ROLE, "run-completion-goals" );
+
+ mavenExecutorWrapper = (MavenExecutorWrapper) lookup( "org.apache.maven.shared.release.exec.MavenExecutor", "wrapper" );
+
+ releaseEnvironment = new DefaultReleaseEnvironment();
+ releaseEnvironment.setMavenExecutorId( "wrapper" );
}
@Test
@@ -76,10 +85,10 @@
MavenExecutor mock = mock( MavenExecutor.class );
- phase.setMavenExecutor( ReleaseEnvironment.DEFAULT_MAVEN_EXECUTOR_ID, mock );
+ mavenExecutorWrapper.setMavenExecutor( mock );
// execute
- phase.execute( config, (Settings) null, (List<MavenProject>) null );
+ phase.execute( config, releaseEnvironment, (List<MavenProject>) null );
// verify
verify( mock ).executeGoals( eq( testFile ), eq( "clean integration-test" ), isA( ReleaseEnvironment.class ),
@@ -101,10 +110,10 @@
MavenExecutor mock = mock( MavenExecutor.class );
- phase.setMavenExecutor( ReleaseEnvironment.DEFAULT_MAVEN_EXECUTOR_ID, mock );
+ mavenExecutorWrapper.setMavenExecutor( mock );
// execute
- phase.simulate( config, new DefaultReleaseEnvironment(), null );
+ phase.simulate( config, releaseEnvironment, null );
// verify
verify( mock ).executeGoals( eq( testFile ), eq( "clean integration-test" ), isA( ReleaseEnvironment.class ),
@@ -134,12 +143,12 @@
isNull( String.class ),
isA( ReleaseResult.class ) );
- phase.setMavenExecutor( ReleaseEnvironment.DEFAULT_MAVEN_EXECUTOR_ID, mock );
+ mavenExecutorWrapper.setMavenExecutor( mock );
// execute
try
{
- phase.execute( config, (Settings) null, (List<MavenProject>) null );
+ phase.execute( config, releaseEnvironment, (List<MavenProject>) null );
fail( "Should have thrown an exception" );
}
@@ -176,12 +185,12 @@
isNull( String.class ),
isA( ReleaseResult.class ) );
- phase.setMavenExecutor( ReleaseEnvironment.DEFAULT_MAVEN_EXECUTOR_ID, mock );
+ mavenExecutorWrapper.setMavenExecutor( mock );
// execute
try
{
- phase.simulate( config, new DefaultReleaseEnvironment(), null );
+ phase.simulate( config, releaseEnvironment, null );
fail( "Should have thrown an exception" );
}
@@ -210,10 +219,10 @@
MavenExecutor mock = mock( MavenExecutor.class );
- phase.setMavenExecutor( ReleaseEnvironment.DEFAULT_MAVEN_EXECUTOR_ID, mock );
+ mavenExecutorWrapper.setMavenExecutor( mock );
// execute
- phase.execute( config, (Settings) null, (List<MavenProject>) null );
+ phase.execute( config, releaseEnvironment, (List<MavenProject>) null );
// verify
// never invoke mock
diff --git a/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/RunPerformGoalsPhaseTest.java b/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/RunPerformGoalsPhaseTest.java
index ec30507..d8ff801 100644
--- a/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/RunPerformGoalsPhaseTest.java
+++ b/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/RunPerformGoalsPhaseTest.java
@@ -21,6 +21,7 @@
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.fail;
+import static org.mockito.Matchers.argThat;
import static org.mockito.Matchers.eq;
import static org.mockito.Matchers.isA;
import static org.mockito.Matchers.isNull;
@@ -28,19 +29,31 @@
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.verifyNoMoreInteractions;
+import static org.mockito.Mockito.when;
import java.io.File;
+import java.util.Collections;
import java.util.List;
import org.apache.maven.project.MavenProject;
-import org.apache.maven.settings.Settings;
+import org.apache.maven.scm.CommandParameters;
+import org.apache.maven.scm.ScmFile;
+import org.apache.maven.scm.ScmFileSet;
+import org.apache.maven.scm.ScmTag;
+import org.apache.maven.scm.command.checkout.CheckOutScmResult;
+import org.apache.maven.scm.manager.ScmManager;
+import org.apache.maven.scm.manager.ScmManagerStub;
+import org.apache.maven.scm.provider.ScmProvider;
+import org.apache.maven.scm.repository.ScmRepository;
import org.apache.maven.shared.release.PlexusJUnit4TestCase;
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.DefaultReleaseEnvironment;
import org.apache.maven.shared.release.env.ReleaseEnvironment;
import org.apache.maven.shared.release.exec.MavenExecutor;
import org.apache.maven.shared.release.exec.MavenExecutorException;
+import org.apache.maven.shared.release.stubs.MavenExecutorWrapper;
import org.junit.Test;
/**
@@ -51,6 +64,10 @@
extends PlexusJUnit4TestCase
{
private RunPerformGoalsPhase phase;
+
+ private MavenExecutorWrapper mavenExecutorWrapper;
+
+ private ReleaseEnvironment releaseEnvironment;
public void setUp()
throws Exception
@@ -58,6 +75,11 @@
super.setUp();
phase = (RunPerformGoalsPhase) lookup( ReleasePhase.ROLE, "run-perform-goals" );
+
+ mavenExecutorWrapper = (MavenExecutorWrapper) lookup( "org.apache.maven.shared.release.exec.MavenExecutor", "wrapper" );
+
+ releaseEnvironment = new DefaultReleaseEnvironment();
+ releaseEnvironment.setMavenExecutorId( "wrapper" );
}
@Test
@@ -72,6 +94,8 @@
config.setCheckoutDirectory( testFile.getAbsolutePath() );
MavenExecutor mock = mock( MavenExecutor.class );
+
+ mavenExecutorWrapper.setMavenExecutor( mock );
doThrow( new MavenExecutorException( "...", new Exception() ) ).when( mock ).executeGoals( eq( testFile ),
eq( "goal1 goal2" ),
@@ -81,12 +105,12 @@
isNull( String.class ),
isA( ReleaseResult.class ) );
- phase.setMavenExecutor(ReleaseEnvironment.DEFAULT_MAVEN_EXECUTOR_ID, mock );
+ mavenExecutorWrapper.setMavenExecutor( mock );
// execute
try
{
- phase.execute( config, (Settings) null, (List<MavenProject>) null );
+ phase.execute( config, releaseEnvironment, (List<MavenProject>) null );
fail( "Should have thrown an exception" );
}
@@ -118,9 +142,9 @@
MavenExecutor mock = mock( MavenExecutor.class );
- phase.setMavenExecutor(ReleaseEnvironment.DEFAULT_MAVEN_EXECUTOR_ID, mock );
+ mavenExecutorWrapper.setMavenExecutor( mock );
- phase.execute( config, (Settings) null, (List<MavenProject>) null );
+ phase.execute( config, releaseEnvironment, (List<MavenProject>) null );
verify( mock ).executeGoals( eq( testFile ),
eq( "goal1 goal2" ),
@@ -132,4 +156,224 @@
verifyNoMoreInteractions( mock );
}
+
+ public void testReleasePerformWithArgumentsNoReleaseProfile()
+ throws Exception
+ {
+ // prepare
+ ReleaseDescriptor releaseDescriptor = new ReleaseDescriptor();
+ releaseDescriptor.setScmSourceUrl( "scm-url" );
+ releaseDescriptor.setAdditionalArguments( "-Dmaven.test.skip=true" );
+ releaseDescriptor.setPerformGoals( "goal1 goal2" );
+ File checkoutDirectory = getTestFile( "target/checkout-directory" );
+ releaseDescriptor.setCheckoutDirectory( checkoutDirectory.getAbsolutePath() );
+
+ MavenExecutor mock = mock( MavenExecutor.class );
+ mavenExecutorWrapper.setMavenExecutor( mock );
+
+ ScmProvider scmProviderMock = mock( ScmProvider.class );
+ when( scmProviderMock.checkOut( isA( ScmRepository.class ),
+ argThat( new IsScmFileSetEquals( new ScmFileSet( checkoutDirectory ) ) ),
+ isA( ScmTag.class ),
+ isA( CommandParameters.class )))
+ .thenReturn( new CheckOutScmResult( "...", Collections.<ScmFile>emptyList() ) );
+
+ ScmManagerStub stub = (ScmManagerStub) lookup( ScmManager.ROLE );
+ stub.setScmProvider( scmProviderMock );
+
+ releaseDescriptor.setUseReleaseProfile( false );
+
+ // execute
+ phase.execute( releaseDescriptor, releaseEnvironment, createReactorProjects() );
+
+ // verify
+ verify( mock ).executeGoals( eq( checkoutDirectory ),
+ eq( "goal1 goal2" ),
+ isA( ReleaseEnvironment.class ),
+ eq( true ),
+ eq( "-Dmaven.test.skip=true -f pom.xml" ),
+ isNull( String.class ),
+ isA( ReleaseResult.class ) );
+ verify( scmProviderMock ).checkOut( isA( ScmRepository.class ),
+ argThat( new IsScmFileSetEquals( new ScmFileSet( checkoutDirectory ) ) ),
+ isA( ScmTag.class ),
+ isA( CommandParameters.class ));
+ verifyNoMoreInteractions( mock, scmProviderMock );
+ }
+
+ public void testReleasePerform()
+ throws Exception
+ {
+ // prepare
+ ReleaseDescriptor releaseDescriptor = new ReleaseDescriptor();
+ releaseDescriptor.setScmSourceUrl( "scm-url" );
+ releaseDescriptor.setPerformGoals( "goal1 goal2" );
+ File checkoutDirectory = getTestFile( "target/checkout-directory" );
+ releaseDescriptor.setCheckoutDirectory( checkoutDirectory.getAbsolutePath() );
+
+ MavenExecutor mock = mock( MavenExecutor.class );
+ mavenExecutorWrapper.setMavenExecutor( mock );
+
+ ScmProvider scmProviderMock = mock( ScmProvider.class );
+ when( scmProviderMock.checkOut( isA( ScmRepository.class ),
+ argThat( new IsScmFileSetEquals( new ScmFileSet( checkoutDirectory ) ) ),
+ isA( ScmTag.class ),
+ isA( CommandParameters.class )) )
+ .thenReturn( new CheckOutScmResult( "...", Collections.<ScmFile>emptyList() ) );
+
+ ScmManagerStub stub = (ScmManagerStub) lookup( ScmManager.ROLE );
+ stub.setScmProvider( scmProviderMock );
+
+ // execute
+ phase.execute( releaseDescriptor, releaseEnvironment, createReactorProjects() );
+
+ // verify
+ verify( mock ).executeGoals( eq( checkoutDirectory ),
+ eq( "goal1 goal2" ),
+ isA( ReleaseEnvironment.class ),
+ eq( true ),
+ eq( "-DperformRelease=true -f pom.xml" ),
+ isNull( String.class ),
+ isA( ReleaseResult.class ) );
+ verify( scmProviderMock ).checkOut( isA( ScmRepository.class ),
+ argThat( new IsScmFileSetEquals( new ScmFileSet( checkoutDirectory ) ) ),
+ isA( ScmTag.class ),
+ isA( CommandParameters.class ));
+ verifyNoMoreInteractions( mock, scmProviderMock );
+ }
+
+ public void testReleasePerformNoReleaseProfile()
+ throws Exception
+ {
+ // prepare
+ ReleaseDescriptor releaseDescriptor = new ReleaseDescriptor();
+ releaseDescriptor.setScmSourceUrl( "scm-url" );
+ releaseDescriptor.setPerformGoals( "goal1 goal2" );
+ File checkoutDirectory = getTestFile( "target/checkout-directory" );
+ releaseDescriptor.setCheckoutDirectory( checkoutDirectory.getAbsolutePath() );
+
+ MavenExecutor mock = mock( MavenExecutor.class );
+ mavenExecutorWrapper.setMavenExecutor( mock );
+
+ ScmProvider scmProviderMock = mock( ScmProvider.class );
+ when( scmProviderMock.checkOut( isA( ScmRepository.class ),
+ argThat( new IsScmFileSetEquals( new ScmFileSet( checkoutDirectory ) ) ),
+ isA( ScmTag.class ),
+ isA( CommandParameters.class )) )
+ .thenReturn( new CheckOutScmResult( "...", Collections.<ScmFile>emptyList() ) );
+
+ ScmManagerStub stub = (ScmManagerStub) lookup( ScmManager.ROLE );
+ stub.setScmProvider( scmProviderMock );
+
+ releaseDescriptor.setUseReleaseProfile( false );
+
+ // execute
+ phase.execute( releaseDescriptor, releaseEnvironment, createReactorProjects() );
+
+ // verify
+ verify( mock ).executeGoals( eq( checkoutDirectory ),
+ eq( "goal1 goal2" ),
+ isA( ReleaseEnvironment.class ),
+ eq( true ),
+ eq( "-f pom.xml" ),
+ isNull( String.class ),
+ isA( ReleaseResult.class ) );
+ verify( scmProviderMock ).checkOut( isA( ScmRepository.class ),
+ argThat( new IsScmFileSetEquals( new ScmFileSet( checkoutDirectory ) ) ),
+ isA( ScmTag.class ),
+ isA( CommandParameters.class ));
+ verifyNoMoreInteractions( mock, scmProviderMock );
+ }
+
+ public void testReleasePerformWithArguments()
+ throws Exception
+ {
+ // prepare
+ ReleaseDescriptor releaseDescriptor = new ReleaseDescriptor();
+ releaseDescriptor.setScmSourceUrl( "scm-url" );
+ releaseDescriptor.setAdditionalArguments( "-Dmaven.test.skip=true" );
+ releaseDescriptor.setPerformGoals( "goal1 goal2" );
+ File checkoutDirectory = getTestFile( "target/checkout-directory" );
+ releaseDescriptor.setCheckoutDirectory( checkoutDirectory.getAbsolutePath() );
+
+ MavenExecutor mock = mock( MavenExecutor.class );
+ mavenExecutorWrapper.setMavenExecutor( mock );
+
+ ScmProvider scmProviderMock = mock( ScmProvider.class );
+ when( scmProviderMock.checkOut( isA( ScmRepository.class ),
+ argThat( new IsScmFileSetEquals( new ScmFileSet( checkoutDirectory ) ) ),
+ isA( ScmTag.class ),
+ isA( CommandParameters.class )) )
+ .thenReturn( new CheckOutScmResult( "...", Collections.<ScmFile>emptyList() ) );
+
+ ScmManagerStub stub = (ScmManagerStub) lookup( ScmManager.ROLE );
+ stub.setScmProvider( scmProviderMock );
+
+ // execute
+ phase.execute( releaseDescriptor, releaseEnvironment, createReactorProjects() );
+
+ // verify
+ verify( mock ).executeGoals( eq( checkoutDirectory ),
+ eq( "goal1 goal2" ),
+ isA( ReleaseEnvironment.class),
+ eq( true),
+ eq( "-Dmaven.test.skip=true -DperformRelease=true -f pom.xml" ),
+ isNull( String.class ),
+ isA( ReleaseResult.class ) );
+ verify( scmProviderMock ).checkOut( isA( ScmRepository.class ),
+ argThat( new IsScmFileSetEquals( new ScmFileSet( checkoutDirectory ) ) ),
+ isA( ScmTag.class ),
+ isA( CommandParameters.class ));
+ verifyNoMoreInteractions( mock, scmProviderMock );
+ }
+
+ public void testReleasePerformWithReleasePropertiesCompleted()
+ throws Exception
+ {
+ // prepare
+ ReleaseDescriptor releaseDescriptor = new ReleaseDescriptor();
+ releaseDescriptor.setScmSourceUrl( "scm-url" );
+ releaseDescriptor.setPerformGoals( "goal1 goal2" );
+ File checkoutDirectory = getTestFile( "target/checkout-directory" );
+ releaseDescriptor.setCheckoutDirectory( checkoutDirectory.getAbsolutePath() );
+
+ MavenExecutor mock = mock( MavenExecutor.class );
+ mavenExecutorWrapper.setMavenExecutor( mock );
+
+ ScmProvider scmProviderMock = mock( ScmProvider.class );
+ when( scmProviderMock.checkOut( isA( ScmRepository.class ),
+ argThat( new IsScmFileSetEquals( new ScmFileSet( checkoutDirectory ) ) ),
+ isA( ScmTag.class ),
+ isA( CommandParameters.class )) )
+ .thenReturn( new CheckOutScmResult( "...", Collections.<ScmFile>emptyList() ) );
+
+ ScmManagerStub stub = (ScmManagerStub) lookup( ScmManager.ROLE );
+ stub.setScmProvider( scmProviderMock );
+
+ releaseDescriptor.setCompletedPhase( "end-release" );
+
+ // execute
+ phase.execute( releaseDescriptor, releaseEnvironment, createReactorProjects() );
+
+ // verify
+ verify( mock ).executeGoals( eq( checkoutDirectory ),
+ eq( "goal1 goal2" ),
+ isA( ReleaseEnvironment.class ),
+ eq( true ),
+ eq( "-DperformRelease=true -f pom.xml" ),
+ isNull( String.class ),
+ isA( ReleaseResult.class ) );
+ verify( scmProviderMock ).checkOut( isA( ScmRepository.class ),
+ argThat( new IsScmFileSetEquals( new ScmFileSet( checkoutDirectory ) ) ),
+ isA( ScmTag.class ),
+ isA( CommandParameters.class ));
+ verifyNoMoreInteractions( mock, scmProviderMock );
+ }
+
+ private static List<MavenProject> createReactorProjects()
+ {
+ MavenProject project = new MavenProject();
+ project.setFile( getTestFile( "target/dummy-project/pom.xml" ) );
+ return Collections.singletonList( project );
+ }
}
diff --git a/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/RunPrepareGoalsPhaseTest.java b/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/RunPrepareGoalsPhaseTest.java
index e45e4a6..9b0217d 100644
--- a/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/RunPrepareGoalsPhaseTest.java
+++ b/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/RunPrepareGoalsPhaseTest.java
@@ -33,7 +33,6 @@
import java.util.List;
import org.apache.maven.project.MavenProject;
-import org.apache.maven.settings.Settings;
import org.apache.maven.shared.release.PlexusJUnit4TestCase;
import org.apache.maven.shared.release.ReleaseExecutionException;
import org.apache.maven.shared.release.ReleaseFailureException;
@@ -43,6 +42,7 @@
import org.apache.maven.shared.release.env.ReleaseEnvironment;
import org.apache.maven.shared.release.exec.MavenExecutor;
import org.apache.maven.shared.release.exec.MavenExecutorException;
+import org.apache.maven.shared.release.stubs.MavenExecutorWrapper;
import org.junit.Test;
/**
@@ -55,12 +55,21 @@
{
private RunPrepareGoalsPhase phase;
+ private MavenExecutorWrapper mavenExecutorWrapper;
+
+ private ReleaseEnvironment releaseEnvironment;
+
public void setUp()
throws Exception
{
super.setUp();
phase = (RunPrepareGoalsPhase) lookup( ReleasePhase.ROLE, "run-preparation-goals" );
+
+ mavenExecutorWrapper = (MavenExecutorWrapper) lookup( "org.apache.maven.shared.release.exec.MavenExecutor", "wrapper" );
+
+ releaseEnvironment = new DefaultReleaseEnvironment();
+ releaseEnvironment.setMavenExecutorId( "wrapper" );
}
@Test
@@ -76,10 +85,10 @@
MavenExecutor mock = mock( MavenExecutor.class );
- phase.setMavenExecutor( ReleaseEnvironment.DEFAULT_MAVEN_EXECUTOR_ID, mock );
+ mavenExecutorWrapper.setMavenExecutor( mock );
// execute
- phase.execute( config, (Settings) null, (List<MavenProject>) null );
+ phase.execute( config, releaseEnvironment, (List<MavenProject>) null );
// verify
verify( mock ).executeGoals( eq( testFile ), eq( "clean integration-test" ), isA( ReleaseEnvironment.class ),
@@ -101,10 +110,10 @@
MavenExecutor mock = mock( MavenExecutor.class );
- phase.setMavenExecutor( ReleaseEnvironment.DEFAULT_MAVEN_EXECUTOR_ID, (MavenExecutor) mock );
+ mavenExecutorWrapper.setMavenExecutor( mock );
// execute
- phase.simulate( config, new DefaultReleaseEnvironment(), null );
+ phase.simulate( config, releaseEnvironment, null );
// verify
verify( mock ).executeGoals( eq( testFile ), eq( "clean integration-test" ), isA( ReleaseEnvironment.class ),
@@ -134,12 +143,12 @@
isNull( String.class ),
isA( ReleaseResult.class ) );
- phase.setMavenExecutor( ReleaseEnvironment.DEFAULT_MAVEN_EXECUTOR_ID, mock );
+ mavenExecutorWrapper.setMavenExecutor( mock );
// execute
try
{
- phase.execute( config, (Settings) null, (List<MavenProject>) null );
+ phase.execute( config, releaseEnvironment, (List<MavenProject>) null );
fail( "Should have thrown an exception" );
}
@@ -176,12 +185,12 @@
isNull( String.class ),
isA( ReleaseResult.class ) );
- phase.setMavenExecutor( ReleaseEnvironment.DEFAULT_MAVEN_EXECUTOR_ID, mock );
+ mavenExecutorWrapper.setMavenExecutor( mock );
// execute
try
{
- phase.simulate( config, new DefaultReleaseEnvironment(), null );
+ phase.simulate( config, releaseEnvironment, null );
fail( "Should have thrown an exception" );
}
@@ -211,10 +220,10 @@
MavenExecutor mock = mock( MavenExecutor.class );
- phase.setMavenExecutor( ReleaseEnvironment.DEFAULT_MAVEN_EXECUTOR_ID, mock );
+ mavenExecutorWrapper.setMavenExecutor( mock );
// execute
- phase.execute( config, (Settings) null, (List<MavenProject>) null );
+ phase.execute( config, releaseEnvironment, (List<MavenProject>) null );
// verify
// no invocations of mock
diff --git a/maven-release-manager/src/test/java/org/apache/maven/shared/release/stubs/MavenExecutorWrapper.java b/maven-release-manager/src/test/java/org/apache/maven/shared/release/stubs/MavenExecutorWrapper.java
new file mode 100644
index 0000000..ede8f39
--- /dev/null
+++ b/maven-release-manager/src/test/java/org/apache/maven/shared/release/stubs/MavenExecutorWrapper.java
@@ -0,0 +1,71 @@
+package org.apache.maven.shared.release.stubs;
+
+/*
+ * 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.
+ */
+
+import java.io.File;
+
+import org.apache.maven.shared.release.ReleaseResult;
+import org.apache.maven.shared.release.env.ReleaseEnvironment;
+import org.apache.maven.shared.release.exec.MavenExecutor;
+import org.apache.maven.shared.release.exec.MavenExecutorException;
+
+public class MavenExecutorWrapper implements MavenExecutor
+{
+ private MavenExecutor executor;
+
+ public void setMavenExecutor( MavenExecutor executor )
+ {
+ this.executor = executor;
+ }
+
+ @Override
+ public void executeGoals( File workingDirectory, String goals, ReleaseEnvironment releaseEnvironment,
+ boolean interactive, String additionalArguments, String pomFileName,
+ ReleaseResult result )
+ throws MavenExecutorException
+ {
+ executor.executeGoals( workingDirectory, goals, releaseEnvironment, interactive, additionalArguments,
+ pomFileName, result );
+ }
+
+ @Override
+ public void executeGoals( File workingDirectory, String goals, ReleaseEnvironment releaseEnvironment,
+ boolean interactive, String additionalArguments, ReleaseResult result )
+ throws MavenExecutorException
+ {
+ executor.executeGoals( workingDirectory, goals, releaseEnvironment, interactive, additionalArguments, result );
+ }
+
+ @Override
+ public void executeGoals( File workingDirectory, String goals, boolean interactive, String additionalArguments,
+ String pomFileName, ReleaseResult result )
+ throws MavenExecutorException
+ {
+ executor.executeGoals( workingDirectory, goals, interactive, additionalArguments, pomFileName, result );
+ }
+
+ @Override
+ public void executeGoals( File workingDirectory, String goals, boolean interactive, String additionalArguments,
+ ReleaseResult result )
+ throws MavenExecutorException
+ {
+ executor.executeGoals( workingDirectory, goals, interactive, additionalArguments, result );
+ }
+}
diff --git a/maven-release-manager/src/test/resources/org/apache/maven/shared/release/phase/RunCompleteGoalsPhaseTest.xml b/maven-release-manager/src/test/resources/org/apache/maven/shared/release/phase/RunCompleteGoalsPhaseTest.xml
index 343cd9b..82a83f7 100644
--- a/maven-release-manager/src/test/resources/org/apache/maven/shared/release/phase/RunCompleteGoalsPhaseTest.xml
+++ b/maven-release-manager/src/test/resources/org/apache/maven/shared/release/phase/RunCompleteGoalsPhaseTest.xml
@@ -28,5 +28,10 @@
<threshold>ERROR</threshold>
</configuration>
</component>
+ <component>
+ <role>org.apache.maven.shared.release.exec.MavenExecutor</role>
+ <role-hint>wrapper</role-hint>
+ <implementation>org.apache.maven.shared.release.stubs.MavenExecutorWrapper</implementation>
+ </component>
</components>
</component-set>
diff --git a/maven-release-manager/src/test/resources/org/apache/maven/shared/release/phase/RunPerformGoalsPhaseTest.xml b/maven-release-manager/src/test/resources/org/apache/maven/shared/release/phase/RunPerformGoalsPhaseTest.xml
index 343cd9b..9820d21 100644
--- a/maven-release-manager/src/test/resources/org/apache/maven/shared/release/phase/RunPerformGoalsPhaseTest.xml
+++ b/maven-release-manager/src/test/resources/org/apache/maven/shared/release/phase/RunPerformGoalsPhaseTest.xml
@@ -28,5 +28,10 @@
<threshold>ERROR</threshold>
</configuration>
</component>
+ <component>
+ <role>org.apache.maven.shared.release.exec.MavenExecutor</role>
+ <role-hint>wrapper</role-hint>
+ <implementation>org.apache.maven.shared.release.stubs.MavenExecutorWrapper</implementation>
+ </component>
</components>
</component-set>
diff --git a/maven-release-manager/src/test/resources/org/apache/maven/shared/release/phase/RunPrepareGoalsPhaseTest.xml b/maven-release-manager/src/test/resources/org/apache/maven/shared/release/phase/RunPrepareGoalsPhaseTest.xml
index 343cd9b..9820d21 100644
--- a/maven-release-manager/src/test/resources/org/apache/maven/shared/release/phase/RunPrepareGoalsPhaseTest.xml
+++ b/maven-release-manager/src/test/resources/org/apache/maven/shared/release/phase/RunPrepareGoalsPhaseTest.xml
@@ -28,5 +28,10 @@
<threshold>ERROR</threshold>
</configuration>
</component>
+ <component>
+ <role>org.apache.maven.shared.release.exec.MavenExecutor</role>
+ <role-hint>wrapper</role-hint>
+ <implementation>org.apache.maven.shared.release.stubs.MavenExecutorWrapper</implementation>
+ </component>
</components>
</component-set>