From e84f63ee098fff5b02cbce1281ca0d1208f966fa Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Thu, 27 Jan 2022 18:10:28 +0100 Subject: [PATCH] Bump upstream SNAPSHOTS Adopt: - odlparent-10.0.0 - yangtools-8.0.0-SNAPSHOT - mdsal-9.0.0-SNAPSHOT Change-Id: I60991718a6d1ef6f108c2b1f7b2c09b0c5f973c4 Signed-off-by: Robert Varga --- akka/pom.xml | 2 +- akka/repackaged-akka-jar/pom.xml | 2 +- artifacts/pom.xml | 2 +- .../dsbenchmark/DatastoreAbstractWriter.java | 10 +- benchmark/pom.xml | 2 +- bundle-parent/pom.xml | 2 +- docs/pom.xml | 8 +- .../features-controller-experimental/pom.xml | 2 +- features/features-controller-testing/pom.xml | 2 +- features/features-controller/pom.xml | 2 +- .../src/main/feature/feature.xml | 2 +- .../src/main/feature/feature.xml | 8 +- .../src/main/feature/feature.xml | 8 +- .../src/main/feature/feature.xml | 2 +- .../src/main/feature/feature.xml | 4 +- .../src/main/feature/feature.xml | 4 +- .../src/main/feature/feature.xml | 10 +- .../src/main/feature/feature.xml | 10 +- .../odl-toaster/src/main/feature/feature.xml | 2 +- features/pom.xml | 2 +- features/single-feature-parent/pom.xml | 2 +- jolokia/pom.xml | 2 +- karaf/pom.xml | 2 +- opendaylight/blueprint/pom.xml | 16 +-- .../blueprint/BlueprintBundleTracker.java | 10 +- .../ext/SpecificReferenceListMetadata.java | 17 +-- .../netty-event-executor-config/pom.xml | 4 +- .../config/netty-threadgroup-config/pom.xml | 8 +- .../config/netty-timer-config/pom.xml | 8 +- opendaylight/config/pom.xml | 2 +- .../config/threadpool-config-api/pom.xml | 2 +- .../config/threadpool-config-impl/pom.xml | 2 +- opendaylight/md-sal/cds-access-api/pom.xml | 5 + .../CommitLocalTransactionRequest.java | 2 +- .../access/commands/ConnectClientSuccess.java | 2 +- .../CommitLocalTransactionRequestTest.java | 2 +- .../commands/ConnectClientSuccessTest.java | 8 +- .../eos/akka/AkkaEntityOwnershipService.java | 3 + .../owner/supervisor/AbstractSupervisor.java | 3 + opendaylight/md-sal/mdsal-it-base/pom.xml | 6 +- opendaylight/md-sal/mdsal-it-parent/pom.xml | 4 +- opendaylight/md-sal/parent/pom.xml | 2 +- opendaylight/md-sal/pom.xml | 2 +- .../cluster/example/LogGenerator.java | 4 +- opendaylight/md-sal/sal-akka-raft/pom.xml | 4 - .../cluster/raft/GetSnapshotReplyActor.java | 4 +- .../controller/cluster/raft/RaftActor.java | 4 +- .../cluster/raft/TimedRunnable.java | 7 +- .../raft/behaviors/AbstractLeader.java | 6 +- .../behaviors/AbstractRaftActorBehavior.java | 15 ++- .../cluster/raft/behaviors/Candidate.java | 9 +- .../cluster/raft/behaviors/Follower.java | 8 +- .../md-sal/sal-cluster-admin-impl/pom.xml | 2 +- .../admin/ClusterAdminRpcService.java | 6 +- .../md-sal/sal-clustering-commons/pom.xml | 2 +- .../common/actor/AbstractUntypedActor.java | 3 +- .../AbstractUntypedActorWithMetering.java | 12 +- .../actor/AbstractUntypedPersistentActor.java | 5 +- ...actUntypedPersistentActorWithMetering.java | 7 +- .../common/actor/QuarantinedMonitorActor.java | 2 + .../AbstractDataTreeModificationCursor.java | 2 +- .../persistence/LocalSnapshotStore.java | 2 + .../md-sal/sal-clustering-config/pom.xml | 2 +- .../md-sal/sal-distributed-datastore/pom.xml | 16 ++- .../cluster/databroker/AbstractDOMBroker.java | 3 - .../databroker/ConcurrentDOMDataBroker.java | 17 +-- .../databroker/DOMBrokerTransactionChain.java | 5 - .../actors/dds/LocalProxyTransaction.java | 4 +- .../dds/LocalReadOnlyProxyTransaction.java | 4 +- .../dds/LocalReadWriteProxyTransaction.java | 10 +- .../databroker/actors/dds/ProxyHistory.java | 4 +- .../actors/dds/RemoteProxyTransaction.java | 2 +- .../actors/dds/ShardBackendInfo.java | 2 +- .../cluster/datastore/AbstractDataStore.java | 14 ++- .../datastore/AbstractFrontendHistory.java | 2 +- ...taTreeNotificationPublisherActorProxy.java | 2 +- .../AbstractShardDataTreeTransaction.java | 2 +- .../AbstractTransactionContextFactory.java | 2 +- .../datastore/ChainedCommitCohort.java | 6 +- .../cluster/datastore/CohortEntry.java | 12 +- .../datastore/CompositeDataTreeCohort.java | 21 ++-- .../datastore/DOMDataTreeCandidateTO.java | 2 +- .../DataTreeChangeListenerProxy.java | 7 +- .../datastore/DataTreeCohortActor.java | 5 - .../DataTreeCohortActorRegistry.java | 6 +- .../DataTreeCohortRegistrationProxy.java | 5 +- ...tShardDataTreeChangeListenerPublisher.java | 6 +- .../ForwardingDataTreeChangeListener.java | 6 +- .../FrontendReadWriteTransaction.java | 10 +- .../datastore/LocalFrontendHistory.java | 2 +- .../LocalThreePhaseCommitCohort.java | 6 +- .../datastore/LocalTransactionChain.java | 29 +++-- .../LocalTransactionFactoryImpl.java | 15 +-- .../ReadOnlyShardDataTreeTransaction.java | 2 +- .../ReadWriteShardDataTreeTransaction.java | 4 +- .../RemoteTransactionContextSupport.java | 11 +- .../RootDataTreeChangeListenerActor.java | 19 +-- .../RootDataTreeChangeListenerProxy.java | 5 - .../controller/cluster/datastore/Shard.java | 8 +- .../datastore/ShardCommitCoordinator.java | 2 +- .../cluster/datastore/ShardDataTree.java | 26 ++-- .../ShardDataTreeChangeListenerPublisher.java | 2 +- ...TreeChangeListenerPublisherActorProxy.java | 2 +- .../ShardDataTreeChangePublisherActor.java | 2 +- .../datastore/ShardDataTreeCohort.java | 6 +- .../ShardDataTreeNotificationPublisher.java | 2 +- ...ardDataTreeNotificationPublisherActor.java | 6 +- .../ShardDataTreeTransactionChain.java | 6 +- .../ShardDataTreeTransactionParent.java | 2 +- .../datastore/ShardRecoveryCoordinator.java | 2 +- .../datastore/SimpleShardDataTreeCohort.java | 30 ++--- .../datastore/StandaloneFrontendHistory.java | 2 +- .../ThreePhaseCommitCohortProxy.java | 7 +- .../datastore/TransactionChainProxy.java | 2 +- .../datastore/TransactionContextFactory.java | 4 +- .../cluster/datastore/TransactionProxy.java | 2 +- .../datastore/actors/JsonExportActor.java | 6 +- .../datastore/config/Configuration.java | 3 + .../datastore/config/ConfigurationImpl.java | 15 ++- .../datastore/messages/DataTreeChanged.java | 10 +- .../messages/LocalPrimaryShardFound.java | 6 +- .../datastore/messages/PrimaryShardInfo.java | 10 +- .../messages/ReadyLocalTransaction.java | 6 +- .../messages/ShardLeaderStateChanged.java | 12 +- .../modification/DeleteModification.java | 2 +- .../modification/MergeModification.java | 2 +- .../datastore/modification/Modification.java | 2 +- .../MutableCompositeModification.java | 2 +- .../modification/WriteModification.java | 2 +- .../AbstractDataTreeCandidateNode.java | 4 +- .../persisted/CommitTransactionPayload.java | 2 +- .../DataTreeCandidateInputOutput.java | 10 +- .../DeletedDataTreeCandidateNode.java | 4 +- .../ModifiedDataTreeCandidateNode.java | 4 +- .../shardmanager/ShardInformation.java | 10 +- .../datastore/shardmanager/ShardManager.java | 41 +++---- .../cluster/datastore/utils/ActorUtils.java | 15 +-- .../utils/DataTreeModificationOutput.java | 2 +- .../utils/NormalizedNodeAggregator.java | 19 ++- .../utils/PruningDataTreeModification.java | 8 +- .../datastore/utils/UnsignedLongBitmap.java | 5 - .../actors/dds/AbstractClientHandleTest.java | 4 +- .../actors/dds/AbstractClientHistoryTest.java | 2 +- .../AbstractDataStoreClientBehaviorTest.java | 48 ++++---- .../dds/AbstractProxyTransactionTest.java | 4 +- .../actors/dds/ClientTransactionTest.java | 2 +- .../actors/dds/LocalProxyTransactionTest.java | 4 +- .../LocalReadOnlyProxyTransactionTest.java | 3 +- .../LocalReadWriteProxyTransactionTest.java | 6 +- .../dds/ModuleShardBackendResolverTest.java | 2 +- .../dds/RemoteProxyTransactionTest.java | 2 +- ...ctDistributedDataStoreIntegrationTest.java | 6 +- .../cluster/datastore/AbstractShardTest.java | 18 +-- .../DataTreeChangeListenerActorTest.java | 6 +- .../DataTreeChangeListenerSupportTest.java | 2 +- .../datastore/DataTreeCohortActorTest.java | 2 +- .../DataTreeCohortIntegrationTest.java | 2 +- .../DatastoreSnapshotRestoreTest.java | 6 +- ...butedDataStoreRemotingIntegrationTest.java | 12 +- .../ForwardingDataTreeChangeListenerTest.java | 14 +-- .../FrontendReadWriteTransactionTest.java | 2 +- .../cluster/datastore/JsonExportTest.java | 4 +- .../RootDataTreeChangeListenerProxyTest.java | 4 +- .../datastore/ShardDataTreeMocking.java | 2 +- .../cluster/datastore/ShardDataTreeTest.java | 22 ++-- .../ShardRecoveryCoordinatorTest.java | 18 +-- .../cluster/datastore/ShardTest.java | 12 +- .../ShardTransactionFailureTest.java | 2 +- .../datastore/ShardTransactionTest.java | 2 +- .../SimpleShardDataTreeCohortTest.java | 10 +- .../datastore/TransactionProxyTest.java | 6 +- .../ReadyLocalTransactionSerializerTest.java | 8 +- .../CommitTransactionPayloadTest.java | 14 +-- .../shardmanager/ShardManagerTest.java | 2 +- .../datastore/utils/ActorUtilsTest.java | 6 +- .../utils/MockDataTreeChangeListener.java | 7 +- .../utils/NormalizedNodeAggregatorTest.java | 5 +- .../PruningDataTreeModificationTest.java | 20 +-- .../dummy/datastore/DummyShardManager.java | 2 +- .../md-sal/sal-remoterpc-connector/pom.xml | 6 +- .../remote/rpc/RpcErrorsException.java | 9 +- .../mbeans/AbstractRegistryMXBean.java | 2 + .../remote/rpc/AbstractOpsTest.java | 4 +- .../rpc/RemoteOpsImplementationTest.java | 114 +++++++---------- .../remote/rpc/RpcErrorsExceptionTest.java | 9 +- .../clustering-test-app/configuration/pom.xml | 2 +- .../samples/clustering-test-app/pom.xml | 2 +- .../it/provider/BasicRpcTestProvider.java | 3 +- .../CarEntryDataTreeCommitCohort.java | 4 +- .../clustering/it/provider/CarProvider.java | 2 +- .../provider/MdsalLowLevelTestProvider.java | 116 ++++++++++-------- .../it/provider/PeopleProvider.java | 4 +- .../impl/FlappingSingletonService.java | 5 +- .../it/provider/impl/IdIntsListener.java | 6 +- .../impl/WriteTransactionsHandler.java | 14 +-- opendaylight/md-sal/samples/pom.xml | 2 +- .../kitchen/impl/KitchenServiceImpl.java | 13 +- .../toaster/provider/OpendaylightToaster.java | 15 +-- pom.xml | 2 +- 199 files changed, 747 insertions(+), 769 deletions(-) diff --git a/akka/pom.xml b/akka/pom.xml index b5364ec2b8..cf67dc60c0 100644 --- a/akka/pom.xml +++ b/akka/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.odlparent odlparent-lite - 9.0.13 + 10.0.0 diff --git a/akka/repackaged-akka-jar/pom.xml b/akka/repackaged-akka-jar/pom.xml index ca8b125916..f80328d42c 100644 --- a/akka/repackaged-akka-jar/pom.xml +++ b/akka/repackaged-akka-jar/pom.xml @@ -13,7 +13,7 @@ org.opendaylight.odlparent odlparent - 9.0.13 + 10.0.0 diff --git a/artifacts/pom.xml b/artifacts/pom.xml index da9ff8603d..1bf1aea670 100644 --- a/artifacts/pom.xml +++ b/artifacts/pom.xml @@ -14,7 +14,7 @@ org.opendaylight.odlparent odlparent-lite - 9.0.13 + 10.0.0 diff --git a/benchmark/dsbenchmark/src/main/java/org/opendaylight/dsbenchmark/DatastoreAbstractWriter.java b/benchmark/dsbenchmark/src/main/java/org/opendaylight/dsbenchmark/DatastoreAbstractWriter.java index 50eb0d4e8b..2db5aa1ff8 100644 --- a/benchmark/dsbenchmark/src/main/java/org/opendaylight/dsbenchmark/DatastoreAbstractWriter.java +++ b/benchmark/dsbenchmark/src/main/java/org/opendaylight/dsbenchmark/DatastoreAbstractWriter.java @@ -7,6 +7,7 @@ */ package org.opendaylight.dsbenchmark; +import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import java.util.Random; import org.opendaylight.mdsal.common.api.LogicalDatastoreType; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.dsbenchmark.rev150105.StartTestInput; @@ -27,6 +28,7 @@ public abstract class DatastoreAbstractWriter { protected int txOk = 0; protected int txError = 0; + @SuppressFBWarnings(value = "MC_OVERRIDABLE_METHOD_CALL_IN_CONSTRUCTOR", justification = "'this' passed to logging") public DatastoreAbstractWriter(final StartTestInput.Operation oper, final int outerListElem, final int innerListElem, final long writesPerTx, final DataStore dataStore) { this.outerListElem = outerListElem; @@ -53,14 +55,10 @@ public abstract class DatastoreAbstractWriter { final LogicalDatastoreType dsType; if (dataStore == DataStore.CONFIG) { dsType = LogicalDatastoreType.CONFIGURATION; - } else if (dataStore == DataStore.OPERATIONAL) { + } else if ((dataStore == DataStore.OPERATIONAL) || (rn.nextBoolean() == true)) { dsType = LogicalDatastoreType.OPERATIONAL; } else { - if (rn.nextBoolean() == true) { - dsType = LogicalDatastoreType.OPERATIONAL; - } else { - dsType = LogicalDatastoreType.CONFIGURATION; - } + dsType = LogicalDatastoreType.CONFIGURATION; } return dsType; } diff --git a/benchmark/pom.xml b/benchmark/pom.xml index ed1f804e92..7ecf5e33ba 100644 --- a/benchmark/pom.xml +++ b/benchmark/pom.xml @@ -10,7 +10,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.odlparent odlparent-lite - 9.0.13 + 10.0.0 diff --git a/bundle-parent/pom.xml b/bundle-parent/pom.xml index 5487c278df..9b1e85ac6f 100644 --- a/bundle-parent/pom.xml +++ b/bundle-parent/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.mdsal dom-parent - 8.0.12 + 9.0.0-SNAPSHOT diff --git a/docs/pom.xml b/docs/pom.xml index 6b67beb1af..26c3f5f416 100644 --- a/docs/pom.xml +++ b/docs/pom.xml @@ -12,7 +12,7 @@ org.opendaylight.odlparent odlparent - 9.0.13 + 10.0.0 @@ -224,9 +224,9 @@ https://commons.apache.org/proper/commons-lang/javadocs/api-3.9/ https://commons.apache.org/proper/commons-codec/apidocs/ - https://www.javadoc.io/doc/org.opendaylight.odlparent/odlparent-docs/9.0.13/ - https://www.javadoc.io/doc/org.opendaylight.yangtools/yangtools-docs/7.0.14/ - https://www.javadoc.io/doc/org.opendaylight.mdsal/mdsal-docs/8.0.12/ + https://www.javadoc.io/doc/org.opendaylight.odlparent/odlparent-docs/10.0.0/ + https://www.javadoc.io/doc/org.opendaylight.yangtools/yangtools-docs/8.0.0-SNAPSHOT/ + https://www.javadoc.io/doc/org.opendaylight.mdsal/mdsal-docs/9.0.0-SNAPSHOT/ diff --git a/features/features-controller-experimental/pom.xml b/features/features-controller-experimental/pom.xml index a554fa7f6a..b7f54bfd41 100644 --- a/features/features-controller-experimental/pom.xml +++ b/features/features-controller-experimental/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.odlparent feature-repo-parent - 9.0.13 + 10.0.0 diff --git a/features/features-controller-testing/pom.xml b/features/features-controller-testing/pom.xml index 382927c7b8..0ad2ff2092 100644 --- a/features/features-controller-testing/pom.xml +++ b/features/features-controller-testing/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.odlparent feature-repo-parent - 9.0.13 + 10.0.0 diff --git a/features/features-controller/pom.xml b/features/features-controller/pom.xml index 159d04e0d5..f7c90e09a6 100644 --- a/features/features-controller/pom.xml +++ b/features/features-controller/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.odlparent feature-repo-parent - 9.0.13 + 10.0.0 diff --git a/features/odl-clustering-test-app/src/main/feature/feature.xml b/features/odl-clustering-test-app/src/main/feature/feature.xml index 7829413d47..e4abdffd55 100644 --- a/features/odl-clustering-test-app/src/main/feature/feature.xml +++ b/features/odl-clustering-test-app/src/main/feature/feature.xml @@ -8,6 +8,6 @@ --> - odl-mdsal-model-rfc6991 + odl-mdsal-model-rfc6991 diff --git a/features/odl-controller-blueprint/src/main/feature/feature.xml b/features/odl-controller-blueprint/src/main/feature/feature.xml index c18573aa3a..4016e0c2a7 100644 --- a/features/odl-controller-blueprint/src/main/feature/feature.xml +++ b/features/odl-controller-blueprint/src/main/feature/feature.xml @@ -8,10 +8,10 @@ --> - odl-yangtools-codec - odl-mdsal-binding-api - odl-mdsal-binding-runtime - odl-mdsal-dom-api + odl-yangtools-codec + odl-mdsal-binding-api + odl-mdsal-binding-runtime + odl-mdsal-dom-api mvn:org.opendaylight.controller/blueprint/${project.version} diff --git a/features/odl-controller-broker-local/src/main/feature/feature.xml b/features/odl-controller-broker-local/src/main/feature/feature.xml index 9a765beb48..0272cec8e5 100644 --- a/features/odl-controller-broker-local/src/main/feature/feature.xml +++ b/features/odl-controller-broker-local/src/main/feature/feature.xml @@ -8,9 +8,9 @@ --> - odl-mdsal-dom - odl-mdsal-eos-binding - odl-mdsal-eos-dom - odl-mdsal-singleton-dom + odl-mdsal-dom + odl-mdsal-eos-binding + odl-mdsal-eos-dom + odl-mdsal-singleton-dom diff --git a/features/odl-controller-exp-netty-config/src/main/feature/feature.xml b/features/odl-controller-exp-netty-config/src/main/feature/feature.xml index 2eac124f29..c2261cea69 100644 --- a/features/odl-controller-exp-netty-config/src/main/feature/feature.xml +++ b/features/odl-controller-exp-netty-config/src/main/feature/feature.xml @@ -8,6 +8,6 @@ --> - odl-netty-4 + odl-netty-4 diff --git a/features/odl-controller-mdsal-common/src/main/feature/feature.xml b/features/odl-controller-mdsal-common/src/main/feature/feature.xml index ffc34187e5..08bc95441b 100644 --- a/features/odl-controller-mdsal-common/src/main/feature/feature.xml +++ b/features/odl-controller-mdsal-common/src/main/feature/feature.xml @@ -8,7 +8,7 @@ --> - odl-mdsal-common - odl-mdsal-binding-runtime + odl-mdsal-common + odl-mdsal-binding-runtime diff --git a/features/odl-mdsal-broker/src/main/feature/feature.xml b/features/odl-mdsal-broker/src/main/feature/feature.xml index 11af9450e1..f20c516e0e 100644 --- a/features/odl-mdsal-broker/src/main/feature/feature.xml +++ b/features/odl-mdsal-broker/src/main/feature/feature.xml @@ -8,7 +8,7 @@ --> - odl-mdsal-singleton-dom - odl-mdsal-eos-binding + odl-mdsal-singleton-dom + odl-mdsal-eos-binding diff --git a/features/odl-mdsal-clustering-commons/src/main/feature/feature.xml b/features/odl-mdsal-clustering-commons/src/main/feature/feature.xml index 9a048e910a..82c96ac699 100644 --- a/features/odl-mdsal-clustering-commons/src/main/feature/feature.xml +++ b/features/odl-mdsal-clustering-commons/src/main/feature/feature.xml @@ -8,10 +8,10 @@ --> - odl-apache-commons-lang3 - odl-dropwizard-metrics - odl-servlet-api - odl-yangtools-data - odl-yangtools-codec + odl-apache-commons-lang3 + odl-dropwizard-metrics + odl-servlet-api + odl-yangtools-data + odl-yangtools-codec diff --git a/features/odl-mdsal-distributed-datastore/src/main/feature/feature.xml b/features/odl-mdsal-distributed-datastore/src/main/feature/feature.xml index 756bd7cf5f..9d12ed2d39 100644 --- a/features/odl-mdsal-distributed-datastore/src/main/feature/feature.xml +++ b/features/odl-mdsal-distributed-datastore/src/main/feature/feature.xml @@ -8,11 +8,11 @@ --> - odl-apache-commons-text - odl-yangtools-codec - odl-mdsal-eos-dom - odl-mdsal-dom-broker - odl-mdsal-binding-dom-adapter + odl-apache-commons-text + odl-yangtools-codec + odl-mdsal-eos-dom + odl-mdsal-dom-broker + odl-mdsal-binding-dom-adapter mvn:org.opendaylight.controller/sal-clustering-config/${project.version}/xml/akkaconf diff --git a/features/odl-toaster/src/main/feature/feature.xml b/features/odl-toaster/src/main/feature/feature.xml index 07800a651b..4466dbe52b 100644 --- a/features/odl-toaster/src/main/feature/feature.xml +++ b/features/odl-toaster/src/main/feature/feature.xml @@ -8,6 +8,6 @@ --> - odl-mdsal-binding-runtime + odl-mdsal-binding-runtime diff --git a/features/pom.xml b/features/pom.xml index 71db066641..f286788e4f 100644 --- a/features/pom.xml +++ b/features/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.odlparent odlparent-lite - 9.0.13 + 10.0.0 diff --git a/features/single-feature-parent/pom.xml b/features/single-feature-parent/pom.xml index 8aaed13693..9948dee21a 100644 --- a/features/single-feature-parent/pom.xml +++ b/features/single-feature-parent/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.odlparent single-feature-parent - 9.0.13 + 10.0.0 diff --git a/jolokia/pom.xml b/jolokia/pom.xml index 9c0a36eb23..c2f68b28c8 100644 --- a/jolokia/pom.xml +++ b/jolokia/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.odlparent odlparent - 9.0.13 + 10.0.0 diff --git a/karaf/pom.xml b/karaf/pom.xml index c929dd4bab..76c50c4494 100644 --- a/karaf/pom.xml +++ b/karaf/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.odlparent karaf4-parent - 9.0.13 + 10.0.0 diff --git a/opendaylight/blueprint/pom.xml b/opendaylight/blueprint/pom.xml index da656aee85..3cdca2c5d0 100644 --- a/opendaylight/blueprint/pom.xml +++ b/opendaylight/blueprint/pom.xml @@ -12,7 +12,7 @@ org.opendaylight.odlparent bundle-parent - 9.0.13 + 10.0.0 @@ -27,14 +27,14 @@ org.opendaylight.yangtools yangtools-artifacts - 7.0.14 + 8.0.0-SNAPSHOT pom import org.opendaylight.mdsal mdsal-artifacts - 8.0.12 + 9.0.0-SNAPSHOT pom import @@ -80,19 +80,19 @@ org.osgi - osgi.core + org.osgi.framework org.osgi - osgi.cmpn + org.osgi.service.cm - org.slf4j - slf4j-api + org.osgi + org.osgi.service.event org.osgi - org.osgi.service.event + org.osgi.util.tracker 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 7ad8ddb4e3..26db1380cf 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 @@ -7,7 +7,6 @@ */ package org.opendaylight.controller.blueprint; -import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; @@ -131,8 +130,6 @@ public class BlueprintBundleTracker implements BundleActivator, BundleTrackerCus quiesceParticipantTracker.open(); } - @SuppressFBWarnings(value = "UPM_UNCALLED_PRIVATE_METHOD", - justification = "https://github.com/spotbugs/spotbugs/issues/811") private QuiesceParticipant onQuiesceParticipantAdded(final ServiceReference reference) { quiesceParticipant = reference.getBundle().getBundleContext().getService(reference); @@ -143,8 +140,6 @@ public class BlueprintBundleTracker implements BundleActivator, BundleTrackerCus return quiesceParticipant; } - @SuppressFBWarnings(value = "UPM_UNCALLED_PRIVATE_METHOD", - justification = "https://github.com/spotbugs/spotbugs/issues/811") private BlueprintExtenderService onBlueprintExtenderServiceAdded( final ServiceReference reference) { blueprintExtenderService = reference.getBundle().getBundleContext().getService(reference); @@ -274,13 +269,12 @@ public class BlueprintBundleTracker implements BundleActivator, BundleTrackerCus return !paths.isEmpty() ? paths : findBlueprintPaths(bundle, ODL_CUSTOM_BLUEPRINT_FILE_PATH); } - @SuppressWarnings({ "rawtypes", "unchecked" }) private static List findBlueprintPaths(final Bundle bundle, final String path) { Enumeration rntries = bundle.findEntries(path, BLUEPRINT_FLE_PATTERN, false); if (rntries == null) { - return Collections.emptyList(); + return List.of(); } else { - return Collections.list((Enumeration)rntries); + return List.copyOf(Collections.list(rntries)); } } diff --git a/opendaylight/blueprint/src/main/java/org/opendaylight/controller/blueprint/ext/SpecificReferenceListMetadata.java b/opendaylight/blueprint/src/main/java/org/opendaylight/controller/blueprint/ext/SpecificReferenceListMetadata.java index 0412f00a7a..a98a062993 100644 --- a/opendaylight/blueprint/src/main/java/org/opendaylight/controller/blueprint/ext/SpecificReferenceListMetadata.java +++ b/opendaylight/blueprint/src/main/java/org/opendaylight/controller/blueprint/ext/SpecificReferenceListMetadata.java @@ -7,9 +7,7 @@ */ package org.opendaylight.controller.blueprint.ext; -import com.google.common.collect.ImmutableList; import com.google.common.io.Resources; -import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import java.io.IOException; import java.net.URL; import java.nio.charset.StandardCharsets; @@ -17,6 +15,7 @@ import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.HashSet; +import java.util.List; import java.util.Set; import java.util.concurrent.ConcurrentSkipListSet; import org.osgi.framework.Bundle; @@ -110,8 +109,6 @@ class SpecificReferenceListMetadata extends AbstractDependentComponentFactoryMet serviceTracker.open(); } - @SuppressFBWarnings(value = "UPM_UNCALLED_PRIVATE_METHOD", - justification = "https://github.com/spotbugs/spotbugs/issues/811") private void bundleAdded(final Bundle bundle) { URL resource = bundle.getEntry(serviceResourcePath); if (resource == null) { @@ -142,8 +139,6 @@ class SpecificReferenceListMetadata extends AbstractDependentComponentFactoryMet } } - @SuppressFBWarnings(value = "UPM_UNCALLED_PRIVATE_METHOD", - justification = "https://github.com/spotbugs/spotbugs/issues/811") private Object serviceAdded(final ServiceReference reference) { Object service = container().getBundleContext().getService(reference); String serviceType = (String) reference.getProperty(OpendaylightNamespaceHandler.TYPE_ATTR); @@ -196,7 +191,7 @@ class SpecificReferenceListMetadata extends AbstractDependentComponentFactoryMet LOG.debug("{}: create returning service list {}", logName(), retrievedServices); synchronized (retrievedServices) { - return ImmutableList.copyOf(retrievedServices); + return List.copyOf(retrievedServices); } } @@ -217,9 +212,9 @@ class SpecificReferenceListMetadata extends AbstractDependentComponentFactoryMet @Override public String toString() { - StringBuilder builder = new StringBuilder(); - builder.append("SpecificReferenceListMetadata [interfaceName=").append(interfaceName) - .append(", serviceResourcePath=").append(serviceResourcePath).append("]"); - return builder.toString(); + return new StringBuilder() + .append("SpecificReferenceListMetadata [interfaceName=").append(interfaceName) + .append(", serviceResourcePath=").append(serviceResourcePath).append("]") + .toString(); } } diff --git a/opendaylight/config/netty-event-executor-config/pom.xml b/opendaylight/config/netty-event-executor-config/pom.xml index 0eead41167..1e76743131 100644 --- a/opendaylight/config/netty-event-executor-config/pom.xml +++ b/opendaylight/config/netty-event-executor-config/pom.xml @@ -5,7 +5,7 @@ org.opendaylight.odlparent bundle-parent - 9.0.13 + 10.0.0 @@ -27,7 +27,7 @@ org.osgi - osgi.cmpn + org.osgi.service.component.annotations diff --git a/opendaylight/config/netty-threadgroup-config/pom.xml b/opendaylight/config/netty-threadgroup-config/pom.xml index 1a86063c17..d8b5234168 100644 --- a/opendaylight/config/netty-threadgroup-config/pom.xml +++ b/opendaylight/config/netty-threadgroup-config/pom.xml @@ -5,7 +5,7 @@ org.opendaylight.odlparent bundle-parent - 9.0.13 + 10.0.0 @@ -23,7 +23,11 @@ org.osgi - osgi.cmpn + org.osgi.service.component.annotations + + + org.osgi + org.osgi.service.metatype.annotations diff --git a/opendaylight/config/netty-timer-config/pom.xml b/opendaylight/config/netty-timer-config/pom.xml index e6b8d14596..19bd356610 100644 --- a/opendaylight/config/netty-timer-config/pom.xml +++ b/opendaylight/config/netty-timer-config/pom.xml @@ -5,7 +5,7 @@ org.opendaylight.odlparent bundle-parent - 9.0.13 + 10.0.0 @@ -23,7 +23,11 @@ org.osgi - osgi.cmpn + org.osgi.service.component.annotations + + + org.osgi + org.osgi.service.metatype.annotations diff --git a/opendaylight/config/pom.xml b/opendaylight/config/pom.xml index 55dbf3abca..b2c3f1edca 100644 --- a/opendaylight/config/pom.xml +++ b/opendaylight/config/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.odlparent odlparent-lite - 9.0.13 + 10.0.0 diff --git a/opendaylight/config/threadpool-config-api/pom.xml b/opendaylight/config/threadpool-config-api/pom.xml index 7c68a8ce89..e8d5e3ba5d 100644 --- a/opendaylight/config/threadpool-config-api/pom.xml +++ b/opendaylight/config/threadpool-config-api/pom.xml @@ -5,7 +5,7 @@ org.opendaylight.odlparent bundle-parent - 9.0.13 + 10.0.0 diff --git a/opendaylight/config/threadpool-config-impl/pom.xml b/opendaylight/config/threadpool-config-impl/pom.xml index 8f1be023e2..a7b8b4f50c 100644 --- a/opendaylight/config/threadpool-config-impl/pom.xml +++ b/opendaylight/config/threadpool-config-impl/pom.xml @@ -5,7 +5,7 @@ org.opendaylight.odlparent bundle-parent - 9.0.13 + 10.0.0 diff --git a/opendaylight/md-sal/cds-access-api/pom.xml b/opendaylight/md-sal/cds-access-api/pom.xml index 3d53e0f019..47d4a2f9a5 100644 --- a/opendaylight/md-sal/cds-access-api/pom.xml +++ b/opendaylight/md-sal/cds-access-api/pom.xml @@ -47,6 +47,11 @@ org.opendaylight.yangtools mockito-configuration + + org.opendaylight.yangtools + yang-data-tree-ri + test + com.typesafe.akka akka-testkit_2.13 diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/CommitLocalTransactionRequest.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/CommitLocalTransactionRequest.java index adef0c31bc..1e16cb5bbd 100644 --- a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/CommitLocalTransactionRequest.java +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/CommitLocalTransactionRequest.java @@ -17,7 +17,7 @@ import java.util.Optional; import org.eclipse.jdt.annotation.NonNull; import org.eclipse.jdt.annotation.Nullable; import org.opendaylight.controller.cluster.access.concepts.TransactionIdentifier; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeModification; +import org.opendaylight.yangtools.yang.data.tree.api.DataTreeModification; /** * Request to commit a local transaction. Since local transactions do not introduce state on the backend until they diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/ConnectClientSuccess.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/ConnectClientSuccess.java index 43fdb3c3c2..8f16d61e34 100644 --- a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/ConnectClientSuccess.java +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/ConnectClientSuccess.java @@ -22,7 +22,7 @@ import org.eclipse.jdt.annotation.NonNull; import org.opendaylight.controller.cluster.access.ABIVersion; import org.opendaylight.controller.cluster.access.concepts.ClientIdentifier; import org.opendaylight.controller.cluster.access.concepts.RequestSuccess; -import org.opendaylight.yangtools.yang.data.api.schema.tree.ReadOnlyDataTree; +import org.opendaylight.yangtools.yang.data.tree.api.ReadOnlyDataTree; /** * Successful reply to an {@link ConnectClientRequest}. Client actor which initiated this connection should use diff --git a/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/CommitLocalTransactionRequestTest.java b/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/CommitLocalTransactionRequestTest.java index 61b7dc2ad4..108bf537ad 100644 --- a/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/CommitLocalTransactionRequestTest.java +++ b/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/CommitLocalTransactionRequestTest.java @@ -17,7 +17,7 @@ import org.opendaylight.controller.cluster.access.concepts.FrontendType; import org.opendaylight.controller.cluster.access.concepts.LocalHistoryIdentifier; import org.opendaylight.controller.cluster.access.concepts.MemberName; import org.opendaylight.controller.cluster.access.concepts.TransactionIdentifier; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeModification; +import org.opendaylight.yangtools.yang.data.tree.api.DataTreeModification; public class CommitLocalTransactionRequestTest extends AbstractLocalTransactionRequestTest { diff --git a/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/ConnectClientSuccessTest.java b/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/ConnectClientSuccessTest.java index a1892eb35e..12f5dc8322 100644 --- a/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/ConnectClientSuccessTest.java +++ b/opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/ConnectClientSuccessTest.java @@ -22,10 +22,10 @@ import org.junit.Assert; import org.junit.Before; import org.junit.Test; import org.opendaylight.controller.cluster.access.ABIVersion; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTree; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeConfiguration; -import org.opendaylight.yangtools.yang.data.api.schema.tree.ReadOnlyDataTree; -import org.opendaylight.yangtools.yang.data.impl.schema.tree.InMemoryDataTreeFactory; +import org.opendaylight.yangtools.yang.data.tree.api.DataTree; +import org.opendaylight.yangtools.yang.data.tree.api.DataTreeConfiguration; +import org.opendaylight.yangtools.yang.data.tree.api.ReadOnlyDataTree; +import org.opendaylight.yangtools.yang.data.tree.impl.di.InMemoryDataTreeFactory; public class ConnectClientSuccessTest extends AbstractRequestSuccessTest { diff --git a/opendaylight/md-sal/eos-dom-akka/src/main/java/org/opendaylight/controller/eos/akka/AkkaEntityOwnershipService.java b/opendaylight/md-sal/eos-dom-akka/src/main/java/org/opendaylight/controller/eos/akka/AkkaEntityOwnershipService.java index eb3844c0c7..31a5ed5f1b 100644 --- a/opendaylight/md-sal/eos-dom-akka/src/main/java/org/opendaylight/controller/eos/akka/AkkaEntityOwnershipService.java +++ b/opendaylight/md-sal/eos-dom-akka/src/main/java/org/opendaylight/controller/eos/akka/AkkaEntityOwnershipService.java @@ -17,6 +17,7 @@ import akka.cluster.typed.Cluster; import com.google.common.annotations.VisibleForTesting; import com.google.common.util.concurrent.ListenableFuture; import com.google.common.util.concurrent.SettableFuture; +import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import java.time.Duration; import java.util.Optional; import java.util.Set; @@ -140,6 +141,8 @@ public class AkkaEntityOwnershipService implements DOMEntityOwnershipService, Da @Inject @Activate + @SuppressFBWarnings(value = "MC_OVERRIDABLE_METHOD_CALL_IN_CONSTRUCTOR", + justification = "Non-final for testing 'this' reference is expected to be stable at registration time") public AkkaEntityOwnershipService(@Reference final ActorSystemProvider actorProvider, @Reference final RpcProviderService rpcProvider, @Reference final BindingCodecTree codecTree) throws ExecutionException, InterruptedException { diff --git a/opendaylight/md-sal/eos-dom-akka/src/main/java/org/opendaylight/controller/eos/akka/owner/supervisor/AbstractSupervisor.java b/opendaylight/md-sal/eos-dom-akka/src/main/java/org/opendaylight/controller/eos/akka/owner/supervisor/AbstractSupervisor.java index 27907fd08a..a4366b5736 100644 --- a/opendaylight/md-sal/eos-dom-akka/src/main/java/org/opendaylight/controller/eos/akka/owner/supervisor/AbstractSupervisor.java +++ b/opendaylight/md-sal/eos-dom-akka/src/main/java/org/opendaylight/controller/eos/akka/owner/supervisor/AbstractSupervisor.java @@ -16,6 +16,7 @@ import akka.cluster.ddata.ORSet; import akka.cluster.ddata.typed.javadsl.DistributedData; import akka.cluster.ddata.typed.javadsl.Replicator; import akka.cluster.ddata.typed.javadsl.ReplicatorMessageAdapter; +import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import java.time.Duration; import org.opendaylight.controller.eos.akka.owner.supervisor.command.ClearCandidates; import org.opendaylight.controller.eos.akka.owner.supervisor.command.ClearCandidatesForMember; @@ -29,6 +30,8 @@ abstract class AbstractSupervisor extends AbstractBehavior>> candidateReplicator; + @SuppressFBWarnings(value = "MC_OVERRIDABLE_METHOD_CALL_IN_CONSTRUCTOR", + justification = "getContext() is non-final") AbstractSupervisor(final ActorContext context) { super(context); diff --git a/opendaylight/md-sal/mdsal-it-base/pom.xml b/opendaylight/md-sal/mdsal-it-base/pom.xml index 7bbd78ffde..a9ee950585 100644 --- a/opendaylight/md-sal/mdsal-it-base/pom.xml +++ b/opendaylight/md-sal/mdsal-it-base/pom.xml @@ -12,7 +12,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.odlparent bundle-parent - 9.0.13 + 10.0.0 @@ -26,7 +26,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.mdsal mdsal-artifacts - 8.0.12 + 9.0.0-SNAPSHOT pom import @@ -104,7 +104,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.osgi - osgi.core + org.osgi.framework compile diff --git a/opendaylight/md-sal/mdsal-it-parent/pom.xml b/opendaylight/md-sal/mdsal-it-parent/pom.xml index 22d86422c6..e794a6dbe1 100644 --- a/opendaylight/md-sal/mdsal-it-parent/pom.xml +++ b/opendaylight/md-sal/mdsal-it-parent/pom.xml @@ -13,7 +13,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.opendaylight.odlparent bundle-parent - 9.0.13 + 10.0.0 @@ -91,7 +91,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html org.osgi - osgi.core + org.osgi.framework junit diff --git a/opendaylight/md-sal/parent/pom.xml b/opendaylight/md-sal/parent/pom.xml index 697ecd4179..5763fd7afc 100644 --- a/opendaylight/md-sal/parent/pom.xml +++ b/opendaylight/md-sal/parent/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.mdsal binding-parent - 8.0.12 + 9.0.0-SNAPSHOT diff --git a/opendaylight/md-sal/pom.xml b/opendaylight/md-sal/pom.xml index 1b09452d46..3bc8a83ab2 100644 --- a/opendaylight/md-sal/pom.xml +++ b/opendaylight/md-sal/pom.xml @@ -5,7 +5,7 @@ org.opendaylight.odlparent odlparent-lite - 9.0.13 + 10.0.0 diff --git a/opendaylight/md-sal/sal-akka-raft-example/src/main/java/org/opendaylight/controller/cluster/example/LogGenerator.java b/opendaylight/md-sal/sal-akka-raft-example/src/main/java/org/opendaylight/controller/cluster/example/LogGenerator.java index 6ef8a07d9d..9559f1cff4 100644 --- a/opendaylight/md-sal/sal-akka-raft-example/src/main/java/org/opendaylight/controller/cluster/example/LogGenerator.java +++ b/opendaylight/md-sal/sal-akka-raft-example/src/main/java/org/opendaylight/controller/cluster/example/LogGenerator.java @@ -35,8 +35,9 @@ public class LogGenerator { } public static class LoggingThread implements Runnable { - + private final Random random = new Random(); private final ActorRef clientActor; + private volatile boolean stopLogging = false; public LoggingThread(final ActorRef clientActor) { @@ -45,7 +46,6 @@ public class LogGenerator { @Override public void run() { - Random random = new Random(); while (true) { if (stopLogging) { LOG.info("Logging stopped for client: {}", clientActor.path()); diff --git a/opendaylight/md-sal/sal-akka-raft/pom.xml b/opendaylight/md-sal/sal-akka-raft/pom.xml index 4a84542846..b2df4a7198 100644 --- a/opendaylight/md-sal/sal-akka-raft/pom.xml +++ b/opendaylight/md-sal/sal-akka-raft/pom.xml @@ -32,10 +32,6 @@ org.apache.commons commons-lang3 - - org.osgi - osgi.core - diff --git a/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/GetSnapshotReplyActor.java b/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/GetSnapshotReplyActor.java index d1e0b5c286..6febb90251 100644 --- a/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/GetSnapshotReplyActor.java +++ b/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/GetSnapshotReplyActor.java @@ -29,7 +29,7 @@ import scala.concurrent.duration.FiniteDuration; * * @author Thomas Pantelis */ -class GetSnapshotReplyActor extends UntypedAbstractActor { +final class GetSnapshotReplyActor extends UntypedAbstractActor { private static final Logger LOG = LoggerFactory.getLogger(GetSnapshotReplyActor.class); private final Params params; @@ -88,7 +88,7 @@ class GetSnapshotReplyActor extends UntypedAbstractActor { this.replyToActor = requireNonNull(replyToActor); this.receiveTimeout = requireNonNull(receiveTimeout); this.id = requireNonNull(id); - this.peerInformation = peerInfo; + peerInformation = peerInfo; } } } diff --git a/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/RaftActor.java b/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/RaftActor.java index 00f6a04346..6fd0693db2 100644 --- a/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/RaftActor.java +++ b/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/RaftActor.java @@ -16,6 +16,7 @@ import akka.actor.ActorSelection; import akka.actor.PoisonPill; import akka.actor.Status; import com.google.common.annotations.VisibleForTesting; +import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import java.util.ArrayList; import java.util.Collection; import java.util.HashMap; @@ -123,6 +124,7 @@ public abstract class RaftActor extends AbstractUntypedPersistentActor { private boolean shuttingDown; + @SuppressFBWarnings(value = "MC_OVERRIDABLE_METHOD_CALL_IN_CONSTRUCTOR", justification = "Akka class design") protected RaftActor(final String id, final Map peerAddresses, final Optional configParams, final short payloadVersion) { @@ -963,7 +965,7 @@ public abstract class RaftActor extends AbstractUntypedPersistentActor { this.lastValidLeaderId = lastValidLeaderId; this.lastLeaderId = lastLeaderId; this.behavior = requireNonNull(behavior); - this.leaderPayloadVersion = behavior.getLeaderPayloadVersion(); + leaderPayloadVersion = behavior.getLeaderPayloadVersion(); } @Override diff --git a/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/TimedRunnable.java b/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/TimedRunnable.java index f16e5e2b59..93b5f04df3 100644 --- a/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/TimedRunnable.java +++ b/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/TimedRunnable.java @@ -10,6 +10,7 @@ package org.opendaylight.controller.cluster.raft; import static java.util.Objects.requireNonNull; import akka.actor.Cancellable; +import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import scala.concurrent.duration.FiniteDuration; /** @@ -27,10 +28,12 @@ abstract class TimedRunnable implements Runnable { private final Cancellable cancelTimer; private boolean canRun = true; + @SuppressFBWarnings(value = "MC_OVERRIDABLE_METHOD_CALL_IN_CONSTRUCTOR", + justification = "https://github.com/spotbugs/spotbugs/issues/1867") TimedRunnable(final FiniteDuration timeout, final RaftActor actor) { cancelTimer = requireNonNull(actor).getContext().system().scheduler() - .scheduleOnce(requireNonNull(timeout), actor.self(), (Runnable) this::cancel, - actor.getContext().system().dispatcher(), actor.self()); + .scheduleOnce(requireNonNull(timeout), actor.self(), (Runnable) this::cancel, + actor.getContext().system().dispatcher(), actor.self()); } @Override diff --git a/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/behaviors/AbstractLeader.java b/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/behaviors/AbstractLeader.java index 6560ad76c3..f82bedc4af 100644 --- a/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/behaviors/AbstractLeader.java +++ b/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/behaviors/AbstractLeader.java @@ -166,7 +166,7 @@ public abstract class AbstractLeader extends AbstractRaftActorBehavior { followerToLog.remove(followerId); } - public void updateMinReplicaCount() { + public final void updateMinReplicaCount() { int numVoting = 0; for (PeerInfo peer: context.getPeers()) { if (peer.isVoting()) { @@ -1124,8 +1124,8 @@ public abstract class AbstractLeader extends AbstractRaftActorBehavior { private final ByteSource snapshotBytes; SnapshotHolder(final Snapshot snapshot, final ByteSource snapshotBytes) { - this.lastIncludedTerm = snapshot.getLastAppliedTerm(); - this.lastIncludedIndex = snapshot.getLastAppliedIndex(); + lastIncludedTerm = snapshot.getLastAppliedTerm(); + lastIncludedIndex = snapshot.getLastAppliedIndex(); this.snapshotBytes = snapshotBytes; } diff --git a/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/behaviors/AbstractRaftActorBehavior.java b/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/behaviors/AbstractRaftActorBehavior.java index fd2fbd332c..e5dca4a6d8 100644 --- a/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/behaviors/AbstractRaftActorBehavior.java +++ b/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/behaviors/AbstractRaftActorBehavior.java @@ -15,8 +15,8 @@ import akka.cluster.Cluster; import akka.cluster.Member; import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import java.util.Optional; -import java.util.Random; import java.util.Set; +import java.util.concurrent.ThreadLocalRandom; import java.util.concurrent.TimeUnit; import org.opendaylight.controller.cluster.raft.RaftActorContext; import org.opendaylight.controller.cluster.raft.RaftState; @@ -70,7 +70,7 @@ public abstract class AbstractRaftActorBehavior implements RaftActorBehavior { AbstractRaftActorBehavior(final RaftActorContext context, final RaftState state) { this.context = requireNonNull(context); this.state = requireNonNull(state); - this.log = context.getLogger(); + log = context.getLogger(); logName = String.format("%s (%s)", context.getId(), state); } @@ -212,9 +212,7 @@ public abstract class AbstractRaftActorBehavior implements RaftActorBehavior { // the log with the later term is more up-to-date. If the logs // end with the same term, then whichever log is longer is // more up-to-date. - if (requestVote.getLastLogTerm() > lastTerm()) { - candidateLatest = true; - } else if (requestVote.getLastLogTerm() == lastTerm() + if (requestVote.getLastLogTerm() > lastTerm() || requestVote.getLastLogTerm() == lastTerm() && requestVote.getLastLogIndex() >= lastIndex()) { candidateLatest = true; } @@ -247,7 +245,7 @@ public abstract class AbstractRaftActorBehavior implements RaftActorBehavior { * @return a random election duration */ protected FiniteDuration electionDuration() { - long variance = new Random().nextInt(context.getConfigParams().getElectionTimeVariance()); + long variance = ThreadLocalRandom.current().nextInt(context.getConfigParams().getElectionTimeVariance()); return context.getConfigParams().getElectionTimeOutInterval().$plus( new FiniteDuration(variance, TimeUnit.MILLISECONDS)); } @@ -270,6 +268,7 @@ public abstract class AbstractRaftActorBehavior implements RaftActorBehavior { * * @param interval the duration after which we should trigger a new election */ + // Non-final for testing protected void scheduleElection(final FiniteDuration interval) { stopElection(); @@ -301,7 +300,7 @@ public abstract class AbstractRaftActorBehavior implements RaftActorBehavior { * * @return the actor */ - protected ActorRef actor() { + protected final ActorRef actor() { return context.getActor(); } @@ -496,7 +495,7 @@ public abstract class AbstractRaftActorBehavior implements RaftActorBehavior { } } - protected String getId() { + protected final String getId() { return context.getId(); } diff --git a/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/behaviors/Candidate.java b/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/behaviors/Candidate.java index a8762ec76e..569f6b3d24 100644 --- a/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/behaviors/Candidate.java +++ b/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/behaviors/Candidate.java @@ -5,7 +5,6 @@ * 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.raft.behaviors; import akka.actor.ActorRef; @@ -44,7 +43,7 @@ import scala.concurrent.duration.FiniteDuration; *
  • If election timeout elapses: start new election * */ -public class Candidate extends AbstractRaftActorBehavior { +public final class Candidate extends AbstractRaftActorBehavior { private int voteCount; @@ -75,12 +74,12 @@ public class Candidate extends AbstractRaftActorBehavior { } @Override - public final String getLeaderId() { + public String getLeaderId() { return null; } @Override - public final short getLeaderPayloadVersion() { + public short getLeaderPayloadVersion() { return -1; } @@ -134,7 +133,7 @@ public class Candidate extends AbstractRaftActorBehavior { @Override - final ApplyState getApplyStateFor(final ReplicatedLogEntry entry) { + ApplyState getApplyStateFor(final ReplicatedLogEntry entry) { throw new IllegalStateException("A candidate should never attempt to apply " + entry); } diff --git a/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/behaviors/Follower.java b/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/behaviors/Follower.java index 288ce32a64..f115db1c79 100644 --- a/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/behaviors/Follower.java +++ b/opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/behaviors/Follower.java @@ -16,6 +16,7 @@ import akka.cluster.Member; import akka.cluster.MemberStatus; import com.google.common.annotations.VisibleForTesting; import com.google.common.base.Stopwatch; +import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import java.io.IOException; import java.util.ArrayList; import java.util.HashSet; @@ -53,6 +54,7 @@ import org.opendaylight.controller.cluster.raft.persisted.Snapshot; * convert to candidate * */ +// Non-final for testing public class Follower extends AbstractRaftActorBehavior { private static final long MAX_ELECTION_TIMEOUT_FACTOR = 18; @@ -69,11 +71,13 @@ public class Follower extends AbstractRaftActorBehavior { this(context, null, (short)-1); } + @SuppressFBWarnings(value = "MC_OVERRIDABLE_METHOD_CALL_IN_CONSTRUCTOR", + justification = "electionDuration() is not final for Candidate override") public Follower(final RaftActorContext context, final String initialLeaderId, final short initialLeaderPayloadVersion) { super(context, RaftState.Follower); - this.leaderId = initialLeaderId; - this.leaderPayloadVersion = initialLeaderPayloadVersion; + leaderId = initialLeaderId; + leaderPayloadVersion = initialLeaderPayloadVersion; initialSyncStatusTracker = new SyncStatusTracker(context.getActor(), getId(), context.getConfigParams() .getSyncIndexThreshold()); diff --git a/opendaylight/md-sal/sal-cluster-admin-impl/pom.xml b/opendaylight/md-sal/sal-cluster-admin-impl/pom.xml index 713d07a85e..46a73536a4 100644 --- a/opendaylight/md-sal/sal-cluster-admin-impl/pom.xml +++ b/opendaylight/md-sal/sal-cluster-admin-impl/pom.xml @@ -94,7 +94,7 @@ org.osgi - osgi.cmpn + org.osgi.service.component.annotations diff --git a/opendaylight/md-sal/sal-cluster-admin-impl/src/main/java/org/opendaylight/controller/cluster/datastore/admin/ClusterAdminRpcService.java b/opendaylight/md-sal/sal-cluster-admin-impl/src/main/java/org/opendaylight/controller/cluster/datastore/admin/ClusterAdminRpcService.java index 1e2ee44277..d3a7c7a686 100644 --- a/opendaylight/md-sal/sal-cluster-admin-impl/src/main/java/org/opendaylight/controller/cluster/datastore/admin/ClusterAdminRpcService.java +++ b/opendaylight/md-sal/sal-cluster-admin-impl/src/main/java/org/opendaylight/controller/cluster/datastore/admin/ClusterAdminRpcService.java @@ -108,7 +108,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controll import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.cluster.admin.rev151013.shard.result.output.ShardResultBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.md.sal.cluster.admin.rev151013.shard.result.output.ShardResultKey; import org.opendaylight.yangtools.yang.common.Empty; -import org.opendaylight.yangtools.yang.common.RpcError.ErrorType; +import org.opendaylight.yangtools.yang.common.ErrorType; import org.opendaylight.yangtools.yang.common.RpcResult; import org.opendaylight.yangtools.yang.common.RpcResultBuilder; import org.opendaylight.yangtools.yang.common.Uint32; @@ -145,7 +145,7 @@ public class ClusterAdminRpcService implements ClusterAdminService { this.operDataStore = operDataStore; this.serializer = serializer; - this.makeLeaderLocalTimeout = + makeLeaderLocalTimeout = new Timeout(configDataStore.getActorUtils().getDatastoreContext() .getShardLeaderElectionTimeout().duration().$times(2)); @@ -696,8 +696,6 @@ public class ClusterAdminRpcService implements ClusterAdminService { return ask(shardManager, message, SHARD_MGR_TIMEOUT); } - @SuppressFBWarnings(value = "UPM_UNCALLED_PRIVATE_METHOD", - justification = "https://github.com/spotbugs/spotbugs/issues/811") @SuppressWarnings("checkstyle:IllegalCatch") private static void saveSnapshotsToFile(final DatastoreSnapshotList snapshots, final String fileName, final SettableFuture> returnFuture) { diff --git a/opendaylight/md-sal/sal-clustering-commons/pom.xml b/opendaylight/md-sal/sal-clustering-commons/pom.xml index 3a62b14b6f..b9366eea1d 100644 --- a/opendaylight/md-sal/sal-clustering-commons/pom.xml +++ b/opendaylight/md-sal/sal-clustering-commons/pom.xml @@ -96,7 +96,7 @@ org.osgi - osgi.cmpn + org.osgi.service.component.annotations diff --git a/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/common/actor/AbstractUntypedActor.java b/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/common/actor/AbstractUntypedActor.java index 6af52fbd04..f66a77f66e 100644 --- a/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/common/actor/AbstractUntypedActor.java +++ b/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/common/actor/AbstractUntypedActor.java @@ -17,10 +17,11 @@ import org.slf4j.LoggerFactory; public abstract class AbstractUntypedActor extends AbstractActor implements ExecuteInSelfActor { // The member name should be lower case but it's referenced in many subclasses. Suppressing the CS warning for now. - @SuppressFBWarnings("SLF4J_LOGGER_SHOULD_BE_PRIVATE") @SuppressWarnings("checkstyle:MemberName") + @SuppressFBWarnings(value = "SLF4J_LOGGER_SHOULD_BE_PRIVATE", justification = "Class identity is required") protected final Logger LOG = LoggerFactory.getLogger(getClass()); + @SuppressFBWarnings(value = "MC_OVERRIDABLE_METHOD_CALL_IN_CONSTRUCTOR", justification = "Akka class design") protected AbstractUntypedActor() { LOG.debug("Actor created {}", getSelf()); getContext().system().actorSelection("user/termination-monitor").tell(new Monitor(getSelf()), getSelf()); diff --git a/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/common/actor/AbstractUntypedActorWithMetering.java b/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/common/actor/AbstractUntypedActorWithMetering.java index 2124b24faf..d20ceb5252 100644 --- a/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/common/actor/AbstractUntypedActorWithMetering.java +++ b/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/common/actor/AbstractUntypedActorWithMetering.java @@ -7,21 +7,24 @@ */ package org.opendaylight.controller.cluster.common.actor; +import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; + /** * Actor with its behaviour metered. Metering is enabled by configuration. */ public abstract class AbstractUntypedActorWithMetering extends AbstractUntypedActor { - - //this is used in the metric name. Some transient actors do not have defined names + // this is used in the metric name. Some transient actors do not have defined names private String actorNameOverride; + @SuppressFBWarnings(value = "MC_OVERRIDABLE_METHOD_CALL_IN_CONSTRUCTOR", justification = "Akka class design") public AbstractUntypedActorWithMetering() { if (isMetricsCaptureEnabled()) { getContext().become(new MeteringBehavior(this)); } } - public AbstractUntypedActorWithMetering(String actorNameOverride) { + @SuppressFBWarnings(value = "MC_OVERRIDABLE_METHOD_CALL_IN_CONSTRUCTOR", justification = "Akka class design") + public AbstractUntypedActorWithMetering(final String actorNameOverride) { this.actorNameOverride = actorNameOverride; if (isMetricsCaptureEnabled()) { getContext().become(new MeteringBehavior(this)); @@ -29,8 +32,7 @@ public abstract class AbstractUntypedActorWithMetering extends AbstractUntypedAc } private boolean isMetricsCaptureEnabled() { - CommonConfig config = new CommonConfig(getContext().system().settings().config()); - return config.isMetricCaptureEnabled(); + return new CommonConfig(getContext().system().settings().config()).isMetricCaptureEnabled(); } public String getActorNameOverride() { diff --git a/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/common/actor/AbstractUntypedPersistentActor.java b/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/common/actor/AbstractUntypedPersistentActor.java index 711a43159a..8bf657e134 100644 --- a/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/common/actor/AbstractUntypedPersistentActor.java +++ b/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/common/actor/AbstractUntypedPersistentActor.java @@ -14,13 +14,16 @@ import org.eclipse.jdt.annotation.NonNull; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +// FIXME: override getContext(), getSelf() and others to be final to get rid of +// SpotBugs MC_OVERRIDABLE_METHOD_CALL_IN_CONSTRUCTOR violation public abstract class AbstractUntypedPersistentActor extends AbstractPersistentActor implements ExecuteInSelfActor { // The member name should be lower case but it's referenced in many subclasses. Suppressing the CS warning for now. - @SuppressFBWarnings("SLF4J_LOGGER_SHOULD_BE_PRIVATE") @SuppressWarnings("checkstyle:MemberName") + @SuppressFBWarnings("SLF4J_LOGGER_SHOULD_BE_PRIVATE") protected final Logger LOG = LoggerFactory.getLogger(getClass()); + @SuppressFBWarnings(value = "MC_OVERRIDABLE_METHOD_CALL_IN_CONSTRUCTOR", justification = "Akka class design") protected AbstractUntypedPersistentActor() { LOG.trace("Actor created {}", getSelf()); getContext().system().actorSelection("user/termination-monitor").tell(new Monitor(getSelf()), getSelf()); diff --git a/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/common/actor/AbstractUntypedPersistentActorWithMetering.java b/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/common/actor/AbstractUntypedPersistentActorWithMetering.java index ed03d33491..760f0bd0fd 100644 --- a/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/common/actor/AbstractUntypedPersistentActorWithMetering.java +++ b/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/common/actor/AbstractUntypedPersistentActorWithMetering.java @@ -7,11 +7,13 @@ */ package org.opendaylight.controller.cluster.common.actor; +import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; + /** * Actor with its behaviour metered. Metering is enabled by configuration. */ public abstract class AbstractUntypedPersistentActorWithMetering extends AbstractUntypedPersistentActor { - + @SuppressFBWarnings(value = "MC_OVERRIDABLE_METHOD_CALL_IN_CONSTRUCTOR", justification = "Akka class design") public AbstractUntypedPersistentActorWithMetering() { if (isMetricsCaptureEnabled()) { getContext().become(new MeteringBehavior(this)); @@ -19,7 +21,6 @@ public abstract class AbstractUntypedPersistentActorWithMetering extends Abstrac } private boolean isMetricsCaptureEnabled() { - CommonConfig config = new CommonConfig(getContext().system().settings().config()); - return config.isMetricCaptureEnabled(); + return new CommonConfig(getContext().system().settings().config()).isMetricCaptureEnabled(); } } diff --git a/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/common/actor/QuarantinedMonitorActor.java b/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/common/actor/QuarantinedMonitorActor.java index 77dcba564d..b002178266 100644 --- a/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/common/actor/QuarantinedMonitorActor.java +++ b/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/common/actor/QuarantinedMonitorActor.java @@ -17,6 +17,7 @@ import akka.japi.Effect; import akka.remote.AssociationErrorEvent; import akka.remote.RemotingLifecycleEvent; import akka.remote.artery.ThisActorSystemQuarantinedEvent; +import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import java.util.HashSet; import java.util.Set; import org.slf4j.Logger; @@ -42,6 +43,7 @@ public class QuarantinedMonitorActor extends UntypedAbstractActor { private final Set
    addressSet = new HashSet<>(); private int count = 0; + @SuppressFBWarnings(value = "MC_OVERRIDABLE_METHOD_CALL_IN_CONSTRUCTOR", justification = "Akka class design") protected QuarantinedMonitorActor(final Effect callback) { this.callback = callback; diff --git a/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/datastore/util/AbstractDataTreeModificationCursor.java b/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/datastore/util/AbstractDataTreeModificationCursor.java index 35ab00f4f5..7a1ba9340b 100644 --- a/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/datastore/util/AbstractDataTreeModificationCursor.java +++ b/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/datastore/util/AbstractDataTreeModificationCursor.java @@ -16,7 +16,7 @@ import java.util.Optional; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument; import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeModificationCursor; +import org.opendaylight.yangtools.yang.data.tree.api.DataTreeModificationCursor; /** * Abstract {@link DataTreeModificationCursor} which tracks the current path. Subclasses can get the current path diff --git a/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/persistence/LocalSnapshotStore.java b/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/persistence/LocalSnapshotStore.java index b63b732f5b..75eb7fbd6f 100644 --- a/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/persistence/LocalSnapshotStore.java +++ b/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/persistence/LocalSnapshotStore.java @@ -21,6 +21,7 @@ import akka.serialization.JavaSerializer; import com.google.common.annotations.VisibleForTesting; import com.google.common.io.ByteStreams; import com.typesafe.config.Config; +import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import java.io.BufferedInputStream; import java.io.File; import java.io.FileInputStream; @@ -68,6 +69,7 @@ public class LocalSnapshotStore extends SnapshotStore { private final int maxLoadAttempts; private final File snapshotDir; + @SuppressFBWarnings(value = "MC_OVERRIDABLE_METHOD_CALL_IN_CONSTRUCTOR", justification = "Akka class design") public LocalSnapshotStore(final Config config) { executionContext = context().system().dispatchers().lookup(config.getString("stream-dispatcher")); snapshotDir = new File(config.getString("dir")); diff --git a/opendaylight/md-sal/sal-clustering-config/pom.xml b/opendaylight/md-sal/sal-clustering-config/pom.xml index c8d4a03c53..69c31eebaf 100644 --- a/opendaylight/md-sal/sal-clustering-config/pom.xml +++ b/opendaylight/md-sal/sal-clustering-config/pom.xml @@ -12,7 +12,7 @@ org.opendaylight.odlparent odlparent-lite - 9.0.13 + 10.0.0 diff --git a/opendaylight/md-sal/sal-distributed-datastore/pom.xml b/opendaylight/md-sal/sal-distributed-datastore/pom.xml index 96c97d5179..56b1b232b7 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/pom.xml +++ b/opendaylight/md-sal/sal-distributed-datastore/pom.xml @@ -21,11 +21,19 @@ org.osgi - osgi.core + org.osgi.framework org.osgi - osgi.cmpn + org.osgi.service.component + + + org.osgi + org.osgi.service.component.annotations + + + org.osgi + org.osgi.service.metatype.annotations @@ -129,6 +137,10 @@ org.opendaylight.yangtools yang-data-impl + + org.opendaylight.yangtools + yang-data-tree-ri + org.opendaylight.yangtools yang-data-codec-xml diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/AbstractDOMBroker.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/AbstractDOMBroker.java index 91fd64d366..4ab1c15782 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/AbstractDOMBroker.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/AbstractDOMBroker.java @@ -12,7 +12,6 @@ import static com.google.common.base.Preconditions.checkState; import com.google.common.collect.ClassToInstanceMap; import com.google.common.collect.ImmutableClassToInstanceMap; import com.google.common.collect.ImmutableClassToInstanceMap.Builder; -import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import java.util.EnumMap; import java.util.Map; import java.util.concurrent.atomic.AtomicLong; @@ -124,8 +123,6 @@ public abstract class AbstractDOMBroker extends AbstractDOMTransactionFactory datastores, final Executor listenableFutureExecutor, final DurationStatisticsTracker commitStatsTracker) { super(datastores); - this.clientFutureCallbackExecutor = requireNonNull(listenableFutureExecutor); + clientFutureCallbackExecutor = requireNonNull(listenableFutureExecutor); this.commitStatsTracker = requireNonNull(commitStatsTracker); } @@ -107,7 +107,7 @@ public class ConcurrentDOMDataBroker extends AbstractDOMBroker { final Iterator cohortIterator = cohorts.iterator(); // Not using Futures.allAsList here to avoid its internal overhead. - FutureCallback futureCallback = new FutureCallback() { + FutureCallback futureCallback = new FutureCallback<>() { @Override public void onSuccess(final Boolean result) { if (result == null || !result) { @@ -130,8 +130,6 @@ public class ConcurrentDOMDataBroker extends AbstractDOMBroker { Futures.addCallback(cohortIterator.next().canCommit(), futureCallback, MoreExecutors.directExecutor()); } - @SuppressFBWarnings(value = "UPM_UNCALLED_PRIVATE_METHOD", - justification = "https://github.com/spotbugs/spotbugs/issues/811") private void doPreCommit(final long startTime, final AsyncNotifyingSettableFuture clientSubmitFuture, final DOMDataTreeWriteTransaction transaction, final Collection cohorts) { @@ -139,7 +137,7 @@ public class ConcurrentDOMDataBroker extends AbstractDOMBroker { final Iterator cohortIterator = cohorts.iterator(); // Not using Futures.allAsList here to avoid its internal overhead. - FutureCallback futureCallback = new FutureCallback() { + FutureCallback futureCallback = new FutureCallback<>() { @Override public void onSuccess(final Void notUsed) { if (!cohortIterator.hasNext()) { @@ -161,8 +159,6 @@ public class ConcurrentDOMDataBroker extends AbstractDOMBroker { Futures.addCallback(preCommitFuture, futureCallback, MoreExecutors.directExecutor()); } - @SuppressFBWarnings(value = "UPM_UNCALLED_PRIVATE_METHOD", - justification = "https://github.com/spotbugs/spotbugs/issues/811") private void doCommit(final long startTime, final AsyncNotifyingSettableFuture clientSubmitFuture, final DOMDataTreeWriteTransaction transaction, final Collection cohorts) { @@ -170,7 +166,7 @@ public class ConcurrentDOMDataBroker extends AbstractDOMBroker { final Iterator cohortIterator = cohorts.iterator(); // Not using Futures.allAsList here to avoid its internal overhead. - FutureCallback futureCallback = new FutureCallback() { + FutureCallback futureCallback = new FutureCallback<>() { @Override public void onSuccess(final Void notUsed) { if (!cohortIterator.hasNext()) { @@ -194,11 +190,10 @@ public class ConcurrentDOMDataBroker extends AbstractDOMBroker { Futures.addCallback(commitFuture, futureCallback, MoreExecutors.directExecutor()); } - @SuppressFBWarnings(value = { "BC_UNCONFIRMED_CAST_OF_RETURN_VALUE", "UPM_UNCALLED_PRIVATE_METHOD" }, + @SuppressFBWarnings(value = "BC_UNCONFIRMED_CAST_OF_RETURN_VALUE", justification = "Pertains to the assignment of the 'clientException' var. FindBugs flags this as an " + "uncomfirmed cast but the generic type in TransactionCommitFailedExceptionMapper is " - + "TransactionCommitFailedException and thus should be deemed as confirmed." - + "Also https://github.com/spotbugs/spotbugs/issues/811") + + "TransactionCommitFailedException and thus should be deemed as confirmed.") private static void handleException(final AsyncNotifyingSettableFuture clientSubmitFuture, final DOMDataTreeWriteTransaction transaction, final Collection cohorts, diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/DOMBrokerTransactionChain.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/DOMBrokerTransactionChain.java index 3364d23143..f15fd8679e 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/DOMBrokerTransactionChain.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/DOMBrokerTransactionChain.java @@ -13,7 +13,6 @@ import static java.util.Objects.requireNonNull; import com.google.common.util.concurrent.FluentFuture; import com.google.common.util.concurrent.FutureCallback; import com.google.common.util.concurrent.MoreExecutors; -import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import java.util.Collection; import java.util.Map; import java.util.concurrent.atomic.AtomicIntegerFieldUpdater; @@ -127,16 +126,12 @@ final class DOMBrokerTransactionChain extends AbstractDOMTransactionFactory listenerRegistrationProxy = new DataTreeChangeListenerProxy<>(actorUtils, new ClusteredDOMDataTreeChangeListener() { @Override - public void onDataTreeChanged(final Collection changes) { + public void onDataTreeChanged(final List changes) { delegate.onDataTreeChanged(changes); } diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/AbstractFrontendHistory.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/AbstractFrontendHistory.java index 022bb7aa07..31bf000ac2 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/AbstractFrontendHistory.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/AbstractFrontendHistory.java @@ -37,7 +37,7 @@ import org.opendaylight.controller.cluster.access.concepts.RequestException; import org.opendaylight.controller.cluster.access.concepts.TransactionIdentifier; import org.opendaylight.controller.cluster.datastore.utils.MutableUnsignedLongSet; import org.opendaylight.yangtools.concepts.Identifiable; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeModification; +import org.opendaylight.yangtools.yang.data.tree.api.DataTreeModification; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/AbstractShardDataTreeNotificationPublisherActorProxy.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/AbstractShardDataTreeNotificationPublisherActorProxy.java index 3d1bebeb92..b4c65a80c0 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/AbstractShardDataTreeNotificationPublisherActorProxy.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/AbstractShardDataTreeNotificationPublisherActorProxy.java @@ -12,7 +12,7 @@ import akka.actor.ActorRef; import akka.actor.Props; import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import org.opendaylight.controller.cluster.common.actor.Dispatchers; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidate; +import org.opendaylight.yangtools.yang.data.tree.api.DataTreeCandidate; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/AbstractShardDataTreeTransaction.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/AbstractShardDataTreeTransaction.java index bec1a38f24..e559ff1249 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/AbstractShardDataTreeTransaction.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/AbstractShardDataTreeTransaction.java @@ -14,7 +14,7 @@ import com.google.common.base.MoreObjects; import org.opendaylight.controller.cluster.access.concepts.TransactionIdentifier; import org.opendaylight.controller.cluster.datastore.persisted.AbortTransactionPayload; import org.opendaylight.yangtools.concepts.Identifiable; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeSnapshot; +import org.opendaylight.yangtools.yang.data.tree.api.DataTreeSnapshot; /** * Abstract base for transactions running on SharrdDataTree. This class is NOT thread-safe. diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/AbstractTransactionContextFactory.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/AbstractTransactionContextFactory.java index 6941d1904c..bc1040509f 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/AbstractTransactionContextFactory.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/AbstractTransactionContextFactory.java @@ -24,7 +24,7 @@ import org.opendaylight.controller.cluster.datastore.utils.ActorUtils; import org.opendaylight.mdsal.dom.spi.store.DOMStoreReadTransaction; import org.opendaylight.mdsal.dom.spi.store.DOMStoreReadWriteTransaction; import org.opendaylight.mdsal.dom.spi.store.DOMStoreWriteTransaction; -import org.opendaylight.yangtools.yang.data.api.schema.tree.ReadOnlyDataTree; +import org.opendaylight.yangtools.yang.data.tree.api.ReadOnlyDataTree; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import scala.concurrent.Future; diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ChainedCommitCohort.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ChainedCommitCohort.java index 1f87fd4259..851eb8733a 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ChainedCommitCohort.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ChainedCommitCohort.java @@ -14,9 +14,9 @@ import com.google.common.util.concurrent.FutureCallback; import java.util.Optional; import java.util.SortedSet; import org.opendaylight.controller.cluster.access.concepts.TransactionIdentifier; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidate; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidateTip; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeModification; +import org.opendaylight.yangtools.yang.data.tree.api.DataTreeCandidate; +import org.opendaylight.yangtools.yang.data.tree.api.DataTreeCandidateTip; +import org.opendaylight.yangtools.yang.data.tree.api.DataTreeModification; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/CohortEntry.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/CohortEntry.java index 6c0c13b3ab..da10ba05f2 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/CohortEntry.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/CohortEntry.java @@ -19,8 +19,8 @@ import java.util.SortedSet; import org.opendaylight.controller.cluster.access.concepts.TransactionIdentifier; import org.opendaylight.controller.cluster.datastore.ShardCommitCoordinator.CohortDecorator; import org.opendaylight.controller.cluster.datastore.modification.Modification; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidate; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeModification; +import org.opendaylight.yangtools.yang.data.tree.api.DataTreeCandidate; +import org.opendaylight.yangtools.yang.data.tree.api.DataTreeModification; final class CohortEntry { private final ReadWriteShardDataTreeTransaction transaction; @@ -36,16 +36,16 @@ final class CohortEntry { private Shard shard; private CohortEntry(final ReadWriteShardDataTreeTransaction transaction, final short clientVersion) { - this.cohort = null; + cohort = null; this.transaction = requireNonNull(transaction); - this.transactionId = transaction.getIdentifier(); + transactionId = transaction.getIdentifier(); this.clientVersion = clientVersion; } private CohortEntry(final ShardDataTreeCohort cohort, final short clientVersion) { this.cohort = requireNonNull(cohort); - this.transactionId = cohort.getIdentifier(); - this.transaction = null; + transactionId = cohort.getIdentifier(); + transaction = null; this.clientVersion = clientVersion; } diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/CompositeDataTreeCohort.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/CompositeDataTreeCohort.java index bca00ebc4a..f9f3022dab 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/CompositeDataTreeCohort.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/CompositeDataTreeCohort.java @@ -24,7 +24,6 @@ import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import java.util.AbstractMap.SimpleImmutableEntry; import java.util.ArrayList; import java.util.Collection; -import java.util.Collections; import java.util.Iterator; import java.util.List; import java.util.Map.Entry; @@ -36,7 +35,7 @@ import org.eclipse.jdt.annotation.NonNull; import org.opendaylight.controller.cluster.access.concepts.TransactionIdentifier; import org.opendaylight.controller.cluster.datastore.DataTreeCohortActor.CanCommit; import org.opendaylight.controller.cluster.datastore.DataTreeCohortActor.Success; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidate; +import org.opendaylight.yangtools.yang.data.tree.api.DataTreeCandidate; import org.opendaylight.yangtools.yang.model.api.SchemaContext; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -48,7 +47,6 @@ import scala.concurrent.Future; *

    * It tracks current operation and list of cohorts which successfuly finished previous phase in * case, if abort is necessary to invoke it only on cohort steps which are still active. - * */ class CompositeDataTreeCohort { private static final Logger LOG = LoggerFactory.getLogger(CompositeDataTreeCohort.class); @@ -92,7 +90,7 @@ class CompositeDataTreeCohort { ABORTED } - static final Recover EXCEPTION_TO_MESSAGE = new Recover() { + static final Recover EXCEPTION_TO_MESSAGE = new Recover<>() { @Override public Failure recover(final Throwable error) { return new Failure(error); @@ -105,13 +103,13 @@ class CompositeDataTreeCohort { private final Executor callbackExecutor; private final Timeout timeout; - private @NonNull List successfulFromPrevious = Collections.emptyList(); + private @NonNull List successfulFromPrevious = List.of(); private State state = State.IDLE; CompositeDataTreeCohort(final DataTreeCohortActorRegistry registry, final TransactionIdentifier transactionID, final SchemaContext schema, final Executor callbackExecutor, final Timeout timeout) { this.registry = requireNonNull(registry); - this.txId = requireNonNull(transactionID); + txId = requireNonNull(transactionID); this.schema = requireNonNull(schema); this.callbackExecutor = requireNonNull(callbackExecutor); this.timeout = requireNonNull(timeout); @@ -135,7 +133,7 @@ class CompositeDataTreeCohort { throw new IllegalStateException("Unhandled state " + state); } - successfulFromPrevious = Collections.emptyList(); + successfulFromPrevious = List.of(); state = State.IDLE; } @@ -149,7 +147,7 @@ class CompositeDataTreeCohort { final List messages = registry.createCanCommitMessages(txId, tip, schema); LOG.debug("{}: canCommit - messages: {}", txId, messages); if (messages.isEmpty()) { - successfulFromPrevious = Collections.emptyList(); + successfulFromPrevious = List.of(); changeStateFrom(State.IDLE, State.CAN_COMMIT_SUCCESSFUL); return Optional.empty(); } @@ -242,12 +240,11 @@ class CompositeDataTreeCohort { // FB issues violation for passing null to CompletableFuture#complete but it is valid and necessary when the // generic type is Void. - @SuppressFBWarnings(value = { "NP_NONNULL_PARAM_VIOLATION", "UPM_UNCALLED_PRIVATE_METHOD" }, - justification = "https://github.com/spotbugs/spotbugs/issues/811") + @SuppressFBWarnings(value = "NP_NONNULL_PARAM_VIOLATION") private void processResponses(final Throwable failure, final Iterable results, final State currentState, final State afterState, final CompletableFuture resultFuture) { if (failure != null) { - successfulFromPrevious = Collections.emptyList(); + successfulFromPrevious = List.of(); resultFuture.completeExceptionally(failure); return; } @@ -274,7 +271,7 @@ class CompositeDataTreeCohort { firstEx.addSuppressed(it.next().cause()); } - successfulFromPrevious = Collections.emptyList(); + successfulFromPrevious = List.of(); resultFuture.completeExceptionally(firstEx); } else { successfulFromPrevious = successful; diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/DOMDataTreeCandidateTO.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/DOMDataTreeCandidateTO.java index a8a0124fcd..88877bc36a 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/DOMDataTreeCandidateTO.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/DOMDataTreeCandidateTO.java @@ -12,7 +12,7 @@ import static java.util.Objects.requireNonNull; import com.google.common.base.MoreObjects; import org.opendaylight.mdsal.dom.api.DOMDataTreeCandidate; import org.opendaylight.mdsal.dom.api.DOMDataTreeIdentifier; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidateNode; +import org.opendaylight.yangtools.yang.data.tree.api.DataTreeCandidateNode; final class DOMDataTreeCandidateTO implements DOMDataTreeCandidate { diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/DataTreeChangeListenerProxy.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/DataTreeChangeListenerProxy.java index 0268b8e36c..37479871c7 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/DataTreeChangeListenerProxy.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/DataTreeChangeListenerProxy.java @@ -14,7 +14,6 @@ import akka.actor.ActorSelection; import akka.actor.PoisonPill; import akka.dispatch.OnComplete; import com.google.common.annotations.VisibleForTesting; -import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import org.checkerframework.checker.lock.qual.GuardedBy; import org.opendaylight.controller.cluster.datastore.exceptions.LocalShardNotFoundException; import org.opendaylight.controller.cluster.datastore.messages.CloseDataTreeNotificationListenerRegistration; @@ -87,8 +86,6 @@ final class DataTreeChangeListenerProxy ext }, actorUtils.getClientDispatcher()); } - @SuppressFBWarnings(value = "UPM_UNCALLED_PRIVATE_METHOD", - justification = "https://github.com/spotbugs/spotbugs/issues/811") private void setListenerRegistrationActor(final ActorSelection actor) { if (actor == null) { LOG.debug("{}: Ignoring null actor on {}", logContext(), this); @@ -106,8 +103,6 @@ final class DataTreeChangeListenerProxy ext actor.tell(CloseDataTreeNotificationListenerRegistration.getInstance(), null); } - @SuppressFBWarnings(value = "UPM_UNCALLED_PRIVATE_METHOD", - justification = "https://github.com/spotbugs/spotbugs/issues/811") private void doRegistration(final ActorRef shard) { Future future = actorUtils.executeOperationAsync(shard, @@ -115,7 +110,7 @@ final class DataTreeChangeListenerProxy ext getInstance() instanceof ClusteredDOMDataTreeChangeListener), actorUtils.getDatastoreContext().getShardInitializationTimeout()); - future.onComplete(new OnComplete() { + future.onComplete(new OnComplete<>() { @Override public void onComplete(final Throwable failure, final Object result) { if (failure != null) { 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 9c0d1ca569..feeb9f5e9e 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 @@ -14,7 +14,6 @@ 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.MoreExecutors; -import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import java.util.Collection; import java.util.HashMap; import java.util.Map; @@ -208,15 +207,11 @@ final class DataTreeCohortActor extends AbstractUntypedActor { }, callbackExecutor); } - @SuppressFBWarnings(value = "UPM_UNCALLED_PRIVATE_METHOD", - justification = "https://github.com/spotbugs/spotbugs/issues/811") private void failed(final TransactionIdentifier txId, final ActorRef sender, final Throwable failure) { currentStateMap.remove(txId); sender.tell(new Status.Failure(failure), getSelf()); } - @SuppressFBWarnings(value = "UPM_UNCALLED_PRIVATE_METHOD", - justification = "https://github.com/spotbugs/spotbugs/issues/811") private void success(final TransactionIdentifier txId, final ActorRef sender, final S nextStep) { currentStateMap.computeIfPresent(txId, (key, behaviour) -> nextBehaviour(txId, nextStep)); sender.tell(new Success(getSelf(), txId), getSelf()); diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/DataTreeCohortActorRegistry.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/DataTreeCohortActorRegistry.java index 3ff6a9f0e6..f213cc7588 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/DataTreeCohortActorRegistry.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/DataTreeCohortActorRegistry.java @@ -30,9 +30,9 @@ import org.opendaylight.mdsal.dom.spi.RegistrationTreeNode; import org.opendaylight.mdsal.dom.spi.RegistrationTreeSnapshot; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidate; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidateNode; -import org.opendaylight.yangtools.yang.data.api.schema.tree.ModificationType; +import org.opendaylight.yangtools.yang.data.tree.api.DataTreeCandidate; +import org.opendaylight.yangtools.yang.data.tree.api.DataTreeCandidateNode; +import org.opendaylight.yangtools.yang.data.tree.api.ModificationType; import org.opendaylight.yangtools.yang.model.api.SchemaContext; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/DataTreeCohortRegistrationProxy.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/DataTreeCohortRegistrationProxy.java index e5f4ceaa7e..8012a2dcb7 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/DataTreeCohortRegistrationProxy.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/DataTreeCohortRegistrationProxy.java @@ -13,7 +13,6 @@ import akka.actor.ActorRef; import akka.dispatch.OnComplete; import akka.pattern.Patterns; import akka.util.Timeout; -import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import java.util.concurrent.TimeUnit; import org.checkerframework.checker.lock.qual.GuardedBy; import org.opendaylight.controller.cluster.datastore.exceptions.LocalShardNotFoundException; @@ -66,8 +65,6 @@ public class DataTreeCohortRegistrationProxy }, actorUtils.getClientDispatcher()); } - @SuppressFBWarnings(value = "UPM_UNCALLED_PRIVATE_METHOD", - justification = "https://github.com/spotbugs/spotbugs/issues/811") private synchronized void performRegistration(final ActorRef shard) { if (isClosed()) { return; @@ -75,7 +72,7 @@ public class DataTreeCohortRegistrationProxy cohortRegistry = shard; Future future = Patterns.ask(shard, new DataTreeCohortActorRegistry.RegisterCohort(subtree, actor), TIMEOUT); - future.onComplete(new OnComplete() { + future.onComplete(new OnComplete<>() { @Override public void onComplete(final Throwable failure, final Object val) { diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/DefaultShardDataTreeChangeListenerPublisher.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/DefaultShardDataTreeChangeListenerPublisher.java index 720aadb175..1b8ed12fed 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/DefaultShardDataTreeChangeListenerPublisher.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/DefaultShardDataTreeChangeListenerPublisher.java @@ -7,7 +7,7 @@ */ package org.opendaylight.controller.cluster.datastore; -import java.util.Collection; +import java.util.List; import java.util.Optional; import java.util.function.Consumer; import org.opendaylight.mdsal.dom.api.DOMDataTreeChangeListener; @@ -15,7 +15,7 @@ import org.opendaylight.mdsal.dom.spi.AbstractDOMDataTreeChangeListenerRegistrat import org.opendaylight.mdsal.dom.spi.store.AbstractDOMStoreTreeChangePublisher; import org.opendaylight.yangtools.concepts.ListenerRegistration; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidate; +import org.opendaylight.yangtools.yang.data.tree.api.DataTreeCandidate; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -47,7 +47,7 @@ final class DefaultShardDataTreeChangeListenerPublisher extends AbstractDOMStore @Override protected void notifyListener(final AbstractDOMDataTreeChangeListenerRegistration registration, - final Collection changes) { + final List changes) { LOG.debug("{}: notifyListener: listener: {}", logContext, registration.getInstance()); registration.getInstance().onDataTreeChanged(changes); } diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ForwardingDataTreeChangeListener.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ForwardingDataTreeChangeListener.java index 82a30b6c40..dca9c0773e 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ForwardingDataTreeChangeListener.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ForwardingDataTreeChangeListener.java @@ -11,12 +11,12 @@ import static java.util.Objects.requireNonNull; import akka.actor.ActorRef; import akka.actor.ActorSelection; -import java.util.Collection; +import java.util.List; import org.eclipse.jdt.annotation.Nullable; import org.opendaylight.controller.cluster.datastore.messages.DataTreeChanged; import org.opendaylight.controller.cluster.datastore.messages.OnInitialData; import org.opendaylight.mdsal.dom.api.DOMDataTreeChangeListener; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidate; +import org.opendaylight.yangtools.yang.data.tree.api.DataTreeCandidate; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -37,7 +37,7 @@ final class ForwardingDataTreeChangeListener implements DOMDataTreeChangeListene } @Override - public void onDataTreeChanged(final Collection changes) { + public void onDataTreeChanged(final List changes) { LOG.debug("Sending DataTreeChanged to {}", actor); actor.tell(new DataTreeChanged(changes), sendingActor); } diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/FrontendReadWriteTransaction.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/FrontendReadWriteTransaction.java index 4bd2a57257..85bee6833d 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/FrontendReadWriteTransaction.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/FrontendReadWriteTransaction.java @@ -43,8 +43,8 @@ import org.opendaylight.controller.cluster.access.concepts.RuntimeRequestExcepti import org.opendaylight.controller.cluster.access.concepts.TransactionIdentifier; import org.opendaylight.controller.cluster.access.concepts.UnsupportedRequestException; import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidate; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeModification; +import org.opendaylight.yangtools.yang.data.tree.api.DataTreeCandidate; +import org.opendaylight.yangtools.yang.data.tree.api.DataTreeModification; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -100,7 +100,7 @@ final class FrontendReadWriteTransaction extends FrontendTransaction { Ready(final ShardDataTreeCohort readyCohort) { this.readyCohort = requireNonNull(readyCohort); - this.stage = CommitStage.READY; + stage = CommitStage.READY; } @Override @@ -163,13 +163,13 @@ final class FrontendReadWriteTransaction extends FrontendTransaction { private FrontendReadWriteTransaction(final AbstractFrontendHistory history, final TransactionIdentifier id, final ReadWriteShardDataTreeTransaction transaction) { super(history, id); - this.state = new Open(transaction); + state = new Open(transaction); } private FrontendReadWriteTransaction(final AbstractFrontendHistory history, final TransactionIdentifier id, final DataTreeModification mod) { super(history, id); - this.state = new Sealed(mod); + state = new Sealed(mod); } static FrontendReadWriteTransaction createOpen(final AbstractFrontendHistory history, diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/LocalFrontendHistory.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/LocalFrontendHistory.java index 3125ed651a..8226ac3c75 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/LocalFrontendHistory.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/LocalFrontendHistory.java @@ -18,7 +18,7 @@ import java.util.SortedSet; import org.opendaylight.controller.cluster.access.concepts.LocalHistoryIdentifier; import org.opendaylight.controller.cluster.access.concepts.TransactionIdentifier; import org.opendaylight.controller.cluster.datastore.utils.MutableUnsignedLongSet; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeModification; +import org.opendaylight.yangtools.yang.data.tree.api.DataTreeModification; /** * Chained transaction specialization of {@link AbstractFrontendHistory}. It prevents concurrent open transactions. diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/LocalThreePhaseCommitCohort.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/LocalThreePhaseCommitCohort.java index ac279b7e99..6b813c4578 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/LocalThreePhaseCommitCohort.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/LocalThreePhaseCommitCohort.java @@ -21,7 +21,7 @@ import org.opendaylight.controller.cluster.datastore.messages.ReadyLocalTransact import org.opendaylight.controller.cluster.datastore.utils.ActorUtils; import org.opendaylight.mdsal.dom.spi.store.DOMStoreThreePhaseCommitCohort; import org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeModification; +import org.opendaylight.yangtools.yang.data.tree.api.DataTreeModification; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import scala.concurrent.Future; @@ -59,7 +59,7 @@ class LocalThreePhaseCommitCohort implements DOMStoreThreePhaseCommitCohort { this.leader = requireNonNull(leader); this.transaction = requireNonNull(transaction); this.operationError = requireNonNull(operationError); - this.modification = null; + modification = null; } private Future initiateCommit(final boolean immediate, @@ -95,7 +95,7 @@ class LocalThreePhaseCommitCohort implements DOMStoreThreePhaseCommitCohort { Future initiateDirectCommit() { final Future messageFuture = initiateCommit(true, Optional.empty()); - messageFuture.onComplete(new OnComplete() { + messageFuture.onComplete(new OnComplete<>() { @Override public void onComplete(final Throwable failure, final Object message) { if (failure != null) { diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/LocalTransactionChain.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/LocalTransactionChain.java index c995e1150d..fd3e8cd28b 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/LocalTransactionChain.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/LocalTransactionChain.java @@ -18,9 +18,9 @@ import org.opendaylight.mdsal.dom.spi.store.DOMStoreReadWriteTransaction; import org.opendaylight.mdsal.dom.spi.store.DOMStoreThreePhaseCommitCohort; import org.opendaylight.mdsal.dom.spi.store.DOMStoreWriteTransaction; import org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeModification; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeSnapshot; -import org.opendaylight.yangtools.yang.data.api.schema.tree.ReadOnlyDataTree; +import org.opendaylight.yangtools.yang.data.tree.api.DataTreeModification; +import org.opendaylight.yangtools.yang.data.tree.api.DataTreeSnapshot; +import org.opendaylight.yangtools.yang.data.tree.api.ReadOnlyDataTree; /** * Transaction chain instantiated on top of a locally-available DataTree. It does not instantiate @@ -68,23 +68,24 @@ final class LocalTransactionChain extends AbstractSnapshotBackedTransactionChain } @Override - public DOMStoreReadTransaction newReadOnlyTransaction(TransactionIdentifier identifier) { + public DOMStoreReadTransaction newReadOnlyTransaction(final TransactionIdentifier identifier) { return super.newReadOnlyTransaction(identifier); } @Override - public DOMStoreReadWriteTransaction newReadWriteTransaction(TransactionIdentifier identifier) { + public DOMStoreReadWriteTransaction newReadWriteTransaction(final TransactionIdentifier identifier) { return super.newReadWriteTransaction(identifier); } @Override - public DOMStoreWriteTransaction newWriteOnlyTransaction(TransactionIdentifier identifier) { + public DOMStoreWriteTransaction newWriteOnlyTransaction(final TransactionIdentifier identifier) { return super.newWriteOnlyTransaction(identifier); } @SuppressWarnings({"unchecked", "checkstyle:IllegalCatch"}) @Override - public LocalThreePhaseCommitCohort onTransactionReady(DOMStoreWriteTransaction tx, Exception operationError) { + public LocalThreePhaseCommitCohort onTransactionReady(final DOMStoreWriteTransaction tx, + final Exception operationError) { checkArgument(tx instanceof SnapshotBackedWriteTransaction); if (operationError != null) { return new LocalChainThreePhaseCommitCohort((SnapshotBackedWriteTransaction)tx, @@ -102,23 +103,25 @@ final class LocalTransactionChain extends AbstractSnapshotBackedTransactionChain private class LocalChainThreePhaseCommitCohort extends LocalThreePhaseCommitCohort { - protected LocalChainThreePhaseCommitCohort(SnapshotBackedWriteTransaction transaction, - DataTreeModification modification, Exception operationError) { + protected LocalChainThreePhaseCommitCohort( + final SnapshotBackedWriteTransaction transaction, + final DataTreeModification modification, final Exception operationError) { super(parent.getActorUtils(), leader, transaction, modification, operationError); } - protected LocalChainThreePhaseCommitCohort(SnapshotBackedWriteTransaction transaction, - Exception operationError) { + protected LocalChainThreePhaseCommitCohort( + final SnapshotBackedWriteTransaction transaction, + final Exception operationError) { super(parent.getActorUtils(), leader, transaction, operationError); } @Override - protected void transactionAborted(SnapshotBackedWriteTransaction transaction) { + protected void transactionAborted(final SnapshotBackedWriteTransaction transaction) { onTransactionFailed(transaction, ABORTED); } @Override - protected void transactionCommitted(SnapshotBackedWriteTransaction transaction) { + protected void transactionCommitted(final SnapshotBackedWriteTransaction transaction) { onTransactionCommited(transaction); } } diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/LocalTransactionFactoryImpl.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/LocalTransactionFactoryImpl.java index 8c84449025..43f6320416 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/LocalTransactionFactoryImpl.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/LocalTransactionFactoryImpl.java @@ -20,8 +20,8 @@ import org.opendaylight.mdsal.dom.spi.store.DOMStoreWriteTransaction; import org.opendaylight.mdsal.dom.spi.store.SnapshotBackedTransactions; import org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction; import org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction.TransactionReadyPrototype; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeModification; -import org.opendaylight.yangtools.yang.data.api.schema.tree.ReadOnlyDataTree; +import org.opendaylight.yangtools.yang.data.tree.api.DataTreeModification; +import org.opendaylight.yangtools.yang.data.tree.api.ReadOnlyDataTree; /** * {@link LocalTransactionFactory} for instantiating backing transactions which are @@ -47,17 +47,17 @@ final class LocalTransactionFactoryImpl extends TransactionReadyPrototype { ReadOnlyShardDataTreeTransaction(final ShardDataTreeTransactionParent parent, final TransactionIdentifier id, diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ReadWriteShardDataTreeTransaction.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ReadWriteShardDataTreeTransaction.java index f28d0d08b3..7d0cbb0cd6 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ReadWriteShardDataTreeTransaction.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ReadWriteShardDataTreeTransaction.java @@ -11,7 +11,7 @@ import com.google.common.base.Preconditions; import java.util.Optional; import java.util.SortedSet; import org.opendaylight.controller.cluster.access.concepts.TransactionIdentifier; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeModification; +import org.opendaylight.yangtools.yang.data.tree.api.DataTreeModification; public final class ReadWriteShardDataTreeTransaction extends AbstractShardDataTreeTransaction { @@ -20,7 +20,7 @@ public final class ReadWriteShardDataTreeTransaction extends AbstractShardDataTr super(parent, id, modification); } - ShardDataTreeCohort ready(Optional> participatingShardNames) { + ShardDataTreeCohort ready(final Optional> participatingShardNames) { Preconditions.checkState(close(), "Transaction is already closed"); return getParent().finishTransaction(this, participatingShardNames); } diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/RemoteTransactionContextSupport.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/RemoteTransactionContextSupport.java index 333d11b4f0..b32ef45275 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/RemoteTransactionContextSupport.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/RemoteTransactionContextSupport.java @@ -14,7 +14,6 @@ import akka.actor.ActorSelection; import akka.dispatch.OnComplete; import akka.pattern.AskTimeoutException; import akka.util.Timeout; -import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import java.util.concurrent.TimeUnit; import org.opendaylight.controller.cluster.access.concepts.TransactionIdentifier; import org.opendaylight.controller.cluster.datastore.exceptions.NoShardLeaderException; @@ -100,7 +99,7 @@ final class RemoteTransactionContextSupport { * Sets the target primary shard and initiates a CreateTransaction try. */ void setPrimaryShard(final PrimaryShardInfo newPrimaryShardInfo) { - this.primaryShardInfo = newPrimaryShardInfo; + primaryShardInfo = newPrimaryShardInfo; if (getTransactionType() == TransactionType.WRITE_ONLY && getActorUtils().getDatastoreContext().isWriteOnlyTransactionOptimizationsEnabled()) { @@ -131,7 +130,7 @@ final class RemoteTransactionContextSupport { Future createTxFuture = getActorUtils().executeOperationAsync( primaryShardInfo.getPrimaryShardActor(), serializedCreateMessage, createTxMessageTimeout); - createTxFuture.onComplete(new OnComplete() { + createTxFuture.onComplete(new OnComplete<>() { @Override public void onComplete(final Throwable failure, final Object response) { onCreateTransactionComplete(failure, response); @@ -142,7 +141,7 @@ final class RemoteTransactionContextSupport { private void tryFindPrimaryShard() { LOG.debug("Tx {} Retrying findPrimaryShardAsync for shard {}", getIdentifier(), shardName); - this.primaryShardInfo = null; + primaryShardInfo = null; Future findPrimaryFuture = getActorUtils().findPrimaryShardAsync(shardName); findPrimaryFuture.onComplete(new OnComplete() { @Override @@ -152,11 +151,9 @@ final class RemoteTransactionContextSupport { }, getActorUtils().getClientDispatcher()); } - @SuppressFBWarnings(value = "UPM_UNCALLED_PRIVATE_METHOD", - justification = "https://github.com/spotbugs/spotbugs/issues/811") private void onFindPrimaryShardComplete(final Throwable failure, final PrimaryShardInfo newPrimaryShardInfo) { if (failure == null) { - this.primaryShardInfo = newPrimaryShardInfo; + primaryShardInfo = newPrimaryShardInfo; tryCreateTransaction(); } else { LOG.debug("Tx {}: Find primary for shard {} failed", getIdentifier(), shardName, failure); diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/RootDataTreeChangeListenerActor.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/RootDataTreeChangeListenerActor.java index 8322289618..5fef243479 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/RootDataTreeChangeListenerActor.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/RootDataTreeChangeListenerActor.java @@ -14,10 +14,12 @@ import akka.actor.ActorRef; import akka.actor.Props; import com.google.common.collect.Iterables; import java.util.ArrayDeque; +import java.util.ArrayList; import java.util.Collection; import java.util.Deque; import java.util.Iterator; import java.util.LinkedHashMap; +import java.util.List; import java.util.Map; import org.opendaylight.controller.cluster.datastore.messages.DataTreeChanged; import org.opendaylight.controller.cluster.datastore.messages.OnInitialData; @@ -27,10 +29,10 @@ import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdent import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode; import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; import org.opendaylight.yangtools.yang.data.api.schema.builder.DataContainerNodeBuilder; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidate; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidateNodes; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidates; import org.opendaylight.yangtools.yang.data.impl.schema.Builders; +import org.opendaylight.yangtools.yang.data.tree.api.DataTreeCandidate; +import org.opendaylight.yangtools.yang.data.tree.spi.DataTreeCandidateNodes; +import org.opendaylight.yangtools.yang.data.tree.spi.DataTreeCandidates; import org.opendaylight.yangtools.yang.model.api.SchemaContext; final class RootDataTreeChangeListenerActor extends DataTreeChangeListenerActor { @@ -95,7 +97,10 @@ final class RootDataTreeChangeListenerActor extends DataTreeChangeListenerActor * Construct an overall NormalizedNode view of the entire datastore by combining first-level children from all * reported initial state reports, report that node as written and then report any additional deltas. */ - final Deque initialChanges = new ArrayDeque<>(); + final List initialChanges = new ArrayList<>(); + // Reserve first item + initialChanges.add(null); + final DataContainerNodeBuilder rootBuilder = Builders.containerBuilder() .withNodeIdentifier(NodeIdentifier.create(SchemaContext.NAME)); for (Object message : initialMessages.values()) { @@ -106,7 +111,7 @@ final class RootDataTreeChangeListenerActor extends DataTreeChangeListenerActor final Iterator it = changes.iterator(); initial = it.next(); // Append to changes to report as initial. This should not be happening (often?). - it.forEachRemaining(initialChanges::addLast); + it.forEachRemaining(initialChanges::add); } else { initial = Iterables.get(changes, 0); } @@ -119,8 +124,8 @@ final class RootDataTreeChangeListenerActor extends DataTreeChangeListenerActor // We will not be intercepting any other messages, allow initial state to be reclaimed as soon as possible initialMessages = null; - // Prepend combined initial changed and report initial changes and clear the map - initialChanges.addFirst(DataTreeCandidates.newDataTreeCandidate(YangInstanceIdentifier.empty(), + // Replace first element with the combined initial change, report initial changes and clear the map + initialChanges.set(0, DataTreeCandidates.newDataTreeCandidate(YangInstanceIdentifier.empty(), DataTreeCandidateNodes.written(rootBuilder.build()))); super.dataTreeChanged(new DataTreeChanged(initialChanges)); diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/RootDataTreeChangeListenerProxy.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/RootDataTreeChangeListenerProxy.java index 6f4a5f1d06..704d6dd11e 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/RootDataTreeChangeListenerProxy.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/RootDataTreeChangeListenerProxy.java @@ -16,7 +16,6 @@ import akka.actor.ActorSelection; import akka.actor.PoisonPill; import akka.dispatch.OnComplete; import com.google.common.collect.Maps; -import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -102,8 +101,6 @@ final class RootDataTreeChangeListenerProxy } } - @SuppressFBWarnings(value = "UPM_UNCALLED_PRIVATE_METHOD", - justification = "https://github.com/spotbugs/spotbugs/issues/811") private synchronized void onFindLocalShardComplete(final String shardName, final Throwable failure, final ActorRef shard) { if (state instanceof ResolveShards) { @@ -172,8 +169,6 @@ final class RootDataTreeChangeListenerProxy } } - @SuppressFBWarnings(value = "UPM_UNCALLED_PRIVATE_METHOD", - justification = "https://github.com/spotbugs/spotbugs/issues/811") private synchronized void onShardSubscribed(final String shardName, final Throwable failure, final Object result) { if (state instanceof Subscribed) { final Subscribed current = (Subscribed) state; 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 a4d524299b..6ce7a8e83a 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 @@ -30,6 +30,7 @@ import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSet; import com.google.common.collect.Range; +import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import java.io.IOException; import java.util.Arrays; import java.util.Collection; @@ -112,9 +113,9 @@ import org.opendaylight.controller.cluster.raft.messages.ServerRemoved; import org.opendaylight.controller.cluster.raft.protobuff.client.messages.Payload; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.distributed.datastore.provider.rev140612.DataStoreProperties.ExportOnRecovery; import org.opendaylight.yangtools.concepts.Identifier; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTree; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataValidationFailedException; -import org.opendaylight.yangtools.yang.data.api.schema.tree.TreeType; +import org.opendaylight.yangtools.yang.data.tree.api.DataTree; +import org.opendaylight.yangtools.yang.data.tree.api.DataValidationFailedException; +import org.opendaylight.yangtools.yang.data.tree.api.TreeType; import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext; import org.opendaylight.yangtools.yang.model.api.EffectiveModelContextProvider; import scala.concurrent.duration.FiniteDuration; @@ -217,6 +218,7 @@ public class Shard extends RaftActor { private final ActorRef exportActor; + @SuppressFBWarnings(value = "MC_OVERRIDABLE_METHOD_CALL_IN_CONSTRUCTOR", justification = "Akka class design") Shard(final AbstractBuilder builder) { super(builder.getId().toString(), builder.getPeerAddresses(), Optional.of(builder.getDatastoreContext().getShardRaftConfig()), DataStoreVersions.CURRENT_VERSION); 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 d9520c5d5c..d18c0ba611 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 @@ -38,7 +38,7 @@ import org.opendaylight.controller.cluster.datastore.messages.ReadyTransactionRe import org.opendaylight.controller.cluster.datastore.messages.VersionedExternalizableMessage; import org.opendaylight.controller.cluster.datastore.utils.AbstractBatchedModificationsCursor; import org.opendaylight.yangtools.concepts.Identifier; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidate; +import org.opendaylight.yangtools.yang.data.tree.api.DataTreeCandidate; import org.slf4j.Logger; /** 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 4aa7a7b786..2a0195d43b 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 @@ -78,20 +78,20 @@ import org.opendaylight.yangtools.concepts.Identifier; import org.opendaylight.yangtools.concepts.ListenerRegistration; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; -import org.opendaylight.yangtools.yang.data.api.schema.tree.ConflictingModificationAppliedException; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTree; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidate; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidateTip; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidates; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeConfiguration; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeModification; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeSnapshot; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeTip; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataValidationFailedException; -import org.opendaylight.yangtools.yang.data.api.schema.tree.ModificationType; -import org.opendaylight.yangtools.yang.data.api.schema.tree.TreeType; import org.opendaylight.yangtools.yang.data.codec.binfmt.NormalizedNodeStreamVersion; -import org.opendaylight.yangtools.yang.data.impl.schema.tree.InMemoryDataTreeFactory; +import org.opendaylight.yangtools.yang.data.tree.api.ConflictingModificationAppliedException; +import org.opendaylight.yangtools.yang.data.tree.api.DataTree; +import org.opendaylight.yangtools.yang.data.tree.api.DataTreeCandidate; +import org.opendaylight.yangtools.yang.data.tree.api.DataTreeCandidateTip; +import org.opendaylight.yangtools.yang.data.tree.api.DataTreeConfiguration; +import org.opendaylight.yangtools.yang.data.tree.api.DataTreeModification; +import org.opendaylight.yangtools.yang.data.tree.api.DataTreeSnapshot; +import org.opendaylight.yangtools.yang.data.tree.api.DataTreeTip; +import org.opendaylight.yangtools.yang.data.tree.api.DataValidationFailedException; +import org.opendaylight.yangtools.yang.data.tree.api.ModificationType; +import org.opendaylight.yangtools.yang.data.tree.api.TreeType; +import org.opendaylight.yangtools.yang.data.tree.impl.di.InMemoryDataTreeFactory; +import org.opendaylight.yangtools.yang.data.tree.spi.DataTreeCandidates; import org.opendaylight.yangtools.yang.data.util.DataSchemaContextTree; import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext; import org.opendaylight.yangtools.yang.model.api.SchemaContext; diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardDataTreeChangeListenerPublisher.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardDataTreeChangeListenerPublisher.java index bfeb91f65b..ef1a4cd7f9 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardDataTreeChangeListenerPublisher.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardDataTreeChangeListenerPublisher.java @@ -12,7 +12,7 @@ import java.util.function.Consumer; import org.opendaylight.mdsal.dom.api.DOMDataTreeChangeListener; import org.opendaylight.yangtools.concepts.ListenerRegistration; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidate; +import org.opendaylight.yangtools.yang.data.tree.api.DataTreeCandidate; /** * Interface for a class that generates and publishes notifications for DataTreeChangeListeners. diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardDataTreeChangeListenerPublisherActorProxy.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardDataTreeChangeListenerPublisherActorProxy.java index d737b55437..381a52d9d4 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardDataTreeChangeListenerPublisherActorProxy.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardDataTreeChangeListenerPublisherActorProxy.java @@ -15,7 +15,7 @@ import java.util.function.Consumer; import org.opendaylight.mdsal.dom.api.DOMDataTreeChangeListener; import org.opendaylight.yangtools.concepts.ListenerRegistration; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidate; +import org.opendaylight.yangtools.yang.data.tree.api.DataTreeCandidate; /** * Implementation of ShardDataTreeChangeListenerPublisher that offloads the generation and publication of data tree diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardDataTreeChangePublisherActor.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardDataTreeChangePublisherActor.java index e099d0bc92..6b71619742 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardDataTreeChangePublisherActor.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardDataTreeChangePublisherActor.java @@ -15,7 +15,7 @@ import java.util.function.Consumer; import org.opendaylight.mdsal.dom.api.DOMDataTreeChangeListener; import org.opendaylight.yangtools.concepts.ListenerRegistration; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidate; +import org.opendaylight.yangtools.yang.data.tree.api.DataTreeCandidate; /** * Actor used to generate and publish DataTreeChange notifications. diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardDataTreeCohort.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardDataTreeCohort.java index 581768c0ed..f73e73323e 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardDataTreeCohort.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardDataTreeCohort.java @@ -16,9 +16,9 @@ import java.util.Optional; import java.util.SortedSet; import org.opendaylight.controller.cluster.access.concepts.TransactionIdentifier; import org.opendaylight.yangtools.concepts.Identifiable; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidate; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidateTip; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeModification; +import org.opendaylight.yangtools.yang.data.tree.api.DataTreeCandidate; +import org.opendaylight.yangtools.yang.data.tree.api.DataTreeCandidateTip; +import org.opendaylight.yangtools.yang.data.tree.api.DataTreeModification; @VisibleForTesting public abstract class ShardDataTreeCohort implements Identifiable { diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardDataTreeNotificationPublisher.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardDataTreeNotificationPublisher.java index 4dbd818488..373a130004 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardDataTreeNotificationPublisher.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardDataTreeNotificationPublisher.java @@ -8,7 +8,7 @@ package org.opendaylight.controller.cluster.datastore; import java.util.concurrent.TimeUnit; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidate; +import org.opendaylight.yangtools.yang.data.tree.api.DataTreeCandidate; /** * Interface for a class the publishes data tree notifications. diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardDataTreeNotificationPublisherActor.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardDataTreeNotificationPublisherActor.java index c22bc3bd98..095a542f6c 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardDataTreeNotificationPublisherActor.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardDataTreeNotificationPublisherActor.java @@ -10,7 +10,7 @@ package org.opendaylight.controller.cluster.datastore; import com.google.common.base.Stopwatch; import java.util.concurrent.TimeUnit; import org.opendaylight.controller.cluster.common.actor.AbstractUntypedActor; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidate; +import org.opendaylight.yangtools.yang.data.tree.api.DataTreeCandidate; /** * Actor used to generate and publish data tree notifications. This is used to offload the potentially @@ -40,7 +40,7 @@ public class ShardDataTreeNotificationPublisherActor newCallback) { checkState(State.CAN_COMMIT_COMPLETE); - this.callback = requireNonNull(newCallback); + callback = requireNonNull(newCallback); state = State.PRE_COMMIT_PENDING; if (nextFailure == null) { @@ -142,7 +142,7 @@ final class SimpleShardDataTreeCohort extends ShardDataTreeCohort { @Override public void commit(final FutureCallback newCallback) { checkState(State.PRE_COMMIT_COMPLETE); - this.callback = requireNonNull(newCallback); + callback = requireNonNull(newCallback); state = State.COMMIT_PENDING; if (nextFailure == null) { @@ -154,16 +154,16 @@ final class SimpleShardDataTreeCohort extends ShardDataTreeCohort { private FutureCallback switchState(final State newState) { @SuppressWarnings("unchecked") - final FutureCallback ret = (FutureCallback) this.callback; - this.callback = null; + final FutureCallback ret = (FutureCallback) callback; + callback = null; LOG.debug("Transaction {} changing state from {} to {}", transactionId, state, newState); - this.state = newState; + state = newState; return ret; } void setNewCandidate(final DataTreeCandidateTip dataTreeCandidate) { checkState(State.PRE_COMMIT_COMPLETE); - this.candidate = Verify.verifyNotNull(dataTreeCandidate); + candidate = verifyNotNull(dataTreeCandidate); } void successfulCanCommit() { @@ -217,7 +217,7 @@ final class SimpleShardDataTreeCohort extends ShardDataTreeCohort { void successfulPreCommit(final DataTreeCandidateTip dataTreeCandidate) { LOG.trace("Transaction {} prepared candidate {}", transaction, dataTreeCandidate); - this.candidate = Verify.verifyNotNull(dataTreeCandidate); + candidate = verifyNotNull(dataTreeCandidate); switchState(State.PRE_COMMIT_COMPLETE).onSuccess(dataTreeCandidate); } @@ -271,7 +271,7 @@ final class SimpleShardDataTreeCohort extends ShardDataTreeCohort { void reportFailure(final Exception cause) { if (nextFailure == null) { - this.nextFailure = requireNonNull(cause); + nextFailure = requireNonNull(cause); } else { LOG.debug("Transaction {} already has a set failure, not updating it", transactionId, cause); } diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/StandaloneFrontendHistory.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/StandaloneFrontendHistory.java index 0278c1d1e5..d26b23e9dc 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/StandaloneFrontendHistory.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/StandaloneFrontendHistory.java @@ -20,7 +20,7 @@ import org.opendaylight.controller.cluster.access.concepts.ClientIdentifier; import org.opendaylight.controller.cluster.access.concepts.LocalHistoryIdentifier; import org.opendaylight.controller.cluster.access.concepts.TransactionIdentifier; import org.opendaylight.controller.cluster.datastore.utils.MutableUnsignedLongSet; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeModification; +import org.opendaylight.yangtools.yang.data.tree.api.DataTreeModification; /** * Standalone transaction specialization of {@link AbstractFrontendHistory}. There can be multiple open transactions diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ThreePhaseCommitCohortProxy.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ThreePhaseCommitCohortProxy.java index 5f82584f85..cd79ad6f19 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ThreePhaseCommitCohortProxy.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ThreePhaseCommitCohortProxy.java @@ -17,7 +17,6 @@ import com.google.common.util.concurrent.Futures; import com.google.common.util.concurrent.ListenableFuture; import com.google.common.util.concurrent.MoreExecutors; import com.google.common.util.concurrent.SettableFuture; -import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import java.util.ArrayList; import java.util.Iterator; import java.util.List; @@ -143,8 +142,6 @@ public class ThreePhaseCommitCohortProxy extends AbstractThreePhaseCommitCohort< return returnFuture; } - @SuppressFBWarnings(value = "UPM_UNCALLED_PRIVATE_METHOD", - justification = "https://github.com/spotbugs/spotbugs/issues/811") private void finishCanCommit(final SettableFuture returnFuture) { LOG.debug("Tx {} finishCanCommit", transactionId); @@ -160,7 +157,7 @@ public class ThreePhaseCommitCohortProxy extends AbstractThreePhaseCommitCohort< final Iterator iterator = cohorts.iterator(); - final OnComplete onComplete = new OnComplete() { + final OnComplete onComplete = new OnComplete<>() { @Override public void onComplete(final Throwable failure, final Object response) { if (failure != null) { @@ -195,7 +192,7 @@ public class ThreePhaseCommitCohortProxy extends AbstractThreePhaseCommitCohort< sendCanCommitTransaction(iterator.next(), this); } else { LOG.debug("Tx {}: canCommit returning result: {}", transactionId, result); - returnFuture.set(Boolean.valueOf(result)); + returnFuture.set(result); } } diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/TransactionChainProxy.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/TransactionChainProxy.java index 4ef89b4684..0eded31e2e 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/TransactionChainProxy.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/TransactionChainProxy.java @@ -29,7 +29,7 @@ import org.opendaylight.mdsal.dom.spi.store.DOMStoreReadTransaction; import org.opendaylight.mdsal.dom.spi.store.DOMStoreReadWriteTransaction; import org.opendaylight.mdsal.dom.spi.store.DOMStoreTransactionChain; import org.opendaylight.mdsal.dom.spi.store.DOMStoreWriteTransaction; -import org.opendaylight.yangtools.yang.data.api.schema.tree.ReadOnlyDataTree; +import org.opendaylight.yangtools.yang.data.tree.api.ReadOnlyDataTree; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import scala.concurrent.Future; diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/TransactionContextFactory.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/TransactionContextFactory.java index 3944b04ef5..34770245e7 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/TransactionContextFactory.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/TransactionContextFactory.java @@ -16,7 +16,7 @@ import org.opendaylight.controller.cluster.access.concepts.TransactionIdentifier import org.opendaylight.controller.cluster.datastore.messages.PrimaryShardInfo; import org.opendaylight.controller.cluster.datastore.utils.ActorUtils; import org.opendaylight.mdsal.dom.spi.store.DOMStoreTransactionChain; -import org.opendaylight.yangtools.yang.data.api.schema.tree.ReadOnlyDataTree; +import org.opendaylight.yangtools.yang.data.tree.api.ReadOnlyDataTree; import scala.concurrent.Future; /** @@ -41,7 +41,7 @@ final class TransactionContextFactory extends AbstractTransactionContextFactory< } @Override - protected Future findPrimaryShard(final String shardName, TransactionIdentifier txId) { + protected Future findPrimaryShard(final String shardName, final TransactionIdentifier txId) { return getActorUtils().findPrimaryShardAsync(shardName); } diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/TransactionProxy.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/TransactionProxy.java index 16a979fa6a..da9789693c 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/TransactionProxy.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/TransactionProxy.java @@ -48,8 +48,8 @@ import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode; import org.opendaylight.yangtools.yang.data.api.schema.DataContainerChild; import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; import org.opendaylight.yangtools.yang.data.api.schema.builder.DataContainerNodeBuilder; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataValidationFailedException; import org.opendaylight.yangtools.yang.data.impl.schema.Builders; +import org.opendaylight.yangtools.yang.data.tree.api.DataValidationFailedException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import scala.concurrent.Future; diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/actors/JsonExportActor.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/actors/JsonExportActor.java index ccaa48b8d5..22849917eb 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/actors/JsonExportActor.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/actors/JsonExportActor.java @@ -29,11 +29,11 @@ import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNodeContainer; import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeWriter; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidate; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidateNode; -import org.opendaylight.yangtools.yang.data.api.schema.tree.ModificationType; import org.opendaylight.yangtools.yang.data.codec.gson.JSONCodecFactorySupplier; import org.opendaylight.yangtools.yang.data.codec.gson.JSONNormalizedNodeStreamWriter; +import org.opendaylight.yangtools.yang.data.tree.api.DataTreeCandidate; +import org.opendaylight.yangtools.yang.data.tree.api.DataTreeCandidateNode; +import org.opendaylight.yangtools.yang.data.tree.api.ModificationType; import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext; import org.opendaylight.yangtools.yang.model.util.SchemaInferenceStack; diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/config/Configuration.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/config/Configuration.java index 4325c7f268..70f2ccb69f 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/config/Configuration.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/config/Configuration.java @@ -19,6 +19,7 @@ public interface Configuration { /** * Returns all the shard names that belong on the member by the given name. */ + // FIXME: return Set here @NonNull Collection getMemberShardNames(@NonNull MemberName memberName); /** @@ -34,6 +35,7 @@ public interface Configuration { /** * Returns the member replicas for the given shard name. */ + // FIXME: return Set here @NonNull Collection getMembersFromShardName(@NonNull String shardName); /** @@ -54,6 +56,7 @@ public interface Configuration { /** * Returns a unique set of all member names configured for all shards. */ + // FIXME: return Set here Collection getUniqueMemberNamesForAllShards(); /* diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/config/ConfigurationImpl.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/config/ConfigurationImpl.java index 1ede88c3cb..d0e8d875f6 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/config/ConfigurationImpl.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/config/ConfigurationImpl.java @@ -11,18 +11,20 @@ import static java.util.Objects.requireNonNull; import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSet; +import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import java.util.ArrayList; import java.util.Collection; -import java.util.Collections; import java.util.HashMap; import java.util.HashSet; import java.util.List; import java.util.Map; +import java.util.Map.Entry; import java.util.Set; import org.opendaylight.controller.cluster.access.concepts.MemberName; import org.opendaylight.controller.cluster.datastore.shardstrategy.ShardStrategy; import org.opendaylight.controller.cluster.datastore.shardstrategy.ShardStrategyFactory; +// FIXME: Non-final for testing public class ConfigurationImpl implements Configuration { private volatile Map moduleConfigMap; @@ -35,16 +37,17 @@ public class ConfigurationImpl implements Configuration { this(new FileModuleShardConfigProvider(moduleShardsConfigPath, modulesConfigPath)); } + @SuppressFBWarnings(value = "MC_OVERRIDABLE_METHOD_CALL_IN_CONSTRUCTOR", justification = "Subclassed for testing") public ConfigurationImpl(final ModuleShardConfigProvider provider) { ImmutableMap.Builder mapBuilder = ImmutableMap.builder(); - for (Map.Entry e: provider.retrieveModuleConfigs(this).entrySet()) { + for (Entry e: provider.retrieveModuleConfigs(this).entrySet()) { mapBuilder.put(e.getKey(), e.getValue().build()); } - this.moduleConfigMap = mapBuilder.build(); + moduleConfigMap = mapBuilder.build(); - this.allShardNames = createAllShardNames(moduleConfigMap.values()); - this.namespaceToModuleName = createNamespaceToModuleName(moduleConfigMap.values()); + allShardNames = createAllShardNames(moduleConfigMap.values()); + namespaceToModuleName = createNamespaceToModuleName(moduleConfigMap.values()); } private static Set createAllShardNames(final Iterable moduleConfigs) { @@ -121,7 +124,7 @@ public class ConfigurationImpl implements Configuration { } } - return Collections.emptyList(); + return List.of(); } private static void checkNotNullShardName(final String shardName) { diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/messages/DataTreeChanged.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/messages/DataTreeChanged.java index 03ae771ca1..63f39519f5 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/messages/DataTreeChanged.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/messages/DataTreeChanged.java @@ -9,8 +9,8 @@ package org.opendaylight.controller.cluster.datastore.messages; import static java.util.Objects.requireNonNull; -import java.util.Collection; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidate; +import java.util.List; +import org.opendaylight.yangtools.yang.data.tree.api.DataTreeCandidate; /** * A message about a DataTree having been changed. The message is not @@ -19,9 +19,9 @@ import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidate; * candidate. */ public final class DataTreeChanged { - private final Collection changes; + private final List changes; - public DataTreeChanged(final Collection changes) { + public DataTreeChanged(final List changes) { this.changes = requireNonNull(changes); } @@ -30,7 +30,7 @@ public final class DataTreeChanged { * * @return Change events */ - public Collection getChanges() { + public List getChanges() { return changes; } } diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/messages/LocalPrimaryShardFound.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/messages/LocalPrimaryShardFound.java index e4b9174f1e..fc0df4a951 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/messages/LocalPrimaryShardFound.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/messages/LocalPrimaryShardFound.java @@ -11,7 +11,7 @@ import static java.util.Objects.requireNonNull; import org.apache.commons.lang3.ObjectUtils; import org.eclipse.jdt.annotation.NonNull; -import org.opendaylight.yangtools.yang.data.api.schema.tree.ReadOnlyDataTree; +import org.opendaylight.yangtools.yang.data.tree.api.ReadOnlyDataTree; /** * Local message sent in reply to FindPrimaryShard to indicate the primary shard is local to the caller. @@ -19,11 +19,11 @@ import org.opendaylight.yangtools.yang.data.api.schema.tree.ReadOnlyDataTree; * @author Thomas Pantelis */ public class LocalPrimaryShardFound { - private final String primaryPath; private final ReadOnlyDataTree localShardDataTree; - public LocalPrimaryShardFound(@NonNull String primaryPath, @NonNull ReadOnlyDataTree localShardDataTree) { + public LocalPrimaryShardFound(final @NonNull String primaryPath, + final @NonNull ReadOnlyDataTree localShardDataTree) { this.primaryPath = requireNonNull(primaryPath); this.localShardDataTree = requireNonNull(localShardDataTree); } diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/messages/PrimaryShardInfo.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/messages/PrimaryShardInfo.java index 1ca06216dd..c9d10a62e6 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/messages/PrimaryShardInfo.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/messages/PrimaryShardInfo.java @@ -12,7 +12,7 @@ import static java.util.Objects.requireNonNull; import akka.actor.ActorSelection; import java.util.Optional; import org.eclipse.jdt.annotation.NonNull; -import org.opendaylight.yangtools.yang.data.api.schema.tree.ReadOnlyDataTree; +import org.opendaylight.yangtools.yang.data.tree.api.ReadOnlyDataTree; /** * Local message DTO that contains information about the primary shard. @@ -24,17 +24,17 @@ public class PrimaryShardInfo { private final short primaryShardVersion; private final ReadOnlyDataTree localShardDataTree; - public PrimaryShardInfo(@NonNull ActorSelection primaryShardActor, short primaryShardVersion, - @NonNull ReadOnlyDataTree localShardDataTree) { + public PrimaryShardInfo(final @NonNull ActorSelection primaryShardActor, final short primaryShardVersion, + final @NonNull ReadOnlyDataTree localShardDataTree) { this.primaryShardActor = requireNonNull(primaryShardActor); this.primaryShardVersion = primaryShardVersion; this.localShardDataTree = requireNonNull(localShardDataTree); } - public PrimaryShardInfo(@NonNull ActorSelection primaryShardActor, short primaryShardVersion) { + public PrimaryShardInfo(final @NonNull ActorSelection primaryShardActor, final short primaryShardVersion) { this.primaryShardActor = requireNonNull(primaryShardActor); this.primaryShardVersion = primaryShardVersion; - this.localShardDataTree = null; + localShardDataTree = null; } /** diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/messages/ReadyLocalTransaction.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/messages/ReadyLocalTransaction.java index d2957a4a54..7cff030eb9 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/messages/ReadyLocalTransaction.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/messages/ReadyLocalTransaction.java @@ -14,7 +14,7 @@ import java.util.SortedSet; import org.eclipse.jdt.annotation.Nullable; import org.opendaylight.controller.cluster.access.concepts.TransactionIdentifier; import org.opendaylight.controller.cluster.datastore.DataStoreVersions; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeModification; +import org.opendaylight.yangtools.yang.data.tree.api.DataTreeModification; /** * Message notifying the shard leader to apply modifications which have been @@ -33,7 +33,7 @@ public final class ReadyLocalTransaction { private short remoteVersion = DataStoreVersions.CURRENT_VERSION; public ReadyLocalTransaction(final TransactionIdentifier transactionId, final DataTreeModification modification, - final boolean doCommitOnReady, Optional> participatingShardNames) { + final boolean doCommitOnReady, final Optional> participatingShardNames) { this.transactionId = requireNonNull(transactionId); this.modification = requireNonNull(modification); this.doCommitOnReady = doCommitOnReady; @@ -56,7 +56,7 @@ public final class ReadyLocalTransaction { return remoteVersion; } - public void setRemoteVersion(short remoteVersion) { + public void setRemoteVersion(final short remoteVersion) { this.remoteVersion = remoteVersion; } diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/messages/ShardLeaderStateChanged.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/messages/ShardLeaderStateChanged.java index cbf2cf9e0f..e6d64eb850 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/messages/ShardLeaderStateChanged.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/messages/ShardLeaderStateChanged.java @@ -13,7 +13,7 @@ import java.util.Optional; import org.eclipse.jdt.annotation.NonNull; import org.eclipse.jdt.annotation.Nullable; import org.opendaylight.controller.cluster.notifications.LeaderStateChanged; -import org.opendaylight.yangtools.yang.data.api.schema.tree.ReadOnlyDataTree; +import org.opendaylight.yangtools.yang.data.tree.api.ReadOnlyDataTree; /** * A local message derived from LeaderStateChanged containing additional Shard-specific info that is sent @@ -25,16 +25,16 @@ import org.opendaylight.yangtools.yang.data.api.schema.tree.ReadOnlyDataTree; public class ShardLeaderStateChanged extends LeaderStateChanged { private final ReadOnlyDataTree localShardDataTree; - public ShardLeaderStateChanged(@NonNull String memberId, @Nullable String leaderId, - @NonNull ReadOnlyDataTree localShardDataTree, short leaderPayloadVersion) { + public ShardLeaderStateChanged(final @NonNull String memberId, final @Nullable String leaderId, + final @NonNull ReadOnlyDataTree localShardDataTree, final short leaderPayloadVersion) { super(memberId, leaderId, leaderPayloadVersion); this.localShardDataTree = requireNonNull(localShardDataTree); } - public ShardLeaderStateChanged(@NonNull String memberId, @Nullable String leaderId, - short leaderPayloadVersion) { + public ShardLeaderStateChanged(final @NonNull String memberId, final @Nullable String leaderId, + final short leaderPayloadVersion) { super(memberId, leaderId, leaderPayloadVersion); - this.localShardDataTree = null; + localShardDataTree = null; } public @NonNull Optional getLocalShardDataTree() { diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/modification/DeleteModification.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/modification/DeleteModification.java index 38517aa04b..55ed0a30bc 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/modification/DeleteModification.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/modification/DeleteModification.java @@ -14,9 +14,9 @@ import org.opendaylight.controller.cluster.datastore.DataStoreVersions; import org.opendaylight.controller.cluster.datastore.node.utils.stream.SerializationUtils; import org.opendaylight.mdsal.dom.spi.store.DOMStoreWriteTransaction; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeModification; import org.opendaylight.yangtools.yang.data.codec.binfmt.NormalizedNodeDataInput; import org.opendaylight.yangtools.yang.data.codec.binfmt.NormalizedNodeDataOutput; +import org.opendaylight.yangtools.yang.data.tree.api.DataTreeModification; /** * DeleteModification store all the parameters required to delete a path from the data tree. diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/modification/MergeModification.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/modification/MergeModification.java index 098a89521a..90bdba196a 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/modification/MergeModification.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/modification/MergeModification.java @@ -13,8 +13,8 @@ import org.opendaylight.mdsal.dom.spi.store.DOMStoreWriteTransaction; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; import org.opendaylight.yangtools.yang.data.api.schema.stream.ReusableStreamReceiver; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeModification; import org.opendaylight.yangtools.yang.data.codec.binfmt.NormalizedNodeDataInput; +import org.opendaylight.yangtools.yang.data.tree.api.DataTreeModification; /** * MergeModification stores all the parameters required to merge data into the specified path. diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/modification/Modification.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/modification/Modification.java index 59ca8eb367..e7757f36fc 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/modification/Modification.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/modification/Modification.java @@ -12,8 +12,8 @@ import java.io.IOException; import java.io.ObjectInput; import java.io.ObjectOutput; import org.opendaylight.mdsal.dom.spi.store.DOMStoreWriteTransaction; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeModification; import org.opendaylight.yangtools.yang.data.codec.binfmt.NormalizedNodeDataOutput; +import org.opendaylight.yangtools.yang.data.tree.api.DataTreeModification; /** * Represents a modification to the data store. diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/modification/MutableCompositeModification.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/modification/MutableCompositeModification.java index a9ffe9b1ba..33a5b7b485 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/modification/MutableCompositeModification.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/modification/MutableCompositeModification.java @@ -20,10 +20,10 @@ import org.opendaylight.controller.cluster.datastore.DataStoreVersions; import org.opendaylight.controller.cluster.datastore.messages.VersionedExternalizableMessage; import org.opendaylight.mdsal.dom.spi.store.DOMStoreWriteTransaction; import org.opendaylight.yangtools.yang.data.api.schema.stream.ReusableStreamReceiver; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeModification; import org.opendaylight.yangtools.yang.data.codec.binfmt.NormalizedNodeDataInput; import org.opendaylight.yangtools.yang.data.codec.binfmt.NormalizedNodeDataOutput; import org.opendaylight.yangtools.yang.data.impl.schema.ReusableImmutableNormalizedNodeStreamWriter; +import org.opendaylight.yangtools.yang.data.tree.api.DataTreeModification; /** * MutableCompositeModification is just a mutable version of a CompositeModification. diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/modification/WriteModification.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/modification/WriteModification.java index 9e00d4b174..a728313eb2 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/modification/WriteModification.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/modification/WriteModification.java @@ -16,9 +16,9 @@ import org.opendaylight.mdsal.dom.spi.store.DOMStoreWriteTransaction; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; import org.opendaylight.yangtools.yang.data.api.schema.stream.ReusableStreamReceiver; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeModification; import org.opendaylight.yangtools.yang.data.codec.binfmt.NormalizedNodeDataInput; import org.opendaylight.yangtools.yang.data.codec.binfmt.NormalizedNodeDataOutput; +import org.opendaylight.yangtools.yang.data.tree.api.DataTreeModification; /** * WriteModification stores all the parameters required to write data to the specified path. diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/AbstractDataTreeCandidateNode.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/AbstractDataTreeCandidateNode.java index 453bbbb21a..0a7d34b79c 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/AbstractDataTreeCandidateNode.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/AbstractDataTreeCandidateNode.java @@ -13,8 +13,8 @@ import java.util.Collection; import java.util.Optional; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument; import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidateNode; -import org.opendaylight.yangtools.yang.data.api.schema.tree.ModificationType; +import org.opendaylight.yangtools.yang.data.tree.api.DataTreeCandidateNode; +import org.opendaylight.yangtools.yang.data.tree.api.ModificationType; /** * Abstract base class for our internal implementation of {@link DataTreeCandidateNode}, diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/CommitTransactionPayload.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/CommitTransactionPayload.java index 5337530ece..3fc636b851 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/CommitTransactionPayload.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/CommitTransactionPayload.java @@ -34,8 +34,8 @@ import org.opendaylight.controller.cluster.io.ChunkedOutputStream; import org.opendaylight.controller.cluster.raft.protobuff.client.messages.IdentifiablePayload; import org.opendaylight.yangtools.concepts.Either; import org.opendaylight.yangtools.yang.data.api.schema.stream.ReusableStreamReceiver; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidate; import org.opendaylight.yangtools.yang.data.impl.schema.ReusableImmutableNormalizedNodeStreamWriter; +import org.opendaylight.yangtools.yang.data.tree.api.DataTreeCandidate; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/DataTreeCandidateInputOutput.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/DataTreeCandidateInputOutput.java index ee829e8a13..a3b30466c8 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/DataTreeCandidateInputOutput.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/DataTreeCandidateInputOutput.java @@ -22,14 +22,14 @@ import org.opendaylight.yangtools.concepts.Immutable; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument; import org.opendaylight.yangtools.yang.data.api.schema.stream.ReusableStreamReceiver; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidate; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidateNode; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidateNodes; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidates; -import org.opendaylight.yangtools.yang.data.api.schema.tree.ModificationType; import org.opendaylight.yangtools.yang.data.codec.binfmt.NormalizedNodeDataInput; import org.opendaylight.yangtools.yang.data.codec.binfmt.NormalizedNodeDataOutput; import org.opendaylight.yangtools.yang.data.codec.binfmt.NormalizedNodeStreamVersion; +import org.opendaylight.yangtools.yang.data.tree.api.DataTreeCandidate; +import org.opendaylight.yangtools.yang.data.tree.api.DataTreeCandidateNode; +import org.opendaylight.yangtools.yang.data.tree.api.ModificationType; +import org.opendaylight.yangtools.yang.data.tree.spi.DataTreeCandidateNodes; +import org.opendaylight.yangtools.yang.data.tree.spi.DataTreeCandidates; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/DeletedDataTreeCandidateNode.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/DeletedDataTreeCandidateNode.java index de386f1757..30b108ce41 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/DeletedDataTreeCandidateNode.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/DeletedDataTreeCandidateNode.java @@ -11,8 +11,8 @@ import java.util.Collection; import java.util.Optional; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument; import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidateNode; -import org.opendaylight.yangtools.yang.data.api.schema.tree.ModificationType; +import org.opendaylight.yangtools.yang.data.tree.api.DataTreeCandidateNode; +import org.opendaylight.yangtools.yang.data.tree.api.ModificationType; /** * A deserialized {@link DataTreeCandidateNode} which represents a deletion. diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/ModifiedDataTreeCandidateNode.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/ModifiedDataTreeCandidateNode.java index 061d913429..c63424264d 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/ModifiedDataTreeCandidateNode.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/ModifiedDataTreeCandidateNode.java @@ -13,8 +13,8 @@ import java.util.Collection; import java.util.Optional; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument; import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidateNode; -import org.opendaylight.yangtools.yang.data.api.schema.tree.ModificationType; +import org.opendaylight.yangtools.yang.data.tree.api.DataTreeCandidateNode; +import org.opendaylight.yangtools.yang.data.tree.api.ModificationType; /** * A deserialized {@link DataTreeCandidateNode} which represents a modification in diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/shardmanager/ShardInformation.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/shardmanager/ShardInformation.java index cc3d5a90c4..b0136ed369 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/shardmanager/ShardInformation.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/shardmanager/ShardInformation.java @@ -28,7 +28,7 @@ import org.opendaylight.controller.cluster.datastore.messages.PeerAddressResolve import org.opendaylight.controller.cluster.datastore.shardmanager.ShardManager.OnShardInitialized; import org.opendaylight.controller.cluster.datastore.shardmanager.ShardManager.OnShardReady; import org.opendaylight.controller.cluster.raft.RaftState; -import org.opendaylight.yangtools.yang.data.api.schema.tree.ReadOnlyDataTree; +import org.opendaylight.yangtools.yang.data.tree.api.ReadOnlyDataTree; import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -168,10 +168,10 @@ public final class ShardInformation { return; } - boolean ready = isShardReadyWithLeaderId(); - - LOG.debug("Shard {} is {} - notifying {} OnShardInitialized callbacks", shardId, - ready ? "ready" : "initialized", onShardInitializedSet.size()); + final boolean ready = isShardReadyWithLeaderId(); + final String readyStr = ready ? "ready" : "initialized"; + LOG.debug("Shard {} is {} - notifying {} OnShardInitialized callbacks", shardId, readyStr, + onShardInitializedSet.size()); Iterator iter = onShardInitializedSet.iterator(); while (iter.hasNext()) { diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/shardmanager/ShardManager.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/shardmanager/ShardManager.java index 85469b27e8..58e64f8f27 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/shardmanager/ShardManager.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/shardmanager/ShardManager.java @@ -5,7 +5,6 @@ * 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.shardmanager; import static akka.pattern.Patterns.ask; @@ -39,7 +38,6 @@ import com.google.common.util.concurrent.SettableFuture; import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import java.util.ArrayList; import java.util.Collection; -import java.util.Collections; import java.util.HashMap; import java.util.HashSet; import java.util.List; @@ -165,16 +163,17 @@ class ShardManager extends AbstractUntypedPersistentActorWithMetering { private final String persistenceId; + @SuppressFBWarnings(value = "MC_OVERRIDABLE_METHOD_CALL_IN_CONSTRUCTOR", justification = "Akka class design") ShardManager(final AbstractShardManagerCreator builder) { - this.cluster = builder.getCluster(); - this.configuration = builder.getConfiguration(); - this.datastoreContextFactory = builder.getDatastoreContextFactory(); - this.type = datastoreContextFactory.getBaseDatastoreContext().getDataStoreName(); - this.shardDispatcherPath = - new Dispatchers(context().system().dispatchers()).getDispatcherPath(Dispatchers.DispatcherType.Shard); - this.readinessFuture = builder.getReadinessFuture(); - this.primaryShardInfoCache = builder.getPrimaryShardInfoCache(); - this.restoreFromSnapshot = builder.getRestoreFromSnapshot(); + cluster = builder.getCluster(); + configuration = builder.getConfiguration(); + datastoreContextFactory = builder.getDatastoreContextFactory(); + type = datastoreContextFactory.getBaseDatastoreContext().getDataStoreName(); + shardDispatcherPath = new Dispatchers(context().system().dispatchers()) + .getDispatcherPath(Dispatchers.DispatcherType.Shard); + readinessFuture = builder.getReadinessFuture(); + primaryShardInfoCache = builder.getPrimaryShardInfoCache(); + restoreFromSnapshot = builder.getRestoreFromSnapshot(); String possiblePersistenceId = datastoreContextFactory.getBaseDatastoreContext().getShardManagerPersistenceId(); persistenceId = possiblePersistenceId != null ? possiblePersistenceId : "shard-manager-" + type; @@ -185,7 +184,7 @@ class ShardManager extends AbstractUntypedPersistentActorWithMetering { cluster.subscribeToMemberEvents(getSelf()); shardManagerMBean = new ShardManagerInfo(getSelf(), cluster.getCurrentMemberName(), - "shard-manager-" + this.type, + "shard-manager-" + type, datastoreContextFactory.getBaseDatastoreContext().getDataStoreMXBeanType()); shardManagerMBean.registerMBean(); } @@ -384,8 +383,6 @@ class ShardManager extends AbstractUntypedPersistentActorWithMetering { } } - @SuppressFBWarnings(value = "UPM_UNCALLED_PRIVATE_METHOD", - justification = "https://github.com/spotbugs/spotbugs/issues/811") private void removeShardReplica(final RemoveShardReplica contextMessage, final String shardName, final String primaryPath, final ActorRef sender) { if (isShardReplicaOperationInProgress(shardName, sender)) { @@ -531,8 +528,6 @@ class ShardManager extends AbstractUntypedPersistentActorWithMetering { } } - @SuppressFBWarnings(value = "UPM_UNCALLED_PRIVATE_METHOD", - justification = "https://github.com/spotbugs/spotbugs/issues/811") private boolean isPreviousShardActorStopInProgress(final String shardName, final Object messageToDefer) { final CompositeOnComplete stopOnComplete = shardActorsStopping.get(shardName); if (stopOnComplete == null) { @@ -584,7 +579,7 @@ class ShardManager extends AbstractUntypedPersistentActorWithMetering { // the shard with no peers and with elections disabled so it stays as follower. A // subsequent AddServer request will be needed to make it an active member. isActiveMember = false; - peerAddresses = Collections.emptyMap(); + peerAddresses = Map.of(); shardDatastoreContext = DatastoreContext.newBuilderFrom(shardDatastoreContext) .customRaftPolicyImplementation(DisableElectionsRaftPolicy.class.getName()).build(); } @@ -1105,8 +1100,8 @@ class ShardManager extends AbstractUntypedPersistentActorWithMetering { * Create shards that are local to the member on which the ShardManager runs. */ private void createLocalShards() { - MemberName memberName = this.cluster.getCurrentMemberName(); - Collection memberShardNames = this.configuration.getMemberShardNames(memberName); + MemberName memberName = cluster.getCurrentMemberName(); + Collection memberShardNames = configuration.getMemberShardNames(memberName); Map shardSnapshots = new HashMap<>(); if (restoreFromSnapshot != null) { @@ -1151,7 +1146,7 @@ class ShardManager extends AbstractUntypedPersistentActorWithMetering { private Map getPeerAddresses(final String shardName, final Collection members) { Map peerAddresses = new HashMap<>(); - MemberName currentMemberName = this.cluster.getCurrentMemberName(); + MemberName currentMemberName = cluster.getCurrentMemberName(); for (MemberName memberName : members) { if (!currentMemberName.equals(memberName)) { @@ -1200,7 +1195,7 @@ class ShardManager extends AbstractUntypedPersistentActorWithMetering { LOG.debug("{}: onAddShardReplica: {}", persistenceId(), shardReplicaMsg); // verify the shard with the specified name is present in the cluster configuration - if (!this.configuration.isShardConfigured(shardName)) { + if (!configuration.isShardConfigured(shardName)) { LOG.debug("{}: No module configuration exists for shard {}", persistenceId(), shardName); getSender().tell(new Status.Failure(new IllegalArgumentException( "No module configuration exists for shard " + shardName)), getSelf()); @@ -1235,16 +1230,12 @@ class ShardManager extends AbstractUntypedPersistentActorWithMetering { }); } - @SuppressFBWarnings(value = "UPM_UNCALLED_PRIVATE_METHOD", - justification = "https://github.com/spotbugs/spotbugs/issues/811") private void sendLocalReplicaAlreadyExistsReply(final String shardName, final ActorRef sender) { LOG.debug("{}: Local shard {} already exists", persistenceId(), shardName); sender.tell(new Status.Failure(new AlreadyExistsException( String.format("Local shard %s already exists", shardName))), getSelf()); } - @SuppressFBWarnings(value = "UPM_UNCALLED_PRIVATE_METHOD", - justification = "https://github.com/spotbugs/spotbugs/issues/811") private void addShard(final String shardName, final RemotePrimaryShardFound response, final ActorRef sender) { if (isShardReplicaOperationInProgress(shardName, sender)) { return; diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/utils/ActorUtils.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/utils/ActorUtils.java index a9a646cc9f..1c7809e626 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/utils/ActorUtils.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/utils/ActorUtils.java @@ -23,7 +23,6 @@ import com.codahale.metrics.MetricRegistry; import com.codahale.metrics.Timer; import com.google.common.base.Preconditions; import com.google.common.base.Strings; -import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import java.util.Optional; import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.LongAdder; @@ -52,7 +51,7 @@ import org.opendaylight.controller.cluster.datastore.messages.UpdateSchemaContex import org.opendaylight.controller.cluster.datastore.shardstrategy.ShardStrategyFactory; import org.opendaylight.controller.cluster.raft.client.messages.Shutdown; import org.opendaylight.controller.cluster.reporting.MetricsReporter; -import org.opendaylight.yangtools.yang.data.api.schema.tree.ReadOnlyDataTree; +import org.opendaylight.yangtools.yang.data.tree.api.ReadOnlyDataTree; import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -158,9 +157,9 @@ public class ActorUtils { this.clusterWrapper = clusterWrapper; this.configuration = configuration; this.datastoreContext = datastoreContext; - this.dispatchers = new Dispatchers(actorSystem.dispatchers()); + dispatchers = new Dispatchers(actorSystem.dispatchers()); this.primaryShardInfoCache = primaryShardInfoCache; - this.shardStrategyFactory = new ShardStrategyFactory(configuration); + shardStrategyFactory = new ShardStrategyFactory(configuration); setCachedProperties(); @@ -214,7 +213,7 @@ public class ActorUtils { } public void setDatastoreContext(final DatastoreContextFactory contextFactory) { - this.datastoreContext = contextFactory.getBaseDatastoreContext(); + datastoreContext = contextFactory.getBaseDatastoreContext(); setCachedProperties(); // We write the 'updated' volatile to trigger a write memory barrier so that the writes above @@ -269,8 +268,6 @@ public class ActorUtils { }, FIND_PRIMARY_FAILURE_TRANSFORMER, getClientDispatcher()); } - @SuppressFBWarnings(value = "UPM_UNCALLED_PRIVATE_METHOD", - justification = "https://github.com/spotbugs/spotbugs/issues/811") private PrimaryShardInfo onPrimaryShardFound(final String shardName, final String primaryActorPath, final short primaryVersion, final ReadOnlyDataTree localShardDataTree) { ActorSelection actorSelection = actorSystem.actorSelection(primaryActorPath); @@ -561,11 +558,11 @@ public class ActorUtils { * @return the dispatcher */ public ExecutionContext getClientDispatcher() { - return this.dispatchers.getDispatcher(Dispatchers.DispatcherType.Client); + return dispatchers.getDispatcher(Dispatchers.DispatcherType.Client); } public String getNotificationDispatcherPath() { - return this.dispatchers.getDispatcherPath(Dispatchers.DispatcherType.Notification); + return dispatchers.getDispatcherPath(Dispatchers.DispatcherType.Notification); } public Configuration getConfiguration() { diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/utils/DataTreeModificationOutput.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/utils/DataTreeModificationOutput.java index c298371044..3619c2264e 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/utils/DataTreeModificationOutput.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/utils/DataTreeModificationOutput.java @@ -16,7 +16,7 @@ import javax.xml.stream.XMLStreamException; import org.opendaylight.controller.cluster.datastore.util.AbstractDataTreeModificationCursor; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument; import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeModification; +import org.opendaylight.yangtools.yang.data.tree.api.DataTreeModification; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/utils/NormalizedNodeAggregator.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/utils/NormalizedNodeAggregator.java index a78e36c811..b38e4ed35b 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/utils/NormalizedNodeAggregator.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/utils/NormalizedNodeAggregator.java @@ -12,12 +12,12 @@ import java.util.Optional; import org.opendaylight.mdsal.common.api.LogicalDatastoreType; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTree; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidate; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeConfiguration; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeModification; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataValidationFailedException; -import org.opendaylight.yangtools.yang.data.impl.schema.tree.InMemoryDataTreeFactory; +import org.opendaylight.yangtools.yang.data.tree.api.DataTree; +import org.opendaylight.yangtools.yang.data.tree.api.DataTreeCandidate; +import org.opendaylight.yangtools.yang.data.tree.api.DataTreeConfiguration; +import org.opendaylight.yangtools.yang.data.tree.api.DataTreeModification; +import org.opendaylight.yangtools.yang.data.tree.api.DataValidationFailedException; +import org.opendaylight.yangtools.yang.data.tree.impl.di.InMemoryDataTreeFactory; import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext; public final class NormalizedNodeAggregator { @@ -30,10 +30,9 @@ public final class NormalizedNodeAggregator { final LogicalDatastoreType logicalDatastoreType) { this.rootIdentifier = rootIdentifier; this.nodes = nodes; - this.dataTree = new InMemoryDataTreeFactory().create( - logicalDatastoreType == LogicalDatastoreType.CONFIGURATION ? DataTreeConfiguration.DEFAULT_CONFIGURATION - : DataTreeConfiguration.DEFAULT_OPERATIONAL); - this.dataTree.setEffectiveModelContext(schemaContext); + dataTree = new InMemoryDataTreeFactory().create(logicalDatastoreType == LogicalDatastoreType.CONFIGURATION + ? DataTreeConfiguration.DEFAULT_CONFIGURATION : DataTreeConfiguration.DEFAULT_OPERATIONAL); + dataTree.setEffectiveModelContext(schemaContext); } /** diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/utils/PruningDataTreeModification.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/utils/PruningDataTreeModification.java index 06f3a0557a..029b5f1c6a 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/utils/PruningDataTreeModification.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/utils/PruningDataTreeModification.java @@ -19,10 +19,10 @@ import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument; import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeWriter; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTree; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeModification; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeModificationCursor; -import org.opendaylight.yangtools.yang.data.impl.schema.tree.SchemaValidationFailedException; +import org.opendaylight.yangtools.yang.data.tree.api.DataTree; +import org.opendaylight.yangtools.yang.data.tree.api.DataTreeModification; +import org.opendaylight.yangtools.yang.data.tree.api.DataTreeModificationCursor; +import org.opendaylight.yangtools.yang.data.tree.api.SchemaValidationFailedException; import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/utils/UnsignedLongBitmap.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/utils/UnsignedLongBitmap.java index 1d64e10e83..ffef55d4d9 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/utils/UnsignedLongBitmap.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/utils/UnsignedLongBitmap.java @@ -14,7 +14,6 @@ import com.google.common.annotations.Beta; import com.google.common.annotations.VisibleForTesting; import com.google.common.collect.Maps; import com.google.common.primitives.UnsignedLong; -import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import java.io.DataInput; import java.io.DataOutput; import java.io.IOException; @@ -262,14 +261,10 @@ public abstract class UnsignedLongBitmap implements Immutable { return isEmpty() ? "{}" : appendEntries(new StringBuilder().append('{')).append('}').toString(); } - @SuppressFBWarnings(value = "UPM_UNCALLED_PRIVATE_METHOD", - justification = "https://github.com/spotbugs/spotbugs/issues/811") private static StringBuilder appendEntry(final StringBuilder sb, final long key, final boolean value) { return sb.append(Long.toUnsignedString(key)).append('=').append(value); } - @SuppressFBWarnings(value = "UPM_UNCALLED_PRIVATE_METHOD", - justification = "https://github.com/spotbugs/spotbugs/issues/811") private static void writeEntry(final @NonNull DataOutput out, final long key, final boolean value) throws IOException { // FIXME: This serialization format is what we inherited. We could do better by storing the boolean in diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/databroker/actors/dds/AbstractClientHandleTest.java b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/databroker/actors/dds/AbstractClientHandleTest.java index 7cd191e828..d8ff9f8b5d 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/databroker/actors/dds/AbstractClientHandleTest.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/databroker/actors/dds/AbstractClientHandleTest.java @@ -47,8 +47,8 @@ import org.opendaylight.controller.cluster.access.concepts.SuccessEnvelope; import org.opendaylight.controller.cluster.datastore.messages.PrimaryShardInfo; import org.opendaylight.controller.cluster.datastore.utils.ActorUtils; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTree; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeSnapshot; +import org.opendaylight.yangtools.yang.data.tree.api.DataTree; +import org.opendaylight.yangtools.yang.data.tree.api.DataTreeSnapshot; import scala.concurrent.Promise; @RunWith(MockitoJUnitRunner.StrictStubs.class) diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/databroker/actors/dds/AbstractClientHistoryTest.java b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/databroker/actors/dds/AbstractClientHistoryTest.java index 8b376f2dd0..05531cddd9 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/databroker/actors/dds/AbstractClientHistoryTest.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/databroker/actors/dds/AbstractClientHistoryTest.java @@ -31,7 +31,7 @@ import org.opendaylight.controller.cluster.access.concepts.LocalHistoryIdentifie import org.opendaylight.controller.cluster.datastore.messages.PrimaryShardInfo; import org.opendaylight.controller.cluster.datastore.utils.ActorUtils; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTree; +import org.opendaylight.yangtools.yang.data.tree.api.DataTree; import scala.concurrent.Promise; import scala.concurrent.impl.Promise.DefaultPromise; diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/databroker/actors/dds/AbstractDataStoreClientBehaviorTest.java b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/databroker/actors/dds/AbstractDataStoreClientBehaviorTest.java index 6528c6ba7c..0b379f9655 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/databroker/actors/dds/AbstractDataStoreClientBehaviorTest.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/databroker/actors/dds/AbstractDataStoreClientBehaviorTest.java @@ -7,6 +7,9 @@ */ package org.opendaylight.controller.cluster.databroker.actors.dds; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertSame; +import static org.junit.Assert.assertThrows; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; @@ -18,10 +21,9 @@ import akka.actor.ActorSystem; import akka.actor.Status; import akka.testkit.TestProbe; import akka.testkit.javadsl.TestKit; -import java.util.Collections; +import java.util.List; import java.util.Optional; import org.junit.After; -import org.junit.Assert; import org.junit.Before; import org.junit.Test; import org.opendaylight.controller.cluster.access.client.AbstractClientConnection; @@ -33,9 +35,9 @@ import org.opendaylight.controller.cluster.access.commands.ConnectClientSuccess; import org.opendaylight.controller.cluster.datastore.messages.PrimaryShardInfo; import org.opendaylight.controller.cluster.datastore.utils.ActorUtils; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; -import org.opendaylight.yangtools.yang.data.api.schema.tree.CursorAwareDataTreeModification; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTree; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeSnapshot; +import org.opendaylight.yangtools.yang.data.tree.api.CursorAwareDataTreeModification; +import org.opendaylight.yangtools.yang.data.tree.api.DataTree; +import org.opendaylight.yangtools.yang.data.tree.api.DataTreeSnapshot; import scala.concurrent.Promise; public abstract class AbstractDataStoreClientBehaviorTest { @@ -71,7 +73,7 @@ public abstract class AbstractDataStoreClientBehaviorTest { @Test public void testResolveShardForPath() { - Assert.assertEquals(0L, behavior.resolveShardForPath(YangInstanceIdentifier.empty()).longValue()); + assertEquals(0L, behavior.resolveShardForPath(YangInstanceIdentifier.empty()).longValue()); } @Test @@ -85,32 +87,32 @@ public abstract class AbstractDataStoreClientBehaviorTest { final GetClientRequest request = new GetClientRequest(probe.ref()); final AbstractDataStoreClientBehavior nextBehavior = behavior.onCommand(request); final Status.Success success = probe.expectMsgClass(Status.Success.class); - Assert.assertEquals(behavior, success.status()); - Assert.assertSame(behavior, nextBehavior); + assertEquals(behavior, success.status()); + assertSame(behavior, nextBehavior); } @Test public void testOnCommandUnhandled() { final AbstractDataStoreClientBehavior nextBehavior = behavior.onCommand("unhandled"); - Assert.assertSame(behavior, nextBehavior); + assertSame(behavior, nextBehavior); } @Test public void testCreateLocalHistory() { final ClientLocalHistory history = behavior.createLocalHistory(); - Assert.assertEquals(behavior.getIdentifier(), history.getIdentifier().getClientId()); + assertEquals(behavior.getIdentifier(), history.getIdentifier().getClientId()); } @Test public void testCreateTransaction() { final ClientTransaction transaction = behavior.createTransaction(); - Assert.assertEquals(behavior.getIdentifier(), transaction.getIdentifier().getHistoryId().getClientId()); + assertEquals(behavior.getIdentifier(), transaction.getIdentifier().getHistoryId().getClientId()); } @Test public void testCreateSnapshot() { final ClientSnapshot snapshot = behavior.createSnapshot(); - Assert.assertEquals(behavior.getIdentifier(), snapshot.getIdentifier().getHistoryId().getClientId()); + assertEquals(behavior.getIdentifier(), snapshot.getIdentifier().getHistoryId().getClientId()); } @Test @@ -119,17 +121,13 @@ public abstract class AbstractDataStoreClientBehaviorTest { final InternalCommand internalCommand = clientActorProbe.expectMsgClass(InternalCommand.class); internalCommand.execute(behavior); - try { - behavior.createLocalHistory(); - Assert.fail("Behavior is closed and shouldn't allow to create new history."); - } catch (final IllegalStateException e) { - //ok - } + + assertThrows(IllegalStateException.class, () -> behavior.createLocalHistory()); } @Test public void testGetIdentifier() { - Assert.assertEquals(CLIENT_ID, behavior.getIdentifier()); + assertEquals(CLIENT_ID, behavior.getIdentifier()); } @Test @@ -147,15 +145,15 @@ public abstract class AbstractDataStoreClientBehaviorTest { behavior.createTransaction().read(YangInstanceIdentifier.empty()); final AbstractClientConnection connection = behavior.getConnection(shard); //check cached connection for same shard - Assert.assertSame(connection, behavior.getConnection(shard)); + assertSame(connection, behavior.getConnection(shard)); final ConnectClientRequest connectClientRequest = actorContextProbe.expectMsgClass(ConnectClientRequest.class); - Assert.assertEquals(CLIENT_ID, connectClientRequest.getTarget()); + assertEquals(CLIENT_ID, connectClientRequest.getTarget()); final long sequence = 0L; - Assert.assertEquals(sequence, connectClientRequest.getSequence()); - actorContextProbe.reply(new ConnectClientSuccess(CLIENT_ID, sequence, backendProbe.ref(), - Collections.emptyList(), dataTree, 3)); - Assert.assertEquals(clientActorProbe.ref(), connection.localActor()); + assertEquals(sequence, connectClientRequest.getSequence()); + actorContextProbe.reply(new ConnectClientSuccess(CLIENT_ID, sequence, backendProbe.ref(), List.of(), dataTree, + 3)); + assertEquals(clientActorProbe.ref(), connection.localActor()); //capture and execute command passed to client context final InternalCommand command = clientActorProbe.expectMsgClass(InternalCommand.class); command.execute(behavior); diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/databroker/actors/dds/AbstractProxyTransactionTest.java b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/databroker/actors/dds/AbstractProxyTransactionTest.java index 167c5bc348..8b5629d7ad 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/databroker/actors/dds/AbstractProxyTransactionTest.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/databroker/actors/dds/AbstractProxyTransactionTest.java @@ -63,9 +63,9 @@ import org.opendaylight.controller.cluster.access.concepts.TransactionIdentifier import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode; -import org.opendaylight.yangtools.yang.data.api.schema.tree.CursorAwareDataTreeModification; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeSnapshot; import org.opendaylight.yangtools.yang.data.impl.schema.Builders; +import org.opendaylight.yangtools.yang.data.tree.api.CursorAwareDataTreeModification; +import org.opendaylight.yangtools.yang.data.tree.api.DataTreeSnapshot; @RunWith(MockitoJUnitRunner.StrictStubs.class) public abstract class AbstractProxyTransactionTest { diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/databroker/actors/dds/ClientTransactionTest.java b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/databroker/actors/dds/ClientTransactionTest.java index 69494f30ff..3fc3c9c325 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/databroker/actors/dds/ClientTransactionTest.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/databroker/actors/dds/ClientTransactionTest.java @@ -28,8 +28,8 @@ import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode; import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; -import org.opendaylight.yangtools.yang.data.api.schema.tree.CursorAwareDataTreeModification; import org.opendaylight.yangtools.yang.data.impl.schema.Builders; +import org.opendaylight.yangtools.yang.data.tree.api.CursorAwareDataTreeModification; public class ClientTransactionTest extends AbstractClientHandleTest { diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/databroker/actors/dds/LocalProxyTransactionTest.java b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/databroker/actors/dds/LocalProxyTransactionTest.java index 2543ca8247..283913f5ea 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/databroker/actors/dds/LocalProxyTransactionTest.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/databroker/actors/dds/LocalProxyTransactionTest.java @@ -35,8 +35,8 @@ import org.opendaylight.controller.cluster.access.commands.ReadTransactionSucces import org.opendaylight.controller.cluster.access.commands.TransactionPurgeRequest; import org.opendaylight.controller.cluster.access.commands.TransactionRequest; import org.opendaylight.controller.cluster.access.concepts.Response; -import org.opendaylight.yangtools.yang.data.api.schema.tree.CursorAwareDataTreeModification; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeModificationCursor; +import org.opendaylight.yangtools.yang.data.tree.api.CursorAwareDataTreeModification; +import org.opendaylight.yangtools.yang.data.tree.api.DataTreeModificationCursor; public abstract class LocalProxyTransactionTest extends AbstractProxyTransactionTest { diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/databroker/actors/dds/LocalReadOnlyProxyTransactionTest.java b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/databroker/actors/dds/LocalReadOnlyProxyTransactionTest.java index 7a4fb74203..5f33439968 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/databroker/actors/dds/LocalReadOnlyProxyTransactionTest.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/databroker/actors/dds/LocalReadOnlyProxyTransactionTest.java @@ -20,10 +20,9 @@ import org.opendaylight.controller.cluster.access.commands.AbortLocalTransaction import org.opendaylight.controller.cluster.access.commands.ModifyTransactionRequest; import org.opendaylight.controller.cluster.access.commands.ModifyTransactionRequestBuilder; import org.opendaylight.controller.cluster.access.concepts.TransactionIdentifier; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeSnapshot; +import org.opendaylight.yangtools.yang.data.tree.api.DataTreeSnapshot; public class LocalReadOnlyProxyTransactionTest extends LocalProxyTransactionTest { - private DataTreeSnapshot snapshot; @Override diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/databroker/actors/dds/LocalReadWriteProxyTransactionTest.java b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/databroker/actors/dds/LocalReadWriteProxyTransactionTest.java index 2a38f183ef..349e227006 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/databroker/actors/dds/LocalReadWriteProxyTransactionTest.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/databroker/actors/dds/LocalReadWriteProxyTransactionTest.java @@ -40,9 +40,9 @@ import org.opendaylight.controller.cluster.access.commands.TransactionRequest; import org.opendaylight.controller.cluster.access.commands.TransactionWrite; import org.opendaylight.controller.cluster.access.concepts.Response; import org.opendaylight.controller.cluster.access.concepts.TransactionIdentifier; -import org.opendaylight.yangtools.yang.data.api.schema.tree.CursorAwareDataTreeModification; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeModification; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeSnapshot; +import org.opendaylight.yangtools.yang.data.tree.api.CursorAwareDataTreeModification; +import org.opendaylight.yangtools.yang.data.tree.api.DataTreeModification; +import org.opendaylight.yangtools.yang.data.tree.api.DataTreeSnapshot; public class LocalReadWriteProxyTransactionTest extends LocalProxyTransactionTest { @Mock diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/databroker/actors/dds/ModuleShardBackendResolverTest.java b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/databroker/actors/dds/ModuleShardBackendResolverTest.java index ebd96c9741..ee5737effa 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/databroker/actors/dds/ModuleShardBackendResolverTest.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/databroker/actors/dds/ModuleShardBackendResolverTest.java @@ -50,7 +50,7 @@ import org.opendaylight.controller.cluster.datastore.utils.ActorUtils; import org.opendaylight.controller.cluster.datastore.utils.PrimaryShardInfoFutureCache; import org.opendaylight.yangtools.concepts.Registration; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTree; +import org.opendaylight.yangtools.yang.data.tree.api.DataTree; import scala.concurrent.Promise; @RunWith(MockitoJUnitRunner.StrictStubs.class) diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/databroker/actors/dds/RemoteProxyTransactionTest.java b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/databroker/actors/dds/RemoteProxyTransactionTest.java index 6afecf36b8..97c4b3126f 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/databroker/actors/dds/RemoteProxyTransactionTest.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/databroker/actors/dds/RemoteProxyTransactionTest.java @@ -41,7 +41,7 @@ import org.opendaylight.controller.cluster.access.commands.TransactionWrite; import org.opendaylight.controller.cluster.access.concepts.TransactionIdentifier; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeSnapshot; +import org.opendaylight.yangtools.yang.data.tree.api.DataTreeSnapshot; public class RemoteProxyTransactionTest extends AbstractProxyTransactionTest { diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/AbstractDistributedDataStoreIntegrationTest.java b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/AbstractDistributedDataStoreIntegrationTest.java index 6563ff6eda..fa83bd010e 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/AbstractDistributedDataStoreIntegrationTest.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/AbstractDistributedDataStoreIntegrationTest.java @@ -77,11 +77,11 @@ import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode; import org.opendaylight.yangtools.yang.data.api.schema.MapEntryNode; import org.opendaylight.yangtools.yang.data.api.schema.MapNode; import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTree; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeConfiguration; import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes; import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableContainerNodeBuilder; -import org.opendaylight.yangtools.yang.data.impl.schema.tree.InMemoryDataTreeFactory; +import org.opendaylight.yangtools.yang.data.tree.api.DataTree; +import org.opendaylight.yangtools.yang.data.tree.api.DataTreeConfiguration; +import org.opendaylight.yangtools.yang.data.tree.impl.di.InMemoryDataTreeFactory; import org.opendaylight.yangtools.yang.model.api.SchemaContext; public abstract class AbstractDistributedDataStoreIntegrationTest { diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/AbstractShardTest.java b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/AbstractShardTest.java index 31f2b6b067..9e91ce173c 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/AbstractShardTest.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/AbstractShardTest.java @@ -70,16 +70,16 @@ import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; import org.opendaylight.yangtools.yang.data.api.schema.DataContainerChild; import org.opendaylight.yangtools.yang.data.api.schema.MapEntryNode; import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTree; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidate; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidateNode; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidateTip; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeConfiguration; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeModification; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataValidationFailedException; -import org.opendaylight.yangtools.yang.data.api.schema.tree.ModificationType; import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes; -import org.opendaylight.yangtools.yang.data.impl.schema.tree.InMemoryDataTreeFactory; +import org.opendaylight.yangtools.yang.data.tree.api.DataTree; +import org.opendaylight.yangtools.yang.data.tree.api.DataTreeCandidate; +import org.opendaylight.yangtools.yang.data.tree.api.DataTreeCandidateNode; +import org.opendaylight.yangtools.yang.data.tree.api.DataTreeCandidateTip; +import org.opendaylight.yangtools.yang.data.tree.api.DataTreeConfiguration; +import org.opendaylight.yangtools.yang.data.tree.api.DataTreeModification; +import org.opendaylight.yangtools.yang.data.tree.api.DataValidationFailedException; +import org.opendaylight.yangtools.yang.data.tree.api.ModificationType; +import org.opendaylight.yangtools.yang.data.tree.impl.di.InMemoryDataTreeFactory; import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext; import scala.concurrent.Await; import scala.concurrent.Future; diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/DataTreeChangeListenerActorTest.java b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/DataTreeChangeListenerActorTest.java index a71d99e055..9ce9cc743b 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/DataTreeChangeListenerActorTest.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/DataTreeChangeListenerActorTest.java @@ -8,7 +8,7 @@ package org.opendaylight.controller.cluster.datastore; import static org.junit.Assert.assertFalse; -import static org.mockito.ArgumentMatchers.anyCollection; +import static org.mockito.ArgumentMatchers.anyList; import static org.mockito.Mockito.doThrow; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.never; @@ -27,7 +27,7 @@ import org.opendaylight.controller.cluster.datastore.messages.DataTreeChanged; import org.opendaylight.controller.cluster.datastore.messages.DataTreeChangedReply; import org.opendaylight.controller.cluster.datastore.messages.EnableNotification; import org.opendaylight.mdsal.dom.api.DOMDataTreeChangeListener; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidate; +import org.opendaylight.yangtools.yang.data.tree.api.DataTreeCandidate; public class DataTreeChangeListenerActorTest extends AbstractActorTest { private TestKit testKit; @@ -68,7 +68,7 @@ public class DataTreeChangeListenerActorTest extends AbstractActorTest { testKit.within(Duration.ofSeconds(1), () -> { testKit.expectNoMessage(); - verify(mockListener, never()).onDataTreeChanged(anyCollection()); + verify(mockListener, never()).onDataTreeChanged(anyList()); return null; }); } diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/DataTreeChangeListenerSupportTest.java b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/DataTreeChangeListenerSupportTest.java index c7f6b285cb..d6207b2f6e 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/DataTreeChangeListenerSupportTest.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/DataTreeChangeListenerSupportTest.java @@ -40,8 +40,8 @@ import org.opendaylight.controller.cluster.datastore.messages.RegisterDataTreeNo import org.opendaylight.controller.cluster.datastore.utils.MockDataTreeChangeListener; import org.opendaylight.controller.md.cluster.datastore.model.TestModel; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataValidationFailedException; import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes; +import org.opendaylight.yangtools.yang.data.tree.api.DataValidationFailedException; import scala.concurrent.Await; import scala.concurrent.duration.FiniteDuration; diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/DataTreeCohortActorTest.java b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/DataTreeCohortActorTest.java index 5db3f39b6e..16c567c9e0 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/DataTreeCohortActorTest.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/DataTreeCohortActorTest.java @@ -45,7 +45,7 @@ import org.opendaylight.mdsal.dom.api.DOMDataTreeCandidate; import org.opendaylight.mdsal.dom.api.DOMDataTreeCommitCohort; import org.opendaylight.yangtools.util.concurrent.FluentFutures; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataValidationFailedException; +import org.opendaylight.yangtools.yang.data.tree.api.DataValidationFailedException; import org.opendaylight.yangtools.yang.model.api.SchemaContext; import scala.concurrent.Await; diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/DataTreeCohortIntegrationTest.java b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/DataTreeCohortIntegrationTest.java index 97b5f75f8f..4ec8bc3665 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/DataTreeCohortIntegrationTest.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/DataTreeCohortIntegrationTest.java @@ -54,8 +54,8 @@ import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode; import org.opendaylight.yangtools.yang.data.api.schema.MapEntryNode; import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; -import org.opendaylight.yangtools.yang.data.api.schema.tree.ModificationType; import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes; +import org.opendaylight.yangtools.yang.data.tree.api.ModificationType; import org.opendaylight.yangtools.yang.model.api.SchemaContext; public class DataTreeCohortIntegrationTest { diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/DatastoreSnapshotRestoreTest.java b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/DatastoreSnapshotRestoreTest.java index 2621d53838..69e20fca77 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/DatastoreSnapshotRestoreTest.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/DatastoreSnapshotRestoreTest.java @@ -35,10 +35,10 @@ import org.opendaylight.controller.md.cluster.datastore.model.TestModel; import org.opendaylight.yangtools.yang.common.Uint64; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTree; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeConfiguration; import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes; -import org.opendaylight.yangtools.yang.data.impl.schema.tree.InMemoryDataTreeFactory; +import org.opendaylight.yangtools.yang.data.tree.api.DataTree; +import org.opendaylight.yangtools.yang.data.tree.api.DataTreeConfiguration; +import org.opendaylight.yangtools.yang.data.tree.impl.di.InMemoryDataTreeFactory; /** * Unit tests for DatastoreSnapshotRestore. diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/DistributedDataStoreRemotingIntegrationTest.java b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/DistributedDataStoreRemotingIntegrationTest.java index 323e9d6c5a..bb2093bcc3 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/DistributedDataStoreRemotingIntegrationTest.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/DistributedDataStoreRemotingIntegrationTest.java @@ -120,13 +120,13 @@ import org.opendaylight.yangtools.yang.data.api.schema.MapEntryNode; import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; import org.opendaylight.yangtools.yang.data.api.schema.SystemMapNode; import org.opendaylight.yangtools.yang.data.api.schema.builder.CollectionNodeBuilder; -import org.opendaylight.yangtools.yang.data.api.schema.tree.ConflictingModificationAppliedException; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTree; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeConfiguration; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeModification; import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes; import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableContainerNodeBuilder; -import org.opendaylight.yangtools.yang.data.impl.schema.tree.InMemoryDataTreeFactory; +import org.opendaylight.yangtools.yang.data.tree.api.ConflictingModificationAppliedException; +import org.opendaylight.yangtools.yang.data.tree.api.DataTree; +import org.opendaylight.yangtools.yang.data.tree.api.DataTreeConfiguration; +import org.opendaylight.yangtools.yang.data.tree.api.DataTreeModification; +import org.opendaylight.yangtools.yang.data.tree.impl.di.InMemoryDataTreeFactory; import org.opendaylight.yangtools.yang.model.api.SchemaContext; import scala.collection.Set; import scala.concurrent.Await; @@ -761,7 +761,6 @@ public class DistributedDataStoreRemotingIntegrationTest extends AbstractTest { } } - @SuppressWarnings("unchecked") @Test public void testReadyLocalTransactionForwardedToLeader() throws Exception { initDatastoresWithCars("testReadyLocalTransactionForwardedToLeader"); @@ -826,7 +825,6 @@ public class DistributedDataStoreRemotingIntegrationTest extends AbstractTest { verifyCars(leaderDistributedDataStore.newReadOnlyTransaction(), car1, car2); } - @SuppressWarnings("unchecked") @Test public void testForwardedReadyTransactionForwardedToLeader() throws Exception { initDatastoresWithCars("testForwardedReadyTransactionForwardedToLeader"); diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/ForwardingDataTreeChangeListenerTest.java b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/ForwardingDataTreeChangeListenerTest.java index 14a0c3af14..4c56c472e4 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/ForwardingDataTreeChangeListenerTest.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/ForwardingDataTreeChangeListenerTest.java @@ -7,15 +7,15 @@ */ package org.opendaylight.controller.cluster.datastore; +import static org.junit.Assert.assertSame; +import static org.mockito.Mockito.mock; + import akka.actor.ActorRef; -import java.util.Arrays; -import java.util.Collection; -import org.junit.Assert; +import java.util.List; import org.junit.Test; -import org.mockito.Mockito; import org.opendaylight.controller.cluster.datastore.messages.DataTreeChanged; import org.opendaylight.controller.cluster.raft.utils.MessageCollectorActor; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidate; +import org.opendaylight.yangtools.yang.data.tree.api.DataTreeCandidate; public class ForwardingDataTreeChangeListenerTest extends AbstractActorTest { @@ -26,10 +26,10 @@ public class ForwardingDataTreeChangeListenerTest extends AbstractActorTest { ForwardingDataTreeChangeListener forwardingListener = new ForwardingDataTreeChangeListener( getSystem().actorSelection(actorRef.path()), ActorRef.noSender()); - Collection expected = Arrays.asList(Mockito.mock(DataTreeCandidate.class)); + List expected = List.of(mock(DataTreeCandidate.class)); forwardingListener.onDataTreeChanged(expected); DataTreeChanged actual = MessageCollectorActor.expectFirstMatching(actorRef, DataTreeChanged.class, 5000); - Assert.assertSame(expected, actual.getChanges()); + assertSame(expected, actual.getChanges()); } } diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/FrontendReadWriteTransactionTest.java b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/FrontendReadWriteTransactionTest.java index 8a5705ded7..a195849f49 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/FrontendReadWriteTransactionTest.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/FrontendReadWriteTransactionTest.java @@ -35,7 +35,7 @@ import org.opendaylight.controller.cluster.access.concepts.RequestEnvelope; import org.opendaylight.controller.cluster.access.concepts.RequestException; import org.opendaylight.controller.cluster.access.concepts.TransactionIdentifier; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeModification; +import org.opendaylight.yangtools.yang.data.tree.api.DataTreeModification; public class FrontendReadWriteTransactionTest { diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/JsonExportTest.java b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/JsonExportTest.java index fc5665b925..845a39ad91 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/JsonExportTest.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/JsonExportTest.java @@ -27,9 +27,9 @@ import org.opendaylight.controller.cluster.raft.utils.InMemoryJournal; import org.opendaylight.controller.md.cluster.datastore.model.TestModel; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.distributed.datastore.provider.rev140612.DataStoreProperties.ExportOnRecovery; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTree; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeModification; import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes; +import org.opendaylight.yangtools.yang.data.tree.api.DataTree; +import org.opendaylight.yangtools.yang.data.tree.api.DataTreeModification; public class JsonExportTest extends AbstractShardTest { private static final String DUMMY_DATA = "Dummy data as snapshot sequence number is set to 0 in " diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/RootDataTreeChangeListenerProxyTest.java b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/RootDataTreeChangeListenerProxyTest.java index 789e922939..9e9d5ddd04 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/RootDataTreeChangeListenerProxyTest.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/RootDataTreeChangeListenerProxyTest.java @@ -33,8 +33,8 @@ import org.opendaylight.controller.cluster.datastore.utils.ActorUtils; import org.opendaylight.controller.md.cluster.datastore.model.PeopleModel; import org.opendaylight.mdsal.dom.api.ClusteredDOMDataTreeChangeListener; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidate; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidates; +import org.opendaylight.yangtools.yang.data.tree.api.DataTreeCandidate; +import org.opendaylight.yangtools.yang.data.tree.spi.DataTreeCandidates; public class RootDataTreeChangeListenerProxyTest extends AbstractActorTest { diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/ShardDataTreeMocking.java b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/ShardDataTreeMocking.java index 7de4835e37..b05fa9fab4 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/ShardDataTreeMocking.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/ShardDataTreeMocking.java @@ -23,7 +23,7 @@ import org.mockito.InOrder; import org.mockito.invocation.InvocationOnMock; import org.opendaylight.controller.cluster.access.concepts.TransactionIdentifier; import org.opendaylight.controller.cluster.datastore.persisted.CommitTransactionPayload; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidate; +import org.opendaylight.yangtools.yang.data.tree.api.DataTreeCandidate; public final class ShardDataTreeMocking { diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/ShardDataTreeTest.java b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/ShardDataTreeTest.java index cfb0379966..099f514e66 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/ShardDataTreeTest.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/ShardDataTreeTest.java @@ -64,18 +64,18 @@ import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdent import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode; import org.opendaylight.yangtools.yang.data.api.schema.MapEntryNode; import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTree; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidate; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidates; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeConfiguration; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeModification; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeSnapshot; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataValidationFailedException; -import org.opendaylight.yangtools.yang.data.api.schema.tree.ModificationType; -import org.opendaylight.yangtools.yang.data.api.schema.tree.TreeType; import org.opendaylight.yangtools.yang.data.impl.schema.Builders; import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes; -import org.opendaylight.yangtools.yang.data.impl.schema.tree.InMemoryDataTreeFactory; +import org.opendaylight.yangtools.yang.data.tree.api.DataTree; +import org.opendaylight.yangtools.yang.data.tree.api.DataTreeCandidate; +import org.opendaylight.yangtools.yang.data.tree.api.DataTreeConfiguration; +import org.opendaylight.yangtools.yang.data.tree.api.DataTreeModification; +import org.opendaylight.yangtools.yang.data.tree.api.DataTreeSnapshot; +import org.opendaylight.yangtools.yang.data.tree.api.DataValidationFailedException; +import org.opendaylight.yangtools.yang.data.tree.api.ModificationType; +import org.opendaylight.yangtools.yang.data.tree.api.TreeType; +import org.opendaylight.yangtools.yang.data.tree.impl.di.InMemoryDataTreeFactory; +import org.opendaylight.yangtools.yang.data.tree.spi.DataTreeCandidates; import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext; import org.opendaylight.yangtools.yang.model.api.SchemaContext; @@ -612,7 +612,7 @@ public class ShardDataTreeTest extends AbstractTest { @SuppressWarnings({ "rawtypes", "unchecked" }) private static void verifyOnDataTreeChanged(final DOMDataTreeChangeListener listener, final Consumer callback) { - ArgumentCaptor changes = ArgumentCaptor.forClass(Collection.class); + ArgumentCaptor changes = ArgumentCaptor.forClass(List.class); verify(listener, atLeastOnce()).onDataTreeChanged(changes.capture()); for (Collection list : changes.getAllValues()) { for (Object dtc : list) { diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/ShardRecoveryCoordinatorTest.java b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/ShardRecoveryCoordinatorTest.java index 31026fd79f..a52d1ccaf3 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/ShardRecoveryCoordinatorTest.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/ShardRecoveryCoordinatorTest.java @@ -24,15 +24,15 @@ import org.opendaylight.controller.md.cluster.datastore.model.PeopleModel; import org.opendaylight.controller.md.cluster.datastore.model.SchemaContextHelper; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTree; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidate; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeConfiguration; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeModification; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeSnapshot; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataValidationFailedException; -import org.opendaylight.yangtools.yang.data.api.schema.tree.TreeType; -import org.opendaylight.yangtools.yang.data.impl.schema.tree.InMemoryDataTreeFactory; -import org.opendaylight.yangtools.yang.data.impl.schema.tree.SchemaValidationFailedException; +import org.opendaylight.yangtools.yang.data.tree.api.DataTree; +import org.opendaylight.yangtools.yang.data.tree.api.DataTreeCandidate; +import org.opendaylight.yangtools.yang.data.tree.api.DataTreeConfiguration; +import org.opendaylight.yangtools.yang.data.tree.api.DataTreeModification; +import org.opendaylight.yangtools.yang.data.tree.api.DataTreeSnapshot; +import org.opendaylight.yangtools.yang.data.tree.api.DataValidationFailedException; +import org.opendaylight.yangtools.yang.data.tree.api.SchemaValidationFailedException; +import org.opendaylight.yangtools.yang.data.tree.api.TreeType; +import org.opendaylight.yangtools.yang.data.tree.impl.di.InMemoryDataTreeFactory; import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/ShardTest.java b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/ShardTest.java index 3c26d27be0..921e607eac 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/ShardTest.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/ShardTest.java @@ -109,14 +109,14 @@ import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode; import org.opendaylight.yangtools.yang.data.api.schema.MapNode; import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTree; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidate; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeConfiguration; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeModification; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataValidationFailedException; import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes; import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableContainerNodeBuilder; -import org.opendaylight.yangtools.yang.data.impl.schema.tree.InMemoryDataTreeFactory; +import org.opendaylight.yangtools.yang.data.tree.api.DataTree; +import org.opendaylight.yangtools.yang.data.tree.api.DataTreeCandidate; +import org.opendaylight.yangtools.yang.data.tree.api.DataTreeConfiguration; +import org.opendaylight.yangtools.yang.data.tree.api.DataTreeModification; +import org.opendaylight.yangtools.yang.data.tree.api.DataValidationFailedException; +import org.opendaylight.yangtools.yang.data.tree.impl.di.InMemoryDataTreeFactory; import scala.concurrent.Await; import scala.concurrent.Future; import scala.concurrent.duration.FiniteDuration; diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/ShardTransactionFailureTest.java b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/ShardTransactionFailureTest.java index 1ca294db58..14c3dcee24 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/ShardTransactionFailureTest.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/ShardTransactionFailureTest.java @@ -23,7 +23,7 @@ import org.opendaylight.controller.cluster.datastore.messages.ReadData; import org.opendaylight.controller.md.cluster.datastore.model.TestModel; import org.opendaylight.mdsal.common.api.ReadFailedException; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; -import org.opendaylight.yangtools.yang.data.api.schema.tree.TreeType; +import org.opendaylight.yangtools.yang.data.tree.api.TreeType; import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext; import scala.concurrent.Await; import scala.concurrent.Future; diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/ShardTransactionTest.java b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/ShardTransactionTest.java index 5097197ff3..5da78530a1 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/ShardTransactionTest.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/ShardTransactionTest.java @@ -49,9 +49,9 @@ import org.opendaylight.controller.md.cluster.datastore.model.TestModel; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode; import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeModification; import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes; import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableContainerNodeBuilder; +import org.opendaylight.yangtools.yang.data.tree.api.DataTreeModification; import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext; public class ShardTransactionTest extends AbstractActorTest { diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/SimpleShardDataTreeCohortTest.java b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/SimpleShardDataTreeCohortTest.java index 65cf2eac37..9214f1fe5a 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/SimpleShardDataTreeCohortTest.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/SimpleShardDataTreeCohortTest.java @@ -27,11 +27,11 @@ import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.junit.MockitoJUnitRunner; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; -import org.opendaylight.yangtools.yang.data.api.schema.tree.ConflictingModificationAppliedException; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidate; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidateTip; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeModification; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataValidationFailedException; +import org.opendaylight.yangtools.yang.data.tree.api.ConflictingModificationAppliedException; +import org.opendaylight.yangtools.yang.data.tree.api.DataTreeCandidate; +import org.opendaylight.yangtools.yang.data.tree.api.DataTreeCandidateTip; +import org.opendaylight.yangtools.yang.data.tree.api.DataTreeModification; +import org.opendaylight.yangtools.yang.data.tree.api.DataValidationFailedException; /** * Unit tests for SimpleShardDataTreeCohort. diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/TransactionProxyTest.java b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/TransactionProxyTest.java index ce1d6f6948..96356befdc 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/TransactionProxyTest.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/TransactionProxyTest.java @@ -75,10 +75,10 @@ import org.opendaylight.mdsal.dom.spi.store.DOMStoreThreePhaseCommitCohort; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode; import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTree; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeModification; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeSnapshot; import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes; +import org.opendaylight.yangtools.yang.data.tree.api.DataTree; +import org.opendaylight.yangtools.yang.data.tree.api.DataTreeModification; +import org.opendaylight.yangtools.yang.data.tree.api.DataTreeSnapshot; import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext; import scala.concurrent.Promise; diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/messages/ReadyLocalTransactionSerializerTest.java b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/messages/ReadyLocalTransactionSerializerTest.java index fc09965ccc..ea1b00d49d 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/messages/ReadyLocalTransactionSerializerTest.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/messages/ReadyLocalTransactionSerializerTest.java @@ -28,11 +28,11 @@ import org.opendaylight.controller.cluster.datastore.modification.WriteModificat import org.opendaylight.controller.md.cluster.datastore.model.TestModel; import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode; import org.opendaylight.yangtools.yang.data.api.schema.MapNode; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTree; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeConfiguration; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeModification; import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes; -import org.opendaylight.yangtools.yang.data.impl.schema.tree.InMemoryDataTreeFactory; +import org.opendaylight.yangtools.yang.data.tree.api.DataTree; +import org.opendaylight.yangtools.yang.data.tree.api.DataTreeConfiguration; +import org.opendaylight.yangtools.yang.data.tree.api.DataTreeModification; +import org.opendaylight.yangtools.yang.data.tree.impl.di.InMemoryDataTreeFactory; /** * Unit tests for ReadyLocalTransactionSerializer. diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/persisted/CommitTransactionPayloadTest.java b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/persisted/CommitTransactionPayloadTest.java index 6b2156ec77..2306b4a31f 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/persisted/CommitTransactionPayloadTest.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/persisted/CommitTransactionPayloadTest.java @@ -27,16 +27,16 @@ import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgum import org.opendaylight.yangtools.yang.data.api.schema.LeafNode; import org.opendaylight.yangtools.yang.data.api.schema.LeafSetEntryNode; import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTree; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidate; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidateNode; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidates; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeConfiguration; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeModification; import org.opendaylight.yangtools.yang.data.impl.schema.Builders; import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes; import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableContainerNodeBuilder; -import org.opendaylight.yangtools.yang.data.impl.schema.tree.InMemoryDataTreeFactory; +import org.opendaylight.yangtools.yang.data.tree.api.DataTree; +import org.opendaylight.yangtools.yang.data.tree.api.DataTreeCandidate; +import org.opendaylight.yangtools.yang.data.tree.api.DataTreeCandidateNode; +import org.opendaylight.yangtools.yang.data.tree.api.DataTreeConfiguration; +import org.opendaylight.yangtools.yang.data.tree.api.DataTreeModification; +import org.opendaylight.yangtools.yang.data.tree.impl.di.InMemoryDataTreeFactory; +import org.opendaylight.yangtools.yang.data.tree.spi.DataTreeCandidates; public class CommitTransactionPayloadTest extends AbstractTest { static final QName LEAF_SET = QName.create(TestModel.TEST_QNAME, "leaf-set"); 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 c8c3f6670b..2f3e945028 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 @@ -135,7 +135,7 @@ import org.opendaylight.controller.cluster.raft.utils.MessageCollectorActor; import org.opendaylight.controller.md.cluster.datastore.model.TestModel; import org.opendaylight.yangtools.concepts.Registration; import org.opendaylight.yangtools.yang.common.XMLNamespace; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTree; +import org.opendaylight.yangtools.yang.data.tree.api.DataTree; import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/utils/ActorUtilsTest.java b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/utils/ActorUtilsTest.java index a60597e2fb..e40939b55b 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/utils/ActorUtilsTest.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/utils/ActorUtilsTest.java @@ -59,7 +59,7 @@ import org.opendaylight.controller.cluster.datastore.messages.RemotePrimaryShard import org.opendaylight.controller.cluster.raft.utils.EchoActor; import org.opendaylight.controller.cluster.raft.utils.MessageCollectorActor; import org.opendaylight.mdsal.common.api.LogicalDatastoreType; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTree; +import org.opendaylight.yangtools.yang.data.tree.api.DataTree; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import scala.concurrent.Await; @@ -122,8 +122,8 @@ public class ActorUtilsTest extends AbstractActorTest { final ActorRef actorRef; MockShardManagerCreator() { - this.found = false; - this.actorRef = null; + found = false; + actorRef = null; } MockShardManagerCreator(final boolean found, final ActorRef actorRef) { diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/utils/MockDataTreeChangeListener.java b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/utils/MockDataTreeChangeListener.java index 326313eb3b..63af15fd95 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/utils/MockDataTreeChangeListener.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/utils/MockDataTreeChangeListener.java @@ -15,7 +15,6 @@ import static org.junit.Assert.fail; import com.google.common.util.concurrent.Uninterruptibles; import java.util.ArrayList; import java.util.Arrays; -import java.util.Collection; import java.util.HashSet; import java.util.List; import java.util.Optional; @@ -28,7 +27,7 @@ import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument; import org.opendaylight.yangtools.yang.data.api.schema.DistinctNodeContainer; import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidate; +import org.opendaylight.yangtools.yang.data.tree.api.DataTreeCandidate; public class MockDataTreeChangeListener implements DOMDataTreeChangeListener { @@ -46,14 +45,14 @@ public class MockDataTreeChangeListener implements DOMDataTreeChangeListener { public void reset(final int newExpChangeEventCount) { changeLatch = new CountDownLatch(newExpChangeEventCount); - this.expChangeEventCount = newExpChangeEventCount; + expChangeEventCount = newExpChangeEventCount; synchronized (changeList) { changeList.clear(); } } @Override - public void onDataTreeChanged(final Collection changes) { + public void onDataTreeChanged(final List changes) { if (changeLatch.getCount() > 0) { synchronized (changeList) { changeList.addAll(changes); diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/utils/NormalizedNodeAggregatorTest.java b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/utils/NormalizedNodeAggregatorTest.java index 0844f3d4f3..29a078ba37 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/utils/NormalizedNodeAggregatorTest.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/utils/NormalizedNodeAggregatorTest.java @@ -29,15 +29,14 @@ import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode; import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataValidationFailedException; import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes; +import org.opendaylight.yangtools.yang.data.tree.api.DataValidationFailedException; import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext; public class NormalizedNodeAggregatorTest { @Test - public void testAggregate() throws InterruptedException, ExecutionException, - DataValidationFailedException { + public void testAggregate() throws InterruptedException, ExecutionException, DataValidationFailedException { EffectiveModelContext schemaContext = SchemaContextHelper.full(); NormalizedNode expectedNode1 = ImmutableNodes.containerNode(TestModel.TEST_QNAME); NormalizedNode expectedNode2 = ImmutableNodes.containerNode(CarsModel.CARS_QNAME); diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/utils/PruningDataTreeModificationTest.java b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/utils/PruningDataTreeModificationTest.java index 1f5f92c03c..27aa60619a 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/utils/PruningDataTreeModificationTest.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/utils/PruningDataTreeModificationTest.java @@ -44,18 +44,18 @@ import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode; import org.opendaylight.yangtools.yang.data.api.schema.DataContainerChild; import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTree; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidate; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeConfiguration; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeModification; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeModificationCursor; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataValidationFailedException; -import org.opendaylight.yangtools.yang.data.api.schema.tree.ModificationType; -import org.opendaylight.yangtools.yang.data.api.schema.tree.TreeType; import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes; import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableContainerNodeBuilder; -import org.opendaylight.yangtools.yang.data.impl.schema.tree.InMemoryDataTreeFactory; -import org.opendaylight.yangtools.yang.data.impl.schema.tree.SchemaValidationFailedException; +import org.opendaylight.yangtools.yang.data.tree.api.DataTree; +import org.opendaylight.yangtools.yang.data.tree.api.DataTreeCandidate; +import org.opendaylight.yangtools.yang.data.tree.api.DataTreeConfiguration; +import org.opendaylight.yangtools.yang.data.tree.api.DataTreeModification; +import org.opendaylight.yangtools.yang.data.tree.api.DataTreeModificationCursor; +import org.opendaylight.yangtools.yang.data.tree.api.DataValidationFailedException; +import org.opendaylight.yangtools.yang.data.tree.api.ModificationType; +import org.opendaylight.yangtools.yang.data.tree.api.SchemaValidationFailedException; +import org.opendaylight.yangtools.yang.data.tree.api.TreeType; +import org.opendaylight.yangtools.yang.data.tree.impl.di.InMemoryDataTreeFactory; import org.opendaylight.yangtools.yang.data.util.DataSchemaContextTree; import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext; diff --git a/opendaylight/md-sal/sal-dummy-distributed-datastore/src/main/java/org/opendaylight/controller/dummy/datastore/DummyShardManager.java b/opendaylight/md-sal/sal-dummy-distributed-datastore/src/main/java/org/opendaylight/controller/dummy/datastore/DummyShardManager.java index 05f83368f6..3112c49d92 100644 --- a/opendaylight/md-sal/sal-dummy-distributed-datastore/src/main/java/org/opendaylight/controller/dummy/datastore/DummyShardManager.java +++ b/opendaylight/md-sal/sal-dummy-distributed-datastore/src/main/java/org/opendaylight/controller/dummy/datastore/DummyShardManager.java @@ -10,7 +10,7 @@ package org.opendaylight.controller.dummy.datastore; import akka.actor.Props; import akka.actor.UntypedAbstractActor; -public class DummyShardManager extends UntypedAbstractActor { +public final class DummyShardManager extends UntypedAbstractActor { public DummyShardManager(final Configuration configuration, final String memberName, final String[] shardNames, final String type) { new DummyShardsCreator(configuration, getContext(), memberName, shardNames, type).create(); diff --git a/opendaylight/md-sal/sal-remoterpc-connector/pom.xml b/opendaylight/md-sal/sal-remoterpc-connector/pom.xml index 3b65b1c8e6..e39f4bf64e 100644 --- a/opendaylight/md-sal/sal-remoterpc-connector/pom.xml +++ b/opendaylight/md-sal/sal-remoterpc-connector/pom.xml @@ -52,7 +52,11 @@ org.osgi - osgi.cmpn + org.osgi.service.component.annotations + + + org.osgi + org.osgi.service.metatype.annotations org.scala-lang diff --git a/opendaylight/md-sal/sal-remoterpc-connector/src/main/java/org/opendaylight/controller/remote/rpc/RpcErrorsException.java b/opendaylight/md-sal/sal-remoterpc-connector/src/main/java/org/opendaylight/controller/remote/rpc/RpcErrorsException.java index 01e5da8f3a..51fa0ce398 100644 --- a/opendaylight/md-sal/sal-remoterpc-connector/src/main/java/org/opendaylight/controller/remote/rpc/RpcErrorsException.java +++ b/opendaylight/md-sal/sal-remoterpc-connector/src/main/java/org/opendaylight/controller/remote/rpc/RpcErrorsException.java @@ -13,9 +13,10 @@ import java.util.ArrayList; import java.util.Collection; import java.util.List; import org.opendaylight.mdsal.dom.api.DOMRpcException; +import org.opendaylight.yangtools.yang.common.ErrorSeverity; +import org.opendaylight.yangtools.yang.common.ErrorTag; +import org.opendaylight.yangtools.yang.common.ErrorType; import org.opendaylight.yangtools.yang.common.RpcError; -import org.opendaylight.yangtools.yang.common.RpcError.ErrorSeverity; -import org.opendaylight.yangtools.yang.common.RpcError.ErrorType; import org.opendaylight.yangtools.yang.common.RpcResultBuilder; /** @@ -32,13 +33,13 @@ public class RpcErrorsException extends DOMRpcException { final ErrorSeverity severity; final ErrorType errorType; - final String tag; + final ErrorTag tag; final String applicationTag; final String message; final String info; final Throwable cause; - RpcErrorData(final ErrorSeverity severity, final ErrorType errorType, final String tag, + RpcErrorData(final ErrorSeverity severity, final ErrorType errorType, final ErrorTag tag, final String applicationTag, final String message, final String info, final Throwable cause) { this.severity = severity; this.errorType = errorType; diff --git a/opendaylight/md-sal/sal-remoterpc-connector/src/main/java/org/opendaylight/controller/remote/rpc/registry/mbeans/AbstractRegistryMXBean.java b/opendaylight/md-sal/sal-remoterpc-connector/src/main/java/org/opendaylight/controller/remote/rpc/registry/mbeans/AbstractRegistryMXBean.java index bfe60e5c82..6bf195d093 100644 --- a/opendaylight/md-sal/sal-remoterpc-connector/src/main/java/org/opendaylight/controller/remote/rpc/registry/mbeans/AbstractRegistryMXBean.java +++ b/opendaylight/md-sal/sal-remoterpc-connector/src/main/java/org/opendaylight/controller/remote/rpc/registry/mbeans/AbstractRegistryMXBean.java @@ -35,6 +35,8 @@ abstract class AbstractRegistryMXBean, I> e private final BucketStoreAccess bucketAccess; private final FiniteDuration timeout; + @SuppressFBWarnings(value = "MC_OVERRIDABLE_METHOD_CALL_IN_CONSTRUCTOR", + justification = "registerMBean() is expected to be stateless") AbstractRegistryMXBean(final @NonNull String beanName, final @NonNull String beanType, final @NonNull BucketStoreAccess bucketAccess, final @NonNull Timeout timeout) { super(beanName, beanType, null); diff --git a/opendaylight/md-sal/sal-remoterpc-connector/src/test/java/org/opendaylight/controller/remote/rpc/AbstractOpsTest.java b/opendaylight/md-sal/sal-remoterpc-connector/src/test/java/org/opendaylight/controller/remote/rpc/AbstractOpsTest.java index a3e336f307..8947d2e705 100644 --- a/opendaylight/md-sal/sal-remoterpc-connector/src/test/java/org/opendaylight/controller/remote/rpc/AbstractOpsTest.java +++ b/opendaylight/md-sal/sal-remoterpc-connector/src/test/java/org/opendaylight/controller/remote/rpc/AbstractOpsTest.java @@ -28,10 +28,10 @@ import org.opendaylight.mdsal.dom.api.DOMDataTreeIdentifier; import org.opendaylight.mdsal.dom.api.DOMRpcIdentifier; import org.opendaylight.mdsal.dom.api.DOMRpcResult; import org.opendaylight.mdsal.dom.api.DOMRpcService; +import org.opendaylight.yangtools.yang.common.ErrorSeverity; +import org.opendaylight.yangtools.yang.common.ErrorType; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.common.RpcError; -import org.opendaylight.yangtools.yang.common.RpcError.ErrorSeverity; -import org.opendaylight.yangtools.yang.common.RpcError.ErrorType; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier; import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode; diff --git a/opendaylight/md-sal/sal-remoterpc-connector/src/test/java/org/opendaylight/controller/remote/rpc/RemoteOpsImplementationTest.java b/opendaylight/md-sal/sal-remoterpc-connector/src/test/java/org/opendaylight/controller/remote/rpc/RemoteOpsImplementationTest.java index 679a19c78f..6af91a1ee8 100644 --- a/opendaylight/md-sal/sal-remoterpc-connector/src/test/java/org/opendaylight/controller/remote/rpc/RemoteOpsImplementationTest.java +++ b/opendaylight/md-sal/sal-remoterpc-connector/src/test/java/org/opendaylight/controller/remote/rpc/RemoteOpsImplementationTest.java @@ -7,14 +7,15 @@ */ package org.opendaylight.controller.remote.rpc; +import static org.hamcrest.CoreMatchers.instanceOf; +import static org.hamcrest.MatcherAssert.assertThat; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertTrue; +import static org.junit.Assert.assertThrows; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.doThrow; -import static org.mockito.Mockito.when; import com.google.common.util.concurrent.ListenableFuture; import java.util.Collections; @@ -52,7 +53,6 @@ public class RemoteOpsImplementationTest extends AbstractOpsTest { final DOMRpcResult rpcResult = new DefaultDOMRpcResult(rpcOutput); final NormalizedNode invokeRpcInput = makeRPCInput("foo"); - @SuppressWarnings({"unchecked", "rawtypes"}) final ArgumentCaptor inputCaptor = ArgumentCaptor.forClass(NormalizedNode.class); @@ -60,7 +60,7 @@ public class RemoteOpsImplementationTest extends AbstractOpsTest { .invokeRpc(eq(TEST_RPC), inputCaptor.capture()); final ListenableFuture frontEndFuture = remoteRpcImpl1.invokeRpc(TEST_RPC_ID, invokeRpcInput); - assertTrue(frontEndFuture instanceof RemoteDOMRpcFuture); + assertThat(frontEndFuture, instanceOf(RemoteDOMRpcFuture.class)); final DOMRpcResult result = frontEndFuture.get(5, TimeUnit.SECONDS); assertEquals(rpcOutput, result.getResult()); @@ -74,17 +74,15 @@ public class RemoteOpsImplementationTest extends AbstractOpsTest { final ContainerNode actionOutput = makeRPCOutput("bar"); final DOMActionResult actionResult = new SimpleDOMActionResult(actionOutput, Collections.emptyList()); final NormalizedNode invokeActionInput = makeRPCInput("foo"); - @SuppressWarnings({"unchecked", "rawtypes"}) final ArgumentCaptor inputCaptor = ArgumentCaptor.forClass(ContainerNode.class); doReturn(FluentFutures.immediateFluentFuture(actionResult)).when(domActionService2).invokeAction( eq(TEST_RPC_TYPE), eq(TEST_DATA_TREE_ID), inputCaptor.capture()); final ListenableFuture frontEndFuture = remoteActionImpl1.invokeAction(TEST_RPC_TYPE, TEST_DATA_TREE_ID, (ContainerNode) invokeActionInput); - assertTrue(frontEndFuture instanceof RemoteDOMActionFuture); + assertThat(frontEndFuture, instanceOf(RemoteDOMActionFuture.class)); final DOMActionResult result = frontEndFuture.get(5, TimeUnit.SECONDS); assertEquals(actionOutput, result.getOutput().get()); - } /** @@ -95,15 +93,13 @@ public class RemoteOpsImplementationTest extends AbstractOpsTest { final ContainerNode rpcOutput = makeRPCOutput("bar"); final DOMRpcResult rpcResult = new DefaultDOMRpcResult(rpcOutput); - @SuppressWarnings({"unchecked", "rawtypes"}) - final ArgumentCaptor inputCaptor = - (ArgumentCaptor) ArgumentCaptor.forClass(NormalizedNode.class); + final ArgumentCaptor inputCaptor = ArgumentCaptor.forClass(NormalizedNode.class); doReturn(FluentFutures.immediateFluentFuture(rpcResult)).when(domRpcService2) .invokeRpc(eq(TEST_RPC), inputCaptor.capture()); ListenableFuture frontEndFuture = remoteRpcImpl1.invokeRpc(TEST_RPC_ID, null); - assertTrue(frontEndFuture instanceof RemoteDOMRpcFuture); + assertThat(frontEndFuture, instanceOf(RemoteDOMRpcFuture.class)); final DOMRpcResult result = frontEndFuture.get(5, TimeUnit.SECONDS); assertEquals(rpcOutput, result.getResult()); @@ -117,15 +113,13 @@ public class RemoteOpsImplementationTest extends AbstractOpsTest { final ContainerNode actionOutput = makeRPCOutput("bar"); final DOMActionResult actionResult = new SimpleDOMActionResult(actionOutput); - @SuppressWarnings({"unchecked", "rawtypes"}) - final ArgumentCaptor inputCaptor = - ArgumentCaptor.forClass(ContainerNode.class); + final ArgumentCaptor inputCaptor = ArgumentCaptor.forClass(ContainerNode.class); doReturn(FluentFutures.immediateFluentFuture(actionResult)).when(domActionService2).invokeAction( eq(TEST_RPC_TYPE), eq(TEST_DATA_TREE_ID), inputCaptor.capture()); ListenableFuture frontEndFuture = remoteActionImpl1.invokeAction(TEST_RPC_TYPE, TEST_DATA_TREE_ID, actionOutput); - assertTrue(frontEndFuture instanceof RemoteDOMActionFuture); + assertThat(frontEndFuture, instanceOf(RemoteDOMActionFuture.class)); final DOMActionResult result = frontEndFuture.get(5, TimeUnit.SECONDS); assertEquals(actionOutput, result.getOutput().get()); @@ -140,15 +134,13 @@ public class RemoteOpsImplementationTest extends AbstractOpsTest { final DOMRpcResult rpcResult = new DefaultDOMRpcResult(rpcOutput); final NormalizedNode invokeRpcInput = makeRPCInput("foo"); - @SuppressWarnings({"unchecked", "rawtypes"}) - final ArgumentCaptor inputCaptor = - (ArgumentCaptor) ArgumentCaptor.forClass(NormalizedNode.class); + final ArgumentCaptor inputCaptor = ArgumentCaptor.forClass(NormalizedNode.class); doReturn(FluentFutures.immediateFluentFuture(rpcResult)).when(domRpcService2) .invokeRpc(eq(TEST_RPC), inputCaptor.capture()); final ListenableFuture frontEndFuture = remoteRpcImpl1.invokeRpc(TEST_RPC_ID, invokeRpcInput); - assertTrue(frontEndFuture instanceof RemoteDOMRpcFuture); + assertThat(frontEndFuture, instanceOf(RemoteDOMRpcFuture.class)); final DOMRpcResult result = frontEndFuture.get(5, TimeUnit.SECONDS); assertNull(result.getResult()); @@ -157,51 +149,38 @@ public class RemoteOpsImplementationTest extends AbstractOpsTest { /** * This test method invokes and executes the remote rpc. */ - @SuppressWarnings({"checkstyle:AvoidHidingCauseException", "checkstyle:IllegalThrows"}) - @Test(expected = DOMRpcException.class) - public void testInvokeRpcWithRemoteFailedFuture() throws Throwable { + @Test + public void testInvokeRpcWithRemoteFailedFuture() { final NormalizedNode invokeRpcInput = makeRPCInput("foo"); - @SuppressWarnings({"unchecked", "rawtypes"}) - final ArgumentCaptor inputCaptor = - (ArgumentCaptor) ArgumentCaptor.forClass(NormalizedNode.class); + final ArgumentCaptor inputCaptor = ArgumentCaptor.forClass(NormalizedNode.class); - when(domRpcService2.invokeRpc(eq(TEST_RPC), inputCaptor.capture())).thenReturn( - FluentFutures.immediateFailedFluentFuture(new RemoteDOMRpcException("Test Exception", null))); + doReturn(FluentFutures.immediateFailedFluentFuture(new RemoteDOMRpcException("Test Exception", null))) + .when(domRpcService2).invokeRpc(eq(TEST_RPC), inputCaptor.capture()); final ListenableFuture frontEndFuture = remoteRpcImpl1.invokeRpc(TEST_RPC_ID, invokeRpcInput); - assertTrue(frontEndFuture instanceof RemoteDOMRpcFuture); + assertThat(frontEndFuture, instanceOf(RemoteDOMRpcFuture.class)); - try { - frontEndFuture.get(5, TimeUnit.SECONDS); - } catch (ExecutionException e) { - throw e.getCause(); - } + final var ex = assertThrows(ExecutionException.class, () -> frontEndFuture.get(5, TimeUnit.SECONDS)).getCause(); + assertThat(ex, instanceOf(DOMRpcException.class)); } /** * This test method invokes and executes the remote rpc. */ - @SuppressWarnings({"checkstyle:AvoidHidingCauseException", "checkstyle:IllegalThrows"}) - @Test(expected = DOMActionException.class) - public void testInvokeActionWithRemoteFailedFuture() throws Throwable { + @Test + public void testInvokeActionWithRemoteFailedFuture() { final ContainerNode invokeActionInput = makeRPCInput("foo"); - @SuppressWarnings({"unchecked", "rawtypes"}) - final ArgumentCaptor inputCaptor = - ArgumentCaptor.forClass(ContainerNode.class); + final ArgumentCaptor inputCaptor = ArgumentCaptor.forClass(ContainerNode.class); - when(domActionService2.invokeAction(eq(TEST_RPC_TYPE), eq(TEST_DATA_TREE_ID), - inputCaptor.capture())).thenReturn(FluentFutures.immediateFailedFluentFuture( - new RemoteDOMRpcException("Test Exception", null))); + doReturn(FluentFutures.immediateFailedFluentFuture(new RemoteDOMRpcException("Test Exception", null))) + .when(domActionService2).invokeAction(eq(TEST_RPC_TYPE), eq(TEST_DATA_TREE_ID), inputCaptor.capture()); final ListenableFuture frontEndFuture = remoteActionImpl1.invokeAction(TEST_RPC_TYPE, TEST_DATA_TREE_ID, invokeActionInput); - assertTrue(frontEndFuture instanceof RemoteDOMActionFuture); + assertThat(frontEndFuture, instanceOf(RemoteDOMActionFuture.class)); - try { - frontEndFuture.get(5, TimeUnit.SECONDS); - } catch (ExecutionException e) { - throw e.getCause(); - } + final var ex = assertThrows(ExecutionException.class, () -> frontEndFuture.get(5, TimeUnit.SECONDS)).getCause(); + assertThat(ex, instanceOf(DOMActionException.class)); } /** @@ -209,44 +188,38 @@ public class RemoteOpsImplementationTest extends AbstractOpsTest { * Currently ignored since this test with current config takes around 15 seconds to complete. */ @Ignore - @Test(expected = RemoteDOMRpcException.class) - public void testInvokeRpcWithAkkaTimeoutException() throws Exception { + @Test + public void testInvokeRpcWithAkkaTimeoutException() { final NormalizedNode invokeRpcInput = makeRPCInput("foo"); final ListenableFuture frontEndFuture = remoteRpcImpl1.invokeRpc(TEST_RPC_ID, invokeRpcInput); - assertTrue(frontEndFuture instanceof RemoteDOMRpcFuture); + assertThat(frontEndFuture, instanceOf(RemoteDOMRpcFuture.class)); - frontEndFuture.get(20, TimeUnit.SECONDS); + assertThrows(RemoteDOMRpcException.class, () -> frontEndFuture.get(20, TimeUnit.SECONDS)); } /** - * This test method invokes remote rpc and lookup failed - * with runtime exception. + * This test method invokes remote rpc and lookup failed with runtime exception. */ - @Test(expected = DOMRpcException.class) - @SuppressWarnings({"checkstyle:AvoidHidingCauseException", "checkstyle:IllegalThrows"}) - public void testInvokeRpcWithLookupException() throws Throwable { + @Test + public void testInvokeRpcWithLookupException() { final NormalizedNode invokeRpcInput = makeRPCInput("foo"); doThrow(new RuntimeException("test")).when(domRpcService2).invokeRpc(any(QName.class), any(NormalizedNode.class)); final ListenableFuture frontEndFuture = remoteRpcImpl1.invokeRpc(TEST_RPC_ID, invokeRpcInput); - assertTrue(frontEndFuture instanceof RemoteDOMRpcFuture); + assertThat(frontEndFuture, instanceOf(RemoteDOMRpcFuture.class)); - try { - frontEndFuture.get(5, TimeUnit.SECONDS); - } catch (ExecutionException e) { - throw e.getCause(); - } + final var ex = assertThrows(ExecutionException.class, () -> frontEndFuture.get(5, TimeUnit.SECONDS)).getCause(); + assertThat(ex, instanceOf(DOMRpcException.class)); } /** * This test method invokes remote rpc and lookup failed * with runtime exception. */ - @Test(expected = DOMActionException.class) - @SuppressWarnings({"checkstyle:AvoidHidingCauseException", "checkstyle:IllegalThrows"}) - public void testInvokeActionWithLookupException() throws Throwable { + @Test + public void testInvokeActionWithLookupException() { final ContainerNode invokeRpcInput = makeRPCInput("foo"); doThrow(new RuntimeException("test")).when(domActionService2).invokeAction(any(Absolute.class), @@ -254,12 +227,9 @@ public class RemoteOpsImplementationTest extends AbstractOpsTest { final ListenableFuture frontEndFuture = remoteActionImpl1.invokeAction(TEST_RPC_TYPE, TEST_DATA_TREE_ID, invokeRpcInput); - assertTrue(frontEndFuture instanceof RemoteDOMActionFuture); + assertThat(frontEndFuture, instanceOf(RemoteDOMActionFuture.class)); - try { - frontEndFuture.get(5, TimeUnit.SECONDS); - } catch (ExecutionException e) { - throw e.getCause(); - } + final var ex = assertThrows(ExecutionException.class, () -> frontEndFuture.get(5, TimeUnit.SECONDS)).getCause(); + assertThat(ex, instanceOf(DOMActionException.class)); } } diff --git a/opendaylight/md-sal/sal-remoterpc-connector/src/test/java/org/opendaylight/controller/remote/rpc/RpcErrorsExceptionTest.java b/opendaylight/md-sal/sal-remoterpc-connector/src/test/java/org/opendaylight/controller/remote/rpc/RpcErrorsExceptionTest.java index 6ced09682e..bba4305a91 100644 --- a/opendaylight/md-sal/sal-remoterpc-connector/src/test/java/org/opendaylight/controller/remote/rpc/RpcErrorsExceptionTest.java +++ b/opendaylight/md-sal/sal-remoterpc-connector/src/test/java/org/opendaylight/controller/remote/rpc/RpcErrorsExceptionTest.java @@ -13,6 +13,8 @@ import java.util.ArrayList; import java.util.List; import org.junit.Before; import org.junit.Test; +import org.opendaylight.yangtools.yang.common.ErrorTag; +import org.opendaylight.yangtools.yang.common.ErrorType; import org.opendaylight.yangtools.yang.common.RpcError; import org.opendaylight.yangtools.yang.common.RpcResultBuilder; @@ -24,10 +26,9 @@ public class RpcErrorsExceptionTest { @Before public void setUp() { - final RpcError rpcError = RpcResultBuilder.newError( - RpcError.ErrorType.RPC, "error", "error message"); - final RpcError rpcWarning = RpcResultBuilder.newWarning( - RpcError.ErrorType.RPC, "warning", "warning message"); + final RpcError rpcError = RpcResultBuilder.newError(ErrorType.RPC, new ErrorTag("error"), "error message"); + final RpcError rpcWarning = RpcResultBuilder.newWarning(ErrorType.RPC, new ErrorTag("warning"), + "warning message"); rpcErrors = new ArrayList<>(); rpcErrors.add(rpcError); diff --git a/opendaylight/md-sal/samples/clustering-test-app/configuration/pom.xml b/opendaylight/md-sal/samples/clustering-test-app/configuration/pom.xml index 6968f25ab8..dbadb70c18 100644 --- a/opendaylight/md-sal/samples/clustering-test-app/configuration/pom.xml +++ b/opendaylight/md-sal/samples/clustering-test-app/configuration/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.odlparent odlparent-lite - 9.0.13 + 10.0.0 diff --git a/opendaylight/md-sal/samples/clustering-test-app/pom.xml b/opendaylight/md-sal/samples/clustering-test-app/pom.xml index 5e27e9d000..0dd6c5ce54 100644 --- a/opendaylight/md-sal/samples/clustering-test-app/pom.xml +++ b/opendaylight/md-sal/samples/clustering-test-app/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.odlparent odlparent-lite - 9.0.13 + 10.0.0 diff --git a/opendaylight/md-sal/samples/clustering-test-app/provider/src/main/java/org/opendaylight/controller/clustering/it/provider/BasicRpcTestProvider.java b/opendaylight/md-sal/samples/clustering-test-app/provider/src/main/java/org/opendaylight/controller/clustering/it/provider/BasicRpcTestProvider.java index 7934ac90de..21d3a8c57a 100644 --- a/opendaylight/md-sal/samples/clustering-test-app/provider/src/main/java/org/opendaylight/controller/clustering/it/provider/BasicRpcTestProvider.java +++ b/opendaylight/md-sal/samples/clustering-test-app/provider/src/main/java/org/opendaylight/controller/clustering/it/provider/BasicRpcTestProvider.java @@ -23,8 +23,7 @@ import org.opendaylight.yangtools.yang.common.RpcResultBuilder; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -public class BasicRpcTestProvider implements ClusterSingletonService, BasicRpcTestService { - +public final class BasicRpcTestProvider implements ClusterSingletonService, BasicRpcTestService { private static final Logger LOG = LoggerFactory.getLogger(BasicRpcTestProvider.class); private static final ServiceGroupIdentifier IDENTIFIER = ServiceGroupIdentifier.create("Basic-rpc-test"); diff --git a/opendaylight/md-sal/samples/clustering-test-app/provider/src/main/java/org/opendaylight/controller/clustering/it/provider/CarEntryDataTreeCommitCohort.java b/opendaylight/md-sal/samples/clustering-test-app/provider/src/main/java/org/opendaylight/controller/clustering/it/provider/CarEntryDataTreeCommitCohort.java index bd27bcf0df..0d442c1b43 100644 --- a/opendaylight/md-sal/samples/clustering-test-app/provider/src/main/java/org/opendaylight/controller/clustering/it/provider/CarEntryDataTreeCommitCohort.java +++ b/opendaylight/md-sal/samples/clustering-test-app/provider/src/main/java/org/opendaylight/controller/clustering/it/provider/CarEntryDataTreeCommitCohort.java @@ -23,7 +23,7 @@ import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdent import org.opendaylight.yangtools.yang.data.api.schema.DataContainerChild; import org.opendaylight.yangtools.yang.data.api.schema.DataContainerNode; import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidateNode; +import org.opendaylight.yangtools.yang.data.tree.api.DataTreeCandidateNode; import org.opendaylight.yangtools.yang.model.api.SchemaContext; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -66,7 +66,7 @@ public class CarEntryDataTreeCommitCohort implements DOMDataTreeCommitCohort { LOG.info("year is {}", year); - if ((year.longValue() < 1990)) { + if (year.longValue() < 1990) { return FluentFutures.immediateFailedFluentFuture(new DataValidationFailedException( DOMDataTreeIdentifier.class, candidate.getRootPath(), String.format("Invalid year %d - year must be >= 1990", year))); diff --git a/opendaylight/md-sal/samples/clustering-test-app/provider/src/main/java/org/opendaylight/controller/clustering/it/provider/CarProvider.java b/opendaylight/md-sal/samples/clustering-test-app/provider/src/main/java/org/opendaylight/controller/clustering/it/provider/CarProvider.java index 3f8bff0992..9a3bbe9d4a 100644 --- a/opendaylight/md-sal/samples/clustering-test-app/provider/src/main/java/org/opendaylight/controller/clustering/it/provider/CarProvider.java +++ b/opendaylight/md-sal/samples/clustering-test-app/provider/src/main/java/org/opendaylight/controller/clustering/it/provider/CarProvider.java @@ -67,7 +67,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controll import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.sal.clustering.it.car.rev140818.cars.CarEntryBuilder; import org.opendaylight.yangtools.concepts.ListenerRegistration; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; -import org.opendaylight.yangtools.yang.common.RpcError.ErrorType; +import org.opendaylight.yangtools.yang.common.ErrorType; import org.opendaylight.yangtools.yang.common.RpcResult; import org.opendaylight.yangtools.yang.common.RpcResultBuilder; import org.opendaylight.yangtools.yang.common.Uint32; diff --git a/opendaylight/md-sal/samples/clustering-test-app/provider/src/main/java/org/opendaylight/controller/clustering/it/provider/MdsalLowLevelTestProvider.java b/opendaylight/md-sal/samples/clustering-test-app/provider/src/main/java/org/opendaylight/controller/clustering/it/provider/MdsalLowLevelTestProvider.java index 8e26cb6f95..27c698da17 100644 --- a/opendaylight/md-sal/samples/clustering-test-app/provider/src/main/java/org/opendaylight/controller/clustering/it/provider/MdsalLowLevelTestProvider.java +++ b/opendaylight/md-sal/samples/clustering-test-app/provider/src/main/java/org/opendaylight/controller/clustering/it/provider/MdsalLowLevelTestProvider.java @@ -8,11 +8,10 @@ package org.opendaylight.controller.clustering.it.provider; import akka.actor.ActorRef; -import akka.actor.ActorSystem; +import akka.dispatch.Futures; import akka.dispatch.OnComplete; import akka.pattern.Patterns; import com.google.common.base.Strings; -import com.google.common.util.concurrent.Futures; import com.google.common.util.concurrent.ListenableFuture; import com.google.common.util.concurrent.SettableFuture; import java.util.HashMap; @@ -112,7 +111,8 @@ import org.opendaylight.yang.gen.v1.tag.opendaylight.org._2017.controller.yang.l import org.opendaylight.yangtools.concepts.ListenerRegistration; import org.opendaylight.yangtools.concepts.ObjectRegistration; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; -import org.opendaylight.yangtools.yang.common.RpcError.ErrorType; +import org.opendaylight.yangtools.yang.common.ErrorTag; +import org.opendaylight.yangtools.yang.common.ErrorType; import org.opendaylight.yangtools.yang.common.RpcResult; import org.opendaylight.yangtools.yang.common.RpcResultBuilder; import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; @@ -120,21 +120,18 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import scala.concurrent.duration.FiniteDuration; -public class MdsalLowLevelTestProvider implements OdlMdsalLowlevelControlService { +public final class MdsalLowLevelTestProvider implements OdlMdsalLowlevelControlService { private static final Logger LOG = LoggerFactory.getLogger(MdsalLowLevelTestProvider.class); - private final RpcProviderService rpcRegistry; private final ObjectRegistration registration; private final DistributedDataStoreInterface configDataStore; private final BindingNormalizedNodeSerializer bindingNormalizedNodeSerializer; private final DOMDataBroker domDataBroker; private final NotificationPublishService notificationPublishService; private final NotificationService notificationService; - private final DOMSchemaService schemaService; private final ClusterSingletonServiceProvider singletonService; private final DOMRpcProviderService domRpcService; private final DOMDataTreeChangeService domDataTreeChangeService; - private final ActorSystem actorSystem; private final Map, DOMRpcImplementationRegistration> routedRegistrations = new HashMap<>(); @@ -148,26 +145,27 @@ public class MdsalLowLevelTestProvider implements OdlMdsalLowlevelControlService private IdIntsListener idIntsListener; private final Map publishNotificationsTasks = new HashMap<>(); - public MdsalLowLevelTestProvider(final RpcProviderService rpcRegistry, + public MdsalLowLevelTestProvider( + // FIXME: do not depend on this service + final RpcProviderService rpcRegistry, final DOMRpcProviderService domRpcService, final ClusterSingletonServiceProvider singletonService, + // FIXME: do not depend on this service final DOMSchemaService schemaService, final BindingNormalizedNodeSerializer bindingNormalizedNodeSerializer, final NotificationPublishService notificationPublishService, final NotificationService notificationService, final DOMDataBroker domDataBroker, final DistributedDataStoreInterface configDataStore, + // FIXME: do not depend on this service final ActorSystemProvider actorSystemProvider) { - this.rpcRegistry = rpcRegistry; this.domRpcService = domRpcService; this.singletonService = singletonService; - this.schemaService = schemaService; this.bindingNormalizedNodeSerializer = bindingNormalizedNodeSerializer; this.notificationPublishService = notificationPublishService; this.notificationService = notificationService; this.domDataBroker = domDataBroker; this.configDataStore = configDataStore; - this.actorSystem = actorSystemProvider.getActorSystem(); domDataTreeChangeService = domDataBroker.getExtensions().getInstance(DOMDataTreeChangeService.class); @@ -181,8 +179,9 @@ public class MdsalLowLevelTestProvider implements OdlMdsalLowlevelControlService LOG.info("In unregisterSingletonConstant"); if (getSingletonConstantRegistration == null) { - return RpcResultBuilder.failed().withError(ErrorType.RPC, "data-missing", - "No prior RPC was registered").buildFuture(); + return RpcResultBuilder.failed() + .withError(ErrorType.RPC, ErrorTag.DATA_MISSING, "No prior RPC was registered") + .buildFuture(); } try { @@ -218,8 +217,9 @@ public class MdsalLowLevelTestProvider implements OdlMdsalLowlevelControlService LOG.info("In subscribeDtcl - input: {}", input); if (dtclReg != null) { - return RpcResultBuilder.failed().withError(ErrorType.RPC, - "data-exists", "There is already a DataTreeChangeListener registered for id-ints").buildFuture(); + return RpcResultBuilder.failed().withError(ErrorType.RPC, ErrorTag.DATA_EXISTS, + "There is already a DataTreeChangeListener registered for id-ints") + .buildFuture(); } idIntsListener = new IdIntsListener(); @@ -252,8 +252,10 @@ public class MdsalLowLevelTestProvider implements OdlMdsalLowlevelControlService LOG.info("In subscribeYnl - input: {}", input); if (ynlRegistrations.containsKey(input.getId())) { - return RpcResultBuilder.failed().withError(ErrorType.RPC, - "data-exists", "There is already a listener registered for id: " + input.getId()).buildFuture(); + return RpcResultBuilder.failed() + .withError(ErrorType.RPC, ErrorTag.DATA_EXISTS, + "There is already a listener registered for id: " + input.getId()) + .buildFuture(); } ynlRegistrations.put(input.getId(), @@ -272,8 +274,10 @@ public class MdsalLowLevelTestProvider implements OdlMdsalLowlevelControlService routedRegistrations.remove(input.getContext()); if (rpcRegistration == null) { - return RpcResultBuilder.failed().withError( - ErrorType.RPC, "data-missing", "No prior RPC was registered for " + input.getContext()).buildFuture(); + return RpcResultBuilder.failed() + .withError(ErrorType.RPC, ErrorTag.DATA_MISSING, + "No prior RPC was registered for " + input.getContext()) + .buildFuture(); } rpcRegistration.close(); @@ -286,8 +290,9 @@ public class MdsalLowLevelTestProvider implements OdlMdsalLowlevelControlService LOG.info("In registerSingletonConstant - input: {}", input); if (input.getConstant() == null) { - return RpcResultBuilder.failed().withError( - ErrorType.RPC, "invalid-value", "Constant value is null").buildFuture(); + return RpcResultBuilder.failed() + .withError(ErrorType.RPC, ErrorTag.INVALID_VALUE, "Constant value is null") + .buildFuture(); } getSingletonConstantRegistration = @@ -308,14 +313,15 @@ public class MdsalLowLevelTestProvider implements OdlMdsalLowlevelControlService LOG.info("In unregisterConstant"); if (globalGetConstantRegistration == null) { - return RpcResultBuilder.failed().withError( - ErrorType.RPC, "data-missing", "No prior RPC was registered").buildFuture(); + return RpcResultBuilder.failed() + .withError(ErrorType.RPC, ErrorTag.DATA_MISSING, "No prior RPC was registered") + .buildFuture(); } globalGetConstantRegistration.close(); globalGetConstantRegistration = null; - return Futures.immediateFuture(RpcResultBuilder.success(new UnregisterConstantOutputBuilder().build()).build()); + return RpcResultBuilder.success(new UnregisterConstantOutputBuilder().build()).buildFuture(); } @Override @@ -324,8 +330,9 @@ public class MdsalLowLevelTestProvider implements OdlMdsalLowlevelControlService LOG.info("In unregisterFlappingSingleton"); if (flappingSingletonService == null) { - return RpcResultBuilder.failed().withError( - ErrorType.RPC, "data-missing", "No prior RPC was registered").buildFuture(); + return RpcResultBuilder.failed() + .withError(ErrorType.RPC, ErrorTag.DATA_MISSING, "No prior RPC was registered") + .buildFuture(); } final long flapCount = flappingSingletonService.setInactive(); @@ -352,17 +359,18 @@ public class MdsalLowLevelTestProvider implements OdlMdsalLowlevelControlService if (input.getContext() == null) { return RpcResultBuilder.failed().withError( - ErrorType.RPC, "invalid-value", "Context value is null").buildFuture(); + ErrorType.RPC, ErrorTag.INVALID_VALUE, "Context value is null").buildFuture(); } if (input.getConstant() == null) { return RpcResultBuilder.failed().withError( - ErrorType.RPC, "invalid-value", "Constant value is null").buildFuture(); + ErrorType.RPC, ErrorTag.INVALID_VALUE, "Constant value is null").buildFuture(); } if (routedRegistrations.containsKey(input.getContext())) { return RpcResultBuilder.failed().withError(ErrorType.RPC, - "data-exists", "There is already an rpc registered for context: " + input.getContext()).buildFuture(); + ErrorTag.DATA_EXISTS, "There is already an rpc registered for context: " + input.getContext()) + .buildFuture(); } final DOMRpcImplementationRegistration rpcRegistration = @@ -379,8 +387,9 @@ public class MdsalLowLevelTestProvider implements OdlMdsalLowlevelControlService LOG.info("In registerFlappingSingleton"); if (flappingSingletonService != null) { - return RpcResultBuilder.failed().withError(ErrorType.RPC, - "data-exists", "There is already an rpc registered").buildFuture(); + return RpcResultBuilder.failed() + .withError(ErrorType.RPC, ErrorTag.DATA_EXISTS, "There is already an rpc registered") + .buildFuture(); } flappingSingletonService = new FlappingSingletonService(singletonService); @@ -393,8 +402,9 @@ public class MdsalLowLevelTestProvider implements OdlMdsalLowlevelControlService LOG.info("In unsubscribeDtcl"); if (idIntsListener == null || dtclReg == null) { - return RpcResultBuilder.failed().withError( - ErrorType.RPC, "data-missing", "No prior listener was registered").buildFuture(); + return RpcResultBuilder.failed() + .withError(ErrorType.RPC, ErrorTag.DATA_MISSING, "No prior listener was registered") + .buildFuture(); } long timeout = 120L; @@ -410,8 +420,10 @@ public class MdsalLowLevelTestProvider implements OdlMdsalLowlevelControlService dtclReg = null; if (!idIntsListener.hasTriggered()) { - return RpcResultBuilder.failed().withError(ErrorType.APPLICATION, "operation-failed", - "id-ints listener has not received any notifications.").buildFuture(); + return RpcResultBuilder.failed() + .withError(ErrorType.APPLICATION, ErrorTag.OPERATION_FAILED, + "id-ints listener has not received any notifications.") + .buildFuture(); } try (DOMDataTreeReadTransaction rTx = domDataBroker.newReadOnlyTransaction()) { @@ -419,8 +431,9 @@ public class MdsalLowLevelTestProvider implements OdlMdsalLowlevelControlService WriteTransactionsHandler.ID_INT_YID).get(); if (!readResult.isPresent()) { - return RpcResultBuilder.failed().withError(ErrorType.APPLICATION, "data-missing", - "No data read from id-ints list").buildFuture(); + return RpcResultBuilder.failed() + .withError(ErrorType.APPLICATION, ErrorTag.DATA_MISSING, "No data read from id-ints list") + .buildFuture(); } final boolean nodesEqual = idIntsListener.checkEqual(readResult.get()); @@ -429,7 +442,7 @@ public class MdsalLowLevelTestProvider implements OdlMdsalLowlevelControlService idIntsListener.diffWithLocalCopy(readResult.get())); } - return RpcResultBuilder.success(new UnsubscribeDtclOutputBuilder().setCopyMatches(nodesEqual)) + return RpcResultBuilder.success(new UnsubscribeDtclOutputBuilder().setCopyMatches(nodesEqual).build()) .buildFuture(); } catch (final InterruptedException | ExecutionException e) { @@ -444,8 +457,10 @@ public class MdsalLowLevelTestProvider implements OdlMdsalLowlevelControlService LOG.info("In unsubscribeYnl - input: {}", input); if (!ynlRegistrations.containsKey(input.getId())) { - return RpcResultBuilder.failed().withError( - ErrorType.RPC, "data-missing", "No prior listener was registered for " + input.getId()).buildFuture(); + return RpcResultBuilder.failed() + .withError(ErrorType.RPC, ErrorTag.DATA_MISSING, + "No prior listener was registered for " + input.getId()) + .buildFuture(); } final ListenerRegistration reg = ynlRegistrations.remove(input.getId()); @@ -464,8 +479,8 @@ public class MdsalLowLevelTestProvider implements OdlMdsalLowlevelControlService final PublishNotificationsTask task = publishNotificationsTasks.get(input.getId()); if (task == null) { - return Futures.immediateFuture(RpcResultBuilder.success( - new CheckPublishNotificationsOutputBuilder().setActive(false)).build()); + return RpcResultBuilder.success(new CheckPublishNotificationsOutputBuilder().setActive(false).build()) + .buildFuture(); } final CheckPublishNotificationsOutputBuilder checkPublishNotificationsOutputBuilder = @@ -489,8 +504,9 @@ public class MdsalLowLevelTestProvider implements OdlMdsalLowlevelControlService final String shardName = input.getShardName(); if (Strings.isNullOrEmpty(shardName)) { - return RpcResultBuilder.failed().withError(ErrorType.RPC, "bad-element", - shardName + "is not a valid shard name").buildFuture(); + return RpcResultBuilder.failed() + .withError(ErrorType.RPC, ErrorTag.BAD_ELEMENT, shardName + "is not a valid shard name") + .buildFuture(); } return shutdownShardGracefully(shardName, new ShutdownShardReplicaOutputBuilder().build()); @@ -503,7 +519,7 @@ public class MdsalLowLevelTestProvider implements OdlMdsalLowlevelControlService long timeoutInMS = Math.max(context.getDatastoreContext().getShardRaftConfig() .getElectionTimeOutInterval().$times(3).toMillis(), 10000); final FiniteDuration duration = FiniteDuration.apply(timeoutInMS, TimeUnit.MILLISECONDS); - final scala.concurrent.Promise shutdownShardAsk = akka.dispatch.Futures.promise(); + final scala.concurrent.Promise shutdownShardAsk = Futures.promise(); context.findLocalShardAsync(shardName).onComplete(new OnComplete() { @Override @@ -538,13 +554,15 @@ public class MdsalLowLevelTestProvider implements OdlMdsalLowlevelControlService LOG.info("In registerConstant - input: {}", input); if (input.getConstant() == null) { - return RpcResultBuilder.failed().withError( - ErrorType.RPC, "invalid-value", "Constant value is null").buildFuture(); + return RpcResultBuilder.failed() + .withError(ErrorType.RPC, ErrorTag.INVALID_VALUE, "Constant value is null") + .buildFuture(); } if (globalGetConstantRegistration != null) { - return RpcResultBuilder.failed().withError(ErrorType.RPC, - "data-exists", "There is already an rpc registered").buildFuture(); + return RpcResultBuilder.failed() + .withError(ErrorType.RPC, ErrorTag.DATA_EXISTS, "There is already an rpc registered") + .buildFuture(); } globalGetConstantRegistration = GetConstantService.registerNew(domRpcService, input.getConstant()); diff --git a/opendaylight/md-sal/samples/clustering-test-app/provider/src/main/java/org/opendaylight/controller/clustering/it/provider/PeopleProvider.java b/opendaylight/md-sal/samples/clustering-test-app/provider/src/main/java/org/opendaylight/controller/clustering/it/provider/PeopleProvider.java index 34e8369835..5780c5f836 100644 --- a/opendaylight/md-sal/samples/clustering-test-app/provider/src/main/java/org/opendaylight/controller/clustering/it/provider/PeopleProvider.java +++ b/opendaylight/md-sal/samples/clustering-test-app/provider/src/main/java/org/opendaylight/controller/clustering/it/provider/PeopleProvider.java @@ -31,7 +31,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controll import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.sal.clustering.it.people.rev140818.people.PersonBuilder; import org.opendaylight.yangtools.concepts.ObjectRegistration; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; -import org.opendaylight.yangtools.yang.common.RpcError; +import org.opendaylight.yangtools.yang.common.ErrorType; import org.opendaylight.yangtools.yang.common.RpcResult; import org.opendaylight.yangtools.yang.common.RpcResultBuilder; import org.slf4j.Logger; @@ -85,7 +85,7 @@ public class PeopleProvider implements PeopleService, AutoCloseable { public void onFailure(final Throwable ex) { LOG.error("RPC addPerson : person addition failed [{}]", person, ex); futureResult.set(RpcResultBuilder.failed() - .withError(RpcError.ErrorType.APPLICATION, ex.getMessage()).build()); + .withError(ErrorType.APPLICATION, ex.getMessage()).build()); } }, MoreExecutors.directExecutor()); return futureResult; diff --git a/opendaylight/md-sal/samples/clustering-test-app/provider/src/main/java/org/opendaylight/controller/clustering/it/provider/impl/FlappingSingletonService.java b/opendaylight/md-sal/samples/clustering-test-app/provider/src/main/java/org/opendaylight/controller/clustering/it/provider/impl/FlappingSingletonService.java index 90ce618f3d..cb427b7ee8 100644 --- a/opendaylight/md-sal/samples/clustering-test-app/provider/src/main/java/org/opendaylight/controller/clustering/it/provider/impl/FlappingSingletonService.java +++ b/opendaylight/md-sal/samples/clustering-test-app/provider/src/main/java/org/opendaylight/controller/clustering/it/provider/impl/FlappingSingletonService.java @@ -5,7 +5,6 @@ * 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.clustering.it.provider.impl; import com.google.common.util.concurrent.Futures; @@ -19,10 +18,8 @@ import org.opendaylight.mdsal.singleton.common.api.ServiceGroupIdentifier; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -public class FlappingSingletonService implements ClusterSingletonService { - +public final class FlappingSingletonService implements ClusterSingletonService { private static final Logger LOG = LoggerFactory.getLogger(FlappingSingletonService.class); - private static final ServiceGroupIdentifier SERVICE_GROUP_IDENTIFIER = ServiceGroupIdentifier.create("flapping-singleton-service"); diff --git a/opendaylight/md-sal/samples/clustering-test-app/provider/src/main/java/org/opendaylight/controller/clustering/it/provider/impl/IdIntsListener.java b/opendaylight/md-sal/samples/clustering-test-app/provider/src/main/java/org/opendaylight/controller/clustering/it/provider/impl/IdIntsListener.java index e905545649..ccc7a8a868 100644 --- a/opendaylight/md-sal/samples/clustering-test-app/provider/src/main/java/org/opendaylight/controller/clustering/it/provider/impl/IdIntsListener.java +++ b/opendaylight/md-sal/samples/clustering-test-app/provider/src/main/java/org/opendaylight/controller/clustering/it/provider/impl/IdIntsListener.java @@ -12,8 +12,8 @@ import static org.opendaylight.controller.clustering.it.provider.impl.AbstractTr import com.google.common.util.concurrent.SettableFuture; import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; -import java.util.Collection; import java.util.HashMap; +import java.util.List; import java.util.Map; import java.util.concurrent.Executors; import java.util.concurrent.Future; @@ -27,7 +27,7 @@ import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdent import org.opendaylight.yangtools.yang.data.api.schema.MapEntryNode; import org.opendaylight.yangtools.yang.data.api.schema.MapNode; import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidate; +import org.opendaylight.yangtools.yang.data.tree.api.DataTreeCandidate; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -46,7 +46,7 @@ public class IdIntsListener implements ClusteredDOMDataTreeChangeListener { } @Override - public void onDataTreeChanged(final Collection changes) { + public void onDataTreeChanged(final List changes) { // There should only be one candidate reported checkState(changes.size() == 1); diff --git a/opendaylight/md-sal/samples/clustering-test-app/provider/src/main/java/org/opendaylight/controller/clustering/it/provider/impl/WriteTransactionsHandler.java b/opendaylight/md-sal/samples/clustering-test-app/provider/src/main/java/org/opendaylight/controller/clustering/it/provider/impl/WriteTransactionsHandler.java index 6354f8497f..ad0a956820 100644 --- a/opendaylight/md-sal/samples/clustering-test-app/provider/src/main/java/org/opendaylight/controller/clustering/it/provider/impl/WriteTransactionsHandler.java +++ b/opendaylight/md-sal/samples/clustering-test-app/provider/src/main/java/org/opendaylight/controller/clustering/it/provider/impl/WriteTransactionsHandler.java @@ -32,7 +32,7 @@ import org.opendaylight.mdsal.dom.api.DOMTransactionChainListener; import org.opendaylight.yang.gen.v1.tag.opendaylight.org._2017.controller.yang.lowlevel.control.rev170215.WriteTransactionsInput; import org.opendaylight.yang.gen.v1.tag.opendaylight.org._2017.controller.yang.lowlevel.control.rev170215.WriteTransactionsOutput; import org.opendaylight.yang.gen.v1.tag.opendaylight.org._2017.controller.yang.lowlevel.control.rev170215.WriteTransactionsOutputBuilder; -import org.opendaylight.yangtools.yang.common.RpcError; +import org.opendaylight.yangtools.yang.common.ErrorType; import org.opendaylight.yangtools.yang.common.RpcResult; import org.opendaylight.yangtools.yang.common.RpcResultBuilder; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; @@ -150,7 +150,7 @@ public abstract class WriteTransactionsHandler extends AbstractTransactionHandle tx.commit().get(INIT_TX_TIMEOUT_SECONDS, TimeUnit.SECONDS); } catch (InterruptedException | TimeoutException e) { LOG.error("Error writing top-level path {}: {}", ID_INTS_YID, containerNode, e); - return RpcResultBuilder.failed().withError(RpcError.ErrorType.APPLICATION, + return RpcResultBuilder.failed().withError(ErrorType.APPLICATION, String.format("Could not start write transactions - error writing top-level path %s: %s", ID_INTS_YID, containerNode), e).buildFuture(); } catch (ExecutionException e) { @@ -161,7 +161,7 @@ public abstract class WriteTransactionsHandler extends AbstractTransactionHandle LOG.debug("Got an optimistic lock when writing initial top level list element.", e); } else { LOG.error("Error writing top-level path {}: {}", ID_INTS_YID, containerNode, e); - return RpcResultBuilder.failed().withError(RpcError.ErrorType.APPLICATION, + return RpcResultBuilder.failed().withError(ErrorType.APPLICATION, String.format("Could not start write transactions - error writing top-level path %s: %s", ID_INTS_YID, containerNode), e).buildFuture(); } @@ -174,7 +174,7 @@ public abstract class WriteTransactionsHandler extends AbstractTransactionHandle tx.commit().get(INIT_TX_TIMEOUT_SECONDS, TimeUnit.SECONDS); } catch (InterruptedException | ExecutionException | TimeoutException e) { LOG.error("Error writing top-level path {}: {}", idListItem, entry, e); - return RpcResultBuilder.failed().withError(RpcError.ErrorType.APPLICATION, + return RpcResultBuilder.failed().withError(ErrorType.APPLICATION, String.format("Could not start write transactions - error writing list entry path %s: %s", idListItem, entry), e).buildFuture(); } @@ -192,7 +192,7 @@ public abstract class WriteTransactionsHandler extends AbstractTransactionHandle tx.commit().get(INIT_TX_TIMEOUT_SECONDS, TimeUnit.SECONDS); } catch (InterruptedException | ExecutionException | TimeoutException e) { LOG.error("Error filling initial item list path {}: {}", itemListId, itemListNode, e); - return RpcResultBuilder.failed().withError(RpcError.ErrorType.APPLICATION, + return RpcResultBuilder.failed().withError(ErrorType.APPLICATION, String.format("Could not start write transactions - error filling initial item list path %s: %s", itemListId, itemListNode), e).buildFuture(); } @@ -239,7 +239,7 @@ public abstract class WriteTransactionsHandler extends AbstractTransactionHandle @Override void runFailed(final Throwable cause, final long txId) { completionFuture.set(RpcResultBuilder.failed() - .withError(RpcError.ErrorType.APPLICATION, "Commit failed for tx # " + txId, cause).build()); + .withError(ErrorType.APPLICATION, "Commit failed for tx # " + txId, cause).build()); } @Override @@ -257,7 +257,7 @@ public abstract class WriteTransactionsHandler extends AbstractTransactionHandle @Override void runTimedOut(final String cause) { completionFuture.set(RpcResultBuilder.failed() - .withError(RpcError.ErrorType.APPLICATION, cause).build()); + .withError(ErrorType.APPLICATION, cause).build()); } abstract DOMDataTreeWriteTransaction createTransaction(); diff --git a/opendaylight/md-sal/samples/pom.xml b/opendaylight/md-sal/samples/pom.xml index 09e78ae687..561525f0b6 100644 --- a/opendaylight/md-sal/samples/pom.xml +++ b/opendaylight/md-sal/samples/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.odlparent odlparent-lite - 9.0.13 + 10.0.0 diff --git a/opendaylight/md-sal/samples/toaster-consumer/src/main/java/org/opendaylight/controller/sample/kitchen/impl/KitchenServiceImpl.java b/opendaylight/md-sal/samples/toaster-consumer/src/main/java/org/opendaylight/controller/sample/kitchen/impl/KitchenServiceImpl.java index 306efc5e63..1e5c10c0c1 100644 --- a/opendaylight/md-sal/samples/toaster-consumer/src/main/java/org/opendaylight/controller/sample/kitchen/impl/KitchenServiceImpl.java +++ b/opendaylight/md-sal/samples/toaster-consumer/src/main/java/org/opendaylight/controller/sample/kitchen/impl/KitchenServiceImpl.java @@ -31,8 +31,9 @@ import org.opendaylight.yang.gen.v1.http.netconfcentral.org.ns.toaster.rev091120 import org.opendaylight.yang.gen.v1.http.netconfcentral.org.ns.toaster.rev091120.ToasterRestocked; import org.opendaylight.yang.gen.v1.http.netconfcentral.org.ns.toaster.rev091120.ToasterService; import org.opendaylight.yang.gen.v1.http.netconfcentral.org.ns.toaster.rev091120.WheatBread; +import org.opendaylight.yangtools.yang.common.ErrorTag; +import org.opendaylight.yangtools.yang.common.ErrorType; import org.opendaylight.yangtools.yang.common.RpcError; -import org.opendaylight.yangtools.yang.common.RpcError.ErrorType; import org.opendaylight.yangtools.yang.common.RpcResult; import org.opendaylight.yangtools.yang.common.RpcResultBuilder; import org.opendaylight.yangtools.yang.common.Uint32; @@ -86,8 +87,7 @@ public class KitchenServiceImpl extends AbstractMXBean } } - return Futures.immediateFuture(RpcResultBuilder.status(atLeastOneSucceeded) - .withRpcErrors(errorList.build()).build()); + return RpcResultBuilder.status(atLeastOneSucceeded).withRpcErrors(errorList.build()).buildFuture(); }, MoreExecutors.directExecutor()); } @@ -100,9 +100,10 @@ public class KitchenServiceImpl extends AbstractMXBean if (toasterOutOfBread) { LOG.info("We're out of toast but we can make eggs"); - return Futures.immediateFuture(RpcResultBuilder.success(EMPTY_MAKE_OUTPUT) - .withWarning(ErrorType.APPLICATION, "partial-operation", - "Toaster is out of bread but we can make you eggs").build()); + return RpcResultBuilder.success(EMPTY_MAKE_OUTPUT) + .withWarning(ErrorType.APPLICATION, ErrorTag.PARTIAL_OPERATION, + "Toaster is out of bread but we can make you eggs") + .buildFuture(); } // Access the ToasterService to make the toast. diff --git a/opendaylight/md-sal/samples/toaster-provider/src/main/java/org/opendaylight/controller/sample/toaster/provider/OpendaylightToaster.java b/opendaylight/md-sal/samples/toaster-provider/src/main/java/org/opendaylight/controller/sample/toaster/provider/OpendaylightToaster.java index 20e544903d..54e7b9a65c 100644 --- a/opendaylight/md-sal/samples/toaster-provider/src/main/java/org/opendaylight/controller/sample/toaster/provider/OpendaylightToaster.java +++ b/opendaylight/md-sal/samples/toaster-provider/src/main/java/org/opendaylight/controller/sample/toaster/provider/OpendaylightToaster.java @@ -12,7 +12,7 @@ import static org.opendaylight.mdsal.binding.api.DataObjectModification.Modifica import static org.opendaylight.mdsal.binding.api.DataObjectModification.ModificationType.WRITE; import static org.opendaylight.mdsal.common.api.LogicalDatastoreType.CONFIGURATION; import static org.opendaylight.mdsal.common.api.LogicalDatastoreType.OPERATIONAL; -import static org.opendaylight.yangtools.yang.common.RpcError.ErrorType.APPLICATION; +import static org.opendaylight.yangtools.yang.common.ErrorType.APPLICATION; import com.google.common.util.concurrent.FluentFuture; import com.google.common.util.concurrent.FutureCallback; @@ -62,8 +62,9 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controll import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.toaster.app.config.rev160503.ToasterAppConfigBuilder; import org.opendaylight.yangtools.concepts.ListenerRegistration; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; +import org.opendaylight.yangtools.yang.common.ErrorTag; +import org.opendaylight.yangtools.yang.common.ErrorType; import org.opendaylight.yangtools.yang.common.RpcError; -import org.opendaylight.yangtools.yang.common.RpcError.ErrorType; import org.opendaylight.yangtools.yang.common.RpcResult; import org.opendaylight.yangtools.yang.common.RpcResultBuilder; import org.opendaylight.yangtools.yang.common.Uint16; @@ -112,7 +113,7 @@ public class OpendaylightToaster extends AbstractMXBean } public void setNotificationProvider(final NotificationPublishService notificationPublishService) { - this.notificationProvider = notificationPublishService; + notificationProvider = notificationPublishService; } public void setDataBroker(final DataBroker dataBroker) { @@ -226,12 +227,12 @@ public class OpendaylightToaster extends AbstractMXBean } private static RpcError makeToasterOutOfBreadError() { - return RpcResultBuilder.newError(APPLICATION, "resource-denied", "Toaster is out of bread", "out-of-stock", - null, null); + return RpcResultBuilder.newError(APPLICATION, ErrorTag.RESOURCE_DENIED, "Toaster is out of bread", + "out-of-stock", null, null); } private static RpcError makeToasterInUseError() { - return RpcResultBuilder.newWarning(APPLICATION, "in-use", "Toaster is busy", null, null, null); + return RpcResultBuilder.newWarning(APPLICATION, ErrorTag.IN_USE, "Toaster is busy", null, null, null); } private void checkStatusAndMakeToast(final MakeToastInput input, @@ -400,7 +401,7 @@ public class OpendaylightToaster extends AbstractMXBean public Void call() { try { // make toast just sleeps for n seconds per doneness level. - Thread.sleep(OpendaylightToaster.this.darknessFactor.get() + Thread.sleep(darknessFactor.get() * toastRequest.getToasterDoneness().toJava()); } catch (InterruptedException e) { diff --git a/pom.xml b/pom.xml index ceb49d6176..20ecfa8fe6 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ org.opendaylight.odlparent odlparent-lite - 9.0.13 + 10.0.0 -- 2.36.6