    class ApplicationError(Exception):

    class EndResponse(Exception):

    class Application(ConfigurableForServerSidePath, Object):

        ## Init ##
        def __init__(self, server=None, transactionClass=None, sessionClass=None, requestClass=None, responseClass=None, exceptionHandlerClass=None, contexts=None, useSessionSweeper=1):

    ## TaskManager

    ## End TaskManager

    ## Contexts

    ## End Contexts

    ## Session store

    ## End Session store
        def initVersions(self):

    ## Task access
        def taskManager(self):

    ## Session sweep task
        def startSessionSweeper(self):

    ## Shutdown
        def shutDown(self):
        def addShutDownHandler(self, func):

        ## Config ##
        def defaultConfig(self):
        def configFilename(self):
        def configReplacementValues(self):

        ## Versions ##
        def version(self):

            ## @@ 2000-05-01 ce: Maybe this could be a setting 'AppVersion'
        def webwareVersion(self):
        def webwareVersionString(self):
        def webKitVersion(self):
        def webKitVersionString(self):

        ## Dispatching Requests ##
        def dispatchRawRequest(self, newRequestDict, strmOut):
        def dispatchRequest(self, request, strmOut):
        def handleBadURL(self, transaction):
        def handleDeficientDirectoryURL(self, transaction):
        def isSessionIdProblematic(self, request, debug=0):
        def handleInvalidSession(self, transaction):
        def handleMissingPathSession(self,transaction):
        def handleGoodURL(self, transaction):
        def processURLPath(self, req, URL):
        def forward(self, trans, URL):
        def forwardRequest(self, trans, URL):
        def includeURL(self, trans, URL):
        def forwardRequestFast(self, trans, url):
        def callMethodOfServlet(self, trans, URL, method, *args, **kwargs):

        ## Transactions ##
        def awake(self, transaction):
        def respond(self, transaction):
        def sleep(self, transaction):

        ## Sessions ##
        def session(self, sessionId, default=NoDefault):
        def hasSession(self, sessionId):
        def sessions(self):

        ## Misc Access ##
        def server(self):
        def serverSidePath(self, path=None):
        def webwarePath(self):
        def webKitPath(self):
        def name(self):
        def transactionClass(self):
        def setTransactionClass(self, newClass):
        def responseClass(self, newClass):
        def setResponseClass(self, newClass):

        ## Contexts ##
        def context(self, name, default=NoDefault):
        def hasContext(self, name):
        def contexts(self):
        def addContext(self, name, dir):

        ## Factory access ##
        def addServletFactory(self, factory):
        def factories(self):

        ## Activity Log ##
        def writeActivityLog(self, transaction):

        ## Utilities/Hooks ##
        def createRequestForDict(self, newRequestDict):
        def createTransactionForRequest(self, request):
        def createResponseInTransaction(self, transaction, strmOut):
        def createSessionForTransaction(self, transaction):
        def getServlet(self, transaction, path, cache=None): #send the cache if you want the cache info set
        def returnInstance(self, transaction, path):
        def newServletCacheItem(self,key,item):
        def flushServletCache(self):
        def createServletInTransaction(self, transaction):
        def handleExceptionInTransaction(self, excInfo, transaction):
        def handleException(self, excInfo=None):
        def filenamesForBaseName(self, baseName):
        def defaultContextNameAndPath(self):
        def serverSideInfoForRequest(self, request):
        def findDirectoryIndex(self, ssPath, debug=0):
        def processExtraURLPath(self, ssPath, urlPath, debug=0):

            ## Now test to see if the next element is a file without an extension
        def writeExceptionReport(self, handler):

        ## New Path Algorithm ##
        def serverSideInfoForRequestNewAlgorithm(self, request):
        def findContext(self, fullPath):
        def findServlet(self, contextPath, urlPath):
        def filenamesForBaseNameNew(self, baseName):

        ## Deprecated ##
        def serverSidePathForRequest(self, request, debug=0):
        def serverDir(self):
    def isdir(s):
    def noslash(s):
    def main(requestDict):