From 68d52ef8ea8ee2ee6cda8bbc4a864c3fa897297e Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Tue, 8 Nov 2022 22:12:45 +0100 Subject: [PATCH] Bump upstreams Adopt: - odlparent-12.0.1 - infrautils-5.0.1 - yangtools-10.0.2 - mdsal-11.0.3 - controller-7.0.1 - aaa-0.17.1 Change-Id: I08a761ecedf214fa7cb451eb7e97b0c10a652753 Signed-off-by: Robert Varga --- artifacts/pom.xml | 2 +- .../features-netconf-connector/pom.xml | 2 +- .../src/main/feature/feature.xml | 6 +-- features/netconf-connector/pom.xml | 2 +- .../netconf/features-netconf-testing/pom.xml | 2 +- features/netconf/features-netconf/pom.xml | 2 +- .../src/main/feature/feature.xml | 2 +- .../src/main/feature/feature.xml | 2 +- .../src/main/feature/feature.xml | 8 +-- .../src/main/feature/feature.xml | 2 +- .../src/main/feature/feature.xml | 2 +- .../src/main/feature/feature.xml | 4 +- .../src/main/feature/feature.xml | 2 +- .../src/main/feature/feature.xml | 2 +- features/netconf/pom.xml | 2 +- features/parent/pom.xml | 2 +- features/pom.xml | 2 +- features/restconf/features-restconf/pom.xml | 2 +- .../src/main/feature/feature.xml | 2 +- .../src/main/feature/feature.xml | 12 ++--- .../src/main/feature/feature.xml | 4 +- features/restconf/pom.xml | 2 +- features/yanglib/features-yanglib/pom.xml | 2 +- .../odl-yanglib/src/main/feature/feature.xml | 4 +- features/yanglib/pom.xml | 2 +- karaf-static/pom.xml | 2 +- karaf/pom.xml | 6 +-- keystore/pom.xml | 2 +- model/pom.xml | 2 +- .../mdsal/connector/ops/RuntimeRpcTest.java | 9 ++-- netconf/netconf-config/pom.xml | 2 +- .../singleton/impl/ProxyDOMRpcService.java | 10 ++-- .../impl/actors/NetconfNodeActor.java | 3 +- .../ActorProxyNetconfServiceFacade.java | 7 +-- .../impl/MountPointEndToEndTest.java | 29 +++++----- netconf/pom.xml | 2 +- .../impl/DefaultSchemaResourceManager.java | 4 +- .../netconf/LibraryModulesSchemas.java | 6 +-- .../sal/connect/netconf/NetconfDevice.java | 15 ++---- .../connect/netconf/NetconfStateSchemas.java | 6 +-- .../sal/AbstractNetconfDataTreeService.java | 6 +-- .../netconf/sal/KeepaliveSalFacade.java | 7 ++- .../connect/netconf/sal/NetconfDeviceRpc.java | 10 ++-- .../netconf/sal/tx/AbstractWriteTx.java | 6 +-- .../netconf/sal/tx/WriteCandidateTx.java | 4 +- .../mapping/NetconfMessageTransformer.java | 8 ++- .../util/NetconfRpcFutureCallback.java | 6 +-- .../connect/netconf/NetconfDeviceTest.java | 11 +--- .../netconf/sal/NetconfDeviceRpcTest.java | 9 ++-- .../BaseRpcSchemalessTransformerTest.java | 4 +- .../NetconfMessageTransformerTest.java | 18 +++---- netconf/shaded-exificient-jar/pom.xml | 2 +- netconf/shaded-exificient/pom.xml | 2 +- netconf/shaded-sshd-jar/pom.xml | 2 +- netconf/shaded-sshd/pom.xml | 2 +- netconf/tools/pom.xml | 2 +- .../yanglib/impl/WebInitializer.java | 2 +- .../yanglib/impl/YangLibProviderTest.java | 4 +- parent/pom.xml | 8 +-- pom.xml | 2 +- restconf/pom.xml | 2 +- .../impl/AbstractOperationDataSchemaNode.java | 16 +++++- .../impl/AbstractOperationsModule.java | 39 ++++++++------ .../impl/OperationsContainerSchemaNode.java | 41 ++++++++++++-- .../impl/OperationsImportedModule.java | 50 +++++++++++++++++ .../impl/OperationsLeafSchemaNode.java | 16 ++++-- .../impl/OperationsRestconfModule.java | 53 ++++++++++++++++++- .../RestconfInvokeOperationsServiceImpl.java | 8 +-- restconf/sal-rest-connector-config/pom.xml | 2 +- .../sal/rest/doc/jaxrs/WebInitializer.java | 2 +- transport/pom.xml | 2 +- truststore/pom.xml | 2 +- 72 files changed, 337 insertions(+), 192 deletions(-) diff --git a/artifacts/pom.xml b/artifacts/pom.xml index df5bc59054..300b983a89 100644 --- a/artifacts/pom.xml +++ b/artifacts/pom.xml @@ -14,7 +14,7 @@ org.opendaylight.odlparent odlparent-lite - 11.0.2 + 12.0.1 diff --git a/features/netconf-connector/features-netconf-connector/pom.xml b/features/netconf-connector/features-netconf-connector/pom.xml index 3ceb38c9b4..a1ee2c9f9b 100644 --- a/features/netconf-connector/features-netconf-connector/pom.xml +++ b/features/netconf-connector/features-netconf-connector/pom.xml @@ -12,7 +12,7 @@ org.opendaylight.odlparent feature-repo-parent - 11.0.2 + 12.0.1 diff --git a/features/netconf-connector/odl-netconf-connector/src/main/feature/feature.xml b/features/netconf-connector/odl-netconf-connector/src/main/feature/feature.xml index 9a0862db59..e311ab7389 100644 --- a/features/netconf-connector/odl-netconf-connector/src/main/feature/feature.xml +++ b/features/netconf-connector/odl-netconf-connector/src/main/feature/feature.xml @@ -8,8 +8,8 @@ --> - odl-mdsal-model-draft-clemm-netmod-yang-network-topo-01-minimal - odl-mdsal-broker - odl-aaa-encryption-service + odl-mdsal-model-draft-clemm-netmod-yang-network-topo-01-minimal + odl-mdsal-broker + odl-aaa-encryption-service diff --git a/features/netconf-connector/pom.xml b/features/netconf-connector/pom.xml index fe68d98e8b..3bcfae419b 100644 --- a/features/netconf-connector/pom.xml +++ b/features/netconf-connector/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.odlparent odlparent-lite - 11.0.2 + 12.0.1 diff --git a/features/netconf/features-netconf-testing/pom.xml b/features/netconf/features-netconf-testing/pom.xml index bc46620751..5a8af7b0b4 100644 --- a/features/netconf/features-netconf-testing/pom.xml +++ b/features/netconf/features-netconf-testing/pom.xml @@ -12,7 +12,7 @@ org.opendaylight.odlparent feature-repo-parent - 11.0.2 + 12.0.1 diff --git a/features/netconf/features-netconf/pom.xml b/features/netconf/features-netconf/pom.xml index fc4e115c9b..0abe76fa6e 100644 --- a/features/netconf/features-netconf/pom.xml +++ b/features/netconf/features-netconf/pom.xml @@ -12,7 +12,7 @@ org.opendaylight.odlparent feature-repo-parent - 11.0.2 + 12.0.1 diff --git a/features/netconf/odl-aaa-netconf-plugin-no-cluster/src/main/feature/feature.xml b/features/netconf/odl-aaa-netconf-plugin-no-cluster/src/main/feature/feature.xml index 9345a76b88..e60e727a4c 100644 --- a/features/netconf/odl-aaa-netconf-plugin-no-cluster/src/main/feature/feature.xml +++ b/features/netconf/odl-aaa-netconf-plugin-no-cluster/src/main/feature/feature.xml @@ -7,6 +7,6 @@ --> - odl-aaa-shiro + odl-aaa-shiro diff --git a/features/netconf/odl-aaa-netconf-plugin/src/main/feature/feature.xml b/features/netconf/odl-aaa-netconf-plugin/src/main/feature/feature.xml index cd3ca70937..6f3f01a301 100644 --- a/features/netconf/odl-aaa-netconf-plugin/src/main/feature/feature.xml +++ b/features/netconf/odl-aaa-netconf-plugin/src/main/feature/feature.xml @@ -7,6 +7,6 @@ --> - odl-aaa-shiro + odl-aaa-shiro diff --git a/features/netconf/odl-netconf-api/src/main/feature/feature.xml b/features/netconf/odl-netconf-api/src/main/feature/feature.xml index 786b687a70..fc18f6bfeb 100644 --- a/features/netconf/odl-netconf-api/src/main/feature/feature.xml +++ b/features/netconf/odl-netconf-api/src/main/feature/feature.xml @@ -8,9 +8,9 @@ --> - odl-netty-4 - odl-yangtools-parser-api - odl-mdsal-model-rfc8525 - odl-mdsal-model-rfc8342 + odl-netty-4 + odl-yangtools-parser-api + odl-mdsal-model-rfc8525 + odl-mdsal-model-rfc8342 diff --git a/features/netconf/odl-netconf-client/src/main/feature/feature.xml b/features/netconf/odl-netconf-client/src/main/feature/feature.xml index cc61a746a2..45686d3132 100644 --- a/features/netconf/odl-netconf-client/src/main/feature/feature.xml +++ b/features/netconf/odl-netconf-client/src/main/feature/feature.xml @@ -8,6 +8,6 @@ --> - odl-controller-exp-netty-config + odl-controller-exp-netty-config diff --git a/features/netconf/odl-netconf-impl/src/main/feature/feature.xml b/features/netconf/odl-netconf-impl/src/main/feature/feature.xml index 6879fa02cf..508df3fb90 100644 --- a/features/netconf/odl-netconf-impl/src/main/feature/feature.xml +++ b/features/netconf/odl-netconf-impl/src/main/feature/feature.xml @@ -8,6 +8,6 @@ --> - odl-controller-exp-netty-config + odl-controller-exp-netty-config diff --git a/features/netconf/odl-netconf-netty-util/src/main/feature/feature.xml b/features/netconf/odl-netconf-netty-util/src/main/feature/feature.xml index eaaeaddbda..499aab2515 100644 --- a/features/netconf/odl-netconf-netty-util/src/main/feature/feature.xml +++ b/features/netconf/odl-netconf-netty-util/src/main/feature/feature.xml @@ -1,7 +1,7 @@ - odl-netty-4 - odl-aaa-encryption-service + odl-netty-4 + odl-aaa-encryption-service diff --git a/features/netconf/odl-netconf-notifications-impl/src/main/feature/feature.xml b/features/netconf/odl-netconf-notifications-impl/src/main/feature/feature.xml index 1cfadb90f3..892cb941e9 100644 --- a/features/netconf/odl-netconf-notifications-impl/src/main/feature/feature.xml +++ b/features/netconf/odl-netconf-notifications-impl/src/main/feature/feature.xml @@ -1,6 +1,6 @@ - odl-mdsal-binding-runtime + odl-mdsal-binding-runtime diff --git a/features/netconf/odl-netconf-util/src/main/feature/feature.xml b/features/netconf/odl-netconf-util/src/main/feature/feature.xml index 1360892d2a..ffad979398 100644 --- a/features/netconf/odl-netconf-util/src/main/feature/feature.xml +++ b/features/netconf/odl-netconf-util/src/main/feature/feature.xml @@ -11,6 +11,6 @@ mvn:org.opendaylight.netconf/netconf-util/${project.version}/cfg/config - odl-yangtools-codec + odl-yangtools-codec diff --git a/features/netconf/pom.xml b/features/netconf/pom.xml index 64a543dc93..6db7795c4a 100644 --- a/features/netconf/pom.xml +++ b/features/netconf/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.odlparent odlparent-lite - 11.0.2 + 12.0.1 diff --git a/features/parent/pom.xml b/features/parent/pom.xml index 80723968b8..e1a5a62c33 100644 --- a/features/parent/pom.xml +++ b/features/parent/pom.xml @@ -12,7 +12,7 @@ org.opendaylight.odlparent single-feature-parent - 11.0.2 + 12.0.1 diff --git a/features/pom.xml b/features/pom.xml index 9365168619..3d6cc4492f 100644 --- a/features/pom.xml +++ b/features/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.odlparent odlparent-lite - 11.0.2 + 12.0.1 diff --git a/features/restconf/features-restconf/pom.xml b/features/restconf/features-restconf/pom.xml index 3480eb9ee7..3ced640ff9 100644 --- a/features/restconf/features-restconf/pom.xml +++ b/features/restconf/features-restconf/pom.xml @@ -12,7 +12,7 @@ org.opendaylight.odlparent feature-repo-parent - 11.0.2 + 12.0.1 diff --git a/features/restconf/odl-mdsal-apidocs/src/main/feature/feature.xml b/features/restconf/odl-mdsal-apidocs/src/main/feature/feature.xml index decd7c3c9b..57771e39b8 100644 --- a/features/restconf/odl-mdsal-apidocs/src/main/feature/feature.xml +++ b/features/restconf/odl-mdsal-apidocs/src/main/feature/feature.xml @@ -8,6 +8,6 @@ --> - odl-jackson-2.13 + odl-jackson-2.13 diff --git a/features/restconf/odl-restconf-common/src/main/feature/feature.xml b/features/restconf/odl-restconf-common/src/main/feature/feature.xml index db506a9076..8894da117f 100644 --- a/features/restconf/odl-restconf-common/src/main/feature/feature.xml +++ b/features/restconf/odl-restconf-common/src/main/feature/feature.xml @@ -8,11 +8,11 @@ --> - odl-karaf-feat-jetty - odl-yangtools-export - odl-mdsal-model-rfc8040 - odl-mdsal-model-rfc8525 - odl-mdsal-broker - odl-aaa-shiro + odl-karaf-feat-jetty + odl-yangtools-export + odl-mdsal-model-rfc8040 + odl-mdsal-model-rfc8525 + odl-mdsal-broker + odl-aaa-shiro diff --git a/features/restconf/odl-restconf-nb/src/main/feature/feature.xml b/features/restconf/odl-restconf-nb/src/main/feature/feature.xml index 19883cd786..79e8c6f56d 100644 --- a/features/restconf/odl-restconf-nb/src/main/feature/feature.xml +++ b/features/restconf/odl-restconf-nb/src/main/feature/feature.xml @@ -8,8 +8,8 @@ --> - odl-mdsal-model-rfc8072 - odl-controller-exp-netty-config + odl-mdsal-model-rfc8072 + odl-controller-exp-netty-config mvn:org.opendaylight.netconf/restconf-nb/${project.version}/cfg/config diff --git a/features/restconf/pom.xml b/features/restconf/pom.xml index af9f4c0a42..772c440ca2 100644 --- a/features/restconf/pom.xml +++ b/features/restconf/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.odlparent odlparent-lite - 11.0.2 + 12.0.1 diff --git a/features/yanglib/features-yanglib/pom.xml b/features/yanglib/features-yanglib/pom.xml index d106f7ad41..2aa4cad52f 100644 --- a/features/yanglib/features-yanglib/pom.xml +++ b/features/yanglib/features-yanglib/pom.xml @@ -13,7 +13,7 @@ org.opendaylight.odlparent feature-repo-parent - 11.0.2 + 12.0.1 diff --git a/features/yanglib/odl-yanglib/src/main/feature/feature.xml b/features/yanglib/odl-yanglib/src/main/feature/feature.xml index 48b5b3f8d7..fddef45d58 100644 --- a/features/yanglib/odl-yanglib/src/main/feature/feature.xml +++ b/features/yanglib/odl-yanglib/src/main/feature/feature.xml @@ -8,7 +8,7 @@ --> - odl-karaf-feat-jetty - odl-mdsal-model-rfc8525 + odl-karaf-feat-jetty + odl-mdsal-model-rfc8525 diff --git a/features/yanglib/pom.xml b/features/yanglib/pom.xml index 21d160f2dc..739fb86ce8 100644 --- a/features/yanglib/pom.xml +++ b/features/yanglib/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.odlparent odlparent-lite - 11.0.2 + 12.0.1 diff --git a/karaf-static/pom.xml b/karaf-static/pom.xml index 8a34f652c3..9b180239e8 100644 --- a/karaf-static/pom.xml +++ b/karaf-static/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.odlparent karaf-dist-static - 11.0.2 + 12.0.1 diff --git a/karaf/pom.xml b/karaf/pom.xml index 2a2c8c3783..fbecbb9aa9 100644 --- a/karaf/pom.xml +++ b/karaf/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.odlparent karaf4-parent - 11.0.2 + 12.0.1 org.opendaylight.netconf @@ -24,14 +24,14 @@ org.opendaylight.infrautils infrautils-artifacts - 4.0.2 + 5.0.1 pom import org.opendaylight.controller controller-artifacts - 6.0.3 + 7.0.1 pom import diff --git a/keystore/pom.xml b/keystore/pom.xml index 2fc5d23a2a..a3f9b0ffa8 100644 --- a/keystore/pom.xml +++ b/keystore/pom.xml @@ -13,7 +13,7 @@ org.opendaylight.odlparent odlparent-lite - 11.0.2 + 12.0.1 diff --git a/model/pom.xml b/model/pom.xml index 5138a423c3..e41b818cf0 100644 --- a/model/pom.xml +++ b/model/pom.xml @@ -13,7 +13,7 @@ org.opendaylight.odlparent odlparent-lite - 11.0.2 + 12.0.1 diff --git a/netconf/mdsal-netconf-connector/src/test/java/org/opendaylight/netconf/mdsal/connector/ops/RuntimeRpcTest.java b/netconf/mdsal-netconf-connector/src/test/java/org/opendaylight/netconf/mdsal/connector/ops/RuntimeRpcTest.java index a3019a0fa3..5fdbf46378 100644 --- a/netconf/mdsal-netconf-connector/src/test/java/org/opendaylight/netconf/mdsal/connector/ops/RuntimeRpcTest.java +++ b/netconf/mdsal-netconf-connector/src/test/java/org/opendaylight/netconf/mdsal/connector/ops/RuntimeRpcTest.java @@ -57,7 +57,6 @@ import org.opendaylight.yangtools.yang.common.XMLNamespace; 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.DataContainerChild; -import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; import org.opendaylight.yangtools.yang.data.impl.schema.Builders; import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext; import org.opendaylight.yangtools.yang.model.api.EffectiveModelContextListener; @@ -89,7 +88,7 @@ public class RuntimeRpcTest { private static final DOMRpcService RPC_SERVICE_VOID_INVOKER = new DOMRpcService() { @Override - public FluentFuture invokeRpc(final QName type, final NormalizedNode input) { + public FluentFuture invokeRpc(final QName type, final ContainerNode input) { return immediateFluentFuture(new DefaultDOMRpcResult(null, List.of())); } @@ -101,7 +100,7 @@ public class RuntimeRpcTest { private static final DOMRpcService RPC_SERVICE_FAILED_INVOCATION = new DOMRpcService() { @Override - public FluentFuture invokeRpc(final QName type, final NormalizedNode input) { + public FluentFuture invokeRpc(final QName type, final ContainerNode input) { return immediateFailedFluentFuture(new DOMRpcException("rpc invocation not implemented yet") { private static final long serialVersionUID = 1L; }); @@ -115,8 +114,8 @@ public class RuntimeRpcTest { private final DOMRpcService rpcServiceSuccessfulInvocation = new DOMRpcService() { @Override - public FluentFuture invokeRpc(final QName type, final NormalizedNode input) { - final Collection children = ((ContainerNode) input).body(); + public FluentFuture invokeRpc(final QName type, final ContainerNode input) { + final Collection children = input.body(); final Module module = SCHEMA_CONTEXT.findModules(type.getNamespace()).stream() .findFirst().orElse(null); final RpcDefinition rpcDefinition = getRpcDefinitionFromModule(module, module.getNamespace(), diff --git a/netconf/netconf-config/pom.xml b/netconf/netconf-config/pom.xml index 94af36a285..b4e3bcec4b 100644 --- a/netconf/netconf-config/pom.xml +++ b/netconf/netconf-config/pom.xml @@ -12,7 +12,7 @@ org.opendaylight.odlparent bundle-parent - 11.0.2 + 12.0.1 diff --git a/netconf/netconf-topology-singleton/src/main/java/org/opendaylight/netconf/topology/singleton/impl/ProxyDOMRpcService.java b/netconf/netconf-topology-singleton/src/main/java/org/opendaylight/netconf/topology/singleton/impl/ProxyDOMRpcService.java index 4e40d17c38..49e695a8d7 100644 --- a/netconf/netconf-topology-singleton/src/main/java/org/opendaylight/netconf/topology/singleton/impl/ProxyDOMRpcService.java +++ b/netconf/netconf-topology-singleton/src/main/java/org/opendaylight/netconf/topology/singleton/impl/ProxyDOMRpcService.java @@ -13,7 +13,7 @@ import akka.dispatch.OnComplete; import akka.pattern.Patterns; import akka.util.Timeout; import com.google.common.collect.ImmutableList; -import com.google.common.util.concurrent.FluentFuture; +import com.google.common.util.concurrent.ListenableFuture; import com.google.common.util.concurrent.SettableFuture; import java.util.Collection; import org.opendaylight.mdsal.dom.api.DOMRpcAvailabilityListener; @@ -31,7 +31,7 @@ import org.opendaylight.yangtools.concepts.ListenerRegistration; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.common.RpcError; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; -import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; +import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import scala.concurrent.Future; @@ -53,7 +53,7 @@ public class ProxyDOMRpcService implements Rpcs.Normalized { } @Override - public FluentFuture invokeRpc(final QName type, final NormalizedNode input) { + public ListenableFuture invokeRpc(final QName type, final ContainerNode input) { LOG.trace("{}: Rpc operation invoked with schema type: {} and node: {}.", id, type, input); final NormalizedNodeMessage normalizedNodeMessage = input != null @@ -88,13 +88,13 @@ public class ProxyDOMRpcService implements Rpcs.Normalized { if (normalizedNodeMessageResult == null) { result = new DefaultDOMRpcResult(ImmutableList.copyOf(errors)); } else { - result = new DefaultDOMRpcResult(normalizedNodeMessageResult.getNode(), errors); + result = new DefaultDOMRpcResult((ContainerNode) normalizedNodeMessageResult.getNode(), errors); } settableFuture.set(result); } }, actorSystem.dispatcher()); - return FluentFuture.from(settableFuture); + return settableFuture; } @Override diff --git a/netconf/netconf-topology-singleton/src/main/java/org/opendaylight/netconf/topology/singleton/impl/actors/NetconfNodeActor.java b/netconf/netconf-topology-singleton/src/main/java/org/opendaylight/netconf/topology/singleton/impl/actors/NetconfNodeActor.java index 0fd70e5fda..e9289499b1 100644 --- a/netconf/netconf-topology-singleton/src/main/java/org/opendaylight/netconf/topology/singleton/impl/actors/NetconfNodeActor.java +++ b/netconf/netconf-topology-singleton/src/main/java/org/opendaylight/netconf/topology/singleton/impl/actors/NetconfNodeActor.java @@ -68,6 +68,7 @@ import org.opendaylight.netconf.topology.singleton.messages.transactions.NewRead import org.opendaylight.netconf.topology.singleton.messages.transactions.NewWriteTransactionRequest; 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.model.api.EffectiveModelContext; import org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier.Absolute; import org.opendaylight.yangtools.yang.model.repo.api.EffectiveModelContextFactory; @@ -240,7 +241,7 @@ public class NetconfNodeActor extends AbstractUntypedActor { deviceRpc); final ListenableFuture rpcResult = deviceRpc.invokeRpc(qname, - normalizedNodeMessage != null ? normalizedNodeMessage.getNode() : null); + normalizedNodeMessage != null ? (ContainerNode) normalizedNodeMessage.getNode() : null); Futures.addCallback(rpcResult, new FutureCallback() { @Override diff --git a/netconf/netconf-topology-singleton/src/main/java/org/opendaylight/netconf/topology/singleton/impl/netconf/ActorProxyNetconfServiceFacade.java b/netconf/netconf-topology-singleton/src/main/java/org/opendaylight/netconf/topology/singleton/impl/netconf/ActorProxyNetconfServiceFacade.java index b27aa8ba3f..4624bd68be 100644 --- a/netconf/netconf-topology-singleton/src/main/java/org/opendaylight/netconf/topology/singleton/impl/netconf/ActorProxyNetconfServiceFacade.java +++ b/netconf/netconf-topology-singleton/src/main/java/org/opendaylight/netconf/topology/singleton/impl/netconf/ActorProxyNetconfServiceFacade.java @@ -47,6 +47,7 @@ import org.opendaylight.netconf.topology.singleton.messages.netconf.UnlockReques import org.opendaylight.netconf.topology.singleton.messages.rpc.InvokeRpcMessageReply; import org.opendaylight.netconf.topology.singleton.messages.transactions.EmptyReadResponse; 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.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -273,8 +274,7 @@ public class ActorProxyNetconfServiceFacade implements ProxyNetconfServiceFacade return; } - if (response instanceof NormalizedNodeMessage) { - final NormalizedNodeMessage data = (NormalizedNodeMessage) response; + if (response instanceof NormalizedNodeMessage data) { settableFuture.set(Optional.of(data.getNode())); } } @@ -297,7 +297,8 @@ public class ActorProxyNetconfServiceFacade implements ProxyNetconfServiceFacade if (reply.getNormalizedNodeMessage() == null) { return new DefaultDOMRpcResult(new ArrayList<>(reply.getRpcErrors())); } else { - return new DefaultDOMRpcResult(reply.getNormalizedNodeMessage().getNode(), reply.getRpcErrors()); + return new DefaultDOMRpcResult((ContainerNode) reply.getNormalizedNodeMessage().getNode(), + reply.getRpcErrors()); } } } diff --git a/netconf/netconf-topology-singleton/src/test/java/org/opendaylight/netconf/topology/singleton/impl/MountPointEndToEndTest.java b/netconf/netconf-topology-singleton/src/test/java/org/opendaylight/netconf/topology/singleton/impl/MountPointEndToEndTest.java index 725260874e..7528e06079 100644 --- a/netconf/netconf-topology-singleton/src/test/java/org/opendaylight/netconf/topology/singleton/impl/MountPointEndToEndTest.java +++ b/netconf/netconf-topology-singleton/src/test/java/org/opendaylight/netconf/topology/singleton/impl/MountPointEndToEndTest.java @@ -256,7 +256,7 @@ public class MountPointEndToEndTest extends AbstractBaseSchemasTest { final var rpcService = router.getRpcService(); deviceRpcService = new Rpcs.Normalized() { @Override - public ListenableFuture invokeRpc(final QName type, final NormalizedNode input) { + public ListenableFuture invokeRpc(final QName type, final ContainerNode input) { return rpcService.invokeRpc(type, input); } @@ -525,7 +525,7 @@ public class MountPointEndToEndTest extends AbstractBaseSchemasTest { private void testDOMRpcService(final DOMRpcService domRpcService) throws InterruptedException, ExecutionException, TimeoutException { - testPutTopRpc(domRpcService, new DefaultDOMRpcResult((NormalizedNode)null)); + testPutTopRpc(domRpcService, new DefaultDOMRpcResult((ContainerNode)null)); testPutTopRpc(domRpcService, null); testPutTopRpc(domRpcService, new DefaultDOMRpcResult(ImmutableList.of( RpcResultBuilder.newError(ErrorType.APPLICATION, new ErrorTag("tag1"), "error1"), @@ -554,7 +554,7 @@ public class MountPointEndToEndTest extends AbstractBaseSchemasTest { testRpc(domRpcService, getTopRpcSchemaPath, getTopInput, result); } - private void testRpc(final DOMRpcService domRpcService, final QName qname, final NormalizedNode input, + private void testRpc(final DOMRpcService domRpcService, final QName qname, final ContainerNode input, final DOMRpcResult result) throws InterruptedException, ExecutionException, TimeoutException { final FluentFuture future = result == null ? FluentFutures.immediateNullFluentFuture() : FluentFutures.immediateFluentFuture(result); @@ -565,11 +565,11 @@ public class MountPointEndToEndTest extends AbstractBaseSchemasTest { } assertNotNull(actual); - assertEquals(result.getResult(), actual.getResult()); + assertEquals(result.value(), actual.value()); - assertEquals(result.getErrors().size(), actual.getErrors().size()); - Iterator iter1 = result.getErrors().iterator(); - Iterator iter2 = actual.getErrors().iterator(); + assertEquals(result.errors().size(), actual.errors().size()); + Iterator iter1 = result.errors().iterator(); + Iterator iter2 = actual.errors().iterator(); while (iter1.hasNext() && iter2.hasNext()) { RpcError err1 = iter1.next(); RpcError err2 = iter2.next(); @@ -582,11 +582,10 @@ public class MountPointEndToEndTest extends AbstractBaseSchemasTest { } } - private void testFailedRpc(final DOMRpcService domRpcService, final QName qname, final NormalizedNode input) + private void testFailedRpc(final DOMRpcService domRpcService, final QName qname, final ContainerNode input) throws InterruptedException, TimeoutException { try { - invokeRpc(domRpcService, qname, input, FluentFutures.immediateFailedFluentFuture( - new ClusteringRpcException("mock"))); + invokeRpc(domRpcService, qname, input, Futures.immediateFailedFuture(new ClusteringRpcException("mock"))); fail("Expected exception"); } catch (ExecutionException e) { assertTrue(e.getCause() instanceof ClusteringRpcException); @@ -594,8 +593,8 @@ public class MountPointEndToEndTest extends AbstractBaseSchemasTest { } } - private DOMRpcResult invokeRpc(final DOMRpcService domRpcService, final QName qname, final NormalizedNode input, - final FluentFuture returnFuture) + private DOMRpcResult invokeRpc(final DOMRpcService domRpcService, final QName qname, final ContainerNode input, + final ListenableFuture returnFuture) throws InterruptedException, ExecutionException, TimeoutException { topRpcImplementation.init(returnFuture); final ListenableFuture resultFuture = domRpcService.invokeRpc(qname, input); @@ -749,15 +748,15 @@ public class MountPointEndToEndTest extends AbstractBaseSchemasTest { private static class TopDOMRpcImplementation implements DOMRpcImplementation { private volatile SettableFuture> rpcInvokedFuture; - private volatile FluentFuture returnFuture; + private volatile ListenableFuture returnFuture; @Override - public FluentFuture invokeRpc(final DOMRpcIdentifier rpc, final NormalizedNode input) { + public ListenableFuture invokeRpc(final DOMRpcIdentifier rpc, final ContainerNode input) { rpcInvokedFuture.set(Map.entry(rpc, input)); return returnFuture; } - void init(final FluentFuture retFuture) { + void init(final ListenableFuture retFuture) { returnFuture = retFuture; rpcInvokedFuture = SettableFuture.create(); } diff --git a/netconf/pom.xml b/netconf/pom.xml index dc07d6c39c..b6d02a2c16 100644 --- a/netconf/pom.xml +++ b/netconf/pom.xml @@ -13,7 +13,7 @@ org.opendaylight.odlparent odlparent-lite - 11.0.2 + 12.0.1 diff --git a/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/impl/DefaultSchemaResourceManager.java b/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/impl/DefaultSchemaResourceManager.java index 3c57cdfd1e..5945a92200 100644 --- a/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/impl/DefaultSchemaResourceManager.java +++ b/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/impl/DefaultSchemaResourceManager.java @@ -22,12 +22,12 @@ import org.opendaylight.netconf.sal.connect.api.SchemaResourceManager; import org.opendaylight.netconf.sal.connect.netconf.NetconfDevice.SchemaResourcesDTO; import org.opendaylight.netconf.sal.connect.netconf.NetconfStateSchemasResolverImpl; import org.opendaylight.yangtools.yang.model.repo.api.SchemaContextFactoryConfiguration; +import org.opendaylight.yangtools.yang.model.repo.api.YangIRSchemaSource; import org.opendaylight.yangtools.yang.model.repo.api.YangTextSchemaSource; import org.opendaylight.yangtools.yang.model.repo.fs.FilesystemSchemaSourceCache; import org.opendaylight.yangtools.yang.model.repo.spi.SoftSchemaSourceCache; import org.opendaylight.yangtools.yang.parser.api.YangParserFactory; import org.opendaylight.yangtools.yang.parser.repo.SharedSchemaRepository; -import org.opendaylight.yangtools.yang.parser.rfc7950.ir.IRSchemaSource; import org.opendaylight.yangtools.yang.parser.rfc7950.repo.TextToIRTransformer; import org.osgi.service.component.annotations.Activate; import org.osgi.service.component.annotations.Component; @@ -113,7 +113,7 @@ public final class DefaultSchemaResourceManager implements SchemaResourceManager // for a consistent set of modules, as it skips the need to re-parse the text sources multiple times. It also // helps establishing different sets of contexts, as they can share this pre-made cache. repository.registerSchemaSourceListener( - new SoftSchemaSourceCache<>(repository, IRSchemaSource.class)); + new SoftSchemaSourceCache<>(repository, YangIRSchemaSource.class)); // Attach the filesystem cache, providing persistence capability, so that restarts do not require us to // re-populate the cache. This also acts as a side-load capability, as anything pre-populated into that diff --git a/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/LibraryModulesSchemas.java b/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/LibraryModulesSchemas.java index c7b7fc2f13..87d2a47d69 100644 --- a/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/LibraryModulesSchemas.java +++ b/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/LibraryModulesSchemas.java @@ -176,14 +176,14 @@ public final class LibraryModulesSchemas implements NetconfDeviceSchemas { return new LibraryModulesSchemas(ImmutableMap.of()); } - if (moduleListNodeResult.getErrors().isEmpty() == false) { + if (!moduleListNodeResult.errors().isEmpty()) { LOG.warn("{}: Unable to detect available schemas, get to {} failed, {}", - deviceId, MODULES_STATE_MODULE_LIST, moduleListNodeResult.getErrors()); + deviceId, MODULES_STATE_MODULE_LIST, moduleListNodeResult.errors()); return new LibraryModulesSchemas(ImmutableMap.of()); } final Optional modulesStateNode = - findModulesStateNode(moduleListNodeResult.getResult()); + findModulesStateNode(moduleListNodeResult.value()); if (modulesStateNode.isPresent()) { final DataContainerChild node = modulesStateNode.get(); checkState(node instanceof ContainerNode, "Expecting container containing schemas, but was %s", node); diff --git a/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/NetconfDevice.java b/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/NetconfDevice.java index f29bd2422b..667ca04b88 100644 --- a/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/NetconfDevice.java +++ b/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/NetconfDevice.java @@ -64,11 +64,8 @@ import org.opendaylight.yangtools.rfc8528.data.api.MountPointContext; import org.opendaylight.yangtools.rfc8528.data.util.EmptyMountPointContext; import org.opendaylight.yangtools.rfc8528.model.api.SchemaMountConstants; import org.opendaylight.yangtools.yang.common.QName; -import org.opendaylight.yangtools.yang.common.RpcError; 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; import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext; import org.opendaylight.yangtools.yang.model.repo.api.EffectiveModelContextFactory; @@ -190,7 +187,7 @@ public class NetconfDevice implements RemoteDevice { // TODO check whether the model describing create subscription is present in schema // Perhaps add a default schema context to support create-subscription if the model was not provided // (same as what we do for base netconf operations in transformer) - final ListenableFuture rpcResultListenableFuture = deviceRpc.invokeRpc( + final var rpcResultListenableFuture = deviceRpc.invokeRpc( NetconfMessageTransformUtil.CREATE_SUBSCRIPTION_RPC_QNAME, NetconfMessageTransformUtil.CREATE_SUBSCRIPTION_RPC_CONTENT); @@ -294,21 +291,17 @@ public class NetconfDevice implements RemoteDevice { } private MountPointContext processSchemaMounts(final DOMRpcResult rpcResult, final MountPointContext emptyContext) { - final Collection errors = rpcResult.getErrors(); + final var errors = rpcResult.errors(); if (!errors.isEmpty()) { LOG.warn("{}: Schema-mounts acquisition resulted in errors {}", id, errors); } - final NormalizedNode schemaMounts = rpcResult.getResult(); + final var schemaMounts = rpcResult.value(); if (schemaMounts == null) { LOG.debug("{}: device does not define any schema mounts", id); return emptyContext; } - if (!(schemaMounts instanceof ContainerNode)) { - LOG.warn("{}: ignoring non-container schema mounts {}", id, schemaMounts); - return emptyContext; - } - return DeviceMountPointContext.create(emptyContext, (ContainerNode) schemaMounts); + return DeviceMountPointContext.create(emptyContext, schemaMounts); } @Override diff --git a/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/NetconfStateSchemas.java b/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/NetconfStateSchemas.java index 3061b8d170..75bd5a0d05 100644 --- a/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/NetconfStateSchemas.java +++ b/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/NetconfStateSchemas.java @@ -143,13 +143,13 @@ public final class NetconfStateSchemas implements NetconfDeviceSchemas { return EMPTY; } - if (!schemasNodeResult.getErrors().isEmpty()) { + if (!schemasNodeResult.errors().isEmpty()) { LOG.warn("{}: Unable to detect available schemas, get to {} failed, {}", - id, STATE_SCHEMAS_IDENTIFIER, schemasNodeResult.getErrors()); + id, STATE_SCHEMAS_IDENTIFIER, schemasNodeResult.errors()); return EMPTY; } - final Optional optSchemasNode = findSchemasNode(schemasNodeResult.getResult(), + final Optional optSchemasNode = findSchemasNode(schemasNodeResult.value(), schemaContext); if (optSchemasNode.isEmpty()) { LOG.warn("{}: Unable to detect available schemas, get to {} was empty", id, STATE_SCHEMAS_IDENTIFIER); diff --git a/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/sal/AbstractNetconfDataTreeService.java b/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/sal/AbstractNetconfDataTreeService.java index 694b81365b..1c2012f5e3 100644 --- a/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/sal/AbstractNetconfDataTreeService.java +++ b/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/sal/AbstractNetconfDataTreeService.java @@ -193,10 +193,10 @@ public abstract class AbstractNetconfDataTreeService implements NetconfDataTreeS } final ListenableFuture result = mergeFutures(lockImpl()); - Futures.addCallback(result, new FutureCallback() { + Futures.addCallback(result, new FutureCallback<>() { @Override public void onSuccess(final DOMRpcResult result) { - final var errors = result.getErrors(); + final var errors = result.errors(); if (errors.isEmpty()) { LOG.debug("{}: Lock successful.", id); return; @@ -233,7 +233,7 @@ public abstract class AbstractNetconfDataTreeService implements NetconfDataTreeS } final ListenableFuture result = mergeFutures(unlockImpl()); - Futures.addCallback(result, new FutureCallback() { + Futures.addCallback(result, new FutureCallback<>() { @Override public void onSuccess(final DOMRpcResult result) { final var errors = result.getErrors(); diff --git a/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/sal/KeepaliveSalFacade.java b/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/sal/KeepaliveSalFacade.java index 5f05c046a2..b853db62ee 100644 --- a/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/sal/KeepaliveSalFacade.java +++ b/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/sal/KeepaliveSalFacade.java @@ -39,7 +39,6 @@ import org.opendaylight.netconf.sal.connect.util.RemoteDeviceId; import org.opendaylight.yangtools.concepts.ListenerRegistration; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode; -import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -269,10 +268,10 @@ public final class KeepaliveSalFacade implements RemoteDeviceHandler { return; } - if (result.getResult() != null) { + if (result.value() != null) { reschedule(); } else { - final var errors = result.getErrors(); + final var errors = result.errors(); if (!errors.isEmpty()) { LOG.warn("{}: Keepalive RPC failed with error: {}", id, errors); reschedule(); @@ -349,7 +348,7 @@ public final class KeepaliveSalFacade implements RemoteDeviceHandler { } @Override - public ListenableFuture invokeRpc(final QName type, final NormalizedNode input) { + public ListenableFuture invokeRpc(final QName type, final ContainerNode input) { // FIXME: what happens if we disable keepalive and then invokeRpc() throws? disableKeepalive(); return scheduleTimeout(delegate.invokeRpc(type, input)); diff --git a/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/sal/NetconfDeviceRpc.java b/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/sal/NetconfDeviceRpc.java index df907d4037..48cbbb9dbc 100644 --- a/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/sal/NetconfDeviceRpc.java +++ b/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/sal/NetconfDeviceRpc.java @@ -28,20 +28,20 @@ import org.opendaylight.yangtools.concepts.ListenerRegistration; import org.opendaylight.yangtools.concepts.NoOpListenerRegistration; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.common.RpcResult; -import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; +import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode; import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext; /** * Invokes RPC by sending netconf message via listener. Also transforms result from NetconfMessage to - * {@link NormalizedNode}. + * {@link ContainerNode}. */ public final class NetconfDeviceRpc implements Rpcs.Normalized { private final RemoteDeviceCommunicator communicator; - private final RpcTransformer transformer; + private final RpcTransformer transformer; private final EffectiveModelContext modelContext; public NetconfDeviceRpc(final EffectiveModelContext modelContext, final RemoteDeviceCommunicator communicator, - final RpcTransformer transformer) { + final RpcTransformer transformer) { this.modelContext = requireNonNull(modelContext); this.communicator = communicator; this.transformer = transformer; @@ -49,7 +49,7 @@ public final class NetconfDeviceRpc implements Rpcs.Normalized { @Override @SuppressWarnings("checkstyle:IllegalCatch") - public ListenableFuture invokeRpc(final QName type, final NormalizedNode input) { + public ListenableFuture invokeRpc(final QName type, final ContainerNode input) { final ListenableFuture> delegateFuture = communicator.sendRequest( transformer.toRpcRequest(type, input), type); diff --git a/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/sal/tx/AbstractWriteTx.java b/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/sal/tx/AbstractWriteTx.java index 924e2216ed..10d35c7473 100644 --- a/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/sal/tx/AbstractWriteTx.java +++ b/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/sal/tx/AbstractWriteTx.java @@ -67,7 +67,7 @@ public abstract class AbstractWriteTx implements DOMDataTreeWriteTransaction { } protected static boolean isSuccess(final DOMRpcResult result) { - return result.getErrors().isEmpty(); + return result.errors().isEmpty(); } protected void checkNotFinished() { @@ -249,9 +249,9 @@ public abstract class AbstractWriteTx implements DOMDataTreeWriteTransaction { ErrorTag errorTag = ErrorTag.OPERATION_FAILED; for (final DOMRpcResult domRpcResult : domRpcResults) { - if (!domRpcResult.getErrors().isEmpty()) { + if (!domRpcResult.errors().isEmpty()) { errorsEncouneterd = true; - final RpcError error = domRpcResult.getErrors().iterator().next(); + final RpcError error = domRpcResult.errors().iterator().next(); errType = error.getErrorType(); errSeverity = error.getSeverity(); diff --git a/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/sal/tx/WriteCandidateTx.java b/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/sal/tx/WriteCandidateTx.java index 3ea7045ff0..eeb41f7298 100644 --- a/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/sal/tx/WriteCandidateTx.java +++ b/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/sal/tx/WriteCandidateTx.java @@ -69,7 +69,7 @@ public class WriteCandidateTx extends AbstractWriteTx { LOG.trace("Lock is not allowed."); return; } - final FutureCallback lockCandidateCallback = new FutureCallback<>() { + final var lockCandidateCallback = new FutureCallback() { @Override public void onSuccess(final DOMRpcResult result) { if (isSuccess(result)) { @@ -77,7 +77,7 @@ public class WriteCandidateTx extends AbstractWriteTx { LOG.trace("Lock candidate successful"); } } else { - LOG.warn("{}: lock candidate invoked unsuccessfully: {}", id, result.getErrors()); + LOG.warn("{}: lock candidate invoked unsuccessfully: {}", id, result.errors()); } } diff --git a/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/schema/mapping/NetconfMessageTransformer.java b/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/schema/mapping/NetconfMessageTransformer.java index 65775c5f53..da5d3caef2 100644 --- a/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/schema/mapping/NetconfMessageTransformer.java +++ b/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/schema/mapping/NetconfMessageTransformer.java @@ -104,7 +104,7 @@ import org.w3c.dom.NodeList; import org.xml.sax.SAXException; public class NetconfMessageTransformer - implements ActionTransformer, NotificationTransformer, RpcTransformer { + implements ActionTransformer, NotificationTransformer, RpcTransformer { private static final Logger LOG = LoggerFactory.getLogger(NetconfMessageTransformer.class); private static final ImmutableSet BASE_OR_NOTIFICATION_NS = ImmutableSet.of( @@ -331,7 +331,7 @@ public class NetconfMessageTransformer } @Override - public NetconfMessage toRpcRequest(final QName rpc, final NormalizedNode payload) { + public NetconfMessage toRpcRequest(final QName rpc, final ContainerNode payload) { // In case no input for rpc is defined, we can simply construct the payload here // Determine whether a base netconf operation is being invoked @@ -354,8 +354,6 @@ public class NetconfMessageTransformer checkNotNull(payload, "Transforming an rpc with input: %s, payload cannot be null", rpc); - checkArgument(payload instanceof ContainerNode, - "Transforming an rpc with input: %s, payload has to be a container, but was: %s", rpc, payload); final DOMResult result = NetconfMessageTransformUtil.prepareDomResultForRpcRequest(rpc, counter); try { // If the schema context for netconf device does not contain model for base netconf operations, @@ -363,7 +361,7 @@ public class NetconfMessageTransformer // This way operations like lock/unlock are supported even if the source for base model was not provided final EffectiveModelContext ctx = needToUseBaseCtx ? baseSchema.getEffectiveModelContext() : mountContext.getEffectiveModelContext(); - NetconfMessageTransformUtil.writeNormalizedOperationInput((ContainerNode) payload, result, Absolute.of(rpc), + NetconfMessageTransformUtil.writeNormalizedOperationInput(payload, result, Absolute.of(rpc), ctx); } catch (final XMLStreamException | IOException | IllegalStateException e) { throw new IllegalStateException("Unable to serialize input of " + rpc, e); diff --git a/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/util/NetconfRpcFutureCallback.java b/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/util/NetconfRpcFutureCallback.java index 31ac09f2de..0e272a2f87 100644 --- a/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/util/NetconfRpcFutureCallback.java +++ b/netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/util/NetconfRpcFutureCallback.java @@ -23,13 +23,13 @@ public class NetconfRpcFutureCallback implements FutureCallback { private final RemoteDeviceId id; public NetconfRpcFutureCallback(final String prefix, final RemoteDeviceId id) { - this.type = prefix; + type = prefix; this.id = id; } @Override public void onSuccess(final DOMRpcResult result) { - if (result.getErrors().isEmpty()) { + if (result.errors().isEmpty()) { LOG.trace("{}: {} invoked successfully", id, type); } else { onUnsuccess(result); @@ -37,7 +37,7 @@ public class NetconfRpcFutureCallback implements FutureCallback { } protected void onUnsuccess(final DOMRpcResult result) { - LOG.warn("{}: {} invoked unsuccessfully: {}", id, type, result.getErrors()); + LOG.warn("{}: {} invoked unsuccessfully: {}", id, type, result.errors()); } @Override diff --git a/netconf/sal-netconf-connector/src/test/java/org/opendaylight/netconf/sal/connect/netconf/NetconfDeviceTest.java b/netconf/sal-netconf-connector/src/test/java/org/opendaylight/netconf/sal/connect/netconf/NetconfDeviceTest.java index 100277dcc1..863f1027ac 100644 --- a/netconf/sal-netconf-connector/src/test/java/org/opendaylight/netconf/sal/connect/netconf/NetconfDeviceTest.java +++ b/netconf/sal-netconf-connector/src/test/java/org/opendaylight/netconf/sal/connect/netconf/NetconfDeviceTest.java @@ -45,8 +45,6 @@ import java.util.concurrent.Executors; import org.junit.Test; import org.mockito.ArgumentCaptor; import org.opendaylight.mdsal.dom.api.DOMNotification; -import org.opendaylight.mdsal.dom.api.DOMRpcResult; -import org.opendaylight.mdsal.dom.spi.DefaultDOMRpcResult; import org.opendaylight.netconf.api.NetconfMessage; import org.opendaylight.netconf.api.xml.XmlNetconfConstants; import org.opendaylight.netconf.api.xml.XmlUtil; @@ -61,14 +59,12 @@ import org.opendaylight.netconf.sal.connect.util.RemoteDeviceId; import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.netconf.node.connection.status.available.capabilities.AvailableCapability; import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.netconf.node.connection.status.available.capabilities.AvailableCapability.CapabilityOrigin; import org.opendaylight.yangtools.yang.common.QName; -import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode; import org.opendaylight.yangtools.yang.model.api.Module; import org.opendaylight.yangtools.yang.model.api.SchemaContext; import org.opendaylight.yangtools.yang.model.repo.api.EffectiveModelContextFactory; import org.opendaylight.yangtools.yang.model.repo.api.MissingSchemaSourceException; import org.opendaylight.yangtools.yang.model.repo.api.SchemaRepository; import org.opendaylight.yangtools.yang.model.repo.api.SchemaResolutionException; -import org.opendaylight.yangtools.yang.model.repo.api.SchemaSourceRepresentation; import org.opendaylight.yangtools.yang.model.repo.api.SourceIdentifier; import org.opendaylight.yangtools.yang.model.repo.api.YangTextSchemaSource; import org.opendaylight.yangtools.yang.model.repo.spi.PotentialSchemaSource; @@ -77,11 +73,8 @@ import org.opendaylight.yangtools.yang.model.repo.spi.SchemaSourceRegistry; import org.xml.sax.SAXException; public class NetconfDeviceTest extends AbstractTestModelTest { - private static final NetconfMessage NOTIFICATION; - private static final ContainerNode COMPOSITE_NODE = mockClass(ContainerNode.class); - static { try { NOTIFICATION = new NetconfMessage(XmlUtil @@ -91,8 +84,6 @@ public class NetconfDeviceTest extends AbstractTestModelTest { } } - private static final DOMRpcResult RPC_RESULT = new DefaultDOMRpcResult(COMPOSITE_NODE); - public static final String TEST_NAMESPACE = "test:namespace"; public static final String TEST_MODULE = "test-module"; public static final String TEST_REVISION = "2013-07-22"; @@ -257,7 +248,7 @@ public class NetconfDeviceTest extends AbstractTestModelTest { private static SchemaRepository getSchemaRepository() { final SchemaRepository mock = mock(SchemaRepository.class); - final SchemaSourceRepresentation mockRep = mock(SchemaSourceRepresentation.class); + final YangTextSchemaSource mockRep = mock(YangTextSchemaSource.class); doReturn(Futures.immediateFuture(mockRep)) .when(mock).getSchemaSource(any(SourceIdentifier.class), eq(YangTextSchemaSource.class)); return mock; diff --git a/netconf/sal-netconf-connector/src/test/java/org/opendaylight/netconf/sal/connect/netconf/sal/NetconfDeviceRpcTest.java b/netconf/sal-netconf-connector/src/test/java/org/opendaylight/netconf/sal/connect/netconf/sal/NetconfDeviceRpcTest.java index e8f28af6c1..2592c80179 100644 --- a/netconf/sal-netconf-connector/src/test/java/org/opendaylight/netconf/sal/connect/netconf/sal/NetconfDeviceRpcTest.java +++ b/netconf/sal-netconf-connector/src/test/java/org/opendaylight/netconf/sal/connect/netconf/sal/NetconfDeviceRpcTest.java @@ -48,7 +48,6 @@ 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.DOMSourceAnyxmlNode; import org.opendaylight.yangtools.yang.data.api.schema.DataContainerChild; -import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; import org.opendaylight.yangtools.yang.data.impl.schema.Builders; import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext; import org.opendaylight.yangtools.yang.model.api.RpcDefinition; @@ -99,7 +98,7 @@ public class NetconfDeviceRpcTest extends AbstractBaseSchemasTest { @Test public void testDeadlock() throws Exception { // when rpc is successful, but transformer fails for some reason - final RpcTransformer failingTransformer = mock(RpcTransformer.class); + final RpcTransformer failingTransformer = mock(RpcTransformer.class); final RemoteDeviceCommunicator communicatorMock = mock(RemoteDeviceCommunicator.class); final NetconfMessage msg = null; final RpcResult result = RpcResultBuilder.success(msg).build(); @@ -114,13 +113,13 @@ public class NetconfDeviceRpcTest extends AbstractBaseSchemasTest { public void testInvokeRpc() throws Exception { ContainerNode input = createNode("urn:ietf:params:xml:ns:netconf:base:1.0", "2011-06-01", "filter"); final DOMRpcResult result = rpc.invokeRpc(type, input).get(); - assertEquals(expectedReply.getResult().getIdentifier(), result.getResult().getIdentifier()); + assertEquals(expectedReply.value().getIdentifier(), result.value().getIdentifier()); assertEquals(resolveNode(expectedReply), resolveNode(result)); } private static Node resolveNode(final DOMRpcResult result) { - DataContainerChild value = ((ContainerNode) result.getResult()) - .findChildByArg(NetconfMessageTransformUtil.NETCONF_DATA_NODEID).get(); + DataContainerChild value = result.value() + .findChildByArg(NetconfMessageTransformUtil.NETCONF_DATA_NODEID).orElseThrow(); Node node = ((DOMSourceAnyxmlNode)value).body().getNode(); assertNotNull(node); return node; diff --git a/netconf/sal-netconf-connector/src/test/java/org/opendaylight/netconf/sal/connect/netconf/schema/mapping/BaseRpcSchemalessTransformerTest.java b/netconf/sal-netconf-connector/src/test/java/org/opendaylight/netconf/sal/connect/netconf/schema/mapping/BaseRpcSchemalessTransformerTest.java index b0bd71dafd..3b9296602a 100644 --- a/netconf/sal-netconf-connector/src/test/java/org/opendaylight/netconf/sal/connect/netconf/schema/mapping/BaseRpcSchemalessTransformerTest.java +++ b/netconf/sal-netconf-connector/src/test/java/org/opendaylight/netconf/sal/connect/netconf/schema/mapping/BaseRpcSchemalessTransformerTest.java @@ -115,8 +115,8 @@ public class BaseRpcSchemalessTransformerTest extends AbstractBaseSchemasTest { final NetconfMessage msg = new NetconfMessage(doc); final DOMRpcResult result = transformer.toRpcResult(RpcResultBuilder.success(msg).build(), NetconfMessageTransformUtil.NETCONF_GET_CONFIG_QNAME); - assertNotNull(result.getResult()); - final ContainerNode rpcReply = (ContainerNode) result.getResult(); + assertNotNull(result.value()); + final ContainerNode rpcReply = result.value(); assertEquals(NetconfMessageTransformUtil.NETCONF_RPC_REPLY_QNAME, rpcReply.getIdentifier().getNodeType()); final Optional dataOpt = rpcReply.findChildByArg(NetconfMessageTransformUtil.NETCONF_DATA_NODEID); assertTrue(dataOpt.isPresent()); diff --git a/netconf/sal-netconf-connector/src/test/java/org/opendaylight/netconf/sal/connect/netconf/schema/mapping/NetconfMessageTransformerTest.java b/netconf/sal-netconf-connector/src/test/java/org/opendaylight/netconf/sal/connect/netconf/schema/mapping/NetconfMessageTransformerTest.java index 1455b9af5f..3b05a11c94 100644 --- a/netconf/sal-netconf-connector/src/test/java/org/opendaylight/netconf/sal/connect/netconf/schema/mapping/NetconfMessageTransformerTest.java +++ b/netconf/sal-netconf-connector/src/test/java/org/opendaylight/netconf/sal/connect/netconf/schema/mapping/NetconfMessageTransformerTest.java @@ -292,9 +292,9 @@ public class NetconfMessageTransformerTest extends AbstractBaseSchemasTest { )); final DOMRpcResult compositeNodeRpcResult = transformer.toRpcResult(RpcResultBuilder.success(response).build(), GET_SCHEMA_QNAME); - assertTrue(compositeNodeRpcResult.getErrors().isEmpty()); - assertNotNull(compositeNodeRpcResult.getResult()); - final DOMSource schemaContent = ((DOMSourceAnyxmlNode) ((ContainerNode) compositeNodeRpcResult.getResult()) + assertTrue(compositeNodeRpcResult.errors().isEmpty()); + assertNotNull(compositeNodeRpcResult.value()); + final DOMSource schemaContent = ((DOMSourceAnyxmlNode) compositeNodeRpcResult.value() .body().iterator().next()).body(); assertThat(schemaContent.getNode().getTextContent(), CoreMatchers.containsString("Random YANG SCHEMA")); @@ -320,8 +320,8 @@ public class NetconfMessageTransformerTest extends AbstractBaseSchemasTest { final NetconfMessageTransformer transformer = getTransformer(SCHEMA); final DOMRpcResult compositeNodeRpcResult = transformer.toRpcResult(RpcResultBuilder.success(response).build(), NETCONF_GET_CONFIG_QNAME); - assertTrue(compositeNodeRpcResult.getErrors().isEmpty()); - assertNotNull(compositeNodeRpcResult.getResult()); + assertTrue(compositeNodeRpcResult.errors().isEmpty()); + assertNotNull(compositeNodeRpcResult.value()); final List values = Lists.newArrayList( NetconfRemoteSchemaYangSourceProvider @@ -337,8 +337,8 @@ public class NetconfMessageTransformerTest extends AbstractBaseSchemasTest { final MapEntryNode schemaNode = Builders.mapEntryBuilder().withNodeIdentifier(identifierWithPredicates).withValue(values).build(); - final DOMSourceAnyxmlNode data = (DOMSourceAnyxmlNode) ((ContainerNode) compositeNodeRpcResult.getResult()) - .findChildByArg(toId(NETCONF_DATA_QNAME)).get(); + final DOMSourceAnyxmlNode data = (DOMSourceAnyxmlNode) compositeNodeRpcResult.value() + .findChildByArg(toId(NETCONF_DATA_QNAME)).orElseThrow(); NormalizedNodeResult nodeResult = NetconfUtil.transformDOMSourceToNormalizedNode(SCHEMA, data.body()); @@ -543,8 +543,8 @@ public class NetconfMessageTransformerTest extends AbstractBaseSchemasTest { final DOMRpcResult compositeNodeRpcResult = netconfMessageTransformer.toRpcResult( RpcResultBuilder.success(response).build(), NETCONF_COMMIT_QNAME); - assertTrue(compositeNodeRpcResult.getErrors().isEmpty()); - assertNull(compositeNodeRpcResult.getResult()); + assertTrue(compositeNodeRpcResult.errors().isEmpty()); + assertNull(compositeNodeRpcResult.value()); } @Test diff --git a/netconf/shaded-exificient-jar/pom.xml b/netconf/shaded-exificient-jar/pom.xml index 88dfa95515..31a114e749 100644 --- a/netconf/shaded-exificient-jar/pom.xml +++ b/netconf/shaded-exificient-jar/pom.xml @@ -12,7 +12,7 @@ org.opendaylight.odlparent odlparent - 11.0.2 + 12.0.1 diff --git a/netconf/shaded-exificient/pom.xml b/netconf/shaded-exificient/pom.xml index 7d7eaed2a1..352dc2bd66 100644 --- a/netconf/shaded-exificient/pom.xml +++ b/netconf/shaded-exificient/pom.xml @@ -12,7 +12,7 @@ org.opendaylight.odlparent bundle-parent - 11.0.2 + 12.0.1 diff --git a/netconf/shaded-sshd-jar/pom.xml b/netconf/shaded-sshd-jar/pom.xml index d7f9dd2c86..d2fd5e0c31 100644 --- a/netconf/shaded-sshd-jar/pom.xml +++ b/netconf/shaded-sshd-jar/pom.xml @@ -13,7 +13,7 @@ org.opendaylight.odlparent odlparent - 11.0.2 + 12.0.1 diff --git a/netconf/shaded-sshd/pom.xml b/netconf/shaded-sshd/pom.xml index a86aee85aa..fa39166364 100644 --- a/netconf/shaded-sshd/pom.xml +++ b/netconf/shaded-sshd/pom.xml @@ -13,7 +13,7 @@ org.opendaylight.odlparent bundle-parent - 11.0.2 + 12.0.1 diff --git a/netconf/tools/pom.xml b/netconf/tools/pom.xml index d553adecb3..b0b139d299 100644 --- a/netconf/tools/pom.xml +++ b/netconf/tools/pom.xml @@ -12,7 +12,7 @@ org.opendaylight.odlparent odlparent-lite - 11.0.2 + 12.0.1 diff --git a/netconf/yanglib/src/main/java/org/opendaylight/yanglib/impl/WebInitializer.java b/netconf/yanglib/src/main/java/org/opendaylight/yanglib/impl/WebInitializer.java index faac6543d3..efb356b106 100644 --- a/netconf/yanglib/src/main/java/org/opendaylight/yanglib/impl/WebInitializer.java +++ b/netconf/yanglib/src/main/java/org/opendaylight/yanglib/impl/WebInitializer.java @@ -26,7 +26,7 @@ public final class WebInitializer implements AutoCloseable { public WebInitializer(final WebServer webServer, final WebContextSecurer webContextSecurer, final ServletSupport servletSupport, final Application webApp) throws ServletException { - final var webContextBuilder = WebContext.builder().contextPath("yanglib").supportsSessions(true) + final var webContextBuilder = WebContext.builder().contextPath("/yanglib").supportsSessions(true) .addServlet(ServletDetails.builder() .servlet(servletSupport.createHttpServletBuilder(webApp).build()) .addUrlPattern("/*") diff --git a/netconf/yanglib/src/test/java/org/opendaylight/yanglib/impl/YangLibProviderTest.java b/netconf/yanglib/src/test/java/org/opendaylight/yanglib/impl/YangLibProviderTest.java index 3dea286301..f7728437f5 100644 --- a/netconf/yanglib/src/test/java/org/opendaylight/yanglib/impl/YangLibProviderTest.java +++ b/netconf/yanglib/src/test/java/org/opendaylight/yanglib/impl/YangLibProviderTest.java @@ -52,11 +52,11 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controll import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.opendaylight.yangtools.yang.common.Uint32; import org.opendaylight.yangtools.yang.model.repo.api.SourceIdentifier; +import org.opendaylight.yangtools.yang.model.repo.api.YangIRSchemaSource; import org.opendaylight.yangtools.yang.model.repo.api.YangTextSchemaSource; import org.opendaylight.yangtools.yang.model.repo.api.YinSchemaSourceRepresentation; import org.opendaylight.yangtools.yang.model.repo.spi.PotentialSchemaSource; import org.opendaylight.yangtools.yang.parser.impl.DefaultYangParserFactory; -import org.opendaylight.yangtools.yang.parser.rfc7950.ir.IRSchemaSource; @RunWith(MockitoJUnitRunner.StrictStubs.class) public class YangLibProviderTest { @@ -160,7 +160,7 @@ public class YangLibProviderTest { potentialSources.add( PotentialSchemaSource.create(new SourceIdentifier("asts-schema-source"), - IRSchemaSource.class, PotentialSchemaSource.Costs.IMMEDIATE.getValue())); + YangIRSchemaSource.class, PotentialSchemaSource.Costs.IMMEDIATE.getValue())); yangLibProvider.schemaSourceRegistered(potentialSources); verifyNoMoreInteractions(dataBroker, writeTransaction); diff --git a/parent/pom.xml b/parent/pom.xml index 3832be5100..cfe8c05694 100644 --- a/parent/pom.xml +++ b/parent/pom.xml @@ -11,7 +11,7 @@ org.opendaylight.mdsal binding-parent - 10.0.3 + 11.0.3 @@ -25,21 +25,21 @@ org.opendaylight.infrautils infrautils-artifacts - 4.0.2 + 5.0.1 pom import org.opendaylight.aaa aaa-artifacts - 0.16.4 + 0.17.1 pom import org.opendaylight.controller bundle-parent - 6.0.3 + 7.0.1 pom import diff --git a/pom.xml b/pom.xml index 057fa6c155..ebe82080f1 100644 --- a/pom.xml +++ b/pom.xml @@ -13,7 +13,7 @@ org.opendaylight.odlparent odlparent-lite - 11.0.2 + 12.0.1 diff --git a/restconf/pom.xml b/restconf/pom.xml index 486602a1e0..4cf64c3d46 100644 --- a/restconf/pom.xml +++ b/restconf/pom.xml @@ -12,7 +12,7 @@ org.opendaylight.odlparent odlparent-lite - 11.0.2 + 12.0.1 diff --git a/restconf/restconf-nb/src/main/java/org/opendaylight/restconf/nb/rfc8040/rests/services/impl/AbstractOperationDataSchemaNode.java b/restconf/restconf-nb/src/main/java/org/opendaylight/restconf/nb/rfc8040/rests/services/impl/AbstractOperationDataSchemaNode.java index 5e6f4fa470..01229cccce 100644 --- a/restconf/restconf-nb/src/main/java/org/opendaylight/restconf/nb/rfc8040/rests/services/impl/AbstractOperationDataSchemaNode.java +++ b/restconf/restconf-nb/src/main/java/org/opendaylight/restconf/nb/rfc8040/rests/services/impl/AbstractOperationDataSchemaNode.java @@ -8,12 +8,26 @@ package org.opendaylight.restconf.nb.rfc8040.rests.services.impl; import java.util.Optional; +import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.model.api.DataSchemaNode; import org.opendaylight.yangtools.yang.model.api.Status; +import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement; +import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement; import org.opendaylight.yangtools.yang.xpath.api.YangXPathExpression.QualifiedBound; @Deprecated(forRemoval = true, since = "4.0.0") -abstract class AbstractOperationDataSchemaNode implements DataSchemaNode { +abstract class AbstractOperationDataSchemaNode> + implements DataSchemaNode, EffectiveStatement { + @Override + public final D getDeclared() { + return null; + } + + @Override + public final QName getQName() { + return argument(); + } + @Override public final Status getStatus() { return Status.CURRENT; diff --git a/restconf/restconf-nb/src/main/java/org/opendaylight/restconf/nb/rfc8040/rests/services/impl/AbstractOperationsModule.java b/restconf/restconf-nb/src/main/java/org/opendaylight/restconf/nb/rfc8040/rests/services/impl/AbstractOperationsModule.java index 158133143a..6a7a82cb68 100644 --- a/restconf/restconf-nb/src/main/java/org/opendaylight/restconf/nb/rfc8040/rests/services/impl/AbstractOperationsModule.java +++ b/restconf/restconf-nb/src/main/java/org/opendaylight/restconf/nb/rfc8040/rests/services/impl/AbstractOperationsModule.java @@ -9,10 +9,10 @@ package org.opendaylight.restconf.nb.rfc8040.rests.services.impl; import java.util.Collection; import java.util.List; -import java.util.Map; import java.util.Optional; import java.util.Set; import org.eclipse.jdt.annotation.NonNull; +import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.common.QNameModule; import org.opendaylight.yangtools.yang.common.UnresolvedQName.Unqualified; import org.opendaylight.yangtools.yang.common.YangVersion; @@ -30,11 +30,14 @@ import org.opendaylight.yangtools.yang.model.api.Submodule; import org.opendaylight.yangtools.yang.model.api.TypeDefinition; import org.opendaylight.yangtools.yang.model.api.UsesNode; import org.opendaylight.yangtools.yang.model.api.YangStmtMapping; -import org.opendaylight.yangtools.yang.model.api.meta.IdentifierNamespace; import org.opendaylight.yangtools.yang.model.api.meta.StatementDefinition; import org.opendaylight.yangtools.yang.model.api.meta.StatementOrigin; +import org.opendaylight.yangtools.yang.model.api.stmt.ExtensionEffectiveStatement; +import org.opendaylight.yangtools.yang.model.api.stmt.FeatureEffectiveStatement; +import org.opendaylight.yangtools.yang.model.api.stmt.IdentityEffectiveStatement; import org.opendaylight.yangtools.yang.model.api.stmt.ModuleEffectiveStatement; import org.opendaylight.yangtools.yang.model.api.stmt.ModuleStatement; +import org.opendaylight.yangtools.yang.model.api.stmt.SubmoduleEffectiveStatement; @Deprecated(forRemoval = true, since = "4.0.0") abstract class AbstractOperationsModule implements Module, ModuleEffectiveStatement { @@ -53,17 +56,6 @@ abstract class AbstractOperationsModule implements Module, ModuleEffectiveStatem return StatementOrigin.CONTEXT; } - @Override - public final > Optional get(final Class namespace, - final K identifier) { - return Optional.empty(); - } - - @Override - public final > Map getAll(final Class namespace) { - return Map.of(); - } - @Override public final Unqualified argument() { return Unqualified.of(getName()); @@ -162,11 +154,26 @@ abstract class AbstractOperationsModule implements Module, ModuleEffectiveStatem @Override public final ModuleEffectiveStatement asEffectiveStatement() { - throw new UnsupportedOperationException(); + return this; + } + + @Override + public final Optional findExtension(final QName qname) { + return Optional.empty(); + } + + @Override + public final Optional findFeature(final QName qname) { + return Optional.empty(); } @Override - public final ConformanceType conformance() { - throw new UnsupportedOperationException(); + public final Optional findIdentity(final QName qname) { + return Optional.empty(); + } + + @Override + public final Optional findSubmodule(final Unqualified submoduleName) { + return Optional.empty(); } } diff --git a/restconf/restconf-nb/src/main/java/org/opendaylight/restconf/nb/rfc8040/rests/services/impl/OperationsContainerSchemaNode.java b/restconf/restconf-nb/src/main/java/org/opendaylight/restconf/nb/rfc8040/rests/services/impl/OperationsContainerSchemaNode.java index 587030ce21..62043f4b8e 100644 --- a/restconf/restconf-nb/src/main/java/org/opendaylight/restconf/nb/rfc8040/rests/services/impl/OperationsContainerSchemaNode.java +++ b/restconf/restconf-nb/src/main/java/org/opendaylight/restconf/nb/rfc8040/rests/services/impl/OperationsContainerSchemaNode.java @@ -11,9 +11,12 @@ import static java.util.Objects.requireNonNull; import com.google.common.collect.Maps; import java.util.Collection; +import java.util.List; import java.util.Map; +import java.util.Optional; import java.util.Set; import org.eclipse.jdt.annotation.NonNull; +import org.opendaylight.yangtools.util.CollectionWrappers; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.model.api.ActionDefinition; import org.opendaylight.yangtools.yang.model.api.AugmentationSchemaNode; @@ -24,10 +27,15 @@ import org.opendaylight.yangtools.yang.model.api.MustDefinition; import org.opendaylight.yangtools.yang.model.api.NotificationDefinition; import org.opendaylight.yangtools.yang.model.api.TypeDefinition; import org.opendaylight.yangtools.yang.model.api.UsesNode; +import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement; import org.opendaylight.yangtools.yang.model.api.stmt.ContainerEffectiveStatement; +import org.opendaylight.yangtools.yang.model.api.stmt.ContainerStatement; +import org.opendaylight.yangtools.yang.model.api.stmt.DataTreeEffectiveStatement; +import org.opendaylight.yangtools.yang.model.api.stmt.SchemaTreeEffectiveStatement; @Deprecated(forRemoval = true, since = "4.0.0") -final class OperationsContainerSchemaNode extends AbstractOperationDataSchemaNode implements ContainerSchemaNode { +final class OperationsContainerSchemaNode extends AbstractOperationDataSchemaNode + implements ContainerSchemaNode, ContainerEffectiveStatement { // There is no need to intern this nor add a revision, as we are providing the corresponding context anyway static final @NonNull QName QNAME = QName.create(OperationsRestconfModule.NAMESPACE, "operations"); @@ -38,16 +46,43 @@ final class OperationsContainerSchemaNode extends AbstractOperationDataSchemaNod } @Override - public QName getQName() { + public QName argument() { return QNAME; } + @Override + public List> effectiveSubstatements() { + return CollectionWrappers.wrapAsList(children.values()); + } + @Override @SuppressWarnings({ "unchecked", "rawtypes" }) public Collection getChildNodes() { return (Collection) children.values(); } + @Override + @SuppressWarnings({ "unchecked", "rawtypes" }) + public Collection> dataTreeNodes() { + return (Collection) children.values(); + } + + @Override + @SuppressWarnings({ "unchecked", "rawtypes" }) + public Collection> schemaTreeNodes() { + return (Collection) children.values(); + } + + @Override + public Optional> findDataTreeNode(final QName qname) { + return Optional.ofNullable(children.get(requireNonNull(qname))); + } + + @Override + public @NonNull Optional> findSchemaTreeNode(final QName qname) { + return Optional.ofNullable(children.get(requireNonNull(qname))); + } + @Override public DataSchemaNode dataChildByName(final QName name) { return children.get(requireNonNull(name)); @@ -95,6 +130,6 @@ final class OperationsContainerSchemaNode extends AbstractOperationDataSchemaNod @Override public ContainerEffectiveStatement asEffectiveStatement() { - throw new UnsupportedOperationException(); + return this; } } diff --git a/restconf/restconf-nb/src/main/java/org/opendaylight/restconf/nb/rfc8040/rests/services/impl/OperationsImportedModule.java b/restconf/restconf-nb/src/main/java/org/opendaylight/restconf/nb/rfc8040/rests/services/impl/OperationsImportedModule.java index 5f9d868528..fe3de53502 100644 --- a/restconf/restconf-nb/src/main/java/org/opendaylight/restconf/nb/rfc8040/rests/services/impl/OperationsImportedModule.java +++ b/restconf/restconf-nb/src/main/java/org/opendaylight/restconf/nb/rfc8040/rests/services/impl/OperationsImportedModule.java @@ -11,11 +11,16 @@ import static java.util.Objects.requireNonNull; import java.util.Collection; import java.util.List; +import java.util.Map.Entry; +import java.util.Optional; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.common.QNameModule; import org.opendaylight.yangtools.yang.model.api.DataSchemaNode; import org.opendaylight.yangtools.yang.model.api.Module; import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement; +import org.opendaylight.yangtools.yang.model.api.stmt.DataTreeEffectiveStatement; +import org.opendaylight.yangtools.yang.model.api.stmt.ModuleEffectiveStatement; +import org.opendaylight.yangtools.yang.model.api.stmt.SchemaTreeEffectiveStatement; @Deprecated(forRemoval = true, since = "4.0.0") final class OperationsImportedModule extends AbstractOperationsModule { @@ -54,4 +59,49 @@ final class OperationsImportedModule extends AbstractOperationsModule { public List> effectiveSubstatements() { return List.of(); } + + @Override + public ConformanceType conformance() { + return ConformanceType.IMPORT; + } + + @Override + public Collection> dataTreeNodes() { + return List.of(); + } + + @Override + public Optional> findDataTreeNode(final QName qname) { + return Optional.empty(); + } + + @Override + public Collection> schemaTreeNodes() { + return List.of(); + } + + @Override + public Optional> findSchemaTreeNode(final QName qname) { + return Optional.empty(); + } + + @Override + public Optional findReachableModule(final String prefix) { + return Optional.empty(); + } + + @Override + public Collection> reachableModules() { + return List.of(); + } + + @Override + public Optional findNamespacePrefix(final QNameModule namespace) { + return Optional.empty(); + } + + @Override + public Collection> namespacePrefixes() { + return List.of(); + } } diff --git a/restconf/restconf-nb/src/main/java/org/opendaylight/restconf/nb/rfc8040/rests/services/impl/OperationsLeafSchemaNode.java b/restconf/restconf-nb/src/main/java/org/opendaylight/restconf/nb/rfc8040/rests/services/impl/OperationsLeafSchemaNode.java index 556512f11a..0ff6bda348 100644 --- a/restconf/restconf-nb/src/main/java/org/opendaylight/restconf/nb/rfc8040/rests/services/impl/OperationsLeafSchemaNode.java +++ b/restconf/restconf-nb/src/main/java/org/opendaylight/restconf/nb/rfc8040/rests/services/impl/OperationsLeafSchemaNode.java @@ -8,6 +8,7 @@ package org.opendaylight.restconf.nb.rfc8040.rests.services.impl; import java.util.Collection; +import java.util.List; import java.util.Set; import org.eclipse.jdt.annotation.NonNull; import org.opendaylight.yangtools.yang.common.QName; @@ -15,11 +16,14 @@ import org.opendaylight.yangtools.yang.model.api.LeafSchemaNode; import org.opendaylight.yangtools.yang.model.api.MustDefinition; import org.opendaylight.yangtools.yang.model.api.RpcDefinition; import org.opendaylight.yangtools.yang.model.api.TypeDefinition; +import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement; import org.opendaylight.yangtools.yang.model.api.stmt.LeafEffectiveStatement; +import org.opendaylight.yangtools.yang.model.api.stmt.LeafStatement; import org.opendaylight.yangtools.yang.model.ri.type.BaseTypes; @Deprecated(forRemoval = true, since = "4.0.0") -final class OperationsLeafSchemaNode extends AbstractOperationDataSchemaNode implements LeafSchemaNode { +final class OperationsLeafSchemaNode extends AbstractOperationDataSchemaNode + implements LeafSchemaNode, LeafEffectiveStatement { private final QName qname; OperationsLeafSchemaNode(final RpcDefinition rpc) { @@ -32,7 +36,7 @@ final class OperationsLeafSchemaNode extends AbstractOperationDataSchemaNode imp } @Override - public QName getQName() { + public QName argument() { return qname; } @@ -49,6 +53,12 @@ final class OperationsLeafSchemaNode extends AbstractOperationDataSchemaNode imp @Override public LeafEffectiveStatement asEffectiveStatement() { - throw new UnsupportedOperationException(); + return this; + } + + @Override + public List> effectiveSubstatements() { + // FIXME: a 'type empty; mandatory true;' substatements, actually + return List.of(); } } diff --git a/restconf/restconf-nb/src/main/java/org/opendaylight/restconf/nb/rfc8040/rests/services/impl/OperationsRestconfModule.java b/restconf/restconf-nb/src/main/java/org/opendaylight/restconf/nb/rfc8040/rests/services/impl/OperationsRestconfModule.java index d14dfdf264..bb2a5b29ad 100644 --- a/restconf/restconf-nb/src/main/java/org/opendaylight/restconf/nb/rfc8040/rests/services/impl/OperationsRestconfModule.java +++ b/restconf/restconf-nb/src/main/java/org/opendaylight/restconf/nb/rfc8040/rests/services/impl/OperationsRestconfModule.java @@ -11,12 +11,17 @@ import static java.util.Objects.requireNonNull; import java.util.Collection; import java.util.List; +import java.util.Map.Entry; +import java.util.Optional; import org.eclipse.jdt.annotation.NonNull; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.common.QNameModule; import org.opendaylight.yangtools.yang.common.XMLNamespace; import org.opendaylight.yangtools.yang.model.api.DataSchemaNode; import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement; +import org.opendaylight.yangtools.yang.model.api.stmt.DataTreeEffectiveStatement; +import org.opendaylight.yangtools.yang.model.api.stmt.ModuleEffectiveStatement; +import org.opendaylight.yangtools.yang.model.api.stmt.SchemaTreeEffectiveStatement; @Deprecated(forRemoval = true, since = "4.0.0") final class OperationsRestconfModule extends AbstractOperationsModule { @@ -52,12 +57,56 @@ final class OperationsRestconfModule extends AbstractOperationsModule { @Override public DataSchemaNode dataChildByName(final QName name) { - return operations.getQName().equals(requireNonNull(name)) ? operations : null; + return name.equals(operations.getQName()) ? operations : null; } @Override public List> effectiveSubstatements() { - // This is not accurate, but works for now + return List.of(operations); + } + + @Override + public ConformanceType conformance() { + return ConformanceType.IMPLEMENT; + } + + @Override + public Optional> findDataTreeNode(final QName qname) { + return qname.equals(operations.getQName()) ? Optional.of(operations) : Optional.empty(); + } + + @Override + public Optional> findSchemaTreeNode(final QName qname) { + return qname.equals(operations.getQName()) ? Optional.of(operations) : Optional.empty(); + } + + @Override + public Collection> dataTreeNodes() { + return List.of(operations); + } + + @Override + public Collection> schemaTreeNodes() { + return List.of(operations); + } + + @Override + public Optional findReachableModule(final String prefix) { + return Optional.empty(); + } + + @Override + public Collection> reachableModules() { + return List.of(); + } + + @Override + public Optional findNamespacePrefix(final QNameModule namespace) { + return Optional.empty(); + } + + @Override + public Collection> namespacePrefixes() { return List.of(); } } diff --git a/restconf/restconf-nb/src/main/java/org/opendaylight/restconf/nb/rfc8040/rests/services/impl/RestconfInvokeOperationsServiceImpl.java b/restconf/restconf-nb/src/main/java/org/opendaylight/restconf/nb/rfc8040/rests/services/impl/RestconfInvokeOperationsServiceImpl.java index 5b7011b81d..fff01bb2bd 100644 --- a/restconf/restconf-nb/src/main/java/org/opendaylight/restconf/nb/rfc8040/rests/services/impl/RestconfInvokeOperationsServiceImpl.java +++ b/restconf/restconf-nb/src/main/java/org/opendaylight/restconf/nb/rfc8040/rests/services/impl/RestconfInvokeOperationsServiceImpl.java @@ -86,7 +86,7 @@ public class RestconfInvokeOperationsServiceImpl implements RestconfInvokeOperat ErrorType.RPC, ErrorTag.OPERATION_NOT_SUPPORTED)); } } else { - future = invokeRpc(payload.getData(), rpcName, rpcService); + future = invokeRpc((ContainerNode)payload.getData(), rpcName, rpcService); } } else { future = invokeRpc(payload.getData(), rpcName, mountPoint); @@ -128,7 +128,7 @@ public class RestconfInvokeOperationsServiceImpl implements RestconfInvokeOperat @VisibleForTesting static ListenableFuture invokeRpc(final NormalizedNode data, final QName rpc, final DOMMountPoint mountPoint) { - return invokeRpc(data, rpc, mountPoint.getService(DOMRpcService.class).orElseThrow(() -> { + return invokeRpc((ContainerNode) data, rpc, mountPoint.getService(DOMRpcService.class).orElseThrow(() -> { final String errmsg = "RPC service is missing."; LOG.debug(errmsg); return new RestconfDocumentedException(errmsg); @@ -144,7 +144,7 @@ public class RestconfInvokeOperationsServiceImpl implements RestconfInvokeOperat * @return {@link DOMRpcResult} */ @VisibleForTesting - static ListenableFuture invokeRpc(final NormalizedNode data, final QName rpc, + static ListenableFuture invokeRpc(final ContainerNode data, final QName rpc, final DOMRpcService rpcService) { return Futures.catching(rpcService.invokeRpc(rpc, nonnullInput(rpc, data)), DOMRpcException.class, @@ -153,7 +153,7 @@ public class RestconfInvokeOperationsServiceImpl implements RestconfInvokeOperat MoreExecutors.directExecutor()); } - private static @NonNull NormalizedNode nonnullInput(final QName type, final NormalizedNode input) { + private static @NonNull ContainerNode nonnullInput(final QName type, final ContainerNode input) { return input != null ? input : ImmutableNodes.containerNode(YangConstants.operationInputQName(type.getModule())); } diff --git a/restconf/sal-rest-connector-config/pom.xml b/restconf/sal-rest-connector-config/pom.xml index 05ecf19187..daf5686e65 100644 --- a/restconf/sal-rest-connector-config/pom.xml +++ b/restconf/sal-rest-connector-config/pom.xml @@ -12,7 +12,7 @@ org.opendaylight.odlparent odlparent-lite - 11.0.2 + 12.0.1 diff --git a/restconf/sal-rest-docgen/src/main/java/org/opendaylight/netconf/sal/rest/doc/jaxrs/WebInitializer.java b/restconf/sal-rest-docgen/src/main/java/org/opendaylight/netconf/sal/rest/doc/jaxrs/WebInitializer.java index 0bfae0a191..5351d86097 100644 --- a/restconf/sal-rest-docgen/src/main/java/org/opendaylight/netconf/sal/rest/doc/jaxrs/WebInitializer.java +++ b/restconf/sal-rest-docgen/src/main/java/org/opendaylight/netconf/sal/rest/doc/jaxrs/WebInitializer.java @@ -28,7 +28,7 @@ public final class WebInitializer implements AutoCloseable { public WebInitializer(final WebServer webServer, final WebContextSecurer webContextSecurer, final ServletSupport servletSupport, final Application webApp) throws ServletException { var webContextBuilder = WebContext.builder() - .contextPath("apidoc") + .contextPath("/apidoc") .supportsSessions(true) .addServlet(ServletDetails.builder() .servlet(servletSupport.createHttpServletBuilder(webApp).build()) diff --git a/transport/pom.xml b/transport/pom.xml index 924b3992ed..87b16885a1 100644 --- a/transport/pom.xml +++ b/transport/pom.xml @@ -13,7 +13,7 @@ org.opendaylight.odlparent odlparent-lite - 11.0.2 + 12.0.1 diff --git a/truststore/pom.xml b/truststore/pom.xml index c7ba0c8d36..68956cb6ae 100644 --- a/truststore/pom.xml +++ b/truststore/pom.xml @@ -13,7 +13,7 @@ org.opendaylight.odlparent odlparent-lite - 11.0.2 + 12.0.1 -- 2.36.6