From: Stephen Kitt Date: Mon, 23 Jul 2018 15:31:33 +0000 (+0200) Subject: Simplify code using Java 8 features X-Git-Tag: release/fluorine~22 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=commitdiff_plain;h=a6af137c30470b86d4bc624d4c48cb686495a182 Simplify code using Java 8 features * List::sort * lambda expressions * Comparator::comparing... * Collection::removeIf * method references * Map::computeIfAbsent * Map::merge Change-Id: I1793591c071c7ce5465939afe8b4846b769b5953 Signed-off-by: Stephen Kitt --- diff --git a/opendaylight/blueprint/src/main/java/org/opendaylight/controller/blueprint/BlueprintBundleTracker.java b/opendaylight/blueprint/src/main/java/org/opendaylight/controller/blueprint/BlueprintBundleTracker.java index 4d7780147c..d3db327742 100644 --- a/opendaylight/blueprint/src/main/java/org/opendaylight/controller/blueprint/BlueprintBundleTracker.java +++ b/opendaylight/blueprint/src/main/java/org/opendaylight/controller/blueprint/BlueprintBundleTracker.java @@ -308,7 +308,7 @@ public class BlueprintBundleTracker implements BundleActivator, BundleTrackerCus } if (!bundlesToDestroy.isEmpty()) { - Collections.sort(bundlesToDestroy, (b1, b2) -> (int) (b2.getLastModified() - b1.getLastModified())); + bundlesToDestroy.sort((b1, b2) -> (int) (b2.getLastModified() - b1.getLastModified())); LOG.debug("Selected bundles {} for destroy (no services in use)", bundlesToDestroy); } else { diff --git a/opendaylight/blueprint/src/main/java/org/opendaylight/controller/blueprint/ext/ActionProviderBean.java b/opendaylight/blueprint/src/main/java/org/opendaylight/controller/blueprint/ext/ActionProviderBean.java index 70054f86a9..af943f91de 100644 --- a/opendaylight/blueprint/src/main/java/org/opendaylight/controller/blueprint/ext/ActionProviderBean.java +++ b/opendaylight/blueprint/src/main/java/org/opendaylight/controller/blueprint/ext/ActionProviderBean.java @@ -129,10 +129,9 @@ public class ActionProviderBean { } final Set rpcs = ImmutableSet.copyOf(Collections2.transform(paths, DOMRpcIdentifier::create)); - reg = domRpcProvider.registerRpcImplementation((rpc, input) -> { - return FluentFutures.immediateFailedFluentFuture(new DOMRpcImplementationNotAvailableException( - "Action %s has no instance matching %s", rpc, input)); - }, rpcs); + reg = domRpcProvider.registerRpcImplementation( + (rpc, input) -> FluentFutures.immediateFailedFluentFuture(new DOMRpcImplementationNotAvailableException( + "Action %s has no instance matching %s", rpc, input)), rpcs); LOG.debug("Registered provider for {}", interfaceName); } diff --git a/opendaylight/md-sal/mdsal-trace/dom-impl/src/main/java/org/opendaylight/controller/md/sal/trace/closetracker/impl/CloseTrackedRegistry.java b/opendaylight/md-sal/mdsal-trace/dom-impl/src/main/java/org/opendaylight/controller/md/sal/trace/closetracker/impl/CloseTrackedRegistry.java index 78a09f1ce7..7f99824601 100644 --- a/opendaylight/md-sal/mdsal-trace/dom-impl/src/main/java/org/opendaylight/controller/md/sal/trace/closetracker/impl/CloseTrackedRegistry.java +++ b/opendaylight/md-sal/mdsal-trace/dom-impl/src/main/java/org/opendaylight/controller/md/sal/trace/closetracker/impl/CloseTrackedRegistry.java @@ -13,6 +13,7 @@ import static java.util.Collections.emptyList; import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import java.util.Arrays; import java.util.Collections; +import java.util.Comparator; import java.util.HashMap; import java.util.HashSet; import java.util.List; @@ -32,8 +33,8 @@ public class CloseTrackedRegistry> { private final Object anchor; private final String createDescription; - private final Set> tracked = new ConcurrentSkipListSet<>( - (o1, o2) -> Integer.compare(System.identityHashCode(o1), System.identityHashCode(o2))); + private final Set> tracked = + new ConcurrentSkipListSet<>(Comparator.comparingInt(System::identityHashCode)); private final boolean isDebugContextEnabled; @@ -101,16 +102,13 @@ public class CloseTrackedRegistry> { } Set> report = new HashSet<>(); - map.forEach((stackTraceElements, number) -> { - copyOfTracked.stream().filter(closeTracked -> { - StackTraceElement[] closeTrackedStackTraceArray = closeTracked.getAllocationContextStackTrace(); - List closeTrackedStackTraceElements = - closeTrackedStackTraceArray != null ? asList(closeTrackedStackTraceArray) : emptyList(); - return closeTrackedStackTraceElements.equals(stackTraceElements); - }).findAny().ifPresent(exampleCloseTracked -> { - report.add(new CloseTrackedRegistryReportEntry<>(exampleCloseTracked, number, stackTraceElements)); - }); - }); + map.forEach((stackTraceElements, number) -> copyOfTracked.stream().filter(closeTracked -> { + StackTraceElement[] closeTrackedStackTraceArray = closeTracked.getAllocationContextStackTrace(); + List closeTrackedStackTraceElements = + closeTrackedStackTraceArray != null ? asList(closeTrackedStackTraceArray) : emptyList(); + return closeTrackedStackTraceElements.equals(stackTraceElements); + }).findAny().ifPresent(exampleCloseTracked -> report.add( + new CloseTrackedRegistryReportEntry<>(exampleCloseTracked, number, stackTraceElements)))); return report; } diff --git a/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/utils/InMemoryJournal.java b/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/utils/InMemoryJournal.java index 9964ceb675..90aff5b726 100644 --- a/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/utils/InMemoryJournal.java +++ b/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/utils/InMemoryJournal.java @@ -16,7 +16,6 @@ import com.google.common.util.concurrent.Uninterruptibles; import java.io.Serializable; import java.util.ArrayList; import java.util.Collections; -import java.util.Iterator; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; @@ -232,13 +231,7 @@ public class InMemoryJournal extends AsyncWriteJournal { Map journal = JOURNALS.get(persistenceId); if (journal != null) { synchronized (journal) { - Iterator iter = journal.keySet().iterator(); - while (iter.hasNext()) { - Long num = iter.next(); - if (num <= toSequenceNr) { - iter.remove(); - } - } + journal.keySet().removeIf(num -> num <= toSequenceNr); } } diff --git a/opendaylight/md-sal/sal-binding-broker/src/test/java/org/opendaylight/controller/md/sal/binding/impl/test/Bug3090MultiKeyList.java b/opendaylight/md-sal/sal-binding-broker/src/test/java/org/opendaylight/controller/md/sal/binding/impl/test/Bug3090MultiKeyList.java index 57e1151d89..a150d2432c 100644 --- a/opendaylight/md-sal/sal-binding-broker/src/test/java/org/opendaylight/controller/md/sal/binding/impl/test/Bug3090MultiKeyList.java +++ b/opendaylight/md-sal/sal-binding-broker/src/test/java/org/opendaylight/controller/md/sal/binding/impl/test/Bug3090MultiKeyList.java @@ -11,6 +11,7 @@ import com.google.common.collect.ImmutableSet; import java.util.ArrayList; import java.util.HashSet; import java.util.List; +import java.util.Objects; import java.util.Set; import java.util.function.Function; import java.util.stream.Collectors; @@ -50,7 +51,7 @@ public class Bug3090MultiKeyList extends AbstractDataTreeChangeListenerTest { final Root root = new RootBuilder().setListInRoot(listInRoots).build(); final TestListener listener = createListener(LogicalDatastoreType.CONFIGURATION, ROOT_PATH, - match(ModificationType.WRITE, ROOT_PATH, dataBefore -> dataBefore == null, + match(ModificationType.WRITE, ROOT_PATH, Objects::isNull, (Function) dataAfter -> checkData(root, dataAfter))); final ReadWriteTransaction readWriteTransaction = getDataBroker().newReadWriteTransaction(); diff --git a/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/messaging/MessageAssembler.java b/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/messaging/MessageAssembler.java index 87f0e9890e..4b7f854608 100644 --- a/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/messaging/MessageAssembler.java +++ b/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/messaging/MessageAssembler.java @@ -12,7 +12,6 @@ import com.google.common.annotations.VisibleForTesting; import com.google.common.base.Preconditions; import com.google.common.cache.Cache; import com.google.common.cache.CacheBuilder; -import com.google.common.cache.RemovalListener; import com.google.common.cache.RemovalNotification; import com.google.common.io.ByteSource; import java.io.IOException; @@ -49,8 +48,7 @@ public final class MessageAssembler implements AutoCloseable { stateCache = CacheBuilder.newBuilder() .expireAfterAccess(builder.expireStateAfterInactivityDuration, builder.expireStateAfterInactivityUnit) - .removalListener((RemovalListener) notification -> - stateRemoved(notification)).build(); + .removalListener(this::stateRemoved).build(); } /** diff --git a/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/messaging/MessageSlicer.java b/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/messaging/MessageSlicer.java index 5f75e495af..ca2441e438 100644 --- a/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/messaging/MessageSlicer.java +++ b/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/messaging/MessageSlicer.java @@ -16,7 +16,6 @@ import com.google.common.cache.RemovalNotification; import java.io.IOException; import java.io.ObjectOutputStream; import java.io.Serializable; -import java.util.Iterator; import java.util.Optional; import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicLong; @@ -55,7 +54,7 @@ public class MessageSlicer implements AutoCloseable { this.logContext = builder.logContext + "_slicer-id-" + id; CacheBuilder> cacheBuilder = - CacheBuilder.newBuilder().removalListener(notification -> stateRemoved(notification)); + CacheBuilder.newBuilder().removalListener(this::stateRemoved); if (builder.expireStateAfterInactivityDuration > 0) { cacheBuilder = cacheBuilder.expireAfterAccess(builder.expireStateAfterInactivityDuration, builder.expireStateAfterInactivityUnit); @@ -206,12 +205,8 @@ public class MessageSlicer implements AutoCloseable { * @param filter filters by Identifier */ public void cancelSlicing(@Nonnull final Predicate filter) { - final Iterator iter = stateCache.asMap().keySet().iterator(); - while (iter.hasNext()) { - if (filter.test(iter.next().getClientIdentifier())) { - iter.remove(); - } - } + stateCache.asMap().keySet().removeIf( + messageSliceIdentifier -> filter.test(messageSliceIdentifier.getClientIdentifier())); } private static MessageSlice getNextSliceMessage(final SlicedMessageState state) throws IOException { diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/actors/dds/AbstractShardBackendResolver.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/actors/dds/AbstractShardBackendResolver.java index 9b5942c628..faffe0a376 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/actors/dds/AbstractShardBackendResolver.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/actors/dds/AbstractShardBackendResolver.java @@ -136,9 +136,7 @@ abstract class AbstractShardBackendResolver extends BackendInfoResolver { - onConnectResponse(shardName, cookie, future, response, failure); - }); + .whenComplete((response, failure) -> onConnectResponse(shardName, cookie, future, response, failure)); } private void onConnectResponse(final String shardName, final long cookie, diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/DataTreeCohortActor.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/DataTreeCohortActor.java index e8db09a7ca..37fb4eac32 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/DataTreeCohortActor.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/DataTreeCohortActor.java @@ -194,7 +194,7 @@ final class DataTreeCohortActor extends AbstractUntypedActor { TransactionIdentifier txId = message.getTxId(); ListenableFuture future = process(handledMessageType.cast(message)); Executor callbackExecutor = future.isDone() ? MoreExecutors.directExecutor() - : runnable -> executeInSelf(runnable); + : DataTreeCohortActor.this::executeInSelf; Futures.addCallback(future, new FutureCallback() { @Override public void onSuccess(S nextStep) { diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/DatastoreContextIntrospector.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/DatastoreContextIntrospector.java index c0ed1294e4..0f7d80bfde 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/DatastoreContextIntrospector.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/DatastoreContextIntrospector.java @@ -23,7 +23,6 @@ import java.lang.reflect.Method; import java.util.AbstractMap.SimpleImmutableEntry; import java.util.ArrayList; import java.util.Collection; -import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -311,8 +310,8 @@ public class DatastoreContextIntrospector { // Sort the property keys by putting the names prefixed with the data store type last. This // is done so data store specific settings are applied after global settings. final ArrayList keys = new ArrayList<>(inKeys); - Collections.sort(keys, (key1, key2) -> key1.startsWith(dataStoreTypePrefix) ? 1 : - key2.startsWith(dataStoreTypePrefix) ? -1 : key1.compareTo(key2)); + keys.sort((key1, key2) -> key1.startsWith(dataStoreTypePrefix) ? 1 : + key2.startsWith(dataStoreTypePrefix) ? -1 : key1.compareTo(key2)); return keys; } diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/Shard.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/Shard.java index 7b1f9df12d..dbcbd3d02e 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/Shard.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/Shard.java @@ -395,9 +395,7 @@ public class Shard extends RaftActor { responseMessageSlicer.slice(SliceOptions.builder().identifier(success.getTarget()) .message(envelope.newSuccessEnvelope(success, executionTimeNanos)) .sendTo(envelope.getMessage().getReplyTo()).replyTo(self()) - .onFailureCallback(t -> { - LOG.warn("Error slicing response {}", success, t); - }).build())); + .onFailureCallback(t -> LOG.warn("Error slicing response {}", success, t)).build())); } else { envelope.sendSuccess(success, executionTimeNanos); } diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardCommitCoordinator.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardCommitCoordinator.java index 0dd50d4790..eebad9ce06 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardCommitCoordinator.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardCommitCoordinator.java @@ -20,7 +20,6 @@ import java.util.Collection; import java.util.Collections; import java.util.Deque; import java.util.HashMap; -import java.util.Iterator; import java.util.LinkedList; import java.util.Map; import javax.annotation.Nonnull; @@ -398,13 +397,7 @@ final class ShardCommitCoordinator { } void checkForExpiredTransactions(final long timeout, final Shard shard) { - Iterator iter = cohortCache.values().iterator(); - while (iter.hasNext()) { - CohortEntry cohortEntry = iter.next(); - if (cohortEntry.isFailed()) { - iter.remove(); - } - } + cohortCache.values().removeIf(CohortEntry::isFailed); } void abortPendingTransactions(final String reason, final Shard shard) { diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardDataTree.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardDataTree.java index 980d181770..e1c12cd489 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardDataTree.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardDataTree.java @@ -1057,7 +1057,7 @@ public class ShardDataTree extends ShardDataTreeTransactionParent { ShardDataTreeCohort createReadyCohort(final TransactionIdentifier txId, final DataTreeModification mod, final java.util.Optional> participatingShardNames) { SimpleShardDataTreeCohort cohort = new SimpleShardDataTreeCohort(this, mod, txId, - cohortRegistry.createCohort(schemaContext, txId, runnable -> shard.executeInSelf(runnable), + cohortRegistry.createCohort(schemaContext, txId, shard::executeInSelf, COMMIT_STEP_TIMEOUT), participatingShardNames); pendingTransactions.add(new CommitEntry(cohort, readTime())); return cohort; diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/entityownership/CandidateListChangeListener.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/entityownership/CandidateListChangeListener.java index 005de8729e..a7be8c50d2 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/entityownership/CandidateListChangeListener.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/entityownership/CandidateListChangeListener.java @@ -93,11 +93,7 @@ class CandidateListChangeListener implements DOMDataTreeChangeListener { } private Collection addToCurrentCandidates(YangInstanceIdentifier entityId, String newCandidate) { - Collection candidates = currentCandidates.get(entityId); - if (candidates == null) { - candidates = new LinkedHashSet<>(); - currentCandidates.put(entityId, candidates); - } + Collection candidates = currentCandidates.computeIfAbsent(entityId, k -> new LinkedHashSet<>()); candidates.add(newCandidate); return candidates; diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/entityownership/EntityOwnershipShardCommitCoordinator.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/entityownership/EntityOwnershipShardCommitCoordinator.java index 4e344cd688..f3adfbd51e 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/entityownership/EntityOwnershipShardCommitCoordinator.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/entityownership/EntityOwnershipShardCommitCoordinator.java @@ -222,13 +222,7 @@ class EntityOwnershipShardCommitCoordinator { } // Prune the subsequent pending modifications. - Iterator iter = pendingModifications.iterator(); - while (iter.hasNext()) { - Modification mod = iter.next(); - if (!canForwardModificationToNewLeader(mod)) { - iter.remove(); - } - } + pendingModifications.removeIf(mod -> !canForwardModificationToNewLeader(mod)); } } diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/entityownership/EntityOwnershipStatistics.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/entityownership/EntityOwnershipStatistics.java index a96bbe3556..8fca4df30d 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/entityownership/EntityOwnershipStatistics.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/entityownership/EntityOwnershipStatistics.java @@ -79,12 +79,7 @@ class EntityOwnershipStatistics extends AbstractEntityOwnerChangeListener { map.put(candidateName, count); statistics.put(entityType, map); } else { - Long candidateOwnedEntities = map.get(candidateName); - if (candidateOwnedEntities == null) { - map.put(candidateName, count); - } else { - map.put(candidateName, candidateOwnedEntities + count); - } + map.merge(candidateName, count, (ownedEntities, addedEntities) -> ownedEntities + addedEntities); } } } 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 7f727fa36b..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 @@ -31,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; @@ -363,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) { diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/entityownership/EntityOwnershipShardTest.java b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/entityownership/EntityOwnershipShardTest.java index d87b7dd27b..a91ca9c9b5 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/entityownership/EntityOwnershipShardTest.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/entityownership/EntityOwnershipShardTest.java @@ -636,9 +636,7 @@ public class EntityOwnershipShardTest extends AbstractEntityOwnershipTest { leaderLastApplied.set(rs.getLastApplied()); }); - verifyRaftState(peer2, rs -> { - assertEquals("LastApplied", leaderLastApplied.get(), rs.getLastIndex()); - }); + verifyRaftState(peer2, rs -> assertEquals("LastApplied", leaderLastApplied.get(), rs.getLastIndex())); // Kill the local leader and elect peer2 the leader. This should cause a new owner to be selected for // the entities (1 and 3) previously owned by the local leader member. diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/shardmanager/ShardManagerTest.java b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/shardmanager/ShardManagerTest.java index 6548fe9eb3..41413d9c62 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/shardmanager/ShardManagerTest.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/shardmanager/ShardManagerTest.java @@ -1435,7 +1435,7 @@ public class ShardManagerTest extends AbstractShardManagerTest { Function shardNameTransformer = ShardSnapshot::getName; assertEquals("Shard names", Sets.newHashSet("shard1", "shard2"), Sets.newHashSet( - Lists.transform(datastoreSnapshot.getShardSnapshots(), shardNameTransformer))); + datastoreSnapshot.getShardSnapshots().stream().map(shardNameTransformer).collect(Collectors.toSet()))); // Add a new replica diff --git a/opendaylight/md-sal/sal-dom-broker/src/test/java/org/opendaylight/controller/md/sal/dom/broker/impl/DOMBrokerPerformanceTest.java b/opendaylight/md-sal/sal-dom-broker/src/test/java/org/opendaylight/controller/md/sal/dom/broker/impl/DOMBrokerPerformanceTest.java index ece552df3f..72a3c2e962 100644 --- a/opendaylight/md-sal/sal-dom-broker/src/test/java/org/opendaylight/controller/md/sal/dom/broker/impl/DOMBrokerPerformanceTest.java +++ b/opendaylight/md-sal/sal-dom-broker/src/test/java/org/opendaylight/controller/md/sal/dom/broker/impl/DOMBrokerPerformanceTest.java @@ -213,7 +213,7 @@ public class DOMBrokerPerformanceTest { }); measure("Txs:1 Submit, Finish", (Callable) () -> { - measure("Txs:1 Submit", (Callable>) () -> writeTx.submit()).get(); + measure("Txs:1 Submit", (Callable>) writeTx::submit).get(); return null; }); } diff --git a/opendaylight/md-sal/sal-dom-compat/src/main/java/org/opendaylight/controller/sal/core/compat/LegacyDOMDataBrokerAdapter.java b/opendaylight/md-sal/sal-dom-compat/src/main/java/org/opendaylight/controller/sal/core/compat/LegacyDOMDataBrokerAdapter.java index 7f11d5f17c..6ae611675e 100644 --- a/opendaylight/md-sal/sal-dom-compat/src/main/java/org/opendaylight/controller/sal/core/compat/LegacyDOMDataBrokerAdapter.java +++ b/opendaylight/md-sal/sal-dom-compat/src/main/java/org/opendaylight/controller/sal/core/compat/LegacyDOMDataBrokerAdapter.java @@ -42,8 +42,6 @@ import org.opendaylight.controller.md.sal.dom.api.DOMDataWriteTransaction; import org.opendaylight.controller.md.sal.dom.api.DOMTransactionChain; import org.opendaylight.mdsal.common.api.CommitInfo; import org.opendaylight.mdsal.common.api.MappingCheckedFuture; -import org.opendaylight.mdsal.dom.api.DOMDataTreeCommitCohort; -import org.opendaylight.mdsal.dom.api.DOMDataTreeCommitCohortRegistration; import org.opendaylight.mdsal.dom.api.DOMDataTreeReadTransaction; import org.opendaylight.mdsal.dom.api.DOMDataTreeReadWriteTransaction; import org.opendaylight.mdsal.dom.api.DOMDataTreeWriteTransaction; @@ -98,9 +96,9 @@ public class LegacyDOMDataBrokerAdapter extends ForwardingObject implements DOMD final org.opendaylight.mdsal.dom.api.DOMDataTreeChangeListener delegateListener; if (listener instanceof ClusteredDOMDataTreeChangeListener) { delegateListener = (org.opendaylight.mdsal.dom.api.ClusteredDOMDataTreeChangeListener) - changes -> listener.onDataTreeChanged(changes); + listener::onDataTreeChanged; } else { - delegateListener = changes -> listener.onDataTreeChanged(changes); + delegateListener = listener::onDataTreeChanged; } final ListenerRegistration reg = @@ -127,13 +125,7 @@ public class LegacyDOMDataBrokerAdapter extends ForwardingObject implements DOMD (org.opendaylight.mdsal.dom.api.DOMDataTreeCommitCohortRegistry) delegateExtensions.get( org.opendaylight.mdsal.dom.api.DOMDataTreeCommitCohortRegistry.class); if (delegateCohortRegistry != null) { - extBuilder.put(DOMDataTreeCommitCohortRegistry.class, new DOMDataTreeCommitCohortRegistry() { - @Override - public DOMDataTreeCommitCohortRegistration registerCommitCohort( - org.opendaylight.mdsal.dom.api.DOMDataTreeIdentifier path, T cohort) { - return delegateCohortRegistry.registerCommitCohort(path, cohort); - } - }); + extBuilder.put(DOMDataTreeCommitCohortRegistry.class, delegateCohortRegistry::registerCommitCohort); } extensions = extBuilder.build();