You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by ep...@apache.org on 2006/10/30 06:34:40 UTC
svn commit: r469074 - in /maven/shared/trunk/maven-release-manager: ./
src/main/java/org/apache/maven/shared/release/phase/
src/main/resources/META-INF/plexus/
src/test/java/org/apache/maven/shared/release/phase/
Author: epunzalan
Date: Sun Oct 29 21:34:39 2006
New Revision: 469074
URL: http://svn.apache.org/viewvc?view=rev&rev=469074
Log:
PR: MRELEASE-110
Submitted by: Richard van der Hoff
Applied with some changes
Modified:
maven/shared/trunk/maven-release-manager/pom.xml
maven/shared/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/InputVariablesPhase.java
maven/shared/trunk/maven-release-manager/src/main/resources/META-INF/plexus/components.xml
maven/shared/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/InputVariablesPhaseTest.java
maven/shared/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/RewritePomsForReleasePhaseTest.java
Modified: maven/shared/trunk/maven-release-manager/pom.xml
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-release-manager/pom.xml?view=diff&rev=469074&r1=469073&r2=469074
==============================================================================
--- maven/shared/trunk/maven-release-manager/pom.xml (original)
+++ maven/shared/trunk/maven-release-manager/pom.xml Sun Oct 29 21:34:39 2006
@@ -78,7 +78,7 @@
<dependency>
<groupId>org.apache.maven.scm</groupId>
<artifactId>maven-scm-api</artifactId>
- <version>1.0-beta-3</version>
+ <version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.apache.maven.scm</groupId>
@@ -88,32 +88,32 @@
<dependency>
<groupId>org.apache.maven.scm</groupId>
<artifactId>maven-scm-provider-bazaar</artifactId>
- <version>1.0-beta-3</version>
+ <version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.apache.maven.scm</groupId>
<artifactId>maven-scm-provider-clearcase</artifactId>
- <version>1.0-beta-3</version>
+ <version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.apache.maven.scm</groupId>
<artifactId>maven-scm-provider-cvsexe</artifactId>
- <version>1.0-beta-3</version>
+ <version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.apache.maven.scm</groupId>
<artifactId>maven-scm-provider-perforce</artifactId>
- <version>1.0-beta-3</version>
+ <version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.apache.maven.scm</groupId>
<artifactId>maven-scm-provider-starteam</artifactId>
- <version>1.0-beta-3</version>
+ <version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.apache.maven.scm</groupId>
<artifactId>maven-scm-provider-svnexe</artifactId>
- <version>1.0-beta-3</version>
+ <version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
Modified: maven/shared/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/InputVariablesPhase.java
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/InputVariablesPhase.java?view=diff&rev=469074&r1=469073&r2=469074
==============================================================================
--- maven/shared/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/InputVariablesPhase.java (original)
+++ maven/shared/trunk/maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/InputVariablesPhase.java Sun Oct 29 21:34:39 2006
@@ -19,9 +19,15 @@
import org.apache.maven.artifact.ArtifactUtils;
import org.apache.maven.shared.release.ReleaseExecutionException;
import org.apache.maven.shared.release.ReleaseResult;
+import org.apache.maven.shared.release.scm.ScmRepositoryConfigurator;
+import org.apache.maven.shared.release.scm.ReleaseScmRepositoryException;
import org.apache.maven.shared.release.config.ReleaseDescriptor;
import org.apache.maven.project.MavenProject;
import org.apache.maven.settings.Settings;
+import org.apache.maven.scm.provider.ScmProvider;
+import org.apache.maven.scm.repository.ScmRepositoryException;
+import org.apache.maven.scm.repository.ScmRepository;
+import org.apache.maven.scm.manager.NoSuchScmProviderException;
import org.codehaus.plexus.components.interactivity.Prompter;
import org.codehaus.plexus.components.interactivity.PrompterException;
@@ -40,11 +46,36 @@
*/
private Prompter prompter;
+ /**
+ * Tool that gets a configured SCM repository from release configuration.
+ */
+ private ScmRepositoryConfigurator scmRepositoryConfigurator;
+
void setPrompter( Prompter prompter )
{
this.prompter = prompter;
}
+ protected ScmProvider getScmProvider( ReleaseDescriptor releaseDescriptor, Settings settings )
+ throws ReleaseScmRepositoryException, ReleaseExecutionException
+ {
+ try
+ {
+ ScmRepository repository = scmRepositoryConfigurator.getConfiguredRepository( releaseDescriptor, settings );
+
+ return scmRepositoryConfigurator.getRepositoryProvider( repository );
+ }
+ catch ( ScmRepositoryException e )
+ {
+ throw new ReleaseScmRepositoryException( e.getMessage() + " for URL: " +
+ releaseDescriptor.getScmSourceUrl(), e.getValidationMessages() );
+ }
+ catch ( NoSuchScmProviderException e )
+ {
+ throw new ReleaseExecutionException( "Unable to configure SCM repository: " + e.getMessage(), e );
+ }
+ }
+
public ReleaseResult execute( ReleaseDescriptor releaseDescriptor, Settings settings, List reactorProjects )
throws ReleaseExecutionException
{
@@ -66,6 +97,20 @@
}
String defaultTag = project.getArtifactId() + "-" + releaseVersion;
+
+ ScmProvider provider = null;
+ try
+ {
+ provider = getScmProvider( releaseDescriptor, settings );
+ }
+ catch ( ReleaseScmRepositoryException e )
+ {
+ throw new ReleaseExecutionException( "No scm provider can be found for url: " +
+ releaseDescriptor.getScmSourceUrl(), e );
+ }
+
+ defaultTag = provider.sanitizeTagName(defaultTag);
+
if ( releaseDescriptor.isInteractive() )
{
try
Modified: maven/shared/trunk/maven-release-manager/src/main/resources/META-INF/plexus/components.xml
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-release-manager/src/main/resources/META-INF/plexus/components.xml?view=diff&rev=469074&r1=469073&r2=469074
==============================================================================
--- maven/shared/trunk/maven-release-manager/src/main/resources/META-INF/plexus/components.xml (original)
+++ maven/shared/trunk/maven-release-manager/src/main/resources/META-INF/plexus/components.xml Sun Oct 29 21:34:39 2006
@@ -83,6 +83,9 @@
<requirement>
<role>org.codehaus.plexus.components.interactivity.Prompter</role>
</requirement>
+ <requirement>
+ <role>org.apache.maven.shared.release.scm.ScmRepositoryConfigurator</role>
+ </requirement>
</requirements>
</component>
<component>
Modified: maven/shared/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/InputVariablesPhaseTest.java
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/InputVariablesPhaseTest.java?view=diff&rev=469074&r1=469073&r2=469074
==============================================================================
--- maven/shared/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/InputVariablesPhaseTest.java (original)
+++ maven/shared/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/InputVariablesPhaseTest.java Sun Oct 29 21:34:39 2006
@@ -64,6 +64,7 @@
ReleaseDescriptor releaseDescriptor = new ReleaseDescriptor();
releaseDescriptor.mapReleaseVersion( "groupId:artifactId", "1.0" );
+ releaseDescriptor.setScmSourceUrl( "scm:svn:file://localhost/tmp/scm-repo" );
phase.execute( releaseDescriptor, null, reactorProjects );
@@ -71,6 +72,7 @@
releaseDescriptor = new ReleaseDescriptor();
releaseDescriptor.mapReleaseVersion( "groupId:artifactId", "1.0" );
+ releaseDescriptor.setScmSourceUrl( "scm:svn:file://localhost/tmp/scm-repo" );
mockPrompter.reset();
mockPrompter.expects( new InvokeOnceMatcher() ).method( "prompt" ).with( new IsAnything(),
@@ -126,6 +128,7 @@
ReleaseDescriptor releaseDescriptor = new ReleaseDescriptor();
releaseDescriptor.setInteractive( false );
releaseDescriptor.mapReleaseVersion( "groupId:artifactId", "1.0" );
+ releaseDescriptor.setScmSourceUrl( "scm:svn:file://localhost/tmp/scm-repo" );
phase.execute( releaseDescriptor, null, reactorProjects );
@@ -137,6 +140,7 @@
releaseDescriptor = new ReleaseDescriptor();
releaseDescriptor.setInteractive( false );
releaseDescriptor.mapReleaseVersion( "groupId:artifactId", "1.0" );
+ releaseDescriptor.setScmSourceUrl( "scm:svn:file://localhost/tmp/scm-repo" );
phase.simulate( releaseDescriptor, null, reactorProjects );
@@ -211,6 +215,7 @@
ReleaseDescriptor releaseDescriptor = new ReleaseDescriptor();
releaseDescriptor.mapReleaseVersion( "groupId:artifactId", "1.0" );
+ releaseDescriptor.setScmSourceUrl( "scm:svn:file://localhost/tmp/scm-repo" );
try
{
@@ -225,6 +230,7 @@
releaseDescriptor = new ReleaseDescriptor();
releaseDescriptor.mapReleaseVersion( "groupId:artifactId", "1.0" );
+ releaseDescriptor.setScmSourceUrl( "scm:svn:file://localhost/tmp/scm-repo" );
mockPrompter.reset();
mockPrompter.expects( new InvokeOnceMatcher() ).method( "prompt" ).will(
@@ -240,6 +246,38 @@
{
assertEquals( "check cause", PrompterException.class, e.getCause().getClass() );
}
+ }
+
+ //MRELEASE-110
+ public void testCvsTag()
+ throws Exception
+ {
+ Mock mockPrompter = new Mock( Prompter.class );
+ mockPrompter.expects( new TestFailureMatcher( "prompter should not be called" ) ).method( "prompt" );
+ phase.setPrompter( (Prompter) mockPrompter.proxy() );
+
+ List reactorProjects = Collections.singletonList( createProject( "artifactId", "1.0" ) );
+
+ ReleaseDescriptor releaseConfiguration = new ReleaseDescriptor();
+ releaseConfiguration.setInteractive( false );
+ releaseConfiguration.mapReleaseVersion( "groupId:artifactId", "1.0" );
+ releaseConfiguration.setScmSourceUrl( "scm:cvs:pserver:anoncvs@localhost:/tmp/scm-repo:module" );
+
+ phase.execute( releaseConfiguration, null, reactorProjects );
+
+ assertEquals( "Check tag", "artifactId-1_0", releaseConfiguration.getScmReleaseLabel() );
+
+ mockPrompter.reset();
+ mockPrompter.expects( new TestFailureMatcher( "prompter should not be called" ) ).method( "prompt" );
+
+ releaseConfiguration = new ReleaseDescriptor();
+ releaseConfiguration.setInteractive( false );
+ releaseConfiguration.mapReleaseVersion( "groupId:artifactId", "1.0" );
+ releaseConfiguration.setScmSourceUrl( "scm:cvs:pserver:anoncvs@localhost:/tmp/scm-repo:module" );
+
+ phase.simulate( releaseConfiguration, null, reactorProjects );
+
+ assertEquals( "Check tag", "artifactId-1_0", releaseConfiguration.getScmReleaseLabel() );
}
private static MavenProject createProject( String artifactId, String version )
Modified: maven/shared/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/RewritePomsForReleasePhaseTest.java
URL: http://svn.apache.org/viewvc/maven/shared/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/RewritePomsForReleasePhaseTest.java?view=diff&rev=469074&r1=469073&r2=469074
==============================================================================
--- maven/shared/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/RewritePomsForReleasePhaseTest.java (original)
+++ maven/shared/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/RewritePomsForReleasePhaseTest.java Sun Oct 29 21:34:39 2006
@@ -16,8 +16,8 @@
* limitations under the License.
*/
-import org.apache.maven.shared.release.config.ReleaseDescriptor;
import org.apache.maven.project.MavenProject;
+import org.apache.maven.shared.release.config.ReleaseDescriptor;
import org.codehaus.plexus.util.FileUtils;
import java.io.File;
@@ -262,7 +262,6 @@
assertTrue( compareFiles( reactorProjects ) );
}
-
protected ReleaseDescriptor createDescriptorFromProjects( List reactorProjects )
{