public class ContextConfig extends Object implements LifecycleListener
Modifier and Type | Field and Description |
---|---|
protected static Properties |
authenticators
The set of Authenticators that we know how to configure.
|
protected Context |
context
The Context we are associated with.
|
protected Map<String,Authenticator> |
customAuthenticators
Custom mappings of login methods to authenticators
|
protected String |
defaultWebXml
The default web application's deployment descriptor location.
|
protected static long |
deploymentCount
Deployment count.
|
protected static LoginConfig |
DUMMY_LOGIN_CONFIG |
protected boolean |
handlesTypesAnnotations
Flag that indicates if at least one
HandlesTypes entry is present
that represents an annotation. |
protected boolean |
handlesTypesNonAnnotations
Flag that indicates if at least one
HandlesTypes entry is present
that represents a non-annotation. |
protected static Map<Host,org.apache.catalina.startup.ContextConfig.DefaultWebXmlCacheEntry> |
hostWebXmlCache
Cache of default web.xml fragments per Host
|
protected Map<ServletContainerInitializer,Set<Class<?>>> |
initializerClassMap
Map of ServletContainerInitializer to classes they expressed interest in.
|
protected boolean |
ok
Track any fatal errors during startup configuration processing.
|
protected String |
originalDocBase
Original docBase.
|
protected static StringManager |
sm
The string resources for this package.
|
protected Map<Class<?>,Set<ServletContainerInitializer>> |
typeInitializerMap
Map of Types to ServletContainerInitializer that are interested in those
types.
|
Constructor and Description |
---|
ContextConfig() |
Modifier and Type | Method and Description |
---|---|
protected void |
antiLocking() |
protected void |
applicationAnnotationsConfig()
Process the application classes annotations, if it exists.
|
protected void |
authenticatorConfig()
Set up an Authenticator automatically if required, and one has not
already been configured.
|
protected void |
beforeStart()
Process a "before start" event for this Context.
|
protected void |
checkHandlesTypes(JavaClass javaClass,
Map<String,org.apache.catalina.startup.ContextConfig.JavaClassCacheEntry> javaClassCache)
For classes packaged with the web application, the class and each
super class needs to be checked for a match with
HandlesTypes or
for an annotation that matches HandlesTypes . |
protected void |
configureStart()
Process a "contextConfig" event for this Context.
|
protected void |
configureStop()
Process a "stop" event for this Context.
|
protected void |
contextConfig(Digester digester)
Process the default configuration file, if it exists.
|
protected Digester |
createContextDigester()
Create (if necessary) and return a Digester configured to process the
context configuration descriptor for an application.
|
protected WebXml |
createWebXml() |
protected void |
destroy()
Process a "destroy" event for this Context.
|
protected void |
fixDocBase()
Adjust docBase.
|
protected InputSource |
getContextWebXmlSource()
Identify the application web.xml to be used and obtain an input source
for it.
|
String |
getDefaultWebXml()
Obtain the location of the default deployment descriptor.
|
protected InputSource |
getGlobalWebXmlSource()
Identify the default web.xml to be used and obtain an input source for
it.
|
protected File |
getHostConfigBase() |
protected InputSource |
getHostWebXmlSource()
Identify the host web.xml to be used and obtain an input source for
it.
|
protected InputSource |
getWebXmlSource(String filename,
String path)
Utility method to create an input source from the specified XML file.
|
protected void |
init()
Process a "init" event for this Context.
|
void |
lifecycleEvent(LifecycleEvent event)
Process events for an associated Context.
|
protected void |
processAnnotations(Set<WebXml> fragments,
boolean handlesTypesOnly,
Map<String,org.apache.catalina.startup.ContextConfig.JavaClassCacheEntry> javaClassCache) |
protected void |
processAnnotationsFile(File file,
WebXml fragment,
boolean handlesTypesOnly,
Map<String,org.apache.catalina.startup.ContextConfig.JavaClassCacheEntry> javaClassCache) |
protected void |
processAnnotationsJar(URL url,
WebXml fragment,
boolean handlesTypesOnly,
Map<String,org.apache.catalina.startup.ContextConfig.JavaClassCacheEntry> javaClassCache) |
protected void |
processAnnotationsStream(InputStream is,
WebXml fragment,
boolean handlesTypesOnly,
Map<String,org.apache.catalina.startup.ContextConfig.JavaClassCacheEntry> javaClassCache) |
protected String[] |
processAnnotationsStringArray(ElementValue ev) |
protected void |
processAnnotationsUrl(URL url,
WebXml fragment,
boolean handlesTypesOnly,
Map<String,org.apache.catalina.startup.ContextConfig.JavaClassCacheEntry> javaClassCache) |
protected void |
processAnnotationsWebResource(WebResource webResource,
WebXml fragment,
boolean handlesTypesOnly,
Map<String,org.apache.catalina.startup.ContextConfig.JavaClassCacheEntry> javaClassCache) |
protected void |
processAnnotationWebFilter(String className,
AnnotationEntry ae,
WebXml fragment)
process filter annotation and merge with existing one!
|
protected Map<String,String> |
processAnnotationWebInitParams(ElementValue ev) |
protected void |
processAnnotationWebServlet(String className,
AnnotationEntry ae,
WebXml fragment) |
protected void |
processClass(WebXml fragment,
JavaClass clazz) |
protected void |
processClasses(WebXml webXml,
Set<WebXml> orderedFragments) |
protected void |
processContextConfig(Digester digester,
URL contextXml)
Process a context.xml.
|
protected Map<String,WebXml> |
processJarsForWebFragments(WebXml application,
WebXmlParser webXmlParser)
Scan /WEB-INF/lib for JARs and for each one found add it and any
/META-INF/web-fragment.xml to the resulting Map. web-fragment.xml files
will be parsed before being added to the map.
|
protected void |
processResourceJARs(Set<WebXml> fragments)
Scan JARs that contain web-fragment.xml files that will be used to
configure this application to see if they also contain static resources.
|
protected void |
processServletContainerInitializers()
Scan JARs for ServletContainerInitializer implementations.
|
void |
setCustomAuthenticators(Map<String,Authenticator> customAuthenticators)
Sets custom mappings of login methods to authenticators.
|
void |
setDefaultWebXml(String path)
Set the location of the default deployment descriptor.
|
protected void |
validateSecurityRoles()
Validate the usage of security role names in the web application
deployment descriptor.
|
protected void |
webConfig()
Scan the web.xml files that apply to the web application and merge them
using the rules defined in the spec.
|
protected static final StringManager sm
protected static final LoginConfig DUMMY_LOGIN_CONFIG
protected static final Properties authenticators
protected static long deploymentCount
protected static final Map<Host,org.apache.catalina.startup.ContextConfig.DefaultWebXmlCacheEntry> hostWebXmlCache
protected Map<String,Authenticator> customAuthenticators
protected volatile Context context
protected String defaultWebXml
protected boolean ok
protected String originalDocBase
protected final Map<ServletContainerInitializer,Set<Class<?>>> initializerClassMap
protected final Map<Class<?>,Set<ServletContainerInitializer>> typeInitializerMap
protected boolean handlesTypesAnnotations
HandlesTypes
entry is present
that represents an annotation.protected boolean handlesTypesNonAnnotations
HandlesTypes
entry is present
that represents a non-annotation.public String getDefaultWebXml()
public void setDefaultWebXml(String path)
path
- The path to the default web.xml. If not absolute, it is
relative to CATALINA_BASE.public void setCustomAuthenticators(Map<String,Authenticator> customAuthenticators)
customAuthenticators
- Custom mappings of login methods to
authenticatorspublic void lifecycleEvent(LifecycleEvent event)
lifecycleEvent
in interface LifecycleListener
event
- The lifecycle event that has occurredprotected void applicationAnnotationsConfig()
protected void authenticatorConfig()
protected Digester createContextDigester()
protected void contextConfig(Digester digester)
digester
- The digester that will be used for XML parsingprotected void processContextConfig(Digester digester, URL contextXml)
digester
- The digester that will be used for XML parsingcontextXml
- The URL to the context.xml configurationprotected void fixDocBase() throws IOException
IOException
- cannot access the context base pathprotected void antiLocking()
protected void init()
protected void beforeStart()
protected void configureStart()
protected void configureStop()
protected void destroy()
protected void validateSecurityRoles()
ok
instance variable to false
as well).protected File getHostConfigBase()
protected void webConfig()
protected WebXml createWebXml()
protected void processServletContainerInitializers()
protected void processResourceJARs(Set<WebXml> fragments)
fragments
- The set of fragments that will be scanned for
static resourcesprotected InputSource getGlobalWebXmlSource()
protected InputSource getHostWebXmlSource()
protected InputSource getContextWebXmlSource()
protected InputSource getWebXmlSource(String filename, String path)
filename
- Name of the file (possibly with one or more leading path
segments) to readpath
- Location that filename is relative toprotected Map<String,WebXml> processJarsForWebFragments(WebXml application, WebXmlParser webXmlParser)
null
will be used if no web-fragment.xml was found. Any JARs
known not contain fragments will be skipped.application
- The main web.xml metadatawebXmlParser
- The parser to use to process the web.xml fileprotected void processAnnotations(Set<WebXml> fragments, boolean handlesTypesOnly, Map<String,org.apache.catalina.startup.ContextConfig.JavaClassCacheEntry> javaClassCache)
protected void processAnnotationsWebResource(WebResource webResource, WebXml fragment, boolean handlesTypesOnly, Map<String,org.apache.catalina.startup.ContextConfig.JavaClassCacheEntry> javaClassCache)
protected void processAnnotationsUrl(URL url, WebXml fragment, boolean handlesTypesOnly, Map<String,org.apache.catalina.startup.ContextConfig.JavaClassCacheEntry> javaClassCache)
protected void processAnnotationsJar(URL url, WebXml fragment, boolean handlesTypesOnly, Map<String,org.apache.catalina.startup.ContextConfig.JavaClassCacheEntry> javaClassCache)
protected void processAnnotationsFile(File file, WebXml fragment, boolean handlesTypesOnly, Map<String,org.apache.catalina.startup.ContextConfig.JavaClassCacheEntry> javaClassCache)
protected void processAnnotationsStream(InputStream is, WebXml fragment, boolean handlesTypesOnly, Map<String,org.apache.catalina.startup.ContextConfig.JavaClassCacheEntry> javaClassCache) throws ClassFormatException, IOException
ClassFormatException
IOException
protected void checkHandlesTypes(JavaClass javaClass, Map<String,org.apache.catalina.startup.ContextConfig.JavaClassCacheEntry> javaClassCache)
HandlesTypes
or
for an annotation that matches HandlesTypes
.javaClass
- the class to checkjavaClassCache
- a class cacheprotected void processAnnotationWebServlet(String className, AnnotationEntry ae, WebXml fragment)
protected void processAnnotationWebFilter(String className, AnnotationEntry ae, WebXml fragment)
className
- The filter class nameae
- The filter annotationfragment
- The corresponding fragmentprotected String[] processAnnotationsStringArray(ElementValue ev)
protected Map<String,String> processAnnotationWebInitParams(ElementValue ev)
Copyright © 2000-2021 Apache Software Foundation. All Rights Reserved.