* 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.controller.cluster.datastore;
+import static java.util.Objects.requireNonNull;
+
import akka.actor.ActorRef;
import akka.dispatch.OnComplete;
import akka.pattern.Patterns;
import akka.util.Timeout;
-import com.google.common.base.Preconditions;
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
import java.util.concurrent.TimeUnit;
-import javax.annotation.concurrent.GuardedBy;
+import org.checkerframework.checker.lock.qual.GuardedBy;
import org.opendaylight.controller.cluster.datastore.exceptions.LocalShardNotFoundException;
-import org.opendaylight.controller.cluster.datastore.utils.ActorContext;
+import org.opendaylight.controller.cluster.datastore.utils.ActorUtils;
import org.opendaylight.mdsal.dom.api.DOMDataTreeCommitCohort;
import org.opendaylight.mdsal.dom.api.DOMDataTreeCommitCohortRegistration;
import org.opendaylight.mdsal.dom.api.DOMDataTreeIdentifier;
private static final Timeout TIMEOUT = new Timeout(new FiniteDuration(5, TimeUnit.SECONDS));
private final DOMDataTreeIdentifier subtree;
private final ActorRef actor;
- private final ActorContext actorContext;
+ private final ActorUtils actorUtils;
@GuardedBy("this")
private ActorRef cohortRegistry;
-
- DataTreeCohortRegistrationProxy(ActorContext actorContext, DOMDataTreeIdentifier subtree, C cohort) {
+ DataTreeCohortRegistrationProxy(final ActorUtils actorUtils, final DOMDataTreeIdentifier subtree,
+ final C cohort) {
super(cohort);
- this.subtree = Preconditions.checkNotNull(subtree);
- this.actorContext = Preconditions.checkNotNull(actorContext);
- this.actor = actorContext.getActorSystem().actorOf(DataTreeCohortActor.props(getInstance(),
- subtree.getRootIdentifier()).withDispatcher(actorContext.getNotificationDispatcherPath()));
+ this.subtree = requireNonNull(subtree);
+ this.actorUtils = requireNonNull(actorUtils);
+ this.actor = actorUtils.getActorSystem().actorOf(DataTreeCohortActor.props(getInstance(),
+ subtree.getRootIdentifier()).withDispatcher(actorUtils.getNotificationDispatcherPath()));
}
-
- public void init(String shardName) {
+ public void init(final String shardName) {
// FIXME: Add late binding to shard.
- Future<ActorRef> findFuture = actorContext.findLocalShardAsync(shardName);
+ Future<ActorRef> findFuture = actorUtils.findLocalShardAsync(shardName);
findFuture.onComplete(new OnComplete<ActorRef>() {
@Override
public void onComplete(final Throwable failure, final ActorRef shard) {
+ "cannot be registered", shardName, getInstance(), subtree);
} else if (failure != null) {
LOG.error("Failed to find local shard {} - DataTreeChangeListener {} at path {} "
- + "cannot be registered: {}", shardName, getInstance(), subtree, failure);
+ + "cannot be registered", shardName, getInstance(), subtree, failure);
} else {
performRegistration(shard);
}
}
- }, actorContext.getClientDispatcher());
+ }, actorUtils.getClientDispatcher());
}
- private synchronized void performRegistration(ActorRef shard) {
+ @SuppressFBWarnings(value = "UPM_UNCALLED_PRIVATE_METHOD",
+ justification = "https://github.com/spotbugs/spotbugs/issues/811")
+ private synchronized void performRegistration(final ActorRef shard) {
if (isClosed()) {
return;
}
future.onComplete(new OnComplete<Object>() {
@Override
- public void onComplete(Throwable failure, Object val) {
+ public void onComplete(final Throwable failure, final Object val) {
if (failure != null) {
LOG.error("Unable to register {} as commit cohort", getInstance(), failure);
}
}
}
- }, actorContext.getClientDispatcher());
+ }, actorUtils.getClientDispatcher());
}
@Override