maven-scm-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From eveni...@apache.org
Subject svn commit: r225265 [2/2] - in /maven/scm/trunk: ./ maven-scm-api/src/main/java/org/apache/maven/scm/ maven-scm-api/src/main/java/org/apache/maven/scm/manager/ maven-scm-api/src/main/java/org/apache/maven/scm/provider/ maven-scm-client/ maven-scm-clien...
Date Tue, 26 Jul 2005 09:18:03 GMT
Modified: maven/scm/trunk/maven-scm-providers/maven-scm-provider-local/src/main/resources/META-INF/plexus/components.xml
URL: http://svn.apache.org/viewcvs/maven/scm/trunk/maven-scm-providers/maven-scm-provider-local/src/main/resources/META-INF/plexus/components.xml?rev=225265&r1=225264&r2=225265&view=diff
==============================================================================
--- maven/scm/trunk/maven-scm-providers/maven-scm-provider-local/src/main/resources/META-INF/plexus/components.xml (original)
+++ maven/scm/trunk/maven-scm-providers/maven-scm-provider-local/src/main/resources/META-INF/plexus/components.xml Tue Jul 26 02:16:45 2005
@@ -1,41 +1,9 @@
 <component-set>
   <components>
-
     <component>
       <role>org.apache.maven.scm.provider.ScmProvider</role>
       <role-hint>local</role-hint>
       <implementation>org.apache.maven.scm.provider.local.LocalScmProvider</implementation>
-      <requirements>
-        <requirement>
-          <ring: minotaur.apache.org 1.6.2 0/1000/N

Author: evenisse
Date: Tue Jul 26 02:16:45 2005
New Revision: 225265

URL: http://svn.apache.org/viewcvs?rev=225265&view=rev
Log:
o [SCM-50]. flesh out the SCM provider interface
All commands are accessible in ScmProvider 

o Remove CommandNameConstants

o Commands are now loaded without Plexus

Removed:
    maven/scm/trunk/maven-scm-api/src/main/java/org/apache/maven/scm/CommandNameConstants.java
Modified:
    maven/scm/trunk/maven-scm-api/src/main/java/org/apache/maven/scm/manager/NoSuchScmProviderException.java
    maven/scm/trunk/maven-scm-api/src/main/java/org/apache/maven/scm/manager/ScmManager.java
    maven/scm/trunk/maven-scm-api/src/main/java/org/apache/maven/scm/provider/AbstractScmProvider.java
    maven/scm/trunk/maven-scm-api/src/main/java/org/apache/maven/scm/provider/ScmProvider.java
    maven/scm/trunk/maven-scm-client/pom.xml
    maven/scm/trunk/maven-scm-client/src/main/java/org/apache/maven/scm/client/cli/MavenScmCli.java
    maven/scm/trunk/maven-sole>org.apache.maven.scm.provider.local.command.LocalCommand</role>
-          <field-name>commands</field-name>
-        </requirement>
-      </requirements>
     </component>
-
-    <component>
-      <role>org.apache.maven.scm.provider.local.command.LocalCommand</role>
-      <role-hint>add</role-hint>
-      <implementation>org.apache.maven.scm.provider.local.command.add.LocalAddCommand</implementation>
-    </component>
-
-    <component>
-      <role>org.apache.maven.scm.provider.local.command.LocalCommand</role>
-      <role-hint>check-in</role-hint>
-      <implementation>org.apache.maven.scm.provider.local.command.checkin.LocalCheckInCommand</implementation>
-    </component>
-
-    <component>
-      <role>org.apache.maven.scm.provider.local.command.LocalCommand</role>
-      <role-hint>check-out</role-hint>
-      <implementation>org.apache.maven.scm.provider.local.command.checkout.LocalCheckOutCommand</implementation>
-    </component>
-
-    <component>
-      <role>org.apache.maven.scm.providercm-managers/maven-scm-manager-plexus/   (props changed)
    maven/scm/trunk/maven-scm-managers/maven-scm-manager-plexus/src/main/java/org/apache/maven/scm/manager/plexus/DefaultScmManager.java
    maven/scm/trunk/maven-scm-managers/maven-scm-manager-plexus/src/main/resources/META-INF/plexus/components.xml
    maven/scm/trunk/maven-scm-plugin/pom.xml
    maven/scm/trunk/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/AbstractScmMojo.java
    maven/scm/trunk/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/CheckinMojo.java
    maven/scm/trunk/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/CheckoutMojo.java
    maven/scm/trunk/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/DiffMojo.java
    maven/scm/trunk/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/StatusMojo.java
    maven/scm/trunk/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/TagMojo.java
    maven/scm/trunk/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/UpdateMojo.java
    .local.command.LocalCommand</role>
-      <role-hint>update</role-hint>
-      <implementation>org.apache.maven.scm.provider.local.command.update.LocalUpdateCommand</implementation>
-    </component>
-
   </components>
 </component-set>

Modified: maven/scm/trunk/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/PerforceScmProvider.java
URL: http://svn.apache.org/viewcvs/maven/scm/trunk/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/PerforceScmProvider.java?rev=225265&r1=225264&r2=225265&view=diff
==============================================================================
--- maven/scm/trunk/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/PerforceScmProvider.java (original)
+++ maven/scm/trunk/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/PerforceScmProvider.java Tue Jul 26 02:16:45 2005
@@ -16,11maven/scm/trunk/maven-scm-providers/maven-scm-provider-clearcase/src/main/java/org/apache/maven/scm/provider/clearcase/ClearCaseScmProvider.java
    maven/scm/trunk/maven-scm-providers/maven-scm-provider-clearcase/src/main/resources/META-INF/plexus/components.xml
    maven/scm/trunk/maven-scm-providers/maven-scm-provider-cvs/src/main/java/org/apache/maven/scm/provider/cvslib/CvsScmProvider.java
    maven/scm/trunk/maven-scm-providers/maven-scm-provider-cvs/src/main/resources/META-INF/plexus/components.xml
    maven/scm/trunk/maven-scm-providers/maven-scm-provider-cvs/src/test/java/org/apache/maven/scm/provider/cvslib/command/changelog/CvsChangeLogCommandTest.java
    maven/scm/trunk/maven-scm-providers/maven-scm-provider-cvs/src/test/java/org/apache/maven/scm/provider/cvslib/command/checkout/CvsCheckoutCommandTest.java
    maven/scm/trunk/maven-scm-providers/maven-scm-provider-cvs/src/test/java/org/apache/maven/scm/provider/cvslib/command/update/CvsUpdateCommandTest.java
    maven/scm/trunk/maven-scm-provider +16,15 @@
  * limitations under the License.
  */
 
-import java.util.Map;
-
+import org.apache.maven.scm.CommandParameters;
+import org.apache.maven.scm.ScmException;
+import org.apache.maven.scm.ScmFileSet;
+import org.apache.maven.scm.command.changelog.ChangeLogScmResult;
 import org.apache.maven.scm.provider.AbstractScmProvider;
 import org.apache.maven.scm.provider.ScmProviderRepository;
+import org.apache.maven.scm.provider.perforce.command.changelog.PerforceChangeLogCommand;
 import org.apache.maven.scm.provider.perforce.repository.PerforceScmProviderRepository;
+import org.apache.maven.scm.repository.ScmRepository;
 import org.apache.maven.scm.repository.ScmRepositoryException;
 
 /**
@@ -30,11 +34,6 @@
 public class PerforceScmProvider
     extends AbstractScmProvider
 {
-    /**
-     * @requirement org.apache.maven.scm.CvsCommand
-     */
-    private Map commands;
-
     // ----------------------------------------------------------------------
     // ScmProvider Implementation
     // ----------s/maven-scm-provider-cvs/src/test/java/org/apache/maven/scm/provider/cvslib/repository/CvsScmProviderRepositoryTest.java
    maven/scm/trunk/maven-scm-providers/maven-scm-provider-local/src/main/java/org/apache/maven/scm/provider/local/LocalScmProvider.java
    maven/scm/trunk/maven-scm-providers/maven-scm-provider-local/src/main/resources/META-INF/plexus/components.xml
    maven/scm/trunk/maven-scm-providers/maven-scm-provider-perforce/src/main/java/org/apache/maven/scm/provider/perforce/PerforceScmProvider.java
    maven/scm/trunk/maven-scm-providers/maven-scm-provider-perforce/src/main/resources/META-INF/plexus/components.xml
    maven/scm/trunk/maven-scm-providers/maven-scm-provider-starteam/src/main/java/org/apache/maven/scm/provider/starteam/StarteamScmProvider.java
    maven/scm/trunk/maven-scm-providers/maven-scm-provider-starteam/src/main/java/org/apache/maven/scm/provider/starteam/command/remove/StarteamRemoveCommand.java
    maven/scm/trunk/maven-scm-providers/maven-scm-provider-starteam/src/main/r------------------------------------------------------------
@@ -70,7 +69,7 @@
 
                     port = Integer.parseInt( tmp );
                 }
-                catch( NumberFormatException ex )
+                catch ( NumberFormatException ex )
                 {
                     throw new ScmRepositoryException( "The port has to be a number." );
                 }
@@ -96,8 +95,8 @@
         {
             if ( host != null )
             {
-                getLogger().warn( "Username as part of path is deprecated, the new format is " +
-                                  "scm:perforce:[username@]host:port:path_to_repository" );
+                getLogger().warn( "Username as part of path is deprecated, the new format is "
+                                  + "scm:perforce:[username@]host:port:path_to_repository" );
             }
 
             user = path.substring( 0, path.indexOf( "@" ) );
@@ -108,17 +107,22 @@
         return new PerforceScmProviderRepository( host, port, path, user, passwoesources/META-INF/plexus/components.xml
    maven/scm/trunk/maven-scm-providers/maven-scm-provider-starteam/src/test/java/org/apache/maven/scm/provider/starteam/command/remove/StarteamRemoveCommandTest.java
    maven/scm/trunk/maven-scm-providers/maven-scm-provider-starteam/src/test/java/org/apache/maven/scm/provider/starteam/command/remove/StarteamRemoveConsumerTest.java
    maven/scm/trunk/maven-scm-providers/maven-scm-provider-svn/src/main/java/org/apache/maven/scm/provider/svn/SvnScmProvider.java
    maven/scm/trunk/maven-scm-providers/maven-scm-provider-svn/src/main/resources/META-INF/plexus/components.xml
    maven/scm/trunk/maven-scm-providers/maven-scm-provider-svn/src/test/java/org/apache/maven/scm/provider/svn/command/checkout/SvnCheckOutCommandTest.java
    maven/scm/trunk/maven-scm-providers/maven-scm-provider-svn/src/test/java/org/apache/maven/scm/provider/svn/command/tag/SvnTagCommandTckTest.java
    maven/scm/trunk/maven-scm-providers/maven-scm-provider-svn/src/test/java/org/apache/maven/scm/prrd );
     }
 
-    // ----------------------------------------------------------------------
-    // AbstractScmProvider Implementation
-    // ----------------------------------------------------------------------
-
-    protected Map getCommands()
+    public String getScmType()
     {
-        return commands;
+        return "perforce";
     }
 
-    public String getScmType()
+    /**
+     * @see org.apache.maven.scm.provider.AbstractScmProvider#changelog(org.apache.maven.scm.repository.ScmRepository, org.apache.maven.scm.ScmFileSet, org.apache.maven.scm.CommandParameters)
+     */
+    public ChangeLogScmResult changelog( ScmRepository repository, ScmFileSet fileSet, CommandParameters parameters )
+        throws ScmException
     {
-        return "perforce";
+        PerforceChangeLogCommand command = new PerforceChangeLogCommand();
+
+        command.setLogger( getLogger() );
+
+        return (ChangeLogScmResult) command.execute( repository.getProviderRepository(), fileSet, parameters );
     }
+
ovider/svn/repository/SvnScmProviderRepositoryTest.java
    maven/scm/trunk/maven-scm-test/pom.xml
    maven/scm/trunk/maven-scm-test/src/main/java/org/apache/maven/scm/ScmTestCase.java
    maven/scm/trunk/maven-scm-test/src/main/java/org/apache/maven/scm/tck/command/checkin/CheckInCommandTckTest.java
    maven/scm/trunk/maven-scm-test/src/main/java/org/apache/maven/scm/tck/command/checkout/CheckOutCommandTckTest.java
    maven/scm/trunk/maven-scm-test/src/main/java/org/apache/maven/scm/tck/command/diff/DiffCommandTckTest.java
    maven/scm/trunk/maven-scm-test/src/main/java/org/apache/maven/scm/tck/command/status/StatusCommandTckTest.java
    maven/scm/trunk/maven-scm-test/src/main/java/org/apache/maven/scm/tck/command/tag/TagCommandTckTest.java
    maven/scm/trunk/maven-scm-test/src/main/java/org/apache/maven/scm/tck/command/update/UpdateCommandTckTest.java
    maven/scm/trunk/pom.xml

Modified: maven/scm/trunk/maven-scm-api/src/main/java/org/apache/maven/scm/manager/NoSuchScmProviderException.java
URL: htt }

Modified: maven/scm/trunk/maven-scm-providers/maven-scm-provider-perforce/src/main/resources/META-INF/plexus/components.xml
URL: http://svn.apache.org/viewcvs/maven/scm/trunk/maven-scm-providers/maven-scm-provider-perforce/src/main/resources/META-INF/plexus/components.xml?rev=225265&r1=225264&r2=225265&view=diff
==============================================================================
--- maven/scm/trunk/maven-scm-providers/maven-scm-provider-perforce/src/main/resources/META-INF/plexus/components.xml (original)
+++ maven/scm/trunk/maven-scm-providers/maven-scm-provider-perforce/src/main/resources/META-INF/plexus/components.xml Tue Jul 26 02:16:45 2005
@@ -1,23 +1,9 @@
 <component-set>
   <components>
-
     <component>
       <role>org.apache.maven.scm.provider.ScmProvider</role>
       <role-hint>perforce</role-hint>
       <implementation>org.apache.maven.scm.provider.perforce.PerforceScmProvider</implementation>
-      <requirements>
-        <requirement>
-          <role>org.apache.maven.scm.prop://svn.apache.org/viewcvs/maven/scm/trunk/maven-scm-api/src/main/java/org/apache/maven/scm/manager/NoSuchScmProviderException.java?rev=225265&r1=225264&r2=225265&view=diff
==============================================================================
--- maven/scm/trunk/maven-scm-api/src/main/java/org/apache/maven/scm/manager/NoSuchScmProviderException.java (original)
+++ maven/scm/trunk/maven-scm-api/src/main/java/org/apache/maven/scm/manager/NoSuchScmProviderException.java Tue Jul 26 02:16:45 2005
@@ -24,7 +24,7 @@
  * @version $Id$
  */
 public class NoSuchScmProviderException
-	extends ScmException
+    extends ScmException
 {
     private String providerName;
 

Modified: maven/scm/trunk/maven-scm-api/src/main/java/org/apache/maven/scm/manager/ScmManager.java
URL: http://svn.apache.org/viewcvs/maven/scm/trunk/maven-scm-api/src/main/java/org/apache/maven/scm/manager/ScmManager.java?rev=225265&r1=225264&r2=225265&view=diff
==============================================================================
--- vider.perforce.command.PerforceCommand</role>
-          <field-name>commands</field-name>
-        </requirement>
-      </requirements>
     </component>
-
-    <component>
-      <role>org.apache.maven.scm.provider.perforce.command.PerforceCommand</role>
-      <role-hint>changelog</role-hint>
-      <implementation>org.apache.maven.scm.provider.perforce.command.changelog.PerforceChangeLogCommand</implementation>
-    </component>
-
   </components>
 </component-set>

Modified: maven/scm/trunk/maven-scm-providers/maven-scm-provider-starteam/src/main/java/org/apache/maven/scm/provider/starteam/StarteamScmProvider.java
URL: http://svn.apache.org/viewcvs/maven/scm/trunk/maven-scm-providers/maven-scm-provider-starteam/src/main/java/org/apache/maven/scm/provider/starteam/StarteamScmProvider.java?rev=225265&r1=225264&r2=225265&view=diff
==============================================================================
--- maven/scm/trunk/maven-scm-providers/maven-scm-provider-starteam/src/main/java/org/apache/maven/maven/scm/trunk/maven-scm-api/src/main/java/org/apache/maven/scm/manager/ScmManager.java (original)
+++ maven/scm/trunk/maven-scm-api/src/main/java/org/apache/maven/scm/manager/ScmManager.java Tue Jul 26 02:16:45 2005
@@ -16,23 +16,12 @@
  * limitations under the License.
  */
 
-import org.apache.maven.scm.ScmException;
-import org.apache.maven.scm.ScmFileSet;
-import org.apache.maven.scm.command.add.AddScmResult;
-import org.apache.maven.scm.command.changelog.ChangeLogScmResult;
-import org.apache.maven.scm.command.checkin.CheckInScmResult;
-import org.apache.maven.scm.command.checkout.CheckOutScmResult;
-import org.apache.maven.scm.command.diff.DiffScmResult;
-import org.apache.maven.scm.command.status.StatusScmResult;
-import org.apache.maven.scm.command.tag.TagScmResult;
-import org.apache.maven.scm.command.update.UpdateScmResult;
-import org.apache.maven.scm.log.ScmLogger;
+import org.apache.maven.scm.provider.ScmProvider;
 import org.apache.maven.scm.repository.ScmRepository;
 import org.apache.maven.sscm/provider/starteam/StarteamScmProvider.java (original)
+++ maven/scm/trunk/maven-scm-providers/maven-scm-provider-starteam/src/main/java/org/apache/maven/scm/provider/starteam/StarteamScmProvider.java Tue Jul 26 02:16:45 2005
@@ -38,6 +38,7 @@
 import org.apache.maven.scm.provider.starteam.command.tag.StarteamTagCommand;
 import org.apache.maven.scm.provider.starteam.command.update.StarteamUpdateCommand;
 import org.apache.maven.scm.provider.starteam.repository.StarteamScmProviderRepository;
+import org.apache.maven.scm.repository.ScmRepository;
 import org.apache.maven.scm.repository.ScmRepositoryException;
 import org.codehaus.plexus.util.StringUtils;
 
@@ -140,75 +141,106 @@
     }
 
     /**
-     * @see org.apache.maven.scm.provider.AbstractScmProvider#add(org.apache.maven.scm.provider.ScmProviderRepository, org.apache.maven.scm.ScmFileSet, org.apache.maven.scm.CommandParameters)
+     * @see org.apache.maven.scm.provider.AbstractScmProvider#add(org.apache.maven.scm.repository.ScmRepository, org.apachcm.repository.ScmRepositoryException;
 import org.apache.maven.scm.repository.UnknownRepositoryStructure;
 
 import java.io.File;
-import java.util.Date;
 import java.util.List;
 
 /**
@@ -50,42 +39,19 @@
     // ----------------------------------------------------------------------
 
     ScmRepository makeScmRepository( String scmUrl )
-    	throws ScmRepositoryException, NoSuchScmProviderException;
+        throws ScmRepositoryException, NoSuchScmProviderException;
 
     ScmRepository makeProviderScmRepository( String providerType, File path )
         throws ScmRepositoryException, UnknownRepositoryStructure, NoSuchScmProviderException;
 
     List validateScmRepository( String scmUrl );
 
-    void addListener( ScmLogger logger )
-        throws NoSuchScmProviderException;
-
-    // ----------------------------------------------------------------------
-    // Scm Commands
-    // ----------------------------------------------------------------------
-
-    // TODO: not honouring includes/excludes, so re.maven.scm.ScmFileSet, org.apache.maven.scm.CommandParameters)
      */
-    public AddScmResult add( ScmProviderRepository repository, ScmFileSet fileSet, CommandParameters parameters )
+    public AddScmResult add( ScmRepository repository, ScmFileSet fileSet, CommandParameters parameters )
         throws ScmException
     {
-        return (AddScmResult) new StarteamAddCommand().execute( repository, fileSet, parameters );
+        StarteamAddCommand command = new StarteamAddCommand();
+
+        command.setLogger( getLogger() );
+
+        return (AddScmResult) command.execute( repository.getProviderRepository(), fileSet, parameters );
     }
 
     /**
-     * @see org.apache.maven.scm.provider.AbstractScmProvider#changelog(org.apache.maven.scm.provider.ScmProviderRepository, org.apache.maven.scm.ScmFileSet, org.apache.maven.scm.CommandParameters)
+     * @see org.apache.maven.scm.provider.AbstractScmProvider#changelog(org.apache.maven.scm.repository.ScmRepository, org.apache.maven.scm.ScmFileSet, org.aeplace fileSet with working directory again
-    CheckOutScmResult checkOut( ScmRepository repository, ScmFileSet fileSet, String tag )
-    	throws ScmException;
-
-    CheckInScmResult checkIn( ScmRepository repository, ScmFileSet fileSet, String tag, String message )
-    	throws ScmException;
+    ScmProvider getProviderByUrl( String scmUrl )
+        throws ScmRepositoryException, NoSuchScmProviderException;
 
-    UpdateScmResult update( ScmRepository repository, ScmFileSet fileSet, String tag )
-        throws ScmException;
-
-    TagScmResult tag( ScmRepository repository, ScmFileSet fileSet, String tag )
-        throws ScmException;
-
-    DiffScmResult diff( ScmRepository repository, ScmFileSet fileSet, String startRevision, String endRevision )
-        throws ScmException;
-
-    ChangeLogScmResult changeLog( ScmRepository repository, ScmFileSet fileSet, Date startDate, Date endDate, int numDays, String branch )
-        throws ScmException;
-
-    AddScmResult add( ScmRepository repository, ScmFpache.maven.scm.CommandParameters)
      */
-    public ChangeLogScmResult changelog( ScmProviderRepository repository, ScmFileSet fileSet, CommandParameters parameters )
+    public ChangeLogScmResult changelog( ScmRepository repository, ScmFileSet fileSet, CommandParameters parameters )
         throws ScmException
     {
-        return (ChangeLogScmResult) new StarteamChangeLogCommand().execute( repository, fileSet, parameters );
+        StarteamChangeLogCommand command = new StarteamChangeLogCommand();
+
+        command.setLogger( getLogger() );
+
+        return (ChangeLogScmResult) command.execute( repository.getProviderRepository(), fileSet, parameters );
     }
 
     /**
-     * @see org.apache.maven.scm.provider.AbstractScmProvider#checkin(org.apache.maven.scm.provider.ScmProviderRepository, org.apache.maven.scm.ScmFileSet, org.apache.maven.scm.CommandParameters)
+     * @see org.apache.maven.scm.provider.AbstractScmProvider#checkin(org.apache.maven.scm.repository.ScmRepository, org.apache.maven.ileSet fileSet )
-        throws ScmException;
+    ScmProvider getProviderByType( String providerType )
+        throws NoSuchScmProviderException;
 
-    StatusScmResult status( ScmRepository repository, ScmFileSet fileSet )
-        throws ScmException;
+    ScmProvider getProviderByRepository( ScmRepository repository )
+        throws NoSuchScmProviderException;
 }

Modified: maven/scm/trunk/maven-scm-api/src/main/java/org/apache/maven/scm/provider/AbstractScmProvider.java
URL: http://svn.apache.org/viewcvs/maven/scm/trunk/maven-scm-api/src/main/java/org/apache/maven/scm/provider/AbstractScmProvider.java?rev=225265&r1=225264&r2=225265&view=diff
==============================================================================
--- maven/scm/trunk/maven-scm-api/src/main/java/org/apache/maven/scm/provider/AbstractScmProvider.java (original)
+++ maven/scm/trunk/maven-scm-api/src/main/java/org/apache/maven/scm/provider/AbstractScmProvider.java Tue Jul 26 02:16:45 2005
@@ -16,72 +16,42 @@
  * limitations under thescm.ScmFileSet, org.apache.maven.scm.CommandParameters)
      */
-    public CheckInScmResult checkin( ScmProviderRepository repository, ScmFileSet fileSet, CommandParameters parameters )
+    public CheckInScmResult checkin( ScmRepository repository, ScmFileSet fileSet, CommandParameters parameters )
         throws ScmException
     {
-        return (CheckInScmResult) new StarteamCheckInCommand().execute( repository, fileSet, parameters );
+        StarteamCheckInCommand command = new StarteamCheckInCommand();
+
+        command.setLogger( getLogger() );
+
+        return (CheckInScmResult) command.execute( repository.getProviderRepository(), fileSet, parameters );
     }
 
     /**
-     * @see org.apache.maven.scm.provider.AbstractScmProvider#checkout(org.apache.maven.scm.provider.ScmProviderRepository, org.apache.maven.scm.ScmFileSet, org.apache.maven.scm.CommandParameters)
+     * @see org.apache.maven.scm.provider.AbstractScmProvider#checkout(org.apache.maven.scm.repository.ScmRepository, org.apache.m License.
  */
 
+import org.apache.maven.scm.CommandParameter;
 import org.apache.maven.scm.CommandParameters;
 import org.apache.maven.scm.NoSuchCommandScmException;
 import org.apache.maven.scm.ScmException;
 import org.apache.maven.scm.ScmFileSet;
-import org.apache.maven.scm.ScmResult;
+import org.apache.maven.scm.command.add.AddScmResult;
+import org.apache.maven.scm.command.changelog.ChangeLogScmResult;
+import org.apache.maven.scm.command.checkin.CheckInScmResult;
+import org.apache.maven.scm.command.checkout.CheckOutScmResult;
+import org.apache.maven.scm.command.diff.DiffScmResult;
+import org.apache.maven.scm.command.remove.RemoveScmResult;
+import org.apache.maven.scm.command.status.StatusScmResult;
+import org.apache.maven.scm.command.tag.TagScmResult;
+import org.apache.maven.scm.command.update.UpdateScmResult;
 import org.apache.maven.scm.log.ScmLogDispatcher;
 import org.apache.maven.scm.log.ScmLogger;
+import org.apache.maven.scm.login.LoginScmResult;
+import org.apache.maven.scm.repository.Saven.scm.ScmFileSet, org.apache.maven.scm.CommandParameters)
      */
-    public CheckOutScmResult checkout( ScmProviderRepository repository, ScmFileSet fileSet, CommandParameters parameters )
+    public CheckOutScmResult checkout( ScmRepository repository, ScmFileSet fileSet, CommandParameters parameters )
         throws ScmException
     {
-        return (CheckOutScmResult) new StarteamCheckOutCommand().execute( repository, fileSet, parameters );
+        StarteamCheckOutCommand command = new StarteamCheckOutCommand();
+
+        command.setLogger( getLogger() );
+
+        return (CheckOutScmResult) command.execute( repository.getProviderRepository(), fileSet, parameters );
     }
 
     /**
-     * @see org.apache.maven.scm.provider.AbstractScmProvider#diff(org.apache.maven.scm.provider.ScmProviderRepository, org.apache.maven.scm.ScmFileSet, org.apache.maven.scm.CommandParameters)
+     * @see org.apache.maven.scm.provider.AbstractScmProvider#diff(org.apache.maven.scm.repository.ScmRepository, org.apcmRepository;
 import org.apache.maven.scm.repository.ScmRepositoryException;
 import org.apache.maven.scm.repository.UnknownRepositoryStructure;
-import org.apache.maven.scm.command.Command;
 
 import java.io.File;
-import java.util.Collections;
-import java.util.Iterator;
-import java.util.Map;
+import java.util.Date;
 import java.util.List;
 import java.util.ArrayList;
 
 /**
  * @author <a href="mailto:trygvis@inamo.no">Trygve Laugst&oslash;l</a>
+ * @author <a href="mailto:evenisse@apache.org">Emmanuel Venisse</a>
  * @version $Id$
  */
 public abstract class AbstractScmProvider
     implements ScmProvider
 {
-    private boolean isInitialized;
-
     private ScmLogDispatcher logDispatcher = new ScmLogDispatcher();
 
-    private Map cmds;
-
-    protected abstract Map getCommands();
-
-    // ----------------------------------------------------------------------
-    // Component Lifecycle
-    // ----------------------------------------------------------------------
-
-    public final void initialize(ache.maven.scm.ScmFileSet, org.apache.maven.scm.CommandParameters)
      */
-    public DiffScmResult diff( ScmProviderRepository repository, ScmFileSet fileSet, CommandParameters parameters )
+    public DiffScmResult diff( ScmRepository repository, ScmFileSet fileSet, CommandParameters parameters )
         throws ScmException
     {
-        return (DiffScmResult) new StarteamDiffCommand().execute( repository, fileSet, parameters );
+        StarteamDiffCommand command = new StarteamDiffCommand();
+
+        command.setLogger( getLogger() );
+
+        return (DiffScmResult) command.execute( repository.getProviderRepository(), fileSet, parameters );
     }
 
     /**
-     * @see org.apache.maven.scm.provider.AbstractScmProvider#status(org.apache.maven.scm.provider.ScmProviderRepository, org.apache.maven.scm.ScmFileSet, org.apache.maven.scm.CommandParameters)
+     * @see org.apache.maven.scm.provider.AbstractScmProvider#status(org.apache.maven.scm.repository.ScmRepository, org.apache.maven.scm.ScmFileSet,)
-    {
-        cmds = getCommands();
-
-        if ( cmds == null )
-        {
-            cmds = Collections.EMPTY_MAP;
-        }
-
-        if ( cmds.size() == 0 )
-        {
-            logDispatcher.warn( "No SCM commands defined for SCM type " + getScmType() );
-        }
-
-        if ( logDispatcher.isDebugEnabled() )
-        {
-            logDispatcher.debug( "Registered " + getScmType() + " SCM:" );
-
-            for ( Iterator it = cmds.keySet().iterator(); it.hasNext(); )
-            {
-                String name = (String) it.next();
-
-                logDispatcher.debug( "  " + name );
-            }
-        }
-
-        isInitialized = true;
-    }
-
     // ----------------------------------------------------------------------
     //
     // ----------------------------------------------------------------------
@@ -106,38 +76,229 @@
     // Scm Implementation
     // ----------------------------------------------------------------------
 
-    public ScmResult execute( String comm org.apache.maven.scm.CommandParameters)
      */
-    public StatusScmResult status( ScmProviderRepository repository, ScmFileSet fileSet, CommandParameters parameters )
+    public StatusScmResult status( ScmRepository repository, ScmFileSet fileSet, CommandParameters parameters )
         throws ScmException
     {
-        return (StatusScmResult) new StarteamStatusCommand().execute( repository, fileSet, parameters );
+        StarteamStatusCommand command = new StarteamStatusCommand();
+
+        command.setLogger( getLogger() );
+
+        return (StatusScmResult) command.execute( repository.getProviderRepository(), fileSet, parameters );
     }
 
     /**
-     * @see org.apache.maven.scm.provider.AbstractScmProvider#tag(org.apache.maven.scm.provider.ScmProviderRepository, org.apache.maven.scm.ScmFileSet, org.apache.maven.scm.CommandParameters)
+     * @see org.apache.maven.scm.provider.AbstractScmProvider#tag(org.apache.maven.scm.repository.ScmRepository, org.apache.maven.scm.ScmFileSet, org.apache.maandName, ScmProviderRepository repository, ScmFileSet fileSet,
-                              CommandParameters parameters )
+    /**
+     * @see org.apache.maven.scm.provider.ScmProvider#add(org.apache.maven.scm.repository.ScmRepository, org.apache.maven.scm.ScmFileSet)
+     */
+    public AddScmResult add( ScmRepository repository, ScmFileSet fileSet )
         throws ScmException
     {
-        Command command = getCommand( commandName );
+        login( repository, fileSet );
 
-        return command.execute( repository, fileSet, parameters );
+        CommandParameters parameters = new CommandParameters();
+
+        // TODO: is message reasonable?
+        parameters.setString( CommandParameter.MESSAGE, "" );
+
+        // TODO: binary may be dependant on particular files though
+        // TODO: set boolean?
+        parameters.setString( CommandParameter.BINARY, "false" );
+
+        return add( repository, fileSet, parameters );
     }
 
-    // ---------------------------------------------------ven.scm.CommandParameters)
      */
-    public TagScmResult tag( ScmProviderRepository repository, ScmFileSet fileSet, CommandParameters parameters )
+    public TagScmResult tag( ScmRepository repository, ScmFileSet fileSet, CommandParameters parameters )
         throws ScmException
     {
-        return (TagScmResult) new StarteamTagCommand().execute( repository, fileSet, parameters );
+        StarteamTagCommand command = new StarteamTagCommand();
+
+        command.setLogger( getLogger() );
+
+        return (TagScmResult) command.execute( repository.getProviderRepository(), fileSet, parameters );
     }
 
     /**
-     * @see org.apache.maven.scm.provider.AbstractScmProvider#update(org.apache.maven.scm.provider.ScmProviderRepository, org.apache.maven.scm.ScmFileSet, org.apache.maven.scm.CommandParameters)
+     * @see org.apache.maven.scm.provider.AbstractScmProvider#update(org.apache.maven.scm.repository.ScmRepository, org.apache.maven.scm.ScmFileSet, org.apache.maven.scm.CommandParameters)
      */-------------------
-    //
-    // ----------------------------------------------------------------------
+    protected AddScmResult add( ScmRepository repository, ScmFileSet fileSet, CommandParameters parameters )
+        throws ScmException
+    {
+        throw new NoSuchCommandScmException( "add" );
+    }
 
-    protected Command getCommand( String name )
+    /**
+     * @see org.apache.maven.scm.provider.ScmProvider#changeLog(org.apache.maven.scm.repository.ScmRepository, org.apache.maven.scm.ScmFileSet, java.util.Date, java.util.Date, int, java.lang.String)
+     */
+    public ChangeLogScmResult changeLog( ScmRepository repository, ScmFileSet fileSet, Date startDate, Date endDate,
+                                         int numDays, String branch )
         throws ScmException
     {
-        if ( !isInitialized )
-        {
-            initialize();
-        }
+        login( repository, fileSet );
+
+        CommandParameters parameters = new CommandParameters();
 
-        Command command = 
-    public UpdateScmResult update( ScmProviderRepository repository, ScmFileSet fileSet, CommandParameters parameters )
+    public UpdateScmResult update( ScmRepository repository, ScmFileSet fileSet, CommandParameters parameters )
         throws ScmException
     {
-        return (UpdateScmResult) new StarteamUpdateCommand().execute( repository, fileSet, parameters );
-    }
+        StarteamUpdateCommand command = new StarteamUpdateCommand();
 
+        command.setLogger( getLogger() );
+
+        return (UpdateScmResult) command.execute( repository.getProviderRepository(), fileSet, parameters );
+    }
 }

Modified: maven/scm/trunk/maven-scm-providers/maven-scm-provider-starteam/src/main/java/org/apache/maven/scm/provider/starteam/command/remove/StarteamRemoveCommand.java
URL: http://svn.apache.org/viewcvs/maven/scm/trunk/maven-scm-providers/maven-scm-provider-starteam/src/main/java/org/apache/maven/scm/provider/starteam/command/remove/StarteamRemoveCommand.java?rev=225265&r1=225264&r2=225265&view=dif(Command) cmds.get( name );
+        parameters.setDate( CommandParameter.START_DATE, startDate );
 
-        if ( command == null )
+        parameters.setDate( CommandParameter.END_DATE, endDate );
+
+        parameters.setString( CommandParameter.BRANCH, branch );
+
+        return changelog( repository, fileSet, parameters );
+    }
+
+    protected ChangeLogScmResult changelog( ScmRepository repository, ScmFileSet fileSet, CommandParameters parameters )
+        throws ScmException
+    {
+        throw new NoSuchCommandScmException( "changelog" );
+    }
+
+    /**
+     * @see org.apache.maven.scm.provider.ScmProvider#checkIn(org.apache.maven.scm.repository.ScmRepository, org.apache.maven.scm.ScmFileSet, java.lang.String, java.lang.String)
+     */
+    public CheckInScmResult checkIn( ScmRepository repository, ScmFileSet fileSet, String tag, String message )
+        throws ScmException
+    {
+        login( repository, fileSet );
+
+        CommandParameters parameters = new CommandParameters();
+
+f
==============================================================================
--- maven/scm/trunk/maven-scm-providers/maven-scm-provider-starteam/src/main/java/org/apache/maven/scm/provider/starteam/command/remove/StarteamRemoveCommand.java (original)
+++ maven/scm/trunk/maven-scm-providers/maven-scm-provider-starteam/src/main/java/org/apache/maven/scm/provider/starteam/command/remove/StarteamRemoveCommand.java Tue Jul 26 02:16:45 2005
@@ -28,7 +28,6 @@
 import org.apache.maven.scm.provider.starteam.command.StarteamCommandLineUtils;
 import org.apache.maven.scm.provider.starteam.command.checkin.StarteamCheckInConsumer;
 import org.apache.maven.scm.provider.starteam.repository.StarteamScmProviderRepository;
-import org.apache.maven.scm.repository.ScmRepository;
 
 import org.codehaus.plexus.util.cli.CommandLineUtils;
 import org.codehaus.plexus.util.cli.Commandline;
@@ -42,7 +41,7 @@
     implements StarteamCommand
 {
     protected ScmResult executeRemoveCommand( ScmProviderRepository repo, ScmFileSet file        parameters.setString( CommandParameter.TAG, tag );
+
+        parameters.setString( CommandParameter.MESSAGE, message );
+
+        return checkin( repository, fileSet, parameters );
+    }
+
+    protected CheckInScmResult checkin( ScmRepository repository, ScmFileSet fileSet, CommandParameters parameters )
+        throws ScmException
+    {
+        throw new NoSuchCommandScmException( "checkin" );
+    }
+
+    /**
+     * @see org.apache.maven.scm.provider.ScmProvider#checkOut(org.apache.maven.scm.repository.ScmRepository, org.apache.maven.scm.ScmFileSet, java.lang.String)
+     */
+    public CheckOutScmResult checkOut( ScmRepository repository, ScmFileSet fileSet, String tag )
+        throws ScmException
+    {
+        login( repository, fileSet );
+
+        CommandParameters parameters = new CommandParameters();
+
+        parameters.setString( CommandParameter.TAG, tag );
+
+        return checkout( repository, fileSet, parameters );
+    }
+
+    protected CheckOutScmResult checkout( ScmRSet, String message )
-       throws ScmException
+        throws ScmException
     {
 
         getLogger().info( "Working directory: " + fileSet.getBasedir().getAbsolutePath() );
@@ -63,23 +62,23 @@
 
             if ( exitCode != 0 )
             {
-            	return new RemoveScmResult( "The starteam command failed.", stderr.getOutput(), false );
+                return new RemoveScmResult( "The starteam command failed.", stderr.getOutput(), false );
             }
         }
         else
         {
-        	//update only interested files already on the local disk
-        	for ( int i = 0; i < checkInFiles.length; ++i )
-        	{
-        		Commandline cl = createCommandLine( repository, checkInFiles[i] );
-
-        		int exitCode = StarteamCommandLineUtils.executeCommandline( cl, consumer, stderr, getLogger() );
-
-        		if ( exitCode != 0 )
-        		{	
-        			return new RemoveScmResult( "The starteam command failed.", stderr.getOutput(), false );
-        		}
-        	}
+            epository repository, ScmFileSet fileSet, CommandParameters parameters )
+        throws ScmException
+    {
+        throw new NoSuchCommandScmException( "checkout" );
+    }
+
+    /**
+     * @see org.apache.maven.scm.provider.ScmProvider#diff(org.apache.maven.scm.repository.ScmRepository, org.apache.maven.scm.ScmFileSet, java.lang.String, java.lang.String)
+     */
+    public DiffScmResult diff( ScmRepository repository, ScmFileSet fileSet, String startRevision, String endRevision )
+        throws ScmException
+    {
+        login( repository, fileSet );
+
+        CommandParameters parameters = new CommandParameters();
+
+        parameters.setString( CommandParameter.START_REVISION, startRevision );
+
+        parameters.setString( CommandParameter.END_REVISION, endRevision );
+
+        return diff( repository, fileSet, parameters );
+    }
+
+    protected DiffScmResult diff( ScmRepository repository, ScmFileSet fileSet, CommandParameters parameters )
+        throws ScmException
+    {
+        throw new NoSuchCommandScmException( "diff" );
+    }
+
+    private void login( ScmRepository repository, ScmFileSet fileSet )
+        throws ScmException
+    {
+        LoginScmResult result = login( repository, fileSet, new CommandParameters() );
+
+        if ( !result.isSuccess() )
         {
-            throw new NoSuchCommandScmException( name );
+            throw new ScmException( "Can't login.\n" + result.getCommandOutput() );
         }
+    }
+
+    protected LoginScmResult login( ScmRepository repository, ScmFileSet fileSet, CommandParameters parameters )
+        throws ScmException
+    {
+        LoginScmResult result = new LoginScmResult( null, null, true );
+
+        return result;
+    }
+
+    /**
+     * @see org.apache.maven.scm.provider.ScmProvider#remove(org.apache.maven.scm.repository.ScmRepository, org.apache.maven.scm.ScmFileSet, java.lang.String)
+     */
+    public RemoveScmResult remove( ScmRepository repository, ScmFileSet fileSet, String message )
+        throws ScmExceptio//update only interested files already on the local disk
+            for ( int i = 0; i < checkInFiles.length; ++i )
+            {
+                Commandline cl = createCommandLine( repository, checkInFiles[i] );
+
+                int exitCode = StarteamCommandLineUtils.executeCommandline( cl, consumer, stderr, getLogger() );
+
+                if ( exitCode != 0 )
+                {
+                    return new RemoveScmResult( "The starteam command failed.", stderr.getOutput(), false );
+                }
+            }
         }
 
         return new RemoveScmResult( consumer.getCheckedInFiles() );
@@ -88,20 +87,20 @@
 
     public static Commandline createCommandLine( StarteamScmProviderRepository repo, File dirOrFile )
     {
-    	Commandline cl = StarteamCommandLineUtils.createStarteamBaseCommandLine( "remove", dirOrFile, repo );
+        Commandline cl = StarteamCommandLineUtils.createStarteamBaseCommandLine( "remove", dirOrFile, repo );
 
-    	if ( dirOrFile.isDirectory() )
-    	{
-    		cn
+    {
+        login( repository, fileSet );
+
+        CommandParameters parameters = new CommandParameters();
+
+        parameters.setString( CommandParameter.MESSAGE, message == null ? "" : message );
+
+        return remove( repository, fileSet, parameters );
+    }
+
+    protected RemoveScmResult remove( ScmRepository repository, ScmFileSet fileSet, CommandParameters parameters )
+        throws ScmException
+    {
+        throw new NoSuchCommandScmException( "remove" );
+    }
+
+    /**
+     * @see org.apache.maven.scm.provider.ScmProvider#status(org.apache.maven.scm.repository.ScmRepository, org.apache.maven.scm.ScmFileSet)
+     */
+    public StatusScmResult status( ScmRepository repository, ScmFileSet fileSet )
+        throws ScmException
+    {
+        login( repository, fileSet );
+
+        CommandParameters parameters = new CommandParameters();
+
+        return status( repository, fileSet, parameters );
+    }
+
+    protected StatusScmResult status( ScmRepository repository, ScmFilel.createArgument().setValue( "-is" );
-    	}
-    	else
-    	{
-    		cl.createArgument().setValue( dirOrFile.getName() );
-    	}
+        if ( dirOrFile.isDirectory() )
+        {
+            cl.createArgument().setValue( "-is" );
+        }
+        else
+        {
+            cl.createArgument().setValue( dirOrFile.getName() );
+        }
 
-    	//remove working file(s)
-		//cl.createArgument().setValue( "-df" );
+        //remove working file(s)
+        //cl.createArgument().setValue( "-df" );
 
-    	return cl;
+        return cl;
     }
 }

Modified: maven/scm/trunk/maven-scm-providers/maven-scm-provider-starteam/src/main/resources/META-INF/plexus/components.xml
URL: http://svn.apache.org/viewcvs/maven/scm/trunk/maven-scm-providers/maven-scm-provider-starteam/src/main/resources/META-INF/plexus/components.xml?rev=225265&r1=225264&r2=225265&view=diff
==============================================================================
--- maven/scm/trunk/maven-scm-providers/maven-scm-provider-starteam/srcSet fileSet, CommandParameters parameters )
+        throws ScmException
+    {
+        throw new NoSuchCommandScmException( "status" );
+    }
+
+    /**
+     * @see org.apache.maven.scm.provider.ScmProvider#tag(org.apache.maven.scm.repository.ScmRepository, org.apache.maven.scm.ScmFileSet, java.lang.String)
+     */
+    public TagScmResult tag( ScmRepository repository, ScmFileSet fileSet, String tag )
+        throws ScmException
+    {
+        login( repository, fileSet );
+
+        CommandParameters parameters = new CommandParameters();
+
+        parameters.setString( CommandParameter.TAG, tag );
+
+        return tag( repository, fileSet, parameters );
+    }
 
-        command.setLogger( logDispatcher );
+    protected TagScmResult tag( ScmRepository repository, ScmFileSet fileSet, CommandParameters parameters )
+        throws ScmException
+    {
+        throw new NoSuchCommandScmException( "tag" );
+    }
+
+    /**
+     * @see org.apache.maven.scm.provider.ScmProvider#update(org.apache.maven/main/resources/META-INF/plexus/components.xml (original)
+++ maven/scm/trunk/maven-scm-providers/maven-scm-provider-starteam/src/main/resources/META-INF/plexus/components.xml Tue Jul 26 02:16:45 2005
@@ -1,71 +1,9 @@
 <component-set>
   <components>
-
     <component>
       <role>org.apache.maven.scm.provider.ScmProvider</role>
       <role-hint>starteam</role-hint>
       <implementation>org.apache.maven.scm.provider.starteam.StarteamScmProvider</implementation>
-      <requirements>
-        <requirement>
-          <role>org.apache.maven.scm.provider.starteam.command.StarteamCommand</role>
-          <field-name>commands</field-name>
-        </requirement>
-      </requirements>
     </component>
-
-    <component>
-      <role>org.apache.maven.scm.provider.starteam.command.StarteamCommand</role>
-      <role-hint>change-log</role-hint>
-      <implementation>org.apache.maven.scm.provider.starteam.command.changelog.StarteamChangeLogCommand</implementation>
-    </component>
-
-    <component>
-      <ro.scm.repository.ScmRepository, org.apache.maven.scm.ScmFileSet, java.lang.String)
+     */
+    public UpdateScmResult update( ScmRepository repository, ScmFileSet fileSet, String tag )
+        throws ScmException
+    {
+        login( repository, fileSet );
+
+        CommandParameters parameters = new CommandParameters();
+
+        parameters.setString( CommandParameter.TAG, tag );
 
-        return command;
+        return update( repository, fileSet, parameters );
     }
+
+    protected UpdateScmResult update( ScmRepository repository, ScmFileSet fileSet, CommandParameters parameters )
+        throws ScmException
+    {
+        throw new NoSuchCommandScmException( "update" );
+    }
+
+    // ----------------------------------------------------------------------
+    //
+    // ----------------------------------------------------------------------
 
     /**
      * @see org.apache.maven.scm.provider.ScmProvider#addListener(org.apache.maven.scm.log.ScmLogger)

Modified: maven/scm/trunk/maven-scm-apile>org.apache.maven.scm.provider.starteam.command.StarteamCommand</role>
-      <role-hint>check-out</role-hint>
-      <implementation>org.apache.maven.scm.provider.starteam.command.checkout.StarteamCheckOutCommand</implementation>
-    </component>
-
-    <component>
-      <role>org.apache.maven.scm.provider.starteam.command.StarteamCommand</role>
-      <role-hint>update</role-hint>
-      <implementation>org.apache.maven.scm.provider.starteam.command.update.StarteamUpdateCommand</implementation>
-    </component>
-
-    <component>
-      <role>org.apache.maven.scm.provider.starteam.command.StarteamCommand</role>
-      <role-hint>tag</role-hint>
-      <implementation>org.apache.maven.scm.provider.starteam.command.tag.StarteamTagCommand</implementation>
-    </component>
-
-    <component>
-      <role>org.apache.maven.scm.provider.starteam.command.StarteamCommand</role>
-      <role-hint>status</role-hint>
-      <implementation>org.apache.maven.scm.provider.starteam.command.status.StarteamStatusComman/src/main/java/org/apache/maven/scm/provider/ScmProvider.java
URL: http://svn.apache.org/viewcvs/maven/scm/trunk/maven-scm-api/src/main/java/org/apache/maven/scm/provider/ScmProvider.java?rev=225265&r1=225264&r2=225265&view=diff
==============================================================================
--- maven/scm/trunk/maven-scm-api/src/main/java/org/apache/maven/scm/provider/ScmProvider.java (original)
+++ maven/scm/trunk/maven-scm-api/src/main/java/org/apache/maven/scm/provider/ScmProvider.java Tue Jul 26 02:16:45 2005
@@ -17,13 +17,24 @@
  */
 
 import java.io.File;
+import java.util.Date;
 import java.util.List;
 
 import org.apache.maven.scm.CommandParameters;
 import org.apache.maven.scm.ScmException;
 import org.apache.maven.scm.ScmFileSet;
-import org.apache.maven.scm.ScmResult;
+import org.apache.maven.scm.command.add.AddScmResult;
+import org.apache.maven.scm.command.changelog.ChangeLogScmResult;
+import org.apache.maven.scm.command.checkin.CheckInScmResult;
+import org.apache.maven.scm.commad</implementation>
-    </component>
-
-    <component>
-      <role>org.apache.maven.scm.provider.starteam.command.StarteamCommand</role>
-      <role-hint>add</role-hint>
-      <implementation>org.apache.maven.scm.provider.starteam.command.add.StarteamAddCommand</implementation>
-    </component>
-
-    <component>
-      <role>org.apache.maven.scm.provider.starteam.command.StarteamCommand</role>
-      <role-hint>check-in</role-hint>
-      <implementation>org.apache.maven.scm.provider.starteam.command.checkin.StarteamCheckInCommand</implementation>
-    </component>
-
-    <component>
-      <role>org.apache.maven.scm.provider.starteam.command.StarteamCommand</role>
-      <role-hint>diff</role-hint>
-      <implementation>org.apache.maven.scm.provider.starteam.command.diff.StarteamDiffCommand</implementation>
-    </component>
-
-    <component>
-      <role>org.apache.maven.scm.provider.starteam.command.StarteamCommand</role>
-      <role-hint>remove</role-hint>
-      <implementation>org.apache.maven.nd.checkout.CheckOutScmResult;
+import org.apache.maven.scm.command.diff.DiffScmResult;
+import org.apache.maven.scm.command.remove.RemoveScmResult;
+import org.apache.maven.scm.command.status.StatusScmResult;
+import org.apache.maven.scm.command.tag.TagScmResult;
+import org.apache.maven.scm.command.update.UpdateScmResult;
 import org.apache.maven.scm.log.ScmLogger;
+import org.apache.maven.scm.login.LoginScmResult;
+import org.apache.maven.scm.repository.ScmRepository;
 import org.apache.maven.scm.repository.ScmRepositoryException;
 import org.apache.maven.scm.repository.UnknownRepositoryStructure;
 
@@ -47,7 +58,31 @@
 
     List validateScmUrl( String scmSpecificUrl, char delimiter );
 
-    ScmResult execute( String commandName, ScmProviderRepository repository, ScmFileSet fileSet,
-                       CommandParameters parameters )
+    AddScmResult add( ScmRepository repository, ScmFileSet fileSet )
+        throws ScmException;
+
+    ChangeLogScmResult changeLog( ScmRepository repository, ScmFileSscm.provider.starteam.command.remove.StarteamRemoveCommand</implementation>
-    </component>
-
   </components>
 </component-set>

Modified: maven/scm/trunk/maven-scm-providers/maven-scm-provider-starteam/src/test/java/org/apache/maven/scm/provider/starteam/command/remove/StarteamRemoveCommandTest.java
URL: http://svn.apache.org/viewcvs/maven/scm/trunk/maven-scm-providers/maven-scm-provider-starteam/src/test/java/org/apache/maven/scm/provider/starteam/command/remove/StarteamRemoveCommandTest.java?rev=225265&r1=225264&r2=225265&view=diff
==============================================================================
--- maven/scm/trunk/maven-scm-providers/maven-scm-provider-starteam/src/test/java/org/apache/maven/scm/provider/starteam/command/remove/StarteamRemoveCommandTest.java (original)
+++ maven/scm/trunk/maven-scm-providers/maven-scm-provider-starteam/src/test/java/org/apache/maven/scm/provider/starteam/command/remove/StarteamRemoveCommandTest.java Tue Jul 26 02:16:45 2005
@@ -32,44 +32,37 @@
 public claet fileSet, Date startDate, Date endDate,
+                                  int numDays, String branch )
+        throws ScmException;
+
+    CheckInScmResult checkIn( ScmRepository repository, ScmFileSet fileSet, String tag, String message )
+        throws ScmException;
+
+    CheckOutScmResult checkOut( ScmRepository repository, ScmFileSet fileSet, String tag )
+        throws ScmException;
+
+    DiffScmResult diff( ScmRepository repository, ScmFileSet fileSet, String startRevision, String endRevision )
+        throws ScmException;
+
+    RemoveScmResult remove( ScmRepository repository, ScmFileSet fileSet, String message )
+        throws ScmException;
+
+    StatusScmResult status( ScmRepository repository, ScmFileSet fileSet )
+        throws ScmException;
+
+    TagScmResult tag( ScmRepository repository, ScmFileSet fileSet, String tag )
+        throws ScmException;
+
+    UpdateScmResult update( ScmRepository repository, ScmFileSet fileSet, String tag )
         throws ScmException;
 }

Modified: ss StarteamRemoveCommandTest
     extends ScmTestCase
 {
-    
+
     public void testGetCommandLineWithFileOnRoot()
         throws Exception
     {
 
-	    File testFile = new File( "testfile" );
+        File testFile = new File( "testfile" );
+
+        File testFileDir = testFile.getAbsoluteFile().getParentFile();
+
+        String testFileDirAbsolutePath = StarteamCommandLineUtils.toJavaPath( testFileDir.getAbsolutePath() );
 
-		File testFileDir= testFile.getAbsoluteFile().getParentFile();
+        String expectedCmd = "stcmd remove -x -nologo -stop -p myusername:mypassword@myhost:1234/projecturl" + " -fp "
+                             + testFileDirAbsolutePath + " testfile";
 
-		String testFileDirAbsolutePath = StarteamCommandLineUtils.toJavaPath( testFileDir.getAbsolutePath() );
-		
-	    String expectedCmd = "stcmd remove -x -nologo -stop -p myusername:mypassword@myhost:1234/projecturl" +
-                          " -fp " + testFileDirAbsolutePath + " testfile" ;
-
-        testCommandLine( "scm:maven/scm/trunk/maven-scm-client/pom.xml
URL: http://svn.apache.org/viewcvs/maven/scm/trunk/maven-scm-client/pom.xml?rev=225265&r1=225264&r2=225265&view=diff
==============================================================================
--- maven/scm/trunk/maven-scm-client/pom.xml (original)
+++ maven/scm/trunk/maven-scm-client/pom.xml Tue Jul 26 02:16:45 2005
@@ -9,13 +9,33 @@
   <name>Maven SCM Client</name>
   <dependencies>
     <dependency>
-      <groupId>plexus</groupId>
-      <artifactId>plexus-scm</artifactId>
-      <version>1.0-alpha-1-SNAPSHOT</version>
+      <groupId>org.apache.maven.scm</groupId>
+      <artifactId>maven-scm-manager-plexus</artifactId>
+      <version>1.0-alpha-2-SNAPSHOT</version>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.maven.scm</groupId>
+      <artifactId>maven-scm-provider-clearcase</artifactId>
+      <version>1.0-alpha-2-SNAPSHOT</version>
     </dependency>
     <dependency>
       <groupId>org.apache.maven.scm</groupId>
       <artifactId>mavenstarteam:myusername:mypassword@myhost:1234/projecturl",
-                     testFile,
-                     "",
-                     expectedCmd );
+        testCommandLine( "scm:starteam:myusername:mypassword@myhost:1234/projecturl", testFile, "", expectedCmd );
     }
 
     public void testGetCommandLineWithFileInSubDir()
         throws Exception
     {
 
-	    File testFile = new File( "target/testfile" );
+        File testFile = new File( "target/testfile" );
+
+        File testFileDir = testFile.getAbsoluteFile().getParentFile();
+
+        String testFileDirAbsolutePath = StarteamCommandLineUtils.toJavaPath( testFileDir.getAbsolutePath() );
 
-		File testFileDir= testFile.getAbsoluteFile().getParentFile();
+        String expectedCmd = "stcmd remove -x -nologo -stop -p myusername:mypassword@myhost:1234/projecturl/target"
+                             + " -fp " + testFileDirAbsolutePath + " testfile";
 
-		String testFileDirAbsolutePath = StarteamCommandLineUtils.toJavaPath( testFileDir.getAbsolut-scm-provider-cvs</artifactId>
+      <version>1.0-alpha-2-SNAPSHOT</version>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.maven.scm</groupId>
+      <artifactId>maven-scm-provider-local</artifactId>
+      <version>1.0-alpha-2-SNAPSHOT</version>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.maven.scm</groupId>
+      <artifactId>maven-scm-provider-perforce</artifactId>
+      <version>1.0-alpha-2-SNAPSHOT</version>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.maven.scm</groupId>
+      <artifactId>maven-scm-provider-starteam</artifactId>
       <version>1.0-alpha-2-SNAPSHOT</version>
     </dependency>
     <dependency>

Modified: maven/scm/trunk/maven-scm-client/src/main/java/org/apache/maven/scm/client/cli/MavenScmCli.java
URL: http://svn.apache.org/viewcvs/maven/scm/trunk/maven-scm-client/src/main/java/org/apache/maven/scm/client/cli/MavenScmCli.java?rev=225265&r1=225264&r2=225265&view=diff
============================================================ePath() );
-		
-	    String expectedCmd = "stcmd remove -x -nologo -stop -p myusername:mypassword@myhost:1234/projecturl/target" +
-                          " -fp " + testFileDirAbsolutePath +
-                          " testfile" ;
-
-        testCommandLine( "scm:starteam:myusername:mypassword@myhost:1234/projecturl",
-                     testFile,
-                     null, 
-                     expectedCmd );
+        testCommandLine( "scm:starteam:myusername:mypassword@myhost:1234/projecturl", testFile, null, expectedCmd );
 
     }
 
@@ -77,15 +70,15 @@
     //
     // ----------------------------------------------------------------------
 
-    private void testCommandLine( String scmUrl, File fileName , String crPath, String commandLine )
+    private void testCommandLine( String scmUrl, File fileName, String crPath, String commandLine )
         throws Exception
     {
         ScmRepository repo = getScmManager().makeScmRepository( scmUrl );
 
         StarteamScmProviderRepository repository ===================
--- maven/scm/trunk/maven-scm-client/src/main/java/org/apache/maven/scm/client/cli/MavenScmCli.java (original)
+++ maven/scm/trunk/maven-scm-client/src/main/java/org/apache/maven/scm/client/cli/MavenScmCli.java Tue Jul 26 02:16:45 2005
@@ -27,16 +27,17 @@
 import org.apache.maven.scm.command.checkout.CheckOutScmResult;
 import org.apache.maven.scm.command.update.UpdateScmResult;
 import org.apache.maven.scm.command.checkin.CheckInScmResult;
+import org.apache.maven.scm.manager.NoSuchScmProviderException;
+import org.apache.maven.scm.manager.ScmManager;
 import org.apache.maven.scm.repository.ScmRepository;
 import org.apache.maven.scm.repository.ScmRepositoryException;
 
 import org.codehaus.plexus.embed.Embedder;
-import org.codehaus.plexus.scm.NoSuchScmProviderException;
-import org.codehaus.plexus.scm.ScmManager;
 import org.codehaus.plexus.util.StringUtils;
 
 /**
  * @author <a href="mailto:trygvis@inamo.no">Trygve Laugst&oslash;l</a>
+ * @author <a href="mailto:evenisse@apache.org">Em (StarteamScmProviderRepository) repo.getProviderRepository();
 
-        Commandline cl = StarteamRemoveCommand.createCommandLine( repository, fileName);
+        Commandline cl = StarteamRemoveCommand.createCommandLine( repository, fileName );
 
         assertEquals( commandLine, cl.toString() );
     }
- }
+}

Modified: maven/scm/trunk/maven-scm-providers/maven-scm-provider-starteam/src/test/java/org/apache/maven/scm/provider/starteam/command/remove/StarteamRemoveConsumerTest.java
URL: http://svn.apache.org/viewcvs/maven/scm/trunk/maven-scm-providers/maven-scm-provider-starteam/src/test/java/org/apache/maven/scm/provider/starteam/command/remove/StarteamRemoveConsumerTest.java?rev=225265&r1=225264&r2=225265&view=diff
==============================================================================
--- maven/scm/trunk/maven-scm-providers/maven-scm-provider-starteam/src/test/java/org/apache/maven/scm/provider/starteam/command/remove/StarteamRemoveConsumerTest.java (original)
+++ maven/scm/trunk/maven-scm-providmanuel Venisse</a>
  * @version $Id$
  */
 public class MavenScmCli
@@ -65,7 +66,7 @@
         {
             plexus.stop();
         }
-        catch( Exception ex )
+        catch ( Exception ex )
         {
             // ignore
         }
@@ -83,11 +84,11 @@
         {
             cli = new MavenScmCli();
         }
-        catch( Exception ex )
+        catch ( Exception ex )
         {
             System.err.println( "Error while starting Maven Scm." );
 
-            ex.printStackTrace( System.err  );
+            ex.printStackTrace( System.err );
 
             return;
         }
@@ -103,11 +104,11 @@
             return;
         }
 
-        command = args[ 0 ];
+        command = args[0];
 
-        File workingDirectory = new File( args[ 1 ] );
+        File workingDirectory = new File( args[1] );
 
-        scmUrl = args[ 2 ];
+        scmUrl = args[2];
 
         String tag = null;
 
@@ -134,7 +135,7 @@
 
             return;
         }
-        catch( ScmRepositoryException ex )
+        caers/maven-scm-provider-starteam/src/test/java/org/apache/maven/scm/provider/starteam/command/remove/StarteamRemoveConsumerTest.java Tue Jul 26 02:16:45 2005
@@ -1,4 +1,5 @@
 package org.apache.maven.scm.provider.starteam.command.remove;
+
 /*
  * Copyright 2001-2005 The Apache Software Foundation.
  *
@@ -31,29 +32,27 @@
 public class StarteamRemoveConsumerTest
     extends ScmTestCase
 {
-    private static String [] TEST_OUTPUT =
-    {
+    private static String[] TEST_OUTPUT = {
         "Folder: driver  (working dir: /usr/scm-starteam/driver)",
-  		"maven.xml: removed",
+        "maven.xml: removed",
         "Folder: driver  (working dir: /usr/scm-starteam/driver/target/checkout)",
-		"maven.xml: removed",
-		"project.properties: removed",
-		"project.xml: removed",
+        "maven.xml: removed",
+        "project.properties: removed",
+        "project.xml: removed",
         "Folder: bootstrap  (working dir: /usr/scm-starteam/driver/target/checkout/bootstrap)",
-		"maven.xml: removed",
-		"project.prtch ( ScmRepositoryException ex )
         {
             System.err.println( "Error while connecting to the repository" );
 
@@ -162,10 +163,10 @@
                 System.err.println( "Unknown SCM command '" + command + "'." );
             }
         }
-        catch( ScmException ex )
+        catch ( ScmException ex )
         {
             System.err.println( "Error while executing the SCM command." );
-            
+
             ex.printStackTrace( System.err );
 
             return;
@@ -188,12 +189,14 @@
 
         if ( !workingDirectory.mkdirs() )
         {
-            System.err.println( "Error while making the working directory: '" + workingDirectory.getAbsolutePath() + "'." );
+            System.err.println( "Error while making the working directory: '" + workingDirectory.getAbsolutePath()
+                                + "'." );
 
             return;
         }
 
-        CheckOutScmResult result = scmManager.checkOut( scmRepository, new ScmFileSet( workingDirectory ), tag );
+        Cheoperties: removed",
-		"project.xml: removed"
-    };
+        "maven.xml: removed",
+        "project.properties: removed",
+        "project.xml: removed" };
 
     public void testParse()
         throws Exception
     {
-        
-		File basedir = new File( "/usr/scm-starteam/driver" );
-        
+
+        File basedir = new File( "/usr/scm-starteam/driver" );
+
         StarteamRemoveConsumer consumer = new StarteamRemoveConsumer( new DefaultLog(), basedir );
 
-        for ( int i = 0; i < TEST_OUTPUT.length; ++ i )
+        for ( int i = 0; i < TEST_OUTPUT.length; ++i )
         {
             consumer.consumeLine( TEST_OUTPUT[i] );
         }
@@ -67,12 +66,11 @@
         for ( Iterator i = entries.iterator(); i.hasNext(); )
         {
             entry = (ScmFile) i.next();
-            
-            assertTrue ( entry.getPath().startsWith("./") );
-            
+
+            assertTrue( entry.getPath().startsWith( "./" ) );
+
             assertTrue( entry.getStatus() == ScmFileStatus.DELETED );
 ckOutScmResult result = scmManager.getProviderByRepository( scmRepository )
+            .checkOut( scmRepository, new ScmFileSet( workingDirectory ), tag );
 
         if ( !result.isSuccess() )
         {
@@ -226,7 +229,8 @@
 
         String message = "";
 
-        CheckInScmResult result = scmManager.checkIn( scmRepository, new ScmFileSet( workingDirectory ), tag, message );
+        CheckInScmResult result = scmManager.getProviderByRepository( scmRepository )
+            .checkIn( scmRepository, new ScmFileSet( workingDirectory ), tag, message );
 
         if ( !result.isSuccess() )
         {
@@ -257,7 +261,8 @@
             return;
         }
 
-        UpdateScmResult result = scmManager.update( scmRepository, new ScmFileSet( workingDirectory ), tag );
+        UpdateScmResult result = scmManager.getProviderByRepository( scmRepository )
+            .update( scmRepository, new ScmFileSet( workingDirectory ), tag );
 
         if ( !result.isSuccess() )
         {

Propchange: maven/scm/trunk/maven-        }
-        
-        
+
     }
 }

Modified: maven/scm/trunk/maven-scm-providers/maven-scm-provider-svn/src/main/java/org/apache/maven/scm/provider/svn/SvnScmProvider.java
URL: http://svn.apache.org/viewcvs/maven/scm/trunk/maven-scm-providers/maven-scm-provider-svn/src/main/java/org/apache/maven/scm/provider/svn/SvnScmProvider.java?rev=225265&r1=225264&r2=225265&view=diff
==============================================================================
--- maven/scm/trunk/maven-scm-providers/maven-scm-provider-svn/src/main/java/org/apache/maven/scm/provider/svn/SvnScmProvider.java (original)
+++ maven/scm/trunk/maven-scm-providers/maven-scm-provider-svn/src/main/java/org/apache/maven/scm/provider/svn/SvnScmProvider.java Tue Jul 26 02:16:45 2005
@@ -16,18 +16,39 @@
  * limitations under the License.
  */
 
+import org.apache.maven.scm.CommandParameters;
+import org.apache.maven.scm.ScmException;
+import org.apache.maven.scm.ScmFileSet;
+import org.apache.maven.scm.command.add.AddScmResult;
+import org.apascm-managers/maven-scm-manager-plexus/
------------------------------------------------------------------------------
--- svn:ignore (original)
+++ svn:ignore Tue Jul 26 02:16:45 2005
@@ -1,2 +1,3 @@
 .classpath
 .project
+target

Modified: maven/scm/trunk/maven-scm-managers/maven-scm-manager-plexus/src/main/java/org/apache/maven/scm/manager/plexus/DefaultScmManager.java
URL: http://svn.apache.org/viewcvs/maven/scm/trunk/maven-scm-managers/maven-scm-manager-plexus/src/main/java/org/apache/maven/scm/manager/plexus/DefaultScmManager.java?rev=225265&r1=225264&r2=225265&view=diff
==============================================================================
--- maven/scm/trunk/maven-scm-managers/maven-scm-manager-plexus/src/main/java/org/apache/maven/scm/manager/plexus/DefaultScmManager.java (original)
+++ maven/scm/trunk/maven-scm-managers/maven-scm-manager-plexus/src/main/java/org/apache/maven/scm/manager/plexus/DefaultScmManager.java Tue Jul 26 02:16:45 2005
@@ -16,22 +16,6 @@
  * limitations under the Licenseche.maven.scm.command.changelog.ChangeLogScmResult;
+import org.apache.maven.scm.command.checkin.CheckInScmResult;
+import org.apache.maven.scm.command.checkout.CheckOutScmResult;
+import org.apache.maven.scm.command.diff.DiffScmResult;
+import org.apache.maven.scm.command.remove.RemoveScmResult;
+import org.apache.maven.scm.command.status.StatusScmResult;
+import org.apache.maven.scm.command.tag.TagScmResult;
+import org.apache.maven.scm.command.update.UpdateScmResult;
 import org.apache.maven.scm.provider.AbstractScmProvider;
 import org.apache.maven.scm.provider.ScmProviderRepository;
+import org.apache.maven.scm.provider.svn.command.add.SvnAddCommand;
+import org.apache.maven.scm.provider.svn.command.changelog.SvnChangeLogCommand;
+import org.apache.maven.scm.provider.svn.command.checkin.SvnCheckInCommand;
+import org.apache.maven.scm.provider.svn.command.checkout.SvnCheckOutCommand;
+import org.apache.maven.scm.provider.svn.command.diff.SvnDiffCommand;
+import org.apache.maven.scm.provider.svn.command.re.
  */
 
-import org.apache.maven.scm.CommandNameConstants;
-import org.apache.maven.scm.CommandParameter;
-import org.apache.maven.scm.CommandParameters;
-import org.apache.maven.scm.NoSuchCommandScmException;
-import org.apache.maven.scm.ScmException;
-import org.apache.maven.scm.ScmFileSet;
-import org.apache.maven.scm.ScmResult;
-import org.apache.maven.scm.command.add.AddScmResult;
-import org.apache.maven.scm.command.changelog.ChangeLogScmResult;
-import org.apache.maven.scm.command.checkin.CheckInScmResult;
-import org.apache.maven.scm.command.checkout.CheckOutScmResult;
-import org.apache.maven.scm.command.diff.DiffScmResult;
-import org.apache.maven.scm.command.status.StatusScmResult;
-import org.apache.maven.scm.command.tag.TagScmResult;
-import org.apache.maven.scm.command.update.UpdateScmResult;
-import org.apache.maven.scm.log.ScmLogger;
 import org.apache.maven.scm.manager.ScmManager;
 import org.apache.maven.scm.manager.NoSuchScmProviderException;
 import org.apache.maven.scm.provider.ScmProvidmove.SvnRemoveCommand;
+import org.apache.maven.scm.provider.svn.command.status.SvnStatusCommand;
+import org.apache.maven.scm.provider.svn.command.tag.SvnTagCommand;
+import org.apache.maven.scm.provider.svn.command.update.SvnUpdateCommand;
 import org.apache.maven.scm.provider.svn.repository.SvnScmProviderRepository;
 import org.apache.maven.scm.provider.svn.util.EntriesReader;
 import org.apache.maven.scm.provider.svn.util.Entry;
+import org.apache.maven.scm.repository.ScmRepository;
 import org.apache.maven.scm.repository.ScmRepositoryException;
 import org.apache.maven.scm.repository.UnknownRepositoryStructure;
 
 import java.io.File;
 import java.io.FileReader;
 import java.util.Iterator;
-import java.util.Map;
 import java.util.List;
 import java.util.ArrayList;
 
@@ -38,9 +59,6 @@
 public class SvnScmProvider
     extends AbstractScmProvider
 {
-    /** @requirement org.apache.maven.scm.CvsCommand */
-    private Map commands;
-
     // -----------------------------------------------------------------er;
@@ -44,9 +28,7 @@
 
 import java.io.File;
 import java.util.ArrayList;
-import java.util.Date;
 import java.util.HashMap;
-import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 
@@ -62,11 +44,9 @@
 {
     private Map scmProviders;
 
-    private List loggers = new ArrayList();
-
-    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 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 '|'.";
 
     // ----------------------------------------------------------------------
     // Component Lifecycle
@@ -89,6 +69,4-----
     //
     // ----------------------------------------------------------------------
@@ -98,7 +116,7 @@
             EntriesReader entriesReader = new EntriesReader();
 
             List entries = entriesReader.read( reader );
-            
+
             for ( Iterator i = entries.iterator(); i.hasNext(); )
             {
                 Entry svnEntry = (Entry) i.next();
@@ -109,7 +127,7 @@
                 }
             }
         }
-        catch( Exception e )
+        catch ( Exception e )
         {
             ScmRepositoryException ex = new ScmRepositoryException( "Can't read " + svnEntriesFile.getAbsolutePath() );
 
@@ -128,15 +146,6 @@
         return result.messages;
     }
 
-    // ----------------------------------------------------------------------
-    // AbstractScmProvider Implementation
-    // ----------------------------------------------------------------------
-
-    protected Map getCommands()
-    {
-        return commands;
-    }
-
     public String getScmType()
     0 @@
     // ScmManager Implementation
     // ----------------------------------------------------------------------
 
+    public ScmProvider getProviderByUrl( String scmUrl )
+        throws ScmRepositoryException, NoSuchScmProviderException
+    {
+        if ( scmUrl == null )
+        {
+            throw new NullPointerException( "The scm url cannot be null." );
+        }
+
+        char delimiter = findDelimiter( scmUrl );
+
+        String providerType = scmUrl.substring( 4, scmUrl.indexOf( delimiter, 4 ) );
+
+        return getProviderByType( providerType );
+    }
+
+    public ScmProvider getProviderByType( String providerType )
+        throws NoSuchScmProviderException
+    {
+        ScmProvider scmProvider = (ScmProvider) scmProviders.get( providerType );
+
+        if ( scmProvider == null )
+        {
+            throw new NoSuchScmProviderException( providerType );
+        }
+
+        return scmProvider;
+    }
+
+    public ScmProvider getProviderByRepository( ScmRepository repository{
         return "svn";
@@ -238,5 +247,122 @@
         result.repository = new SvnScmProviderRepository( url, user, password );
 
         return result;
+    }
+
+    /**
+     * @see org.apache.maven.scm.provider.AbstractScmProvider#add(org.apache.maven.scm.repository.ScmRepository, org.apache.maven.scm.ScmFileSet, org.apache.maven.scm.CommandParameters)
+     */
+    public AddScmResult add( ScmRepository repository, ScmFileSet fileSet, CommandParameters parameters )
+        throws ScmException
+    {
+        SvnAddCommand command = new SvnAddCommand();
+
+        command.setLogger( getLogger() );
+
+        return (AddScmResult) command.execute( repository.getProviderRepository(), fileSet, parameters );
+    }
+
+    /**
+     * @see org.apache.maven.scm.provider.AbstractScmProvider#changelog(org.apache.maven.scm.repository.ScmRepository, org.apache.maven.scm.ScmFileSet, org.apache.maven.scm.CommandParameters)
+     */
+    public ChangeLogScmResult changelog( ScmRepository repository, ScmFileSet fileS )
+        throws NoSuchScmProviderException
+    {
+        return getProviderByType( repository.getProvider() );
+    }
+
     // ----------------------------------------------------------------------
     // Repository
     // ----------------------------------------------------------------------
@@ -105,7 +119,7 @@
 
         String providerType = scmUrl.substring( 4, scmUrl.indexOf( delimiter, 4 ) );
 
-        ScmProvider provider = getScmProvider( providerType );
+        ScmProvider provider = getProviderByType( providerType );
 
         String scmSpecificUrl = scmUrl.substring( providerType.length() + 5 );
 
@@ -122,7 +136,7 @@
             throw new NullPointerException( "The provider type cannot be null." );
         }
 
-        ScmProvider provider = getScmProvider( providerType );
+        ScmProvider provider = getProviderByType( providerType );
 
         ScmProviderRepository providerRepository = provider.makeProviderScmRepository( path );
 
@@ -152,9 +166,6 @@
             return messages;et, CommandParameters parameters )
+        throws ScmException
+    {
+        SvnChangeLogCommand command = new SvnChangeLogCommand();
+
+        command.setLogger( getLogger() );
+
+        return (ChangeLogScmResult) command.execute( repository.getProviderRepository(), fileSet, parameters );
+    }
+
+    /**
+     * @see org.apache.maven.scm.provider.AbstractScmProvider#checkin(org.apache.maven.scm.repository.ScmRepository, org.apache.maven.scm.ScmFileSet, org.apache.maven.scm.CommandParameters)
+     */
+    public CheckInScmResult checkin( ScmRepository repository, ScmFileSet fileSet, CommandParameters parameters )
+        throws ScmException
+    {
+        SvnCheckInCommand command = new SvnCheckInCommand();
+
+        command.setLogger( getLogger() );
+
+        return (CheckInScmResult) command.execute( repository.getProviderRepository(), fileSet, parameters );
+    }
+
+    /**
+     * @see org.apache.maven.scm.provider.AbstractScmProvider#checkout(org.apache.maven.scm.repository.ScmRepository, o
         }
 
-        // TODO: don't assume that the delimiter is eitgher ':' or '|' or
-        // require the scm delimiter to be ':' or '|'
-
         char delimiter;
 
         try
@@ -174,7 +185,7 @@
 
         try
         {
-            provider = getScmProvider( providerType );
+            provider = getProviderByType( providerType );
         }
         catch ( NoSuchScmProviderException e )
         {
@@ -198,156 +209,6 @@
     }
 
     // ----------------------------------------------------------------------
-    // Scm commands
-    // ----------------------------------------------------------------------
-
-    public CheckOutScmResult checkOut( ScmRepository repository, ScmFileSet fileSet, String tag )
-        throws ScmException
-    {
-        CommandParameters parameters = new CommandParameters();
-
-        parameters.setString( CommandParameter.TAG, tag );
-
-        ScmResult scmResult = execute( CommandNameConstants.CHECK_OUT, repository, fileSet, parameters );
-
-        return (Checkrg.apache.maven.scm.ScmFileSet, org.apache.maven.scm.CommandParameters)
+     */
+    public CheckOutScmResult checkout( ScmRepository repository, ScmFileSet fileSet, CommandParameters parameters )
+        throws ScmException
+    {
+        SvnCheckOutCommand command = new SvnCheckOutCommand();
+
+        command.setLogger( getLogger() );
+
+        return (CheckOutScmResult) command.execute( repository.getProviderRepository(), fileSet, parameters );
+    }
+
+    /**
+     * @see org.apache.maven.scm.provider.AbstractScmProvider#diff(org.apache.maven.scm.repository.ScmRepository, org.apache.maven.scm.ScmFileSet, org.apache.maven.scm.CommandParameters)
+     */
+    public DiffScmResult diff( ScmRepository repository, ScmFileSet fileSet, CommandParameters parameters )
+        throws ScmException
+    {
+        SvnDiffCommand command = new SvnDiffCommand();
+
+        command.setLogger( getLogger() );
+
+        return (DiffScmResult) command.execute( repository.getProviderRepository(), fileSet, parametersOutScmResult) checkScmResult( CheckOutScmResult.class, scmResult );
-    }
-
-    public CheckInScmResult checkIn( ScmRepository repository, ScmFileSet fileSet, String tag, String message )
-        throws ScmException
-    {
-        CommandParameters parameters = new CommandParameters();
-
-        parameters.setString( CommandParameter.TAG, tag );
-
-        parameters.setString( CommandParameter.MESSAGE, message );
-
-        ScmResult scmResult = execute( CommandNameConstants.CHECK_IN, repository, fileSet, parameters );
-
-        return (CheckInScmResult) checkScmResult( CheckInScmResult.class, scmResult );
-    }
-
-    public TagScmResult tag( ScmRepository repository, ScmFileSet fileSet, String tag )
-        throws ScmException
-    {
-        CommandParameters parameters = new CommandParameters();
-
-        parameters.setString( CommandParameter.TAG, tag );
-
-        ScmResult scmResult = execute( CommandNameConstants.TAG, repository, fileSet, parameters );
-
-        return (TagScmResult) checkS );
+    }
+
+    /**
+     * @see org.apache.maven.scm.provider.AbstractScmProvider#remove(org.apache.maven.scm.repository.ScmRepository, org.apache.maven.scm.ScmFileSet, org.apache.maven.scm.CommandParameters)
+     */
+    public RemoveScmResult remove( ScmRepository repository, ScmFileSet fileSet, CommandParameters parameters )
+        throws ScmException
+    {
+        SvnRemoveCommand command = new SvnRemoveCommand();
+
+        command.setLogger( getLogger() );
+
+        return (RemoveScmResult) command.execute( repository.getProviderRepository(), fileSet, parameters );
+    }
+
+    /**
+     * @see org.apache.maven.scm.provider.AbstractScmProvider#status(org.apache.maven.scm.repository.ScmRepository, org.apache.maven.scm.ScmFileSet, org.apache.maven.scm.CommandParameters)
+     */
+    public StatusScmResult status( ScmRepository repository, ScmFileSet fileSet, CommandParameters parameters )
+        throws ScmException
+    {
+        SvnStatusCommand command = new SvnStatusCommand();
+
+        cmResult( TagScmResult.class, scmResult );
-    }
-
-    public UpdateScmResult update( ScmRepository repository, ScmFileSet fileSet, String tag )
-        throws ScmException
-    {
-        CommandParameters parameters = new CommandParameters();
-
-        parameters.setString( CommandParameter.TAG, tag );
-
-        ScmResult scmResult = execute( CommandNameConstants.UPDATE, repository, fileSet, parameters );
-
-        return (UpdateScmResult) checkScmResult( UpdateScmResult.class, scmResult );
-    }
-
-    public DiffScmResult diff( ScmRepository repository, ScmFileSet fileSet, String startRevision, String endRevision )
-        throws ScmException
-    {
-        CommandParameters parameters = new CommandParameters();
-
-        parameters.setString( CommandParameter.START_REVISION, startRevision );
-
-        parameters.setString( CommandParameter.END_REVISION, endRevision );
-
-        ScmResult scmResult = execute( CommandNameConstants.DIFF, repository, fileSet, parameters );
-
-        return (Diffcommand.setLogger( getLogger() );
+
+        return (StatusScmResult) command.execute( repository.getProviderRepository(), fileSet, parameters );
+    }
+
+    /**
+     * @see org.apache.maven.scm.provider.AbstractScmProvider#tag(org.apache.maven.scm.repository.ScmRepository, org.apache.maven.scm.ScmFileSet, org.apache.maven.scm.CommandParameters)
+     */
+    public TagScmResult tag( ScmRepository repository, ScmFileSet fileSet, CommandParameters parameters )
+        throws ScmException
+    {
+        SvnTagCommand command = new SvnTagCommand();
+
+        command.setLogger( getLogger() );
+
+        return (TagScmResult) command.execute( repository.getProviderRepository(), fileSet, parameters );
+    }
+
+    /**
+     * @see org.apache.maven.scm.provider.AbstractScmProvider#update(org.apache.maven.scm.repository.ScmRepository, org.apache.maven.scm.ScmFileSet, org.apache.maven.scm.CommandParameters)
+     */
+    public UpdateScmResult update( ScmRepository repository, ScmFileSet fileSet, CommandParametScmResult) checkScmResult( DiffScmResult.class, scmResult );
-    }
-
-    public ChangeLogScmResult changeLog( ScmRepository repository, ScmFileSet fileSet, Date startDate, Date endDate,
-                                         int numDays, String branch )
-        throws ScmException
-    {
-        CommandParameters parameters = new CommandParameters();
-
-        parameters.setDate( CommandParameter.START_DATE, startDate );
-
-        parameters.setDate( CommandParameter.END_DATE, endDate );
-
-        parameters.setString( CommandParameter.BRANCH, branch );
-
-        ScmResult scmResult = execute( CommandNameConstants.CHANGE_LOG, repository, fileSet, parameters );
-
-        return (ChangeLogScmResult) checkScmResult( ChangeLogScmResult.class, scmResult );
-    }
-
-    public StatusScmResult status( ScmRepository repository, ScmFileSet fileSet )
-        throws ScmException
-    {
-        CommandParameters parameters = new CommandParameters();
-
-        ScmResult scmResult = execute( CommandNameConsers parameters )
+        throws ScmException
+    {
+        SvnUpdateCommand command = new SvnUpdateCommand();
+
+        command.setLogger( getLogger() );
+
+        return (UpdateScmResult) command.execute( repository.getProviderRepository(), fileSet, parameters );
     }
 }

Modified: maven/scm/trunk/maven-scm-providers/maven-scm-provider-svn/src/main/resources/META-INF/plexus/components.xml
URL: http://svn.apache.org/viewcvs/maven/scm/trunk/maven-scm-providers/maven-scm-provider-svn/src/main/resources/META-INF/plexus/components.xml?rev=225265&r1=225264&r2=225265&view=diff
==============================================================================
--- maven/scm/trunk/maven-scm-providers/maven-scm-provider-svn/src/main/resources/META-INF/plexus/components.xml (original)
+++ maven/scm/trunk/maven-scm-providers/maven-scm-provider-svn/src/main/resources/META-INF/plexus/components.xml Tue Jul 26 02:16:45 2005
@@ -1,59 +1,9 @@
 <component-set>
   <components>
-
     <component>
       <role>org.apache.maventants.STATUS, repository, fileSet, parameters );
-
-        return (StatusScmResult) checkScmResult( StatusScmResult.class, scmResult );
-    }
-
-    public AddScmResult add( ScmRepository repository, ScmFileSet fileSet )
-        throws ScmException
-    {
-        CommandParameters parameters = new CommandParameters();
-
-        // TODO: is message reasonable?
-        parameters.setString( CommandParameter.MESSAGE, "" );
-
-        // TODO: binary may be dependant on particular files though
-        // TODO: set boolean?
-        parameters.setString( CommandParameter.BINARY, "false" );
-
-        ScmResult scmResult = execute( CommandNameConstants.ADD, repository, fileSet, parameters );
-
-        return (AddScmResult) checkScmResult( AddScmResult.class, scmResult );
-    }
-
-    public void addListener( ScmLogger logger )
-        throws NoSuchScmProviderException
-    {
-        loggers.add( logger );
-    }
-
-    // ----------------------------------------------------------------------
-    //
-   .scm.provider.ScmProvider</role>
       <role-hint>svn</role-hint>
       <implementation>org.apache.maven.scm.provider.svn.SvnScmProvider</implementation>
-      <requirements>
-        <requirement>
-          <role>org.apache.maven.scm.provider.svn.command.SvnCommand</role>
-          <field-name>commands</field-name>
-        </requirement>
-      </requirements>
     </component>
-
-    <component>
-      <role>org.apache.maven.scm.provider.svn.command.SvnCommand</role>
-      <role-hint>add</role-hint>
-      <implementation>org.apache.maven.scm.provider.svn.command.add.SvnAddCommand</implementation>
-    </component>
-
-    <component>
-      <role>org.apache.maven.scm.provider.svn.command.SvnCommand</role>
-      <role-hint>check-in</role-hint>
-      <implementation>org.apache.maven.scm.provider.svn.command.checkin.SvnCheckInCommand</implementation>
-    </component>
-
-    <component>
-      <role>org.apache.maven.scm.provider.svn.command.SvnCommand</role>
-      <role-hint>check-out</role-hint>
-   // ----------------------------------------------------------------------
-
-    private  ScmResult execute( String commandName, ScmRepository repository, ScmFileSet fileSet,
-                                CommandParameters parameters )
-        throws ScmException
-    {
-        if ( !CommandNameConstants.LOGIN.equals( commandName ) )
-        {
-            try
-            {
-                execute( CommandNameConstants.LOGIN, repository, fileSet, parameters );
-            }
-            catch ( NoSuchCommandScmException e )
-            {
-                // ignored : provider doesn't have a login command
-            }
-        }
-
-        ScmProvider scmProvider = getScmProvider( repository.getProvider() );
-
-        for ( Iterator i = loggers.iterator(); i.hasNext(); )
-        {
-            ScmLogger logger = (ScmLogger) i.next();
-
-            scmProvider.addListener( logger );
-        }
-
-        return scmProvider.execute( commandName, repository.getProviderRepository(), fileSet, parame    <implementation>org.apache.maven.scm.provider.svn.command.checkout.SvnCheckOutCommand</implementation>
-    </component>
-
-    <component>
-      <role>org.apache.maven.scm.provider.svn.command.SvnCommand</role>
-      <role-hint>diff</role-hint>
-      <implementation>org.apache.maven.scm.provider.svn.command.diff.SvnDiffCommand</implementation>
-    </component>
-
-    <component>
-      <role>org.apache.maven.scm.provider.svn.command.SvnCommand</role>
-      <role-hint>status</role-hint>
-      <implementation>org.apache.maven.scm.provider.svn.command.status.SvnStatusCommand</implementation>
-    </component>
-
-    <component>
-      <role>org.apache.maven.scm.provider.svn.command.SvnCommand</role>
-      <role-hint>tag</role-hint>
-      <implementation>org.apache.maven.scm.provider.svn.command.tag.SvnTagCommand</implementation>
-    </component>
-
-    <component>
-      <role>org.apache.maven.scm.provider.svn.command.SvnCommand</role>
-      <role-hint>update</role-hint>
-      <implementation>orgters );
-    }
-
-    // ----------------------------------------------------------------------
     //
     // ----------------------------------------------------------------------
 
@@ -369,31 +230,5 @@
         }
 
         return scmUrl.charAt( index );
-    }
-
-    private ScmProvider getScmProvider( String providerType )
-        throws NoSuchScmProviderException
-    {
-        ScmProvider scmProvider = (ScmProvider) scmProviders.get( providerType );
-
-        if ( scmProvider == null )
-        {
-            throw new NoSuchScmProviderException( providerType );
-        }
-
-        return scmProvider;
-    }
-
-    private ScmResult checkScmResult( Class clazz, ScmResult scmResult )
-        throws ScmException
-    {
-        if ( !clazz.isAssignableFrom( scmResult.getClass() ) )
-        {
-            throw new ScmException( "Internal error: Wrong ScmResult returned. " +
-                                    "Expected: " + clazz.getName() + ". " +
-                                    "Got: " + .apache.maven.scm.provider.svn.command.update.SvnUpdateCommand</implementation>
-    </component>
-
   </components>
 </component-set>

Modified: maven/scm/trunk/maven-scm-providers/maven-scm-provider-svn/src/test/java/org/apache/maven/scm/provider/svn/command/checkout/SvnCheckOutCommandTest.java
URL: http://svn.apache.org/viewcvs/maven/scm/trunk/maven-scm-providers/maven-scm-provider-svn/src/test/java/org/apache/maven/scm/provider/svn/command/checkout/SvnCheckOutCommandTest.java?rev=225265&r1=225264&r2=225265&view=diff
==============================================================================
--- maven/scm/trunk/maven-scm-providers/maven-scm-provider-svn/src/test/java/org/apache/maven/scm/provider/svn/command/checkout/SvnCheckOutCommandTest.java (original)
+++ maven/scm/trunk/maven-scm-providers/maven-scm-provider-svn/src/test/java/org/apache/maven/scm/provider/svn/command/checkout/SvnCheckOutCommandTest.java Tue Jul 26 02:16:45 2005
@@ -17,9 +17,9 @@
  */
 
 import org.apache.maven.scm.ScmTestCase;
+impscmResult.getClass().getName() );
-        }
-
-        return scmResult;
     }
 }

Modified: maven/scm/trunk/maven-scm-managers/maven-scm-manager-plexus/src/main/resources/META-INF/plexus/components.xml
URL: http://svn.apache.org/viewcvs/maven/scm/trunk/maven-scm-managers/maven-scm-manager-plexus/src/main/resources/META-INF/plexus/components.xml?rev=225265&r1=225264&r2=225265&view=diff
==============================================================================
--- maven/scm/trunk/maven-scm-managers/maven-scm-manager-plexus/src/main/resources/META-INF/plexus/components.xml (original)
+++ maven/scm/trunk/maven-scm-managers/maven-scm-manager-plexus/src/main/resources/META-INF/plexus/components.xml Tue Jul 26 02:16:45 2005
@@ -1,8 +1,8 @@
 <component-set>
   <components>
     <component>
-      <role>org.codehaus.plexus.scm.ScmManager</role>
-      <implementation>org.codehaus.plexus.scm.DefaultScmManager</implementation>
+      <role>org.apache.maven.scm.manager.ScmManager</role>
+      <implementation>org.ort org.apache.maven.scm.manager.ScmManager;
 import org.apache.maven.scm.provider.svn.repository.SvnScmProviderRepository;
 import org.apache.maven.scm.repository.ScmRepository;
-import org.codehaus.plexus.scm.ScmManager;
 import org.codehaus.plexus.util.cli.Commandline;
 
 import java.io.File;

Modified: maven/scm/trunk/maven-scm-providers/maven-scm-provider-svn/src/test/java/org/apache/maven/scm/provider/svn/command/tag/SvnTagCommandTckTest.java
URL: http://svn.apache.org/viewcvs/maven/scm/trunk/maven-scm-providers/maven-scm-provider-svn/src/test/java/org/apache/maven/scm/provider/svn/command/tag/SvnTagCommandTckTest.java?rev=225265&r1=225264&r2=225265&view=diff
==============================================================================
--- maven/scm/trunk/maven-scm-providers/maven-scm-provider-svn/src/test/java/org/apache/maven/scm/provider/svn/command/tag/SvnTagCommandTckTest.java (original)
+++ maven/scm/trunk/maven-scm-providers/maven-scm-provider-svn/src/test/java/org/apache/maven/scm/provider/svn/command/tag/SvnTagCommandTckTest.java Tue Jul 26 02:16:45 2005
@@ -16,11 +16,11 @@
  * limitations under the License.
  */
 
+import org.apache.maven.scm.manager.ScmManager;
 import org.apache.maven.scm.provider.svn.SvnScmTestUtils;
 import org.apache.maven.scm.provider.svn.repository.SvnScmProviderRepository;
 import org.apache.maven.scm.repository.ScmRepository;
 import org.apache.maven.scm.tck.command.tag.TagCommandTckTest;
-import org.codehaus.plexus.scm.ScmManager;
 
 import java.io.File;
 

Modified: maven/scm/trunk/maven-scm-providers/maven-scm-provider-svn/src/test/java/org/apache/maven/scm/provider/svn/repository/SvnScmProviderRepositoryTest.java
URL: http://svn.apache.org/viewcvs/maven/scm/trunk/maven-scm-providers/maven-scm-provider-svn/src/test/java/org/apache/maven/scm/provider/svn/repository/SvnScmProviderRepositoryTest.java?rev=225265&r1=225264&r2=225265&view=diff
==============================================================================
--- maven/scm/trunk/maven-scm-providers/maven-scm-provider-svn/src/test/java/org/apache/maven/scm/provider/svn/repository/SvnScmProviderRepositoryTest.java (original)
+++ maven/scm/trunk/maven-scm-providers/maven-scm-provider-svn/src/test/java/org/apache/maven/scm/provider/svn/repository/SvnScmProviderRepositoryTest.java Tue Jul 26 02:16:45 2005
@@ -17,10 +17,10 @@
  */
 
 import org.apache.maven.scm.ScmTestCase;
+import org.apache.maven.scm.manager.ScmManager;
 import org.apache.maven.scm.provider.svn.SvnScmProvider;
 import org.apache.maven.scm.repository.ScmRepository;
 import org.apache.maven.scm.repository.ScmRepositoryException;
-import org.codehaus.plexus.scm.ScmManager;
 
 import java.io.File;
 

Modified: maven/scm/trunk/maven-scm-test/pom.xml
URL: http://svn.apache.org/viewcvs/maven/scm/trunk/maven-scm-test/pom.xml?rev=225265&r1=225264&r2=225265&view=diff
==============================================================================
--- maven/scm/trunk/maven-scm-test/pom.xml (original)
+++ maven/scm/trunk/maven-scm-test/pom.xml Tue Jul 26 02:16:45 2005
@@ -14,9 +14,9 @@
       <version>1.0-alpha-2-SNAPSHOT</version>
     </dependency>
     <dependency>
-      <groupId>plexus</groupId>
-      <artifactId>plexus-scm</artifactId>
-      <version>1.0-alpha-1-SNAPSHOT</version>
+      <groupId>org.apache.maven.scm</groupId>
+      <artifactId>maven-scm-manager-plexus</artifactId>
+      <version>1.0-alpha-2-SNAPSHOT</version>
     </dependency>
   </dependencies>
 </project>

Modified: maven/scm/trunk/maven-scm-test/src/main/java/org/apache/maven/scm/ScmTestCase.java
URL: http://svn.apache.org/viewcvs/maven/scm/trunk/maven-scm-test/src/main/java/org/apache/maven/scm/ScmTestCase.java?rev=225265&r1=225264&r2=225265&view=diff
==============================================================================
--- maven/scm/trunk/maven-scm-test/src/main/java/org/apache/maven/scm/ScmTestCase.java (original)
+++ maven/scm/trunk/maven-scm-test/src/main/java/org/apache/maven/scm/ScmTestCase.java Tue Jul 26 02:16:45 2005
@@ -17,9 +17,9 @@
  */
 
 import junit.framework.TestCase;
+import org.apache.maven.scm.manager.ScmManager;
 import org.apache.maven.scm.repository.ScmRepository;
 import org.codehaus.plexus.PlexusTestCase;
-import org.codehaus.plexus.scm.ScmManager;
 import org.codehaus.plexus.util.FileUtils;
 import org.codehaus.plexus.util.StringUtils;
 import org.codehaus.plexus.util.cli.CommandLineUtils;

Modified: maven/scm/trunk/maven-scm-test/src/main/java/org/apache/maven/scm/tck/command/checkin/CheckInCommandTckTest.java
URL: http://svn.apache.org/viewcvs/maven/scm/trunk/maven-scm-test/src/main/java/org/apache/maven/scm/tck/command/checkin/CheckInCommandTckTest.java?rev=225265&r1=225264&r2=225265&view=diff
==============================================================================
--- maven/scm/trunk/maven-scm-test/src/main/java/org/apache/maven/scm/tck/command/checkin/CheckInCommandTckTest.java (original)
+++ maven/scm/trunk/maven-scm-test/src/main/java/org/apache/maven/scm/tck/command/checkin/CheckInCommandTckTest.java Tue Jul 26 02:16:45 2005
@@ -23,9 +23,9 @@
 import org.apache.maven.scm.command.add.AddScmResult;
 import org.apache.maven.scm.command.checkin.CheckInScmResult;
 import org.apache.maven.scm.command.checkout.CheckOutScmResult;
+import org.apache.maven.scm.manager.ScmManager;
 import org.apache.maven.scm.repository.ScmRepository;
 import org.codehaus.plexus.PlexusTestCase;
-import org.codehaus.plexus.scm.ScmManager;
 import org.codehaus.plexus.util.FileUtils;
 
 import java.io.File;
@@ -107,8 +107,8 @@
             FileUtils.deleteDirectory( repositoryRoot );
         }
 
-        assertTrue( "Could not make the repository root directory: " + repositoryRoot.getAbsolutePath(),
-                    repositoryRoot.mkdirs() );
+        assertTrue( "Could not make the repository root directory: " + repositoryRoot.getAbsolutePath(), repositoryRoot
+            .mkdirs() );
 
         workingDirectory = getWorkingCopy();
 
@@ -117,8 +117,8 @@
             FileUtils.deleteDirectory( workingDirectory );
         }
 
-        assertTrue( "Could not make the workingapache.maven.scm.manager.plexus.DefaultScmManager</implementation>
       <requirements>
         <requirement>
           <role>org.apache.maven.scm.provider.ScmProvider</role>

Modified: maven/scm/trunk/maven-scm-plugin/pom.xml
URL: http://svn.apache.org/viewcvs/maven/scm/trunk/maven-scm-plugin/pom.xml?rev=225265&r1=225264&r2=225265&view=diff
==============================================================================
--- maven/scm/trunk/maven-scm-plugin/pom.xml (original)
+++ maven/scm/trunk/maven-scm-plugin/pom.xml Tue Jul 26 02:16:45 2005
@@ -11,9 +11,9 @@
   <version>1.0-alpha-2-SNAPSHOT</version>
   <dependencies>
     <dependency>
-      <groupId>plexus</groupId>
-      <artifactId>plexus-scm</artifactId>
-      <version>1.0-alpha-1-SNAPSHOT</version>
+      <groupId>org.apache.maven.scm</groupId>
+      <artifactId>maven-scm-manager-plexus</artifactId>
+      <version>1.0-alpha-2-SNAPSHOT</version>
     </dependency>
     <dependency>
       <groupId>org.apache.maven.scm</groupId>

Modified: maven/ directory: " + workingDirectory.getAbsolutePath(),
-                    workingDirectory.mkdirs() );
+        assertTrue( "Could not make the working directory: " + workingDirectory.getAbsolutePath(), workingDirectory
+            .mkdirs() );
 
         assertionDirectory = getAssertionCopy();
 
@@ -136,7 +136,8 @@
 
         repository = scmManager.makeScmRepository( getScmUrl() );
 
-        CheckOutScmResult result = scmManager.checkOut( repository, new ScmFileSet( workingDirectory ), null );
+        CheckOutScmResult result = scmManager.getProviderByUrl( getScmUrl() )
+            .checkOut( repository, new ScmFileSet( workingDirectory ), null );
 
         assertResultIsSuccess( result );
     }
@@ -164,13 +165,13 @@
 
         changeReadmeTxt( readmeTxt );
 
-        AddScmResult addResult = scmManager.add( repository, new ScmFileSet( workingDirectory,
-                                                                             "src/main/java/Foo.java", null ) );
+        AddScmResult addResult = scscm/trunk/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/AbstractScmMojo.java
URL: http://svn.apache.org/viewcvs/maven/scm/trunk/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/AbstractScmMojo.java?rev=225265&r1=225264&r2=225265&view=diff
==============================================================================
--- maven/scm/trunk/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/AbstractScmMojo.java (original)
+++ maven/scm/trunk/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/AbstractScmMojo.java Tue Jul 26 02:16:45 2005
@@ -21,9 +21,9 @@
 import org.apache.maven.scm.ScmException;
 import org.apache.maven.scm.ScmFileSet;
 import org.apache.maven.scm.ScmResult;
+import org.apache.maven.scm.manager.ScmManager;
 import org.apache.maven.scm.provider.svn.repository.SvnScmProviderRepository;
 import org.apache.maven.scm.repository.ScmRepository;
-import org.codehaus.plexus.scm.ScmManager;
 
 import java.io.File;
 import java.io.IOException;
@@ -85,7 +85,7 @@
     prmManager.getProviderByUrl( getScmUrl() )
+            .add( repository, new ScmFileSet( workingDirectory, "src/main/java/Foo.java", null ) );
 
         assertResultIsSuccess( addResult );
 
-        CheckInScmResult result = scmManager.checkIn( repository, new ScmFileSet( workingDirectory ), null,
-                                                      "Commit message" );
+        CheckInScmResult result = scmManager.getProviderByUrl( getScmUrl() )
+            .checkIn( repository, new ScmFileSet( workingDirectory ), null, "Commit message" );
 
         assertResultIsSuccess( result );
 
@@ -200,7 +201,8 @@
 
         assertNull( result.getCommandOutput() );
 
-        CheckOutScmResult checkoutResult = scmManager.checkOut( repository, new ScmFileSet( assertionDirectory ), null );
+        CheckOutScmResult checkoutResult = scmManager.getProviderByUrl( getScmUrl() )
+            .checkOut( repository, new ScmFileSet( assertionDirectory ), null );
 
         assertResultIsSuccess( checkoutResult );
 
@@ -242,ivate String excludes;
 
     /**
-     * @parameter expression="${component.org.codehaus.plexus.scm.ScmManager}"
+     * @parameter expression="${component.org.apache.maven.scm.manager.ScmManager}"
      * @required
      * @readonly
      */
@@ -124,11 +124,11 @@
     {
         ScmRepository repository;
 
-        getScmManager().addListener( new DefaultLog( getLog() ) );
-
         try
         {
             repository = getScmManager().makeScmRepository( getConnectionUrl() );
+
+            getScmManager().getProviderByRepository( repository ).addListener( new DefaultLog( getLog() ) );
 
             if ( repository.getProvider().equals( "svn" ) )
             {

Modified: maven/scm/trunk/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/CheckinMojo.java
URL: http://svn.apache.org/viewcvs/maven/scm/trunk/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/CheckinMojo.java?rev=225265&r1=225264&r2=225265&view=diff
============================================================================14 +244,17 @@
 
         changeReadmeTxt( readmeTxt );
 
-        AddScmResult addResult = scmManager.add( repository, new ScmFileSet( workingDirectory,
-                                                                             "src/main/java/Foo.java", null ) );
+        AddScmResult addResult = scmManager.getProviderByUrl( getScmUrl() )
+            .add( repository, new ScmFileSet( workingDirectory, "src/main/java/Foo.java", null ) );
 
         assertResultIsSuccess( addResult );
 
-        CheckInScmResult result = scmManager.checkIn( repository,
-                                                      new ScmFileSet( workingDirectory, "**/Foo.java", null ), null,
-                                                      "Commit message" );
+        CheckInScmResult result = scmManager.getProviderByUrl( getScmUrl() ).checkIn( repository,
+                                                                                      new ScmFileSet( workingDirectory,
+                                                 ==
--- maven/scm/trunk/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/CheckinMojo.java (original)
+++ maven/scm/trunk/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/CheckinMojo.java Tue Jul 26 02:16:45 2005
@@ -45,7 +45,9 @@
         {
             ScmRepository repository = getScmRepository();
 
-            CheckInScmResult result = getScmManager().checkIn( repository, getFileSet(), null, message );
+            CheckInScmResult result = getScmManager().getProviderByRepository( repository ).checkIn( repository,
+                                                                                                     getFileSet(),
+                                                                                                     null, message );
 
             checkResult( result );
         }

Modified: maven/scm/trunk/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/CheckoutMojo.java
URL: http://svn.apache.org/viewcvs/maven/scm/trunk/maven-scm-plugin/src/main/java/org/apache/                                                     "**/Foo.java",
+                                                                                                      null ),
+                                                                                      null,
+                                                                                      "Commit message" );
 
         assertResultIsSuccess( result );
 
@@ -273,7 +278,8 @@
 
         assertNull( result.getCommandOutput() );
 
-        CheckOutScmResult checkoutResult = scmManager.checkOut( repository, new ScmFileSet( assertionDirectory ), null );
+        CheckOutScmResult checkoutResult = scmManager.getProviderByUrl( getScmUrl() )
+            .checkOut( repository, new ScmFileSet( assertionDirectory ), null );
 
         assertResultIsSuccess( checkoutResult );
 

Modified: maven/scm/trunk/maven-scm-test/src/main/java/org/apache/maven/scm/tck/command/checkout/CheckOutCommandTckTest.java
URL: http://svn.apache.org/viewcvs/maven/scm/trunk/mamaven/scm/plugin/CheckoutMojo.java?rev=225265&r1=225264&r2=225265&view=diff
==============================================================================
--- maven/scm/trunk/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/CheckoutMojo.java (original)
+++ maven/scm/trunk/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/CheckoutMojo.java Tue Jul 26 02:16:45 2005
@@ -62,7 +62,9 @@
                 currentTag = tag;
             }
 
-            CheckOutScmResult result = getScmManager().checkOut( repository, getFileSet(), currentTag );
+            CheckOutScmResult result = getScmManager().getProviderByRepository( repository ).checkOut( repository,
+                                                                                                       getFileSet(),
+                                                                                                       currentTag );
 
             checkResult( result );
         }

Modified: maven/scm/trunk/maven-scm-plugin/src/main/java/org/ven-scm-test/src/main/java/org/apache/maven/scm/tck/command/checkout/CheckOutCommandTckTest.java?rev=225265&r1=225264&r2=225265&view=diff
==============================================================================
--- maven/scm/trunk/maven-scm-test/src/main/java/org/apache/maven/scm/tck/command/checkout/CheckOutCommandTckTest.java (original)
+++ maven/scm/trunk/maven-scm-test/src/main/java/org/apache/maven/scm/tck/command/checkout/CheckOutCommandTckTest.java Tue Jul 26 02:16:45 2005
@@ -20,9 +20,9 @@
 import org.apache.maven.scm.ScmFileSet;
 import org.apache.maven.scm.ScmTestCase;
 import org.apache.maven.scm.command.checkout.CheckOutScmResult;
+import org.apache.maven.scm.manager.ScmManager;
 import org.apache.maven.scm.repository.ScmRepository;
 import org.codehaus.plexus.PlexusTestCase;
-import org.codehaus.plexus.scm.ScmManager;
 import org.codehaus.plexus.util.FileUtils;
 
 import java.io.File;
@@ -47,7 +47,7 @@
  * @version $Id$
  */
 public abstract class CheckOutCommandTckTest
-	extends ScmTestCasapache/maven/scm/plugin/DiffMojo.java
URL: http://svn.apache.org/viewcvs/maven/scm/trunk/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/DiffMojo.java?rev=225265&r1=225264&r2=225265&view=diff
==============================================================================
--- maven/scm/trunk/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/DiffMojo.java (original)
+++ maven/scm/trunk/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/DiffMojo.java Tue Jul 26 02:16:45 2005
@@ -63,7 +63,10 @@
         {
             ScmRepository repository = getScmRepository();
 
-            DiffScmResult result = getScmManager().diff( repository, getFileSet(), startRevision, endRevision );
+            DiffScmResult result = getScmManager().getProviderByRepository( repository ).diff( repository,
+                                                                                               getFileSet(),
+                                                                                               e
+    extends ScmTestCase
 {
     private File workingDirectory;
 
@@ -56,7 +56,7 @@
     // ----------------------------------------------------------------------
 
     public abstract String getScmUrl()
-    	throws Exception;
+        throws Exception;
 
     /**
      * Copy the existing checked in repository to the working directory.
@@ -66,7 +66,7 @@
      * @throws Exception
      */
     public abstract void initRepo()
-		throws Exception;
+        throws Exception;
 
     // ----------------------------------------------------------------------
     // Directories the test must use
@@ -94,7 +94,8 @@
             FileUtils.deleteDirectory( repositoryRoot );
         }
 
-        assertTrue( "Could not make the repository root directory: " + repositoryRoot.getAbsolutePath(), repositoryRoot.mkdirs() );
+        assertTrue( "Could not make the repository root directory: " + repositoryRoot.getAbsolutePath(), repositoryRoot
+            .mkdirs() );
 
         workingDirectory = getWorkingCopy();
 
@@ -1startRevision,
+                                                                                               endRevision );
 
             checkResult( result );
 

Modified: maven/scm/trunk/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/StatusMojo.java
URL: http://svn.apache.org/viewcvs/maven/scm/trunk/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/StatusMojo.java?rev=225265&r1=225264&r2=225265&view=diff
==============================================================================
--- maven/scm/trunk/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/StatusMojo.java (original)
+++ maven/scm/trunk/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/StatusMojo.java Tue Jul 26 02:16:45 2005
@@ -41,7 +41,8 @@
         {
             ScmRepository repository = getScmRepository();
 
-            StatusScmResult result = getScmManager().status( repository, getFileSet() );
+            StatusScmResult result = getScmManager().getProviderByRepository( repository ).status( rep03,7 +104,8 @@
             FileUtils.deleteDirectory( workingDirectory );
         }
 
-        assertTrue( "Could not make the working directory: " + workingDirectory.getAbsolutePath(), workingDirectory.mkdirs() );
+        assertTrue( "Could not make the working directory: " + workingDirectory.getAbsolutePath(), workingDirectory
+            .mkdirs() );
 
         initRepo();
     }
@@ -117,7 +119,8 @@
 
         ScmRepository repository = scmManager.makeScmRepository( getScmUrl() );
 
-        CheckOutScmResult result = scmManager.checkOut( repository, new ScmFileSet( workingDirectory ), tag );
+        CheckOutScmResult result = scmManager.getProviderByUrl( getScmUrl() )
+            .checkOut( repository, new ScmFileSet( workingDirectory ), tag );
 
         assertResultIsSuccess( result );
 

Modified: maven/scm/trunk/maven-scm-test/src/main/java/org/apache/maven/scm/tck/command/diff/DiffCommandTckTest.java
URL: http://svn.apache.org/viewcvs/maven/scm/trunk/maven-scm-test/src/main/java/org/apache/maveository,
+                                                                                                   getFileSet() );
 
             checkResult( result );
         }

Modified: maven/scm/trunk/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/TagMojo.java
URL: http://svn.apache.org/viewcvs/maven/scm/trunk/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/TagMojo.java?rev=225265&r1=225264&r2=225265&view=diff
==============================================================================
--- maven/scm/trunk/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/TagMojo.java (original)
+++ maven/scm/trunk/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/TagMojo.java Tue Jul 26 02:16:45 2005
@@ -45,7 +45,8 @@
         {
             ScmRepository repository = getScmRepository();
 
-            TagScmResult result = getScmManager().tag( repository, getFileSet(), tag );
+            TagScmResult result = getScmManager().getProviderByRepository( repository ).tag( repository, gen/scm/tck/command/diff/DiffCommandTckTest.java?rev=225265&r1=225264&r2=225265&view=diff
==============================================================================
--- maven/scm/trunk/maven-scm-test/src/main/java/org/apache/maven/scm/tck/command/diff/DiffCommandTckTest.java (original)
+++ maven/scm/trunk/maven-scm-test/src/main/java/org/apache/maven/scm/tck/command/diff/DiffCommandTckTest.java Tue Jul 26 02:16:45 2005
@@ -23,9 +23,9 @@
 import org.apache.maven.scm.command.add.AddScmResult;
 import org.apache.maven.scm.command.checkout.CheckOutScmResult;
 import org.apache.maven.scm.command.diff.DiffScmResult;
+import org.apache.maven.scm.manager.ScmManager;
 import org.apache.maven.scm.repository.ScmRepository;
 import org.codehaus.plexus.PlexusTestCase;
-import org.codehaus.plexus.scm.ScmManager;
 import org.codehaus.plexus.util.FileUtils;
 
 import java.io.File;
@@ -41,14 +41,14 @@
  * @version $Id$
  */
 public abstract class DiffCommandTckTest
-	extends ScmTestCase
+    extends ScmTestCase
 {
     // -tFileSet(),
+                                                                                             tag );
 
             checkResult( result );
         }

Modified: maven/scm/trunk/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/UpdateMojo.java
URL: http://svn.apache.org/viewcvs/maven/scm/trunk/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/UpdateMojo.java?rev=225265&r1=225264&r2=225265&view=diff
==============================================================================
--- maven/scm/trunk/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/UpdateMojo.java (original)
+++ maven/scm/trunk/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/UpdateMojo.java Tue Jul 26 02:16:45 2005
@@ -62,7 +62,9 @@
                 currentTag = tag;
             }
 
-            UpdateScmResult result = getScmManager().update( repository, getFileSet(), currentTag );
+            UpdateScmResult result = getScmManager().getProviderByRepository( repository ).update( repository,
+                                                                                                   getFileSet(),
+                                                                                                   currentTag );
 
             checkResult( result );
         }

Modified: maven/scm/trunk/maven-scm-providers/maven-scm-provider-clearcase/src/main/java/org/apache/maven/scm/provider/clearcase/ClearCaseScmProvider.java
URL: http://svn.apache.org/viewcvs/maven/scm/trunk/maven-scm-providers/maven-scm-provider-clearcase/src/main/java/org/apache/maven/scm/provider/clearcase/ClearCaseScmProvider.java?rev=225265&r1=225264&r2=225265&view=diff
==============================================================================
--- maven/scm/trunk/maven-scm-providers/maven-scm-provider-clearcase/src/main/java/org/apache/maven/scm/provider/clearcase/ClearCaseScmProvider.java (original)
+++ maven/scm/trunk/maven-scm-providers/maven-scm-provider-clearcase/src/main/java/org/apache/maven/scm/provider/clearcase/ClearCaseScmProvider.java Tue Jul 26 02:16:45 2005
@@ -16,27 +16,29 @@
  * limitations under the License.
  */
 
-import java.util.Map;
-
+import org.apache.maven.scm.CommandParameters;
+import org.apache.maven.scm.ScmException;
+import org.apache.maven.scm.ScmFileSet;
+import org.apache.maven.scm.command.changelog.ChangeLogScmResult;
+import org.apache.maven.scm.command.checkout.CheckOutScmResult;
 import org.apache.maven.scm.provider.AbstractScmProvider;
 import org.apache.maven.scm.provider.ScmProviderRepository;
+import org.apache.maven.scm.provider.clearcase.command.changelog.ClearCaseChangeLogCommand;
+import org.apache.maven.scm.provider.clearcase.command.checkout.ClearCaseCheckOutCommand;
 import org.apache.maven.scm.provider.clearcase.repository.ClearCaseScmProviderRepository;
+import org.apache.maven.scm.repository.ScmRepository;
 import org.apache.maven.scm.repository.ScmRepositoryException;
 
 import org.codehaus.plexus.util.StringUtils;
 
 /**
  * @author <a href="mailto:trygvis@inamo.no">Trygve Laugst&oslash;l</a>
+ * @author <a href="mailto:evenisse@apache.org">Emmanuel Venisse</a>
  * @version $Id$
  */
 public class ClearCaseScmProvider
     extends AbstractScmProvider
 {
-    /**
-     * @requirement org.apache.maven.scm.CvsCommand
-     */
-    private Map commands;
-
     // ----------------------------------------------------------------------
     // ScmProvider Implementation
     // ----------------------------------------------------------------------
@@ -52,17 +54,34 @@
         return new ClearCaseScmProviderRepository();
     }
 
-    // ----------------------------------------------------------------------
-    // AbstractScmProvider Implementation
-    // ----------------------------------------------------------------------
+    public String getScmType()
+    {
+        return "clearcase";
+    }
 
-    protected Map getCommands()
+    /**
+     * @see org.apache.maven.scm.provider.AbstractScmProvider#changelog(org.apache.maven.scm.repository.ScmRepository, org.apache.maven.scm.ScmFileSet, org.apache.maven.scm.CommandParameters)
+     */
+    public ChangeLogScmResult changelog( ScmRepository repository, ScmFileSet fileSet, CommandParameters parameters )
+        throws ScmException
     {
-        return commands;
+        ClearCaseChangeLogCommand command = new ClearCaseChangeLogCommand();
+
+        command.setLogger( getLogger() );
+
+        return (ChangeLogScmResult) command.execute( repository.getProviderRepository(), fileSet, parameters );
     }
 
-    public String getScmType()
+    /**
+     * @see org.apache.maven.scm.provider.AbstractScmProvider#checkout(org.apache.maven.scm.repository.ScmRepository, org.apache.maven.scm.ScmFileSet, org.apache.maven.scm.CommandParameters)
+     */
+    public CheckOutScmResult checkout( ScmRepository repository, ScmFileSet fileSet, CommandParameters parameters )
+        throws ScmException
     {
-        return "clearcase";
+        ClearCaseCheckOutCommand command = new ClearCaseCheckOutCommand();
+
+        command.setLogger( getLogger() );
+
+        return (CheckOutScmResult) command.execute( repository.getProviderRepository(), fileSet, parameters );
     }
 }

Modified: maven/scm/trunk/maven-scm-providers/maven-scm-provider-clearcase/src/main/resources/META-INF/plexus/components.xml
URL: http://svn.apache.org/viewcvs/maven/scm/trunk/maven-scm-providers/maven-scm-provider-clearcase/src/main/resources/META-INF/plexus/components.xml?rev=225265&r1=225264&r2=225265&view=diff
==============================================================================
--- maven/scm/trunk/maven-scm-providers/maven-scm-provider-clearcase/src/main/resources/META-INF/plexus/components.xml (original)
+++ maven/scm/trunk/maven-scm-providers/maven-scm-provider-clearcase/src/main/resources/META-INF/plexus/components.xml Tue Jul 26 02:16:45 2005
@@ -1,39 +1,9 @@
 <component-set>
   <components>
-
     <component>
       <role>org.apache.maven.scm.Scm</role>
       <role-hint>clearcase</role-hint>
       <implementation>org.apache.maven.scm.provider.clearcase.ClearCaseScmProvider</implementation>
-      <requirements>
-        <requirement>
-          <role>org.apache.maven.scm.provider.svn.command.SvnCommand</role>
-          <field-name>commands</field-name>
-        </requirement>
-      </requirements>
     </component>
-
-    <!--
-     | The commands
-     |-->
-
-    <component>
-      <role>org.apache.maven.scm.provider.clearcase.command.ClearCaseCommand</role>
-      <role-hint>changelog</role-hint>
-      <implementation>org.apache.maven.scm.provider.clearcase.command.changelog.ClearCaseChangeLogCommand</implementation>
-    </component>
-
-    <component>
-      <role>org.apache.maven.scm.provider.clearcase.command.ClearCaseCommand</role>
-      <role-hint>checkout</role-hint>
-      <implementation>org.apache.maven.scm.provider.clearcase.command.checkout.ClearCaseCheckOutCommand</implementation>
-    </component>
-
-    <component>
-      <role>org.apache.maven.scm.provider.clearcase.command.ClearCaseCommand</role>
-      <role-hint>update</role-hint>
-      <implementation>org.apache.maven.scm.provider.clearcase.command.update.ClearcaseUpdateCommand</implementation>
-    </component>
-
   </components>
 </component-set>

Modified: maven/scm/trunk/maven-scm-providers/maven-scm-provider-cvs/src/main/java/org/apache/maven/scm/provider/cvslib/CvsScmProvider.java
URL: http://svn.apache.org/viewcvs/maven/scm/trunk/maven-scm-providers/maven-scm-provider-cvs/src/main/java/org/apache/maven/scm/provider/cvslib/CvsScmProvider.java?rev=225265&r1=225264&r2=225265&view=diff
==============================================================================
--- maven/scm/trunk/maven-scm-providers/maven-scm-provider-cvs/src/main/java/org/apache/maven/scm/provider/cvslib/CvsScmProvider.java (original)
+++ maven/scm/trunk/maven-scm-providers/maven-scm-provider-cvs/src/main/java/org/apache/maven/scm/provider/cvslib/CvsScmProvider.java Tue Jul 26 02:16:45 2005
@@ -16,9 +16,33 @@
  * limitations under the License.
  */
 
+import org.apache.maven.scm.CommandParameters;
+import org.apache.maven.scm.ScmException;
+import org.apache.maven.scm.ScmFileSet;
+import org.apache.maven.scm.command.add.AddScmResult;
+import org.apache.maven.scm.command.changelog.ChangeLogScmResult;
+import org.apache.maven.scm.command.checkin.CheckInScmResult;
+import org.apache.maven.scm.command.checkout.CheckOutScmResult;
+import org.apache.maven.scm.command.diff.DiffScmResult;
+import org.apache.maven.scm.command.remove.RemoveScmResult;
+import org.apache.maven.scm.command.status.StatusScmResult;
+import org.apache.maven.scm.command.tag.TagScmResult;
+import org.apache.maven.scm.command.update.UpdateScmResult;
+import org.apache.maven.scm.login.LoginScmResult;
 import org.apache.maven.scm.provider.AbstractScmProvider;
 import org.apache.maven.scm.provider.ScmProviderRepository;
+import org.apache.maven.scm.provider.cvslib.command.add.CvsAddCommand;
+import org.apache.maven.scm.provider.cvslib.command.changelog.CvsChangeLogCommand;
+import org.apache.maven.scm.provider.cvslib.command.checkin.CvsCheckInCommand;
+import org.apache.maven.scm.provider.cvslib.command.checkout.CvsCheckOutCommand;
+import org.apache.maven.scm.provider.cvslib.command.diff.CvsDiffCommand;
+import org.apache.maven.scm.provider.cvslib.command.login.CvsLoginCommand;
+import org.apache.maven.scm.provider.cvslib.command.remove.CvsRemoveCommand;
+import org.apache.maven.scm.provider.cvslib.command.status.CvsStatusCommand;
+import org.apache.maven.scm.provider.cvslib.command.tag.CvsTagCommand;
+import org.apache.maven.scm.provider.cvslib.command.update.CvsUpdateCommand;
 import org.apache.maven.scm.provider.cvslib.repository.CvsScmProviderRepository;
+import org.apache.maven.scm.repository.ScmRepository;
 import org.apache.maven.scm.repository.ScmRepositoryException;
 import org.apache.maven.scm.repository.UnknownRepositoryStructure;
 import org.codehaus.plexus.util.FileUtils;
@@ -26,7 +50,6 @@
 
 import java.io.File;
 import java.io.IOException;
-import java.util.Map;
 import java.util.List;
 import java.util.ArrayList;
 
@@ -50,9 +73,6 @@
     /** */
     private final static String TRANSPORT_EXT = "ext";
 
-    /** @requirement org.apache.maven.scm.CvsCommand */
-    private Map commands;
-
     // ----------------------------------------------------------------------
     //
     // ----------------------------------------------------------------------
@@ -100,8 +120,11 @@
         }
 
         File cvsRootFile = new File( cvsDirectory, "Root" );
+
         File moduleFile = new File( cvsDirectory, "Repository" );
+
         String cvsRoot;
+
         String module;
 
         try
@@ -131,15 +154,6 @@
         return result.messages;
     }
 
-    // ----------------------------------------------------------------------
-    // AbstractScmProvider Implementation
-    // ----------------------------------------------------------------------
-
-    protected Map getCommands()
-    {
-        return commands;
-    }
-
     public String getScmType()
     {
         return "cvs";
@@ -263,7 +277,8 @@
 
                 if ( index == -1 )
                 {
-                    result.messages.add( "The user_password_host part must be on the form: <username>:<password>@<hostname>." );
+                    result.messages
+                        .add( "The user_password_host part must be on the form: <username>:<password>@<hostname>." );
 
                     return result;
                 }
@@ -312,7 +327,8 @@
 
                     if ( index == -1 )
                     {
-                        result.messages.add( "The user_password_host part must be on the form: <username>:<password>@<hostname>." );
+                        result.messages
+                            .add( "The user_password_host part must be on the form: <username>:<password>@<hostname>." );
 
                         return result;
                     }
@@ -333,7 +349,7 @@
 
                 module = tokens[4];
             }
-            
+
             String userHostPort = host;
             if ( user != null )
             {
@@ -401,5 +417,135 @@
         }
 
         return result;
+    }
+---------------------------------------------------------------------
     // Methods the test has to implement
     // ----------------------------------------------------------------------
 
     public abstract String getScmUrl()
-    	throws Exception;
+        throws Exception;
 
     /**
      * Copy the existing checked in repository to the working directory.
@@ -58,19 +58,24 @@
      * @throws Exception
      */
     public abstract void initRepo()
-		throws Exception;
+        throws Exception;
 
     private void checkOut( File workingDirectory, ScmRepository repository )
         throws Exception
     {
-        CheckOutScmResult result = getScmManager().checkOut( repository, new ScmFileSet( workingDirectory ), null );
+        CheckOutScmResult result = getScmManager().getProviderByUrl( getScmUrl() )
+            .checkOut( repository, new ScmFileSet( workingDirectory ), null );
+
         assertTrue( "Check result was successful, output: " + result.getCommandOutput(), result.isSuccess() );
     }
+    /**
+     * @see org.apache.maven.scm.provider.AbstractScmProvider#add(org.apache.maven.scm.repository.ScmRepository, org.apache.maven.scm.ScmFileSet, org.apache.maven.scm.CommandParameters)
+     */
+    public AddScmResult add( ScmRepository repository, ScmFileSet fileSet, CommandParameters parameters )
+        throws ScmException
+    {
+        CvsAddCommand command = new CvsAddCommand();
+
+        command.setLogger( getLogger() );
+
+        return (AddScmResult) command.execute( repository.getProviderRepository(), fileSet, parameters );
+    }
+
+    /**
+     * @see org.apache.maven.scm.provider.AbstractScmProvider#changelog(org.apache.maven.scm.repository.ScmRepository, org.apache.maven.scm.ScmFileSet, org.apache.maven.scm.CommandParameters)
+     */
+    public ChangeLogScmResult changelog( ScmRepository repository, ScmFileSet fileSet, CommandParameters parameters )
+        throws ScmException
+    {
+        CvsChangeLogCommand command = new CvsChangeLogCommand();
+
+        command.setLogg
 
     private void addToRepository( File workingDirectory, File file, ScmRepository repository )
         throws Exception
     {
-        AddScmResult result = getScmManager().add( repository, new ScmFileSet( workingDirectory, file ) );
+        AddScmResult result = getScmManager().getProviderByUrl( getScmUrl() ).add(
+                                                                                   repository,
+                                                                                   new ScmFileSet( workingDirectory,
+                                                                                                   file ) );
         assertTrue( "Check result was successful, output: " + result.getCommandOutput(), result.isSuccess() );
 
         List addedFiles = result.getAddedFiles();
@@ -102,7 +107,7 @@
     // ----------------------------------------------------------------------
 
     public void setUp()
-    	throws Exception
+        throws Exception
     {
         super.setUp();
 
@@ er( getLogger() );
+
+        return (ChangeLogScmResult) command.execute( repository.getProviderRepository(), fileSet, parameters );
+    }
+
+    /**
+     * @see org.apache.maven.scm.provider.AbstractScmProvider#checkin(org.apache.maven.scm.repository.ScmRepository, org.apache.maven.scm.ScmFileSet, org.apache.maven.scm.CommandParameters)
+     */
+    public CheckInScmResult checkin( ScmRepository repository, ScmFileSet fileSet, CommandParameters parameters )
+        throws ScmException
+    {
+        CvsCheckInCommand command = new CvsCheckInCommand();
+
+        command.setLogger( getLogger() );
+
+        return (CheckInScmResult) command.execute( repository.getProviderRepository(), fileSet, parameters );
+    }
+
+    /**
+     * @see org.apache.maven.scm.provider.AbstractScmProvider#checkout(org.apache.maven.scm.repository.ScmRepository, org.apache.maven.scm.ScmFileSet, org.apache.maven.scm.CommandParameters)
+     */
+    public CheckOutScmResult checkout( ScmRepository repository, ScmFileSet fileS-116,7 +121,7 @@
     }
 
     public void testDiffCommand()
-    	throws Exception
+        throws Exception
     {
         ScmRepository repository = makeScmRepository( getScmUrl() );
 
@@ -174,7 +179,9 @@
 
         ScmManager scmManager = getScmManager();
 
-        DiffScmResult result = scmManager.diff( repository, new ScmFileSet( getWorkingCopy() ), null, null );
+        DiffScmResult result = scmManager.getProviderByUrl( getScmUrl() ).diff( repository,
+                                                                                new ScmFileSet( getWorkingCopy() ),
+                                                                                null, null );
 
         assertNotNull( "The command returned a null result.", result );
 
@@ -189,6 +196,7 @@
         Map differences = result.getDifferences();
 
         assertEquals( "Expected 3 files in the changed files list " + changedFiles, 3, changedFiles.size() );
+
         assertEquals( "Expected 3 files in the differences list " + differences,et, CommandParameters parameters )
+        throws ScmException
+    {
+        CvsCheckOutCommand command = new CvsCheckOutCommand();
+
+        command.setLogger( getLogger() );
+
+        return (CheckOutScmResult) command.execute( repository.getProviderRepository(), fileSet, parameters );
+    }
+
+    /**
+     * @see org.apache.maven.scm.provider.AbstractScmProvider#diff(org.apache.maven.scm.repository.ScmRepository, org.apache.maven.scm.ScmFileSet, org.apache.maven.scm.CommandParameters)
+     */
+    public DiffScmResult diff( ScmRepository repository, ScmFileSet fileSet, CommandParameters parameters )
+        throws ScmException
+    {
+        CvsDiffCommand command = new CvsDiffCommand();
+
+        command.setLogger( getLogger() );
+
+        return (DiffScmResult) command.execute( repository.getProviderRepository(), fileSet, parameters );
+    }
+
+    /**
+     * @see org.apache.maven.scm.provider.AbstractScmProvider#login(org.apache.maven.scm.repository.ScmRepository, org.apache.maven.scm.ScmF 3, differences.size() );
 
         // ----------------------------------------------------------------------
@@ -203,7 +211,8 @@
 
         assertEquals( ScmFileStatus.MODIFIED, file.getStatus() );
 
-        assertEquals( "@@ -0,0 +1 @@\n+/src/main/java/org/Foo.java\n\\ No newline at end of file\n", differences.get( file.getPath() ).toString() );
+        assertEquals( "@@ -0,0 +1 @@\n+/src/main/java/org/Foo.java\n\\ No newline at end of file\n", differences
+            .get( file.getPath() ).toString() );
 
         file = (ScmFile) files.next();
 
@@ -211,13 +220,16 @@
 
         assertEquals( ScmFileStatus.MODIFIED, file.getStatus() );
 
-        assertEquals( "@@ -1 +1 @@\n-/readme.txt\n\\ No newline at end of file\n+changed readme.txt\n\\ No newline at end of file\n", differences.get( file.getPath() ).toString() );
+        assertEquals(
+                      "@@ -1 +1 @@\n-/readme.txt\n\\ No newline at end of file\n+changed readme.txt\n\\ No newline at end of file\n",
+                      differences.get( file.getPath() ).toString() );
 
         file = (ScmFile) files.next();
 
         assertPath( "/project.xml", file.getPath() );
 
-        assertEquals( "@@ -0,0 +1 @@\n+changed project.xml\n\\ No newline at end of file\n", differences.get( file.getPath() ).toString() );
+        assertEquals( "@@ -0,0 +1 @@\n+changed project.xml\n\\ No newline at end of file\n", differences
+            .get( file.getPath() ).toString() );
 
         assertEquals( ScmFileStatus.MODIFIED, file.getStatus() );
     }
@@ -227,7 +239,7 @@
     // ----------------------------------------------------------------------
 
     private void assertFile( File root, String fileName )
-    	throws Exception
+        throws Exception
     {
         File file = new File( root, fileName );
 
@@ -239,7 +251,8 @@
 
         String actual = FileUtils.fileRead( file );
 
-        assertEquals( "The file doesn't contain the expected contents. File: " + file.getAbsolutePath(), expected, actual );
+        assertEquals( "The file doesn't contain the expected contents. File: " + file.getAbsolutePath(), expected,
+                      actual );
     }
 
 }

Modified: maven/scm/trunk/maven-scm-test/src/main/java/org/apache/maven/scm/tck/command/status/StatusCommandTckTest.java
URL: http://svn.apache.org/viewcvs/maven/scm/trunk/maven-scm-test/src/main/java/org/apache/maven/scm/tck/command/status/StatusCommandTckTest.java?rev=225265&r1=225264&r2=225265&view=diff
==============================================================================
--- maven/scm/trunk/maven-scm-test/src/main/java/org/apache/maven/scm/tck/command/status/StatusCommandTckTest.java (original)
+++ maven/scm/trunk/maven-scm-test/src/main/java/org/apache/maven/scm/tck/command/status/StatusCommandTckTest.java Tue Jul 26 02:16:45 2005
@@ -24,9 +24,9 @@
 import org.apache.maven.scm.command.checkin.CheckInScmResult;
 import org.apache.maven.scm.command.checkout.CheckOutScmResult;
 import org.apache.maven.scm.command.status.StatusScmResult;
+import org.apache.maven.scm.manager.ScmManager;
 import org.apache.maven.scm.repository.ScmRepository;
 import org.codehaus.plexus.PlexusTestCase;
-import org.codehaus.plexus.scm.ScmManager;
 import org.codehaus.plexus.util.FileUtils;
 
 import java.io.File;
@@ -53,14 +53,14 @@
  * @version $Id$
  */
 public abstract class StatusCommandTckTest
-	extends ScmTestCase
+    extends ScmTestCase
 {
     // ----------------------------------------------------------------------
     // Methods the test has to implement
     // ----------------------------------------------------------------------
 
     public abstract String getScmUrl()
-    	throws Exception;
+        throws Exception;
 
     /**
      * Copy the existing checked in repository to the working directory.
@@ -70,19 +70,24 @@
      * @throws Exception
      */
     public abstract void initRepo()
-		throws Exception;
+        throws Exception;
 
     private void checkOut( File workingDirectory, ScmRepository repository )
         throws Exception
     {
-        CheckOutScmResult result = getScmManager().checkOut( repository, new ScmFileSet( workingDirectory ), null );
+        CheckOutScmResult result = getScmManager().getProviderByUrl( getScmUrl() )
+            .checkOut( repository, new ScmFileSet( workingDirectory ), null );
+
         assertTrue( "Check result was successful, output: " + result.getCommandOutput(), result.isSuccess() );
     }
 
     private void addToRepository( File workingDirectory, File file, ScmRepository repository )
         throws Exception
     {
-        AddScmResult result = getScmManager().add( repository, new ScmFileSet( workingDirectory, file ) );
+        AddScmResult result = getScmManager().getProviderByUrl( getScmUrl() ).add(
+                                                                                   repository,
+                                                                                   new ScmFileSet( workingDirectory,
+                                                                                                   file ) );
         assertTrue( "Check result was successful, output: " + result.getCommandOutput(), result.isSuccess() );
 
         List addedFiles = result.getAddedFiles();
@@ -91,9 +96,11 @@
     }
 
     private void commit( File workingDirectory, ScmRepository repository )
-		throws Exception
+        throws Exception
     {
-        CheckInScmResult result = getScmManager().checkIn( repository, new ScmFileSet( workingDirectory ), null, "No msg" );
+        CheckInScmResult result = getScmManager().getProviderByUrl( getScmUrl() )
+            .checkIn( repository, new ScmFileSet( workingDirectory ), null, "No msg" );
+
         assertTrue( "Check result was successful, output: " + result.getCommandOutput(), result.isSuccess() );
 
         List committedFiles = result.getCheckedInFiles();
@@ -125,7 +132,7 @@
     // ----------------------------------------------------------------------
 
     public void setUp()
-    	throws Exception
+        throws Exception
     {
         super.setUp();
 
@@ -139,7 +146,7 @@
     }
 
     public void testStatusCommand()
-    	throws Exception
+        throws Exception
     {
         ScmRepository repository = makeScmRepository( getScmUrl() );
 
@@ -203,7 +210,8 @@
         // check that readme and project.xml are not updated/created
         // ----------------------------------------------------------------------
 
-        StatusScmResult result = scmManager.status( repository, new ScmFileSet( getUpdatingCopy() ) );
+        StatusScmResult result = scmManager.getProviderByUrl( getScmUrl() )
+            .status( repository, new ScmFileSet( getUpdatingCopy() ) );
 
         assertNotNull( "The command returned a null result.", result );
 
@@ -245,7 +253,7 @@
     // ----------------------------------------------------------------------
 
     private void assertFile( File root, String fileName )
-    	throws Exception
+        throws Exception
     {
         File file = new File( root, fileName );
 
@@ -257,6 +265,7 @@
 
         String actual = FileUtils.fileRead( file );
 
-        assertEquals( "The file doesn't contain the expected contents. File: " + file.getAbsolutePath(), expected, actual );
+        assertEquals( "The file doesn't contain the expected contents. File: " + file.getAbsolutePath(), expected,
+                      actual );
     }
 }

Modified: maven/scm/trunk/maven-scm-test/src/main/java/org/apache/maven/scm/tck/command/tag/TagCommandTckTest.java
URL: http://svn.apache.org/viewcvs/maven/scm/trunk/maven-scm-test/src/main/java/org/apache/maven/scm/tck/command/tag/TagCommandTckTest.java?rev=225265&r1=225264&r2=225265&view=diff
==============================================================================
--- maven/scm/trunk/maven-scm-test/src/main/java/org/apache/maven/scm/tck/command/tag/TagCommandTckTest.java (original)
+++ maven/scm/trunk/maven-scm-test/src/main/java/org/apache/maven/scm/tck/command/tag/TagCommandTckTest.java Tue Jul 26 02:16:45 2005
@@ -21,9 +21,9 @@
 import org.apache.maven.scm.command.checkin.CheckInScmResult;
 import org.apache.maven.scm.command.chileSet, org.apache.maven.scm.CommandParameters)
+     */
+    public LoginScmResult login( ScmRepository repository, ScmFileSet fileSet, CommandParameters parameters )
+        throws ScmException
+    {
+        CvsLoginCommand command = new CvsLoginCommand();
+
+        command.setLogger( getLogger() );
+
+        return (LoginScmResult) command.execute( repository.getProviderRepository(), fileSet, parameters );
+    }
+
+    /**
+     * @see org.apache.maven.scm.provider.AbstractScmProvider#remove(org.apache.maven.scm.repository.ScmRepository, org.apache.maven.scm.ScmFileSet, org.apache.maven.scm.CommandParameters)
+     */
+    public RemoveScmResult remove( ScmRepository repository, ScmFileSet fileSet, CommandParameters parameters )
+        throws ScmException
+    {
+        CvsRemoveCommand command = new CvsRemoveCommand();
+
+        command.setLogger( getLogger() );
+
+        return (RemoveScmResult) command.execute( repository.getProviderRepository(), fileSet, parameters );
+    }
+
+    /**
+     * @see org.apache.maven.scm.provider.AbstractScmProvider#status(org.apache.maven.scm.repository.ScmRepository, org.apache.maven.scm.ScmFileSet, org.apache.maven.scm.CommandParameters)
+     */
+    public StatusScmResult status( ScmRepository repository, ScmFileSet fileSet, CommandParameters parameters )
+        throws ScmException
+    {
+        CvsStatusCommand command = new CvsStatusCommand();
+
+        command.setLogger( getLogger() );
+
+        return (StatusScmResult) command.execute( repository.getProviderRepository(), fileSet, parameters );
+    }
+
+    /**
+     * @see org.apache.maven.scm.provider.AbstractScmProvider#tag(org.apache.maven.scm.repository.ScmRepository, org.apache.maven.scm.ScmFileSet, org.apache.maven.scm.CommandParameters)
+     */
+    public TagScmResult tag( ScmRepository repository, ScmFileSet fileSet, CommandParameters parameters )
+        throws ScmException
+    {
+        CvsTagCommand command = new CvsTagCommand();
+
+        command.setLogger( getLogger() );
+
+        return (TagScmResult) command.execute( repository.getProviderRepository(), fileSet, parameters );
+    }
+
+    /**
+     * @see org.apache.maven.scm.provider.AbstractScmProvider#update(org.apache.maven.scm.repository.ScmRepository, org.apache.maven.scm.ScmFileSet, org.apache.maven.scm.CommandParameters)
+     */
+    public UpdateScmResult update( ScmRepository repository, ScmFileSet fileSet, CommandParameters parameters )
+        throws ScmException
+    {
+        CvsUpdateCommand command = new CvsUpdateCommand();
+
+        command.setLogger( getLogger() );
+
+        return (UpdateScmResult) command.execute( repository.getProviderRepository(), fileSet, parameters );
     }
 }

Modified: maven/scm/trunk/maven-scm-providers/maven-scm-provider-cvs/src/main/resources/META-INF/plexus/components.xml
URL: http://svn.apache.org/viewcvs/maven/scm/trunk/maven-scm-providers/maven-scm-provider-cvs/src/main/resources/META-INF/plexus/components.xml?rev=225265&r1=225264&r2=225265&view=diff
==============================================================================
--- maven/scm/trunk/maven-scm-providers/maven-scm-provider-cvs/src/main/resources/META-INF/plexus/components.xml (original)
+++ maven/scm/trunk/maven-scm-providers/maven-scm-provider-cvs/src/main/resources/META-INF/plexus/components.xml Tue Jul 26 02:16:45 2005
@@ -1,71 +1,9 @@
 <component-set>
   <components>
-
     <component>
       <role>org.apache.maven.scm.provider.ScmProvider</role>
       <role-hint>cvs</role-hint>
       <implementation>org.apache.maven.scm.provider.cvslib.CvsScmProvider</implementation>
-      <requirements>
-        <requirement>
-          <role>org.apache.maven.scm.provider.cvslib.command.CvsCommand</role>
-          <field-name>commands</field-name>
-        </requirement>
-      </requirements>
     </component>
-
-    <component>
-      <role>org.apache.maven.scm.provider.cvslib.command.CvsCommand</role>
-      <role-hint>add</role-hint>
-      <implementation>org.apache.maven.scm.provider.cvslib.command.add.CvsAddCommand</implementation>
-    </component>
-
-    <component>
-      <role>org.apache.maven.scm.provider.cvslib.command.CvsCommand</role>
-      <role-hint>change-log</role-hint>
-      <implementation>org.apache.maven.scm.provider.cvslib.command.changelog.CvsChangeLogCommand</implementation>
-    </component>
-
-    <component>
-      <role>org.apache.maven.scm.provider.cvslib.command.CvsCommand</role>
-      <role-hint>check-in</role-hint>
-      <implementation>org.apache.maven.scm.provider.cvslib.command.checkin.CvsCheckInCommand</implementation>
-    </component>
-
-    <component>
-      <role>org.apache.maven.scm.provider.cvslib.command.CvsCommand</role>
-      <role-hint>check-out</role-hint>
-      <implementation>org.apache.maven.scm.provider.cvslib.command.checkout.CvsCheckOutCommand</implementation>
-    </component>
-
-    <component>
-      <role>org.apache.maven.scm.provider.cvslib.command.CvsCommand</role>
-      <role-hint>diff</role-hint>
-      <implementation>org.apache.maven.scm.provider.cvslib.coeckout.CheckOutScmResult;
 import org.apache.maven.scm.command.tag.TagScmResult;
+import org.apache.maven.scm.manager.ScmManager;
 import org.apache.maven.scm.repository.ScmRepository;
 import org.codehaus.plexus.PlexusTestCase;
-import org.codehaus.plexus.scm.ScmManager;
 import org.codehaus.plexus.util.FileUtils;
 
 import java.io.File;
@@ -35,9 +35,11 @@
  * @author <a href="mailto:brett@apache.org">Brett Porter</a>
  * @version $Id$
  */
-public abstract class TagCommandTckTest extends ScmTestCase
+public abstract class TagCommandTckTest
+    extends ScmTestCase
 {
     private File workingDirectory;
+
     // ----------------------------------------------------------------------
     // Methods the provider test has to implement
     // ----------------------------------------------------------------------
@@ -86,8 +88,8 @@
             FileUtils.deleteDirectory( repositoryRoot );
         }
 
-        assertTrue( "Could not make the repository root directory: " + repositoryRoot.getAbsolutePath(),
-     mmand.diff.CvsDiffCommand</implementation>
-    </component>
-
-    <component>
-      <role>org.apache.maven.scm.provider.cvslib.command.CvsCommand</role>
-      <role-hint>login</role-hint>
-      <implementation>org.apache.maven.scm.provider.cvslib.command.login.CvsLoginCommand</implementation>
-    </component>
-
-    <component>
-      <role>org.apache.maven.scm.provider.cvslib.command.CvsCommand</role>
-      <role-hint>status</role-hint>
-      <implementation>org.apache.maven.scm.provider.cvslib.command.status.CvsStatusCommand</implementation>
-    </component>
-
-    <component>
-      <role>org.apache.maven.scm.provider.cvslib.command.CvsCommand</role>
-      <role-hint>tag</role-hint>
-      <implementation>org.apache.maven.scm.provider.cvslib.command.tag.CvsTagCommand</implementation>
-    </component>
-
-    <component>
-      <role>org.apache.maven.scm.provider.cvslib.command.CvsCommand</role>
-      <role-hint>update</role-hint>
-      <implementation>org.apache.maven.scm.provider.cvslib.comman               repositoryRoot.mkdirs() );
+        assertTrue( "Could not make the repository root directory: " + repositoryRoot.getAbsolutePath(), repositoryRoot
+            .mkdirs() );
 
         workingDirectory = getWorkingCopy();
 
@@ -96,8 +98,8 @@
             FileUtils.deleteDirectory( workingDirectory );
         }
 
-        assertTrue( "Could not make the working directory: " + workingDirectory.getAbsolutePath(),
-                    workingDirectory.mkdirs() );
+        assertTrue( "Could not make the working directory: " + workingDirectory.getAbsolutePath(), workingDirectory
+            .mkdirs() );
 
         File assertionDirectory = getAssertionCopy();
 
@@ -119,13 +121,16 @@
 
         ScmRepository repository = getScmRepository( scmManager );
 
-        CheckOutScmResult checkoutResult = scmManager.checkOut( repository, new ScmFileSet( workingDirectory ), null );
+        CheckOutScmResult checkoutResult = scmManager.getProviderByUrl( getScmUrl() )
+            .checkOut( repository, new ScmFileSet( workingDirectory ), null );
 
         assertResultIsSuccess( checkoutResult );
 
         String tag = "test-tag";
 
-        TagScmResult tagResult = scmManager.tag( repository, new ScmFileSet( workingDirectory ), tag );
+        TagScmResult tagResult = scmManager.getProviderByUrl( getScmUrl() ).tag( repository,
+                                                                                 new ScmFileSet( workingDirectory ),
+                                                                                 tag );
 
         assertResultIsSuccess( tagResult );
 
@@ -137,12 +142,14 @@
 
         changeReadmeTxt( readmeTxt );
 
-        CheckInScmResult checkinResult = scmManager.checkIn( repository, new ScmFileSet( workingDirectory ), null,
-                                                             "commit message" );
+        CheckInScmResult checkinResult = scmManager.getProviderByUrl( getScmUrl() )
+            .checkIn( repository, new ScmFileSet( workingDirectory ), null, "commit message" );
 
         assertResultIsSuccess( checkinResult );
 
-        checkoutResult = scmManager.checkOut( repository, new ScmFileSet( getAssertionCopy() ), null );
+        checkoutResult = scmManager.getProviderByUrl( getScmUrl() ).checkOut( repository,
+                                                                              new ScmFileSet( getAssertionCopy() ),
+                                                                              null );
 
         assertResultIsSuccess( checkoutResult );
 
@@ -154,12 +161,12 @@
 
         assertFalse( "check previous assertion copy deleted", getAssertionCopy().exists() );
 
-        checkoutResult = scmManager.checkOut( repository, new ScmFileSet( getAssertionCopy() ), tag );
+        checkoutResult = scmManager.getProviderByUrl( getScmUrl() )
+            .checkOut( repository, new ScmFileSet( getAssertionCopy() ), tag );
 
         assertResultIsSuccess( checkoutResult );
 
-        assertEquals( "check readme.txt contents is from tagged version", "/readme.txt",
-                      FileUtils.fileRead( readmeTxt ) );
+        assertEquals( "check readme.txt contents is from tagged version", "/readme.txt", FileUtils.fileRead( readmeTxt ) );
     }
 
     protected ScmRepository getScmRepository( ScmManager scmManager )

Modified: maven/scm/trunk/maven-scm-test/src/main/java/org/apache/maven/scm/tck/command/update/UpdateCommandTckTest.java
URL: http://svn.apache.org/viewcvs/maven/scm/trunk/maven-scm-test/src/main/java/org/apache/maven/scm/tck/command/update/UpdateCommandTckTest.java?rev=225265&r1=225264&r2=225265&view=diff
==============================================================================
--- maven/scm/trunk/maven-scm-test/src/main/java/org/apache/maven/scm/tck/command/update/UpdateCommandTckTest.java (original)
+++ maven/scm/trunk/maven-scm-test/src/main/java/org/apache/maven/scm/tck/command/update/UpdateCommandTckTest.java Tue Jul 26 02:16:45 2005
@@ -24,9 +24,9 @@
 import org.apache.maven.scm.command.checkin.CheckInScmResult;
 import org.apache.maven.scm.command.checkout.CheckOutScmResult;
 import org.apache.maven.scm.command.update.UpdateScmResult;
+import org.apache.maven.scm.manager.ScmManager;
 import org.apache.maven.scm.repository.ScmRepository;
 import org.codehaus.plexus.PlexusTestCase;
-import org.codehaus.plexus.scm.ScmManager;
 import org.codehaus.plexus.util.FileUtils;
 
 import java.io.File;
@@ -53,14 +53,14 @@
  * @version $Id$
  */
 public abstract class UpdateCommandTckTest
-	extends ScmTestCase
+    extends ScmTestCase
 {
     // ----------------------------------------------------------------------
     // Methods the test has to implement
     // ----------------------------------------------------------------------
 
     public abstract String getScmUrl()
-    	throws Exception;
+        throws Exception;
 
     /**
      * Copy the existing checked in repository to the working directory.
@@ -70,19 +70,25 @@
      * @throws Exception
      */
     public abstract void initRepo()
-		throws Exception;
+        throws Exception;
 
     private void checkOut( File workingDirectory, ScmRepository repository )
         throws Exception
     {
-        CheckOutScmResult result = getScmManager().checkOut( repository, new ScmFileSet( workingDirectory ), null );
+        CheckOutScmResult result = getScmManager().getProviderByUrl( getScmUrl() )
+            .checkOut( repository, new ScmFileSet( workingDirectory ), null );
+
         assertTrue( "Check result was successful, output: " + result.getCommandOutput(), result.isSuccess() );
     }
 
     private void addToRepository( File workingDirectory, File file, ScmRepository repository )
         throws Exception
     {
-        AddScmResult result = getScmManager().add( repository, new ScmFileSet( workingDirectory, file ) );
+        AddScmResult result = getScmManager().getProviderByUrl( getScmUrl() ).add(
+                                                                                   repository,
+                                                                                   new Scmd.update.CvsUpdateCommand</implementation>
-    </component>
-
   </components>
 </component-set>

Modified: maven/scm/trunk/maven-scm-providers/maven-scm-provider-cvs/src/test/java/org/apache/maven/scm/provider/cvslib/command/changelog/CvsChangeLogCommandTest.java
URL: http://svn.apache.org/viewcvs/maven/scm/trunk/maven-scm-providers/maven-scm-provider-cvs/src/test/java/org/apache/maven/scm/provider/cvslib/command/changelog/CvsChangeLogCommandTest.java?rev=225265&r1=225264&r2=225265&view=diff
==============================================================================
--- maven/scm/trunk/maven-scm-providers/maven-scm-provider-cvs/src/test/java/org/apache/maven/scm/provider/cvslib/command/changelog/CvsChangeLogCommandTest.java (original)
+++ maven/scm/trunk/maven-scm-providers/maven-scm-provider-cvs/src/test/java/org/apache/maven/scm/provider/cvslib/command/changelog/CvsChangeLogCommandTest.java Tue Jul 26 02:16:45 2005
@@ -17,9 +17,9 @@
  */
 
 import org.apache.maven.scm.command.changelog.ChangeLogScmResuFileSet( workingDirectory,
+                                                                                                   file ) );
+
         assertTrue( "Check result was successful, output: " + result.getCommandOutput(), result.isSuccess() );
 
         List addedFiles = result.getAddedFiles();
@@ -91,9 +97,11 @@
     }
 
     private void commit( File workingDirectory, ScmRepository repository )
-		throws Exception
+        throws Exception
     {
-        CheckInScmResult result = getScmManager().checkIn( repository, new ScmFileSet( workingDirectory ), null, "No msg" );
+        CheckInScmResult result = getScmManager().getProviderByUrl( getScmUrl() )
+            .checkIn( repository, new ScmFileSet( workingDirectory ), null, "No msg" );
+
         assertTrue( "Check result was successful, output: " + result.getCommandOutput(), result.isSuccess() );
 
         List committedFiles = result.getCheckedInFiles();
@@ -125,7 +133,7 @@
     // --------------------------------------------------------------lt;
+import org.apache.maven.scm.manager.ScmManager;
 import org.apache.maven.scm.provider.cvslib.AbstractCvsScmTest;
 import org.apache.maven.scm.provider.cvslib.CvsScmTestUtils;
-import org.codehaus.plexus.scm.ScmManager;
 
 import java.util.Date;
 import java.util.List;
@@ -74,7 +74,7 @@
         CvsScmTestUtils.executeCVS( getWorkingDirectory(),
                                     "-f -d " + getTestFile( "src/test/repository/" ) + " co " + getModule() );
 
-        ChangeLogScmResult changeLogResult = scmManager.changeLog( getScmRepository(), getScmFileSet(), startDate,
+        ChangeLogScmResult changeLogResult = scmManager.getProviderByRepository( getScmRepository() ).changeLog( getScmRepository(), getScmFileSet(), startDate,
                                                                    endDate, 0, branch );
 
         if ( !changeLogResult.isSuccess() )

Modified: maven/scm/trunk/maven-scm-providers/maven-scm-provider-cvs/src/test/java/org/apache/maven/scm/provider/cvslib/command/checkout/CvsCh--------
 
     public void setUp()
-    	throws Exception
+        throws Exception
     {
         super.setUp();
 
@@ -139,7 +147,7 @@
     }
 
     public void testUpdateCommand()
-    	throws Exception
+        throws Exception
     {
         ScmRepository repository = makeScmRepository( getScmUrl() );
 
@@ -201,7 +209,8 @@
         // Update the project
         // ----------------------------------------------------------------------
 
-        UpdateScmResult result = scmManager.update( repository, new ScmFileSet( getUpdatingCopy() ), null );
+        UpdateScmResult result = scmManager.getProviderByUrl( getScmUrl() )
+            .update( repository, new ScmFileSet( getUpdatingCopy() ), null );
 
         assertNotNull( "The command returned a null result.", result );
 
@@ -212,6 +221,7 @@
         assertNull( "The command output wasn't null", result.getCommandOutput() );
 
         List updatedFiles = result.getUpdatedFiles();
+
         List changedFiles = result.getChanges();
 
         assertEqueckoutCommandTest.java
URL: http://svn.apache.org/viewcvs/maven/scm/trunk/maven-scm-providers/maven-scm-provider-cvs/src/test/java/org/apache/maven/scm/provider/cvslib/command/checkout/CvsCheckoutCommandTest.java?rev=225265&r1=225264&r2=225265&view=diff
==============================================================================
--- maven/scm/trunk/maven-scm-providers/maven-scm-provider-cvs/src/test/java/org/apache/maven/scm/provider/cvslib/command/checkout/CvsCheckoutCommandTest.java (original)
+++ maven/scm/trunk/maven-scm-providers/maven-scm-provider-cvs/src/test/java/org/apache/maven/scm/provider/cvslib/command/checkout/CvsCheckoutCommandTest.java Tue Jul 26 02:16:45 2005
@@ -19,8 +19,8 @@
 import org.apache.maven.scm.ScmFile;
 import org.apache.maven.scm.ScmFileStatus;
 import org.apache.maven.scm.command.checkout.CheckOutScmResult;
+import org.apache.maven.scm.manager.ScmManager;
 import org.apache.maven.scm.provider.cvslib.AbstractCvsScmTest;
-import org.codehaus.plexus.scm.ScmManager;
 
 import javaals( "Expected 3 files in the updated files list " + updatedFiles, 3, updatedFiles.size() );
@@ -252,7 +262,7 @@
     // ----------------------------------------------------------------------
 
     private void assertFile( File root, String fileName )
-    	throws Exception
+        throws Exception
     {
         File file = new File( root, fileName );
 
@@ -264,6 +274,7 @@
 
         String actual = FileUtils.fileRead( file );
 
-        assertEquals( "The file doesn't contain the expected contents. File: " + file.getAbsolutePath(), expected, actual );
+        assertEquals( "The file doesn't contain the expected contents. File: " + file.getAbsolutePath(), expected,
+                      actual );
     }
 }

Modified: maven/scm/trunk/pom.xml
URL: http://svn.apache.org/viewcvs/maven/scm/trunk/pom.xml?rev=225265&r1=225264&r2=225265&view=diff
==============================================================================
--- maven/scm/trunk/pom.xml (original)
+++ maven/scm/trunk/pom.xml Tue Jul 26 02:16:45 2.io.File;
 import java.util.List;
@@ -44,7 +44,7 @@
     {
         ScmManager scmManager = getScmManager();
 
-        CheckOutScmResult result = scmManager.checkOut( getScmRepository(), getScmFileSet(), null );
+        CheckOutScmResult result = scmManager.getProviderByRepository( getScmRepository() ).checkOut( getScmRepository(), getScmFileSet(), null );
 
         if ( !result.isSuccess() )
         {
@@ -70,7 +70,7 @@
     {
         ScmManager scmManager = getScmManager();
 
-        CheckOutScmResult result = scmManager.checkOut( getScmRepository(), getScmFileSet(), "1.107.4" );
+        CheckOutScmResult result = scmManager.getProviderByRepository( getScmRepository() ).checkOut( getScmRepository(), getScmFileSet(), "1.107.4" );
 
         if ( !result.isSuccess() )
         {

Modified: maven/scm/trunk/maven-scm-providers/maven-scm-provider-cvs/src/test/java/org/apache/maven/scm/provider/cvslib/command/update/CvsUpdateCommandTest.java
URL: http://svn.apache.org/viewcvs/maven/scm/trunk/maven-scm-provi005
@@ -38,7 +38,7 @@
     <dependency>
       <groupId>plexus</groupId>
       <artifactId>plexus-utils</artifactId>
-      <version>1.0.1-SNAPSHOT</version>
+      <version>1.0.1</version>
     </dependency>
   </dependencies>
   <organization>



ders/maven-scm-provider-cvs/src/test/java/org/apache/maven/scm/provider/cvslib/command/update/CvsUpdateCommandTest.java?rev=225265&r1=225264&r2=225265&view=diff
==============================================================================
--- maven/scm/trunk/maven-scm-providers/maven-scm-provider-cvs/src/test/java/org/apache/maven/scm/provider/cvslib/command/update/CvsUpdateCommandTest.java (original)
+++ maven/scm/trunk/maven-scm-providers/maven-scm-provider-cvs/src/test/java/org/apache/maven/scm/provider/cvslib/command/update/CvsUpdateCommandTest.java Tue Jul 26 02:16:45 2005
@@ -20,10 +20,10 @@
 import org.apache.maven.scm.ScmFileSet;
 import org.apache.maven.scm.ScmFileStatus;
 import org.apache.maven.scm.command.update.UpdateScmResult;
+import org.apache.maven.scm.manager.ScmManager;
 import org.apache.maven.scm.provider.cvslib.AbstractCvsScmTest;
 import org.apache.maven.scm.provider.cvslib.CvsScmTestUtils;
 import org.apache.maven.scm.repository.ScmRepository;
-import org.codehaus.plexus.scm.ScmManager;
 import org.codehaus.plexus.util.FileUtils;
 
 import java.io.File;
@@ -84,7 +84,7 @@
         // A new check out should return 0 updated files.
         ScmRepository scmRepository = scmManager.makeScmRepository( scmUrl );
 
-        UpdateScmResult result = scmManager.update( scmRepository, new ScmFileSet( assertionDirectory ), null );
+        UpdateScmResult result = scmManager.getProviderByRepository( scmRepository ).update( scmRepository, new ScmFileSet( assertionDirectory ), null );
 
         assertNotNull( result );
 
@@ -134,7 +134,7 @@
         CvsScmTestUtils.executeCVS( workingDirectory, arguments );
 
         // Check the updated files
-        result = scmManager.update( scmRepository, new ScmFileSet( assertionDirectory ), null );
+        result = scmManager.getProviderByRepository( scmRepository ).update( scmRepository, new ScmFileSet( assertionDirectory ), null );
 
         assertNotNull( result );
 

Modified: maven/scm/trunk/maven-scm-providers/maven-scm-provider-cvs/src/test/java/org/apache/maven/scm/provider/cvslib/repository/CvsScmProviderRepositoryTest.java
URL: http://svn.apache.org/viewcvs/maven/scm/trunk/maven-scm-providers/maven-scm-provider-cvs/src/test/java/org/apache/maven/scm/provider/cvslib/repository/CvsScmProviderRepositoryTest.java?rev=225265&r1=225264&r2=225265&view=diff
==============================================================================
--- maven/scm/trunk/maven-scm-providers/maven-scm-provider-cvs/src/test/java/org/apache/maven/scm/provider/cvslib/repository/CvsScmProviderRepositoryTest.java (original)
+++ maven/scm/trunk/maven-scm-providers/maven-scm-provider-cvs/src/test/java/org/apache/maven/scm/provider/cvslib/repository/CvsScmProviderRepositoryTest.java Tue Jul 26 02:16:45 2005
@@ -16,11 +16,11 @@
  * limitations under the License.
  */
 
+import org.apache.maven.scm.manager.ScmManager;
 import org.apache.maven.scm.provider.cvslib.AbstractCvsScmTest;
 import org.apache.maven.scm.provider.cvslib.CvsScmProvider;
 import org.apache.maven.scm.repository.ScmRepository;
 import org.apache.maven.scm.repository.ScmRepositoryException;
-import org.codehaus.plexus.scm.ScmManager;
 
 /**
  * @author <a href="mailto:evenisse@apache.org">Emmanuel Venisse</a>

Modified: maven/scm/trunk/maven-scm-providers/maven-scm-provider-local/src/main/java/org/apache/maven/scm/provider/local/LocalScmProvider.java
URL: http://svn.apache.org/viewcvs/maven/scm/trunk/maven-scm-providers/maven-scm-provider-local/src/main/java/org/apache/maven/scm/provider/local/LocalScmProvider.java?rev=225265&r1=225264&r2=225265&view=diff
==============================================================================
--- maven/scm/trunk/maven-scm-providers/maven-scm-provider-local/src/main/java/org/apache/maven/scm/provider/local/LocalScmProvider.java (original)
+++ maven/scm/trunk/maven-scm-providers/maven-scm-provider-local/src/main/java/org/apache/maven/scm/provider/local/LocalScmProvider.java Tue Jul 26 02:16:45 2005
@@ -1,7 +1,7 @@
 package org.apache.maven.scm.provider.local;
 
 /*
- * Copyright 2001-2004 The Apache Software Foundation.
+ * Copyright 2001-2005 The Apache Software Foundation.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -17,30 +17,34 @@
  */
 
 import java.io.File;
-import java.util.Map;
 
+import org.apache.maven.scm.CommandParameters;
+import org.apache.maven.scm.ScmException;
+import org.apache.maven.scm.ScmFileSet;
+import org.apache.maven.scm.command.add.AddScmResult;
+import org.apache.maven.scm.command.checkin.CheckInScmResult;
+import org.apache.maven.scm.command.checkout.CheckOutScmResult;
+import org.apache.maven.scm.command.update.UpdateScmResult;
 import org.apache.maven.scm.provider.AbstractScmProvider;
 import org.apache.maven.scm.provider.ScmProviderRepository;
+import org.apache.maven.scm.provider.local.command.add.LocalAddCommand;
+import org.apache.maven.scm.provider.local.command.checkin.LocalCheckInCommand;
+import org.apache.maven.scm.provider.local.command.checkout.LocalCheckOutCommand;
+import org.apache.maven.scm.provider.local.command.update.LocalUpdateCommand;
 import org.apache.maven.scm.provider.local.repository.LocalScmProviderRepository;
+import org.apache.maven.scm.repository.ScmRepository;
 import org.apache.maven.scm.repository.ScmRepositoryException;
 
 import org.codehaus.plexus.util.StringUtils;
 
 /**
  * @author <a href="mailto:trygvis@inamo.no">Trygve Laugst&oslash;l</a>
+ * @author <a href="mailto:evenisse@apache.org">Emmanuel Venisse</a>
  * @version $Id$
  */
 public class LocalScmProvider
     extends AbstractScmProvider
 {
-    /** @requirement org.apache.maven.scm.CvsCommand */
-    private Map commands;
-
-    protected Map getCommands()
-    {
-        return commands;
-    }
-
     public String getScmType()
     {
         return "local";
@@ -53,14 +57,16 @@
 
         if ( tokens.length != 2 )
         {
-            throw new ScmRepositoryException( "The connection string didn't contain the expected number of tokens. Expected 2 tokens but got " + tokens.length + " tokens." );
+            throw new ScmRepositoryException(
+                                              "The connection string didn't contain the expected number of tokens. Expected 2 tokens but got "
+                                                  + tokens.length + " tokens." );
         }
 
         // ----------------------------------------------------------------------
         //
         // ----------------------------------------------------------------------
 
-        String root = tokens[ 0 ];
+        String root = tokens[0];
 
         File rootFile = new File( root );
 
@@ -85,13 +91,14 @@
         //
         // ----------------------------------------------------------------------
 
-        String module = tokens[ 1 ];
+        String module = tokens[1];
 
         File moduleFile = new File( rootFile, module );
 
         if ( !moduleFile.exists() )
         {
-            throw new ScmRepositoryException( "The module doesn't exist (root: " + rootFile.getAbsolutePath() + ", module: " + module + ").");
+            throw new ScmRepositoryException( "The module doesn't exist (root: " + rootFile.getAbsolutePath()
+                                              + ", module: " + module + ")." );
         }
 
         if ( !moduleFile.isDirectory() )
@@ -119,5 +126,57 @@
         }
 
         return module;
+    }
+
+    /**
+     * @see org.apache.maven.scm.provider.AbstractScmProvider#add(org.apache.maven.scm.repository.ScmRepository, org.apache.maven.scm.ScmFileSet, org.apache.maven.scm.CommandParameters)
+     */
+    public AddScmResult add( ScmRepository repository, ScmFileSet fileSet, CommandParameters parameters )
+        throws ScmException
+    {
+        LocalAddCommand command = new LocalAddCommand();
+
+        command.setLogger( getLogger() );
+
+        return (AddScmResult) command.execute( repository.getProviderRepository(), fileSet, parameters );
+    }
+
+    /**
+     * @see org.apache.maven.scm.provider.AbstractScmProvider#checkin(org.apache.maven.scm.repository.ScmRepository, org.apache.maven.scm.ScmFileSet, org.apache.maven.scm.CommandParameters)
+     */
+    public CheckInScmResult checkin( ScmRepository repository, ScmFileSet fileSet, CommandParameters parameters )
+        throws ScmException
+    {
+        LocalCheckInCommand command = new LocalCheckInCommand();
+
+        command.setLogger( getLogger() );
+
+        return (CheckInScmResult) command.execute( repository.getProviderRepository(), fileSet, parameters );
+    }
+
+    /**
+     * @see org.apache.maven.scm.provider.AbstractScmProvider#checkout(org.apache.maven.scm.repository.ScmRepository, org.apache.maven.scm.ScmFileSet, org.apache.maven.scm.CommandParameters)
+     */
+    public CheckOutScmResult checkout( ScmRepository repository, ScmFileSet fileSet, CommandParameters parameters )
+        throws ScmException
+    {
+        LocalCheckOutCommand command = new LocalCheckOutCommand();
+
+        command.setLogger( getLogger() );
+
+        return (CheckOutScmResult) command.execute( repository.getProviderRepository(), fileSet, parameters );
+    }
+
+    /**
+     * @see org.apache.maven.scm.provider.AbstractScmProvider#update(org.apache.maven.scm.repository.ScmRepository, org.apache.maven.scm.ScmFileSet, org.apache.maven.scm.CommandParameters)
+     */
+    public UpdateScmResult update( ScmRepository repository, ScmFileSet fileSet, CommandParameters parameters )
+        throws ScmException
+    {
+        LocalUpdateCommand command = new LocalUpdateCommand();
+
+        command.setLogger( getLogger() );
+
+        return (UpdateScmResult) command.execute( repository.getProviderRepository(), fileSet, parameters );
     }
 }



Mime
View raw message