From e9f48649b76c17e16cfee905fb569b342454e751 Mon Sep 17 00:00:00 2001 From: Michael Vorburger Date: Thu, 24 Jan 2019 22:47:07 +0100 Subject: [PATCH] Add CDI annotations to mdsal-binding-dom-adapter This annotates core classes, so they can be used via CDI. JIRA: MDSAL-418 Change-Id: Ia943dd10cad35481ef742400c79491c1d092c6c7 Signed-off-by: Michael Vorburger Signed-off-by: Robert Varga --- binding/mdsal-binding-dom-adapter/pom.xml | 10 ++++++++++ .../binding/dom/adapter/BindingAdapterFactory.java | 4 ++++ .../dom/adapter/BindingToNormalizedNodeCodec.java | 6 ++++++ 3 files changed, 20 insertions(+) diff --git a/binding/mdsal-binding-dom-adapter/pom.xml b/binding/mdsal-binding-dom-adapter/pom.xml index ccb5beaf8b..9aebdb3c46 100644 --- a/binding/mdsal-binding-dom-adapter/pom.xml +++ b/binding/mdsal-binding-dom-adapter/pom.xml @@ -20,6 +20,16 @@ bundle + + javax.inject + javax.inject + true + + + javax.annotation + javax.annotation-api + true + com.google.guava guava diff --git a/binding/mdsal-binding-dom-adapter/src/main/java/org/opendaylight/mdsal/binding/dom/adapter/BindingAdapterFactory.java b/binding/mdsal-binding-dom-adapter/src/main/java/org/opendaylight/mdsal/binding/dom/adapter/BindingAdapterFactory.java index c0443bde12..692164fb98 100644 --- a/binding/mdsal-binding-dom-adapter/src/main/java/org/opendaylight/mdsal/binding/dom/adapter/BindingAdapterFactory.java +++ b/binding/mdsal-binding-dom-adapter/src/main/java/org/opendaylight/mdsal/binding/dom/adapter/BindingAdapterFactory.java @@ -10,6 +10,8 @@ package org.opendaylight.mdsal.binding.dom.adapter; import static java.util.Objects.requireNonNull; import com.google.common.annotations.Beta; +import javax.inject.Inject; +import javax.inject.Singleton; import org.eclipse.jdt.annotation.NonNullByDefault; import org.opendaylight.mdsal.binding.api.ActionProviderService; import org.opendaylight.mdsal.binding.api.ActionService; @@ -39,9 +41,11 @@ import org.opendaylight.yangtools.concepts.Immutable; */ @Beta @NonNullByDefault +@Singleton public final class BindingAdapterFactory implements AdapterFactory, Immutable { private final BindingToNormalizedNodeCodec codec; + @Inject public BindingAdapterFactory(final BindingToNormalizedNodeCodec codec) { this.codec = requireNonNull(codec); } diff --git a/binding/mdsal-binding-dom-adapter/src/main/java/org/opendaylight/mdsal/binding/dom/adapter/BindingToNormalizedNodeCodec.java b/binding/mdsal-binding-dom-adapter/src/main/java/org/opendaylight/mdsal/binding/dom/adapter/BindingToNormalizedNodeCodec.java index b1d077cad9..8cd510b8bb 100644 --- a/binding/mdsal-binding-dom-adapter/src/main/java/org/opendaylight/mdsal/binding/dom/adapter/BindingToNormalizedNodeCodec.java +++ b/binding/mdsal-binding-dom-adapter/src/main/java/org/opendaylight/mdsal/binding/dom/adapter/BindingToNormalizedNodeCodec.java @@ -28,6 +28,9 @@ import java.util.Set; import java.util.concurrent.TimeUnit; import java.util.function.Function; import java.util.stream.Collectors; +import javax.annotation.PreDestroy; +import javax.inject.Inject; +import javax.inject.Singleton; import org.eclipse.jdt.annotation.NonNull; import org.opendaylight.mdsal.binding.api.DataTreeIdentifier; import org.opendaylight.mdsal.binding.dom.codec.api.BindingCodecTree; @@ -81,6 +84,7 @@ import org.slf4j.LoggerFactory; *

* NOTE: this class is non-final to allow controller adapter migration without duplicated code. */ +@Singleton public class BindingToNormalizedNodeCodec implements BindingCodecTreeFactory, BindingNormalizedNodeSerializer, SchemaContextListener, AutoCloseable { @@ -99,6 +103,7 @@ public class BindingToNormalizedNodeCodec implements BindingCodecTreeFactory, private final FutureSchema futureSchema; private ListenerRegistration listenerRegistration; + @Inject public BindingToNormalizedNodeCodec(final ClassLoadingStrategy classLoadingStrategy, final BindingNormalizedNodeCodecRegistry codecRegistry) { this(classLoadingStrategy, codecRegistry, false); @@ -320,6 +325,7 @@ public class BindingToNormalizedNodeCodec implements BindingCodecTreeFactory, } @Override + @PreDestroy public void close() { if (listenerRegistration != null) { listenerRegistration.close(); -- 2.36.6