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 );
     }
 }


Reply via email to