You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm-commits@maven.apache.org by da...@apache.org on 2006/11/17 17:46:56 UTC

svn commit: r476208 - in /maven/scm/trunk/maven-scm-providers/maven-scm-provider-starteam/src: main/java/org/apache/maven/scm/provider/starteam/command/ main/java/org/apache/maven/scm/provider/starteam/command/checkout/ main/java/org/apache/maven/scm/p...

Author: dantran
Date: Fri Nov 17 08:46:55 2006
New Revision: 476208

URL: http://svn.apache.org/viewvc?view=rev&rev=476208
Log:
SCM-249: Remove restriction to require ScmFileSet's basedir not to be the same with user working directory.  Clean up tests to use infrastructure provided by ScmTestCase base class

Modified:
    maven/scm/trunk/maven-scm-providers/maven-scm-provider-starteam/src/main/java/org/apache/maven/scm/provider/starteam/command/StarteamCommandLineUtils.java
    maven/scm/trunk/maven-scm-providers/maven-scm-provider-starteam/src/main/java/org/apache/maven/scm/provider/starteam/command/checkout/StarteamCheckOutCommand.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/test/java/org/apache/maven/scm/provider/starteam/command/checkout/StarteamCheckOutCommandTest.java
    maven/scm/trunk/maven-scm-providers/maven-scm-provider-starteam/src/test/java/org/apache/maven/scm/provider/starteam/command/remove/StarteamRemoveCommandTest.java

Modified: maven/scm/trunk/maven-scm-providers/maven-scm-provider-starteam/src/main/java/org/apache/maven/scm/provider/starteam/command/StarteamCommandLineUtils.java
URL: http://svn.apache.org/viewvc/maven/scm/trunk/maven-scm-providers/maven-scm-provider-starteam/src/main/java/org/apache/maven/scm/provider/starteam/command/StarteamCommandLineUtils.java?view=diff&rev=476208&r1=476207&r2=476208
==============================================================================
--- maven/scm/trunk/maven-scm-providers/maven-scm-provider-starteam/src/main/java/org/apache/maven/scm/provider/starteam/command/StarteamCommandLineUtils.java (original)
+++ maven/scm/trunk/maven-scm-providers/maven-scm-provider-starteam/src/main/java/org/apache/maven/scm/provider/starteam/command/StarteamCommandLineUtils.java Fri Nov 17 08:46:55 2006
@@ -120,6 +120,14 @@
         return cl;
     }
     
+    /**
+     * Create stcmd command base on ScmFileSet contents.
+     * The fileset can not have more then one files.
+     * @param action
+     * @param scmFileSet
+     * @param repo
+     * @return
+     */
     public static Commandline createStarteamBaseCommandLine( String action, ScmFileSet scmFileSet,
             StarteamScmProviderRepository repo )
     {
@@ -137,6 +145,10 @@
             
             return cl;
         }
+
+        //Perform an scm action on a single file where the orignal
+        // url and local directory ( -p and -fp options ) are altered 
+        // to deal with single file
         
         File file = (File) scmFileSet.getFileList().get( 0 );
         

Modified: maven/scm/trunk/maven-scm-providers/maven-scm-provider-starteam/src/main/java/org/apache/maven/scm/provider/starteam/command/checkout/StarteamCheckOutCommand.java
URL: http://svn.apache.org/viewvc/maven/scm/trunk/maven-scm-providers/maven-scm-provider-starteam/src/main/java/org/apache/maven/scm/provider/starteam/command/checkout/StarteamCheckOutCommand.java?view=diff&rev=476208&r1=476207&r2=476208
==============================================================================
--- maven/scm/trunk/maven-scm-providers/maven-scm-provider-starteam/src/main/java/org/apache/maven/scm/provider/starteam/command/checkout/StarteamCheckOutCommand.java (original)
+++ maven/scm/trunk/maven-scm-providers/maven-scm-provider-starteam/src/main/java/org/apache/maven/scm/provider/starteam/command/checkout/StarteamCheckOutCommand.java Fri Nov 17 08:46:55 2006
@@ -45,7 +45,7 @@
     protected CheckOutScmResult executeCheckOutCommand( ScmProviderRepository repo, ScmFileSet fileSet, String tag )
         throws ScmException
     {
-        if ( fileSet.getFiles().length != 0 )
+        if ( fileSet.getFileList().size() != 0 )
         {
             throw new ScmException( "This provider doesn't support checking out subsets of a directory" );
         }
@@ -58,7 +58,7 @@
 
         CommandLineUtils.StringStreamConsumer stderr = new CommandLineUtils.StringStreamConsumer();
 
-        Commandline cl = createCommandLine( repository, fileSet.getBasedir(), tag );
+        Commandline cl = createCommandLine( repository, fileSet, tag );
 
         int exitCode = StarteamCommandLineUtils.executeCommandline( cl, consumer, stderr, getLogger() );
 
@@ -74,9 +74,9 @@
     //
     // ----------------------------------------------------------------------
 
-    public static Commandline createCommandLine( StarteamScmProviderRepository repo, File workingDirectory, String tag )
+    public static Commandline createCommandLine( StarteamScmProviderRepository repo, ScmFileSet baseDir, String tag )
     {
-        Commandline cl = StarteamCommandLineUtils.createStarteamBaseCommandLine( "co", workingDirectory, repo );
+        Commandline cl = StarteamCommandLineUtils.createStarteamBaseCommandLine( "co", baseDir, repo );
 
         if ( tag != null && tag.trim().length() != 0 )
         {

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/viewvc/maven/scm/trunk/maven-scm-providers/maven-scm-provider-starteam/src/main/java/org/apache/maven/scm/provider/starteam/command/remove/StarteamRemoveCommand.java?view=diff&rev=476208&r1=476207&r2=476208
==============================================================================
--- 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 Fri Nov 17 08:46:55 2006
@@ -30,6 +30,7 @@
 import org.codehaus.plexus.util.cli.Commandline;
 
 import java.io.File;
+import java.util.List;
 
 /**
  * @author <a href="mailto:dantran@gmail.com">Dan T. Tran</a>
@@ -51,11 +52,11 @@
 
         CommandLineUtils.StringStreamConsumer stderr = new CommandLineUtils.StringStreamConsumer();
 
-        File[] checkInFiles = fileSet.getFiles();
+        List remvoveFiles = fileSet.getFileList();
 
-        if ( checkInFiles.length == 0 )
+        if ( remvoveFiles.size() == 0 )
         {
-            Commandline cl = createCommandLine( repository, fileSet.getBasedir() );
+            Commandline cl = createCommandLine( repository, fileSet );
 
             int exitCode = StarteamCommandLineUtils.executeCommandline( cl, consumer, stderr, getLogger() );
 
@@ -67,9 +68,11 @@
         else
         {
             //update only interested files already on the local disk
-            for ( int i = 0; i < checkInFiles.length; ++i )
+            for ( int i = 0; i < remvoveFiles.size(); ++i )
             {
-                Commandline cl = createCommandLine( repository, checkInFiles[i] );
+            	File fileToBeRemoved = (File) remvoveFiles.get( i );
+            	ScmFileSet scmFileSet = new ScmFileSet( fileSet.getBasedir(), fileToBeRemoved );
+                Commandline cl = createCommandLine( repository, scmFileSet );
 
                 int exitCode = StarteamCommandLineUtils.executeCommandline( cl, consumer, stderr, getLogger() );
 
@@ -85,21 +88,19 @@
 
     }
 
-    public static Commandline createCommandLine( StarteamScmProviderRepository repo, File dirOrFile )
+    public static Commandline createCommandLine( StarteamScmProviderRepository repo, ScmFileSet dirOrFile )
     {
         Commandline cl = StarteamCommandLineUtils.createStarteamBaseCommandLine( "remove", dirOrFile, repo );
 
-        if ( dirOrFile.isDirectory() )
+        if ( dirOrFile.getFileList().size() == 0 )
         {
             cl.createArgument().setValue( "-is" );
         }
         else
         {
-            cl.createArgument().setValue( dirOrFile.getName() );
+        	File fileToBeRemoved = (File) dirOrFile.getFileList().get(0);
+            cl.createArgument().setValue( fileToBeRemoved.getName() );
         }
-
-        //remove working file(s)
-        //cl.createArgument().setValue( "-df" );
 
         return cl;
     }

Modified: maven/scm/trunk/maven-scm-providers/maven-scm-provider-starteam/src/test/java/org/apache/maven/scm/provider/starteam/command/checkout/StarteamCheckOutCommandTest.java
URL: http://svn.apache.org/viewvc/maven/scm/trunk/maven-scm-providers/maven-scm-provider-starteam/src/test/java/org/apache/maven/scm/provider/starteam/command/checkout/StarteamCheckOutCommandTest.java?view=diff&rev=476208&r1=476207&r2=476208
==============================================================================
--- maven/scm/trunk/maven-scm-providers/maven-scm-provider-starteam/src/test/java/org/apache/maven/scm/provider/starteam/command/checkout/StarteamCheckOutCommandTest.java (original)
+++ maven/scm/trunk/maven-scm-providers/maven-scm-provider-starteam/src/test/java/org/apache/maven/scm/provider/starteam/command/checkout/StarteamCheckOutCommandTest.java Fri Nov 17 08:46:55 2006
@@ -16,14 +16,13 @@
  * limitations under the License.
  */
 
+import org.apache.maven.scm.ScmFileSet;
 import org.apache.maven.scm.ScmTestCase;
 import org.apache.maven.scm.provider.starteam.command.StarteamCommandLineUtils;
 import org.apache.maven.scm.provider.starteam.repository.StarteamScmProviderRepository;
 import org.apache.maven.scm.repository.ScmRepository;
 import org.codehaus.plexus.util.cli.Commandline;
 
-import java.io.File;
-
 /**
  * @author <a href="mailto:evenisse@apache.org">Emmanuel Venisse</a>
  * @version $Id$
@@ -31,43 +30,36 @@
 public class StarteamCheckOutCommandTest
     extends ScmTestCase
 {
-    public void testGetCommandLineWithWorkingDirectory()
+    public void testGetCommandLine()
         throws Exception
     {
-        //note that workDir must exists, make should have already created it
-        File workDir = new File( getBasedir() + "/target" );
-
-        String workDirAbsolutePath = StarteamCommandLineUtils.toJavaPath( workDir.getAbsolutePath() );
-
-        testCommandLine( "scm:starteam:myusername:mypassword@myhost:1234/projecturl", workDir, "myTag",
-                         "stcmd co -x -nologo -stop -p myusername:mypassword@myhost:1234/projecturl " + "-fp " +
-                             workDirAbsolutePath + " -vl myTag -is" );
-    }
-
-    public void testGetCommandLineWithWorkingDirectoryAsAbsolutePath()
-        throws Exception
-    {
-        File workDir = new File( getBasedir() + "/target" );
-
-        String workDirAbsolutePath = StarteamCommandLineUtils.toJavaPath( workDir.getAbsolutePath() );
-
-        testCommandLine( "scm:starteam:myusername:mypassword@myhost:1234/projecturl", workDir.getAbsoluteFile(),
-                         "myTag", "stcmd co -x -nologo -stop -p myusername:mypassword@myhost:1234/projecturl " +
-            "-fp " + workDirAbsolutePath + " -vl myTag -is" );
+    	ScmFileSet workingCopy = new ScmFileSet( this.getWorkingCopy() );
+        
+        String workDirAbsolutePath = StarteamCommandLineUtils.toJavaPath( workingCopy.getBasedir().getAbsolutePath() );
+
+        String starteamUrl = "user:password@host:1234/project/view";
+        String mavenUrl = "scm:starteam:" + starteamUrl;
+        
+        String expectedCmd = "stcmd co -x -nologo -stop"
+        	                 + " -p " + starteamUrl   
+                             + " -fp " + workDirAbsolutePath 
+                             + " -vl myTag -is" ; 
+        
+        testCommandLine( mavenUrl, workingCopy, "myTag", expectedCmd );
     }
 
     // ----------------------------------------------------------------------
     //
     // ----------------------------------------------------------------------
 
-    private void testCommandLine( String scmUrl, File workDir, String tag, String commandLine )
+    private void testCommandLine( String scmUrl, ScmFileSet workingCopy, String tag, String commandLine )
         throws Exception
     {
         ScmRepository repo = getScmManager().makeScmRepository( scmUrl );
 
         StarteamScmProviderRepository repository = (StarteamScmProviderRepository) repo.getProviderRepository();
 
-        Commandline cl = StarteamCheckOutCommand.createCommandLine( repository, workDir, tag );
+        Commandline cl = StarteamCheckOutCommand.createCommandLine( repository, workingCopy, tag );
 
         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/StarteamRemoveCommandTest.java
URL: http://svn.apache.org/viewvc/maven/scm/trunk/maven-scm-providers/maven-scm-provider-starteam/src/test/java/org/apache/maven/scm/provider/starteam/command/remove/StarteamRemoveCommandTest.java?view=diff&rev=476208&r1=476207&r2=476208
==============================================================================
--- 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 Fri Nov 17 08:46:55 2006
@@ -16,6 +16,7 @@
  * limitations under the License.
  */
 
+import org.apache.maven.scm.ScmFileSet;
 import org.apache.maven.scm.ScmTestCase;
 import org.apache.maven.scm.provider.starteam.command.StarteamCommandLineUtils;
 import org.apache.maven.scm.provider.starteam.repository.StarteamScmProviderRepository;
@@ -30,37 +31,41 @@
 public class StarteamRemoveCommandTest
     extends ScmTestCase
 {
-
+	
     public void testGetCommandLineWithFileOnRoot()
         throws Exception
     {
+    	ScmFileSet fileSet = new ScmFileSet( getWorkingCopy(),  new File( "testfile.txt" ) );
 
-        File testFile = new File( "testfile" );
-
-        File testFileDir = testFile.getAbsoluteFile().getParentFile();
-
-        String testFileDirAbsolutePath = StarteamCommandLineUtils.toJavaPath( testFileDir.getAbsolutePath() );
-
-        String expectedCmd = "stcmd remove -x -nologo -stop -p myusername:mypassword@myhost:1234/projecturl" + " -fp " +
-            testFileDirAbsolutePath + " testfile";
+        String testFileDirAbsolutePath = StarteamCommandLineUtils.toJavaPath( getWorkingCopy().getPath() );
 
-        testCommandLine( "scm:starteam:myusername:mypassword@myhost:1234/projecturl", testFile, "", expectedCmd );
+        String starteamUrl = "user:password@host:1234/project/view";
+        String mavenUrl = "scm:starteam:" + starteamUrl;
+        
+        String expectedCmd = "stcmd remove -x -nologo -stop"
+        	                 + " -p " + starteamUrl   
+                             + " -fp " + testFileDirAbsolutePath 
+                             + " testfile.txt" ; 
+        
+        testCommandLine( mavenUrl, fileSet, "", expectedCmd );
     }
 
     public void testGetCommandLineWithFileInSubDir()
         throws Exception
     {
 
-        File testFile = new File( "target/testfile" );
-
-        File testFileDir = testFile.getAbsoluteFile().getParentFile();
-
-        String testFileDirAbsolutePath = StarteamCommandLineUtils.toJavaPath( testFileDir.getAbsolutePath() );
-
-        String expectedCmd = "stcmd remove -x -nologo -stop -p myusername:mypassword@myhost:1234/projecturl/target" +
-            " -fp " + testFileDirAbsolutePath + " testfile";
+    	ScmFileSet fileSet = new ScmFileSet( getWorkingCopy(),  new File( "dir/testfile.txt" ) );
 
-        testCommandLine( "scm:starteam:myusername:mypassword@myhost:1234/projecturl", testFile, null, expectedCmd );
+        String starteamUrl = "user:password@host:1234/project/view";
+        String mavenUrl = "scm:starteam:" + starteamUrl;
+        
+        String localDirectory = StarteamCommandLineUtils.toJavaPath( getWorkingDirectory().getPath() + "/dir" );
+        String expectedCmd = "stcmd remove -x -nologo -stop"
+        	                 + " -p " + starteamUrl + "/dir"   
+                             + " -fp " + localDirectory 
+                             + " testfile.txt" ; 
+        
+        testCommandLine( mavenUrl, fileSet, null, expectedCmd );
 
     }
 
@@ -68,14 +73,14 @@
     //
     // ----------------------------------------------------------------------
 
-    private void testCommandLine( String scmUrl, File fileName, String crPath, String commandLine )
+    private void testCommandLine( String scmUrl, ScmFileSet fileSet, String crPath, String commandLine )
         throws Exception
     {
         ScmRepository repo = getScmManager().makeScmRepository( scmUrl );
 
         StarteamScmProviderRepository repository = (StarteamScmProviderRepository) repo.getProviderRepository();
 
-        Commandline cl = StarteamRemoveCommand.createCommandLine( repository, fileName );
+        Commandline cl = StarteamRemoveCommand.createCommandLine( repository, fileSet );
 
         assertEquals( commandLine, cl.toString() );
     }