Methods Summary |
---|
public void | addAlternateDocBase(java.lang.String urlPattern, java.lang.String docBase)Configures this context's alternate doc base mappings.
if (urlPattern == null || docBase == null) {
throw new IllegalArgumentException(
sm.getString(
"standardContext.alternateDocBase.missingPathOrUrlPattern"));
}
AlternateDocBase alternateDocBase = new AlternateDocBase();
alternateDocBase.setUrlPattern(urlPattern);
alternateDocBase.setDocBase(docBase);
alternateDocBase.setBasePath(getBasePath(docBase));
if (alternateDocBases == null) {
alternateDocBases = new ArrayList<AlternateDocBase>();
}
alternateDocBases.add(alternateDocBase);
|
public void | addApplicationListener(java.lang.String listener)Add a new Listener class name to the set of Listeners
configured for this application.
synchronized (applicationListeners) {
String results[] = new String[applicationListeners.length + 1];
if ("com.sun.faces.config.ConfigureListener".equals(listener)) {
// Always add the JSF listener as the first element,
// see GlassFish Issue 2563 for details
for (int i = 0; i < applicationListeners.length; i++) {
if (listener.equals(applicationListeners[i])) {
return;
}
results[i+1] = applicationListeners[i];
}
results[0] = listener;
} else {
for (int i = 0; i < applicationListeners.length; i++) {
if (listener.equals(applicationListeners[i])) {
return;
}
results[i] = applicationListeners[i];
}
results[applicationListeners.length] = listener;
}
applicationListeners = results;
}
if (notifyContainerListeners) {
fireContainerEvent("addApplicationListener", listener);
}
// FIXME - add instance if already started?
|
public void | addApplicationParameter(org.apache.catalina.deploy.ApplicationParameter parameter)Add a new application parameter for this application.
synchronized (applicationParameters) {
String newName = parameter.getName();
for (int i = 0; i < applicationParameters.length; i++) {
if (newName.equals(applicationParameters[i].getName()) &&
!applicationParameters[i].getOverride())
return;
}
ApplicationParameter results[] =
new ApplicationParameter[applicationParameters.length + 1];
System.arraycopy(applicationParameters, 0, results, 0,
applicationParameters.length);
results[applicationParameters.length] = parameter;
applicationParameters = results;
}
if (notifyContainerListeners) {
fireContainerEvent("addApplicationParameter", parameter);
}
|
public void | addChild(org.apache.catalina.Container child)Add a child Container, only if the proposed child is an implementation
of Wrapper.
// Global JspServlet
Wrapper oldJspServlet = null;
if (!(child instanceof Wrapper)) {
throw new IllegalArgumentException
(sm.getString("standardContext.notWrapper"));
}
Wrapper wrapper = (Wrapper) child;
boolean isJspServlet = "jsp".equals(child.getName());
// Allow webapp to override JspServlet inherited from global web.xml.
if (isJspServlet) {
oldJspServlet = (Wrapper) findChild("jsp");
if (oldJspServlet != null) {
removeChild(oldJspServlet);
}
}
String jspFile = wrapper.getJspFile();
if ((jspFile != null) && !jspFile.startsWith("/")) {
if (isServlet22()) {
if (log.isDebugEnabled()) {
log.debug(sm.getString("standardContext.wrapper.warning",
jspFile));
}
wrapper.setJspFile("/" + jspFile);
} else {
throw new IllegalArgumentException
(sm.getString("standardContext.wrapper.error", jspFile));
}
}
super.addChild(child);
// START SJSAS 6342808
/* SJSWS 6362207
if (started) {
*/
// START SJSWS 6362207
if (getAvailable()) {
// END SJSWS 6362207
/*
* If this StandardContext has already been started, we need to
* register the newly added child with JMX. Any children that were
* added before this StandardContext was started have already been
* registered with JMX (as part of StandardContext.start()).
*/
if (wrapper instanceof StandardWrapper) {
((StandardWrapper) wrapper).registerJMX( this );
}
}
// END SJSAS 6342808
if (isJspServlet && oldJspServlet != null) {
/*
* The webapp-specific JspServlet inherits all the mappings
* specified in the global web.xml, and may add additional ones.
*/
String[] jspMappings = oldJspServlet.findMappings();
for (int i=0; jspMappings!=null && i<jspMappings.length; i++) {
addServletMapping(jspMappings[i], child.getName());
}
}
|
public void | addConstraint(org.apache.catalina.deploy.SecurityConstraint constraint)Add a security constraint to the set for this web application.
// Validate the proposed constraint
SecurityCollection collections[] = constraint.findCollections();
for (int i = 0; i < collections.length; i++) {
String patterns[] = collections[i].findPatterns();
for (int j = 0; j < patterns.length; j++) {
patterns[j] = adjustURLPattern(patterns[j]);
if (!validateURLPattern(patterns[j]))
throw new IllegalArgumentException
(sm.getString
("standardContext.securityConstraint.pattern",
patterns[j]));
}
}
// Add this constraint to the set for our web application
synchronized (constraints) {
SecurityConstraint results[] =
new SecurityConstraint[constraints.length + 1];
for (int i = 0; i < constraints.length; i++)
results[i] = constraints[i];
results[constraints.length] = constraint;
constraints = results;
}
|
public void | addEjb(org.apache.catalina.deploy.ContextEjb ejb)Add an EJB resource reference for this web application.
namingResources.addEjb(ejb);
if (notifyContainerListeners) {
fireContainerEvent("addEjb", ejb.getName());
}
|
public void | addEnvironment(org.apache.catalina.deploy.ContextEnvironment environment)Add an environment entry for this web application.
ContextEnvironment env = findEnvironment(environment.getName());
if ((env != null) && !env.getOverride())
return;
namingResources.addEnvironment(environment);
if (notifyContainerListeners) {
fireContainerEvent("addEnvironment", environment.getName());
}
|
public java.lang.String | addEnvironment(java.lang.String envName, java.lang.String type)Add an environment entry for this web application.
NamingResources nresources = getNamingResources();
if (nresources == null) {
return null;
}
ContextEnvironment env = nresources.findEnvironment(envName);
if (env != null) {
throw new IllegalArgumentException
("Invalid environment name - already exists '" + envName + "'");
}
env = new ContextEnvironment();
env.setName(envName);
env.setType(type);
nresources.addEnvironment(env);
// Return the corresponding MBean name
ManagedBean managed = Registry.getRegistry(null, null).findManagedBean("ContextEnvironment");
ObjectName oname =
MBeanUtils.createObjectName(managed.getDomain(), env);
return (oname.toString());
|
public void | addErrorPage(org.apache.catalina.deploy.ErrorPage errorPage)Add an error page for the specified error or Java exception.
// Validate the input parameters
if (errorPage == null)
throw new IllegalArgumentException
(sm.getString("standardContext.errorPage.required"));
String location = errorPage.getLocation();
if ((location != null) && !location.startsWith("/")) {
if (isServlet22()) {
if (log.isDebugEnabled()) {
log.debug(sm.getString("standardContext.errorPage.warning",
location));
}
errorPage.setLocation("/" + location);
} else {
throw new IllegalArgumentException
(sm.getString("standardContext.errorPage.error",
location));
}
}
// Add the specified error page to our internal collections
String exceptionType = errorPage.getExceptionType();
if (exceptionType != null) {
synchronized (exceptionPages) {
exceptionPages.put(exceptionType, errorPage);
}
} else {
synchronized (statusPages) {
int errorCode = errorPage.getErrorCode();
if ((errorCode >= 400) && (errorCode < 600)) {
statusPages.put(Integer.valueOf(errorCode), errorPage);
} else {
log.error(sm.getString(
"standardContext.invalidErrorPageCode",
errorCode));
}
}
}
if (notifyContainerListeners) {
fireContainerEvent("addErrorPage", errorPage);
}
|
public void | addFilterDef(org.apache.catalina.deploy.FilterDef filterDef)Add a filter definition to this Context.
synchronized (filterDefs) {
filterDefs.put(filterDef.getFilterName(), filterDef);
}
if (notifyContainerListeners) {
fireContainerEvent("addFilterDef", filterDef);
}
|
public void | addFilterMap(org.apache.catalina.deploy.FilterMap filterMap)Add a filter mapping to this Context.
// Validate the proposed filter mapping
String filterName = filterMap.getFilterName();
String servletName = filterMap.getServletName();
String urlPattern = filterMap.getURLPattern();
if (findFilterDef(filterName) == null)
throw new IllegalArgumentException
(sm.getString("standardContext.filterMap.name", filterName));
if ((servletName == null) && (urlPattern == null))
throw new IllegalArgumentException
(sm.getString("standardContext.filterMap.either"));
if ((servletName != null) && (urlPattern != null))
throw new IllegalArgumentException
(sm.getString("standardContext.filterMap.either"));
// Because filter-pattern is new in 2.3, no need to adjust
// for 2.2 backwards compatibility
if ((urlPattern != null) && !validateURLPattern(urlPattern))
throw new IllegalArgumentException
(sm.getString("standardContext.filterMap.pattern",
urlPattern));
// Add this filter mapping to our registered set
synchronized (filterMaps) {
FilterMap results[] =new FilterMap[filterMaps.length + 1];
System.arraycopy(filterMaps, 0, results, 0, filterMaps.length);
results[filterMaps.length] = filterMap;
filterMaps = results;
}
if (notifyContainerListeners) {
fireContainerEvent("addFilterMap", filterMap);
}
|
public void | addFilterMaps(org.apache.catalina.deploy.FilterMaps filterMaps)Add multiple filter mappings to this Context.
int dispatcherMapping = filterMaps.getDispatcherMapping();
String filterName = filterMaps.getFilterName();
String[] servletNames = filterMaps.getServletNames();
String[] urlPatterns = filterMaps.getURLPatterns();
for (int i = 0; i < servletNames.length; i++) {
FilterMap fmap = new FilterMap();
fmap.setFilterName(filterName);
fmap.setServletName(servletNames[i]);
fmap.setDispatcherMapping(dispatcherMapping);
addFilterMap(fmap);
}
for (int i = 0; i < urlPatterns.length; i++) {
FilterMap fmap = new FilterMap();
fmap.setFilterName(filterName);
fmap.setURLPattern(urlPatterns[i]);
fmap.setDispatcherMapping(dispatcherMapping);
addFilterMap(fmap);
}
|
public void | addInstanceListener(java.lang.String listener)Add the classname of an InstanceListener to be added to each
Wrapper appended to this Context.
synchronized (instanceListeners) {
String results[] =new String[instanceListeners.length + 1];
for (int i = 0; i < instanceListeners.length; i++)
results[i] = instanceListeners[i];
results[instanceListeners.length] = listener;
instanceListeners = results;
}
if (notifyContainerListeners) {
fireContainerEvent("addInstanceListener", listener);
}
|
public void | addJspMapping(java.lang.String pattern)Add the given URL pattern as a jsp-property-group. This maps
resources that match the given pattern so they will be passed
to the JSP container. Though there are other elements in the
property group, we only care about the URL pattern here. The
JSP container will parse the rest.
String servletName = findServletMapping("*.jsp");
if (servletName == null) {
servletName = "jsp";
}
if( findChild(servletName) != null) {
addServletMapping(pattern, servletName, true);
} else {
if (log.isDebugEnabled()) {
log.debug("Skipping " + pattern + " , no servlet "
+ servletName);
}
}
|
public void | addLocalEjb(org.apache.catalina.deploy.ContextLocalEjb ejb)Add a local EJB resource reference for this web application.
namingResources.addLocalEjb(ejb);
if (notifyContainerListeners) {
fireContainerEvent("addLocalEjb", ejb.getName());
}
|
public void | addLocaleEncodingMappingParameter(java.lang.String locale, java.lang.String encoding)Add a Locale Encoding Mapping (see Sec 5.4 of Servlet spec 2.4)
getCharsetMapper().addCharsetMappingFromDeploymentDescriptor(locale, encoding);
|
public void | addMessageDestination(org.apache.catalina.deploy.MessageDestination md)Add a message destination for this web application.
synchronized (messageDestinations) {
messageDestinations.put(md.getName(), md);
}
if (notifyContainerListeners) {
fireContainerEvent("addMessageDestination", md.getName());
}
|
public void | addMessageDestinationRef(org.apache.catalina.deploy.MessageDestinationRef mdr)Add a message destination reference for this web application.
namingResources.addMessageDestinationRef(mdr);
if (notifyContainerListeners) {
fireContainerEvent("addMessageDestinationRef", mdr.getName());
}
|
public void | addMimeMapping(java.lang.String extension, java.lang.String mimeType)Add a new MIME mapping, replacing any existing mapping for
the specified extension.
synchronized (mimeMappings) {
mimeMappings.put(extension, mimeType);
}
if (notifyContainerListeners) {
fireContainerEvent("addMimeMapping", extension);
}
|
public void | addParameter(java.lang.String name, java.lang.String value)Add a new context initialization parameter.
// Validate the proposed context initialization parameter
if ((name == null) || (value == null))
throw new IllegalArgumentException
(sm.getString("standardContext.parameter.required"));
if (parameters.get(name) != null)
throw new IllegalArgumentException
(sm.getString("standardContext.parameter.duplicate", name));
// Add this parameter to our defined set
synchronized (parameters) {
parameters.put(name, value);
}
if (notifyContainerListeners) {
fireContainerEvent("addParameter", name);
}
|
public void | addResource(org.apache.catalina.deploy.ContextResource resource)Add a resource reference for this web application.
namingResources.addResource(resource);
if (notifyContainerListeners) {
fireContainerEvent("addResource", resource.getName());
}
|
public java.lang.String | addResource(java.lang.String resourceName, java.lang.String type)Add a resource reference for this web application.
NamingResources nresources = getNamingResources();
if (nresources == null) {
return null;
}
ContextResource resource = nresources.findResource(resourceName);
if (resource != null) {
throw new IllegalArgumentException
("Invalid resource name - already exists'" + resourceName + "'");
}
resource = new ContextResource();
resource.setName(resourceName);
resource.setType(type);
nresources.addResource(resource);
// Return the corresponding MBean name
ManagedBean managed = Registry.getRegistry(null, null).findManagedBean("ContextResource");
ObjectName oname =
MBeanUtils.createObjectName(managed.getDomain(), resource);
return (oname.toString());
|
public void | addResourceEnvRef(java.lang.String name, java.lang.String type)Add a resource environment reference for this web application.
namingResources.addResourceEnvRef(name, type);
if (notifyContainerListeners) {
fireContainerEvent("addResourceEnvRef", name);
}
|
public void | addResourceLink(org.apache.catalina.deploy.ContextResourceLink resourceLink)Add a resource link for this web application.
namingResources.addResourceLink(resourceLink);
if (notifyContainerListeners) {
fireContainerEvent("addResourceLink", resourceLink.getName());
}
|
public java.lang.String | addResourceLink(java.lang.String resourceLinkName, java.lang.String global, java.lang.String name, java.lang.String type)Add a resource link for this web application.
NamingResources nresources = getNamingResources();
if (nresources == null) {
return null;
}
ContextResourceLink resourceLink =
nresources.findResourceLink(resourceLinkName);
if (resourceLink != null) {
throw new IllegalArgumentException
("Invalid resource link name - already exists'" +
resourceLinkName + "'");
}
resourceLink = new ContextResourceLink();
resourceLink.setGlobal(global);
resourceLink.setName(resourceLinkName);
resourceLink.setType(type);
nresources.addResourceLink(resourceLink);
// Return the corresponding MBean name
ManagedBean managed = Registry.getRegistry(null, null).findManagedBean("ContextResourceLink");
ObjectName oname =
MBeanUtils.createObjectName(managed.getDomain(), resourceLink);
return (oname.toString());
|
public void | addResourceParams(org.apache.catalina.deploy.ResourceParams resourceParameters)Add resource parameters for this web application.
namingResources.addResourceParams(resourceParameters);
if (notifyContainerListeners) {
fireContainerEvent("addResourceParams",
resourceParameters.getName());
}
|
public void | addRoleMapping(java.lang.String role, java.lang.String link)Add a security role reference for this web application.
synchronized (roleMappings) {
roleMappings.put(role, link);
}
if (notifyContainerListeners) {
fireContainerEvent("addRoleMapping", role);
}
|
public void | addSecurityRole(java.lang.String role)Add a new security role for this web application.
synchronized (securityRoles) {
String results[] =new String[securityRoles.length + 1];
for (int i = 0; i < securityRoles.length; i++)
results[i] = securityRoles[i];
results[securityRoles.length] = role;
securityRoles = results;
}
if (notifyContainerListeners) {
fireContainerEvent("addSecurityRole", role);
}
|
public void | addServletMapping(org.apache.catalina.deploy.ServletMap servletMap)Add a new servlet mapping, replacing any existing mapping for
the multiple patterns.
String[] patterns = servletMap.getUrlPatterns();
String name = servletMap.getServletName();
for (int i = 0; i < patterns.length; i++) {
addServletMapping(patterns[i], name, false);
}
|
public void | addServletMapping(java.lang.String pattern, java.lang.String name)Add a new servlet mapping, replacing any existing mapping for
the specified pattern.
addServletMapping(pattern, name, false);
|
public void | addServletMapping(java.lang.String pattern, java.lang.String name, boolean jspWildCard)Add a new servlet mapping, replacing any existing mapping for
the specified pattern.
// Validate the proposed mapping
if (findChild(name) == null)
throw new IllegalArgumentException
(sm.getString("standardContext.servletMap.name", name));
pattern = adjustURLPattern(RequestUtil.URLDecode(pattern));
if (!validateURLPattern(pattern))
throw new IllegalArgumentException
(sm.getString("standardContext.servletMap.pattern", pattern));
// Add this mapping to our registered set
synchronized (servletMappings) {
String name2 = (String) servletMappings.get(pattern);
if (name2 != null) {
// Don't allow more than one servlet on the same pattern
Wrapper wrapper = (Wrapper) findChild(name2);
wrapper.removeMapping(pattern);
mapper.removeWrapper(pattern);
}
servletMappings.put(pattern, name);
}
Wrapper wrapper = (Wrapper) findChild(name);
wrapper.addMapping(pattern);
// Update context mapper
mapper.addWrapper(pattern, wrapper, jspWildCard);
if (notifyContainerListeners) {
fireContainerEvent("addServletMapping", pattern);
}
|
public void | addTaglib(java.lang.String uri, java.lang.String location)Add a JSP tag library for the specified URI.
synchronized (taglibs) {
taglibs.put(uri, location);
}
if (notifyContainerListeners) {
fireContainerEvent("addTaglib", uri);
}
|
public void | addWelcomeFile(java.lang.String name)Add a new welcome file to the set recognized by this Context.
synchronized (welcomeFiles) {
// Welcome files from the application deployment descriptor
// completely replace those from the default conf/web.xml file
if (replaceWelcomeFiles) {
welcomeFiles = new String[0];
setReplaceWelcomeFiles(false);
}
String results[] =new String[welcomeFiles.length + 1];
for (int i = 0; i < welcomeFiles.length; i++)
results[i] = welcomeFiles[i];
results[welcomeFiles.length] = name;
welcomeFiles = results;
}
postWelcomeFiles();
if (notifyContainerListeners) {
fireContainerEvent("addWelcomeFile", name);
}
|
public void | addWrapperLifecycle(java.lang.String listener)Add the classname of a LifecycleListener to be added to each
Wrapper appended to this Context.
synchronized (wrapperLifecycles) {
String results[] =new String[wrapperLifecycles.length + 1];
for (int i = 0; i < wrapperLifecycles.length; i++)
results[i] = wrapperLifecycles[i];
results[wrapperLifecycles.length] = listener;
wrapperLifecycles = results;
}
if (notifyContainerListeners) {
fireContainerEvent("addWrapperLifecycle", listener);
}
|
public void | addWrapperListener(java.lang.String listener)Add the classname of a ContainerListener to be added to each
Wrapper appended to this Context.
synchronized (wrapperListeners) {
String results[] =new String[wrapperListeners.length + 1];
for (int i = 0; i < wrapperListeners.length; i++)
results[i] = wrapperListeners[i];
results[wrapperListeners.length] = listener;
wrapperListeners = results;
}
if (notifyContainerListeners) {
fireContainerEvent("addWrapperListener", listener);
}
|
protected java.lang.String | adjustURLPattern(java.lang.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.
if (urlPattern == null)
return (urlPattern);
if (urlPattern.startsWith("/") || urlPattern.startsWith("*."))
return (urlPattern);
if (!isServlet22())
return (urlPattern);
if (log.isDebugEnabled()) {
log.debug(sm.getString("standardContext.urlPattern.patternWarning",
urlPattern));
}
return ("/" + urlPattern);
|
public boolean | alternateResourcesStart()Starts this context's alternate doc base resources.
boolean ok = true;
if (alternateDocBases == null || alternateDocBases.size() == 0) {
return ok;
}
Hashtable env = new Hashtable();
if (getParent() != null)
env.put(ProxyDirContext.HOST, getParent().getName());
env.put(ProxyDirContext.CONTEXT, getName());
for (int i=0; i<alternateDocBases.size(); i++) {
AlternateDocBase alternateDocBase = alternateDocBases.get(i);
String basePath = alternateDocBase.getBasePath();
DirContext alternateWebappResources =
alternateDocBase.getWebappResources();
try {
ProxyDirContext proxyDirContext =
new ProxyDirContext(env, alternateWebappResources);
if (alternateWebappResources instanceof BaseDirContext) {
((BaseDirContext) alternateWebappResources).setDocBase(
basePath);
((BaseDirContext) alternateWebappResources).allocate();
}
alternateDocBase.setResources(proxyDirContext);
} catch (Throwable t) {
if(log.isDebugEnabled()) {
log.error(
sm.getString("standardContext.resourcesStart",
getName()),
t);
} else {
log.error(sm.getString("standardContext.resourcesStart",
getName()));
log.error(t.getMessage());
}
ok = false;
}
}
return ok;
|
public boolean | alternateResourcesStop()Stops this context's alternate doc base resources.
boolean ok = true;
if (alternateDocBases == null || alternateDocBases.size() == 0) {
return ok;
}
for (int i=0; i<alternateDocBases.size(); i++) {
AlternateDocBase alternateDocBase = alternateDocBases.get(i);
DirContext alternateResources =
alternateDocBase.getResources();
if (alternateResources instanceof Lifecycle) {
try {
((Lifecycle) alternateResources).stop();
} catch (Throwable t) {
log.error(sm.getString("standardContext.resourcesStop"),
t);
ok = false;
}
}
DirContext alternateWebappResources =
alternateDocBase.getWebappResources();
if (alternateWebappResources instanceof BaseDirContext) {
try {
((BaseDirContext) alternateWebappResources).release();
} catch (Throwable t) {
log.error(sm.getString("standardContext.resourcesStop"),
t);
ok = false;
}
}
}
this.alternateDocBases = null;
return (ok);
|
public void | backgroundProcess()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.
if (!started)
return;
count = (count + 1) % managerChecksFrequency;
if ((getManager() != null) && (count == 0)) {
if (getManager() instanceof StandardManager) {
((StandardManager) getManager()).processExpires();
} else if (getManager() instanceof PersistentManagerBase) {
PersistentManagerBase pManager =
(PersistentManagerBase) getManager();
pManager.backgroundProcess();
}
}
// START S1AS8PE 4965017
if (isReload()) {
if (getLoader() != null) {
if (reloadable && (getLoader().modified())) {
try {
Thread.currentThread().setContextClassLoader
(standardContextClassLoader);
reload();
} finally {
if (getLoader() != null) {
Thread.currentThread().setContextClassLoader
(getLoader().getClassLoader());
}
}
}
if (getLoader() instanceof WebappLoader) {
((WebappLoader) getLoader()).closeJARs(false);
}
}
}
// END S1AS8PE 4965017
|
private java.lang.ClassLoader | bindThread()Bind current thread, both for CL purposes and for JNDI ENC support
during : startup, shutdown and realoading of the context.
ClassLoader oldContextClassLoader =
Thread.currentThread().getContextClassLoader();
Thread.currentThread().setContextClassLoader
(getLoader().getClassLoader());
if (isUseNaming()) {
try {
ContextBindings.bindThread(this, this);
} catch (NamingException e) {
// Silent catch, as this is a normal case during the early
// startup stages
}
}
return oldContextClassLoader;
|
private void | cacheContext()
try {
File workDir=new File( getWorkPath() );
File ctxSer=new File( workDir, "_tomcat_context.ser");
FileOutputStream fos=new FileOutputStream( ctxSer );
ObjectOutputStream oos=new ObjectOutputStream( fos );
oos.writeObject(this);
oos.close();
fos.close();
} catch( Throwable t ) {
log.info("Error saving context.ser ", t);
}
|
private boolean | copy(java.io.File src, java.io.File dest)Copy a file.
FileInputStream is = null;
FileOutputStream os = null;
try {
is = new FileInputStream(src);
os = new FileOutputStream(dest);
byte[] buf = new byte[4096];
while (true) {
int len = is.read(buf);
if (len < 0)
break;
os.write(buf, 0, len);
}
is.close();
os.close();
} catch (IOException e) {
return false;
} finally {
try {
if (is != null) {
is.close();
}
} catch (Exception e) {
// Ignore
}
try {
if (os != null) {
os.close();
}
} catch (Exception e) {
// Ignore
}
}
return true;
|
public void | create()
init();
|
public void | createLoader()Creates a classloader for this context.
ClassLoader parent = null;
if (getPrivileged()) {
if (log.isDebugEnabled()) {
log.debug("Configuring privileged default Loader");
}
parent = this.getClass().getClassLoader();
} else {
if (log.isDebugEnabled()) {
log.debug("Configuring non-privileged default Loader");
}
parent = getParentClassLoader();
}
WebappLoader webappLoader = new WebappLoader(parent);
webappLoader.setDelegate(getDelegate());
webappLoader.setUseMyFaces(useMyFaces);
setLoader(webappLoader);
|
public javax.management.ObjectName | createObjectName(java.lang.String hostDomain, javax.management.ObjectName parentName)
String onameStr;
StandardHost hst=(StandardHost)getParent();
String hostName=getParent().getName();
String name= "//" + ((hostName==null)? "DEFAULT" : hostName) +
(("".equals(encodedPath)) ? "/" : encodedPath);
String suffix=",J2EEApplication=" +
getJ2EEApplication() + ",J2EEServer=" +
getJ2EEServer();
onameStr="j2eeType=WebModule,name=" + name + suffix;
if( log.isDebugEnabled())
log.debug("Registering " + onameStr + " for " + oname);
// default case - no domain explictely set.
if( getDomain() == null ) domain=hst.getDomain();
ObjectName oname=new ObjectName(getDomain() + ":" + onameStr);
return oname;
|
public org.apache.catalina.Wrapper | createWrapper()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.
Wrapper wrapper = null;
if (wrapperClass != null) {
try {
wrapper = (Wrapper) wrapperClass.newInstance();
} catch (Throwable t) {
log.error(sm.getString(
"standardContext.createWrapperInstance",
wrapperClassName),
t);
return (null);
}
} else {
wrapper = new StandardWrapper();
}
synchronized (instanceListeners) {
for (int i = 0; i < instanceListeners.length; i++) {
try {
Class clazz = Class.forName(instanceListeners[i]);
InstanceListener listener =
(InstanceListener) clazz.newInstance();
wrapper.addInstanceListener(listener);
} catch (Throwable t) {
log.error(sm.getString(
"standardContext.instanceListener",
instanceListeners[i]),
t);
return (null);
}
}
}
synchronized (wrapperLifecycles) {
for (int i = 0; i < wrapperLifecycles.length; i++) {
try {
Class clazz = Class.forName(wrapperLifecycles[i]);
LifecycleListener listener =
(LifecycleListener) clazz.newInstance();
if (wrapper instanceof Lifecycle)
((Lifecycle) wrapper).addLifecycleListener(listener);
} catch (Throwable t) {
log.error(sm.getString(
"standardContext.lifecycleListener",
wrapperLifecycles[i]),
t);
return (null);
}
}
}
synchronized (wrapperListeners) {
for (int i = 0; i < wrapperListeners.length; i++) {
try {
Class clazz = Class.forName(wrapperListeners[i]);
ContainerListener listener =
(ContainerListener) clazz.newInstance();
wrapper.addContainerListener(listener);
} catch (Throwable t) {
log.error(sm.getString(
"standardContext.containerListener",
wrapperListeners[i]),
t);
return (null);
}
}
}
return (wrapper);
|
public void | destroy()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.
XXX Should this be done in stop() ?
if( oname != null ) {
// Send j2ee.object.deleted notification
Notification notification =
new Notification("j2ee.object.deleted", this.getObjectName(),
sequenceNumber++);
broadcaster.sendNotification(notification);
}
super.destroy();
// START SJASAS 6359401
// super.destroy() will stop session manager and cause it to unload
// all its active sessions into a file. Delete this file, because this
// context is being destroyed and must not leave any traces.
if (getManager() instanceof ManagerBase) {
((ManagerBase)getManager()).release();
}
// END SJSAS 6359401
instanceListeners = new String[0];
|
protected java.io.File | engineBase()Return a File object representing the base directory for the
entire servlet container (i.e. the Engine container if present).
String base=System.getProperty("catalina.base");
if( base == null ) {
StandardEngine eng=(StandardEngine)this.getParent().getParent();
base=eng.getBaseDir();
}
return (new File(base));
|
public boolean | filterStart()Configure and initialize the set of filters for this Context.
Return true if all filter initialization completed
successfully, or false otherwise.
if (log.isDebugEnabled())
log.debug("Starting filters");
// Instantiate and record a FilterConfig for each defined filter
boolean ok = true;
synchronized (filterConfigs) {
filterConfigs.clear();
Iterator names = filterDefs.keySet().iterator();
while (names.hasNext()) {
String name = (String) names.next();
if (log.isDebugEnabled())
log.debug(" Starting filter '" + name + "'");
ApplicationFilterConfig filterConfig = null;
try {
filterConfig = new ApplicationFilterConfig
(this, (FilterDef) filterDefs.get(name));
filterConfigs.put(name, filterConfig);
} catch (Throwable t) {
getServletContext().log
(sm.getString("standardContext.filterStart", name), t);
ok = false;
}
}
}
return (ok);
|
public boolean | filterStop()Finalize and release the set of filters for this Context.
Return true if all filter finalization completed
successfully, or false otherwise.
if (log.isDebugEnabled())
log.debug("Stopping filters");
// Release all Filter and FilterConfig instances
synchronized (filterConfigs) {
Iterator names = filterConfigs.keySet().iterator();
while (names.hasNext()) {
String name = (String) names.next();
if (log.isDebugEnabled())
log.debug(" Stopping filter '" + name + "'");
ApplicationFilterConfig filterConfig =
(ApplicationFilterConfig) filterConfigs.get(name);
filterConfig.release();
}
filterConfigs.clear();
}
return (true);
|
public java.lang.String[] | findApplicationListeners()Return the set of application listener class names configured
for this application.
return (applicationListeners);
|
public org.apache.catalina.deploy.ApplicationParameter[] | findApplicationParameters()Return the set of application parameters for this application.
return (applicationParameters);
|
public org.apache.catalina.deploy.SecurityConstraint[] | findConstraints()Return the security constraints for this web application.
If there are none, a zero-length array is returned.
return (constraints);
|
public org.apache.catalina.deploy.ContextEjb | findEjb(java.lang.String name)Return the EJB resource reference with the specified name, if any;
otherwise, return null .
return namingResources.findEjb(name);
|
public org.apache.catalina.deploy.ContextEjb[] | findEjbs()Return the defined EJB resource references for this application.
If there are none, a zero-length array is returned.
return namingResources.findEjbs();
|
public org.apache.catalina.deploy.ContextEnvironment | findEnvironment(java.lang.String name)Return the environment entry with the specified name, if any;
otherwise, return null .
return namingResources.findEnvironment(name);
|
public org.apache.catalina.deploy.ContextEnvironment[] | findEnvironments()Return the set of defined environment entries for this web
application. If none have been defined, a zero-length array
is returned.
return namingResources.findEnvironments();
|
public org.apache.catalina.deploy.ErrorPage | findErrorPage(int errorCode)Return the error page entry for the specified HTTP error code,
if any; otherwise return null .
if ((errorCode >= 400) && (errorCode < 600)) {
return ((ErrorPage) statusPages.get(Integer.valueOf(errorCode)));
}
return null;
|
public org.apache.catalina.deploy.ErrorPage | findErrorPage(java.lang.String exceptionType)Return the error page entry for the specified Java exception type,
if any; otherwise return null .
synchronized (exceptionPages) {
return ((ErrorPage) exceptionPages.get(exceptionType));
}
|
public org.apache.catalina.deploy.ErrorPage[] | findErrorPages()Return the set of defined error pages for all specified error codes
and exception types.
synchronized(exceptionPages) {
synchronized(statusPages) {
ErrorPage results1[] = new ErrorPage[exceptionPages.size()];
results1 =
(ErrorPage[]) exceptionPages.values().toArray(results1);
ErrorPage results2[] = new ErrorPage[statusPages.size()];
results2 =
(ErrorPage[]) statusPages.values().toArray(results2);
ErrorPage results[] =
new ErrorPage[results1.length + results2.length];
for (int i = 0; i < results1.length; i++)
results[i] = results1[i];
for (int i = results1.length; i < results.length; i++)
results[i] = results2[i - results1.length];
return (results);
}
}
|
public javax.servlet.FilterConfig | findFilterConfig(java.lang.String name)Find and return the initialized FilterConfig for the
specified filter name, if any; otherwise return null .
return ((FilterConfig) filterConfigs.get(name));
|
public org.apache.catalina.deploy.FilterDef | findFilterDef(java.lang.String filterName)Return the filter definition for the specified filter name, if any;
otherwise return null .
synchronized (filterDefs) {
return ((FilterDef) filterDefs.get(filterName));
}
|
public org.apache.catalina.deploy.FilterDef[] | findFilterDefs()Return the set of defined filters for this Context.
synchronized (filterDefs) {
FilterDef results[] = new FilterDef[filterDefs.size()];
return ((FilterDef[]) filterDefs.values().toArray(results));
}
|
public org.apache.catalina.deploy.FilterMap[] | findFilterMaps()Return the set of filter mappings for this Context.
return (filterMaps);
|
public java.lang.String[] | findInstanceListeners()Return the set of InstanceListener classes that will be added to
newly created Wrappers automatically.
return (instanceListeners);
|
public org.apache.catalina.deploy.ContextLocalEjb | findLocalEjb(java.lang.String name)Return the local EJB resource reference with the specified name, if any;
otherwise, return null .
return namingResources.findLocalEjb(name);
|
public org.apache.catalina.deploy.ContextLocalEjb[] | findLocalEjbs()Return the defined local EJB resource references for this application.
If there are none, a zero-length array is returned.
return namingResources.findLocalEjbs();
|
public org.apache.catalina.Context | findMappingObject()FIXME: Fooling introspection ...
return (Context) getMappingObject();
|
public org.apache.catalina.deploy.MessageDestination | findMessageDestination(java.lang.String name)Return the message destination with the specified name, if any;
otherwise, return null .
synchronized (messageDestinations) {
return ((MessageDestination) messageDestinations.get(name));
}
|
public org.apache.catalina.deploy.MessageDestinationRef | findMessageDestinationRef(java.lang.String name)Return the message destination ref with the specified name, if any;
otherwise, return null .
return namingResources.findMessageDestinationRef(name);
|
public org.apache.catalina.deploy.MessageDestinationRef[] | findMessageDestinationRefs()Return the set of defined message destination refs for this web
application. If none have been defined, a zero-length array
is returned.
return namingResources.findMessageDestinationRefs();
|
public org.apache.catalina.deploy.MessageDestination[] | findMessageDestinations()Return the set of defined message destinations for this web
application. If none have been defined, a zero-length array
is returned.
synchronized (messageDestinations) {
MessageDestination results[] =
new MessageDestination[messageDestinations.size()];
return ((MessageDestination[])
messageDestinations.values().toArray(results));
}
|
public java.lang.String | findMimeMapping(java.lang.String extension)Return the MIME type to which the specified extension is mapped,
if any; otherwise return null .
String mimeType = mimeMappings.get(extension);
if (mimeType == null) {
// No mapping found, try case-insensitive match
synchronized (mimeMappings) {
Iterator<String> extensions = mimeMappings.keySet().iterator();
while (extensions.hasNext()) {
String ext = extensions.next();
if (ext.equalsIgnoreCase(extension)) {
// Case-insensitive extension match found
mimeType = mimeMappings.get(ext);
// Add given extension to the map, in order to make
// subsequent lookups faster
mimeMappings.put(extension, mimeType);
break;
}
}
}
}
return mimeType;
|
public java.lang.String[] | findMimeMappings()Return the extensions for which MIME mappings are defined. If there
are none, a zero-length array is returned.
synchronized (mimeMappings) {
String results[] = new String[mimeMappings.size()];
return
((String[]) mimeMappings.keySet().toArray(results));
}
|
public java.lang.String | findParameter(java.lang.String name)Return the value for the specified context initialization
parameter name, if any; otherwise return null .
synchronized (parameters) {
return ((String) parameters.get(name));
}
|
public java.lang.String[] | findParameters()Return the names of all defined context initialization parameters
for this Context. If no parameters are defined, a zero-length
array is returned.
synchronized (parameters) {
String results[] = new String[parameters.size()];
return ((String[]) parameters.keySet().toArray(results));
}
|
public org.apache.catalina.deploy.ContextResource | findResource(java.lang.String name)Return the resource reference with the specified name, if any;
otherwise return null .
return namingResources.findResource(name);
|
public java.lang.String | findResourceEnvRef(java.lang.String name)Return the resource environment reference type for the specified
name, if any; otherwise return null .
return namingResources.findResourceEnvRef(name);
|
public java.lang.String[] | findResourceEnvRefs()Return the set of resource environment reference names for this
web application. If none have been specified, a zero-length
array is returned.
return namingResources.findResourceEnvRefs();
|
public org.apache.catalina.deploy.ContextResourceLink | findResourceLink(java.lang.String name)Return the resource link with the specified name, if any;
otherwise return null .
return namingResources.findResourceLink(name);
|
public org.apache.catalina.deploy.ContextResourceLink[] | findResourceLinks()Return the defined resource links for this application. If
none have been defined, a zero-length array is returned.
return namingResources.findResourceLinks();
|
public org.apache.catalina.deploy.ContextResource[] | findResources()Return the defined resource references for this application. If
none have been defined, a zero-length array is returned.
return namingResources.findResources();
|
public java.lang.String | findRoleMapping(java.lang.String role)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.
String realRole = null;
synchronized (roleMappings) {
realRole = (String) roleMappings.get(role);
}
if (realRole != null)
return (realRole);
else
return (role);
|
public boolean | findSecurityRole(java.lang.String role)Return true if the specified security role is defined
for this application; otherwise return false .
synchronized (securityRoles) {
for (int i = 0; i < securityRoles.length; i++) {
if (role.equals(securityRoles[i]))
return (true);
}
}
return (false);
|
public java.lang.String[] | findSecurityRoles()Return the security roles defined for this application. If none
have been defined, a zero-length array is returned.
return (securityRoles);
|
public java.lang.String | findServletMapping(java.lang.String pattern)Return the servlet name mapped by the specified pattern (if any);
otherwise return null .
synchronized (servletMappings) {
return ((String) servletMappings.get(pattern));
}
|
public java.lang.String[] | findServletMappings()Return the patterns of all defined servlet mappings for this
Context. If no mappings are defined, a zero-length array is returned.
synchronized (servletMappings) {
String results[] = new String[servletMappings.size()];
return
((String[]) servletMappings.keySet().toArray(results));
}
|
public javax.naming.directory.DirContext | findStaticResources()Return the naming resources associated with this web application.
FIXME: Fooling introspection ...
return getResources();
|
public java.lang.String | findStatusPage(int status)Return the context-relative URI of the error page for the specified
HTTP status code, if any; otherwise return null .
return ((String) statusPages.get(Integer.valueOf(status)));
|
public int[] | findStatusPages()Return the set of HTTP status codes for which error pages have
been specified. If none are specified, a zero-length array
is returned.
synchronized (statusPages) {
int results[] = new int[statusPages.size()];
Iterator elements = statusPages.keySet().iterator();
int i = 0;
while (elements.hasNext())
results[i++] = ((Integer) elements.next()).intValue();
return (results);
}
|
public java.lang.String | findTaglib(java.lang.String uri)Return the tag library descriptor location for the specified taglib
URI, if any; otherwise, return null .
synchronized (taglibs) {
return ((String) taglibs.get(uri));
}
|
public java.lang.String[] | findTaglibs()Return the URIs of all tag libraries for which a tag library
descriptor location has been specified. If none are specified,
a zero-length array is returned.
synchronized (taglibs) {
String results[] = new String[taglibs.size()];
return ((String[]) taglibs.keySet().toArray(results));
}
|
public boolean | findWelcomeFile(java.lang.String name)Return true if the specified welcome file is defined
for this Context; otherwise return false .
synchronized (welcomeFiles) {
for (int i = 0; i < welcomeFiles.length; i++) {
if (name.equals(welcomeFiles[i]))
return (true);
}
}
return (false);
|
public java.lang.String[] | findWelcomeFiles()Return the set of welcome files defined for this Context. If none are
defined, a zero-length array is returned.
return (welcomeFiles);
|
public java.lang.String[] | findWrapperLifecycles()Return the set of LifecycleListener classes that will be added to
newly created Wrappers automatically.
return (wrapperLifecycles);
|
public java.lang.String[] | findWrapperListeners()Return the set of ContainerListener classes that will be added to
newly created Wrappers automatically.
return (wrapperListeners);
|
public java.lang.String | getAdHocServletName(java.lang.String path)Returns the name of the ad-hoc servlet responsible for servicing the
given path.
return null;
|
public boolean | getAllowRelativeRedirect()Return whether this context allows sendRedirect() to redirect
to a relative URL.
The default value for this property is 'false'.
return allowRelativeRedirect;
|
public java.lang.String | getAltDDName()Return the alternate Deployment Descriptor name.
return altDDName;
|
public java.util.ArrayList | getAlternateDocBases()Gets this context's configured alternate doc bases.
return alternateDocBases;
|
private java.lang.String | getAppBase()Get app base.
String appBase = null;
Container container = this;
while (container != null) {
if (container instanceof Host)
break;
container = container.getParent();
}
if (container != null) {
appBase = ((Host) container).getAppBase();
}
return appBase;
|
public java.lang.Object[] | getApplicationEventListeners()Return the set of initialized application event listener objects,
in the order they were specified in the web application deployment
descriptor, for this application.
return (applicationEventListenersObjects);
|
public java.lang.Object[] | getApplicationLifecycleListeners()Return the set of initialized application lifecycle listener objects,
in the order they were specified in the web application deployment
descriptor, for this application.
return (applicationLifecycleListenersObjects);
|
public org.apache.catalina.Auditor[] | getAuditors()Get Auditors associated with this context, if any.
return auditors;
|
public boolean | getAvailable()Return the application available flag for this Context.
return (this.available);
|
private java.lang.String | getBasePath(java.lang.String docBase)Get base path.
String basePath = null;
Container container = this;
while (container != null) {
if (container instanceof Host)
break;
container = container.getParent();
}
File file = new File(docBase);
if (!file.isAbsolute()) {
if (container == null) {
basePath = (new File(engineBase(), docBase)).getPath();
} else {
// Use the "appBase" property of this container
String appBase = ((Host) container).getAppBase();
file = new File(appBase);
if (!file.isAbsolute())
file = new File(engineBase(), appBase);
basePath = (new File(file, docBase)).getPath();
}
} else {
basePath = file.getPath();
}
return basePath;
|
public int | getCacheMaxSize()Return the maximum size of the cache in KB.
return cacheMaxSize;
|
public int | getCacheTTL()Get cache TTL.
return cacheTTL;
|
public org.apache.catalina.util.CharsetMapper | getCharsetMapper()Return the Locale to character set mapper for this Context.
// Create a mapper the first time it is requested
if (this.charsetMapper == null) {
try {
Class clazz = Class.forName(charsetMapperClass);
this.charsetMapper =
(CharsetMapper) clazz.newInstance();
} catch (Throwable t) {
this.charsetMapper = new CharsetMapper();
}
}
return (this.charsetMapper);
|
public java.lang.String | getCharsetMapperClass()Return the Locale to character set mapper class for this Context.
return (this.charsetMapperClass);
|
public java.lang.String | getCompilerClasspath()Return the compiler classpath.
return compilerClasspath;
|
private java.io.File | getConfigBase()Get config base.
File configBase =
new File(System.getProperty("catalina.base"), "conf");
if (!configBase.exists()) {
return null;
}
Container container = this;
Container host = null;
Container engine = null;
while (container != null) {
if (container instanceof Host)
host = container;
if (container instanceof Engine)
engine = container;
container = container.getParent();
}
if (engine != null) {
configBase = new File(configBase, engine.getName());
}
if (host != null) {
configBase = new File(configBase, host.getName());
}
configBase.mkdirs();
return configBase;
|
public java.lang.String | getConfigFile()Return the path to a file to save this Context information.
return (this.configFile);
|
public boolean | getConfigured()Return the "correctly configured" flag for this Context.
return (this.configured);
|
public boolean | getCookies()Return the "use cookies for session ids" flag.
return (this.cookies);
|
public boolean | getCrossContext()Return the "allow crossing servlet contexts" flag.
return (this.crossContext);
|
protected java.lang.String | getDefaultConfigFile()Given a context path, get the config file name.
String basename = null;
String path = getPath();
if (path.equals("")) {
basename = "ROOT";
} else {
basename = path.substring(1).replace('/", '_");
}
return (basename + ".xml");
|
public java.lang.String | getDefaultWebXml()
return defaultWebXml;
|
public boolean | getDelegate()Return the "follow standard delegation model" flag used to configure
our ClassLoader.
return (this.delegate);
|
public java.lang.String | getDeploymentDescriptor()JSR77 deploymentDescriptor attribute
InputStream stream = null;
ServletContext servletContext = getServletContext();
if (servletContext != null) {
stream = servletContext.getResourceAsStream(
org.apache.catalina.startup.Constants.ApplicationWebXml);
}
if (stream == null) {
return "";
}
BufferedReader br = new BufferedReader(
new InputStreamReader(stream));
StringBuffer sb = new StringBuffer();
String strRead = "";
try {
while (strRead != null) {
sb.append(strRead);
strRead = br.readLine();
}
} catch (IOException e) {
return "";
}
return sb.toString();
|
public java.lang.String | getDisplayName()Return the display name of this web application.
return (this.displayName);
|
public boolean | getDistributable()Return the distributable flag for this web application.
return (this.distributable);
|
public java.lang.String | getDocBase()Return the document root for this Context. This can be an absolute
pathname, a relative pathname, or a URL.
return (this.docBase);
|
public java.lang.String | getEncodedPath()
// ----------------------------------------------------- Context Properties
return encodedPath;
|
public java.lang.String | getEngineName()
if( engineName != null ) return engineName;
return domain;
|
public java.lang.String[] | getEnvironments()Return the MBean Names of the set of defined environment entries for
this web application
ContextEnvironment[] envs = getNamingResources().findEnvironments();
ArrayList results = new ArrayList();
for (int i = 0; i < envs.length; i++) {
try {
ObjectName oname =
MBeanUtils.createObjectName(this.getEngineName(), envs[i]);
results.add(oname.toString());
} catch (MalformedObjectNameException e) {
IllegalArgumentException iae = new IllegalArgumentException
("Cannot create object name for environment " + envs[i]);
iae.initCause(e);
throw iae;
}
}
return ((String[]) results.toArray(new String[results.size()]));
|
public java.lang.String | getHostname()
Container parentHost = getParent();
if (parentHost != null) {
hostName = parentHost.getName();
}
if ((hostName == null) || (hostName.length() < 1))
hostName = "_";
return hostName;
|
public java.lang.String | getInfo()Return descriptive information about this Container implementation and
the corresponding version number, in the format
<description>/<version> .
return (info);
|
public java.lang.String | getJ2EEApplication()
return j2EEApplication;
|
public java.lang.String | getJ2EEServer()
return j2EEServer;
|
public java.lang.String[] | getJavaVMs()
return javaVMs;
|
public org.apache.catalina.deploy.LoginConfig | getLoginConfig()Return the login configuration descriptor for this web application.
return (this.loginConfig);
|
public int | getManagerChecksFrequency()Return the frequency of manager checks.
return (this.managerChecksFrequency);
|
public org.apache.tomcat.util.http.mapper.Mapper | getMapper()Get the mapper associated with the context.
return (mapper);
|
public java.lang.String | getNamingContextName()Get naming context full name.
// END RIMOD 6195820
if (namingContextName == null) {
Container parent = getParent();
if (parent == null) {
namingContextName = getName();
} else {
Stack stk = new Stack();
StringBuffer buff = new StringBuffer();
while (parent != null) {
stk.push(parent.getName());
parent = parent.getParent();
}
while (!stk.empty()) {
buff.append("/" + stk.pop());
}
buff.append(getName());
namingContextName = buff.toString();
}
// START RIMOD 4868393
// append an id to make the name unique to the instance.
namingContextName += instanceIDCounter++;
// END RIMOD 4868393
}
return namingContextName;
|
public org.apache.catalina.deploy.NamingResources | getNamingResources()Return the naming resources associated with this web application.
return (this.namingResources);
|
public boolean | getOverride()Return the DefaultContext override flag for this web application.
return (this.override);
|
public javax.management.ObjectName | getParentName()
// "Life" update
String path=oname.getKeyProperty("name");
if( path == null ) {
log.error(sm.getString(
"standardContext.missingNameAttributeInName",
getName()));
return null;
}
if( ! path.startsWith( "//")) {
log.error(sm.getString("standardContext.malformedName",
getName()));
}
path=path.substring(2);
int delim=path.indexOf( "/" );
hostName="localhost"; // Should be default...
if( delim > 0 ) {
hostName=path.substring(0, delim);
path = path.substring(delim);
if (path.equals("/")) {
this.setName("");
} else {
this.setName(path);
}
} else {
if (log.isDebugEnabled()) {
log.debug("Setting path " + path );
}
this.setName( path );
}
// XXX The service and domain should be the same.
String parentDomain=getEngineName();
if( parentDomain == null ) parentDomain=domain;
ObjectName parentName=new ObjectName( parentDomain + ":" +
"type=Host,host=" + hostName);
return parentName;
|
public java.lang.String | getPath()Return the context path for this Context.
return (getName());
|
public boolean | getPaused()Return the request processing paused flag for this Context.
return (this.paused);
|
public boolean | getPrivileged()Return the privileged flag for this web application.
return (this.privileged);
|
public long | getProcessingTimeMillis()Gets the cumulative processing times of all servlets in this
StandardContext.
long result = 0;
Container[] children = findChildren();
if (children != null) {
for( int i=0; i< children.length; i++ ) {
result += ((StandardWrapper)children[i]).getProcessingTimeMillis();
}
}
return result;
|
public java.lang.String | getPublicId()Return the public identifier of the deployment descriptor DTD that is
currently being parsed.
return (this.publicId);
|
public boolean | getReloadable()Return the reloadable flag for this web application.
return (this.reloadable);
|
public java.lang.String[] | getResourceLinks()Return the MBean Names of all the defined resource links for this
application
ContextResourceLink[] links = getNamingResources().findResourceLinks();
ArrayList results = new ArrayList();
for (int i = 0; i < links.length; i++) {
try {
ObjectName oname =
MBeanUtils.createObjectName(this.getEngineName(), links[i]);
results.add(oname.toString());
} catch (MalformedObjectNameException e) {
IllegalArgumentException iae = new IllegalArgumentException
("Cannot create object name for resource " + links[i]);
iae.initCause(e);
throw iae;
}
}
return ((String[]) results.toArray(new String[results.size()]));
|
public java.lang.String[] | getResourceNames()Return the MBean Names of all the defined resource references for this
application.
ContextResource[] resources = getNamingResources().findResources();
ArrayList results = new ArrayList();
for (int i = 0; i < resources.length; i++) {
try {
ObjectName oname =
MBeanUtils.createObjectName(this.getEngineName(), resources[i]);
results.add(oname.toString());
} catch (MalformedObjectNameException e) {
IllegalArgumentException iae = new IllegalArgumentException
("Cannot create object name for resource " + resources[i]);
iae.initCause(e);
throw iae;
}
}
return ((String[]) results.toArray(new String[results.size()]));
|
public boolean | getReuseSessionID()Return the "reuse session IDs when creating sessions" flag
return reuseSessionID;
|
public java.lang.String | getServer()
return server;
|
public javax.servlet.ServletContext | getServletContext()Return the servlet context for which this Context is a facade.
if (context == null) {
context = new ApplicationContext(getBasePath(getDocBase()),
getAlternateDocBases(),
this);
if (altDDName != null
&& context.getAttribute(Globals.ALT_DD_ATTR) == null){
context.setAttribute(Globals.ALT_DD_ATTR,altDDName);
context.setAttributeReadOnly(Globals.ALT_DD_ATTR);
}
}
return (context.getFacade());
|
public java.lang.String[] | getServlets()JSR77 servlets attribute
String[] result = null;
Container[] children = findChildren();
if (children != null) {
result = new String[children.length];
for( int i=0; i< children.length; i++ ) {
result[i] = ((StandardWrapper)children[i]).getObjectName();
}
}
return result;
|
public int | getSessionTimeout()Return the default session timeout (in minutes) for this
web application.
return (this.sessionTimeout);
|
public long | getStartTimeMillis()Gets the time this context was started.
return startTimeMillis;
|
public long | getStartupTime()Gets the time (in milliseconds) it took to start this context.
return startupTime;
|
public int | getState()
if( started ) {
return 1; // RUNNING
}
if( initialized ) {
return 0; // starting ?
}
if( ! available ) {
return 4; //FAILED
}
// 2 - STOPPING
return 3; // STOPPED
|
public javax.naming.directory.DirContext | getStaticResources()Return the naming resources associated with this web application.
return getResources();
|
public boolean | getSwallowOutput()Return the value of the swallowOutput flag.
return (this.swallowOutput);
|
public boolean | getTldNamespaceAware()Get the server.xml attribute's xmlNamespaceAware.
return tldNamespaceAware;
|
public long | getTldScanTime()
return tldScanTime;
|
public boolean | getTldValidation()Get the server.xml attribute's webXmlValidation.
return tldValidation;
|
public boolean | getUnpackWAR()Unpack WAR flag accessor.
return (unpackWAR);
|
public java.lang.String[] | getWelcomeFiles()Return the naming resources associated with this web application.
return findWelcomeFiles();
|
public java.lang.String | getWorkDir()Return the work directory for this Context.
return (this.workDir);
|
public java.lang.String | getWorkPath()Get the absolute path to the work dir.
To avoid duplication.
File workDir = new File(getWorkDir());
if (!workDir.isAbsolute()) {
File catalinaHome = engineBase();
String catalinaHomePath = null;
try {
catalinaHomePath = catalinaHome.getCanonicalPath();
workDir = new File(catalinaHomePath,
getWorkDir());
} catch (IOException e) {
}
}
return workDir.getAbsolutePath();
|
public java.lang.String | getWrapperClass()Return the Java class name of the Wrapper implementation used
for servlets registered in this Context.
return (this.wrapperClassName);
|
public boolean | getXmlNamespaceAware()Get the server.xml attribute's xmlNamespaceAware.
return webXmlNamespaceAware;
|
public boolean | getXmlValidation()Get the server.xml attribute's xmlValidation.
return webXmlValidation;
|
public boolean | hasAdHocPaths()Indicates whether this web module contains any ad-hoc paths.
An ad-hoc path is a servlet path that is mapped to a servlet
not declared in the web module's deployment descriptor.
A web module all of whose mappings are for ad-hoc paths is called an
ad-hoc web module.
return false;
|
public void | init()
if( this.getParent() == null ) {
ObjectName parentName=getParentName();
if( ! mserver.isRegistered(parentName)) {
if (log.isDebugEnabled()) {
log.debug("No host, creating one " + parentName);
}
StandardHost host=new StandardHost();
host.setName(hostName);
Registry.getRegistry(null, null).registerComponent(host, parentName, null);
mserver.invoke(parentName, "init", new Object[] {}, new String[] {} );
}
ContextConfig config = new ContextConfig();
this.addLifecycleListener(config);
if (log.isDebugEnabled()) {
log.debug( "AddChild " + parentName + " " + this);
}
try {
mserver.invoke(parentName, "addChild", new Object[] { this },
new String[] {"org.apache.catalina.Container"});
} catch (Exception e) {
destroy();
throw e;
}
}
// It's possible that addChild may have started us
if( initialized ) {
return;
}
super.init();
// START GlassFish 2439
// Notify our interested LifecycleListeners
lifecycle.fireLifecycleEvent(INIT_EVENT, null);
// END GlassFish 2439
// Send j2ee.state.starting notification
if (this.getObjectName() != null) {
Notification notification = new Notification("j2ee.state.starting",
this.getObjectName(),
sequenceNumber++);
broadcaster.sendNotification(notification);
}
|
public boolean | isAllowLinking()Is linking allowed.
return allowLinking;
|
public boolean | isCachingAllowed()Is caching allowed ?
return cachingAllowed;
|
public boolean | isCaseSensitive()Is case sensitive ?
return caseSensitive;
|
public boolean | isCaseSensitiveMapping()Are filters and security constraints mapped in a case sensitive manner?
return caseSensitiveMapping;
|
public boolean | isEventProvider()
return false;
|
public boolean | isFilesystemBased()Returns true if the resources associated with this context are
filesystem based.
return (filesystemBased);
|
public boolean | isJsfApplication()Scan the parent when searching for TLD listeners.
return isJsfApplication;
|
private boolean | isJsfServletDefined()Check if we need to scan the classloader parent for Tld listeners.
Tlds will be scanned for listeners only if the web app uses
Java Server Faces.
Container[] wrappers = (Container[])findChildren();
String servletName;
for(int i=0; i < wrappers.length; i++){
servletName = ((Wrapper)wrappers[i]).getServletClass();
if (servletName == null){
continue;
}
// REVISIT Should we make the list configurable?
if ( servletName.equals("javax.faces.webapp.FacesServlet") ){
return true;
}
}
return false;
|
public boolean | isLazy()
return lazy;
|
public boolean | isReload()
return isReload;
|
public boolean | isReplaceWelcomeFiles()Return the "replace welcome files" property.
return (this.replaceWelcomeFiles);
|
public boolean | isSaveConfig()Save config ?
return saveConfig;
|
public boolean | isSecurePagesWithPragma()Returns the value of the securePagesWithPragma property.
return (this.securePagesWithPragma);
|
protected boolean | isServlet22()Are we processing a version 2.2 deployment descriptor?
if (this.publicId == null)
return (false);
if (this.publicId.equals
(org.apache.catalina.startup.Constants.WebDtdPublicId_22))
return (true);
else
return (false);
|
public boolean | isSessionTimeoutOveridden()Is the session timeout (in minutes) for this
web application over-ridden from the default
HERCULES:add
return (this.sessionTimeoutOveridden);
|
public boolean | isStateManageable()Support for "stateManageable" JSR77
return true;
|
public boolean | isStatisticsProvider()
return false;
|
public boolean | isUseMyFaces()
return useMyFaces;
|
public boolean | isUseNaming()Returns true if the internal naming support is used.
return (useNaming);
|
public boolean | listenerStart()Configure the set of instantiated application event listeners
for this Context. Return true if all listeners wre
initialized successfully, or false otherwise.
if (log.isDebugEnabled())
log.debug("Configuring application event listeners");
// Instantiate the required listeners
ClassLoader loader = getLoader().getClassLoader();
String listeners[] = findApplicationListeners();
Object results[] = new Object[listeners.length];
boolean ok = true;
for (int i = 0; i < results.length; i++) {
if (log.isDebugEnabled())
log.debug(" Configuring event listener class '" +
listeners[i] + "'");
try {
Class clazz = loader.loadClass(listeners[i]);
results[i] = clazz.newInstance();
// START PWC 1.2 6310695
fireContainerEvent(ContainerEvent.AFTER_LISTENER_INSTANTIATED,
results[i]);
// END PWC 1.2 6310695
} catch (Throwable t) {
getServletContext().log
(sm.getString("standardContext.applicationListener",
listeners[i]), t);
ok = false;
}
}
if (!ok) {
log.error(sm.getString("standardContext.applicationSkipped"));
return (false);
}
// Sort listeners in two arrays
ArrayList eventListeners = new ArrayList();
ArrayList lifecycleListeners = new ArrayList();
for (int i = 0; i < results.length; i++) {
if ((results[i] instanceof ServletContextAttributeListener)
|| (results[i] instanceof ServletRequestAttributeListener)
|| (results[i] instanceof ServletRequestListener)
|| (results[i] instanceof HttpSessionAttributeListener)) {
eventListeners.add(results[i]);
}
if ((results[i] instanceof ServletContextListener)
|| (results[i] instanceof HttpSessionListener)) {
lifecycleListeners.add(results[i]);
}
}
setApplicationEventListeners(eventListeners.toArray());
setApplicationLifecycleListeners(lifecycleListeners.toArray());
// Send application start events
if (log.isDebugEnabled())
log.debug("Sending application start events");
Object instances[] = getApplicationLifecycleListeners();
if (instances == null)
return (ok);
ServletContextEvent event =
new ServletContextEvent(getServletContext());
for (int i = 0; i < instances.length; i++) {
if (instances[i] == null)
continue;
if (!(instances[i] instanceof ServletContextListener))
continue;
ServletContextListener listener =
(ServletContextListener) instances[i];
try {
fireContainerEvent(ContainerEvent.BEFORE_CONTEXT_INITIALIZED,
listener);
listener.contextInitialized(event);
fireContainerEvent(ContainerEvent.AFTER_CONTEXT_INITIALIZED,
listener);
} catch (Throwable t) {
fireContainerEvent(ContainerEvent.AFTER_CONTEXT_INITIALIZED,
listener);
getServletContext().log
(sm.getString("standardContext.listenerStart",
instances[i].getClass().getName()), t);
ok = false;
}
}
return (ok);
|
public boolean | listenerStop()Send an application stop event to all interested listeners.
Return true if all events were sent successfully,
or false otherwise.
if (log.isDebugEnabled())
log.debug("Sending application stop events");
boolean ok = true;
Object listeners[] = getApplicationLifecycleListeners();
if (listeners == null)
return (ok);
ServletContextEvent event =
new ServletContextEvent(getServletContext());
for (int i = 0; i < listeners.length; i++) {
int j = (listeners.length - 1) - i;
if (listeners[j] == null)
continue;
if (!(listeners[j] instanceof ServletContextListener))
continue;
ServletContextListener listener =
(ServletContextListener) listeners[j];
try {
fireContainerEvent(ContainerEvent.BEFORE_CONTEXT_DESTROYED,
listener);
listener.contextDestroyed(event);
fireContainerEvent(ContainerEvent.AFTER_CONTEXT_DESTROYED,
listener);
} catch (Throwable t) {
fireContainerEvent(ContainerEvent.AFTER_CONTEXT_DESTROYED,
listener);
getServletContext().log
(sm.getString("standardContext.listenerStop",
listeners[j].getClass().getName()), t);
ok = false;
}
}
setApplicationEventListeners(null);
setApplicationLifecycleListeners(null);
return (ok);
|
public void | loadOnStartup(org.apache.catalina.Container[] children)Load and initialize all servlets marked "load on startup" in the
web application deployment descriptor.
// END SJSAS 6377790
// Collect "load on startup" servlets that need to be initialized
TreeMap map = new TreeMap();
for (int i = 0; i < children.length; i++) {
Wrapper wrapper = (Wrapper) children[i];
int loadOnStartup = wrapper.getLoadOnStartup();
if (loadOnStartup < 0)
continue;
if (loadOnStartup == 0) // Arbitrarily put them last
loadOnStartup = Integer.MAX_VALUE;
Integer key = Integer.valueOf(loadOnStartup);
ArrayList list = (ArrayList) map.get(key);
if (list == null) {
list = new ArrayList();
map.put(key, list);
}
list.add(wrapper);
}
// Load the collected "load on startup" servlets
Iterator keys = map.keySet().iterator();
while (keys.hasNext()) {
Integer key = (Integer) keys.next();
ArrayList list = (ArrayList) map.get(key);
Iterator wrappers = list.iterator();
while (wrappers.hasNext()) {
Wrapper wrapper = (Wrapper) wrappers.next();
try {
wrapper.load();
} catch (ServletException e) {
getServletContext().log
(sm.getString("standardWrapper.loadException",
getName()),
StandardWrapper.getRootCause(e));
// NOTE: load errors (including a servlet that throws
// UnavailableException from tht init() method) are NOT
// fatal to application startup
// START SJSAS 6377790
throw new LifecycleException(
StandardWrapper.getRootCause(e));
// END SJSAS 6377790
}
}
}
|
private void | postResources()Post a copy of our web application resources as a servlet context
attribute.
getServletContext().setAttribute
(Globals.RESOURCES_ATTR, getResources());
context.setAttributeReadOnly(Globals.RESOURCES_ATTR);
|
private void | postWelcomeFiles()Post a copy of our current list of welcome files as a servlet context
attribute, so that the default servlet can find them.
getServletContext().setAttribute("org.apache.catalina.WELCOME_FILES",
welcomeFiles);
context.setAttributeReadOnly("org.apache.catalina.WELCOME_FILES");
|
private void | postWorkDirectory()Set the appropriate context attribute for our work directory.
// Acquire (or calculate) the work directory path
String workDir = getWorkDir();
if (workDir == null) {
// Retrieve our parent (normally a host) name
String hostName = null;
String engineName = null;
String hostWorkDir = null;
Container parentHost = getParent();
if (parentHost != null) {
hostName = parentHost.getName();
if (parentHost instanceof StandardHost) {
hostWorkDir = ((StandardHost)parentHost).getWorkDir();
}
Container parentEngine = parentHost.getParent();
if (parentEngine != null) {
engineName = parentEngine.getName();
}
}
if ((hostName == null) || (hostName.length() < 1))
hostName = "_";
if ((engineName == null) || (engineName.length() < 1))
engineName = "_";
String temp = getPath();
if (temp.startsWith("/"))
temp = temp.substring(1);
temp = temp.replace('/", '_");
temp = temp.replace('\\", '_");
if (temp.length() < 1)
temp = "_";
if (hostWorkDir != null ) {
workDir = hostWorkDir + File.separator + temp;
} else {
workDir = "work" + File.separator + engineName +
File.separator + hostName + File.separator + temp;
}
setWorkDir(workDir);
}
// Create this directory if necessary
File dir = new File(workDir);
if (!dir.isAbsolute()) {
File catalinaHome = engineBase();
String catalinaHomePath = null;
try {
catalinaHomePath = catalinaHome.getCanonicalPath();
dir = new File(catalinaHomePath, workDir);
} catch (IOException e) {
}
}
dir.mkdirs();
// Set the appropriate servlet context attribute
getServletContext().setAttribute(Globals.WORK_DIR_ATTR, dir);
context.setAttributeReadOnly(Globals.WORK_DIR_ATTR);
|
public void | preDeregister()
if( started ) {
try {
stop();
} catch( Exception ex ) {
log.error(sm.getString("standardContext.stoppingContext",
this),
ex);
}
}
|
public javax.management.ObjectName | preRegister(javax.management.MBeanServer server, javax.management.ObjectName name)There are 2 cases:
1.The context is created and registered by internal APIS
2. The context is created by JMX, and it'll self-register.
if( oname != null ) {
//log.info( "Already registered " + oname + " " + name);
// Temporary - /admin uses the old names
return name;
}
ObjectName result=super.preRegister(server,name);
return name;
|
private void | preRegisterJMX()
try {
StandardHost host = (StandardHost) getParent();
if ((oname == null)
|| (oname.getKeyProperty("j2eeType") == null)) {
oname = createObjectName(host.getDomain(), host.getJmxName());
controller = oname;
}
} catch(Exception ex) {
log.info("Error registering ctx with jmx " + this + " " +
oname + " " + ex.toString(), ex );
}
|
private void | registerJMX()
try {
if (log.isDebugEnabled()) {
log.debug("Checking for " + oname );
}
if(! Registry.getRegistry(null, null).getMBeanServer().isRegistered(oname)) {
controller = oname;
Registry.getRegistry(null, null).registerComponent(this, oname, null);
// Send j2ee.object.created notification
if (this.getObjectName() != null) {
Notification notification = new Notification(
"j2ee.object.created",
this.getObjectName(),
sequenceNumber++);
broadcaster.sendNotification(notification);
}
}
Container children[] = findChildren();
for (int i=0; children!=null && i<children.length; i++) {
((StandardWrapper)children[i]).registerJMX( this );
}
} catch (Exception ex) {
log.info("Error registering wrapper with jmx " + this + " " +
oname + " " + ex.toString(), ex );
}
|
public synchronized 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. It does not handle changes to the web application
deployment descriptor. If that has occurred, you should stop this
Context and create (and start) a new Context instance instead.
// Validate our current component state
if (!started)
throw new IllegalStateException
(sm.getString("containerBase.notStarted", logName()));
// Make sure reloading is enabled
// if (!reloadable)
// throw new IllegalStateException
// (sm.getString("standardContext.notReloadable"));
log.info(sm.getString("standardContext.reloadingStarted"));
// Stop accepting requests temporarily
setPaused(true);
try {
stop();
} catch (LifecycleException e) {
log.error(sm.getString("standardContext.stoppingContext", this),
e);
}
try {
start();
} catch (LifecycleException e) {
log.error(sm.getString("standardContext.startingContext", this),
e);
}
setPaused(false);
|
public void | removeApplicationListener(java.lang.String listener)Remove the specified application listener class from the set of
listeners for this application.
synchronized (applicationListeners) {
// Make sure this welcome file is currently present
int n = -1;
for (int i = 0; i < applicationListeners.length; i++) {
if (applicationListeners[i].equals(listener)) {
n = i;
break;
}
}
if (n < 0)
return;
// Remove the specified constraint
int j = 0;
String results[] = new String[applicationListeners.length - 1];
for (int i = 0; i < applicationListeners.length; i++) {
if (i != n)
results[j++] = applicationListeners[i];
}
applicationListeners = results;
}
// Inform interested listeners
if (notifyContainerListeners) {
fireContainerEvent("removeApplicationListener", listener);
}
// FIXME - behavior if already started?
|
public void | removeApplicationParameter(java.lang.String name)Remove the application parameter with the specified name from
the set for this application.
synchronized (applicationParameters) {
// Make sure this parameter is currently present
int n = -1;
for (int i = 0; i < applicationParameters.length; i++) {
if (name.equals(applicationParameters[i].getName())) {
n = i;
break;
}
}
if (n < 0)
return;
// Remove the specified parameter
int j = 0;
ApplicationParameter results[] =
new ApplicationParameter[applicationParameters.length - 1];
for (int i = 0; i < applicationParameters.length; i++) {
if (i != n)
results[j++] = applicationParameters[i];
}
applicationParameters = results;
}
// Inform interested listeners
if (notifyContainerListeners) {
fireContainerEvent("removeApplicationParameter", name);
}
|
public void | removeChild(org.apache.catalina.Container child)Add a child Container, only if the proposed child is an implementation
of Wrapper.
if (!(child instanceof Wrapper))
throw new IllegalArgumentException
(sm.getString("standardContext.notWrapper"));
super.removeChild(child);
|
public void | removeConstraint(org.apache.catalina.deploy.SecurityConstraint constraint)Remove the specified security constraint from this web application.
synchronized (constraints) {
// Make sure this constraint is currently present
int n = -1;
for (int i = 0; i < constraints.length; i++) {
if (constraints[i].equals(constraint)) {
n = i;
break;
}
}
if (n < 0)
return;
// Remove the specified constraint
int j = 0;
SecurityConstraint results[] =
new SecurityConstraint[constraints.length - 1];
for (int i = 0; i < constraints.length; i++) {
if (i != n)
results[j++] = constraints[i];
}
constraints = results;
}
// Inform interested listeners
if (notifyContainerListeners) {
fireContainerEvent("removeConstraint", constraint);
}
|
public void | removeEjb(java.lang.String name)Remove any EJB resource reference with the specified name.
namingResources.removeEjb(name);
if (notifyContainerListeners) {
fireContainerEvent("removeEjb", name);
}
|
public void | removeEnvironment(java.lang.String name)Remove any environment entry with the specified name.
if (namingResources == null) {
return;
}
ContextEnvironment env = namingResources.findEnvironment(name);
if (env == null) {
throw new IllegalArgumentException
("Invalid environment name '" + name + "'");
}
namingResources.removeEnvironment(name);
if (notifyContainerListeners) {
fireContainerEvent("removeEnvironment", name);
}
|
public void | removeErrorPage(org.apache.catalina.deploy.ErrorPage errorPage)Remove the error page for the specified error code or
Java language exception, if it exists; otherwise, no action is taken.
String exceptionType = errorPage.getExceptionType();
if (exceptionType != null) {
synchronized (exceptionPages) {
exceptionPages.remove(exceptionType);
}
} else {
synchronized (statusPages) {
statusPages.remove(Integer.valueOf(errorPage.getErrorCode()));
}
}
if (notifyContainerListeners) {
fireContainerEvent("removeErrorPage", errorPage);
}
|
public void | removeFilterDef(org.apache.catalina.deploy.FilterDef filterDef)Remove the specified filter definition from this Context, if it exists;
otherwise, no action is taken.
synchronized (filterDefs) {
filterDefs.remove(filterDef.getFilterName());
}
if (notifyContainerListeners) {
fireContainerEvent("removeFilterDef", filterDef);
}
|
public void | removeFilterMap(org.apache.catalina.deploy.FilterMap filterMap)Remove a filter mapping from this Context.
synchronized (filterMaps) {
// Make sure this filter mapping is currently present
int n = -1;
for (int i = 0; i < filterMaps.length; i++) {
if (filterMaps[i] == filterMap) {
n = i;
break;
}
}
if (n < 0)
return;
// Remove the specified filter mapping
FilterMap results[] = new FilterMap[filterMaps.length - 1];
System.arraycopy(filterMaps, 0, results, 0, n);
System.arraycopy(filterMaps, n + 1, results, n,
(filterMaps.length - 1) - n);
filterMaps = results;
}
// Inform interested listeners
if (notifyContainerListeners) {
fireContainerEvent("removeFilterMap", filterMap);
}
|
public void | removeInstanceListener(java.lang.String listener)Remove a class name from the set of InstanceListener classes that
will be added to newly created Wrappers.
synchronized (instanceListeners) {
// Make sure this welcome file is currently present
int n = -1;
for (int i = 0; i < instanceListeners.length; i++) {
if (instanceListeners[i].equals(listener)) {
n = i;
break;
}
}
if (n < 0)
return;
// Remove the specified constraint
int j = 0;
String results[] = new String[instanceListeners.length - 1];
for (int i = 0; i < instanceListeners.length; i++) {
if (i != n)
results[j++] = instanceListeners[i];
}
instanceListeners = results;
}
// Inform interested listeners
if (notifyContainerListeners) {
fireContainerEvent("removeInstanceListener", listener);
}
|
public void | removeLocalEjb(java.lang.String name)Remove any local EJB resource reference with the specified name.
namingResources.removeLocalEjb(name);
if (notifyContainerListeners) {
fireContainerEvent("removeLocalEjb", name);
}
|
public void | removeMessageDestination(java.lang.String name)Remove any message destination with the specified name.
synchronized (messageDestinations) {
messageDestinations.remove(name);
}
if (notifyContainerListeners) {
fireContainerEvent("removeMessageDestination", name);
}
|
public void | removeMessageDestinationRef(java.lang.String name)Remove any message destination ref with the specified name.
namingResources.removeMessageDestinationRef(name);
if (notifyContainerListeners) {
fireContainerEvent("removeMessageDestinationRef", name);
}
|
public void | removeMimeMapping(java.lang.String extension)Remove the MIME mapping for the specified extension, if it exists;
otherwise, no action is taken.
synchronized (mimeMappings) {
mimeMappings.remove(extension);
}
if (notifyContainerListeners) {
fireContainerEvent("removeMimeMapping", extension);
}
|
public void | removeParameter(java.lang.String name)Remove the context initialization parameter with the specified
name, if it exists; otherwise, no action is taken.
synchronized (parameters) {
parameters.remove(name);
}
if (notifyContainerListeners) {
fireContainerEvent("removeParameter", name);
}
|
public void | removeResource(java.lang.String name)Remove any resource reference with the specified name.
name = URLDecoder.decode(name);
if (namingResources == null) {
return;
}
ContextResource resource = namingResources.findResource(name);
if (resource == null) {
throw new IllegalArgumentException
("Invalid resource name '" + name + "'");
}
namingResources.removeResource(name);
if (notifyContainerListeners) {
fireContainerEvent("removeResource", name);
}
|
public void | removeResourceEnvRef(java.lang.String name)Remove any resource environment reference with the specified name.
namingResources.removeResourceEnvRef(name);
if (notifyContainerListeners) {
fireContainerEvent("removeResourceEnvRef", name);
}
|
public void | removeResourceLink(java.lang.String name)Remove any resource link with the specified name.
name = URLDecoder.decode(name);
if (namingResources == null) {
return;
}
ContextResourceLink resource = namingResources.findResourceLink(name);
if (resource == null) {
throw new IllegalArgumentException
("Invalid resource name '" + name + "'");
}
namingResources.removeResourceLink(name);
if (notifyContainerListeners) {
fireContainerEvent("removeResourceLink", name);
}
|
public void | removeRoleMapping(java.lang.String role)Remove any security role reference for the specified name
synchronized (roleMappings) {
roleMappings.remove(role);
}
if (notifyContainerListeners) {
fireContainerEvent("removeRoleMapping", role);
}
|
public void | removeSecurityRole(java.lang.String role)Remove any security role with the specified name.
synchronized (securityRoles) {
// Make sure this security role is currently present
int n = -1;
for (int i = 0; i < securityRoles.length; i++) {
if (role.equals(securityRoles[i])) {
n = i;
break;
}
}
if (n < 0)
return;
// Remove the specified security role
int j = 0;
String results[] = new String[securityRoles.length - 1];
for (int i = 0; i < securityRoles.length; i++) {
if (i != n)
results[j++] = securityRoles[i];
}
securityRoles = results;
}
// Inform interested listeners
if (notifyContainerListeners) {
fireContainerEvent("removeSecurityRole", role);
}
|
public void | removeServletMapping(java.lang.String pattern)Remove any servlet mapping for the specified pattern, if it exists;
otherwise, no action is taken.
String name = null;
synchronized (servletMappings) {
name = (String) servletMappings.remove(pattern);
}
Wrapper wrapper = (Wrapper) findChild(name);
if( wrapper != null ) {
wrapper.removeMapping(pattern);
}
mapper.removeWrapper(pattern);
if (notifyContainerListeners) {
fireContainerEvent("removeServletMapping", pattern);
}
|
public void | removeTaglib(java.lang.String uri)Remove the tag library location forthe specified tag library URI.
synchronized (taglibs) {
taglibs.remove(uri);
}
if (notifyContainerListeners) {
fireContainerEvent("removeTaglib", uri);
}
|
public void | removeWelcomeFile(java.lang.String name)Remove the specified welcome file name from the list recognized
by this Context.
synchronized (welcomeFiles) {
// Make sure this welcome file is currently present
int n = -1;
for (int i = 0; i < welcomeFiles.length; i++) {
if (welcomeFiles[i].equals(name)) {
n = i;
break;
}
}
if (n < 0)
return;
// Remove the specified constraint
int j = 0;
String results[] = new String[welcomeFiles.length - 1];
for (int i = 0; i < welcomeFiles.length; i++) {
if (i != n)
results[j++] = welcomeFiles[i];
}
welcomeFiles = results;
}
// Inform interested listeners
postWelcomeFiles();
if (notifyContainerListeners) {
fireContainerEvent("removeWelcomeFile", name);
}
|
public void | removeWrapperLifecycle(java.lang.String listener)Remove a class name from the set of LifecycleListener classes that
will be added to newly created Wrappers.
synchronized (wrapperLifecycles) {
// Make sure this welcome file is currently present
int n = -1;
for (int i = 0; i < wrapperLifecycles.length; i++) {
if (wrapperLifecycles[i].equals(listener)) {
n = i;
break;
}
}
if (n < 0)
return;
// Remove the specified constraint
int j = 0;
String results[] = new String[wrapperLifecycles.length - 1];
for (int i = 0; i < wrapperLifecycles.length; i++) {
if (i != n)
results[j++] = wrapperLifecycles[i];
}
wrapperLifecycles = results;
}
// Inform interested listeners
if (notifyContainerListeners) {
fireContainerEvent("removeWrapperLifecycle", listener);
}
|
public void | removeWrapperListener(java.lang.String listener)Remove a class name from the set of ContainerListener classes that
will be added to newly created Wrappers.
synchronized (wrapperListeners) {
// Make sure this welcome file is currently present
int n = -1;
for (int i = 0; i < wrapperListeners.length; i++) {
if (wrapperListeners[i].equals(listener)) {
n = i;
break;
}
}
if (n < 0)
return;
// Remove the specified constraint
int j = 0;
String results[] = new String[wrapperListeners.length - 1];
for (int i = 0; i < wrapperListeners.length; i++) {
if (i != n)
results[j++] = wrapperListeners[i];
}
wrapperListeners = results;
}
// Inform interested listeners
if (notifyContainerListeners) {
fireContainerEvent("removeWrapperListener", listener);
}
|
private void | resetContext()
// Restore the original state ( pre reading web.xml in start )
// If you extend this - override this method and make sure to clean up
children=new HashMap();
startupTime = 0;
startTimeMillis = 0;
tldScanTime = 0;
// Bugzilla 32867
distributable = false;
applicationListeners = new String[0];
applicationEventListenersObjects = new Object[0];
applicationLifecycleListenersObjects = new Object[0];
if (log.isDebugEnabled()) {
log.debug("resetContext " + oname + " " + mserver);
}
|
public boolean | resourcesStart()Allocate resources, including proxy.
Return true if initialization was successfull,
or false otherwise.
boolean ok = true;
Hashtable env = new Hashtable();
if (getParent() != null)
env.put(ProxyDirContext.HOST, getParent().getName());
env.put(ProxyDirContext.CONTEXT, getName());
try {
ProxyDirContext proxyDirContext =
new ProxyDirContext(env, webappResources);
if (webappResources instanceof BaseDirContext) {
((BaseDirContext) webappResources).setDocBase(getBasePath(getDocBase()));
((BaseDirContext) webappResources).allocate();
}
// Register the cache in JMX
if (isCachingAllowed()) {
ObjectName resourcesName = new ObjectName(
this.getDomain() + ":type=Cache,host="
+ getHostname() + ",path="
+ (("".equals(encodedPath)) ? "/" : encodedPath));
Registry.getRegistry(null, null).registerComponent
(proxyDirContext.getCache(), resourcesName, null);
}
this.resources = proxyDirContext;
} catch (Throwable t) {
if(log.isDebugEnabled()) {
log.error(
sm.getString("standardContext.resourcesStart", getName()),
t);
} else {
log.error(sm.getString("standardContext.resourcesStart",
getName()));
log.error(t.getMessage());
}
ok = false;
}
return (ok);
|
public boolean | resourcesStop()Deallocate resources and destroy proxy.
boolean ok = true;
try {
if (resources != null) {
if (resources instanceof Lifecycle) {
((Lifecycle) resources).stop();
}
if (webappResources instanceof BaseDirContext) {
((BaseDirContext) webappResources).release();
}
// Unregister the cache in JMX
if (isCachingAllowed()) {
ObjectName resourcesName =
new ObjectName(this.getDomain()
+ ":type=Cache,host="
+ getHostname() + ",path="
+ (("".equals(getPath()))?"/"
:getPath()));
Registry.getRegistry(null, null).unregisterComponent(resourcesName);
}
}
} catch (Throwable t) {
log.error(sm.getString("standardContext.resourcesStop"), t);
ok = false;
}
this.resources = null;
return (ok);
|
public void | restrictedSetPipeline(org.apache.catalina.Pipeline pl)set a new pipeline (restricted to use by EE code)
HERCULES:add
pl.setBasic(new StandardContextValve());
pipeline = pl;
|
public void | setAllowLinking(boolean allowLinking)Set allow linking.
this.allowLinking = allowLinking;
|
public void | setAllowRelativeRedirect(boolean allowRelativeURLs)Set whether this context allows sendRedirect() to redirect
to a relative URL.
allowRelativeRedirect = allowRelativeURLs;
|
public void | setAltDDName(java.lang.String altDDName)Set an alternate Deployment Descriptor name.
this.altDDName = altDDName;
if (context != null) {
context.setAttribute(Globals.ALT_DD_ATTR,altDDName);
context.setAttributeReadOnly(Globals.ALT_DD_ATTR);
}
|
private synchronized void | setAlternateResources(AlternateDocBase alternateDocBase, javax.naming.directory.DirContext resources)
if (started) {
throw new IllegalStateException
(sm.getString("standardContext.resources.started"));
}
DirContext oldResources = alternateDocBase.getWebappResources();
if (oldResources == resources)
return;
if (resources instanceof BaseDirContext) {
((BaseDirContext) resources).setCached(isCachingAllowed());
((BaseDirContext) resources).setCacheTTL(getCacheTTL());
((BaseDirContext) resources).setCacheMaxSize(getCacheMaxSize());
}
if (resources instanceof FileDirContext) {
filesystemBased = true;
((FileDirContext) resources).setCaseSensitive(isCaseSensitive());
((FileDirContext) resources).setAllowLinking(isAllowLinking());
}
alternateDocBase.setWebappResources(resources);
// The proxied resources will be refreshed on start
alternateDocBase.setResources(null);
|
public void | setApplicationEventListeners(java.lang.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.
applicationEventListenersObjects = listeners;
|
public void | setApplicationLifecycleListeners(java.lang.Object[] listeners)Store the set of initialized application lifecycle listener objects,
in the order they were specified in the web application deployment
descriptor, for this application.
applicationLifecycleListenersObjects = listeners;
|
public void | setAuditors(org.apache.catalina.Auditor[] auditor)Set the Auditors associated with this context.
this.auditors=auditor;
|
public void | setAvailable(boolean available)Set the application available flag for this Context.
boolean oldAvailable = this.available;
this.available = available;
support.firePropertyChange("available",
Boolean.valueOf(oldAvailable),
Boolean.valueOf(this.available));
|
public void | setCacheMaxSize(int cacheMaxSize)Set the maximum size of the cache in KB.
this.cacheMaxSize = cacheMaxSize;
|
public void | setCacheTTL(int cacheTTL)Set cache TTL.
this.cacheTTL = cacheTTL;
|
public void | setCachingAllowed(boolean cachingAllowed)Set caching allowed flag.
this.cachingAllowed = cachingAllowed;
|
public void | setCaseSensitive(boolean caseSensitive)Set case sensitivity.
this.caseSensitive = caseSensitive;
|
public void | setCaseSensitiveMapping(boolean caseSensitiveMap)Set case sensitivity for filter and security constraint mappings.
caseSensitiveMapping = caseSensitiveMap;
|
public void | setCharsetMapper(org.apache.catalina.util.CharsetMapper mapper)Set the Locale to character set mapper for this Context.
CharsetMapper oldCharsetMapper = this.charsetMapper;
this.charsetMapper = mapper;
if( mapper != null )
this.charsetMapperClass= mapper.getClass().getName();
support.firePropertyChange("charsetMapper", oldCharsetMapper,
this.charsetMapper);
|
public void | setCharsetMapperClass(java.lang.String mapper)Set the Locale to character set mapper class for this Context.
String oldCharsetMapperClass = this.charsetMapperClass;
this.charsetMapperClass = mapper;
support.firePropertyChange("charsetMapperClass",
oldCharsetMapperClass,
this.charsetMapperClass);
|
public void | setCompilerClasspath(java.lang.String compilerClasspath)Set the compiler classpath.
this.compilerClasspath = compilerClasspath;
|
public void | setConfigFile(java.lang.String configFile)Set the path to a file to save this Context information.
this.configFile = configFile;
|
public void | setConfigured(boolean configured)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.
boolean oldConfigured = this.configured;
this.configured = configured;
support.firePropertyChange("configured",
Boolean.valueOf(oldConfigured),
Boolean.valueOf(this.configured));
|
public void | setCookies(boolean cookies)Set the "use cookies for session ids" flag.
boolean oldCookies = this.cookies;
this.cookies = cookies;
support.firePropertyChange("cookies",
Boolean.valueOf(oldCookies),
Boolean.valueOf(this.cookies));
|
public void | setCrossContext(boolean crossContext)Set the "allow crossing servlet contexts" flag.
boolean oldCrossContext = this.crossContext;
this.crossContext = crossContext;
support.firePropertyChange("crossContext",
Boolean.valueOf(oldCrossContext),
Boolean.valueOf(this.crossContext));
|
public void | setDefaultWebXml(java.lang.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 ).
XXX If a file is not found - we can attempt a getResource()
this.defaultWebXml = defaultWebXml;
|
public void | setDelegate(boolean delegate)Set the "follow standard delegation model" flag used to configure
our ClassLoader.
boolean oldDelegate = this.delegate;
this.delegate = delegate;
support.firePropertyChange("delegate", Boolean.valueOf(oldDelegate),
Boolean.valueOf(this.delegate));
|
public void | setDisplayName(java.lang.String displayName)Set the display name of this web application.
String oldDisplayName = this.displayName;
this.displayName = displayName;
support.firePropertyChange("displayName", oldDisplayName,
this.displayName);
|
public void | setDistributable(boolean distributable)Set the distributable flag for this web application.
boolean oldDistributable = this.distributable;
this.distributable = distributable;
support.firePropertyChange("distributable",
Boolean.valueOf(oldDistributable),
Boolean.valueOf(this.distributable));
// Bugzilla 32866
if(getManager() != null) {
if(log.isDebugEnabled()) {
log.debug("Propagating distributable=" + distributable
+ " to manager");
}
getManager().setDistributable(distributable);
}
|
public void | setDocBase(java.lang.String docBase)Set the document root for this Context. This can be an absolute
pathname, a relative pathname, or a URL.
this.docBase = docBase;
|
public void | setEngineName(java.lang.String engineName)
this.engineName = engineName;
|
public void | setJ2EEApplication(java.lang.String j2EEApplication)
this.j2EEApplication = j2EEApplication;
|
public void | setJ2EEServer(java.lang.String j2EEServer)
this.j2EEServer = j2EEServer;
|
public java.lang.String[] | setJavaVMs(java.lang.String[] javaVMs)
return this.javaVMs = javaVMs;
|
public void | setLazy(boolean lazy)
this.lazy = lazy;
|
public void | setLoginConfig(org.apache.catalina.deploy.LoginConfig config)Set the login configuration descriptor for this web application.
// Validate the incoming property value
if (config == null)
throw new IllegalArgumentException
(sm.getString("standardContext.loginConfig.required"));
String loginPage = config.getLoginPage();
if ((loginPage != null) && !loginPage.startsWith("/")) {
if (isServlet22()) {
if (log.isDebugEnabled()) {
log.debug(sm.getString(
"standardContext.loginConfig.loginWarning",
loginPage));
}
config.setLoginPage("/" + loginPage);
} else {
throw new IllegalArgumentException
(sm.getString("standardContext.loginConfig.loginPage",
loginPage));
}
}
String errorPage = config.getErrorPage();
if ((errorPage != null) && !errorPage.startsWith("/")) {
if (isServlet22()) {
if (log.isDebugEnabled()) {
log.debug(sm.getString(
"standardContext.loginConfig.errorWarning",
errorPage));
}
config.setErrorPage("/" + errorPage);
} else {
throw new IllegalArgumentException
(sm.getString("standardContext.loginConfig.errorPage",
errorPage));
}
}
// Process the property setting change
LoginConfig oldLoginConfig = this.loginConfig;
this.loginConfig = config;
support.firePropertyChange("loginConfig",
oldLoginConfig, this.loginConfig);
|
public void | setManagerChecksFrequency(int managerChecksFrequency)Set the manager checks frequency.
if (managerChecksFrequency <= 0) {
return;
}
int oldManagerChecksFrequency = this.managerChecksFrequency;
this.managerChecksFrequency = managerChecksFrequency;
support.firePropertyChange("managerChecksFrequency",
Integer.valueOf(oldManagerChecksFrequency),
Integer.valueOf(this.managerChecksFrequency));
|
public void | setName(java.lang.String name)
super.setName( name );
encodedPath = urlEncoder.encode(name);
|
public void | setNamingResources(org.apache.catalina.deploy.NamingResources namingResources)Set the naming resources for this web application.
// Process the property setting change
NamingResources oldNamingResources = this.namingResources;
this.namingResources = namingResources;
support.firePropertyChange("namingResources",
oldNamingResources, this.namingResources);
|
public void | setOverride(boolean override)Set the DefaultContext override flag for this web application.
boolean oldOverride = this.override;
this.override = override;
support.firePropertyChange("override",
Boolean.valueOf(oldOverride),
Boolean.valueOf(this.override));
|
public void | setPath(java.lang.String path)Set the context path for this Context.
IMPLEMENTATION NOTE: The context path is used as the "name" of
a Context, because it must be unique.
// XXX Use host in name
/* GlassFish Issue 2339
setName(RequestUtil.URLDecode(path));
*/
// START GlassFish Issue 2339
setName(RequestUtil.URLDecode(path, "UTF-8"));
// END GlassFish Issue 2339
|
private void | setPaused(boolean paused)Set the request processing paused flag for this Context.
this.paused = paused;
|
public void | setPrivileged(boolean privileged)Set the privileged flag for this web application.
boolean oldPrivileged = this.privileged;
this.privileged = privileged;
support.firePropertyChange("privileged",
Boolean.valueOf(oldPrivileged),
Boolean.valueOf(this.privileged));
|
public void | setPublicId(java.lang.String publicId)Set the public identifier of the deployment descriptor DTD that is
currently being parsed.
if (log.isTraceEnabled())
log.trace("Setting deployment descriptor public ID to '" +
publicId + "'");
String oldPublicId = this.publicId;
this.publicId = publicId;
support.firePropertyChange("publicId", oldPublicId, publicId);
|
public void | setReload(boolean isReload)
this.isReload = isReload;
|
public void | setReloadable(boolean reloadable)Set the reloadable flag for this web application.
boolean oldReloadable = this.reloadable;
this.reloadable = reloadable;
support.firePropertyChange("reloadable",
Boolean.valueOf(oldReloadable),
Boolean.valueOf(this.reloadable));
|
public void | setReplaceWelcomeFiles(boolean replaceWelcomeFiles)Set the "replace welcome files" property.
boolean oldReplaceWelcomeFiles = this.replaceWelcomeFiles;
this.replaceWelcomeFiles = replaceWelcomeFiles;
support.firePropertyChange("replaceWelcomeFiles",
Boolean.valueOf(oldReplaceWelcomeFiles),
Boolean.valueOf(this.replaceWelcomeFiles));
|
public synchronized void | setResources(javax.naming.directory.DirContext resources)Set the resources DirContext object with which this Container is
associated.
if (started) {
throw new IllegalStateException
(sm.getString("standardContext.resources.started"));
}
DirContext oldResources = this.webappResources;
if (oldResources == resources)
return;
if (resources instanceof BaseDirContext) {
((BaseDirContext) resources).setCached(isCachingAllowed());
((BaseDirContext) resources).setCacheTTL(getCacheTTL());
((BaseDirContext) resources).setCacheMaxSize(getCacheMaxSize());
}
if (resources instanceof FileDirContext) {
filesystemBased = true;
((FileDirContext) resources).setCaseSensitive(isCaseSensitive());
((FileDirContext) resources).setAllowLinking(isAllowLinking());
}
this.webappResources = resources;
// The proxied resources will be refreshed on start
this.resources = null;
support.firePropertyChange("resources", oldResources,
this.webappResources);
|
public void | setReuseSessionID(boolean reuse)Set the "reuse session IDs when creating sessions" flag
reuseSessionID = reuse;
|
public void | setSaveConfig(boolean saveConfig)Set save config flag.
this.saveConfig = saveConfig;
|
public void | setSecurePagesWithPragma(boolean securePagesWithPragma)Sets the securePagesWithPragma property of this Context.
Setting this property to true will result in Pragma and Cache-Control
headers with a value of "No-cache" if proxy caching has been disabled.
Setting this property to false will not add any Pragma header,
but will set the Cache-Control header to "private".
boolean oldSecurePagesWithPragma = this.securePagesWithPragma;
this.securePagesWithPragma = securePagesWithPragma;
support.firePropertyChange("securePagesWithPragma",
Boolean.valueOf(oldSecurePagesWithPragma),
Boolean.valueOf(this.securePagesWithPragma));
|
public java.lang.String | setServer(java.lang.String server)
return this.server=server;
|
public void | setSessionTimeout(int timeout)Set the default session timeout (in minutes) for this
web application.
int oldSessionTimeout = this.sessionTimeout;
/*
* SRV.13.4 ("Deployment Descriptor"):
* If the timeout is 0 or less, the container ensures the default
* behaviour of sessions is never to time out.
*/
this.sessionTimeout = (timeout == 0) ? -1 : timeout;
support.firePropertyChange("sessionTimeout",
Integer.valueOf(oldSessionTimeout),
Integer.valueOf(this.sessionTimeout));
//HERCULES:add
sessionTimeoutOveridden = true;
//end HERCULES:add
|
public void | setStartupTime(long startupTime)
this.startupTime = startupTime;
|
public void | setSwallowOutput(boolean swallowOutput)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.
boolean oldSwallowOutput = this.swallowOutput;
this.swallowOutput = swallowOutput;
support.firePropertyChange("swallowOutput",
Boolean.valueOf(oldSwallowOutput),
Boolean.valueOf(this.swallowOutput));
|
public void | setTldNamespaceAware(boolean tldNamespaceAware)Set the namespace aware feature of the XML parser used when
parsing xml instances.
this.tldNamespaceAware= tldNamespaceAware;
|
public void | setTldScanTime(long tldScanTime)
this.tldScanTime = tldScanTime;
|
public void | setTldValidation(boolean tldValidation)Set the validation feature of the XML parser used when
parsing tlds files.
this.tldValidation = tldValidation;
|
public void | setUnpackWAR(boolean unpackWAR)Unpack WAR flag mutator.
this.unpackWAR = unpackWAR;
|
public void | setUseMyFaces(boolean useMyFaces)
this.useMyFaces = useMyFaces;
|
public void | setUseNaming(boolean useNaming)Enables or disables naming.
this.useNaming = useNaming;
|
public void | setWorkDir(java.lang.String workDir)Set the work directory for this Context.
this.workDir = workDir;
if (started)
postWorkDirectory();
|
public void | setWrapperClass(java.lang.String wrapperClassName)Set the Java class name of the Wrapper implementation used
for servlets registered in this Context.
this.wrapperClassName = wrapperClassName;
try {
wrapperClass = Class.forName(wrapperClassName);
if (!StandardWrapper.class.isAssignableFrom(wrapperClass)) {
throw new IllegalArgumentException(
sm.getString("standardContext.invalidWrapperClass",
wrapperClassName));
}
} catch (ClassNotFoundException cnfe) {
throw new IllegalArgumentException(cnfe);
}
|
public void | setXmlNamespaceAware(boolean webXmlNamespaceAware)Set the namespace aware feature of the XML parser used when
parsing xml instances.
this.webXmlNamespaceAware= webXmlNamespaceAware;
|
public void | setXmlValidation(boolean webXmlValidation)Set the validation feature of the XML parser used when
parsing xml instances.
this.webXmlValidation = webXmlValidation;
|
public synchronized void | start()Start this Context component.
//if (lazy ) return;
if (started) {
if (log.isInfoEnabled()) {
log.info(sm.getString("containerBase.alreadyStarted",
logName()));
}
return;
}
long startupTimeStart = System.currentTimeMillis();
if( !initialized ) {
try {
init();
} catch( Exception ex ) {
throw new LifecycleException("Error initializaing ", ex);
}
}
if (log.isDebugEnabled()) {
log.debug("Starting " + ("".equals(getName()) ? "ROOT" : getName()));
}
// Set JMX object name for proper pipeline registration
preRegisterJMX();
if ((oname != null) &&
(Registry.getRegistry().getMBeanServer().isRegistered(oname))) {
// As things depend on the JMX registration, the context
// must be reregistered again once properly initialized
Registry.getRegistry(null, null).unregisterComponent(oname);
}
// Notify our interested LifecycleListeners
lifecycle.fireLifecycleEvent(BEFORE_START_EVENT, null);
setAvailable(false);
setConfigured(false);
boolean ok = true;
// Set config file name
File configBase = getConfigBase();
if (configBase != null && saveConfig) {
if (getConfigFile() == null) {
File file = new File(configBase, getDefaultConfigFile());
setConfigFile(file.getPath());
// If the docbase is outside the appBase, we should save our
// config
try {
File appBaseFile = new File(getAppBase());
if (!appBaseFile.isAbsolute()) {
appBaseFile = new File(engineBase(), getAppBase());
}
String appBase = appBaseFile.getCanonicalPath();
String basePath =
(new File(getBasePath(getDocBase()))).getCanonicalPath();
if (!basePath.startsWith(appBase)) {
Server server = ServerFactory.getServer();
((StandardServer) server).storeContext(this);
}
} catch (Exception e) {
log.warn("Error storing config file", e);
}
} else {
try {
String canConfigFile =
(new File(getConfigFile())).getCanonicalPath();
if (!canConfigFile.startsWith
(configBase.getCanonicalPath())) {
File file =
new File(configBase, getDefaultConfigFile());
if (copy(new File(canConfigFile), file)) {
setConfigFile(file.getPath());
}
}
} catch (Exception e) {
log.warn("Error setting config file", e);
}
}
}
// Install DefaultContext configuration
if (!getOverride()) {
Container host = getParent();
if (host instanceof StandardHost) {
((StandardHost)host).installDefaultContext(this);
Container engine = host.getParent();
if( engine instanceof StandardEngine ) {
((StandardEngine)engine).installDefaultContext(this);
}
}
}
// Add missing components as necessary
if (webappResources == null) { // (1) Required by Loader
if (log.isDebugEnabled())
log.debug("Configuring default Resources");
try {
if ((docBase != null) && (docBase.endsWith(".war")) &&
(!(new File(docBase).isDirectory())))
setResources(new WARDirContext());
else
setResources(new FileDirContext());
} catch (IllegalArgumentException e) {
log.error(sm.getString("standardContext.resourcesInit"), e);
ok = false;
}
}
if (ok) {
if (!resourcesStart()) {
ok = false;
}
}
// Add alternate resources
if (alternateDocBases != null && alternateDocBases.size() > 0) {
for (int i=0; i<alternateDocBases.size(); i++) {
AlternateDocBase alternateDocBase = alternateDocBases.get(i);
String docBase = alternateDocBase.getDocBase();
if (log.isDebugEnabled()) {
log.debug("Configuring alternate resources");
}
try {
if (docBase != null
&& docBase.endsWith(".war")) {
setAlternateResources(alternateDocBase,
new WARDirContext());
} else {
setAlternateResources(alternateDocBase,
new FileDirContext());
}
} catch (IllegalArgumentException e) {
log.error(sm.getString("standardContext.resourcesInit"),
e);
ok = false;
}
}
if (ok) {
if (!alternateResourcesStart()) {
ok = false;
}
}
}
// Look for a realm - that may have been configured earlier.
// If the realm is added after context - it'll set itself.
if( realm == null ) {
ObjectName realmName=null;
try {
realmName=new ObjectName( getEngineName() + ":type=Realm,host="
+ getHostname() + ",path=" + getPath());
if( mserver.isRegistered(realmName ) ) {
mserver.invoke(realmName, "init",
new Object[] {},
new String[] {}
);
}
} catch( Throwable t ) {
if (log.isDebugEnabled()) {
log.debug("No realm for this host " + realmName);
}
}
}
if (getLoader() == null) {
createLoader();
}
// Initialize character set mapper
getCharsetMapper();
// Post work directory
postWorkDirectory();
// Validate required extensions
boolean dependencyCheck = true;
try {
dependencyCheck = ExtensionValidator.validateApplication
(getResources(), this);
} catch (IOException ioe) {
log.error(sm.getString("standardContext.dependencyCheck", this),
ioe);
dependencyCheck = false;
}
if (!dependencyCheck) {
// do not make application available if depency check fails
ok = false;
}
// Reading the "catalina.useNaming" environment variable
String useNamingProperty = System.getProperty("catalina.useNaming");
if ((useNamingProperty != null)
&& (useNamingProperty.equals("false"))) {
useNaming = false;
}
if (ok && isUseNaming()) {
if (namingContextListener == null) {
namingContextListener = new NamingContextListener();
namingContextListener.setDebug(getDebug());
namingContextListener.setName(getNamingContextName());
addLifecycleListener(namingContextListener);
}
}
// Binding thread
// START OF SJSAS 8.1 6174179
//ClassLoader oldCCL = bindThread();
ClassLoader oldCCL = null;
// END OF SJSAS 8.1 6174179
// Standard container startup
if (log.isTraceEnabled())
log.trace("Processing standard container startup");
boolean mainOk = false;
try {
if (ok) {
started = true;
// Start our subordinate components, if any
if ((loader != null) && (loader instanceof Lifecycle))
((Lifecycle) loader).start();
if ((logger != null) && (logger instanceof Lifecycle))
((Lifecycle) logger).start();
// Unbinding thread
// START OF SJSAS 8.1 6174179
//unbindThread(oldCCL);
// END OF SJSAS 8.1 6174179
// Binding thread
oldCCL = bindThread();
if ((cluster != null) && (cluster instanceof Lifecycle))
((Lifecycle) cluster).start();
if ((realm != null) && (realm instanceof Lifecycle))
((Lifecycle) realm).start();
if ((resources != null) && (resources instanceof Lifecycle))
((Lifecycle) resources).start();
// Start our child containers, if any
Container children[] = findChildren();
for (int i = 0; i < children.length; i++) {
if (children[i] instanceof Lifecycle)
((Lifecycle) children[i]).start();
}
// Start the Valves in our pipeline (including the basic),
// if any
if (pipeline instanceof Lifecycle)
((Lifecycle) pipeline).start();
// START SJSAS 8.1 5049111
// Notify our interested LifecycleListeners
lifecycle.fireLifecycleEvent(START_EVENT, null);
if (TldConfig.getScanParentTldListener() == false)
isJsfApplication = isJsfServletDefined();
// END SJSAS 8.1 5049111
// Read tldListeners. XXX Option to disable
TldConfig tldConfig = new TldConfig();
tldConfig.setContext(this);
// (1) check if the attribute has been defined
// on the context element.
tldConfig.setTldValidation(tldValidation);
tldConfig.setTldNamespaceAware(tldNamespaceAware);
// (2) if the attribute wasn't defined on the context
// try the host.
if (!tldValidation){
tldConfig.setTldValidation
(((StandardHost) getParent()).getXmlValidation());
}
try {
tldConfig.execute();
} catch (Exception ex) {
log.error(sm.getString("standardContext.tldConfig"), ex);
//ok=false;
}
// START SJSAS 8.1 5049111
// Notify our interested LifecycleListeners
// lifecycle.fireLifecycleEvent(START_EVENT, null);
// END SJSAS 8.1 504911
// Start manager
if ((manager != null) && (manager instanceof Lifecycle)) {
((Lifecycle) getManager()).start();
}
// Start ContainerBackgroundProcessor thread
super.threadStart();
mainOk = true;
}
} finally {
// Unbinding thread
unbindThread(oldCCL);
if (!mainOk) {
// An exception occurred
// Register with JMX anyway, to allow management
registerJMX();
}
}
if (!getConfigured()) {
ok = false;
}
// We put the resources into the servlet context
if (ok) {
getServletContext().setAttribute
(Globals.RESOURCES_ATTR, getResources());
context.setAttributeReadOnly(Globals.RESOURCES_ATTR);
getServletContext().setAttribute
(Globals.ALTERNATE_RESOURCES_ATTR, getAlternateDocBases());
context.setAttributeReadOnly(Globals.ALTERNATE_RESOURCES_ATTR);
}
// Initialize associated mapper
mapper.setContext(getPath(), welcomeFiles, resources);
// Binding thread
oldCCL = bindThread();
try{
// Create context attributes that will be required
if (ok) {
if (log.isDebugEnabled())
log.debug("Posting standard context attributes");
postWelcomeFiles();
}
if (ok) {
// Notify our interested LifecycleListeners
lifecycle.fireLifecycleEvent(AFTER_START_EVENT, null);
}
// Configure and call application event listeners and filters
if (ok) {
if (!listenerStart()) {
ok = false;
}
}
if (ok) {
if (!filterStart()) {
ok = false;
}
}
// Load and initialize all "load on startup" servlets
if (ok) {
loadOnStartup(findChildren());
}
} finally {
// Unbinding thread
unbindThread(oldCCL);
}
// Set available status depending upon startup success
if (ok) {
if (log.isTraceEnabled())
log.trace("Starting completed");
setAvailable(true);
} else {
log.error(sm.getString("standardContext.startFailed", getName()));
try {
stop();
} catch (Throwable t) {
log.error(sm.getString("standardContext.startCleanup"), t);
}
setAvailable(false);
}
// JMX registration
registerJMX();
startTimeMillis = System.currentTimeMillis();
startupTime = startTimeMillis - startupTimeStart;
// Send j2ee.state.running notification
if (ok && (this.getObjectName() != null)) {
Notification notification =
new Notification("j2ee.state.running", this.getObjectName(),
sequenceNumber++);
broadcaster.sendNotification(notification);
}
// Close all JARs right away to avoid always opening a peak number
// of files on startup
if (getLoader() instanceof WebappLoader) {
((WebappLoader) getLoader()).closeJARs(true);
}
// Reinitializing if something went wrong
if (!ok && started) {
stop();
}
//cacheContext();
|
public void | startRecursive()
// nothing to start recursive, the servlets will be started by load-on-startup
start();
|
public synchronized void | stop()Stop this Context component.
// Validate and update our current component state
if (!started) {
if(log.isInfoEnabled())
log.info(sm.getString("containerBase.notStarted", logName()));
return;
}
// Notify our interested LifecycleListeners
lifecycle.fireLifecycleEvent(BEFORE_STOP_EVENT, null);
// Send j2ee.state.stopping notification
if (this.getObjectName() != null) {
Notification notification =
new Notification("j2ee.state.stopping", this.getObjectName(),
sequenceNumber++);
broadcaster.sendNotification(notification);
}
// Mark this application as unavailable while we shut down
setAvailable(false);
// Binding thread
ClassLoader oldCCL = bindThread();
try{
// Stop our filters
filterStop();
// Stop ContainerBackgroundProcessor thread
super.threadStop();
if ((manager != null) && (manager instanceof Lifecycle)) {
((Lifecycle) manager).stop();
}
// Finalize our character set mapper
setCharsetMapper(null);
// Normal container shutdown processing
if (log.isDebugEnabled())
log.debug("Processing standard container shutdown");
// Notify our interested LifecycleListeners
lifecycle.fireLifecycleEvent(STOP_EVENT, null);
started = false;
// Stop the Valves in our pipeline (including the basic), if any
if (pipeline instanceof Lifecycle) {
((Lifecycle) pipeline).stop();
}
// Stop our child containers, if any
Container[] children = findChildren();
for (int i = 0; i < children.length; i++) {
if (children[i] instanceof Lifecycle)
((Lifecycle) children[i]).stop();
}
// Clear all application-originated servlet context attributes
if (context != null)
context.clearAttributes();
// Stop our application listeners
listenerStop();
// Stop resources
resourcesStop();
alternateResourcesStop();
if ((realm != null) && (realm instanceof Lifecycle)) {
((Lifecycle) realm).stop();
}
if ((cluster != null) && (cluster instanceof Lifecycle)) {
((Lifecycle) cluster).stop();
}
if ((logger != null) && (logger instanceof Lifecycle)) {
((Lifecycle) logger).stop();
}
/* SJSAS 6347606
if ((loader != null) && (loader instanceof Lifecycle)) {
((Lifecycle) loader).stop();
}
*/
} finally {
// Unbinding thread
unbindThread(oldCCL);
// START SJSAS 6347606
/*
* Delay the stopping of the webapp classloader until this point,
* because unbindThread() calls the security-checked
* Thread.setContextClassLoader(), which may ask the current thread
* context classloader (i.e., the webapp classloader) to load
* Principal classes specified in the security policy file
*/
if ((loader != null) && (loader instanceof Lifecycle)) {
((Lifecycle) loader).stop();
}
// END SJSAS 6347606
}
// Send j2ee.state.stopped notification
if (this.getObjectName() != null) {
Notification notification =
new Notification("j2ee.state.stopped", this.getObjectName(),
sequenceNumber++);
broadcaster.sendNotification(notification);
}
// Reset application context
context = null;
// This object will no longer be visible or used.
try {
resetContext();
} catch( Exception ex ) {
log.error(sm.getString("standardContext.reset", this), ex);
}
// Notify our interested LifecycleListeners
lifecycle.fireLifecycleEvent(AFTER_STOP_EVENT, null);
if (log.isDebugEnabled())
log.debug("Stopping complete");
|
public java.lang.String | toString()Return a String representation of this component.
StringBuffer sb = new StringBuffer();
if (getParent() != null) {
sb.append(getParent().toString());
sb.append(".");
}
sb.append("StandardContext[");
sb.append(getName());
sb.append("]");
return (sb.toString());
|
private void | unbindThread(java.lang.ClassLoader oldContextClassLoader)Unbind thread.
Thread.currentThread().setContextClassLoader(oldContextClassLoader);
if (isUseNaming()) {
ContextBindings.unbindThread(this, this);
}
|
private boolean | validateURLPattern(java.lang.String urlPattern)Validate the syntax of a proposed <url-pattern>
for conformance with specification requirements.
if (urlPattern == null)
return (false);
if (urlPattern.indexOf('\n") >= 0 || urlPattern.indexOf('\r") >= 0) {
log.warn(sm.getString("standardContext.crlfinurl", urlPattern));
}
if (urlPattern.startsWith("*.")) {
if (urlPattern.indexOf('/") < 0)
return (true);
else
return (false);
}
if ( (urlPattern.startsWith("/")) &&
(urlPattern.indexOf("*.") < 0))
return (true);
else
return (false);
|