Use constructor injection for OSGi codec services 26/109426/1
authorRobert Varga <robert.varga@pantheon.tech>
Tue, 26 Dec 2023 23:12:58 +0000 (00:12 +0100)
committerRobert Varga <robert.varga@pantheon.tech>
Tue, 26 Dec 2023 23:14:17 +0000 (00:14 +0100)
We can easily use constructor injection, which eliminates the need for
an explicit field.

Change-Id: I292169b1dd98dd0341a2b5067495bbc79a1c41e1
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
binding/mdsal-binding-dom-codec-osgi/src/main/java/org/opendaylight/mdsal/binding/dom/codec/osgi/impl/GlobalBindingDOMCodecServices.java

index db2420c26093436cdb40dc7dc1f421b3408435ab..63ed199e9f02892395aed3b312e741a37754f84e 100644 (file)
@@ -45,12 +45,31 @@ import org.slf4j.LoggerFactory;
 public final class GlobalBindingDOMCodecServices extends ForwardingBindingDOMCodecServices {
     private static final Logger LOG = LoggerFactory.getLogger(GlobalBindingDOMCodecServices.class);
 
-    @Reference(updated = "update")
-    volatile OSGiBindingDOMCodecServices osgi = null;
-
     private BindingDOMCodecServices delegate;
     private UnsignedLong generation;
 
+    @Activate
+    public GlobalBindingDOMCodecServices(@Reference(updated = "update") final OSGiBindingDOMCodecServices services) {
+        updateDelegate(services);
+        LOG.info("Global Binding/DOM Codec activated with generation {}", generation);
+    }
+
+    @Deactivate
+    void deactivate() {
+        delegate = null;
+        LOG.info("Global Binding/DOM Codec deactivated");
+    }
+
+    void update(final OSGiBindingDOMCodecServices services) {
+        updateDelegate(services);
+        LOG.info("Global Binding/DOM Codec updated to generation {}", generation);
+    }
+
+    private void updateDelegate(final OSGiBindingDOMCodecServices services) {
+        generation = services.getGeneration();
+        delegate = services.getService();
+    }
+
     @Override
     public BindingLazyContainerNode<RpcInput> toLazyNormalizedNodeActionInput(
             final Class<? extends Action<?, ?, ?>> action, final NodeIdentifier identifier, final RpcInput input) {
@@ -67,26 +86,4 @@ public final class GlobalBindingDOMCodecServices extends ForwardingBindingDOMCod
     protected BindingDOMCodecServices delegate() {
         return verifyNotNull(delegate);
     }
-
-    void update() {
-        updateDelegate();
-        LOG.info("Global Binding/DOM Codec updated to generation {}", generation);
-    }
-
-    @Activate
-    void activate() {
-        updateDelegate();
-        LOG.info("Global Binding/DOM Codec activated with generation {}", generation);
-    }
-
-    @Deactivate
-    void deactivate() {
-        delegate = null;
-        LOG.info("Global Binding/DOM Codec deactivated");
-    }
-
-    private void updateDelegate() {
-        generation = osgi.getGeneration();
-        delegate = osgi.getService();
-    }
 }