*/
package org.opendaylight.openflowplugin.samples.sample.bundles;
-import java.util.Collection;
import java.util.List;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.ExecutionException;
import javax.annotation.PreDestroy;
import javax.inject.Inject;
import javax.inject.Singleton;
-import org.opendaylight.mdsal.binding.api.ClusteredDataTreeChangeListener;
import org.opendaylight.mdsal.binding.api.DataBroker;
import org.opendaylight.mdsal.binding.api.DataObjectModification.ModificationType;
+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.RpcConsumerRegistry;
+import org.opendaylight.mdsal.binding.api.RpcService;
import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Prefix;
import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.GroupActionCaseBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.rev170124.BundleControlType;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.rev170124.BundleFlags;
import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.onf.rev170124.BundleId;
-import org.opendaylight.yangtools.concepts.ListenerRegistration;
+import org.opendaylight.yangtools.concepts.Registration;
import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
import org.opendaylight.yangtools.yang.binding.util.BindingMap;
import org.opendaylight.yangtools.yang.common.Uint16;
*/
@Singleton
@Component(service = { })
-public final class SampleFlowCapableNodeListener
- implements ClusteredDataTreeChangeListener<FlowCapableNode>, AutoCloseable {
+public final class SampleFlowCapableNodeListener implements DataTreeChangeListener<FlowCapableNode>, AutoCloseable {
private static final Logger LOG = LoggerFactory.getLogger(SampleFlowCapableNodeListener.class);
private static final BundleId BUNDLE_ID = new BundleId(Uint32.ONE);
private final ControlBundle controlBundle;
private final AddBundleMessages addBundleMessages;
- private final ListenerRegistration<?> listenerReg;
+ private final Registration listenerReg;
@Inject
@Activate
public SampleFlowCapableNodeListener(@Reference final DataBroker dataBroker,
- @Reference final RpcConsumerRegistry rpcService) {
+ @Reference final RpcService rpcService) {
controlBundle = rpcService.getRpc(ControlBundle.class);
addBundleMessages = rpcService.getRpc(AddBundleMessages.class);
LOG.debug("inSessionInitialized() passing");
final InstanceIdentifier<FlowCapableNode> path = InstanceIdentifier.create(Nodes.class).child(Node.class)
.augmentation(FlowCapableNode.class);
final DataTreeIdentifier<FlowCapableNode> identifier =
- DataTreeIdentifier.create(LogicalDatastoreType.OPERATIONAL, path);
+ DataTreeIdentifier.of(LogicalDatastoreType.OPERATIONAL, path);
- listenerReg = dataBroker.registerDataTreeChangeListener(identifier, SampleFlowCapableNodeListener.this);
+ listenerReg = dataBroker.registerTreeChangeListener(identifier, SampleFlowCapableNodeListener.this);
}
@PreDestroy
}
@Override
- public void onDataTreeChanged(final Collection<DataTreeModification<FlowCapableNode>> modifications) {
+ public void onDataTreeChanged(final List<DataTreeModification<FlowCapableNode>> modifications) {
for (var modification : modifications) {
- if (modification.getRootNode().getModificationType() == ModificationType.WRITE) {
- LOG.info("Node connected: {}",
- modification.getRootPath().getRootIdentifier().firstIdentifierOf(Node.class));
+ if (modification.getRootNode().modificationType() == ModificationType.WRITE) {
+ final var nodePath = modification.getRootPath().path().firstIdentifierOf(Node.class);
+ LOG.info("Node connected: {}", nodePath);
- final var nodeRef =
- new NodeRef(modification.getRootPath().getRootIdentifier().firstIdentifierOf(Node.class));
+ final var nodeRef = new NodeRef(nodePath);
final var openBundleInput = new ControlBundleInputBuilder()
.setNode(nodeRef)