Bump upstreams for Silicon 78/92878/17
authorRobert Varga <robert.varga@pantheon.tech>
Fri, 2 Oct 2020 16:16:24 +0000 (18:16 +0200)
committerRobert Varga <robert.varga@pantheon.tech>
Wed, 7 Oct 2020 10:55:43 +0000 (12:55 +0200)
Adopt the following upstream versions:
- odlparent-8.0.0
- yangtools-6.0.0-SNAPSHOT
- mdsal-7.0.0-SNAPSHOT

Also add bundle-parent to host the scala/akka definitions we need.

Change-Id: I98452920bf7cebf176d3b20723be40929a9a7268
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
91 files changed:
akka/pom.xml
akka/repackaged-akka-jar/pom.xml
akka/repackaged-akka/pom.xml
artifacts/pom.xml
benchmark/pom.xml
bundle-parent/pom.xml [new file with mode: 0644]
docs/pom.xml
features/features-controller-experimental/pom.xml
features/features-controller-testing/pom.xml
features/features-controller/pom.xml
features/odl-clustering-test-app/src/main/feature/feature.xml
features/odl-controller-blueprint/src/main/feature/feature.xml
features/odl-controller-exp-messagebus/src/main/feature/feature.xml
features/odl-controller-exp-netty-config/src/main/feature/feature.xml
features/odl-controller-mdsal-common/src/main/feature/feature.xml
features/odl-controller-model-topology/src/main/feature/feature.xml
features/odl-mdsal-broker-local/src/main/feature/feature.xml
features/odl-mdsal-broker/src/main/feature/feature.xml
features/odl-mdsal-clustering-commons/pom.xml
features/odl-mdsal-clustering-commons/src/main/feature/feature.xml
features/odl-mdsal-distributed-datastore/src/main/feature/feature.xml
features/odl-mdsal-model-inventory/src/main/feature/feature.xml
features/odl-toaster/src/main/feature/feature.xml
features/pom.xml
features/single-feature-parent/pom.xml
karaf/pom.xml
opendaylight/blueprint/pom.xml
opendaylight/blueprint/src/main/java/org/opendaylight/controller/blueprint/ext/AbstractInvokableServiceMetadata.java
opendaylight/blueprint/src/main/java/org/opendaylight/controller/blueprint/ext/ActionProviderBean.java
opendaylight/blueprint/src/main/java/org/opendaylight/controller/blueprint/ext/RpcUtil.java
opendaylight/commons/jolokia/pom.xml
opendaylight/config/netty-event-executor-config/pom.xml
opendaylight/config/netty-threadgroup-config/pom.xml
opendaylight/config/netty-timer-config/pom.xml
opendaylight/config/pom.xml
opendaylight/config/threadpool-config-api/pom.xml
opendaylight/config/threadpool-config-impl/pom.xml
opendaylight/md-sal/cds-access-api/pom.xml
opendaylight/md-sal/cds-access-client/pom.xml
opendaylight/md-sal/cds-dom-api/pom.xml
opendaylight/md-sal/mdsal-it-base/pom.xml
opendaylight/md-sal/mdsal-it-parent/pom.xml
opendaylight/md-sal/messagebus-util/src/main/java/org/opendaylight/controller/messagebus/app/util/TopicDOMNotification.java
opendaylight/md-sal/messagebus-util/src/test/java/org/opendaylight/controller/messagebus/app/util/TopicDOMNotificationTest.java
opendaylight/md-sal/parent/pom.xml
opendaylight/md-sal/pom.xml
opendaylight/md-sal/sal-akka-raft/pom.xml
opendaylight/md-sal/sal-akka-segmented-journal/pom.xml
opendaylight/md-sal/sal-cluster-admin-impl/pom.xml
opendaylight/md-sal/sal-clustering-commons/pom.xml
opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/datastore/node/utils/transformer/AbstractNormalizedNodePruner.java
opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/datastore/node/utils/transformer/ReusableNormalizedNodePruner.java
opendaylight/md-sal/sal-clustering-commons/src/test/java/org/opendaylight/controller/cluster/datastore/node/utils/transformer/NormalizedNodePrunerTest.java
opendaylight/md-sal/sal-clustering-commons/src/test/java/org/opendaylight/controller/cluster/datastore/util/TestModel.java
opendaylight/md-sal/sal-clustering-config/pom.xml
opendaylight/md-sal/sal-distributed-datastore/pom.xml
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/utils/PruningDataTreeModification.java
opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/DatastoreContextIntrospectorTest.java
opendaylight/md-sal/sal-distributed-eos/pom.xml
opendaylight/md-sal/sal-dummy-distributed-datastore/pom.xml
opendaylight/md-sal/sal-remoterpc-connector/pom.xml
opendaylight/md-sal/sal-remoterpc-connector/src/main/java/org/opendaylight/controller/remote/rpc/AbstractRemoteFuture.java
opendaylight/md-sal/sal-remoterpc-connector/src/main/java/org/opendaylight/controller/remote/rpc/AbstractRemoteImplementation.java
opendaylight/md-sal/sal-remoterpc-connector/src/main/java/org/opendaylight/controller/remote/rpc/OpsInvoker.java
opendaylight/md-sal/sal-remoterpc-connector/src/main/java/org/opendaylight/controller/remote/rpc/RemoteActionImplementation.java
opendaylight/md-sal/sal-remoterpc-connector/src/main/java/org/opendaylight/controller/remote/rpc/RemoteDOMActionFuture.java
opendaylight/md-sal/sal-remoterpc-connector/src/main/java/org/opendaylight/controller/remote/rpc/RemoteDOMRpcFuture.java
opendaylight/md-sal/sal-remoterpc-connector/src/main/java/org/opendaylight/controller/remote/rpc/messages/AbstractExecute.java
opendaylight/md-sal/sal-remoterpc-connector/src/main/java/org/opendaylight/controller/remote/rpc/messages/ExecuteAction.java
opendaylight/md-sal/sal-remoterpc-connector/src/main/java/org/opendaylight/controller/remote/rpc/messages/ExecuteRpc.java
opendaylight/md-sal/sal-remoterpc-connector/src/main/java/org/opendaylight/controller/remote/rpc/registry/ActionRoutingTable.java
opendaylight/md-sal/sal-remoterpc-connector/src/main/java/org/opendaylight/controller/remote/rpc/registry/RoutingTable.java
opendaylight/md-sal/sal-remoterpc-connector/src/main/java/org/opendaylight/controller/remote/rpc/registry/mbeans/RemoteActionRegistryMXBeanImpl.java
opendaylight/md-sal/sal-remoterpc-connector/src/test/java/org/opendaylight/controller/remote/rpc/AbstractOpsTest.java
opendaylight/md-sal/sal-remoterpc-connector/src/test/java/org/opendaylight/controller/remote/rpc/OpsBrokerTest.java
opendaylight/md-sal/sal-remoterpc-connector/src/test/java/org/opendaylight/controller/remote/rpc/OpsListenerTest.java
opendaylight/md-sal/sal-remoterpc-connector/src/test/java/org/opendaylight/controller/remote/rpc/OpsRegistrarTest.java
opendaylight/md-sal/sal-remoterpc-connector/src/test/java/org/opendaylight/controller/remote/rpc/RemoteOpsImplementationTest.java
opendaylight/md-sal/sal-remoterpc-connector/src/test/java/org/opendaylight/controller/remote/rpc/registry/ActionRegistryTest.java
opendaylight/md-sal/sal-remoterpc-connector/src/test/java/org/opendaylight/controller/remote/rpc/registry/RpcRegistryTest.java
opendaylight/md-sal/sal-remoterpc-connector/src/test/java/org/opendaylight/controller/remote/rpc/registry/mbeans/RemoteActionRegistryMXBeanImplTest.java
opendaylight/md-sal/sal-remoterpc-connector/src/test/java/org/opendaylight/controller/remote/rpc/registry/mbeans/RemoteRpcRegistryMXBeanImplTest.java
opendaylight/md-sal/samples/clustering-test-app/configuration/pom.xml
opendaylight/md-sal/samples/clustering-test-app/pom.xml
opendaylight/md-sal/samples/clustering-test-app/provider/src/main/java/org/opendaylight/controller/clustering/it/provider/impl/GetConstantService.java
opendaylight/md-sal/samples/clustering-test-app/provider/src/main/java/org/opendaylight/controller/clustering/it/provider/impl/RoutedGetConstantService.java
opendaylight/md-sal/samples/clustering-test-app/provider/src/main/java/org/opendaylight/controller/clustering/it/provider/impl/SingletonGetConstantService.java
opendaylight/md-sal/samples/pom.xml
opendaylight/model/model-inventory/pom.xml
opendaylight/model/pom.xml
pom.xml

index d0461fa..0c3e3f6 100644 (file)
@@ -11,7 +11,7 @@
     <parent>
         <groupId>org.opendaylight.odlparent</groupId>
         <artifactId>odlparent-lite</artifactId>
-        <version>7.0.6</version>
+        <version>8.0.0</version>
         <relativePath/>
     </parent>
 
index e0edc6a..132afa8 100644 (file)
@@ -13,7 +13,7 @@
     <parent>
         <groupId>org.opendaylight.odlparent</groupId>
         <artifactId>odlparent</artifactId>
-        <version>7.0.6</version>
+        <version>8.0.0</version>
         <relativePath/>
     </parent>
 
         <dependency>
             <groupId>com.typesafe.akka</groupId>
             <artifactId>akka-actor_2.13</artifactId>
+            <version>2.5.31</version>
         </dependency>
         <dependency>
             <groupId>com.typesafe.akka</groupId>
             <artifactId>akka-cluster_2.13</artifactId>
+            <version>2.5.31</version>
         </dependency>
         <dependency>
             <groupId>com.typesafe.akka</groupId>
             <artifactId>akka-osgi_2.13</artifactId>
+            <version>2.5.31</version>
         </dependency>
         <dependency>
             <groupId>com.typesafe.akka</groupId>
             <artifactId>akka-persistence_2.13</artifactId>
+            <version>2.5.31</version>
         </dependency>
         <dependency>
             <groupId>com.typesafe.akka</groupId>
             <artifactId>akka-protobuf_2.13</artifactId>
+            <version>2.5.31</version>
         </dependency>
         <dependency>
             <groupId>com.typesafe.akka</groupId>
             <artifactId>akka-remote_2.13</artifactId>
+            <version>2.5.31</version>
         </dependency>
         <dependency>
             <groupId>com.typesafe.akka</groupId>
             <artifactId>akka-slf4j_2.13</artifactId>
+            <version>2.5.31</version>
         </dependency>
         <dependency>
             <groupId>com.typesafe.akka</groupId>
             <artifactId>akka-stream_2.13</artifactId>
+            <version>2.5.31</version>
         </dependency>
     </dependencies>
 
index 92e09e4..51f4312 100644 (file)
     <modelVersion>4.0.0</modelVersion>
 
     <parent>
-        <groupId>org.opendaylight.odlparent</groupId>
+        <groupId>org.opendaylight.controller</groupId>
         <artifactId>bundle-parent</artifactId>
-        <version>7.0.6</version>
-        <relativePath/>
+        <version>3.0.0-SNAPSHOT</version>
+        <relativePath>../../bundle-parent</relativePath>
     </parent>
 
-    <groupId>org.opendaylight.controller</groupId>
     <artifactId>repackaged-akka</artifactId>
     <packaging>bundle</packaging>
-    <version>3.0.0-SNAPSHOT</version>
     <name>${project.artifactId}</name>
 
     <properties>
index 4d41bb0..3e7ca72 100644 (file)
@@ -14,7 +14,7 @@
     <parent>
         <groupId>org.opendaylight.odlparent</groupId>
         <artifactId>odlparent-lite</artifactId>
-        <version>7.0.6</version>
+        <version>8.0.0</version>
         <relativePath/>
     </parent>
 
index 0d0caea..7afc352 100644 (file)
@@ -10,7 +10,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html
   <parent>
     <groupId>org.opendaylight.odlparent</groupId>
     <artifactId>odlparent-lite</artifactId>
-    <version>7.0.6</version>
+    <version>8.0.0</version>
     <relativePath/>
   </parent>
 
diff --git a/bundle-parent/pom.xml b/bundle-parent/pom.xml
new file mode 100644 (file)
index 0000000..b1ad49d
--- /dev/null
@@ -0,0 +1,119 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Copyright (c) 2020 PANTHEON.tech, s.r.o. and others.  All rights reserved.
+
+ This program and the accompanying materials are made available under the
+ terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ and is available at http://www.eclipse.org/legal/epl-v10.html
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.opendaylight.mdsal</groupId>
+        <artifactId>dom-parent</artifactId>
+        <version>7.0.0-SNAPSHOT</version>
+        <relativePath/>
+    </parent>
+
+    <groupId>org.opendaylight.controller</groupId>
+    <artifactId>bundle-parent</artifactId>
+    <version>3.0.0-SNAPSHOT</version>
+    <packaging>pom</packaging>
+
+    <dependencyManagement>
+        <dependencies>
+            <dependency>
+                <groupId>org.opendaylight.controller</groupId>
+                <artifactId>controller-artifacts</artifactId>
+                <version>3.0.0-SNAPSHOT</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+
+            <!-- Scala and its modules -->
+            <dependency>
+                <groupId>org.scala-lang</groupId>
+                <artifactId>scala-library</artifactId>
+                <version>2.13.3</version>
+            </dependency>
+            <dependency>
+                <groupId>org.scala-lang</groupId>
+                <artifactId>scala-reflect</artifactId>
+                <version>2.13.3</version>
+            </dependency>
+            <dependency>
+                <groupId>org.scala-lang.modules</groupId>
+                <artifactId>scala-java8-compat_2.13</artifactId>
+                <version>0.9.1</version>
+            </dependency>
+            <dependency>
+                <groupId>org.scala-lang.modules</groupId>
+                <artifactId>scala-parser-combinators_2.13</artifactId>
+                <version>1.1.2</version>
+            </dependency>
+
+            <!-- Configuration library -->
+            <!-- This needs to be kept in sync with the version used by akka -->
+            <dependency>
+                <groupId>com.typesafe</groupId>
+                <artifactId>config</artifactId>
+                <version>1.3.3</version>
+            </dependency>
+            <dependency>
+                <groupId>com.typesafe</groupId>
+                <artifactId>ssl-config-core_2.13</artifactId>
+                <version>0.3.8</version>
+            </dependency>
+
+            <!-- Akka testkit -->
+            <dependency>
+                <groupId>com.typesafe.akka</groupId>
+                <artifactId>akka-testkit_2.13</artifactId>
+                <version>2.5.31</version>
+                <scope>test</scope>
+                <exclusions>
+                    <exclusion>
+                        <groupId>com.typesafe.akka</groupId>
+                        <artifactId>akka-actor_2.13</artifactId>
+                    </exclusion>
+                </exclusions>
+            </dependency>
+            <dependency>
+                <groupId>com.typesafe.akka</groupId>
+                <artifactId>akka-persistence-tck_2.13</artifactId>
+                <version>2.5.31</version>
+                <scope>test</scope>
+                <exclusions>
+                    <exclusion>
+                        <groupId>com.typesafe.akka</groupId>
+                        <artifactId>akka-persistence_2.13</artifactId>
+                    </exclusion>
+                </exclusions>
+            </dependency>
+
+            <!-- Reactive Streams, used by Akka -->
+            <dependency>
+                <groupId>org.reactivestreams</groupId>
+                <artifactId>reactive-streams</artifactId>
+                <version>1.0.3</version>
+            </dependency>
+
+            <!-- Aeron, required by Akka -->
+            <dependency>
+                <groupId>org.agrona</groupId>
+                <artifactId>agrona</artifactId>
+                <version>0.9.33</version>
+            </dependency>
+            <dependency>
+                <groupId>io.aeron</groupId>
+                <artifactId>aeron-client</artifactId>
+                <version>1.15.3</version>
+            </dependency>
+            <dependency>
+                <groupId>io.aeron</groupId>
+                <artifactId>aeron-driver</artifactId>
+                <version>1.15.3</version>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
+</project>
index c852071..3f3b552 100644 (file)
@@ -12,7 +12,7 @@
     <parent>
         <groupId>org.opendaylight.odlparent</groupId>
         <artifactId>odlparent</artifactId>
-        <version>7.0.6</version>
+        <version>8.0.0</version>
         <relativePath/>
     </parent>
 
             <groupId>org.kohsuke.metainf-services</groupId>
             <artifactId>metainf-services</artifactId>
         </dependency>
+        <dependency>
+            <groupId>org.osgi</groupId>
+            <artifactId>org.osgi.core</artifactId>
+        </dependency>
         <dependency>
             <groupId>org.osgi</groupId>
             <artifactId>osgi.cmpn</artifactId>
                         <link>http://hamcrest.org/JavaHamcrest/javadoc/2.2/</link>
                         <link>http://google.github.io/truth/api/1.0.1/</link>
                         <link>http://www.slf4j.org/apidocs/</link>
-                        <link>https://google.github.io/guava/releases/28.2-jre/api/docs/</link>
+                        <link>https://google.github.io/guava/releases/29.0-jre/api/docs/</link>
                         <link>http://doc.akka.io/japi/akka/2.5.31/</link>
                         <link>http://netty.io/4.1/api/</link>
                         <link>https://commons.apache.org/proper/commons-lang/javadocs/api-2.6/</link>
                         <link>https://commons.apache.org/proper/commons-lang/javadocs/api-3.9/</link>
                         <link>https://commons.apache.org/proper/commons-codec/apidocs/</link>
 
-                        <link>https://www.javadoc.io/doc/org.opendaylight.odlparent/odlparent-docs/7.0.6/</link>
-                        <link>https://www.javadoc.io/doc/org.opendaylight.yangtools/yangtools-docs/5.0.6/</link>
-                        <link>https://www.javadoc.io/doc/org.opendaylight.mdsal/mdsal-docs/6.0.5/</link>
+                        <link>https://www.javadoc.io/doc/org.opendaylight.odlparent/odlparent-docs/8.0.0/</link>
+                        <link>https://www.javadoc.io/doc/org.opendaylight.yangtools/yangtools-docs/6.0.0-SNAPSHOT/</link>
+                        <link>https://www.javadoc.io/doc/org.opendaylight.mdsal/mdsal-docs/7.0.0-SNAPSHOT/</link>
                     </links>
                     <groups>
                         <group>
index c0369e1..362da1b 100644 (file)
@@ -11,7 +11,7 @@
     <parent>
         <groupId>org.opendaylight.odlparent</groupId>
         <artifactId>feature-repo-parent</artifactId>
-        <version>7.0.6</version>
+        <version>8.0.0</version>
         <relativePath/>
     </parent>
 
index 20d48f7..fc8da80 100644 (file)
@@ -11,7 +11,7 @@
     <parent>
         <groupId>org.opendaylight.odlparent</groupId>
         <artifactId>feature-repo-parent</artifactId>
-        <version>7.0.6</version>
+        <version>8.0.0</version>
         <relativePath/>
     </parent>
 
index b849f9a..3620acb 100644 (file)
@@ -11,7 +11,7 @@
     <parent>
         <groupId>org.opendaylight.odlparent</groupId>
         <artifactId>feature-repo-parent</artifactId>
-        <version>7.0.6</version>
+        <version>8.0.0</version>
         <relativePath/>
     </parent>
 
index e3ac08c..96ef656 100644 (file)
@@ -8,6 +8,6 @@
  -->
 <features xmlns="http://karaf.apache.org/xmlns/features/v1.2.0" name="odl-clustering-test-app-${project.version}">
     <feature name="odl-clustering-test-app" version="${project.version}">
-        <feature version="[6,7)">odl-mdsal-model-rfc6991</feature>
+        <feature version="[7,8)">odl-mdsal-model-rfc6991</feature>
     </feature>
 </features>
index 94e3c3f..86adcc6 100644 (file)
@@ -8,10 +8,10 @@
  -->
 <features xmlns="http://karaf.apache.org/xmlns/features/v1.2.0" name="odl-controller-blueprint-${project.version}">
     <feature name="odl-controller-blueprint" version="${project.version}">
-        <feature version="[5,6)">odl-yangtools-codec</feature>
-        <feature version="[6,7)">odl-mdsal-binding-api</feature>
-        <feature version="[6,7)">odl-mdsal-binding-runtime</feature>
-        <feature version="[6,7)">odl-mdsal-dom-api</feature>
+        <feature version="[6,7)">odl-yangtools-codec</feature>
+        <feature version="[7,8)">odl-mdsal-binding-api</feature>
+        <feature version="[7,8)">odl-mdsal-binding-runtime</feature>
+        <feature version="[7,8)">odl-mdsal-dom-api</feature>
         <bundle start-level="40">mvn:org.opendaylight.controller/blueprint/${project.version}</bundle>
     </feature>
 </features>
index f804c0b..c9b88bc 100644 (file)
@@ -8,6 +8,6 @@
  -->
 <features xmlns="http://karaf.apache.org/xmlns/features/v1.2.0" name="odl-controller-exp-messagebus-${project.version}">
     <feature name="odl-controller-exp-messagebus" version="${project.version}">
-        <feature version="[6,7)">odl-mdsal-model-draft-clemm-netmod-yang-network-topo-01-minimal</feature>
+        <feature version="[7,8)">odl-mdsal-model-draft-clemm-netmod-yang-network-topo-01-minimal</feature>
     </feature>
 </features>
index 50c1970..70c4c6b 100644 (file)
@@ -8,6 +8,6 @@
  -->
 <features xmlns="http://karaf.apache.org/xmlns/features/v1.4.0" name="odl-controller-exp-netty-config">
     <feature name="odl-controller-exp-netty-config">
-        <feature version="[7,8)">odl-netty-4</feature>
+        <feature version="[8,9)">odl-netty-4</feature>
     </feature>
 </features>
index d4e5217..2dd5b08 100644 (file)
@@ -8,7 +8,7 @@
  -->
 <features xmlns="http://karaf.apache.org/xmlns/features/v1.2.0" name="odl-controller-mdsal-common-${project.version}">
     <feature name="odl-controller-mdsal-common" version="${project.version}">
-        <feature version="[6,7)">odl-mdsal-common</feature>
-        <feature version="[6,7)">odl-mdsal-binding-runtime</feature>
+        <feature version="[7,8)">odl-mdsal-common</feature>
+        <feature version="[7,8)">odl-mdsal-binding-runtime</feature>
     </feature>
 </features>
index 462ef7c..1b0e403 100644 (file)
@@ -8,6 +8,6 @@
  -->
 <features xmlns="http://karaf.apache.org/xmlns/features/v1.2.0" name="odl-controller-model-topology-${project.version}">
     <feature name="odl-controller-model-topology" version="${project.version}">
-        <feature version="[6,7)">odl-mdsal-model-draft-clemm-netmod-yang-network-topo-01-minimal</feature>
+        <feature version="[7,8)">odl-mdsal-model-draft-clemm-netmod-yang-network-topo-01-minimal</feature>
     </feature>
 </features>
index e9c07e4..d4ad4d4 100644 (file)
@@ -8,9 +8,9 @@
  -->
 <features xmlns="http://karaf.apache.org/xmlns/features/v1.2.0" name="odl-mdsal-${project.version}">
     <feature name="odl-mdsal-broker-local" version="${project.version}">
-        <feature version="[6,7)">odl-mdsal-dom</feature>
-        <feature version="[6,7)">odl-mdsal-eos-binding</feature>
-        <feature version="[6,7)">odl-mdsal-eos-dom</feature>
-        <feature version="[6,7)">odl-mdsal-singleton-dom</feature>
+        <feature version="[7,8)">odl-mdsal-dom</feature>
+        <feature version="[7,8)">odl-mdsal-eos-binding</feature>
+        <feature version="[7,8)">odl-mdsal-eos-dom</feature>
+        <feature version="[7,8)">odl-mdsal-singleton-dom</feature>
     </feature>
 </features>
index 55212bf..2e38fd3 100644 (file)
@@ -8,7 +8,7 @@
  -->
 <features xmlns="http://karaf.apache.org/xmlns/features/v1.2.0" name="odl-mdsal-${project.version}">
     <feature name="odl-mdsal-broker" version="${project.version}">
-        <feature version="[6,7)">odl-mdsal-singleton-dom</feature>
-        <feature version="[6,7)">odl-mdsal-eos-binding</feature>
+        <feature version="[7,8)">odl-mdsal-singleton-dom</feature>
+        <feature version="[7,8)">odl-mdsal-eos-binding</feature>
     </feature>
 </features>
index a88258b..a69095d 100644 (file)
 
     <dependencies>
         <dependency>
-            <groupId>org.opendaylight.odlparent</groupId>
-            <artifactId>odl-akka-system-2.5</artifactId>
-            <type>xml</type>
-            <classifier>features</classifier>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.odlparent</groupId>
-            <artifactId>odl-akka-persistence-2.5</artifactId>
-            <type>xml</type>
-            <classifier>features</classifier>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.odlparent</groupId>
-            <artifactId>odl-akka-clustering-2.5</artifactId>
+            <groupId>org.opendaylight.controller</groupId>
+            <artifactId>odl-controller-akka</artifactId>
             <type>xml</type>
             <classifier>features</classifier>
         </dependency>
index eae7077..e6ed305 100644 (file)
@@ -8,13 +8,10 @@
   -->
 <features xmlns="http://karaf.apache.org/xmlns/features/v1.4.0" name="odl-controller-${project.version}">
     <feature name="odl-mdsal-clustering-commons" version="${project.version}">
-        <feature version="[7,8)">odl-akka-system-2.5</feature>
-        <feature version="[7,8)">odl-akka-persistence-2.5</feature>
-        <feature version="[7,8)">odl-akka-clustering-2.5</feature>
-        <feature version="[7,8)">odl-apache-commons-lang3</feature>
-        <feature version="[7,8)">odl-dropwizard-metrics</feature>
-        <feature version="[7,8)">odl-servlet-api</feature>
-        <feature version="[5,6)">odl-yangtools-data</feature>
-        <feature version="[5,6)">odl-yangtools-codec</feature>
+        <feature version="[8,9)">odl-apache-commons-lang3</feature>
+        <feature version="[8,9)">odl-dropwizard-metrics</feature>
+        <feature version="[8,9)">odl-servlet-api</feature>
+        <feature version="[6,7)">odl-yangtools-data</feature>
+        <feature version="[6,7)">odl-yangtools-codec</feature>
     </feature>
 </features>
index 29a32bd..9f67ce2 100644 (file)
@@ -8,11 +8,11 @@
   -->
 <features xmlns="http://karaf.apache.org/xmlns/features/v1.4.0" name="odl-controller-${project.version}">
     <feature name="odl-mdsal-distributed-datastore" version="${project.version}">
-        <feature version="[7,8)">odl-apache-commons-text</feature>
-        <feature version="[5,6)">odl-yangtools-codec</feature>
-        <feature version="[6,7)">odl-mdsal-eos-dom</feature>
-        <feature version="[6,7)">odl-mdsal-dom-broker</feature>
-        <feature version="[6,7)">odl-mdsal-binding-dom-adapter</feature>
+        <feature version="[8,9)">odl-apache-commons-text</feature>
+        <feature version="[6,7)">odl-yangtools-codec</feature>
+        <feature version="[7,8)">odl-mdsal-eos-dom</feature>
+        <feature version="[7,8)">odl-mdsal-dom-broker</feature>
+        <feature version="[7,8)">odl-mdsal-binding-dom-adapter</feature>
         <configfile finalname="configuration/initial/akka.conf">
             mvn:org.opendaylight.controller/sal-clustering-config/${project.version}/xml/akkaconf
         </configfile>
index d126926..0639485 100644 (file)
@@ -8,6 +8,6 @@
  -->
 <features xmlns="http://karaf.apache.org/xmlns/features/v1.2.0" name="odl-mdsal-model-inventory-${project.version}">
     <feature name="odl-mdsal-model-inventory" version="${project.version}">
-        <feature version="[6,7)">odl-mdsal-model-rfc6991</feature>
+        <feature version="[7,8)">odl-mdsal-model-rfc6991</feature>
     </feature>
 </features>
index 18ee3b2..6c4e821 100644 (file)
@@ -8,6 +8,6 @@
  -->
 <features xmlns="http://karaf.apache.org/xmlns/features/v1.2.0" name="odl-toaster-${project.version}">
     <feature name="odl-toaster" version="${project.version}">
-        <feature version="[6,7)">odl-mdsal-binding-runtime</feature>
+        <feature version="[7,8)">odl-mdsal-binding-runtime</feature>
     </feature>
 </features>
index a132713..4bf284d 100644 (file)
@@ -11,7 +11,7 @@
   <parent>
     <groupId>org.opendaylight.odlparent</groupId>
     <artifactId>odlparent-lite</artifactId>
-    <version>7.0.6</version>
+    <version>8.0.0</version>
     <relativePath/>
   </parent>
 
index 6a9c040..a4087f8 100644 (file)
@@ -11,7 +11,7 @@
     <parent>
         <groupId>org.opendaylight.odlparent</groupId>
         <artifactId>single-feature-parent</artifactId>
-        <version>7.0.6</version>
+        <version>8.0.0</version>
         <relativePath/>
     </parent>
 
@@ -24,7 +24,7 @@
         <dependencies>
             <dependency>
                 <groupId>org.opendaylight.controller</groupId>
-                <artifactId>mdsal-parent</artifactId>
+                <artifactId>bundle-parent</artifactId>
                 <version>3.0.0-SNAPSHOT</version>
                 <type>pom</type>
                 <scope>import</scope>
index 43f0f6c..8571873 100644 (file)
@@ -11,7 +11,7 @@
   <parent>
     <groupId>org.opendaylight.odlparent</groupId>
     <artifactId>karaf4-parent</artifactId>
-    <version>7.0.6</version>
+    <version>8.0.0</version>
     <relativePath/>
   </parent>
 
index 186d630..9faea3d 100644 (file)
@@ -12,7 +12,7 @@
   <parent>
     <groupId>org.opendaylight.odlparent</groupId>
     <artifactId>bundle-parent</artifactId>
-    <version>7.0.6</version>
+    <version>8.0.0</version>
     <relativePath/>
   </parent>
 
       <dependency>
         <groupId>org.opendaylight.yangtools</groupId>
         <artifactId>yangtools-artifacts</artifactId>
-        <version>5.0.6</version>
+        <version>6.0.0-SNAPSHOT</version>
         <type>pom</type>
         <scope>import</scope>
       </dependency>
       <dependency>
         <groupId>org.opendaylight.mdsal</groupId>
         <artifactId>mdsal-artifacts</artifactId>
-        <version>6.0.5</version>
+        <version>7.0.0-SNAPSHOT</version>
         <type>pom</type>
         <scope>import</scope>
       </dependency>
index 873fd00..35f59f8 100644 (file)
@@ -23,8 +23,8 @@ import org.opendaylight.mdsal.dom.api.DOMSchemaService;
 import org.opendaylight.mdsal.dom.spi.RpcRoutingStrategy;
 import org.opendaylight.yangtools.concepts.ListenerRegistration;
 import org.opendaylight.yangtools.yang.binding.RpcService;
+import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.model.api.SchemaContext;
-import org.opendaylight.yangtools.yang.model.api.SchemaPath;
 import org.osgi.service.blueprint.container.ComponentDefinitionException;
 
 abstract class AbstractInvokableServiceMetadata extends AbstractDependentComponentFactoryMetadata {
@@ -33,7 +33,7 @@ abstract class AbstractInvokableServiceMetadata extends AbstractDependentCompone
     private ListenerRegistration<DOMRpcAvailabilityListener> rpcListenerReg;
     private RpcConsumerRegistry rpcRegistry;
     private Class<RpcService> rpcInterface;
-    private Set<SchemaPath> rpcSchemaPaths;
+    private Set<QName> rpcSchemaPaths;
 
     AbstractInvokableServiceMetadata(final String id, final String interfaceName) {
         super(id);
@@ -89,7 +89,7 @@ abstract class AbstractInvokableServiceMetadata extends AbstractDependentCompone
     private void retrievedSchemaContext(final SchemaContext schemaContext) {
         log.debug("{}: retrievedSchemaContext", logName());
 
-        final Collection<SchemaPath> schemaPaths = RpcUtil.decomposeRpcService(rpcInterface, schemaContext,
+        final Collection<QName> schemaPaths = RpcUtil.decomposeRpcService(rpcInterface, schemaContext,
             rpcFilter());
         if (schemaPaths.isEmpty()) {
             log.debug("{}: interface {} has no acceptable entries, assuming it is satisfied", logName(), rpcInterface);
index af943f9..cb97fb0 100644 (file)
@@ -20,7 +20,7 @@ import org.opendaylight.mdsal.dom.spi.RpcRoutingStrategy;
 import org.opendaylight.yangtools.concepts.Registration;
 import org.opendaylight.yangtools.util.concurrent.FluentFutures;
 import org.opendaylight.yangtools.yang.binding.RpcService;
-import org.opendaylight.yangtools.yang.model.api.SchemaPath;
+import org.opendaylight.yangtools.yang.common.QName;
 import org.osgi.framework.Bundle;
 import org.osgi.service.blueprint.container.ComponentDefinitionException;
 import org.slf4j.Logger;
@@ -121,7 +121,7 @@ public class ActionProviderBean {
     }
 
     private void registerFallback(final Class<RpcService> interfaceClass) {
-        final Collection<SchemaPath> paths = RpcUtil.decomposeRpcService(interfaceClass,
+        final Collection<QName> paths = RpcUtil.decomposeRpcService(interfaceClass,
             schemaService.getGlobalContext(), RpcRoutingStrategy::isContextBasedRouted);
         if (paths.isEmpty()) {
             LOG.warn("{}: interface {} has no actions defined", ACTION_PROVIDER, interfaceClass);
index 7ecc14e..331aac7 100644 (file)
@@ -13,11 +13,11 @@ import java.util.function.Predicate;
 import org.opendaylight.mdsal.binding.spec.reflect.BindingReflections;
 import org.opendaylight.mdsal.dom.spi.RpcRoutingStrategy;
 import org.opendaylight.yangtools.yang.binding.RpcService;
+import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.common.QNameModule;
 import org.opendaylight.yangtools.yang.model.api.Module;
 import org.opendaylight.yangtools.yang.model.api.RpcDefinition;
 import org.opendaylight.yangtools.yang.model.api.SchemaContext;
-import org.opendaylight.yangtools.yang.model.api.SchemaPath;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -33,7 +33,7 @@ final class RpcUtil {
         throw new UnsupportedOperationException();
     }
 
-    static Collection<SchemaPath> decomposeRpcService(final Class<RpcService> service,
+    static Collection<QName> decomposeRpcService(final Class<RpcService> service,
             final SchemaContext schemaContext, final Predicate<RpcRoutingStrategy> filter) {
         final QNameModule moduleName = BindingReflections.getQNameModule(service);
         final Module module = schemaContext.findModule(moduleName).orElseThrow(() -> new IllegalArgumentException(
@@ -41,11 +41,11 @@ final class RpcUtil {
         LOG.debug("Resolved service {} to module {}", service, module);
 
         final Collection<? extends RpcDefinition> rpcs = module.getRpcs();
-        final Collection<SchemaPath> ret = new ArrayList<>(rpcs.size());
+        final Collection<QName> ret = new ArrayList<>(rpcs.size());
         for (RpcDefinition rpc : rpcs) {
             final RpcRoutingStrategy strategy = RpcRoutingStrategy.from(rpc);
             if (filter.test(strategy)) {
-                ret.add(rpc.getPath());
+                ret.add(rpc.getQName());
             }
         }
 
index fbcec81..2eab26c 100644 (file)
@@ -11,7 +11,7 @@
   <parent>
     <groupId>org.opendaylight.odlparent</groupId>
     <artifactId>odlparent</artifactId>
-    <version>7.0.6</version>
+    <version>8.0.0</version>
     <relativePath/>
   </parent>
 
index fc3c2f9..95af0a1 100644 (file)
@@ -5,7 +5,7 @@
   <parent>
     <groupId>org.opendaylight.odlparent</groupId>
     <artifactId>bundle-parent</artifactId>
-    <version>7.0.6</version>
+    <version>8.0.0</version>
     <relativePath/>
   </parent>
 
index b289cb4..8586e60 100644 (file)
@@ -5,7 +5,7 @@
   <parent>
     <groupId>org.opendaylight.odlparent</groupId>
     <artifactId>bundle-parent</artifactId>
-    <version>7.0.6</version>
+    <version>8.0.0</version>
     <relativePath/>
   </parent>
 
index 62cebf6..e4155c5 100644 (file)
@@ -5,7 +5,7 @@
   <parent>
     <groupId>org.opendaylight.odlparent</groupId>
     <artifactId>bundle-parent</artifactId>
-    <version>7.0.6</version>
+    <version>8.0.0</version>
     <relativePath/>
   </parent>
 
index ed8c016..522c62e 100644 (file)
@@ -4,7 +4,7 @@
   <parent>
     <groupId>org.opendaylight.odlparent</groupId>
     <artifactId>odlparent-lite</artifactId>
-    <version>7.0.6</version>
+    <version>8.0.0</version>
     <relativePath/>
   </parent>
 
index 87fbcab..57eff47 100644 (file)
@@ -5,7 +5,7 @@
   <parent>
     <groupId>org.opendaylight.odlparent</groupId>
     <artifactId>bundle-parent</artifactId>
-    <version>7.0.6</version>
+    <version>8.0.0</version>
     <relativePath/>
   </parent>
 
index 9c0e051..d3ee816 100644 (file)
@@ -5,7 +5,7 @@
   <parent>
     <groupId>org.opendaylight.odlparent</groupId>
     <artifactId>bundle-parent</artifactId>
-    <version>7.0.6</version>
+    <version>8.0.0</version>
     <relativePath/>
   </parent>
 
index 52e0190..22fa205 100644 (file)
@@ -13,8 +13,8 @@
 
     <dependencies>
         <dependency>
-            <groupId>com.typesafe.akka</groupId>
-            <artifactId>akka-actor_2.13</artifactId>
+            <groupId>org.opendaylight.controller</groupId>
+            <artifactId>repackaged-akka</artifactId>
         </dependency>
 
         <dependency>
@@ -40,7 +40,6 @@
         <dependency>
             <groupId>com.typesafe.akka</groupId>
             <artifactId>akka-testkit_2.13</artifactId>
-            <scope>test</scope>
         </dependency>
         <dependency>
             <groupId>commons-lang</groupId>
index 9eaaf58..634cc6f 100644 (file)
             <groupId>org.opendaylight.controller</groupId>
             <artifactId>cds-access-api</artifactId>
         </dependency>
-        <dependency>
-            <groupId>com.typesafe.akka</groupId>
-            <artifactId>akka-actor_2.13</artifactId>
-        </dependency>
 
         <dependency>
             <groupId>org.opendaylight.yangtools</groupId>
@@ -37,7 +33,6 @@
         <dependency>
             <groupId>com.typesafe.akka</groupId>
             <artifactId>akka-testkit_2.13</artifactId>
-            <scope>test</scope>
         </dependency>
         <dependency>
            <groupId>com.google.guava</groupId>
index 956527f..2c48997 100644 (file)
@@ -13,8 +13,8 @@
 
     <dependencies>
         <dependency>
-            <groupId>com.typesafe.akka</groupId>
-            <artifactId>akka-actor_2.13</artifactId>
+            <groupId>org.opendaylight.controller</groupId>
+            <artifactId>repackaged-akka</artifactId>
         </dependency>
 
         <dependency>
index 28562f8..2ba6f29 100644 (file)
@@ -12,7 +12,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html
   <parent>
     <groupId>org.opendaylight.odlparent</groupId>
     <artifactId>bundle-parent</artifactId>
-    <version>7.0.6</version>
+    <version>8.0.0</version>
     <relativePath/>
   </parent>
 
@@ -26,7 +26,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html
       <dependency>
         <groupId>org.opendaylight.mdsal</groupId>
         <artifactId>mdsal-artifacts</artifactId>
-        <version>6.0.5</version>
+        <version>7.0.0-SNAPSHOT</version>
         <type>pom</type>
         <scope>import</scope>
       </dependency>
index f8b8992..58496a0 100644 (file)
@@ -13,7 +13,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html
   <parent>
     <groupId>org.opendaylight.odlparent</groupId>
     <artifactId>bundle-parent</artifactId>
-    <version>7.0.6</version>
+    <version>8.0.0</version>
     <relativePath/>
   </parent>
 
@@ -27,6 +27,9 @@ and is available at http://www.eclipse.org/legal/epl-v10.html
     <karaf.distro.artifactId>opendaylight-karaf-empty</karaf.distro.artifactId>
     <karaf.distro.type>zip</karaf.distro.type>
     <karaf.keep.unpack>false</karaf.keep.unpack>
+
+    <!-- FIXME: Remove this -->
+    <odlparent.modernizer.enforce>false</odlparent.modernizer.enforce>
   </properties>
 
   <dependencyManagement>
index 69a8b27..348abad 100644 (file)
@@ -7,14 +7,15 @@
  */
 package org.opendaylight.controller.messagebus.app.util;
 
+import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.mdsal.dom.api.DOMNotification;
 import org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.messagebus.eventaggregator.rev141202.TopicNotification;
 import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode;
-import org.opendaylight.yangtools.yang.model.api.SchemaPath;
+import org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier.Absolute;
 
 public class TopicDOMNotification implements DOMNotification {
+    private static final @NonNull Absolute TOPIC_NOTIFICATION_ID = Absolute.of(TopicNotification.QNAME);
 
-    private static final SchemaPath TOPIC_NOTIFICATION_ID = SchemaPath.create(true, TopicNotification.QNAME);
     private final ContainerNode body;
 
     public TopicDOMNotification(final ContainerNode body) {
@@ -22,7 +23,7 @@ public class TopicDOMNotification implements DOMNotification {
     }
 
     @Override
-    public SchemaPath getType() {
+    public Absolute getType() {
         return TOPIC_NOTIFICATION_ID;
     }
 
index a366c69..be11b10 100644 (file)
@@ -17,7 +17,7 @@ import org.junit.BeforeClass;
 import org.junit.Test;
 import org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.messagebus.eventaggregator.rev141202.TopicNotification;
 import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode;
-import org.opendaylight.yangtools.yang.model.api.SchemaPath;
+import org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier.Absolute;
 
 public class TopicDOMNotificationTest {
 
@@ -43,8 +43,8 @@ public class TopicDOMNotificationTest {
 
     @Test
     public void getTypeTest() {
-        SchemaPath topicNotificationId = SchemaPath.create(true, TopicNotification.QNAME);
-        assertEquals("Type has not been created correctly.", topicNotificationId, topicDOMNotification.getType());
+        assertEquals("Type has not been created correctly.", Absolute.of(TopicNotification.QNAME),
+            topicDOMNotification.getType());
     }
 
     @Test
index 43004c3..8dfe93a 100644 (file)
@@ -11,7 +11,7 @@
   <parent>
     <groupId>org.opendaylight.mdsal</groupId>
     <artifactId>binding-parent</artifactId>
-    <version>6.0.5</version>
+    <version>7.0.0-SNAPSHOT</version>
     <relativePath/>
   </parent>
 
@@ -24,7 +24,7 @@
     <dependencies>
       <dependency>
         <groupId>org.opendaylight.controller</groupId>
-        <artifactId>controller-artifacts</artifactId>
+        <artifactId>bundle-parent</artifactId>
         <version>3.0.0-SNAPSHOT</version>
         <type>pom</type>
         <scope>import</scope>
index 2464f7c..2e2b294 100644 (file)
@@ -5,7 +5,7 @@
   <parent>
     <groupId>org.opendaylight.odlparent</groupId>
     <artifactId>odlparent-lite</artifactId>
-    <version>7.0.6</version>
+    <version>8.0.0</version>
     <relativePath/>
   </parent>
 
index 90c03a6..9e24995 100644 (file)
       <artifactId>sal-clustering-commons</artifactId>
     </dependency>
     <dependency>
-      <groupId>com.typesafe.akka</groupId>
-      <artifactId>akka-actor_2.13</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>com.typesafe.akka</groupId>
-      <artifactId>akka-cluster_2.13</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>com.typesafe.akka</groupId>
-      <artifactId>akka-persistence_2.13</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>com.typesafe.akka</groupId>
-      <artifactId>akka-remote_2.13</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>com.typesafe.akka</groupId>
-      <artifactId>akka-slf4j_2.13</artifactId>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>repackaged-akka</artifactId>
     </dependency>
     <dependency>
       <groupId>org.scala-lang</groupId>
@@ -53,7 +37,6 @@
     <dependency>
       <groupId>com.typesafe.akka</groupId>
       <artifactId>akka-testkit_2.13</artifactId>
-      <scope>test</scope>
     </dependency>
     <dependency>
       <groupId>org.awaitility</groupId>
index e77dfeb..7b7419e 100644 (file)
@@ -19,20 +19,16 @@ and is available at http://www.eclipse.org/legal/epl-v10.html
     <artifactId>sal-akka-segmented-journal</artifactId>
     <packaging>bundle</packaging>
 
+    <properties>
+        <!-- FIXME: Remove this -->
+        <odlparent.modernizer.enforce>false</odlparent.modernizer.enforce>
+    </properties>
+
     <dependencies>
         <!-- Akka -->
         <dependency>
-            <groupId>com.typesafe.akka</groupId>
-            <artifactId>akka-actor_2.13</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>com.typesafe.akka</groupId>
-            <artifactId>akka-persistence_2.13</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>com.typesafe.akka</groupId>
-            <artifactId>akka-slf4j_2.13</artifactId>
-            <scope>test</scope>
+            <groupId>org.opendaylight.controller</groupId>
+            <artifactId>repackaged-akka</artifactId>
         </dependency>
         <dependency>
             <groupId>com.typesafe.akka</groupId>
index 9907066..ba7b6de 100644 (file)
     </dependency>
 
     <!-- Akka -->
-    <dependency>
-      <groupId>com.typesafe.akka</groupId>
-      <artifactId>akka-actor_2.13</artifactId>
-    </dependency>
     <dependency>
       <groupId>com.typesafe.akka</groupId>
       <artifactId>akka-testkit_2.13</artifactId>
-      <scope>test</scope>
     </dependency>
 
     <!-- Scala -->
index 2da58c3..24edda4 100644 (file)
   <artifactId>sal-clustering-commons</artifactId>
   <packaging>bundle</packaging>
 
+  <properties>
+    <!-- FIXME: Remove this -->
+    <odlparent.modernizer.enforce>false</odlparent.modernizer.enforce>
+  </properties>
+
   <dependencies>
     <!-- Java -->
     <dependency>
 
     <!-- Akka -->
     <dependency>
-      <groupId>com.typesafe.akka</groupId>
-      <artifactId>akka-actor_2.13</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>com.typesafe.akka</groupId>
-      <artifactId>akka-cluster_2.13</artifactId>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>repackaged-akka</artifactId>
     </dependency>
     <dependency>
       <groupId>com.typesafe.akka</groupId>
-      <artifactId>akka-osgi_2.13</artifactId>
-      <exclusions>
-        <exclusion>
-          <groupId>org.osgi</groupId>
-          <artifactId>org.osgi.compendium</artifactId>
-        </exclusion>
-      </exclusions>
-    </dependency>
-    <dependency>
-      <groupId>com.typesafe.akka</groupId>
-      <artifactId>akka-persistence_2.13</artifactId>
+      <artifactId>akka-testkit_2.13</artifactId>
     </dependency>
     <dependency>
       <groupId>com.typesafe.akka</groupId>
-      <artifactId>akka-remote_2.13</artifactId>
+      <artifactId>akka-persistence-tck_2.13</artifactId>
     </dependency>
+
     <dependency>
       <!-- Enforce Netty’s optional dependency on servlet API -->
       <!-- FIXME: is this really needed ? -->
       <groupId>javax.servlet</groupId>
       <artifactId>javax.servlet-api</artifactId>
     </dependency>
-    <dependency>
-      <groupId>com.typesafe.akka</groupId>
-      <artifactId>akka-slf4j_2.13</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>com.typesafe.akka</groupId>
-      <artifactId>akka-testkit_2.13</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>com.typesafe.akka</groupId>
-      <artifactId>akka-persistence-tck_2.13</artifactId>
-    </dependency>
 
     <!-- Codahale -->
     <dependency>
index f0ef496..8999034 100644 (file)
@@ -29,7 +29,7 @@ import org.opendaylight.yangtools.yang.data.impl.schema.ReusableImmutableNormali
 import org.opendaylight.yangtools.yang.data.util.DataSchemaContextNode;
 import org.opendaylight.yangtools.yang.data.util.DataSchemaContextTree;
 import org.opendaylight.yangtools.yang.model.api.DataSchemaNode;
-import org.opendaylight.yangtools.yang.model.api.SchemaContext;
+import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -72,7 +72,7 @@ abstract class AbstractNormalizedNodePruner implements NormalizedNodeStreamWrite
         this.tree = requireNonNull(tree);
     }
 
-    AbstractNormalizedNodePruner(final SchemaContext schemaContext) {
+    AbstractNormalizedNodePruner(final EffectiveModelContext schemaContext) {
         this(DataSchemaContextTree.from(schemaContext));
     }
 
index d956323..4b75428 100644 (file)
@@ -11,7 +11,7 @@ import com.google.common.annotations.Beta;
 import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
 import org.opendaylight.yangtools.yang.data.util.DataSchemaContextTree;
-import org.opendaylight.yangtools.yang.model.api.SchemaContext;
+import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
 
 /**
  * The NormalizedNodePruner removes all nodes from the input NormalizedNode that do not have a corresponding
@@ -21,7 +21,7 @@ import org.opendaylight.yangtools.yang.model.api.SchemaContext;
 @Beta
 public abstract class ReusableNormalizedNodePruner extends AbstractNormalizedNodePruner {
     private static final class SimplePruner extends ReusableNormalizedNodePruner {
-        SimplePruner(final SchemaContext schemaContext) {
+        SimplePruner(final EffectiveModelContext schemaContext) {
             super(schemaContext);
         }
 
@@ -35,7 +35,7 @@ public abstract class ReusableNormalizedNodePruner extends AbstractNormalizedNod
         }
     }
 
-    ReusableNormalizedNodePruner(final SchemaContext schemaContext) {
+    ReusableNormalizedNodePruner(final EffectiveModelContext schemaContext) {
         super(schemaContext);
     }
 
@@ -50,13 +50,13 @@ public abstract class ReusableNormalizedNodePruner extends AbstractNormalizedNod
      * @return A new uninitialized pruner
      * @throws NullPointerException if {@code schemaContext} is null
      */
-    public static @NonNull ReusableNormalizedNodePruner forSchemaContext(final SchemaContext schemaContext) {
+    public static @NonNull ReusableNormalizedNodePruner forSchemaContext(final EffectiveModelContext schemaContext) {
         return new SimplePruner(schemaContext);
     }
 
     /**
      * Create a new pruner bound to a DataSchemaContextTree. This is a more efficient alternative of
-     * {@link #forSchemaContext(SchemaContext)}.
+     * {@link #forSchemaContext(EffectiveModelContext)}.
      *
      * @param tree DataSchemaContextTree to use
      * @return A new uninitialized pruner
index 422b9ce..41e494c 100644 (file)
@@ -39,13 +39,13 @@ import org.opendaylight.yangtools.yang.data.impl.schema.Builders;
 import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes;
 import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableLeafSetEntryNodeBuilder;
 import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableLeafSetNodeBuilder;
-import org.opendaylight.yangtools.yang.model.api.SchemaContext;
+import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
 
 @RunWith(MockitoJUnitRunner.StrictStubs.class)
 public class NormalizedNodePrunerTest {
-    private static final SchemaContext NO_TEST_SCHEMA = TestModel.createTestContextWithoutTestSchema();
-    private static final SchemaContext NO_AUG_SCHEMA = TestModel.createTestContextWithoutAugmentationSchema();
-    private static final SchemaContext FULL_SCHEMA = TestModel.createTestContext();
+    private static final EffectiveModelContext NO_TEST_SCHEMA = TestModel.createTestContextWithoutTestSchema();
+    private static final EffectiveModelContext NO_AUG_SCHEMA = TestModel.createTestContextWithoutAugmentationSchema();
+    private static final EffectiveModelContext FULL_SCHEMA = TestModel.createTestContext();
 
     private static AbstractNormalizedNodePruner prunerFullSchema(final YangInstanceIdentifier path) {
         final ReusableNormalizedNodePruner pruner = ReusableNormalizedNodePruner.forSchemaContext(FULL_SCHEMA);
index d991346..c613d6c 100644 (file)
@@ -43,7 +43,7 @@ import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableCo
 import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableLeafSetEntryNodeBuilder;
 import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableLeafSetNodeBuilder;
 import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableMapEntryNodeBuilder;
-import org.opendaylight.yangtools.yang.model.api.SchemaContext;
+import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
 import org.opendaylight.yangtools.yang.test.util.YangParserTestUtils;
 
 public final class TestModel {
@@ -170,16 +170,16 @@ public final class TestModel {
         return TestModel.class.getResourceAsStream(resourceName);
     }
 
-    public static SchemaContext createTestContext() {
+    public static EffectiveModelContext createTestContext() {
         return YangParserTestUtils.parseYangResources(TestModel.class, DATASTORE_TEST_YANG, DATASTORE_AUG_YANG,
             DATASTORE_TEST_NOTIFICATION_YANG);
     }
 
-    public static SchemaContext createTestContextWithoutTestSchema() {
+    public static EffectiveModelContext createTestContextWithoutTestSchema() {
         return YangParserTestUtils.parseYangResource(DATASTORE_TEST_NOTIFICATION_YANG);
     }
 
-    public static SchemaContext createTestContextWithoutAugmentationSchema() {
+    public static EffectiveModelContext createTestContextWithoutAugmentationSchema() {
         return YangParserTestUtils.parseYangResources(TestModel.class, DATASTORE_TEST_YANG,
             DATASTORE_TEST_NOTIFICATION_YANG);
     }
index c42e79f..32babe6 100644 (file)
@@ -12,7 +12,7 @@
   <parent>
     <groupId>org.opendaylight.odlparent</groupId>
     <artifactId>odlparent-lite</artifactId>
-    <version>7.0.6</version>
+    <version>8.0.0</version>
     <relativePath/>
   </parent>
 
index 696891e..b38618f 100644 (file)
   <artifactId>sal-distributed-datastore</artifactId>
   <packaging>bundle</packaging>
 
+  <properties>
+    <!-- FIXME: Remove this -->
+    <odlparent.modernizer.enforce>false</odlparent.modernizer.enforce>
+  </properties>
+
   <dependencies>
     <!-- Java -->
     <dependency>
     </dependency>
 
     <!-- Akka -->
-    <dependency>
-      <groupId>com.typesafe.akka</groupId>
-      <artifactId>akka-actor_2.13</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>com.typesafe.akka</groupId>
-      <artifactId>akka-cluster_2.13</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>com.typesafe.akka</groupId>
-      <artifactId>akka-osgi_2.13</artifactId>
-      <exclusions>
-        <exclusion>
-          <groupId>org.osgi</groupId>
-          <artifactId>org.osgi.compendium</artifactId>
-        </exclusion>
-      </exclusions>
-    </dependency>
-    <dependency>
-      <groupId>com.typesafe.akka</groupId>
-      <artifactId>akka-persistence_2.13</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>com.typesafe.akka</groupId>
-      <artifactId>akka-remote_2.13</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>com.typesafe.akka</groupId>
-      <artifactId>akka-slf4j_2.13</artifactId>
-    </dependency>
     <dependency>
       <groupId>org.scala-lang.modules</groupId>
       <artifactId>scala-java8-compat_2.13</artifactId>
@@ -66,7 +41,6 @@
     <dependency>
       <groupId>com.typesafe.akka</groupId>
       <artifactId>akka-testkit_2.13</artifactId>
-      <scope>test</scope>
     </dependency>
 
     <!-- Scala -->
index 8ce7119..f156c2f 100644 (file)
@@ -23,7 +23,7 @@ import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTree;
 import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeModification;
 import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeModificationCursor;
 import org.opendaylight.yangtools.yang.data.impl.schema.tree.SchemaValidationFailedException;
-import org.opendaylight.yangtools.yang.model.api.SchemaContext;
+import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -127,8 +127,8 @@ public abstract class PruningDataTreeModification extends ForwardingObject imple
     }
 
     @Override
-    public final SchemaContext getSchemaContext() {
-        return delegate.getSchemaContext();
+    public final EffectiveModelContext getEffectiveModelContext() {
+        return delegate.getEffectiveModelContext();
     }
 
     @Override
index aab9322..bbe676b 100644 (file)
@@ -23,8 +23,8 @@ import static org.opendaylight.mdsal.common.api.LogicalDatastoreType.OPERATIONAL
 import java.util.HashMap;
 import java.util.Map;
 import org.junit.Test;
-import org.opendaylight.binding.runtime.spi.BindingRuntimeHelpers;
 import org.opendaylight.mdsal.binding.dom.codec.impl.BindingCodecContext;
+import org.opendaylight.mdsal.binding.runtime.spi.BindingRuntimeHelpers;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.config.distributed.datastore.provider.rev140612.DataStorePropertiesContainer;
 
 /**
index 8ab10e4..000a6a0 100644 (file)
   <artifactId>sal-distributed-eos</artifactId>
   <packaging>bundle</packaging>
 
+  <properties>
+    <!-- FIXME: Remove this -->
+    <odlparent.modernizer.enforce>false</odlparent.modernizer.enforce>
+  </properties>
+
   <dependencies>
     <dependency>
       <groupId>org.opendaylight.mdsal</groupId>
@@ -35,7 +40,6 @@
     <dependency>
       <groupId>com.typesafe.akka</groupId>
       <artifactId>akka-testkit_2.13</artifactId>
-      <scope>test</scope>
     </dependency>
     <dependency>
       <groupId>org.opendaylight.controller</groupId>
index cd5cc1d..ed8e05f 100644 (file)
   <packaging>bundle</packaging>
 
   <dependencies>
-    <dependency>
-      <groupId>com.typesafe.akka</groupId>
-      <artifactId>akka-actor_2.13</artifactId>
-    </dependency>
-
-    <dependency>
-      <groupId>com.typesafe.akka</groupId>
-      <artifactId>akka-cluster_2.13</artifactId>
-    </dependency>
-
-    <dependency>
-      <groupId>com.typesafe.akka</groupId>
-      <artifactId>akka-persistence_2.13</artifactId>
-    </dependency>
-
-    <dependency>
-      <groupId>com.typesafe.akka</groupId>
-      <artifactId>akka-remote_2.13</artifactId>
-    </dependency>
-
-    <dependency>
-      <groupId>com.typesafe.akka</groupId>
-      <artifactId>akka-testkit_2.13</artifactId>
-      <scope>test</scope>
-    </dependency>
-
-    <dependency>
-      <groupId>com.typesafe.akka</groupId>
-      <artifactId>akka-slf4j_2.13</artifactId>
-    </dependency>
-
-    <dependency>
-      <groupId>com.typesafe.akka</groupId>
-      <artifactId>akka-osgi_2.13</artifactId>
-    </dependency>
-
     <dependency>
       <groupId>org.opendaylight.controller</groupId>
       <artifactId>sal-clustering-commons</artifactId>
@@ -65,9 +29,8 @@
 
     <!-- Test Dependencies -->
     <dependency>
-      <groupId>org.mockito</groupId>
-      <artifactId>mockito-core</artifactId>
-      <scope>test</scope>
+      <groupId>com.typesafe.akka</groupId>
+      <artifactId>akka-testkit_2.13</artifactId>
     </dependency>
 
     <dependency>
index 973cbbc..b940e19 100644 (file)
 
     <dependencies>
         <dependency>
-            <groupId>com.typesafe.akka</groupId>
-            <artifactId>akka-actor_2.13</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>com.typesafe.akka</groupId>
-            <artifactId>akka-cluster_2.13</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>com.typesafe.akka</groupId>
-            <artifactId>akka-remote_2.13</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>com.typesafe.akka</groupId>
-            <artifactId>akka-testkit_2.13</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>com.typesafe.akka</groupId>
-            <artifactId>akka-osgi_2.13</artifactId>
-            <exclusions>
-                <exclusion>
-                    <groupId>org.osgi</groupId>
-                    <artifactId>org.osgi.compendium</artifactId>
-                </exclusion>
-            </exclusions>
-        </dependency>
-        <dependency>
-            <groupId>com.typesafe.akka</groupId>
-            <artifactId>akka-slf4j_2.13</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>com.typesafe.akka</groupId>
-            <artifactId>akka-persistence_2.13</artifactId>
+            <groupId>org.opendaylight.controller</groupId>
+            <artifactId>repackaged-akka</artifactId>
         </dependency>
         <!-- SAL Dependencies -->
         <dependency>
             <artifactId>scala-library</artifactId>
         </dependency>
         <!-- Test Dependencies -->
+        <dependency>
+            <groupId>com.typesafe.akka</groupId>
+            <artifactId>akka-testkit_2.13</artifactId>
+        </dependency>
         <dependency>
             <groupId>org.slf4j</groupId>
             <artifactId>slf4j-simple</artifactId>
index ae977d6..7fd8598 100644 (file)
@@ -16,24 +16,23 @@ import java.util.concurrent.TimeUnit;
 import java.util.concurrent.TimeoutException;
 import org.eclipse.jdt.annotation.NonNull;
 import org.eclipse.jdt.annotation.Nullable;
-import org.opendaylight.yangtools.yang.model.api.SchemaPath;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import scala.concurrent.ExecutionContext;
 import scala.concurrent.Future;
 
-abstract class AbstractRemoteFuture<T, E extends Exception> extends AbstractFuture<T> {
+abstract class AbstractRemoteFuture<T, O, E extends Exception> extends AbstractFuture<O> {
     private static final Logger LOG = LoggerFactory.getLogger(AbstractRemoteFuture.class);
 
-    private final @NonNull SchemaPath type;
+    private final @NonNull T type;
 
-    AbstractRemoteFuture(final @NonNull SchemaPath type, final Future<Object> requestFuture) {
+    AbstractRemoteFuture(final @NonNull T type, final Future<Object> requestFuture) {
         this.type = requireNonNull(type);
         requestFuture.onComplete(new FutureUpdater(), ExecutionContext.Implicits$.MODULE$.global());
     }
 
     @Override
-    public final T get() throws InterruptedException, ExecutionException {
+    public final O get() throws InterruptedException, ExecutionException {
         try {
             return super.get();
         } catch (ExecutionException e) {
@@ -42,7 +41,7 @@ abstract class AbstractRemoteFuture<T, E extends Exception> extends AbstractFutu
     }
 
     @Override
-    public final T get(final long timeout, final TimeUnit unit)
+    public final O get(final long timeout, final TimeUnit unit)
             throws InterruptedException, ExecutionException, TimeoutException {
         try {
             return super.get(timeout, unit);
@@ -52,7 +51,7 @@ abstract class AbstractRemoteFuture<T, E extends Exception> extends AbstractFutu
     }
 
     @Override
-    protected final boolean set(final T value) {
+    protected final boolean set(final O value) {
         final boolean ret = super.set(value);
         if (ret) {
             LOG.debug("Future {} for action {} successfully completed", this, type);
@@ -65,7 +64,7 @@ abstract class AbstractRemoteFuture<T, E extends Exception> extends AbstractFutu
         setException(error);
     }
 
-    abstract @Nullable T processReply(Object reply);
+    abstract @Nullable O processReply(Object reply);
 
     abstract @NonNull Class<E> exceptionClass();
 
@@ -80,7 +79,7 @@ abstract class AbstractRemoteFuture<T, E extends Exception> extends AbstractFutu
         @Override
         public void onComplete(final Throwable error, final Object reply) {
             if (error == null) {
-                final T result = processReply(reply);
+                final O result = processReply(reply);
                 if (result != null) {
                     LOG.debug("Received response for operation {}: result is {}", type, result);
                     set(result);
index 6a8030f..838252b 100644 (file)
@@ -18,7 +18,7 @@ import scala.concurrent.Future;
 /**
  * An abstract base class for remote RPC/action implementations.
  */
-abstract class AbstractRemoteImplementation<T extends AbstractExecute<?>> {
+abstract class AbstractRemoteImplementation<T extends AbstractExecute<?, ?>> {
     // 0 for local, 1 for binding, 2 for remote
     static final long COST = 2;
 
index 5ccea6a..4ac3867 100644 (file)
@@ -29,10 +29,12 @@ import org.opendaylight.mdsal.dom.api.DOMActionService;
 import org.opendaylight.mdsal.dom.api.DOMDataTreeIdentifier;
 import org.opendaylight.mdsal.dom.api.DOMRpcResult;
 import org.opendaylight.mdsal.dom.api.DOMRpcService;
+import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.common.RpcError;
 import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode;
 import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
 import org.opendaylight.yangtools.yang.model.api.SchemaPath;
+import org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier.Absolute;
 
 /**
  * Actor receiving invocation requests from remote nodes, routing them to
@@ -91,15 +93,15 @@ final class OpsInvoker extends AbstractUntypedActor {
             return;
         }
 
-        Futures.addCallback(future, new AbstractCallback<DOMRpcResult>(getSender(), msg.getType()) {
+        Futures.addCallback(future, new AbstractCallback<QName, DOMRpcResult>(getSender(), msg.getType()) {
             @Override
-            Object nullResponse(final SchemaPath type) {
+            Object nullResponse(final QName type) {
                 LOG.warn("Execution of {} resulted in null result", type);
                 return new RpcResponse(null);
             }
 
             @Override
-            Object response(final SchemaPath type, final DOMRpcResult result) {
+            Object response(final QName type, final DOMRpcResult result) {
                 final Collection<? extends RpcError> errors = result.getErrors();
                 return errors.isEmpty() ? new RpcResponse(result.getResult())
                         // This is legacy (wrong) behavior, which ignores the fact that errors may be just warnings,
@@ -125,14 +127,14 @@ final class OpsInvoker extends AbstractUntypedActor {
             return;
         }
 
-        Futures.addCallback(future, new AbstractCallback<DOMActionResult>(getSender(), msg.getType()) {
+        Futures.addCallback(future, new AbstractCallback<Absolute, DOMActionResult>(getSender(), msg.getType()) {
             @Override
-            Object nullResponse(final SchemaPath type) {
+            Object nullResponse(final Absolute type) {
                 throw new IllegalStateException("Null invocation result of action " + type);
             }
 
             @Override
-            Object response(final SchemaPath type, final DOMActionResult result) {
+            Object response(final Absolute type, final DOMActionResult result) {
                 final Collection<? extends RpcError> errors = result.getErrors();
                 return errors.isEmpty() ? new ActionResponse(result.getOutput(), result.getErrors())
                     // This is legacy (wrong) behavior, which ignores the fact that errors may be just warnings,
@@ -143,17 +145,17 @@ final class OpsInvoker extends AbstractUntypedActor {
         }, MoreExecutors.directExecutor());
     }
 
-    private abstract class AbstractCallback<T> implements FutureCallback<T> {
+    private abstract class AbstractCallback<T, R> implements FutureCallback<R> {
         private final ActorRef replyTo;
-        private final SchemaPath type;
+        private final T type;
 
-        AbstractCallback(final ActorRef replyTo, final SchemaPath type) {
+        AbstractCallback(final ActorRef replyTo, final T type) {
             this.replyTo = requireNonNull(replyTo);
             this.type = requireNonNull(type);
         }
 
         @Override
-        public final void onSuccess(final T result) {
+        public final void onSuccess(final R result) {
             final Object response;
             if (result == null) {
                 // This shouldn't happen but the FutureCallback annotates the result param with Nullable so handle null
@@ -175,8 +177,8 @@ final class OpsInvoker extends AbstractUntypedActor {
             replyTo.tell(new Failure(failure), self());
         }
 
-        abstract @NonNull Object nullResponse(@NonNull SchemaPath type);
+        abstract @NonNull Object nullResponse(@NonNull T type);
 
-        abstract @NonNull Object response(@NonNull SchemaPath type, @NonNull T result);
+        abstract @NonNull Object response(@NonNull T type, @NonNull R result);
     }
 }
index c3eeeed..2b78806 100644 (file)
@@ -14,7 +14,7 @@ import org.opendaylight.mdsal.dom.api.DOMActionImplementation;
 import org.opendaylight.mdsal.dom.api.DOMActionResult;
 import org.opendaylight.mdsal.dom.api.DOMDataTreeIdentifier;
 import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode;
-import org.opendaylight.yangtools.yang.model.api.SchemaPath;
+import org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier.Absolute;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -33,7 +33,7 @@ final class RemoteActionImplementation extends AbstractRemoteImplementation<Exec
      * Routes action request to a remote invoker, which will execute the action and return with result.
      */
     @Override
-    public ListenableFuture<DOMActionResult> invokeAction(final SchemaPath type, final DOMDataTreeIdentifier path,
+    public ListenableFuture<DOMActionResult> invokeAction(final Absolute type, final DOMDataTreeIdentifier path,
                                                           final ContainerNode input) {
         LOG.debug("invoking action {} with path {}", type, path);
         return new RemoteDOMActionFuture(type, ask(ExecuteAction.from(type, path, input)));
index 8dbbff5..6b4ab55 100644 (file)
@@ -13,11 +13,11 @@ import org.opendaylight.mdsal.dom.api.DOMActionException;
 import org.opendaylight.mdsal.dom.api.DOMActionResult;
 import org.opendaylight.mdsal.dom.spi.SimpleDOMActionResult;
 import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode;
-import org.opendaylight.yangtools.yang.model.api.SchemaPath;
+import org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier.Absolute;
 import scala.concurrent.Future;
 
-final class RemoteDOMActionFuture extends AbstractRemoteFuture<DOMActionResult, DOMActionException> {
-    RemoteDOMActionFuture(final @NonNull SchemaPath type, final @NonNull Future<Object> requestFuture) {
+final class RemoteDOMActionFuture extends AbstractRemoteFuture<Absolute, DOMActionResult, DOMActionException> {
+    RemoteDOMActionFuture(final @NonNull Absolute type, final @NonNull Future<Object> requestFuture) {
         super(type, requestFuture);
     }
 
index b858f80..ef1e635 100644 (file)
@@ -12,11 +12,11 @@ import org.opendaylight.controller.remote.rpc.messages.RpcResponse;
 import org.opendaylight.mdsal.dom.api.DOMRpcException;
 import org.opendaylight.mdsal.dom.api.DOMRpcResult;
 import org.opendaylight.mdsal.dom.spi.DefaultDOMRpcResult;
-import org.opendaylight.yangtools.yang.model.api.SchemaPath;
+import org.opendaylight.yangtools.yang.common.QName;
 import scala.concurrent.Future;
 
-final class RemoteDOMRpcFuture extends AbstractRemoteFuture<DOMRpcResult, DOMRpcException> {
-    RemoteDOMRpcFuture(final @NonNull SchemaPath type, final @NonNull Future<Object> requestFuture) {
+final class RemoteDOMRpcFuture extends AbstractRemoteFuture<QName, DOMRpcResult, DOMRpcException> {
+    RemoteDOMRpcFuture(final @NonNull QName type, final @NonNull Future<Object> requestFuture) {
         super(type, requestFuture);
     }
 
index a23bcb3..e9e04b2 100644 (file)
@@ -14,27 +14,26 @@ import com.google.common.base.MoreObjects.ToStringHelper;
 import java.io.Serializable;
 import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
-import org.opendaylight.yangtools.yang.model.api.SchemaPath;
 
 /**
  * An abstract base class for invocation requests. Specialized via {@link ExecuteAction} and {@link ExecuteRpc}.
  */
-public abstract class AbstractExecute<T extends NormalizedNode<?, ?>> implements Serializable {
+public abstract class AbstractExecute<T, I extends NormalizedNode<?, ?>> implements Serializable {
     private static final long serialVersionUID = 1L;
 
-    private final transient @NonNull SchemaPath type;
-    private final transient T input;
+    private final transient @NonNull T type;
+    private final transient I input;
 
-    AbstractExecute(final @NonNull SchemaPath type, final T input) {
+    AbstractExecute(final @NonNull T type, final I input) {
         this.type = requireNonNull(type);
         this.input = input;
     }
 
-    public final @NonNull SchemaPath getType() {
+    public final @NonNull T getType() {
         return type;
     }
 
-    public final T getInput() {
+    public final I getInput() {
         return input;
     }
 
index 4fb9c61..cb03c22 100644 (file)
@@ -13,6 +13,7 @@ import static java.util.Objects.requireNonNull;
 import com.google.common.base.MoreObjects.ToStringHelper;
 import java.io.Externalizable;
 import java.io.IOException;
+import java.io.InvalidObjectException;
 import java.io.ObjectInput;
 import java.io.ObjectOutput;
 import org.eclipse.jdt.annotation.NonNull;
@@ -23,20 +24,21 @@ import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode;
 import org.opendaylight.yangtools.yang.data.codec.binfmt.NormalizedNodeDataInput;
 import org.opendaylight.yangtools.yang.data.codec.binfmt.NormalizedNodeDataOutput;
 import org.opendaylight.yangtools.yang.data.codec.binfmt.NormalizedNodeStreamVersion;
-import org.opendaylight.yangtools.yang.model.api.SchemaPath;
+import org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier;
+import org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier.Absolute;
 
-public final class ExecuteAction extends AbstractExecute<@NonNull ContainerNode> {
+public final class ExecuteAction extends AbstractExecute<Absolute, @NonNull ContainerNode> {
     private static final long serialVersionUID = 1128904894827335676L;
 
     private final @NonNull DOMDataTreeIdentifier path;
 
-    private ExecuteAction(final @NonNull SchemaPath type, final @NonNull DOMDataTreeIdentifier path,
+    private ExecuteAction(final @NonNull Absolute type, final @NonNull DOMDataTreeIdentifier path,
             final @NonNull ContainerNode input) {
         super(type, requireNonNull(input));
         this.path = requireNonNull(path);
     }
 
-    public static @NonNull ExecuteAction from(final @NonNull SchemaPath type, @NonNull final DOMDataTreeIdentifier path,
+    public static @NonNull ExecuteAction from(final @NonNull Absolute type, @NonNull final DOMDataTreeIdentifier path,
             final @NonNull ContainerNode input) {
         return new ExecuteAction(type, path, input);
     }
@@ -74,7 +76,7 @@ public final class ExecuteAction extends AbstractExecute<@NonNull ContainerNode>
         @Override
         public void writeExternal(final ObjectOutput out) throws IOException {
             try (NormalizedNodeDataOutput stream = NormalizedNodeStreamVersion.current().newDataOutput(out)) {
-                stream.writeSchemaPath(executeAction.getType());
+                stream.writeSchemaNodeIdentifier(executeAction.getType());
                 executeAction.getPath().getDatastoreType().writeTo(out);
                 stream.writeYangInstanceIdentifier(executeAction.getPath().getRootIdentifier());
                 stream.writeOptionalNormalizedNode(executeAction.getInput());
@@ -84,12 +86,16 @@ public final class ExecuteAction extends AbstractExecute<@NonNull ContainerNode>
         @Override
         public void readExternal(final ObjectInput in) throws IOException {
             final NormalizedNodeDataInput stream = NormalizedNodeDataInput.newDataInput(in);
-            final SchemaPath name = stream.readSchemaPath();
+            final SchemaNodeIdentifier sni = stream.readSchemaNodeIdentifier();
+            if (!(sni instanceof Absolute)) {
+                throw new InvalidObjectException("Non-absolute type " + sni);
+            }
+
             final LogicalDatastoreType type = LogicalDatastoreType.readFrom(in);
             final YangInstanceIdentifier path = stream.readYangInstanceIdentifier();
             final ContainerNode input = (ContainerNode) stream.readOptionalNormalizedNode().orElse(null);
 
-            executeAction = new ExecuteAction(name, new DOMDataTreeIdentifier(type, path), input);
+            executeAction = new ExecuteAction((Absolute) sni, new DOMDataTreeIdentifier(type, path), input);
         }
 
         private Object readResolve() {
index 135111f..881a587 100644 (file)
@@ -16,16 +16,16 @@ import java.io.ObjectOutput;
 import org.eclipse.jdt.annotation.NonNull;
 import org.eclipse.jdt.annotation.Nullable;
 import org.opendaylight.mdsal.dom.api.DOMRpcIdentifier;
+import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
 import org.opendaylight.yangtools.yang.data.codec.binfmt.NormalizedNodeDataInput;
 import org.opendaylight.yangtools.yang.data.codec.binfmt.NormalizedNodeDataOutput;
 import org.opendaylight.yangtools.yang.data.codec.binfmt.NormalizedNodeStreamVersion;
-import org.opendaylight.yangtools.yang.model.api.SchemaPath;
 
-public final class ExecuteRpc extends AbstractExecute<@Nullable NormalizedNode<?, ?>> {
+public final class ExecuteRpc extends AbstractExecute<QName, @Nullable NormalizedNode<?, ?>> {
     private static final long serialVersionUID = 1128904894827335676L;
 
-    private ExecuteRpc(final @NonNull SchemaPath type, final @Nullable NormalizedNode<?, ?> input) {
+    private ExecuteRpc(final @NonNull QName type, final @Nullable NormalizedNode<?, ?> input) {
         super(type, input);
     }
 
@@ -58,7 +58,7 @@ public final class ExecuteRpc extends AbstractExecute<@Nullable NormalizedNode<?
         @Override
         public void writeExternal(final ObjectOutput out) throws IOException {
             try (NormalizedNodeDataOutput stream = NormalizedNodeStreamVersion.current().newDataOutput(out)) {
-                stream.writeQName(executeRpc.getType().getLastComponent());
+                stream.writeQName(executeRpc.getType());
                 stream.writeOptionalNormalizedNode(executeRpc.getInput());
             }
         }
@@ -66,7 +66,7 @@ public final class ExecuteRpc extends AbstractExecute<@Nullable NormalizedNode<?
         @Override
         public void readExternal(final ObjectInput in) throws IOException {
             final NormalizedNodeDataInput stream = NormalizedNodeDataInput.newDataInput(in);
-            final SchemaPath type = SchemaPath.ROOT.createChild(stream.readQName());
+            final QName type = stream.readQName();
             final NormalizedNode<?, ?> input = stream.readOptionalNormalizedNode().orElse(null);
             executeRpc = new ExecuteRpc(type, input);
         }
index e81110f..dfb05c6 100644 (file)
@@ -13,6 +13,7 @@ import akka.serialization.Serialization;
 import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 import java.io.Externalizable;
 import java.io.IOException;
+import java.io.InvalidObjectException;
 import java.io.ObjectInput;
 import java.io.ObjectOutput;
 import java.util.ArrayList;
@@ -22,9 +23,12 @@ import java.util.Set;
 import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
 import org.opendaylight.mdsal.dom.api.DOMActionInstance;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
+import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
 import org.opendaylight.yangtools.yang.data.codec.binfmt.NormalizedNodeDataInput;
 import org.opendaylight.yangtools.yang.data.codec.binfmt.NormalizedNodeDataOutput;
 import org.opendaylight.yangtools.yang.data.codec.binfmt.NormalizedNodeStreamVersion;
+import org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier;
+import org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier.Absolute;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -57,10 +61,10 @@ public final class ActionRoutingTable extends AbstractRoutingTable<ActionRouting
             final NormalizedNodeDataOutput nnout = NormalizedNodeStreamVersion.current().newDataOutput(out);
             nnout.writeInt(actions.size());
             for (DOMActionInstance id : actions) {
-                nnout.writeSchemaPath(id.getType());
-                YangInstanceIdentifier actionPath = YangInstanceIdentifier.create(
-                        new YangInstanceIdentifier.NodeIdentifier(id.getType().getLastComponent()));
-                nnout.writeYangInstanceIdentifier(actionPath);
+                final Absolute type = id.getType();
+                nnout.writeSchemaNodeIdentifier(type);
+                nnout.writeYangInstanceIdentifier(YangInstanceIdentifier.create(new NodeIdentifier(
+                    type.lastNodeIdentifier())));
             }
         }
 
@@ -73,7 +77,12 @@ public final class ActionRoutingTable extends AbstractRoutingTable<ActionRouting
             final int size = nnin.readInt();
             actions = new ArrayList<>(size);
             for (int i = 0; i < size; ++i) {
-                actions.add(DOMActionInstance.of(nnin.readSchemaPath(), LogicalDatastoreType.OPERATIONAL,
+                final SchemaNodeIdentifier sni = nnin.readSchemaNodeIdentifier();
+                if (!(sni instanceof Absolute)) {
+                    throw new InvalidObjectException("Non-absolute type " + sni);
+                }
+
+                actions.add(DOMActionInstance.of((Absolute) sni, LogicalDatastoreType.OPERATIONAL,
                         nnin.readYangInstanceIdentifier()));
             }
         }
index 62312c1..f0795a3 100644 (file)
@@ -23,6 +23,7 @@ import org.opendaylight.mdsal.dom.api.DOMRpcIdentifier;
 import org.opendaylight.yangtools.yang.data.codec.binfmt.NormalizedNodeDataInput;
 import org.opendaylight.yangtools.yang.data.codec.binfmt.NormalizedNodeDataOutput;
 import org.opendaylight.yangtools.yang.data.codec.binfmt.NormalizedNodeStreamVersion;
+import org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier.Absolute;
 
 public final class RoutingTable extends AbstractRoutingTable<RoutingTable, DOMRpcIdentifier> {
     private static final class Proxy implements Externalizable {
@@ -51,7 +52,8 @@ public final class RoutingTable extends AbstractRoutingTable<RoutingTable, DOMRp
             try (NormalizedNodeDataOutput nnout = NormalizedNodeStreamVersion.current().newDataOutput(out)) {
                 nnout.writeInt(rpcs.size());
                 for (DOMRpcIdentifier id : rpcs) {
-                    nnout.writeSchemaPath(id.getType());
+                    // TODO: we should be able to get by with just a QName
+                    nnout.writeSchemaNodeIdentifier(Absolute.of(id.getType()));
                     nnout.writeYangInstanceIdentifier(id.getContextReference());
                 }
             }
@@ -65,7 +67,9 @@ public final class RoutingTable extends AbstractRoutingTable<RoutingTable, DOMRp
             final int size = nnin.readInt();
             rpcs = new ArrayList<>(size);
             for (int i = 0; i < size; ++i) {
-                rpcs.add(DOMRpcIdentifier.create(nnin.readSchemaPath(), nnin.readYangInstanceIdentifier()));
+                // TODO: we should be able to get by with just a QName
+                rpcs.add(DOMRpcIdentifier.create(nnin.readSchemaNodeIdentifier().firstNodeIdentifier(),
+                    nnin.readYangInstanceIdentifier()));
             }
         }
 
index cc117bd..bacde76 100644 (file)
@@ -33,12 +33,10 @@ public class RemoteActionRegistryMXBeanImpl extends AbstractRegistryMXBean<Actio
         ActionRoutingTable table = localData();
         Set<String> routedAction = new HashSet<>(table.getItems().size());
         for (DOMActionInstance route : table.getItems()) {
-            if (route.getType().getLastComponent() != null) {
-                final YangInstanceIdentifier actionPath = YangInstanceIdentifier.create(
-                        new NodeIdentifier(route.getType().getLastComponent()));
-                if (!actionPath.isEmpty()) {
-                    routedAction.add(ROUTE_CONSTANT + actionPath + NAME_CONSTANT + route.getType());
-                }
+            final YangInstanceIdentifier actionPath = YangInstanceIdentifier.create(new NodeIdentifier(
+                route.getType().lastNodeIdentifier()));
+            if (!actionPath.isEmpty()) {
+                routedAction.add(ROUTE_CONSTANT + actionPath + NAME_CONSTANT + route.getType());
             }
         }
 
@@ -86,14 +84,12 @@ public class RemoteActionRegistryMXBeanImpl extends AbstractRegistryMXBean<Actio
         Collection<DOMActionInstance> routes = table.getItems();
         Map<String, String> actionMap = new HashMap<>(routes.size());
         for (DOMActionInstance route : routes) {
-            if (route.getType().getLastComponent() != null) {
-                final YangInstanceIdentifier actionPath = YangInstanceIdentifier.create(
-                        new NodeIdentifier(route.getType().getLastComponent()));
-                if (!actionPath.isEmpty()) {
-                    String routeString = actionPath.toString();
-                    if (routeString.contains(routeName)) {
-                        actionMap.put(ROUTE_CONSTANT + routeString + NAME_CONSTANT + route.getType(), address);
-                    }
+            final YangInstanceIdentifier actionPath = YangInstanceIdentifier.create(new NodeIdentifier(
+                route.getType().lastNodeIdentifier()));
+            if (!actionPath.isEmpty()) {
+                String routeString = actionPath.toString();
+                if (routeString.contains(routeName)) {
+                    actionMap.put(ROUTE_CONSTANT + routeString + NAME_CONSTANT + route.getType(), address);
                 }
             }
         }
@@ -108,14 +104,12 @@ public class RemoteActionRegistryMXBeanImpl extends AbstractRegistryMXBean<Actio
         Collection<DOMActionInstance> routes = table.getItems();
         Map<String, String> actionMap = new HashMap<>(routes.size());
         for (DOMActionInstance route : routes) {
-            if (route.getType().getLastComponent() != null) {
-                final YangInstanceIdentifier actionPath = YangInstanceIdentifier.create(
-                        new NodeIdentifier(route.getType().getLastComponent()));
-                if (!actionPath.isEmpty()) {
-                    String type = route.getType().toString();
-                    if (type.contains(name)) {
-                        actionMap.put(ROUTE_CONSTANT + actionPath + NAME_CONSTANT + type, address);
-                    }
+            final YangInstanceIdentifier actionPath = YangInstanceIdentifier.create(new NodeIdentifier(
+                route.getType().lastNodeIdentifier()));
+            if (!actionPath.isEmpty()) {
+                String type = route.getType().toString();
+                if (type.contains(name)) {
+                    actionMap.put(ROUTE_CONSTANT + actionPath + NAME_CONSTANT + type, address);
                 }
             }
         }
index 4d96770..7a7d32c 100644 (file)
@@ -39,7 +39,7 @@ import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
 import org.opendaylight.yangtools.yang.data.impl.schema.Builders;
 import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes;
 import org.opendaylight.yangtools.yang.model.api.SchemaContext;
-import org.opendaylight.yangtools.yang.model.api.SchemaPath;
+import org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier.Absolute;
 import org.opendaylight.yangtools.yang.test.util.YangParserTestUtils;
 
 /**
@@ -57,10 +57,10 @@ public class AbstractOpsTest {
     static final QName TEST_RPC_OUTPUT = QName.create(TEST_NS, TEST_REV, "output");
 
 
-    static final SchemaPath TEST_RPC_TYPE = SchemaPath.create(true, TEST_RPC);
+    static final Absolute TEST_RPC_TYPE = Absolute.of(TEST_RPC);
     static final YangInstanceIdentifier TEST_PATH = YangInstanceIdentifier.create(
             new YangInstanceIdentifier.NodeIdentifier(TEST_RPC));
-    public static final DOMRpcIdentifier TEST_RPC_ID = DOMRpcIdentifier.create(TEST_RPC_TYPE, TEST_PATH);
+    public static final DOMRpcIdentifier TEST_RPC_ID = DOMRpcIdentifier.create(TEST_RPC, TEST_PATH);
     public static final DOMDataTreeIdentifier TEST_DATA_TREE_ID = new DOMDataTreeIdentifier(
             LogicalDatastoreType.OPERATIONAL, TEST_PATH);
 
index d99c5bb..a4e0059 100644 (file)
@@ -33,7 +33,7 @@ public class OpsBrokerTest extends AbstractOpsTest {
         final ContainerNode invokeRpcResult = makeRPCOutput("bar");
         final DOMRpcResult rpcResult = new DefaultDOMRpcResult(invokeRpcResult);
         doReturn(FluentFutures.immediateFluentFuture(rpcResult)).when(domRpcService1)
-            .invokeRpc(eq(TEST_RPC_TYPE), any());
+            .invokeRpc(eq(TEST_RPC), any());
         final ExecuteRpc executeRpc = ExecuteRpc.from(TEST_RPC_ID, null);
 
         rpcInvoker1.tell(executeRpc, rpcRegistry1Probe.getRef());
@@ -45,7 +45,7 @@ public class OpsBrokerTest extends AbstractOpsTest {
 
     @Test
     public void testExecuteRpcFailureWithException() {
-        when(domRpcService1.invokeRpc(eq(TEST_RPC_TYPE), any())).thenReturn(FluentFutures.immediateFailedFluentFuture(
+        when(domRpcService1.invokeRpc(eq(TEST_RPC), any())).thenReturn(FluentFutures.immediateFailedFluentFuture(
             new DOMRpcImplementationNotAvailableException("NOT FOUND")));
 
         final ExecuteRpc executeMsg = ExecuteRpc.from(TEST_RPC_ID, null);
index d5cfcc0..5b35555 100644 (file)
@@ -22,15 +22,15 @@ import org.opendaylight.mdsal.dom.api.DOMActionInstance;
 import org.opendaylight.mdsal.dom.api.DOMRpcIdentifier;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
-import org.opendaylight.yangtools.yang.model.api.SchemaPath;
+import org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier.Absolute;
 
 public class OpsListenerTest {
 
     private static final QName TEST_QNAME = QName.create("test", "2015-06-12", "test");
-    private static final SchemaPath RPC_TYPE = SchemaPath.create(true, TEST_QNAME);
-    private static final YangInstanceIdentifier TEST_PATH = YangInstanceIdentifier
-            .create(new YangInstanceIdentifier.NodeIdentifier(TEST_QNAME));
-    private static final DOMRpcIdentifier RPC_ID = DOMRpcIdentifier.create(RPC_TYPE, TEST_PATH);
+    private static final Absolute RPC_TYPE = Absolute.of(TEST_QNAME);
+    private static final YangInstanceIdentifier TEST_PATH =
+            YangInstanceIdentifier.create(new YangInstanceIdentifier.NodeIdentifier(TEST_QNAME));
+    private static final DOMRpcIdentifier RPC_ID = DOMRpcIdentifier.create(TEST_QNAME, TEST_PATH);
     private static final DOMActionInstance ACTION_INSTANCE = DOMActionInstance.of(RPC_TYPE,
             LogicalDatastoreType.OPERATIONAL, TEST_PATH);
 
index 1bbb22e..4569ac6 100644 (file)
@@ -43,7 +43,7 @@ import org.opendaylight.mdsal.dom.api.DOMRpcProviderService;
 import org.opendaylight.yangtools.concepts.ObjectRegistration;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
-import org.opendaylight.yangtools.yang.model.api.SchemaPath;
+import org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier.Absolute;
 
 public class OpsRegistrarTest {
     @Mock
@@ -79,18 +79,16 @@ public class OpsRegistrarTest {
         testActorRef = new TestActorRef<>(system, props, testKit.getRef(), "actorRef");
         endpointAddress = new Address("http", "local");
 
-        final DOMRpcIdentifier firstEndpointId = DOMRpcIdentifier.create(
-                SchemaPath.create(true, QName.create("first:identifier", "foo")));
-        final DOMRpcIdentifier secondEndpointId = DOMRpcIdentifier.create(
-                SchemaPath.create(true, QName.create("second:identifier", "bar")));
+        final DOMRpcIdentifier firstEndpointId = DOMRpcIdentifier.create(QName.create("first:identifier", "foo"));
+        final DOMRpcIdentifier secondEndpointId = DOMRpcIdentifier.create(QName.create("second:identifier", "bar"));
         final QName firstActionQName = QName.create("first:actionIdentifier", "fooAction");
 
-        final DOMActionInstance firstActionInstance = DOMActionInstance.of(
-                SchemaPath.create(true, firstActionQName), LogicalDatastoreType.OPERATIONAL,
+        final DOMActionInstance firstActionInstance = DOMActionInstance.of(Absolute.of(firstActionQName),
+                LogicalDatastoreType.OPERATIONAL,
                 YangInstanceIdentifier.create(new YangInstanceIdentifier.NodeIdentifier(firstActionQName)));
 
-        final DOMActionInstance secondActionInstance = DOMActionInstance.of(
-                SchemaPath.create(true, firstActionQName), LogicalDatastoreType.OPERATIONAL,
+        final DOMActionInstance secondActionInstance = DOMActionInstance.of(Absolute.of(firstActionQName),
+                LogicalDatastoreType.OPERATIONAL,
                 YangInstanceIdentifier.create(new YangInstanceIdentifier.NodeIdentifier(firstActionQName)));
 
         final TestKit senderKit = new TestKit(system);
index 47ce52b..b2a70be 100644 (file)
@@ -31,9 +31,10 @@ import org.opendaylight.mdsal.dom.api.DOMRpcResult;
 import org.opendaylight.mdsal.dom.spi.DefaultDOMRpcResult;
 import org.opendaylight.mdsal.dom.spi.SimpleDOMActionResult;
 import org.opendaylight.yangtools.util.concurrent.FluentFutures;
+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.opendaylight.yangtools.yang.model.api.SchemaPath;
+import org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier.Absolute;
 
 /**
  * Unit tests for RemoteRpcImplementation.
@@ -56,7 +57,7 @@ public class RemoteOpsImplementationTest extends AbstractOpsTest {
                 ArgumentCaptor.forClass(NormalizedNode.class);
 
         doReturn(FluentFutures.immediateFluentFuture(rpcResult)).when(domRpcService2)
-            .invokeRpc(eq(TEST_RPC_TYPE), inputCaptor.capture());
+            .invokeRpc(eq(TEST_RPC), inputCaptor.capture());
 
         final ListenableFuture<DOMRpcResult> frontEndFuture = remoteRpcImpl1.invokeRpc(TEST_RPC_ID, invokeRpcInput);
         assertTrue(frontEndFuture instanceof RemoteDOMRpcFuture);
@@ -99,7 +100,7 @@ public class RemoteOpsImplementationTest extends AbstractOpsTest {
                 (ArgumentCaptor) ArgumentCaptor.forClass(NormalizedNode.class);
 
         doReturn(FluentFutures.immediateFluentFuture(rpcResult)).when(domRpcService2)
-            .invokeRpc(eq(TEST_RPC_TYPE), inputCaptor.capture());
+            .invokeRpc(eq(TEST_RPC), inputCaptor.capture());
 
         ListenableFuture<DOMRpcResult> frontEndFuture = remoteRpcImpl1.invokeRpc(TEST_RPC_ID, null);
         assertTrue(frontEndFuture instanceof RemoteDOMRpcFuture);
@@ -144,7 +145,7 @@ public class RemoteOpsImplementationTest extends AbstractOpsTest {
                 (ArgumentCaptor) ArgumentCaptor.forClass(NormalizedNode.class);
 
         doReturn(FluentFutures.immediateFluentFuture(rpcResult)).when(domRpcService2)
-            .invokeRpc(eq(TEST_RPC_TYPE), inputCaptor.capture());
+            .invokeRpc(eq(TEST_RPC), inputCaptor.capture());
 
         final ListenableFuture<DOMRpcResult> frontEndFuture = remoteRpcImpl1.invokeRpc(TEST_RPC_ID, invokeRpcInput);
         assertTrue(frontEndFuture instanceof RemoteDOMRpcFuture);
@@ -164,7 +165,7 @@ public class RemoteOpsImplementationTest extends AbstractOpsTest {
         final ArgumentCaptor<NormalizedNode<?, ?>> inputCaptor =
                 (ArgumentCaptor) ArgumentCaptor.forClass(NormalizedNode.class);
 
-        when(domRpcService2.invokeRpc(eq(TEST_RPC_TYPE), inputCaptor.capture())).thenReturn(
+        when(domRpcService2.invokeRpc(eq(TEST_RPC), inputCaptor.capture())).thenReturn(
                 FluentFutures.immediateFailedFluentFuture(new RemoteDOMRpcException("Test Exception", null)));
 
         final ListenableFuture<DOMRpcResult> frontEndFuture = remoteRpcImpl1.invokeRpc(TEST_RPC_ID, invokeRpcInput);
@@ -226,7 +227,7 @@ public class RemoteOpsImplementationTest extends AbstractOpsTest {
     public void testInvokeRpcWithLookupException() throws Throwable {
         final NormalizedNode<?, ?> invokeRpcInput = makeRPCInput("foo");
 
-        doThrow(new RuntimeException("test")).when(domRpcService2).invokeRpc(any(SchemaPath.class),
+        doThrow(new RuntimeException("test")).when(domRpcService2).invokeRpc(any(QName.class),
             any(NormalizedNode.class));
 
         final ListenableFuture<DOMRpcResult> frontEndFuture = remoteRpcImpl1.invokeRpc(TEST_RPC_ID, invokeRpcInput);
@@ -248,7 +249,7 @@ public class RemoteOpsImplementationTest extends AbstractOpsTest {
     public void testInvokeActionWithLookupException() throws Throwable {
         final ContainerNode invokeRpcInput = makeRPCInput("foo");
 
-        doThrow(new RuntimeException("test")).when(domActionService2).invokeAction(any(SchemaPath.class),
+        doThrow(new RuntimeException("test")).when(domActionService2).invokeAction(any(Absolute.class),
                 any(DOMDataTreeIdentifier.class), any(ContainerNode.class));
 
         final ListenableFuture<DOMActionResult> frontEndFuture = remoteActionImpl1.invokeAction(TEST_RPC_TYPE,
index 82b2c79..867d9a8 100644 (file)
@@ -53,7 +53,7 @@ import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
 import org.opendaylight.mdsal.dom.api.DOMActionInstance;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
-import org.opendaylight.yangtools.yang.model.api.SchemaPath;
+import org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier.Absolute;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -377,9 +377,8 @@ public class ActionRegistryTest {
         final Collection<DOMActionInstance> added = new ArrayList<>(nRoutes);
         for (int i = 0; i < nRoutes; i++) {
             QName type = QName.create(URI.create("/mockaction"), "mockaction" + routeIdCounter++);
-            final DOMActionInstance routeId = DOMActionInstance.of(SchemaPath.create(true,
-                    type), LogicalDatastoreType.OPERATIONAL, YangInstanceIdentifier.create(new
-                    YangInstanceIdentifier.NodeIdentifier(type)));
+            final DOMActionInstance routeId = DOMActionInstance.of(Absolute.of(type), LogicalDatastoreType.OPERATIONAL,
+                    YangInstanceIdentifier.create(new YangInstanceIdentifier.NodeIdentifier(type)));
             added.add(routeId);
 
             //Uninterruptibles.sleepUninterruptibly(50, TimeUnit.MILLISECONDS);
@@ -415,9 +414,8 @@ public class ActionRegistryTest {
     private List<DOMActionInstance> createRouteIds() {
         QName type = QName.create(URI.create("/mockaction"), "mockaction" + routeIdCounter++);
         List<DOMActionInstance> routeIds = new ArrayList<>(1);
-        routeIds.add(DOMActionInstance.of(SchemaPath.create(true, type),
-                LogicalDatastoreType.OPERATIONAL, YangInstanceIdentifier.create(
-                        new YangInstanceIdentifier.NodeIdentifier(type))));
+        routeIds.add(DOMActionInstance.of(Absolute.of(type), LogicalDatastoreType.OPERATIONAL,
+            YangInstanceIdentifier.create(new YangInstanceIdentifier.NodeIdentifier(type))));
         return routeIds;
     }
 }
index 4ae6e1e..d552ad5 100644 (file)
@@ -52,7 +52,6 @@ import org.opendaylight.controller.remote.rpc.registry.RpcRegistry.RemoteRpcEndp
 import org.opendaylight.controller.remote.rpc.registry.gossip.Bucket;
 import org.opendaylight.mdsal.dom.api.DOMRpcIdentifier;
 import org.opendaylight.yangtools.yang.common.QName;
-import org.opendaylight.yangtools.yang.model.api.SchemaPath;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -370,8 +369,7 @@ public class RpcRegistryTest {
         final int nRoutes = 500;
         final Collection<DOMRpcIdentifier> added = new ArrayList<>(nRoutes);
         for (int i = 0; i < nRoutes; i++) {
-            final DOMRpcIdentifier routeId = DOMRpcIdentifier.create(SchemaPath.create(true,
-                    QName.create(URI.create("/mockrpc"), "type" + i)));
+            final DOMRpcIdentifier routeId = DOMRpcIdentifier.create(QName.create(URI.create("/mockrpc"), "type" + i));
             added.add(routeId);
 
             //Uninterruptibles.sleepUninterruptibly(50, TimeUnit.MILLISECONDS);
@@ -406,7 +404,7 @@ public class RpcRegistryTest {
     private List<DOMRpcIdentifier> createRouteIds() {
         QName type = QName.create(URI.create("/mockrpc"), "mockrpc" + routeIdCounter++);
         List<DOMRpcIdentifier> routeIds = new ArrayList<>(1);
-        routeIds.add(DOMRpcIdentifier.create(SchemaPath.create(true, type)));
+        routeIds.add(DOMRpcIdentifier.create(type));
         return routeIds;
     }
 }
index 3d5655d..1a76aa6 100644 (file)
@@ -31,13 +31,14 @@ import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
 import org.opendaylight.mdsal.dom.api.DOMActionInstance;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
-import org.opendaylight.yangtools.yang.model.api.SchemaPath;
+import org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier.Absolute;
 
 public class RemoteActionRegistryMXBeanImplTest {
 
     private static final QName LOCAL_QNAME = QName.create("base", "local");
-    private static final SchemaPath EMPTY_SCHEMA_PATH = SchemaPath.ROOT;
-    private static final SchemaPath LOCAL_SCHEMA_PATH = SchemaPath.create(true, LOCAL_QNAME);
+    private static final QName REMOTE_QNAME = QName.create("base", "local");
+    private static final Absolute LOCAL_SCHEMA_PATH = Absolute.of(LOCAL_QNAME);
+    private static final Absolute REMOTE_SCHEMA_PATH = Absolute.of(REMOTE_QNAME);
 
     private ActorSystem system;
     private TestActorRef<ActionRegistry> testActor;
@@ -49,7 +50,7 @@ public class RemoteActionRegistryMXBeanImplTest {
         system = ActorSystem.create("test");
 
         final DOMActionInstance emptyActionIdentifier = DOMActionInstance.of(
-                EMPTY_SCHEMA_PATH, LogicalDatastoreType.OPERATIONAL, YangInstanceIdentifier.empty());
+                REMOTE_SCHEMA_PATH, LogicalDatastoreType.OPERATIONAL, YangInstanceIdentifier.empty());
         final DOMActionInstance localActionIdentifier = DOMActionInstance.of(
                 LOCAL_SCHEMA_PATH, LogicalDatastoreType.OPERATIONAL, YangInstanceIdentifier.of(LOCAL_QNAME));
 
index 4d719a2..6421750 100644 (file)
@@ -7,6 +7,8 @@
  */
 package org.opendaylight.controller.remote.rpc.registry.mbeans;
 
+import static org.hamcrest.CoreMatchers.containsString;
+import static org.hamcrest.MatcherAssert.assertThat;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
@@ -33,13 +35,10 @@ import org.opendaylight.controller.remote.rpc.registry.gossip.BucketStoreAccess;
 import org.opendaylight.mdsal.dom.api.DOMRpcIdentifier;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
-import org.opendaylight.yangtools.yang.model.api.SchemaPath;
 
 public class RemoteRpcRegistryMXBeanImplTest {
-
     private static final QName LOCAL_QNAME = QName.create("base", "local");
-    private static final SchemaPath EMPTY_SCHEMA_PATH = SchemaPath.ROOT;
-    private static final SchemaPath LOCAL_SCHEMA_PATH = SchemaPath.create(true, LOCAL_QNAME);
+    private static final QName REMOTE_QNAME = QName.create("base", "remote");
 
     private ActorSystem system;
     private TestActorRef<RpcRegistry> testActor;
@@ -51,9 +50,9 @@ public class RemoteRpcRegistryMXBeanImplTest {
         system = ActorSystem.create("test");
 
         final DOMRpcIdentifier emptyRpcIdentifier = DOMRpcIdentifier.create(
-                EMPTY_SCHEMA_PATH, YangInstanceIdentifier.empty());
+                REMOTE_QNAME, YangInstanceIdentifier.empty());
         final DOMRpcIdentifier localRpcIdentifier = DOMRpcIdentifier.create(
-                LOCAL_SCHEMA_PATH, YangInstanceIdentifier.of(LOCAL_QNAME));
+                LOCAL_QNAME, YangInstanceIdentifier.of(LOCAL_QNAME));
 
         buckets = Lists.newArrayList(emptyRpcIdentifier, localRpcIdentifier);
 
@@ -92,7 +91,7 @@ public class RemoteRpcRegistryMXBeanImplTest {
         assertEquals(1, globalRpc.size());
 
         final String rpc = globalRpc.iterator().next();
-        assertEquals(EMPTY_SCHEMA_PATH.toString(), rpc);
+        assertEquals(REMOTE_QNAME.toString(), rpc);
     }
 
     @Test
@@ -112,8 +111,7 @@ public class RemoteRpcRegistryMXBeanImplTest {
         assertEquals(1, localRegisteredRoutedRpc.size());
 
         final String localRpc = localRegisteredRoutedRpc.iterator().next();
-        assertTrue(localRpc.contains(LOCAL_QNAME.toString()));
-        assertTrue(localRpc.contains(LOCAL_SCHEMA_PATH.toString()));
+        assertThat(localRpc, containsString(LOCAL_QNAME.toString()));
     }
 
     @Test
index f8a044f..555292d 100644 (file)
@@ -11,7 +11,7 @@
     <parent>
         <groupId>org.opendaylight.odlparent</groupId>
         <artifactId>odlparent-lite</artifactId>
-        <version>7.0.6</version>
+        <version>8.0.0</version>
         <relativePath/>
     </parent>
 
index 8d8a8ca..979822b 100644 (file)
@@ -4,7 +4,7 @@
     <parent>
         <groupId>org.opendaylight.odlparent</groupId>
         <artifactId>odlparent-lite</artifactId>
-        <version>7.0.6</version>
+        <version>8.0.0</version>
         <relativePath/>
     </parent>
 
index a800dc9..87e4dd6 100644 (file)
@@ -24,7 +24,6 @@ import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdent
 import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
 import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableContainerNodeBuilder;
 import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableLeafNodeBuilder;
-import org.opendaylight.yangtools.yang.model.api.SchemaPath;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -48,7 +47,7 @@ public final class GetConstantService implements DOMRpcImplementation {
             final DOMRpcProviderService rpcProviderService, final String constant) {
         LOG.debug("Registering get-constant service, constant value: {}", constant);
         return rpcProviderService.registerRpcImplementation(new GetConstantService(constant),
-            DOMRpcIdentifier.create(SchemaPath.create(true, GET_CONSTANT)));
+            DOMRpcIdentifier.create(GET_CONSTANT));
     }
 
     @Override
index 64470b0..4dd3cdf 100644 (file)
@@ -27,7 +27,6 @@ import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdent
 import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
 import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableContainerNodeBuilder;
 import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableLeafNodeBuilder;
-import org.opendaylight.yangtools.yang.model.api.SchemaPath;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -53,7 +52,7 @@ public final class RoutedGetConstantService implements DOMRpcImplementation {
         LOG.debug("Registering get-contexted-constant on context: {}, with value: {}", context, constant);
 
         final YangInstanceIdentifier yid = codec.toYangInstanceIdentifier(context);
-        final DOMRpcIdentifier id = DOMRpcIdentifier.create(SchemaPath.create(true, GET_CONTEXTED_CONSTANT), yid);
+        final DOMRpcIdentifier id = DOMRpcIdentifier.create(GET_CONTEXTED_CONSTANT, yid);
 
         return rpcProviderService.registerRpcImplementation(new RoutedGetConstantService(constant), id);
     }
index ffa3b80..b9df997 100644 (file)
@@ -28,7 +28,6 @@ import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdent
 import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
 import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableContainerNodeBuilder;
 import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableLeafNodeBuilder;
-import org.opendaylight.yangtools.yang.model.api.SchemaPath;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -80,7 +79,7 @@ public final class SingletonGetConstantService implements DOMRpcImplementation,
     @Override
     public void instantiateServiceInstance() {
         LOG.debug("Gained ownership of get-singleton-constant, registering service into rpcService");
-        final DOMRpcIdentifier id = DOMRpcIdentifier.create(SchemaPath.create(true, GET_SINGLETON_CONSTANT));
+        final DOMRpcIdentifier id = DOMRpcIdentifier.create(GET_SINGLETON_CONSTANT);
 
         rpcRegistration = rpcProviderService.registerRpcImplementation(this, id);
     }
index 9911cc8..81908ac 100644 (file)
@@ -4,7 +4,7 @@
   <parent>
     <groupId>org.opendaylight.odlparent</groupId>
     <artifactId>odlparent-lite</artifactId>
-    <version>7.0.6</version>
+    <version>8.0.0</version>
     <relativePath/>
   </parent>
 
index e384684..ef46dd7 100644 (file)
@@ -13,7 +13,7 @@
     <parent>
         <groupId>org.opendaylight.mdsal</groupId>
         <artifactId>binding-parent</artifactId>
-        <version>6.0.5</version>
+        <version>7.0.0-SNAPSHOT</version>
         <relativePath/>
     </parent>
 
index 009ea49..0c9062b 100644 (file)
@@ -12,7 +12,7 @@
     <parent>
         <groupId>org.opendaylight.odlparent</groupId>
         <artifactId>odlparent-lite</artifactId>
-        <version>7.0.6</version>
+        <version>8.0.0</version>
         <relativePath/>
     </parent>
 
diff --git a/pom.xml b/pom.xml
index 5521ae0..acfc6c6 100644 (file)
--- a/pom.xml
+++ b/pom.xml
@@ -4,7 +4,7 @@
   <parent>
     <groupId>org.opendaylight.odlparent</groupId>
     <artifactId>odlparent-lite</artifactId>
-    <version>7.0.6</version>
+    <version>8.0.0</version>
     <relativePath/>
   </parent>
 
@@ -22,6 +22,7 @@
 
   <modules>
     <module>artifacts</module>
+    <module>bundle-parent</module>
     <module>akka</module>
 
     <!-- md-sal -->