From d3c0035fc97dea4008850d58fd719c41af1265ca Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Wed, 27 Dec 2023 00:12:58 +0100 Subject: [PATCH 1/1] Use constructor injection for OSGi codec services We can easily use constructor injection, which eliminates the need for an explicit field. Change-Id: I292169b1dd98dd0341a2b5067495bbc79a1c41e1 Signed-off-by: Robert Varga --- .../impl/GlobalBindingDOMCodecServices.java | 47 +++++++++---------- 1 file changed, 22 insertions(+), 25 deletions(-) diff --git a/binding/mdsal-binding-dom-codec-osgi/src/main/java/org/opendaylight/mdsal/binding/dom/codec/osgi/impl/GlobalBindingDOMCodecServices.java b/binding/mdsal-binding-dom-codec-osgi/src/main/java/org/opendaylight/mdsal/binding/dom/codec/osgi/impl/GlobalBindingDOMCodecServices.java index db2420c260..63ed199e9f 100644 --- a/binding/mdsal-binding-dom-codec-osgi/src/main/java/org/opendaylight/mdsal/binding/dom/codec/osgi/impl/GlobalBindingDOMCodecServices.java +++ b/binding/mdsal-binding-dom-codec-osgi/src/main/java/org/opendaylight/mdsal/binding/dom/codec/osgi/impl/GlobalBindingDOMCodecServices.java @@ -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 toLazyNormalizedNodeActionInput( final Class> 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(); - } } -- 2.36.6