| Method from org.apache.catalina.core.StandardContext Detail: |
public void addApplicationListener(String listener) {
synchronized (applicationListeners) {
String results[] =new String[applicationListeners.length + 1];
for (int i = 0; i < applicationListeners.length; i++) {
if (listener.equals(applicationListeners[i])) {
log.info(sm.getString(
"standardContext.duplicateListener",listener));
return;
}
results[i] = applicationListeners[i];
}
results[applicationListeners.length] = listener;
applicationListeners = results;
}
fireContainerEvent("addApplicationListener", listener);
// FIXME - add instance if already started?
}
Add a new Listener class name to the set of Listeners
configured for this application. |
public void addApplicationParameter(ApplicationParameter parameter) {
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;
}
fireContainerEvent("addApplicationParameter", parameter);
}
Add a new application parameter for this application. |
public void addChild(Container child) {
// 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);
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());
}
}
}
Add a child Container, only if the proposed child is an implementation
of Wrapper. |
public void addConstraint(SecurityConstraint constraint) {
// 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;
}
}
Add a security constraint to the set for this web application. |
public void addErrorPage(ErrorPage errorPage) {
// 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) {
if (errorPage.getErrorCode() == 200) {
this.okErrorPage = errorPage;
}
statusPages.put(new Integer(errorPage.getErrorCode()),
errorPage);
}
}
fireContainerEvent("addErrorPage", errorPage);
}
Add an error page for the specified error or Java exception. |
public void addFilterDef(FilterDef filterDef) {
synchronized (filterDefs) {
filterDefs.put(filterDef.getFilterName(), filterDef);
}
fireContainerEvent("addFilterDef", filterDef);
}
Add a filter definition to this Context. |
public void addFilterMap(FilterMap filterMap) {
// Validate the proposed filter mapping
String filterName = filterMap.getFilterName();
String[] servletNames = filterMap.getServletNames();
String[] urlPatterns = filterMap.getURLPatterns();
if (findFilterDef(filterName) == null)
throw new IllegalArgumentException
(sm.getString("standardContext.filterMap.name", filterName));
// < = Servlet API 2.4
// if ((servletNames.length == 0) && (urlPatterns.length == 0))
// Servlet API 2.5 (FIX 43338)
// SRV 6.2.5 says supporting for '*' as the servlet-name in filter-mapping.
if (!filterMap.getMatchAllServletNames() &&
!filterMap.getMatchAllUrlPatterns() &&
(servletNames.length == 0) && (urlPatterns.length == 0))
throw new IllegalArgumentException
(sm.getString("standardContext.filterMap.either"));
// FIXME: Older spec revisions may still check this
/*
if ((servletNames.length != 0) && (urlPatterns.length != 0))
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
for (int i = 0; i < urlPatterns.length; i++) {
if (!validateURLPattern(urlPatterns[i])) {
throw new IllegalArgumentException
(sm.getString("standardContext.filterMap.pattern",
urlPatterns[i]));
}
}
// 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;
}
fireContainerEvent("addFilterMap", filterMap);
}
Add a filter mapping to this Context. |
public void addInstanceListener(String listener) {
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;
}
fireContainerEvent("addInstanceListener", listener);
}
Add the classname of an InstanceListener to be added to each
Wrapper appended to this Context. |
public void addJspMapping(String pattern) {
String servletName = findServletMapping("*.jsp");
if (servletName == null) {
servletName = "jsp";
}
if( findChild(servletName) != null) {
addServletMapping(pattern, servletName, true);
} else {
if(log.isDebugEnabled())
log.debug("Skiping " + pattern + " , no servlet " + servletName);
}
}
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. |
public void addLocaleEncodingMappingParameter(String locale,
String encoding) {
getCharsetMapper().addCharsetMappingFromDeploymentDescriptor(locale, encoding);
}
Add a Locale Encoding Mapping (see Sec 5.4 of Servlet spec 2.4) |
public void addMessageDestination(MessageDestination md) {
synchronized (messageDestinations) {
messageDestinations.put(md.getName(), md);
}
fireContainerEvent("addMessageDestination", md.getName());
}
Add a message destination for this web application. |
public void addMessageDestinationRef(MessageDestinationRef mdr) {
namingResources.addMessageDestinationRef(mdr);
fireContainerEvent("addMessageDestinationRef", mdr.getName());
}
Add a message destination reference for this web application. |
public void addMimeMapping(String extension,
String mimeType) {
synchronized (mimeMappings) {
mimeMappings.put(extension, mimeType);
}
fireContainerEvent("addMimeMapping", extension);
}
Add a new MIME mapping, replacing any existing mapping for
the specified extension. |
public void addNotificationListener(NotificationListener listener,
NotificationFilter filter,
Object object) throws IllegalArgumentException {
broadcaster.addNotificationListener(listener,filter,object);
}
|
public void addParameter(String name,
String value) {
// 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);
}
fireContainerEvent("addParameter", name);
}
Add a new context initialization parameter. |
public void addRoleMapping(String role,
String link) {
synchronized (roleMappings) {
roleMappings.put(role, link);
}
fireContainerEvent("addRoleMapping", role);
}
Add a security role reference for this web application. |
public void addSecurityRole(String role) {
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;
}
fireContainerEvent("addSecurityRole", role);
}
Add a new security role for this web application. |
public void addServletMapping(String pattern,
String name) {
addServletMapping(pattern, name, false);
}
Add a new servlet mapping, replacing any existing mapping for
the specified pattern. |
public void addServletMapping(String pattern,
String name,
boolean jspWildCard) {
// 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);
fireContainerEvent("addServletMapping", pattern);
}
Add a new servlet mapping, replacing any existing mapping for
the specified pattern. |
public void addTaglib(String uri,
String location) {
synchronized (taglibs) {
taglibs.put(uri, location);
}
fireContainerEvent("addTaglib", uri);
}
Add a JSP tag library for the specified URI. |
public void addWatchedResource(String name) {
synchronized (watchedResources) {
String results[] = new String[watchedResources.length + 1];
for (int i = 0; i < watchedResources.length; i++)
results[i] = watchedResources[i];
results[watchedResources.length] = name;
watchedResources = results;
}
fireContainerEvent("addWatchedResource", name);
}
Add a new watched resource to the set recognized by this Context. |
public void addWelcomeFile(String name) {
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();
fireContainerEvent("addWelcomeFile", name);
}
Add a new welcome file to the set recognized by this Context. |
public void addWrapperLifecycle(String listener) {
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;
}
fireContainerEvent("addWrapperLifecycle", listener);
}
Add the classname of a LifecycleListener to be added to each
Wrapper appended to this Context. |
public void addWrapperListener(String listener) {
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;
}
fireContainerEvent("addWrapperListener", listener);
}
Add the classname of a ContainerListener to be added to each
Wrapper appended to this Context. |
protected String adjustURLPattern(String urlPattern) {
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);
}
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. |
public void create() throws Exception {
init();
}
|
public ObjectName createObjectName(String hostDomain,
ObjectName parentName) throws MalformedObjectNameException {
String onameStr;
StandardHost hst=(StandardHost)getParent();
String pathName=getName();
String hostName=getParent().getName();
String name= "//" + ((hostName==null)? "DEFAULT" : hostName) +
(("".equals(pathName))?"/":pathName );
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 Wrapper createWrapper() {
Wrapper wrapper = null;
if (wrapperClass != null) {
try {
wrapper = (Wrapper) wrapperClass.newInstance();
} catch (Throwable t) {
log.error("createWrapper", 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("createWrapper", 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("createWrapper", 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("createWrapper", t);
return (null);
}
}
}
return (wrapper);
}
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. |
public void destroy() throws Exception {
if( oname != null ) {
// Send j2ee.object.deleted notification
Notification notification =
new Notification("j2ee.object.deleted", this.getObjectName(),
sequenceNumber++);
broadcaster.sendNotification(notification);
}
super.destroy();
// Notify our interested LifecycleListeners
lifecycle.fireLifecycleEvent(DESTROY_EVENT, null);
instanceListeners = new String[0];
}
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() ? |
protected File engineBase() {
String base=System.getProperty("catalina.base");
if( base == null ) {
StandardEngine eng=(StandardEngine)this.getParent().getParent();
base=eng.getBaseDir();
}
return (new File(base));
}
Return a File object representing the base directory for the
entire servlet container (i.e. the Engine container if present). |
public boolean filterStart() {
if (getLogger().isDebugEnabled())
getLogger().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 (getLogger().isDebugEnabled())
getLogger().debug(" Starting filter '" + name + "'");
ApplicationFilterConfig filterConfig = null;
try {
filterConfig = new ApplicationFilterConfig
(this, (FilterDef) filterDefs.get(name));
filterConfigs.put(name, filterConfig);
} catch (Throwable t) {
getLogger().error
(sm.getString("standardContext.filterStart", name), t);
ok = false;
}
}
}
return (ok);
}
Configure and initialize the set of filters for this Context.
Return true if all filter initialization completed
successfully, or false otherwise. |
public boolean filterStop() {
if (getLogger().isDebugEnabled())
getLogger().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 (getLogger().isDebugEnabled())
getLogger().debug(" Stopping filter '" + name + "'");
ApplicationFilterConfig filterConfig =
(ApplicationFilterConfig) filterConfigs.get(name);
filterConfig.release();
}
filterConfigs.clear();
}
return (true);
}
Finalize and release the set of filters for this Context.
Return true if all filter finalization completed
successfully, or false otherwise. |
public String[] findApplicationListeners() {
return (applicationListeners);
}
Return the set of application listener class names configured
for this application. |
public ApplicationParameter[] findApplicationParameters() {
return (applicationParameters);
}
Return the set of application parameters for this application. |
public SecurityConstraint[] findConstraints() {
return (constraints);
}
Return the security constraints for this web application.
If there are none, a zero-length array is returned. |
public ErrorPage findErrorPage(int errorCode) {
if (errorCode == 200) {
return (okErrorPage);
} else {
return ((ErrorPage) statusPages.get(new Integer(errorCode)));
}
}
Return the error page entry for the specified HTTP error code,
if any; otherwise return null. |
public ErrorPage findErrorPage(String exceptionType) {
synchronized (exceptionPages) {
return ((ErrorPage) exceptionPages.get(exceptionType));
}
}
Return the error page entry for the specified Java exception type,
if any; otherwise return null. |
public ErrorPage[] findErrorPages() {
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);
}
}
}
Return the set of defined error pages for all specified error codes
and exception types. |
public FilterConfig findFilterConfig(String name) {
return ((FilterConfig) filterConfigs.get(name));
}
Find and return the initialized FilterConfig for the
specified filter name, if any; otherwise return null. |
public FilterDef findFilterDef(String filterName) {
synchronized (filterDefs) {
return ((FilterDef) filterDefs.get(filterName));
}
}
Return the filter definition for the specified filter name, if any;
otherwise return null. |
public FilterDef[] findFilterDefs() {
synchronized (filterDefs) {
FilterDef results[] = new FilterDef[filterDefs.size()];
return ((FilterDef[]) filterDefs.values().toArray(results));
}
}
Return the set of defined filters for this Context. |
public FilterMap[] findFilterMaps() {
return (filterMaps);
}
Return the set of filter mappings for this Context. |
public String[] findInstanceListeners() {
return (instanceListeners);
}
Return the set of InstanceListener classes that will be added to
newly created Wrappers automatically. |
public Context findMappingObject() {
return (Context) getMappingObject();
}
FIXME: Fooling introspection ... |
public MessageDestination findMessageDestination(String name) {
synchronized (messageDestinations) {
return ((MessageDestination) messageDestinations.get(name));
}
}
Return the message destination with the specified name, if any;
otherwise, return null. |
public MessageDestinationRef findMessageDestinationRef(String name) {
return namingResources.findMessageDestinationRef(name);
}
Return the message destination ref with the specified name, if any;
otherwise, return null. |
public MessageDestinationRef[] findMessageDestinationRefs() {
return namingResources.findMessageDestinationRefs();
}
Return the set of defined message destination refs for this web
application. If none have been defined, a zero-length array
is returned. |
public MessageDestination[] findMessageDestinations() {
synchronized (messageDestinations) {
MessageDestination results[] =
new MessageDestination[messageDestinations.size()];
return ((MessageDestination[])
messageDestinations.values().toArray(results));
}
}
Return the set of defined message destinations for this web
application. If none have been defined, a zero-length array
is returned. |
public String findMimeMapping(String extension) {
return ((String) mimeMappings.get(extension));
}
Return the MIME type to which the specified extension is mapped,
if any; otherwise return null. |
public String[] findMimeMappings() {
synchronized (mimeMappings) {
String results[] = new String[mimeMappings.size()];
return
((String[]) mimeMappings.keySet().toArray(results));
}
}
Return the extensions for which MIME mappings are defined. If there
are none, a zero-length array is returned. |
public String findParameter(String name) {
synchronized (parameters) {
return ((String) parameters.get(name));
}
}
Return the value for the specified context initialization
parameter name, if any; otherwise return null. |
public String[] findParameters() {
synchronized (parameters) {
String results[] = new String[parameters.size()];
return ((String[]) parameters.keySet().toArray(results));
}
}
Return the names of all defined context initialization parameters
for this Context. If no parameters are defined, a zero-length
array is returned. |
public String findRoleMapping(String role) {
String realRole = null;
synchronized (roleMappings) {
realRole = (String) roleMappings.get(role);
}
if (realRole != null)
return (realRole);
else
return (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. |
public boolean findSecurityRole(String role) {
synchronized (securityRoles) {
for (int i = 0; i < securityRoles.length; i++) {
if (role.equals(securityRoles[i]))
return (true);
}
}
return (false);
}
Return true if the specified security role is defined
for this application; otherwise return false. |
public String[] findSecurityRoles() {
return (securityRoles);
}
Return the security roles defined for this application. If none
have been defined, a zero-length array is returned. |
public String findServletMapping(String pattern) {
synchronized (servletMappings) {
return ((String) servletMappings.get(pattern));
}
}
Return the servlet name mapped by the specified pattern (if any);
otherwise return null. |
public String[] findServletMappings() {
synchronized (servletMappings) {
String results[] = new String[servletMappings.size()];
return
((String[]) servletMappings.keySet().toArray(results));
}
}
Return the patterns of all defined servlet mappings for this
Context. If no mappings are defined, a zero-length array is returned. |
public DirContext findStaticResources() {
return getResources();
}
Return the naming resources associated with this web application.
FIXME: Fooling introspection ... |
public String findStatusPage(int status) {
ErrorPage errorPage = (ErrorPage)statusPages.get(new Integer(status));
if (errorPage!=null) {
return errorPage.getLocation();
}
return null;
}
Return the context-relative URI of the error page for the specified
HTTP status code, if any; otherwise return null. |
public int[] findStatusPages() {
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);
}
}
Return the set of HTTP status codes for which error pages have
been specified. If none are specified, a zero-length array
is returned. |
public String findTaglib(String uri) {
synchronized (taglibs) {
return ((String) taglibs.get(uri));
}
}
Return the tag library descriptor location for the specified taglib
URI, if any; otherwise, return null. |
public String[] findTaglibs() {
synchronized (taglibs) {
String results[] = new String[taglibs.size()];
return ((String[]) taglibs.keySet().toArray(results));
}
}
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. |
public String[] findWatchedResources() {
return watchedResources;
}
Return the set of watched resources for this Context. If none are
defined, a zero length array will be returned. |
public boolean findWelcomeFile(String name) {
synchronized (welcomeFiles) {
for (int i = 0; i < welcomeFiles.length; i++) {
if (name.equals(welcomeFiles[i]))
return (true);
}
}
return (false);
}
Return true if the specified welcome file is defined
for this Context; otherwise return false. |
public String[] findWelcomeFiles() {
return (welcomeFiles);
}
Return the set of welcome files defined for this Context. If none are
defined, a zero-length array is returned. |
public String[] findWrapperLifecycles() {
return (wrapperLifecycles);
}
Return the set of LifecycleListener classes that will be added to
newly created Wrappers automatically. |
public String[] findWrapperListeners() {
return (wrapperListeners);
}
Return the set of ContainerListener classes that will be added to
newly created Wrappers automatically. |
public String getAltDDName() {
return altDDName;
}
Return the alternate Deployment Descriptor name. |
public AnnotationProcessor getAnnotationProcessor() {
// ----------------------------------------------------- Context Properties
return annotationProcessor;
}
|
public boolean getAntiJARLocking() {
return (this.antiJARLocking);
}
Return the antiJARLocking flag for this Context. |
public boolean getAntiResourceLocking() {
return (this.antiResourceLocking);
}
Return the antiResourceLocking flag for this Context. |
protected String getAppBase() {
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 Object[] getApplicationEventListeners() {
return (applicationEventListenersObjects);
}
Return the set of initialized application event listener objects,
in the order they were specified in the web application deployment
descriptor, for this application. |
public Object[] getApplicationLifecycleListeners() {
return (applicationLifecycleListenersObjects);
}
Return the set of initialized application lifecycle listener objects,
in the order they were specified in the web application deployment
descriptor, for this application. |
public boolean getAvailable() {
return (this.available);
}
Return the application available flag for this Context. |
protected String getBasePath() {
String docBase = null;
Container container = this;
while (container != null) {
if (container instanceof Host)
break;
container = container.getParent();
}
File file = new File(getDocBase());
if (!file.isAbsolute()) {
if (container == null) {
docBase = (new File(engineBase(), getDocBase())).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);
docBase = (new File(file, getDocBase())).getPath();
}
} else {
docBase = file.getPath();
}
return docBase;
}
|
public int getCacheMaxSize() {
return cacheMaxSize;
}
Return the maximum size of the cache in KB. |
public int getCacheTTL() {
return cacheTTL;
}
|
public CharsetMapper getCharsetMapper() {
// 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);
}
Return the Locale to character set mapper for this Context. |
public String getCharsetMapperClass() {
return (this.charsetMapperClass);
}
Return the Locale to character set mapper class for this Context. |
public String getCompilerClasspath() {
return compilerClasspath;
}
Return the compiler classpath. |
public File getConfigBase() {
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());
}
if (saveConfig) {
configBase.mkdirs();
}
return configBase;
}
|
public String getConfigFile() {
return (this.configFile);
}
Return the path to a file to save this Context information. |
public boolean getConfigured() {
return (this.configured);
}
Return the "correctly configured" flag for this Context. |
public boolean getCookies() {
return (this.cookies);
}
Return the "use cookies for session ids" flag. |
public boolean getCrossContext() {
return (this.crossContext);
}
Return the "allow crossing servlet contexts" flag. |
protected String getDefaultConfigFile() {
String basename = null;
String path = getPath();
if (path.equals("")) {
basename = "ROOT";
} else {
basename = path.substring(1).replace('/", '#");
}
return (basename + ".xml");
}
Given a context path, get the config file name. |
public String getDefaultContextXml() {
return defaultContextXml;
}
|
public String getDefaultWebXml() {
return defaultWebXml;
}
|
public boolean getDelegate() {
return (this.delegate);
}
Return the "follow standard delegation model" flag used to configure
our ClassLoader. |
public String getDeploymentDescriptor() {
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();
}
JSR77 deploymentDescriptor attribute |
public String getDisplayName() {
return (this.displayName);
}
Return the display name of this web application. |
public boolean getDistributable() {
return (this.distributable);
}
Return the distributable flag for this web application. |
public String getDocBase() {
return (this.docBase);
}
Return the document root for this Context. This can be an absolute
pathname, a relative pathname, or a URL. |
public String getEncodedPath() {
return encodedPath;
}
|
public String getEngineName() {
if( engineName != null ) return engineName;
return domain;
}
|
public String getHostname() {
Container parentHost = getParent();
if (parentHost != null) {
hostName = parentHost.getName();
}
if ((hostName == null) || (hostName.length() < 1))
hostName = "_";
return hostName;
}
|
public boolean getIgnoreAnnotations() {
return this.ignoreAnnotations;
}
Return the boolean on the annotations parsing. |
public String getInfo() {
return (info);
}
Return descriptive information about this Container implementation and
the corresponding version number, in the format
<description>/<version>. |
public String getJ2EEApplication() {
return j2EEApplication;
}
|
public String getJ2EEServer() {
return j2EEServer;
}
|
public String[] getJavaVMs() {
return javaVMs;
}
|
public LoginConfig getLoginConfig() {
return (this.loginConfig);
}
Return the login configuration descriptor for this web application. |
public Mapper getMapper() {
return (mapper);
}
Get the mapper associated with the context. |
public NamingContextListener getNamingContextListener() {
return namingContextListener;
}
Naming context listener accessor. |
public NamingResources getNamingResources() {
if (namingResources == null) {
setNamingResources(new NamingResources());
}
return (namingResources);
}
Return the naming resources associated with this web application. |
public MBeanNotificationInfo[] getNotificationInfo() {
// FIXME: i18n
if(notificationInfo == null) {
notificationInfo = new MBeanNotificationInfo[]{
new MBeanNotificationInfo(new String[] {
"j2ee.object.created"},
Notification.class.getName(),
"web application is created"
),
new MBeanNotificationInfo(new String[] {
"j2ee.state.starting"},
Notification.class.getName(),
"change web application is starting"
),
new MBeanNotificationInfo(new String[] {
"j2ee.state.running"},
Notification.class.getName(),
"web application is running"
),
new MBeanNotificationInfo(new String[] {
"j2ee.state.stopped"},
Notification.class.getName(),
"web application start to stopped"
),
new MBeanNotificationInfo(new String[] {
"j2ee.object.stopped"},
Notification.class.getName(),
"web application is stopped"
),
new MBeanNotificationInfo(new String[] {
"j2ee.object.deleted"},
Notification.class.getName(),
"web application is deleted"
)
};
}
return notificationInfo;
}
|
public String getOriginalDocBase() {
return (this.originalDocBase);
}
Return the original document root for this Context. This can be an absolute
pathname, a relative pathname, or a URL.
Is only set as deployment has change docRoot! |
public boolean getOverride() {
return (this.override);
}
Return the DefaultContext override flag for this web application. |
public ClassLoader getParentClassLoader() {
if (parentClassLoader != null)
return (parentClassLoader);
if (getPrivileged()) {
return this.getClass().getClassLoader();
} else if (parent != null) {
return (parent.getParentClassLoader());
}
return (ClassLoader.getSystemClassLoader());
}
Return the parent class loader (if any) for this web application.
This call is meaningful only after a Loader has
been configured. |
public ObjectName getParentName() throws MalformedObjectNameException {
// "Life" update
String path=oname.getKeyProperty("name");
if( path == null ) {
log.error( "No name attribute " +name );
return null;
}
if( ! path.startsWith( "//")) {
log.error("Invalid name " + name);
}
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 String getPath() {
return (getName());
}
Return the context path for this Context. |
public boolean getPaused() {
return (this.paused);
}
Return the request processing paused flag for this Context. |
public boolean getPrivileged() {
return (this.privileged);
}
Return the privileged flag for this web application. |
public boolean getProcessTlds() {
return processTlds;
}
Returns the processTlds attribute value. |
public long getProcessingTime() {
long result = 0;
Container[] children = findChildren();
if (children != null) {
for( int i=0; i< children.length; i++ ) {
result += ((StandardWrapper)children[i]).getProcessingTime();
}
}
return result;
}
Gets the cumulative processing times of all servlets in this
StandardContext. |
public String getPublicId() {
return (this.publicId);
}
Return the public identifier of the deployment descriptor DTD that is
currently being parsed. |
public boolean getReloadable() {
return (this.reloadable);
}
Return the reloadable flag for this web application. |
public String getServer() {
return server;
}
|
public ServletContext getServletContext() {
if (context == null) {
context = new ApplicationContext(getBasePath(), this);
if (altDDName != null)
context.setAttribute(Globals.ALT_DD_ATTR,altDDName);
}
return (context.getFacade());
}
Return the servlet context for which this Context is a facade. |
public String[] getServlets() {
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 (this.sessionTimeout);
}
Return the default session timeout (in minutes) for this
web application. |
public long getStartTime() {
return startTime;
}
Gets the time this context was started. |
public l
|