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;
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;
//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<List<Void>> handleConfigShardLookup() {
ask.onComplete(new OnComplete<Object>() {
@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 {
}
@Override
- public Map<Class<? extends DOMDataTreeServiceExtension>, DOMDataTreeServiceExtension> getSupportedExtensions() {
- return ImmutableMap.of();
+ public ClassToInstanceMap<DOMDataTreeServiceExtension> getExtensions() {
+ return ImmutableClassToInstanceMap.of();
}
@Nonnull
void resolveShardAdditions(final Set<DOMDataTreeIdentifier> additions) {
LOG.debug("{}: Resolving additions : {}", memberName, additions);
- final ArrayList<DOMDataTreeIdentifier> 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<DOMDataTreeIdentifier> removals) {
}
@SuppressWarnings("checkstyle:IllegalCatch")
- private void initDefaultShard(final LogicalDatastoreType logicalDatastoreType)
- throws ExecutionException, InterruptedException {
+ private void initDefaultShard(final LogicalDatastoreType logicalDatastoreType) {
final PrefixedShardConfigWriter writer = writerMap.get(logicalDatastoreType);