You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@ant.apache.org by hi...@apache.org on 2012/08/21 16:49:47 UTC

svn commit: r1375585 - in /ant/ivy/core/trunk: src/java/org/apache/ivy/core/retrieve/RetrieveEngine.java test/java/org/apache/ivy/core/retrieve/RetrieveTest.java

Author: hibou
Date: Tue Aug 21 14:49:46 2012
New Revision: 1375585

URL: http://svn.apache.org/viewvc?rev=1375585&view=rev
Log:
Fix sync retrieve of uncompressed artifacts

Modified:
    ant/ivy/core/trunk/src/java/org/apache/ivy/core/retrieve/RetrieveEngine.java
    ant/ivy/core/trunk/test/java/org/apache/ivy/core/retrieve/RetrieveTest.java

Modified: ant/ivy/core/trunk/src/java/org/apache/ivy/core/retrieve/RetrieveEngine.java
URL: http://svn.apache.org/viewvc/ant/ivy/core/trunk/src/java/org/apache/ivy/core/retrieve/RetrieveEngine.java?rev=1375585&r1=1375584&r2=1375585&view=diff
==============================================================================
--- ant/ivy/core/trunk/src/java/org/apache/ivy/core/retrieve/RetrieveEngine.java (original)
+++ ant/ivy/core/trunk/src/java/org/apache/ivy/core/retrieve/RetrieveEngine.java Tue Aug 21 14:49:46 2012
@@ -185,8 +185,12 @@ public class RetrieveEngine {
                         targetIvysStructure
                                 .addAll(FileUtil.getPathFiles(ivyRetrieveRoot, destFile));
                     } else {
-                        targetArtifactsStructure.addAll(FileUtil.getPathFiles(fileRetrieveRoot,
-                            destFile));
+                        Iterator destFiles = FileUtil.listAll(destFile, Collections.EMPTY_LIST)
+                                .iterator();
+                        while (destFiles.hasNext()) {
+                            targetArtifactsStructure.addAll(FileUtil.getPathFiles(fileRetrieveRoot,
+                                (File) destFiles.next()));
+                        }
                     }
                 }
             }

Modified: ant/ivy/core/trunk/test/java/org/apache/ivy/core/retrieve/RetrieveTest.java
URL: http://svn.apache.org/viewvc/ant/ivy/core/trunk/test/java/org/apache/ivy/core/retrieve/RetrieveTest.java?rev=1375585&r1=1375584&r2=1375585&view=diff
==============================================================================
--- ant/ivy/core/trunk/test/java/org/apache/ivy/core/retrieve/RetrieveTest.java (original)
+++ ant/ivy/core/trunk/test/java/org/apache/ivy/core/retrieve/RetrieveTest.java Tue Aug 21 14:49:46 2012
@@ -334,6 +334,35 @@ public class RetrieveTest extends TestCa
         assertEquals(new File(dest, "META-INF/MANIFEST.MF"), jarContents[0].listFiles()[0]);
     }
 
+    public void testUncompressSync() throws Exception {
+        ResolveOptions roptions = getResolveOptions(new String[] {"*"});
+        roptions.setExpandCompressed(true);
+
+        URL url = new File("test/repositories/1/compression/module1/ivys/ivy-1.0.xml").toURI()
+                .toURL();
+
+        // normal resolve, the file goes in the cache
+        ResolveReport report = ivy.resolve(url, roptions);
+        assertFalse(report.hasError());
+        ModuleDescriptor md = report.getModuleDescriptor();
+        assertNotNull(md);
+
+        String pattern = "build/test/retrieve/[organization]/[module]/[conf]/[type]s/[artifact]-[revision](.[ext])";
+
+        RetrieveOptions options = getRetrieveOptions();
+        options.setUncompressed(true);
+        options.setSync(true);
+        ivy.retrieve(md.getModuleRevisionId(), pattern, options);
+
+        File dest = new File("build/test/retrieve/compression/module2/default/jars/module2-1.0");
+        assertTrue(dest.exists());
+        assertTrue(dest.isDirectory());
+        File[] jarContents = dest.listFiles();
+        assertEquals(new File(dest, "META-INF"), jarContents[0]);
+        assertEquals(new File(dest, "test.txt"), jarContents[1]);
+        assertEquals(new File(dest, "META-INF/MANIFEST.MF"), jarContents[0].listFiles()[0]);
+    }
+
     private RetrieveOptions getRetrieveOptions() {
         return new RetrieveOptions();
     }