Blueprint migration for ITM
[genius.git] / itm / itm-impl / src / main / java / org / opendaylight / genius / itm / listeners / cache / StateTunnelListListener.java
index 4b923f1956dd9cbcc90d1257edd5695384297793..e374d2f5d101c6eeccab63be8c375abe9aa543af 100644 (file)
@@ -11,19 +11,20 @@ package org.opendaylight.genius.itm.listeners.cache;
 import org.opendaylight.genius.datastoreutils.AsyncClusteredDataTreeChangeListenerBase;
 import org.opendaylight.genius.itm.globals.ITMConstants;
 import org.opendaylight.genius.utils.cache.DataStoreCache;
-import org.opendaylight.genius.datastoreutils.AsyncClusteredDataChangeListenerBase;
-import org.opendaylight.controller.md.sal.binding.api.ClusteredDataChangeListener;
 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
-import org.opendaylight.controller.md.sal.binding.api.DataChangeListener;
-import org.opendaylight.controller.md.sal.common.api.data.AsyncDataBroker;
 import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.op.rev160406.TunnelsState;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.itm.op.rev160406.tunnels_state.StateTunnelList;
-import org.opendaylight.yangtools.concepts.ListenerRegistration;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import javax.annotation.PostConstruct;
+import javax.annotation.PreDestroy;
+import javax.inject.Inject;
+import javax.inject.Singleton;
+
+@Singleton
 public class StateTunnelListListener extends AsyncClusteredDataTreeChangeListenerBase<StateTunnelList,StateTunnelListListener> implements AutoCloseable{
     private static final Logger LOG = LoggerFactory.getLogger(StateTunnelListListener.class);
     private final DataBroker broker;
@@ -32,19 +33,25 @@ public class StateTunnelListListener extends AsyncClusteredDataTreeChangeListene
      * Responsible for listening to tunnel interface state change
      *
      */
-
-     public StateTunnelListListener(final DataBroker broker) {
+    @Inject
+     public StateTunnelListListener(final DataBroker dataBroker) {
          super(StateTunnelList.class, StateTunnelListListener.class);
-             this.broker = broker;
+         DataStoreCache.create(ITMConstants.TUNNEL_STATE_CACHE_NAME);
+             this.broker = dataBroker;
          try {
-             registerListener(LogicalDatastoreType.OPERATIONAL, broker);
+             registerListener(LogicalDatastoreType.OPERATIONAL, this.broker);
           } catch (final Exception e) {
              LOG.error("StateTunnelListListener DataChange listener registration fail!", e);
          }
     }
 
+    @PostConstruct
+    public void start() throws Exception {
+        LOG.info("Tunnel Interface State Listener Started");
+    }
 
     @Override
+    @PreDestroy
     public void close() throws Exception {
         LOG.info("Tunnel Interface State Listener Closed");
     }