public class ServletLoader
extends java.lang.Object
web.xml
files in Tomcat. We have kept only the <servlet> tag
and it's subtags.Modifier and Type | Field and Description |
---|---|
private static java.lang.String |
namespace
The name of the servlets namespace.
|
private static java.lang.String |
schemaFileURL
The URL pointing to the servlets.xsd schema.
|
private java.util.List<ServletWrapper> |
servlets |
private org.jdom.Document |
validatedDom |
Constructor and Description |
---|
ServletLoader()
Create a new XML loader instance.
|
Modifier and Type | Method and Description |
---|---|
java.util.List<ServletWrapper> |
getServlets()
Get a list with all loaded servlet definitions.
|
boolean |
hasValidFile()
Checks if an XML file has passed validation in the
validateXmlFile(InputStream, String) method. |
protected org.jdom.Document |
loadDocument(java.io.InputStream xmlFile,
java.lang.String filename)
Load and validate the XML file.
|
void |
loadLastValidatedFile(java.lang.ClassLoader classLoader,
boolean clear)
Continue loading servlet definitions from the last validated XML file.
|
protected java.lang.Class<? extends Servlet> |
loadServletClass(java.lang.String className,
java.lang.ClassLoader classLoader)
Load the servlet class.
|
protected int |
loadServlets(org.jdom.Document dom,
java.lang.ClassLoader classLoader)
Load the servlet definitions from an XML document.
|
void |
loadXmlFile(java.io.InputStream xmlFile,
java.lang.String filename,
java.lang.ClassLoader classLoader,
boolean clear)
Load a servlet definition XML file.
|
void |
validateXmlFile(java.io.InputStream xmlFile,
java.lang.String filename)
Validate an XML file against the servlet definition schema.
|
private static final java.lang.String schemaFileURL
private static final java.lang.String namespace
private org.jdom.Document validatedDom
private java.util.List<ServletWrapper> servlets
public void loadXmlFile(java.io.InputStream xmlFile, java.lang.String filename, java.lang.ClassLoader classLoader, boolean clear) throws org.jdom.JDOMException, java.io.IOException, java.lang.ClassNotFoundException, java.lang.NoSuchMethodException, java.lang.IllegalAccessException
validateXmlFile(InputStream, String)
and loadLastValidatedFile(ClassLoader, boolean)
.xmlFile
- An input stream to read the XML data fromfilename
- The original filename the stream is coming from, or null
if not known. This value is only used when generating error messagesclassLoader
- The classloader to use when loading classes that are
named in the XML file, or null to use the default classloader (=the same
class loader that loaded the BASE core classes)clear
- TRUE to clear all already loaded servlets before loading
the servlets in this fileorg.jdom.JDOMException
- If validation of the XML file failsjava.io.IOException
- If there is an error reading the XML filejava.lang.ClassNotFoundException
- If a servlet class named in the XML file can't
be foundjava.lang.NoSuchMethodException
- If a servlet class doesn't implement a
public, no-argument constructorjava.lang.IllegalAccessException
- If a servlet class constructor isn't
publicvalidateXmlFile(InputStream, String)
,
loadLastValidatedFile(ClassLoader, boolean)
public void validateXmlFile(java.io.InputStream xmlFile, java.lang.String filename) throws java.io.IOException, org.jdom.JDOMException
loadLastValidatedFile(ClassLoader, boolean)
.xmlFile
- An input stream to read the XML data fromfilename
- The original filename the stream is coming from, or null
if not known. This value is only used when generating error messagesorg.jdom.JDOMException
- If validation of the XML file failsjava.io.IOException
- If there is an error reading the XML filepublic void loadLastValidatedFile(java.lang.ClassLoader classLoader, boolean clear) throws java.lang.ClassNotFoundException, java.lang.IllegalAccessException, java.lang.NoSuchMethodException
validateXmlFile(InputStream, String)
has been successfully called
first.classLoader
- The classloader to use when loading classes that are
named in the XML file, or null to use the default classloader (=the same
class loader that loaded the BASE core classes)clear
- TRUE to clear all already loaded servlets before loading
the servlets in this filejava.lang.ClassNotFoundException
- If a servlet class named in the XML file can't
be foundjava.lang.NoSuchMethodException
- If a servlet class doesn't implement a
public, no-argument constructorjava.lang.IllegalAccessException
- If a servlet class constructor isn't
publicpublic boolean hasValidFile()
validateXmlFile(InputStream, String)
method. If so,
the loadLastValidatedFile(ClassLoader, boolean)
can be called
to continue loading the servlet definitions.
Note that once the file has been loaded this flag is reset to FALSE.
public java.util.List<ServletWrapper> getServlets()
protected org.jdom.Document loadDocument(java.io.InputStream xmlFile, java.lang.String filename) throws java.io.IOException, org.jdom.JDOMException
java.io.IOException
org.jdom.JDOMException
protected int loadServlets(org.jdom.Document dom, java.lang.ClassLoader classLoader) throws java.lang.ClassNotFoundException, java.lang.NoSuchMethodException, java.lang.IllegalAccessException
java.lang.ClassNotFoundException
java.lang.NoSuchMethodException
java.lang.IllegalAccessException
protected java.lang.Class<? extends Servlet> loadServletClass(java.lang.String className, java.lang.ClassLoader classLoader) throws java.lang.ClassNotFoundException, java.lang.NoSuchMethodException, java.lang.IllegalAccessException
Servlet
interface and have a public, no-argument contstructorclassName
- The name of the servlet classclassLoader
- The classloader to use, or null to use
the BASE core classloaderjava.lang.ClassNotFoundException
java.lang.NoSuchMethodException
java.lang.IllegalAccessException