Class StandardContext

All Implemented Interfaces:
MBeanRegistration, NotificationBroadcaster, NotificationEmitter, Container, Context, JmxEnabled, Lifecycle, ContextBind
Direct Known Subclasses:
ReplicatedContext

public class StandardContext extends ContainerBase implements Context, NotificationEmitter
Standard implementation of the Context interface. Each child container must be a Wrapper implementation to process the requests directed to a particular servlet.
Author:
Craig R. McClanahan, Remy Maucherat
  • Field Details

    • allowCasualMultipartParsing

      protected boolean allowCasualMultipartParsing
      Allow multipart/form-data requests to be parsed even when the target servlet doesn't specify @MultipartConfig or have a <multipart-config> element.
    • context

      protected ApplicationContext context
      The ServletContext implementation associated with this Context.
    • manager

      protected Manager manager
      The Manager implementation with which this Container is associated.
    • DEFAULT_NAMING_LISTENER

      protected static final ThreadBindingListener DEFAULT_NAMING_LISTENER
    • threadBindingListener

      protected ThreadBindingListener threadBindingListener
  • Constructor Details

    • StandardContext

      public StandardContext()
      Create a new StandardContext component with the default basic Valve.
  • Method Details

    • setCreateUploadTargets

      public void setCreateUploadTargets(boolean createUploadTargets)
      Description copied from interface: Context
      Configure whether Tomcat will attempt to create an upload target used by this web application if it does not exist when the web application attempts to use it.
      Specified by:
      setCreateUploadTargets in interface Context
      Parameters:
      createUploadTargets - true if Tomcat should attempt to create the upload target, otherwise false
    • getCreateUploadTargets

      public boolean getCreateUploadTargets()
      Description copied from interface: Context
      Will Tomcat attempt to create an upload target used by this web application if it does not exist when the web application attempts to use it?
      Specified by:
      getCreateUploadTargets in interface Context
      Returns:
      true if Tomcat will attempt to create an upload target otherwise false
    • incrementInProgressAsyncCount

      public void incrementInProgressAsyncCount()
      Specified by:
      incrementInProgressAsyncCount in interface Context
    • decrementInProgressAsyncCount

      public void decrementInProgressAsyncCount()
      Specified by:
      decrementInProgressAsyncCount in interface Context
    • getInProgressAsyncCount

      public long getInProgressAsyncCount()
    • setAllowMultipleLeadingForwardSlashInPath

      public void setAllowMultipleLeadingForwardSlashInPath(boolean allowMultipleLeadingForwardSlashInPath)
      Description copied from interface: Context
      Configure if, when returning a context path from HttpServletRequest.getContextPath(), the return value is allowed to contain multiple leading '/' characters.
      Specified by:
      setAllowMultipleLeadingForwardSlashInPath in interface Context
      Parameters:
      allowMultipleLeadingForwardSlashInPath - The new value for the flag
    • getAllowMultipleLeadingForwardSlashInPath

      public boolean getAllowMultipleLeadingForwardSlashInPath()
      Description copied from interface: Context
      When returning a context path from HttpServletRequest.getContextPath(), is it allowed to contain multiple leading '/' characters?
      Specified by:
      getAllowMultipleLeadingForwardSlashInPath in interface Context
      Returns:
      true if multiple leading '/' characters are allowed, otherwise false
    • getRequestCharacterEncoding

      public String getRequestCharacterEncoding()
      Description copied from interface: Context
      Get the default request body encoding for this web application.
      Specified by:
      getRequestCharacterEncoding in interface Context
      Returns:
      The default request body encoding
    • setRequestCharacterEncoding

      public void setRequestCharacterEncoding(String requestEncoding)
      Description copied from interface: Context
      Set the default request body encoding for this web application.
      Specified by:
      setRequestCharacterEncoding in interface Context
      Parameters:
      requestEncoding - The default encoding
    • getResponseCharacterEncoding

      public String getResponseCharacterEncoding()
      Description copied from interface: Context
      Get the default response body encoding for this web application.
      Specified by:
      getResponseCharacterEncoding in interface Context
      Returns:
      The default response body encoding
    • setResponseCharacterEncoding

      public void setResponseCharacterEncoding(String responseEncoding)
      Description copied from interface: Context
      Set the default response body encoding for this web application.
      Specified by:
      setResponseCharacterEncoding in interface Context
      Parameters:
      responseEncoding - The default encoding
    • setDispatchersUseEncodedPaths

      public void setDispatchersUseEncodedPaths(boolean dispatchersUseEncodedPaths)
      Description copied from interface: Context
      Are paths used in calls to obtain a request dispatcher expected to be encoded? This affects both how Tomcat handles calls to obtain a request dispatcher as well as how Tomcat generates paths used to obtain request dispatchers internally.
      Specified by:
      setDispatchersUseEncodedPaths in interface Context
      Parameters:
      dispatchersUseEncodedPaths - true to use encoded paths, otherwise false
    • getDispatchersUseEncodedPaths

      public boolean getDispatchersUseEncodedPaths()
      Are paths used in calls to obtain a request dispatcher expected to be encoded? This applies to both how Tomcat handles calls to obtain a request dispatcher as well as how Tomcat generates paths used to obtain request dispatchers internally.

      The default value for this implementation is true.

      Specified by:
      getDispatchersUseEncodedPaths in interface Context
      Returns:
      true if encoded paths will be used, otherwise false
    • setUseRelativeRedirects

      public void setUseRelativeRedirects(boolean useRelativeRedirects)
      Description copied from interface: Context
      Controls whether HTTP 1.1 and later location headers generated by a call to HttpServletResponse.sendRedirect(String) will use relative or absolute redirects.

      Relative redirects are more efficient but may not work with reverse proxies that change the context path. It should be noted that it is not recommended to use a reverse proxy to change the context path because of the multiple issues it creates.

      Absolute redirects should work with reverse proxies that change the context path but may cause issues with the RemoteIpFilter if the filter is changing the scheme and/or port.

      Specified by:
      setUseRelativeRedirects in interface Context
      Parameters:
      useRelativeRedirects - true to use relative redirects and false to use absolute redirects
    • getUseRelativeRedirects

      public boolean getUseRelativeRedirects()
      Will HTTP 1.1 and later location headers generated by a call to HttpServletResponse.sendRedirect(String) use relative or absolute redirects.

      The default value for this implementation is true.

      Specified by:
      getUseRelativeRedirects in interface Context
      Returns:
      true if relative redirects will be used false if absolute redirects are used.
      See Also:
    • setMapperContextRootRedirectEnabled

      public void setMapperContextRootRedirectEnabled(boolean mapperContextRootRedirectEnabled)
      Description copied from interface: Context
      If enabled, requests for a web application context root will be redirected (adding a trailing slash) by the Mapper. This is more efficient but has the side effect of confirming that the context path is valid.
      Specified by:
      setMapperContextRootRedirectEnabled in interface Context
      Parameters:
      mapperContextRootRedirectEnabled - Should the redirects be enabled?
    • getMapperContextRootRedirectEnabled

      public boolean getMapperContextRootRedirectEnabled()
      Determines if requests for a web application context root will be redirected (adding a trailing slash) by the Mapper. This is more efficient but has the side effect of confirming that the context path is valid.

      The default value for this implementation is false.

      Specified by:
      getMapperContextRootRedirectEnabled in interface Context
      Returns:
      true if the Mapper level redirect is enabled for this Context.
    • setMapperDirectoryRedirectEnabled

      public void setMapperDirectoryRedirectEnabled(boolean mapperDirectoryRedirectEnabled)
      Description copied from interface: Context
      If enabled, requests for a directory will be redirected (adding a trailing slash) by the Mapper. This is more efficient but has the side effect of confirming that the directory is valid.
      Specified by:
      setMapperDirectoryRedirectEnabled in interface Context
      Parameters:
      mapperDirectoryRedirectEnabled - Should the redirects be enabled?
    • getMapperDirectoryRedirectEnabled

      public boolean getMapperDirectoryRedirectEnabled()
      Determines if requests for a directory will be redirected (adding a trailing slash) by the Mapper. This is more efficient but has the side effect of confirming that the directory is valid.

      The default value for this implementation is false.

      Specified by:
      getMapperDirectoryRedirectEnabled in interface Context
      Returns:
      true if the Mapper level redirect is enabled for this Context.
    • setValidateClientProvidedNewSessionId

      public void setValidateClientProvidedNewSessionId(boolean validateClientProvidedNewSessionId)
      Description copied from interface: Context
      When a client provides the ID for a new session, should that ID be validated? The only use case for using a client provided session ID is to have a common session ID across multiple web applications. Therefore, any client provided session ID should already exist in another web application. If this check is enabled, the client provided session ID will only be used if the session ID exists in at least one other web application for the current host. Note that the following additional tests are always applied, irrespective of this setting:
      • The session ID is provided by a cookie
      • The session cookie has a path of /
      Specified by:
      setValidateClientProvidedNewSessionId in interface Context
      Parameters:
      validateClientProvidedNewSessionId - true if validation should be applied
    • getValidateClientProvidedNewSessionId

      public boolean getValidateClientProvidedNewSessionId()
      Will client provided session IDs be validated (see Context.setValidateClientProvidedNewSessionId(boolean)) before use?

      The default value for this implementation is true.

      Specified by:
      getValidateClientProvidedNewSessionId in interface Context
      Returns:
      true if validation will be applied. Otherwise, false
    • setCookieProcessor

      public void setCookieProcessor(CookieProcessor cookieProcessor)
      Description copied from interface: Context
      Sets the CookieProcessor that will be used to process cookies for this Context.
      Specified by:
      setCookieProcessor in interface Context
      Parameters:
      cookieProcessor - The new cookie processor
    • getCookieProcessor

      public CookieProcessor getCookieProcessor()
      Specified by:
      getCookieProcessor in interface Context
      Returns:
      the CookieProcessor that will be used to process cookies for this Context.
    • getNamingToken

      public Object getNamingToken()
      Specified by:
      getNamingToken in interface Context
      Returns:
      the token necessary for operations on the associated JNDI naming context.
    • setContainerSciFilter

      public void setContainerSciFilter(String containerSciFilter)
      Description copied from interface: Context
      Sets the regular expression that specifies which container provided SCIs should be filtered out and not used for this context. Matching uses Matcher.find() so the regular expression only has to match a sub-string of the fully qualified class name of the container provided SCI for it to be filtered out.
      Specified by:
      setContainerSciFilter in interface Context
      Parameters:
      containerSciFilter - The regular expression against which the fully qualified class name of each container provided SCI should be checked
    • getContainerSciFilter

      public String getContainerSciFilter()
      Description copied from interface: Context
      Obtains the regular expression that specifies which container provided SCIs should be filtered out and not used for this context. Matching uses Matcher.find() so the regular expression only has to match a sub-string of the fully qualified class name of the container provided SCI for it to be filtered out.
      Specified by:
      getContainerSciFilter in interface Context
      Returns:
      The regular expression against which the fully qualified class name of each container provided SCI will be checked
    • getSendRedirectBody

      public boolean getSendRedirectBody()
      Specified by:
      getSendRedirectBody in interface Context
      Returns:
      if the context is configured to include a response body as part of a redirect response.
    • setSendRedirectBody

      public void setSendRedirectBody(boolean sendRedirectBody)
      Description copied from interface: Context
      Configures if a response body is included when a redirect response is sent to the client.
      Specified by:
      setSendRedirectBody in interface Context
      Parameters:
      sendRedirectBody - true to send a response body for redirects
    • getPreemptiveAuthentication

      public boolean getPreemptiveAuthentication()
      Specified by:
      getPreemptiveAuthentication in interface Context
      Returns:
      if a user presents authentication credentials, will the context will process them when the request is for a non-protected resource.
    • setPreemptiveAuthentication

      public void setPreemptiveAuthentication(boolean preemptiveAuthentication)
      Description copied from interface: Context
      Configures if a user presents authentication credentials, whether the context will process them when the request is for a non-protected resource.
      Specified by:
      setPreemptiveAuthentication in interface Context
      Parameters:
      preemptiveAuthentication - true to perform authentication even outside security constraints
    • setFireRequestListenersOnForwards

      public void setFireRequestListenersOnForwards(boolean enable)
      Description copied from interface: Context
      Configure whether or not requests listeners will be fired on forwards for this Context.
      Specified by:
      setFireRequestListenersOnForwards in interface Context
      Parameters:
      enable - true to fire request listeners when forwarding
    • getFireRequestListenersOnForwards

      public boolean getFireRequestListenersOnForwards()
      Specified by:
      getFireRequestListenersOnForwards in interface Context
      Returns:
      whether or not requests listeners will be fired on forwards for this Context.
    • setAddWebinfClassesResources

      public void setAddWebinfClassesResources(boolean addWebinfClassesResources)
      Description copied from interface: Context
      Sets the flag that indicates if /WEB-INF/classes should be treated like an exploded JAR and JAR resources made available as if they were in a JAR.
      Specified by:
      setAddWebinfClassesResources in interface Context
      Parameters:
      addWebinfClassesResources - The new value for the flag
    • getAddWebinfClassesResources

      public boolean getAddWebinfClassesResources()
      Specified by:
      getAddWebinfClassesResources in interface Context
      Returns:
      the flag that indicates if /WEB-INF/classes should be treated like an exploded JAR and JAR resources made available as if they were in a JAR.
    • setWebappVersion

      public void setWebappVersion(String webappVersion)
      Description copied from interface: Context
      Set the version of this web application - used to differentiate different versions of the same web application when using parallel deployment.
      Specified by:
      setWebappVersion in interface Context
      Parameters:
      webappVersion - The webapp version associated with the context, which should be unique
    • getWebappVersion

      public String getWebappVersion()
      Specified by:
      getWebappVersion in interface Context
      Returns:
      The version of this web application, used to differentiate different versions of the same web application when using parallel deployment. If not specified, defaults to the empty string.
    • getBaseName

      public String getBaseName()
      Specified by:
      getBaseName in interface Context
      Returns:
      the base name to use for WARs, directories or context.xml files for this context.
    • getResourceOnlyServlets

      public String getResourceOnlyServlets()
      Description copied from interface: Context
      Obtains the list of Servlets that expect a resource to be present.
      Specified by:
      getResourceOnlyServlets in interface Context
      Returns:
      A comma separated list of Servlet names as used in web.xml
    • setResourceOnlyServlets

      public void setResourceOnlyServlets(String resourceOnlyServlets)
      Description copied from interface: Context
      Sets the (comma separated) list of Servlets that expect a resource to be present. Used to ensure that welcome files associated with Servlets that expect a resource to be present are not mapped when there is no resource.
      Specified by:
      setResourceOnlyServlets in interface Context
      Parameters:
      resourceOnlyServlets - The Servlet names comma separated list
    • isResourceOnlyServlet

      public boolean isResourceOnlyServlet(String servletName)
      Description copied from interface: Context
      Checks the named Servlet to see if it expects a resource to be present.
      Specified by:
      isResourceOnlyServlet in interface Context
      Parameters:
      servletName - Name of the Servlet (as per web.xml) to check
      Returns:
      true if the Servlet expects a resource, otherwise false
    • getEffectiveMajorVersion

      public int getEffectiveMajorVersion()
      Specified by:
      getEffectiveMajorVersion in interface Context
      Returns:
      the effective major version of the Servlet spec used by this context.
    • setEffectiveMajorVersion

      public void setEffectiveMajorVersion(int effectiveMajorVersion)
      Description copied from interface: Context
      Set the effective major version of the Servlet spec used by this context.
      Specified by:
      setEffectiveMajorVersion in interface Context
      Parameters:
      effectiveMajorVersion - Set the version number
    • getEffectiveMinorVersion

      public int getEffectiveMinorVersion()
      Specified by:
      getEffectiveMinorVersion in interface Context
      Returns:
      the effective minor version of the Servlet spec used by this context.
    • setEffectiveMinorVersion

      public void setEffectiveMinorVersion(int effectiveMinorVersion)
      Description copied from interface: Context
      Set the effective minor version of the Servlet spec used by this context.
      Specified by:
      setEffectiveMinorVersion in interface Context
      Parameters:
      effectiveMinorVersion - Set the version number
    • setLogEffectiveWebXml

      public void setLogEffectiveWebXml(boolean logEffectiveWebXml)
      Description copied from interface: Context
      Set whether or not the effective web.xml for this context should be logged on context start.
      Specified by:
      setLogEffectiveWebXml in interface Context
      Parameters:
      logEffectiveWebXml - set to true to log the complete web.xml that will be used for the webapp
    • getLogEffectiveWebXml

      public boolean getLogEffectiveWebXml()
      Description copied from interface: Context
      Should the effective web.xml for this context be logged on context start?
      Specified by:
      getLogEffectiveWebXml in interface Context
      Returns:
      true if the reconstructed web.xml that will be used for the webapp should be logged
    • getAuthenticator

      public Authenticator getAuthenticator()
      Specified by:
      getAuthenticator in interface Context
      Returns:
      the Authenticator that is used by this context. This is always non-null for a started Context
    • getJarScanner

      public JarScanner getJarScanner()
      Description copied from interface: Context
      Get the Jar Scanner to be used to scan for JAR resources for this context.
      Specified by:
      getJarScanner in interface Context
      Returns:
      The Jar Scanner configured for this context.
    • setJarScanner

      public void setJarScanner(JarScanner jarScanner)
      Description copied from interface: Context
      Set the Jar Scanner to be used to scan for JAR resources for this context.
      Specified by:
      setJarScanner in interface Context
      Parameters:
      jarScanner - The Jar Scanner to be used for this context.
    • getInstanceManager

      public InstanceManager getInstanceManager()
      Specified by:
      getInstanceManager in interface Context
      Returns:
      the instance manager associated with this context.
    • setInstanceManager

      public void setInstanceManager(InstanceManager instanceManager)
      Description copied from interface: Context
      Set the instance manager associated with this context.
      Specified by:
      setInstanceManager in interface Context
      Parameters:
      instanceManager - the new instance manager instance
    • getEncodedPath

      public String getEncodedPath()
      Description copied from interface: Context
      Return the URL encoded context path
      Specified by:
      getEncodedPath in interface Context
      Returns:
      The URL encoded (with UTF-8) context path
    • setAllowCasualMultipartParsing

      public void setAllowCasualMultipartParsing(boolean allowCasualMultipartParsing)
      Description copied from interface: Context
      Set to true to allow requests mapped to servlets that do not explicitly declare @MultipartConfig or have <multipart-config> specified in web.xml to parse multipart/form-data requests.
      Specified by:
      setAllowCasualMultipartParsing in interface Context
      Parameters:
      allowCasualMultipartParsing - true to allow such casual parsing, false otherwise.
    • getAllowCasualMultipartParsing

      public boolean getAllowCasualMultipartParsing()
      Returns true if requests mapped to servlets without "multipart config" to parse multipart/form-data requests anyway.

      The default value for this implementation is false.

      Specified by:
      getAllowCasualMultipartParsing in interface Context
      Returns:
      true if requests mapped to servlets without "multipart config" to parse multipart/form-data requests, false otherwise.
    • setSwallowAbortedUploads

      public void setSwallowAbortedUploads(boolean swallowAbortedUploads)
      Description copied from interface: Context
      Set to false to disable request data swallowing after an upload was aborted due to size constraints.
      Specified by:
      setSwallowAbortedUploads in interface Context
      Parameters:
      swallowAbortedUploads - false to disable swallowing, true otherwise (default).
    • getSwallowAbortedUploads

      public boolean getSwallowAbortedUploads()
      Returns true if remaining request data will be read (swallowed) even the request violates a data size constraint.

      The default value for this implementation is false.

      Specified by:
      getSwallowAbortedUploads in interface Context
      Returns:
      true if data will be swallowed (default), false otherwise.
    • addServletContainerInitializer

      public void addServletContainerInitializer(ServletContainerInitializer sci, Set<Class<?>> classes)
      Description copied from interface: Context
      Add a ServletContainerInitializer instance to this web application.
      Specified by:
      addServletContainerInitializer in interface Context
      Parameters:
      sci - The instance to add
      classes - The classes in which the initializer expressed an interest
    • getDelegate

      public boolean getDelegate()
      Return the "follow standard delegation model" flag used to configure our ClassLoader.
      Returns:
      true if classloading delegates to the parent classloader first
    • setDelegate

      public void setDelegate(boolean delegate)
      Set the "follow standard delegation model" flag used to configure our ClassLoader.
      Parameters:
      delegate - The new flag
    • isUseNaming

      public boolean isUseNaming()
      Returns:
      true if the internal naming support is used.
    • setUseNaming

      public void setUseNaming(boolean useNaming)
      Enables or disables naming.
      Parameters:
      useNaming - true to enable the naming environment
    • getApplicationEventListeners

      public Object[] getApplicationEventListeners()
      Description copied from interface: Context
      Obtain the registered application event listeners.
      Specified by:
      getApplicationEventListeners in interface Context
      Returns:
      An array containing the application event listener instances for this web application in the order they were specified in the web application deployment descriptor
    • setApplicationEventListeners

      public void setApplicationEventListeners(Object[] listeners)
      Store the set of initialized application event listener objects, in the order they were specified in the web application deployment descriptor, for this application. Note that this implementation is not thread safe. If two threads call this method concurrently, the result may be either set of listeners or a the union of both.
      Specified by:
      setApplicationEventListeners in interface Context
      Parameters:
      listeners - The set of instantiated listener objects.
    • addApplicationEventListener

      public void addApplicationEventListener(Object listener)
      Add a listener to the end of the list of initialized application event listeners.
      Parameters:
      listener - The listener to add
    • getApplicationLifecycleListeners

      public Object[] getApplicationLifecycleListeners()
      Description copied from interface: Context
      Obtain the registered application lifecycle listeners.
      Specified by:
      getApplicationLifecycleListeners in interface Context
      Returns:
      An array containing the application lifecycle listener instances for this web application in the order they were specified in the web application deployment descriptor
    • setApplicationLifecycleListeners

      public void setApplicationLifecycleListeners(Object[] listeners)
      Description copied from interface: Context
      Store the set of initialized application lifecycle listener objects, in the order they were specified in the web application deployment descriptor, for this application.
      Specified by:
      setApplicationLifecycleListeners in interface Context
      Parameters:
      listeners - The set of instantiated listener objects.
    • addApplicationLifecycleListener

      public void addApplicationLifecycleListener(Object listener)
      Add a listener to the end of the list of initialized application lifecycle listeners.
      Parameters:
      listener - The listener to add
    • getAntiResourceLocking

      public boolean getAntiResourceLocking()
      Returns:
      the antiResourceLocking flag for this Context.
    • setAntiResourceLocking

      public void setAntiResourceLocking(boolean antiResourceLocking)
      Set the antiResourceLocking feature for this Context.
      Parameters:
      antiResourceLocking - The new flag value
    • getUseBloomFilterForArchives

      @Deprecated public boolean getUseBloomFilterForArchives()
      Deprecated.
      Specified by:
      getUseBloomFilterForArchives in interface Context
      Returns:
      true if the resources archive lookup will use a bloom filter.
    • setUseBloomFilterForArchives

      @Deprecated public void setUseBloomFilterForArchives(boolean useBloomFilterForArchives)
      Deprecated.
      Description copied from interface: Context
      Set bloom filter flag value.
      Specified by:
      setUseBloomFilterForArchives in interface Context
      Parameters:
      useBloomFilterForArchives - The new fast class path scan flag
    • setParallelAnnotationScanning

      public void setParallelAnnotationScanning(boolean parallelAnnotationScanning)
      Description copied from interface: Context
      Set the parallel annotation scanning value.
      Specified by:
      setParallelAnnotationScanning in interface Context
      Parameters:
      parallelAnnotationScanning - new parallel annotation scanning flag
    • getParallelAnnotationScanning

      public boolean getParallelAnnotationScanning()
      Specified by:
      getParallelAnnotationScanning in interface Context
      Returns:
      the value of the parallel annotation scanning flag. If true, it will dispatch scanning to the utility executor.
    • getCharsetMapper

      public CharsetMapper getCharsetMapper()
      Returns:
      the Locale to character set mapper for this Context.
    • setCharsetMapper

      public void setCharsetMapper(CharsetMapper mapper)
      Set the Locale to character set mapper for this Context.
      Parameters:
      mapper - The new mapper
    • getCharset

      public String getCharset(Locale locale)
      Description copied from interface: Context
      Obtain the character set name to use with the given Locale. Note that different Contexts may have different mappings of Locale to character set.
      Specified by:
      getCharset in interface Context
      Parameters:
      locale - The locale for which the mapped character set should be returned
      Returns:
      The name of the character set to use with the given Locale
    • getConfigFile

      public URL getConfigFile()
      Description copied from interface: Context
      Return the URL of the XML descriptor for this context.
      Specified by:
      getConfigFile in interface Context
      Returns:
      The URL of the XML descriptor for this context
    • setConfigFile

      public void setConfigFile(URL configFile)
      Description copied from interface: Context
      Set the URL of the XML descriptor for this context.
      Specified by:
      setConfigFile in interface Context
      Parameters:
      configFile - The URL of the XML descriptor for this context.
    • getConfigured

      public boolean getConfigured()
      Description copied from interface: Context
      Return the "correctly configured" flag for this Context.
      Specified by:
      getConfigured in interface Context
      Returns:
      true if the Context has been correctly configured, otherwise false
    • setConfigured

      public void setConfigured(boolean configured)
      Description copied from interface: Context
      Set the "correctly configured" flag for this Context. This can be set to false by startup listeners that detect a fatal configuration error to avoid the application from being made available.
      Specified by:
      setConfigured in interface Context
      Parameters:
      configured - The new correctly configured flag
    • getCookies

      public boolean getCookies()
      Description copied from interface: Context
      Return the "use cookies for session ids" flag.
      Specified by:
      getCookies in interface Context
      Returns:
      true if it is permitted to use cookies to track session IDs for this web application, otherwise false
    • setCookies

      public void setCookies(boolean cookies)
      Description copied from interface: Context
      Set the "use cookies for session ids" flag.
      Specified by:
      setCookies in interface Context
      Parameters:
      cookies - The new flag
    • getSessionCookieName

      public String getSessionCookieName()
      Description copied from interface: Context
      Gets the name to use for session cookies. Overrides any setting that may be specified by the application.
      Specified by:
      getSessionCookieName in interface Context
      Returns:
      The value of the default session cookie name or null if not specified
    • setSessionCookieName

      public void setSessionCookieName(String sessionCookieName)
      Description copied from interface: Context
      Sets the name to use for session cookies. Overrides any setting that may be specified by the application.
      Specified by:
      setSessionCookieName in interface Context
      Parameters:
      sessionCookieName - The name to use
    • getUseHttpOnly

      public boolean getUseHttpOnly()
      Gets the value of the use HttpOnly cookies for session cookies flag.

      The default value for this implementation is true.

      Specified by:
      getUseHttpOnly in interface Context
      Returns:
      true if the HttpOnly flag should be set on session cookies
    • setUseHttpOnly

      public void setUseHttpOnly(boolean useHttpOnly)
      Description copied from interface: Context
      Sets the use HttpOnly cookies for session cookies flag.
      Specified by:
      setUseHttpOnly in interface Context
      Parameters:
      useHttpOnly - Set to true to use HttpOnly cookies for session cookies
    • getSessionCookieDomain

      public String getSessionCookieDomain()
      Description copied from interface: Context
      Gets the domain to use for session cookies. Overrides any setting that may be specified by the application.
      Specified by:
      getSessionCookieDomain in interface Context
      Returns:
      The value of the default session cookie domain or null if not specified
    • setSessionCookieDomain

      public void setSessionCookieDomain(String sessionCookieDomain)
      Description copied from interface: Context
      Sets the domain to use for session cookies. Overrides any setting that may be specified by the application.
      Specified by:
      setSessionCookieDomain in interface Context
      Parameters:
      sessionCookieDomain - The domain to use
    • getSessionCookiePath

      public String getSessionCookiePath()
      Description copied from interface: Context
      Gets the path to use for session cookies. Overrides any setting that may be specified by the application.
      Specified by:
      getSessionCookiePath in interface Context
      Returns:
      The value of the default session cookie path or null if not specified
    • setSessionCookiePath

      public void setSessionCookiePath(String sessionCookiePath)
      Description copied from interface: Context
      Sets the path to use for session cookies. Overrides any setting that may be specified by the application.
      Specified by:
      setSessionCookiePath in interface Context
      Parameters:
      sessionCookiePath - The path to use
    • getSessionCookiePathUsesTrailingSlash

      public boolean getSessionCookiePathUsesTrailingSlash()
      Description copied from interface: Context
      Is a / added to the end of the session cookie path to ensure browsers, particularly IE, don't send a session cookie for context /foo with requests intended for context /foobar.
      Specified by:
      getSessionCookiePathUsesTrailingSlash in interface Context
      Returns:
      true if the slash is added, otherwise false
    • setSessionCookiePathUsesTrailingSlash

      public void setSessionCookiePathUsesTrailingSlash(boolean sessionCookiePathUsesTrailingSlash)
      Description copied from interface: Context
      Configures if a / is added to the end of the session cookie path to ensure browsers, particularly IE, don't send a session cookie for context /foo with requests intended for context /foobar.
      Specified by:
      setSessionCookiePathUsesTrailingSlash in interface Context
      Parameters:
      sessionCookiePathUsesTrailingSlash - true if the slash is should be added, otherwise false
    • getCrossContext

      public boolean getCrossContext()
      Return the "allow crossing servlet contexts" flag.

      The default value for this implementation is false.

      Specified by:
      getCrossContext in interface Context
      Returns:
      true if cross-contest requests are allowed from this web applications, otherwise false
    • setCrossContext

      public void setCrossContext(boolean crossContext)
      Description copied from interface: Context
      Set the "allow crossing servlet contexts" flag.
      Specified by:
      setCrossContext in interface Context
      Parameters:
      crossContext - The new cross contexts flag
    • getDefaultContextXml

      public String getDefaultContextXml()
    • setDefaultContextXml

      public void setDefaultContextXml(String defaultContextXml)
      Set the location of the default context xml that will be used. If not absolute, it'll be made relative to the engine's base dir ( which defaults to catalina.base system property ).
      Parameters:
      defaultContextXml - The default web xml
    • getDefaultWebXml

      public String getDefaultWebXml()
    • setDefaultWebXml

      public void setDefaultWebXml(String defaultWebXml)
      Set the location of the default web xml that will be used. If not absolute, it'll be made relative to the engine's base dir ( which defaults to catalina.base system property ).
      Parameters:
      defaultWebXml - The default web xml
    • getStartupTime

      public long getStartupTime()
      Gets the time (in milliseconds) it took to start this context.
      Returns:
      Time (in milliseconds) it took to start this context.
    • setStartupTime

      public void setStartupTime(long startupTime)
    • getTldScanTime

      public long getTldScanTime()
    • setTldScanTime

      public void setTldScanTime(long tldScanTime)
    • getDenyUncoveredHttpMethods

      public boolean getDenyUncoveredHttpMethods()
      Description copied from interface: Context
      Return the deny-uncovered-http-methods flag for this web application.
      Specified by:
      getDenyUncoveredHttpMethods in interface Context
      Returns:
      The current value of the flag
    • setDenyUncoveredHttpMethods

      public void setDenyUncoveredHttpMethods(boolean denyUncoveredHttpMethods)
      Description copied from interface: Context
      Set the deny-uncovered-http-methods flag for this web application.
      Specified by:
      setDenyUncoveredHttpMethods in interface Context
      Parameters:
      denyUncoveredHttpMethods - The new deny-uncovered-http-methods flag
    • getDisplayName

      public String getDisplayName()
      Description copied from interface: Context
      Return the display name of this web application.
      Specified by:
      getDisplayName in interface Context
      Returns:
      The display name
    • getAltDDName

      public String getAltDDName()
      Description copied from interface: Context
      Return the alternate Deployment Descriptor name.
      Specified by:
      getAltDDName in interface Context
      Returns:
      the name
    • setAltDDName

      public void setAltDDName(String altDDName)
      Description copied from interface: Context
      Set an alternate Deployment Descriptor name.
      Specified by:
      setAltDDName in interface Context
      Parameters:
      altDDName - The new name
    • setDisplayName

      public void setDisplayName(String displayName)
      Description copied from interface: Context
      Set the display name of this web application.
      Specified by:
      setDisplayName in interface Context
      Parameters:
      displayName - The new display name
    • getDistributable

      public boolean getDistributable()
      Get the distributable flag for this web application.

      The default value for this implementation is false.

      Specified by:
      getDistributable in interface Context
      Returns:
      The value of the distributable flag for this web application.
    • setDistributable

      public void setDistributable(boolean distributable)
      Description copied from interface: Context
      Set the distributable flag for this web application.
      Specified by:
      setDistributable in interface Context
      Parameters:
      distributable - The new distributable flag
    • getDocBase

      public String getDocBase()
      Description copied from interface: Context
      Obtain the document root for this Context.
      Specified by:
      getDocBase in interface Context
      Returns:
      An absolute pathname or a relative (to the Host's appBase) pathname.
    • setDocBase

      public void setDocBase(String docBase)
      Description copied from interface: Context
      Set the document root for this Context. This can be either an absolute pathname or a relative pathname. Relative pathnames are relative to the containing Host's appBase.
      Specified by:
      setDocBase in interface Context
      Parameters:
      docBase - The new document root
    • getJ2EEApplication

      public String getJ2EEApplication()
    • setJ2EEApplication

      public void setJ2EEApplication(String j2EEApplication)
    • getJ2EEServer

      public String getJ2EEServer()
    • setJ2EEServer

      public void setJ2EEServer(String j2EEServer)
    • getLoader

      public Loader getLoader()
      Specified by:
      getLoader in interface Context
      Returns:
      the Loader with which this Context is associated.
    • setLoader

      public void setLoader(Loader loader)
      Description copied from interface: Context
      Set the Loader with which this Context is associated.
      Specified by:
      setLoader in interface Context
      Parameters:
      loader - The newly associated loader
    • getManager

      public Manager getManager()
      Specified by:
      getManager in interface Context
      Returns:
      the Manager with which this Context is associated. If there is no associated Manager, return null.
    • setManager

      public void setManager(Manager manager)
      Description copied from interface: Context
      Set the Manager with which this Context is associated.
      Specified by:
      setManager in interface Context
      Parameters:
      manager - The newly associated Manager
    • getIgnoreAnnotations

      public boolean getIgnoreAnnotations()
      Determine if annotations parsing is currently disabled

      The default value for this implementation is false.

      Specified by:
      getIgnoreAnnotations in interface Context
      Returns:
      true if annotation parsing is disabled for this web application
    • setIgnoreAnnotations

      public void setIgnoreAnnotations(boolean ignoreAnnotations)
      Description copied from interface: Context
      Set the boolean on the annotations parsing for this web application.
      Specified by:
      setIgnoreAnnotations in interface Context
      Parameters:
      ignoreAnnotations - The boolean on the annotations parsing
    • getLoginConfig

      public LoginConfig getLoginConfig()
      Specified by:
      getLoginConfig in interface Context
      Returns:
      the login configuration descriptor for this web application.
    • setLoginConfig

      public void setLoginConfig(LoginConfig config)
      Description copied from interface: Context
      Set the login configuration descriptor for this web application.
      Specified by:
      setLoginConfig in interface Context
      Parameters:
      config - The new login configuration
    • getNamingResources

      public NamingResourcesImpl getNamingResources()
      Specified by:
      getNamingResources in interface Context
      Returns:
      the naming resources associated with this web application.
    • setNamingResources

      public void setNamingResources(NamingResourcesImpl namingResources)
      Description copied from interface: Context
      Set the naming resources for this web application.
      Specified by:
      setNamingResources in interface Context
      Parameters:
      namingResources - The new naming resources
    • getPath

      public String getPath()
      Specified by:
      getPath in interface Context
      Returns:
      the context path for this web application.
    • setPath

      public void setPath(String path)
      Description copied from interface: Context
      Set the context path for this web application.
      Specified by:
      setPath in interface Context
      Parameters:
      path - The new context path
    • getPublicId

      public String getPublicId()
      Specified by:
      getPublicId in interface Context
      Returns:
      the public identifier of the deployment descriptor DTD that is currently being parsed.
    • setPublicId

      public void setPublicId(String publicId)
      Description copied from interface: Context
      Set the public identifier of the deployment descriptor DTD that is currently being parsed.
      Specified by:
      setPublicId in interface Context
      Parameters:
      publicId - The public identifier
    • getReloadable

      public boolean getReloadable()

      The default value for this implementation is false.

      Specified by:
      getReloadable in interface Context
      Returns:
      the reloadable flag for this web application.
    • getOverride

      public boolean getOverride()

      The default value for this implementation is false.

      Specified by:
      getOverride in interface Context
      Returns:
      the override flag for this web application.
    • getOriginalDocBase

      public String getOriginalDocBase()
      Returns:
      the original document root for this Context. This can be an absolute pathname, a relative pathname, or a URL. Is only set as deployment has change docRoot!
    • setOriginalDocBase

      public void setOriginalDocBase(String docBase)
      Set the original document root for this Context. This can be an absolute pathname, a relative pathname, or a URL.
      Parameters:
      docBase - The original document root
    • getParentClassLoader

      public ClassLoader getParentClassLoader()
      Description copied from interface: Container
      Get the parent class loader.
      Specified by:
      getParentClassLoader in interface Container
      Overrides:
      getParentClassLoader in class ContainerBase
      Returns:
      the parent class loader for this component. If not set, return Container.getParent().Container.getParentClassLoader(). If no parent has been set, return the system class loader.
    • getPrivileged

      public boolean getPrivileged()

      The default value for this implementation is false.

      Specified by:
      getPrivileged in interface Context
      Returns:
      the privileged flag for this web application.
    • setPrivileged

      public void setPrivileged(boolean privileged)
      Description copied from interface: Context
      Set the privileged flag for this web application.
      Specified by:
      setPrivileged in interface Context
      Parameters:
      privileged - The new privileged flag
    • setReloadable

      public void setReloadable(boolean reloadable)
      Description copied from interface: Context
      Set the reloadable flag for this web application.
      Specified by:
      setReloadable in interface Context
      Parameters:
      reloadable - The new reloadable flag
    • setOverride

      public void setOverride(boolean override)
      Description copied from interface: Context
      Set the override flag for this web application.
      Specified by:
      setOverride in interface Context
      Parameters:
      override - The new override flag
    • setReplaceWelcomeFiles

      public void setReplaceWelcomeFiles(boolean replaceWelcomeFiles)
      Set the "replace welcome files" property.
      Parameters:
      replaceWelcomeFiles - The new property value
    • getServletContext

      public ServletContext getServletContext()
      Specified by:
      getServletContext in interface Context
      Returns:
      the Servlet context for which this Context is a facade.
    • getSessionTimeout

      public int getSessionTimeout()

      The default value for this implementation is 30 minutes.

      Specified by:
      getSessionTimeout in interface Context
      Returns:
      the default session timeout (in minutes) for this web application.
    • setSessionTimeout

      public void setSessionTimeout(int timeout)
      Description copied from interface: Context
      Set the default session timeout (in minutes) for this web application.
      Specified by:
      setSessionTimeout in interface Context
      Parameters:
      timeout - The new default session timeout
    • getSwallowOutput

      public boolean getSwallowOutput()

      The default value for this implementation is false.

      Specified by:
      getSwallowOutput in interface Context
      Returns:
      the value of the swallowOutput flag.
    • setSwallowOutput

      public void setSwallowOutput(boolean swallowOutput)
      Description copied from interface: Context
      Set the value of the swallowOutput flag. If set to true, the system.out and system.err will be redirected to the logger during a servlet execution.
      Specified by:
      setSwallowOutput in interface Context
      Parameters:
      swallowOutput - The new value
    • getUnloadDelay

      public long getUnloadDelay()
      Returns:
      the value of the unloadDelay flag.
    • setUnloadDelay

      public void setUnloadDelay(long unloadDelay)
      Set the value of the unloadDelay flag, which represents the amount of ms that the container will wait when unloading servlets. Setting this to a small value may cause more requests to fail to complete when stopping a web application.
      Parameters:
      unloadDelay - The new value
    • getUnpackWAR

      public boolean getUnpackWAR()
      Returns:
      unpack WAR flag.
    • setUnpackWAR

      public void setUnpackWAR(boolean unpackWAR)
      Unpack WAR flag mutator.
      Parameters:
      unpackWAR - true to unpack WARs on deployment
    • getCopyXML

      public boolean getCopyXML()
      Flag which indicates if bundled context.xml files should be copied to the config folder. The doesn't occur by default.
      Returns:
      true if the META-INF/context.xml file included in a WAR will be copied to the host configuration base folder on deployment
    • setCopyXML

      public void setCopyXML(boolean copyXML)
      Allows copying a bundled context.xml file to the host configuration base folder on deployment.
      Parameters:
      copyXML - the new flag value
    • getWrapperClass

      public String getWrapperClass()
      Specified by:
      getWrapperClass in interface Context
      Returns:
      the Java class name of the Wrapper implementation used for servlets registered in this Context.
    • setWrapperClass

      public void setWrapperClass(String wrapperClassName)
      Description copied from interface: Context
      Set the Java class name of the Wrapper implementation used for servlets registered in this Context.
      Specified by:
      setWrapperClass in interface Context
      Parameters:
      wrapperClassName - The new wrapper class
    • getResources

      public WebResourceRoot getResources()
      Specified by:
      getResources in interface Context
      Returns:
      the Resources with which this Context is associated.
    • setResources

      public void setResources(WebResourceRoot resources)
      Description copied from interface: Context
      Set the Resources object with which this Context is associated.
      Specified by:
      setResources in interface Context
      Parameters:
      resources - The newly associated Resources
    • getJspConfigDescriptor

      public JspConfigDescriptor getJspConfigDescriptor()
      Specified by:
      getJspConfigDescriptor in interface Context
      Returns:
      the JSP configuration for this context. Will be null if there is no JSP configuration.
    • setJspConfigDescriptor

      public void setJspConfigDescriptor(JspConfigDescriptor descriptor)
      Description copied from interface: Context
      Set the JspConfigDescriptor for this context. A null value indicates there is not JSP configuration.
      Specified by:
      setJspConfigDescriptor in interface Context
      Parameters:
      descriptor - the new JSP configuration
    • getThreadBindingListener

      public ThreadBindingListener getThreadBindingListener()
      Specified by:
      getThreadBindingListener in interface Context
      Returns:
      the associated ThreadBindingListener.
    • setThreadBindingListener

      public void setThreadBindingListener(ThreadBindingListener threadBindingListener)
      Description copied from interface: Context
      Get the associated ThreadBindingListener.
      Specified by:
      setThreadBindingListener in interface Context
      Parameters:
      threadBindingListener - Set the listener that will receive notifications when entering and exiting the application scope
    • getJndiExceptionOnFailedWrite

      public boolean getJndiExceptionOnFailedWrite()
      Returns:
      whether or not an attempt to modify the JNDI context will trigger an exception or if the request will be ignored.
    • setJndiExceptionOnFailedWrite

      public void setJndiExceptionOnFailedWrite(boolean jndiExceptionOnFailedWrite)
      Controls whether or not an attempt to modify the JNDI context will trigger an exception or if the request will be ignored.
      Parameters:
      jndiExceptionOnFailedWrite - false to avoid an exception
    • getCharsetMapperClass

      public String getCharsetMapperClass()
      Returns:
      the Locale to character set mapper class for this Context.
    • setCharsetMapperClass

      public void setCharsetMapperClass(String mapper)
      Set the Locale to character set mapper class for this Context.
      Parameters:
      mapper - The new mapper class
    • getWorkPath

      public String getWorkPath()
      Get the absolute path to the work dir. To avoid duplication.
      Returns:
      The work path
    • getWorkDir

      public String getWorkDir()
      Returns:
      the work directory for this Context.
    • setWorkDir

      public void setWorkDir(String workDir)
      Set the work directory for this Context.
      Parameters:
      workDir - The new work directory
    • getClearReferencesRmiTargets

      public boolean getClearReferencesRmiTargets()
    • setClearReferencesRmiTargets

      public void setClearReferencesRmiTargets(boolean clearReferencesRmiTargets)
    • getClearReferencesStopThreads

      public boolean getClearReferencesStopThreads()
      Returns:
      the clearReferencesStopThreads flag for this Context.
    • setClearReferencesStopThreads

      public void setClearReferencesStopThreads(boolean clearReferencesStopThreads)
      Set the clearReferencesStopThreads feature for this Context.
      Parameters:
      clearReferencesStopThreads - The new flag value
    • getClearReferencesStopTimerThreads

      public boolean getClearReferencesStopTimerThreads()
      Returns:
      the clearReferencesStopTimerThreads flag for this Context.
    • setClearReferencesStopTimerThreads

      public void setClearReferencesStopTimerThreads(boolean clearReferencesStopTimerThreads)
      Set the clearReferencesStopTimerThreads feature for this Context.
      Parameters:
      clearReferencesStopTimerThreads - The new flag value
    • getClearReferencesHttpClientKeepAliveThread

      public boolean getClearReferencesHttpClientKeepAliveThread()
      Returns:
      the clearReferencesHttpClientKeepAliveThread flag for this Context.
    • setClearReferencesHttpClientKeepAliveThread

      public void setClearReferencesHttpClientKeepAliveThread(boolean clearReferencesHttpClientKeepAliveThread)
      Set the clearReferencesHttpClientKeepAliveThread feature for this Context.
      Parameters:
      clearReferencesHttpClientKeepAliveThread - The new flag value
    • getRenewThreadsWhenStoppingContext

      public boolean getRenewThreadsWhenStoppingContext()
    • setRenewThreadsWhenStoppingContext

      public void setRenewThreadsWhenStoppingContext(boolean renewThreadsWhenStoppingContext)
    • getClearReferencesObjectStreamClassCaches

      public boolean getClearReferencesObjectStreamClassCaches()
    • setClearReferencesObjectStreamClassCaches

      public void setClearReferencesObjectStreamClassCaches(boolean clearReferencesObjectStreamClassCaches)
    • getClearReferencesThreadLocals

      public boolean getClearReferencesThreadLocals()
    • setClearReferencesThreadLocals

      public void setClearReferencesThreadLocals(boolean clearReferencesThreadLocals)
    • getSkipMemoryLeakChecksOnJvmShutdown

      public boolean getSkipMemoryLeakChecksOnJvmShutdown()
    • setSkipMemoryLeakChecksOnJvmShutdown

      public void setSkipMemoryLeakChecksOnJvmShutdown(boolean skipMemoryLeakChecksOnJvmShutdown)
    • getFailCtxIfServletStartFails

      public Boolean getFailCtxIfServletStartFails()
    • setFailCtxIfServletStartFails

      public void setFailCtxIfServletStartFails(Boolean failCtxIfServletStartFails)
    • getComputedFailCtxIfServletStartFails

      protected boolean getComputedFailCtxIfServletStartFails()
    • addApplicationListener

      public void addApplicationListener(String listener)
      Description copied from interface: Context
      Add a new Listener class name to the set of Listeners configured for this application.
      Specified by:
      addApplicationListener in interface Context
      Parameters:
      listener - Java class name of a listener class
    • addApplicationParameter

      public void addApplicationParameter(ApplicationParameter parameter)
      Description copied from interface: Context
      Add a new application parameter for this application.
      Specified by:
      addApplicationParameter in interface Context
      Parameters:
      parameter - The new application parameter
    • addChild

      public void addChild(Container child)
      Description copied from interface: Container
      Add a new child Container to those associated with this Container, if supported. Prior to adding this Container to the set of children, the child's setParent() method must be called, with this Container as an argument. This method may thrown an IllegalArgumentException if this Container chooses not to be attached to the specified Container, in which case it is not added
      Specified by:
      addChild in interface Container
      Overrides:
      addChild in class ContainerBase
      Parameters:
      child - New child Container to be added
    • addConstraint

      public void addConstraint(SecurityConstraint constraint)
      Description copied from interface: Context
      Add a security constraint to the set for this web application.
      Specified by:
      addConstraint in interface Context
      Parameters:
      constraint - The security constraint that should be added
    • addErrorPage

      public void addErrorPage(ErrorPage errorPage)
      Description copied from interface: Context
      Add an error page for the specified error or Java exception.
      Specified by:
      addErrorPage in interface Context
      Parameters:
      errorPage - The error page definition to be added
    • addFilterDef

      public void addFilterDef(FilterDef filterDef)
      Description copied from interface: Context
      Add a filter definition to this Context.
      Specified by:
      addFilterDef in interface Context
      Parameters:
      filterDef - The filter definition to be added
    • addFilterMap

      public void addFilterMap(FilterMap filterMap)
      Description copied from interface: Context
      Add a filter mapping to this Context.
      Specified by:
      addFilterMap in interface Context
      Parameters:
      filterMap - The filter mapping to be added
    • addFilterMapBefore

      public void addFilterMapBefore(FilterMap filterMap)
      Description copied from interface: Context
      Add a filter mapping to this Context before the mappings defined in the deployment descriptor but after any other mappings added via this method.
      Specified by:
      addFilterMapBefore in interface Context
      Parameters:
      filterMap - The filter mapping to be added
    • addLocaleEncodingMappingParameter

      public void addLocaleEncodingMappingParameter(String locale, String encoding)
      Description copied from interface: Context
      Add a Locale Encoding Mapping (see Sec 5.4 of Servlet spec 2.4)
      Specified by:
      addLocaleEncodingMappingParameter in interface Context
      Parameters:
      locale - locale to map an encoding for
      encoding - encoding to be used for a give locale
    • addMessageDestination

      public void addMessageDestination(MessageDestination md)
      Add a message destination for this web application.
      Parameters:
      md - New message destination
    • addMessageDestinationRef

      @Deprecated public void addMessageDestinationRef(MessageDestinationRef mdr)
      Deprecated.
      This will be removed in Tomcat 10. Use getNamingResources() instead
      Add a message destination reference for this web application.
      Parameters:
      mdr - New message destination reference
    • addMimeMapping

      public void addMimeMapping(String extension, String mimeType)
      Description copied from interface: Context
      Add a new MIME mapping, replacing any existing mapping for the specified extension.
      Specified by:
      addMimeMapping in interface Context
      Parameters:
      extension - Filename extension being mapped
      mimeType - Corresponding MIME type
    • addParameter

      public void addParameter(String name, String value)
      Description copied from interface: Context
      Add a new context initialization parameter, replacing any existing value for the specified name.
      Specified by:
      addParameter in interface Context
      Parameters:
      name - Name of the new parameter
      value - Value of the new parameter
    • addRoleMapping

      public void addRoleMapping(String role, String link)
      Description copied from interface: Context
      Add a security role reference for this web application.
      Specified by:
      addRoleMapping in interface Context
      Parameters:
      role - Security role used in the application
      link - Actual security role to check for
    • addSecurityRole

      public void addSecurityRole(String role)
      Description copied from interface: Context
      Add a new security role for this web application.
      Specified by:
      addSecurityRole in interface Context
      Parameters:
      role - New security role
    • addServletMappingDecoded

      public void addServletMappingDecoded(String pattern, String name, boolean jspWildCard)
      Description copied from interface: Context
      Add a new servlet mapping, replacing any existing mapping for the specified pattern.
      Specified by:
      addServletMappingDecoded in interface Context
      Parameters:
      pattern - URL pattern to be mapped
      name - Name of the corresponding servlet to execute
      jspWildCard - true if name identifies the JspServlet and pattern contains a wildcard; false otherwise
    • addWatchedResource

      public void addWatchedResource(String name)
      Description copied from interface: Context
      Add a resource which will be watched for reloading by the host auto deployer. Note: this will not be used in embedded mode.
      Specified by:
      addWatchedResource in interface Context
      Parameters:
      name - Path to the resource, relative to docBase
    • addWelcomeFile

      public void addWelcomeFile(String name)
      Description copied from interface: Context
      Add a new welcome file to the set recognized by this Context.
      Specified by:
      addWelcomeFile in interface Context
      Parameters:
      name - New welcome file name
    • addWrapperLifecycle

      public void addWrapperLifecycle(String listener)
      Description copied from interface: Context
      Add the classname of a LifecycleListener to be added to each Wrapper appended to this Context.
      Specified by:
      addWrapperLifecycle in interface Context
      Parameters:
      listener - Java class name of a LifecycleListener class
    • addWrapperListener

      public void addWrapperListener(String listener)
      Description copied from interface: Context
      Add the classname of a ContainerListener to be added to each Wrapper appended to this Context.
      Specified by:
      addWrapperListener in interface Context
      Parameters:
      listener - Java class name of a ContainerListener class
    • createWrapper

      public Wrapper createWrapper()
      Description copied from interface: Context
      Factory method to create and return a new Wrapper instance, of the Java implementation class appropriate for this Context implementation. The constructor of the instantiated Wrapper will have been called, but no properties will have been set.
      Specified by:
      createWrapper in interface Context
      Returns:
      a newly created wrapper instance that is used to wrap a Servlet
    • findApplicationListeners

      public String[] findApplicationListeners()
      Specified by:
      findApplicationListeners in interface Context
      Returns:
      the set of application listener class names configured for this application.
    • findApplicationParameters

      public ApplicationParameter[] findApplicationParameters()
      Specified by:
      findApplicationParameters in interface Context
      Returns:
      the set of application parameters for this application.
    • findConstraints

      public SecurityConstraint[] findConstraints()
      Specified by:
      findConstraints in interface Context
      Returns:
      the set of security constraints for this web application. If there are none, a zero-length array is returned.
    • findErrorPage

      public ErrorPage findErrorPage(int errorCode)
      Specified by:
      findErrorPage in interface Context
      Parameters:
      errorCode - Error code to look up
      Returns:
      the error page entry for the specified HTTP error code, if any; otherwise return null.
    • findErrorPage

      @Deprecated public ErrorPage findErrorPage(String exceptionType)
      Deprecated.
      Specified by:
      findErrorPage in interface Context
      Parameters:
      exceptionType - Exception type to look up
      Returns:
      the error page entry for the specified Java exception type, if any; otherwise return null.
    • findErrorPage

      public ErrorPage findErrorPage(Throwable exceptionType)
      Description copied from interface: Context
      Find and return the ErrorPage instance for the specified exception's class, or an ErrorPage instance for the closest superclass for which there is such a definition. If no associated ErrorPage instance is found, return null.
      Specified by:
      findErrorPage in interface Context
      Parameters:
      exceptionType - The exception type for which to find an ErrorPage
      Returns:
      the error page entry for the specified Java exception type, if any; otherwise return null.
    • findErrorPages

      public ErrorPage[] findErrorPages()
      Specified by:
      findErrorPages in interface Context
      Returns:
      the set of defined error pages for all specified error codes and exception types.
    • findFilterDef

      public FilterDef findFilterDef(String filterName)
      Specified by:
      findFilterDef in interface Context
      Parameters:
      filterName - Filter name to look up
      Returns:
      the filter definition for the specified filter name, if any; otherwise return null.
    • findFilterDefs

      public FilterDef[] findFilterDefs()
      Specified by:
      findFilterDefs in interface Context
      Returns:
      the set of defined filters for this Context.
    • findFilterMaps

      public FilterMap[] findFilterMaps()
      Specified by:
      findFilterMaps in interface Context
      Returns:
      the set of filter mappings for this Context.
    • findMessageDestination

      public MessageDestination findMessageDestination(String name)
      Parameters:
      name - Name of the desired message destination
      Returns:
      the message destination with the specified name, if any; otherwise, return null.
    • findMessageDestinations

      public MessageDestination[] findMessageDestinations()
      Returns:
      the set of defined message destinations for this web application. If none have been defined, a zero-length array is returned.
    • findMessageDestinationRef

      @Deprecated public MessageDestinationRef findMessageDestinationRef(String name)
      Deprecated.
      This will be removed in Tomcat 10. Use getNamingResources() instead
      Parameters:
      name - Name of the desired message destination ref
      Returns:
      the message destination ref with the specified name, if any; otherwise, return null.
    • findMessageDestinationRefs

      @Deprecated public MessageDestinationRef[] findMessageDestinationRefs()
      Deprecated.
      This will be removed in Tomcat 10. Use getNamingResources() instead
      Returns:
      the set of defined message destination refs for this web application. If none have been defined, a zero-length array is returned.
    • findMimeMapping

      public String findMimeMapping(String extension)
      Specified by:
      findMimeMapping in interface Context
      Parameters:
      extension - Extension to map to a MIME type
      Returns:
      the MIME type to which the specified extension is mapped, if any; otherwise return null.
    • findMimeMappings

      public String[] findMimeMappings()
      Specified by:
      findMimeMappings in interface Context
      Returns:
      the extensions for which MIME mappings are defined. If there are none, a zero-length array is returned.
    • findParameter

      public String findParameter(String name)
      Specified by:
      findParameter in interface Context
      Parameters:
      name - Name of the parameter to return
      Returns:
      the value for the specified context initialization parameter name, if any; otherwise return null.
    • findParameters

      public String[] findParameters()
      Specified by:
      findParameters in interface Context
      Returns:
      the names of all defined context initialization parameters for this Context. If no parameters are defined, a zero-length array is returned.
    • findRoleMapping

      public String findRoleMapping(String role)
      Description copied from interface: Context
      For the given security role (as used by an application), return the corresponding role name (as defined by the underlying Realm) if there is one. Otherwise, return the specified role unchanged.
      Specified by:
      findRoleMapping in interface Context
      Parameters:
      role - Security role to map
      Returns:
      The role name that was mapped to the specified role
    • findSecurityRole

      public boolean findSecurityRole(String role)
      Specified by:
      findSecurityRole in interface Context
      Parameters:
      role - Security role to verify
      Returns:
      true if the specified security role is defined for this application; otherwise return false.
    • findSecurityRoles

      public String[] findSecurityRoles()
      Specified by:
      findSecurityRoles in interface Context
      Returns:
      the security roles defined for this application. If none have been defined, a zero-length array is returned.
    • findServletMapping

      public String findServletMapping(String pattern)
      Specified by:
      findServletMapping in interface Context
      Parameters:
      pattern - Pattern for which a mapping is requested
      Returns:
      the servlet name mapped by the specified pattern (if any); otherwise return null.
    • findServletMappings

      public String[] findServletMappings()
      Specified by:
      findServletMappings in interface Context
      Returns:
      the patterns of all defined servlet mappings for this Context. If no mappings are defined, a zero-length array is returned.
    • findStatusPage

      @Deprecated public String findStatusPage(int status)
      Deprecated.
      Specified by:
      findStatusPage in interface Context
      Parameters:
      status - HTTP status code to look up
      Returns:
      the context-relative URI of the error page for the specified HTTP status code, if any; otherwise return null.
    • findStatusPages

      @Deprecated public int[] findStatusPages()
      Deprecated.
      Specified by:
      findStatusPages in interface Context
      Returns:
      the set of HTTP status codes for which error pages have been specified. If none are specified, a zero-length array is returned.
    • findWelcomeFile

      public boolean findWelcomeFile(String name)
      Specified by:
      findWelcomeFile in interface Context
      Parameters:
      name - Welcome file to verify
      Returns:
      true if the specified welcome file is defined for this Context; otherwise return false.
    • findWatchedResources

      public String[] findWatchedResources()
      Specified by:
      findWatchedResources in interface Context
      Returns:
      the set of watched resources for this Context. If none are defined, a zero length array will be returned.
    • findWelcomeFiles

      public String[] findWelcomeFiles()
      Specified by:
      findWelcomeFiles in interface Context
      Returns:
      the set of welcome files defined for this Context. If none are defined, a zero-length array is returned.
    • findWrapperLifecycles

      public String[] findWrapperLifecycles()
      Specified by:
      findWrapperLifecycles in interface Context
      Returns:
      the set of LifecycleListener classes that will be added to newly created Wrappers automatically.
    • findWrapperListeners

      public String[] findWrapperListeners()
      Specified by:
      findWrapperListeners in interface Context
      Returns:
      the set of ContainerListener classes that will be added to newly created Wrappers automatically.
    • reload

      public void reload()
      Reload this web application, if reloading is supported.

      IMPLEMENTATION NOTE: This method is designed to deal with reloads required by changes to classes in the underlying repositories of our class loader and changes to the web.xml file. It does not handle changes to any context.xml file. If the context.xml has changed, you should stop this Context and create (and start) a new Context instance instead. Note that there is additional code in CoyoteAdapter#postParseRequest() to handle mapping requests to paused Contexts.

      Specified by:
      reload in interface Context
    • removeApplicationListener

      public void removeApplicationListener(String listener)
      Description copied from interface: Context
      Remove the specified application listener class from the set of listeners for this application.
      Specified by:
      removeApplicationListener in interface Context
      Parameters:
      listener - Java class name of the listener to be removed
    • removeApplicationParameter

      public void removeApplicationParameter(String name)
      Description copied from interface: Context
      Remove the application parameter with the specified name from the set for this application.
      Specified by:
      removeApplicationParameter in interface Context
      Parameters:
      name - Name of the application parameter to remove
    • removeChild

      public void removeChild(Container child)
      Description copied from interface: Container
      Remove an existing child Container from association with this parent Container.
      Specified by:
      removeChild in interface Container
      Overrides:
      removeChild in class ContainerBase
      Parameters:
      child - Existing child Container to be removed
    • removeConstraint

      public void removeConstraint(SecurityConstraint constraint)
      Description copied from interface: Context
      Remove the specified security constraint from this web application.
      Specified by:
      removeConstraint in interface Context
      Parameters:
      constraint - Constraint to be removed
    • removeErrorPage

      public void removeErrorPage(ErrorPage errorPage)
      Description copied from interface: Context
      Remove the error page for the specified error code or Java language exception, if it exists; otherwise, no action is taken.
      Specified by:
      removeErrorPage in interface Context
      Parameters:
      errorPage - The error page definition to be removed
    • removeFilterDef

      public void removeFilterDef(FilterDef filterDef)
      Description copied from interface: Context
      Remove the specified filter definition from this Context, if it exists; otherwise, no action is taken.
      Specified by:
      removeFilterDef in interface Context
      Parameters:
      filterDef - Filter definition to be removed
    • removeFilterMap

      public void removeFilterMap(FilterMap filterMap)
      Description copied from interface: Context
      Remove a filter mapping from this Context.
      Specified by:
      removeFilterMap in interface Context
      Parameters:
      filterMap - The filter mapping to be removed
    • removeMessageDestination

      public void removeMessageDestination(String name)
      Remove any message destination with the specified name.
      Parameters:
      name - Name of the message destination to remove
    • removeMessageDestinationRef

      @Deprecated public void removeMessageDestinationRef(String name)
      Deprecated.
      This will be removed in Tomcat 10. Use getNamingResources() instead
      Remove any message destination ref with the specified name.
      Parameters:
      name - Name of the message destination ref to remove
    • removeMimeMapping

      public void removeMimeMapping(String extension)
      Description copied from interface: Context
      Remove the MIME mapping for the specified extension, if it exists; otherwise, no action is taken.
      Specified by:
      removeMimeMapping in interface Context
      Parameters:
      extension - Extension to remove the mapping for
    • removeParameter

      public void removeParameter(String name)
      Description copied from interface: Context
      Remove the context initialization parameter with the specified name, if it exists; otherwise, no action is taken.
      Specified by:
      removeParameter in interface Context
      Parameters:
      name - Name of the parameter to remove
    • removeRoleMapping

      public void removeRoleMapping(String role)
      Description copied from interface: Context
      Remove any security role reference for the specified name
      Specified by:
      removeRoleMapping in interface Context
      Parameters:
      role - Security role (as used in the application) to remove
    • removeSecurityRole

      public void removeSecurityRole(String role)
      Description copied from interface: Context
      Remove any security role with the specified name.
      Specified by:
      removeSecurityRole in interface Context
      Parameters:
      role - Security role to remove
    • removeServletMapping

      public void removeServletMapping(String pattern)
      Description copied from interface: Context
      Remove any servlet mapping for the specified pattern, if it exists; otherwise, no action is taken.
      Specified by:
      removeServletMapping in interface Context
      Parameters:
      pattern - URL pattern of the mapping to remove
    • removeWatchedResource

      public void removeWatchedResource(String name)
      Description copied from interface: Context
      Remove the specified watched resource name from the list associated with this Context.
      Specified by:
      removeWatchedResource in interface Context
      Parameters:
      name - Name of the watched resource to be removed
    • removeWelcomeFile

      public void removeWelcomeFile(String name)
      Description copied from interface: Context
      Remove the specified welcome file name from the list recognized by this Context.
      Specified by:
      removeWelcomeFile in interface Context
      Parameters:
      name - Name of the welcome file to be removed
    • removeWrapperLifecycle

      public void removeWrapperLifecycle(String listener)
      Description copied from interface: Context
      Remove a class name from the set of LifecycleListener classes that will be added to newly created Wrappers.
      Specified by:
      removeWrapperLifecycle in interface Context
      Parameters:
      listener - Class name of a LifecycleListener class to be removed
    • removeWrapperListener

      public void removeWrapperListener(String listener)
      Description copied from interface: Context
      Remove a class name from the set of ContainerListener classes that will be added to newly created Wrappers.
      Specified by:
      removeWrapperListener in interface Context
      Parameters:
      listener - Class name of a ContainerListener class to be removed
    • getProcessingTime

      public long getProcessingTime()
      Gets the cumulative processing times of all servlets in this StandardContext.
      Returns:
      Cumulative processing times of all servlets in this StandardContext
    • getMaxTime

      public long getMaxTime()
      Gets the maximum processing time of all servlets in this StandardContext.
      Returns:
      Maximum processing time of all servlets in this StandardContext
    • getMinTime

      public long getMinTime()
      Gets the minimum processing time of all servlets in this StandardContext.
      Returns:
      Minimum processing time of all servlets in this StandardContext
    • getRequestCount

      public int getRequestCount()
      Gets the cumulative request count of all servlets in this StandardContext.
      Returns:
      Cumulative request count of all servlets in this StandardContext
    • getErrorCount

      public int getErrorCount()
      Gets the cumulative error count of all servlets in this StandardContext.
      Returns:
      Cumulative error count of all servlets in this StandardContext
    • getRealPath

      public String getRealPath(String path)
      Specified by:
      getRealPath in interface Context
      Parameters:
      path - The path to the desired resource
      Returns:
      the real path for a given virtual path, if possible; otherwise return null.
    • dynamicServletCreated

      public void dynamicServletCreated(Servlet servlet)
      Hook to track which Servlets were created via ServletContext.createServlet(Class).
      Parameters:
      servlet - the created Servlet
    • wasCreatedDynamicServlet

      public boolean wasCreatedDynamicServlet(Servlet servlet)
    • filterStart

      public boolean filterStart()
      Configure and initialize the set of filters for this Context.
      Returns:
      true if all filter initialization completed successfully, or false otherwise.
    • filterStop

      public boolean filterStop()
      Finalize and release the set of filters for this Context.
      Returns:
      true if all filter finalization completed successfully, or false otherwise.
    • findFilterConfig

      public FilterConfig findFilterConfig(String name)
      Find and return the initialized FilterConfig for the specified filter name, if any; otherwise return null.
      Parameters:
      name - Name of the desired filter
      Returns:
      the filter config object
    • listenerStart

      public boolean listenerStart()
      Configure the set of instantiated application event listeners for this Context.
      Returns:
      true if all listeners wre initialized successfully, or false otherwise.
    • listenerStop

      public boolean listenerStop()
      Send an application stop event to all interested listeners.
      Returns:
      true if all events were sent successfully, or false otherwise.
    • resourcesStart

      public void resourcesStart() throws LifecycleException
      Allocate resources, including proxy.
      Throws:
      LifecycleException - if a start error occurs
    • resourcesStop

      public boolean resourcesStop()
      Deallocate resources and destroy proxy.
      Returns:
      true if no error occurred
    • loadOnStartup

      public boolean loadOnStartup(Container[] children)
      Load and initialize all servlets marked "load on startup" in the web application deployment descriptor.
      Parameters:
      children - Array of wrappers for all currently defined servlets (including those not declared load on startup)
      Returns:
      true if load on startup was considered successful
    • startInternal

      protected void startInternal() throws LifecycleException
      Description copied from class: ContainerBase
      Start this component and implement the requirements of LifecycleBase.startInternal().
      Overrides:
      startInternal in class ContainerBase
      Throws:
      LifecycleException - if this component detects a fatal error that prevents this component from being used
    • createInstanceManager

      public InstanceManager createInstanceManager()
      Description copied from interface: Context
      Factory method to create and return a new InstanceManager instance. This can be used for framework integration or easier configuration with custom Context implementations.
      Specified by:
      createInstanceManager in interface Context
      Returns:
      the instance manager
    • stopInternal

      protected void stopInternal() throws LifecycleException
      Description copied from class: ContainerBase
      Stop this component and implement the requirements of LifecycleBase.stopInternal().
      Overrides:
      stopInternal in class ContainerBase
      Throws:
      LifecycleException - if this component detects a fatal error that prevents this component from being used
    • destroyInternal

      protected void destroyInternal() throws LifecycleException
      Destroy needs to clean up the context completely. The problem is that undoing all the config in start() and restoring a 'fresh' state is impossible. After stop()/destroy()/init()/start() we should have the same state as if a fresh start was done - i.e read modified web.xml, etc. This can only be done by completely removing the context object and remapping a new one, or by cleaning up everything.
      Overrides:
      destroyInternal in class ContainerBase
      Throws:
      LifecycleException - If the destruction fails
    • backgroundProcess

      public void backgroundProcess()
      Description copied from interface: Container
      Execute a periodic task, such as reloading, etc. This method will be invoked inside the classloading context of this container. Unexpected throwables will be caught and logged.
      Specified by:
      backgroundProcess in interface Container
      Overrides:
      backgroundProcess in class ContainerBase
    • adjustURLPattern

      protected String adjustURLPattern(String urlPattern)
      Adjust the URL pattern to begin with a leading slash, if appropriate (i.e. we are running a servlet 2.2 application). Otherwise, return the specified URL pattern unchanged.
      Parameters:
      urlPattern - The URL pattern to be adjusted (if needed) and returned
      Returns:
      the URL pattern with a leading slash if needed
    • isServlet22

      public boolean isServlet22()
      Description copied from interface: Context
      Is this context using version 2.2 of the Servlet spec?
      Specified by:
      isServlet22 in interface Context
      Returns:
      true for a legacy Servlet 2.2 webapp
    • addServletSecurity

      public Set<String> addServletSecurity(ServletRegistration.Dynamic registration, ServletSecurityElement servletSecurityElement)
      Description copied from interface: Context
      Notification that Servlet security has been dynamically set in a ServletRegistration.Dynamic
      Specified by:
      addServletSecurity in interface Context
      Parameters:
      registration - Servlet security was modified for
      servletSecurityElement - new security constraints for this Servlet
      Returns:
      urls currently mapped to this registration that are already present in web.xml
    • bindThread

      protected ClassLoader bindThread()
      Bind current thread, both for CL purposes and for JNDI ENC support during : startup, shutdown and reloading of the context.
      Returns:
      the previous context class loader
    • unbindThread

      protected void unbindThread(ClassLoader oldContextClassLoader)
      Unbind thread and restore the specified context classloader.
      Parameters:
      oldContextClassLoader - the previous classloader
    • bind

      public ClassLoader bind(boolean usePrivilegedAction, ClassLoader originalClassLoader)
      Description copied from interface: ContextBind
      Change the current thread context class loader to the web application class loader. If no web application class loader is defined, or if the current thread is already using the web application class loader then no change will be made. If the class loader is changed and a ThreadBindingListener is configured then ThreadBindingListener.bind() will be called after the change has been made.
      Specified by:
      bind in interface ContextBind
      Parameters:
      usePrivilegedAction - Should a PrivilegedAction be used when obtaining the current thread context class loader and setting the new one?
      originalClassLoader - The current class loader if known to save this method having to look it up
      Returns:
      If the class loader has been changed by the method it will return the thread context class loader in use when the method was called. If no change was made then this method returns null.
    • unbind

      public void unbind(boolean usePrivilegedAction, ClassLoader originalClassLoader)
      Description copied from interface: ContextBind
      Restore the current thread context class loader to the original class loader in used before ContextBind.bind(boolean, ClassLoader) was called. If no original class loader is passed to this method then no change will be made. If the class loader is changed and a ThreadBindingListener is configured then ThreadBindingListener.unbind() will be called before the change is made.
      Specified by:
      unbind in interface ContextBind
      Parameters:
      usePrivilegedAction - Should a PrivilegedAction be used when setting the current thread context class loader?
      originalClassLoader - The class loader to restore as the thread context class loader
    • getNamingContextListener

      public NamingContextListener getNamingContextListener()
      Naming context listener accessor.
      Returns:
      the naming context listener associated with the webapp
    • setNamingContextListener

      public void setNamingContextListener(NamingContextListener namingContextListener)
      Naming context listener setter.
      Parameters:
      namingContextListener - the new naming context listener
    • getPaused

      public boolean getPaused()
      Description copied from interface: Context
      Is this Context paused whilst it is reloaded?
      Specified by:
      getPaused in interface Context
      Returns:
      true if the context has been paused
    • fireRequestInitEvent

      public boolean fireRequestInitEvent(ServletRequest request)
      Description copied from interface: Context
      Notify all ServletRequestListeners that a request has started.
      Specified by:
      fireRequestInitEvent in interface Context
      Parameters:
      request - The request object that will be passed to the listener
      Returns:
      true if the listeners fire successfully, else false
    • fireRequestDestroyEvent

      public boolean fireRequestDestroyEvent(ServletRequest request)
      Description copied from interface: Context
      Notify all ServletRequestListeners that a request has ended.
      Specified by:
      fireRequestDestroyEvent in interface Context
      Parameters:
      request - The request object that will be passed to the listener
      Returns:
      true if the listeners fire successfully, else false
    • addPostConstructMethod

      public void addPostConstructMethod(String clazz, String method)
      Description copied from interface: Context
      Add a post construct method definition for the given class, if there is an existing definition for the specified class - IllegalArgumentException will be thrown.
      Specified by:
      addPostConstructMethod in interface Context
      Parameters:
      clazz - Fully qualified class name
      method - Post construct method name
    • removePostConstructMethod

      public void removePostConstructMethod(String clazz)
      Description copied from interface: Context
      Removes the post construct method definition for the given class, if it exists; otherwise, no action is taken.
      Specified by:
      removePostConstructMethod in interface Context
      Parameters:
      clazz - Fully qualified class name
    • addPreDestroyMethod

      public void addPreDestroyMethod(String clazz, String method)
      Description copied from interface: Context
      Add a pre destroy method definition for the given class, if there is an existing definition for the specified class - IllegalArgumentException will be thrown.
      Specified by:
      addPreDestroyMethod in interface Context
      Parameters:
      clazz - Fully qualified class name
      method - Post construct method name
    • removePreDestroyMethod

      public void removePreDestroyMethod(String clazz)
      Description copied from interface: Context
      Removes the pre destroy method definition for the given class, if it exists; otherwise, no action is taken.
      Specified by:
      removePreDestroyMethod in interface Context
      Parameters:
      clazz - Fully qualified class name
    • findPostConstructMethod

      public String findPostConstructMethod(String clazz)
      Description copied from interface: Context
      Returns the method name that is specified as post construct method for the given class, if it exists; otherwise NULL will be returned.
      Specified by:
      findPostConstructMethod in interface Context
      Parameters:
      clazz - Fully qualified class name
      Returns:
      the method name that is specified as post construct method for the given class, if it exists; otherwise NULL will be returned.
    • findPreDestroyMethod

      public String findPreDestroyMethod(String clazz)
      Description copied from interface: Context
      Returns the method name that is specified as pre destroy method for the given class, if it exists; otherwise NULL will be returned.
      Specified by:
      findPreDestroyMethod in interface Context
      Parameters:
      clazz - Fully qualified class name
      Returns:
      the method name that is specified as pre destroy method for the given class, if it exists; otherwise NULL will be returned.
    • findPostConstructMethods

      public Map<String,String> findPostConstructMethods()
      Description copied from interface: Context
      Returns a map with keys - fully qualified class names of the classes that have post construct methods and the values are the corresponding method names. If there are no such classes an empty map will be returned.
      Specified by:
      findPostConstructMethods in interface Context
      Returns:
      a map with keys - fully qualified class names of the classes that have post construct methods and the values are the corresponding method names.
    • findPreDestroyMethods

      public Map<String,String> findPreDestroyMethods()
      Description copied from interface: Context
      Returns a map with keys - fully qualified class names of the classes that have pre destroy methods and the values are the corresponding method names. If there are no such classes an empty map will be returned.
      Specified by:
      findPreDestroyMethods in interface Context
      Returns:
      a map with keys - fully qualified class names of the classes that have pre destroy methods and the values are the corresponding method names.
    • postWorkDirectory

      protected void postWorkDirectory()
      Set the appropriate context attribute for our work directory.
    • getObjectNameKeyProperties

      protected String getObjectNameKeyProperties()
      Description copied from class: LifecycleMBeanBase
      Allow sub-classes to specify the key properties component of the ObjectName that will be used to register this component.
      Specified by:
      getObjectNameKeyProperties in class LifecycleMBeanBase
      Returns:
      The string representation of the key properties component of the desired ObjectName
    • initInternal

      protected void initInternal() throws LifecycleException
      Description copied from class: LifecycleBase
      Sub-classes implement this method to perform any instance initialisation required.
      Overrides:
      initInternal in class LifecycleMBeanBase
      Throws:
      LifecycleException - If the initialisation fails
    • removeNotificationListener

      public void removeNotificationListener(NotificationListener listener, NotificationFilter filter, Object object) throws ListenerNotFoundException
      Specified by:
      removeNotificationListener in interface NotificationEmitter
      Throws:
      ListenerNotFoundException
    • getNotificationInfo

      public MBeanNotificationInfo[] getNotificationInfo()
      Specified by:
      getNotificationInfo in interface NotificationBroadcaster
    • addNotificationListener

      public void addNotificationListener(NotificationListener listener, NotificationFilter filter, Object object) throws IllegalArgumentException
      Specified by:
      addNotificationListener in interface NotificationBroadcaster
      Throws:
      IllegalArgumentException
    • removeNotificationListener

      public void removeNotificationListener(NotificationListener listener) throws ListenerNotFoundException
      Specified by:
      removeNotificationListener in interface NotificationBroadcaster
      Throws:
      ListenerNotFoundException
    • getWelcomeFiles

      public String[] getWelcomeFiles()
      Returns:
      the naming resources associated with this web application.
    • getXmlNamespaceAware

      public boolean getXmlNamespaceAware()
      Description copied from interface: Context
      Will the parsing of web.xml and web-fragment.xml files for this Context be performed by a namespace aware parser?
      Specified by:
      getXmlNamespaceAware in interface Context
      Returns:
      true if namespace awareness is enabled.
    • setXmlNamespaceAware

      public void setXmlNamespaceAware(boolean webXmlNamespaceAware)
      Description copied from interface: Context
      Controls whether the parsing of web.xml and web-fragment.xml files for this Context will be performed by a namespace aware parser.
      Specified by:
      setXmlNamespaceAware in interface Context
      Parameters:
      webXmlNamespaceAware - true to enable namespace awareness
    • setXmlValidation

      public void setXmlValidation(boolean webXmlValidation)
      Description copied from interface: Context
      Controls whether the parsing of web.xml and web-fragment.xml files for this Context will be performed by a validating parser.
      Specified by:
      setXmlValidation in interface Context
      Parameters:
      webXmlValidation - true to enable xml validation
    • getXmlValidation

      public boolean getXmlValidation()
      Description copied from interface: Context
      Will the parsing of web.xml and web-fragment.xml files for this Context be performed by a validating parser?
      Specified by:
      getXmlValidation in interface Context
      Returns:
      true if validation is enabled.
    • setXmlBlockExternal

      public void setXmlBlockExternal(boolean xmlBlockExternal)
      Description copied from interface: Context
      Controls whether the parsing of web.xml, web-fragment.xml, *.tld, *.jspx, *.tagx and tagplugin.xml files for this Context will block the use of external entities.
      Specified by:
      setXmlBlockExternal in interface Context
      Parameters:
      xmlBlockExternal - true to block external entities
    • getXmlBlockExternal

      public boolean getXmlBlockExternal()
      Description copied from interface: Context
      Will the parsing of web.xml, web-fragment.xml, *.tld, *.jspx, *.tagx and tagplugin.xml files for this Context block the use of external entities?
      Specified by:
      getXmlBlockExternal in interface Context
      Returns:
      true if access to external entities is blocked
    • setTldValidation

      public void setTldValidation(boolean tldValidation)
      Description copied from interface: Context
      Controls whether the parsing of *.tld files for this Context will be performed by a validating parser.
      Specified by:
      setTldValidation in interface Context
      Parameters:
      tldValidation - true to enable xml validation
    • getTldValidation

      public boolean getTldValidation()
      Description copied from interface: Context
      Will the parsing of *.tld files for this Context be performed by a validating parser?
      Specified by:
      getTldValidation in interface Context
      Returns:
      true if validation is enabled.
    • getServer

      public String getServer()
    • setServer

      public String setServer(String server)
    • getJavaVMs

      @Deprecated public String[] getJavaVMs()
      Deprecated.
      Unused. Will be removed in Tomcat 10.1.
      Unused.
      Returns:
      The current array.
    • setJavaVMs

      @Deprecated public String[] setJavaVMs(String[] javaVMs)
      Deprecated.
      Unused. Will be removed in Tomcat 10.1.
      Unused.
      Parameters:
      javaVMs - The new value for the array.
      Returns:
      The new value for the array.
    • getStartTime

      public long getStartTime()
      Gets the time this context was started.
      Returns:
      Time (in milliseconds since January 1, 1970, 00:00:00) when this context was started