X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fnetconf%2Fnetconf-impl%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fnetconf%2Fimpl%2Fosgi%2FNetconfImplActivator.java;h=890bbe728804e469f0d2989253e6815ec1b85d06;hb=d431c454a362865e1b504ecc87f199836403b0e8;hp=fc240f91c9d168397a82c82f42577310aeb5b408;hpb=350dbdeb0a3d942ba532ada1d1931baf591bec5b;p=controller.git diff --git a/opendaylight/netconf/netconf-impl/src/main/java/org/opendaylight/controller/netconf/impl/osgi/NetconfImplActivator.java b/opendaylight/netconf/netconf-impl/src/main/java/org/opendaylight/controller/netconf/impl/osgi/NetconfImplActivator.java index fc240f91c9..890bbe7288 100644 --- a/opendaylight/netconf/netconf-impl/src/main/java/org/opendaylight/controller/netconf/impl/osgi/NetconfImplActivator.java +++ b/opendaylight/netconf/netconf-impl/src/main/java/org/opendaylight/controller/netconf/impl/osgi/NetconfImplActivator.java @@ -8,6 +8,7 @@ package org.opendaylight.controller.netconf.impl.osgi; import com.google.common.base.Optional; +import io.netty.channel.nio.NioEventLoopGroup; import io.netty.util.HashedWheelTimer; import org.opendaylight.controller.netconf.impl.DefaultCommitNotificationProducer; import org.opendaylight.controller.netconf.impl.NetconfServerDispatcher; @@ -35,6 +36,8 @@ public class NetconfImplActivator implements BundleActivator { private NetconfOperationServiceFactoryTracker factoriesTracker; private DefaultCommitNotificationProducer commitNot; private NetconfServerDispatcher dispatch; + private NioEventLoopGroup eventLoopGroup; + private HashedWheelTimer timer; @Override public void start(final BundleContext context) throws Exception { @@ -48,18 +51,23 @@ public class NetconfImplActivator implements BundleActivator { factoriesTracker.open(); SessionIdProvider idProvider = new SessionIdProvider(); + timer = new HashedWheelTimer(); NetconfServerSessionNegotiatorFactory serverNegotiatorFactory = new NetconfServerSessionNegotiatorFactory( - new HashedWheelTimer(), factoriesListener, idProvider); + timer, factoriesListener, idProvider); commitNot = new DefaultCommitNotificationProducer(ManagementFactory.getPlatformMBeanServer()); NetconfServerSessionListenerFactory listenerFactory = new NetconfServerSessionListenerFactory( factoriesListener, commitNot, idProvider); + eventLoopGroup = new NioEventLoopGroup(); + if (maybeTCPAddress.isPresent()) { Optional maybeSSLContext = Optional.absent(); InetSocketAddress address = maybeTCPAddress.get(); - dispatch = new NetconfServerDispatcher(maybeSSLContext, serverNegotiatorFactory, listenerFactory); + NetconfServerDispatcher.ServerSslChannelInitializer serverChannelInitializer = new NetconfServerDispatcher.ServerSslChannelInitializer( + maybeSSLContext, serverNegotiatorFactory, listenerFactory); + dispatch = new NetconfServerDispatcher(serverChannelInitializer, eventLoopGroup, eventLoopGroup); logger.info("Starting TCP netconf server at {}", address); dispatch.createServer(address); @@ -67,7 +75,9 @@ public class NetconfImplActivator implements BundleActivator { if (maybeTLSConfiguration.isPresent()) { Optional maybeSSLContext = Optional.of(maybeTLSConfiguration.get().getSslContext()); InetSocketAddress address = maybeTLSConfiguration.get().getAddress(); - dispatch = new NetconfServerDispatcher(maybeSSLContext, serverNegotiatorFactory, listenerFactory); + NetconfServerDispatcher.ServerSslChannelInitializer serverChannelInitializer = new NetconfServerDispatcher.ServerSslChannelInitializer( + maybeSSLContext, serverNegotiatorFactory, listenerFactory); + dispatch = new NetconfServerDispatcher(serverChannelInitializer, eventLoopGroup, eventLoopGroup); logger.info("Starting TLS netconf server at {}", address); dispatch.createServer(address); @@ -79,6 +89,7 @@ public class NetconfImplActivator implements BundleActivator { logger.info("Shutting down netconf because YangStoreService service was removed"); commitNot.close(); - dispatch.close(); + eventLoopGroup.shutdownGracefully(); + timer.stop(); } }