X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-distributed-datastore%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fcluster%2Fdatastore%2Futils%2FActorContext.java;h=71e6b6491a4b2796e70d446b3bd0da11e9338a66;hb=93c17c55ca0c3690d77c96cdfed91b6f186fe56a;hp=1dc49dc88aca5468d075907033110af89368aed9;hpb=72a72ae745544e41603f851bf4f47087cfe521ba;p=controller.git diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/utils/ActorContext.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/utils/ActorContext.java index 1dc49dc88a..71e6b6491a 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/utils/ActorContext.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/utils/ActorContext.java @@ -25,6 +25,7 @@ import com.google.common.base.Optional; import com.google.common.base.Preconditions; import com.google.common.base.Strings; import java.util.concurrent.TimeUnit; +import java.util.function.Function; import org.opendaylight.controller.cluster.datastore.ClusterWrapper; import org.opendaylight.controller.cluster.datastore.DataStoreVersions; import org.opendaylight.controller.cluster.datastore.DatastoreContext; @@ -82,7 +83,7 @@ public class ActorContext { return actualFailure; } }; - public static final String MAILBOX = "bounded-mailbox"; + public static final String BOUNDED_MAILBOX = "bounded-mailbox"; public static final String COMMIT = "commit"; private final ActorSystem actorSystem; @@ -380,7 +381,7 @@ public class ActorContext { public void shutdown() { FiniteDuration duration = datastoreContext.getShardRaftConfig().getElectionTimeOutInterval().$times(3); try { - Await.ready(Patterns.gracefulStop(shardManager, duration, new Shutdown()), duration); + Await.ready(Patterns.gracefulStop(shardManager, duration, Shutdown.INSTANCE), duration); } catch(Exception e) { LOG.warn("ShardManager for {} data store did not shutdown gracefully", getDataStoreName(), e); } @@ -399,13 +400,14 @@ public class ActorContext { * * @param message */ - public void broadcast(final Object message){ + public void broadcast(final Function messageSupplier){ for(final String shardName : configuration.getAllShardNames()){ Future primaryFuture = findPrimaryShardAsync(shardName); primaryFuture.onComplete(new OnComplete() { @Override public void onComplete(Throwable failure, PrimaryShardInfo primaryShardInfo) { + Object message = messageSupplier.apply(primaryShardInfo.getPrimaryShardVersion()); if(failure != null) { LOG.warn("broadcast failed to send message {} to shard {}: {}", message.getClass().getSimpleName(), shardName, failure); @@ -452,30 +454,6 @@ public class ActorContext { } } - /** - * @deprecated This method is present only to support backward compatibility with Helium and should not be - * used any further - * - * - * @param primaryPath - * @param localPathOfRemoteActor - * @return - */ - @Deprecated - public String resolvePath(final String primaryPath, - final String localPathOfRemoteActor) { - StringBuilder builder = new StringBuilder(); - String[] primaryPathElements = primaryPath.split("/"); - builder.append(primaryPathElements[0]).append("//") - .append(primaryPathElements[1]).append(primaryPathElements[2]); - String[] remotePathElements = localPathOfRemoteActor.split("/"); - for (int i = 3; i < remotePathElements.length; i++) { - builder.append("/").append(remotePathElements[i]); - } - - return builder.toString(); - } - /** * This is a utility method that lets us get a Timer object for any operation. This is a little open-ended to allow * us to create a timer for pretty much anything. @@ -502,17 +480,6 @@ public class ActorContext { return datastoreContext.getDataStoreName(); } - /** - * Get the type of the data store to which this ActorContext belongs - * - * @return - * @deprecated Use {@link #getDataStoreName()} instead. - */ - @Deprecated - public String getDataStoreType() { - return datastoreContext.getDataStoreName(); - } - /** * Get the current transaction creation rate limit * @return