You are viewing a plain text version of this content. The canonical link for it is here.
Posted to ivy-commits@incubator.apache.org by xa...@apache.org on 2007/03/07 21:57:25 UTC

svn commit: r515788 - in /incubator/ivy/core/trunk: CHANGES.txt src/java/org/apache/ivy/core/retrieve/RetrieveEngine.java src/java/org/apache/ivy/util/FileUtil.java test/java/org/apache/ivy/core/retrieve/RetrieveTest.java

Author: xavier
Date: Wed Mar  7 13:57:24 2007
New Revision: 515788

URL: http://svn.apache.org/viewvc?view=rev&rev=515788
Log:
FIX:  FileUtil#copy(File src, File dest, CopyProgressListener l, boolean overwrite) (IVY-420)

Modified:
    incubator/ivy/core/trunk/CHANGES.txt
    incubator/ivy/core/trunk/src/java/org/apache/ivy/core/retrieve/RetrieveEngine.java
    incubator/ivy/core/trunk/src/java/org/apache/ivy/util/FileUtil.java
    incubator/ivy/core/trunk/test/java/org/apache/ivy/core/retrieve/RetrieveTest.java

Modified: incubator/ivy/core/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/incubator/ivy/core/trunk/CHANGES.txt?view=diff&rev=515788&r1=515787&r2=515788
==============================================================================
--- incubator/ivy/core/trunk/CHANGES.txt (original)
+++ incubator/ivy/core/trunk/CHANGES.txt Wed Mar  7 13:57:24 2007
@@ -16,6 +16,7 @@
 - IMPROVE: Add a unit test to verify that latest.integration accepts released modules (IVY-394) (thanks to Gilles Scokart)
 - IMPROVE: New "modules in use" section in console report at the end of resolve (IVY-373) (thanks to John Wiliams)
 
+- FIX:  FileUtil#copy(File src, File dest, CopyProgressListener l, boolean overwrite) (IVY-420)
 - FIX: Ivy doesn't recognize maven2 classifiers (IVY-418)
 - FIX: Static revision replacement is not working when delivering an artifact with a dependency having extra attributes (IVY-415)
 - FIX: Static revision replacement is not working when delivering an artifact with a dependency on a branch (IVY-404)

Modified: incubator/ivy/core/trunk/src/java/org/apache/ivy/core/retrieve/RetrieveEngine.java
URL: http://svn.apache.org/viewvc/incubator/ivy/core/trunk/src/java/org/apache/ivy/core/retrieve/RetrieveEngine.java?view=diff&rev=515788&r1=515787&r2=515788
==============================================================================
--- incubator/ivy/core/trunk/src/java/org/apache/ivy/core/retrieve/RetrieveEngine.java (original)
+++ incubator/ivy/core/trunk/src/java/org/apache/ivy/core/retrieve/RetrieveEngine.java Wed Mar  7 13:57:24 2007
@@ -69,6 +69,7 @@
     public int retrieve(ModuleRevisionId mrid, String destFilePattern, RetrieveOptions options) throws IOException {
     	ModuleId moduleId = mrid.getModuleId();
         Message.info(":: retrieving :: "+moduleId+(options.isSync()?" [sync]":""));
+        Message.verbose("\tcheckUpToDate="+_settings.isCheckUpToDate());
         long start = System.currentTimeMillis();
         
         destFilePattern = IvyPatternHelper.substituteVariables(destFilePattern, _settings.getVariables());
@@ -110,9 +111,9 @@
                     if (!_settings.isCheckUpToDate() || !upToDate(archive, destFile)) {
                         Message.verbose("\t\tto "+destFile);
                         if (options.isMakeSymlinks()) {
-                            FileUtil.symlink(archive, destFile, null, false);
+                            FileUtil.symlink(archive, destFile, null, true);
                         } else {
-                            FileUtil.copy(archive, destFile, null);
+                            FileUtil.copy(archive, destFile, null, true);
                         }
                         targetsCopied++;
                     } else {
@@ -145,7 +146,7 @@
                 	}
                 }
             }
-            Message.info("\t"+targetsCopied+" artifacts copied, "+targetsUpToDate+" already retrieved");
+            Message.info("\t"+targetsCopied+" artifacts copied"+(_settings.isCheckUpToDate()?(", "+targetsUpToDate+" already retrieved"):""));
             Message.verbose("\tretrieve done ("+(System.currentTimeMillis()-start)+"ms)");
             
             return targetsCopied;

Modified: incubator/ivy/core/trunk/src/java/org/apache/ivy/util/FileUtil.java
URL: http://svn.apache.org/viewvc/incubator/ivy/core/trunk/src/java/org/apache/ivy/util/FileUtil.java?view=diff&rev=515788&r1=515787&r2=515788
==============================================================================
--- incubator/ivy/core/trunk/src/java/org/apache/ivy/util/FileUtil.java (original)
+++ incubator/ivy/core/trunk/src/java/org/apache/ivy/util/FileUtil.java Wed Mar  7 13:57:24 2007
@@ -107,6 +107,7 @@
         		} // if dest is writable, the copy will overwrite it without requiring a delete
         	} else {
         		Message.verbose(dest+" already exists, nothing done");
+        		return;
         	}
         }
         copy(new FileInputStream(src), dest, l);

Modified: incubator/ivy/core/trunk/test/java/org/apache/ivy/core/retrieve/RetrieveTest.java
URL: http://svn.apache.org/viewvc/incubator/ivy/core/trunk/test/java/org/apache/ivy/core/retrieve/RetrieveTest.java?view=diff&rev=515788&r1=515787&r2=515788
==============================================================================
--- incubator/ivy/core/trunk/test/java/org/apache/ivy/core/retrieve/RetrieveTest.java (original)
+++ incubator/ivy/core/trunk/test/java/org/apache/ivy/core/retrieve/RetrieveTest.java Wed Mar  7 13:57:24 2007
@@ -81,6 +81,25 @@
         assertTrue(new File(IvyPatternHelper.substitute(pattern, "org1", "mod1.2", "2.0", "mod1.2", "jar", "jar", "default")).exists());
     }
 
+    public void testRetrieveOverwrite() throws Exception {
+        // mod1.1 depends on mod1.2
+        ResolveReport report = _ivy.resolve(new File("test/repositories/1/org1/mod1.1/ivys/ivy-1.0.xml").toURL(),
+        		getResolveOptions(new String[] {"*"}));
+        assertNotNull(report);
+        ModuleDescriptor md = report.getModuleDescriptor();
+        assertNotNull(md);
+        
+        String pattern = "build/test/retrieve/[module]/[conf]/[artifact]-[revision].[ext]";
+        
+        // we create a fake old file to see if it is overwritten
+        File file = new File(IvyPatternHelper.substitute(pattern, "org1", "mod1.2", "2.0", "mod1.2", "jar", "jar", "default"));
+        file.getParentFile().mkdirs();
+        file.createNewFile();
+        file.setLastModified(10000);
+        _ivy.retrieve(md.getModuleRevisionId(), pattern, getRetrieveOptions());
+        assertEquals(new File("test/repositories/1/org1/mod1.2/jars/mod1.2-2.0.jar").lastModified(), file.lastModified());
+    }
+
     public void testRetrieveWithSymlinks() throws Exception {
         // mod1.1 depends on mod1.2
         ResolveReport report = _ivy.resolve(new File("test/repositories/1/org1/mod1.1/ivys/ivy-1.0.xml").toURL(),