Author: evenisse
Date: Thu Apr 26 01:39:42 2007
New Revision: 532664

URL: http://svn.apache.org/viewvc?view=rev&rev=532664
Log:
o Don't use deprecated APIs
o Fix for windows

Modified:
    
maven/sandbox/trunk/wagon/wagon-scm/src/main/java/org/apache/maven/wagon/providers/scm/ScmWagon.java

Modified: 
maven/sandbox/trunk/wagon/wagon-scm/src/main/java/org/apache/maven/wagon/providers/scm/ScmWagon.java
URL: 
http://svn.apache.org/viewvc/maven/sandbox/trunk/wagon/wagon-scm/src/main/java/org/apache/maven/wagon/providers/scm/ScmWagon.java?view=diff&rev=532664&r1=532663&r2=532664
==============================================================================
--- 
maven/sandbox/trunk/wagon/wagon-scm/src/main/java/org/apache/maven/wagon/providers/scm/ScmWagon.java
 (original)
+++ 
maven/sandbox/trunk/wagon/wagon-scm/src/main/java/org/apache/maven/wagon/providers/scm/ScmWagon.java
 Thu Apr 26 01:39:42 2007
@@ -20,6 +20,7 @@
 import org.apache.maven.scm.ScmFile;
 import org.apache.maven.scm.ScmFileSet;
 import org.apache.maven.scm.ScmResult;
+import org.apache.maven.scm.ScmVersion;
 import org.apache.maven.scm.command.add.AddScmResult;
 import org.apache.maven.scm.command.checkout.CheckOutScmResult;
 import org.apache.maven.scm.command.list.ListScmResult;
@@ -42,12 +43,12 @@
 
 import java.io.File;
 import java.io.IOException;
+import java.text.DecimalFormat;
 import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.List;
-import java.util.Stack;
 import java.util.Random;
-import java.text.DecimalFormat;
+import java.util.Stack;
 
 /**
  * Wagon provider to get and put files from and to SCM systems, using 
Maven-SCM as underlying transport.
@@ -55,8 +56,8 @@
  * TODO it probably creates problems if the same wagon is used in two 
different SCM protocols, as instance variables can
  * keep incorrect state.
  * TODO: For doing releases we either have to be able to add files with 
checking out the repository structure which may not be
- *       possible, or the checkout directory needs to be a constant. Doing 
releases won't scale if you have to checkout the
- *       whole repository structure in order to add 3 files.
+ * possible, or the checkout directory needs to be a constant. Doing releases 
won't scale if you have to checkout the
+ * whole repository structure in order to add 3 files.
  *
  * @author <a href="[EMAIL PROTECTED]">Brett Porter</a>
  * @author <a href="[EMAIL PROTECTED]">Emmanuel Venisse</a>
@@ -127,7 +128,9 @@
         return getScmManager().getProviderByType( scmType );
     }
 
-    /** This will cleanup the checkout directory */
+    /**
+     * This will cleanup the checkout directory
+     */
     public void openConnection()
         throws ConnectionException
     {
@@ -176,7 +179,7 @@
         catch ( IOException e )
         {
             throw new ConnectionException( "Unable to cleanup checkout 
directory", e );
-        }        
+        }
     }
 
     private ScmRepository getScmRepository( String url )
@@ -246,8 +249,7 @@
         return scmRepository;
     }
 
-    public void put( File source,
-                     String targetName )
+    public void put( File source, String targetName )
         throws TransferFailedException, ResourceDoesNotExistException, 
AuthorizationException
     {
         if ( source.isDirectory() )
@@ -264,8 +266,7 @@
      * @param targetName
      * @throws TransferFailedException
      */
-    private void putInternal( File source,
-                              String targetName )
+    private void putInternal( File source, String targetName )
         throws TransferFailedException
     {
         Resource target = new Resource( targetName );
@@ -282,15 +283,13 @@
 
             ScmProvider scmProvider = getScmProvider( 
scmRepository.getProvider() );
 
-            String relPath = checkOut( scmProvider, scmRepository, 
source.isDirectory() ? targetName : FileUtils
-                .dirname( targetName ) );
+            String checkoutTargetName = source.isDirectory() ? targetName : 
getDirname( targetName );
+            String relPath = checkOut( scmProvider, scmRepository, 
checkoutTargetName );
 
             File newCheckoutDirectory = new File( checkoutDirectory, relPath );
 
-            ScmResult result;
-
             File scmFile =
-                new File( newCheckoutDirectory, source.isDirectory() ? "" : 
FileUtils.filename( targetName ) );
+                new File( newCheckoutDirectory, source.isDirectory() ? "" : 
getFilename( targetName ) );
 
             boolean fileAlreadyInScm = scmFile.exists();
 
@@ -318,7 +317,7 @@
                 }
             }
 
-            result = scmProvider.checkIn( scmRepository, new ScmFileSet( 
checkoutDirectory ), (String) null, msg );
+            ScmResult result = scmProvider.checkIn( scmRepository, new 
ScmFileSet( checkoutDirectory ), (ScmVersion) null, msg );
 
             checkScmResult( result );
         }
@@ -349,9 +348,7 @@
      * @return
      * @throws TransferFailedException
      */
-    private String checkOut( ScmProvider scmProvider,
-                             ScmRepository scmRepository,
-                             String targetName )
+    private String checkOut( ScmProvider scmProvider, ScmRepository 
scmRepository, String targetName )
         throws TransferFailedException
     {
         checkoutDirectory = createCheckoutDirectory();
@@ -368,11 +365,11 @@
         try
         {
             while ( target.length() > 0 && !scmProvider
-                .list( scmRepository, new ScmFileSet( new File( "." ), new 
File( target ) ), false, (String) null )
+                .list( scmRepository, new ScmFileSet( new File( "." ), new 
File( target ) ), false, (ScmVersion) null )
                 .isSuccess() )
             {
-                stack.push( FileUtils.filename( target ) );
-                target = FileUtils.dirname( target );
+                stack.push( getFilename( target ) );
+                target = getDirname( target );
             }
         }
         catch ( ScmException e )
@@ -389,8 +386,9 @@
         {
             scmRepository = getScmRepository( getRepository().getUrl() + "/" + 
target );
 
-            CheckOutScmResult ret =
-                scmProvider.checkOut( scmRepository, new ScmFileSet( new File( 
checkoutDirectory, "" ) ), (String) null, false );
+            CheckOutScmResult ret = scmProvider.checkOut( scmRepository,
+                                                          new ScmFileSet( new 
File( checkoutDirectory, "" ) ),
+                                                          (ScmVersion) null, 
false );
 
             checkScmResult( ret );
         }
@@ -409,7 +407,7 @@
             relPath += p + "/";
 
             File newDir = new File( checkoutDirectory, relPath );
-            if ( !newDir.mkdir() )
+            if ( !newDir.mkdirs() )
             {
                 throw new TransferFailedException( "Failed to create directory 
" + newDir.getAbsolutePath() +
                     "; parent should exist: " + checkoutDirectory );
@@ -417,7 +415,7 @@
 
             try
             {
-                scmProvider.add( scmRepository, new ScmFileSet( 
checkoutDirectory, new File( relPath ) ) );
+                addFiles( scmProvider, scmRepository, checkoutDirectory, 
relPath );
             }
             catch ( ScmException e )
             {
@@ -440,10 +438,7 @@
      * @return the number of files added.
      * @throws ScmException
      */
-    private int addFiles( ScmProvider scmProvider,
-                          ScmRepository scmRepository,
-                          File basedir,
-                          String scmFilePath )
+    private int addFiles( ScmProvider scmProvider, ScmRepository 
scmRepository, File basedir, String scmFilePath )
         throws ScmException, TransferFailedException
     {
         int addedFiles = 0;
@@ -486,14 +481,15 @@
         return addedFiles;
     }
 
-    /** @return true */
+    /**
+     * @return true
+     */
     public boolean supportsDirectoryCopy()
     {
         return true;
     }
 
-    public void putDirectory( File sourceDirectory,
-                              String destinationDirectory )
+    public void putDirectory( File sourceDirectory, String 
destinationDirectory )
         throws TransferFailedException, ResourceDoesNotExistException, 
AuthorizationException
     {
         if ( !sourceDirectory.isDirectory() )
@@ -531,16 +527,13 @@
      *
      * @throws UnsupportedOperationException always
      */
-    public boolean getIfNewer( String resourceName,
-                               File destination,
-                               long timestamp )
+    public boolean getIfNewer( String resourceName, File destination, long 
timestamp )
         throws TransferFailedException, ResourceDoesNotExistException, 
AuthorizationException
     {
         throw new UnsupportedOperationException( "Not currently supported: 
getIfNewer" );
     }
 
-    public void get( String resourceName,
-                     File destination )
+    public void get( String resourceName, File destination )
         throws TransferFailedException, ResourceDoesNotExistException, 
AuthorizationException
     {
         Resource resource = new Resource( resourceName );
@@ -574,14 +567,14 @@
 
             if ( reservedScmFile != null && new File( basedir, reservedScmFile 
).exists() )
             {
-                scmProvider.update( scmRepository, new ScmFileSet( basedir ), 
(String) null );
+                scmProvider.update( scmRepository, new ScmFileSet( basedir ), 
(ScmVersion) null );
             }
             else
             {
                 // TODO: this should be checking out a full hierachy (requires 
the -d equiv)
                 basedir.mkdirs();
 
-                scmProvider.checkOut( scmRepository, new ScmFileSet( basedir 
), (String) null );
+                scmProvider.checkOut( scmRepository, new ScmFileSet( basedir 
), (ScmVersion) null );
             }
 
             if ( !scmFile.exists() )
@@ -621,8 +614,9 @@
         {
             ScmProvider provider = getScmProvider( repository.getProvider() );
 
-            ListScmResult result =
-                provider.list( repository, new ScmFileSet( new File( "." ), 
new File( resourcePath ) ), false, (String) null );
+            ListScmResult result = provider.list( repository,
+                                                  new ScmFileSet( new File( 
"." ), new File( resourcePath ) ), false,
+                                                  (ScmVersion) null );
 
             if ( !result.isSuccess() )
             {
@@ -661,5 +655,17 @@
         {
             return false;
         }
+    }
+
+    private String getFilename( String filename)
+    {
+        String fname = StringUtils.replace( filename, "/", File.separator);
+        return FileUtils.filename( fname);
+    }
+
+    private String getDirname( String filename)
+    {
+        String fname = StringUtils.replace( filename, "/", File.separator);
+        return FileUtils.dirname( fname);
     }
 }


Reply via email to