NETVIRT-1630 migrate to md-sal APIs
[netvirt.git] / natservice / impl / src / main / java / org / opendaylight / netvirt / natservice / ha / SnatNodeEventListener.java
index b93b6a9a5ab20af3918482920c6e31bc3051ccfb..f7060b1818d4b5a3937aa6b02a334b0d88b1f4b5 100644 (file)
@@ -7,22 +7,21 @@
  */
 package org.opendaylight.netvirt.natservice.ha;
 
-import java.math.BigInteger;
 import java.util.concurrent.Executors;
-
+import javax.annotation.PreDestroy;
 import javax.inject.Inject;
-
 import javax.inject.Singleton;
-import org.opendaylight.controller.md.sal.binding.api.DataBroker;
-import org.opendaylight.controller.md.sal.binding.api.DataTreeIdentifier;
-import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
 import org.opendaylight.genius.mdsalutil.MDSALUtil;
+import org.opendaylight.mdsal.binding.api.DataBroker;
+import org.opendaylight.mdsal.binding.api.DataTreeIdentifier;
+import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
 import org.opendaylight.netvirt.natservice.api.NatSwitchCache;
-import org.opendaylight.serviceutils.tools.mdsal.listener.AbstractClusteredAsyncDataTreeChangeListener;
+import org.opendaylight.serviceutils.tools.listener.AbstractClusteredAsyncDataTreeChangeListener;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.Nodes;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.Node;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.NodeKey;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+import org.opendaylight.yangtools.yang.common.Uint64;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -39,16 +38,23 @@ public class SnatNodeEventListener  extends AbstractClusteredAsyncDataTreeChange
     public SnatNodeEventListener(final DataBroker dataBroker,
             final NatSwitchCache centralizedSwitchCache) {
 
-        super(dataBroker,new DataTreeIdentifier<>(LogicalDatastoreType.OPERATIONAL, InstanceIdentifier
+        super(dataBroker, DataTreeIdentifier.create(LogicalDatastoreType.OPERATIONAL, InstanceIdentifier
                 .create(Nodes.class).child(Node.class)),
                 Executors.newSingleThreadExecutor());
         this.centralizedSwitchCache = centralizedSwitchCache;
     }
 
+    @Override
+    @PreDestroy
+    public void close() {
+        super.close();
+        org.opendaylight.infrautils.utils.concurrent.Executors.shutdownAndAwaitTermination(getExecutorService());
+    }
+
     @Override
     public void remove(Node dataObjectModification) {
         NodeKey nodeKey = dataObjectModification.key();
-        BigInteger dpnId = MDSALUtil.getDpnIdFromNodeName(nodeKey.getId());
+        Uint64 dpnId = MDSALUtil.getDpnIdFromNodeName(nodeKey.getId());
         LOG.info("Dpn removed {}", dpnId);
         centralizedSwitchCache.removeSwitch(dpnId);
     }
@@ -62,7 +68,7 @@ public class SnatNodeEventListener  extends AbstractClusteredAsyncDataTreeChange
     @Override
     public void add(Node dataObjectModification) {
         NodeKey nodeKey = dataObjectModification.key();
-        BigInteger dpnId = MDSALUtil.getDpnIdFromNodeName(nodeKey.getId());
+        Uint64 dpnId = MDSALUtil.getDpnIdFromNodeName(nodeKey.getId());
         LOG.info("Dpn added {}", dpnId);
         centralizedSwitchCache.addSwitch(dpnId);
     }