You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by ev...@apache.org on 2007/05/18 19:49:46 UTC
svn commit: r539536 - in /maven/release/trunk/maven-release-manager/src:
main/java/org/apache/maven/shared/release/phase/RestoreBackupPomsPhase.java
test/java/org/apache/maven/shared/release/phase/RestoreBackupPomsPhaseTest.java
Author: evenisse
Date: Fri May 18 10:49:44 2007
New Revision: 539536
URL: http://svn.apache.org/viewvc?view=rev&rev=539536
Log:
[MRELEASE-227] Edit the pom before to restore it if the scm provider need it
Modified:
maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/RestoreBackupPomsPhase.java
maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/RestoreBackupPomsPhaseTest.java
Modified: maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/RestoreBackupPomsPhase.java
URL: http://svn.apache.org/viewvc/maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/RestoreBackupPomsPhase.java?view=diff&rev=539536&r1=539535&r2=539536
==============================================================================
--- maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/RestoreBackupPomsPhase.java (original)
+++ maven/release/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/RestoreBackupPomsPhase.java Fri May 18 10:49:44 2007
@@ -20,11 +20,21 @@
*/
import org.apache.maven.project.MavenProject;
+import org.apache.maven.scm.ScmException;
+import org.apache.maven.scm.ScmFileSet;
+import org.apache.maven.scm.command.edit.EditScmResult;
+import org.apache.maven.scm.manager.NoSuchScmProviderException;
+import org.apache.maven.scm.provider.ScmProvider;
+import org.apache.maven.scm.repository.ScmRepository;
+import org.apache.maven.scm.repository.ScmRepositoryException;
import org.apache.maven.settings.Settings;
import org.apache.maven.shared.release.ReleaseExecutionException;
import org.apache.maven.shared.release.ReleaseFailureException;
import org.apache.maven.shared.release.ReleaseResult;
import org.apache.maven.shared.release.config.ReleaseDescriptor;
+import org.apache.maven.shared.release.scm.ReleaseScmCommandException;
+import org.apache.maven.shared.release.scm.ReleaseScmRepositoryException;
+import org.apache.maven.shared.release.scm.ScmRepositoryConfigurator;
import org.codehaus.plexus.util.FileUtils;
import java.io.File;
@@ -39,6 +49,13 @@
public class RestoreBackupPomsPhase
extends AbstractBackupPomsPhase
{
+ /**
+ * Tool that gets a configured SCM repository from release configuration.
+ *
+ * @plexus.requirement
+ */
+ private ScmRepositoryConfigurator scmRepositoryConfigurator;
+
public ReleaseResult execute( ReleaseDescriptor releaseDescriptor, Settings settings, List reactorProjects )
throws ReleaseExecutionException, ReleaseFailureException
{
@@ -48,7 +65,7 @@
{
MavenProject project = (MavenProject) projects.next();
- restorePomBackup( project );
+ restorePomBackup( releaseDescriptor, settings, project );
}
result.setResultCode( ReleaseResult.SUCCESS );
@@ -62,8 +79,8 @@
return execute( releaseDescriptor, settings, reactorProjects );
}
- protected void restorePomBackup( MavenProject project )
- throws ReleaseExecutionException
+ protected void restorePomBackup( ReleaseDescriptor releaseDescriptor, Settings settings, MavenProject project )
+ throws ReleaseExecutionException, ReleaseFailureException
{
File pomBackup = getPomBackup( project );
@@ -71,6 +88,41 @@
{
throw new ReleaseExecutionException(
"Cannot restore from a missing backup POM: " + pomBackup.getAbsolutePath() );
+ }
+
+ try
+ {
+ ScmRepository scmRepository;
+ ScmProvider provider;
+ try
+ {
+ scmRepository = scmRepositoryConfigurator.getConfiguredRepository( releaseDescriptor, settings );
+
+ provider = scmRepositoryConfigurator.getRepositoryProvider( scmRepository );
+ }
+ catch ( ScmRepositoryException e )
+ {
+ throw new ReleaseScmRepositoryException( e.getMessage(), e.getValidationMessages() );
+ }
+ catch ( NoSuchScmProviderException e )
+ {
+ throw new ReleaseExecutionException( "Unable to configure SCM repository: " + e.getMessage(), e );
+ }
+
+ if ( releaseDescriptor.isScmUseEditMode() || provider.requiresEditMode() )
+ {
+ EditScmResult result = provider.edit( scmRepository, new ScmFileSet(
+ new File( releaseDescriptor.getWorkingDirectory() ), project.getFile() ) );
+
+ if ( !result.isSuccess() )
+ {
+ throw new ReleaseScmCommandException( "Unable to enable editing on the POM", result );
+ }
+ }
+ }
+ catch ( ScmException e )
+ {
+ throw new ReleaseExecutionException( "An error occurred enabling edit mode: " + e.getMessage(), e );
}
try
Modified: maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/RestoreBackupPomsPhaseTest.java
URL: http://svn.apache.org/viewvc/maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/RestoreBackupPomsPhaseTest.java?view=diff&rev=539536&r1=539535&r2=539536
==============================================================================
--- maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/RestoreBackupPomsPhaseTest.java (original)
+++ maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/RestoreBackupPomsPhaseTest.java Fri May 18 10:49:44 2007
@@ -20,11 +20,12 @@
*/
import org.apache.maven.project.MavenProject;
+import org.apache.maven.shared.release.config.ReleaseDescriptor;
import org.codehaus.plexus.util.FileUtils;
-import java.util.List;
-import java.util.Iterator;
import java.io.File;
+import java.util.Iterator;
+import java.util.List;
/**
* @author Edwin Punzalan
@@ -75,7 +76,9 @@
{
List projects = getReactorProjects( getTestPath( path ) );
- phase.execute( null, null, projects );
+ ReleaseDescriptor desc = new ReleaseDescriptor();
+ desc.setScmSourceUrl( "scm:svn:http://myhost/myrepo" );
+ phase.execute( desc, null, projects );
testProjectIsRestored( projects );
}
@@ -83,7 +86,7 @@
private void testProjectIsRestored( List reactorProjects )
throws Exception
{
- for( Iterator projects = reactorProjects.iterator(); projects.hasNext(); )
+ for ( Iterator projects = reactorProjects.iterator(); projects.hasNext(); )
{
MavenProject project = (MavenProject) projects.next();