X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;ds=inline;f=opendaylight%2Fmd-sal%2Fsal-distributed-datastore%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fcluster%2Fsharding%2FDistributedShardedDOMDataTree.java;h=64c3f14dfb5dde59806c31dd3f92e92af745ebc7;hb=a6af137c30470b86d4bc624d4c48cb686495a182;hp=53d0270312d2b5e06e8b8dc87fe480d855087a1c;hpb=c0aefbe270a37756cf5eb4987626fee572584562;p=controller.git diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/sharding/DistributedShardedDOMDataTree.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/sharding/DistributedShardedDOMDataTree.java index 53d0270312..64c3f14dfb 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/sharding/DistributedShardedDOMDataTree.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/sharding/DistributedShardedDOMDataTree.java @@ -21,8 +21,9 @@ import akka.util.Timeout; import com.google.common.base.Optional; import com.google.common.base.Preconditions; import com.google.common.base.Throwables; +import com.google.common.collect.ClassToInstanceMap; import com.google.common.collect.ForwardingObject; -import com.google.common.collect.ImmutableMap; +import com.google.common.collect.ImmutableClassToInstanceMap; import com.google.common.util.concurrent.FutureCallback; import com.google.common.util.concurrent.Futures; import com.google.common.util.concurrent.ListenableFuture; @@ -30,9 +31,9 @@ import com.google.common.util.concurrent.MoreExecutors; import com.google.common.util.concurrent.SettableFuture; import com.google.common.util.concurrent.Uninterruptibles; import java.util.AbstractMap.SimpleEntry; -import java.util.ArrayList; import java.util.Collection; import java.util.Collections; +import java.util.Comparator; import java.util.EnumMap; import java.util.HashMap; import java.util.List; @@ -237,17 +238,8 @@ public class DistributedShardedDOMDataTree implements DOMDataTreeService, DOMDat //create shard registration for DEFAULT_SHARD - try { - initDefaultShard(LogicalDatastoreType.CONFIGURATION); - } catch (final InterruptedException | ExecutionException e) { - throw new IllegalStateException("Unable to create default shard frontend for config shard", e); - } - - try { - initDefaultShard(LogicalDatastoreType.OPERATIONAL); - } catch (final InterruptedException | ExecutionException e) { - throw new IllegalStateException("Unable to create default shard frontend for operational shard", e); - } + initDefaultShard(LogicalDatastoreType.CONFIGURATION); + initDefaultShard(LogicalDatastoreType.OPERATIONAL); } private ListenableFuture> handleConfigShardLookup() { @@ -266,7 +258,7 @@ public class DistributedShardedDOMDataTree implements DOMDataTreeService, DOMDat ask.onComplete(new OnComplete() { @Override - public void onComplete(final Throwable throwable, final Object result) throws Throwable { + public void onComplete(final Throwable throwable, final Object result) { if (throwable != null) { future.setException(throwable); } else { @@ -288,8 +280,8 @@ public class DistributedShardedDOMDataTree implements DOMDataTreeService, DOMDat } @Override - public Map, DOMDataTreeServiceExtension> getSupportedExtensions() { - return ImmutableMap.of(); + public ClassToInstanceMap getExtensions() { + return ImmutableClassToInstanceMap.of(); } @Nonnull @@ -371,19 +363,11 @@ public class DistributedShardedDOMDataTree implements DOMDataTreeService, DOMDat void resolveShardAdditions(final Set additions) { LOG.debug("{}: Resolving additions : {}", memberName, additions); - final ArrayList list = new ArrayList<>(additions); // we need to register the shards from top to bottom, so we need to atleast make sure the ordering reflects that - Collections.sort(list, (o1, o2) -> { - if (o1.getRootIdentifier().getPathArguments().size() < o2.getRootIdentifier().getPathArguments().size()) { - return -1; - } else if (o1.getRootIdentifier().getPathArguments().size() - == o2.getRootIdentifier().getPathArguments().size()) { - return 0; - } else { - return 1; - } - }); - list.forEach(this::createShardFrontend); + additions + .stream() + .sorted(Comparator.comparingInt(o -> o.getRootIdentifier().getPathArguments().size())) + .forEachOrdered(this::createShardFrontend); } void resolveShardRemovals(final Set removals) { @@ -509,8 +493,7 @@ public class DistributedShardedDOMDataTree implements DOMDataTreeService, DOMDat } @SuppressWarnings("checkstyle:IllegalCatch") - private void initDefaultShard(final LogicalDatastoreType logicalDatastoreType) - throws ExecutionException, InterruptedException { + private void initDefaultShard(final LogicalDatastoreType logicalDatastoreType) { final PrefixedShardConfigWriter writer = writerMap.get(logicalDatastoreType);