You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by br...@apache.org on 2006/05/03 17:49:19 UTC
svn commit: r399339 - in /maven/plugins/trunk/maven-release-plugin/src:
main/java/org/apache/maven/plugins/release/phase/
main/java/org/apache/maven/plugins/release/scm/
main/resources/META-INF/plexus/
test/java/org/apache/maven/plugins/release/phase/
Author: brett
Date: Wed May 3 08:49:15 2006
New Revision: 399339
URL: http://svn.apache.org/viewcvs?rev=399339&view=rev
Log:
[MRELEASE-27] improve URL validation
Modified:
maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/CheckPomPhase.java
maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/scm/ReleaseScmRepositoryException.java
maven/plugins/trunk/maven-release-plugin/src/main/resources/META-INF/plexus/components.xml
maven/plugins/trunk/maven-release-plugin/src/test/java/org/apache/maven/plugins/release/phase/CheckPomPhaseTest.java
Modified: maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/CheckPomPhase.java
URL: http://svn.apache.org/viewcvs/maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/CheckPomPhase.java?rev=399339&r1=399338&r2=399339&view=diff
==============================================================================
--- maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/CheckPomPhase.java (original)
+++ maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/phase/CheckPomPhase.java Wed May 3 08:49:15 2006
@@ -20,7 +20,11 @@
import org.apache.maven.plugins.release.ReleaseExecutionException;
import org.apache.maven.plugins.release.ReleaseFailureException;
import org.apache.maven.plugins.release.config.ReleaseConfiguration;
+import org.apache.maven.plugins.release.scm.ReleaseScmRepositoryException;
+import org.apache.maven.plugins.release.scm.ScmRepositoryConfigurator;
import org.apache.maven.project.MavenProject;
+import org.apache.maven.scm.manager.NoSuchScmProviderException;
+import org.apache.maven.scm.repository.ScmRepositoryException;
import org.codehaus.plexus.util.StringUtils;
import java.util.Iterator;
@@ -34,6 +38,11 @@
public class CheckPomPhase
extends AbstractReleasePhase
{
+ /**
+ * Retrieve an SCM repository, useful for validating an URL.
+ */
+ private ScmRepositoryConfigurator scmRepositoryConfigurator;
+
public void execute( ReleaseConfiguration releaseConfiguration )
throws ReleaseExecutionException, ReleaseFailureException
{
@@ -57,6 +66,20 @@
{
throw new ReleaseFailureException(
"Missing required setting: scm connection or developerConnection must be specified." );
+ }
+
+ try
+ {
+ scmRepositoryConfigurator.getConfiguredRepository( releaseConfiguration );
+ }
+ catch ( ScmRepositoryException e )
+ {
+ throw new ReleaseScmRepositoryException( e.getMessage(), e.getValidationMessages() );
+ }
+ catch ( NoSuchScmProviderException e )
+ {
+ throw new ReleaseFailureException(
+ "The provider given in the SCM URL could not be found: " + e.getMessage() );
}
}
Modified: maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/scm/ReleaseScmRepositoryException.java
URL: http://svn.apache.org/viewcvs/maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/scm/ReleaseScmRepositoryException.java?rev=399339&r1=399338&r2=399339&view=diff
==============================================================================
--- maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/scm/ReleaseScmRepositoryException.java (original)
+++ maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/scm/ReleaseScmRepositoryException.java Wed May 3 08:49:15 2006
@@ -44,8 +44,8 @@
while ( iter.hasNext() )
{
+ buffer.append( "\n - " );
buffer.append( iter.next().toString() );
- buffer.append( "\n" );
}
}
Modified: maven/plugins/trunk/maven-release-plugin/src/main/resources/META-INF/plexus/components.xml
URL: http://svn.apache.org/viewcvs/maven/plugins/trunk/maven-release-plugin/src/main/resources/META-INF/plexus/components.xml?rev=399339&r1=399338&r2=399339&view=diff
==============================================================================
--- maven/plugins/trunk/maven-release-plugin/src/main/resources/META-INF/plexus/components.xml (original)
+++ maven/plugins/trunk/maven-release-plugin/src/main/resources/META-INF/plexus/components.xml Wed May 3 08:49:15 2006
@@ -61,6 +61,11 @@
<role>org.apache.maven.plugins.release.phase.ReleasePhase</role>
<role-hint>check-poms</role-hint>
<implementation>org.apache.maven.plugins.release.phase.CheckPomPhase</implementation>
+ <requirements>
+ <requirement>
+ <role>org.apache.maven.plugins.release.scm.ScmRepositoryConfigurator</role>
+ </requirement>
+ </requirements>
</component>
<component>
<role>org.apache.maven.plugins.release.phase.ReleasePhase</role>
Modified: maven/plugins/trunk/maven-release-plugin/src/test/java/org/apache/maven/plugins/release/phase/CheckPomPhaseTest.java
URL: http://svn.apache.org/viewcvs/maven/plugins/trunk/maven-release-plugin/src/test/java/org/apache/maven/plugins/release/phase/CheckPomPhaseTest.java?rev=399339&r1=399338&r2=399339&view=diff
==============================================================================
--- maven/plugins/trunk/maven-release-plugin/src/test/java/org/apache/maven/plugins/release/phase/CheckPomPhaseTest.java (original)
+++ maven/plugins/trunk/maven-release-plugin/src/test/java/org/apache/maven/plugins/release/phase/CheckPomPhaseTest.java Wed May 3 08:49:15 2006
@@ -20,6 +20,7 @@
import org.apache.maven.model.Scm;
import org.apache.maven.plugins.release.ReleaseFailureException;
import org.apache.maven.plugins.release.config.ReleaseConfiguration;
+import org.apache.maven.plugins.release.scm.ReleaseScmRepositoryException;
import org.apache.maven.project.MavenProject;
import org.codehaus.plexus.PlexusTestCase;
@@ -64,13 +65,13 @@
ReleaseConfiguration releaseConfiguration = new ReleaseConfiguration();
MavenProject project = createProject( "1.0-SNAPSHOT" );
Scm scm = new Scm();
- scm.setConnection( "conn-scm-url" );
+ scm.setConnection( "scm:svn:file://localhost/tmp/repo" );
project.setScm( scm );
releaseConfiguration.setReactorProjects( Collections.singletonList( project ) );
phase.execute( releaseConfiguration );
- assertEquals( "Check URL", "conn-scm-url", releaseConfiguration.getUrl() );
+ assertEquals( "Check URL", "scm:svn:file://localhost/tmp/repo", releaseConfiguration.getUrl() );
}
public void testGetUrlFromProjectConnectionSimulate()
@@ -79,13 +80,13 @@
ReleaseConfiguration releaseConfiguration = new ReleaseConfiguration();
MavenProject project = createProject( "1.0-SNAPSHOT" );
Scm scm = new Scm();
- scm.setConnection( "conn-scm-url" );
+ scm.setConnection( "scm:svn:file://localhost/tmp/repo" );
project.setScm( scm );
releaseConfiguration.setReactorProjects( Collections.singletonList( project ) );
phase.simulate( releaseConfiguration );
- assertEquals( "Check URL", "conn-scm-url", releaseConfiguration.getUrl() );
+ assertEquals( "Check URL", "scm:svn:file://localhost/tmp/repo", releaseConfiguration.getUrl() );
}
public void testGetUrlFromProjectDevConnection()
@@ -94,14 +95,14 @@
ReleaseConfiguration releaseConfiguration = new ReleaseConfiguration();
MavenProject project = createProject( "1.0-SNAPSHOT" );
Scm scm = new Scm();
- scm.setConnection( "conn-scm-url" );
- scm.setDeveloperConnection( "dev-conn-scm-url" );
+ scm.setConnection( "scm:svn:file://localhost/tmp/repo" );
+ scm.setDeveloperConnection( "scm:svn:https://localhost/tmp/repo" );
project.setScm( scm );
releaseConfiguration.setReactorProjects( Collections.singletonList( project ) );
phase.execute( releaseConfiguration );
- assertEquals( "Check URL", "dev-conn-scm-url", releaseConfiguration.getUrl() );
+ assertEquals( "Check URL", "scm:svn:https://localhost/tmp/repo", releaseConfiguration.getUrl() );
}
public void testGetUrlFromProjectDevConnectionSimulate()
@@ -110,14 +111,58 @@
ReleaseConfiguration releaseConfiguration = new ReleaseConfiguration();
MavenProject project = createProject( "1.0-SNAPSHOT" );
Scm scm = new Scm();
- scm.setConnection( "conn-scm-url" );
- scm.setDeveloperConnection( "dev-conn-scm-url" );
+ scm.setConnection( "scm:svn:file://localhost/tmp/repo" );
+ scm.setDeveloperConnection( "scm:svn:https://localhost/tmp/repo" );
project.setScm( scm );
releaseConfiguration.setReactorProjects( Collections.singletonList( project ) );
phase.simulate( releaseConfiguration );
- assertEquals( "Check URL", "dev-conn-scm-url", releaseConfiguration.getUrl() );
+ assertEquals( "Check URL", "scm:svn:https://localhost/tmp/repo", releaseConfiguration.getUrl() );
+ }
+
+ public void testGetInvalidUrl()
+ throws Exception
+ {
+ ReleaseConfiguration releaseConfiguration = new ReleaseConfiguration();
+ MavenProject project = createProject( "1.0-SNAPSHOT" );
+ Scm scm = new Scm();
+ scm.setConnection( "scm:cvs:" );
+ project.setScm( scm );
+ releaseConfiguration.setReactorProjects( Collections.singletonList( project ) );
+
+ try
+ {
+ phase.execute( releaseConfiguration );
+
+ fail( "Should have thrown an exception" );
+ }
+ catch ( ReleaseScmRepositoryException e )
+ {
+ assertTrue( true );
+ }
+ }
+
+ public void testGetInvalidProvider()
+ throws Exception
+ {
+ ReleaseConfiguration releaseConfiguration = new ReleaseConfiguration();
+ MavenProject project = createProject( "1.0-SNAPSHOT" );
+ Scm scm = new Scm();
+ scm.setConnection( "scm:foo:" );
+ project.setScm( scm );
+ releaseConfiguration.setReactorProjects( Collections.singletonList( project ) );
+
+ try
+ {
+ phase.execute( releaseConfiguration );
+
+ fail( "Should have thrown an exception" );
+ }
+ catch ( ReleaseFailureException e )
+ {
+ assertTrue( true );
+ }
}
public void testMissingUrl()