X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-binding-broker%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fmd%2Fsal%2Fbinding%2Fimpl%2FAbstractForwardedDataBroker.java;h=82cbf087c862b6a6800117338d86bdc8dfd86acd;hp=b37bb045b118c58ccae9b8c3c6e09fa297a69741;hb=da676b1719581aa69348c97196715b6b922daa5b;hpb=874a18a9ce5dc09bc49922754bf8fb3e981fffb9 diff --git a/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/md/sal/binding/impl/AbstractForwardedDataBroker.java b/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/md/sal/binding/impl/AbstractForwardedDataBroker.java index b37bb045b1..82cbf087c8 100644 --- a/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/md/sal/binding/impl/AbstractForwardedDataBroker.java +++ b/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/md/sal/binding/impl/AbstractForwardedDataBroker.java @@ -7,7 +7,7 @@ */ package org.opendaylight.controller.md.sal.binding.impl; -import com.google.common.base.Objects; +import com.google.common.base.MoreObjects; import com.google.common.base.Optional; import java.util.Collections; import java.util.HashMap; @@ -15,13 +15,15 @@ import java.util.HashSet; import java.util.Map; import java.util.Map.Entry; import java.util.Set; +import org.opendaylight.controller.md.sal.binding.api.ClusteredDataChangeListener; import org.opendaylight.controller.md.sal.binding.api.DataChangeListener; import org.opendaylight.controller.md.sal.common.api.data.AsyncDataBroker.DataChangeScope; import org.opendaylight.controller.md.sal.common.api.data.AsyncDataChangeEvent; import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType; +import org.opendaylight.controller.md.sal.dom.api.ClusteredDOMDataChangeListener; import org.opendaylight.controller.md.sal.dom.api.DOMDataBroker; import org.opendaylight.controller.md.sal.dom.api.DOMDataChangeListener; -import org.opendaylight.controller.sal.core.api.model.SchemaService; +import org.opendaylight.mdsal.dom.api.DOMSchemaService; import org.opendaylight.yangtools.concepts.AbstractListenerRegistration; import org.opendaylight.yangtools.concepts.Delegator; import org.opendaylight.yangtools.concepts.ListenerRegistration; @@ -42,7 +44,7 @@ public abstract class AbstractForwardedDataBroker implements Delegator registerDataChangeListener(final LogicalDatastoreType store, final InstanceIdentifier path, final DataChangeListener listener, final DataChangeScope triggeringScope) { - final DOMDataChangeListener domDataChangeListener = new TranslatingDataChangeInvoker(store, path, listener, + final DOMDataChangeListener domDataChangeListener; + + if(listener instanceof ClusteredDataChangeListener) { + domDataChangeListener = new TranslatingClusteredDataChangeInvoker(store, path, listener, triggeringScope); + } else { + domDataChangeListener = new TranslatingDataChangeInvoker(store, path, listener, triggeringScope); - final YangInstanceIdentifier domPath = codec.toNormalized(path); + } + final YangInstanceIdentifier domPath = codec.toYangInstanceIdentifierBlocking(path); final ListenerRegistration domRegistration = domDataBroker.registerDataChangeListener(store, domPath, domDataChangeListener, triggeringScope); return new ListenerRegistrationImpl(listener, domRegistration); @@ -140,6 +148,20 @@ public abstract class AbstractForwardedDataBroker implements Delegator path, + final DataChangeListener bindingDataChangeListener, + final DataChangeScope triggeringScope) { + super(store, path, bindingDataChangeListener, triggeringScope); + } + } + private class TranslatedDataChangeEvent implements AsyncDataChangeEvent, DataObject> { private final AsyncDataChangeEvent> domEvent; private final InstanceIdentifier path; @@ -218,7 +240,7 @@ public abstract class AbstractForwardedDataBroker implements Delegator