X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fcommons%2Fprotocol-framework%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fprotocol%2Fframework%2FReconnectPromise.java;h=f9fadb04b0e0c19b8d89444883c71ac0d58a1a5e;hp=ddf5d438f3b3f74d1e915c76be78e2fd85b4fbc8;hb=e2d1c4c0fb80825a35e552c78b13808fa48f9197;hpb=503d824302de98ae7d9fd44c6c417ed651865919;ds=sidebyside diff --git a/opendaylight/commons/protocol-framework/src/main/java/org/opendaylight/protocol/framework/ReconnectPromise.java b/opendaylight/commons/protocol-framework/src/main/java/org/opendaylight/protocol/framework/ReconnectPromise.java index ddf5d438f3..f9fadb04b0 100644 --- a/opendaylight/commons/protocol-framework/src/main/java/org/opendaylight/protocol/framework/ReconnectPromise.java +++ b/opendaylight/commons/protocol-framework/src/main/java/org/opendaylight/protocol/framework/ReconnectPromise.java @@ -11,12 +11,10 @@ import com.google.common.base.Preconditions; import io.netty.bootstrap.Bootstrap; import io.netty.channel.ChannelHandlerContext; import io.netty.channel.ChannelInboundHandlerAdapter; -import io.netty.channel.socket.SocketChannel; 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.Promise; import java.net.InetSocketAddress; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -46,24 +44,18 @@ final class ReconnectPromise, L extends SessionList final ReconnectStrategy cs = this.strategyFactory.createReconnectStrategy(); // Set up a client with pre-configured bootstrap, but add a closed channel handler into the pipeline to support reconnect attempts - pending = this.dispatcher.createClient(this.address, cs, b, new AbstractDispatcher.PipelineInitializer() { - @Override - public void initializeChannel(final SocketChannel channel, final Promise promise) { - initializer.initializeChannel(channel, promise); - // add closed channel handler - // This handler has to be added as last channel handler and the channel inactive event has to be caught by it - // Handlers in front of it can react to channelInactive event, but have to forward the event or the reconnect will not work - // This handler is last so all handlers in front of it can handle channel inactive (to e.g. resource cleanup) before a new connection is started - channel.pipeline().addLast(new ClosedChannelHandler(ReconnectPromise.this)); - } + pending = this.dispatcher.createClient(this.address, cs, b, (channel, promise) -> { + initializer.initializeChannel(channel, promise); + // add closed channel handler + // This handler has to be added as last channel handler and the channel inactive event has to be caught by it + // Handlers in front of it can react to channelInactive event, but have to forward the event or the reconnect will not work + // This handler is last so all handlers in front of it can handle channel inactive (to e.g. resource cleanup) before a new connection is started + channel.pipeline().addLast(new ClosedChannelHandler(ReconnectPromise.this)); }); - pending.addListener(new GenericFutureListener>() { - @Override - public void operationComplete(final Future future) throws Exception { - if (!future.isSuccess()) { - ReconnectPromise.this.setFailure(future.cause()); - } + pending.addListener((GenericFutureListener>) future -> { + if (!future.isSuccess()) { + ReconnectPromise.this.setFailure(future.cause()); } }); }