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"/>