[jboss-cvs] JBossAS SVN: r88218 - projects/vfs/trunk/src/test/java/org/jboss/test/virtual/test.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Tue May 5 10:46:33 EDT 2009
Author: alesj
Date: 2009-05-05 10:46:33 -0400 (Tue, 05 May 2009)
New Revision: 88218
Modified:
projects/vfs/trunk/src/test/java/org/jboss/test/virtual/test/MemoryTestCase.java
Log:
Test JBVFS-109.
Modified: projects/vfs/trunk/src/test/java/org/jboss/test/virtual/test/MemoryTestCase.java
===================================================================
--- projects/vfs/trunk/src/test/java/org/jboss/test/virtual/test/MemoryTestCase.java 2009-05-05 14:34:12 UTC (rev 88217)
+++ projects/vfs/trunk/src/test/java/org/jboss/test/virtual/test/MemoryTestCase.java 2009-05-05 14:46:33 UTC (rev 88218)
@@ -25,20 +25,26 @@
import java.io.InputStream;
import java.net.URI;
import java.net.URL;
+import java.util.ArrayList;
+import java.util.Enumeration;
import java.util.HashMap;
import java.util.List;
import junit.framework.Test;
+import org.jboss.util.collection.Iterators;
import org.jboss.util.id.GUID;
+import org.jboss.virtual.MemoryFileFactory;
import org.jboss.virtual.VFS;
import org.jboss.virtual.VirtualFile;
-import org.jboss.virtual.MemoryFileFactory;
import org.jboss.virtual.plugins.context.memory.MemoryContextFactory;
import org.jboss.virtual.plugins.context.memory.MemoryContextHandler;
+import org.jboss.virtual.plugins.cache.IterableTimedVFSCache;
import org.jboss.virtual.spi.VFSContext;
import org.jboss.virtual.spi.VFSContextFactory;
import org.jboss.virtual.spi.VFSContextFactoryLocator;
import org.jboss.virtual.spi.VirtualFileHandler;
+import org.jboss.virtual.spi.cache.VFSCache;
+import org.jboss.virtual.spi.cache.VFSCacheFactory;
/**
* Memory vfs tests.
@@ -324,7 +330,72 @@
URL rootD = new URL("vfsmemory", guid, "/classes");
assertEquals(rootC, rootD);
}
-
+
+ public void testClassLoaderNoCache() throws Exception
+ {
+ doTestClassLoader();
+ }
+
+ public void testClassLoaderCache() throws Exception
+ {
+ VFSCache cache = new IterableTimedVFSCache();
+ cache.start();
+ VFSCacheFactory.setInstance(cache);
+ try
+ {
+ doTestClassLoader();
+ }
+ finally
+ {
+ VFSCacheFactory.setInstance(null);
+ cache.stop();
+ }
+ }
+
+ @SuppressWarnings({"unchecked", "deprecation"})
+ private void doTestClassLoader() throws IOException
+ {
+ URL root = getResource("/vfs/test/nested/nested.jar");
+ final VirtualFile nested = VFS.createNewRoot(root);
+
+ // flush - so we only get in-memory contexts (if they exist)
+ VFSCacheFactory.getInstance().flush();
+
+ root = new URL("vfsmemory://aopdomain");
+ final VFS vfs = MemoryFileFactory.createRoot(root);
+ URL leaf = new URL("vfsmemory://aopdomain/org/acme/leaf");
+ MemoryFileFactory.putFile(leaf, new byte[]{'a', 'b', 'c'});
+
+ ClassLoader cl = new ClassLoader()
+ {
+ @Override
+ public Enumeration<URL> getResources(String name) throws IOException
+ {
+ try
+ {
+ List<URL> urls = new ArrayList<URL>();
+ urls.add(nested.findChild(name).toURL());
+ urls.add(vfs.findChild(name).toURL());
+ return Iterators.toEnumeration(urls.iterator());
+ }
+ catch (Exception e)
+ {
+ IOException ioe = new IOException();
+ ioe.initCause(e);
+ throw ioe;
+ }
+ }
+ };
+
+ Enumeration<URL> urls = cl.getResources("");
+ while (urls.hasMoreElements())
+ {
+ URL url = urls.nextElement();
+ VirtualFile file = VFS.getRoot(url);
+ assertNotNull(file);
+ }
+ }
+
protected void setUp() throws Exception
{
super.setUp();
More information about the jboss-cvs-commits
mailing list