[jboss-cvs] JBossAS SVN: r73733 - in projects/jboss-deployers/trunk/deployers-vfs/src/tests/org/jboss/test/deployers/vfs/deployer/facelets: test and 1 other directory.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Wed May 28 07:32:28 EDT 2008
Author: alesj
Date: 2008-05-28 07:32:28 -0400 (Wed, 28 May 2008)
New Revision: 73733
Modified:
projects/jboss-deployers/trunk/deployers-vfs/src/tests/org/jboss/test/deployers/vfs/deployer/facelets/support/Classpath.java
projects/jboss-deployers/trunk/deployers-vfs/src/tests/org/jboss/test/deployers/vfs/deployer/facelets/test/FaceletsUnitTestCase.java
Log:
Facelets Classpath hack, to understand VFS. :-)
Modified: projects/jboss-deployers/trunk/deployers-vfs/src/tests/org/jboss/test/deployers/vfs/deployer/facelets/support/Classpath.java
===================================================================
--- projects/jboss-deployers/trunk/deployers-vfs/src/tests/org/jboss/test/deployers/vfs/deployer/facelets/support/Classpath.java 2008-05-28 10:59:36 UTC (rev 73732)
+++ projects/jboss-deployers/trunk/deployers-vfs/src/tests/org/jboss/test/deployers/vfs/deployer/facelets/support/Classpath.java 2008-05-28 11:32:28 UTC (rev 73733)
@@ -23,6 +23,7 @@
import java.io.File;
import java.io.IOException;
+import java.io.InputStream;
import java.net.JarURLConnection;
import java.net.URL;
import java.net.URLConnection;
@@ -32,6 +33,8 @@
import java.util.Set;
import java.util.jar.JarEntry;
import java.util.jar.JarFile;
+import java.util.zip.ZipEntry;
+import java.util.zip.ZipInputStream;
/**
* Mock of Facelets's Classpath class.
@@ -73,21 +76,23 @@
}
else
{
- searchDir(all, new File(URLDecoder.decode(url.getFile(), "UTF-8")), suffix);
+ boolean searchDone = searchDir(all, new File(URLDecoder.decode(url.getFile(), "UTF-8")), suffix);
+ if (searchDone == false)
+ {
+ searchFromURL(all, prefix, suffix, url);
+ }
}
}
}
return (URL[])all.toArray(new URL[all.size()]);
}
- private static void searchDir(Set result, File file, String suffix)
- throws IOException
+ private static boolean searchDir(Set result, File file, String suffix) throws IOException
{
if (file.exists() && file.isDirectory())
{
File[] fc = file.listFiles();
String path;
- URL src;
for (int i = 0; i < fc.length; i++)
{
path = fc[i].getAbsolutePath();
@@ -101,9 +106,73 @@
result.add(fc[i].toURL());
}
}
+ return true;
}
+ return false;
}
+ private static void searchFromURL(Set result, String prefix, String suffix, URL url) throws IOException
+ {
+ boolean done = false;
+ InputStream is = getInputStream(url);
+ if (is != null)
+ {
+ try
+ {
+ ZipInputStream zis;
+ if (is instanceof ZipInputStream)
+ zis = (ZipInputStream)is;
+ else
+ zis = new ZipInputStream(is);
+ ZipEntry entry = zis.getNextEntry();
+ String urlString = url.toExternalForm();
+ while (entry != null)
+ {
+ String entryName = entry.getName();
+ if (entryName.endsWith(suffix))
+ {
+ result.add(new URL(urlString + entryName));
+ }
+ entry = zis.getNextEntry();
+ }
+ done = true;
+ }
+ catch (Exception ignore)
+ {
+ }
+ }
+ if (done == false && prefix.length() > 0)
+ {
+ String urlString = url.toExternalForm();
+ String[] split = prefix.split("/");
+ prefix = join(split, false);
+ String end = join(split, true);
+ int p = urlString.lastIndexOf(end);
+ url = new URL(urlString.substring(0, p));
+ searchFromURL(result, prefix, suffix, url);
+ }
+ }
+
+ private static String join(String[] split, boolean full)
+ {
+ String join = "";
+ for (int i =0; i < split.length - (full ? 0 : 1); i++)
+ join += split[i];
+ return join;
+ }
+
+ private static InputStream getInputStream(URL url)
+ {
+ try
+ {
+ return url.openStream();
+ }
+ catch (Throwable t)
+ {
+ return null;
+ }
+ }
+
/**
* For URLs to JARs that do not use JarURLConnection - allowed by
* the servlet spec - attempt to produce a JarFile object all the same.
Modified: projects/jboss-deployers/trunk/deployers-vfs/src/tests/org/jboss/test/deployers/vfs/deployer/facelets/test/FaceletsUnitTestCase.java
===================================================================
--- projects/jboss-deployers/trunk/deployers-vfs/src/tests/org/jboss/test/deployers/vfs/deployer/facelets/test/FaceletsUnitTestCase.java 2008-05-28 10:59:36 UTC (rev 73732)
+++ projects/jboss-deployers/trunk/deployers-vfs/src/tests/org/jboss/test/deployers/vfs/deployer/facelets/test/FaceletsUnitTestCase.java 2008-05-28 11:32:28 UTC (rev 73733)
@@ -114,7 +114,7 @@
public void testPackedFacelets() throws Throwable
{
-// testFacelets("packed");
+ testFacelets("packed");
}
public void testUnpackedFacelets() throws Throwable
More information about the jboss-cvs-commits
mailing list