Bump odlparent/yangtools/mdsal 62/95162/17
authorRobert Varga <robert.varga@pantheon.tech>
Sun, 14 Feb 2021 09:01:05 +0000 (10:01 +0100)
committerRobert Varga <robert.varga@pantheon.tech>
Sun, 9 May 2021 19:57:35 +0000 (21:57 +0200)
Adopt latest versions, namely;
- odlparent-9.0.1
- yangtools-7.0.1
- mdsal-8.0.0-SNAPSHOT

There are a few adjustments needed, which mostly deal with the interface
to NormalizedNode.

Change-Id: I918fb885a6df62e16e17119a7e04ba1672ef7c39
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
186 files changed:
akka/pom.xml
akka/repackaged-akka-jar/pom.xml
artifacts/pom.xml
benchmark/dsbenchmark/src/main/java/org/opendaylight/dsbenchmark/DomListBuilder.java
benchmark/dsbenchmark/src/main/java/org/opendaylight/dsbenchmark/simpletx/SimpletxDomRead.java
benchmark/dsbenchmark/src/main/java/org/opendaylight/dsbenchmark/txchain/TxchainDomRead.java
benchmark/pom.xml
bundle-parent/pom.xml
docs/pom.xml
features/features-controller-experimental/pom.xml
features/features-controller-testing/pom.xml
features/features-controller/pom.xml
features/odl-clustering-test-app/src/main/feature/feature.xml
features/odl-controller-blueprint/src/main/feature/feature.xml
features/odl-controller-broker-local/src/main/feature/feature.xml
features/odl-controller-exp-netty-config/src/main/feature/feature.xml
features/odl-controller-mdsal-common/src/main/feature/feature.xml
features/odl-mdsal-broker/src/main/feature/feature.xml
features/odl-mdsal-clustering-commons/src/main/feature/feature.xml
features/odl-mdsal-distributed-datastore/src/main/feature/feature.xml
features/odl-mdsal-model-inventory/src/main/feature/feature.xml
features/odl-toaster/src/main/feature/feature.xml
features/pom.xml
features/single-feature-parent/pom.xml
jolokia/pom.xml
karaf/pom.xml
model/model-inventory/pom.xml
model/pom.xml
opendaylight/blueprint/pom.xml
opendaylight/blueprint/src/main/java/org/opendaylight/controller/blueprint/ext/BindingContext.java
opendaylight/blueprint/src/main/java/org/opendaylight/controller/blueprint/ext/DataStoreAppConfigDefaultXMLReader.java
opendaylight/blueprint/src/main/java/org/opendaylight/controller/blueprint/ext/DataStoreAppConfigMetadata.java
opendaylight/config/netty-event-executor-config/pom.xml
opendaylight/config/netty-threadgroup-config/pom.xml
opendaylight/config/netty-timer-config/pom.xml
opendaylight/config/pom.xml
opendaylight/config/threadpool-config-api/pom.xml
opendaylight/config/threadpool-config-impl/pom.xml
opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/ReadTransactionSuccess.java
opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/ReadTransactionSuccessProxyV1.java
opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/TransactionDataModification.java
opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/TransactionMerge.java
opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/TransactionWrite.java
opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/ModifyTransactionRequestBuilderTest.java
opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/ModifyTransactionRequestTest.java
opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/ReadTransactionSuccessNoDataTest.java
opendaylight/md-sal/cds-access-api/src/test/java/org/opendaylight/controller/cluster/access/commands/ReadTransactionSuccessTest.java
opendaylight/md-sal/mdsal-it-base/pom.xml
opendaylight/md-sal/mdsal-it-parent/pom.xml
opendaylight/md-sal/parent/pom.xml
opendaylight/md-sal/pom.xml
opendaylight/md-sal/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/RaftActor.java
opendaylight/md-sal/sal-cluster-admin-impl/src/test/java/org/opendaylight/controller/cluster/datastore/admin/ClusterAdminRpcServiceTest.java
opendaylight/md-sal/sal-clustering-commons/pom.xml
opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/datastore/node/utils/NormalizedNodeNavigator.java
opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/datastore/node/utils/NormalizedNodeVisitor.java
opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/datastore/node/utils/stream/SerializationUtils.java
opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/datastore/node/utils/transformer/AbstractNormalizedNodePruner.java
opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/datastore/util/AbstractDataTreeModificationCursor.java
opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/io/ChunkedOutputStream.java
opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/schema/provider/impl/RemoteSchemaProvider.java
opendaylight/md-sal/sal-clustering-commons/src/test/java/org/opendaylight/controller/cluster/datastore/node/utils/stream/SerializationUtilsTest.java
opendaylight/md-sal/sal-clustering-commons/src/test/java/org/opendaylight/controller/cluster/datastore/node/utils/transformer/NormalizedNodePrunerTest.java
opendaylight/md-sal/sal-clustering-commons/src/test/java/org/opendaylight/controller/cluster/datastore/node/utils/transformer/UintAdaptingPrunerTest.java
opendaylight/md-sal/sal-clustering-commons/src/test/java/org/opendaylight/controller/cluster/datastore/util/TestModel.java
opendaylight/md-sal/sal-clustering-config/pom.xml
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/AbstractDOMBrokerWriteTransaction.java
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/ClientBackedReadTransaction.java
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/ClientBackedReadWriteTransaction.java
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/ClientBackedWriteTransaction.java
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/DOMBrokerReadOnlyTransaction.java
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/DOMBrokerReadWriteTransaction.java
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/actors/dds/AbstractProxyTransaction.java
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/actors/dds/ClientSnapshot.java
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/actors/dds/ClientTransaction.java
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/actors/dds/LocalProxyTransaction.java
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/actors/dds/LocalReadOnlyProxyTransaction.java
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/actors/dds/LocalReadWriteProxyTransaction.java
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/actors/dds/RemoteProxyTransaction.java
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/FrontendReadOnlyTransaction.java
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/FrontendReadWriteTransaction.java
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/LocalTransactionContext.java
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/NoOpTransactionContext.java
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/RemoteTransactionContext.java
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/RootDataTreeChangeListenerActor.java
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardDataTree.java
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardRecoveryCoordinator.java
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/TransactionContext.java
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/TransactionModificationOperation.java
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/TransactionProxy.java
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/config/ConfigurationImpl.java
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/config/ModuleShardConfiguration.java
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/messages/ReadData.java
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/messages/ReadDataReply.java
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/messages/UpdateSchemaContext.java
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/modification/MergeModification.java
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/modification/WriteModification.java
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/AbstractDataTreeCandidateNode.java
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/AbstractVersionedShardDataTreeSnapshot.java
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/CommitTransactionPayload.java
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/DeletedDataTreeCandidateNode.java
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/MetadataShardDataTreeSnapshot.java
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/ModifiedDataTreeCandidateNode.java
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/persisted/ShardDataTreeSnapshot.java
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/shardstrategy/ShardStrategyFactory.java
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/utils/AbstractBatchedModificationsCursor.java
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/utils/DataTreeModificationOutput.java
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/utils/NormalizedNodeAggregator.java
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/utils/NormalizedNodeXMLOutput.java
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/utils/PruningDataTreeModification.java
opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/databroker/ClientBackedReadTransactionTest.java
opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/databroker/ClientBackedReadWriteTransactionTest.java
opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/databroker/ClientBackedWriteTransactionTest.java
opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/databroker/actors/dds/ClientSnapshotTest.java
opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/databroker/actors/dds/ClientTransactionTest.java
opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/databroker/actors/dds/RemoteProxyTransactionTest.java
opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/AbstractDistributedDataStoreIntegrationTest.java
opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/AbstractShardTest.java
opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/AbstractTransactionProxyTest.java
opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/DataTreeCohortIntegrationTest.java
opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/DatastoreSnapshotRestoreTest.java
opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/DistributedDataStoreIntegrationTest.java
opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/DistributedDataStoreRemotingIntegrationTest.java
opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/DistributedDataStoreWithSegmentedJournalIntegrationTest.java
opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/IntegrationTestKit.java
opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/LocalTransactionContextTest.java
opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/ShardCommitCoordinationTest.java
opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/ShardDataTreeTest.java
opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/ShardRecoveryCoordinatorTest.java
opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/ShardTest.java
opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/ShardTransactionTest.java
opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/TransactionChainProxyTest.java
opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/TransactionProxyTest.java
opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/actors/ShardSnapshotActorTest.java
opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/config/ConfigurationImplBaseTest.java
opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/config/ConfigurationImplTest.java
opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/messages/BatchedModificationsTest.java
opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/messages/ReadDataReplyTest.java
opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/modification/AbstractModificationTest.java
opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/modification/DeleteModificationTest.java
opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/modification/MergeModificationTest.java
opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/modification/MutableCompositeModificationTest.java
opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/modification/WriteModificationTest.java
opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/persisted/CommitTransactionPayloadTest.java
opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/persisted/ShardDataTreeSnapshotTest.java
opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/persisted/ShardSnapshotStateTest.java
opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/shardmanager/ShardManagerTest.java
opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/utils/MockDataTreeChangeListener.java
opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/utils/NormalizedNodeAggregatorTest.java
opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/utils/PruningDataTreeModificationTest.java
opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/md/cluster/datastore/model/CarsModel.java
opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/md/cluster/datastore/model/CompositeModel.java
opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/md/cluster/datastore/model/PeopleModel.java
opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/md/cluster/datastore/model/TestModel.java
opendaylight/md-sal/sal-distributed-eos/src/main/java/org/opendaylight/controller/cluster/entityownership/AbstractEntityOwnerChangeListener.java
opendaylight/md-sal/sal-distributed-eos/src/main/java/org/opendaylight/controller/cluster/entityownership/DistributedEntityOwnershipService.java
opendaylight/md-sal/sal-distributed-eos/src/main/java/org/opendaylight/controller/cluster/entityownership/EntityOwnerChangeListener.java
opendaylight/md-sal/sal-distributed-eos/src/main/java/org/opendaylight/controller/cluster/entityownership/EntityOwnersModel.java
opendaylight/md-sal/sal-distributed-eos/src/main/java/org/opendaylight/controller/cluster/entityownership/EntityOwnershipShard.java
opendaylight/md-sal/sal-distributed-eos/src/main/java/org/opendaylight/controller/cluster/entityownership/EntityOwnershipStatistics.java
opendaylight/md-sal/sal-distributed-eos/src/test/java/org/opendaylight/controller/cluster/entityownership/AbstractEntityOwnershipTest.java
opendaylight/md-sal/sal-distributed-eos/src/test/java/org/opendaylight/controller/cluster/entityownership/CandidateListChangeListenerTest.java
opendaylight/md-sal/sal-distributed-eos/src/test/java/org/opendaylight/controller/cluster/entityownership/DistributedEntityOwnershipIntegrationTest.java
opendaylight/md-sal/sal-distributed-eos/src/test/java/org/opendaylight/controller/cluster/entityownership/EntityOwnerChangeListenerTest.java
opendaylight/md-sal/sal-distributed-eos/src/test/java/org/opendaylight/controller/cluster/entityownership/EntityOwnershipStatisticsTest.java
opendaylight/md-sal/sal-remoterpc-connector/src/main/java/org/opendaylight/controller/remote/rpc/RemoteRpcImplementation.java
opendaylight/md-sal/sal-remoterpc-connector/src/main/java/org/opendaylight/controller/remote/rpc/messages/AbstractExecute.java
opendaylight/md-sal/sal-remoterpc-connector/src/main/java/org/opendaylight/controller/remote/rpc/messages/AbstractResponse.java
opendaylight/md-sal/sal-remoterpc-connector/src/main/java/org/opendaylight/controller/remote/rpc/messages/ActionResponse.java
opendaylight/md-sal/sal-remoterpc-connector/src/main/java/org/opendaylight/controller/remote/rpc/messages/ExecuteRpc.java
opendaylight/md-sal/sal-remoterpc-connector/src/main/java/org/opendaylight/controller/remote/rpc/messages/RpcResponse.java
opendaylight/md-sal/sal-remoterpc-connector/src/test/java/org/opendaylight/controller/remote/rpc/AbstractOpsTest.java
opendaylight/md-sal/sal-remoterpc-connector/src/test/java/org/opendaylight/controller/remote/rpc/RemoteOpsImplementationTest.java
opendaylight/md-sal/sal-remoterpc-connector/src/test/java/org/opendaylight/controller/remote/rpc/registry/ActionRegistryTest.java
opendaylight/md-sal/sal-remoterpc-connector/src/test/java/org/opendaylight/controller/remote/rpc/registry/RpcRegistryTest.java
opendaylight/md-sal/samples/clustering-test-app/configuration/pom.xml
opendaylight/md-sal/samples/clustering-test-app/pom.xml
opendaylight/md-sal/samples/clustering-test-app/provider/src/main/java/org/opendaylight/controller/clustering/it/provider/CarEntryDataTreeCommitCohort.java
opendaylight/md-sal/samples/clustering-test-app/provider/src/main/java/org/opendaylight/controller/clustering/it/provider/MdsalLowLevelTestProvider.java
opendaylight/md-sal/samples/clustering-test-app/provider/src/main/java/org/opendaylight/controller/clustering/it/provider/impl/GetConstantService.java
opendaylight/md-sal/samples/clustering-test-app/provider/src/main/java/org/opendaylight/controller/clustering/it/provider/impl/IdIntsListener.java
opendaylight/md-sal/samples/clustering-test-app/provider/src/main/java/org/opendaylight/controller/clustering/it/provider/impl/RoutedGetConstantService.java
opendaylight/md-sal/samples/clustering-test-app/provider/src/main/java/org/opendaylight/controller/clustering/it/provider/impl/SingletonGetConstantService.java
opendaylight/md-sal/samples/clustering-test-app/provider/src/main/java/org/opendaylight/controller/clustering/it/provider/impl/WriteTransactionsHandler.java
opendaylight/md-sal/samples/pom.xml
pom.xml

index 9d619cf..78d8357 100644 (file)
@@ -11,7 +11,7 @@
     <parent>
         <groupId>org.opendaylight.odlparent</groupId>
         <artifactId>odlparent-lite</artifactId>
-        <version>8.1.1</version>
+        <version>9.0.1</version>
         <relativePath/>
     </parent>
 
index 06bb47f..143e14d 100644 (file)
@@ -13,7 +13,7 @@
     <parent>
         <groupId>org.opendaylight.odlparent</groupId>
         <artifactId>odlparent</artifactId>
-        <version>8.1.1</version>
+        <version>9.0.1</version>
         <relativePath/>
     </parent>
 
index 9e734e4..b56e4b9 100644 (file)
@@ -14,7 +14,7 @@
     <parent>
         <groupId>org.opendaylight.odlparent</groupId>
         <artifactId>odlparent-lite</artifactId>
-        <version>8.1.1</version>
+        <version>9.0.1</version>
         <relativePath/>
     </parent>
 
index ad47c2c..6886864 100644 (file)
@@ -16,8 +16,9 @@ import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates;
 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.SystemMapNode;
+import org.opendaylight.yangtools.yang.data.api.schema.builder.CollectionNodeBuilder;
 import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes;
-import org.opendaylight.yangtools.yang.data.impl.schema.builder.api.CollectionNodeBuilder;
 
 public final class DomListBuilder {
     // Inner List Qname identifiers for yang model's 'name' and 'value'
@@ -44,7 +45,7 @@ public final class DomListBuilder {
     }
 
     private static MapNode buildInnerList(final int index, final int elements) {
-        CollectionNodeBuilder<MapEntryNode, MapNode> innerList = ImmutableNodes.mapNodeBuilder(InnerList.QNAME);
+        CollectionNodeBuilder<MapEntryNode, SystemMapNode> innerList = ImmutableNodes.mapNodeBuilder(InnerList.QNAME);
 
         final String itemStr = "Item-" + String.valueOf(index) + "-";
         for (int i = 0; i < elements; i++) {
index 32ae8e6..4e9a59a 100644 (file)
@@ -62,11 +62,11 @@ public class SimpletxDomRead extends DatastoreAbstractWriter {
         try (DOMDataTreeReadTransaction tx = domDataBroker.newReadOnlyTransaction()) {
             for (int l = 0; l < outerListElem; l++) {
                 YangInstanceIdentifier yid = pid.node(NodeIdentifierWithPredicates.of(OuterList.QNAME, olId, l));
-                FluentFuture<Optional<NormalizedNode<?, ?>>> submitFuture = tx.read(dsType, yid);
+                FluentFuture<Optional<NormalizedNode>> submitFuture = tx.read(dsType, yid);
                 try {
-                    Optional<NormalizedNode<?,?>> optionalDataObject = submitFuture.get();
+                    Optional<NormalizedNode> optionalDataObject = submitFuture.get();
                     if (optionalDataObject != null && optionalDataObject.isPresent()) {
-                        NormalizedNode<?, ?> ret = optionalDataObject.get();
+                        NormalizedNode ret = optionalDataObject.get();
                         LOG.trace("optionalDataObject is {}", ret);
                         txOk++;
                     } else {
index 4ff133d..5c70edc 100644 (file)
@@ -61,8 +61,8 @@ public class TxchainDomRead extends DatastoreAbstractWriter implements DOMTransa
         try (DOMDataTreeReadTransaction tx = domDataBroker.newReadOnlyTransaction()) {
             for (int l = 0; l < outerListElem; l++) {
                 YangInstanceIdentifier yid = pid.node(NodeIdentifierWithPredicates.of(OuterList.QNAME, olId, l));
-                Optional<NormalizedNode<?,?>> optionalDataObject;
-                FluentFuture<Optional<NormalizedNode<?, ?>>> submitFuture = tx.read(dsType, yid);
+                Optional<NormalizedNode> optionalDataObject;
+                FluentFuture<Optional<NormalizedNode>> submitFuture = tx.read(dsType, yid);
                 try {
                     optionalDataObject = submitFuture.get();
                     if (optionalDataObject != null && optionalDataObject.isPresent()) {
index c58390a..cc7ec71 100644 (file)
@@ -10,7 +10,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html
   <parent>
     <groupId>org.opendaylight.odlparent</groupId>
     <artifactId>odlparent-lite</artifactId>
-    <version>8.1.1</version>
+    <version>9.0.1</version>
     <relativePath/>
   </parent>
 
index b2c8e43..7bc1df3 100644 (file)
@@ -11,7 +11,7 @@
     <parent>
         <groupId>org.opendaylight.mdsal</groupId>
         <artifactId>dom-parent</artifactId>
-        <version>7.0.6</version>
+        <version>8.0.0-SNAPSHOT</version>
         <relativePath/>
     </parent>
 
index e7871cf..8cf8f4b 100644 (file)
@@ -12,7 +12,7 @@
     <parent>
         <groupId>org.opendaylight.odlparent</groupId>
         <artifactId>odlparent</artifactId>
-        <version>8.1.1</version>
+        <version>9.0.1</version>
         <relativePath/>
     </parent>
 
                         <link>https://commons.apache.org/proper/commons-lang/javadocs/api-3.9/</link>
                         <link>https://commons.apache.org/proper/commons-codec/apidocs/</link>
 
-                        <link>https://www.javadoc.io/doc/org.opendaylight.odlparent/odlparent-docs/8.1.1/</link>
-                        <link>https://www.javadoc.io/doc/org.opendaylight.yangtools/yangtools-docs/6.0.5/</link>
-                        <link>https://www.javadoc.io/doc/org.opendaylight.mdsal/mdsal-docs/7.0.6/</link>
+                        <link>https://www.javadoc.io/doc/org.opendaylight.odlparent/odlparent-docs/9.0.1/</link>
+                        <link>https://www.javadoc.io/doc/org.opendaylight.yangtools/yangtools-docs/7.0.1/</link>
+                        <link>https://www.javadoc.io/doc/org.opendaylight.mdsal/mdsal-docs/8.0.0-SNAPSHOT/</link>
                     </links>
                     <groups>
                         <group>
index d0a9595..306700e 100644 (file)
@@ -11,7 +11,7 @@
     <parent>
         <groupId>org.opendaylight.odlparent</groupId>
         <artifactId>feature-repo-parent</artifactId>
-        <version>8.1.1</version>
+        <version>9.0.1</version>
         <relativePath/>
     </parent>
 
index d5d0b9e..0d8857f 100644 (file)
@@ -11,7 +11,7 @@
     <parent>
         <groupId>org.opendaylight.odlparent</groupId>
         <artifactId>feature-repo-parent</artifactId>
-        <version>8.1.1</version>
+        <version>9.0.1</version>
         <relativePath/>
     </parent>
 
index bb558a7..58156e2 100644 (file)
@@ -11,7 +11,7 @@
     <parent>
         <groupId>org.opendaylight.odlparent</groupId>
         <artifactId>feature-repo-parent</artifactId>
-        <version>8.1.1</version>
+        <version>9.0.1</version>
         <relativePath/>
     </parent>
 
index 96ef656..7829413 100644 (file)
@@ -8,6 +8,6 @@
  -->
 <features xmlns="http://karaf.apache.org/xmlns/features/v1.2.0" name="odl-clustering-test-app-${project.version}">
     <feature name="odl-clustering-test-app" version="${project.version}">
-        <feature version="[7,8)">odl-mdsal-model-rfc6991</feature>
+        <feature version="[8,9)">odl-mdsal-model-rfc6991</feature>
     </feature>
 </features>
index 86adcc6..c18573a 100644 (file)
@@ -8,10 +8,10 @@
  -->
 <features xmlns="http://karaf.apache.org/xmlns/features/v1.2.0" name="odl-controller-blueprint-${project.version}">
     <feature name="odl-controller-blueprint" version="${project.version}">
-        <feature version="[6,7)">odl-yangtools-codec</feature>
-        <feature version="[7,8)">odl-mdsal-binding-api</feature>
-        <feature version="[7,8)">odl-mdsal-binding-runtime</feature>
-        <feature version="[7,8)">odl-mdsal-dom-api</feature>
+        <feature version="[7,8)">odl-yangtools-codec</feature>
+        <feature version="[8,9)">odl-mdsal-binding-api</feature>
+        <feature version="[8,9)">odl-mdsal-binding-runtime</feature>
+        <feature version="[8,9)">odl-mdsal-dom-api</feature>
         <bundle start-level="40">mvn:org.opendaylight.controller/blueprint/${project.version}</bundle>
     </feature>
 </features>
index 62cf54e..9a765be 100644 (file)
@@ -8,9 +8,9 @@
  -->
 <features xmlns="http://karaf.apache.org/xmlns/features/v1.2.0" name="odl-mdsal-${project.version}">
     <feature name="odl-controller-broker-local" version="${project.version}">
-        <feature version="[7,8)">odl-mdsal-dom</feature>
-        <feature version="[7,8)">odl-mdsal-eos-binding</feature>
-        <feature version="[7,8)">odl-mdsal-eos-dom</feature>
-        <feature version="[7,8)">odl-mdsal-singleton-dom</feature>
+        <feature version="[8,9)">odl-mdsal-dom</feature>
+        <feature version="[8,9)">odl-mdsal-eos-binding</feature>
+        <feature version="[8,9)">odl-mdsal-eos-dom</feature>
+        <feature version="[8,9)">odl-mdsal-singleton-dom</feature>
     </feature>
 </features>
index 70c4c6b..2eac124 100644 (file)
@@ -8,6 +8,6 @@
  -->
 <features xmlns="http://karaf.apache.org/xmlns/features/v1.4.0" name="odl-controller-exp-netty-config">
     <feature name="odl-controller-exp-netty-config">
-        <feature version="[8,9)">odl-netty-4</feature>
+        <feature version="[9,10)">odl-netty-4</feature>
     </feature>
 </features>
index 2dd5b08..ffc3418 100644 (file)
@@ -8,7 +8,7 @@
  -->
 <features xmlns="http://karaf.apache.org/xmlns/features/v1.2.0" name="odl-controller-mdsal-common-${project.version}">
     <feature name="odl-controller-mdsal-common" version="${project.version}">
-        <feature version="[7,8)">odl-mdsal-common</feature>
-        <feature version="[7,8)">odl-mdsal-binding-runtime</feature>
+        <feature version="[8,9)">odl-mdsal-common</feature>
+        <feature version="[8,9)">odl-mdsal-binding-runtime</feature>
     </feature>
 </features>
index 2e38fd3..11af945 100644 (file)
@@ -8,7 +8,7 @@
  -->
 <features xmlns="http://karaf.apache.org/xmlns/features/v1.2.0" name="odl-mdsal-${project.version}">
     <feature name="odl-mdsal-broker" version="${project.version}">
-        <feature version="[7,8)">odl-mdsal-singleton-dom</feature>
-        <feature version="[7,8)">odl-mdsal-eos-binding</feature>
+        <feature version="[8,9)">odl-mdsal-singleton-dom</feature>
+        <feature version="[8,9)">odl-mdsal-eos-binding</feature>
     </feature>
 </features>
index e6ed305..9a048e9 100644 (file)
@@ -8,10 +8,10 @@
   -->
 <features xmlns="http://karaf.apache.org/xmlns/features/v1.4.0" name="odl-controller-${project.version}">
     <feature name="odl-mdsal-clustering-commons" version="${project.version}">
-        <feature version="[8,9)">odl-apache-commons-lang3</feature>
-        <feature version="[8,9)">odl-dropwizard-metrics</feature>
-        <feature version="[8,9)">odl-servlet-api</feature>
-        <feature version="[6,7)">odl-yangtools-data</feature>
-        <feature version="[6,7)">odl-yangtools-codec</feature>
+        <feature version="[9,10)">odl-apache-commons-lang3</feature>
+        <feature version="[9,10)">odl-dropwizard-metrics</feature>
+        <feature version="[9,10)">odl-servlet-api</feature>
+        <feature version="[7,8)">odl-yangtools-data</feature>
+        <feature version="[7,8)">odl-yangtools-codec</feature>
     </feature>
 </features>
index 9d1375b..756bd7c 100644 (file)
@@ -8,11 +8,11 @@
   -->
 <features xmlns="http://karaf.apache.org/xmlns/features/v1.4.0" name="odl-controller-${project.version}">
     <feature name="odl-mdsal-distributed-datastore" version="${project.version}">
-        <feature version="[8,9)">odl-apache-commons-text</feature>
-        <feature version="[6,7)">odl-yangtools-codec</feature>
-        <feature version="[7,8)">odl-mdsal-eos-dom</feature>
-        <feature version="[7,8)">odl-mdsal-dom-broker</feature>
-        <feature version="[7,8)">odl-mdsal-binding-dom-adapter</feature>
+        <feature version="[9,10)">odl-apache-commons-text</feature>
+        <feature version="[7,8)">odl-yangtools-codec</feature>
+        <feature version="[8,9)">odl-mdsal-eos-dom</feature>
+        <feature version="[8,9)">odl-mdsal-dom-broker</feature>
+        <feature version="[8,9)">odl-mdsal-binding-dom-adapter</feature>
         <configfile finalname="configuration/initial/akka.conf">
             mvn:org.opendaylight.controller/sal-clustering-config/${project.version}/xml/akkaconf
         </configfile>
@@ -29,4 +29,4 @@
             mvn:org.opendaylight.controller/sal-clustering-config/${project.version}/cfg/datastore
         </configfile>
     </feature>
-</features>
\ No newline at end of file
+</features>
index 0639485..2702dbd 100644 (file)
@@ -8,6 +8,6 @@
  -->
 <features xmlns="http://karaf.apache.org/xmlns/features/v1.2.0" name="odl-mdsal-model-inventory-${project.version}">
     <feature name="odl-mdsal-model-inventory" version="${project.version}">
-        <feature version="[7,8)">odl-mdsal-model-rfc6991</feature>
+        <feature version="[8,9)">odl-mdsal-model-rfc6991</feature>
     </feature>
 </features>
index 6c4e821..07800a6 100644 (file)
@@ -8,6 +8,6 @@
  -->
 <features xmlns="http://karaf.apache.org/xmlns/features/v1.2.0" name="odl-toaster-${project.version}">
     <feature name="odl-toaster" version="${project.version}">
-        <feature version="[7,8)">odl-mdsal-binding-runtime</feature>
+        <feature version="[8,9)">odl-mdsal-binding-runtime</feature>
     </feature>
 </features>
index ff8b8e1..e2e799b 100644 (file)
@@ -11,7 +11,7 @@
   <parent>
     <groupId>org.opendaylight.odlparent</groupId>
     <artifactId>odlparent-lite</artifactId>
-    <version>8.1.1</version>
+    <version>9.0.1</version>
     <relativePath/>
   </parent>
 
index d6c88e4..1690690 100644 (file)
@@ -11,7 +11,7 @@
     <parent>
         <groupId>org.opendaylight.odlparent</groupId>
         <artifactId>single-feature-parent</artifactId>
-        <version>8.1.1</version>
+        <version>9.0.1</version>
         <relativePath/>
     </parent>
 
index b66a71b..84be0c5 100644 (file)
@@ -11,7 +11,7 @@
   <parent>
     <groupId>org.opendaylight.odlparent</groupId>
     <artifactId>odlparent</artifactId>
-    <version>8.1.1</version>
+    <version>9.0.1</version>
     <relativePath/>
   </parent>
 
index b8613f8..0453321 100644 (file)
@@ -11,7 +11,7 @@
   <parent>
     <groupId>org.opendaylight.odlparent</groupId>
     <artifactId>karaf4-parent</artifactId>
-    <version>8.1.1</version>
+    <version>9.0.1</version>
     <relativePath/>
   </parent>
 
index db709be..379181d 100644 (file)
@@ -13,7 +13,7 @@
     <parent>
         <groupId>org.opendaylight.mdsal</groupId>
         <artifactId>binding-parent</artifactId>
-        <version>7.0.6</version>
+        <version>8.0.0-SNAPSHOT</version>
         <relativePath/>
     </parent>
 
index 878256e..9c51951 100644 (file)
@@ -12,7 +12,7 @@
     <parent>
         <groupId>org.opendaylight.odlparent</groupId>
         <artifactId>odlparent-lite</artifactId>
-        <version>8.1.1</version>
+        <version>9.0.1</version>
         <relativePath/>
     </parent>
 
index 923d79d..5b4cb45 100644 (file)
@@ -12,7 +12,7 @@
   <parent>
     <groupId>org.opendaylight.odlparent</groupId>
     <artifactId>bundle-parent</artifactId>
-    <version>8.1.1</version>
+    <version>9.0.1</version>
     <relativePath/>
   </parent>
 
       <dependency>
         <groupId>org.opendaylight.yangtools</groupId>
         <artifactId>yangtools-artifacts</artifactId>
-        <version>6.0.5</version>
+        <version>7.0.1</version>
         <type>pom</type>
         <scope>import</scope>
       </dependency>
       <dependency>
         <groupId>org.opendaylight.mdsal</groupId>
         <artifactId>mdsal-artifacts</artifactId>
-        <version>7.0.6</version>
+        <version>8.0.0-SNAPSHOT</version>
         <type>pom</type>
         <scope>import</scope>
       </dependency>
index e519857..dd672e4 100644 (file)
@@ -7,12 +7,14 @@
  */
 package org.opendaylight.controller.blueprint.ext;
 
-import com.google.common.base.Preconditions;
+import static com.google.common.base.Preconditions.checkArgument;
+
 import com.google.common.base.Strings;
+import com.google.common.collect.Iterables;
 import java.io.IOException;
 import java.lang.reflect.InvocationTargetException;
 import java.net.URISyntaxException;
-import java.util.List;
+import java.util.Set;
 import javax.xml.parsers.ParserConfigurationException;
 import javax.xml.stream.XMLStreamException;
 import javax.xml.transform.dom.DOMSource;
@@ -32,8 +34,10 @@ import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNormalizedNodeS
 import org.opendaylight.yangtools.yang.data.impl.schema.NormalizedNodeResult;
 import org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.DataSchemaNode;
-import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
 import org.opendaylight.yangtools.yang.model.api.ListSchemaNode;
+import org.opendaylight.yangtools.yang.model.api.SchemaTreeInference;
+import org.opendaylight.yangtools.yang.model.api.stmt.KeyEffectiveStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.SchemaTreeEffectiveStatement;
 import org.osgi.service.blueprint.container.ComponentDefinitionException;
 import org.w3c.dom.Element;
 import org.xml.sax.SAXException;
@@ -84,25 +88,24 @@ public abstract class BindingContext {
         bindingQName = BindingReflections.findQName(appConfigBindingClass);
     }
 
-    public NormalizedNode<?, ?> parseDataElement(final Element element, final DataSchemaNode dataSchema,
-            final EffectiveModelContext schemaContext) throws XMLStreamException, IOException,
-                ParserConfigurationException, SAXException, URISyntaxException {
+    public NormalizedNode parseDataElement(final Element element, final SchemaTreeInference dataSchema)
+            throws XMLStreamException, IOException, ParserConfigurationException, SAXException, URISyntaxException {
         final NormalizedNodeResult resultHolder = new NormalizedNodeResult();
         final NormalizedNodeStreamWriter writer = ImmutableNormalizedNodeStreamWriter.from(resultHolder);
-        final XmlParserStream xmlParser = XmlParserStream.create(writer, schemaContext, dataSchema);
+        final XmlParserStream xmlParser = XmlParserStream.create(writer, dataSchema);
         xmlParser.traverse(new DOMSource(element));
 
-        final NormalizedNode<?, ?> result = resultHolder.getResult();
+        final NormalizedNode result = resultHolder.getResult();
         if (result instanceof MapNode) {
             final MapNode mapNode = (MapNode) result;
-            final MapEntryNode mapEntryNode = mapNode.getValue().iterator().next();
+            final MapEntryNode mapEntryNode = mapNode.body().iterator().next();
             return mapEntryNode;
         }
 
         return result;
     }
 
-    public abstract NormalizedNode<?, ?> newDefaultNode(DataSchemaNode dataSchema);
+    public abstract NormalizedNode newDefaultNode(SchemaTreeInference dataSchema);
 
     /**
      * BindingContext implementation for a container binding.
@@ -115,7 +118,7 @@ public abstract class BindingContext {
         }
 
         @Override
-        public NormalizedNode<?, ?> newDefaultNode(final DataSchemaNode dataSchema) {
+        public NormalizedNode newDefaultNode(final SchemaTreeInference dataSchema) {
             return ImmutableNodes.containerNode(bindingQName);
         }
     }
@@ -146,11 +149,15 @@ public abstract class BindingContext {
         }
 
         @Override
-        public NormalizedNode<?, ?> newDefaultNode(final DataSchemaNode dataSchema) {
+        public NormalizedNode newDefaultNode(final SchemaTreeInference dataSchema) {
+            final SchemaTreeEffectiveStatement<?> stmt = Iterables.getLast(dataSchema.statementPath());
+
             // We assume there's only one key for the list.
-            List<QName> keys = ((ListSchemaNode)dataSchema).getKeyDefinition();
-            Preconditions.checkArgument(keys.size() == 1, "Expected only 1 key for list %s", appConfigBindingClass);
-            QName listKeyQName = keys.get(0);
+            final Set<QName> keys = stmt.findFirstEffectiveSubstatementArgument(KeyEffectiveStatement.class)
+                .orElseThrow();
+
+            checkArgument(keys.size() == 1, "Expected only 1 key for list %s", appConfigBindingClass);
+            QName listKeyQName = keys.iterator().next();
             return ImmutableNodes.mapEntryBuilder(bindingQName, listKeyQName, appConfigListKeyValue).build();
         }
     }
index 6f32371..c147492 100644 (file)
@@ -20,13 +20,13 @@ import org.opendaylight.mdsal.binding.dom.codec.api.BindingNormalizedNodeSeriali
 import org.opendaylight.mdsal.dom.api.DOMSchemaService;
 import org.opendaylight.yangtools.util.xml.UntrustedXML;
 import org.opendaylight.yangtools.yang.binding.DataObject;
-import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
 import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
-import org.opendaylight.yangtools.yang.model.api.DataSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
 import org.opendaylight.yangtools.yang.model.api.Module;
-import org.opendaylight.yangtools.yang.model.api.SchemaContext;
+import org.opendaylight.yangtools.yang.model.api.SchemaTreeInference;
+import org.opendaylight.yangtools.yang.model.api.stmt.SchemaTreeEffectiveStatement;
+import org.opendaylight.yangtools.yang.model.util.SchemaInferenceStack;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.w3c.dom.Document;
@@ -53,8 +53,8 @@ public class DataStoreAppConfigDefaultXMLReader<T extends DataObject> {
 
     @FunctionalInterface
     public interface FallbackConfigProvider {
-        NormalizedNode<?,?> get(EffectiveModelContext schemaContext, DataSchemaNode dataSchema) throws IOException,
-                XMLStreamException, ParserConfigurationException, SAXException, URISyntaxException;
+        NormalizedNode get(SchemaTreeInference dataSchema)
+            throws IOException, XMLStreamException, ParserConfigurationException, SAXException, URISyntaxException;
     }
 
     @FunctionalInterface
@@ -95,9 +95,9 @@ public class DataStoreAppConfigDefaultXMLReader<T extends DataObject> {
 
     public T createDefaultInstance() throws ConfigXMLReaderException, ParserConfigurationException, XMLStreamException,
             IOException, SAXException, URISyntaxException {
-        return createDefaultInstance((schemaContext, dataSchema) -> {
-            throw new IllegalArgumentException("Failed to read XML "
-                    + "(not creating model from defaults as runtime would, for better clarity in tests)");
+        return createDefaultInstance(dataSchema -> {
+            throw new IllegalArgumentException(
+                "Failed to read XML (not creating model from defaults as runtime would, for better clarity in tests)");
         });
     }
 
@@ -117,19 +117,22 @@ public class DataStoreAppConfigDefaultXMLReader<T extends DataObject> {
         checkNotNull(module, "%s: Could not obtain the module schema for namespace %s, revision %s",
                 logName, bindingContext.bindingQName.getNamespace(), bindingContext.bindingQName.getRevision());
 
-        QName qname = bindingContext.bindingQName;
-        DataSchemaNode dataSchema = module.findDataChildByName(qname).orElseThrow(
-            () -> new ConfigXMLReaderException(logName + ": Could not obtain the schema for " + qname));
-
-        checkNotNull(dataSchema, "%s: Could not obtain the schema for %s", logName, bindingContext.bindingQName);
+        final SchemaInferenceStack schemaStack = SchemaInferenceStack.of(schemaContext);
+        final SchemaTreeEffectiveStatement<?> dataSchema;
+        try {
+            dataSchema = schemaStack.enterSchemaTree(bindingContext.bindingQName);
+        } catch (IllegalArgumentException e) {
+            throw new ConfigXMLReaderException(
+                logName + ": Could not obtain the schema for " + bindingContext.bindingQName, e);
+        }
 
-        checkCondition(bindingContext.schemaType.isAssignableFrom(dataSchema.getClass()),
+        checkCondition(bindingContext.schemaType.isInstance(dataSchema),
                 "%s: Expected schema type %s for %s but actual type is %s", logName,
                 bindingContext.schemaType, bindingContext.bindingQName, dataSchema.getClass());
 
-        NormalizedNode<?, ?> dataNode = parsePossibleDefaultAppConfigXMLFile(schemaContext, dataSchema);
+        NormalizedNode dataNode = parsePossibleDefaultAppConfigXMLFile(schemaStack);
         if (dataNode == null) {
-            dataNode = fallback.get(schemaService.getGlobalContext(), dataSchema);
+            dataNode = fallback.get(schemaStack.toSchemaTreeInference());
         }
 
         DataObject appConfig = bindingSerializer.fromNormalizedNode(yangPath, dataNode).getValue();
@@ -153,12 +156,12 @@ public class DataStoreAppConfigDefaultXMLReader<T extends DataObject> {
         }
     }
 
-    private NormalizedNode<?, ?> parsePossibleDefaultAppConfigXMLFile(final EffectiveModelContext schemaContext,
-            final DataSchemaNode dataSchema) throws ConfigXMLReaderException {
-
+    private NormalizedNode parsePossibleDefaultAppConfigXMLFile(final SchemaInferenceStack schemaStack)
+            throws ConfigXMLReaderException {
         String appConfigFileName = defaultAppConfigFileName;
         if (Strings.isNullOrEmpty(appConfigFileName)) {
-            String moduleName = findYangModuleName(bindingContext.bindingQName, schemaContext);
+            String moduleName = schemaStack.currentModule().argument().getLocalName();
+
             appConfigFileName = moduleName + "_" + bindingContext.bindingQName.getLocalName() + ".xml";
         }
 
@@ -176,8 +179,8 @@ public class DataStoreAppConfigDefaultXMLReader<T extends DataObject> {
         URL url = optionalURL.get();
         try (InputStream is = url.openStream()) {
             Document root = UntrustedXML.newDocumentBuilder().parse(is);
-            NormalizedNode<?, ?> dataNode = bindingContext.parseDataElement(root.getDocumentElement(), dataSchema,
-                    schemaContext);
+            NormalizedNode dataNode = bindingContext.parseDataElement(root.getDocumentElement(),
+                schemaStack.toSchemaTreeInference());
 
             LOG.debug("{}: Parsed data node: {}", logName, dataNode);
 
@@ -189,16 +192,4 @@ public class DataStoreAppConfigDefaultXMLReader<T extends DataObject> {
             throw new ConfigXMLReaderException(msg, e);
         }
     }
-
-    private String findYangModuleName(final QName qname, final SchemaContext schemaContext)
-            throws ConfigXMLReaderException {
-        for (Module m : schemaContext.getModules()) {
-            if (qname.getModule().equals(m.getQNameModule())) {
-                return m.getName();
-            }
-        }
-        throw new ConfigXMLReaderException(
-                String.format("%s: Could not find yang module for QName %s", logName, qname));
-    }
-
 }
index 0d3880e..5b20827 100644 (file)
@@ -36,8 +36,7 @@ import org.opendaylight.mdsal.dom.api.DOMSchemaService;
 import org.opendaylight.yangtools.concepts.ListenerRegistration;
 import org.opendaylight.yangtools.yang.binding.DataObject;
 import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
-import org.opendaylight.yangtools.yang.model.api.DataSchemaNode;
-import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
+import org.opendaylight.yangtools.yang.model.api.SchemaTreeInference;
 import org.osgi.service.blueprint.container.ComponentDefinitionException;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -257,9 +256,9 @@ public class DataStoreAppConfigMetadata extends AbstractDependentComponentFactor
             DataStoreAppConfigDefaultXMLReader<?> reader = new DataStoreAppConfigDefaultXMLReader<>(logName(),
                     defaultAppConfigFileName, getOSGiService(DOMSchemaService.class), bindingSerializer, bindingContext,
                     inputStreamProvider);
-            return reader.createDefaultInstance((schemaContext, dataSchema) -> {
+            return reader.createDefaultInstance(dataSchema -> {
                 // Fallback if file cannot be read, try XML from Config
-                NormalizedNode<?, ?> dataNode = parsePossibleDefaultAppConfigElement(schemaContext, dataSchema);
+                NormalizedNode dataNode = parsePossibleDefaultAppConfigElement(dataSchema);
                 if (dataNode == null) {
                     // or, as last resort, defaults from the model
                     return bindingContext.newDefaultNode(dataSchema);
@@ -279,9 +278,8 @@ public class DataStoreAppConfigMetadata extends AbstractDependentComponentFactor
         }
     }
 
-    private @Nullable NormalizedNode<?, ?> parsePossibleDefaultAppConfigElement(
-            final EffectiveModelContext schemaContext, final DataSchemaNode dataSchema) throws URISyntaxException,
-                IOException, ParserConfigurationException, SAXException, XMLStreamException {
+    private @Nullable NormalizedNode parsePossibleDefaultAppConfigElement(final SchemaTreeInference dataSchema)
+            throws URISyntaxException, IOException, ParserConfigurationException, SAXException, XMLStreamException {
         if (defaultAppConfigElement == null) {
             return null;
         }
@@ -290,8 +288,7 @@ public class DataStoreAppConfigMetadata extends AbstractDependentComponentFactor
 
         LOG.debug("{}: Got app config schema: {}", logName(), dataSchema);
 
-        NormalizedNode<?, ?> dataNode = bindingContext.parseDataElement(defaultAppConfigElement, dataSchema,
-                schemaContext);
+        NormalizedNode dataNode = bindingContext.parseDataElement(defaultAppConfigElement, dataSchema);
 
         LOG.debug("{}: Parsed data node: {}", logName(), dataNode);
 
index 20ea660..ebe4bcc 100644 (file)
@@ -5,7 +5,7 @@
   <parent>
     <groupId>org.opendaylight.odlparent</groupId>
     <artifactId>bundle-parent</artifactId>
-    <version>8.1.1</version>
+    <version>9.0.1</version>
     <relativePath/>
   </parent>
 
index fdb58f2..186eac3 100644 (file)
@@ -5,7 +5,7 @@
   <parent>
     <groupId>org.opendaylight.odlparent</groupId>
     <artifactId>bundle-parent</artifactId>
-    <version>8.1.1</version>
+    <version>9.0.1</version>
     <relativePath/>
   </parent>
 
index d6a3e2d..7b96b6a 100644 (file)
@@ -5,7 +5,7 @@
   <parent>
     <groupId>org.opendaylight.odlparent</groupId>
     <artifactId>bundle-parent</artifactId>
-    <version>8.1.1</version>
+    <version>9.0.1</version>
     <relativePath/>
   </parent>
 
index d05c389..be8c502 100644 (file)
@@ -4,7 +4,7 @@
   <parent>
     <groupId>org.opendaylight.odlparent</groupId>
     <artifactId>odlparent-lite</artifactId>
-    <version>8.1.1</version>
+    <version>9.0.1</version>
     <relativePath/>
   </parent>
 
index edac7f1..226b750 100644 (file)
@@ -5,7 +5,7 @@
   <parent>
     <groupId>org.opendaylight.odlparent</groupId>
     <artifactId>bundle-parent</artifactId>
-    <version>8.1.1</version>
+    <version>9.0.1</version>
     <relativePath/>
   </parent>
 
index c8c0894..000c6ae 100644 (file)
@@ -5,7 +5,7 @@
   <parent>
     <groupId>org.opendaylight.odlparent</groupId>
     <artifactId>bundle-parent</artifactId>
-    <version>8.1.1</version>
+    <version>9.0.1</version>
     <relativePath/>
   </parent>
 
index 5283257..1b3410e 100644 (file)
@@ -28,15 +28,15 @@ import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
 public final class ReadTransactionSuccess extends TransactionSuccess<ReadTransactionSuccess>
         implements SliceableMessage {
     private static final long serialVersionUID = 1L;
-    private final Optional<NormalizedNode<?, ?>> data;
+    private final Optional<NormalizedNode> data;
 
     public ReadTransactionSuccess(final TransactionIdentifier identifier, final long sequence,
-            final Optional<NormalizedNode<?, ?>> data) {
+            final Optional<NormalizedNode> data) {
         super(identifier, sequence);
         this.data = requireNonNull(data);
     }
 
-    public Optional<NormalizedNode<?, ?>> getData() {
+    public Optional<NormalizedNode> getData() {
         return data;
     }
 
index 357c3d9..d442f36 100644 (file)
@@ -26,7 +26,7 @@ import org.opendaylight.yangtools.yang.data.codec.binfmt.NormalizedNodeStreamVer
 final class ReadTransactionSuccessProxyV1 extends AbstractTransactionSuccessProxy<ReadTransactionSuccess> {
     private static final long serialVersionUID = 1L;
 
-    private Optional<NormalizedNode<?, ?>> data;
+    private Optional<NormalizedNode> data;
     private transient NormalizedNodeStreamVersion streamVersion;
 
     // checkstyle flags the public modifier as redundant however it is explicitly needed for Java serialization to
index eb2b308..9f0cb81 100644 (file)
@@ -22,14 +22,14 @@ import org.opendaylight.yangtools.yang.data.codec.binfmt.NormalizedNodeDataOutpu
  */
 @Beta
 public abstract class TransactionDataModification extends TransactionModification {
-    private final NormalizedNode<?, ?> data;
+    private final NormalizedNode data;
 
-    TransactionDataModification(final YangInstanceIdentifier path, final NormalizedNode<?, ?> data) {
+    TransactionDataModification(final YangInstanceIdentifier path, final NormalizedNode data) {
         super(path);
         this.data = requireNonNull(data);
     }
 
-    public final NormalizedNode<?, ?> getData() {
+    public final NormalizedNode getData() {
         return data;
     }
 
index 1d9bffd..bf2580f 100644 (file)
@@ -18,7 +18,7 @@ import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
  */
 @Beta
 public final class TransactionMerge extends TransactionDataModification {
-    public TransactionMerge(final YangInstanceIdentifier path, final NormalizedNode<?, ?> data) {
+    public TransactionMerge(final YangInstanceIdentifier path, final NormalizedNode data) {
         super(path, data);
     }
 
index b46cf38..4960c4a 100644 (file)
@@ -18,7 +18,7 @@ import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
  */
 @Beta
 public final class TransactionWrite extends TransactionDataModification {
-    public TransactionWrite(final YangInstanceIdentifier path, final NormalizedNode<?, ?> data) {
+    public TransactionWrite(final YangInstanceIdentifier path, final NormalizedNode data) {
         super(path, data);
     }
 
index f7f88ed..5f6f645 100644 (file)
@@ -8,12 +8,12 @@
 package org.opendaylight.controller.cluster.access.commands;
 
 import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
 
 import akka.actor.ActorRef;
 import akka.actor.ActorSystem;
 import akka.actor.Props;
 import akka.testkit.TestActors;
-import org.junit.Assert;
 import org.junit.Before;
 import org.junit.Test;
 import org.opendaylight.controller.cluster.access.concepts.ClientIdentifier;
@@ -36,7 +36,7 @@ public class ModifyTransactionRequestBuilderTest {
     private final TransactionIdentifier transactionIdentifier =
             new TransactionIdentifier(new LocalHistoryIdentifier(clientId, 0L), 0L);
     private final ActorRef actorRef = ActorSystem.create("test").actorOf(Props.create(TestActors.EchoActor.class));
-    private final NormalizedNode<?, ?> node = Builders.containerBuilder().withNodeIdentifier(
+    private final NormalizedNode node = Builders.containerBuilder().withNodeIdentifier(
             YangInstanceIdentifier.NodeIdentifier.create(QName.create("namespace", "localName"))).build();
     private final TransactionModification transactionModification =
             new TransactionWrite(YangInstanceIdentifier.empty(), node);
@@ -53,37 +53,37 @@ public class ModifyTransactionRequestBuilderTest {
     @Test
     public void testGetIdentifier() {
         final TransactionIdentifier identifier = modifyTransactionRequestBuilder.getIdentifier();
-        Assert.assertEquals(transactionIdentifier, identifier);
+        assertEquals(transactionIdentifier, identifier);
     }
 
     @Test
     public void testBuildReady() {
         modifyTransactionRequestBuilder.setReady();
         final ModifyTransactionRequest modifyTransactionRequest = modifyTransactionRequestBuilder.build();
-        Assert.assertEquals(PersistenceProtocol.READY, modifyTransactionRequest.getPersistenceProtocol().get());
-        Assert.assertEquals(transactionModification, modifyTransactionRequest.getModifications().get(0));
+        assertEquals(PersistenceProtocol.READY, modifyTransactionRequest.getPersistenceProtocol().get());
+        assertEquals(transactionModification, modifyTransactionRequest.getModifications().get(0));
     }
 
     @Test
     public void testBuildAbort() {
         modifyTransactionRequestBuilder.setAbort();
         final ModifyTransactionRequest modifyTransactionRequest = modifyTransactionRequestBuilder.build();
-        Assert.assertEquals(PersistenceProtocol.ABORT, modifyTransactionRequest.getPersistenceProtocol().get());
-        Assert.assertTrue(modifyTransactionRequest.getModifications().isEmpty());
+        assertEquals(PersistenceProtocol.ABORT, modifyTransactionRequest.getPersistenceProtocol().get());
+        assertTrue(modifyTransactionRequest.getModifications().isEmpty());
     }
 
     @Test
     public void testBuildCommitTrue() {
         modifyTransactionRequestBuilder.setCommit(true);
         final ModifyTransactionRequest modifyTransactionRequest = modifyTransactionRequestBuilder.build();
-        Assert.assertEquals(PersistenceProtocol.THREE_PHASE, modifyTransactionRequest.getPersistenceProtocol().get());
+        assertEquals(PersistenceProtocol.THREE_PHASE, modifyTransactionRequest.getPersistenceProtocol().get());
     }
 
     @Test
     public void testBuildCommitFalse() {
         modifyTransactionRequestBuilder.setCommit(false);
         final ModifyTransactionRequest modifyTransactionRequest = modifyTransactionRequestBuilder.build();
-        Assert.assertEquals(PersistenceProtocol.SIMPLE, modifyTransactionRequest.getPersistenceProtocol().get());
+        assertEquals(PersistenceProtocol.SIMPLE, modifyTransactionRequest.getPersistenceProtocol().get());
     }
 
 }
index d0e8401..7d0164f 100644 (file)
@@ -7,6 +7,9 @@
  */
 package org.opendaylight.controller.cluster.access.commands;
 
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
 import static org.opendaylight.controller.cluster.access.commands.TransactionModification.TYPE_WRITE;
 
 import com.google.common.base.MoreObjects;
@@ -18,12 +21,13 @@ import org.junit.Test;
 import org.opendaylight.controller.cluster.access.ABIVersion;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
-import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
+import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
+import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode;
 import org.opendaylight.yangtools.yang.data.impl.schema.Builders;
 
 public class ModifyTransactionRequestTest extends AbstractTransactionRequestTest<ModifyTransactionRequest> {
-    private static final NormalizedNode<?, ?> NODE = Builders.containerBuilder().withNodeIdentifier(
-            YangInstanceIdentifier.NodeIdentifier.create(QName.create("namespace", "localName"))).build();
+    private static final ContainerNode NODE = Builders.containerBuilder().withNodeIdentifier(
+            NodeIdentifier.create(QName.create("namespace", "localName"))).build();
 
     private static final List<TransactionModification> MODIFICATIONS = Lists.newArrayList(
             new TransactionWrite(YangInstanceIdentifier.empty(), NODE));
@@ -41,22 +45,22 @@ public class ModifyTransactionRequestTest extends AbstractTransactionRequestTest
     @Test
     public void getPersistenceProtocolTest() {
         final Optional<PersistenceProtocol> result = OBJECT.getPersistenceProtocol();
-        Assert.assertTrue(result.isPresent());
-        Assert.assertEquals(PROTOCOL, result.get());
+        assertTrue(result.isPresent());
+        assertEquals(PROTOCOL, result.get());
     }
 
     @Test
     public void getModificationsTest() {
         final List<TransactionModification> result = OBJECT.getModifications();
-        Assert.assertNotNull(result);
-        Assert.assertEquals(MODIFICATIONS, result);
+        assertNotNull(result);
+        assertEquals(MODIFICATIONS, result);
     }
 
     @Test
     public void addToStringAttributesTest() {
         final MoreObjects.ToStringHelper result = OBJECT.addToStringAttributes(MoreObjects.toStringHelper(OBJECT));
-        Assert.assertTrue(result.toString().contains("modifications=1"));
-        Assert.assertTrue(result.toString().contains("protocol=" + PROTOCOL));
+        assertTrue(result.toString().contains("modifications=1"));
+        assertTrue(result.toString().contains("protocol=" + PROTOCOL));
     }
 
     @Test
@@ -67,16 +71,16 @@ public class ModifyTransactionRequestTest extends AbstractTransactionRequestTest
 
     @Override
     protected void doAdditionalAssertions(final Object deserialize) {
-        Assert.assertTrue(deserialize instanceof ModifyTransactionRequest);
+        assertTrue(deserialize instanceof ModifyTransactionRequest);
         final ModifyTransactionRequest casted = (ModifyTransactionRequest) deserialize;
 
-        Assert.assertEquals(OBJECT.getReplyTo(), casted.getReplyTo());
-        Assert.assertEquals(OBJECT.getPersistenceProtocol(), casted.getPersistenceProtocol());
+        assertEquals(OBJECT.getReplyTo(), casted.getReplyTo());
+        assertEquals(OBJECT.getPersistenceProtocol(), casted.getPersistenceProtocol());
 
-        Assert.assertNotNull(casted.getModifications());
-        Assert.assertEquals(1, casted.getModifications().size());
+        assertNotNull(casted.getModifications());
+        assertEquals(1, casted.getModifications().size());
         final TransactionModification modification = casted.getModifications().get(0);
-        Assert.assertEquals(YangInstanceIdentifier.empty(), modification.getPath());
-        Assert.assertEquals(TYPE_WRITE, modification.getType());
+        assertEquals(YangInstanceIdentifier.empty(), modification.getPath());
+        assertEquals(TYPE_WRITE, modification.getType());
     }
 }
index 0a56e82..5125746 100644 (file)
@@ -7,8 +7,11 @@
  */
 package org.opendaylight.controller.cluster.access.commands;
 
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
 import java.util.Optional;
-import org.junit.Assert;
 import org.junit.Test;
 import org.opendaylight.controller.cluster.access.ABIVersion;
 import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
@@ -24,19 +27,19 @@ public class ReadTransactionSuccessNoDataTest extends AbstractTransactionSuccess
 
     @Test
     public void getDataTest() {
-        final Optional<NormalizedNode<?, ?>> result = OBJECT.getData();
-        Assert.assertFalse(result.isPresent());
+        final Optional<NormalizedNode> result = OBJECT.getData();
+        assertFalse(result.isPresent());
     }
 
     @Test
     public void cloneAsVersionTest() {
         final ReadTransactionSuccess clone = OBJECT.cloneAsVersion(ABIVersion.BORON);
-        Assert.assertEquals(OBJECT, clone);
+        assertEquals(OBJECT, clone);
     }
 
     @Override
-    protected void doAdditionalAssertions(Object deserialize) {
-        Assert.assertTrue(deserialize instanceof ReadTransactionSuccess);
-        Assert.assertEquals(OBJECT.getData(), ((ReadTransactionSuccess) deserialize).getData());
+    protected void doAdditionalAssertions(final Object deserialize) {
+        assertTrue(deserialize instanceof ReadTransactionSuccess);
+        assertEquals(OBJECT.getData(), ((ReadTransactionSuccess) deserialize).getData());
     }
 }
index a50dc5d..4bda8c8 100644 (file)
@@ -7,18 +7,21 @@
  */
 package org.opendaylight.controller.cluster.access.commands;
 
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
 import java.util.Optional;
-import org.junit.Assert;
 import org.junit.Test;
 import org.opendaylight.controller.cluster.access.ABIVersion;
 import org.opendaylight.yangtools.yang.common.QName;
-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;
 import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
 import org.opendaylight.yangtools.yang.data.impl.schema.Builders;
 
 public class ReadTransactionSuccessTest extends AbstractTransactionSuccessTest<ReadTransactionSuccess> {
-    private static final NormalizedNode<?, ?> NODE = Builders.containerBuilder().withNodeIdentifier(
-            YangInstanceIdentifier.NodeIdentifier.create(QName.create("namespace", "localName"))).build();
+    private static final ContainerNode NODE = Builders.containerBuilder().withNodeIdentifier(
+            NodeIdentifier.create(QName.create("namespace", "localName"))).build();
 
     private static final ReadTransactionSuccess OBJECT = new ReadTransactionSuccess(
             TRANSACTION_IDENTIFIER, 0, Optional.of(NODE));
@@ -30,20 +33,20 @@ public class ReadTransactionSuccessTest extends AbstractTransactionSuccessTest<R
 
     @Test
     public void getDataTest() {
-        final Optional<NormalizedNode<?, ?>> result = OBJECT.getData();
-        Assert.assertTrue(result.isPresent());
-        Assert.assertEquals(NODE.getValue(), result.get().getValue());
+        final Optional<NormalizedNode> result = OBJECT.getData();
+        assertTrue(result.isPresent());
+        assertEquals(NODE.body(), result.get().body());
     }
 
     @Test
     public void cloneAsVersionTest() {
         final ReadTransactionSuccess clone = OBJECT.cloneAsVersion(ABIVersion.BORON);
-        Assert.assertEquals(OBJECT, clone);
+        assertEquals(OBJECT, clone);
     }
 
     @Override
-    protected void doAdditionalAssertions(Object deserialize) {
-        Assert.assertTrue(deserialize instanceof ReadTransactionSuccess);
-        Assert.assertEquals(OBJECT.getData(), ((ReadTransactionSuccess) deserialize).getData());
+    protected void doAdditionalAssertions(final Object deserialize) {
+        assertTrue(deserialize instanceof ReadTransactionSuccess);
+        assertEquals(OBJECT.getData(), ((ReadTransactionSuccess) deserialize).getData());
     }
 }
index 6a5374b..75a993d 100644 (file)
@@ -12,7 +12,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html
   <parent>
     <groupId>org.opendaylight.odlparent</groupId>
     <artifactId>bundle-parent</artifactId>
-    <version>8.1.1</version>
+    <version>9.0.1</version>
     <relativePath/>
   </parent>
 
@@ -26,7 +26,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html
       <dependency>
         <groupId>org.opendaylight.mdsal</groupId>
         <artifactId>mdsal-artifacts</artifactId>
-        <version>7.0.6</version>
+        <version>8.0.0-SNAPSHOT</version>
         <type>pom</type>
         <scope>import</scope>
       </dependency>
@@ -93,13 +93,11 @@ and is available at http://www.eclipse.org/legal/epl-v10.html
     <dependency>
         <groupId>org.apache.geronimo.specs</groupId>
         <artifactId>geronimo-atinject_1.0_spec</artifactId>
-        <version>1.0</version>
     </dependency>
 
     <dependency>
         <groupId>org.apache.karaf.features</groupId>
         <artifactId>org.apache.karaf.features.core</artifactId>
-        <version>${karaf.version}</version>
         <scope>compile</scope>
     </dependency>
     <dependency>
index 0d509bd..46e5e53 100644 (file)
@@ -13,7 +13,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html
   <parent>
     <groupId>org.opendaylight.odlparent</groupId>
     <artifactId>bundle-parent</artifactId>
-    <version>8.1.1</version>
+    <version>9.0.1</version>
     <relativePath/>
   </parent>
 
index 830d01a..0bf9d7c 100644 (file)
@@ -11,7 +11,7 @@
   <parent>
     <groupId>org.opendaylight.mdsal</groupId>
     <artifactId>binding-parent</artifactId>
-    <version>7.0.6</version>
+    <version>8.0.0-SNAPSHOT</version>
     <relativePath/>
   </parent>
 
index 0f3ad47..23c93cf 100644 (file)
@@ -5,7 +5,7 @@
   <parent>
     <groupId>org.opendaylight.odlparent</groupId>
     <artifactId>odlparent-lite</artifactId>
-    <version>8.1.1</version>
+    <version>9.0.1</version>
     <relativePath/>
   </parent>
 
index 3bedc59..00f6a04 100644 (file)
@@ -213,7 +213,7 @@ public abstract class RaftActor extends AbstractUntypedPersistentActor {
      * Handles a message.
      *
      * @deprecated This method is not final for testing purposes. DO NOT OVERRIDE IT, override
-     * {@link #handleNonRaftCommand(Object)} instead.
+     *             {@link #handleNonRaftCommand(Object)} instead.
      */
     @Deprecated
     @Override
index 1362db7..f90a428 100644 (file)
@@ -26,18 +26,13 @@ import akka.actor.ActorRef;
 import akka.actor.PoisonPill;
 import akka.actor.Status.Success;
 import akka.cluster.Cluster;
-import com.google.common.collect.ImmutableList;
 import com.google.common.collect.ImmutableMap;
 import com.google.common.collect.Iterables;
 import com.google.common.collect.Lists;
-import com.google.common.collect.Sets;
 import java.io.File;
 import java.io.FileInputStream;
-import java.net.URI;
 import java.util.AbstractMap.SimpleEntry;
 import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.List;
@@ -95,6 +90,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.ShardResultKey;
 import org.opendaylight.yangtools.yang.common.RpcError;
 import org.opendaylight.yangtools.yang.common.RpcResult;
+import org.opendaylight.yangtools.yang.common.XMLNamespace;
 import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
 
 /**
@@ -173,7 +169,7 @@ public class ClusterAdminRpcServiceTest {
             shardNames.add(s.getName());
         }
 
-        assertEquals("DatastoreSnapshot shard names", Sets.newHashSet(expShardNames), shardNames);
+        assertEquals("DatastoreSnapshot shard names", Set.of(expShardNames), shardNames);
     }
 
     @Test
@@ -254,7 +250,7 @@ public class ClusterAdminRpcServiceTest {
         verifyRaftPeersPresent(newReplicaNode2.operDataStore(), "cars", "member-1", "member-3");
 
         // Write data to member-2's config datastore and read/verify via member-3
-        final NormalizedNode<?, ?> configCarsNode = writeCarsNodeAndVerify(newReplicaNode2.configDataStore(),
+        final NormalizedNode configCarsNode = writeCarsNodeAndVerify(newReplicaNode2.configDataStore(),
                 newReplicaNode3.configDataStore());
 
         // Write data to member-3's oper datastore and read/verify via member-2
@@ -311,10 +307,10 @@ public class ClusterAdminRpcServiceTest {
         verifyFailedRpcResult(rpcResult);
     }
 
-    private static NormalizedNode<?, ?> writeCarsNodeAndVerify(final AbstractDataStore writeToStore,
+    private static NormalizedNode writeCarsNodeAndVerify(final AbstractDataStore writeToStore,
             final AbstractDataStore readFromStore) throws Exception {
         DOMStoreWriteTransaction writeTx = writeToStore.newWriteOnlyTransaction();
-        NormalizedNode<?, ?> carsNode = CarsModel.create();
+        NormalizedNode carsNode = CarsModel.create();
         writeTx.write(CarsModel.BASE_PATH, carsNode);
 
         DOMStoreThreePhaseCommitCohort cohort = writeTx.ready();
@@ -328,8 +324,8 @@ public class ClusterAdminRpcServiceTest {
     }
 
     private static void readCarsNodeAndVerify(final AbstractDataStore readFromStore,
-            final NormalizedNode<?, ?> expCarsNode) throws Exception {
-        Optional<NormalizedNode<?, ?>> optional = readFromStore.newReadOnlyTransaction().read(CarsModel.BASE_PATH)
+            final NormalizedNode expCarsNode) throws Exception {
+        Optional<NormalizedNode> optional = readFromStore.newReadOnlyTransaction().read(CarsModel.BASE_PATH)
                 .get(15, TimeUnit.SECONDS);
         assertTrue("isPresent", optional.isPresent());
         assertEquals("Data node", expCarsNode, optional.get());
@@ -501,9 +497,8 @@ public class ClusterAdminRpcServiceTest {
         MemberNode leaderNode1 = MemberNode.builder(memberNodes).akkaConfig("Member1").testName(name)
                 .moduleShardsConfig(moduleShardsConfig).waitForShardLeader("cars", "people").build();
 
-        ModuleShardConfiguration petsModuleConfig = new ModuleShardConfiguration(URI.create("pets-ns"), "pets-module",
-                                                                                 "pets", null,
-                                                                                 Collections.singletonList(MEMBER_1));
+        ModuleShardConfiguration petsModuleConfig = new ModuleShardConfiguration(
+            XMLNamespace.of("pets-ns"), "pets-module", "pets", null, List.of(MEMBER_1));
         leaderNode1.configDataStore().getActorUtils().getShardManager().tell(
                 new CreateShard(petsModuleConfig, Shard.builder(), null), leaderNode1.kit().getRef());
         leaderNode1.kit().expectMsgClass(Success.class);
@@ -520,9 +515,8 @@ public class ClusterAdminRpcServiceTest {
         newReplicaNode2.kit().expectMsgClass(Success.class);
 
         newReplicaNode2.operDataStore().getActorUtils().getShardManager().tell(
-                new CreateShard(new ModuleShardConfiguration(URI.create("no-leader-ns"), "no-leader-module",
-                                                             "no-leader", null,
-                                                             Collections.singletonList(MEMBER_1)),
+                new CreateShard(new ModuleShardConfiguration(XMLNamespace.of("no-leader-ns"), "no-leader-module",
+                                                             "no-leader", null, List.of(MEMBER_1)),
                                 Shard.builder(), null),
                                 newReplicaNode2.kit().getRef());
         newReplicaNode2.kit().expectMsgClass(Success.class);
@@ -567,8 +561,8 @@ public class ClusterAdminRpcServiceTest {
         verifyRaftPeersPresent(replicaNode2.configDataStore(), "cars", "member-1", "member-3");
         verifyRaftPeersPresent(replicaNode3.configDataStore(), "cars", "member-1", "member-2");
 
-        ModuleShardConfiguration petsModuleConfig = new ModuleShardConfiguration(URI.create("pets-ns"), "pets-module",
-                "pets", null, Arrays.asList(MEMBER_1, MEMBER_2, MEMBER_3));
+        ModuleShardConfiguration petsModuleConfig = new ModuleShardConfiguration(XMLNamespace.of("pets-ns"),
+                "pets-module", "pets", null, List.of(MEMBER_1, MEMBER_2, MEMBER_3));
         leaderNode1.configDataStore().getActorUtils().getShardManager().tell(
                 new CreateShard(petsModuleConfig, Shard.builder(), null), leaderNode1.kit().getRef());
         leaderNode1.kit().expectMsgClass(Success.class);
@@ -637,7 +631,7 @@ public class ClusterAdminRpcServiceTest {
         RpcResult<ChangeMemberVotingStatesForShardOutput> rpcResult = service3
                 .changeMemberVotingStatesForShard(new ChangeMemberVotingStatesForShardInputBuilder()
                         .setShardName("cars").setDataStoreType(DataStoreType.Config)
-                        .setMemberVotingState(ImmutableList.of(
+                        .setMemberVotingState(List.of(
                                 new MemberVotingStateBuilder().setMemberName("member-2").setVoting(FALSE).build(),
                                 new MemberVotingStateBuilder().setMemberName("member-3").setVoting(FALSE).build()))
                         .build())
@@ -671,8 +665,10 @@ public class ClusterAdminRpcServiceTest {
         RpcResult<ChangeMemberVotingStatesForShardOutput> rpcResult = service
                 .changeMemberVotingStatesForShard(new ChangeMemberVotingStatesForShardInputBuilder()
                         .setShardName("cars").setDataStoreType(DataStoreType.Config)
-                        .setMemberVotingState(ImmutableList
-                                .of(new MemberVotingStateBuilder().setMemberName("member-1").setVoting(FALSE).build()))
+                        .setMemberVotingState(List.of(new MemberVotingStateBuilder()
+                            .setMemberName("member-1")
+                            .setVoting(FALSE)
+                            .build()))
                         .build())
                 .get(10, TimeUnit.SECONDS);
         verifyFailedRpcResult(rpcResult);
@@ -709,7 +705,7 @@ public class ClusterAdminRpcServiceTest {
                 replicaNode3.operDataStore(), null);
 
         RpcResult<ChangeMemberVotingStatesForAllShardsOutput> rpcResult = service3.changeMemberVotingStatesForAllShards(
-                new ChangeMemberVotingStatesForAllShardsInputBuilder().setMemberVotingState(ImmutableList.of(
+                new ChangeMemberVotingStatesForAllShardsInputBuilder().setMemberVotingState(List.of(
                         new MemberVotingStateBuilder().setMemberName("member-2").setVoting(FALSE).build(),
                         new MemberVotingStateBuilder().setMemberName("member-3").setVoting(FALSE).build())).build())
                 .get(10, TimeUnit.SECONDS);
@@ -730,7 +726,7 @@ public class ClusterAdminRpcServiceTest {
     public void testFlipMemberVotingStates() throws Exception {
         String name = "testFlipMemberVotingStates";
 
-        ServerConfigurationPayload persistedServerConfig = new ServerConfigurationPayload(Arrays.asList(
+        ServerConfigurationPayload persistedServerConfig = new ServerConfigurationPayload(List.of(
                 new ServerInfo("member-1", true), new ServerInfo("member-2", true),
                 new ServerInfo("member-3", false)));
 
@@ -819,7 +815,7 @@ public class ClusterAdminRpcServiceTest {
 
         // Members 1, 2, and 3 are initially started up as non-voting. Members 4, 5, and 6 are initially
         // non-voting and simulated as down by not starting them up.
-        ServerConfigurationPayload persistedServerConfig = new ServerConfigurationPayload(Arrays.asList(
+        ServerConfigurationPayload persistedServerConfig = new ServerConfigurationPayload(List.of(
                 new ServerInfo("member-1", false), new ServerInfo("member-2", false),
                 new ServerInfo("member-3", false), new ServerInfo("member-4", true),
                 new ServerInfo("member-5", true), new ServerInfo("member-6", true)));
@@ -891,7 +887,7 @@ public class ClusterAdminRpcServiceTest {
         String name = "testFlipMemberVotingStatesWithVotingMembersDown";
 
         // Members 4, 5, and 6 are initially non-voting and simulated as down by not starting them up.
-        ServerConfigurationPayload persistedServerConfig = new ServerConfigurationPayload(Arrays.asList(
+        ServerConfigurationPayload persistedServerConfig = new ServerConfigurationPayload(List.of(
                 new ServerInfo("member-1", true), new ServerInfo("member-2", true),
                 new ServerInfo("member-3", true), new ServerInfo("member-4", false),
                 new ServerInfo("member-5", false), new ServerInfo("member-6", false)));
index 860af70..24f53d1 100644 (file)
       <groupId>org.opendaylight.yangtools</groupId>
       <artifactId>yang-data-codec-binfmt</artifactId>
     </dependency>
+    <dependency>
+      <groupId>org.opendaylight.yangtools</groupId>
+      <artifactId>yang-repo-spi</artifactId>
+    </dependency>
 
     <!-- Compression -->
     <dependency>
index 0bf1a2f..6e567fa 100644 (file)
@@ -18,14 +18,13 @@ import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNodeContainer;
  * NormalizedNodeNavigator walks a {@link NormalizedNodeVisitor} through the NormalizedNode.
  */
 public class NormalizedNodeNavigator {
-
     private final NormalizedNodeVisitor visitor;
 
     public NormalizedNodeNavigator(final NormalizedNodeVisitor visitor) {
         this.visitor = requireNonNull(visitor, "visitor should not be null");
     }
 
-    public void navigate(String parentPath, final NormalizedNode<?, ?> normalizedNode) {
+    public void navigate(String parentPath, final NormalizedNode normalizedNode) {
         if (parentPath == null) {
             parentPath = "";
         }
@@ -33,14 +32,14 @@ public class NormalizedNodeNavigator {
     }
 
     private void navigateDataContainerNode(final int level, final String parentPath,
-            final DataContainerNode<?> dataContainerNode) {
+            final DataContainerNode dataContainerNode) {
         visitor.visitNode(level, parentPath, dataContainerNode);
 
         String newParentPath = parentPath + "/" + dataContainerNode.getIdentifier().toString();
 
-        for (NormalizedNode<?, ?> node : dataContainerNode.getValue()) {
+        for (NormalizedNode node : dataContainerNode.body()) {
             if (node instanceof MixinNode && node instanceof NormalizedNodeContainer) {
-                navigateNormalizedNodeContainerMixin(level, newParentPath, (NormalizedNodeContainer<?, ?, ?>) node);
+                navigateNormalizedNodeContainerMixin(level, newParentPath, (NormalizedNodeContainer<?>) node);
             } else {
                 navigateNormalizedNode(level, newParentPath, node);
             }
@@ -49,15 +48,15 @@ public class NormalizedNodeNavigator {
     }
 
     private void navigateNormalizedNodeContainerMixin(final int level, final String parentPath,
-            final NormalizedNodeContainer<?, ?, ?> node) {
+            final NormalizedNodeContainer<?> node) {
         visitor.visitNode(level, parentPath, node);
 
         String newParentPath = parentPath + "/" + node.getIdentifier().toString();
 
-        for (NormalizedNode<?, ?> normalizedNode : node.getValue()) {
+        for (NormalizedNode normalizedNode : node.body()) {
             if (normalizedNode instanceof MixinNode && normalizedNode instanceof NormalizedNodeContainer) {
                 navigateNormalizedNodeContainerMixin(level + 1, newParentPath,
-                        (NormalizedNodeContainer<?, ?, ?>) normalizedNode);
+                        (NormalizedNodeContainer<?>) normalizedNode);
             } else {
                 navigateNormalizedNode(level, newParentPath, normalizedNode);
             }
@@ -65,13 +64,9 @@ public class NormalizedNodeNavigator {
 
     }
 
-    private void navigateNormalizedNode(final int level, final String parentPath,
-            final NormalizedNode<?, ?> normalizedNode) {
+    private void navigateNormalizedNode(final int level, final String parentPath, final NormalizedNode normalizedNode) {
         if (normalizedNode instanceof DataContainerNode) {
-
-            final DataContainerNode<?> dataContainerNode = (DataContainerNode<?>) normalizedNode;
-
-            navigateDataContainerNode(level + 1, parentPath, dataContainerNode);
+            navigateDataContainerNode(level + 1, parentPath, (DataContainerNode) normalizedNode);
         } else {
             visitor.visitNode(level + 1, parentPath, normalizedNode);
         }
index c04f0ce..d455c41 100644 (file)
@@ -5,11 +5,10 @@
  * 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.node.utils;
 
 import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
 
 public interface NormalizedNodeVisitor {
-    void visitNode(int level, String parentPath, NormalizedNode<?, ?> normalizedNode);
+    void visitNode(int level, String parentPath, NormalizedNode normalizedNode);
 }
index fcafccd..a2c456d 100644 (file)
@@ -33,24 +33,23 @@ public final class SerializationUtils {
 
     @FunctionalInterface
     public interface Applier<T> {
-        void apply(T instance, YangInstanceIdentifier path, NormalizedNode<?, ?> node);
+        void apply(T instance, YangInstanceIdentifier path, NormalizedNode node);
     }
 
-    public static Optional<NormalizedNode<?, ?>> readNormalizedNode(final DataInput in) throws IOException {
+    public static Optional<NormalizedNode> readNormalizedNode(final DataInput in) throws IOException {
         if (!in.readBoolean()) {
             return Optional.empty();
         }
         return Optional.of(NormalizedNodeDataInput.newDataInput(in).readNormalizedNode());
     }
 
-    public static void writeNormalizedNode(final DataOutput out, final @Nullable NormalizedNode<?, ?> node)
+    public static void writeNormalizedNode(final DataOutput out, final @Nullable NormalizedNode node)
             throws IOException {
         writeNormalizedNode(out, MAGNESIUM, node);
     }
 
-    public static void writeNormalizedNode(final DataOutput out,
-            final org.opendaylight.yangtools.yang.data.codec.binfmt.NormalizedNodeStreamVersion version,
-            final @Nullable NormalizedNode<?, ?> node) throws IOException {
+    public static void writeNormalizedNode(final DataOutput out, final NormalizedNodeStreamVersion version,
+            final @Nullable NormalizedNode node) throws IOException {
         if (node != null) {
             out.writeBoolean(true);
 
@@ -81,13 +80,13 @@ public final class SerializationUtils {
     public static <T> void readNodeAndPath(final DataInput in, final T instance, final Applier<T> applier)
             throws IOException {
         final NormalizedNodeDataInput stream = NormalizedNodeDataInput.newDataInput(in);
-        NormalizedNode<?, ?> node = stream.readNormalizedNode();
+        NormalizedNode node = stream.readNormalizedNode();
         YangInstanceIdentifier path = stream.readYangInstanceIdentifier();
         applier.apply(instance, path, node);
     }
 
     public static void writeNodeAndPath(final DataOutput out, final NormalizedNodeStreamVersion version,
-            final YangInstanceIdentifier path, final NormalizedNode<?, ?> node) throws IOException {
+            final YangInstanceIdentifier path, final NormalizedNode node) throws IOException {
         try (NormalizedNodeDataOutput stream = version.newDataOutput(out)) {
             stream.writeNormalizedNode(node);
             stream.writeYangInstanceIdentifier(path);
@@ -95,7 +94,7 @@ public final class SerializationUtils {
     }
 
     public static void writeNodeAndPath(final DataOutput out, final YangInstanceIdentifier path,
-            final NormalizedNode<?, ?> node) throws IOException {
+            final NormalizedNode node) throws IOException {
         writeNodeAndPath(out, MAGNESIUM, path, node);
     }
 
@@ -103,13 +102,13 @@ public final class SerializationUtils {
             throws IOException {
         final NormalizedNodeDataInput stream = NormalizedNodeDataInput.newDataInput(in);
         YangInstanceIdentifier path = stream.readYangInstanceIdentifier();
-        NormalizedNode<?, ?> node = stream.readNormalizedNode();
+        NormalizedNode node = stream.readNormalizedNode();
         applier.apply(instance, path, node);
     }
 
     public static void writePathAndNode(final DataOutput out,
             final org.opendaylight.yangtools.yang.data.codec.binfmt.NormalizedNodeStreamVersion version,
-            final YangInstanceIdentifier path, final NormalizedNode<?, ?> node) throws IOException {
+            final YangInstanceIdentifier path, final NormalizedNode node) throws IOException {
         try (NormalizedNodeDataOutput stream = version.newDataOutput(out)) {
             stream.writeYangInstanceIdentifier(path);
             stream.writeNormalizedNode(node);
@@ -117,7 +116,7 @@ public final class SerializationUtils {
     }
 
     public static void writePathAndNode(final DataOutput out, final YangInstanceIdentifier path,
-            final NormalizedNode<?, ?> node) throws IOException {
+            final NormalizedNode node) throws IOException {
         writePathAndNode(out, MAGNESIUM, path, node);
     }
 }
index 8999034..13500c1 100644 (file)
@@ -64,7 +64,7 @@ abstract class AbstractNormalizedNodePruner implements NormalizedNodeStreamWrite
     private final DataSchemaContextTree tree;
 
     private DataSchemaContextNode<?> nodePathSchemaNode;
-    private NormalizedNode<?, ?> normalizedNode;
+    private NormalizedNode normalizedNode;
     private State state = State.UNITIALIZED;
     private int unknown;
 
@@ -114,12 +114,6 @@ abstract class AbstractNormalizedNodePruner implements NormalizedNodeStreamWrite
         enter(ReusableImmutableNormalizedNodeStreamWriter::startContainerNode, name, childSizeHint);
     }
 
-    @Override
-    public final void startYangModeledAnyXmlNode(final NodeIdentifier nodeIdentifier, final int count) {
-        // FIXME: implement this
-        throw new UnsupportedOperationException("Not implemented yet");
-    }
-
     @Override
     public final void startUnkeyedList(final NodeIdentifier name, final int childSizeHint) throws IOException {
         enter(ReusableImmutableNormalizedNodeStreamWriter::startUnkeyedList, name, childSizeHint);
@@ -235,7 +229,7 @@ abstract class AbstractNormalizedNodePruner implements NormalizedNodeStreamWrite
      * @return Resulting node for the path, if it was not pruned
      * @throws IllegalStateException if this pruner has not been closed
      */
-    public final Optional<NormalizedNode<?, ?>> getResult() {
+    public final Optional<NormalizedNode> getResult() {
         checkState(state == State.CLOSED, "Cannot get result in state %s", state);
         return Optional.ofNullable(normalizedNode);
     }
index 1f5259e..35ab00f 100644 (file)
@@ -71,7 +71,7 @@ public abstract class AbstractDataTreeModificationCursor implements DataTreeModi
     }
 
     @Override
-    public final Optional<NormalizedNode<?, ?>> readNode(final PathArgument child) {
+    public final Optional<NormalizedNode> readNode(final PathArgument child) {
         throw new UnsupportedOperationException("Not implemented");
     }
 
index 8215e23..73cdece 100644 (file)
@@ -24,7 +24,7 @@ import java.util.ArrayDeque;
 import java.util.Arrays;
 import java.util.Deque;
 import java.util.Iterator;
-import org.opendaylight.yangtools.concepts.Variant;
+import org.opendaylight.yangtools.concepts.Either;
 
 /**
  * An {@link OutputStream} implementation which collects data is a series of {@code byte[]} chunks, each of which has
@@ -124,10 +124,10 @@ public final class ChunkedOutputStream extends OutputStream {
         return size;
     }
 
-    public Variant<byte[], ChunkedByteArray> toVariant() {
+    public Either<byte[], ChunkedByteArray> toVariant() {
         checkClosed();
-        return result instanceof byte[] ? Variant.ofFirst((byte[]) result)
-                : Variant.ofSecond(new ChunkedByteArray(size, (ImmutableList<byte[]>) result));
+        return result instanceof byte[] ? Either.ofFirst((byte[]) result)
+                : Either.ofSecond(new ChunkedByteArray(size, (ImmutableList<byte[]>) result));
     }
 
     @VisibleForTesting
index 04da2a6..9af555d 100644 (file)
@@ -39,9 +39,9 @@ import org.opendaylight.yangtools.yang.data.api.schema.LeafSetNode;
 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.OrderedMapNode;
 import org.opendaylight.yangtools.yang.data.api.schema.UnkeyedListEntryNode;
 import org.opendaylight.yangtools.yang.data.api.schema.UnkeyedListNode;
+import org.opendaylight.yangtools.yang.data.api.schema.UserMapNode;
 import org.opendaylight.yangtools.yang.data.impl.schema.Builders;
 import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes;
 import org.w3c.dom.Document;
@@ -52,7 +52,7 @@ public class SerializationUtilsTest {
 
     @Test
     public void testSerializeDeserializeNodes() throws IOException {
-        final NormalizedNode<?, ?> normalizedNode = createNormalizedNode();
+        final NormalizedNode normalizedNode = createNormalizedNode();
         final byte[] bytes = serializeNormalizedNode(normalizedNode);
         assertEquals(10564, bytes.length);
         assertEquals(normalizedNode, deserializeNormalizedNode(bytes));
@@ -64,14 +64,14 @@ public class SerializationUtilsTest {
                 new ByteArrayInputStream("<xml><data/></xml>".getBytes(Charset.defaultCharset()));
         final Document parse = UntrustedXML.newDocumentBuilder().parse(is);
         final DOMSourceAnyxmlNode anyXmlNode = Builders.anyXmlBuilder()
-                .withNodeIdentifier(id("anyXmlNode"))
+                  .withNodeIdentifier(id("anyXmlNode"))
                 .withValue(new DOMSource(parse))
                 .build();
         final byte[] bytes = serializeNormalizedNode(anyXmlNode);
         assertEquals(113, bytes.length);
-        final NormalizedNode<?, ?> deserialized = deserializeNormalizedNode(bytes);
-        final DOMSource value = (DOMSource) deserialized.getValue();
-        final Diff diff = XMLUnit.compareXML((Document) anyXmlNode.getValue().getNode(),
+        final NormalizedNode deserialized = deserializeNormalizedNode(bytes);
+        final DOMSource value = (DOMSource) deserialized.body();
+        final Diff diff = XMLUnit.compareXML((Document) anyXmlNode.body().getNode(),
                 value.getNode().getOwnerDocument());
         assertTrue(diff.toString(), diff.similar());
     }
@@ -100,7 +100,7 @@ public class SerializationUtilsTest {
     public void testSerializeDeserializePathAndNode() throws IOException {
         final ByteArrayOutputStream bos = new ByteArrayOutputStream();
         final DataOutput out = new DataOutputStream(bos);
-        final NormalizedNode<?, ?> node = createNormalizedNode();
+        final NormalizedNode node = createNormalizedNode();
         final YangInstanceIdentifier path = YangInstanceIdentifier.create(id("container1"));
         SerializationUtils.writeNodeAndPath(out, path, node);
 
@@ -136,17 +136,17 @@ public class SerializationUtilsTest {
         assertEquals(expected, read);
     }
 
-    private static NormalizedNode<?, ?> deserializeNormalizedNode(final byte[] bytes) throws IOException {
+    private static NormalizedNode deserializeNormalizedNode(final byte[] bytes) throws IOException {
         return SerializationUtils.readNormalizedNode(new DataInputStream(new ByteArrayInputStream(bytes))).get();
     }
 
-    private static byte[] serializeNormalizedNode(final NormalizedNode<?, ?> node) throws IOException {
+    private static byte[] serializeNormalizedNode(final NormalizedNode node) throws IOException {
         ByteArrayOutputStream bos = new ByteArrayOutputStream();
         SerializationUtils.writeNormalizedNode(new DataOutputStream(bos), node);
         return bos.toByteArray();
     }
 
-    private static NormalizedNode<?, ?> createNormalizedNode() {
+    private static NormalizedNode createNormalizedNode() {
         final LeafSetNode<Object> leafSetNode = Builders.leafSetBuilder()
                 .withNodeIdentifier(id("leafSetNode"))
                 .withChild(createLeafSetEntry("leafSetNode", "leafSetValue1"))
@@ -179,7 +179,7 @@ public class SerializationUtilsTest {
                 .withChild(entry1)
                 .withChild(entry2)
                 .build();
-        final OrderedMapNode orderedMapNode = Builders.orderedMapBuilder()
+        final UserMapNode orderedMapNode = Builders.orderedMapBuilder()
                 .withNodeIdentifier(id("orderedMapNode"))
                 .withChild(entry2)
                 .withChild(entry1)
index 41e494c..8001ebd 100644 (file)
@@ -71,11 +71,11 @@ public class NormalizedNodePrunerTest {
 
         NormalizedNodeWriter normalizedNodeWriter = NormalizedNodeWriter.forStreamWriter(pruner);
 
-        NormalizedNode<?, ?> expected = createTestContainer();
+        NormalizedNode expected = createTestContainer();
 
         normalizedNodeWriter.write(expected);
 
-        NormalizedNode<?, ?> actual = pruner.getResult().orElseThrow();
+        NormalizedNode actual = pruner.getResult().orElseThrow();
 
         assertEquals(expected, actual);
 
@@ -87,11 +87,11 @@ public class NormalizedNodePrunerTest {
 
         NormalizedNodeWriter normalizedNodeWriter = NormalizedNodeWriter.forStreamWriter(pruner);
 
-        NormalizedNode<?, ?> expected = createTestContainer();
+        NormalizedNode expected = createTestContainer();
 
         normalizedNodeWriter.write(expected);
 
-        NormalizedNode<?, ?> actual = pruner.getResult().orElseThrow();
+        NormalizedNode actual = pruner.getResult().orElseThrow();
 
         assertEquals(expected, actual);
 
@@ -106,11 +106,11 @@ public class NormalizedNodePrunerTest {
 
         NormalizedNodeWriter normalizedNodeWriter = NormalizedNodeWriter.forStreamWriter(pruner);
 
-        NormalizedNode<?, ?> expected = createTestContainer();
+        NormalizedNode expected = createTestContainer();
 
         normalizedNodeWriter.write(expected);
 
-        NormalizedNode<?, ?> actual = pruner.getResult().orElseThrow();
+        NormalizedNode actual = pruner.getResult().orElseThrow();
 
         assertNotEquals(expected, actual);
 
@@ -127,7 +127,7 @@ public class NormalizedNodePrunerTest {
 
         NormalizedNodeWriter normalizedNodeWriter = NormalizedNodeWriter.forStreamWriter(pruner);
 
-        NormalizedNode<?, ?> expected = createTestContainer();
+        NormalizedNode expected = createTestContainer();
 
         normalizedNodeWriter.write(expected);
 
@@ -139,7 +139,7 @@ public class NormalizedNodePrunerTest {
 
     }
 
-    private static int countNodes(final NormalizedNode<?,?> normalizedNode, final String namespaceFilter) {
+    private static int countNodes(final NormalizedNode normalizedNode, final String namespaceFilter) {
         if (normalizedNode == null) {
             return 0;
         }
@@ -158,7 +158,7 @@ public class NormalizedNodePrunerTest {
     @Test
     public void testLeafNodeNotPrunedWhenHasNoParent() throws IOException {
         AbstractNormalizedNodePruner pruner = prunerFullSchema(TestModel.TEST_PATH.node(TestModel.DESC_QNAME));
-        NormalizedNode<?, ?> input = Builders.leafBuilder().withNodeIdentifier(
+        NormalizedNode input = Builders.leafBuilder().withNodeIdentifier(
                 new NodeIdentifier(TestModel.DESC_QNAME)).withValue("test").build();
         NormalizedNodeWriter.forStreamWriter(pruner).write(input);
 
@@ -173,17 +173,17 @@ public class NormalizedNodePrunerTest {
                         .node(TestModel.AUGMENTED_LIST_QNAME).node(augId).build());
         LeafNode<Object> child = Builders.leafBuilder().withNodeIdentifier(
                 new NodeIdentifier(TestModel.INVALID_QNAME)).withValue("test").build();
-        NormalizedNode<?, ?> input = Builders.augmentationBuilder().withNodeIdentifier(augId).withChild(child).build();
+        NormalizedNode input = Builders.augmentationBuilder().withNodeIdentifier(augId).withChild(child).build();
         NormalizedNodeWriter.forStreamWriter(pruner).write(input);
 
-        NormalizedNode<?, ?> actual = pruner.getResult().orElseThrow();
+        NormalizedNode actual = pruner.getResult().orElseThrow();
         assertEquals("normalizedNode", Builders.augmentationBuilder().withNodeIdentifier(augId).build(), actual);
     }
 
     @Test
     public void testLeafNodePrunedWhenHasNoParentAndSchemaMissing() throws IOException {
         AbstractNormalizedNodePruner pruner = prunerFullSchema(TestModel.TEST_PATH.node(TestModel.INVALID_QNAME));
-        NormalizedNode<?, ?> input = Builders.leafBuilder().withNodeIdentifier(
+        NormalizedNode input = Builders.leafBuilder().withNodeIdentifier(
                 new NodeIdentifier(TestModel.INVALID_QNAME)).withValue("test").build();
         NormalizedNodeWriter.forStreamWriter(pruner).write(input);
 
@@ -193,11 +193,11 @@ public class NormalizedNodePrunerTest {
     @Test
     public void testLeafSetEntryNodeNotPrunedWhenHasNoParent() throws IOException {
         AbstractNormalizedNodePruner pruner = prunerFullSchema(TestModel.TEST_PATH.node(TestModel.SHOE_QNAME));
-        NormalizedNode<?, ?> input = Builders.leafSetEntryBuilder().withValue("puma").withNodeIdentifier(
+        NormalizedNode input = Builders.leafSetEntryBuilder().withValue("puma").withNodeIdentifier(
                 new NodeWithValue<>(TestModel.SHOE_QNAME, "puma")).build();
         NormalizedNodeWriter.forStreamWriter(pruner).write(input);
 
-        NormalizedNode<?, ?> actual = pruner.getResult().orElseThrow();
+        NormalizedNode actual = pruner.getResult().orElseThrow();
         assertEquals("normalizedNode", input, actual);
     }
 
@@ -206,18 +206,18 @@ public class NormalizedNodePrunerTest {
         AbstractNormalizedNodePruner pruner = prunerFullSchema(TestModel.TEST_PATH.node(TestModel.SHOE_QNAME));
         LeafSetEntryNode<Object> child = Builders.leafSetEntryBuilder().withValue("puma").withNodeIdentifier(
                 new NodeWithValue<>(TestModel.SHOE_QNAME, "puma")).build();
-        NormalizedNode<?, ?> input = Builders.leafSetBuilder().withNodeIdentifier(
+        NormalizedNode input = Builders.leafSetBuilder().withNodeIdentifier(
                 new NodeIdentifier(TestModel.SHOE_QNAME)).withChild(child).build();
         NormalizedNodeWriter.forStreamWriter(pruner).write(input);
 
-        NormalizedNode<?, ?> actual = pruner.getResult().orElseThrow();
+        NormalizedNode actual = pruner.getResult().orElseThrow();
         assertEquals("normalizedNode", input, actual);
     }
 
     @Test
     public void testLeafSetEntryNodePrunedWhenHasNoParentAndSchemaMissing() throws IOException {
         AbstractNormalizedNodePruner pruner = prunerFullSchema(TestModel.TEST_PATH.node(TestModel.INVALID_QNAME));
-        NormalizedNode<?, ?> input = Builders.leafSetEntryBuilder().withValue("test").withNodeIdentifier(
+        NormalizedNode input = Builders.leafSetEntryBuilder().withValue("test").withNodeIdentifier(
                 new NodeWithValue<>(TestModel.INVALID_QNAME, "test")).build();
         NormalizedNodeWriter.forStreamWriter(pruner).write(input);
 
@@ -229,7 +229,7 @@ public class NormalizedNodePrunerTest {
         AbstractNormalizedNodePruner pruner = prunerFullSchema(TestModel.TEST_PATH.node(TestModel.INVALID_QNAME));
         LeafSetEntryNode<Object> child = Builders.leafSetEntryBuilder().withValue("test").withNodeIdentifier(
                 new NodeWithValue<>(TestModel.INVALID_QNAME, "test")).build();
-        NormalizedNode<?, ?> input = Builders.leafSetBuilder().withNodeIdentifier(
+        NormalizedNode input = Builders.leafSetBuilder().withNodeIdentifier(
                 new NodeIdentifier(TestModel.INVALID_QNAME)).withChild(child).build();
         NormalizedNodeWriter.forStreamWriter(pruner).write(input);
 
@@ -239,11 +239,11 @@ public class NormalizedNodePrunerTest {
     @Test
     public void testAnyXMLNodeNotPrunedWhenHasNoParent() throws IOException {
         AbstractNormalizedNodePruner pruner = prunerFullSchema(TestModel.TEST_PATH.node(TestModel.ANY_XML_QNAME));
-        NormalizedNode<?, ?> input = Builders.anyXmlBuilder().withNodeIdentifier(
+        NormalizedNode input = Builders.anyXmlBuilder().withNodeIdentifier(
                 new NodeIdentifier(TestModel.ANY_XML_QNAME)).withValue(mock(DOMSource.class)).build();
         NormalizedNodeWriter.forStreamWriter(pruner).write(input);
 
-        NormalizedNode<?, ?> actual = pruner.getResult().orElseThrow();
+        NormalizedNode actual = pruner.getResult().orElseThrow();
         assertEquals("normalizedNode", input, actual);
     }
 
@@ -252,18 +252,18 @@ public class NormalizedNodePrunerTest {
         AbstractNormalizedNodePruner pruner = prunerFullSchema(TestModel.TEST_PATH);
         DOMSourceAnyxmlNode child = Builders.anyXmlBuilder().withNodeIdentifier(
                 new NodeIdentifier(TestModel.ANY_XML_QNAME)).withValue(mock(DOMSource.class)).build();
-        NormalizedNode<?, ?> input = Builders.containerBuilder().withNodeIdentifier(
+        NormalizedNode input = Builders.containerBuilder().withNodeIdentifier(
                 new NodeIdentifier(TestModel.TEST_QNAME)).withChild(child).build();
         NormalizedNodeWriter.forStreamWriter(pruner).write(input);
 
-        NormalizedNode<?, ?> actual = pruner.getResult().orElseThrow();
+        NormalizedNode actual = pruner.getResult().orElseThrow();
         assertEquals("normalizedNode", input, actual);
     }
 
     @Test
     public void testAnyXmlNodePrunedWhenHasNoParentAndSchemaMissing() throws IOException {
         AbstractNormalizedNodePruner pruner = prunerNoTestSchema(TestModel.TEST_PATH.node(TestModel.ANY_XML_QNAME));
-        NormalizedNode<?, ?> input = Builders.anyXmlBuilder().withNodeIdentifier(
+        NormalizedNode input = Builders.anyXmlBuilder().withNodeIdentifier(
                 new NodeIdentifier(TestModel.ANY_XML_QNAME)).withValue(mock(DOMSource.class)).build();
         NormalizedNodeWriter.forStreamWriter(pruner).write(input);
 
@@ -278,10 +278,10 @@ public class NormalizedNodePrunerTest {
                 .node(TestModel.INNER_CONTAINER_QNAME).build();
         AbstractNormalizedNodePruner pruner = prunerFullSchema(path);
 
-        NormalizedNode<?, ?> input = ImmutableNodes.containerNode(TestModel.INNER_CONTAINER_QNAME);
+        NormalizedNode input = ImmutableNodes.containerNode(TestModel.INNER_CONTAINER_QNAME);
         NormalizedNodeWriter.forStreamWriter(pruner).write(input);
 
-        NormalizedNode<?, ?> actual = pruner.getResult().orElseThrow();
+        NormalizedNode actual = pruner.getResult().orElseThrow();
         assertEquals("normalizedNode", input, actual);
     }
 
@@ -293,7 +293,7 @@ public class NormalizedNodePrunerTest {
                 .node(TestModel.INVALID_QNAME).build();
         AbstractNormalizedNodePruner pruner = prunerFullSchema(path);
 
-        NormalizedNode<?, ?> input = ImmutableNodes.containerNode(TestModel.INVALID_QNAME);
+        NormalizedNode input = ImmutableNodes.containerNode(TestModel.INVALID_QNAME);
         NormalizedNodeWriter.forStreamWriter(pruner).write(input);
 
         assertEquals(Optional.empty(), pruner.getResult());
@@ -309,14 +309,14 @@ public class NormalizedNodePrunerTest {
         MapNode innerList = mapNodeBuilder(TestModel.INNER_LIST_QNAME).withChild(mapEntryBuilder(
                 TestModel.INNER_LIST_QNAME, TestModel.NAME_QNAME, "one").withChild(
                         ImmutableNodes.containerNode(TestModel.INVALID_QNAME)).build()).build();
-        NormalizedNode<?, ?> input = mapEntryBuilder(TestModel.OUTER_LIST_QNAME, TestModel.ID_QNAME, 1)
+        NormalizedNode input = mapEntryBuilder(TestModel.OUTER_LIST_QNAME, TestModel.ID_QNAME, 1)
                 .withChild(innerList).build();
         NormalizedNodeWriter.forStreamWriter(pruner).write(input);
 
-        NormalizedNode<?, ?> expected = mapEntryBuilder(TestModel.OUTER_LIST_QNAME, TestModel.ID_QNAME, 1)
+        NormalizedNode expected = mapEntryBuilder(TestModel.OUTER_LIST_QNAME, TestModel.ID_QNAME, 1)
                 .withChild(mapNodeBuilder(TestModel.INNER_LIST_QNAME).withChild(mapEntryBuilder(
                     TestModel.INNER_LIST_QNAME, TestModel.NAME_QNAME, "one").build()).build()).build();
-        NormalizedNode<?, ?> actual = pruner.getResult().orElseThrow();
+        NormalizedNode actual = pruner.getResult().orElseThrow();
         assertEquals("normalizedNode", expected, actual);
     }
 
@@ -332,7 +332,7 @@ public class NormalizedNodePrunerTest {
                         ImmutableNodes.containerNode(TestModel.INNER_CONTAINER_QNAME)).build()).build();
         NormalizedNodeWriter.forStreamWriter(pruner).write(input);
 
-        NormalizedNode<?, ?> actual = pruner.getResult().orElseThrow();
+        NormalizedNode actual = pruner.getResult().orElseThrow();
         assertEquals("normalizedNode", input, actual);
     }
 
@@ -361,16 +361,16 @@ public class NormalizedNodePrunerTest {
         MapNode innerList = mapNodeBuilder(TestModel.INVALID_QNAME).withChild(mapEntryBuilder(
                 TestModel.INVALID_QNAME, TestModel.NAME_QNAME, "one").withChild(
                         ImmutableNodes.containerNode(TestModel.INNER_CONTAINER_QNAME)).build()).build();
-        NormalizedNode<?, ?> input = mapEntryBuilder(TestModel.OUTER_LIST_QNAME, TestModel.ID_QNAME, 1)
+        NormalizedNode input = mapEntryBuilder(TestModel.OUTER_LIST_QNAME, TestModel.ID_QNAME, 1)
                 .withChild(innerList).build();
         NormalizedNodeWriter.forStreamWriter(pruner).write(input);
 
-        NormalizedNode<?, ?> expected = mapEntry(TestModel.OUTER_LIST_QNAME, TestModel.ID_QNAME, 1);
-        NormalizedNode<?, ?> actual = pruner.getResult().orElseThrow();
+        NormalizedNode expected = mapEntry(TestModel.OUTER_LIST_QNAME, TestModel.ID_QNAME, 1);
+        NormalizedNode actual = pruner.getResult().orElseThrow();
         assertEquals("normalizedNode", expected, actual);
     }
 
-    private static NormalizedNode<?, ?> createTestContainer() {
+    private static NormalizedNode createTestContainer() {
         byte[] bytes1 = {1, 2, 3};
         LeafSetEntryNode<Object> entry1 = ImmutableLeafSetEntryNodeBuilder.create().withNodeIdentifier(
                 new NodeWithValue<>(TestModel.BINARY_LEAF_LIST_QNAME, bytes1)).withValue(bytes1).build();
index 33f6058..bba8739 100644 (file)
@@ -201,7 +201,7 @@ public class UintAdaptingPrunerTest {
                 .build()));
     }
 
-    private static NormalizedNode<?, ?> prune(final NormalizedNode<?, ?> node) throws IOException {
+    private static NormalizedNode prune(final NormalizedNode node) throws IOException {
         final ReusableNormalizedNodePruner pruner = ReusableNormalizedNodePruner.forSchemaContext(CONTEXT)
                 .withUintAdaption();
         pruner.initializeForPath(YangInstanceIdentifier.create(node.getIdentifier()));
index c613d6c..7120c31 100644 (file)
@@ -32,13 +32,13 @@ 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.LeafSetNode;
 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.SystemMapNode;
 import org.opendaylight.yangtools.yang.data.api.schema.UnkeyedListEntryNode;
+import org.opendaylight.yangtools.yang.data.api.schema.builder.CollectionNodeBuilder;
+import org.opendaylight.yangtools.yang.data.api.schema.builder.DataContainerNodeBuilder;
+import org.opendaylight.yangtools.yang.data.api.schema.builder.NormalizedNodeBuilder;
 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.api.CollectionNodeBuilder;
-import org.opendaylight.yangtools.yang.data.impl.schema.builder.api.DataContainerNodeBuilder;
-import org.opendaylight.yangtools.yang.data.impl.schema.builder.api.NormalizedNodeBuilder;
 import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableContainerNodeBuilder;
 import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableLeafSetEntryNodeBuilder;
 import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableLeafSetNodeBuilder;
@@ -335,8 +335,8 @@ public final class TestModel {
             familyContainerBuilder = ImmutableContainerNodeBuilder.create().withNodeIdentifier(
                         new NodeIdentifier(FAMILY_QNAME));
 
-        final CollectionNodeBuilder<MapEntryNode, MapNode> childrenBuilder =
-                mapNodeBuilder(CHILDREN_QNAME);
+        final CollectionNodeBuilder<MapEntryNode, SystemMapNode> childrenBuilder = mapNodeBuilder()
+            .withNodeIdentifier(new NodeIdentifier(CHILDREN_QNAME));
 
         final DataContainerNodeBuilder<NodeIdentifierWithPredicates, MapEntryNode>
             firstChildBuilder = mapEntryBuilder(CHILDREN_QNAME, CHILD_NUMBER_QNAME, FIRST_CHILD_ID);
index 068613d..3dd54c2 100644 (file)
@@ -12,7 +12,7 @@
   <parent>
     <groupId>org.opendaylight.odlparent</groupId>
     <artifactId>odlparent-lite</artifactId>
-    <version>8.1.1</version>
+    <version>9.0.1</version>
     <relativePath/>
   </parent>
 
index 39703f0..02e9e04 100644 (file)
@@ -73,15 +73,14 @@ public abstract class AbstractDOMBrokerWriteTransaction<T extends DOMStoreWriteT
     }
 
     @Override
-    public void put(final LogicalDatastoreType store, final YangInstanceIdentifier path,
-            final NormalizedNode<?, ?> data) {
+    public void put(final LogicalDatastoreType store, final YangInstanceIdentifier path, final NormalizedNode data) {
         checkRunning(commitImpl);
         checkInstanceIdentifierReferencesData(path,data);
         getSubtransaction(store).write(path, data);
     }
 
     private static void checkInstanceIdentifierReferencesData(final YangInstanceIdentifier path,
-            final NormalizedNode<?, ?> data) {
+            final NormalizedNode data) {
         checkArgument(data != null, "Attempted to store null data at %s", path);
         final PathArgument lastArg = path.getLastPathArgument();
         if (lastArg != null) {
@@ -97,8 +96,7 @@ public abstract class AbstractDOMBrokerWriteTransaction<T extends DOMStoreWriteT
     }
 
     @Override
-    public void merge(final LogicalDatastoreType store, final YangInstanceIdentifier path,
-            final NormalizedNode<?, ?> data) {
+    public void merge(final LogicalDatastoreType store, final YangInstanceIdentifier path, final NormalizedNode data) {
         checkRunning(commitImpl);
         checkInstanceIdentifierReferencesData(path, data);
         getSubtransaction(store).merge(path, data);
index 30a51de..274c07e 100644 (file)
@@ -38,7 +38,7 @@ final class ClientBackedReadTransaction extends ClientBackedTransaction<ClientSn
     }
 
     @Override
-    public FluentFuture<Optional<NormalizedNode<?, ?>>> read(final YangInstanceIdentifier path) {
+    public FluentFuture<Optional<NormalizedNode>> read(final YangInstanceIdentifier path) {
         return delegate().read(path);
     }
 
index 6931d9a..861dcd3 100644 (file)
@@ -28,7 +28,7 @@ final class ClientBackedReadWriteTransaction extends ClientBackedWriteTransactio
     }
 
     @Override
-    public FluentFuture<Optional<NormalizedNode<?, ?>>> read(final YangInstanceIdentifier path) {
+    public FluentFuture<Optional<NormalizedNode>> read(final YangInstanceIdentifier path) {
         return delegate().read(path);
     }
 
index a1ffb3b..2b5cf89 100644 (file)
@@ -26,12 +26,12 @@ class ClientBackedWriteTransaction extends ClientBackedTransaction<ClientTransac
     }
 
     @Override
-    public final void write(final YangInstanceIdentifier path, final NormalizedNode<?, ?> data) {
+    public final void write(final YangInstanceIdentifier path, final NormalizedNode data) {
         delegate().write(path, data);
     }
 
     @Override
-    public final void merge(final YangInstanceIdentifier path, final NormalizedNode<?, ?> data) {
+    public final void merge(final YangInstanceIdentifier path, final NormalizedNode data) {
         delegate().merge(path, data);
     }
 
index afce5c0..c4d5e1d 100644 (file)
@@ -26,13 +26,13 @@ public class DOMBrokerReadOnlyTransaction
      *
      * @param identifier Identifier of transaction.
      */
-    protected DOMBrokerReadOnlyTransaction(Object identifier,
-            Map<LogicalDatastoreType, ? extends DOMStoreTransactionFactory> storeTxFactories) {
+    protected DOMBrokerReadOnlyTransaction(final Object identifier,
+            final Map<LogicalDatastoreType, ? extends DOMStoreTransactionFactory> storeTxFactories) {
         super(identifier, storeTxFactories);
     }
 
     @Override
-    public FluentFuture<Optional<NormalizedNode<?, ?>>> read(final LogicalDatastoreType store,
+    public FluentFuture<Optional<NormalizedNode>> read(final LogicalDatastoreType store,
             final YangInstanceIdentifier path) {
         return getSubtransaction(store).read(path);
     }
@@ -48,7 +48,7 @@ public class DOMBrokerReadOnlyTransaction
     }
 
     @Override
-    protected DOMStoreReadTransaction createTransaction(LogicalDatastoreType key) {
+    protected DOMStoreReadTransaction createTransaction(final LogicalDatastoreType key) {
         return getTxFactory(key).newReadOnlyTransaction();
     }
 }
index 86b915b..d9031c2 100644 (file)
@@ -26,14 +26,14 @@ public class DOMBrokerReadWriteTransaction extends AbstractDOMBrokerWriteTransac
      * @param identifier identifier of transaction.
      * @param storeTxFactories the backing transaction store factories
      */
-    protected DOMBrokerReadWriteTransaction(Object identifier,
-            Map<LogicalDatastoreType, ? extends DOMStoreTransactionFactory>  storeTxFactories,
+    protected DOMBrokerReadWriteTransaction(final Object identifier,
+            final Map<LogicalDatastoreType, ? extends DOMStoreTransactionFactory>  storeTxFactories,
             final AbstractDOMTransactionFactory<?> commitImpl) {
         super(identifier, storeTxFactories, commitImpl);
     }
 
     @Override
-    public FluentFuture<Optional<NormalizedNode<?,?>>> read(final LogicalDatastoreType store,
+    public FluentFuture<Optional<NormalizedNode>> read(final LogicalDatastoreType store,
             final YangInstanceIdentifier path) {
         return getSubtransaction(store).read(path);
     }
@@ -44,7 +44,7 @@ public class DOMBrokerReadWriteTransaction extends AbstractDOMBrokerWriteTransac
     }
 
     @Override
-    protected DOMStoreReadWriteTransaction createTransaction(LogicalDatastoreType key) {
+    protected DOMStoreReadWriteTransaction createTransaction(final LogicalDatastoreType key) {
         return getTxFactory(key).newReadWriteTransaction();
     }
 }
index 1ed1e94..8fb042f 100644 (file)
@@ -294,13 +294,13 @@ abstract class AbstractProxyTransaction implements Identifiable<TransactionIdent
         doDelete(path);
     }
 
-    final void merge(final YangInstanceIdentifier path, final NormalizedNode<?, ?> data) {
+    final void merge(final YangInstanceIdentifier path, final NormalizedNode data) {
         checkReadWrite();
         checkNotSealed();
         doMerge(path, data);
     }
 
-    final void write(final YangInstanceIdentifier path, final NormalizedNode<?, ?> data) {
+    final void write(final YangInstanceIdentifier path, final NormalizedNode data) {
         checkReadWrite();
         checkNotSealed();
         doWrite(path, data);
@@ -311,7 +311,7 @@ abstract class AbstractProxyTransaction implements Identifiable<TransactionIdent
         return doExists(path);
     }
 
-    final FluentFuture<Optional<NormalizedNode<?, ?>>> read(final YangInstanceIdentifier path) {
+    final FluentFuture<Optional<NormalizedNode>> read(final YangInstanceIdentifier path) {
         checkNotSealed();
         return doRead(path);
     }
@@ -801,13 +801,13 @@ abstract class AbstractProxyTransaction implements Identifiable<TransactionIdent
 
     abstract void doDelete(YangInstanceIdentifier path);
 
-    abstract void doMerge(YangInstanceIdentifier path, NormalizedNode<?, ?> data);
+    abstract void doMerge(YangInstanceIdentifier path, NormalizedNode data);
 
-    abstract void doWrite(YangInstanceIdentifier path, NormalizedNode<?, ?> data);
+    abstract void doWrite(YangInstanceIdentifier path, NormalizedNode data);
 
     abstract FluentFuture<Boolean> doExists(YangInstanceIdentifier path);
 
-    abstract FluentFuture<Optional<NormalizedNode<?, ?>>> doRead(YangInstanceIdentifier path);
+    abstract FluentFuture<Optional<NormalizedNode>> doRead(YangInstanceIdentifier path);
 
     @GuardedBy("this")
     abstract Optional<ModifyTransactionRequest> flushState();
index c8b1328..d20a618 100644 (file)
@@ -31,7 +31,7 @@ public class ClientSnapshot extends AbstractClientHandle<AbstractProxyTransactio
         return ensureSnapshotProxy(path).exists(path);
     }
 
-    public FluentFuture<Optional<NormalizedNode<?, ?>>> read(final YangInstanceIdentifier path) {
+    public FluentFuture<Optional<NormalizedNode>> read(final YangInstanceIdentifier path) {
         return ensureSnapshotProxy(path).read(path);
     }
 
index 794a1be..9b4c5a9 100644 (file)
@@ -62,7 +62,7 @@ public class ClientTransaction extends AbstractClientHandle<AbstractProxyTransac
         return ensureTransactionProxy(path).exists(path);
     }
 
-    public FluentFuture<Optional<NormalizedNode<?, ?>>> read(final YangInstanceIdentifier path) {
+    public FluentFuture<Optional<NormalizedNode>> read(final YangInstanceIdentifier path) {
         return ensureTransactionProxy(path).read(path);
     }
 
@@ -70,11 +70,11 @@ public class ClientTransaction extends AbstractClientHandle<AbstractProxyTransac
         ensureTransactionProxy(path).delete(path);
     }
 
-    public void merge(final YangInstanceIdentifier path, final NormalizedNode<?, ?> data) {
+    public void merge(final YangInstanceIdentifier path, final NormalizedNode data) {
         ensureTransactionProxy(path).merge(path, data);
     }
 
-    public void write(final YangInstanceIdentifier path, final NormalizedNode<?, ?> data) {
+    public void write(final YangInstanceIdentifier path, final NormalizedNode data) {
         ensureTransactionProxy(path).write(path, data);
     }
 
index 6edbf6c..5618708 100644 (file)
@@ -81,7 +81,7 @@ abstract class LocalProxyTransaction extends AbstractProxyTransaction {
     }
 
     @Override
-    final FluentFuture<Optional<NormalizedNode<?, ?>>> doRead(final YangInstanceIdentifier path) {
+    final FluentFuture<Optional<NormalizedNode>> doRead(final YangInstanceIdentifier path) {
         return FluentFutures.immediateFluentFuture(readOnlyView().readNode(path));
     }
 
@@ -105,7 +105,7 @@ abstract class LocalProxyTransaction extends AbstractProxyTransaction {
         // listeners, which we do not want to execute while we are reconnecting.
         if (request instanceof ReadTransactionRequest) {
             final YangInstanceIdentifier path = ((ReadTransactionRequest) request).getPath();
-            final Optional<NormalizedNode<?, ?>> result = readOnlyView().readNode(path);
+            final Optional<NormalizedNode> result = readOnlyView().readNode(path);
             if (callback != null) {
                 // XXX: FB does not see that callback is final, on stack and has be check for non-null.
                 final Consumer<Response<?, ?>> fbIsStupid = requireNonNull(callback);
@@ -176,12 +176,12 @@ abstract class LocalProxyTransaction extends AbstractProxyTransaction {
             LOG.debug("Applying modification {} to successor {}", mod, successor);
             mod.applyToCursor(new AbstractDataTreeModificationCursor() {
                 @Override
-                public void write(final PathArgument child, final NormalizedNode<?, ?> data) {
+                public void write(final PathArgument child, final NormalizedNode data) {
                     successor.write(current().node(child), data);
                 }
 
                 @Override
-                public void merge(final PathArgument child, final NormalizedNode<?, ?> data) {
+                public void merge(final PathArgument child, final NormalizedNode data) {
                     successor.merge(current().node(child), data);
                 }
 
index f9de02d..8cdbcf8 100644 (file)
@@ -28,7 +28,6 @@ import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeSnapshot;
  * @author Robert Varga
  */
 final class LocalReadOnlyProxyTransaction extends LocalProxyTransaction {
-
     private final DataTreeSnapshot snapshot;
 
     LocalReadOnlyProxyTransaction(final ProxyHistory parent, final TransactionIdentifier identifier,
@@ -59,12 +58,12 @@ final class LocalReadOnlyProxyTransaction extends LocalProxyTransaction {
     }
 
     @Override
-    void doMerge(final YangInstanceIdentifier path, final NormalizedNode<?, ?> data) {
+    void doMerge(final YangInstanceIdentifier path, final NormalizedNode data) {
         throw new UnsupportedOperationException("doMerge");
     }
 
     @Override
-    void doWrite(final YangInstanceIdentifier path, final NormalizedNode<?, ?> data) {
+    void doWrite(final YangInstanceIdentifier path, final NormalizedNode data) {
         throw new UnsupportedOperationException("doWrite");
     }
 
index 9fa8ac7..1f1e394 100644 (file)
@@ -125,7 +125,7 @@ final class LocalReadWriteProxyTransaction extends LocalProxyTransaction {
 
     @Override
     @SuppressWarnings("checkstyle:IllegalCatch")
-    void doMerge(final YangInstanceIdentifier path, final NormalizedNode<?, ?> data) {
+    void doMerge(final YangInstanceIdentifier path, final NormalizedNode data) {
         final CursorAwareDataTreeModification mod = getModification();
         if (recordedFailure != null) {
             LOG.debug("Transaction {} recorded failure, ignoring merge to {}", getIdentifier(), path);
@@ -143,7 +143,7 @@ final class LocalReadWriteProxyTransaction extends LocalProxyTransaction {
 
     @Override
     @SuppressWarnings("checkstyle:IllegalCatch")
-    void doWrite(final YangInstanceIdentifier path, final NormalizedNode<?, ?> data) {
+    void doWrite(final YangInstanceIdentifier path, final NormalizedNode data) {
         final CursorAwareDataTreeModification mod = getModification();
         if (recordedFailure != null) {
             LOG.debug("Transaction {} recorded failure, ignoring write to {}", getIdentifier(), path);
@@ -202,12 +202,12 @@ final class LocalReadWriteProxyTransaction extends LocalProxyTransaction {
 
         sealedModification.applyToCursor(new AbstractDataTreeModificationCursor() {
             @Override
-            public void write(final PathArgument child, final NormalizedNode<?, ?> data) {
+            public void write(final PathArgument child, final NormalizedNode data) {
                 b.addModification(new TransactionWrite(current().node(child), data));
             }
 
             @Override
-            public void merge(final PathArgument child, final NormalizedNode<?, ?> data) {
+            public void merge(final PathArgument child, final NormalizedNode data) {
                 b.addModification(new TransactionMerge(current().node(child), data));
             }
 
index d0d7946..824a2f9 100644 (file)
@@ -105,12 +105,12 @@ final class RemoteProxyTransaction extends AbstractProxyTransaction {
     }
 
     @Override
-    void doMerge(final YangInstanceIdentifier path, final NormalizedNode<?, ?> data) {
+    void doMerge(final YangInstanceIdentifier path, final NormalizedNode data) {
         appendModification(new TransactionMerge(path, data), OptionalLong.empty());
     }
 
     @Override
-    void doWrite(final YangInstanceIdentifier path, final NormalizedNode<?, ?> data) {
+    void doWrite(final YangInstanceIdentifier path, final NormalizedNode data) {
         appendModification(new TransactionWrite(path, data), OptionalLong.empty());
     }
 
@@ -137,8 +137,8 @@ final class RemoteProxyTransaction extends AbstractProxyTransaction {
     }
 
     @Override
-    FluentFuture<Optional<NormalizedNode<?, ?>>> doRead(final YangInstanceIdentifier path) {
-        final SettableFuture<Optional<NormalizedNode<?, ?>>> future = SettableFuture.create();
+    FluentFuture<Optional<NormalizedNode>> doRead(final YangInstanceIdentifier path) {
+        final SettableFuture<Optional<NormalizedNode>> future = SettableFuture.create();
         return sendReadRequest(new ReadTransactionRequest(getIdentifier(), nextSequence(), localActor(), path,
             isSnapshotOnly()), t -> completeRead(path, future, t), future);
     }
@@ -239,8 +239,8 @@ final class RemoteProxyTransaction extends AbstractProxyTransaction {
         recordFinishedRequest(response);
     }
 
-    private void completeRead(final YangInstanceIdentifier path,
-            final SettableFuture<Optional<NormalizedNode<?, ?>>> future, final Response<?, ?> response) {
+    private void completeRead(final YangInstanceIdentifier path, final SettableFuture<Optional<NormalizedNode>> future,
+            final Response<?, ?> response) {
         LOG.debug("Read request for {} completed with {}", path, response);
 
         if (response instanceof ReadTransactionSuccess) {
@@ -415,12 +415,12 @@ final class RemoteProxyTransaction extends AbstractProxyTransaction {
 
         mod.applyToCursor(new AbstractDataTreeModificationCursor() {
             @Override
-            public void write(final PathArgument child, final NormalizedNode<?, ?> data) {
+            public void write(final PathArgument child, final NormalizedNode data) {
                 appendModification(new TransactionWrite(current().node(child), data), optTicks);
             }
 
             @Override
-            public void merge(final PathArgument child, final NormalizedNode<?, ?> data) {
+            public void merge(final PathArgument child, final NormalizedNode data) {
                 appendModification(new TransactionMerge(current().node(child), data), optTicks);
             }
 
index 512e9f4..e8b99e6 100644 (file)
@@ -81,13 +81,13 @@ final class FrontendReadOnlyTransaction extends FrontendTransaction {
     }
 
     private ExistsTransactionSuccess handleExistsTransaction(final ExistsTransactionRequest request) {
-        final Optional<NormalizedNode<?, ?>> data = openTransaction.getSnapshot().readNode(request.getPath());
+        final Optional<NormalizedNode> data = openTransaction.getSnapshot().readNode(request.getPath());
         return recordSuccess(request.getSequence(), new ExistsTransactionSuccess(openTransaction.getIdentifier(),
             request.getSequence(), data.isPresent()));
     }
 
     private ReadTransactionSuccess handleReadTransaction(final ReadTransactionRequest request) {
-        final Optional<NormalizedNode<?, ?>> data = openTransaction.getSnapshot().readNode(request.getPath());
+        final Optional<NormalizedNode> data = openTransaction.getSnapshot().readNode(request.getPath());
         return recordSuccess(request.getSequence(), new ReadTransactionSuccess(openTransaction.getIdentifier(),
             request.getSequence(), data));
     }
index 777490b..4bd2a57 100644 (file)
@@ -524,13 +524,13 @@ final class FrontendReadWriteTransaction extends FrontendTransaction {
     }
 
     private ExistsTransactionSuccess handleExistsTransaction(final ExistsTransactionRequest request) {
-        final Optional<NormalizedNode<?, ?>> data = checkOpen().getSnapshot().readNode(request.getPath());
+        final Optional<NormalizedNode> data = checkOpen().getSnapshot().readNode(request.getPath());
         return recordSuccess(request.getSequence(), new ExistsTransactionSuccess(getIdentifier(), request.getSequence(),
             data.isPresent()));
     }
 
     private ReadTransactionSuccess handleReadTransaction(final ReadTransactionRequest request) {
-        final Optional<NormalizedNode<?, ?>> data = checkOpen().getSnapshot().readNode(request.getPath());
+        final Optional<NormalizedNode> data = checkOpen().getSnapshot().readNode(request.getPath());
         return recordSuccess(request.getSequence(), new ReadTransactionSuccess(getIdentifier(), request.getSequence(),
             data));
     }
index b201486..5435bb5 100644 (file)
@@ -50,7 +50,7 @@ abstract class LocalTransactionContext extends AbstractTransactionContext {
     protected abstract DOMStoreReadTransaction getReadDelegate();
 
     @SuppressWarnings("checkstyle:IllegalCatch")
-    private void executeModification(Consumer<DOMStoreWriteTransaction> consumer) {
+    private void executeModification(final Consumer<DOMStoreWriteTransaction> consumer) {
         incrementModificationCount();
         if (operationError == null) {
             try {
@@ -67,14 +67,12 @@ abstract class LocalTransactionContext extends AbstractTransactionContext {
     }
 
     @Override
-    public void executeMerge(final YangInstanceIdentifier path, final NormalizedNode<?, ?> data,
-            final Boolean havePermit) {
+    public void executeMerge(final YangInstanceIdentifier path, final NormalizedNode data, final Boolean havePermit) {
         executeModification(transaction -> transaction.merge(path, data));
     }
 
     @Override
-    public void executeWrite(final YangInstanceIdentifier path, final NormalizedNode<?, ?> data,
-            final Boolean havePermit) {
+    public void executeWrite(final YangInstanceIdentifier path, final NormalizedNode data, final Boolean havePermit) {
         executeModification(transaction -> transaction.write(path, data));
     }
 
index cee9d78..d98a1b4 100644 (file)
@@ -72,14 +72,12 @@ final class NoOpTransactionContext extends AbstractTransactionContext {
     }
 
     @Override
-    public void executeMerge(final YangInstanceIdentifier path, final NormalizedNode<?, ?> data,
-            final Boolean havePermit) {
+    public void executeMerge(final YangInstanceIdentifier path, final NormalizedNode data, final Boolean havePermit) {
         LOG.debug("Tx {} executeMerge called path = {}", getIdentifier(), path);
     }
 
     @Override
-    public void executeWrite(final YangInstanceIdentifier path, final NormalizedNode<?, ?> data,
-            final Boolean havePermit) {
+    public void executeWrite(final YangInstanceIdentifier path, final NormalizedNode data, final Boolean havePermit) {
         LOG.debug("Tx {} executeWrite called path = {}", getIdentifier(), path);
     }
 }
index ba1d050..a7e76ed 100644 (file)
@@ -208,15 +208,13 @@ public class RemoteTransactionContext extends AbstractTransactionContext {
     }
 
     @Override
-    public void executeMerge(final YangInstanceIdentifier path, final NormalizedNode<?, ?> data,
-            final Boolean havePermit) {
+    public void executeMerge(final YangInstanceIdentifier path, final NormalizedNode data, final Boolean havePermit) {
         LOG.debug("Tx {} executeMerge called path = {}", getIdentifier(), path);
         executeModification(new MergeModification(path, data), havePermit);
     }
 
     @Override
-    public void executeWrite(final YangInstanceIdentifier path, final NormalizedNode<?, ?> data,
-            final Boolean havePermit) {
+    public void executeWrite(final YangInstanceIdentifier path, final NormalizedNode data, final Boolean havePermit) {
         LOG.debug("Tx {} executeWrite called path = {}", getIdentifier(), path);
         executeModification(new WriteModification(path, data), havePermit);
     }
@@ -226,7 +224,7 @@ public class RemoteTransactionContext extends AbstractTransactionContext {
         if (havePermit == null) {
             permitToRelease = failedModification == null && acquireOperation();
         } else {
-            permitToRelease = havePermit.booleanValue();
+            permitToRelease = havePermit;
         }
 
         batchModification(modification, permitToRelease);
@@ -251,7 +249,7 @@ public class RemoteTransactionContext extends AbstractTransactionContext {
         // Send any batched modifications. This is necessary to honor the read uncommitted semantics of the
         // public API contract.
 
-        final boolean permitToRelease = havePermit == null ? acquireOperation() : havePermit.booleanValue();
+        final boolean permitToRelease = havePermit == null ? acquireOperation() : havePermit;
         sendBatchedModifications();
 
         OnComplete<Object> onComplete = new OnComplete<>() {
index 8a826ef..8322289 100644 (file)
@@ -26,11 +26,11 @@ 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;
 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.impl.schema.builder.api.DataContainerNodeBuilder;
 import org.opendaylight.yangtools.yang.model.api.SchemaContext;
 
 final class RootDataTreeChangeListenerActor extends DataTreeChangeListenerActor {
@@ -111,9 +111,9 @@ final class RootDataTreeChangeListenerActor extends DataTreeChangeListenerActor
                     initial = Iterables.get(changes, 0);
                 }
 
-                final NormalizedNode<?, ?> root = initial.getRootNode().getDataAfter().orElseThrow();
+                final NormalizedNode root = initial.getRootNode().getDataAfter().orElseThrow();
                 verify(root instanceof ContainerNode, "Unexpected root node %s", root);
-                ((ContainerNode) root).getValue().forEach(rootBuilder::withChild);
+                ((ContainerNode) root).body().forEach(rootBuilder::withChild);
             }
         }
         // We will not be intercepting any other messages, allow initial state to be reclaimed as soon as possible
index b3688a8..bd5d736 100644 (file)
@@ -231,7 +231,7 @@ public class ShardDataTree extends ShardDataTreeTransactionParent {
      * @return A state snapshot
      */
     @NonNull ShardDataTreeSnapshot takeStateSnapshot() {
-        final NormalizedNode<?, ?> rootNode = dataTree.takeSnapshot().readNode(YangInstanceIdentifier.empty()).get();
+        final NormalizedNode rootNode = dataTree.takeSnapshot().readNode(YangInstanceIdentifier.empty()).get();
         final Builder<Class<? extends ShardDataTreeSnapshotMetadata<?>>, ShardDataTreeSnapshotMetadata<?>> metaBuilder =
                 ImmutableMap.builder();
 
@@ -278,7 +278,7 @@ public class ShardDataTree extends ShardDataTreeTransactionParent {
         // delete everything first
         mod.delete(YangInstanceIdentifier.empty());
 
-        final Optional<NormalizedNode<?, ?>> maybeNode = snapshot.getRootNode();
+        final Optional<NormalizedNode> maybeNode = snapshot.getRootNode();
         if (maybeNode.isPresent()) {
             // Add everything from the remote node back
             mod.write(YangInstanceIdentifier.empty(), maybeNode.get());
@@ -739,7 +739,7 @@ public class ShardDataTree extends ShardDataTreeTransactionParent {
                 id, shard.getDatastoreContext().getInitialPayloadSerializedBufferCapacity()), callback);
     }
 
-    public Optional<NormalizedNode<?, ?>> readNode(final YangInstanceIdentifier path) {
+    public Optional<NormalizedNode> readNode(final YangInstanceIdentifier path) {
         return dataTree.takeSnapshot().readNode(path);
     }
 
index a6c56a5..87d70da 100644 (file)
@@ -105,7 +105,7 @@ abstract class ShardRecoveryCoordinator implements RaftActorRecoveryCohort {
         open = false;
     }
 
-    private File writeRoot(final String kind, final NormalizedNode<?, ?> node) {
+    private File writeRoot(final String kind, final NormalizedNode node) {
         final File file = new File(System.getProperty("karaf.data", "."),
             "failed-recovery-" + kind + "-" + shardName + ".xml");
         NormalizedNodeXMLOutput.toFile(file, node);
index fe36661..cafc2a8 100644 (file)
@@ -29,9 +29,9 @@ interface TransactionContext {
 
     void executeDelete(YangInstanceIdentifier path, Boolean havePermit);
 
-    void executeMerge(YangInstanceIdentifier path, NormalizedNode<?, ?> data, Boolean havePermit);
+    void executeMerge(YangInstanceIdentifier path, NormalizedNode data, Boolean havePermit);
 
-    void executeWrite(YangInstanceIdentifier path, NormalizedNode<?, ?> data, Boolean havePermit);
+    void executeWrite(YangInstanceIdentifier path, NormalizedNode data, Boolean havePermit);
 
     Future<Object> directCommit(Boolean havePermit);
 
index 9f7b008..eeaec6b 100644 (file)
@@ -18,14 +18,14 @@ import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
  */
 abstract class TransactionModificationOperation extends TransactionOperation {
     private abstract static class AbstractDataOperation extends TransactionModificationOperation {
-        private final NormalizedNode<?, ?> data;
+        private final NormalizedNode data;
 
-        AbstractDataOperation(final YangInstanceIdentifier path, final NormalizedNode<?, ?> data) {
+        AbstractDataOperation(final YangInstanceIdentifier path, final NormalizedNode data) {
             super(path);
             this.data = requireNonNull(data);
         }
 
-        final NormalizedNode<?, ?> data() {
+        final NormalizedNode data() {
             return data;
         }
     }
@@ -42,7 +42,7 @@ abstract class TransactionModificationOperation extends TransactionOperation {
     }
 
     static final class MergeOperation extends AbstractDataOperation {
-        MergeOperation(final YangInstanceIdentifier path, final NormalizedNode<?, ?> data) {
+        MergeOperation(final YangInstanceIdentifier path, final NormalizedNode data) {
             super(path, data);
         }
 
@@ -53,7 +53,7 @@ abstract class TransactionModificationOperation extends TransactionOperation {
     }
 
     static final class WriteOperation extends AbstractDataOperation {
-        WriteOperation(final YangInstanceIdentifier path, final NormalizedNode<?, ?> data) {
+        WriteOperation(final YangInstanceIdentifier path, final NormalizedNode data) {
             super(path, data);
         }
 
index 9e5985a..ce0461f 100644 (file)
@@ -47,9 +47,9 @@ 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.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.impl.schema.builder.api.DataContainerNodeBuilder;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import scala.concurrent.Future;
@@ -107,7 +107,7 @@ public class TransactionProxy extends AbstractDOMStoreTransaction<TransactionIde
     }
 
     @Override
-    public FluentFuture<Optional<NormalizedNode<?, ?>>> read(final YangInstanceIdentifier path) {
+    public FluentFuture<Optional<NormalizedNode>> read(final YangInstanceIdentifier path) {
         checkState(type != TransactionType.WRITE_ONLY, "Reads from write-only transactions are not allowed");
         requireNonNull(path, "path should not be null");
 
@@ -115,21 +115,21 @@ public class TransactionProxy extends AbstractDOMStoreTransaction<TransactionIde
         return path.isEmpty() ? readAllData() : singleShardRead(shardNameFromIdentifier(path), path);
     }
 
-    private FluentFuture<Optional<NormalizedNode<?, ?>>> singleShardRead(
-            final String shardName, final YangInstanceIdentifier path) {
+    private FluentFuture<Optional<NormalizedNode>> singleShardRead(final String shardName,
+            final YangInstanceIdentifier path) {
         return executeRead(shardName, new ReadData(path, DataStoreVersions.CURRENT_VERSION));
     }
 
-    private FluentFuture<Optional<NormalizedNode<?, ?>>> readAllData() {
+    private FluentFuture<Optional<NormalizedNode>> readAllData() {
         final Set<String> allShardNames = txContextFactory.getActorUtils().getConfiguration().getAllShardNames();
-        final Collection<FluentFuture<Optional<NormalizedNode<?, ?>>>> futures = new ArrayList<>(allShardNames.size());
+        final Collection<FluentFuture<Optional<NormalizedNode>>> futures = new ArrayList<>(allShardNames.size());
 
         for (String shardName : allShardNames) {
             futures.add(singleShardRead(shardName, YangInstanceIdentifier.empty()));
         }
 
-        final ListenableFuture<List<Optional<NormalizedNode<?, ?>>>> listFuture = Futures.allAsList(futures);
-        final ListenableFuture<Optional<NormalizedNode<?, ?>>> aggregateFuture;
+        final ListenableFuture<List<Optional<NormalizedNode>>> listFuture = Futures.allAsList(futures);
+        final ListenableFuture<Optional<NormalizedNode>> aggregateFuture;
 
         aggregateFuture = Futures.transform(listFuture, input -> {
             try {
@@ -162,7 +162,7 @@ public class TransactionProxy extends AbstractDOMStoreTransaction<TransactionIde
     }
 
     @Override
-    public void merge(final YangInstanceIdentifier path, final NormalizedNode<?, ?> data) {
+    public void merge(final YangInstanceIdentifier path, final NormalizedNode data) {
         checkModificationState("merge", path);
 
         if (path.isEmpty()) {
@@ -175,7 +175,7 @@ public class TransactionProxy extends AbstractDOMStoreTransaction<TransactionIde
     private void mergeAllData(final ContainerNode rootData) {
         // Populate requests for individual shards that are being touched
         final Map<String, DataContainerNodeBuilder<NodeIdentifier, ContainerNode>> rootBuilders = new HashMap<>();
-        for (DataContainerChild<?, ?> child : rootData.getValue()) {
+        for (DataContainerChild child : rootData.body()) {
             final String shardName = shardNameFromRootChild(child);
             rootBuilders.computeIfAbsent(shardName,
                 unused -> Builders.containerBuilder().withNodeIdentifier(rootData.getIdentifier()))
@@ -190,7 +190,7 @@ public class TransactionProxy extends AbstractDOMStoreTransaction<TransactionIde
     }
 
     @Override
-    public void write(final YangInstanceIdentifier path, final NormalizedNode<?, ?> data) {
+    public void write(final YangInstanceIdentifier path, final NormalizedNode data) {
         checkModificationState("write", path);
 
         if (path.isEmpty()) {
@@ -208,7 +208,7 @@ public class TransactionProxy extends AbstractDOMStoreTransaction<TransactionIde
         }
 
         // Now distribute children as needed
-        for (DataContainerChild<?, ?> child : rootData.getValue()) {
+        for (DataContainerChild child : rootData.body()) {
             final String shardName = shardNameFromRootChild(child);
             verifyNotNull(rootBuilders.get(shardName), "Failed to find builder for %s", shardName).addChild(child);
         }
@@ -224,7 +224,7 @@ public class TransactionProxy extends AbstractDOMStoreTransaction<TransactionIde
         getContextWrapper(operation.path()).maybeExecuteTransactionOperation(operation);
     }
 
-    private static ContainerNode checkRootData(final NormalizedNode<?, ?> data) {
+    private static ContainerNode checkRootData(final NormalizedNode data) {
         // Root has to be a container
         checkArgument(data instanceof ContainerNode, "Invalid root data %s", data);
         return (ContainerNode) data;
@@ -353,7 +353,7 @@ public class TransactionProxy extends AbstractDOMStoreTransaction<TransactionIde
         return new ThreePhaseCommitCohortProxy(txContextFactory.getActorUtils(), cohorts, getIdentifier());
     }
 
-    private String shardNameFromRootChild(final DataContainerChild<?, ?> child) {
+    private String shardNameFromRootChild(final DataContainerChild child) {
         return shardNameFromIdentifier(YangInstanceIdentifier.create(child.getIdentifier()));
     }
 
index ab52385..8e132f2 100644 (file)
@@ -182,7 +182,7 @@ public class ConfigurationImpl implements Configuration {
         requireNonNull(config, "ModuleShardConfiguration should not be null");
 
         ModuleConfig moduleConfig = ModuleConfig.builder(config.getModuleName())
-                .nameSpace(config.getNamespace().toASCIIString())
+                .nameSpace(config.getNamespace().toString())
                 .shardStrategy(createShardStrategy(config.getModuleName(), config.getShardStrategyName()))
                 .shardConfig(config.getShardName(), config.getShardMemberNames()).build();
 
index d858b5f..177eb8d 100644 (file)
@@ -9,11 +9,11 @@ package org.opendaylight.controller.cluster.datastore.config;
 
 import static java.util.Objects.requireNonNull;
 
-import java.net.URI;
 import java.util.Collection;
 import org.eclipse.jdt.annotation.NonNull;
 import org.eclipse.jdt.annotation.Nullable;
 import org.opendaylight.controller.cluster.access.concepts.MemberName;
+import org.opendaylight.yangtools.yang.common.XMLNamespace;
 
 /**
  * Encapsulates information for adding a new module shard configuration.
@@ -21,7 +21,7 @@ import org.opendaylight.controller.cluster.access.concepts.MemberName;
  * @author Thomas Pantelis
  */
 public class ModuleShardConfiguration {
-    private final URI namespace;
+    private final XMLNamespace namespace;
     private final String moduleName;
     private final String shardName;
     private final String shardStrategyName;
@@ -37,8 +37,9 @@ public class ModuleShardConfiguration {
      *                          is used.
      * @param shardMemberNames the names of the shard's member replicas.
      */
-    public ModuleShardConfiguration(@NonNull URI namespace, @NonNull String moduleName, @NonNull String shardName,
-            @Nullable String shardStrategyName, @NonNull Collection<MemberName> shardMemberNames) {
+    public ModuleShardConfiguration(final @NonNull XMLNamespace namespace, final @NonNull String moduleName,
+            final @NonNull String shardName, final @Nullable String shardStrategyName,
+            final @NonNull Collection<MemberName> shardMemberNames) {
         this.namespace = requireNonNull(namespace, "nameSpace should not be null");
         this.moduleName = requireNonNull(moduleName, "moduleName should not be null");
         this.shardName = requireNonNull(shardName, "shardName should not be null");
@@ -46,7 +47,7 @@ public class ModuleShardConfiguration {
         this.shardMemberNames = requireNonNull(shardMemberNames, "shardMemberNames");
     }
 
-    public URI getNamespace() {
+    public XMLNamespace getNamespace() {
         return namespace;
     }
 
index 6352b57..1113a85 100644 (file)
@@ -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.messages;
 
 import com.google.common.base.Preconditions;
@@ -17,33 +16,34 @@ import org.opendaylight.mdsal.dom.spi.store.DOMStoreReadTransaction;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
 import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
 
-public class ReadData extends AbstractRead<Optional<NormalizedNode<?, ?>>> {
+public class ReadData extends AbstractRead<Optional<NormalizedNode>> {
     private static final long serialVersionUID = 1L;
 
     public ReadData() {
     }
 
-    public ReadData(final YangInstanceIdentifier path, short version) {
+    public ReadData(final YangInstanceIdentifier path, final short version) {
         super(path, version);
     }
 
     @Override
-    public FluentFuture<Optional<NormalizedNode<?, ?>>> apply(DOMStoreReadTransaction readDelegate) {
+    public FluentFuture<Optional<NormalizedNode>> apply(final DOMStoreReadTransaction readDelegate) {
         return readDelegate.read(getPath());
     }
 
     @Override
-    public void processResponse(Object readResponse, SettableFuture<Optional<NormalizedNode<?, ?>>> returnFuture) {
+    public void processResponse(final Object readResponse,
+            final SettableFuture<Optional<NormalizedNode>> returnFuture) {
         if (ReadDataReply.isSerializedType(readResponse)) {
             ReadDataReply reply = ReadDataReply.fromSerializable(readResponse);
-            returnFuture.set(Optional.<NormalizedNode<?, ?>>ofNullable(reply.getNormalizedNode()));
+            returnFuture.set(Optional.ofNullable(reply.getNormalizedNode()));
         } else {
             returnFuture.setException(new ReadFailedException("Invalid response reading data for path " + getPath()));
         }
     }
 
     @Override
-    protected AbstractRead<Optional<NormalizedNode<?, ?>>> newInstance(short withVersion) {
+    protected AbstractRead<Optional<NormalizedNode>> newInstance(final short withVersion) {
         return new ReadData(getPath(), withVersion);
     }
 
@@ -52,7 +52,7 @@ public class ReadData extends AbstractRead<Optional<NormalizedNode<?, ?>>> {
         return (ReadData)serializable;
     }
 
-    public static boolean isSerializedType(Object message) {
+    public static boolean isSerializedType(final Object message) {
         return message instanceof ReadData;
     }
 }
index 91d38cc..099ca22 100644 (file)
@@ -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.messages;
 
 import java.io.IOException;
@@ -17,17 +16,17 @@ import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
 public class ReadDataReply extends VersionedExternalizableMessage {
     private static final long serialVersionUID = 1L;
 
-    private NormalizedNode<?, ?> normalizedNode;
+    private NormalizedNode normalizedNode;
 
     public ReadDataReply() {
     }
 
-    public ReadDataReply(final NormalizedNode<?, ?> normalizedNode, final short version) {
+    public ReadDataReply(final NormalizedNode normalizedNode, final short version) {
         super(version);
         this.normalizedNode = normalizedNode;
     }
 
-    public NormalizedNode<?, ?> getNormalizedNode() {
+    public NormalizedNode getNormalizedNode() {
         return normalizedNode;
     }
 
index 96ae382..ad32ecf 100644 (file)
@@ -8,7 +8,7 @@
 package org.opendaylight.controller.cluster.datastore.messages;
 
 import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
-import org.opendaylight.yangtools.yang.model.util.AbstractEffectiveModelContextProvider;
+import org.opendaylight.yangtools.yang.model.spi.AbstractEffectiveModelContextProvider;
 
 public class UpdateSchemaContext extends AbstractEffectiveModelContextProvider {
     public UpdateSchemaContext(final EffectiveModelContext modelContext) {
index 0dbc480..098a895 100644 (file)
@@ -30,11 +30,11 @@ public class MergeModification extends WriteModification {
         super(version);
     }
 
-    public MergeModification(final YangInstanceIdentifier path, final NormalizedNode<?, ?> data) {
+    public MergeModification(final YangInstanceIdentifier path, final NormalizedNode data) {
         super(path, data);
     }
 
-    MergeModification(final short version, final YangInstanceIdentifier path, final NormalizedNode<?, ?> data) {
+    MergeModification(final short version, final YangInstanceIdentifier path, final NormalizedNode data) {
         super(version, path, data);
     }
 
@@ -55,7 +55,7 @@ public class MergeModification extends WriteModification {
 
     public static MergeModification fromStream(final NormalizedNodeDataInput in, final short version,
             final ReusableStreamReceiver receiver) throws IOException {
-        final NormalizedNode<?, ?> node = in.readNormalizedNode(receiver);
+        final NormalizedNode node = in.readNormalizedNode(receiver);
         final YangInstanceIdentifier path = in.readYangInstanceIdentifier();
         return new MergeModification(version, path, node);
     }
index dde0be7..9e00d4b 100644 (file)
@@ -26,7 +26,7 @@ import org.opendaylight.yangtools.yang.data.codec.binfmt.NormalizedNodeDataOutpu
 public class WriteModification extends AbstractModification {
     private static final long serialVersionUID = 1L;
 
-    private NormalizedNode<?, ?> data;
+    private NormalizedNode data;
 
     public WriteModification() {
         this(DataStoreVersions.CURRENT_VERSION);
@@ -36,12 +36,12 @@ public class WriteModification extends AbstractModification {
         super(version);
     }
 
-    WriteModification(final short version, final YangInstanceIdentifier path, final NormalizedNode<?, ?> data) {
+    WriteModification(final short version, final YangInstanceIdentifier path, final NormalizedNode data) {
         super(version, path);
         this.data = data;
     }
 
-    public WriteModification(final YangInstanceIdentifier path, final NormalizedNode<?, ?> data) {
+    public WriteModification(final YangInstanceIdentifier path, final NormalizedNode data) {
         super(path);
         this.data = data;
     }
@@ -56,7 +56,7 @@ public class WriteModification extends AbstractModification {
         transaction.write(getPath(), data);
     }
 
-    public NormalizedNode<?, ?> getData() {
+    public NormalizedNode getData() {
         return data;
     }
 
@@ -80,7 +80,7 @@ public class WriteModification extends AbstractModification {
 
     public static WriteModification fromStream(final NormalizedNodeDataInput in, final short version,
             final ReusableStreamReceiver receiver) throws IOException {
-        final NormalizedNode<?, ?> node = in.readNormalizedNode(receiver);
+        final NormalizedNode node = in.readNormalizedNode(receiver);
         final YangInstanceIdentifier path = in.readYangInstanceIdentifier();
         return new WriteModification(version, path, node);
     }
index 8ef201c..453bbbb 100644 (file)
@@ -41,7 +41,7 @@ abstract class AbstractDataTreeCandidateNode implements DataTreeCandidateNode {
     }
 
     @Override
-    public final Optional<NormalizedNode<?, ?>> getDataBefore() {
+    public final Optional<NormalizedNode> getDataBefore() {
         throw new UnsupportedOperationException("Before-image not available after serialization");
     }
 
@@ -53,7 +53,7 @@ abstract class AbstractDataTreeCandidateNode implements DataTreeCandidateNode {
             }
 
             @Override
-            public Optional<NormalizedNode<?, ?>> getDataAfter() {
+            public Optional<NormalizedNode> getDataAfter() {
                 throw new UnsupportedOperationException("After-image not available after serialization");
             }
 
index 5572794..0667f7c 100644 (file)
@@ -7,7 +7,8 @@
  */
 package org.opendaylight.controller.cluster.datastore.persisted;
 
-import com.google.common.base.Verify;
+import static com.google.common.base.Verify.verifyNotNull;
+
 import java.io.IOException;
 import java.io.ObjectInput;
 import java.io.ObjectOutput;
@@ -56,8 +57,8 @@ abstract class AbstractVersionedShardDataTreeSnapshot extends ShardDataTreeSnaps
     }
 
     @Override
-    public final Optional<NormalizedNode<?, ?>> getRootNode() {
-        return Optional.of(Verify.verifyNotNull(rootNode(), "Snapshot %s returned non-present root node", getClass()));
+    public final Optional<NormalizedNode> getRootNode() {
+        return Optional.of(verifyNotNull(rootNode(), "Snapshot %s returned non-present root node", getClass()));
     }
 
     /**
@@ -65,7 +66,7 @@ abstract class AbstractVersionedShardDataTreeSnapshot extends ShardDataTreeSnaps
      *
      * @return The root node.
      */
-    abstract @NonNull NormalizedNode<?, ?> rootNode();
+    abstract @NonNull NormalizedNode rootNode();
 
     /**
      * Return the snapshot payload version. Implementations of this method should return a constant.
index 29a3287..5337530 100644 (file)
@@ -32,7 +32,7 @@ import org.opendaylight.controller.cluster.datastore.persisted.DataTreeCandidate
 import org.opendaylight.controller.cluster.io.ChunkedByteArray;
 import org.opendaylight.controller.cluster.io.ChunkedOutputStream;
 import org.opendaylight.controller.cluster.raft.protobuff.client.messages.IdentifiablePayload;
-import org.opendaylight.yangtools.concepts.Variant;
+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;
@@ -69,7 +69,7 @@ public abstract class CommitTransactionPayload extends IdentifiablePayload<Trans
             DataTreeCandidateInputOutput.writeDataTreeCandidate(dos, version, candidate);
         }
 
-        final Variant<byte[], ChunkedByteArray> source = cos.toVariant();
+        final Either<byte[], ChunkedByteArray> source = cos.toVariant();
         LOG.debug("Initial buffer capacity {}, actual serialized size {}", initialSerializedBufferCapacity, cos.size());
         return source.isFirst() ? new Simple(source.getFirst()) : new Chunked(source.getSecond());
     }
index d21e198..a97f8f4 100644 (file)
@@ -43,7 +43,7 @@ public final class MetadataShardDataTreeSnapshot extends AbstractVersionedShardD
 
         private Map<Class<? extends ShardDataTreeSnapshotMetadata<?>>, ShardDataTreeSnapshotMetadata<?>> metadata;
         private NormalizedNodeStreamVersion version;
-        private NormalizedNode<?, ?> rootNode;
+        private NormalizedNode rootNode;
 
         // checkstyle flags the public modifier as redundant which really doesn't make sense since it clearly isn't
         // redundant. It is explicitly needed for Java serialization to be able to create instances via reflection.
@@ -111,13 +111,13 @@ public final class MetadataShardDataTreeSnapshot extends AbstractVersionedShardD
     private final Map<Class<? extends ShardDataTreeSnapshotMetadata<?>>, ShardDataTreeSnapshotMetadata<?>> metadata;
 
     @SuppressFBWarnings(value = "SE_BAD_FIELD", justification = "See above justification.")
-    private final NormalizedNode<?, ?> rootNode;
+    private final NormalizedNode rootNode;
 
-    public MetadataShardDataTreeSnapshot(final NormalizedNode<?, ?> rootNode) {
+    public MetadataShardDataTreeSnapshot(final NormalizedNode rootNode) {
         this(rootNode, ImmutableMap.of());
     }
 
-    public MetadataShardDataTreeSnapshot(final NormalizedNode<?, ?> rootNode,
+    public MetadataShardDataTreeSnapshot(final NormalizedNode rootNode,
             final Map<Class<? extends ShardDataTreeSnapshotMetadata<?>>, ShardDataTreeSnapshotMetadata<?>> metadata) {
         this.rootNode = requireNonNull(rootNode);
         this.metadata = ImmutableMap.copyOf(metadata);
@@ -128,7 +128,7 @@ public final class MetadataShardDataTreeSnapshot extends AbstractVersionedShardD
     }
 
     @Override
-    NormalizedNode<?, ?> rootNode() {
+    NormalizedNode rootNode() {
         return rootNode;
     }
 
index 2cede0d..061d913 100644 (file)
@@ -49,7 +49,7 @@ abstract class ModifiedDataTreeCandidateNode extends AbstractDataTreeCandidateNo
     }
 
     @Override
-    public final Optional<NormalizedNode<?, ?>> getDataAfter() {
+    public final Optional<NormalizedNode> getDataAfter() {
         throw new UnsupportedOperationException("After-image not available after serialization");
     }
 
index 9c1622b..7ae9fa2 100644 (file)
@@ -43,7 +43,7 @@ public abstract class ShardDataTreeSnapshot {
      *
      * @return An optional root node.
      */
-    public abstract Optional<NormalizedNode<?, ?>> getRootNode();
+    public abstract Optional<NormalizedNode> getRootNode();
 
     public abstract void serialize(ObjectOutput out) throws IOException;
 }
index 7b57453..5891c4f 100644 (file)
@@ -58,7 +58,7 @@ public class ShardStrategyFactory {
             return UNKNOWN_MODULE_NAME;
         }
 
-        String namespace = path.getPathArguments().get(0).getNodeType().getNamespace().toASCIIString();
+        String namespace = path.getPathArguments().get(0).getNodeType().getNamespace().toString();
         String moduleName = configuration.getModuleNameFromNameSpace(namespace);
         return moduleName != null ? moduleName : UNKNOWN_MODULE_NAME;
     }
index d859f67..ae0938e 100644 (file)
@@ -21,7 +21,6 @@ import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
  * @author Thomas Pantelis
  */
 public abstract class AbstractBatchedModificationsCursor extends AbstractDataTreeModificationCursor {
-
     protected abstract BatchedModifications getModifications();
 
     @Override
@@ -30,12 +29,12 @@ public abstract class AbstractBatchedModificationsCursor extends AbstractDataTre
     }
 
     @Override
-    public final void merge(final PathArgument child, final NormalizedNode<?, ?> data) {
+    public final void merge(final PathArgument child, final NormalizedNode data) {
         getModifications().addModification(new MergeModification(current().node(child), data));
     }
 
     @Override
-    public final void write(final PathArgument child, final NormalizedNode<?, ?> data) {
+    public final void write(final PathArgument child, final NormalizedNode data) {
         getModifications().addModification(new WriteModification(current().node(child), data));
     }
 }
index 9dc308e..c298371 100644 (file)
@@ -59,16 +59,16 @@ public final class DataTreeModificationOutput {
         }
 
         @Override
-        public void merge(final PathArgument child, final NormalizedNode<?, ?> data) {
+        public void merge(final PathArgument child, final NormalizedNode data) {
             outputPathAndNode("MERGE", child, data);
         }
 
         @Override
-        public void write(final PathArgument child, final NormalizedNode<?, ?> data) {
+        public void write(final PathArgument child, final NormalizedNode data) {
             outputPathAndNode("WRITE", child, data);
         }
 
-        private void outputPathAndNode(final String name, final PathArgument child, final NormalizedNode<?, ?> data) {
+        private void outputPathAndNode(final String name, final PathArgument child, final NormalizedNode data) {
             try {
                 output.writeByte('\n');
                 output.write(name.getBytes(StandardCharsets.UTF_8));
index 0d2f65b..a78e36c 100644 (file)
@@ -22,11 +22,11 @@ import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
 
 public final class NormalizedNodeAggregator {
     private final YangInstanceIdentifier rootIdentifier;
-    private final List<Optional<NormalizedNode<?, ?>>> nodes;
+    private final List<Optional<NormalizedNode>> nodes;
     private final DataTree dataTree;
 
     private NormalizedNodeAggregator(final YangInstanceIdentifier rootIdentifier,
-            final List<Optional<NormalizedNode<?, ?>>> nodes, final EffectiveModelContext schemaContext,
+            final List<Optional<NormalizedNode>> nodes, final EffectiveModelContext schemaContext,
             final LogicalDatastoreType logicalDatastoreType) {
         this.rootIdentifier = rootIdentifier;
         this.nodes = nodes;
@@ -39,20 +39,20 @@ public final class NormalizedNodeAggregator {
     /**
      * Combine data from all the nodes in the list into a tree with root as rootIdentifier.
      */
-    public static Optional<NormalizedNode<?,?>> aggregate(final YangInstanceIdentifier rootIdentifier,
-            final List<Optional<NormalizedNode<?, ?>>> nodes, final EffectiveModelContext schemaContext,
+    public static Optional<NormalizedNode> aggregate(final YangInstanceIdentifier rootIdentifier,
+            final List<Optional<NormalizedNode>> nodes, final EffectiveModelContext schemaContext,
             final LogicalDatastoreType logicalDatastoreType) throws DataValidationFailedException {
         return new NormalizedNodeAggregator(rootIdentifier, nodes, schemaContext, logicalDatastoreType).aggregate();
     }
 
-    private Optional<NormalizedNode<?,?>> aggregate() throws DataValidationFailedException {
+    private Optional<NormalizedNode> aggregate() throws DataValidationFailedException {
         return combine().getRootNode();
     }
 
     private NormalizedNodeAggregator combine() throws DataValidationFailedException {
         final DataTreeModification mod = dataTree.takeSnapshot().newModification();
 
-        for (final Optional<NormalizedNode<?,?>> node : nodes) {
+        for (final Optional<NormalizedNode> node : nodes) {
             if (node.isPresent()) {
                 mod.merge(rootIdentifier, node.get());
             }
@@ -65,7 +65,7 @@ public final class NormalizedNodeAggregator {
         return this;
     }
 
-    private Optional<NormalizedNode<?, ?>> getRootNode() {
+    private Optional<NormalizedNode> getRootNode() {
         return dataTree.takeSnapshot().readNode(rootIdentifier);
     }
 }
index 49a0f47..643d107 100644 (file)
@@ -40,7 +40,7 @@ public final class NormalizedNodeXMLOutput {
     private NormalizedNodeXMLOutput() {
     }
 
-    public static void toStream(OutputStream outStream, NormalizedNode<?, ?> node)
+    public static void toStream(final OutputStream outStream, final NormalizedNode node)
             throws XMLStreamException, IOException {
         XMLStreamWriter xmlWriter = XOF.createXMLStreamWriter(outStream);
 
@@ -53,7 +53,7 @@ public final class NormalizedNodeXMLOutput {
         }
     }
 
-    public static void toFile(File file, NormalizedNode<?, ?> node) {
+    public static void toFile(final File file, final NormalizedNode node) {
         try (FileOutputStream outStream = new FileOutputStream(file)) {
             toStream(outStream, node);
         } catch (IOException | XMLStreamException e) {
index f156c2f..06f3a05 100644 (file)
@@ -43,12 +43,12 @@ public abstract class PruningDataTreeModification extends ForwardingObject imple
         }
 
         @Override
-        public void merge(final YangInstanceIdentifier path, final NormalizedNode<?, ?> data) {
+        public void merge(final YangInstanceIdentifier path, final NormalizedNode data) {
             pruneAndMergeNode(path, data);
         }
 
         @Override
-        public void write(final YangInstanceIdentifier path, final NormalizedNode<?, ?> data) {
+        public void write(final YangInstanceIdentifier path, final NormalizedNode data) {
             pruneAndWriteNode(path, data);
         }
 
@@ -71,7 +71,7 @@ public abstract class PruningDataTreeModification extends ForwardingObject imple
         }
 
         @Override
-        public void merge(final YangInstanceIdentifier path, final NormalizedNode<?, ?> data) {
+        public void merge(final YangInstanceIdentifier path, final NormalizedNode data) {
             if (path.isEmpty()) {
                 pruneAndMergeNode(path, data);
                 return;
@@ -86,7 +86,7 @@ public abstract class PruningDataTreeModification extends ForwardingObject imple
         }
 
         @Override
-        public void write(final YangInstanceIdentifier path, final NormalizedNode<?, ?> data) {
+        public void write(final YangInstanceIdentifier path, final NormalizedNode data) {
             if (path.isEmpty()) {
                 pruneAndWriteNode(path, data);
                 return;
@@ -140,15 +140,15 @@ public abstract class PruningDataTreeModification extends ForwardingObject imple
         }
     }
 
-    final void pruneAndMergeNode(final YangInstanceIdentifier path, final NormalizedNode<?, ?> data) {
-        final NormalizedNode<?, ?> pruned = pruneNormalizedNode(path, data);
+    final void pruneAndMergeNode(final YangInstanceIdentifier path, final NormalizedNode data) {
+        final NormalizedNode pruned = pruneNormalizedNode(path, data);
         if (pruned != null) {
             delegate.merge(path, pruned);
         }
     }
 
-    final void pruneAndWriteNode(final YangInstanceIdentifier path, final NormalizedNode<?, ?> data) {
-        final NormalizedNode<?, ?> pruned = pruneNormalizedNode(path, data);
+    final void pruneAndWriteNode(final YangInstanceIdentifier path, final NormalizedNode data) {
+        final NormalizedNode pruned = pruneNormalizedNode(path, data);
         if (pruned != null) {
             delegate.write(path, pruned);
         }
@@ -173,7 +173,7 @@ public abstract class PruningDataTreeModification extends ForwardingObject imple
     }
 
     @Override
-    public final Optional<NormalizedNode<?, ?>> readNode(final YangInstanceIdentifier yangInstanceIdentifier) {
+    public final Optional<NormalizedNode> readNode(final YangInstanceIdentifier yangInstanceIdentifier) {
         return delegate.readNode(yangInstanceIdentifier);
     }
 
@@ -183,8 +183,7 @@ public abstract class PruningDataTreeModification extends ForwardingObject imple
     }
 
     @VisibleForTesting
-    final NormalizedNode<?, ?> pruneNormalizedNode(final YangInstanceIdentifier path,
-            final NormalizedNode<?, ?> input) {
+    final NormalizedNode pruneNormalizedNode(final YangInstanceIdentifier path, final NormalizedNode input) {
         pruner.initializeForPath(path);
         try {
             NormalizedNodeWriter.forStreamWriter(pruner).write(input);
@@ -210,18 +209,18 @@ public abstract class PruningDataTreeModification extends ForwardingObject imple
         }
 
         @Override
-        public void write(final PathArgument child, final NormalizedNode<?, ?> data) {
+        public void write(final PathArgument child, final NormalizedNode data) {
             final YangInstanceIdentifier path = current().node(child);
-            final NormalizedNode<?, ?> prunedNode = pruningModification.pruneNormalizedNode(path, data);
+            final NormalizedNode prunedNode = pruningModification.pruneNormalizedNode(path, data);
             if (prunedNode != null) {
                 toModification.write(path, prunedNode);
             }
         }
 
         @Override
-        public void merge(final PathArgument child, final NormalizedNode<?, ?> data) {
+        public void merge(final PathArgument child, final NormalizedNode data) {
             final YangInstanceIdentifier path = current().node(child);
-            final NormalizedNode<?, ?> prunedNode = pruningModification.pruneNormalizedNode(path, data);
+            final NormalizedNode prunedNode = pruningModification.pruneNormalizedNode(path, data);
             if (prunedNode != null) {
                 toModification.merge(path, prunedNode);
             }
index 5bb61b0..c56209f 100644 (file)
@@ -28,7 +28,7 @@ public class ClientBackedReadTransactionTest extends ClientBackedTransactionTest
     private ClientBackedReadTransaction object;
 
     @Mock
-    private NormalizedNode<?, ?> data;
+    private NormalizedNode data;
     @Mock
     private ClientActorContext clientContext;
     @Mock
@@ -54,8 +54,8 @@ public class ClientBackedReadTransactionTest extends ClientBackedTransactionTest
 
     @Test
     public void testRead() throws Exception {
-        final ListenableFuture<Optional<NormalizedNode<?, ?>>> result = object().read(YangInstanceIdentifier.empty());
-        final Optional<NormalizedNode<?, ?>> resultData = result.get();
+        final ListenableFuture<Optional<NormalizedNode>> result = object().read(YangInstanceIdentifier.empty());
+        final Optional<NormalizedNode> resultData = result.get();
         assertTrue(resultData.isPresent());
         assertEquals(data, resultData.get());
     }
index d651d08..1d29ed1 100644 (file)
@@ -31,7 +31,7 @@ public class ClientBackedReadWriteTransactionTest
     @Mock
     private ClientTransaction delegate;
     @Mock
-    private NormalizedNode<?, ?> data;
+    private NormalizedNode data;
     @Mock
     private DOMStoreThreePhaseCommitCohort readyCohort;
 
@@ -55,8 +55,8 @@ public class ClientBackedReadWriteTransactionTest
 
     @Test
     public void testRead() throws Exception {
-        final FluentFuture<Optional<NormalizedNode<?, ?>>> result = object().read(YangInstanceIdentifier.empty());
-        final Optional<NormalizedNode<?, ?>> resultData = result.get();
+        final FluentFuture<Optional<NormalizedNode>> result = object().read(YangInstanceIdentifier.empty());
+        final Optional<NormalizedNode> resultData = result.get();
         assertTrue(resultData.isPresent());
         assertEquals(data, resultData.get());
     }
index 390dc70..9e8c332 100644 (file)
@@ -50,9 +50,8 @@ public class ClientSnapshotTest extends AbstractClientHandleTest<ClientSnapshot>
 
     @Test
     public void testRead() throws Exception {
-        final ListenableFuture<Optional<NormalizedNode<?, ?>>> exists = getHandle().read(PATH);
+        final ListenableFuture<Optional<NormalizedNode>> exists = getHandle().read(PATH);
         verify(getDataTreeSnapshot()).readNode(PATH);
         assertFalse(getWithTimeout(exists).isPresent());
     }
-
 }
index 486c07c..69494f3 100644 (file)
@@ -26,6 +26,7 @@ import org.opendaylight.controller.cluster.access.commands.TransactionCommitSucc
 import org.opendaylight.mdsal.dom.spi.store.DOMStoreThreePhaseCommitCohort;
 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;
@@ -35,7 +36,7 @@ public class ClientTransactionTest extends AbstractClientHandleTest<ClientTransa
     private static final YangInstanceIdentifier PATH = YangInstanceIdentifier.builder()
             .node(QName.create("ns-1", "node-1"))
             .build();
-    private static final NormalizedNode<?, ?> DATA = Builders.containerBuilder()
+    private static final ContainerNode DATA = Builders.containerBuilder()
             .withNodeIdentifier(YangInstanceIdentifier.NodeIdentifier.create(PATH.getLastPathArgument().getNodeType()))
             .build();
 
@@ -69,9 +70,9 @@ public class ClientTransactionTest extends AbstractClientHandleTest<ClientTransa
 
     @Test
     public void testRead() throws Exception {
-        final FluentFuture<Optional<NormalizedNode<?, ?>>> resultFuture = getHandle().read(PATH);
+        final FluentFuture<Optional<NormalizedNode>> resultFuture = getHandle().read(PATH);
         verify(modification).readNode(PATH);
-        final Optional<NormalizedNode<?, ?>> result = getWithTimeout(resultFuture);
+        final Optional<NormalizedNode> result = getWithTimeout(resultFuture);
         assertTrue(result.isPresent());
         assertEquals(DATA, result.get());
     }
index 497622f..6afecf3 100644 (file)
@@ -66,9 +66,9 @@ public class RemoteProxyTransactionTest extends AbstractProxyTransactionTest<Rem
     @Test
     public void testRead() throws Exception {
         final TransactionTester<RemoteProxyTransaction> tester = getTester();
-        final FluentFuture<Optional<NormalizedNode<?, ?>>> read = transaction.read(PATH_2);
+        final FluentFuture<Optional<NormalizedNode>> read = transaction.read(PATH_2);
         final ReadTransactionRequest req = tester.expectTransactionRequest(ReadTransactionRequest.class);
-        final Optional<NormalizedNode<?, ?>> result = Optional.of(DATA_1);
+        final Optional<NormalizedNode> result = Optional.of(DATA_1);
         tester.replySuccess(new ReadTransactionSuccess(TRANSACTION_ID, req.getSequence(), result));
         assertFutureEquals(result, read);
     }
index cbe494f..f7fbb05 100644 (file)
@@ -154,7 +154,7 @@ public abstract class AbstractDistributedDataStoreIntegrationTest {
             // Verify the data in the store
             final DOMStoreReadTransaction readTx = dataStore.newReadOnlyTransaction();
 
-            Optional<NormalizedNode<?, ?>> optional = readTx.read(carPath).get(5, TimeUnit.SECONDS);
+            Optional<NormalizedNode> optional = readTx.read(carPath).get(5, TimeUnit.SECONDS);
             assertTrue("isPresent", optional.isPresent());
             assertEquals("Data node", car, optional.get());
 
@@ -176,14 +176,14 @@ public abstract class AbstractDistributedDataStoreIntegrationTest {
 
             // 2. Write some data
             final YangInstanceIdentifier nodePath = TestModel.TEST_PATH;
-            final NormalizedNode<?, ?> nodeToWrite = ImmutableNodes.containerNode(TestModel.TEST_QNAME);
+            final NormalizedNode nodeToWrite = ImmutableNodes.containerNode(TestModel.TEST_QNAME);
             readWriteTx.write(nodePath, nodeToWrite);
 
             // 3. Read the data from Tx
             final Boolean exists = readWriteTx.exists(nodePath).get(5, TimeUnit.SECONDS);
             assertEquals("exists", Boolean.TRUE, exists);
 
-            Optional<NormalizedNode<?, ?>> optional = readWriteTx.read(nodePath).get(5, TimeUnit.SECONDS);
+            Optional<NormalizedNode> optional = readWriteTx.read(nodePath).get(5, TimeUnit.SECONDS);
             assertTrue("isPresent", optional.isPresent());
             assertEquals("Data node", nodeToWrite, optional.get());
 
@@ -236,7 +236,7 @@ public abstract class AbstractDistributedDataStoreIntegrationTest {
             final Boolean exists = readWriteTx.exists(carPath).get(5, TimeUnit.SECONDS);
             assertEquals("exists", Boolean.TRUE, exists);
 
-            Optional<NormalizedNode<?, ?>> optional = readWriteTx.read(carPath).get(5, TimeUnit.SECONDS);
+            Optional<NormalizedNode> optional = readWriteTx.read(carPath).get(5, TimeUnit.SECONDS);
             assertTrue("isPresent", optional.isPresent());
             assertEquals("Data node", car, optional.get());
 
@@ -304,10 +304,10 @@ public abstract class AbstractDistributedDataStoreIntegrationTest {
                 assertTrue(frontendMetadata.getClients().get(0).getCurrentHistories().isEmpty());
             }
 
-            final Optional<NormalizedNode<?, ?>> optional = txChain.newReadOnlyTransaction()
+            final Optional<NormalizedNode> optional = txChain.newReadOnlyTransaction()
                     .read(CarsModel.CAR_LIST_PATH).get(5, TimeUnit.SECONDS);
             assertTrue("isPresent", optional.isPresent());
-            assertEquals("# cars", numCars, ((Collection<?>) optional.get().getValue()).size());
+            assertEquals("# cars", numCars, ((Collection<?>) optional.get().body()).size());
         }
     }
 
@@ -445,7 +445,7 @@ public abstract class AbstractDistributedDataStoreIntegrationTest {
             assertNotNull("newWriteOnlyTransaction returned null", writeTx);
 
             // 2. Write some data
-            final NormalizedNode<?, ?> testNode = ImmutableNodes.containerNode(TestModel.TEST_QNAME);
+            final NormalizedNode testNode = ImmutableNodes.containerNode(TestModel.TEST_QNAME);
             writeTx.write(TestModel.TEST_PATH, testNode);
 
             // 3. Ready the Tx for commit
@@ -471,7 +471,7 @@ public abstract class AbstractDistributedDataStoreIntegrationTest {
             // the data from the first
             // Tx is visible after being readied.
             DOMStoreReadTransaction readTx = txChain.newReadOnlyTransaction();
-            Optional<NormalizedNode<?, ?>> optional = readTx.read(TestModel.TEST_PATH).get(5, TimeUnit.SECONDS);
+            Optional<NormalizedNode> optional = readTx.read(TestModel.TEST_PATH).get(5, TimeUnit.SECONDS);
             assertTrue("isPresent", optional.isPresent());
             assertEquals("Data node", testNode, optional.get());
 
@@ -544,7 +544,7 @@ public abstract class AbstractDistributedDataStoreIntegrationTest {
             final YangInstanceIdentifier personPath = PeopleModel.newPersonPath("jack");
             readWriteTx.merge(personPath, person);
 
-            Optional<NormalizedNode<?, ?>> optional = readWriteTx.read(carPath).get(5, TimeUnit.SECONDS);
+            Optional<NormalizedNode> optional = readWriteTx.read(carPath).get(5, TimeUnit.SECONDS);
             assertTrue("isPresent", optional.isPresent());
             assertEquals("Data node", car, optional.get());
 
@@ -615,10 +615,10 @@ public abstract class AbstractDistributedDataStoreIntegrationTest {
                 f.get(5, TimeUnit.SECONDS);
             }
 
-            final Optional<NormalizedNode<?, ?>> optional = txChain.newReadOnlyTransaction()
+            final Optional<NormalizedNode> optional = txChain.newReadOnlyTransaction()
                     .read(LogicalDatastoreType.CONFIGURATION, CarsModel.CAR_LIST_PATH).get(5, TimeUnit.SECONDS);
             assertTrue("isPresent", optional.isPresent());
-            assertEquals("# cars", numCars, ((Collection<?>) optional.get().getValue()).size());
+            assertEquals("# cars", numCars, ((Collection<?>) optional.get().body()).size());
 
             txChain.close();
 
@@ -640,7 +640,7 @@ public abstract class AbstractDistributedDataStoreIntegrationTest {
 
             final DOMStoreReadWriteTransaction rwTx2 = txChain.newReadWriteTransaction();
 
-            final Optional<NormalizedNode<?, ?>> optional = rwTx2.read(TestModel.TEST_PATH).get(5, TimeUnit.SECONDS);
+            final Optional<NormalizedNode> optional = rwTx2.read(TestModel.TEST_PATH).get(5, TimeUnit.SECONDS);
             assertFalse("isPresent", optional.isPresent());
 
             txChain.close();
@@ -696,10 +696,10 @@ public abstract class AbstractDistributedDataStoreIntegrationTest {
             final DOMStoreThreePhaseCommitCohort cohort1 = writeTx.ready();
 
             // Create read-only tx's and issue a read.
-            FluentFuture<Optional<NormalizedNode<?, ?>>> readFuture1 = txChain
+            FluentFuture<Optional<NormalizedNode>> readFuture1 = txChain
                     .newReadOnlyTransaction().read(TestModel.TEST_PATH);
 
-            FluentFuture<Optional<NormalizedNode<?, ?>>> readFuture2 = txChain
+            FluentFuture<Optional<NormalizedNode>> readFuture2 = txChain
                     .newReadOnlyTransaction().read(TestModel.TEST_PATH);
 
             // Create another write tx and issue the write.
@@ -872,7 +872,7 @@ public abstract class AbstractDistributedDataStoreIntegrationTest {
         DataTree dataTree = new InMemoryDataTreeFactory().create(
             DataTreeConfiguration.DEFAULT_OPERATIONAL, SchemaContextHelper.full());
         AbstractShardTest.writeToStore(dataTree, CarsModel.BASE_PATH, carsNode);
-        NormalizedNode<?, ?> root = AbstractShardTest.readStore(dataTree, YangInstanceIdentifier.empty());
+        NormalizedNode root = AbstractShardTest.readStore(dataTree, YangInstanceIdentifier.empty());
 
         final Snapshot carsSnapshot = Snapshot.create(
             new ShardSnapshotState(new MetadataShardDataTreeSnapshot(root)),
@@ -881,7 +881,7 @@ public abstract class AbstractDistributedDataStoreIntegrationTest {
         dataTree = new InMemoryDataTreeFactory().create(DataTreeConfiguration.DEFAULT_OPERATIONAL,
             SchemaContextHelper.full());
 
-        final NormalizedNode<?, ?> peopleNode = PeopleModel.create();
+        final NormalizedNode peopleNode = PeopleModel.create();
         AbstractShardTest.writeToStore(dataTree, PeopleModel.BASE_PATH, peopleNode);
 
         root = AbstractShardTest.readStore(dataTree, YangInstanceIdentifier.empty());
@@ -900,7 +900,7 @@ public abstract class AbstractDistributedDataStoreIntegrationTest {
             final DOMStoreReadTransaction readTx = dataStore.newReadOnlyTransaction();
 
             // two reads
-            Optional<NormalizedNode<?, ?>> optional = readTx.read(CarsModel.BASE_PATH).get(5, TimeUnit.SECONDS);
+            Optional<NormalizedNode> optional = readTx.read(CarsModel.BASE_PATH).get(5, TimeUnit.SECONDS);
             assertTrue("isPresent", optional.isPresent());
             assertEquals("Data node", carsNode, optional.get());
 
@@ -925,7 +925,7 @@ public abstract class AbstractDistributedDataStoreIntegrationTest {
 
             ContainerNode rootNode = ImmutableContainerNodeBuilder.create()
                     .withNodeIdentifier(YangInstanceIdentifier.NodeIdentifier.create(SchemaContext.NAME))
-                    .withChild((ContainerNode) CarsModel.create())
+                    .withChild(CarsModel.create())
                     .build();
 
             testKit.testWriteTransaction(dataStore, YangInstanceIdentifier.empty(), rootNode);
index 7fe5e87..8c6e841 100644 (file)
@@ -67,7 +67,6 @@ import org.opendaylight.controller.cluster.raft.utils.InMemorySnapshotStore;
 import org.opendaylight.controller.md.cluster.datastore.model.CarsModel;
 import org.opendaylight.controller.md.cluster.datastore.model.TestModel;
 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.DataContainerChild;
 import org.opendaylight.yangtools.yang.data.api.schema.MapEntryNode;
 import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
@@ -158,18 +157,18 @@ public abstract class AbstractShardTest extends AbstractActorTest {
 
         // Verify data in the data store.
 
-        final NormalizedNode<?, ?> outerList = readStore(shard, TestModel.OUTER_LIST_PATH);
+        final NormalizedNode outerList = readStore(shard, TestModel.OUTER_LIST_PATH);
         assertNotNull(TestModel.OUTER_LIST_QNAME.getLocalName() + " not found", outerList);
         assertTrue(TestModel.OUTER_LIST_QNAME.getLocalName() + " value is not Iterable",
-                outerList.getValue() instanceof Iterable);
-        for (final Object entry: (Iterable<?>) outerList.getValue()) {
+                outerList.body() instanceof Iterable);
+        for (final Object entry: (Iterable<?>) outerList.body()) {
             assertTrue(TestModel.OUTER_LIST_QNAME.getLocalName() + " entry is not MapEntryNode",
                     entry instanceof MapEntryNode);
             final MapEntryNode mapEntry = (MapEntryNode)entry;
-            final Optional<DataContainerChild<? extends PathArgument, ?>> idLeaf =
-                    mapEntry.getChild(new YangInstanceIdentifier.NodeIdentifier(TestModel.ID_QNAME));
+            final Optional<DataContainerChild> idLeaf =
+                    mapEntry.findChildByArg(new YangInstanceIdentifier.NodeIdentifier(TestModel.ID_QNAME));
             assertTrue("Missing leaf " + TestModel.ID_QNAME.getLocalName(), idLeaf.isPresent());
-            final Object value = idLeaf.get().getValue();
+            final Object value = idLeaf.get().body();
             assertTrue("Unexpected value for leaf " + TestModel.ID_QNAME.getLocalName() + ": " + value,
                     listEntryKeys.remove(value));
         }
@@ -273,7 +272,7 @@ public abstract class AbstractShardTest extends AbstractActorTest {
     }
 
     protected static BatchedModifications prepareBatchedModifications(final TransactionIdentifier transactionID,
-            final YangInstanceIdentifier path, final NormalizedNode<?, ?> data, final boolean doCommitOnReady) {
+            final YangInstanceIdentifier path, final NormalizedNode data, final boolean doCommitOnReady) {
         final MutableCompositeModification modification = new MutableCompositeModification();
         modification.addModification(new WriteModification(path, data));
         return prepareBatchedModifications(transactionID, modification, doCommitOnReady);
@@ -281,24 +280,24 @@ public abstract class AbstractShardTest extends AbstractActorTest {
 
     protected static ForwardedReadyTransaction prepareForwardedReadyTransaction(final TestActorRef<Shard> shard,
             final TransactionIdentifier transactionID, final YangInstanceIdentifier path,
-            final NormalizedNode<?, ?> data, final boolean doCommitOnReady) {
+            final NormalizedNode data, final boolean doCommitOnReady) {
         ReadWriteShardDataTreeTransaction rwTx = shard.underlyingActor().getDataStore()
                 .newReadWriteTransaction(transactionID);
         rwTx.getSnapshot().write(path, data);
         return new ForwardedReadyTransaction(transactionID, CURRENT_VERSION, rwTx, doCommitOnReady, Optional.empty());
     }
 
-    public static NormalizedNode<?,?> readStore(final TestActorRef<? extends Shard> shard,
+    public static NormalizedNode readStore(final TestActorRef<? extends Shard> shard,
             final YangInstanceIdentifier id) {
         return shard.underlyingActor().getDataStore().readNode(id).orElse(null);
     }
 
-    public static NormalizedNode<?,?> readStore(final DataTree store, final YangInstanceIdentifier id) {
+    public static NormalizedNode readStore(final DataTree store, final YangInstanceIdentifier id) {
         return store.takeSnapshot().readNode(id).orElse(null);
     }
 
     public void writeToStore(final TestActorRef<Shard> shard, final YangInstanceIdentifier id,
-            final NormalizedNode<?,?> node) throws InterruptedException, ExecutionException {
+            final NormalizedNode node) throws InterruptedException, ExecutionException {
         Future<Object> future = Patterns.ask(shard, newBatchedModifications(nextTransactionId(),
                 id, node, true, true, 1), new Timeout(5, TimeUnit.SECONDS));
         try {
@@ -309,15 +308,15 @@ public abstract class AbstractShardTest extends AbstractActorTest {
     }
 
     public static void writeToStore(final ShardDataTree store, final YangInstanceIdentifier id,
-            final NormalizedNode<?,?> node) throws DataValidationFailedException {
+            final NormalizedNode node) throws DataValidationFailedException {
         BatchedModifications batched = newBatchedModifications(nextTransactionId(), id, node, true, true, 1);
         DataTreeModification modification = store.getDataTree().takeSnapshot().newModification();
         batched.apply(modification);
         store.notifyListeners(commitTransaction(store.getDataTree(), modification));
     }
 
-    public static void writeToStore(final DataTree store, final YangInstanceIdentifier id,
-            final NormalizedNode<?,?> node) throws DataValidationFailedException {
+    public static void writeToStore(final DataTree store, final YangInstanceIdentifier id, final NormalizedNode node)
+            throws DataValidationFailedException {
         final DataTreeModification transaction = store.takeSnapshot().newModification();
 
         transaction.write(id, node);
@@ -327,8 +326,8 @@ public abstract class AbstractShardTest extends AbstractActorTest {
         store.commit(candidate);
     }
 
-    public void mergeToStore(final ShardDataTree store, final YangInstanceIdentifier id,
-            final NormalizedNode<?,?> node) throws DataValidationFailedException {
+    public void mergeToStore(final ShardDataTree store, final YangInstanceIdentifier id, final NormalizedNode node)
+        throws DataValidationFailedException {
         final BatchedModifications batched = new BatchedModifications(nextTransactionId(), CURRENT_VERSION);
         batched.addModification(new MergeModification(id, node));
 &nb