[
http://jira.jboss.com/jira/browse/JBAS-5211?page=all ]
Scott M Stark updated JBAS-5211:
--------------------------------
Attachment: jsf-facelets-jbas5.jar
The facelets jar was hacked by Ales to include the following two source changes/additions.
For CR1 there needs to be a proper patch made and incorporated into a new facelets. We
have asked the seam team to track this.
---
package com.sun.facelets.util;
import java.io.File;
import java.io.IOException;
import java.net.URL;
import java.util.Enumeration;
import java.util.LinkedHashSet;
import java.util.Set;
import org.jboss.virtual.VFS;
import org.jboss.virtual.VirtualFile;
/**
* @author Ales Justin
*/
public final class Classpath
{
/**
* Get the virtual file root.
*
* @param url the root URL
* @return actual virtual file from url param
* @throws IOException for any error
*/
protected static VirtualFile getRoot(URL url) throws IOException
{
String urlString = url.toString();
if (urlString.startsWith("jar"))
return VFS.getRoot(url);
int p = urlString.indexOf(":");
String file = urlString.substring(p + 1);
URL vfsurl = null;
String relative;
File fp = new File(file);
if (fp.exists())
{
vfsurl = fp.getParentFile().toURL();
relative = fp.getName();
}
else
{
File curr = fp;
relative = fp.getName();
while ((curr = curr.getParentFile()) != null)
{
if (curr.exists())
{
vfsurl = curr.toURL();
break;
}
else
{
relative = curr.getName() + "/" + relative;
}
}
}
VirtualFile top = VFS.getRoot(vfsurl);
return top.getChild(relative);
}
public static URL[] search(String prefix, String suffix) throws IOException
{
return search(Thread.currentThread().getContextClassLoader(), prefix, suffix);
}
public static URL[] search(ClassLoader cl, String prefix, String suffix) throws
IOException
{
Enumeration e = cl.getResources(prefix);
Set all = new LinkedHashSet();
ClasspathVisitor classpathVisitor = new ClasspathVisitor(suffix, all);
while (e.hasMoreElements())
{
URL url = (URL)e.nextElement();
VirtualFile file = getRoot(url);
if (file.isLeaf() == false)
file.visit(classpathVisitor);
}
return (URL[])all.toArray(new URL[all.size()]);
}
}
---
package com.sun.facelets.util;
import java.util.Set;
import org.jboss.virtual.VirtualFile;
import org.jboss.virtual.VirtualFileVisitor;
import org.jboss.virtual.VisitorAttributes;
/**
* @author Ales Justin
*/
public final class ClasspathVisitor implements VirtualFileVisitor
{
private String suffix;
private Set urls;
public ClasspathVisitor(String suffix, Set urls)
{
if (suffix == null)
throw new IllegalArgumentException("Null suffix");
this.suffix = suffix;
if (urls == null)
throw new IllegalArgumentException("Null urls");
this.urls = urls;
}
private static class MappingVisitorAttributes extends VisitorAttributes
{
public MappingVisitorAttributes()
{
setIgnoreErrors(true);
setIncludeHidden(false);
setIncludeRoot(false);
setLeavesOnly(false);
setRecurseFilter(RECURSE_ALL);
}
}
private static final VisitorAttributes MAPPING_ATTRIBUTES = new
MappingVisitorAttributes();
public VisitorAttributes getAttributes()
{
return MAPPING_ATTRIBUTES;
}
public void visit(VirtualFile vf)
{
try
{
if (isMapping(vf))
urls.add(vf.toURL());
}
catch (Exception e)
{
new RuntimeException("Visit failed: " + e);
}
}
/**
* Is virtual file a mapping file.
*
* @param vf the virtual file
* @return true if virtual file is mapping
*/
protected boolean isMapping(VirtualFile vf)
{
return vf.getName().endsWith(suffix);
}
}
Facelets scanning for .taglib.xml is broken in trunk
----------------------------------------------------
Key: JBAS-5211
URL:
http://jira.jboss.com/jira/browse/JBAS-5211
Project: JBoss Application Server
Issue Type: Bug
Security Level: Public(Everyone can see)
Components: ClassLoading
Reporter: Charles Crouch
Assigned To: Scott M Stark
Priority: Blocker
Fix For: JBossAS-5.0.0.Beta4
Attachments: jsf-facelets-jbas5.jar
See JBoss Forum thread for details
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira