Remove the deprecated constructors in SslHandler
This commit is contained in:
parent
53110a83b3
commit
f05a20029b
@ -31,7 +31,6 @@ import io.netty.util.concurrent.DefaultPromise;
|
||||
import io.netty.util.concurrent.EventExecutor;
|
||||
import io.netty.util.concurrent.Future;
|
||||
import io.netty.util.concurrent.GenericFutureListener;
|
||||
import io.netty.util.concurrent.ImmediateExecutor;
|
||||
import io.netty.util.internal.EmptyArrays;
|
||||
import io.netty.util.internal.PendingWrite;
|
||||
import io.netty.util.internal.PlatformDependent;
|
||||
@ -51,11 +50,8 @@ import java.nio.channels.ClosedChannelException;
|
||||
import java.nio.channels.DatagramChannel;
|
||||
import java.nio.channels.SocketChannel;
|
||||
import java.util.ArrayDeque;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Deque;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.CountDownLatch;
|
||||
import java.util.concurrent.Executor;
|
||||
import java.util.concurrent.ScheduledFuture;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import java.util.regex.Pattern;
|
||||
@ -179,7 +175,6 @@ public class SslHandler extends ByteToMessageDecoder {
|
||||
private volatile ChannelHandlerContext ctx;
|
||||
private final SSLEngine engine;
|
||||
private final int maxPacketBufferSize;
|
||||
private final Executor delegatedTaskExecutor;
|
||||
|
||||
private final boolean startTls;
|
||||
private boolean sentFirstMessage;
|
||||
@ -216,32 +211,11 @@ public class SslHandler extends ByteToMessageDecoder {
|
||||
* @param startTls {@code true} if the first write request shouldn't be
|
||||
* encrypted by the {@link SSLEngine}
|
||||
*/
|
||||
@SuppressWarnings("deprecation")
|
||||
public SslHandler(SSLEngine engine, boolean startTls) {
|
||||
this(engine, startTls, ImmediateExecutor.INSTANCE);
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated Use {@link #SslHandler(SSLEngine)} instead.
|
||||
*/
|
||||
@Deprecated
|
||||
public SslHandler(SSLEngine engine, Executor delegatedTaskExecutor) {
|
||||
this(engine, false, delegatedTaskExecutor);
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated Use {@link #SslHandler(SSLEngine, boolean)} instead.
|
||||
*/
|
||||
@Deprecated
|
||||
public SslHandler(SSLEngine engine, boolean startTls, Executor delegatedTaskExecutor) {
|
||||
if (engine == null) {
|
||||
throw new NullPointerException("engine");
|
||||
}
|
||||
if (delegatedTaskExecutor == null) {
|
||||
throw new NullPointerException("delegatedTaskExecutor");
|
||||
}
|
||||
this.engine = engine;
|
||||
this.delegatedTaskExecutor = delegatedTaskExecutor;
|
||||
this.startTls = startTls;
|
||||
maxPacketBufferSize = engine.getSession().getPacketBufferSize();
|
||||
}
|
||||
@ -938,65 +912,16 @@ public class SslHandler extends ByteToMessageDecoder {
|
||||
}
|
||||
|
||||
/**
|
||||
* Fetches all delegated tasks from the {@link SSLEngine} and runs them via the {@link #delegatedTaskExecutor}.
|
||||
* If the {@link #delegatedTaskExecutor} is {@link ImmediateExecutor}, just call {@link Runnable#run()} directly
|
||||
* instead of using {@link Executor#execute(Runnable)}. Otherwise, run the tasks via
|
||||
* the {@link #delegatedTaskExecutor} and wait until the tasks are finished.
|
||||
* Fetches all delegated tasks from the {@link SSLEngine} and runs them by invoking them directly.
|
||||
*/
|
||||
private void runDelegatedTasks() {
|
||||
if (delegatedTaskExecutor == ImmediateExecutor.INSTANCE) {
|
||||
for (;;) {
|
||||
Runnable task = engine.getDelegatedTask();
|
||||
if (task == null) {
|
||||
break;
|
||||
}
|
||||
|
||||
task.run();
|
||||
}
|
||||
} else {
|
||||
final List<Runnable> tasks = new ArrayList<Runnable>(2);
|
||||
for (;;) {
|
||||
final Runnable task = engine.getDelegatedTask();
|
||||
if (task == null) {
|
||||
break;
|
||||
}
|
||||
|
||||
tasks.add(task);
|
||||
for (;;) {
|
||||
Runnable task = engine.getDelegatedTask();
|
||||
if (task == null) {
|
||||
break;
|
||||
}
|
||||
|
||||
if (tasks.isEmpty()) {
|
||||
return;
|
||||
}
|
||||
|
||||
final CountDownLatch latch = new CountDownLatch(1);
|
||||
delegatedTaskExecutor.execute(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
try {
|
||||
for (Runnable task: tasks) {
|
||||
task.run();
|
||||
}
|
||||
} catch (Exception e) {
|
||||
ctx.fireExceptionCaught(e);
|
||||
} finally {
|
||||
latch.countDown();
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
boolean interrupted = false;
|
||||
while (latch.getCount() != 0) {
|
||||
try {
|
||||
latch.await();
|
||||
} catch (InterruptedException e) {
|
||||
// Interrupt later.
|
||||
interrupted = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (interrupted) {
|
||||
Thread.currentThread().interrupt();
|
||||
}
|
||||
task.run();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -40,8 +40,6 @@ import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import java.util.Random;
|
||||
import java.util.concurrent.ExecutorService;
|
||||
import java.util.concurrent.Executors;
|
||||
import java.util.concurrent.atomic.AtomicBoolean;
|
||||
import java.util.concurrent.atomic.AtomicReference;
|
||||
|
||||
@ -58,29 +56,21 @@ public class SocketSslEchoTest extends AbstractSocketTest {
|
||||
random.nextBytes(data);
|
||||
}
|
||||
|
||||
@Parameters(name = "{index}: " +
|
||||
"serverUsesDelegatedTaskExecutor = {0}, clientUsesDelegatedTaskExecutor = {1}, " +
|
||||
"useChunkedWriteHandler = {2}, useCompositeByteBuf = {3}")
|
||||
@Parameters(name = "{index}: useChunkedWriteHandler = {0}, useCompositeByteBuf = {1}")
|
||||
public static Collection<Object[]> data() {
|
||||
List<Object[]> params = new ArrayList<Object[]>();
|
||||
for (int i = 0; i < 16; i ++) {
|
||||
for (int i = 0; i < 4; i ++) {
|
||||
params.add(new Object[] {
|
||||
(i & 8) != 0, (i & 4) != 0, (i & 2) != 0, (i & 1) != 0
|
||||
(i & 2) != 0, (i & 1) != 0
|
||||
});
|
||||
}
|
||||
return params;
|
||||
}
|
||||
|
||||
private final boolean serverUsesDelegatedTaskExecutor;
|
||||
private final boolean clientUsesDelegatedTaskExecutor;
|
||||
private final boolean useChunkedWriteHandler;
|
||||
private final boolean useCompositeByteBuf;
|
||||
|
||||
public SocketSslEchoTest(
|
||||
boolean serverUsesDelegatedTaskExecutor, boolean clientUsesDelegatedTaskExecutor,
|
||||
boolean useChunkedWriteHandler, boolean useCompositeByteBuf) {
|
||||
this.serverUsesDelegatedTaskExecutor = serverUsesDelegatedTaskExecutor;
|
||||
this.clientUsesDelegatedTaskExecutor = clientUsesDelegatedTaskExecutor;
|
||||
public SocketSslEchoTest(boolean useChunkedWriteHandler, boolean useCompositeByteBuf) {
|
||||
this.useChunkedWriteHandler = useChunkedWriteHandler;
|
||||
this.useCompositeByteBuf = useCompositeByteBuf;
|
||||
}
|
||||
@ -91,7 +81,6 @@ public class SocketSslEchoTest extends AbstractSocketTest {
|
||||
}
|
||||
|
||||
public void testSslEcho(ServerBootstrap sb, Bootstrap cb) throws Throwable {
|
||||
final ExecutorService delegatedTaskExecutor = Executors.newCachedThreadPool();
|
||||
final EchoHandler sh = new EchoHandler(true, useCompositeByteBuf);
|
||||
final EchoHandler ch = new EchoHandler(false, useCompositeByteBuf);
|
||||
|
||||
@ -104,11 +93,7 @@ public class SocketSslEchoTest extends AbstractSocketTest {
|
||||
@Override
|
||||
@SuppressWarnings("deprecation")
|
||||
public void initChannel(SocketChannel sch) throws Exception {
|
||||
if (serverUsesDelegatedTaskExecutor) {
|
||||
sch.pipeline().addFirst("ssl", new SslHandler(sse, delegatedTaskExecutor));
|
||||
} else {
|
||||
sch.pipeline().addFirst("ssl", new SslHandler(sse));
|
||||
}
|
||||
sch.pipeline().addFirst("ssl", new SslHandler(sse));
|
||||
if (useChunkedWriteHandler) {
|
||||
sch.pipeline().addLast(new ChunkedWriteHandler());
|
||||
}
|
||||
@ -120,11 +105,7 @@ public class SocketSslEchoTest extends AbstractSocketTest {
|
||||
@Override
|
||||
@SuppressWarnings("deprecation")
|
||||
public void initChannel(SocketChannel sch) throws Exception {
|
||||
if (clientUsesDelegatedTaskExecutor) {
|
||||
sch.pipeline().addFirst("ssl", new SslHandler(cse, delegatedTaskExecutor));
|
||||
} else {
|
||||
sch.pipeline().addFirst("ssl", new SslHandler(cse));
|
||||
}
|
||||
sch.pipeline().addFirst("ssl", new SslHandler(cse));
|
||||
if (useChunkedWriteHandler) {
|
||||
sch.pipeline().addLast(new ChunkedWriteHandler());
|
||||
}
|
||||
@ -186,7 +167,6 @@ public class SocketSslEchoTest extends AbstractSocketTest {
|
||||
sh.channel.close().awaitUninterruptibly();
|
||||
ch.channel.close().awaitUninterruptibly();
|
||||
sc.close().awaitUninterruptibly();
|
||||
delegatedTaskExecutor.shutdown();
|
||||
|
||||
if (sh.exception.get() != null && !(sh.exception.get() instanceof IOException)) {
|
||||
throw sh.exception.get();
|
||||
|
Loading…
Reference in New Issue
Block a user