Author: dennisl Date: Sun Oct 29 12:42:02 2006 New Revision: 468980 URL: http://svn.apache.org/viewvc?view=rev&rev=468980 Log: [SCM-139] Create a utility class for scm url checking/parsing.
o Remove old code and use the new utility class instead. Modified: maven/scm/trunk/maven-scm-api/src/main/java/org/apache/maven/scm/manager/AbstractScmManager.java Modified: maven/scm/trunk/maven-scm-api/src/main/java/org/apache/maven/scm/manager/AbstractScmManager.java URL: http://svn.apache.org/viewvc/maven/scm/trunk/maven-scm-api/src/main/java/org/apache/maven/scm/manager/AbstractScmManager.java?view=diff&rev=468980&r1=468979&r2=468980 ============================================================================== --- maven/scm/trunk/maven-scm-api/src/main/java/org/apache/maven/scm/manager/AbstractScmManager.java (original) +++ maven/scm/trunk/maven-scm-api/src/main/java/org/apache/maven/scm/manager/AbstractScmManager.java Sun Oct 29 12:42:02 2006 @@ -19,6 +19,7 @@ import org.apache.maven.scm.log.ScmLogger; import org.apache.maven.scm.provider.ScmProvider; import org.apache.maven.scm.provider.ScmProviderRepository; +import org.apache.maven.scm.provider.ScmUrlUtils; import org.apache.maven.scm.repository.ScmRepository; import org.apache.maven.scm.repository.ScmRepositoryException; import org.apache.maven.scm.repository.UnknownRepositoryStructure; @@ -39,9 +40,6 @@ public abstract class AbstractScmManager implements ScmManager { - private final static String ILLEGAL_SCM_URL = "The scm url must be on the form " + - "'scm:<scm provider><delimiter><provider specific part>' " + "where <delimiter> can be either ':' or '|'."; - private Map scmProviders = new HashMap(); private ScmLogger logger; @@ -85,9 +83,7 @@ throw new NullPointerException( "The scm url cannot be null." ); } - char delimiter = findDelimiter( scmUrl ); - - String providerType = scmUrl.substring( 4, scmUrl.indexOf( delimiter, 4 ) ); + String providerType = ScmUrlUtils.getProvider( scmUrl ); return getProviderByType( providerType ); } @@ -137,9 +133,9 @@ throw new NullPointerException( "The scm url cannot be null." ); } - char delimiter = findDelimiter( scmUrl ); + char delimiter = ScmUrlUtils.getDelimiter( scmUrl ).charAt( 0 ); - String providerType = scmUrl.substring( 4, scmUrl.indexOf( delimiter, 4 ) ); + String providerType = ScmUrlUtils.getProvider( scmUrl ); ScmProvider provider = getProviderByType( providerType ); @@ -220,39 +216,9 @@ { List messages = new ArrayList(); - if ( scmUrl == null ) - { - throw new NullPointerException( "The scm url cannot be null." ); - } - - if ( !scmUrl.startsWith( "scm:" ) ) - { - messages.add( "The scm url must start with 'scm:'." ); - - return messages; - } - - if ( scmUrl.length() < 6 ) - { - messages.add( ILLEGAL_SCM_URL ); - - return messages; - } + messages.addAll( ScmUrlUtils.validate( scmUrl ) ); - char delimiter; - - try - { - delimiter = findDelimiter( scmUrl ); - } - catch ( ScmRepositoryException e ) - { - messages.add( e.getMessage() ); - - return messages; - } - - String providerType = scmUrl.substring( 4, scmUrl.indexOf( delimiter, 4 ) ); + String providerType = ScmUrlUtils.getProvider( scmUrl ); ScmProvider provider; @@ -269,7 +235,7 @@ String scmSpecificUrl = cleanScmUrl( scmUrl.substring( providerType.length() + 5 ) ); - List providerMessages = provider.validateScmUrl( scmSpecificUrl, delimiter ); + List providerMessages = provider.validateScmUrl( scmSpecificUrl, ScmUrlUtils.getDelimiter( scmUrl ).charAt( 0 ) ); if ( providerMessages == null ) { @@ -279,29 +245,5 @@ messages.addAll( providerMessages ); return messages; - } - - // ---------------------------------------------------------------------- - // - // ---------------------------------------------------------------------- - - private char findDelimiter( String scmUrl ) - throws ScmRepositoryException - { - scmUrl = scmUrl.substring( 4 ); - - int index = scmUrl.indexOf( '|' ); - - if ( index == -1 ) - { - index = scmUrl.indexOf( ':' ); - - if ( index == -1 ) - { - throw new ScmRepositoryException( ILLEGAL_SCM_URL ); - } - } - - return scmUrl.charAt( index ); } }