electric.servlet
Class HTTPContext

java.lang.Object
  extended byelectric.servlet.HTTPContext
All Implemented Interfaces:
IEXMLLoggingConstants, IGLUELoggingConstants, IHTTPConstants, ILoggingConstants, IServletConstants, javax.servlet.ServletContext

public final class HTTPContext
extends java.lang.Object
implements javax.servlet.ServletContext, IServletConstants, IHTTPConstants, IGLUELoggingConstants

todo: authenticators need to be configurable in glue-config.xml


Field Summary
 IHTTPAuthenticator authenticator
           
 
Fields inherited from interface electric.servlet.IServletConstants
CONTEXT_PATH, PATH_INFO, QUERY_STRING, REQUEST_URI, SERVLET_PATH, TEMP_DIR
 
Fields inherited from interface electric.util.http.IHTTPConstants
ACCEPT_LANGUAGE, ACCEPT_RANGES, APPLICATION_BINARY, APPLICATION_OCTET_STREAM, ASCII, AUTHORIZATION, BASIC, BOUNDARY, CHARSET_EQUALS, CHUNKED, CLOSE, COLON_SLASH_SLASH, CONNECT, CONNECTION, CONTENT_ID, CONTENT_LANGUAGE, CONTENT_LENGTH, CONTENT_LOCATION, CONTENT_TYPE, CONTINUATION_STATUS, CONTINUE_EXPECTATION, COOKIE, COOKIE_LISTENER, DATE, DEFAULT_CONTENT_TYPE, DEFAULT_HTTP_CHARSET, DEFAULT_HTTPS_PORT, DEFAULT_MIME_TYPE, DEFAULT_PROXY_PORT, DIGEST, EOL, EXPECT, EXPECT_HEADER, FORM_URLENCODED, GET, GLUE_SESSION, HEAD, HOST, HTTP_1_0, HTTP_1_1, HTTP_PROTOCOL, HTTPS_PROTOCOL, IF_MODIFIED_SINCE, KEEP_ALIVE, LAST_MODIFIED, LOCATION, MD5_HASH, MIME_BOUNDARY, MIME_VERSION, MULTIPART_CONTENT_TYPE, OK, POST, PROXY_AUTHORIZATION, RANGE, SC_CONTINUE, SC_MOVED, SC_MOVED_PERMANENTLY, SC_OK, SC_PROXY_AUTHENTICATION_REQUIRED, SC_UNAUTHORIZED, SEPARATOR, SERVER, SERVER_PREFIX, SERVER_TYPE, SET_COOKIE_0, SET_COOKIE_1, SLASH, START, TEXT_HTML, TEXT_PLAIN, TEXT_XML, TEXT_XML_UTF_8, TRANSFER_ENCODING, USER_AGENT, WWW_AUTHENTICATE
 
Fields inherited from interface electric.glue.IGLUELoggingConstants
CLUSTER_DEBUG_EVENT, CLUSTER_EVENT, CONSOLE_DEBUG_EVENT, DEPLOY_EVENT, DETECTORS_EVENT, HTTP_EVENT, JMS_EVENT, REBINDING_EVENT, SECURITY_DEBUG_EVENT, SECURITY_DETAIL_EVENT, SERVLET_EVENT, SOAP_EVENT
 
Fields inherited from interface electric.xml.IEXMLLoggingConstants
MAPPING_EVENT, SCHEMA_EVENT
 
Fields inherited from interface electric.util.log.ILoggingConstants
CLASSLOADER_EVENT, COMMAND_EVENT, COMMENT_EVENT, CONFIG_EVENT, DEBUG_EVENT, ELECTRIC_LOGGING_PROPERTY, ERROR_EVENT, EXCEPTION_EVENT, FILE_EVENT, LICENSE_EVENT, RESOURCES_EVENT, SECURITY_EVENT, SHUTDOWN_EVENT, SOURCE_EVENT, SQL_EVENT, STARTUP_EVENT, WARNING_EVENT
 
Constructor Summary
HTTPContext(java.lang.String docBase)
          Construct an HTTPContext with the specified document base.
HTTPContext(java.lang.String docBase, IPathGuards pathGuards)
          Construct an HTTPContext with the specified document base.
 
Method Summary
 void addAuthenticator(java.lang.String protocolName, java.lang.String className)
          add an authenticator implementation for a given protocol.
 void addConfig(Config config)
          Add a servlet config to the context, it will only be callable if there is an associated servlet mapping.
 void addConfig(java.lang.String urlPattern, Config config)
          Convenience function that adds a new config with an initial mapping.
 void addErrorPage(int errorCode, java.lang.String location)
          Map the specified exceptionType to an error code.
 void addErrorPage(java.lang.String exceptionType, java.lang.String location)
          Map the specified exceptionType to an error page.
 void addFilterConfig(ServletFilterConfig config)
           
 void addFilterMapping(java.lang.String filterName, java.lang.String servletName, java.lang.String urlPattern)
           
 void addGuard(java.lang.String path)
           
 void addGuard(java.lang.String path, IGuard guard)
           
 void addInitParameter(java.lang.String name, java.lang.String value)
          Add an init parameter with the specified name and value, overwriting any previous setting.
 void addListener(java.lang.String listenerClassName)
           
 void addMimeType(java.lang.String extension, java.lang.String mimeType)
          Associate the mime type with the specified extension.
 void addPathGuards(IPathGuards pathGuards)
           
 void addServletMapping(java.lang.String servletName, java.lang.String urlPattern)
           
 void addWelcomeFile(java.lang.String filename)
          Add the specified filename as a welcome file.
 java.util.Enumeration getAllGuards(java.lang.String path)
           
 java.lang.Object getAttribute(java.lang.String name)
          Return the attribute with the specified name, or null if there is none.
 java.util.Enumeration getAttributeNames()
          Return an enumeration over the attribute names.
 java.lang.String getAuthMethod()
           
 IHTTPAuthorizer getAuthorizer()
           
 java.lang.ClassLoader getClassLoader()
           
 java.util.Vector getConfigs()
          Return a list of the servlet configs in this contet.
 Config getConfigWithServletName(java.lang.String servletName)
          Return the Config with the specified servlet name, or null if none exists.
 javax.servlet.ServletContext getContext(java.lang.String path)
          Return the servlet context with the specified path.
 HTTPContextListeners getContextListeners()
           
static java.lang.String getDefaultAuthMethod()
           
static java.lang.String getDefaultRealmName()
           
 java.lang.String getDocBase()
          Return the document base.
static CharsetNameMapper getEncodingNameMapper()
           
 java.lang.String getErrorPage(int errorCode)
          Return the error page associated with the error code, or null if there is none.
 java.lang.String getErrorPage(java.lang.String exceptionType)
          Return the error page associated with the exception type, or null if there is none.
 java.lang.String getFormErrorPage()
           
 java.lang.String getFormLoginPage()
           
 java.util.Enumeration getGuards(java.lang.String path)
           
 java.lang.String getInitParameter(java.lang.String name)
          Return the init parameter with the specified name, or null if there is none.
 java.util.Enumeration getInitParameterNames()
          Return an enumeration over the init parameter names.
 int getMajorVersion()
          Return 2, the major version of the servlet API.
 java.lang.String getMimeType(java.lang.String file)
          Return the MIME type associated with the specified file, or null if the MIME type is not known.
 java.util.Hashtable getMimeTypes()
          Return a hashtable of all registered mime types, where the key is the extension and the value is the mime type.
 int getMinorVersion()
          Return 2, the minor version of the servlet API.
 javax.servlet.RequestDispatcher getNamedDispatcher(java.lang.String name)
          Return the request dispatcher with the specified name.
 java.lang.String getPath()
          Return the Context Path.
 IRealm getRealm()
           
 java.lang.String getRealPath(java.lang.String path)
          Return the real path associated with the specified path.
static long getReapCycle()
           
 javax.servlet.RequestDispatcher getRequestDispatcher(java.lang.String path)
          todo: fix it Return the request dispatcher with the specified path.
 java.net.URL getResource(java.lang.String path)
          Return the URL of the resource with the specified path, relative to the current context root.
 java.io.InputStream getResourceAsStream(java.lang.String path)
          Return an input stream for reading the resource with the specified path.
 java.util.Set getResourcePaths(java.lang.String url)
           
 electric.servlet.security.SecurityMapper getSecurityMapper()
           
 java.lang.String getServerInfo()
          Return GLUE/1.0, the servlet server type.
 javax.servlet.Servlet getServlet(java.lang.String name)
           
 java.lang.String getServletContextName()
          Return the element from the webapp.
 ServletEngine getServletEngine()
           
 Config getServletMapping(java.lang.String urlPattern)
           
 java.util.Hashtable getServletMappings()
           
 java.lang.String[] getServletMappings(java.lang.String servletName)
           
 java.util.Enumeration getServletNames()
           
 java.util.Enumeration getServlets()
           
 HTTPSession getSession(java.lang.String id)
          Return the session with the specified id, or null if there is none.
 Config[] getSortedConfigs()
           
 WebServer getWebServer()
           
 void initStandardAuthenticators()
          built-in authentication methods.
 java.lang.Class loadClass(java.lang.String name)
          Return the class with the specified name.
 void log(java.lang.Exception exception, java.lang.String message)
           
 void log(java.lang.String message)
           
 void log(java.lang.String message, java.lang.Throwable throwable)
          Log the specified message and exception.
 HTTPSession newSession()
          Create and return a new session.
 void removeAttribute(java.lang.String name)
          Remove the attribute with the specified name.
 void removeConfig(Config config)
           
 void removeInitParameter(java.lang.String name)
          Remove the init parameter with the specified name.
 void removeMimeType(java.lang.String extension)
          Remove the mime type associated with the specified extension.
 void removeServletMapping(java.lang.String servletName, java.lang.String urlPattern)
           
 HTTPSession removeSession(java.lang.String id)
          Remove and return the session with the specified id.
 void removeWelcomeFile(java.lang.String filename)
          Remove the specified filename as a welcome file.
 void service(java.lang.String absolutePath, javax.servlet.ServletRequest request, javax.servlet.ServletResponse response)
          Service a servlet request.
 void setAttribute(java.lang.String name, java.lang.Object value)
          Add an attribute with the specified name and value, overwriting any previous setting.
 void setAuthentiator(IHTTPAuthenticator authenticator)
           
 void setAuthMethod(java.lang.String authMethod)
           
 void setAuthorizer(IHTTPAuthorizer authorizer)
           
 void setClassLoader(java.lang.ClassLoader loader)
           
static void setDefaultAuthMethod(java.lang.String method)
           
static void setDefaultRealm(java.lang.String name)
           
 void setDocBase(java.lang.String docBase)
           
 void setFormErrorPage(java.lang.String formErrorPage)
           
 void setFormLoginPage(java.lang.String formLoginPage)
           
 void setPath(java.lang.String path)
          Set the Context Path.
 void setRealm(IRealm realm)
           
static void setReapCycle(long reapCycle)
           
 void setServletContextName(java.lang.String servletContextName)
          This method sets the element from the webapp.
 void setServletEngine(ServletEngine servletEngine)
           
 void shutdown()
          Shut down all of the configs.
 void startup()
          Start up all of the configs.
 java.lang.String toString()
          Return a description.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

authenticator

public IHTTPAuthenticator authenticator
Constructor Detail

HTTPContext

public HTTPContext(java.lang.String docBase)
Construct an HTTPContext with the specified document base.

Parameters:
docBase - The document base.

HTTPContext

public HTTPContext(java.lang.String docBase,
                   IPathGuards pathGuards)
Construct an HTTPContext with the specified document base.

Parameters:
docBase - The document base.
pathGuards - The object to use to find the guards for particular URI.
Method Detail

toString

public java.lang.String toString()
Return a description.


addConfig

public void addConfig(Config config)
Add a servlet config to the context, it will only be callable if there is an associated servlet mapping.

Parameters:
config - The config.

addConfig

public void addConfig(java.lang.String urlPattern,
                      Config config)
Convenience function that adds a new config with an initial mapping.

Parameters:
urlPattern -
config -

getConfigWithServletName

public Config getConfigWithServletName(java.lang.String servletName)
Return the Config with the specified servlet name, or null if none exists.

Parameters:
servletName -

removeConfig

public void removeConfig(Config config)
Parameters:
config -

getConfigs

public java.util.Vector getConfigs()
Return a list of the servlet configs in this contet.


getSortedConfigs

public Config[] getSortedConfigs()

getServletMappings

public java.lang.String[] getServletMappings(java.lang.String servletName)
Parameters:
servletName -

addServletMapping

public void addServletMapping(java.lang.String servletName,
                              java.lang.String urlPattern)
Parameters:
servletName -
urlPattern -

removeServletMapping

public void removeServletMapping(java.lang.String servletName,
                                 java.lang.String urlPattern)
Parameters:
servletName -
urlPattern -

getServletEngine

public ServletEngine getServletEngine()

setServletEngine

public void setServletEngine(ServletEngine servletEngine)
Parameters:
servletEngine -

getServletContextName

public java.lang.String getServletContextName()
Return the element from the webapp.

Specified by:
getServletContextName in interface javax.servlet.ServletContext
Returns:
the element from web.xml

setServletContextName

public void setServletContextName(java.lang.String servletContextName)
This method sets the element from the webapp.

Parameters:
servletContextName -

getServletMappings

public java.util.Hashtable getServletMappings()

getServletMapping

public Config getServletMapping(java.lang.String urlPattern)
Parameters:
urlPattern -

getPath

public java.lang.String getPath()
Return the Context Path.

Returns:
the context path.

setPath

public void setPath(java.lang.String path)
Set the Context Path. SRV.4.4 : If this context is the “default” context ... this path will be an empty string. Otherwise, ... the path starts with a’/’ character but does not end with a’/’ character.

Instead of rejecting malformed paths, this method attempts to fix them, adding an initital slash if needed, and removing any final slash.

Parameters:
path - The new value, either the enpty string, or a path starting with '/' but not ending with '/'. The path cannot be null.

getDocBase

public java.lang.String getDocBase()
Return the document base.


setDocBase

public void setDocBase(java.lang.String docBase)
Parameters:
docBase -

getAttribute

public java.lang.Object getAttribute(java.lang.String name)
Return the attribute with the specified name, or null if there is none.

Specified by:
getAttribute in interface javax.servlet.ServletContext
Parameters:
name - The name.

getAttributeNames

public java.util.Enumeration getAttributeNames()
Return an enumeration over the attribute names.

Specified by:
getAttributeNames in interface javax.servlet.ServletContext

removeAttribute

public void removeAttribute(java.lang.String name)
Remove the attribute with the specified name.

Specified by:
removeAttribute in interface javax.servlet.ServletContext
Parameters:
name - The name.

setAttribute

public void setAttribute(java.lang.String name,
                         java.lang.Object value)
Add an attribute with the specified name and value, overwriting any previous setting.

Specified by:
setAttribute in interface javax.servlet.ServletContext
Parameters:
name - The name.
value - The value.

getInitParameter

public java.lang.String getInitParameter(java.lang.String name)
Return the init parameter with the specified name, or null if there is none.

Specified by:
getInitParameter in interface javax.servlet.ServletContext
Parameters:
name - The name.

getInitParameterNames

public java.util.Enumeration getInitParameterNames()
Return an enumeration over the init parameter names.

Specified by:
getInitParameterNames in interface javax.servlet.ServletContext

addInitParameter

public void addInitParameter(java.lang.String name,
                             java.lang.String value)
Add an init parameter with the specified name and value, overwriting any previous setting.

Parameters:
name - The name.
value - The value.

removeInitParameter

public void removeInitParameter(java.lang.String name)
Remove the init parameter with the specified name.

Parameters:
name -

getMajorVersion

public int getMajorVersion()
Return 2, the major version of the servlet API.

Specified by:
getMajorVersion in interface javax.servlet.ServletContext

getMinorVersion

public int getMinorVersion()
Return 2, the minor version of the servlet API.

Specified by:
getMinorVersion in interface javax.servlet.ServletContext

log

public void log(java.lang.Exception exception,
                java.lang.String message)
Specified by:
log in interface javax.servlet.ServletContext
Parameters:
exception -
message -

log

public void log(java.lang.String message)
Specified by:
log in interface javax.servlet.ServletContext
Parameters:
message -

log

public void log(java.lang.String message,
                java.lang.Throwable throwable)
Log the specified message and exception.

Specified by:
log in interface javax.servlet.ServletContext
Parameters:
message - The message.
throwable - The exception.

getNamedDispatcher

public javax.servlet.RequestDispatcher getNamedDispatcher(java.lang.String name)
Return the request dispatcher with the specified name.

Specified by:
getNamedDispatcher in interface javax.servlet.ServletContext
Parameters:
name - The name.

getRequestDispatcher

public javax.servlet.RequestDispatcher getRequestDispatcher(java.lang.String path)
todo: fix it Return the request dispatcher with the specified path.

Specified by:
getRequestDispatcher in interface javax.servlet.ServletContext
Parameters:
path - The path.

getResource

public java.net.URL getResource(java.lang.String path)
                         throws java.net.MalformedURLException
Return the URL of the resource with the specified path, relative to the current context root.

Specified by:
getResource in interface javax.servlet.ServletContext
Parameters:
path - The path.
Throws:
java.net.MalformedURLException - If the URL could not be constructed.

getResourceAsStream

public java.io.InputStream getResourceAsStream(java.lang.String path)
Return an input stream for reading the resource with the specified path.

Specified by:
getResourceAsStream in interface javax.servlet.ServletContext
Parameters:
path - The path.

getResourcePaths

public java.util.Set getResourcePaths(java.lang.String url)
Specified by:
getResourcePaths in interface javax.servlet.ServletContext
Parameters:
url -

getContext

public javax.servlet.ServletContext getContext(java.lang.String path)
Return the servlet context with the specified path.

Specified by:
getContext in interface javax.servlet.ServletContext
Parameters:
path - The path.

getRealPath

public java.lang.String getRealPath(java.lang.String path)
Return the real path associated with the specified path.

Specified by:
getRealPath in interface javax.servlet.ServletContext
Parameters:
path - The path.

getServerInfo

public java.lang.String getServerInfo()
Return GLUE/1.0, the servlet server type.

Specified by:
getServerInfo in interface javax.servlet.ServletContext

addMimeType

public void addMimeType(java.lang.String extension,
                        java.lang.String mimeType)
Associate the mime type with the specified extension.

Parameters:
extension - The extension, without a leading ".".
mimeType - The mime type

removeMimeType

public void removeMimeType(java.lang.String extension)
Remove the mime type associated with the specified extension.

Parameters:
extension - The extension, without a leading ".".

getMimeType

public java.lang.String getMimeType(java.lang.String file)
Return the MIME type associated with the specified file, or null if the MIME type is not known.

Specified by:
getMimeType in interface javax.servlet.ServletContext
Parameters:
file - The name of a resource

getMimeTypes

public java.util.Hashtable getMimeTypes()
Return a hashtable of all registered mime types, where the key is the extension and the value is the mime type.


getServlet

public javax.servlet.Servlet getServlet(java.lang.String name)
Specified by:
getServlet in interface javax.servlet.ServletContext
Parameters:
name -

getServletNames

public java.util.Enumeration getServletNames()
Specified by:
getServletNames in interface javax.servlet.ServletContext

getServlets

public java.util.Enumeration getServlets()
Specified by:
getServlets in interface javax.servlet.ServletContext

startup

public void startup()
             throws javax.servlet.ServletException
Start up all of the configs.

Throws:
javax.servlet.ServletException

shutdown

public void shutdown()
Shut down all of the configs.


loadClass

public java.lang.Class loadClass(java.lang.String name)
                          throws java.lang.ClassNotFoundException
Return the class with the specified name.

Parameters:
name - The name.
Throws:
java.lang.ClassNotFoundException - If the class could not be loaded.

setClassLoader

public void setClassLoader(java.lang.ClassLoader loader)
Parameters:
loader -

getClassLoader

public java.lang.ClassLoader getClassLoader()

service

public void service(java.lang.String absolutePath,
                    javax.servlet.ServletRequest request,
                    javax.servlet.ServletResponse response)
             throws javax.servlet.ServletException,
                    java.io.IOException
Service a servlet request.

Parameters:
absolutePath - The abs_path from the HTTP request.
request - The servlet request.
response - The servlet response.
Throws:
javax.servlet.ServletException - If a servlet exception occurs.
java.io.IOException - If an I/O exception occurs.

getWebServer

public WebServer getWebServer()

getSession

public HTTPSession getSession(java.lang.String id)
Return the session with the specified id, or null if there is none.

Parameters:
id - The id.

removeSession

public HTTPSession removeSession(java.lang.String id)
Remove and return the session with the specified id.

Parameters:
id - The id.

newSession

public HTTPSession newSession()
Create and return a new session.


setReapCycle

public static void setReapCycle(long reapCycle)
Parameters:
reapCycle -

getReapCycle

public static long getReapCycle()

addWelcomeFile

public void addWelcomeFile(java.lang.String filename)
Add the specified filename as a welcome file.

Parameters:
filename - The file name.

removeWelcomeFile

public void removeWelcomeFile(java.lang.String filename)
Remove the specified filename as a welcome file.

Parameters:
filename - The file name.

addErrorPage

public void addErrorPage(java.lang.String exceptionType,
                         java.lang.String location)
Map the specified exceptionType to an error page.

Parameters:
exceptionType - The name of exception type.
location - The location of the error page.

getErrorPage

public java.lang.String getErrorPage(java.lang.String exceptionType)
Return the error page associated with the exception type, or null if there is none.

Parameters:
exceptionType - The name of the exception type.

addErrorPage

public void addErrorPage(int errorCode,
                         java.lang.String location)
Map the specified exceptionType to an error code.

Parameters:
errorCode - The error code.
location - The location of the error page.

getErrorPage

public java.lang.String getErrorPage(int errorCode)
Return the error page associated with the error code, or null if there is none.

Parameters:
errorCode - The error code.

setFormLoginPage

public void setFormLoginPage(java.lang.String formLoginPage)
Parameters:
formLoginPage -

getFormLoginPage

public java.lang.String getFormLoginPage()
Returns:
the form login page path.

setFormErrorPage

public void setFormErrorPage(java.lang.String formErrorPage)
Parameters:
formErrorPage -

getFormErrorPage

public java.lang.String getFormErrorPage()
Returns:
the form error page path

initStandardAuthenticators

public void initStandardAuthenticators()
built-in authentication methods. (allow these to be overridden by a config file)


addAuthenticator

public void addAuthenticator(java.lang.String protocolName,
                             java.lang.String className)
add an authenticator implementation for a given protocol. the protocol name is converted to lower case.

Parameters:
protocolName -
className -

setRealm

public void setRealm(IRealm realm)
Parameters:
realm -

getRealm

public IRealm getRealm()

setDefaultAuthMethod

public static void setDefaultAuthMethod(java.lang.String method)
Parameters:
method -

getDefaultAuthMethod

public static java.lang.String getDefaultAuthMethod()

getAuthMethod

public java.lang.String getAuthMethod()

setAuthMethod

public void setAuthMethod(java.lang.String authMethod)
Parameters:
authMethod - HttpServletRequest.DIGEST_AUTH or BASIC_AUTH

setAuthentiator

public void setAuthentiator(IHTTPAuthenticator authenticator)

getAuthorizer

public IHTTPAuthorizer getAuthorizer()
Returns:
currently set http authorizer.

setAuthorizer

public void setAuthorizer(IHTTPAuthorizer authorizer)
Parameters:
authorizer -

getGuards

public java.util.Enumeration getGuards(java.lang.String path)
Parameters:
path -

getAllGuards

public java.util.Enumeration getAllGuards(java.lang.String path)
Parameters:
path -

addGuard

public void addGuard(java.lang.String path)
Parameters:
path -

addGuard

public void addGuard(java.lang.String path,
                     IGuard guard)
Parameters:
path -
guard -

addPathGuards

public void addPathGuards(IPathGuards pathGuards)
Parameters:
pathGuards -

getDefaultRealmName

public static java.lang.String getDefaultRealmName()

setDefaultRealm

public static void setDefaultRealm(java.lang.String name)
Parameters:
name -

addListener

public void addListener(java.lang.String listenerClassName)
Parameters:
listenerClassName -

getContextListeners

public HTTPContextListeners getContextListeners()
Returns:

addFilterConfig

public void addFilterConfig(ServletFilterConfig config)
Parameters:
config -

addFilterMapping

public void addFilterMapping(java.lang.String filterName,
                             java.lang.String servletName,
                             java.lang.String urlPattern)
Parameters:
filterName -
servletName -
urlPattern -

getSecurityMapper

public electric.servlet.security.SecurityMapper getSecurityMapper()

getEncodingNameMapper

public static CharsetNameMapper getEncodingNameMapper()
Returns:
the encoding name mapper associated with all contexts.


copyright© 2001-2004 by webMethods All Rights Reserved.