BUG:6743 switch to clustered data listener 13/45813/2
authorMatej Perina <mperina@cisco.com>
Wed, 21 Sep 2016 07:41:29 +0000 (09:41 +0200)
committerMatej Perina <mperina@cisco.com>
Wed, 21 Sep 2016 07:41:29 +0000 (09:41 +0200)
Change-Id: Ia3794316559565e6f65d63b07872853e78be20f3
Signed-off-by: Matej Perina <mperina@cisco.com>
25 files changed:
groupbasedpolicy-ise-adapter/src/main/java/org/opendaylight/groupbasedpolicy/gbp_ise_adapter/impl/GbpIseAdapterProvider.java
groupbasedpolicy-ise-adapter/src/main/java/org/opendaylight/groupbasedpolicy/gbp_ise_adapter/impl/GbpIseConfigListener.java
groupbasedpolicy/src/main/java/org/opendaylight/groupbasedpolicy/location/resolver/LocationResolver.java
groupbasedpolicy/src/main/java/org/opendaylight/groupbasedpolicy/sf/SupportedActionDefinitionListener.java
groupbasedpolicy/src/main/java/org/opendaylight/groupbasedpolicy/util/DataTreeChangeHandler.java
location-providers/ne-location-provider/src/main/java/org/opendaylight/groupbasedpolicy/ne/location/provider/EndpointsListener.java
location-providers/ne-location-provider/src/main/java/org/opendaylight/groupbasedpolicy/ne/location/provider/NeLocationProvider.java
neutron-mapper/src/main/java/org/opendaylight/groupbasedpolicy/neutron/mapper/NeutronMapper.java
neutron-vpp-mapper/src/main/java/org/opendaylight/groupbasedpolicy/neutron/vpp/mapper/processors/NeutronListener.java
renderers/ios-xe/src/main/java/org/opendaylight/groupbasedpolicy/renderer/ios_xe_provider/impl/listener/IosXeCapableNodeListenerImpl.java
renderers/ios-xe/src/main/java/org/opendaylight/groupbasedpolicy/renderer/ios_xe_provider/impl/listener/RendererConfigurationListenerImpl.java
renderers/ios-xe/src/test/java/org/opendaylight/groupbasedpolicy/renderer/ios_xe_provider/impl/listener/IosXeCapableNodeListenerImplTest.java
renderers/ofoverlay/src/main/java/org/opendaylight/groupbasedpolicy/renderer/ofoverlay/PolicyManager.java
renderers/ofoverlay/src/main/java/org/opendaylight/groupbasedpolicy/renderer/ofoverlay/sf/ActionDefinitionListener.java
renderers/ofoverlay/src/main/java/org/opendaylight/groupbasedpolicy/renderer/ofoverlay/sf/ClassifierDefinitionListener.java
renderers/ofoverlay/src/test/java/org/opendaylight/groupbasedpolicy/renderer/ofoverlay/OFOverlayRendererTest.java
renderers/ofoverlay/src/test/java/org/opendaylight/groupbasedpolicy/renderer/ofoverlay/endpoint/EndpointManagerTest.java
renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/listener/VppNodeListener.java
renderers/vpp/src/main/java/org/opendaylight/groupbasedpolicy/renderer/vpp/policy/BridgeDomainManagerImpl.java
sxp-mapper/src/main/java/org/opendaylight/groupbasedpolicy/sxp/mapper/api/EPTemplateListener.java
sxp-mapper/src/main/java/org/opendaylight/groupbasedpolicy/sxp/mapper/api/MasterDatabaseBindingListener.java
sxp-mapper/src/main/java/org/opendaylight/groupbasedpolicy/sxp/mapper/impl/listen/MasterDatabaseBindingListenerImpl.java
sxp-mapper/src/test/java/org/opendaylight/groupbasedpolicy/sxp/mapper/impl/listen/EPForwardingTemplateListenerImplTest.java
sxp-mapper/src/test/java/org/opendaylight/groupbasedpolicy/sxp/mapper/impl/listen/EPPolicyTemplateListenerImplTest.java
sxp-mapper/src/test/java/org/opendaylight/groupbasedpolicy/sxp/mapper/impl/listen/MasterDatabaseBindingListenerImplTest.java

index d05afdfad68700d636dae0d90ae128a3d26f3111..6314f801c0cecef4d90a0f18c313ce209c983c85 100644 (file)
@@ -8,9 +8,8 @@
 
 package org.opendaylight.groupbasedpolicy.gbp_ise_adapter.impl;
 
-import com.google.common.base.Preconditions;
+import org.opendaylight.controller.md.sal.binding.api.ClusteredDataTreeChangeListener;
 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
-import org.opendaylight.controller.md.sal.binding.api.DataTreeChangeListener;
 import org.opendaylight.controller.md.sal.binding.api.DataTreeIdentifier;
 import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
 import org.opendaylight.controller.sal.binding.api.BindingAwareBroker;
@@ -22,6 +21,8 @@ import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import com.google.common.base.Preconditions;
+
 /**
  * Purpose: main provider of gbp-ise adapter (for reading sgts and generating EndpointPolicyTemplates)
  */
@@ -30,7 +31,7 @@ public class GbpIseAdapterProvider implements AutoCloseable, BindingAwareProvide
     private static final Logger LOG = LoggerFactory.getLogger(GbpIseAdapterProvider.class);
 
     private final DataBroker dataBroker;
-    private ListenerRegistration<DataTreeChangeListener<IseHarvestConfig>> registration;
+    private ListenerRegistration<ClusteredDataTreeChangeListener<IseHarvestConfig>> registration;
 
     public GbpIseAdapterProvider(final DataBroker dataBroker, final BindingAwareBroker brokerDependency) {
         this.dataBroker = Preconditions.checkNotNull(dataBroker, "provided dataBroker must not be null");
index 399ca5f9b4b407b5f29dc8171eedfeba334aceaf..071df64da966438d4e8ede93a97edaabfae407ba 100644 (file)
@@ -8,12 +8,12 @@
 
 package org.opendaylight.groupbasedpolicy.gbp_ise_adapter.impl;
 
-import org.opendaylight.controller.md.sal.binding.api.DataTreeChangeListener;
+import org.opendaylight.controller.md.sal.binding.api.ClusteredDataTreeChangeListener;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.groupbasedpolicy.gbp.ise.adapter.model.rev160630.gbp.ise.adapter.IseHarvestConfig;
 
 /**
  * Purpose: dtcl for {@link IseHarvestConfig}
  */
-public interface GbpIseConfigListener extends DataTreeChangeListener<IseHarvestConfig>, AutoCloseable {
+public interface GbpIseConfigListener extends ClusteredDataTreeChangeListener<IseHarvestConfig>, AutoCloseable {
     // nobody
 }
index ecb2656f0b5e5ba30990a52ecee51e725d3cefaa..9e30d7d2e2c3eb29be96ff42b677829856e83d13 100644 (file)
@@ -16,8 +16,8 @@ import java.util.Map;
 
 import javax.annotation.Nullable;
 
+import org.opendaylight.controller.md.sal.binding.api.ClusteredDataTreeChangeListener;
 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
-import org.opendaylight.controller.md.sal.binding.api.DataTreeChangeListener;
 import org.opendaylight.controller.md.sal.binding.api.DataTreeIdentifier;
 import org.opendaylight.controller.md.sal.binding.api.DataTreeModification;
 import org.opendaylight.controller.md.sal.binding.api.WriteTransaction;
@@ -44,7 +44,7 @@ import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-public class LocationResolver implements DataTreeChangeListener<LocationProvider>, AutoCloseable {
+public class LocationResolver implements ClusteredDataTreeChangeListener<LocationProvider>, AutoCloseable {
 
     private static final Logger LOG = LoggerFactory.getLogger(LocationResolver.class);
     private Map<AddressEndpointLocationKey, Map<Long, AbsoluteLocation>> realLocations;
index f04be26dddb3bc8111f1f7da59fac52b0f527fcf..8049083cd2879533842f8cfd5086ab13f1f8d286 100644 (file)
@@ -14,9 +14,9 @@ import java.util.Collection;
 import java.util.HashMap;
 import java.util.Map;
 
+import org.opendaylight.controller.md.sal.binding.api.ClusteredDataTreeChangeListener;
 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
 import org.opendaylight.controller.md.sal.binding.api.DataObjectModification;
-import org.opendaylight.controller.md.sal.binding.api.DataTreeChangeListener;
 import org.opendaylight.controller.md.sal.binding.api.DataTreeIdentifier;
 import org.opendaylight.controller.md.sal.binding.api.DataTreeModification;
 import org.opendaylight.controller.md.sal.binding.api.ReadWriteTransaction;
@@ -39,7 +39,7 @@ import com.google.common.collect.HashMultimap;
 import com.google.common.collect.SetMultimap;
 
 public class SupportedActionDefinitionListener
-        implements DataTreeChangeListener<SupportedActionDefinition>, AutoCloseable {
+        implements ClusteredDataTreeChangeListener<SupportedActionDefinition>, AutoCloseable {
 
     private static final Logger LOG = LoggerFactory.getLogger(SupportedActionDefinitionListener.class);
 
index d647d4790b0bc04d3b9643e844a49e2d96b4a4e8..9321163a46847a48cee874785f1d06e17fd847d3 100644 (file)
@@ -12,10 +12,10 @@ import static com.google.common.base.Preconditions.checkNotNull;
 
 import java.util.Collection;
 
+import org.opendaylight.controller.md.sal.binding.api.ClusteredDataTreeChangeListener;
 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
 import org.opendaylight.controller.md.sal.binding.api.DataObjectModification;
 import org.opendaylight.controller.md.sal.binding.api.DataObjectModification.ModificationType;
-import org.opendaylight.controller.md.sal.binding.api.DataTreeChangeListener;
 import org.opendaylight.controller.md.sal.binding.api.DataTreeIdentifier;
 import org.opendaylight.controller.md.sal.binding.api.DataTreeModification;
 import org.opendaylight.yangtools.concepts.ListenerRegistration;
@@ -24,11 +24,11 @@ import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 
 /**
  * The purpose of this class is to eliminate boilerplate code used in most of
- * {@link DataTreeChangeListener} implementations.
+ * {@link ClusteredDataTreeChangeListener} implementations.
  *
  * @param <T> target class
  */
-public abstract class DataTreeChangeHandler<T extends DataObject> implements DataTreeChangeListener<T>, AutoCloseable {
+public abstract class DataTreeChangeHandler<T extends DataObject> implements ClusteredDataTreeChangeListener<T>, AutoCloseable {
 
     protected final DataBroker dataProvider;
     protected ListenerRegistration<DataTreeChangeHandler<T>> registeredListener;
index 21feda6c5f56087b1b56675cf3c3bfa99cbef0aa..c7a15e07a7b54a784b4a2015e9a2e07800adc14a 100644 (file)
@@ -10,8 +10,8 @@ package org.opendaylight.groupbasedpolicy.ne.location.provider;
 
 import java.util.Collection;
 
+import org.opendaylight.controller.md.sal.binding.api.ClusteredDataTreeChangeListener;
 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
-import org.opendaylight.controller.md.sal.binding.api.DataTreeChangeListener;
 import org.opendaylight.controller.md.sal.binding.api.DataTreeIdentifier;
 import org.opendaylight.controller.md.sal.binding.api.DataTreeModification;
 import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
@@ -23,7 +23,7 @@ import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-public class EndpointsListener implements DataTreeChangeListener<AddressEndpoint>{
+public class EndpointsListener implements ClusteredDataTreeChangeListener<AddressEndpoint>{
 
     private static final Logger LOG = LoggerFactory.getLogger(EndpointsListener.class);
 
index e0b6c29bd235e8b6619471f7c0e4d80f5bf24aba..06bc1ee5c3618f3fbc9d016e62a18f4b55d56906 100644 (file)
@@ -15,9 +15,9 @@ import java.util.List;
 
 import javax.annotation.Nullable;
 
+import org.opendaylight.controller.md.sal.binding.api.ClusteredDataTreeChangeListener;
 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
 import org.opendaylight.controller.md.sal.binding.api.DataObjectModification;
-import org.opendaylight.controller.md.sal.binding.api.DataTreeChangeListener;
 import org.opendaylight.controller.md.sal.binding.api.DataTreeIdentifier;
 import org.opendaylight.controller.md.sal.binding.api.DataTreeModification;
 import org.opendaylight.controller.md.sal.binding.api.WriteTransaction;
@@ -45,7 +45,7 @@ import org.slf4j.LoggerFactory;
 
 import com.google.common.annotations.VisibleForTesting;
 
-public class NeLocationProvider implements DataTreeChangeListener<NetworkElements>, AutoCloseable {
+public class NeLocationProvider implements ClusteredDataTreeChangeListener<NetworkElements>, AutoCloseable {
 
     private static final Logger LOG = LoggerFactory.getLogger(NeLocationProvider.class);
     public static final String NE_LOCATION_PROVIDER_NAME = "ne-location-provider";
index 515ef05a6d3b7ea7a4b43c065e5e1532b0eea39e..ac008035ce48a012999f3cff3287d6641af6422a 100644 (file)
@@ -15,10 +15,10 @@ import java.util.Set;
 
 import javax.annotation.Nullable;
 
+import org.opendaylight.controller.md.sal.binding.api.ClusteredDataTreeChangeListener;
 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
 import org.opendaylight.controller.md.sal.binding.api.DataObjectModification;
 import org.opendaylight.controller.md.sal.binding.api.DataObjectModification.ModificationType;
-import org.opendaylight.controller.md.sal.binding.api.DataTreeChangeListener;
 import org.opendaylight.controller.md.sal.binding.api.DataTreeIdentifier;
 import org.opendaylight.controller.md.sal.binding.api.DataTreeModification;
 import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
@@ -65,7 +65,7 @@ import com.google.common.collect.FluentIterable;
 import com.google.common.collect.Iterators;
 import com.google.common.collect.PeekingIterator;
 
-public class NeutronMapper implements DataTreeChangeListener<Neutron>, AutoCloseable {
+public class NeutronMapper implements ClusteredDataTreeChangeListener<Neutron>, AutoCloseable {
 
     public static final String EXC_MSG_UNKNOWN_MODIFICATION_TYPE_WITHIN_DATA = "Unknown modification type within data ";
 
index 8f80cc385765d8c9f6d604bca6f9914f99c2e4ed..988469baaafff0fc8ca24c09f9f723c548bb3611 100644 (file)
@@ -16,10 +16,10 @@ import java.util.List;
 import java.util.Set;\r
 import java.util.concurrent.ExecutionException;\r
 \r
+import org.opendaylight.controller.md.sal.binding.api.ClusteredDataTreeChangeListener;\r
 import org.opendaylight.controller.md.sal.binding.api.DataBroker;\r
 import org.opendaylight.controller.md.sal.binding.api.DataObjectModification;\r
 import org.opendaylight.controller.md.sal.binding.api.DataObjectModification.ModificationType;\r
-import org.opendaylight.controller.md.sal.binding.api.DataTreeChangeListener;\r
 import org.opendaylight.controller.md.sal.binding.api.DataTreeIdentifier;\r
 import org.opendaylight.controller.md.sal.binding.api.DataTreeModification;\r
 import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;\r
@@ -36,7 +36,7 @@ import com.google.common.annotations.VisibleForTesting;
 import com.google.common.collect.Iterators;\r
 import com.google.common.collect.PeekingIterator;\r
 \r
-public class NeutronListener implements DataTreeChangeListener<Neutron>, Closeable {\r
+public class NeutronListener implements ClusteredDataTreeChangeListener<Neutron>, Closeable {\r
 \r
     private static final Logger LOG = LoggerFactory.getLogger(NeutronListener.class);\r
 \r
index 69d4691b614bc9c760e49d9bf493765752aac9b0..a34fc9c2ca5022819ef717bed0626b03b4dd376f 100644 (file)
@@ -8,10 +8,15 @@
 
 package org.opendaylight.groupbasedpolicy.renderer.ios_xe_provider.impl.listener;
 
-import com.google.common.base.Preconditions;
+import static org.opendaylight.sfc.provider.SfcProviderDebug.printTraceStart;
+
+import java.util.Collection;
+
+import javax.annotation.Nonnull;
+
+import org.opendaylight.controller.md.sal.binding.api.ClusteredDataTreeChangeListener;
 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
 import org.opendaylight.controller.md.sal.binding.api.DataObjectModification;
-import org.opendaylight.controller.md.sal.binding.api.DataTreeChangeListener;
 import org.opendaylight.controller.md.sal.binding.api.DataTreeIdentifier;
 import org.opendaylight.controller.md.sal.binding.api.DataTreeModification;
 import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
@@ -24,12 +29,9 @@ import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import javax.annotation.Nonnull;
-import java.util.Collection;
-
-import static org.opendaylight.sfc.provider.SfcProviderDebug.printTraceStart;
+import com.google.common.base.Preconditions;
 
-public class IosXeCapableNodeListenerImpl implements DataTreeChangeListener<Node>, AutoCloseable {
+public class IosXeCapableNodeListenerImpl implements ClusteredDataTreeChangeListener<Node>, AutoCloseable {
 
     private static final Logger LOG = LoggerFactory.getLogger(IosXeCapableNodeListenerImpl.class);
     private final NodeManager nodeManager;
index 4dca17bca99ff314677901b8a7917bf8183e8106..0260344625c96e92e94331eac6288bb721fdc9ba 100644 (file)
@@ -8,16 +8,18 @@
 
 package org.opendaylight.groupbasedpolicy.renderer.ios_xe_provider.impl.listener;
 
-import com.google.common.base.Preconditions;
+import java.util.Collection;
+
+import javax.annotation.Nonnull;
+
+import org.opendaylight.controller.md.sal.binding.api.ClusteredDataTreeChangeListener;
 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
 import org.opendaylight.controller.md.sal.binding.api.DataObjectModification;
-import org.opendaylight.controller.md.sal.binding.api.DataTreeChangeListener;
 import org.opendaylight.controller.md.sal.binding.api.DataTreeIdentifier;
 import org.opendaylight.controller.md.sal.binding.api.DataTreeModification;
 import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
 import org.opendaylight.groupbasedpolicy.renderer.ios_xe_provider.api.manager.PolicyManager;
 import org.opendaylight.groupbasedpolicy.renderer.ios_xe_provider.impl.manager.PolicyManagerImpl;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.renderer.rev151103.RendererName;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.renderer.rev151103.Renderers;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.renderer.rev151103.renderers.Renderer;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.renderer.rev151103.renderers.RendererKey;
@@ -28,14 +30,12 @@ import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import javax.annotation.Nonnull;
-import java.util.Collection;
-import java.util.Optional;
+import com.google.common.base.Preconditions;
 
 /**
  * Purpose: process changes of configured renderer policies
  */
-public class RendererConfigurationListenerImpl implements DataTreeChangeListener<RendererPolicy>, AutoCloseable {
+public class RendererConfigurationListenerImpl implements ClusteredDataTreeChangeListener<RendererPolicy>, AutoCloseable {
 
     private static final Logger LOG = LoggerFactory.getLogger(RendererConfigurationListenerImpl.class);
     private final ListenerRegistration<RendererConfigurationListenerImpl> listenerRegistration;
index 183d236ebfdfbd940e0d38971418d8a306588ad7..7dd2d3c7994e3e25dd2fed39919e081eeb9ccde0 100644 (file)
@@ -9,6 +9,7 @@
 package org.opendaylight.groupbasedpolicy.renderer.ios_xe_provider.impl.listener;
 
 import java.util.Collections;
+
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -17,9 +18,9 @@ import org.mockito.Matchers;
 import org.mockito.Mock;
 import org.mockito.Mockito;
 import org.mockito.runners.MockitoJUnitRunner;
+import org.opendaylight.controller.md.sal.binding.api.ClusteredDataTreeChangeListener;
 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
 import org.opendaylight.controller.md.sal.binding.api.DataObjectModification;
-import org.opendaylight.controller.md.sal.binding.api.DataTreeChangeListener;
 import org.opendaylight.controller.md.sal.binding.api.DataTreeIdentifier;
 import org.opendaylight.controller.md.sal.binding.api.DataTreeModification;
 import org.opendaylight.groupbasedpolicy.renderer.ios_xe_provider.impl.manager.NodeManager;
@@ -40,7 +41,7 @@ public class IosXeCapableNodeListenerImplTest {
     @Mock
     private NodeManager nodeManager;
     @Mock
-    private ListenerRegistration<DataTreeChangeListener<Node>> listenerRegistration;
+    private ListenerRegistration<ClusteredDataTreeChangeListener<Node>> listenerRegistration;
     @Mock
     private DataTreeModification<Node> dataTreeModification;
     @Mock
@@ -52,12 +53,12 @@ public class IosXeCapableNodeListenerImplTest {
     public void setUp() throws Exception {
         Mockito.when(dataBroker.registerDataTreeChangeListener(
                 Matchers.<DataTreeIdentifier<Node>>any(),
-                Matchers.<DataTreeChangeListener<Node>>any()))
+                Matchers.<ClusteredDataTreeChangeListener<Node>>any()))
                 .thenReturn(listenerRegistration);
         listener = new IosXeCapableNodeListenerImpl(dataBroker, nodeManager);
         Mockito.verify(dataBroker).registerDataTreeChangeListener(
                 Matchers.<DataTreeIdentifier<NetworkTopology>>any(),
-                Matchers.<DataTreeChangeListener<NetworkTopology>>any());
+                Matchers.<ClusteredDataTreeChangeListener<NetworkTopology>>any());
     }
 
     @After
index 09828d70ca0741218078ce24f84d9a84a980067b..c5277068c78e93e13fc143abf3660e0780359fae 100755 (executable)
@@ -8,14 +8,22 @@
 
 package org.opendaylight.groupbasedpolicy.renderer.ofoverlay;
 
-import com.google.common.base.Function;
-import com.google.common.base.Optional;
-import com.google.common.collect.ImmutableList;
-import com.google.common.util.concurrent.AsyncFunction;
-import com.google.common.util.concurrent.Futures;
-import com.google.common.util.concurrent.ListenableFuture;
+import java.io.Closeable;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.Callable;
+import java.util.concurrent.CompletionService;
+import java.util.concurrent.ExecutionException;
+import java.util.concurrent.ExecutorCompletionService;
+import java.util.concurrent.ScheduledExecutorService;
+import java.util.concurrent.TimeUnit;
+
+import org.opendaylight.controller.md.sal.binding.api.ClusteredDataTreeChangeListener;
 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
-import org.opendaylight.controller.md.sal.binding.api.DataTreeChangeListener;
 import org.opendaylight.controller.md.sal.binding.api.DataTreeIdentifier;
 import org.opendaylight.controller.md.sal.binding.api.DataTreeModification;
 import org.opendaylight.controller.md.sal.binding.api.ReadWriteTransaction;
@@ -46,12 +54,10 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.ta
 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.inventory.rev130819.tables.TableBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.endpoint.rev140421.endpoints.Endpoint;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.ofoverlay.rev140528.OfOverlayConfig.LearningMode;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.ofoverlay.rev140528.OfOverlayContext;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.renderer.rev151103.renderers.renderer.interests.followed.tenants.followed.tenant.FollowedEndpointGroup;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.renderer.rev151103.renderers.renderer.interests.followed.tenants.followed.tenant.FollowedEndpointGroupBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.resolved.policy.rev150828.ResolvedPolicies;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.resolved.policy.rev150828.resolved.policies.ResolvedPolicy;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeConnectorId;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeId;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.TableId;
 import org.opendaylight.yangtools.concepts.ListenerRegistration;
@@ -59,19 +65,12 @@ import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import java.io.Closeable;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.concurrent.Callable;
-import java.util.concurrent.CompletionService;
-import java.util.concurrent.ExecutionException;
-import java.util.concurrent.ExecutorCompletionService;
-import java.util.concurrent.ScheduledExecutorService;
-import java.util.concurrent.TimeUnit;
+import com.google.common.base.Function;
+import com.google.common.base.Optional;
+import com.google.common.collect.ImmutableList;
+import com.google.common.util.concurrent.AsyncFunction;
+import com.google.common.util.concurrent.Futures;
+import com.google.common.util.concurrent.ListenableFuture;
 
 /**
  * Manage policies on switches by subscribing to updates from the
@@ -79,7 +78,7 @@ import java.util.concurrent.TimeUnit;
  * registry
  */
 public class PolicyManager
-        implements SwitchListener, EndpointListener, DataTreeChangeListener<ResolvedPolicy>, Closeable {
+        implements SwitchListener, EndpointListener, ClusteredDataTreeChangeListener<ResolvedPolicy>, Closeable {
 
     private static final Logger LOG = LoggerFactory.getLogger(PolicyManager.class);
 
@@ -338,7 +337,7 @@ public class PolicyManager
     }
 
     // **************
-    // DataTreeChangeListener<ResolvedPolicy>
+    // ClusteredDataTreeChangeListener<ResolvedPolicy>
     // **************
 
     @Override
index f526accbdbfe0c6c816fc27ba25b6efadcbe3589..2040ed3f0c741eb6864b49090e423a2ab7156d94 100644 (file)
@@ -12,9 +12,9 @@ import static com.google.common.base.Preconditions.checkNotNull;
 
 import java.util.Collection;
 
+import org.opendaylight.controller.md.sal.binding.api.ClusteredDataTreeChangeListener;
 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
 import org.opendaylight.controller.md.sal.binding.api.DataObjectModification;
-import org.opendaylight.controller.md.sal.binding.api.DataTreeChangeListener;
 import org.opendaylight.controller.md.sal.binding.api.DataTreeIdentifier;
 import org.opendaylight.controller.md.sal.binding.api.DataTreeModification;
 import org.opendaylight.controller.md.sal.binding.api.WriteTransaction;
@@ -37,7 +37,7 @@ import org.slf4j.LoggerFactory;
 import com.google.common.util.concurrent.FutureCallback;
 import com.google.common.util.concurrent.Futures;
 
-public class ActionDefinitionListener implements DataTreeChangeListener<ActionDefinition>, AutoCloseable {
+public class ActionDefinitionListener implements ClusteredDataTreeChangeListener<ActionDefinition>, AutoCloseable {
 
     private static final Logger LOG = LoggerFactory.getLogger(ActionDefinitionListener.class);
     private static final InstanceIdentifier<Capabilities> CAPABILITIES_IID = InstanceIdentifier.builder(Renderers.class)
index 6aba6038f22d9f7ddc9c45e1cb04b6697e00ddb1..7cb4da564e990173149cc7d0fd8d56e0211d4999 100755 (executable)
@@ -12,9 +12,9 @@ import static com.google.common.base.Preconditions.checkNotNull;
 
 import java.util.Collection;
 
+import org.opendaylight.controller.md.sal.binding.api.ClusteredDataTreeChangeListener;
 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
 import org.opendaylight.controller.md.sal.binding.api.DataObjectModification;
-import org.opendaylight.controller.md.sal.binding.api.DataTreeChangeListener;
 import org.opendaylight.controller.md.sal.binding.api.DataTreeIdentifier;
 import org.opendaylight.controller.md.sal.binding.api.DataTreeModification;
 import org.opendaylight.controller.md.sal.binding.api.WriteTransaction;
@@ -37,7 +37,7 @@ import org.slf4j.LoggerFactory;
 import com.google.common.util.concurrent.FutureCallback;
 import com.google.common.util.concurrent.Futures;
 
-public class ClassifierDefinitionListener implements DataTreeChangeListener<ClassifierDefinition>, AutoCloseable {
+public class ClassifierDefinitionListener implements ClusteredDataTreeChangeListener<ClassifierDefinition>, AutoCloseable {
 
     private static final Logger LOG = LoggerFactory.getLogger(ClassifierDefinitionListener.class);
     private static final InstanceIdentifier<Capabilities> RENDERER_CAPABILITIES_IID = InstanceIdentifier.builder(Renderers.class)
index 5b00616c4ba6db0f4fd9e3caf0512eeae6118928..e77b64fd97367966c3a202c9e8d6b740efecbd94 100755 (executable)
@@ -18,9 +18,9 @@ import java.lang.reflect.Method;
 
 import org.junit.Before;
 import org.junit.Test;
+import org.opendaylight.controller.md.sal.binding.api.ClusteredDataTreeChangeListener;
 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
 import org.opendaylight.controller.md.sal.binding.api.DataChangeListener;
-import org.opendaylight.controller.md.sal.binding.api.DataTreeChangeListener;
 import org.opendaylight.controller.md.sal.binding.api.DataTreeIdentifier;
 import org.opendaylight.controller.md.sal.binding.api.NotificationService;
 import org.opendaylight.controller.md.sal.binding.api.ReadOnlyTransaction;
@@ -73,7 +73,7 @@ public class OFOverlayRendererTest {
         when(dataProvider.registerDataChangeListener(any(LogicalDatastoreType.class), any(InstanceIdentifier.class),
                 any(DataChangeListener.class), any(DataChangeScope.class))).thenReturn(configReg);
         when(dataProvider.registerDataTreeChangeListener(any(DataTreeIdentifier.class),
-                any(DataTreeChangeListener.class))).thenReturn(configReg);
+                any(ClusteredDataTreeChangeListener.class))).thenReturn(configReg);
 
         WriteTransaction writeTransaction = mock(WriteTransaction.class);
         when(dataProvider.newWriteOnlyTransaction()).thenReturn(writeTransaction);
index d4ea879d9857843db25f2aca7d15dda7c5108d54..22e434f35974c6c069571caa73e17d7ed0383d46 100644 (file)
@@ -31,9 +31,9 @@ import java.util.concurrent.ScheduledExecutorService;
 
 import org.junit.Before;
 import org.junit.Test;
+import org.opendaylight.controller.md.sal.binding.api.ClusteredDataTreeChangeListener;
 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
 import org.opendaylight.controller.md.sal.binding.api.DataChangeListener;
-import org.opendaylight.controller.md.sal.binding.api.DataTreeChangeListener;
 import org.opendaylight.controller.md.sal.binding.api.DataTreeIdentifier;
 import org.opendaylight.controller.md.sal.binding.api.NotificationService;
 import org.opendaylight.controller.md.sal.binding.api.ReadOnlyTransaction;
@@ -122,7 +122,7 @@ public class EndpointManagerTest {
         when(dataProvider.registerDataChangeListener(any(LogicalDatastoreType.class), any(InstanceIdentifier.class),
                 any(DataChangeListener.class), any(DataChangeScope.class))).thenReturn(listenerReg);
         when(dataProvider.registerDataTreeChangeListener(any(DataTreeIdentifier.class),
-                any(DataTreeChangeListener.class))).thenReturn(listenerReg);
+                any(ClusteredDataTreeChangeListener.class))).thenReturn(listenerReg);
 
         manager = spy(new EndpointManager(dataProvider, packetService, flowService, notificationService, executor, switchManager));
         endpointListener = mock(EndpointListener.class);
index 7eeb356530e7d5c6015c793669b322c1ed83c469..eb4fe54e6f7443e84704d72c813b234e883e2301 100644 (file)
@@ -12,9 +12,9 @@ import java.util.Collection;
 
 import javax.annotation.Nonnull;
 
+import org.opendaylight.controller.md.sal.binding.api.ClusteredDataTreeChangeListener;
 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
 import org.opendaylight.controller.md.sal.binding.api.DataObjectModification;
-import org.opendaylight.controller.md.sal.binding.api.DataTreeChangeListener;
 import org.opendaylight.controller.md.sal.binding.api.DataTreeIdentifier;
 import org.opendaylight.controller.md.sal.binding.api.DataTreeModification;
 import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
@@ -33,7 +33,7 @@ import org.slf4j.LoggerFactory;
 import com.google.common.base.Preconditions;
 import com.google.common.eventbus.EventBus;
 
-public class VppNodeListener implements DataTreeChangeListener<Node>, AutoCloseable {
+public class VppNodeListener implements ClusteredDataTreeChangeListener<Node>, AutoCloseable {
 
     private static final Logger LOG = LoggerFactory.getLogger(VppNodeListener.class);
     private static final TopologyId TOPOLOGY_NETCONF = new TopologyId("topology-netconf");
index 6d87f0bdedc2a05c2858ca44b140791031bde942..852db5a5bf20c9fef0a815872ca8b90768fc47ab 100644 (file)
@@ -13,10 +13,10 @@ import java.util.Collection;
 
 import javax.annotation.Nonnull;
 
+import org.opendaylight.controller.md.sal.binding.api.ClusteredDataTreeChangeListener;
 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
 import org.opendaylight.controller.md.sal.binding.api.DataObjectModification;
 import org.opendaylight.controller.md.sal.binding.api.DataObjectModification.ModificationType;
-import org.opendaylight.controller.md.sal.binding.api.DataTreeChangeListener;
 import org.opendaylight.controller.md.sal.binding.api.DataTreeIdentifier;
 import org.opendaylight.controller.md.sal.binding.api.DataTreeModification;
 import org.opendaylight.controller.md.sal.binding.api.ReadOnlyTransaction;
@@ -82,7 +82,7 @@ public class BridgeDomainManagerImpl implements BridgeDomainManager {
     private final DataBroker dataProvder;
 
     private static final class ListenableFutureSetter<T extends DataObject>
-            implements DataTreeChangeListener<T> {
+            implements ClusteredDataTreeChangeListener<T> {
 
         private static final Logger LOG = LoggerFactory.getLogger(ListenableFutureSetter.class);
         private final SettableFuture<Void> future;
index f7898e78b4e3b5bd3055dd4cbdc080cb53598166..0d26e80e82c72225fe1408680a319af4febf6fab 100644 (file)
@@ -8,7 +8,7 @@
 
 package org.opendaylight.groupbasedpolicy.sxp.mapper.api;
 
-import org.opendaylight.controller.md.sal.binding.api.DataTreeChangeListener;
+import org.opendaylight.controller.md.sal.binding.api.ClusteredDataTreeChangeListener;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.groupbasedpolicy.sxp.mapper.model.rev160302.SxpMapper;
 import org.opendaylight.yangtools.yang.binding.DataObject;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
@@ -16,7 +16,7 @@ import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 /**
  * Purpose: provide listener capability to EndPoint templates
  */
-public interface EPTemplateListener<T extends DataObject> extends DataTreeChangeListener<T>, AutoCloseable {
+public interface EPTemplateListener<T extends DataObject> extends ClusteredDataTreeChangeListener<T>, AutoCloseable {
 
     InstanceIdentifier<SxpMapper> SXP_MAPPER_TEMPLATE_PARENT_PATH = InstanceIdentifier.create(SxpMapper.class);
 
index 6c9e2f861b53e2ba17611de2b3fabf08d16b4bfd..b11cd5928280c25226ca8198e008f0917b797764 100644 (file)
@@ -7,7 +7,7 @@
  */
 package org.opendaylight.groupbasedpolicy.sxp.mapper.api;
 
-import org.opendaylight.controller.md.sal.binding.api.DataTreeChangeListener;
+import org.opendaylight.controller.md.sal.binding.api.ClusteredDataTreeChangeListener;
 import org.opendaylight.sxp.core.Configuration;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.sxp.database.rev160308.master.database.fields.MasterDatabaseBinding;
 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.NetworkTopology;
@@ -20,7 +20,7 @@ import org.opendaylight.yangtools.yang.binding.KeyedInstanceIdentifier;
 /**
  * Purpose: provide listener capability to {@link MasterDatabaseBinding} (Sxp - MasterDB)
  */
-public interface MasterDatabaseBindingListener extends DataTreeChangeListener<MasterDatabaseBinding>, AutoCloseable {
+public interface MasterDatabaseBindingListener extends ClusteredDataTreeChangeListener<MasterDatabaseBinding>, AutoCloseable {
     /** path to SXP topology */
     KeyedInstanceIdentifier<Topology, TopologyKey> SXP_TOPOLOGY_PATH = InstanceIdentifier.create(NetworkTopology.class)
             .child(Topology.class, new TopologyKey(new TopologyId(Configuration.TOPOLOGY_NAME)));
index 621721115349c33b730a527618db2fadb8328adc..c5331430ff0e895e4bc392edb6202b124acf4044 100644 (file)
@@ -7,16 +7,12 @@
  */
 package org.opendaylight.groupbasedpolicy.sxp.mapper.impl.listen;
 
-import com.google.common.base.Optional;
-import com.google.common.base.Preconditions;
-import com.google.common.util.concurrent.AsyncFunction;
-import com.google.common.util.concurrent.FutureCallback;
-import com.google.common.util.concurrent.Futures;
-import com.google.common.util.concurrent.ListenableFuture;
 import java.util.Collection;
+
 import javax.annotation.Nonnull;
+
+import org.opendaylight.controller.md.sal.binding.api.ClusteredDataTreeChangeListener;
 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
-import org.opendaylight.controller.md.sal.binding.api.DataTreeChangeListener;
 import org.opendaylight.controller.md.sal.binding.api.DataTreeIdentifier;
 import org.opendaylight.controller.md.sal.binding.api.DataTreeModification;
 import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
@@ -45,6 +41,13 @@ import org.opendaylight.yangtools.yang.common.RpcResultBuilder;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import com.google.common.base.Optional;
+import com.google.common.base.Preconditions;
+import com.google.common.util.concurrent.AsyncFunction;
+import com.google.common.util.concurrent.FutureCallback;
+import com.google.common.util.concurrent.Futures;
+import com.google.common.util.concurrent.ListenableFuture;
+
 /**
  * listens to sxp master database and propagates change events for further processing
  */
@@ -63,7 +66,7 @@ public class MasterDatabaseBindingListenerImpl implements MasterDatabaseBindingL
     private final DSAsyncDao<Sgt, EndpointPolicyTemplateBySgt> epPolicyTemplateDao;
     private final DSAsyncDao<IpPrefix, EndpointForwardingTemplateBySubnet> epForwardingTemplateDao;
 
-    private final ListenerRegistration<? extends DataTreeChangeListener> listenerRegistration;
+    private final ListenerRegistration<? extends ClusteredDataTreeChangeListener> listenerRegistration;
     private final InstanceIdentifier<MasterDatabaseBinding> sxpDbPath;
 
     public MasterDatabaseBindingListenerImpl(final DataBroker dataBroker,
index 98127e21f7bdb959ca0095a55d93554980745043..bfadf9153f0b44ab64035813a137d8eebeff730f 100644 (file)
@@ -7,9 +7,8 @@
  */
 package org.opendaylight.groupbasedpolicy.sxp.mapper.impl.listen;
 
-import com.google.common.base.Optional;
-import com.google.common.util.concurrent.Futures;
 import java.util.Collections;
+
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -18,9 +17,9 @@ import org.mockito.Matchers;
 import org.mockito.Mock;
 import org.mockito.Mockito;
 import org.mockito.runners.MockitoJUnitRunner;
+import org.opendaylight.controller.md.sal.binding.api.ClusteredDataTreeChangeListener;
 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
 import org.opendaylight.controller.md.sal.binding.api.DataObjectModification;
-import org.opendaylight.controller.md.sal.binding.api.DataTreeChangeListener;
 import org.opendaylight.controller.md.sal.binding.api.DataTreeIdentifier;
 import org.opendaylight.controller.md.sal.binding.api.DataTreeModification;
 import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
@@ -42,6 +41,9 @@ import org.opendaylight.yangtools.concepts.ListenerRegistration;
 import org.opendaylight.yangtools.yang.binding.KeyedInstanceIdentifier;
 import org.opendaylight.yangtools.yang.common.RpcResultBuilder;
 
+import com.google.common.base.Optional;
+import com.google.common.util.concurrent.Futures;
+
 /**
  * Test for {@link EPForwardingTemplateListenerImpl}.
  */
@@ -91,7 +93,7 @@ public class EPForwardingTemplateListenerImplTest {
     @Before
     public void setUp() throws Exception {
         Mockito.when(dataBroker.registerDataTreeChangeListener(Matchers.<DataTreeIdentifier>any(),
-                Matchers.<DataTreeChangeListener>any())).thenReturn(listenerRegistration);
+                Matchers.<ClusteredDataTreeChangeListener>any())).thenReturn(listenerRegistration);
         listener = new EPForwardingTemplateListenerImpl(dataBroker, sxpMapper, simpleCachedDao, masterDBBindingDao, epPolicyTemplateDao);
     }
 
index be304d3a53d762b1c68bf40554229cc7041be13a..befb27d8f88a226ee59509329a349e5d25f4da55 100644 (file)
@@ -7,10 +7,8 @@
  */
 package org.opendaylight.groupbasedpolicy.sxp.mapper.impl.listen;
 
-import com.google.common.base.Optional;
-import com.google.common.collect.Lists;
-import com.google.common.util.concurrent.Futures;
 import java.util.Collections;
+
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -19,9 +17,9 @@ import org.mockito.Matchers;
 import org.mockito.Mock;
 import org.mockito.Mockito;
 import org.mockito.runners.MockitoJUnitRunner;
+import org.opendaylight.controller.md.sal.binding.api.ClusteredDataTreeChangeListener;
 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
 import org.opendaylight.controller.md.sal.binding.api.DataObjectModification;
-import org.opendaylight.controller.md.sal.binding.api.DataTreeChangeListener;
 import org.opendaylight.controller.md.sal.binding.api.DataTreeIdentifier;
 import org.opendaylight.controller.md.sal.binding.api.DataTreeModification;
 import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
@@ -44,6 +42,10 @@ import org.opendaylight.yangtools.concepts.ListenerRegistration;
 import org.opendaylight.yangtools.yang.binding.KeyedInstanceIdentifier;
 import org.opendaylight.yangtools.yang.common.RpcResultBuilder;
 
+import com.google.common.base.Optional;
+import com.google.common.collect.Lists;
+import com.google.common.util.concurrent.Futures;
+
 /**
  * Test for {@link EPPolicyTemplateListenerImpl}.
  */
@@ -88,7 +90,7 @@ public class EPPolicyTemplateListenerImplTest {
     @Before
     public void setUp() throws Exception {
         Mockito.when(dataBroker.registerDataTreeChangeListener(Matchers.<DataTreeIdentifier>any(),
-                Matchers.<DataTreeChangeListener>any())).thenReturn(listenerRegistration);
+                Matchers.<ClusteredDataTreeChangeListener>any())).thenReturn(listenerRegistration);
         listener = new EPPolicyTemplateListenerImpl(dataBroker, sxpMapper, simpleCachedDao, masterDBDao, epForwardingTemplateDao);
     }
 
index d0c8745fffcb1cd04ad7c24ba2004f8cfefa0cb7..2126753047510eea1e5c1c26de8ec518993b3937 100644 (file)
@@ -7,9 +7,8 @@
  */
 package org.opendaylight.groupbasedpolicy.sxp.mapper.impl.listen;
 
-import com.google.common.base.Optional;
-import com.google.common.util.concurrent.Futures;
 import java.util.Collections;
+
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -18,9 +17,9 @@ import org.mockito.Matchers;
 import org.mockito.Mock;
 import org.mockito.Mockito;
 import org.mockito.runners.MockitoJUnitRunner;
+import org.opendaylight.controller.md.sal.binding.api.ClusteredDataTreeChangeListener;
 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
 import org.opendaylight.controller.md.sal.binding.api.DataObjectModification;
-import org.opendaylight.controller.md.sal.binding.api.DataTreeChangeListener;
 import org.opendaylight.controller.md.sal.binding.api.DataTreeIdentifier;
 import org.opendaylight.controller.md.sal.binding.api.DataTreeModification;
 import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
@@ -50,6 +49,9 @@ import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.
 import org.opendaylight.yangtools.concepts.ListenerRegistration;
 import org.opendaylight.yangtools.yang.binding.KeyedInstanceIdentifier;
 
+import com.google.common.base.Optional;
+import com.google.common.util.concurrent.Futures;
+
 /**
  * Test for {@link MasterDatabaseBindingListenerImpl}.
  */
@@ -100,7 +102,7 @@ public class MasterDatabaseBindingListenerImplTest {
     @Before
     public void setUp() throws Exception {
         Mockito.when(dataBroker.registerDataTreeChangeListener(Matchers.<DataTreeIdentifier>any(),
-                Matchers.<DataTreeChangeListener>any())).thenReturn(listenerRegistration);
+                Matchers.<ClusteredDataTreeChangeListener>any())).thenReturn(listenerRegistration);
         listener = new MasterDatabaseBindingListenerImpl(dataBroker, sxpMapper, cachedDao, epPolicyTemplateDao,
                 epForwardingTemplateDao);
     }