package org.opendaylight.controller.config.yang.netconf.mdsal.notification;
-import com.google.common.util.concurrent.CheckedFuture;
import com.google.common.util.concurrent.FutureCallback;
-import com.google.common.util.concurrent.Futures;
import com.google.common.util.concurrent.MoreExecutors;
+import java.util.concurrent.ExecutionException;
import org.opendaylight.controller.md.sal.binding.api.DataBroker;
import org.opendaylight.controller.md.sal.binding.api.WriteTransaction;
import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
-import org.opendaylight.controller.md.sal.common.api.data.TransactionCommitFailedException;
+import org.opendaylight.mdsal.common.api.CommitInfo;
import org.opendaylight.netconf.notifications.NetconfNotificationCollector;
import org.opendaylight.netconf.notifications.NotificationRegistration;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.netconf.notification._1._0.rev080714.StreamNameType;
.NetconfNotificationStreamListener {
private static final Logger LOG = LoggerFactory.getLogger(NotificationToMdsalWriter.class);
+ private static final InstanceIdentifier<Streams> STREAMS = InstanceIdentifier.builder(Netconf.class)
+ .child(Streams.class).build();
private final NetconfNotificationCollector netconfNotificationCollector;
private final DataBroker dataBroker;
public void close() {
final WriteTransaction tx = dataBroker.newWriteOnlyTransaction();
tx.delete(LogicalDatastoreType.OPERATIONAL, InstanceIdentifier.create(Netconf.class));
- final CheckedFuture<Void, TransactionCommitFailedException> submit = tx.submit();
- Futures.addCallback(submit, new FutureCallback<Void>() {
+ tx.commit().addCallback(new FutureCallback<CommitInfo>() {
@Override
- public void onSuccess(Void avoid) {
+ public void onSuccess(final CommitInfo info) {
LOG.debug("Streams cleared successfully");
}
@Override
- public void onFailure(Throwable throwable) {
+ public void onFailure(final Throwable throwable) {
LOG.warn("Unable to clear streams", throwable);
}
}, MoreExecutors.directExecutor());
}
@Override
- public void onStreamRegistered(Stream stream) {
+ public void onStreamRegistered(final Stream stream) {
final WriteTransaction tx = dataBroker.newWriteOnlyTransaction();
- final InstanceIdentifier streamIdentifier = InstanceIdentifier.create(Netconf.class).child(Streams.class)
- .builder().child(Stream.class, stream.getKey()).build();
+ final InstanceIdentifier<Stream> streamIdentifier = STREAMS.child(Stream.class, stream.key());
tx.merge(LogicalDatastoreType.OPERATIONAL, streamIdentifier, stream, true);
try {
- tx.submit().checkedGet();
- LOG.debug("Stream %s registered successfully.", stream.getName());
- } catch (TransactionCommitFailedException e) {
- LOG.warn("Unable to register stream.", e);
+ tx.commit().get();
+ LOG.debug("Stream {} registered successfully.", stream.getName());
+ } catch (InterruptedException | ExecutionException e) {
+ LOG.warn("Unable to register stream {}.", stream, e);
}
}
@Override
- public void onStreamUnregistered(StreamNameType stream) {
+ public void onStreamUnregistered(final StreamNameType stream) {
final WriteTransaction tx = dataBroker.newWriteOnlyTransaction();
- final StreamKey streamKey = new StreamKey(stream);
- final InstanceIdentifier streamIdentifier = InstanceIdentifier.create(Netconf.class).child(Streams.class)
- .builder().child(Stream.class, streamKey).build();
+ final InstanceIdentifier<Stream> streamIdentifier = STREAMS.child(Stream.class, new StreamKey(stream));
tx.delete(LogicalDatastoreType.OPERATIONAL, streamIdentifier);
try {
- tx.submit().checkedGet();
- LOG.debug("Stream %s unregistered successfully.", stream);
- } catch (TransactionCommitFailedException e) {
- LOG.warn("Unable to unregister stream", e);
+ tx.commit().get();
+ LOG.debug("Stream {} unregistered successfully.", stream);
+ } catch (InterruptedException | ExecutionException e) {
+ LOG.warn("Unable to unregister stream {}", stream, e);
}
}
}