You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@ant.apache.org by xa...@apache.org on 2008/06/24 05:27:38 UTC

svn commit: r671005 - in /ant/ivy/core/trunk: src/java/org/apache/ivy/plugins/resolver/packager/ src/java/org/apache/ivy/util/ test/java/org/apache/ivy/plugins/resolver/ test/repositories/packager/repo/org/mod/1.0/

Author: xavier
Date: Mon Jun 23 20:27:37 2008
New Revision: 671005

URL: http://svn.apache.org/viewvc?rev=671005&view=rev
Log:
review some packager resolver code:
- use FileUtil.forceDelete instead of re implementing own recursive delete
- put temporary test files in build/test instead of tmp, to follow other unit test template
- remove m2resource test for the moment, since the "website" does not provide it (missing in patch)

Modified:
    ant/ivy/core/trunk/src/java/org/apache/ivy/plugins/resolver/packager/PackagerCacheEntry.java
    ant/ivy/core/trunk/src/java/org/apache/ivy/plugins/resolver/packager/PackagerResolver.java
    ant/ivy/core/trunk/src/java/org/apache/ivy/util/FileUtil.java
    ant/ivy/core/trunk/test/java/org/apache/ivy/plugins/resolver/PackagerResolverTest.java
    ant/ivy/core/trunk/test/repositories/packager/repo/org/mod/1.0/packager.xml

Modified: ant/ivy/core/trunk/src/java/org/apache/ivy/plugins/resolver/packager/PackagerCacheEntry.java
URL: http://svn.apache.org/viewvc/ant/ivy/core/trunk/src/java/org/apache/ivy/plugins/resolver/packager/PackagerCacheEntry.java?rev=671005&r1=671004&r2=671005&view=diff
==============================================================================
--- ant/ivy/core/trunk/src/java/org/apache/ivy/plugins/resolver/packager/PackagerCacheEntry.java (original)
+++ ant/ivy/core/trunk/src/java/org/apache/ivy/plugins/resolver/packager/PackagerCacheEntry.java Mon Jun 23 20:27:37 2008
@@ -29,6 +29,7 @@
 import org.apache.ivy.core.module.descriptor.Artifact;
 import org.apache.ivy.core.module.id.ModuleRevisionId;
 import org.apache.ivy.plugins.resolver.util.ResolvedResource;
+import org.apache.ivy.util.FileUtil;
 
 /**
  * Represents one entry in the cache of a {@link PackagerResolver}.
@@ -161,7 +162,7 @@
 
     public synchronized boolean cleanup() {
         this.built = false;
-        return PackagerResolver.deleteRecursive(this.dir);
+        return FileUtil.forceDelete(this.dir);
     }
 
     protected void saveFile(String name, InputStream input) throws IOException {

Modified: ant/ivy/core/trunk/src/java/org/apache/ivy/plugins/resolver/packager/PackagerResolver.java
URL: http://svn.apache.org/viewvc/ant/ivy/core/trunk/src/java/org/apache/ivy/plugins/resolver/packager/PackagerResolver.java?rev=671005&r1=671004&r2=671005&view=diff
==============================================================================
--- ant/ivy/core/trunk/src/java/org/apache/ivy/plugins/resolver/packager/PackagerResolver.java (original)
+++ ant/ivy/core/trunk/src/java/org/apache/ivy/plugins/resolver/packager/PackagerResolver.java Mon Jun 23 20:27:37 2008
@@ -29,6 +29,7 @@
 import org.apache.ivy.core.module.id.ModuleRevisionId;
 import org.apache.ivy.plugins.resolver.URLResolver;
 import org.apache.ivy.plugins.resolver.util.ResolvedResource;
+import org.apache.ivy.util.FileUtil;
 import org.apache.ivy.util.Message;
 
 /**
@@ -73,7 +74,7 @@
         }
         packagerCache.clear();
         if (this.buildRoot != null) {
-            deleteRecursive(this.buildRoot);
+            FileUtil.forceDelete(this.buildRoot);
         }
     }
 
@@ -203,20 +204,5 @@
     public String getTypeName() {
         return "packager";
     }
-
-    public static boolean deleteRecursive(File file) {
-        if (!file.exists()) {
-            return true;
-        }
-        if (file.isDirectory()) {
-            File[] files = file.listFiles();
-            for (int i = 0; i < files.length; i++) {
-                if (!deleteRecursive(files[i])) {
-                    return false;
-                }
-            }
-        }
-        return file.delete();
-    }
 }
 

Modified: ant/ivy/core/trunk/src/java/org/apache/ivy/util/FileUtil.java
URL: http://svn.apache.org/viewvc/ant/ivy/core/trunk/src/java/org/apache/ivy/util/FileUtil.java?rev=671005&r1=671004&r2=671005&view=diff
==============================================================================
--- ant/ivy/core/trunk/src/java/org/apache/ivy/util/FileUtil.java (original)
+++ ant/ivy/core/trunk/src/java/org/apache/ivy/util/FileUtil.java Mon Jun 23 20:27:37 2008
@@ -268,14 +268,27 @@
         return dir + "/" + file;
     }
 
-    public static void forceDelete(File f) {
-        if (f.isDirectory()) {
-            File[] sub = f.listFiles();
-            for (int i = 0; i < sub.length; i++) {
-                forceDelete(sub[i]);
+    /**
+     * Recursively delete file
+     * 
+     * @param file
+     *            the file to delete
+     * @return true if the deletion completed successfully (ie if the file does not exist on the
+     *         filesystem after this call), false if a deletion was not performed successfully.
+     */
+    public static boolean forceDelete(File file) {
+        if (!file.exists()) {
+            return true;
+        }
+        if (file.isDirectory()) {
+            File[] files = file.listFiles();
+            for (int i = 0; i < files.length; i++) {
+                if (!forceDelete(files[i])) {
+                    return false;
+                }
             }
         }
-        f.delete();
+        return file.delete();
     }
 
     /**

Modified: ant/ivy/core/trunk/test/java/org/apache/ivy/plugins/resolver/PackagerResolverTest.java
URL: http://svn.apache.org/viewvc/ant/ivy/core/trunk/test/java/org/apache/ivy/plugins/resolver/PackagerResolverTest.java?rev=671005&r1=671004&r2=671005&view=diff
==============================================================================
--- ant/ivy/core/trunk/test/java/org/apache/ivy/plugins/resolver/PackagerResolverTest.java (original)
+++ ant/ivy/core/trunk/test/java/org/apache/ivy/plugins/resolver/PackagerResolverTest.java Mon Jun 23 20:27:37 2008
@@ -18,10 +18,6 @@
 package org.apache.ivy.plugins.resolver;
 
 import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.net.URL;
 import java.util.Date;
 import java.util.GregorianCalendar;
 
@@ -33,7 +29,6 @@
 import org.apache.ivy.core.report.ArtifactDownloadReport;
 import org.apache.ivy.core.report.DownloadReport;
 import org.apache.ivy.core.report.DownloadStatus;
-import org.apache.ivy.core.resolve.DownloadOptions;
 import org.apache.ivy.core.resolve.ResolveData;
 import org.apache.ivy.core.resolve.ResolveEngine;
 import org.apache.ivy.core.resolve.ResolveOptions;
@@ -42,8 +37,10 @@
 import org.apache.ivy.core.sort.SortEngine;
 import org.apache.ivy.plugins.resolver.packager.PackagerResolver;
 import org.apache.ivy.plugins.resolver.packager.SubProcess;
+import org.apache.ivy.util.FileUtil;
 import org.apache.tools.ant.Project;
-import org.apache.tools.ant.taskdefs.Delete;
+import org.apache.tools.ant.taskdefs.Copy;
+import org.apache.tools.ant.types.FileSet;
 
 /**
  * Tests PackagerResolver.
@@ -62,7 +59,7 @@
     private File _workdir;
     private File _builddir;
     private File _cachedir;
-    private File _websitedir;   // really a symlink
+    private File _websitedir;
 
     protected void setUp() throws Exception {
         _settings = new IvySettings();
@@ -73,7 +70,7 @@
         _settings.setDefaultCache(_cache);
 
         // Create work space with build and resource cache directories
-        _workdir = new File(new File(System.getProperty("java.io.tmpdir")), "PackagerResolverTest");
+        _workdir = new File("build/test/PackagerResolverTest");
         _builddir = new File(_workdir, "build");
         _cachedir = new File(_workdir, "resources");
         _websitedir = new File(_workdir, "website");
@@ -82,27 +79,23 @@
             throw new Exception("can't create directories under " + _workdir);
         }
 
-        // Add symlink to create "website"
-        String linkFrom = new File("test/repositories/packager/website").getAbsolutePath();
-        String linkTo = _websitedir.getAbsolutePath();
-        SubProcess proc = new SubProcess(
-          new String[] { "ln", "-sf", linkFrom, linkTo }, null, null);
-        if (proc.run() != 0)
-            throw new RuntimeException("can't symlink " + linkFrom + " -> " + linkTo);
+        // copy "website"
+        Copy copy = new Copy();
+        FileSet fileSet = new FileSet();
+        fileSet.setDir(new File("test/repositories/packager/website"));
+        copy.addFileset(fileSet);
+        copy.setTodir(_websitedir);
+        copy.setProject(new Project());
+        copy.execute();
     }
 
     protected void tearDown() throws Exception {
-        Delete del = new Delete();
-        del.setProject(new Project());
-        del.setDir(_cache);
-        del.execute();
+        FileUtil.forceDelete(_cache);
         cleanupTempDirs();
     }
 
     protected void cleanupTempDirs() throws Exception {
-        PackagerResolver.deleteRecursive(_builddir);
-        PackagerResolver.deleteRecursive(_cachedir);
-        _websitedir.delete();
+        FileUtil.forceDelete(_workdir);
     }
 
     public void testFile() throws Exception {
@@ -161,6 +154,7 @@
         assertEquals(DownloadStatus.NO, ar.getDownloadStatus());
 
         // Now download the maven2 artifact
+        /*
         artifact = DefaultArtifact.cloneWithAnotherName(artifact, "foobar-janfu");
         report = resolver.download(new Artifact[] {artifact}, downloadOptions());
         assertNotNull(report);
@@ -172,5 +166,6 @@
 
         assertEquals(artifact, ar.getArtifact());
         assertEquals(DownloadStatus.SUCCESSFUL, ar.getDownloadStatus());
+        */
     }
 }

Modified: ant/ivy/core/trunk/test/repositories/packager/repo/org/mod/1.0/packager.xml
URL: http://svn.apache.org/viewvc/ant/ivy/core/trunk/test/repositories/packager/repo/org/mod/1.0/packager.xml?rev=671005&r1=671004&r2=671005&view=diff
==============================================================================
--- ant/ivy/core/trunk/test/repositories/packager/repo/org/mod/1.0/packager.xml (original)
+++ ant/ivy/core/trunk/test/repositories/packager/repo/org/mod/1.0/packager.xml Mon Jun 23 20:27:37 2008
@@ -21,14 +21,16 @@
     <property name="version" value="${ivy.packager.revision}"/>
     <property name="archive" value="${name}-${version}"/>
 
-    <resource dest="extract" url="file://${java.io.tmpdir}/PackagerResolverTest/website/dist/${archive}.tar.gz"
+    <resource dest="extract" url="file://${user.dir}/../../../../website/dist/${archive}.tar.gz"
       sha1="40c80c1c5d7db0038f396f2393885d2e8c74270d">
         <include name="${archive}/${name}.jar"/>
     </resource>
 
-    <m2resource repo="file://${java.io.tmpdir}/PackagerResolverTest/website/m2repo" groupId="org.apache.ivy" artifactId="foobar">
+	<!-- 
+    <m2resource repo="file://${user.dir}/../../../../website/m2repo" groupId="org.apache.ivy" artifactId="foobar">
         <artifact classifier="janfu" sha1="da39a3ee5e6b4b0d3255bfef95601890afd80709" tofile="artifacts/jars/foobar-janfu.jar"/>
     </m2resource>
+ 	-->
 
     <build>
         <move file="extract/${archive}/${name}.jar" todir="artifacts/jars"/>