X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=elanmanager%2Fimpl%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fnetvirt%2Felan%2Finternal%2FElanInstanceManager.java;h=bb7ee067064169c00cb7800441ffc106b00ecbd7;hb=2f0569ed75ef8a1fb60f992d19c8bbdf92ff45bf;hp=f14edc18459051e296be0939783b6f65cfa65829;hpb=fffad3ab6e2bd0c6179ce5391a5d716746645aa1;p=netvirt.git diff --git a/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/internal/ElanInstanceManager.java b/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/internal/ElanInstanceManager.java index f14edc1845..bb7ee06706 100644 --- a/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/internal/ElanInstanceManager.java +++ b/elanmanager/impl/src/main/java/org/opendaylight/netvirt/elan/internal/ElanInstanceManager.java @@ -13,20 +13,21 @@ import static org.opendaylight.genius.infra.Datastore.OPERATIONAL; import java.util.ArrayList; import java.util.Collections; -import javax.annotation.PostConstruct; +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.common.api.data.LogicalDatastoreType; -import org.opendaylight.genius.datastoreutils.AsyncDataTreeChangeListenerBase; import org.opendaylight.genius.infra.ManagedNewTransactionRunner; import org.opendaylight.genius.infra.ManagedNewTransactionRunnerImpl; import org.opendaylight.genius.interfacemanager.interfaces.IInterfaceManager; import org.opendaylight.infrautils.jobcoordinator.JobCoordinator; +import org.opendaylight.infrautils.utils.concurrent.Executors; import org.opendaylight.infrautils.utils.concurrent.LoggingFutures; +import org.opendaylight.mdsal.binding.api.DataBroker; +import org.opendaylight.mdsal.common.api.LogicalDatastoreType; import org.opendaylight.netvirt.elan.cache.ElanInterfaceCache; import org.opendaylight.netvirt.elan.utils.ElanConstants; import org.opendaylight.netvirt.elan.utils.ElanUtils; +import org.opendaylight.serviceutils.tools.listener.AbstractAsyncDataTreeChangeListener; import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.idmanager.rev160406.IdManagerService; import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.elan.etree.rev160614.EtreeInstance; import org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.elan.rev150602.ElanInstances; @@ -38,7 +39,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; @Singleton -public class ElanInstanceManager extends AsyncDataTreeChangeListenerBase { +public class ElanInstanceManager extends AbstractAsyncDataTreeChangeListener { private static final Logger LOG = LoggerFactory.getLogger(ElanInstanceManager.class); private static final Logger EVENT_LOGGER = LoggerFactory.getLogger("NetvirtEventLogger"); @@ -56,7 +57,9 @@ public class ElanInstanceManager extends AsyncDataTreeChangeListenerBase identifier, ElanInstance deletedElan) { + public void remove(InstanceIdentifier identifier, ElanInstance deletedElan) { LOG.trace("Remove ElanInstance - Key: {}, value: {}", identifier, deletedElan); String elanName = deletedElan.getElanInstanceName(); EVENT_LOGGER.debug("ELAN-Instance, REMOVE {}",elanName); @@ -103,7 +104,7 @@ public class ElanInstanceManager extends AsyncDataTreeChangeListenerBase identifier, ElanInstance original, ElanInstance update) { + public void update(InstanceIdentifier identifier, ElanInstance original, ElanInstance update) { EVENT_LOGGER.debug("ELAN-Instance, UPDATE {}", original.getElanInstanceName()); Uint32 existingElanTag = original.getElanTag(); String elanName = update.getElanInstanceName(); @@ -125,7 +126,7 @@ public class ElanInstanceManager extends AsyncDataTreeChangeListenerBase identifier, ElanInstance elanInstanceAdded) { + public void add(InstanceIdentifier identifier, ElanInstance elanInstanceAdded) { LoggingFutures.addErrorLogging(txRunner.callWithNewReadWriteTransactionAndSubmit(OPERATIONAL, operTx -> { String elanInstanceName = elanInstanceAdded.getElanInstanceName(); EVENT_LOGGER.debug("ELAN-Instance, ADD {}", elanInstanceName); @@ -139,12 +140,9 @@ public class ElanInstanceManager extends AsyncDataTreeChangeListenerBase getWildCardPath() { - return InstanceIdentifier.create(ElanInstances.class).child(ElanInstance.class); - } - - @Override - protected ElanInstanceManager getDataTreeChangeListener() { - return this; + @PreDestroy + public void close() { + super.close(); + Executors.shutdownAndAwaitTermination(getExecutorService()); } }