org.eclipse.jetty.osgi.boot.jasper
Class WebappRegistrationCustomizerImpl

java.lang.Object
  extended by org.eclipse.jetty.osgi.boot.jasper.WebappRegistrationCustomizerImpl
All Implemented Interfaces:
WebappRegistrationCustomizer

public class WebappRegistrationCustomizerImpl
extends Object
implements WebappRegistrationCustomizer

Fix various shortcomings with the way jasper parses the tld files. Plugs the JSTL tlds assuming that they are packaged with the bundle that contains the JSTL classes.


Field Summary
 
Fields inherited from interface org.eclipse.jetty.osgi.boot.utils.WebappRegistrationCustomizer
CLASS_NAME
 
Constructor Summary
WebappRegistrationCustomizerImpl()
           
 
Method Summary
 URL[] getJarsWithTlds(OSGiAppProvider provider, BundleFileLocatorHelper locatorHelper)
          TODO: right now only the jetty-jsp bundle is scanned for common taglibs.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

WebappRegistrationCustomizerImpl

public WebappRegistrationCustomizerImpl()
Method Detail

getJarsWithTlds

public URL[] getJarsWithTlds(OSGiAppProvider provider,
                             BundleFileLocatorHelper locatorHelper)
                      throws Exception
TODO: right now only the jetty-jsp bundle is scanned for common taglibs. Should support a way to plug more bundles that contain taglibs. The jasper TldScanner expects a URLClassloader to parse a jar for the /META-INF/*.tld it may contain. We place the bundles that we know contain such tag-libraries. Please note that it will work if and only if the bundle is a jar (!) Currently we just hardcode the bundle that contains the jstl implemenation. A workaround when the tld cannot be parsed with this method is to copy and paste it inside the WEB-INF of the webapplication where it is used. Support only 2 types of packaging for the bundle: - the bundle is a jar (recommended for runtime.) - the bundle is a folder and contain jars in the root and/or in the lib folder (nice for PDE developement situations) Unsupported: the bundle is a jar that embeds more jars.

Specified by:
getJarsWithTlds in interface WebappRegistrationCustomizer
Returns:
Throws:
Exception


Copyright © 1995-2010 Mort Bay Consulting. All Rights Reserved.