Use constructor injection in mdsal-replicate-netty 27/109427/1
authorRobert Varga <robert.varga@pantheon.tech>
Tue, 26 Dec 2023 23:33:28 +0000 (00:33 +0100)
committerRobert Varga <robert.varga@pantheon.tech>
Tue, 26 Dec 2023 23:34:12 +0000 (00:34 +0100)
We really do not want to retain references here, use simple constructor
injection instead.

Change-Id: I72a9f6f2e80d19f57d6c113132e173e569fb4ef9
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
replicate/mdsal-replicate-netty/src/main/java/org/opendaylight/mdsal/replicate/netty/NettyReplicationSink.java
replicate/mdsal-replicate-netty/src/main/java/org/opendaylight/mdsal/replicate/netty/NettyReplicationSource.java

index e2967c369cdb88630d67a8b1d971a2b66067055c..b75973092ea273e996d1644b5f0bb1bb1e48007b 100644 (file)
@@ -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,
index 924307d1d31305f51f186bbe648c15f9d786f74a..b264245f584d5c056a51959175a22c1f1be32360 100644 (file)
@@ -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();