Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--VERSION.txt1
-rw-r--r--example-jetty-embedded/src/main/java/org/eclipse/jetty/embedded/LikeJettyXml.java2
-rw-r--r--jetty-client/src/main/java/org/eclipse/jetty/client/HttpConnection.java2
-rw-r--r--jetty-client/src/main/java/org/eclipse/jetty/client/SelectConnector.java2
-rw-r--r--jetty-io/src/main/java/org/eclipse/jetty/io/nio/SelectorManager.java13
-rw-r--r--jetty-io/src/main/java/org/eclipse/jetty/io/nio/SslSelectChannelEndPoint.java (renamed from jetty-http/src/main/java/org/eclipse/jetty/http/ssl/SslSelectChannelEndPoint.java)167
-rw-r--r--jetty-io/src/test/java/org/eclipse/jetty/io/EndPointTest.java75
-rw-r--r--jetty-server/src/main/java/org/eclipse/jetty/server/ssl/SslCertificates.java2
-rw-r--r--jetty-server/src/main/java/org/eclipse/jetty/server/ssl/SslSelectChannelConnector.java6
9 files changed, 204 insertions, 66 deletions
diff --git a/VERSION.txt b/VERSION.txt
index ba8b6641e2..910cf5b822 100644
--- a/VERSION.txt
+++ b/VERSION.txt
@@ -1,5 +1,6 @@
jetty-SNAPSHOT
+ 308866 Update test suite to JUnit4 - Module jetty-util
+ + 312948 Recycle SSL crypto buffers
+ 313196 randomly allocate ports for session test.
+ 313336 secure websockets
+ Update links to jetty website and wiki on test webapp
diff --git a/example-jetty-embedded/src/main/java/org/eclipse/jetty/embedded/LikeJettyXml.java b/example-jetty-embedded/src/main/java/org/eclipse/jetty/embedded/LikeJettyXml.java
index 53d67062da..55a6c369ec 100644
--- a/example-jetty-embedded/src/main/java/org/eclipse/jetty/embedded/LikeJettyXml.java
+++ b/example-jetty-embedded/src/main/java/org/eclipse/jetty/embedded/LikeJettyXml.java
@@ -66,7 +66,7 @@ public class LikeJettyXml
server.setConnectors(new Connector[]
{ connector });
- SslSocketConnector ssl_connector = new SslSocketConnector();
+ SslSelectChannelConnector ssl_connector = new SslSelectChannelConnector();
ssl_connector.setPort(8443);
ssl_connector.setKeystore(jetty_home + "/etc/keystore");
ssl_connector.setPassword("OBF:1vny1zlo1x8e1vnw1vn61x8g1zlu1vn4");
diff --git a/jetty-client/src/main/java/org/eclipse/jetty/client/HttpConnection.java b/jetty-client/src/main/java/org/eclipse/jetty/client/HttpConnection.java
index 021756a79d..0c5f2a56fa 100644
--- a/jetty-client/src/main/java/org/eclipse/jetty/client/HttpConnection.java
+++ b/jetty-client/src/main/java/org/eclipse/jetty/client/HttpConnection.java
@@ -28,7 +28,6 @@ import org.eclipse.jetty.http.HttpParser;
import org.eclipse.jetty.http.HttpSchemes;
import org.eclipse.jetty.http.HttpStatus;
import org.eclipse.jetty.http.HttpVersions;
-import org.eclipse.jetty.http.ssl.SslSelectChannelEndPoint;
import org.eclipse.jetty.io.AsyncEndPoint;
import org.eclipse.jetty.io.Buffer;
import org.eclipse.jetty.io.Buffers;
@@ -37,6 +36,7 @@ import org.eclipse.jetty.io.Connection;
import org.eclipse.jetty.io.EndPoint;
import org.eclipse.jetty.io.View;
import org.eclipse.jetty.io.nio.SelectChannelEndPoint;
+import org.eclipse.jetty.io.nio.SslSelectChannelEndPoint;
import org.eclipse.jetty.util.log.Log;
import org.eclipse.jetty.util.thread.Timeout;
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 aba10d0615..730a53a01a 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
@@ -25,7 +25,6 @@ import javax.net.ssl.SSLSession;
import org.eclipse.jetty.http.HttpMethods;
import org.eclipse.jetty.http.HttpVersions;
-import org.eclipse.jetty.http.ssl.SslSelectChannelEndPoint;
import org.eclipse.jetty.io.Buffer;
import org.eclipse.jetty.io.Buffers;
import org.eclipse.jetty.io.ConnectedEndPoint;
@@ -35,6 +34,7 @@ import org.eclipse.jetty.io.nio.DirectNIOBuffer;
import org.eclipse.jetty.io.nio.IndirectNIOBuffer;
import org.eclipse.jetty.io.nio.SelectChannelEndPoint;
import org.eclipse.jetty.io.nio.SelectorManager;
+import org.eclipse.jetty.io.nio.SslSelectChannelEndPoint;
import org.eclipse.jetty.util.component.AbstractLifeCycle;
import org.eclipse.jetty.util.log.Log;
import org.eclipse.jetty.util.thread.Timeout;
diff --git a/jetty-io/src/main/java/org/eclipse/jetty/io/nio/SelectorManager.java b/jetty-io/src/main/java/org/eclipse/jetty/io/nio/SelectorManager.java
index 497d605c3f..faf2139335 100644
--- a/jetty-io/src/main/java/org/eclipse/jetty/io/nio/SelectorManager.java
+++ b/jetty-io/src/main/java/org/eclipse/jetty/io/nio/SelectorManager.java
@@ -56,7 +56,7 @@ public abstract class SelectorManager extends AbstractLifeCycle
private int _maxIdleTime;
private int _lowResourcesMaxIdleTime;
private long _lowResourcesConnections;
- private transient SelectSet[] _selectSet;
+ private SelectSet[] _selectSet;
private int _selectSets=1;
private volatile int _set;
@@ -98,7 +98,16 @@ public abstract class SelectorManager extends AbstractLifeCycle
{
return _selectSets;
}
-
+
+ /* ------------------------------------------------------------ */
+ /**
+ * @param i
+ * @return The select set
+ */
+ public SelectSet getSelectSet(int i)
+ {
+ return _selectSet[i];
+ }
/* ------------------------------------------------------------ */
/** Register a channel
* @param channel
diff --git a/jetty-http/src/main/java/org/eclipse/jetty/http/ssl/SslSelectChannelEndPoint.java b/jetty-io/src/main/java/org/eclipse/jetty/io/nio/SslSelectChannelEndPoint.java
index 12af314109..7b910fbc04 100644
--- a/jetty-http/src/main/java/org/eclipse/jetty/http/ssl/SslSelectChannelEndPoint.java
+++ b/jetty-io/src/main/java/org/eclipse/jetty/io/nio/SslSelectChannelEndPoint.java
@@ -11,7 +11,7 @@
// You may elect to redistribute this code under either of these licenses.
// ========================================================================
-package org.eclipse.jetty.http.ssl;
+package org.eclipse.jetty.io.nio;
import java.io.IOException;
import java.nio.ByteBuffer;
@@ -24,13 +24,9 @@ import javax.net.ssl.SSLException;
import javax.net.ssl.SSLSession;
import javax.net.ssl.SSLEngineResult.HandshakeStatus;
-import org.eclipse.jetty.http.Parser;
import org.eclipse.jetty.io.Buffer;
import org.eclipse.jetty.io.Buffers;
import org.eclipse.jetty.io.EofException;
-import org.eclipse.jetty.io.nio.NIOBuffer;
-import org.eclipse.jetty.io.nio.SelectChannelEndPoint;
-import org.eclipse.jetty.io.nio.SelectorManager;
import org.eclipse.jetty.util.log.Log;
import org.eclipse.jetty.util.log.Logger;
@@ -54,10 +50,8 @@ public class SslSelectChannelEndPoint extends SelectChannelEndPoint
private final SSLEngine _engine;
private final SSLSession _session;
- private final ByteBuffer _inBuffer;
- private final NIOBuffer _inNIOBuffer;
- private final ByteBuffer _outBuffer;
- private final NIOBuffer _outNIOBuffer;
+ private volatile NIOBuffer _inNIOBuffer;
+ private volatile NIOBuffer _outNIOBuffer;
private final ByteBuffer[] _gather=new ByteBuffer[2];
@@ -69,7 +63,6 @@ public class SslSelectChannelEndPoint extends SelectChannelEndPoint
private final boolean _debug = __log.isDebugEnabled(); // snapshot debug status for optimizer
-
/* ------------------------------------------------------------ */
public SslSelectChannelEndPoint(Buffers buffers,SocketChannel channel, SelectorManager.SelectSet selectSet, SelectionKey key, SSLEngine engine)
throws IOException
@@ -81,15 +74,46 @@ public class SslSelectChannelEndPoint extends SelectChannelEndPoint
_engine=engine;
_session=engine.getSession();
- // TODO pool buffers and use only when needed.
- _outNIOBuffer=(NIOBuffer)_buffers.getBuffer(_session.getPacketBufferSize());
- _outBuffer=_outNIOBuffer.getByteBuffer();
- _inNIOBuffer=(NIOBuffer)_buffers.getBuffer(_session.getPacketBufferSize());
- _inBuffer=_inNIOBuffer.getByteBuffer();
-
if (_debug) __log.debug(_session+" channel="+channel);
}
-
+
+ /* ------------------------------------------------------------ */
+ private void needOutBuffer()
+ {
+ if (_outNIOBuffer==null)
+ {
+ _outNIOBuffer=(NIOBuffer)_buffers.getBuffer(_session.getPacketBufferSize());
+ }
+ }
+
+ /* ------------------------------------------------------------ */
+ private void needInBuffer()
+ {
+ if (_inNIOBuffer==null)
+ {
+ _inNIOBuffer=(NIOBuffer)_buffers.getBuffer(_session.getPacketBufferSize());
+ }
+ }
+
+ /* ------------------------------------------------------------ */
+ private void freeOutBuffer()
+ {
+ if (_outNIOBuffer.length()==0)
+ {
+ _buffers.returnBuffer(_outNIOBuffer);
+ _outNIOBuffer=null;
+ }
+ }
+
+ /* ------------------------------------------------------------ */
+ private void freeInBuffer()
+ {
+ if (_inNIOBuffer.length()==0)
+ {
+ _buffers.returnBuffer(_inNIOBuffer);
+ _inNIOBuffer=null;
+ }
+ }
/* ------------------------------------------------------------ */
/**
@@ -194,19 +218,22 @@ public class SslSelectChannelEndPoint extends SelectChannelEndPoint
case NEED_WRAP:
{
+ needOutBuffer();
+ ByteBuffer out_buffer=_outNIOBuffer.getByteBuffer();
try
- {
+ {
_outNIOBuffer.compact();
int put=_outNIOBuffer.putIndex();
- _outBuffer.position(put);
+ out_buffer.position(put);
_result=null;
- _result=_engine.wrap(__NO_BUFFERS,_outBuffer);
+ _result=_engine.wrap(__NO_BUFFERS,out_buffer);
if (_debug) __log.debug(_session+" close wrap "+_result);
_outNIOBuffer.setPutIndex(put+_result.bytesProduced());
}
finally
{
- _outBuffer.position(0);
+ out_buffer.position(0);
+ freeOutBuffer();
}
break;
@@ -225,7 +252,6 @@ public class SslSelectChannelEndPoint extends SelectChannelEndPoint
finally
{
super.close();
-
if (_inNIOBuffer!=null)
_buffers.returnBuffer(_inNIOBuffer);
if (_outNIOBuffer!=null)
@@ -237,7 +263,7 @@ public class SslSelectChannelEndPoint extends SelectChannelEndPoint
/* ------------------------------------------------------------ */
/** Fill the buffer with unencrypted bytes.
- * Called by a {@link Parser} instance when more data is
+ * Called by a {@link org.eclipse.jetty.http.Parser} instance when more data is
* needed to continue parsing a request or a response.
*/
@Override
@@ -339,7 +365,9 @@ public class SslSelectChannelEndPoint extends SelectChannelEndPoint
// The SSL needs to send some handshake data to the other side,
// so let fill become a flush for a little bit.
wraps++;
- synchronized(_outBuffer)
+ needOutBuffer();
+ ByteBuffer out_buffer=_outNIOBuffer.getByteBuffer();
+ synchronized(out_buffer)
{
try
{
@@ -347,9 +375,9 @@ public class SslSelectChannelEndPoint extends SelectChannelEndPoint
// generate required handshake messages into _outNIOBuffer
_outNIOBuffer.compact();
int put=_outNIOBuffer.putIndex();
- _outBuffer.position();
+ out_buffer.position();
_result=null;
- _result=_engine.wrap(__NO_BUFFERS,_outBuffer);
+ _result=_engine.wrap(__NO_BUFFERS,out_buffer);
if (_debug) __log.debug(_session+" fill wrap "+_result);
switch(_result.getStatus())
{
@@ -364,13 +392,14 @@ public class SslSelectChannelEndPoint extends SelectChannelEndPoint
}
finally
{
- _outBuffer.position(0);
+ out_buffer.position(0);
}
}
// flush the encrypted outNIOBuffer
flush();
-
+ freeOutBuffer();
+
break;
}
}
@@ -416,7 +445,8 @@ public class SslSelectChannelEndPoint extends SelectChannelEndPoint
if (buffer!=null)
available+=buffer.length();
- int tries=0;
+ needOutBuffer();
+ ByteBuffer out_buffer=_outNIOBuffer.getByteBuffer();
loop: while (true)
{
if (_outNIOBuffer.length()>0)
@@ -495,15 +525,15 @@ public class SslSelectChannelEndPoint extends SelectChannelEndPoint
case NEED_WRAP:
{
checkRenegotiate();
- synchronized(_outBuffer)
+ synchronized(out_buffer)
{
try
{
_outNIOBuffer.compact();
int put=_outNIOBuffer.putIndex();
- _outBuffer.position();
+ out_buffer.position();
_result=null;
- _result=_engine.wrap(__NO_BUFFERS,_outBuffer);
+ _result=_engine.wrap(__NO_BUFFERS,out_buffer);
if (_debug) __log.debug(_session+" flush wrap "+_result);
switch(_result.getStatus())
{
@@ -517,7 +547,7 @@ public class SslSelectChannelEndPoint extends SelectChannelEndPoint
}
finally
{
- _outBuffer.position(0);
+ out_buffer.position(0);
}
}
@@ -529,7 +559,8 @@ public class SslSelectChannelEndPoint extends SelectChannelEndPoint
}
}
}
-
+
+ freeOutBuffer();
return consumed;
}
@@ -537,6 +568,9 @@ public class SslSelectChannelEndPoint extends SelectChannelEndPoint
@Override
public void flush() throws IOException
{
+ if (_outNIOBuffer==null)
+ return;
+
int len=_outNIOBuffer.length();
if (isBufferingOutput())
{
@@ -578,6 +612,9 @@ public class SslSelectChannelEndPoint extends SelectChannelEndPoint
*/
private boolean unwrap(ByteBuffer buffer) throws IOException
{
+ needInBuffer();
+ ByteBuffer in_buffer=_inNIOBuffer.getByteBuffer();
+
if (_inNIOBuffer.hasContent())
_inNIOBuffer.compact();
else
@@ -602,7 +639,11 @@ public class SslSelectChannelEndPoint extends SelectChannelEndPoint
{
if (_inNIOBuffer.length()==0)
{
- _outNIOBuffer.clear();
+ if (_outNIOBuffer!=null)
+ {
+ _outNIOBuffer.clear();
+ freeOutBuffer();
+ }
throw e;
}
break;
@@ -614,7 +655,8 @@ public class SslSelectChannelEndPoint extends SelectChannelEndPoint
{
if(!isOpen())
{
- _outNIOBuffer.clear();
+ if (_outNIOBuffer!=null)
+ _outNIOBuffer.clear();
throw new EofException();
}
return false;
@@ -625,12 +667,12 @@ public class SslSelectChannelEndPoint extends SelectChannelEndPoint
{
// inBuffer is the NIO buffer inside the _inNIOBuffer,
// so update its position and limit from the inNIOBuffer.
- _inBuffer.position(_inNIOBuffer.getIndex());
- _inBuffer.limit(_inNIOBuffer.putIndex());
+ in_buffer.position(_inNIOBuffer.getIndex());
+ in_buffer.limit(_inNIOBuffer.putIndex());
_result=null;
// Do the unwrap
- _result=_engine.unwrap(_inBuffer,buffer);
+ _result=_engine.unwrap(in_buffer,buffer);
if (_debug) __log.debug(_session+" unwrap unwrap "+_result);
// skip the bytes consumed
@@ -639,8 +681,9 @@ public class SslSelectChannelEndPoint extends SelectChannelEndPoint
finally
{
// reset the buffer so it can be managed by the _inNIOBuffer again.
- _inBuffer.position(0);
- _inBuffer.limit(_inBuffer.capacity());
+ in_buffer.position(0);
+ in_buffer.limit(in_buffer.capacity());
+ freeInBuffer();
}
// handle the unwrap results
@@ -658,7 +701,8 @@ public class SslSelectChannelEndPoint extends SelectChannelEndPoint
if(!isOpen())
{
_inNIOBuffer.clear();
- _outNIOBuffer.clear();
+ if (_outNIOBuffer!=null)
+ _outNIOBuffer.clear();
throw new EofException();
}
return (total_filled > 0);
@@ -703,17 +747,19 @@ public class SslSelectChannelEndPoint extends SelectChannelEndPoint
_gather[1].position(buffer.getIndex());
_gather[1].limit(buffer.putIndex());
- synchronized(_outBuffer)
+ needOutBuffer();
+ ByteBuffer out_buffer=_outNIOBuffer.getByteBuffer();
+ synchronized(out_buffer)
{
int consumed=0;
try
{
_outNIOBuffer.clear();
- _outBuffer.position(0);
- _outBuffer.limit(_outBuffer.capacity());
+ out_buffer.position(0);
+ out_buffer.limit(out_buffer.capacity());
_result=null;
- _result=_engine.wrap(_gather,_outBuffer);
+ _result=_engine.wrap(_gather,out_buffer);
if (_debug) __log.debug(_session+" wrap wrap "+_result);
_outNIOBuffer.setGetIndex(0);
_outNIOBuffer.setPutIndex(_result.bytesProduced());
@@ -721,7 +767,7 @@ public class SslSelectChannelEndPoint extends SelectChannelEndPoint
}
finally
{
- _outBuffer.position(0);
+ out_buffer.position(0);
if (consumed>0)
{
@@ -740,6 +786,8 @@ public class SslSelectChannelEndPoint extends SelectChannelEndPoint
_gather[1].limit(_gather[1].capacity());
}
assert consumed==0;
+
+ freeOutBuffer();
}
}
}
@@ -776,15 +824,17 @@ public class SslSelectChannelEndPoint extends SelectChannelEndPoint
_gather[0].limit(buffer.putIndex());
int consumed=0;
- synchronized(_outBuffer)
+ needOutBuffer();
+ ByteBuffer out_buffer=_outNIOBuffer.getByteBuffer();
+ synchronized(out_buffer)
{
try
{
_outNIOBuffer.clear();
- _outBuffer.position(0);
- _outBuffer.limit(_outBuffer.capacity());
+ out_buffer.position(0);
+ out_buffer.limit(out_buffer.capacity());
_result=null;
- _result=_engine.wrap(_gather[0],_outBuffer);
+ _result=_engine.wrap(_gather[0],out_buffer);
if (_debug) __log.debug(_session+" wrap wrap "+_result);
_outNIOBuffer.setGetIndex(0);
_outNIOBuffer.setPutIndex(_result.bytesProduced());
@@ -792,7 +842,7 @@ public class SslSelectChannelEndPoint extends SelectChannelEndPoint
}
finally
{
- _outBuffer.position(0);
+ out_buffer.position(0);
if (consumed>0)
{
@@ -803,6 +853,8 @@ public class SslSelectChannelEndPoint extends SelectChannelEndPoint
_gather[0].limit(_gather[0].capacity());
}
assert consumed==0;
+
+ freeOutBuffer();
}
}
}
@@ -828,14 +880,16 @@ public class SslSelectChannelEndPoint extends SelectChannelEndPoint
@Override
public boolean isBufferingInput()
{
- return _inNIOBuffer.hasContent();
+ final Buffer in = _inNIOBuffer;
+ return in==null?false:_inNIOBuffer.hasContent();
}
/* ------------------------------------------------------------ */
@Override
public boolean isBufferingOutput()
{
- return _outNIOBuffer.hasContent();
+ final NIOBuffer b=_outNIOBuffer;
+ return b==null?false:b.hasContent();
}
/* ------------------------------------------------------------ */
@@ -855,6 +909,9 @@ public class SslSelectChannelEndPoint extends SelectChannelEndPoint
@Override
public String toString()
{
- return super.toString()+","+_engine.getHandshakeStatus()+", in/out="+_inNIOBuffer.length()+"/"+_outNIOBuffer.length()+" "+_result;
+ final NIOBuffer i=_inNIOBuffer;
+ final NIOBuffer o=_outNIOBuffer;
+ return super.toString()+","+_engine.getHandshakeStatus()+", in/out="+
+ (i==null?0:_inNIOBuffer.length())+"/"+(o==null?0:o.length())+" "+_result;
}
}
diff --git a/jetty-io/src/test/java/org/eclipse/jetty/io/EndPointTest.java b/jetty-io/src/test/java/org/eclipse/jetty/io/EndPointTest.java
new file mode 100644
index 0000000000..c0a7d1a9dd
--- /dev/null
+++ b/jetty-io/src/test/java/org/eclipse/jetty/io/EndPointTest.java
@@ -0,0 +1,75 @@
+package org.eclipse.jetty.io;
+
+import java.io.IOException;
+import java.net.InetAddress;
+import java.net.ServerSocket;
+import java.net.Socket;
+import java.nio.channels.SelectionKey;
+import java.nio.channels.ServerSocketChannel;
+import java.nio.channels.SocketChannel;
+import java.rmi.server.ServerCloneException;
+import java.util.concurrent.Exchanger;
+import java.util.concurrent.TimeUnit;
+import java.util.concurrent.atomic.AtomicReference;
+
+import javax.net.ServerSocketFactory;
+
+import org.eclipse.jetty.io.bio.SocketEndPoint;
+import org.eclipse.jetty.io.nio.IndirectNIOBuffer;
+import org.eclipse.jetty.io.nio.SelectChannelEndPoint;
+import org.eclipse.jetty.io.nio.SelectorManager;
+import org.eclipse.jetty.io.nio.SslSelectChannelEndPoint;
+import org.eclipse.jetty.io.nio.SelectorManager.SelectSet;
+import org.junit.Assert;
+import org.junit.Test;
+
+public class EndPointTest
+{
+ @Test
+ public void testSocketEndPoints() throws Exception
+ {
+ final ServerSocket server = new ServerSocket();
+ server.bind(null);
+
+ final Exchanger<Socket> accepted = new Exchanger<Socket>();
+ new Thread(){
+ public void run()
+ {
+ try
+ {
+ accepted.exchange(server.accept());
+ }
+ catch(Exception e)
+ {
+ e.printStackTrace();
+ }
+ }
+ }.start();
+
+ Socket s0 = new Socket(server.getInetAddress(),server.getLocalPort());
+ Socket s1 = accepted.exchange(null,5,TimeUnit.SECONDS);
+
+ SocketEndPoint in = new SocketEndPoint(s0);
+ SocketEndPoint out = new SocketEndPoint(s1);
+
+ check(in,out);
+ }
+
+
+ private void check(EndPoint in, EndPoint out) throws Exception
+ {
+ String data="Now is the time for all good men to come to the aid of the party";
+ Buffer send = new ByteArrayBuffer(data);
+ Buffer receive = new IndirectNIOBuffer(4096);
+
+ int lo=out.flush(send);
+ int li=in.fill(receive);
+
+ Assert.assertEquals(data.length(),lo);
+ Assert.assertEquals(data.length(),li);
+ Assert.assertEquals(data,receive.toString());
+
+ in.close();
+ out.close();
+ }
+}
diff --git a/jetty-server/src/main/java/org/eclipse/jetty/server/ssl/SslCertificates.java b/jetty-server/src/main/java/org/eclipse/jetty/server/ssl/SslCertificates.java
index 94803ab856..25b1ac7dda 100644
--- a/jetty-server/src/main/java/org/eclipse/jetty/server/ssl/SslCertificates.java
+++ b/jetty-server/src/main/java/org/eclipse/jetty/server/ssl/SslCertificates.java
@@ -10,9 +10,9 @@ import javax.net.ssl.SSLSession;
import javax.net.ssl.SSLSocket;
import org.eclipse.jetty.http.HttpSchemes;
-import org.eclipse.jetty.http.ssl.SslSelectChannelEndPoint;
import org.eclipse.jetty.io.EndPoint;
import org.eclipse.jetty.io.bio.SocketEndPoint;
+import org.eclipse.jetty.io.nio.SslSelectChannelEndPoint;
import org.eclipse.jetty.server.Request;
import org.eclipse.jetty.util.TypeUtil;
import org.eclipse.jetty.util.log.Log;
diff --git a/jetty-server/src/main/java/org/eclipse/jetty/server/ssl/SslSelectChannelConnector.java b/jetty-server/src/main/java/org/eclipse/jetty/server/ssl/SslSelectChannelConnector.java
index 101787f828..71bb96de93 100644
--- a/jetty-server/src/main/java/org/eclipse/jetty/server/ssl/SslSelectChannelConnector.java
+++ b/jetty-server/src/main/java/org/eclipse/jetty/server/ssl/SslSelectChannelConnector.java
@@ -13,14 +13,12 @@
package org.eclipse.jetty.server.ssl;
-import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.nio.channels.SelectionKey;
import java.nio.channels.SocketChannel;
import java.security.KeyStore;
import java.security.SecureRandom;
-import java.security.cert.X509Certificate;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
@@ -29,7 +27,6 @@ import javax.net.ssl.KeyManager;
import javax.net.ssl.KeyManagerFactory;
import javax.net.ssl.SSLContext;
import javax.net.ssl.SSLEngine;
-import javax.net.ssl.SSLPeerUnverifiedException;
import javax.net.ssl.SSLSession;
import javax.net.ssl.SSLSocket;
import javax.net.ssl.TrustManager;
@@ -38,7 +35,6 @@ import javax.net.ssl.TrustManagerFactory;
import org.eclipse.jetty.http.HttpParser;
import org.eclipse.jetty.http.HttpSchemes;
import org.eclipse.jetty.http.security.Password;
-import org.eclipse.jetty.http.ssl.SslSelectChannelEndPoint;
import org.eclipse.jetty.io.Buffer;
import org.eclipse.jetty.io.Buffers;
import org.eclipse.jetty.io.Connection;
@@ -47,11 +43,11 @@ import org.eclipse.jetty.io.ThreadLocalBuffers;
import org.eclipse.jetty.io.bio.SocketEndPoint;
import org.eclipse.jetty.io.nio.DirectNIOBuffer;
import org.eclipse.jetty.io.nio.SelectChannelEndPoint;
+import org.eclipse.jetty.io.nio.SslSelectChannelEndPoint;
import org.eclipse.jetty.io.nio.SelectorManager.SelectSet;
import org.eclipse.jetty.server.HttpConnection;
import org.eclipse.jetty.server.Request;
import org.eclipse.jetty.server.nio.SelectChannelConnector;
-import org.eclipse.jetty.util.TypeUtil;
import org.eclipse.jetty.util.log.Log;
import org.eclipse.jetty.util.resource.Resource;

Back to the top