Add changed-leaf-nodes-only subscription extension
[netconf.git] / netconf / netconf-topology-singleton / src / main / java / org / opendaylight / netconf / topology / singleton / impl / actors / WriteTransactionActor.java
index 8a1f53af5297a0772d4e8ca3f80656c1fbe532a4..dd799dd58254163c6dcca5909898a036ad321cc4 100644 (file)
@@ -5,35 +5,34 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-
 package org.opendaylight.netconf.topology.singleton.impl.actors;
 
 import akka.actor.Props;
 import akka.actor.ReceiveTimeout;
-import akka.actor.UntypedActor;
-import org.opendaylight.controller.md.sal.dom.api.DOMDataReadOnlyTransaction;
-import org.opendaylight.controller.md.sal.dom.api.DOMDataWriteTransaction;
+import akka.actor.UntypedAbstractActor;
+import akka.util.JavaDurationConverters;
+import java.time.Duration;
+import org.opendaylight.mdsal.dom.api.DOMDataTreeWriteTransaction;
 import org.opendaylight.netconf.topology.singleton.messages.transactions.WriteActorMessage;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import scala.concurrent.duration.Duration;
 
 /**
- * WriteTransactionActor is an interface to device's {@link DOMDataReadOnlyTransaction} for cluster nodes.
+ * WriteTransactionActor is an interface to device's {@link DOMDataTreeWriteTransaction} for cluster nodes.
  */
-public class WriteTransactionActor extends UntypedActor {
+public final class WriteTransactionActor extends UntypedAbstractActor {
 
     private static final Logger LOG = LoggerFactory.getLogger(WriteTransactionActor.class);
 
-    private final DOMDataWriteTransaction tx;
+    private final DOMDataTreeWriteTransaction tx;
     private final long idleTimeout;
     private final WriteAdapter writeAdapter;
 
-    private WriteTransactionActor(final DOMDataWriteTransaction tx, final Duration idleTimeout) {
+    private WriteTransactionActor(final DOMDataTreeWriteTransaction tx, final Duration idleTimeout) {
         this.tx = tx;
         this.idleTimeout = idleTimeout.toSeconds();
         if (this.idleTimeout > 0) {
-            context().setReceiveTimeout(idleTimeout);
+            context().setReceiveTimeout(JavaDurationConverters.asFiniteDuration(idleTimeout));
         }
         writeAdapter = new WriteAdapter(tx);
     }
@@ -45,12 +44,12 @@ public class WriteTransactionActor extends UntypedActor {
      * @param idleTimeout idle time in seconds, after which transaction is closed automatically
      * @return props
      */
-    static Props props(final DOMDataWriteTransaction tx, final Duration idleTimeout) {
+    static Props props(final DOMDataTreeWriteTransaction tx, final Duration idleTimeout) {
         return Props.create(WriteTransactionActor.class, () -> new WriteTransactionActor(tx, idleTimeout));
     }
 
     @Override
-    public void onReceive(final Object message) throws Throwable {
+    public void onReceive(final Object message) {
         if (message instanceof WriteActorMessage) {
             writeAdapter.handle(message, sender(), context(), self());
         } else if (message instanceof ReceiveTimeout) {
@@ -62,6 +61,4 @@ public class WriteTransactionActor extends UntypedActor {
             unhandled(message);
         }
     }
-
-
 }