diff options
author | Simone Bordet | 2011-11-10 20:52:33 +0000 |
---|---|---|
committer | Simone Bordet | 2011-11-10 20:52:33 +0000 |
commit | 09999a629d2130b96339cb7df59cabfbaf8b15d4 (patch) | |
tree | ad045ee4a9d41db8ea272a3c4dc6ef2df39b911a /jetty-client/src/main/java/org | |
parent | 34fbbd5e2880977b8056873192c100ca645efdf2 (diff) | |
download | org.eclipse.jetty.project-09999a629d2130b96339cb7df59cabfbaf8b15d4.tar.gz org.eclipse.jetty.project-09999a629d2130b96339cb7df59cabfbaf8b15d4.tar.xz org.eclipse.jetty.project-09999a629d2130b96339cb7df59cabfbaf8b15d4.zip |
Removed EndPoint.isBufferingOutput().
Diffstat (limited to 'jetty-client/src/main/java/org')
3 files changed, 62 insertions, 77 deletions
diff --git a/jetty-client/src/main/java/org/eclipse/jetty/client/AsyncHttpConnection.java b/jetty-client/src/main/java/org/eclipse/jetty/client/AsyncHttpConnection.java index 29412e5957..ec35d4d8fa 100644 --- a/jetty-client/src/main/java/org/eclipse/jetty/client/AsyncHttpConnection.java +++ b/jetty-client/src/main/java/org/eclipse/jetty/client/AsyncHttpConnection.java @@ -16,7 +16,6 @@ package org.eclipse.jetty.client; import java.io.IOException; import org.eclipse.jetty.http.AbstractGenerator; -import org.eclipse.jetty.http.HttpParser; import org.eclipse.jetty.http.HttpStatus; import org.eclipse.jetty.io.AsyncEndPoint; import org.eclipse.jetty.io.Buffer; @@ -24,7 +23,6 @@ import org.eclipse.jetty.io.Buffers; import org.eclipse.jetty.io.Connection; import org.eclipse.jetty.io.EndPoint; import org.eclipse.jetty.io.nio.AsyncConnection; -import org.eclipse.jetty.io.nio.SelectChannelEndPoint; import org.eclipse.jetty.util.log.Log; import org.eclipse.jetty.util.log.Logger; @@ -36,11 +34,11 @@ import org.eclipse.jetty.util.log.Logger; public class AsyncHttpConnection extends AbstractHttpConnection implements AsyncConnection { private static final Logger LOG = Log.getLogger(AsyncHttpConnection.class); - + private boolean _requestComplete; private Buffer _requestContentChunk; private final AsyncEndPoint _asyncEndp; - + AsyncHttpConnection(Buffers requestBuffers, Buffers responseBuffers, EndPoint endp) { super(requestBuffers,responseBuffers,endp); @@ -52,7 +50,7 @@ public class AsyncHttpConnection extends AbstractHttpConnection implements Async _requestComplete = false; super.reset(); } - + public Connection handle() throws IOException { Connection connection = this; @@ -61,19 +59,19 @@ public class AsyncHttpConnection extends AbstractHttpConnection implements Async try { boolean failed = false; - + // While we are making progress and have not changed connection while (progress && connection==this) { LOG.debug("while open={} more={} buffering={} progress={}",_endp.isOpen(),_parser.isMoreInBuffer(),_endp.isBufferingInput(),progress); - + progress=false; HttpExchange exchange=_exchange; - + LOG.debug("exchange {} on {}",exchange,this); - + try - { + { // Should we commit the request? if (!_generator.isCommitted() && exchange!=null && exchange.getStatus() == HttpExchange.STATUS_WAITING_FOR_COMMIT) { @@ -97,7 +95,7 @@ public class AsyncHttpConnection extends AbstractHttpConnection implements Async // Look for more content to send. if (_requestContentChunk==null) _requestContentChunk = exchange.getRequestContentChunk(null); - + if (_requestContentChunk==null) { LOG.debug("complete {}",exchange); @@ -114,7 +112,7 @@ public class AsyncHttpConnection extends AbstractHttpConnection implements Async } } } - + // Signal request completion if (_generator.isComplete() && !_requestComplete) { @@ -123,18 +121,17 @@ public class AsyncHttpConnection extends AbstractHttpConnection implements Async _requestComplete = true; exchange.getEventListener().onRequestComplete(); } - - // Flush output from buffering endpoint - if (_endp.isBufferingOutput()) - _endp.flush(); - + + // Flush output + _endp.flush(); + // Read any input that is available if (!_parser.isComplete() && _parser.parseAvailable()) { LOG.debug("parsed"); progress=true; } - + // Has any IO been done by the endpoint itself since last loop if (_asyncEndp.hasProgressed()) { @@ -181,9 +178,9 @@ public class AsyncHttpConnection extends AbstractHttpConnection implements Async finally { LOG.debug("finally {} on {} progress={} {}",exchange,this,progress,_endp); - + boolean complete = failed || _generator.isComplete() && _parser.isComplete(); - + if (complete) { boolean persistent = !failed && _parser.isPersistent() && _generator.isPersistent(); @@ -201,10 +198,10 @@ public class AsyncHttpConnection extends AbstractHttpConnection implements Async if (exchange!=null) { exchange.cancelTimeout(_destination.getHttpClient()); - + // TODO should we check the exchange is done? } - + // handle switched protocols if (_status==HttpStatus.SWITCHING_PROTOCOLS_101) { @@ -221,7 +218,7 @@ public class AsyncHttpConnection extends AbstractHttpConnection implements Async connection=switched; } } - + // handle pipelined requests if (_pipeline!=null) { @@ -231,11 +228,11 @@ public class AsyncHttpConnection extends AbstractHttpConnection implements Async _exchange=_pipeline; _pipeline=null; } - + if (_exchange==null && !isReserved()) // TODO how do we return switched connections? _destination.returnConnection(this, !persistent); } - + } } } @@ -249,13 +246,13 @@ public class AsyncHttpConnection extends AbstractHttpConnection implements Async return connection; } - + public void onInputShutdown() throws IOException { if (_generator.isIdle()) _endp.shutdownOutput(); } - + @Override public boolean send(HttpExchange ex) throws IOException { diff --git a/jetty-client/src/main/java/org/eclipse/jetty/client/BlockingHttpConnection.java b/jetty-client/src/main/java/org/eclipse/jetty/client/BlockingHttpConnection.java index 35ff0cec2a..35cc87e47b 100644 --- a/jetty-client/src/main/java/org/eclipse/jetty/client/BlockingHttpConnection.java +++ b/jetty-client/src/main/java/org/eclipse/jetty/client/BlockingHttpConnection.java @@ -17,7 +17,6 @@ import java.io.IOException; import java.io.InterruptedIOException; import org.eclipse.jetty.http.AbstractGenerator; -import org.eclipse.jetty.http.HttpParser; import org.eclipse.jetty.http.HttpStatus; import org.eclipse.jetty.io.Buffer; import org.eclipse.jetty.io.Buffers; @@ -38,7 +37,7 @@ public class BlockingHttpConnection extends AbstractHttpConnection private boolean _requestComplete; private int _status; private Buffer _requestContentChunk; - + BlockingHttpConnection(Buffers requestBuffers, Buffers responseBuffers, EndPoint endp) { super(requestBuffers,responseBuffers,endp); @@ -49,7 +48,7 @@ public class BlockingHttpConnection extends AbstractHttpConnection _requestComplete = false; super.reset(); } - + @Override public Connection handle() throws IOException { @@ -59,7 +58,7 @@ public class BlockingHttpConnection extends AbstractHttpConnection { boolean failed = false; - + // While we are making progress and have not changed connection while (_endp.isOpen() && connection==this) { @@ -69,7 +68,7 @@ public class BlockingHttpConnection extends AbstractHttpConnection synchronized (this) { exchange=_exchange; - + while (exchange == null) { try @@ -84,9 +83,9 @@ public class BlockingHttpConnection extends AbstractHttpConnection } } LOG.debug("exchange {}",exchange); - + try - { + { // Should we commit the request? if (!_generator.isCommitted() && exchange!=null && exchange.getStatus() == HttpExchange.STATUS_WAITING_FOR_COMMIT) { @@ -108,7 +107,7 @@ public class BlockingHttpConnection extends AbstractHttpConnection // Look for more content to send. if (_requestContentChunk==null) _requestContentChunk = exchange.getRequestContentChunk(null); - + if (_requestContentChunk==null) { LOG.debug("complete"); @@ -123,7 +122,7 @@ public class BlockingHttpConnection extends AbstractHttpConnection } } } - + // Signal request completion if (_generator.isComplete() && !_requestComplete) { @@ -131,17 +130,16 @@ public class BlockingHttpConnection extends AbstractHttpConnection _requestComplete = true; exchange.getEventListener().onRequestComplete(); } - - // Flush output from buffering endpoint - if (_endp.isBufferingOutput()) - _endp.flush(); - + + // Flush output + _endp.flush(); + // Read any input that is available if (!_parser.isComplete() && _parser.parseAvailable()) { LOG.debug("parsed"); } - + } catch (ThreadDeath e) { @@ -183,9 +181,9 @@ public class BlockingHttpConnection extends AbstractHttpConnection { LOG.debug("{} {}",_generator, _parser); LOG.debug("{}",_endp); - + boolean complete = failed || _generator.isComplete() && _parser.isComplete(); - + if (complete) { boolean persistent = !failed && _parser.isPersistent() && _generator.isPersistent(); @@ -203,10 +201,10 @@ public class BlockingHttpConnection extends AbstractHttpConnection if (exchange!=null) { exchange.cancelTimeout(_destination.getHttpClient()); - + // TODO should we check the exchange is done? } - + // handle switched protocols if (_status==HttpStatus.SWITCHING_PROTOCOLS_101) { @@ -223,7 +221,7 @@ public class BlockingHttpConnection extends AbstractHttpConnection connection=switched; } } - + // handle pipelined requests if (_pipeline!=null) { @@ -233,11 +231,11 @@ public class BlockingHttpConnection extends AbstractHttpConnection _exchange=_pipeline; _pipeline=null; } - + if (_exchange==null && !isReserved()) // TODO how do we return switched connections? _destination.returnConnection(this, !persistent); } - + } } } @@ -251,14 +249,14 @@ public class BlockingHttpConnection extends AbstractHttpConnection return connection; } - + public void onInputShutdown() throws IOException { if (_generator.isIdle()) _endp.shutdownOutput(); } - + @Override public boolean send(HttpExchange ex) throws IOException { diff --git a/jetty-client/src/main/java/org/eclipse/jetty/client/SelectConnector.java b/jetty-client/src/main/java/org/eclipse/jetty/client/SelectConnector.java index 17addf51ec..ca09d62a03 100644 --- a/jetty-client/src/main/java/org/eclipse/jetty/client/SelectConnector.java +++ b/jetty-client/src/main/java/org/eclipse/jetty/client/SelectConnector.java @@ -20,15 +20,10 @@ import java.nio.channels.SocketChannel; import java.nio.channels.UnresolvedAddressException; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; - import javax.net.ssl.SSLEngine; -import javax.net.ssl.SSLSession; import org.eclipse.jetty.io.AsyncEndPoint; import org.eclipse.jetty.io.Buffer; -import org.eclipse.jetty.io.Buffers; -import org.eclipse.jetty.io.Buffers.Type; -import org.eclipse.jetty.io.BuffersFactory; import org.eclipse.jetty.io.ConnectedEndPoint; import org.eclipse.jetty.io.Connection; import org.eclipse.jetty.io.nio.AsyncConnection; @@ -49,7 +44,7 @@ class SelectConnector extends AbstractLifeCycle implements HttpClient.Connector private final HttpClient _httpClient; private final Manager _selectorManager=new Manager(); private final Map<SocketChannel, Timeout.Task> _connectingChannels = new ConcurrentHashMap<SocketChannel, Timeout.Task>(); - + /** * @param httpClient the HttpClient this connector is associated to */ @@ -94,7 +89,7 @@ class SelectConnector extends AbstractLifeCycle implements HttpClient.Connector else { channel.configureBlocking(false); - channel.connect(address.toSocketAddress()); + channel.connect(address.toSocketAddress()); _selectorManager.register(channel,destination); ConnectTimeout connectTimeout = new ConnectTimeout(channel,destination); _httpClient.schedule(connectTimeout,_httpClient.getConnectTimeout()); @@ -119,7 +114,7 @@ class SelectConnector extends AbstractLifeCycle implements HttpClient.Connector class Manager extends SelectorManager { Logger LOG = SelectConnector.LOG; - + @Override public boolean dispatch(Runnable task) { @@ -164,24 +159,24 @@ class SelectConnector extends AbstractLifeCycle implements HttpClient.Connector SelectChannelEndPoint scep= new SelectChannelEndPoint(channel, selectSet, key, (int)_httpClient.getIdleTimeout()); ep = scep; - + if (dest.isSecure()) { LOG.debug("secure to {}, proxied={}",channel,dest.isProxied()); ep = new UpgradableEndPoint(ep,newSslEngine(channel)); } - + AsyncConnection connection = selectSet.getManager().newConnection(channel,ep, key.attachment()); ep.setConnection(connection); - + AbstractHttpConnection httpConnection=(AbstractHttpConnection)connection; httpConnection.setDestination(dest); - + if (dest.isSecure() && !dest.isProxied()) ((UpgradableEndPoint)ep).upgrade(); - + dest.onNewConnection(httpConnection); - + return scep; } @@ -215,7 +210,7 @@ class SelectConnector extends AbstractLifeCycle implements HttpClient.Connector Timeout.Task connectTimeout = _connectingChannels.remove(channel); if (connectTimeout != null) connectTimeout.cancel(); - + if (attachment instanceof HttpDestination) ((HttpDestination)attachment).onConnectionFailed(ex); else @@ -253,12 +248,12 @@ class SelectConnector extends AbstractLifeCycle implements HttpClient.Connector } } } - + public static class UpgradableEndPoint implements AsyncEndPoint { AsyncEndPoint _endp; SSLEngine _engine; - + public UpgradableEndPoint(AsyncEndPoint endp, SSLEngine engine) throws IOException { _engine=engine; @@ -268,17 +263,17 @@ class SelectConnector extends AbstractLifeCycle implements HttpClient.Connector public void upgrade() { AsyncHttpConnection connection = (AsyncHttpConnection) ((SelectChannelEndPoint)_endp).getConnection(); - + SslConnection sslConnection = new SslConnection(_engine,_endp); ((SelectChannelEndPoint)_endp).setConnection(sslConnection); _endp=sslConnection.getSslEndPoint(); sslConnection.getSslEndPoint().setConnection(connection); - + LOG.debug("upgrade {} to {} for {}",this,sslConnection,connection); } - - + + public Connection getConnection() { return _endp.getConnection(); @@ -429,11 +424,6 @@ class SelectConnector extends AbstractLifeCycle implements HttpClient.Connector return _endp.isBufferingInput(); } - public boolean isBufferingOutput() - { - return _endp.isBufferingOutput(); - } - public void flush() throws IOException { _endp.flush(); |