Migrate users of deprecated MD-SAL APIs.
Change-Id: I4f4529e1b962a95cfeb91948d94161b817760a84
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
import java.util.concurrent.atomic.AtomicBoolean;
import org.checkerframework.checker.lock.qual.GuardedBy;
import org.opendaylight.bgpcep.topology.TopologyReference;
-import org.opendaylight.mdsal.binding.api.ClusteredDataTreeChangeListener;
import org.opendaylight.mdsal.binding.api.DataBroker;
-import org.opendaylight.mdsal.binding.api.DataObjectModification;
+import org.opendaylight.mdsal.binding.api.DataTreeChangeListener;
import org.opendaylight.mdsal.binding.api.DataTreeIdentifier;
import org.opendaylight.mdsal.binding.api.DataTreeModification;
import org.opendaylight.mdsal.binding.api.ReadWriteTransaction;
import org.slf4j.LoggerFactory;
public abstract class AbstractTopologyBuilder<T extends Route>
- implements ClusteredDataTreeChangeListener<T>, TopologyReference, FutureCallback<Empty> {
+ implements DataTreeChangeListener<T>, TopologyReference, FutureCallback<Empty> {
private static final Logger LOG = LoggerFactory.getLogger(AbstractTopologyBuilder.class);
// we limit the listener reset interval to be 5 min at most
private static final long LISTENER_RESET_LIMIT_IN_MILLSEC = 5 * 60 * 1000;
this.getInstanceIdentifier());
final InstanceIdentifier<Tables> tablesId = locRibReference.getInstanceIdentifier()
.child(LocRib.class).child(Tables.class, new TablesKey(afi, safi));
- final DataTreeIdentifier<T> id = DataTreeIdentifier.create(LogicalDatastoreType.OPERATIONAL,
+ final DataTreeIdentifier<T> id = DataTreeIdentifier.of(LogicalDatastoreType.OPERATIONAL,
getRouteWildcard(tablesId));
- listenerRegistration = dataProvider.registerDataTreeChangeListener(id, this);
+ listenerRegistration = dataProvider.registerTreeChangeListener(id, this);
LOG.debug("Registered listener {} on topology {}. Timestamp={}", this, this.getInstanceIdentifier(),
listenerScheduledRestartTime);
}
@VisibleForTesting
protected void routeChanged(final DataTreeModification<T> change, final ReadWriteTransaction trans) {
- final DataObjectModification<T> root = change.getRootNode();
- switch (root.getModificationType()) {
+ final var root = change.getRootNode();
+ switch (root.modificationType()) {
case DELETE:
- removeObject(trans, change.getRootPath().getRootIdentifier(), root.getDataBefore());
+ removeObject(trans, change.getRootPath().path(), root.dataBefore());
break;
case SUBTREE_MODIFIED:
case WRITE:
- if (root.getDataBefore() != null) {
- removeObject(trans, change.getRootPath().getRootIdentifier(), root.getDataBefore());
+ final var before = root.dataBefore();
+ if (before != null) {
+ removeObject(trans, change.getRootPath().path(), before);
}
- createObject(trans, change.getRootPath().getRootIdentifier(), root.getDataAfter());
+ createObject(trans, change.getRootPath().path(), root.dataAfter());
break;
default:
- throw new IllegalArgumentException("Unhandled modification type " + root.getModificationType());
+ throw new IllegalArgumentException("Unhandled modification type " + root.modificationType());
}
}
requireNonNull(chain, "A valid transaction chain must be provided.");
final WriteTransaction trans = chain.newWriteOnlyTransaction();
trans.mergeParentStructurePut(LogicalDatastoreType.OPERATIONAL, topology,
- new TopologyBuilder().withKey(topologyKey).setServerProvided(Boolean.TRUE)
- .setTopologyTypes(topologyTypes)
- .setLink(Map.of()).setNode(Map.of()).build());
+ new TopologyBuilder()
+ .withKey(topologyKey)
+ .setServerProvided(Boolean.TRUE)
+ .setTopologyTypes(topologyTypes)
+ .setLink(Map.of())
+ .setNode(Map.of())
+ .build());
trans.commit().addCallback(new FutureCallback<CommitInfo>() {
@Override
public void onSuccess(final CommitInfo result) {
import org.opendaylight.graph.ConnectedGraph;
import org.opendaylight.graph.ConnectedGraphProvider;
import org.opendaylight.mdsal.binding.api.DataBroker;
-import org.opendaylight.mdsal.binding.api.DataObjectModification;
import org.opendaylight.mdsal.binding.api.DataTreeModification;
import org.opendaylight.mdsal.binding.api.ReadWriteTransaction;
import org.opendaylight.protocol.bgp.rib.RibReference;
@Override
protected void routeChanged(final DataTreeModification<LinkstateRoute> change, final ReadWriteTransaction trans) {
- final DataObjectModification<LinkstateRoute> root = change.getRootNode();
- switch (root.getModificationType()) {
+ final var root = change.getRootNode();
+ switch (root.modificationType()) {
case DELETE:
- removeObject(trans, change.getRootPath().getRootIdentifier(), root.getDataBefore());
+ removeObject(trans, change.getRootPath().path(), root.dataBefore());
break;
case SUBTREE_MODIFIED:
case WRITE:
- createObject(trans, change.getRootPath().getRootIdentifier(), root.getDataAfter());
+ createObject(trans, change.getRootPath().path(), root.dataAfter());
break;
default:
- throw new IllegalArgumentException("Unhandled modification type " + root.getModificationType());
+ throw new IllegalArgumentException("Unhandled modification type " + root.modificationType());
}
}
} else {
builder.setAdjSid6(adjSid);
}
+ } else if (!ipv6) {
+ builder.setBackupAdjSid(adjSid);
} else {
- if (!ipv6) {
- builder.setBackupAdjSid(adjSid);
- } else {
- builder.setBackupAdjSid6(adjSid);
- }
+ builder.setBackupAdjSid6(adjSid);
}
}
}
import java.util.List;
import java.util.Map;
import java.util.Set;
+import org.eclipse.jdt.annotation.NonNull;
import org.opendaylight.mdsal.binding.api.DataBroker;
import org.opendaylight.mdsal.binding.api.ReadWriteTransaction;
import org.opendaylight.mdsal.binding.api.WriteTransaction;
listenerResetLimitInMillsec, listenerResetEnforceCounter);
}
- private static LinkId buildLinkId(final UriBuilder base, final LinkCase link) {
+ private static @NonNull LinkId buildLinkId(final UriBuilder base, final LinkCase link) {
return new LinkId(new UriBuilder(base, "link").add(link).toString());
}
return buildTp(id, t);
}
- private InstanceIdentifier<Link> buildLinkIdentifier(final LinkId id) {
+ private @NonNull InstanceIdentifier<Link> buildLinkIdentifier(final LinkId id) {
return getInstanceIdentifier().child(
org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology
.topology.Link.class, new LinkKey(id));
}
private void removeLink(final WriteTransaction trans, final UriBuilder base, final LinkCase linkCase) {
- final LinkId id = buildLinkId(base, linkCase);
+ final var id = buildLinkId(base, linkCase);
final InstanceIdentifier<?> lid = buildLinkIdentifier(id);
trans.delete(LogicalDatastoreType.OPERATIONAL, lid);
LOG.debug("Removed link {}", lid);
import org.opendaylight.bgpcep.bgp.topology.provider.spi.BgpTopologyDeployer;
import org.opendaylight.bgpcep.bgp.topology.provider.spi.BgpTopologyProvider;
import org.opendaylight.bgpcep.bgp.topology.provider.spi.TopologyReferenceSingletonService;
-import org.opendaylight.mdsal.binding.api.ClusteredDataTreeChangeListener;
import org.opendaylight.mdsal.binding.api.DataBroker;
import org.opendaylight.mdsal.binding.api.DataObjectModification;
+import org.opendaylight.mdsal.binding.api.DataTreeChangeListener;
import org.opendaylight.mdsal.binding.api.DataTreeIdentifier;
import org.opendaylight.mdsal.binding.api.DataTreeModification;
import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
@Component(service = BgpTopologyDeployer.class, immediate = true)
@RequireServiceComponentRuntime
public final class BgpTopologyDeployerImpl implements BgpTopologyDeployer, AutoCloseable,
- ClusteredDataTreeChangeListener<Topology> {
-
+ DataTreeChangeListener<Topology> {
private static final Logger LOG = LoggerFactory.getLogger(BgpTopologyDeployerImpl.class);
- private static final InstanceIdentifier<Topology> TOPOLOGY_IID =
- InstanceIdentifier.create(NetworkTopology.class).child(Topology.class);
@GuardedBy("this")
private final Set<BgpTopologyProvider> topologyProviders = new HashSet<>();
@Reference final ClusterSingletonServiceProvider singletonProvider) {
this.dataBroker = requireNonNull(dataBroker);
this.singletonProvider = requireNonNull(singletonProvider);
- registration = dataBroker.registerDataTreeChangeListener(
- DataTreeIdentifier.create(LogicalDatastoreType.CONFIGURATION, TOPOLOGY_IID), this);
+ registration = dataBroker.registerTreeChangeListener(
+ DataTreeIdentifier.of(LogicalDatastoreType.CONFIGURATION,
+ InstanceIdentifier.create(NetworkTopology.class).child(Topology.class)), this);
LOG.info("BGP topology deployer started.");
}
LOG.trace("BGP Topology Provider Deployer was already closed, skipping changes.");
return;
}
- for (final DataTreeModification<Topology> change : changes) {
+ for (var change : changes) {
final DataObjectModification<Topology> rootNode = change.getRootNode();
- final Topology dataBefore = rootNode.getDataBefore();
- final Topology dataAfter = rootNode.getDataAfter();
+ final Topology dataBefore = rootNode.dataBefore();
+ final Topology dataAfter = rootNode.dataAfter();
LOG.trace("BGP topology deployer configuration changed: modification type: [{}],"
- + " data before:[{}], data after: [{}]", rootNode.getModificationType(), dataBefore, dataAfter);
- switch (rootNode.getModificationType()) {
+ + " data before:[{}], data after: [{}]", rootNode.modificationType(), dataBefore, dataAfter);
+ switch (rootNode.modificationType()) {
case DELETE:
filterTopologyBuilders(dataBefore)
- .forEach(provider -> provider.onTopologyBuilderRemoved(dataBefore));
+ .forEach(provider -> provider.onTopologyBuilderRemoved(dataBefore));
topologies.remove(dataBefore);
break;
case SUBTREE_MODIFIED:
- filterTopologyBuilders(dataBefore).forEach(provider
- -> provider.onTopologyBuilderRemoved(dataBefore));
+ filterTopologyBuilders(dataBefore)
+ .forEach(provider -> provider.onTopologyBuilderRemoved(dataBefore));
topologies.remove(dataBefore);
- filterTopologyBuilders(dataAfter).forEach(provider
- -> provider.onTopologyBuilderCreated(dataAfter));
+ filterTopologyBuilders(dataAfter)
+ .forEach(provider -> provider.onTopologyBuilderCreated(dataAfter));
topologies.add(dataAfter);
break;
case WRITE:
- filterTopologyBuilders(dataAfter).forEach(provider
- -> provider.onTopologyBuilderCreated(dataAfter));
+ filterTopologyBuilders(dataAfter)
+ .forEach(provider -> provider.onTopologyBuilderCreated(dataAfter));
topologies.add(dataAfter);
break;
default: