Bump upstreams 68/103168/26
authorRobert Varga <robert.varga@pantheon.tech>
Tue, 8 Nov 2022 21:12:45 +0000 (22:12 +0100)
committerRobert Varga <robert.varga@pantheon.tech>
Mon, 26 Dec 2022 12:59:02 +0000 (13:59 +0100)
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 <robert.varga@pantheon.tech>
72 files changed:
artifacts/pom.xml
features/netconf-connector/features-netconf-connector/pom.xml
features/netconf-connector/odl-netconf-connector/src/main/feature/feature.xml
features/netconf-connector/pom.xml
features/netconf/features-netconf-testing/pom.xml
features/netconf/features-netconf/pom.xml
features/netconf/odl-aaa-netconf-plugin-no-cluster/src/main/feature/feature.xml
features/netconf/odl-aaa-netconf-plugin/src/main/feature/feature.xml
features/netconf/odl-netconf-api/src/main/feature/feature.xml
features/netconf/odl-netconf-client/src/main/feature/feature.xml
features/netconf/odl-netconf-impl/src/main/feature/feature.xml
features/netconf/odl-netconf-netty-util/src/main/feature/feature.xml
features/netconf/odl-netconf-notifications-impl/src/main/feature/feature.xml
features/netconf/odl-netconf-util/src/main/feature/feature.xml
features/netconf/pom.xml
features/parent/pom.xml
features/pom.xml
features/restconf/features-restconf/pom.xml
features/restconf/odl-mdsal-apidocs/src/main/feature/feature.xml
features/restconf/odl-restconf-common/src/main/feature/feature.xml
features/restconf/odl-restconf-nb/src/main/feature/feature.xml
features/restconf/pom.xml
features/yanglib/features-yanglib/pom.xml
features/yanglib/odl-yanglib/src/main/feature/feature.xml
features/yanglib/pom.xml
karaf-static/pom.xml
karaf/pom.xml
keystore/pom.xml
model/pom.xml
netconf/mdsal-netconf-connector/src/test/java/org/opendaylight/netconf/mdsal/connector/ops/RuntimeRpcTest.java
netconf/netconf-config/pom.xml
netconf/netconf-topology-singleton/src/main/java/org/opendaylight/netconf/topology/singleton/impl/ProxyDOMRpcService.java
netconf/netconf-topology-singleton/src/main/java/org/opendaylight/netconf/topology/singleton/impl/actors/NetconfNodeActor.java
netconf/netconf-topology-singleton/src/main/java/org/opendaylight/netconf/topology/singleton/impl/netconf/ActorProxyNetconfServiceFacade.java
netconf/netconf-topology-singleton/src/test/java/org/opendaylight/netconf/topology/singleton/impl/MountPointEndToEndTest.java
netconf/pom.xml
netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/impl/DefaultSchemaResourceManager.java
netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/LibraryModulesSchemas.java
netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/NetconfDevice.java
netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/NetconfStateSchemas.java
netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/sal/AbstractNetconfDataTreeService.java
netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/sal/KeepaliveSalFacade.java
netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/sal/NetconfDeviceRpc.java
netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/sal/tx/AbstractWriteTx.java
netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/sal/tx/WriteCandidateTx.java
netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/schema/mapping/NetconfMessageTransformer.java
netconf/sal-netconf-connector/src/main/java/org/opendaylight/netconf/sal/connect/netconf/util/NetconfRpcFutureCallback.java
netconf/sal-netconf-connector/src/test/java/org/opendaylight/netconf/sal/connect/netconf/NetconfDeviceTest.java
netconf/sal-netconf-connector/src/test/java/org/opendaylight/netconf/sal/connect/netconf/sal/NetconfDeviceRpcTest.java
netconf/sal-netconf-connector/src/test/java/org/opendaylight/netconf/sal/connect/netconf/schema/mapping/BaseRpcSchemalessTransformerTest.java
netconf/sal-netconf-connector/src/test/java/org/opendaylight/netconf/sal/connect/netconf/schema/mapping/NetconfMessageTransformerTest.java
netconf/shaded-exificient-jar/pom.xml
netconf/shaded-exificient/pom.xml
netconf/shaded-sshd-jar/pom.xml
netconf/shaded-sshd/pom.xml
netconf/tools/pom.xml
netconf/yanglib/src/main/java/org/opendaylight/yanglib/impl/WebInitializer.java
netconf/yanglib/src/test/java/org/opendaylight/yanglib/impl/YangLibProviderTest.java
parent/pom.xml
pom.xml
restconf/pom.xml
restconf/restconf-nb/src/main/java/org/opendaylight/restconf/nb/rfc8040/rests/services/impl/AbstractOperationDataSchemaNode.java
restconf/restconf-nb/src/main/java/org/opendaylight/restconf/nb/rfc8040/rests/services/impl/AbstractOperationsModule.java
restconf/restconf-nb/src/main/java/org/opendaylight/restconf/nb/rfc8040/rests/services/impl/OperationsContainerSchemaNode.java
restconf/restconf-nb/src/main/java/org/opendaylight/restconf/nb/rfc8040/rests/services/impl/OperationsImportedModule.java
restconf/restconf-nb/src/main/java/org/opendaylight/restconf/nb/rfc8040/rests/services/impl/OperationsLeafSchemaNode.java
restconf/restconf-nb/src/main/java/org/opendaylight/restconf/nb/rfc8040/rests/services/impl/OperationsRestconfModule.java
restconf/restconf-nb/src/main/java/org/opendaylight/restconf/nb/rfc8040/rests/services/impl/RestconfInvokeOperationsServiceImpl.java
restconf/sal-rest-connector-config/pom.xml
restconf/sal-rest-docgen/src/main/java/org/opendaylight/netconf/sal/rest/doc/jaxrs/WebInitializer.java
transport/pom.xml
truststore/pom.xml

index df5bc59054e501bc95f686d6c6f250f0e3125513..300b983a89e78052724c2114f8748cef83467cb2 100644 (file)
@@ -14,7 +14,7 @@
     <parent>
       <groupId>org.opendaylight.odlparent</groupId>
       <artifactId>odlparent-lite</artifactId>
-      <version>11.0.2</version>
+      <version>12.0.1</version>
       <relativePath/>
     </parent>
 
index 3ceb38c9b4846b299546bd13ad7dd67f049ce8c7..a1ee2c9f9be7a1bde9e28a4c72b993d12cf8e629 100644 (file)
@@ -12,7 +12,7 @@
   <parent>
     <groupId>org.opendaylight.odlparent</groupId>
     <artifactId>feature-repo-parent</artifactId>
-    <version>11.0.2</version>
+    <version>12.0.1</version>
     <relativePath/>
   </parent>
 
index 9a0862db59b129ec344b598aab1713722a1f2fac..e311ab738907388fe6be576bf73493fcc0ce5e46 100644 (file)
@@ -8,8 +8,8 @@
   -->
 <features xmlns="http://karaf.apache.org/xmlns/features/v1.4.0" name="odl-netconf-${project.version}">
     <feature name="odl-netconf-connector" version="${project.version}">
-        <feature version="[10,11)">odl-mdsal-model-draft-clemm-netmod-yang-network-topo-01-minimal</feature>
-        <feature version="[6,7)">odl-mdsal-broker</feature>
-        <feature version="[0.16,1)">odl-aaa-encryption-service</feature>
+        <feature version="[11,12)">odl-mdsal-model-draft-clemm-netmod-yang-network-topo-01-minimal</feature>
+        <feature version="[7,8)">odl-mdsal-broker</feature>
+        <feature version="[0.17,1)">odl-aaa-encryption-service</feature>
     </feature>
 </features>
index fe68d98e8b2dce811e2c3122e8da167b8ded2793..3bcfae419bf3bdca56c08a4868e551399c546b47 100644 (file)
@@ -11,7 +11,7 @@
     <parent>
         <groupId>org.opendaylight.odlparent</groupId>
         <artifactId>odlparent-lite</artifactId>
-        <version>11.0.2</version>
+        <version>12.0.1</version>
         <relativePath/>
     </parent>
 
index bc46620751f93c84242882988d848a4939b4bdda..5a8af7b0b46940218ca6916f06dd14cbaee03334 100644 (file)
@@ -12,7 +12,7 @@
   <parent>
       <groupId>org.opendaylight.odlparent</groupId>
       <artifactId>feature-repo-parent</artifactId>
-      <version>11.0.2</version>
+      <version>12.0.1</version>
       <relativePath/>
   </parent>
 
index fc4e115c9b66782f7f9b954f6a85dbebfb792c16..0abe76fa6e60749ffbab5394c48d110b5b4fbfdb 100644 (file)
@@ -12,7 +12,7 @@
   <parent>
     <groupId>org.opendaylight.odlparent</groupId>
     <artifactId>feature-repo-parent</artifactId>
-    <version>11.0.2</version>
+    <version>12.0.1</version>
     <relativePath/>
   </parent>
 
index 9345a76b88dab3d676af27f111f5f2262115b5ec..e60e727a4cf15e15f789918dfd7238366a81a3df 100644 (file)
@@ -7,6 +7,6 @@
  -->
 <features xmlns="http://karaf.apache.org/xmlns/features/v1.4.0" name="odl-aaa-netconf-plugin-no-cluster">
     <feature name="odl-aaa-netconf-plugin-no-cluster">
-        <feature version="[0.16,1)">odl-aaa-shiro</feature>
+        <feature version="[0.17,1)">odl-aaa-shiro</feature>
     </feature>
 </features>
index cd3ca70937fa54393ee009b81af2f8ad4a9ec960..6f3f01a301cb98d4a6d6ad5949f175e4789715ed 100644 (file)
@@ -7,6 +7,6 @@
  -->
 <features xmlns="http://karaf.apache.org/xmlns/features/v1.4.0" name="odl-aaa-netconf-plugin">
     <feature name="odl-aaa-netconf-plugin">
-        <feature version="[0.16,1)">odl-aaa-shiro</feature>
+        <feature version="[0.17,1)">odl-aaa-shiro</feature>
     </feature>
 </features>
index 786b687a70f08c4b165c71c83f2fbda039d8a61c..fc18f6bfebcbe9d4b9cc6639557e165a074e1dea 100644 (file)
@@ -8,9 +8,9 @@
   -->
 <features xmlns="http://karaf.apache.org/xmlns/features/v1.4.0" name="odl-netconf-${project.version}">
     <feature name="odl-netconf-api" version="${project.version}">
-        <feature version="[11,12)">odl-netty-4</feature>
-        <feature version="[9,10)">odl-yangtools-parser-api</feature>
-        <feature version="[10,11)">odl-mdsal-model-rfc8525</feature>
-        <feature version="[10,11)">odl-mdsal-model-rfc8342</feature>
+        <feature version="[12,13)">odl-netty-4</feature>
+        <feature version="[10,11)">odl-yangtools-parser-api</feature>
+        <feature version="[11,12)">odl-mdsal-model-rfc8525</feature>
+        <feature version="[11,12)">odl-mdsal-model-rfc8342</feature>
     </feature>
 </features>
index cc61a746a286f4076ad94fddb6a0b60106b4da6f..45686d31320d399bf8c3bd8b1e7dbb38985348fa 100644 (file)
@@ -8,6 +8,6 @@
   -->
 <features xmlns="http://karaf.apache.org/xmlns/features/v1.4.0" name="odl-netconf-client-${project.version}">
     <feature name="odl-netconf-client" version="${project.version}">
-        <feature version="[6,7)">odl-controller-exp-netty-config</feature>
+        <feature version="[7,8)">odl-controller-exp-netty-config</feature>
     </feature>
 </features>
index 6879fa02cfbdef3272d40703a6610e3e08028976..508df3fb901a7dfe5850cdbf16466adb6e3e4860 100644 (file)
@@ -8,6 +8,6 @@
   -->
 <features xmlns="http://karaf.apache.org/xmlns/features/v1.4.0" name="odl-netconf-impl-${project.version}">
     <feature name="odl-netconf-impl" version="${project.version}">
-        <feature version="[6,7)">odl-controller-exp-netty-config</feature>
+        <feature version="[7,8)">odl-controller-exp-netty-config</feature>
     </feature>
 </features>
index eaaeaddbda580df46bb0e54d8ce7f615b7987bf5..499aab2515716096ea794399621cf9a68ec70b82 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <features xmlns="http://karaf.apache.org/xmlns/features/v1.2.0" name="odl-netconf-netty-util-${project.version}">
     <feature name="odl-netconf-netty-util" version="${project.version}">
-        <feature version="[11,12)">odl-netty-4</feature>
-        <feature version="[0.16,1)">odl-aaa-encryption-service</feature>
+        <feature version="[12,13)">odl-netty-4</feature>
+        <feature version="[0.17,1)">odl-aaa-encryption-service</feature>
     </feature>
 </features>
index 1cfadb90f3fb79eef2c6520b869e78a0554a311b..892cb941e9fceec4b60c18ac5b9bd3145efd26e8 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <features xmlns="http://karaf.apache.org/xmlns/features/v1.2.0" name="odl-netconf-notifications-impl-${project.version}">
     <feature name="odl-netconf-notifications-impl" version="${project.version}">
-        <feature version="[10,11)">odl-mdsal-binding-runtime</feature>
+        <feature version="[11,12)">odl-mdsal-binding-runtime</feature>
     </feature>
 </features>
index 1360892d2a24385e47da5df412bd5c2c9ca36ff0..ffad9793986a81aca944037ff00cd2bc27c973f5 100644 (file)
@@ -11,6 +11,6 @@
         <configfile finalname="etc/netconf.cfg">
             mvn:org.opendaylight.netconf/netconf-util/${project.version}/cfg/config
         </configfile>
-        <feature version="[9,10)">odl-yangtools-codec</feature>
+        <feature version="[10,11)">odl-yangtools-codec</feature>
     </feature>
 </features>
index 64a543dc93d814339249b099beaba4596cca6ef9..6db7795c4ac5c3e55f2b72bc8a3ef3b68d40dc8b 100644 (file)
@@ -11,7 +11,7 @@
   <parent>
     <groupId>org.opendaylight.odlparent</groupId>
     <artifactId>odlparent-lite</artifactId>
-    <version>11.0.2</version>
+    <version>12.0.1</version>
     <relativePath/>
   </parent>
 
index 80723968b8579efa6199ce330c1df61f38495d7d..e1a5a62c33dc3a9387c4669f97c33da49671a7ae 100644 (file)
@@ -12,7 +12,7 @@
     <parent>
         <groupId>org.opendaylight.odlparent</groupId>
         <artifactId>single-feature-parent</artifactId>
-        <version>11.0.2</version>
+        <version>12.0.1</version>
         <relativePath/>
     </parent>
 
index 936516861957d3ebe90e88cd98c29fedc47c0de1..3d6cc4492f9b8d30f739eb3c8287e1c404e16e34 100644 (file)
@@ -11,7 +11,7 @@
   <parent>
     <groupId>org.opendaylight.odlparent</groupId>
     <artifactId>odlparent-lite</artifactId>
-    <version>11.0.2</version>
+    <version>12.0.1</version>
     <relativePath/>
   </parent>
 
index 3480eb9ee754de3db1d9761ec0d1266624f8cc0e..3ced640ff9a7fb8123c2e15ecfc249f8227d9c11 100644 (file)
@@ -12,7 +12,7 @@
   <parent>
     <groupId>org.opendaylight.odlparent</groupId>
     <artifactId>feature-repo-parent</artifactId>
-    <version>11.0.2</version>
+    <version>12.0.1</version>
     <relativePath/>
   </parent>
 
index decd7c3c9bc5ef2a36094e2655e44b99103b1cec..57771e39b848afc8fe1917006656011641a52023 100644 (file)
@@ -8,6 +8,6 @@
   -->
 <features xmlns="http://karaf.apache.org/xmlns/features/v1.4.0" name="odl-netconf-${project.version}">
     <feature name="odl-mdsal-apidocs" version="${project.version}">
-        <feature version="[11,12)">odl-jackson-2.13</feature>
+        <feature version="[12,13)">odl-jackson-2.13</feature>
     </feature>
 </features>
index db506a9076312aad7c1de80f516c0890245844d4..8894da117f958fdb518f1c07b653349d4cac4277 100644 (file)
@@ -8,11 +8,11 @@
   -->
 <features xmlns="http://karaf.apache.org/xmlns/features/v1.4.0" name="odl-netconf-${project.version}">
     <feature name="odl-restconf-common" version="${project.version}">
-        <feature version="[11,12)">odl-karaf-feat-jetty</feature>
-        <feature version="[9,10)">odl-yangtools-export</feature>
-        <feature version="[10,11)">odl-mdsal-model-rfc8040</feature>
-        <feature version="[10,11)">odl-mdsal-model-rfc8525</feature>
-        <feature version="[6,7)">odl-mdsal-broker</feature>
-        <feature version="[0.16,1)">odl-aaa-shiro</feature>
+        <feature version="[12,13)">odl-karaf-feat-jetty</feature>
+        <feature version="[10,11)">odl-yangtools-export</feature>
+        <feature version="[11,12)">odl-mdsal-model-rfc8040</feature>
+        <feature version="[11,12)">odl-mdsal-model-rfc8525</feature>
+        <feature version="[7,8)">odl-mdsal-broker</feature>
+        <feature version="[0.17,1)">odl-aaa-shiro</feature>
     </feature>
 </features>
index 19883cd7861a67061c1c6f6f01d23d930f4fad68..79e8c6f56daa472aeb53d8966605936240085bc2 100644 (file)
@@ -8,8 +8,8 @@
   -->
 <features xmlns="http://karaf.apache.org/xmlns/features/v1.4.0" name="odl-restconf-nb-${project.version}">
     <feature name="odl-restconf-nb" version="${project.version}">
-        <feature version="[10,11)">odl-mdsal-model-rfc8072</feature>
-        <feature version="[6,7)">odl-controller-exp-netty-config</feature>
+        <feature version="[11,12)">odl-mdsal-model-rfc8072</feature>
+        <feature version="[7,8)">odl-controller-exp-netty-config</feature>
         <configfile finalname="etc/org.opendaylight.restconf.nb.rfc8040.cfg">
             mvn:org.opendaylight.netconf/restconf-nb/${project.version}/cfg/config
         </configfile>
index af9f4c0a42f3444506a82f6c58e72c6deed50e2b..772c440ca2bd8ad3bf1387ef313c41ab8e3f7bb4 100644 (file)
@@ -11,7 +11,7 @@
     <parent>
         <groupId>org.opendaylight.odlparent</groupId>
         <artifactId>odlparent-lite</artifactId>
-        <version>11.0.2</version>
+        <version>12.0.1</version>
         <relativePath/>
     </parent>
 
index d106f7ad414d695d313080c682dd6c417ec834c0..2aa4cad52f30b666e17d82f9ecff022d26632761 100644 (file)
@@ -13,7 +13,7 @@
     <parent>
         <groupId>org.opendaylight.odlparent</groupId>
         <artifactId>feature-repo-parent</artifactId>
-        <version>11.0.2</version>
+        <version>12.0.1</version>
         <relativePath/>
     </parent>
 
index 48b5b3f8d7a6378f42dd784809601a743efb817a..fddef45d58d396f3fbbb7dacd12033c6fe7ed81d 100644 (file)
@@ -8,7 +8,7 @@
   -->
 <features xmlns="http://karaf.apache.org/xmlns/features/v1.4.0" name="odl-netconf-${project.version}">
     <feature name="odl-yanglib" version="${project.version}">
-        <feature version="[11,12)">odl-karaf-feat-jetty</feature>
-        <feature version="[10,11)">odl-mdsal-model-rfc8525</feature>
+        <feature version="[12,13)">odl-karaf-feat-jetty</feature>
+        <feature version="[11,12)">odl-mdsal-model-rfc8525</feature>
     </feature>
 </features>
index 21d160f2dc005e19b666b8f3b1e6d249239753ee..739fb86ce85c94bc0dcfd80ee68085bdd1b6e06b 100644 (file)
@@ -11,7 +11,7 @@
     <parent>
         <groupId>org.opendaylight.odlparent</groupId>
         <artifactId>odlparent-lite</artifactId>
-        <version>11.0.2</version>
+        <version>12.0.1</version>
         <relativePath/>
     </parent>
 
index 8a34f652c311dced67d3080e0edd372121500a5b..9b180239e8310dcde9e3f75736c47331a31e2a47 100644 (file)
@@ -11,7 +11,7 @@
     <parent>
         <groupId>org.opendaylight.odlparent</groupId>
         <artifactId>karaf-dist-static</artifactId>
-        <version>11.0.2</version>
+        <version>12.0.1</version>
         <relativePath/>
     </parent>
 
index 2a2c8c37838ce6772c68efeb20c3d95d7783a88b..fbecbb9aa94fde5700682e53343f2178063c03d5 100644 (file)
@@ -11,7 +11,7 @@
   <parent>
     <groupId>org.opendaylight.odlparent</groupId>
     <artifactId>karaf4-parent</artifactId>
-    <version>11.0.2</version>
+    <version>12.0.1</version>
     <relativePath/>
   </parent>
   <groupId>org.opendaylight.netconf</groupId>
       <dependency>
         <groupId>org.opendaylight.infrautils</groupId>
         <artifactId>infrautils-artifacts</artifactId>
-        <version>4.0.2</version>
+        <version>5.0.1</version>
         <type>pom</type>
         <scope>import</scope>
       </dependency>
       <dependency>
         <groupId>org.opendaylight.controller</groupId>
         <artifactId>controller-artifacts</artifactId>
-        <version>6.0.3</version>
+        <version>7.0.1</version>
         <type>pom</type>
         <scope>import</scope>
       </dependency>
index 2fc5d23a2ae0da52ea557b140dde70f68943b8c4..a3f9b0ffa877ac5c8f538760cbbf5ffaa30a5e8d 100644 (file)
@@ -13,7 +13,7 @@
     <parent>
         <groupId>org.opendaylight.odlparent</groupId>
         <artifactId>odlparent-lite</artifactId>
-        <version>11.0.2</version>
+        <version>12.0.1</version>
         <relativePath/>
     </parent>
 
index 5138a423c3a5c6e8fd10131a68802440d15415ef..e41b818cf0702a5e2d0b4efa1a65037a371761c8 100644 (file)
@@ -13,7 +13,7 @@
     <parent>
         <groupId>org.opendaylight.odlparent</groupId>
         <artifactId>odlparent-lite</artifactId>
-        <version>11.0.2</version>
+        <version>12.0.1</version>
         <relativePath/>
     </parent>
 
index a3019a0fa3b02f40f53c3dbb2eeb327f4e59c668..5fdbf4637893a122a49035df624f1e7c51cc3f75 100644 (file)
@@ -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<DOMRpcResult> invokeRpc(final QName type, final NormalizedNode input) {
+        public FluentFuture<DOMRpcResult> 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<DOMRpcResult> invokeRpc(final QName type, final NormalizedNode input) {
+        public FluentFuture<DOMRpcResult> 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<DOMRpcResult> invokeRpc(final QName type, final NormalizedNode input) {
-            final Collection<DataContainerChild> children = ((ContainerNode) input).body();
+        public FluentFuture<DOMRpcResult> invokeRpc(final QName type, final ContainerNode input) {
+            final Collection<DataContainerChild> children = input.body();
             final Module module = SCHEMA_CONTEXT.findModules(type.getNamespace()).stream()
                 .findFirst().orElse(null);
             final RpcDefinition rpcDefinition = getRpcDefinitionFromModule(module, module.getNamespace(),
index 94af36a28574ab91c0742e027b979f2765ea1b8a..b4e3bcec4bf105fd5dd9513b5f90c4d1d6321fc5 100644 (file)
@@ -12,7 +12,7 @@
   <parent>
     <groupId>org.opendaylight.odlparent</groupId>
     <artifactId>bundle-parent</artifactId>
-    <version>11.0.2</version>
+    <version>12.0.1</version>
     <relativePath/>
   </parent>
 
index 4e40d17c38eabc8931d34eb31c2c80bbbcb736e3..49e695a8d7bac6d881db6139109401e65ae15b44 100644 (file)
@@ -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<DOMRpcResult> invokeRpc(final QName type, final NormalizedNode input) {
+    public ListenableFuture<DOMRpcResult> 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
index 0fd70e5fdabe205802c297326e519b056f4d2ec8..e9289499b129220e3d5871f30ef11a8a2dc77e9c 100644 (file)
@@ -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<? extends DOMRpcResult> rpcResult = deviceRpc.invokeRpc(qname,
-                normalizedNodeMessage != null ? normalizedNodeMessage.getNode() : null);
+                normalizedNodeMessage != null ? (ContainerNode) normalizedNodeMessage.getNode() : null);
 
         Futures.addCallback(rpcResult, new FutureCallback<DOMRpcResult>() {
             @Override
index b27aa8ba3f0ddf1f80b03021efb242c9d2547ffa..4624bd68bed91e769f2f5cd6d68915193f2f0050 100644 (file)
@@ -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());
         }
     }
 }
index 725260874ea81e86184ecf91e6fcd4df9e50e7c4..7528e06079792cac026dab8c6538dcf363b17cc0 100644 (file)
@@ -256,7 +256,7 @@ public class MountPointEndToEndTest extends AbstractBaseSchemasTest {
         final var rpcService = router.getRpcService();
         deviceRpcService = new Rpcs.Normalized() {
             @Override
-            public ListenableFuture<? extends DOMRpcResult> invokeRpc(final QName type, final NormalizedNode input) {
+            public ListenableFuture<? extends DOMRpcResult> 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<DOMRpcResult> 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<? extends RpcError> iter1 = result.getErrors().iterator();
-        Iterator<? extends RpcError> iter2 = actual.getErrors().iterator();
+        assertEquals(result.errors().size(), actual.errors().size());
+        Iterator<? extends RpcError> iter1 = result.errors().iterator();
+        Iterator<? extends RpcError> 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<DOMRpcResult> returnFuture)
+    private DOMRpcResult invokeRpc(final DOMRpcService domRpcService, final QName qname, final ContainerNode input,
+            final ListenableFuture<DOMRpcResult> returnFuture)
                 throws InterruptedException, ExecutionException, TimeoutException {
         topRpcImplementation.init(returnFuture);
         final ListenableFuture<? extends DOMRpcResult> resultFuture = domRpcService.invokeRpc(qname, input);
@@ -749,15 +748,15 @@ public class MountPointEndToEndTest extends AbstractBaseSchemasTest {
 
     private static class TopDOMRpcImplementation implements DOMRpcImplementation {
         private volatile SettableFuture<Entry<DOMRpcIdentifier, NormalizedNode>> rpcInvokedFuture;
-        private volatile FluentFuture<DOMRpcResult> returnFuture;
+        private volatile ListenableFuture<DOMRpcResult> returnFuture;
 
         @Override
-        public FluentFuture<DOMRpcResult> invokeRpc(final DOMRpcIdentifier rpc, final NormalizedNode input) {
+        public ListenableFuture<DOMRpcResult> invokeRpc(final DOMRpcIdentifier rpc, final ContainerNode input) {
             rpcInvokedFuture.set(Map.entry(rpc, input));
             return returnFuture;
         }
 
-        void init(final FluentFuture<DOMRpcResult> retFuture) {
+        void init(final ListenableFuture<DOMRpcResult> retFuture) {
             returnFuture = retFuture;
             rpcInvokedFuture = SettableFuture.create();
         }
index dc07d6c39c13234f74f3f82bf9ba153cf912badb..b6d02a2c162e9f727bb6334f0766029578189a36 100644 (file)
@@ -13,7 +13,7 @@
   <parent>
     <groupId>org.opendaylight.odlparent</groupId>
     <artifactId>odlparent-lite</artifactId>
-    <version>11.0.2</version>
+    <version>12.0.1</version>
     <relativePath/>
   </parent>
 
index 3c57cdfd1e5da3a1f33410bf7976c72cad907925..5945a92200db975c539a3b07ae2bb749581e3e41 100644 (file)
@@ -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
index c7b7fc2f13c82526d431982815ff3c560f61a6f3..87d2a47d69c75a4b3ae8352e27962a389126c4dc 100644 (file)
@@ -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<DataContainerChild> 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);
index f29bd2422b1f71c420c0c668aec316a5c2245a76..667ca04b883155a815d06b499504bbedbf6c1d73 100644 (file)
@@ -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<NetconfDeviceCommunicator> {
         // 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<DOMRpcResult> 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<NetconfDeviceCommunicator> {
     }
 
     private MountPointContext processSchemaMounts(final DOMRpcResult rpcResult, final MountPointContext emptyContext) {
-        final Collection<? extends RpcError> 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
index 3061b8d17052d4a19ec0dbe2d2cd083f583302e9..75bd5a0d059f49ba15b871fbf8290681dad61510 100644 (file)
@@ -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<? extends NormalizedNode> optSchemasNode = findSchemasNode(schemasNodeResult.getResult(),
+        final Optional<? extends NormalizedNode> optSchemasNode = findSchemasNode(schemasNodeResult.value(),
                 schemaContext);
         if (optSchemasNode.isEmpty()) {
             LOG.warn("{}: Unable to detect available schemas, get to {} was empty", id, STATE_SCHEMAS_IDENTIFIER);
index 694b81365b8d79757e78c62c555b03790a78994b..1c2012f5e38a1888dd5d69f1b220a8457198d828 100644 (file)
@@ -193,10 +193,10 @@ public abstract class AbstractNetconfDataTreeService implements NetconfDataTreeS
         }
 
         final ListenableFuture<DOMRpcResult> result = mergeFutures(lockImpl());
-        Futures.addCallback(result, new FutureCallback<DOMRpcResult>() {
+        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<DOMRpcResult> result = mergeFutures(unlockImpl());
-        Futures.addCallback(result, new FutureCallback<DOMRpcResult>() {
+        Futures.addCallback(result, new FutureCallback<>() {
             @Override
             public void onSuccess(final DOMRpcResult result) {
                 final var errors = result.getErrors();
index 5f05c046a2cbdad93db5d07ae0b4305833378700..b853db62eed8471c31c92bd4df14b2a4ce926d57 100644 (file)
@@ -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<? extends DOMRpcResult> invokeRpc(final QName type, final NormalizedNode input) {
+        public ListenableFuture<? extends DOMRpcResult> 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));
index df907d4037488a63b01d938b172c010568c8bc57..48cbbb9dbc13d94bd12831dbc651478bcb94fe36 100644 (file)
@@ -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<NormalizedNode, DOMRpcResult> transformer;
+    private final RpcTransformer<ContainerNode, DOMRpcResult> transformer;
     private final EffectiveModelContext modelContext;
 
     public NetconfDeviceRpc(final EffectiveModelContext modelContext, final RemoteDeviceCommunicator communicator,
-            final RpcTransformer<NormalizedNode, DOMRpcResult> transformer) {
+            final RpcTransformer<ContainerNode, DOMRpcResult> 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<DOMRpcResult> invokeRpc(final QName type, final NormalizedNode input) {
+    public ListenableFuture<DOMRpcResult> invokeRpc(final QName type, final ContainerNode input) {
         final ListenableFuture<RpcResult<NetconfMessage>> delegateFuture = communicator.sendRequest(
             transformer.toRpcRequest(type, input), type);
 
index 924e2216ed45d788427e91a0ade1eb605af2518f..10d35c7473cd2239586f8c6bf9d7af98e7301b84 100644 (file)
@@ -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();
index 3ea7045ff00c979fe1fc0a74923895cc71b63508..eeb41f72985dd24d41f9b484fd06cc7e51a685cc 100644 (file)
@@ -69,7 +69,7 @@ public class WriteCandidateTx extends AbstractWriteTx {
             LOG.trace("Lock is not allowed.");
             return;
         }
-        final FutureCallback<DOMRpcResult> lockCandidateCallback = new FutureCallback<>() {
+        final var lockCandidateCallback = new FutureCallback<DOMRpcResult>() {
             @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());
                 }
             }
 
index 65775c5f53dd3d8da111437fa79517801b3a6798..da5d3caef263443702164f629a3334df151e9d7d 100644 (file)
@@ -104,7 +104,7 @@ import org.w3c.dom.NodeList;
 import org.xml.sax.SAXException;
 
 public class NetconfMessageTransformer
-        implements ActionTransformer, NotificationTransformer, RpcTransformer<NormalizedNode, DOMRpcResult> {
+        implements ActionTransformer, NotificationTransformer, RpcTransformer<ContainerNode, DOMRpcResult> {
     private static final Logger LOG = LoggerFactory.getLogger(NetconfMessageTransformer.class);
 
     private static final ImmutableSet<XMLNamespace> 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);
index 31ac09f2de442d6b941a21d15bec538d5611f157..0e272a2f87e46068dbfe80a476ae5bf2d665fec1 100644 (file)
@@ -23,13 +23,13 @@ public class NetconfRpcFutureCallback implements FutureCallback<DOMRpcResult> {
     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<DOMRpcResult> {
     }
 
     protected void onUnsuccess(final DOMRpcResult result) {
-        LOG.warn("{}: {} invoked unsuccessfully: {}", id, type, result.getErrors());
+        LOG.warn("{}: {} invoked unsuccessfully: {}", id, type, result.errors());
     }
 
     @Override
index 100277dcc16fba9838542462082eb6d60ded103f..863f1027acbc796a2b1bb4cf61cf339673517763 100644 (file)
@@ -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;
index e8f28af6c1a578ec23f2a47408b5fc1a94bb1fe9..2592c8017942164945e75aabb28c60606707ac1a 100644 (file)
@@ -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<NormalizedNode, DOMRpcResult> failingTransformer = mock(RpcTransformer.class);
+        final RpcTransformer<ContainerNode, DOMRpcResult> failingTransformer = mock(RpcTransformer.class);
         final RemoteDeviceCommunicator communicatorMock = mock(RemoteDeviceCommunicator.class);
         final NetconfMessage msg = null;
         final RpcResult<NetconfMessage> 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;
index b0bd71dafd6223008f1f9cd32fa7647739eccf5a..3b9296602ab358897f0a51e08b3b94623b131caf 100644 (file)
@@ -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());
index 1455b9af5fbb27618c590d9e76914fc8b10365a7..3b05a11c94c75e7258e1ca55aec0d56a0c30e4a0 100644 (file)
@@ -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<DataContainerChild> 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
index 88dfa95515f3306a868f512c9ab0be8945efa81a..31a114e749937cb01243d499e75f3ae18c6ec170 100644 (file)
@@ -12,7 +12,7 @@
     <parent>
         <groupId>org.opendaylight.odlparent</groupId>
         <artifactId>odlparent</artifactId>
-        <version>11.0.2</version>
+        <version>12.0.1</version>
         <relativePath/>
     </parent>
 
index 7d7eaed2a104785c23737e61cd620da610dfe170..352dc2bd661c3a1ba0b597e360137b3f4da678ca 100644 (file)
@@ -12,7 +12,7 @@
     <parent>
         <groupId>org.opendaylight.odlparent</groupId>
         <artifactId>bundle-parent</artifactId>
-        <version>11.0.2</version>
+        <version>12.0.1</version>
         <relativePath/>
     </parent>
 
index d7f9dd2c8652242f8d85ceee466e42aad87bc64b..d2fd5e0c31e9faf5edd8a775883c48c5f125b3b3 100644 (file)
@@ -13,7 +13,7 @@
     <parent>
         <groupId>org.opendaylight.odlparent</groupId>
         <artifactId>odlparent</artifactId>
-        <version>11.0.2</version>
+        <version>12.0.1</version>
         <relativePath/>
     </parent>
 
index a86aee85aa3b1969f834e237cca221d7be743aee..fa391663648821b85c63af3e1d1f8b51f37c73e4 100644 (file)
@@ -13,7 +13,7 @@
     <parent>
         <groupId>org.opendaylight.odlparent</groupId>
         <artifactId>bundle-parent</artifactId>
-        <version>11.0.2</version>
+        <version>12.0.1</version>
         <relativePath/>
     </parent>
 
index d553adecb3c5644fa96e22a83fffeeac161fdc80..b0b139d299fe43378b1ffec541d771ee3b385019 100644 (file)
@@ -12,7 +12,7 @@
   <parent>
     <groupId>org.opendaylight.odlparent</groupId>
     <artifactId>odlparent-lite</artifactId>
-    <version>11.0.2</version>
+    <version>12.0.1</version>
     <relativePath/>
   </parent>
 
index faac6543d31932610a2444c3ca6209614d18dd37..efb356b1065bda8c662865083f3d81ea4c73a678 100644 (file)
@@ -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("/*")
index 3dea2863013cf0062faa2361093483683c2c0bad..f7728437f519f9cf27b3e13c22a2bc313d732690 100644 (file)
@@ -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);
index 3832be5100007351aac533aa80f59edec8c3268f..cfe8c05694b8a26a0b77a09f6bdf331a33e04b61 100644 (file)
@@ -11,7 +11,7 @@
   <parent>
     <groupId>org.opendaylight.mdsal</groupId>
     <artifactId>binding-parent</artifactId>
-    <version>10.0.3</version>
+    <version>11.0.3</version>
     <relativePath/>
   </parent>
 
       <dependency>
         <groupId>org.opendaylight.infrautils</groupId>
         <artifactId>infrautils-artifacts</artifactId>
-        <version>4.0.2</version>
+        <version>5.0.1</version>
         <type>pom</type>
         <scope>import</scope>
       </dependency>
       <dependency>
         <groupId>org.opendaylight.aaa</groupId>
         <artifactId>aaa-artifacts</artifactId>
-        <version>0.16.4</version>
+        <version>0.17.1</version>
         <type>pom</type>
         <scope>import</scope>
       </dependency>
       <dependency>
         <groupId>org.opendaylight.controller</groupId>
         <artifactId>bundle-parent</artifactId>
-        <version>6.0.3</version>
+        <version>7.0.1</version>
         <type>pom</type>
         <scope>import</scope>
       </dependency>
diff --git a/pom.xml b/pom.xml
index 057fa6c155aded426664ba64a95d8aed4718ba90..ebe82080f1fe1d0f1c12d18b3b611abaefad26f9 100644 (file)
--- a/pom.xml
+++ b/pom.xml
@@ -13,7 +13,7 @@
     <parent>
         <groupId>org.opendaylight.odlparent</groupId>
         <artifactId>odlparent-lite</artifactId>
-        <version>11.0.2</version>
+        <version>12.0.1</version>
         <relativePath/>
     </parent>
 
index 486602a1e086b307264d46d0c060f006bd81b257..4cf64c3d4676bb41845cc14ad79cd3bd60284c0a 100644 (file)
@@ -12,7 +12,7 @@
     <parent>
         <groupId>org.opendaylight.odlparent</groupId>
         <artifactId>odlparent-lite</artifactId>
-        <version>11.0.2</version>
+        <version>12.0.1</version>
         <relativePath/>
     </parent>
 
index 5e6f4fa4703cb13753442f930926fdb16141dbbe..01229cccce99f205d29e79e1b8bf0454437eb4b0 100644 (file)
@@ -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<D extends DeclaredStatement<QName>>
+        implements DataSchemaNode, EffectiveStatement<QName, D> {
+    @Override
+    public final D getDeclared() {
+        return null;
+    }
+
+    @Override
+    public final QName getQName() {
+        return argument();
+    }
+
     @Override
     public final Status getStatus() {
         return Status.CURRENT;
index 158133143a484e39f5dbf0423ff33edf6ccfec70..6a7a82cb680eac30215ecf0bf5639eb1dfb6a005 100644 (file)
@@ -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 <K, V, N extends IdentifierNamespace<K, V>> Optional<V> get(final Class<N> namespace,
-            final K identifier) {
-        return Optional.empty();
-    }
-
-    @Override
-    public final <K, V, N extends IdentifierNamespace<K, V>> Map<K, V> getAll(final Class<N> 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<ExtensionEffectiveStatement> findExtension(final QName qname) {
+        return Optional.empty();
+    }
+
+    @Override
+    public final Optional<FeatureEffectiveStatement> findFeature(final QName qname) {
+        return Optional.empty();
     }
 
     @Override
-    public final ConformanceType conformance() {
-        throw new UnsupportedOperationException();
+    public final Optional<IdentityEffectiveStatement> findIdentity(final QName qname) {
+        return Optional.empty();
+    }
+
+    @Override
+    public final Optional<SubmoduleEffectiveStatement> findSubmodule(final Unqualified submoduleName) {
+        return Optional.empty();
     }
 }
index 587030ce213ea4e6f61d338a925500da2d4fb9f5..62043f4b8e587f8135c1c950bc77fe1dee10adb7 100644 (file)
@@ -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<ContainerStatement>
+        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<? extends EffectiveStatement<?, ?>> effectiveSubstatements() {
+        return CollectionWrappers.wrapAsList(children.values());
+    }
+
     @Override
     @SuppressWarnings({ "unchecked", "rawtypes" })
     public Collection<DataSchemaNode> getChildNodes() {
         return (Collection) children.values();
     }
 
+    @Override
+    @SuppressWarnings({ "unchecked", "rawtypes" })
+    public Collection<DataTreeEffectiveStatement<?>> dataTreeNodes() {
+        return (Collection) children.values();
+    }
+
+    @Override
+    @SuppressWarnings({ "unchecked", "rawtypes" })
+    public Collection<SchemaTreeEffectiveStatement<?>> schemaTreeNodes() {
+        return (Collection) children.values();
+    }
+
+    @Override
+    public Optional<DataTreeEffectiveStatement<?>> findDataTreeNode(final QName qname) {
+        return Optional.ofNullable(children.get(requireNonNull(qname)));
+    }
+
+    @Override
+    public @NonNull Optional<SchemaTreeEffectiveStatement<?>> 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;
     }
 }
index 5f9d8685284a1dc294c7aee6ab8a7c2f7b7afe4d..fe3de53502ab893dd33aee12a3ff3c062dc94863 100644 (file)
@@ -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<EffectiveStatement<?, ?>> effectiveSubstatements() {
         return List.of();
     }
+
+    @Override
+    public ConformanceType conformance() {
+        return ConformanceType.IMPORT;
+    }
+
+    @Override
+    public Collection<DataTreeEffectiveStatement<?>> dataTreeNodes() {
+        return List.of();
+    }
+
+    @Override
+    public Optional<DataTreeEffectiveStatement<?>> findDataTreeNode(final QName qname) {
+        return Optional.empty();
+    }
+
+    @Override
+    public Collection<SchemaTreeEffectiveStatement<?>> schemaTreeNodes() {
+        return List.of();
+    }
+
+    @Override
+    public Optional<SchemaTreeEffectiveStatement<?>> findSchemaTreeNode(final QName qname) {
+        return Optional.empty();
+    }
+
+    @Override
+    public Optional<ModuleEffectiveStatement> findReachableModule(final String prefix) {
+        return Optional.empty();
+    }
+
+    @Override
+    public Collection<Entry<String, ModuleEffectiveStatement>> reachableModules() {
+        return List.of();
+    }
+
+    @Override
+    public Optional<String> findNamespacePrefix(final QNameModule namespace) {
+        return Optional.empty();
+    }
+
+    @Override
+    public Collection<Entry<QNameModule, String>> namespacePrefixes() {
+        return List.of();
+    }
 }
index 556512f11ad655772f99c52123da87d14fbe76ca..0ff6bda348306ddfd44124f10a2ea1a53894fcfe 100644 (file)
@@ -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<LeafStatement>
+        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<EffectiveStatement<?, ?>> effectiveSubstatements() {
+        // FIXME: a 'type empty; mandatory true;' substatements, actually
+        return List.of();
     }
 }
index d14dfdf2641af41f405d7af44e3e418795c547ea..bb2a5b29ad1996e1696e253498ea6cb319e8aa4d 100644 (file)
@@ -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<EffectiveStatement<?, ?>> effectiveSubstatements() {
-        // This is not accurate, but works for now
+        return List.of(operations);
+    }
+
+    @Override
+    public ConformanceType conformance() {
+        return ConformanceType.IMPLEMENT;
+    }
+
+    @Override
+    public Optional<DataTreeEffectiveStatement<?>> findDataTreeNode(final QName qname) {
+        return qname.equals(operations.getQName()) ? Optional.of(operations) : Optional.empty();
+    }
+
+    @Override
+    public Optional<SchemaTreeEffectiveStatement<?>> findSchemaTreeNode(final QName qname) {
+        return qname.equals(operations.getQName()) ? Optional.of(operations) : Optional.empty();
+    }
+
+    @Override
+    public Collection<DataTreeEffectiveStatement<?>> dataTreeNodes() {
+        return List.of(operations);
+    }
+
+    @Override
+    public Collection<SchemaTreeEffectiveStatement<?>> schemaTreeNodes() {
+        return List.of(operations);
+    }
+
+    @Override
+    public Optional<ModuleEffectiveStatement> findReachableModule(final String prefix) {
+        return Optional.empty();
+    }
+
+    @Override
+    public Collection<Entry<String, ModuleEffectiveStatement>> reachableModules() {
+        return List.of();
+    }
+
+    @Override
+    public Optional<String> findNamespacePrefix(final QNameModule namespace) {
+        return Optional.empty();
+    }
+
+    @Override
+    public Collection<Entry<QNameModule, String>> namespacePrefixes() {
         return List.of();
     }
 }
index 5b7011b81d23b1086131644768e5539dfb122728..fff01bb2bddd7ce7458185dd6bc1856f411c46f4 100644 (file)
@@ -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<? extends DOMRpcResult> 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<? extends DOMRpcResult> invokeRpc(final NormalizedNode data, final QName rpc,
+    static ListenableFuture<? extends DOMRpcResult> 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()));
     }
index 05ecf1918700ae1939643e6bdb26f1dc933d8224..daf5686e65a059e122b6d3f3d20a3382808fe848 100644 (file)
@@ -12,7 +12,7 @@
   <parent>
     <groupId>org.opendaylight.odlparent</groupId>
     <artifactId>odlparent-lite</artifactId>
-    <version>11.0.2</version>
+    <version>12.0.1</version>
     <relativePath/>
   </parent>
 
index 0bfae0a191ddead3c7b6c7adbef4992acd462801..5351d86097945c408e3f9d6d4dd2b7157eebab47 100644 (file)
@@ -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())
index 924b3992edbde77e20128b0e102e078a11384db0..87b16885a1c630c15c52ffb0db3f266376c69a6a 100644 (file)
@@ -13,7 +13,7 @@
     <parent>
         <groupId>org.opendaylight.odlparent</groupId>
         <artifactId>odlparent-lite</artifactId>
-        <version>11.0.2</version>
+        <version>12.0.1</version>
         <relativePath/>
     </parent>
 
index c7ba0c8d367cf9aa61ee0cbb873c1fbaf95bb365..68956cb6ae27eff9a2580bdc01bcddf316925b26 100644 (file)
@@ -13,7 +13,7 @@
     <parent>
         <groupId>org.opendaylight.odlparent</groupId>
         <artifactId>odlparent-lite</artifactId>
-        <version>11.0.2</version>
+        <version>12.0.1</version>
         <relativePath/>
     </parent>