[jboss-cvs] JBossAS SVN: r74282 - in projects/vfs/trunk/src: test/java/org/jboss/test/virtual/test and 1 other directory.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Sun Jun 8 06:59:59 EDT 2008
Author: alesj
Date: 2008-06-08 06:59:58 -0400 (Sun, 08 Jun 2008)
New Revision: 74282
Modified:
projects/vfs/trunk/src/main/java/org/jboss/virtual/plugins/copy/AbstractCopyMechanism.java
projects/vfs/trunk/src/main/java/org/jboss/virtual/plugins/copy/TempCopyMechanism.java
projects/vfs/trunk/src/test/java/org/jboss/test/virtual/test/CopyTest.java
projects/vfs/trunk/src/test/java/org/jboss/test/virtual/test/DetachedCopyTest.java
projects/vfs/trunk/src/test/java/org/jboss/test/virtual/test/ExplodeTestCase.java
projects/vfs/trunk/src/test/java/org/jboss/test/virtual/test/TempTestCase.java
projects/vfs/trunk/src/test/java/org/jboss/test/virtual/test/UnpackTestCase.java
Log:
Fix temp handling - direct copy.
Modified: projects/vfs/trunk/src/main/java/org/jboss/virtual/plugins/copy/AbstractCopyMechanism.java
===================================================================
--- projects/vfs/trunk/src/main/java/org/jboss/virtual/plugins/copy/AbstractCopyMechanism.java 2008-06-08 02:29:47 UTC (rev 74281)
+++ projects/vfs/trunk/src/main/java/org/jboss/virtual/plugins/copy/AbstractCopyMechanism.java 2008-06-08 10:59:58 UTC (rev 74282)
@@ -100,12 +100,22 @@
*/
protected abstract boolean replaceOldHandler(VirtualFileHandler parent, VirtualFileHandler oldHandler, VirtualFileHandler newHandler) throws IOException;
- public VirtualFile copy(VirtualFile file, VirtualFileHandler handler) throws IOException, URISyntaxException
+ /**
+ * Unwrap the handler from possible delegate handler.
+ *
+ * @param handler the handler to unwrap
+ * @return unwrapped handler
+ */
+ protected VirtualFileHandler unwrap(VirtualFileHandler handler)
{
- VirtualFileHandler unwrapped = handler;
if (handler instanceof DelegatingHandler)
- unwrapped = ((DelegatingHandler)handler).getDelegate();
+ handler = ((DelegatingHandler)handler).getDelegate();
+ return handler;
+ }
+ public VirtualFile copy(VirtualFile file, VirtualFileHandler handler) throws IOException, URISyntaxException
+ {
+ VirtualFileHandler unwrapped = unwrap(handler);
// check modification on unwrapped
if (isAlreadyModified(unwrapped))
{
Modified: projects/vfs/trunk/src/main/java/org/jboss/virtual/plugins/copy/TempCopyMechanism.java
===================================================================
--- projects/vfs/trunk/src/main/java/org/jboss/virtual/plugins/copy/TempCopyMechanism.java 2008-06-08 02:29:47 UTC (rev 74281)
+++ projects/vfs/trunk/src/main/java/org/jboss/virtual/plugins/copy/TempCopyMechanism.java 2008-06-08 10:59:58 UTC (rev 74282)
@@ -26,6 +26,7 @@
import org.jboss.virtual.plugins.context.jar.NestedJarHandler;
import org.jboss.virtual.plugins.context.jar.JarHandler;
+import org.jboss.virtual.plugins.context.zip.ZipEntryHandler;
import org.jboss.virtual.spi.VirtualFileHandler;
/**
@@ -50,13 +51,21 @@
protected File copy(File guidDir, VirtualFileHandler handler) throws IOException
{
// leave top level archives or leaves in one piece
- if (handler instanceof JarHandler || handler.isLeaf())
+ boolean directRewrite = handler.isLeaf();
+ if (directRewrite == false)
{
+ VirtualFileHandler unwrapped = unwrap(handler);
+ directRewrite = unwrapped instanceof JarHandler || (unwrapped instanceof ZipEntryHandler && unwrapped.isNested() == false);
+ }
+
+ if (directRewrite)
+ {
File temp = new File(guidDir, handler.getName());
temp.deleteOnExit();
rewrite(handler, temp);
return temp;
}
+
return super.copy(guidDir, handler);
}
Modified: projects/vfs/trunk/src/test/java/org/jboss/test/virtual/test/CopyTest.java
===================================================================
--- projects/vfs/trunk/src/test/java/org/jboss/test/virtual/test/CopyTest.java 2008-06-08 02:29:47 UTC (rev 74281)
+++ projects/vfs/trunk/src/test/java/org/jboss/test/virtual/test/CopyTest.java 2008-06-08 10:59:58 UTC (rev 74282)
@@ -44,24 +44,24 @@
protected abstract VirtualFile modify(VirtualFile file) throws Exception;
- protected void assertNoReplacement(VFS vfs, String name) throws Throwable
+ protected void assertNoReplacement(VFS vfs, String name, boolean unpacked) throws Throwable
{
VirtualFile original = vfs.findChild(name);
VirtualFile replacement = modify(original);
- assertNoReplacement(original, replacement);
+ assertNoReplacement(original, replacement, unpacked);
}
- protected abstract void assertNoReplacement(VirtualFile original, VirtualFile replacement) throws Exception;
+ protected abstract void assertNoReplacement(VirtualFile original, VirtualFile replacement, boolean unpacked) throws Exception;
public void testNoReplacement() throws Throwable
{
URL rootURL = getResource("/vfs/test");
VFS vfs = VFS.getVFS(rootURL);
- assertNoReplacement(vfs, "unpacked-outer.jar");
- assertNoReplacement(vfs, "jar1-filesonly.jar");
- assertNoReplacement(vfs, "jar1-filesonly.mf");
- assertNoReplacement(vfs, "unpacked-with-metadata.jar/META-INF");
+ assertNoReplacement(vfs, "unpacked-outer.jar", true);
+ assertNoReplacement(vfs, "jar1-filesonly.jar", false);
+ assertNoReplacement(vfs, "jar1-filesonly.mf", false);
+ assertNoReplacement(vfs, "unpacked-with-metadata.jar/META-INF", true);
}
public void testCopyOuter() throws Throwable
@@ -170,15 +170,20 @@
protected void assertReplacement(VirtualFile original, VirtualFile replacement) throws Exception
{
+ assertReplacement(original, replacement, true);
+ }
+
+ protected void assertReplacement(VirtualFile original, VirtualFile replacement, boolean exploded) throws Exception
+ {
assertEquals(original.getName(), replacement.getName());
// when mounting via DelegatingHandler, getPathName changes because VFSContext changes
//assertEquals(original.getPathName(), replacement.getPathName());
// it's a directory
- if (replacement.isLeaf())
+ if (exploded)
+ assertEquals(0, replacement.getSize());
+ else
assertEquals(original.getSize(), replacement.getSize());
- else
- assertEquals(0, replacement.getSize());
assertEquals(original.exists(), replacement.exists());
assertEquals(original.isLeaf(), replacement.isLeaf());
assertEquals(original.isHidden(), replacement.isHidden());
Modified: projects/vfs/trunk/src/test/java/org/jboss/test/virtual/test/DetachedCopyTest.java
===================================================================
--- projects/vfs/trunk/src/test/java/org/jboss/test/virtual/test/DetachedCopyTest.java 2008-06-08 02:29:47 UTC (rev 74281)
+++ projects/vfs/trunk/src/test/java/org/jboss/test/virtual/test/DetachedCopyTest.java 2008-06-08 10:59:58 UTC (rev 74282)
@@ -35,19 +35,22 @@
super(s);
}
+ protected abstract boolean isExploded() throws Exception;
+
protected abstract boolean isSame(VirtualFile original) throws Exception;
- protected void assertNoReplacement(VirtualFile original, VirtualFile replacement) throws Exception
+ protected void assertNoReplacement(VirtualFile original, VirtualFile replacement, boolean unpacked) throws Exception
{
if (isSame(original))
assertSame(original, replacement);
else
- assertReplacement(original, replacement);
+ assertReplacement(original, replacement, unpacked || isExploded());
}
protected void assertTopLevel(VirtualFile original, VirtualFile replacement) throws Exception
{
- assertExplodedReplacement(original, replacement);
+ assertReplacement(original, replacement, isExploded());
+ assertNull(replacement.getParent());
}
protected void assertNestedLevel(VirtualFile original, VirtualFile replacement) throws Exception
Modified: projects/vfs/trunk/src/test/java/org/jboss/test/virtual/test/ExplodeTestCase.java
===================================================================
--- projects/vfs/trunk/src/test/java/org/jboss/test/virtual/test/ExplodeTestCase.java 2008-06-08 02:29:47 UTC (rev 74281)
+++ projects/vfs/trunk/src/test/java/org/jboss/test/virtual/test/ExplodeTestCase.java 2008-06-08 10:59:58 UTC (rev 74282)
@@ -47,6 +47,11 @@
return VFSUtils.explode(file);
}
+ protected boolean isExploded() throws Exception
+ {
+ return true;
+ }
+
protected boolean isSame(VirtualFile original) throws Exception
{
return original.isLeaf();
Modified: projects/vfs/trunk/src/test/java/org/jboss/test/virtual/test/TempTestCase.java
===================================================================
--- projects/vfs/trunk/src/test/java/org/jboss/test/virtual/test/TempTestCase.java 2008-06-08 02:29:47 UTC (rev 74281)
+++ projects/vfs/trunk/src/test/java/org/jboss/test/virtual/test/TempTestCase.java 2008-06-08 10:59:58 UTC (rev 74282)
@@ -47,6 +47,11 @@
return VFSUtils.temp(file);
}
+ protected boolean isExploded() throws Exception
+ {
+ return false;
+ }
+
protected boolean isSame(VirtualFile original) throws Exception
{
// should almost never be same
Modified: projects/vfs/trunk/src/test/java/org/jboss/test/virtual/test/UnpackTestCase.java
===================================================================
--- projects/vfs/trunk/src/test/java/org/jboss/test/virtual/test/UnpackTestCase.java 2008-06-08 02:29:47 UTC (rev 74281)
+++ projects/vfs/trunk/src/test/java/org/jboss/test/virtual/test/UnpackTestCase.java 2008-06-08 10:59:58 UTC (rev 74282)
@@ -47,7 +47,7 @@
return VFSUtils.unpack(file);
}
- protected void assertNoReplacement(VirtualFile original, VirtualFile replacement) throws Exception
+ protected void assertNoReplacement(VirtualFile original, VirtualFile replacement, boolean exploded) throws Exception
{
assertSame(original, replacement);
}
More information about the jboss-cvs-commits
mailing list