Package org.apache.jasper.servlet
Class TldScanner
- java.lang.Object
-
- org.apache.jasper.servlet.TldScanner
-
- Direct Known Subclasses:
TldPreScanned
public class TldScanner extends java.lang.Object
Scans for and loads Tag Library Descriptors contained in a web application.
-
-
Constructor Summary
Constructors Constructor Description TldScanner(ServletContext context, boolean namespaceAware, boolean validation, boolean blockExternal)
Initialise with the application's ServletContext.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.util.List<java.lang.String>
getListeners()
Returns a list of all listeners declared by scanned TLDs.java.util.Map<TldResourcePath,TaglibXml>
getTldResourcePathTaglibXmlMap()
Returns the map of TldResourcePath to parsed XML files built by this scanner.java.util.Map<java.lang.String,TldResourcePath>
getUriTldResourcePathMap()
Returns the map of URI to TldResourcePath built by this scanner.protected void
parseTld(java.lang.String resourcePath)
protected void
parseTld(TldResourcePath path)
void
scan()
Scan for TLDs in all places defined by the specification: Tag libraries defined by the platform Entries from <jsp-config> in web.xml A resources under /WEB-INF In jar files from /WEB-INF/lib Additional entries from the containervoid
scanJars()
Scan for TLDs in JARs in /WEB-INF/lib.protected void
scanJspConfig()
Scan for TLDs defined in <jsp-config>.protected void
scanPlatform()
Scan for TLDs required by the platform specification.protected void
scanResourcePaths(java.lang.String startPath)
Scan web application resources for TLDs, recursively.void
setClassLoader(java.lang.ClassLoader classLoader)
Set the class loader used by the digester to create objects as a result of this scan.
-
-
-
Constructor Detail
-
TldScanner
public TldScanner(ServletContext context, boolean namespaceAware, boolean validation, boolean blockExternal)
Initialise with the application's ServletContext.- Parameters:
context
- the application's servletContextnamespaceAware
- should the XML parser used to parse TLD files be configured to be name space awarevalidation
- should the XML parser used to parse TLD files be configured to use validationblockExternal
- should the XML parser used to parse TLD files be configured to be block references to external entities
-
-
Method Detail
-
scan
public void scan() throws java.io.IOException, org.xml.sax.SAXException
Scan for TLDs in all places defined by the specification:- Tag libraries defined by the platform
- Entries from <jsp-config> in web.xml
- A resources under /WEB-INF
- In jar files from /WEB-INF/lib
- Additional entries from the container
- Throws:
java.io.IOException
- if there was a problem scanning for or loading a TLDorg.xml.sax.SAXException
- if there was a problem parsing a TLD
-
getUriTldResourcePathMap
public java.util.Map<java.lang.String,TldResourcePath> getUriTldResourcePathMap()
Returns the map of URI to TldResourcePath built by this scanner.- Returns:
- the map of URI to TldResourcePath
-
getTldResourcePathTaglibXmlMap
public java.util.Map<TldResourcePath,TaglibXml> getTldResourcePathTaglibXmlMap()
Returns the map of TldResourcePath to parsed XML files built by this scanner.- Returns:
- the map of TldResourcePath to parsed XML files
-
getListeners
public java.util.List<java.lang.String> getListeners()
Returns a list of all listeners declared by scanned TLDs.- Returns:
- a list of listener class names
-
setClassLoader
public void setClassLoader(java.lang.ClassLoader classLoader)
Set the class loader used by the digester to create objects as a result of this scan. Normally this only needs to be set when using JspC.- Parameters:
classLoader
- Class loader to use when creating new objects while parsing TLDs
-
scanPlatform
protected void scanPlatform()
Scan for TLDs required by the platform specification.
-
scanJspConfig
protected void scanJspConfig() throws java.io.IOException, org.xml.sax.SAXException
Scan for TLDs defined in <jsp-config>.- Throws:
java.io.IOException
- Error reading resourcesorg.xml.sax.SAXException
- XML parsing error
-
scanResourcePaths
protected void scanResourcePaths(java.lang.String startPath) throws java.io.IOException, org.xml.sax.SAXException
Scan web application resources for TLDs, recursively.- Parameters:
startPath
- the directory resource to scan- Throws:
java.io.IOException
- if there was a problem scanning for or loading a TLDorg.xml.sax.SAXException
- if there was a problem parsing a TLD
-
scanJars
public void scanJars()
Scan for TLDs in JARs in /WEB-INF/lib.
-
parseTld
protected void parseTld(java.lang.String resourcePath) throws java.io.IOException, org.xml.sax.SAXException
- Throws:
java.io.IOException
org.xml.sax.SAXException
-
parseTld
protected void parseTld(TldResourcePath path) throws java.io.IOException, org.xml.sax.SAXException
- Throws:
java.io.IOException
org.xml.sax.SAXException
-
-