Add CDI annotations to mdsal-binding-dom-adapter 88/79888/18
authorMichael Vorburger <vorburger@redhat.com>
Thu, 24 Jan 2019 21:47:07 +0000 (22:47 +0100)
committerRobert Varga <nite@hq.sk>
Sun, 23 Jun 2019 22:57:53 +0000 (22:57 +0000)
This annotates core classes, so they can be used via CDI.

JIRA: MDSAL-418
Change-Id: Ia943dd10cad35481ef742400c79491c1d092c6c7
Signed-off-by: Michael Vorburger <vorburger@redhat.com>
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
binding/mdsal-binding-dom-adapter/pom.xml
binding/mdsal-binding-dom-adapter/src/main/java/org/opendaylight/mdsal/binding/dom/adapter/BindingAdapterFactory.java
binding/mdsal-binding-dom-adapter/src/main/java/org/opendaylight/mdsal/binding/dom/adapter/BindingToNormalizedNodeCodec.java

index ccb5beaf8b1dc27689e636adb547bb25426a53ac..9aebdb3c46a3af71dce9011a8d3e9f23115306ad 100644 (file)
     <packaging>bundle</packaging>
 
     <dependencies>
+        <dependency>
+            <groupId>javax.inject</groupId>
+            <artifactId>javax.inject</artifactId>
+            <optional>true</optional>
+        </dependency>
+        <dependency>
+            <groupId>javax.annotation</groupId>
+            <artifactId>javax.annotation-api</artifactId>
+            <optional>true</optional>
+        </dependency>
         <dependency>
             <groupId>com.google.guava</groupId>
             <artifactId>guava</artifactId>
index c0443bde128c180dc62edfbbc42f33678710bc80..692164fb989d355e14220045aae1d7c47d27b1b0 100644 (file)
@@ -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);
     }
index b1d077cad957815947cffb64932e20a60486b1e5..8cd510b8bb1f6a5112f8a496c54f8e4b8d9de8cc 100644 (file)
@@ -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;
  * <p>
  * 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();