From: Robert Varga Date: Tue, 26 Dec 2023 23:33:28 +0000 (+0100) Subject: Use constructor injection in mdsal-replicate-netty X-Git-Tag: v13.0.0~58 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=mdsal.git;a=commitdiff_plain;h=e60ce63d3a25e6138fd04297ac370109ac8d4909 Use constructor injection in mdsal-replicate-netty We really do not want to retain references here, use simple constructor injection instead. Change-Id: I72a9f6f2e80d19f57d6c113132e173e569fb4ef9 Signed-off-by: Robert Varga --- diff --git a/replicate/mdsal-replicate-netty/src/main/java/org/opendaylight/mdsal/replicate/netty/NettyReplicationSink.java b/replicate/mdsal-replicate-netty/src/main/java/org/opendaylight/mdsal/replicate/netty/NettyReplicationSink.java index e2967c369c..b75973092e 100644 --- a/replicate/mdsal-replicate-netty/src/main/java/org/opendaylight/mdsal/replicate/netty/NettyReplicationSink.java +++ b/replicate/mdsal-replicate-netty/src/main/java/org/opendaylight/mdsal/replicate/netty/NettyReplicationSink.java @@ -26,7 +26,7 @@ import org.osgi.service.metatype.annotations.ObjectClassDefinition; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -@Component(immediate = true, configurationPid = "org.opendaylight.mdsal.replicate.netty.sink") +@Component(service = { }, configurationPid = "org.opendaylight.mdsal.replicate.netty.sink") @Designate(ocd = NettyReplicationSink.Config.class) public final class NettyReplicationSink { private static final Logger LOG = LoggerFactory.getLogger(NettyReplicationSink.class); @@ -52,29 +52,17 @@ public final class NettyReplicationSink { int maxMissedKeepalives() default 5; } - @Reference - private BootstrapSupport bootstrapSupport; - - @Reference - private DOMDataBroker dataBroker; - - @Reference - private ClusterSingletonServiceProvider singletonService; - private Registration reg; - public NettyReplicationSink() { - // Visible for DI - } - @Activate - void activate(final Config config) throws UnknownHostException { - final InetAddress sourceAddress = InetAddress.getByName(config.sourceHost()); - final Duration reconnectDelay = Duration.ofMillis(config.reconnectDelayMillis()); - final Duration keepaliveInterval = Duration.ofSeconds(config.keepAliveIntervalSeconds()); - - reg = createSink(bootstrapSupport, dataBroker, singletonService, config.enabled(), sourceAddress, - config.sourcePort(), reconnectDelay, keepaliveInterval, config.maxMissedKeepalives()); + public NettyReplicationSink(@Reference final BootstrapSupport bootstrapSupport, + @Reference final DOMDataBroker dataBroker, + @Reference final ClusterSingletonServiceProvider singletonService, final Config config) + throws UnknownHostException { + reg = createSink(bootstrapSupport, dataBroker, singletonService, config.enabled(), + InetAddress.getByName(config.sourceHost()), + config.sourcePort(), Duration.ofMillis(config.reconnectDelayMillis()), + Duration.ofSeconds(config.keepAliveIntervalSeconds()), config.maxMissedKeepalives()); } @Deactivate @@ -84,9 +72,9 @@ public final class NettyReplicationSink { } static Registration createSink(final BootstrapSupport bootstrap, final DOMDataBroker broker, - final ClusterSingletonServiceProvider singleton, final boolean enabled, - final InetAddress sourceAddress, final int sourcePort, final Duration reconnectDelay, - final Duration keepaliveInterval, final int maxMissedKeepalives) { + final ClusterSingletonServiceProvider singleton, final boolean enabled, + final InetAddress sourceAddress, final int sourcePort, final Duration reconnectDelay, + final Duration keepaliveInterval, final int maxMissedKeepalives) { LOG.debug("Sink {}", enabled ? "enabled" : "disabled"); checkArgument(maxMissedKeepalives > 0, "max-missed-keepalives %s must be greater than 0", maxMissedKeepalives); return enabled ? singleton.registerClusterSingletonService(new SinkSingletonService(bootstrap, diff --git a/replicate/mdsal-replicate-netty/src/main/java/org/opendaylight/mdsal/replicate/netty/NettyReplicationSource.java b/replicate/mdsal-replicate-netty/src/main/java/org/opendaylight/mdsal/replicate/netty/NettyReplicationSource.java index 924307d1d3..b264245f58 100644 --- a/replicate/mdsal-replicate-netty/src/main/java/org/opendaylight/mdsal/replicate/netty/NettyReplicationSource.java +++ b/replicate/mdsal-replicate-netty/src/main/java/org/opendaylight/mdsal/replicate/netty/NettyReplicationSource.java @@ -8,7 +8,7 @@ package org.opendaylight.mdsal.replicate.netty; import static com.google.common.base.Preconditions.checkArgument; -import static com.google.common.base.Verify.verify; +import static com.google.common.base.Verify.verifyNotNull; import com.google.common.annotations.VisibleForTesting; import java.time.Duration; @@ -26,7 +26,7 @@ import org.osgi.service.metatype.annotations.ObjectClassDefinition; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -@Component(immediate = true, configurationPid = "org.opendaylight.mdsal.replicate.netty.source") +@Component(service = { }, configurationPid = "org.opendaylight.mdsal.replicate.netty.source") @Designate(ocd = NettyReplicationSource.Config.class) public final class NettyReplicationSource { private static final Logger LOG = LoggerFactory.getLogger(NettyReplicationSource.class); @@ -46,15 +46,6 @@ public final class NettyReplicationSource { int maxMissedKeepalives() default 5; } - @Reference - private BootstrapSupport bootstrapSupport; - - @Reference - private DOMDataBroker dataBroker; - - @Reference - private ClusterSingletonServiceProvider singletonService; - private Registration reg; public NettyReplicationSource() { @@ -62,11 +53,11 @@ public final class NettyReplicationSource { } @Activate - void activate(final Config config) { - final Duration keepaliveInterval = Duration.ofSeconds(config.keepAliveIntervalSeconds()); - + public NettyReplicationSource(@Reference final BootstrapSupport bootstrapSupport, + @Reference final DOMDataBroker dataBroker, + @Reference final ClusterSingletonServiceProvider singletonService, final Config config) { reg = createSource(bootstrapSupport, dataBroker, singletonService, config.enabled(), config.listenPort(), - keepaliveInterval, config.maxMissedKeepalives()); + Duration.ofSeconds(config.keepAliveIntervalSeconds()), config.maxMissedKeepalives()); } @Deactivate @@ -77,12 +68,11 @@ public final class NettyReplicationSource { @VisibleForTesting static Registration createSource(final BootstrapSupport bootstrap, final DOMDataBroker broker, - final ClusterSingletonServiceProvider singleton, final boolean enabled, - final int listenPort, final Duration keepaliveInterval, - final int maxMissedKeepalives) { + final ClusterSingletonServiceProvider singleton, final boolean enabled, final int listenPort, + final Duration keepaliveInterval, final int maxMissedKeepalives) { LOG.debug("Source {}", enabled ? "enabled" : "disabled"); - final var dtcs = broker.extension(DOMDataTreeChangeService.class); - verify(dtcs != null, "Missing DOMDataTreeChangeService in broker %s", broker); + final var dtcs = verifyNotNull(broker.extension(DOMDataTreeChangeService.class), + "Missing DOMDataTreeChangeService in broker %s", broker); checkArgument(maxMissedKeepalives > 0, "max-missed-keepalives %s must be greater than 0", maxMissedKeepalives); return enabled ? singleton.registerClusterSingletonService(new SourceSingletonService(bootstrap, dtcs, listenPort, keepaliveInterval, maxMissedKeepalives)) : new NoOpRegistration();