Jetty9 - Generified HttpChannel and HttpParser listeners to follow the generification of HttpInput.
This commit is contained in:
parent
5e4a2508b1
commit
0acf2f9650
|
@ -1222,9 +1222,9 @@ public class HttpParser
|
||||||
* These methods return true if they want parsing to return to
|
* These methods return true if they want parsing to return to
|
||||||
* the caller.
|
* the caller.
|
||||||
*/
|
*/
|
||||||
public interface HttpHandler
|
public interface HttpHandler<T>
|
||||||
{
|
{
|
||||||
public boolean content(ByteBuffer ref);
|
public boolean content(T item);
|
||||||
|
|
||||||
public boolean headerComplete();
|
public boolean headerComplete();
|
||||||
|
|
||||||
|
@ -1244,7 +1244,7 @@ public class HttpParser
|
||||||
public void badMessage(int status, String reason);
|
public void badMessage(int status, String reason);
|
||||||
}
|
}
|
||||||
|
|
||||||
public interface RequestHandler extends HttpHandler
|
public interface RequestHandler<T> extends HttpHandler<T>
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* This is the method called by parser when the HTTP request line is parsed
|
* This is the method called by parser when the HTTP request line is parsed
|
||||||
|
@ -1259,7 +1259,7 @@ public class HttpParser
|
||||||
public abstract boolean parsedHostHeader(String host,int port);
|
public abstract boolean parsedHostHeader(String host,int port);
|
||||||
}
|
}
|
||||||
|
|
||||||
public interface ResponseHandler extends HttpHandler
|
public interface ResponseHandler<T> extends HttpHandler<T>
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* This is the method called by parser when the HTTP request line is parsed
|
* This is the method called by parser when the HTTP request line is parsed
|
||||||
|
|
|
@ -31,15 +31,15 @@ import org.eclipse.jetty.util.StringUtil;
|
||||||
|
|
||||||
public class HttpTester
|
public class HttpTester
|
||||||
{
|
{
|
||||||
private HttpTester(){};
|
private HttpTester()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
public static Request newRequest()
|
public static Request newRequest()
|
||||||
{
|
{
|
||||||
return new Request();
|
return new Request();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public static Request parseRequest(String request)
|
public static Request parseRequest(String request)
|
||||||
{
|
{
|
||||||
Request r=new Request();
|
Request r=new Request();
|
||||||
|
@ -73,7 +73,7 @@ public class HttpTester
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public abstract static class Message extends HttpFields implements HttpParser.HttpHandler
|
public abstract static class Message extends HttpFields implements HttpParser.HttpHandler<ByteBuffer>
|
||||||
{
|
{
|
||||||
ByteArrayOutputStream _content;
|
ByteArrayOutputStream _content;
|
||||||
HttpVersion _version=HttpVersion.HTTP_1_0;
|
HttpVersion _version=HttpVersion.HTTP_1_0;
|
||||||
|
@ -232,7 +232,7 @@ public class HttpTester
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static class Request extends Message implements HttpParser.RequestHandler
|
public static class Request extends Message implements HttpParser.RequestHandler<ByteBuffer>
|
||||||
{
|
{
|
||||||
private String _method;
|
private String _method;
|
||||||
private String _uri;
|
private String _uri;
|
||||||
|
@ -290,7 +290,7 @@ public class HttpTester
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static class Response extends Message implements HttpParser.ResponseHandler
|
public static class Response extends Message implements HttpParser.ResponseHandler<ByteBuffer>
|
||||||
{
|
{
|
||||||
private int _status;
|
private int _status;
|
||||||
private String _reason;
|
private String _reason;
|
||||||
|
|
|
@ -38,7 +38,7 @@ import static org.junit.Assert.assertTrue;
|
||||||
|
|
||||||
public class HttpGeneratorServerTest
|
public class HttpGeneratorServerTest
|
||||||
{
|
{
|
||||||
private class Handler implements HttpParser.ResponseHandler
|
private class Handler implements HttpParser.ResponseHandler<ByteBuffer>
|
||||||
{
|
{
|
||||||
@Override
|
@Override
|
||||||
public boolean content(ByteBuffer ref)
|
public boolean content(ByteBuffer ref)
|
||||||
|
|
|
@ -697,7 +697,7 @@ public class HttpParserTest
|
||||||
private boolean _headerCompleted;
|
private boolean _headerCompleted;
|
||||||
private boolean _messageCompleted;
|
private boolean _messageCompleted;
|
||||||
|
|
||||||
private class Handler implements HttpParser.RequestHandler, HttpParser.ResponseHandler
|
private class Handler implements HttpParser.RequestHandler<ByteBuffer>, HttpParser.ResponseHandler<ByteBuffer>
|
||||||
{
|
{
|
||||||
private HttpFields fields;
|
private HttpFields fields;
|
||||||
private boolean request;
|
private boolean request;
|
||||||
|
|
|
@ -43,7 +43,6 @@ import org.eclipse.jetty.io.ByteBufferPool;
|
||||||
import org.eclipse.jetty.io.EndPoint;
|
import org.eclipse.jetty.io.EndPoint;
|
||||||
import org.eclipse.jetty.io.EofException;
|
import org.eclipse.jetty.io.EofException;
|
||||||
import org.eclipse.jetty.server.handler.ErrorHandler;
|
import org.eclipse.jetty.server.handler.ErrorHandler;
|
||||||
import org.eclipse.jetty.util.BufferUtil;
|
|
||||||
import org.eclipse.jetty.util.StringUtil;
|
import org.eclipse.jetty.util.StringUtil;
|
||||||
import org.eclipse.jetty.util.URIUtil;
|
import org.eclipse.jetty.util.URIUtil;
|
||||||
import org.eclipse.jetty.util.log.Log;
|
import org.eclipse.jetty.util.log.Log;
|
||||||
|
@ -61,7 +60,7 @@ import org.eclipse.jetty.util.log.Logger;
|
||||||
* HttpTransport.completed().
|
* HttpTransport.completed().
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public class HttpChannel implements HttpParser.RequestHandler, Runnable
|
public class HttpChannel<T> implements HttpParser.RequestHandler<T>, Runnable
|
||||||
{
|
{
|
||||||
private static final Logger LOG = Log.getLogger(HttpChannel.class);
|
private static final Logger LOG = Log.getLogger(HttpChannel.class);
|
||||||
private static final ThreadLocal<HttpChannel> __currentChannel = new ThreadLocal<>();
|
private static final ThreadLocal<HttpChannel> __currentChannel = new ThreadLocal<>();
|
||||||
|
@ -91,7 +90,7 @@ public class HttpChannel implements HttpParser.RequestHandler, Runnable
|
||||||
private boolean _expect100Continue = false;
|
private boolean _expect100Continue = false;
|
||||||
private boolean _expect102Processing = false;
|
private boolean _expect102Processing = false;
|
||||||
|
|
||||||
public HttpChannel(Connector connector, HttpConfiguration configuration, EndPoint endPoint, HttpTransport transport, HttpInput input)
|
public HttpChannel(Connector connector, HttpConfiguration configuration, EndPoint endPoint, HttpTransport transport, HttpInput<T> input)
|
||||||
{
|
{
|
||||||
_connector = connector;
|
_connector = connector;
|
||||||
_configuration = configuration;
|
_configuration = configuration;
|
||||||
|
@ -279,7 +278,7 @@ public class HttpChannel implements HttpParser.RequestHandler, Runnable
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
_state.completed();
|
_state.completed();
|
||||||
|
|
||||||
if (!_response.isCommitted() && !_request.isHandled())
|
if (!_response.isCommitted() && !_request.isHandled())
|
||||||
_response.sendError(404);
|
_response.sendError(404);
|
||||||
|
|
||||||
|
@ -511,11 +510,13 @@ public class HttpChannel implements HttpParser.RequestHandler, Runnable
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean content(ByteBuffer ref)
|
public boolean content(T item)
|
||||||
{
|
{
|
||||||
if (LOG.isDebugEnabled())
|
if (LOG.isDebugEnabled())
|
||||||
LOG.debug("{} content {}", this, BufferUtil.toDetailString(ref));
|
LOG.debug("{} content {}", this, item);
|
||||||
_request.getHttpInput().content(ref);
|
@SuppressWarnings("unchecked")
|
||||||
|
HttpInput<T> input = _request.getHttpInput();
|
||||||
|
input.content(item);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -616,7 +617,6 @@ public class HttpChannel implements HttpParser.RequestHandler, Runnable
|
||||||
_connector.getExecutor().execute(task);
|
_connector.getExecutor().execute(task);
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: remove
|
|
||||||
public ScheduledExecutorService getScheduler()
|
public ScheduledExecutorService getScheduler()
|
||||||
{
|
{
|
||||||
return _connector.getScheduler();
|
return _connector.getScheduler();
|
||||||
|
|
|
@ -581,9 +581,9 @@ public class HttpConnection extends AbstractConnection implements Runnable, Http
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private class HttpChannelOverHttp extends HttpChannel
|
private class HttpChannelOverHttp extends HttpChannel<ByteBuffer>
|
||||||
{
|
{
|
||||||
public HttpChannelOverHttp(Connector connector, HttpConfiguration configuration, EndPoint endPoint, HttpTransport transport, HttpInput input)
|
public HttpChannelOverHttp(Connector connector, HttpConfiguration configuration, EndPoint endPoint, HttpTransport transport, HttpInput<ByteBuffer> input)
|
||||||
{
|
{
|
||||||
super(connector,configuration,endPoint,transport,input);
|
super(connector,configuration,endPoint,transport,input);
|
||||||
}
|
}
|
||||||
|
|
|
@ -44,7 +44,7 @@ public class HttpWriterTest
|
||||||
|
|
||||||
final HttpConfiguration configuration = new HttpConfiguration(null, false);
|
final HttpConfiguration configuration = new HttpConfiguration(null, false);
|
||||||
final ByteBufferPool bufferPool = new MappedByteBufferPool();
|
final ByteBufferPool bufferPool = new MappedByteBufferPool();
|
||||||
HttpChannel channel = new HttpChannel(null,null,null,null,null)
|
HttpChannel channel = new HttpChannel<ByteBuffer>(null,null,null,null,null)
|
||||||
{
|
{
|
||||||
@Override
|
@Override
|
||||||
public HttpConfiguration getHttpConfiguration()
|
public HttpConfiguration getHttpConfiguration()
|
||||||
|
|
Loading…
Reference in New Issue