Class DeferredHandler
- All Implemented Interfaces:
Handler
Normally, when a handler's class is first resolved, if any of the dependent classes are not available, an error will occur, terminating the server. Using this handler, other handlers can be conditionally configured based on the availability of other specified classes at run time.
NOTE: This functionallity should be integrated into the
ChainHandler, eliminating the need for this one.
Request Properties
- handler
- The token representing the handler to conditionally configure. This is used as the handler's prefix
- requires
- The names of classes required to be resolvable before configuring the handler
- [handler].prefix
- Used to trigger the configuration
- [handler].class
- The name of the handler class.
-
Constructor Summary
Constructors -
Method Summary
-
Constructor Details
-
DeferredHandler
public DeferredHandler()
-
-
Method Details
-
init
Remember the server for deferred initialization.- Specified by:
initin interfaceHandler- Parameters:
server- The HTTP server that created thisHandler. TypicalHandlers will useServer.propsto obtain run-time configuration information.prefix- The handlers name. The string thisHandlermay prepend to all of the keys that it uses to extract configuration information fromServer.props. This is set (by theServerandChainHandler) to help avoid configuration parameter namespace collisions.- Returns:
trueif thisHandlerinitialized successfully,falseotherwise. Iffalseis returned, thisHandlershould not be used.
-
respond
Dispatch to the handler, installing it if needed- Specified by:
respondin interfaceHandler- Parameters:
request- TheRequestobject that represents the HTTP request.- Returns:
trueif the request was handled. A request was handled if a response was supplied to the client, typically by callingRequest.sendResponse()orRequest.sendError.- Throws:
IOException- if there was an I/O error while sending the response to the client. Typically, in that case, theServerwill (try to) send an error message to the client and then close the client's connection.The
IOExceptionshould not be used to silently ignore problems such as being unable to access some server-side resource (for example getting aFileNotFoundExceptiondue to not being able to open a file). In that case, theHandler's duty is to turn thatIOExceptioninto a HTTP response indicating, in this case, that a file could not be found.
-