Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSimone Bordet2011-11-10 20:52:33 +0000
committerSimone Bordet2011-11-10 20:52:33 +0000
commit09999a629d2130b96339cb7df59cabfbaf8b15d4 (patch)
treead045ee4a9d41db8ea272a3c4dc6ef2df39b911a /jetty-client/src/main/java/org
parent34fbbd5e2880977b8056873192c100ca645efdf2 (diff)
downloadorg.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')
-rw-r--r--jetty-client/src/main/java/org/eclipse/jetty/client/AsyncHttpConnection.java51
-rw-r--r--jetty-client/src/main/java/org/eclipse/jetty/client/BlockingHttpConnection.java46
-rw-r--r--jetty-client/src/main/java/org/eclipse/jetty/client/SelectConnector.java42
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();

Back to the top