import org.opendaylight.mdsal.common.api.CommitInfo;
import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
import org.opendaylight.mdsal.dom.api.ClusteredDOMDataTreeChangeListener;
-import org.opendaylight.mdsal.dom.api.DOMDataTreeChangeService;
+import org.opendaylight.mdsal.dom.api.DOMDataBroker.DataTreeChangeExtension;
import org.opendaylight.mdsal.dom.api.DOMDataTreeIdentifier;
-import org.opendaylight.mdsal.dom.api.DOMDataTreeTransaction;
import org.opendaylight.mdsal.dom.api.DOMDataTreeWriteTransaction;
import org.opendaylight.mdsal.dom.api.DOMTransactionChain;
import org.opendaylight.protocol.bgp.openconfig.spi.BGPTableTypeRegistryConsumer;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.rib.rev180329.PeerRole;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.rib.rev180329.rib.TablesKey;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev200120.RouteTarget;
-import org.opendaylight.yangtools.concepts.ListenerRegistration;
import org.opendaylight.yangtools.concepts.Registration;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates;
private final BGPTableTypeRegistryConsumer tableTypeRegistry;
private EffectiveRibInWriter effectiveRibInWriter;
private AdjRibInWriter adjRibInWriter;
- private ListenerRegistration<ApplicationPeer> registration;
+ private Registration registration;
private final Set<NodeIdentifierWithPredicates> supportedTables = new HashSet<>();
private final BGPSessionStateImpl bgpSessionState = new BGPSessionStateImpl();
private Registration trackerRegistration;
peerRibOutIId = peerRib.node(ADJRIBOUT_NID).node(TABLES_NID).toOptimized();
}
- public synchronized void instantiateServiceInstance(final DOMDataTreeChangeService dataTreeChangeService,
+ public synchronized void instantiateServiceInstance(final DataTreeChangeExtension dataTreeChangeService,
final DOMDataTreeIdentifier appPeerDOMId) {
setActive(true);
final var localTables = rib.getLocalTablesKeys();
final RegisterAppPeerListener registerAppPeerListener = () -> {
synchronized (this) {
if (getDomChain() != null) {
- registration = dataTreeChangeService.registerDataTreeChangeListener(appPeerDOMId, this);
+ registration = dataTreeChangeService.registerTreeChangeListener(appPeerDOMId, this);
}
}
};
peerPath = createPeerPath(peerId);
adjRibInWriter = adjRibInWriter.transform(peerId, peerPath, context, localTables,
Map.of(), registerAppPeerListener);
- effectiveRibInWriter = new EffectiveRibInWriter(this, rib,
- rib.createPeerDOMChain(this), peerPath, localTables, tableTypeRegistry,
- new ArrayList<>(), rtCache);
+
+ final var chain = rib.createPeerDOMChain();
+ chain.addCallback(this);
+
+ effectiveRibInWriter = new EffectiveRibInWriter(this, rib, chain, peerPath, localTables, tableTypeRegistry,
+ new ArrayList<>(), rtCache);
effectiveRibInWriter.init();
bgpSessionState.registerMessagesCounter(this);
trackerRegistration = rib.getPeerTracker().registerPeer(this);
}
@Override
- public void onTransactionChainFailed(final DOMTransactionChain chain, final DOMDataTreeTransaction transaction,
- final Throwable cause) {
- LOG.error("Transaction chain {} failed.", transaction != null ? transaction.getIdentifier() : null, cause);
+ public void onFailure(final Throwable cause) {
+ LOG.error("Transaction chain failed.", cause);
}
@Override