public class ContextConfig extends Object implements LifecycleListener
Modifier and Type | Class and Description |
---|---|
static interface |
ContextConfig.ContextXml |
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 void |
generateClassFooter(Digester digester) |
protected void |
generateClassHeader(Digester digester,
String packageName,
String resourceName) |
String |
getConfigBasePath() |
protected InputSource |
getContextWebXmlSource()
Identify the application web.xml to be used and obtain an input source
for it.
|
protected File |
getContextXmlJavaSource(String contextXmlPackageName,
String contextXmlSimpleClassName) |
protected static String |
getContextXmlPackageName(String generatedCodePackage,
Container container) |
String |
getDefaultWebXml()
Obtain the location of the default deployment descriptor.
|
protected boolean |
getGenerateCode() |
protected File |
getGeneratedCodeLocation() |
protected String |
getGeneratedCodePackage() |
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 boolean |
getUseGeneratedCode() |
protected InputSource |
getWebXmlSource(String filename,
boolean global)
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 |
processAnnotationsInParallel(Set<WebXml> fragments,
boolean handlesTypesOnly,
Map<String,org.apache.catalina.startup.ContextConfig.JavaClassCacheEntry> javaClassCache)
Parallelized version of processAnnotationsInParallel().
|
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,
InputStream stream)
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 boolean getGenerateCode()
protected boolean getUseGeneratedCode()
protected File getGeneratedCodeLocation()
protected String getGeneratedCodePackage()
protected static String getContextXmlPackageName(String generatedCodePackage, Container container)
protected File getContextXmlJavaSource(String contextXmlPackageName, String contextXmlSimpleClassName)
protected void generateClassHeader(Digester digester, String packageName, String resourceName)
protected void generateClassFooter(Digester digester)
protected void contextConfig(Digester digester)
digester
- The digester that will be used for XML parsingprotected void processContextConfig(Digester digester, URL contextXml, InputStream stream)
digester
- The digester that will be used for XML parsingcontextXml
- The URL to the context.xml configurationstream
- The XML resource streamprotected 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()
public String getConfigBasePath()
protected InputSource getWebXmlSource(String filename, boolean global)
filename
- Name of the file (possibly with one or more leading path
segments) to readglobal
- true if processing a shared resource, false if processing
a host based resourceprotected 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 processAnnotationsInParallel(Set<WebXml> fragments, boolean handlesTypesOnly, Map<String,org.apache.catalina.startup.ContextConfig.JavaClassCacheEntry> javaClassCache)
fragments
- Set of parallelizable scanshandlesTypesOnly
- Important parameter for the underlying scanjavaClassCache
- The class cacheprotected 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-2020 Apache Software Foundation. All Rights Reserved.