[jboss-cvs] JBossAS SVN: r93591 - in projects/vfs/branches/Branch_2_1/src: main/java/org/jboss/virtual/plugins/context/vfs and 1 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Wed Sep 16 04:55:52 EDT 2009
Author: alesj
Date: 2009-09-16 04:55:51 -0400 (Wed, 16 Sep 2009)
New Revision: 93591
Modified:
projects/vfs/branches/Branch_2_1/src/main/java/org/jboss/virtual/AssembledDirectory.java
projects/vfs/branches/Branch_2_1/src/main/java/org/jboss/virtual/plugins/context/vfs/AssembledDirectoryHandler.java
projects/vfs/branches/Branch_2_1/src/test/java/org/jboss/test/virtual/test/AssembledContextTestCase.java
Log:
[JBVFS-116]; remove, clear API in AssembledDirectory.
Modified: projects/vfs/branches/Branch_2_1/src/main/java/org/jboss/virtual/AssembledDirectory.java
===================================================================
--- projects/vfs/branches/Branch_2_1/src/main/java/org/jboss/virtual/AssembledDirectory.java 2009-09-16 08:16:59 UTC (rev 93590)
+++ projects/vfs/branches/Branch_2_1/src/main/java/org/jboss/virtual/AssembledDirectory.java 2009-09-16 08:55:51 UTC (rev 93591)
@@ -34,6 +34,7 @@
import org.jboss.virtual.plugins.context.vfs.ByteArrayHandler;
import org.jboss.virtual.plugins.vfs.helpers.FilterVirtualFileVisitor;
import org.jboss.virtual.plugins.vfs.helpers.SuffixesExcludeFilter;
+import org.jboss.virtual.plugins.vfs.helpers.PathTokenizer;
/**
* Extension of VirtualFile that represents a virtual directory that can be composed of arbitrary files and resources
@@ -178,16 +179,16 @@
if (path == null)
throw new IllegalArgumentException("Null path");
- String[] pkgs = path.split("/");
+ List<String> pkgs = PathTokenizer.getTokens(path);
AssembledDirectoryHandler dir = directory;
- for (int i = 0; i < pkgs.length - 1; i++)
+ for (int i = 0; i < pkgs.size() - 1; i++)
{
- AssembledDirectoryHandler next = (AssembledDirectoryHandler) dir.findChild(pkgs[i]);
+ AssembledDirectoryHandler next = (AssembledDirectoryHandler) dir.findChild(pkgs.get(i));
if (next == null)
{
try
{
- next = new AssembledDirectoryHandler(dir.getVFSContext(), dir, pkgs[i]);
+ next = new AssembledDirectoryHandler(dir.getVFSContext(), dir, pkgs.get(i));
}
catch (IOException e)
{
@@ -389,11 +390,7 @@
return false;
}
}
- if (p < paths.length)
- return false;
- if (x < expressions.length)
- return false;
- return true;
+ return p >= paths.length && x >= expressions.length;
}
/**
@@ -591,4 +588,22 @@
throw new RuntimeException(e);
}
}
+
+ /**
+ * Remove path.
+ *
+ * @param path the path to remove
+ */
+ public void remove(String path)
+ {
+ directory.removeChild(path);
+ }
+
+ /**
+ * Clear directory.
+ */
+ public void clear()
+ {
+ directory.cleanup();
+ }
}
Modified: projects/vfs/branches/Branch_2_1/src/main/java/org/jboss/virtual/plugins/context/vfs/AssembledDirectoryHandler.java
===================================================================
--- projects/vfs/branches/Branch_2_1/src/main/java/org/jboss/virtual/plugins/context/vfs/AssembledDirectoryHandler.java 2009-09-16 08:16:59 UTC (rev 93590)
+++ projects/vfs/branches/Branch_2_1/src/main/java/org/jboss/virtual/plugins/context/vfs/AssembledDirectoryHandler.java 2009-09-16 08:55:51 UTC (rev 93591)
@@ -103,6 +103,12 @@
return false;
}
+ @Override
+ public void cleanup()
+ {
+ children.clear();
+ }
+
public VirtualFileHandler findChild(String name)
{
return children.get(name);
Modified: projects/vfs/branches/Branch_2_1/src/test/java/org/jboss/test/virtual/test/AssembledContextTestCase.java
===================================================================
--- projects/vfs/branches/Branch_2_1/src/test/java/org/jboss/test/virtual/test/AssembledContextTestCase.java 2009-09-16 08:16:59 UTC (rev 93590)
+++ projects/vfs/branches/Branch_2_1/src/test/java/org/jboss/test/virtual/test/AssembledContextTestCase.java 2009-09-16 08:55:51 UTC (rev 93591)
@@ -273,7 +273,24 @@
{
AssembledDirectory directory = AssembledContextFactory.getInstance().create("foo.jar");
directory.mkdir("META-INF");
- assertNotNull(directory.findChild("META-INF"));
+ assertNotNull(directory.getChild("META-INF"));
+ }
+ public void testRemoveAndClear() throws Exception
+ {
+ AssembledDirectory directory = AssembledContextFactory.getInstance().create("foo.jar");
+ AssembledDirectory metainf = directory.mkdir("META-INF");
+ assertNotNull(directory.getChild("META-INF"));
+
+ VirtualFile resource = metainf.addBytes(new byte[]{1, 2, 3}, "bytes.tmp");
+ assertEquals(resource, metainf.getChild("bytes.tmp"));
+ metainf.remove("bytes.tmp");
+ assertNull(metainf.getChild("bytes.tmp"));
+
+ metainf.addBytes(new byte[]{1, 2, 3}, "bytes1.tmp");
+ metainf.addBytes(new byte[]{1, 2, 3}, "bytes2.tmp");
+ metainf.clear();
+ assertNull(metainf.getChild("bytes1.tmp"));
+ assertNull(metainf.getChild("bytes2.tmp"));
}
}
More information about the jboss-cvs-commits
mailing list