You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm-commits@maven.apache.org by ev...@apache.org on 2004/03/19 13:26:59 UTC

cvs commit: maven-scm/scm-api/src/java/org/apache/maven/scm/manager DefaultScmManager.java

evenisse    2004/03/19 04:26:59

  Modified:    scm-api/src/java/org/apache/maven/scm/manager
                        DefaultScmManager.java
  Log:
  Fix factories loading.
  
  Revision  Changes    Path
  1.3       +11 -2     maven-scm/scm-api/src/java/org/apache/maven/scm/manager/DefaultScmManager.java
  
  Index: DefaultScmManager.java
  ===================================================================
  RCS file: /home/cvs/maven-scm/scm-api/src/java/org/apache/maven/scm/manager/DefaultScmManager.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- DefaultScmManager.java	22 Feb 2004 07:57:12 -0000	1.2
  +++ DefaultScmManager.java	19 Mar 2004 12:26:59 -0000	1.3
  @@ -67,10 +67,12 @@
   import java.io.InputStream;
   import java.net.URL;
   import java.util.Enumeration;
  +import java.util.HashMap;
  +import java.util.Map;
   
   public class DefaultScmManager implements ScmManager
   {
  -    private ScmFactory scmFactory;
  +    private Map scmFactories = new HashMap();
   
       private RepositoryInfo repoInfo;
   
  @@ -160,7 +162,7 @@
   
                   ScmFactory factory = (ScmFactory) classLoader.loadClass( implementation ).newInstance();
   
  -                scmFactory = factory;
  +                scmFactories.put(factory.getSupportedScm(), factory);
               }
           }
           catch ( Exception e )
  @@ -172,6 +174,13 @@
       public Command getCommand( String commandName )
           throws ScmException
       {
  +        ScmFactory scmFactory = (ScmFactory)scmFactories.get( repoInfo.getType() );
  +        if ( scmFactory == null)
  +        {
  +            throw new ScmException("There is no providers corresponding to scm type (" +
  +                repoInfo.getType() + ")");
  +        }
  +        
           return scmFactory.createCommand( repoInfo, commandName );
       }
   }