private abstract static class ServerProviderConformanceTest.TestRequestHandler extends AbstractRequestHandler
Modifier and Type | Class and Description |
---|---|
private static class |
ServerProviderConformanceTest.TestRequestHandler.TaskHandle |
Modifier and Type | Field and Description |
---|---|
private ExecutorService |
executor |
private Set<ServerProviderConformanceTest.TestRequestHandler.TaskHandle> |
pendingTasks |
protected ServerProviderConformanceTest.Event |
responseClosed |
private Iterable<ByteBuffer> |
responseContent |
protected ServerProviderConformanceTest.Event |
responseWritten |
private Exception |
taskException |
private Object |
taskMonitor |
DEBUG, SYSTEM_PROPERTY_NAME_DEBUG
Modifier | Constructor and Description |
---|---|
private |
TestRequestHandler() |
handleTimeout
currentState, destroy, refer, release, retainCount
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
refer, release
protected ServerProviderConformanceTest.Event responseWritten
protected ServerProviderConformanceTest.Event responseClosed
private ExecutorService executor
private final Object taskMonitor
private Set<ServerProviderConformanceTest.TestRequestHandler.TaskHandle> pendingTasks
private Exception taskException
private Iterable<ByteBuffer> responseContent
public void reset(Iterable<ByteBuffer> responseContent)
private void setTaskFailure(Exception e)
private void removeTask(ServerProviderConformanceTest.TestRequestHandler.TaskHandle taskHandle)
@CheckReturnValue private ServerProviderConformanceTest.TestRequestHandler.TaskHandle addTask()
protected final void writeResponse(ContentChannel out)
private void writeAll(ContentChannel out, Iterable<ByteBuffer> content)
protected final void closeResponseInOtherThread(ContentChannel out)
protected final void closeResponse(ContentChannel out)
protected final CompletionHandler newCompletionHandler()
protected final void respondWithContentInOtherThread(ResponseHandler handler)
protected final void respondNoContentInOtherThread(ResponseHandler handler)
protected void respondWithContent(ResponseHandler handler)
protected void respondNoContent(ResponseHandler handler)
protected final void completeInOtherThread(CompletionHandler handler, Class<?>... allowedExceptionTypes)
protected final void fail(CompletionHandler handler, Throwable failure, Class<?>... allowedExceptionTypes)
protected final void failInOtherThread(CompletionHandler handler, Throwable failure, Class<?>... allowedExceptionTypes)
public final ContentChannel handleRequest(Request request, ResponseHandler responseHandler)
RequestHandler
This method will process the given Request
and return a ContentChannel
into which the caller
can write the Request's content. For every call to this method, the implementation must call the provided ResponseHandler
exactly once.
Notice that unless this method throws an Exception, a reference to the currently active Container
instance is kept internally until ResponseHandler.handleResponse(Response)
has been called. This ensures
that the configured environment of the Request is stable throughout its lifetime. Failure to call back with a
Response will prevent the release of that reference, and therefore prevent the corresponding Container from ever
shutting down. The requirement to call ResponseHandler.handleResponse(Response)
is regardless of any
subsequent errors that may occur while working with the returned ContentChannel.
request
- The Request to handle.responseHandler
- The handler to pass the corresponding Response
to.protected abstract ContentChannel handle(Request request, ResponseHandler responseHandler)
Copyright © 2017. All rights reserved.