X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-distributed-datastore%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fcluster%2Fdatastore%2FRemoteTransactionContext.java;h=ba1d05068b0ffc23b68097e8e4109baca1fbd9d6;hp=6714815d7ec693a81097e089d1b1d2426dc1f551;hb=5b69c8e66b12a29a36457955cac4a45affd7c73f;hpb=f5f6ffd70f78e81106c04e1f1bb252e1e51a7617 diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/RemoteTransactionContext.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/RemoteTransactionContext.java index 6714815d7e..ba1d05068b 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/RemoteTransactionContext.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/RemoteTransactionContext.java @@ -22,9 +22,14 @@ import org.opendaylight.controller.cluster.datastore.messages.AbstractRead; import org.opendaylight.controller.cluster.datastore.messages.BatchedModifications; import org.opendaylight.controller.cluster.datastore.messages.CloseTransaction; import org.opendaylight.controller.cluster.datastore.modification.AbstractModification; +import org.opendaylight.controller.cluster.datastore.modification.DeleteModification; +import org.opendaylight.controller.cluster.datastore.modification.MergeModification; import org.opendaylight.controller.cluster.datastore.modification.Modification; +import org.opendaylight.controller.cluster.datastore.modification.WriteModification; import org.opendaylight.controller.cluster.datastore.utils.ActorUtils; import org.opendaylight.mdsal.common.api.ReadFailedException; +import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; +import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import scala.concurrent.Future; @@ -179,7 +184,7 @@ public class RemoteTransactionContext extends AbstractTransactionContext { sent = actorUtils.executeOperationAsync(getActor(), toSend.toSerializable(), actorUtils.getTransactionCommitOperationTimeout()); - sent.onComplete(new OnComplete() { + sent.onComplete(new OnComplete<>() { @Override public void onComplete(final Throwable failure, final Object success) { if (failure != null) { @@ -197,10 +202,26 @@ public class RemoteTransactionContext extends AbstractTransactionContext { } @Override - public void executeModification(final AbstractModification modification, final Boolean havePermit) { - LOG.debug("Tx {} executeModification {} called path = {}", getIdentifier(), - modification.getClass().getSimpleName(), modification.getPath()); + public void executeDelete(final YangInstanceIdentifier path, final Boolean havePermit) { + LOG.debug("Tx {} executeDelete called path = {}", getIdentifier(), path); + executeModification(new DeleteModification(path), havePermit); + } + + @Override + public void executeMerge(final YangInstanceIdentifier path, final NormalizedNode data, + final Boolean havePermit) { + LOG.debug("Tx {} executeMerge called path = {}", getIdentifier(), path); + executeModification(new MergeModification(path, data), havePermit); + } + + @Override + public void executeWrite(final YangInstanceIdentifier path, final NormalizedNode data, + final Boolean havePermit) { + LOG.debug("Tx {} executeWrite called path = {}", getIdentifier(), path); + executeModification(new WriteModification(path, data), havePermit); + } + private void executeModification(final AbstractModification modification, final Boolean havePermit) { final boolean permitToRelease; if (havePermit == null) { permitToRelease = failedModification == null && acquireOperation(); @@ -233,7 +254,7 @@ public class RemoteTransactionContext extends AbstractTransactionContext { final boolean permitToRelease = havePermit == null ? acquireOperation() : havePermit.booleanValue(); sendBatchedModifications(); - OnComplete onComplete = new OnComplete() { + OnComplete onComplete = new OnComplete<>() { @Override public void onComplete(final Throwable failure, final Object response) { // We have previously acquired an operation, now release it, no matter what happened