Migrate most of CDS to use java.util.Optional
[controller.git] / opendaylight / md-sal / sal-distributed-datastore / src / main / java / org / opendaylight / controller / cluster / datastore / ShardDataTreeChangeListenerPublisherActorProxy.java
index ceaeeccaad8b700a9c262f25cdc7d1f50f590f60..d737b55437ff9af482272313ccd2aafdcb8952ae 100644 (file)
@@ -10,34 +10,35 @@ package org.opendaylight.controller.cluster.datastore;
 import akka.actor.ActorContext;
 import akka.actor.ActorRef;
 import akka.actor.Props;
-import com.google.common.base.Optional;
+import java.util.Optional;
 import java.util.function.Consumer;
-import javax.annotation.concurrent.NotThreadSafe;
-import org.opendaylight.controller.md.sal.dom.api.DOMDataTreeChangeListener;
+import org.opendaylight.mdsal.dom.api.DOMDataTreeChangeListener;
 import org.opendaylight.yangtools.concepts.ListenerRegistration;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
 import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidate;
 
 /**
- * Implementation of ShardDataTreeChangeListenerPublisher that offloads the generation and publication
- * of data tree change notifications to an actor.
+ * Implementation of ShardDataTreeChangeListenerPublisher that offloads the generation and publication of data tree
+ * change notifications to an actor. This class is NOT thread-safe.
  *
  * @author Thomas Pantelis
  */
-@NotThreadSafe
 class ShardDataTreeChangeListenerPublisherActorProxy extends AbstractShardDataTreeNotificationPublisherActorProxy
         implements ShardDataTreeChangeListenerPublisher {
 
-    ShardDataTreeChangeListenerPublisherActorProxy(ActorContext actorContext, String actorName, String logContext) {
+    ShardDataTreeChangeListenerPublisherActorProxy(final ActorContext actorContext, final String actorName,
+        final String logContext) {
         super(actorContext, actorName, logContext);
     }
 
     @Override
-    public void registerTreeChangeListener(YangInstanceIdentifier treeId,
-            DOMDataTreeChangeListener listener, Optional<DataTreeCandidate> currentState,
-            Consumer<ListenerRegistration<DOMDataTreeChangeListener>> onRegistration) {
-        notifierActor().tell(new ShardDataTreeChangePublisherActor.RegisterListener(treeId, listener, currentState,
-                onRegistration), ActorRef.noSender());
+    public void registerTreeChangeListener(final YangInstanceIdentifier treeId,
+            final DOMDataTreeChangeListener listener, final Optional<DataTreeCandidate> currentState,
+            final Consumer<ListenerRegistration<DOMDataTreeChangeListener>> onRegistration) {
+        final ShardDataTreeChangePublisherActor.RegisterListener regMessage =
+                new ShardDataTreeChangePublisherActor.RegisterListener(treeId, listener, currentState, onRegistration);
+        log.debug("{}: Sending {} to publisher actor {}", logContext(), regMessage, publisherActor());
+        publisherActor().tell(regMessage, ActorRef.noSender());
     }
 
     @Override