X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=bgp%2Frib-impl%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fprotocol%2Fbgp%2Frib%2Fimpl%2FApplicationPeer.java;h=e1759d8d5a26d9d77389ba3160b1c730c33c6ef9;hb=61e4a03e5554241bcb21dce49abe3e089e6e0237;hp=a021c6442f740d73ad1487d4301293a4f4f6ef15;hpb=d60888a10b4c49cca3e3cc277ced79d05d0b3460;p=bgpcep.git diff --git a/bgp/rib-impl/src/main/java/org/opendaylight/protocol/bgp/rib/impl/ApplicationPeer.java b/bgp/rib-impl/src/main/java/org/opendaylight/protocol/bgp/rib/impl/ApplicationPeer.java index a021c6442f..e1759d8d5a 100644 --- a/bgp/rib-impl/src/main/java/org/opendaylight/protocol/bgp/rib/impl/ApplicationPeer.java +++ b/bgp/rib-impl/src/main/java/org/opendaylight/protocol/bgp/rib/impl/ApplicationPeer.java @@ -29,9 +29,8 @@ import java.util.Set; 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; @@ -51,7 +50,6 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.rib. 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; @@ -94,7 +92,7 @@ public class ApplicationPeer extends AbstractPeer implements ClusteredDOMDataTre private final BGPTableTypeRegistryConsumer tableTypeRegistry; private EffectiveRibInWriter effectiveRibInWriter; private AdjRibInWriter adjRibInWriter; - private ListenerRegistration registration; + private Registration registration; private final Set supportedTables = new HashSet<>(); private final BGPSessionStateImpl bgpSessionState = new BGPSessionStateImpl(); private Registration trackerRegistration; @@ -128,7 +126,7 @@ public class ApplicationPeer extends AbstractPeer implements ClusteredDOMDataTre 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(); @@ -148,16 +146,19 @@ public class ApplicationPeer extends AbstractPeer implements ClusteredDOMDataTre 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); @@ -331,9 +332,8 @@ public class ApplicationPeer extends AbstractPeer implements ClusteredDOMDataTre } @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