Class 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 container
      void 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.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • TldScanner

        public TldScanner​(ServletContext context,
                          boolean namespaceAware,
                          boolean validation,
                          boolean blockExternal)
        Initialise with the application's ServletContext.
        Parameters:
        context - the application's servletContext
        namespaceAware - should the XML parser used to parse TLD files be configured to be name space aware
        validation - should the XML parser used to parse TLD files be configured to use validation
        blockExternal - 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:
        1. Tag libraries defined by the platform
        2. Entries from <jsp-config> in web.xml
        3. A resources under /WEB-INF
        4. In jar files from /WEB-INF/lib
        5. Additional entries from the container
        Throws:
        java.io.IOException - if there was a problem scanning for or loading a TLD
        org.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 resources
        org.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 TLD
        org.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