Bump to odlparent 2.0.0 76/50176/13
authorRobert Varga <robert.varga@pantheon.tech>
Wed, 21 Jun 2017 13:40:28 +0000 (15:40 +0200)
committerRobert Varga <robert.varga@pantheon.tech>
Wed, 21 Jun 2017 20:40:22 +0000 (22:40 +0200)
This takes odlparent 2.0.0, adjusts for guava update and feature
movement. Since jenkins is failing on the distro run, that is
disabled and a follow-up patch will re-enable it to get us going
again.

Change-Id: If3e1289ed7f73a79a5a47428c634bda9702e824d
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
143 files changed:
benchmark/artifacts/pom.xml
benchmark/pom.xml
features/benchmark/features-mdsal-benchmark/pom.xml
features/benchmark/features-mdsal-benchmark/src/main/features/features.xml [deleted file]
features/benchmark/features4-mdsal-benchmark/pom.xml [deleted file]
features/benchmark/odl-benchmark-api/pom.xml
features/benchmark/odl-dsbenchmark/pom.xml
features/benchmark/odl-mdsal-benchmark/pom.xml
features/benchmark/odl-ntfbenchmark/pom.xml
features/benchmark/pom.xml
features/config-netty/features-config-netty/pom.xml
features/config-netty/features-config-netty/src/main/features/features.xml [deleted file]
features/config-netty/features4-config-netty/pom.xml [deleted file]
features/config-netty/odl-config-netty/pom.xml
features/config-netty/pom.xml
features/config-persister/features-config-persister/pom.xml
features/config-persister/features-config-persister/src/main/features/features.xml [deleted file]
features/config-persister/features4-config-persister/pom.xml [deleted file]
features/config-persister/odl-config-manager-facade-xml/pom.xml
features/config-persister/odl-config-persister-all/pom.xml
features/config-persister/odl-config-persister/pom.xml
features/config-persister/odl-config-startup/pom.xml
features/config-persister/pom.xml
features/config/features-config/pom.xml
features/config/features-config/src/main/features/features.xml [deleted file]
features/config/features4-config/pom.xml [deleted file]
features/config/odl-config-all/pom.xml
features/config/odl-config-api/pom.xml
features/config/odl-config-core/pom.xml
features/config/odl-config-manager/pom.xml
features/config/odl-config-netty-config-api/pom.xml
features/config/pom.xml
features/extras/features-extras/pom.xml
features/extras/features-extras/src/main/features/features.xml [deleted file]
features/extras/features4-extras/pom.xml [deleted file]
features/extras/odl-extras-all/pom.xml
features/extras/odl-jolokia/pom.xml
features/extras/pom.xml
features/mdsal/features-mdsal/pom.xml
features/mdsal/features-mdsal/src/main/features/features.xml [deleted file]
features/mdsal/features4-mdsal/pom.xml [deleted file]
features/mdsal/odl-clustering-test-app/pom.xml
features/mdsal/odl-mdsal-all/pom.xml
features/mdsal/odl-mdsal-broker-local/pom.xml
features/mdsal/odl-mdsal-broker/pom.xml
features/mdsal/odl-mdsal-clustering-commons/pom.xml
features/mdsal/odl-mdsal-clustering/pom.xml
features/mdsal/odl-mdsal-common/pom.xml
features/mdsal/odl-mdsal-distributed-datastore/pom.xml
features/mdsal/odl-mdsal-remoterpc-connector/pom.xml
features/mdsal/odl-message-bus-collector/pom.xml
features/mdsal/odl-toaster/pom.xml
features/mdsal/pom.xml
features/pom.xml
features/protocol-framework/features-protocol-framework/pom.xml
features/protocol-framework/features-protocol-framework/src/main/features/features.xml [deleted file]
features/protocol-framework/features4-protocol-framework/pom.xml [deleted file]
features/protocol-framework/odl-protocol-framework/pom.xml
features/protocol-framework/pom.xml
karaf/karaf-parent/pom.xml [deleted file]
karaf/opendaylight-karaf/pom.xml
karaf/pom.xml
opendaylight/archetypes/opendaylight-startup/src/main/resources/archetype-resources/artifacts/pom.xml
opendaylight/archetypes/opendaylight-startup/src/main/resources/archetype-resources/features/pom.xml
opendaylight/archetypes/opendaylight-startup/src/main/resources/archetype-resources/karaf/pom.xml
opendaylight/archetypes/opendaylight-startup/src/main/resources/archetype-resources/pom.xml
opendaylight/archetypes/pom.xml
opendaylight/blueprint/pom.xml
opendaylight/commons/jolokia/pom.xml
opendaylight/commons/liblldp/pom.xml
opendaylight/commons/logback_settings/pom.xml
opendaylight/commons/protocol-framework/pom.xml
opendaylight/config/config-artifacts/pom.xml
opendaylight/config/config-it-base/pom.xml
opendaylight/config/config-netty-config/pom.xml
opendaylight/config/config-persister-feature-adapter/src/main/java/org/opendaylight/controller/configpusherfeature/internal/AbstractFeatureWrapper.java
opendaylight/config/config-persister-feature-adapter/src/main/java/org/opendaylight/controller/configpusherfeature/internal/FeatureConfigPusher.java
opendaylight/config/config-persister-feature-adapter/src/main/java/org/opendaylight/controller/configpusherfeature/internal/FeatureServiceCustomizer.java
opendaylight/config/config-persister-feature4-adapter/pom.xml [deleted file]
opendaylight/config/config-persister-feature4-adapter/src/main/java/org/opendaylight/controller/configpusherfeature/ConfigPusherFeatureActivator.java [deleted file]
opendaylight/config/config-persister-feature4-adapter/src/main/java/org/opendaylight/controller/configpusherfeature/internal/AbstractFeatureWrapper.java [deleted file]
opendaylight/config/config-persister-feature4-adapter/src/main/java/org/opendaylight/controller/configpusherfeature/internal/ChildAwareFeatureWrapper.java [deleted file]
opendaylight/config/config-persister-feature4-adapter/src/main/java/org/opendaylight/controller/configpusherfeature/internal/ConfigFeaturesListener.java [deleted file]
opendaylight/config/config-persister-feature4-adapter/src/main/java/org/opendaylight/controller/configpusherfeature/internal/ConfigPusherCustomizer.java [deleted file]
opendaylight/config/config-persister-feature4-adapter/src/main/java/org/opendaylight/controller/configpusherfeature/internal/ConfigPushingRunnable.java [deleted file]
opendaylight/config/config-persister-feature4-adapter/src/main/java/org/opendaylight/controller/configpusherfeature/internal/FeatureConfigPusher.java [deleted file]
opendaylight/config/config-persister-feature4-adapter/src/main/java/org/opendaylight/controller/configpusherfeature/internal/FeatureConfigSnapshotHolder.java [deleted file]
opendaylight/config/config-persister-feature4-adapter/src/main/java/org/opendaylight/controller/configpusherfeature/internal/FeatureServiceCustomizer.java [deleted file]
opendaylight/config/pom.xml
opendaylight/md-sal/benchmark-data-store/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/md-sal-config/pom.xml
opendaylight/md-sal/mdsal-artifacts/pom.xml
opendaylight/md-sal/mdsal-it-base/pom.xml
opendaylight/md-sal/mdsal-it-parent/pom.xml
opendaylight/md-sal/mdsal-trace/binding-impl/pom.xml
opendaylight/md-sal/mdsal-trace/features/features-mdsal-trace/pom.xml
opendaylight/md-sal/mdsal-trace/features/features-mdsal-trace/src/main/features/features.xml [deleted file]
opendaylight/md-sal/mdsal-trace/features/features4-mdsal-trace/pom.xml [deleted file]
opendaylight/md-sal/mdsal-trace/features/odl-mdsal-trace/pom.xml
opendaylight/md-sal/mdsal-trace/features/pom.xml
opendaylight/md-sal/mdsal-trace/pom.xml
opendaylight/md-sal/messagebus-config/pom.xml
opendaylight/md-sal/messagebus-util/pom.xml
opendaylight/md-sal/pom.xml
opendaylight/md-sal/sal-akka-raft-example/pom.xml
opendaylight/md-sal/sal-akka-raft/pom.xml
opendaylight/md-sal/sal-binding-api/pom.xml
opendaylight/md-sal/sal-binding-broker/pom.xml
opendaylight/md-sal/sal-binding-dom-it/pom.xml
opendaylight/md-sal/sal-binding-util/pom.xml
opendaylight/md-sal/sal-clustering-config/pom.xml
opendaylight/md-sal/sal-common-impl/pom.xml
opendaylight/md-sal/sal-common-impl/src/main/java/org/opendaylight/controller/md/sal/common/impl/service/AbstractDataTransaction.java
opendaylight/md-sal/sal-common-testutil/pom.xml
opendaylight/md-sal/sal-common-util/pom.xml
opendaylight/md-sal/sal-connector-api/pom.xml
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/DebugThreePhaseCommitCohort.java
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/LocalTransactionContext.java
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/TransactionProxy.java
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/sharding/PrefixedShardConfigWriter.java
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/sharding/ShardProxyTransaction.java
opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/databroker/ClientBackedReadTransactionTest.java
opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/databroker/ConcurrentDOMDataBrokerTest.java
opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/databroker/actors/dds/ClientSnapshotTest.java
opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/AbstractTransactionProxyTest.java
opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/ShardTest.java
opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/TransactionProxyTest.java
opendaylight/md-sal/sal-dom-api/pom.xml
opendaylight/md-sal/sal-dom-broker/pom.xml
opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/md/sal/dom/broker/impl/legacy/sharded/adapter/ShardedDOMDataBrokerDelegatingReadWriteTransaction.java
opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/md/sal/dom/broker/impl/legacy/sharded/adapter/ShardedDOMDataBrokerDelegatingWriteTransaction.java
opendaylight/md-sal/sal-dom-spi/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/RpcInvoker.java
opendaylight/md-sal/sal-schema-service/pom.xml
opendaylight/md-sal/samples/toaster-consumer/pom.xml
opendaylight/md-sal/samples/toaster-consumer/src/main/java/org/opendaylight/controller/sample/kitchen/impl/KitchenServiceImpl.java
opendaylight/md-sal/samples/toaster-provider/src/main/java/org/opendaylight/controller/sample/toaster/provider/OpendaylightToaster.java
pom.xml

index ff13d7d..aad3cea 100644 (file)
@@ -14,7 +14,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html
   <parent>
     <groupId>org.opendaylight.odlparent</groupId>
     <artifactId>odlparent-lite</artifactId>
-    <version>1.9.0</version>
+    <version>2.0.0</version>
     <relativePath/>
   </parent>
 
index a48d78e..cb9f043 100644 (file)
@@ -9,7 +9,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html INTERNAL
   <parent>
     <groupId>org.opendaylight.odlparent</groupId>
     <artifactId>odlparent-lite</artifactId>
-    <version>1.9.0</version>
+    <version>2.0.0</version>
     <relativePath/>
   </parent>
   <groupId>org.opendaylight.controller</groupId>
index 5f71359..9659014 100644 (file)
@@ -1,82 +1,57 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
-Copyright (c) 2015 Cisco Systems 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 INTERNAL
--->
-<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">
-  <parent>
-    <groupId>org.opendaylight.odlparent</groupId>
-    <artifactId>features-parent</artifactId>
-    <version>1.9.0</version>
-    <relativePath/>
-  </parent>
-  <groupId>org.opendaylight.controller</groupId>
-  <artifactId>features-mdsal-benchmark</artifactId>
-  <version>1.4.0-SNAPSHOT</version>
-  <name>${project.artifactId}</name>
-  <modelVersion>4.0.0</modelVersion>
+ Copyright © 2016, 2017 Red Hat, Inc. and others.
 
-  <properties>
-    <controller.mdsal.version>1.6.0-SNAPSHOT</controller.mdsal.version>
-    <mdsal.version>2.3.0-SNAPSHOT</mdsal.version>
-    <mdsal.model.version>0.11.0-SNAPSHOT</mdsal.model.version>
-    <yangtools.version>1.2.0-SNAPSHOT</yangtools.version>
-  </properties>
+ 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.odlparent</groupId>
+        <artifactId>feature-repo-parent</artifactId>
+        <version>2.0.0</version>
+        <relativePath/>
+    </parent>
+
+    <groupId>org.opendaylight.controller</groupId>
+    <artifactId>features-mdsal-benchmark</artifactId>
+    <version>1.4.0-SNAPSHOT</version>
+    <packaging>feature</packaging>
+
+    <dependencies>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>odl-benchmark-api</artifactId>
+            <version>${project.version}</version>
+            <type>xml</type>
+            <classifier>features</classifier>
+        </dependency>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>odl-dsbenchmark</artifactId>
+            <version>${project.version}</version>
+            <type>xml</type>
+            <classifier>features</classifier>
+        </dependency>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>odl-mdsal-benchmark</artifactId>
+            <version>${project.version}</version>
+            <type>xml</type>
+            <classifier>features</classifier>
+        </dependency>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>odl-ntfbenchmark</artifactId>
+            <version>${project.version}</version>
+            <type>xml</type>
+            <classifier>features</classifier>
+        </dependency>
+    </dependencies>
 
-  <dependencies>
-    <dependency>
-      <groupId>org.opendaylight.yangtools</groupId>
-      <artifactId>features-yangtools</artifactId>
-      <classifier>features</classifier>
-      <version>${yangtools.version}</version>
-      <type>xml</type>
-      <scope>runtime</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.mdsal</groupId>
-      <artifactId>features-mdsal</artifactId>
-      <version>${mdsal.version}</version>
-      <classifier>features</classifier>
-      <type>xml</type>
-      <scope>runtime</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.mdsal.model</groupId>
-      <artifactId>features-mdsal-model</artifactId>
-      <version>${mdsal.model.version}</version>
-      <classifier>features</classifier>
-      <type>xml</type>
-      <scope>runtime</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>features-mdsal</artifactId>
-      <classifier>features</classifier>
-      <version>${controller.mdsal.version}</version>
-      <type>xml</type>
-      <scope>runtime</scope>
-    </dependency>
-    <dependency>
-      <groupId>${project.groupId}</groupId>
-      <artifactId>dsbenchmark</artifactId>
-      <version>${project.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>${project.groupId}</groupId>
-      <artifactId>ntfbenchmark</artifactId>
-      <version>${project.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>${project.groupId}</groupId>
-      <artifactId>rpcbenchmark</artifactId>
-      <version>${project.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>${project.groupId}</groupId>
-      <artifactId>benchmark-api</artifactId>
-      <version>${project.version}</version>
-    </dependency>
-  </dependencies>
 </project>
diff --git a/features/benchmark/features-mdsal-benchmark/src/main/features/features.xml b/features/benchmark/features-mdsal-benchmark/src/main/features/features.xml
deleted file mode 100644 (file)
index 7e2b451..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- vi: set et smarttab sw=4 tabstop=4: -->
-<!--
-Copyright (c) 2015 Cisco Systems
-
-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
--->
-<features name="odl-dsbenchmark-${project.version}" xmlns="http://karaf.apache.org/xmlns/features/v1.2.0"
-  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-  xsi:schemaLocation="http://karaf.apache.org/xmlns/features/v1.2.0 http://karaf.apache.org/xmlns/features/v1.2.0">
-  <repository>mvn:org.opendaylight.yangtools/features-yangtools/{{VERSION}}/xml/features</repository>
-  <repository>mvn:org.opendaylight.controller/features-mdsal/{{VERSION}}/xml/features</repository>
-  <repository>mvn:org.opendaylight.mdsal.model/features-mdsal-model/{{VERSION}}/xml/features</repository>
-
-    <feature name='odl-benchmark-api' version='${project.version}' description='OpenDaylight :: dsbenchmark :: api '>
-    <feature version='${mdsal.model.version}'>odl-mdsal-models</feature>
-    <bundle>mvn:org.opendaylight.controller/benchmark-api/{{VERSION}}</bundle>
-  </feature>
-  <feature name='odl-dsbenchmark' version='${project.version}' description='OpenDaylight :: dsbenchmark :: '>
-    <feature version='${controller.mdsal.version}'>odl-mdsal-broker</feature>
-    <feature version='${project.version}'>odl-benchmark-api</feature>
-    <bundle>mvn:org.opendaylight.controller/dsbenchmark/{{VERSION}}</bundle>
-  </feature>
-  <feature name='odl-ntfbenchmark' version='${project.version}' description='OpenDaylight :: ntfbenchmark :: '>
-    <feature version='${controller.mdsal.version}'>odl-mdsal-broker</feature>
-    <feature version='${project.version}'>odl-benchmark-api</feature>
-    <bundle>mvn:org.opendaylight.controller/ntfbenchmark/{{VERSION}}</bundle>
-  </feature>
-  <feature name='odl-mdsal-benchmark' version='${project.version}' description='OpenDaylight :: dsbenchmark :: '>
-    <feature version='${project.version}'>odl-dsbenchmark</feature>
-    <feature version='${project.version}'>odl-ntfbenchmark</feature>
-    <bundle>mvn:org.opendaylight.controller/rpcbenchmark/{{VERSION}}</bundle>
-  </feature>
-</features>
diff --git a/features/benchmark/features4-mdsal-benchmark/pom.xml b/features/benchmark/features4-mdsal-benchmark/pom.xml
deleted file mode 100644 (file)
index c15ba1f..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright © 2016, 2017 Red Hat, Inc. and others.
-
- 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.odlparent</groupId>
-        <artifactId>feature-repo-parent</artifactId>
-        <version>1.9.0</version>
-        <relativePath/>
-    </parent>
-
-    <groupId>org.opendaylight.controller</groupId>
-    <artifactId>features4-mdsal-benchmark</artifactId>
-    <version>1.4.0-SNAPSHOT</version>
-    <packaging>feature</packaging>
-
-    <dependencies>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>odl-benchmark-api</artifactId>
-            <version>${project.version}</version>
-            <type>xml</type>
-            <classifier>features</classifier>
-        </dependency>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>odl-dsbenchmark</artifactId>
-            <version>${project.version}</version>
-            <type>xml</type>
-            <classifier>features</classifier>
-        </dependency>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>odl-mdsal-benchmark</artifactId>
-            <version>${project.version}</version>
-            <type>xml</type>
-            <classifier>features</classifier>
-        </dependency>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>odl-ntfbenchmark</artifactId>
-            <version>${project.version}</version>
-            <type>xml</type>
-            <classifier>features</classifier>
-        </dependency>
-    </dependencies>
-
-</project>
\ No newline at end of file
index e3ca306..3dd8ac7 100644 (file)
@@ -14,7 +14,7 @@
     <parent>
         <groupId>org.opendaylight.odlparent</groupId>
         <artifactId>single-feature-parent</artifactId>
-        <version>1.9.0</version>
+        <version>2.0.0</version>
         <relativePath/>
     </parent>
 
index 56d78b3..6623738 100644 (file)
@@ -14,7 +14,7 @@
     <parent>
         <groupId>org.opendaylight.odlparent</groupId>
         <artifactId>single-feature-parent</artifactId>
-        <version>1.9.0</version>
+        <version>2.0.0</version>
         <relativePath/>
     </parent>
 
index c8c720f..2864ddc 100644 (file)
@@ -14,7 +14,7 @@
     <parent>
         <groupId>org.opendaylight.odlparent</groupId>
         <artifactId>single-feature-parent</artifactId>
-        <version>1.9.0</version>
+        <version>2.0.0</version>
         <relativePath/>
     </parent>
 
index 6c850f2..a9fb582 100644 (file)
@@ -14,7 +14,7 @@
     <parent>
         <groupId>org.opendaylight.odlparent</groupId>
         <artifactId>single-feature-parent</artifactId>
-        <version>1.9.0</version>
+        <version>2.0.0</version>
         <relativePath/>
     </parent>
 
index f96ee96..8cd2a14 100644 (file)
@@ -11,7 +11,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html INTERNAL
     <parent>
         <groupId>org.opendaylight.odlparent</groupId>
         <artifactId>odlparent-lite</artifactId>
-        <version>1.9.0</version>
+        <version>2.0.0</version>
         <relativePath/>
     </parent>
     <groupId>org.opendaylight.controller</groupId>
@@ -22,7 +22,6 @@ and is available at http://www.eclipse.org/legal/epl-v10.html INTERNAL
 
     <modules>
         <module>features-mdsal-benchmark</module>
-        <module>features4-mdsal-benchmark</module>
         <module>odl-benchmark-api</module>
         <module>odl-dsbenchmark</module>
         <module>odl-mdsal-benchmark</module>
index 1c9ce88..4f5a3da 100644 (file)
@@ -1,77 +1,36 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<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.odlparent</groupId>
-    <artifactId>features-parent</artifactId>
-    <version>1.9.0</version>
-    <relativePath/>
-  </parent>
+<!--
+ Copyright © 2016, 2017 Red Hat, Inc. and others.
 
-  <groupId>org.opendaylight.controller</groupId>
-  <artifactId>features-config-netty</artifactId>
-  <version>0.7.0-SNAPSHOT</version>
-  <packaging>jar</packaging>
+ 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>
 
-  <properties>
-    <config.version>0.7.0-SNAPSHOT</config.version>
-    <config.configfile.directory>etc/opendaylight/karaf</config.configfile.directory>
-    <config.netty.configfile>00-netty.xml</config.netty.configfile>
-  </properties>
+    <parent>
+        <groupId>org.opendaylight.odlparent</groupId>
+        <artifactId>feature-repo-parent</artifactId>
+        <version>2.0.0</version>
+        <relativePath/>
+    </parent>
+
+    <groupId>org.opendaylight.controller</groupId>
+    <artifactId>features-config-netty</artifactId>
+    <version>0.7.0-SNAPSHOT</version>
+    <packaging>feature</packaging>
 
-  <dependencyManagement>
     <dependencies>
-       <dependency>
-        <groupId>org.opendaylight.controller</groupId>
-        <artifactId>config-artifacts</artifactId>
-        <version>${config.version}</version>
-        <scope>import</scope>
-        <type>pom</type>
-      </dependency>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>odl-config-netty</artifactId>
+            <version>${project.version}</version>
+            <type>xml</type>
+            <classifier>features</classifier>
+        </dependency>
     </dependencies>
-  </dependencyManagement>
-
-  <dependencies>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>features-config-persister</artifactId>
-      <classifier>features</classifier>
-      <type>xml</type>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>netty-event-executor-config</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>netty-threadgroup-config</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>netty-timer-config</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>threadpool-config-api</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>threadpool-config-impl</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>config-netty-config</artifactId>
-      <version>${config.version}</version>
-      <type>xml</type>
-      <classifier>config</classifier>
-    </dependency>
-  </dependencies>
-
 
-  <scm>
-    <connection>scm:git:http://git.opendaylight.org/gerrit/controller.git</connection>
-    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
-    <tag>HEAD</tag>
-    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:MD-SAL</url>
-  </scm>
 </project>
diff --git a/features/config-netty/features-config-netty/src/main/features/features.xml b/features/config-netty/features-config-netty/src/main/features/features.xml
deleted file mode 100644 (file)
index a66f7e5..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<features name="odl-config-persister-${project.version}" xmlns="http://karaf.apache.org/xmlns/features/v1.2.0"
-          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-          xsi:schemaLocation="http://karaf.apache.org/xmlns/features/v1.2.0 http://karaf.apache.org/xmlns/features/v1.2.0">
-  <repository>mvn:org.opendaylight.controller/features-config-persister/${config.version}/xml/features</repository>
-  <feature name='odl-config-netty' version='${project.version}' description="OpenDaylight :: Config-Netty">
-    <feature version='${project.version}'>odl-config-netty-config-api</feature>
-    <bundle>mvn:org.opendaylight.controller/netty-event-executor-config/${project.version}</bundle>
-    <bundle>mvn:org.opendaylight.controller/netty-threadgroup-config/${project.version}</bundle>
-    <bundle>mvn:org.opendaylight.controller/netty-timer-config/${project.version}</bundle>
-    <bundle>mvn:org.opendaylight.controller/threadpool-config-api/${project.version}</bundle>
-    <bundle>mvn:org.opendaylight.controller/threadpool-config-impl/${project.version}</bundle>
-    <feature version='${project.version}'>odl-config-startup</feature>
-    <configfile finalname="${config.configfile.directory}/${config.netty.configfile}">mvn:org.opendaylight.controller/config-netty-config/${config.version}/xml/config</configfile>
-  </feature>
-</features>
diff --git a/features/config-netty/features4-config-netty/pom.xml b/features/config-netty/features4-config-netty/pom.xml
deleted file mode 100644 (file)
index 248d5fe..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright © 2016, 2017 Red Hat, Inc. and others.
-
- 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.odlparent</groupId>
-        <artifactId>feature-repo-parent</artifactId>
-        <version>1.9.0</version>
-        <relativePath/>
-    </parent>
-
-    <groupId>org.opendaylight.controller</groupId>
-    <artifactId>features4-config-netty</artifactId>
-    <version>0.7.0-SNAPSHOT</version>
-    <packaging>feature</packaging>
-
-    <dependencies>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>odl-config-netty</artifactId>
-            <version>${project.version}</version>
-            <type>xml</type>
-            <classifier>features</classifier>
-        </dependency>
-    </dependencies>
-
-</project>
\ No newline at end of file
index 4d98488..3ff3297 100644 (file)
@@ -14,7 +14,7 @@
     <parent>
         <groupId>org.opendaylight.odlparent</groupId>
         <artifactId>single-feature-parent</artifactId>
-        <version>1.9.0</version>
+        <version>2.0.0</version>
         <relativePath/>
     </parent>
 
index 763b3b8..aa332b7 100644 (file)
@@ -12,7 +12,7 @@
     <parent>
         <groupId>org.opendaylight.odlparent</groupId>
         <artifactId>odlparent-lite</artifactId>
-        <version>1.9.0</version>
+        <version>2.0.0</version>
         <relativePath/>
     </parent>
 
@@ -23,7 +23,6 @@
 
     <modules>
         <module>features-config-netty</module>
-        <module>features4-config-netty</module>
         <module>odl-config-netty</module>
     </modules>
 
index 8ab966b..4f22114 100644 (file)
 <?xml version="1.0" encoding="UTF-8"?>
-<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.odlparent</groupId>
-    <artifactId>features-parent</artifactId>
-    <version>1.9.0</version>
-    <relativePath/>
-  </parent>
+<!--
+ Copyright © 2016, 2017 Red Hat, Inc. and others.
 
-  <groupId>org.opendaylight.controller</groupId>
-  <artifactId>features-config-persister</artifactId>
-  <version>0.7.0-SNAPSHOT</version>
-  <packaging>jar</packaging>
+ 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>
 
-  <properties>
-    <mdsal.version>2.3.0-SNAPSHOT</mdsal.version>
-    <config.version>0.7.0-SNAPSHOT</config.version>
-    <features.file>features.xml</features.file>
-  </properties>
+    <parent>
+        <groupId>org.opendaylight.odlparent</groupId>
+        <artifactId>feature-repo-parent</artifactId>
+        <version>2.0.0</version>
+        <relativePath/>
+    </parent>
+
+    <groupId>org.opendaylight.controller</groupId>
+    <artifactId>features-config-persister</artifactId>
+    <version>0.7.0-SNAPSHOT</version>
+    <packaging>feature</packaging>
 
-  <dependencyManagement>
     <dependencies>
-      <dependency>
-        <groupId>org.opendaylight.mdsal</groupId>
-        <artifactId>mdsal-artifacts</artifactId>
-        <version>${mdsal.version}</version>
-        <scope>import</scope>
-        <type>pom</type>
-      </dependency>
-       <dependency>
-        <groupId>org.opendaylight.controller</groupId>
-        <artifactId>config-artifacts</artifactId>
-        <version>${config.version}</version>
-        <scope>import</scope>
-        <type>pom</type>
-      </dependency>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>odl-config-manager-facade-xml</artifactId>
+            <version>${project.version}</version>
+            <type>xml</type>
+            <classifier>features</classifier>
+        </dependency>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>odl-config-persister</artifactId>
+            <version>${project.version}</version>
+            <type>xml</type>
+            <classifier>features</classifier>
+        </dependency>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>odl-config-persister-all</artifactId>
+            <version>${project.version}</version>
+            <type>xml</type>
+            <classifier>features</classifier>
+        </dependency>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>odl-config-startup</artifactId>
+            <version>${project.version}</version>
+            <type>xml</type>
+            <classifier>features</classifier>
+        </dependency>
     </dependencies>
-  </dependencyManagement>
-
-  <dependencies>
-    <dependency>
-      <groupId>org.opendaylight.mdsal</groupId>
-      <artifactId>features-mdsal</artifactId>
-      <version>${mdsal.version}</version>
-      <classifier>features</classifier>
-      <type>xml</type>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>features-config</artifactId>
-      <classifier>features</classifier>
-      <type>xml</type>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>config-persister-api</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>config-manager-facade-xml</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>config-util</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>config-persister-file-xml-adapter</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>config-persister-impl</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>config-persister-feature-adapter</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>commons-io</groupId>
-      <artifactId>commons-io</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.commons</groupId>
-      <artifactId>commons-lang3</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>javax.validation</groupId>
-      <artifactId>validation-api</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.eclipse.persistence</groupId>
-      <artifactId>org.eclipse.persistence.core</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.eclipse.persistence</groupId>
-      <artifactId>org.eclipse.persistence.moxy</artifactId>
-    </dependency>
-
-  </dependencies>
 
-  <scm>
-    <connection>scm:git:http://git.opendaylight.org/gerrit/controller.git</connection>
-    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
-    <tag>HEAD</tag>
-    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:MD-SAL</url>
-  </scm>
 </project>
diff --git a/features/config-persister/features-config-persister/src/main/features/features.xml b/features/config-persister/features-config-persister/src/main/features/features.xml
deleted file mode 100644 (file)
index 9a2fb9d..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<features name="odl-config-persister-${project.version}" xmlns="http://karaf.apache.org/xmlns/features/v1.2.0"
-          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-          xsi:schemaLocation="http://karaf.apache.org/xmlns/features/v1.2.0 http://karaf.apache.org/xmlns/features/v1.2.0">
-  <repository>mvn:org.opendaylight.mdsal/features-mdsal/{{VERSION}}/xml/features</repository>
-  <repository>mvn:org.opendaylight.controller/features-config/{{VERSION}}/xml/features</repository>
-  <feature name='odl-config-persister-all' version='${project.version}' description="OpenDaylight :: Config Persister:: All">
-    <feature version='${project.version}'>odl-config-persister</feature>
-    <feature version='${project.version}'>odl-config-startup</feature>
-  </feature>
-  <feature name='odl-config-persister' version='${project.version}' description="OpenDaylight :: Config Persister ">
-    <feature version='${project.version}'>odl-config-api</feature>
-    <feature version='${project.version}'>odl-config-core</feature>
-    <feature version='${project.version}'>odl-config-manager</feature>
-    <feature version='${mdsal.version}'>odl-mdsal-binding-runtime</feature>
-    <bundle>mvn:org.opendaylight.controller/yang-jmx-generator/{{VERSION}}</bundle>
-    <bundle>mvn:org.opendaylight.controller/config-persister-api/{{VERSION}}</bundle>
-    <bundle>mvn:org.opendaylight.controller/config-util/{{VERSION}}</bundle>
-    <bundle>mvn:org.opendaylight.controller/config-manager-facade-xml/{{VERSION}}</bundle>
-    <bundle>mvn:org.opendaylight.controller/config-persister-file-xml-adapter/{{VERSION}}</bundle>
-    <bundle>mvn:org.opendaylight.controller/config-persister-impl/{{VERSION}}</bundle>
-    <bundle>mvn:org.opendaylight.controller/config-persister-feature-adapter/{{VERSION}}</bundle>
-
-    <bundle>mvn:commons-io/commons-io/{{VERSION}}</bundle>
-    <bundle>mvn:org.apache.commons/commons-lang3/{{VERSION}}</bundle>
-    <bundle>wrap:mvn:javax.validation/validation-api/{{VERSION}}</bundle>
-    <bundle>mvn:org.eclipse.persistence/org.eclipse.persistence.core/{{VERSION}}</bundle>
-    <bundle>mvn:org.eclipse.persistence/org.eclipse.persistence.moxy/{{VERSION}}</bundle>
-  </feature>
-  <feature name='odl-config-startup' version='${project.version}' description="OpenDaylight :: Config Persister:: Config Startup">
-    <feature version='${project.version}'>odl-config-persister</feature>
-  </feature>
-  <feature name='odl-config-manager-facade-xml' version='${project.version}' description="Opendaylight :: Config Persister:: Mapping for Config Subsystem">
-    <feature version='${project.version}'>odl-config-core</feature>
-    <bundle>mvn:org.opendaylight.controller/config-manager-facade-xml/{{VERSION}}</bundle>
-  </feature>
-</features>
diff --git a/features/config-persister/features4-config-persister/pom.xml b/features/config-persister/features4-config-persister/pom.xml
deleted file mode 100644 (file)
index 58d5e7e..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright © 2016, 2017 Red Hat, Inc. and others.
-
- 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.odlparent</groupId>
-        <artifactId>feature-repo-parent</artifactId>
-        <version>1.9.0</version>
-        <relativePath/>
-    </parent>
-
-    <groupId>org.opendaylight.controller</groupId>
-    <artifactId>features4-config-persister</artifactId>
-    <version>0.7.0-SNAPSHOT</version>
-    <packaging>feature</packaging>
-
-    <dependencies>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>odl-config-manager-facade-xml</artifactId>
-            <version>${project.version}</version>
-            <type>xml</type>
-            <classifier>features</classifier>
-        </dependency>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>odl-config-persister</artifactId>
-            <version>${project.version}</version>
-            <type>xml</type>
-            <classifier>features</classifier>
-        </dependency>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>odl-config-persister-all</artifactId>
-            <version>${project.version}</version>
-            <type>xml</type>
-            <classifier>features</classifier>
-        </dependency>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>odl-config-startup</artifactId>
-            <version>${project.version}</version>
-            <type>xml</type>
-            <classifier>features</classifier>
-        </dependency>
-    </dependencies>
-
-</project>
\ No newline at end of file
index f05e2da..f5a0e61 100644 (file)
@@ -14,7 +14,7 @@
     <parent>
         <groupId>org.opendaylight.odlparent</groupId>
         <artifactId>single-feature-parent</artifactId>
-        <version>1.9.0</version>
+        <version>2.0.0</version>
         <relativePath/>
     </parent>
 
index 6dffea0..aff9a58 100644 (file)
@@ -14,7 +14,7 @@
     <parent>
         <groupId>org.opendaylight.odlparent</groupId>
         <artifactId>single-feature-parent</artifactId>
-        <version>1.9.0</version>
+        <version>2.0.0</version>
         <relativePath/>
     </parent>
 
index 4c51f1f..4637789 100644 (file)
@@ -14,7 +14,7 @@
     <parent>
         <groupId>org.opendaylight.odlparent</groupId>
         <artifactId>single-feature-parent</artifactId>
-        <version>1.9.0</version>
+        <version>2.0.0</version>
         <relativePath/>
     </parent>
 
         </dependency>
         <dependency>
             <groupId>${project.groupId}</groupId>
-            <artifactId>config-persister-feature4-adapter</artifactId>
+            <artifactId>config-persister-feature-adapter</artifactId>
         </dependency>
-        <!-- For some reason config-persister-feature4-adapter needs this -->
+        <!-- For some reason config-persister-feature-adapter needs this -->
         <dependency>
             <groupId>org.apache.karaf</groupId>
             <artifactId>org.apache.karaf.util</artifactId>
-            <version>${karaf4.version}</version>
+            <version>${karaf.version}</version>
         </dependency>
     </dependencies>
 
-</project>
\ No newline at end of file
+</project>
index 2db6078..8bdd04f 100644 (file)
@@ -14,7 +14,7 @@
     <parent>
         <groupId>org.opendaylight.odlparent</groupId>
         <artifactId>single-feature-parent</artifactId>
-        <version>1.9.0</version>
+        <version>2.0.0</version>
         <relativePath/>
     </parent>
 
index 65c084b..45d9074 100644 (file)
@@ -12,7 +12,7 @@
     <parent>
         <groupId>org.opendaylight.odlparent</groupId>
         <artifactId>odlparent-lite</artifactId>
-        <version>1.9.0</version>
+        <version>2.0.0</version>
         <relativePath/>
     </parent>
 
@@ -23,7 +23,6 @@
 
     <modules>
         <module>features-config-persister</module>
-        <module>features4-config-persister</module>
         <module>odl-config-manager-facade-xml</module>
         <module>odl-config-persister</module>
         <module>odl-config-persister-all</module>
index 694d788..8c40685 100644 (file)
 <?xml version="1.0" encoding="UTF-8"?>
-<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.odlparent</groupId>
-    <artifactId>features-parent</artifactId>
-    <version>1.9.0</version>
-    <relativePath/>
-  </parent>
+<!--
+ Copyright © 2016, 2017 Red Hat, Inc. and others.
 
-  <groupId>org.opendaylight.controller</groupId>
-  <artifactId>features-config</artifactId>
-  <version>0.7.0-SNAPSHOT</version>
-  <packaging>jar</packaging>
+ 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>
 
-  <properties>
-    <yangtools.version>1.2.0-SNAPSHOT</yangtools.version>
-    <mdsal.version>2.3.0-SNAPSHOT</mdsal.version>
-    <config.version>0.7.0-SNAPSHOT</config.version>
-    <odlparent.version>1.9.0</odlparent.version>
-    <features.file>features.xml</features.file>
-    <config.configfile.directory>etc/opendaylight/karaf</config.configfile.directory>
-  </properties>
+    <parent>
+        <groupId>org.opendaylight.odlparent</groupId>
+        <artifactId>feature-repo-parent</artifactId>
+        <version>2.0.0</version>
+        <relativePath/>
+    </parent>
 
+    <groupId>org.opendaylight.controller</groupId>
+    <artifactId>features-config</artifactId>
+    <version>0.7.0-SNAPSHOT</version>
+    <packaging>feature</packaging>
 
-  <dependencyManagement>
     <dependencies>
-       <dependency>
-        <groupId>org.opendaylight.odlparent</groupId>
-        <artifactId>odlparent-artifacts</artifactId>
-        <version>1.9.0</version>
-        <scope>import</scope>
-        <type>pom</type>
-      </dependency>
-      <dependency>
-        <groupId>org.opendaylight.yangtools</groupId>
-        <artifactId>yangtools-artifacts</artifactId>
-        <version>${yangtools.version}</version>
-        <scope>import</scope>
-        <type>pom</type>
-      </dependency>
-      <dependency>
-        <groupId>org.opendaylight.mdsal</groupId>
-        <artifactId>mdsal-artifacts</artifactId>
-        <version>${mdsal.version}</version>
-        <scope>import</scope>
-        <type>pom</type>
-      </dependency>
-       <dependency>
-        <groupId>org.opendaylight.controller</groupId>
-        <artifactId>config-artifacts</artifactId>
-        <version>${config.version}</version>
-        <scope>import</scope>
-        <type>pom</type>
-      </dependency>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>odl-config-all</artifactId>
+            <version>${project.version}</version>
+            <type>xml</type>
+            <classifier>features</classifier>
+        </dependency>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>odl-config-api</artifactId>
+            <version>${project.version}</version>
+            <type>xml</type>
+            <classifier>features</classifier>
+        </dependency>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>odl-config-core</artifactId>
+            <version>${project.version}</version>
+            <type>xml</type>
+            <classifier>features</classifier>
+        </dependency>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>odl-config-manager</artifactId>
+            <version>${project.version}</version>
+            <type>xml</type>
+            <classifier>features</classifier>
+        </dependency>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>odl-config-netty-config-api</artifactId>
+            <version>${project.version}</version>
+            <type>xml</type>
+            <classifier>features</classifier>
+        </dependency>
     </dependencies>
-  </dependencyManagement>
-
-
-  <dependencies>
-
-    <!-- Required features repositories -->
-    <dependency>
-      <groupId>org.opendaylight.odlparent</groupId>
-      <artifactId>features-odlparent</artifactId>
-      <classifier>features</classifier>
-      <type>xml</type>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.yangtools</groupId>
-      <artifactId>features-yangtools</artifactId>
-      <classifier>features</classifier>
-      <type>xml</type>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.mdsal</groupId>
-      <artifactId>features-mdsal</artifactId>
-      <classifier>features</classifier>
-      <type>xml</type>
-    </dependency>
-
-    <!-- Config artifacts -->
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>config-api</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>netty-config-api</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>io.netty</groupId>
-      <artifactId>netty-transport</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>io.netty</groupId>
-      <artifactId>netty-common</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>io.netty</groupId>
-      <artifactId>netty-codec</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>io.netty</groupId>
-      <artifactId>netty-handler</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>io.netty</groupId>
-      <artifactId>netty-buffer</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>config-util</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>yang-jmx-generator</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>shutdown-api</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>shutdown-impl</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.osgi</groupId>
-      <artifactId>org.osgi.core</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>com.google.guava</groupId>
-      <artifactId>guava</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.javassist</groupId>
-      <artifactId>javassist</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>config-manager</artifactId>
-    </dependency>
-  </dependencies>
 
-  <scm>
-    <connection>scm:git:http://git.opendaylight.org/gerrit/controller.git</connection>
-    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
-    <tag>HEAD</tag>
-    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:MD-SAL</url>
-  </scm>
 </project>
diff --git a/features/config/features-config/src/main/features/features.xml b/features/config/features-config/src/main/features/features.xml
deleted file mode 100644 (file)
index 47d0df0..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<features name="odl-config-${project.version}" xmlns="http://karaf.apache.org/xmlns/features/v1.2.0"
-          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-          xsi:schemaLocation="http://karaf.apache.org/xmlns/features/v1.2.0 http://karaf.apache.org/xmlns/features/v1.2.0">
-
-  <repository>mvn:org.opendaylight.mdsal/features-mdsal/{{VERSION}}/xml/features</repository>
-  <repository>mvn:org.opendaylight.odlparent/features-odlparent/{{VERSION}}/xml/features</repository>
-
-  <feature name='odl-config-all' version='${project.version}' description="OpenDaylight :: Config :: All">
-      <feature version='${project.version}'>odl-config-api</feature>
-      <feature version='${project.version}'>odl-config-netty-config-api</feature>
-      <feature version='${project.version}'>odl-config-core</feature>
-      <feature version='${project.version}'>odl-config-manager</feature>
-  </feature>
-
-  <feature name='odl-config-api' version='${project.version}' description="OpenDaylight :: Config :: API">
-    <feature version='${mdsal.version}'>odl-mdsal-binding-base</feature>
-    <bundle>mvn:org.opendaylight.controller/config-api/{{VERSION}}</bundle>
-  </feature>
-
-  <feature name='odl-config-netty-config-api' version='${project.version}' description="OpenDaylight :: Config :: Netty Config API">
-    <feature version='${project.version}'>odl-config-api</feature>
-    <feature version="${odlparent.version}">odl-netty-4</feature>
-    <bundle>mvn:org.opendaylight.controller/netty-config-api/{{VERSION}}</bundle>
-  </feature>
-
-  <feature name='odl-config-core' version='${project.version}' description="OpenDaylight :: Config :: Core">
-    <feature version='${yangtools.version}'>odl-yangtools-common</feature>
-    <!-- FIXME: Bug 4202: Switch to MD-SAL provided odl-mdsal-binding-runtime -->
-    <feature version='${mdsal.version}'>odl-mdsal-binding-runtime</feature>
-    <feature version='${project.version}'>odl-config-api</feature>
-    <bundle>mvn:org.opendaylight.controller/config-util/{{VERSION}}</bundle>
-    <bundle>mvn:org.opendaylight.controller/yang-jmx-generator/{{VERSION}}</bundle>
-    <bundle>mvn:org.opendaylight.controller/shutdown-api/{{VERSION}}</bundle>
-    <bundle>mvn:org.opendaylight.controller/shutdown-impl/{{VERSION}}</bundle>
-  </feature>
-  <feature name='odl-config-manager' version='${project.version}' description="OpenDaylight :: Config :: Manager">
-    <feature version='${project.version}'>odl-config-core</feature>
-    <bundle start-level="35">mvn:org.opendaylight.controller/config-manager/{{VERSION}}</bundle>
-  </feature>
-</features>
diff --git a/features/config/features4-config/pom.xml b/features/config/features4-config/pom.xml
deleted file mode 100644 (file)
index 8ece2ca..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright © 2016, 2017 Red Hat, Inc. and others.
-
- 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.odlparent</groupId>
-        <artifactId>feature-repo-parent</artifactId>
-        <version>1.9.0</version>
-        <relativePath/>
-    </parent>
-
-    <groupId>org.opendaylight.controller</groupId>
-    <artifactId>features4-config</artifactId>
-    <version>0.7.0-SNAPSHOT</version>
-    <packaging>feature</packaging>
-
-    <dependencies>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>odl-config-all</artifactId>
-            <version>${project.version}</version>
-            <type>xml</type>
-            <classifier>features</classifier>
-        </dependency>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>odl-config-api</artifactId>
-            <version>${project.version}</version>
-            <type>xml</type>
-            <classifier>features</classifier>
-        </dependency>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>odl-config-core</artifactId>
-            <version>${project.version}</version>
-            <type>xml</type>
-            <classifier>features</classifier>
-        </dependency>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>odl-config-manager</artifactId>
-            <version>${project.version}</version>
-            <type>xml</type>
-            <classifier>features</classifier>
-        </dependency>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>odl-config-netty-config-api</artifactId>
-            <version>${project.version}</version>
-            <type>xml</type>
-            <classifier>features</classifier>
-        </dependency>
-    </dependencies>
-
-</project>
\ No newline at end of file
index 0990fce..7620130 100644 (file)
@@ -14,7 +14,7 @@
     <parent>
         <groupId>org.opendaylight.odlparent</groupId>
         <artifactId>single-feature-parent</artifactId>
-        <version>1.9.0</version>
+        <version>2.0.0</version>
         <relativePath/>
     </parent>
 
index 74e49dc..06b8ac2 100644 (file)
@@ -14,7 +14,7 @@
     <parent>
         <groupId>org.opendaylight.odlparent</groupId>
         <artifactId>single-feature-parent</artifactId>
-        <version>1.9.0</version>
+        <version>2.0.0</version>
         <relativePath/>
     </parent>
 
index 5696d68..a8ddb61 100644 (file)
@@ -14,7 +14,7 @@
     <parent>
         <groupId>org.opendaylight.odlparent</groupId>
         <artifactId>single-feature-parent</artifactId>
-        <version>1.9.0</version>
+        <version>2.0.0</version>
         <relativePath/>
     </parent>
 
index 0b2a353..9d7ac18 100644 (file)
@@ -14,7 +14,7 @@
     <parent>
         <groupId>org.opendaylight.odlparent</groupId>
         <artifactId>single-feature-parent</artifactId>
-        <version>1.9.0</version>
+        <version>2.0.0</version>
         <relativePath/>
     </parent>
 
index 4ac7ae0..2f267af 100644 (file)
@@ -14,7 +14,7 @@
     <parent>
         <groupId>org.opendaylight.odlparent</groupId>
         <artifactId>single-feature-parent</artifactId>
-        <version>1.9.0</version>
+        <version>2.0.0</version>
         <relativePath/>
     </parent>
 
@@ -33,8 +33,8 @@
         </dependency>
         <dependency>
             <groupId>org.opendaylight.odlparent</groupId>
-            <artifactId>odl4-netty-4</artifactId>
-            <version>1.9.0</version>
+            <artifactId>odl-netty-4</artifactId>
+            <version>2.0.0</version>
             <type>xml</type>
             <classifier>features</classifier>
         </dependency>
@@ -45,4 +45,4 @@
         </dependency>
     </dependencies>
 
-</project>
\ No newline at end of file
+</project>
index 5d411ff..5d68cb2 100644 (file)
@@ -12,7 +12,7 @@
     <parent>
         <groupId>org.opendaylight.odlparent</groupId>
         <artifactId>odlparent-lite</artifactId>
-        <version>1.9.0</version>
+        <version>2.0.0</version>
         <relativePath/>
     </parent>
 
@@ -23,7 +23,6 @@
 
     <modules>
         <module>features-config</module>
-        <module>features4-config</module>
         <module>odl-config-all</module>
         <module>odl-config-api</module>
         <module>odl-config-core</module>
index 991d7b8..84d7f93 100644 (file)
@@ -1,45 +1,43 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
+ Copyright © 2016, 2017 Red Hat, Inc. and others.
+
  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">
+ -->
+<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.odlparent</groupId>
-        <artifactId>features-parent</artifactId>
-        <version>1.9.0</version>
+        <artifactId>feature-repo-parent</artifactId>
+        <version>2.0.0</version>
         <relativePath/>
     </parent>
 
     <groupId>org.opendaylight.controller</groupId>
     <artifactId>features-extras</artifactId>
     <version>1.9.0-SNAPSHOT</version>
-    <packaging>jar</packaging>
-    <properties>
-        <odl-jolokia-osgi.version>0.6.0-SNAPSHOT</odl-jolokia-osgi.version>
-    </properties>
+    <packaging>feature</packaging>
 
     <dependencies>
         <dependency>
-            <groupId>org.jolokia</groupId>
-            <artifactId>jolokia-osgi</artifactId>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>odl-extras-all</artifactId>
+            <version>${project.version}</version>
+            <type>xml</type>
+            <classifier>features</classifier>
         </dependency>
         <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>odl-jolokia-osgi</artifactId>
-            <version>${odl-jolokia-osgi.version}</version>
-            <type>cfg</type>
-            <classifier>configuration</classifier>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>odl-jolokia</artifactId>
+            <version>${project.version}</version>
+            <type>xml</type>
+            <classifier>features</classifier>
         </dependency>
     </dependencies>
 
-    <scm>
-        <connection>scm:git:http://git.opendaylight.org/gerrit/controller.git</connection>
-        <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
-        <tag>HEAD</tag>
-        <url>https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=summary</url>
-    </scm>
 </project>
diff --git a/features/extras/features-extras/src/main/features/features.xml b/features/extras/features-extras/src/main/features/features.xml
deleted file mode 100644 (file)
index 99111e7..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- vi: set et smarttab sw=4 tabstop=4: -->
-<!--
- 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
--->
-
-<!--
-
- This feature file is intended to contain only third party features that cannot be accommodated in any
- other feature file. This is a good place to add features like jolokia which no other feature depends on
- but which provides a utility.
--->
-<features name="odl-extras-${project.version}" xmlns="http://karaf.apache.org/xmlns/features/v1.2.0"
-          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-          xsi:schemaLocation="http://karaf.apache.org/xmlns/features/v1.2.0 http://karaf.apache.org/xmlns/features/v1.2.0">
-    <feature name='odl-extras-all' version='${project.version}' description='OpenDaylight :: Extras :: All'>
-        <feature version="${project.version}">odl-jolokia</feature>
-    </feature>
-    <feature name="odl-jolokia" version="${project.version}" description="Jolokia JMX/HTTP bridge">
-        <configfile finalname="/etc/org.jolokia.osgi.cfg">mvn:org.opendaylight.controller/odl-jolokia-osgi/{{VERSION}}/cfg/configuration</configfile>
-        <feature>http</feature>
-        <bundle>mvn:org.jolokia/jolokia-osgi/{{VERSION}}</bundle>
-    </feature>
-</features>
diff --git a/features/extras/features4-extras/pom.xml b/features/extras/features4-extras/pom.xml
deleted file mode 100644 (file)
index a602774..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright © 2016, 2017 Red Hat, Inc. and others.
-
- 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.odlparent</groupId>
-        <artifactId>feature-repo-parent</artifactId>
-        <version>1.9.0</version>
-        <relativePath/>
-    </parent>
-
-    <groupId>org.opendaylight.controller</groupId>
-    <artifactId>features4-extras</artifactId>
-    <version>1.9.0-SNAPSHOT</version>
-    <packaging>feature</packaging>
-
-    <dependencies>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>odl-extras-all</artifactId>
-            <version>${project.version}</version>
-            <type>xml</type>
-            <classifier>features</classifier>
-        </dependency>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>odl-jolokia</artifactId>
-            <version>${project.version}</version>
-            <type>xml</type>
-            <classifier>features</classifier>
-        </dependency>
-    </dependencies>
-
-</project>
index 95657aa..6edba87 100644 (file)
@@ -14,7 +14,7 @@
     <parent>
         <groupId>org.opendaylight.odlparent</groupId>
         <artifactId>single-feature-parent</artifactId>
-        <version>1.9.0</version>
+        <version>2.0.0</version>
         <relativePath/>
     </parent>
 
index 90dc979..23106e8 100644 (file)
@@ -14,7 +14,7 @@
     <parent>
         <groupId>org.opendaylight.odlparent</groupId>
         <artifactId>single-feature-parent</artifactId>
-        <version>1.9.0</version>
+        <version>2.0.0</version>
         <relativePath/>
     </parent>
 
index f1c373e..76ab3b6 100644 (file)
@@ -12,7 +12,7 @@
     <parent>
         <groupId>org.opendaylight.odlparent</groupId>
         <artifactId>odlparent-lite</artifactId>
-        <version>1.9.0</version>
+        <version>2.0.0</version>
         <relativePath/>
     </parent>
 
@@ -23,7 +23,6 @@
 
     <modules>
         <module>features-extras</module>
-        <module>features4-extras</module>
         <module>odl-extras-all</module>
         <module>odl-jolokia</module>
     </modules>
index 5a86a60..4b99c84 100644 (file)
 <?xml version="1.0" encoding="UTF-8"?>
-<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.odlparent</groupId>
-    <artifactId>features-parent</artifactId>
-    <version>1.9.0</version>
-    <relativePath/>
-  </parent>
-
-  <groupId>org.opendaylight.controller</groupId>
-  <artifactId>features-mdsal</artifactId>
-  <version>1.6.0-SNAPSHOT</version>
-
-  <packaging>jar</packaging>
+<!--
+ Copyright © 2016, 2017 Red Hat, Inc. and others.
+
+ 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.odlparent</groupId>
+        <artifactId>feature-repo-parent</artifactId>
+        <version>2.0.0</version>
+        <relativePath/>
+    </parent>
 
-  <properties>
-    <blueprint.version>0.7.0-SNAPSHOT</blueprint.version>
-    <yangtools.version>1.2.0-SNAPSHOT</yangtools.version>
-    <mdsal.version>2.3.0-SNAPSHOT</mdsal.version>
-    <mdsal.model.version>0.11.0-SNAPSHOT</mdsal.model.version>
-    <odlparent.version>1.9.0</odlparent.version>
-    <controller.mdsal.version>1.6.0-SNAPSHOT</controller.mdsal.version>
-    <config.version>0.7.0-SNAPSHOT</config.version>
-    <commons.opendaylight.version>1.9.0-SNAPSHOT</commons.opendaylight.version>
-    <akka.features.version>1.9.0</akka.features.version>
-    <features.file>features.xml</features.file>
-    <config.configfile.directory>etc/opendaylight/karaf</config.configfile.directory>
-    <config.clustering.configfile>05-clustering.xml</config.clustering.configfile>
-    <config.clustered-entity-ownership.configfile>06-clustered-entity-ownership.xml</config.clustered-entity-ownership.configfile>
-    <config.netty.configfile>00-netty.xml</config.netty.configfile>
-    <config.mdsal.configfile>01-md-sal.xml</config.mdsal.configfile>
-  </properties>
+    <groupId>org.opendaylight.controller</groupId>
+    <artifactId>features-mdsal</artifactId>
+    <version>1.6.0-SNAPSHOT</version>
+    <packaging>feature</packaging>
 
-  <dependencyManagement>
     <dependencies>
-      <dependency>
-        <groupId>org.opendaylight.odlparent</groupId>
-        <artifactId>odlparent-artifacts</artifactId>
-        <version>1.9.0</version>
-        <scope>import</scope>
-        <type>pom</type>
-      </dependency>
-      <dependency>
-        <groupId>org.opendaylight.yangtools</groupId>
-        <artifactId>yangtools-artifacts</artifactId>
-        <version>${yangtools.version}</version>
-        <scope>import</scope>
-        <type>pom</type>
-      </dependency>
-      <dependency>
-        <groupId>org.opendaylight.mdsal</groupId>
-        <artifactId>mdsal-artifacts</artifactId>
-        <version>${mdsal.version}</version>
-        <scope>import</scope>
-        <type>pom</type>
-      </dependency>
-       <dependency>
-        <groupId>org.opendaylight.controller</groupId>
-        <artifactId>config-artifacts</artifactId>
-        <version>${config.version}</version>
-        <scope>import</scope>
-        <type>pom</type>
-      </dependency>
-      <dependency>
-        <groupId>org.opendaylight.controller</groupId>
-        <artifactId>mdsal-artifacts</artifactId>
-        <version>${controller.mdsal.version}</version>
-        <scope>import</scope>
-        <type>pom</type>
-      </dependency>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>odl-clustering-test-app</artifactId>
+            <version>${project.version}</version>
+            <type>xml</type>
+            <classifier>features</classifier>
+        </dependency>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>odl-mdsal-all</artifactId>
+            <version>${project.version}</version>
+            <type>xml</type>
+            <classifier>features</classifier>
+        </dependency>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>odl-mdsal-broker</artifactId>
+            <version>${project.version}</version>
+            <type>xml</type>
+            <classifier>features</classifier>
+        </dependency>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>odl-mdsal-broker-local</artifactId>
+            <version>${project.version}</version>
+            <type>xml</type>
+            <classifier>features</classifier>
+        </dependency>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>odl-mdsal-clustering</artifactId>
+            <version>${project.version}</version>
+            <type>xml</type>
+            <classifier>features</classifier>
+        </dependency>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>odl-mdsal-clustering-commons</artifactId>
+            <version>${project.version}</version>
+            <type>xml</type>
+            <classifier>features</classifier>
+        </dependency>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>odl-mdsal-common</artifactId>
+            <version>${project.version}</version>
+            <type>xml</type>
+            <classifier>features</classifier>
+        </dependency>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>odl-mdsal-distributed-datastore</artifactId>
+            <version>${project.version}</version>
+            <type>xml</type>
+            <classifier>features</classifier>
+        </dependency>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>odl-mdsal-remoterpc-connector</artifactId>
+            <version>${project.version}</version>
+            <type>xml</type>
+            <classifier>features</classifier>
+        </dependency>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>odl-message-bus-collector</artifactId>
+            <version>${project.version}</version>
+            <type>xml</type>
+            <classifier>features</classifier>
+        </dependency>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>odl-toaster</artifactId>
+            <version>${project.version}</version>
+            <type>xml</type>
+            <classifier>features</classifier>
+        </dependency>
     </dependencies>
-  </dependencyManagement>
-
-  <dependencies>
-
-    <dependency>
-      <groupId>net.java.dev.stax-utils</groupId>
-      <artifactId>stax-utils</artifactId>
-    </dependency>
-
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>blueprint</artifactId>
-      <version>${blueprint.version}</version>
-    </dependency>
-
-    <!-- Required features repositories -->
-    <dependency>
-      <groupId>org.opendaylight.odlparent</groupId>
-      <artifactId>features-odlparent</artifactId>
-      <classifier>features</classifier>
-      <type>xml</type>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.yangtools</groupId>
-      <artifactId>features-yangtools</artifactId>
-      <classifier>features</classifier>
-      <type>xml</type>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.mdsal</groupId>
-      <artifactId>features-mdsal</artifactId>
-      <classifier>features</classifier>
-      <type>xml</type>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.mdsal.model</groupId>
-      <artifactId>features-mdsal-model</artifactId>
-      <classifier>features</classifier>
-      <version>${mdsal.model.version}</version>
-      <type>xml</type>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.odlparent</groupId>
-      <artifactId>features-akka</artifactId>
-      <version>${akka.features.version}</version>
-      <classifier>features</classifier>
-      <type>xml</type>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>features-config</artifactId>
-      <classifier>features</classifier>
-      <type>xml</type>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>features-config-persister</artifactId>
-      <classifier>features</classifier>
-      <type>xml</type>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>features-config-netty</artifactId>
-      <classifier>features</classifier>
-      <type>xml</type>
-    </dependency>
-
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>md-sal-config</artifactId>
-      <version>${controller.mdsal.version}</version>
-      <type>xml</type>
-      <classifier>config</classifier>
-    </dependency>
-
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>sal-akka-raft</artifactId>
-      <version>${controller.mdsal.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>sal-common-api</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>sal-common-impl</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>sal-common-util</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>sal-core-spi</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>sal-broker-impl</artifactId>
-    </dependency>
-
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>sal-binding-api</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>sal-binding-config</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>sal-binding-broker-impl</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>sal-binding-util</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>sal-connector-api</artifactId>
-    </dependency>
-
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>sal-clustering-commons</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>sal-clustering-config</artifactId>
-      <version>${controller.mdsal.version}</version>
-      <type>xml</type>
-      <classifier>moduleshardconf</classifier>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>sal-clustering-config</artifactId>
-      <version>${controller.mdsal.version}</version>
-      <type>xml</type>
-      <classifier>moduleconf</classifier>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>sal-clustering-config</artifactId>
-      <version>${controller.mdsal.version}</version>
-      <type>xml</type>
-      <classifier>akkaconf</classifier>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>sal-clustering-config</artifactId>
-      <version>${controller.mdsal.version}</version>
-      <type>xml</type>
-      <classifier>factoryakkaconf</classifier>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>sal-clustering-config</artifactId>
-      <version>${controller.mdsal.version}</version>
-      <type>xml</type>
-      <classifier>config</classifier>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>sal-clustering-config</artifactId>
-      <version>${controller.mdsal.version}</version>
-      <type>xml</type>
-      <classifier>entityownershipconfig</classifier>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>sal-clustering-config</artifactId>
-      <version>${controller.mdsal.version}</version>
-      <type>cfg</type>
-      <classifier>datastore</classifier>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>sal-cluster-admin-api</artifactId>
-      <version>${controller.mdsal.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>sal-cluster-admin-impl</artifactId>
-      <version>${controller.mdsal.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>sal-distributed-datastore</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>sal-dom-broker-config</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>sal-schema-service</artifactId>
-    </dependency>
-
-    <!-- message-bus -->
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>messagebus-api</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>messagebus-impl</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>messagebus-config</artifactId>
-      <version>${controller.mdsal.version}</version>
-      <type>xml</type>
-      <classifier>config</classifier>
-    </dependency>
-
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>sal-inmemory-datastore</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>sal-remoterpc-connector</artifactId>
-    </dependency>
-
-    <dependency>
-      <groupId>org.opendaylight.controller.model</groupId>
-      <artifactId>model-inventory</artifactId>
-    </dependency>
-
-    <dependency>
-      <groupId>org.opendaylight.controller.samples</groupId>
-      <artifactId>clustering-it-config</artifactId>
-      <version>${controller.mdsal.version}</version>
-      <type>xml</type>
-      <classifier>testmoduleconf</classifier>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller.samples</groupId>
-      <artifactId>clustering-it-config</artifactId>
-      <version>${controller.mdsal.version}</version>
-      <type>xml</type>
-      <classifier>testmoduleshardconf</classifier>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller.samples</groupId>
-      <artifactId>clustering-it-model</artifactId>
-      <version>${controller.mdsal.version}</version>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller.samples</groupId>
-      <artifactId>clustering-it-provider</artifactId>
-      <version>${controller.mdsal.version}</version>
-    </dependency>
-
-
-    <!-- toaster -->
-    <dependency>
-      <groupId>org.opendaylight.controller.samples</groupId>
-      <artifactId>sample-toaster</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller.samples</groupId>
-      <artifactId>sample-toaster-consumer</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller.samples</groupId>
-      <artifactId>sample-toaster-provider</artifactId>
-    </dependency>
-
-  </dependencies>
-
-  <scm>
-    <connection>scm:git:http://git.opendaylight.org/gerrit/controller.git</connection>
-    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
-    <tag>HEAD</tag>
-    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:MD-SAL</url>
-  </scm>
 </project>
diff --git a/features/mdsal/features-mdsal/src/main/features/features.xml b/features/mdsal/features-mdsal/src/main/features/features.xml
deleted file mode 100644 (file)
index 00bb515..0000000
+++ /dev/null
@@ -1,125 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<features name="odl-mdsal-${project.version}" xmlns="http://karaf.apache.org/xmlns/features/v1.2.0"
-   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-   xsi:schemaLocation="http://karaf.apache.org/xmlns/features/v1.2.0 http://karaf.apache.org/xmlns/features/v1.2.0">
-
-    <repository>mvn:org.opendaylight.odlparent/features-odlparent/{{VERSION}}/xml/features</repository>
-    <repository>mvn:org.opendaylight.yangtools/features-yangtools/{{VERSION}}/xml/features</repository>
-
-    <repository>mvn:org.opendaylight.mdsal/features-mdsal/{{VERSION}}/xml/features</repository>
-    <repository>mvn:org.opendaylight.mdsal.model/features-mdsal-model/{{VERSION}}/xml/features</repository>
-
-    <repository>mvn:org.opendaylight.controller/features-config/{{VERSION}}/xml/features</repository>
-    <repository>mvn:org.opendaylight.controller/features-config-persister/{{VERSION}}/xml/features</repository>
-    <repository>mvn:org.opendaylight.controller/features-config-netty/{{VERSION}}/xml/features</repository>
-    <repository>mvn:org.opendaylight.odlparent/features-akka/{{VERSION}}/xml/features</repository>
-    <feature name='odl-mdsal-all' version='${project.version}' description="OpenDaylight :: MDSAL :: All">
-        <feature version='${project.version}'>odl-mdsal-broker</feature>
-        <feature version='${project.version}'>odl-mdsal-broker-local</feature>
-        <feature version='${project.version}'>odl-toaster</feature>
-    </feature>
-    <feature name='odl-mdsal-common' version='${project.version}' description="OpenDaylight :: Config :: All">
-      <feature version='${yangtools.version}'>odl-yangtools-yang-data</feature>
-      <feature version='${config.version}'>odl-config-api</feature>
-      <feature version='${mdsal.version}'>odl-mdsal-binding-runtime</feature>
-      <bundle>wrap:mvn:net.java.dev.stax-utils/stax-utils/{{VERSION}}</bundle>
-      <bundle>mvn:org.opendaylight.controller/sal-common-api/{{VERSION}}</bundle>
-      <bundle>mvn:org.opendaylight.controller/sal-common-impl/{{VERSION}}</bundle>
-      <bundle>mvn:org.opendaylight.controller/sal-common-util/{{VERSION}}</bundle>
-    </feature>
-
-    <feature name='odl-mdsal-broker-local' version='${project.version}' description="OpenDaylight :: MDSAL :: Broker">
-        <feature version='${yangtools.version}'>odl-yangtools-common</feature>
-        <feature version='${mdsal.version}'>odl-mdsal-binding-dom-adapter</feature>
-        <feature version='${mdsal.model.version}'>odl-mdsal-models</feature>
-        <feature version='${project.version}'>odl-mdsal-common</feature>
-        <feature version='${config.version}'>odl-config-startup</feature>
-        <feature version='${config.version}'>odl-config-netty</feature>
-        <feature version="${odlparent.version}">odl-lmax-3</feature>
-        <!-- FIXME: Bug 4202: Add MD-SAL provided odl-mdsal-binding-adapter -->
-        <!-- FIXME: Bug 4202: Add MD-SAL provided odl-mdsal-dom-broker -->
-        <feature version='${mdsal.version}'>odl-mdsal-dom</feature>
-        <feature version='${mdsal.version}'>odl-mdsal-eos-dom</feature>
-        <feature version='${mdsal.version}'>odl-mdsal-eos-binding</feature>
-        <feature version='${mdsal.version}'>odl-mdsal-singleton-dom</feature>
-        <bundle>mvn:org.opendaylight.controller/sal-core-api/{{VERSION}}</bundle>
-        <bundle>mvn:org.opendaylight.controller/sal-core-spi/{{VERSION}}</bundle>
-        <bundle start-level="70">mvn:org.opendaylight.controller/sal-schema-service/{{VERSION}}</bundle>
-        <bundle>mvn:org.opendaylight.controller/sal-broker-impl/{{VERSION}}</bundle>
-        <bundle>mvn:org.opendaylight.controller/sal-binding-api/{{VERSION}}</bundle>
-        <bundle>mvn:org.opendaylight.controller/sal-binding-broker-impl/{{VERSION}}</bundle>
-        <bundle>mvn:org.opendaylight.controller/sal-binding-util/{{VERSION}}</bundle>
-        <bundle>mvn:org.opendaylight.controller/sal-connector-api/{{VERSION}}</bundle>
-        <bundle>mvn:org.opendaylight.controller/sal-dom-config/{{VERSION}}</bundle>
-        <bundle>mvn:org.opendaylight.controller/sal-binding-config/{{VERSION}}</bundle>
-        <bundle>mvn:org.opendaylight.controller/sal-inmemory-datastore/{{VERSION}}</bundle>
-        <bundle>mvn:org.opendaylight.controller/sal-dom-broker-config/{{VERSION}}</bundle>
-        <bundle start-level="40">mvn:org.opendaylight.controller/blueprint/{{VERSION}}</bundle>
-        <configfile finalname="${config.configfile.directory}/${config.mdsal.configfile}" override="true">mvn:org.opendaylight.controller/md-sal-config/{{VERSION}}/xml/config</configfile>
-    </feature>
-    <feature name='odl-toaster' version='${project.version}' description="OpenDaylight :: Toaster">
-        <feature version='${yangtools.version}'>odl-yangtools-common</feature>
-        <feature version='${mdsal.version}'>odl-mdsal-binding-runtime</feature>
-        <feature version='${project.version}'>odl-mdsal-broker</feature>
-        <bundle>mvn:org.opendaylight.controller.samples/sample-toaster/{{VERSION}}</bundle>
-        <bundle>mvn:org.opendaylight.controller.samples/sample-toaster-consumer/{{VERSION}}</bundle>
-        <bundle>mvn:org.opendaylight.controller.samples/sample-toaster-provider/{{VERSION}}</bundle>
-    </feature>
-    <feature name ='odl-mdsal-clustering-commons' version='${project.version}'>
-        <feature version='${project.version}'>odl-mdsal-broker-local</feature>
-        <feature version="${odlparent.version}">odl-akka-system-2.4</feature>
-        <feature version="${odlparent.version}">odl-akka-persistence-2.4</feature>
-        <feature version="${odlparent.version}">odl-akka-clustering-2.4</feature>
-        <bundle>mvn:org.opendaylight.controller/sal-clustering-commons/{{VERSION}}</bundle>
-        <bundle>mvn:org.opendaylight.controller/sal-akka-raft/{{VERSION}}</bundle>
-        <bundle>mvn:io.dropwizard.metrics/metrics-core/{{VERSION}}</bundle>
-    </feature>
-    <feature name ='odl-mdsal-distributed-datastore' version='${project.version}'>
-        <feature version='${project.version}'>odl-mdsal-broker-local</feature>
-        <feature version='${project.version}'>odl-mdsal-clustering-commons</feature>
-        <bundle>mvn:org.opendaylight.controller/cds-access-api/{{VERSION}}</bundle>
-        <bundle>mvn:org.opendaylight.controller/cds-access-client/{{VERSION}}</bundle>
-        <bundle>mvn:org.opendaylight.controller/cds-dom-api/{{VERSION}}</bundle>
-        <bundle>mvn:org.opendaylight.controller/sal-distributed-datastore/{{VERSION}}</bundle>
-        <bundle>mvn:org.opendaylight.controller/sal-cluster-admin-api/{{VERSION}}</bundle>
-        <bundle>mvn:org.opendaylight.controller/sal-cluster-admin-impl/{{VERSION}}</bundle>
-    </feature>
-    <feature name ='odl-mdsal-remoterpc-connector' version='${project.version}'>
-        <feature version='${project.version}'>odl-mdsal-broker-local</feature>
-        <feature version='${project.version}'>odl-mdsal-clustering-commons</feature>
-        <feature version="${odlparent.version}">odl-akka-leveldb-0.7</feature>
-        <bundle>mvn:org.opendaylight.controller/sal-remoterpc-connector/{{VERSION}}</bundle>
-    </feature>
-    <feature name ='odl-mdsal-broker' version='${project.version}'>
-        <feature version='${project.version}'>odl-mdsal-remoterpc-connector</feature>
-        <feature version='${project.version}'>odl-mdsal-distributed-datastore</feature>
-        <configfile finalname="${config.configfile.directory}/${config.clustering.configfile}" override="true" >mvn:org.opendaylight.controller/sal-clustering-config/{{VERSION}}/xml/config</configfile>
-        <configfile finalname="${config.configfile.directory}/${config.clustered-entity-ownership.configfile}">mvn:org.opendaylight.controller/sal-clustering-config/{{VERSION}}/xml/entityownershipconfig</configfile>
-        <configfile finalname="configuration/initial/akka.conf">mvn:org.opendaylight.controller/sal-clustering-config/{{VERSION}}/xml/akkaconf</configfile>
-        <configfile finalname="configuration/factory/akka.conf" override="true">mvn:org.opendaylight.controller/sal-clustering-config/{{VERSION}}/xml/factoryakkaconf</configfile>
-        <configfile finalname="configuration/initial/module-shards.conf">mvn:org.opendaylight.controller/sal-clustering-config/{{VERSION}}/xml/moduleshardconf</configfile>
-        <configfile finalname="configuration/initial/modules.conf">mvn:org.opendaylight.controller/sal-clustering-config/{{VERSION}}/xml/moduleconf</configfile>
-        <configfile finalname="etc/org.opendaylight.controller.cluster.datastore.cfg">mvn:org.opendaylight.controller/sal-clustering-config/{{VERSION}}/cfg/datastore</configfile>
-    </feature>
-    <feature name ='odl-mdsal-clustering' version='${project.version}'>
-      <feature version='${project.version}'>odl-mdsal-broker</feature>
-    </feature>
-    <feature name='odl-clustering-test-app' version='${project.version}'>
-        <feature version='${mdsal.model.version}'>odl-mdsal-models</feature>
-        <feature version='${project.version}'>odl-mdsal-broker</feature>
-        <bundle>mvn:org.opendaylight.controller.samples/clustering-it-model/{{VERSION}}</bundle>
-        <bundle>mvn:org.opendaylight.controller.samples/clustering-it-provider/{{VERSION}}</bundle>
-    </feature>
-
-    <feature name='odl-message-bus-collector' version='${project.version}'>
-        <!-- FIXME: Bug 4202: Switch to MD-SAL provided odl-mdsal-binding-base -->
-        <bundle>mvn:org.opendaylight.controller.model/model-inventory/{{VERSION}}</bundle>
-        <feature version='${project.version}'>odl-mdsal-broker</feature>
-        <bundle>mvn:org.opendaylight.controller/messagebus-api/{{VERSION}}</bundle>
-        <bundle>mvn:org.opendaylight.controller/messagebus-spi/{{VERSION}}</bundle>
-        <bundle>mvn:org.opendaylight.controller/messagebus-util/{{VERSION}}</bundle>
-        <bundle>mvn:org.opendaylight.controller/messagebus-impl/{{VERSION}}</bundle>
-        <configfile finalname="${config.configfile.directory}/05-message-bus.xml">mvn:org.opendaylight.controller/messagebus-config/{{VERSION}}/xml/config</configfile>
-    </feature>
-</features>
diff --git a/features/mdsal/features4-mdsal/pom.xml b/features/mdsal/features4-mdsal/pom.xml
deleted file mode 100644 (file)
index 45d8431..0000000
+++ /dev/null
@@ -1,105 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright © 2016, 2017 Red Hat, Inc. and others.
-
- 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.odlparent</groupId>
-        <artifactId>feature-repo-parent</artifactId>
-        <version>1.9.0</version>
-        <relativePath/>
-    </parent>
-
-    <groupId>org.opendaylight.controller</groupId>
-    <artifactId>features4-mdsal</artifactId>
-    <version>1.6.0-SNAPSHOT</version>
-    <packaging>feature</packaging>
-
-    <dependencies>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>odl-clustering-test-app</artifactId>
-            <version>${project.version}</version>
-            <type>xml</type>
-            <classifier>features</classifier>
-        </dependency>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>odl-mdsal-all</artifactId>
-            <version>${project.version}</version>
-            <type>xml</type>
-            <classifier>features</classifier>
-        </dependency>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>odl-mdsal-broker</artifactId>
-            <version>${project.version}</version>
-            <type>xml</type>
-            <classifier>features</classifier>
-        </dependency>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>odl-mdsal-broker-local</artifactId>
-            <version>${project.version}</version>
-            <type>xml</type>
-            <classifier>features</classifier>
-        </dependency>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>odl-mdsal-clustering</artifactId>
-            <version>${project.version}</version>
-            <type>xml</type>
-            <classifier>features</classifier>
-        </dependency>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>odl-mdsal-clustering-commons</artifactId>
-            <version>${project.version}</version>
-            <type>xml</type>
-            <classifier>features</classifier>
-        </dependency>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>odl-mdsal-common</artifactId>
-            <version>${project.version}</version>
-            <type>xml</type>
-            <classifier>features</classifier>
-        </dependency>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>odl-mdsal-distributed-datastore</artifactId>
-            <version>${project.version}</version>
-            <type>xml</type>
-            <classifier>features</classifier>
-        </dependency>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>odl-mdsal-remoterpc-connector</artifactId>
-            <version>${project.version}</version>
-            <type>xml</type>
-            <classifier>features</classifier>
-        </dependency>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>odl-message-bus-collector</artifactId>
-            <version>${project.version}</version>
-            <type>xml</type>
-            <classifier>features</classifier>
-        </dependency>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>odl-toaster</artifactId>
-            <version>${project.version}</version>
-            <type>xml</type>
-            <classifier>features</classifier>
-        </dependency>
-    </dependencies>
-</project>
index 93eecc9..b1a4f96 100644 (file)
@@ -14,7 +14,7 @@
     <parent>
         <groupId>org.opendaylight.odlparent</groupId>
         <artifactId>single-feature-parent</artifactId>
-        <version>1.9.0</version>
+        <version>2.0.0</version>
         <relativePath/>
     </parent>
 
index cd044c9..fc70670 100644 (file)
@@ -14,7 +14,7 @@
     <parent>
         <groupId>org.opendaylight.odlparent</groupId>
         <artifactId>single-feature-parent</artifactId>
-        <version>1.9.0</version>
+        <version>2.0.0</version>
         <relativePath/>
     </parent>
 
index fe7dbf8..7334bb0 100644 (file)
@@ -14,7 +14,7 @@
     <parent>
         <groupId>org.opendaylight.odlparent</groupId>
         <artifactId>single-feature-parent</artifactId>
-        <version>1.9.0</version>
+        <version>2.0.0</version>
         <relativePath/>
     </parent>
 
@@ -36,7 +36,7 @@
             <dependency>
                 <groupId>org.opendaylight.odlparent</groupId>
                 <artifactId>odlparent-artifacts</artifactId>
-                <version>1.9.0</version>
+                <version>2.0.0</version>
                 <type>pom</type>
                 <scope>import</scope>
             </dependency>
         </dependency>
         <dependency>
             <groupId>org.opendaylight.odlparent</groupId>
-            <artifactId>odl4-lmax-3</artifactId>
+            <artifactId>odl-lmax-3</artifactId>
             <type>xml</type>
             <classifier>features</classifier>
         </dependency>
         </dependency>
     </dependencies>
 
-</project>
\ No newline at end of file
+</project>
index 8fa01f5..940f78f 100644 (file)
@@ -14,7 +14,7 @@
     <parent>
         <groupId>org.opendaylight.odlparent</groupId>
         <artifactId>single-feature-parent</artifactId>
-        <version>1.9.0</version>
+        <version>2.0.0</version>
         <relativePath/>
     </parent>
 
index 88daffa..7b5e41b 100644 (file)
@@ -14,7 +14,7 @@
     <parent>
         <groupId>org.opendaylight.odlparent</groupId>
         <artifactId>single-feature-parent</artifactId>
-        <version>1.9.0</version>
+        <version>2.0.0</version>
         <relativePath/>
     </parent>
 
@@ -28,7 +28,7 @@
             <dependency>
                 <groupId>org.opendaylight.odlparent</groupId>
                 <artifactId>odlparent-artifacts</artifactId>
-                <version>1.9.0</version>
+                <version>2.0.0</version>
                 <type>pom</type>
                 <scope>import</scope>
             </dependency>
         </dependency>
         <dependency>
             <groupId>org.opendaylight.odlparent</groupId>
-            <artifactId>odl4-akka-system-2.4</artifactId>
+            <artifactId>odl-akka-system-2.4</artifactId>
             <type>xml</type>
             <classifier>features</classifier>
         </dependency>
         <dependency>
             <groupId>org.opendaylight.odlparent</groupId>
-            <artifactId>odl4-akka-persistence-2.4</artifactId>
+            <artifactId>odl-akka-persistence-2.4</artifactId>
             <type>xml</type>
             <classifier>features</classifier>
         </dependency>
         <dependency>
             <groupId>org.opendaylight.odlparent</groupId>
-            <artifactId>odl4-akka-clustering-2.4</artifactId>
+            <artifactId>odl-akka-clustering-2.4</artifactId>
             <type>xml</type>
             <classifier>features</classifier>
         </dependency>
@@ -77,4 +77,4 @@
         </dependency>
     </dependencies>
 
-</project>
\ No newline at end of file
+</project>
index ff3e6ea..685fec5 100644 (file)
@@ -14,7 +14,7 @@
     <parent>
         <groupId>org.opendaylight.odlparent</groupId>
         <artifactId>single-feature-parent</artifactId>
-        <version>1.9.0</version>
+        <version>2.0.0</version>
         <relativePath/>
     </parent>
 
index 40e84f4..d18464a 100644 (file)
@@ -14,7 +14,7 @@
     <parent>
         <groupId>org.opendaylight.odlparent</groupId>
         <artifactId>single-feature-parent</artifactId>
-        <version>1.9.0</version>
+        <version>2.0.0</version>
         <relativePath/>
     </parent>
 
index c03b154..370004f 100644 (file)
@@ -14,7 +14,7 @@
     <parent>
         <groupId>org.opendaylight.odlparent</groupId>
         <artifactId>single-feature-parent</artifactId>
-        <version>1.9.0</version>
+        <version>2.0.0</version>
         <relativePath/>
     </parent>
 
index 80fb3b6..4e3a94a 100644 (file)
@@ -14,7 +14,7 @@
     <parent>
         <groupId>org.opendaylight.odlparent</groupId>
         <artifactId>single-feature-parent</artifactId>
-        <version>1.9.0</version>
+        <version>2.0.0</version>
         <relativePath/>
     </parent>
 
@@ -40,8 +40,8 @@
         </dependency>
         <dependency>
             <groupId>org.opendaylight.odlparent</groupId>
-            <artifactId>odl4-akka-leveldb-0.7</artifactId>
-            <version>1.9.0</version>
+            <artifactId>odl-akka-leveldb-0.7</artifactId>
+            <version>2.0.0</version>
             <type>xml</type>
             <classifier>features</classifier>
         </dependency>
@@ -51,4 +51,4 @@
             <version>${project.version}</version>
         </dependency>
     </dependencies>
-</project>
\ No newline at end of file
+</project>
index c5aa9df..334285c 100644 (file)
@@ -14,7 +14,7 @@
     <parent>
         <groupId>org.opendaylight.odlparent</groupId>
         <artifactId>single-feature-parent</artifactId>
-        <version>1.9.0</version>
+        <version>2.0.0</version>
         <relativePath/>
     </parent>
 
index a5e745b..6797fc3 100644 (file)
@@ -14,7 +14,7 @@
     <parent>
         <groupId>org.opendaylight.odlparent</groupId>
         <artifactId>single-feature-parent</artifactId>
-        <version>1.9.0</version>
+        <version>2.0.0</version>
         <relativePath/>
     </parent>
 
index d4cc762..8b29fe9 100644 (file)
@@ -12,7 +12,7 @@
     <parent>
         <groupId>org.opendaylight.odlparent</groupId>
         <artifactId>odlparent-lite</artifactId>
-        <version>1.9.0</version>
+        <version>2.0.0</version>
         <relativePath/>
     </parent>
 
@@ -24,7 +24,6 @@
 
     <modules>
         <module>features-mdsal</module>
-        <module>features4-mdsal</module>
         <module>odl-clustering-test-app</module>
         <module>odl-mdsal-all</module>
         <module>odl-mdsal-broker</module>
index 62f88f1..5f09aa9 100644 (file)
@@ -4,7 +4,7 @@
   <parent>
     <groupId>org.opendaylight.odlparent</groupId>
     <artifactId>odlparent-lite</artifactId>
-    <version>1.9.0</version>
+    <version>2.0.0</version>
     <relativePath/>
   </parent>
 
index c9ed8f6..13d297e 100644 (file)
@@ -1,47 +1,36 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<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.odlparent</groupId>
-    <artifactId>features-parent</artifactId>
-    <version>1.9.0</version>
-    <relativePath/>
-  </parent>
+<!--
+ Copyright © 2016, 2017 Red Hat, Inc. and others.
 
-  <groupId>org.opendaylight.controller</groupId>
-  <artifactId>features-protocol-framework</artifactId>
-  <version>0.10.0-SNAPSHOT</version>
-  <packaging>jar</packaging>
+ 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>
 
-  <properties>
-    <config.version>0.7.0-SNAPSHOT</config.version>
-  </properties>
+    <parent>
+        <groupId>org.opendaylight.odlparent</groupId>
+        <artifactId>feature-repo-parent</artifactId>
+        <version>2.0.0</version>
+        <relativePath/>
+    </parent>
+
+    <groupId>org.opendaylight.controller</groupId>
+    <artifactId>features-protocol-framework</artifactId>
+    <version>0.10.0-SNAPSHOT</version>
+    <packaging>feature</packaging>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.opendaylight.controller</groupId>
+            <artifactId>odl-protocol-framework</artifactId>
+            <version>0.10.0-SNAPSHOT</version>
+            <type>xml</type>
+            <classifier>features</classifier>
+        </dependency>
+    </dependencies>
 
-  <dependencies>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>features-config</artifactId>
-      <classifier>features</classifier>
-      <version>${config.version}</version>
-      <type>xml</type>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>features-config-netty</artifactId>
-      <version>${config.version}</version>
-      <classifier>features</classifier>
-      <type>xml</type>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>protocol-framework</artifactId>
-      <version>${project.version}</version>
-    </dependency>
-  </dependencies>
-  <scm>
-    <connection>scm:git:http://git.opendaylight.org/gerrit/controller.git</connection>
-    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
-    <tag>HEAD</tag>
-    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:MD-SAL</url>
-  </scm>
 </project>
diff --git a/features/protocol-framework/features-protocol-framework/src/main/features/features.xml b/features/protocol-framework/features-protocol-framework/src/main/features/features.xml
deleted file mode 100644 (file)
index 01ff469..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<features name="odl-protocol-framework-${project.version}" xmlns="http://karaf.apache.org/xmlns/features/v1.2.0"
-          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-          xsi:schemaLocation="http://karaf.apache.org/xmlns/features/v1.2.0 http://karaf.apache.org/xmlns/features/v1.2.0">
-  <repository>mvn:org.opendaylight.controller/features-config/{{VERSION}}/xml/features</repository>
-  <repository>mvn:org.opendaylight.controller/features-config-netty/{{VERSION}}/xml/features</repository>
-  <feature name='odl-protocol-framework' version='${project.version}' description="OpenDaylight :: Protocol Framework">
-    <feature version='${config.version}'>odl-config-api</feature>
-    <feature version='${config.version}'>odl-config-netty-config-api</feature>
-    <bundle>mvn:org.opendaylight.controller/protocol-framework/{{VERSION}}</bundle>
-  </feature>
-</features>
diff --git a/features/protocol-framework/features4-protocol-framework/pom.xml b/features/protocol-framework/features4-protocol-framework/pom.xml
deleted file mode 100644 (file)
index ad8bf68..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright © 2016, 2017 Red Hat, Inc. and others.
-
- 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.odlparent</groupId>
-        <artifactId>feature-repo-parent</artifactId>
-        <version>1.9.0</version>
-        <relativePath/>
-    </parent>
-
-    <groupId>org.opendaylight.controller</groupId>
-    <artifactId>features4-protocol-framework</artifactId>
-    <version>0.10.0-SNAPSHOT</version>
-    <packaging>feature</packaging>
-
-    <dependencies>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>odl-protocol-framework</artifactId>
-            <version>0.10.0-SNAPSHOT</version>
-            <type>xml</type>
-            <classifier>features</classifier>
-        </dependency>
-    </dependencies>
-
-</project>
\ No newline at end of file
index b6a754a..5e54f4e 100644 (file)
@@ -14,7 +14,7 @@
     <parent>
         <groupId>org.opendaylight.odlparent</groupId>
         <artifactId>single-feature-parent</artifactId>
-        <version>1.9.0</version>
+        <version>2.0.0</version>
         <relativePath/>
     </parent>
 
index e422061..afc0fd9 100644 (file)
@@ -12,7 +12,7 @@
     <parent>
         <groupId>org.opendaylight.odlparent</groupId>
         <artifactId>odlparent-lite</artifactId>
-        <version>1.9.0</version>
+        <version>2.0.0</version>
         <relativePath/>
     </parent>
 
@@ -23,7 +23,6 @@
 
     <modules>
         <module>features-protocol-framework</module>
-        <module>features4-protocol-framework</module>
         <module>odl-protocol-framework</module>
     </modules>
 
diff --git a/karaf/karaf-parent/pom.xml b/karaf/karaf-parent/pom.xml
deleted file mode 100644 (file)
index e343943..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-Copyright (c) 2014 Cisco Systems, Inc. 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">
-  <parent>
-    <groupId>org.opendaylight.odlparent</groupId>
-    <artifactId>karaf-parent</artifactId>
-    <version>1.9.0</version>
-    <relativePath/>
-  </parent>
-  <modelVersion>4.0.0</modelVersion>
-  <groupId>org.opendaylight.controller</groupId>
-  <artifactId>karaf-parent</artifactId>
-  <version>1.9.0-SNAPSHOT</version>
-  <name>${project.artifactId}</name>
-  <packaging>pom</packaging>
-
-</project>
index 47797e7..deba74b 100644 (file)
@@ -3,10 +3,11 @@
   <modelVersion>4.0.0</modelVersion>
   <parent>
     <groupId>org.opendaylight.odlparent</groupId>
-    <artifactId>karaf-parent</artifactId>
-    <version>1.9.0</version>
+    <artifactId>karaf4-parent</artifactId>
+    <version>2.0.0</version>
     <relativePath/>
   </parent>
+
   <groupId>org.opendaylight.controller</groupId>
   <artifactId>distribution.opendaylight-karaf</artifactId>
   <version>1.9.0-SNAPSHOT</version>
index 6c1563d..d571aa0 100644 (file)
@@ -12,15 +12,17 @@ and is available at http://www.eclipse.org/legal/epl-v10.html
   <parent>
     <groupId>org.opendaylight.odlparent</groupId>
     <artifactId>odlparent-lite</artifactId>
-    <version>1.9.0</version>
+    <version>2.0.0</version>
     <relativePath/>
   </parent>
+
   <groupId>org.opendaylight.controller</groupId>
   <artifactId>karaf-aggregator</artifactId>
   <version>1.5.0-SNAPSHOT</version>
   <packaging>pom</packaging>
+
   <modules>
-    <module>karaf-parent</module>
-    <module>opendaylight-karaf</module>
+    <!-- FIXME: re-enable this once we are on 2.0.0
+    <module>opendaylight-karaf</module-->
   </modules>
 </project>
index f31eb3b..9b17f6f 100644 (file)
@@ -17,7 +17,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html
   <parent>
     <groupId>org.opendaylight.odlparent</groupId>
     <artifactId>odlparent-lite</artifactId>
-    <version>1.9.0</version>
+    <version>2.0.0</version>
     <relativePath/>
   </parent>
 
index 0f0046d..cd39f56 100644 (file)
@@ -17,7 +17,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html INTERNAL
   <parent>
     <groupId>org.opendaylight.odlparent</groupId>
     <artifactId>features-parent</artifactId>
-    <version>1.9.0</version>
+    <version>2.0.0</version>
     <relativePath/>
   </parent>
 
index 149241d..5093f84 100644 (file)
@@ -16,7 +16,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html INTERNAL
   <parent>
     <groupId>org.opendaylight.odlparent</groupId>
     <artifactId>karaf-parent</artifactId>
-    <version>1.9.0</version>
+    <version>2.0.0</version>
   </parent>
 
   <groupId>${groupId}</groupId>
index d4a8d5e..5f205c0 100644 (file)
@@ -11,7 +11,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html INTERNAL
   <parent>
     <groupId>org.opendaylight.odlparent</groupId>
     <artifactId>odlparent</artifactId>
-    <version>1.9.0</version>
+    <version>2.0.0</version>
     <relativePath/>
   </parent>
 
index 0618446..e0a7180 100644 (file)
@@ -5,7 +5,7 @@
   <parent>
     <groupId>org.opendaylight.odlparent</groupId>
     <artifactId>odlparent</artifactId>
-    <version>1.9.0</version>
+    <version>2.0.0</version>
     <relativePath/>
   </parent>
 
index 9bb8ce8..c030bfb 100644 (file)
@@ -5,7 +5,7 @@
   <parent>
     <groupId>org.opendaylight.odlparent</groupId>
     <artifactId>bundle-parent</artifactId>
-    <version>1.9.0</version>
+    <version>2.0.0</version>
     <relativePath/>
   </parent>
 
index 77d5c7d..aa6737f 100644 (file)
@@ -4,7 +4,7 @@
   <parent>
     <groupId>org.opendaylight.odlparent</groupId>
     <artifactId>odlparent</artifactId>
-    <version>1.9.0</version>
+    <version>2.0.0</version>
     <relativePath/>
   </parent>
 
index 17953ac..a1687b6 100644 (file)
@@ -5,7 +5,7 @@
   <parent>
     <groupId>org.opendaylight.odlparent</groupId>
     <artifactId>bundle-parent</artifactId>
-    <version>1.9.0</version>
+    <version>2.0.0</version>
     <relativePath/>
   </parent>
 
index af006c7..3ed2b0b 100644 (file)
@@ -4,7 +4,7 @@
   <parent>
     <groupId>org.opendaylight.odlparent</groupId>
     <artifactId>odlparent</artifactId>
-    <version>1.9.0</version>
+    <version>2.0.0</version>
     <relativePath/>
   </parent>
   <groupId>org.opendaylight.controller</groupId>
index 314fdea..570ae81 100644 (file)
@@ -7,7 +7,7 @@
   <parent>
     <groupId>org.opendaylight.odlparent</groupId>
     <artifactId>bundle-parent</artifactId>
-    <version>1.9.0</version>
+    <version>2.0.0</version>
     <relativePath/>
   </parent>
 
index 2d40551..b70b3da 100644 (file)
                 <artifactId>config-persister-feature-adapter</artifactId>
                 <version>${project.version}</version>
             </dependency>
-            <dependency>
-                <groupId>${project.groupId}</groupId>
-                <artifactId>config-persister-feature4-adapter</artifactId>
-                <version>${project.version}</version>
-            </dependency>
             <dependency>
                 <groupId>${project.groupId}</groupId>
                 <artifactId>config-persister-file-adapter</artifactId>
index cf62269..ef0d04a 100644 (file)
@@ -19,7 +19,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html
   <packaging>bundle</packaging>
 
   <properties>
-    <opendaylight.karaf.version>1.9.0</opendaylight.karaf.version>
+    <opendaylight.karaf.version>2.0.0</opendaylight.karaf.version>
   </properties>
 
   <dependencyManagement>
index 46e45f6..e173abe 100644 (file)
@@ -13,7 +13,7 @@
     <parent>
         <groupId>org.opendaylight.odlparent</groupId>
         <artifactId>bundle-parent</artifactId>
-        <version>1.9.0</version>
+        <version>2.0.0</version>
         <relativePath/>
     </parent>
 
index 7e33cee..bce4d3c 100644 (file)
@@ -19,11 +19,15 @@ import javax.xml.bind.JAXBException;
 import javax.xml.parsers.DocumentBuilderFactory;
 import javax.xml.stream.XMLStreamException;
 import org.apache.karaf.features.BundleInfo;
+import org.apache.karaf.features.Capability;
 import org.apache.karaf.features.Conditional;
 import org.apache.karaf.features.ConfigFileInfo;
 import org.apache.karaf.features.ConfigInfo;
 import org.apache.karaf.features.Dependency;
 import org.apache.karaf.features.Feature;
+import org.apache.karaf.features.Library;
+import org.apache.karaf.features.Requirement;
+import org.apache.karaf.features.Scoping;
 import org.opendaylight.controller.config.persist.storage.file.xml.model.ConfigSnapshot;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -151,139 +155,114 @@ public class AbstractFeatureWrapper implements Feature {
         return feature.getName();
     }
 
-    /**
-     * @return
-     * @see org.apache.karaf.features.Feature#getId()
-     */
     @Override
     public String getId() {
         return feature.getId();
     }
 
-    /**
-     * @return
-     * @see org.apache.karaf.features.Feature#getName()
-     */
     @Override
     public String getName() {
         return feature.getName();
     }
 
-    /**
-     * @return
-     * @see org.apache.karaf.features.Feature#getDescription()
-     */
     @Override
     public String getDescription() {
         return feature.getDescription();
     }
 
-    /**
-     * @return
-     * @see org.apache.karaf.features.Feature#getDetails()
-     */
     @Override
     public String getDetails() {
         return feature.getDetails();
     }
 
-    /**
-     * @return
-     * @see org.apache.karaf.features.Feature#getVersion()
-     */
     @Override
     public String getVersion() {
         return feature.getVersion();
     }
 
-    /**
-     * @return
-     * @see org.apache.karaf.features.Feature#hasVersion()
-     */
     @Override
     public boolean hasVersion() {
         return feature.hasVersion();
     }
 
-    /**
-     * @return
-     * @see org.apache.karaf.features.Feature#getResolver()
-     */
     @Override
     public String getResolver() {
         return feature.getResolver();
     }
 
-    /**
-     * @return
-     * @see org.apache.karaf.features.Feature#getInstall()
-     */
     @Override
     public String getInstall() {
         return feature.getInstall();
     }
 
-    /**
-     * @return
-     * @see org.apache.karaf.features.Feature#getDependencies()
-     */
     @Override
     public List<Dependency> getDependencies() {
         return feature.getDependencies();
     }
 
-    /**
-     * @return
-     * @see org.apache.karaf.features.Feature#getBundles()
-     */
     @Override
     public List<BundleInfo> getBundles() {
         return feature.getBundles();
     }
 
-    /**
-     * @return
-     * @see org.apache.karaf.features.Feature#getConfigurations()
-     */
     @Override
     public List<ConfigInfo> getConfigurations() {
         return feature.getConfigurations();
     }
 
-    /**
-     * @return
-     * @see org.apache.karaf.features.Feature#getConfigurationFiles()
-     */
     @Override
     public List<ConfigFileInfo> getConfigurationFiles() {
         return feature.getConfigurationFiles();
     }
 
-    /**
-     * @return
-     * @see org.apache.karaf.features.Feature#getConditional()
-     */
     @Override
     public List<? extends Conditional> getConditional() {
         return feature.getConditional();
     }
 
-    /**
-     * @return
-     * @see org.apache.karaf.features.Feature#getStartLevel()
-     */
     @Override
     public int getStartLevel() {
         return feature.getStartLevel();
     }
 
-    /**
-     * @return
-     * @see org.apache.karaf.features.Feature#getRegion()
-     */
     @Override
-    public String getRegion() {
-        return feature.getRegion();
+    public List<? extends Capability> getCapabilities() {
+        return feature.getCapabilities();
+    }
+
+    @Override
+    public List<? extends Library> getLibraries() {
+        return feature.getLibraries();
+    }
+
+    @Override
+    public String getNamespace() {
+        return feature.getNamespace();
+    }
+
+    @Override
+    public String getRepositoryUrl() {
+        return feature.getRepositoryUrl();
+    }
+
+    @Override
+    public List<? extends Requirement> getRequirements() {
+        return feature.getRequirements();
+    }
+
+    @Override
+    public List<String> getResourceRepositories() {
+        return feature.getResourceRepositories();
+    }
+
+    @Override
+    public Scoping getScoping() {
+        return feature.getScoping();
+    }
+
+    @Override
+    public boolean isHidden() {
+        return feature.isHidden();
     }
 
 }
index 15223a8..5d487e0 100644 (file)
@@ -11,14 +11,14 @@ import com.google.common.base.Optional;
 import com.google.common.collect.LinkedHashMultimap;
 import java.util.ArrayList;
 import java.util.Arrays;
-import java.util.ConcurrentModificationException;
+import java.util.Collections;
 import java.util.LinkedHashSet;
 import java.util.List;
 import java.util.Set;
+import java.util.concurrent.TimeUnit;
 import org.apache.karaf.features.Feature;
 import org.apache.karaf.features.FeaturesService;
 import org.opendaylight.controller.config.persist.api.ConfigPusher;
-import org.opendaylight.controller.config.persist.api.ConfigSnapshotHolder;
 import org.opendaylight.controller.config.persist.storage.file.xml.XmlFileStorageAdapter;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -27,14 +27,12 @@ import org.slf4j.LoggerFactory;
  * Simple class to push configs to the config subsystem from Feature's configfiles
  */
 public class FeatureConfigPusher {
-
     private static final Logger LOG = LoggerFactory.getLogger(FeatureConfigPusher.class);
+    private static final int MAX_RETRIES = 100;
+    private static final int RETRY_PAUSE_MILLIS = 1;
 
-    private static final int MAX_RETRIES = 10;
-    private static final int RETRY_PAUSE_MILLIS = 100;
-
-    private final FeaturesService featuresService;
-    private final ConfigPusher pusher;
+    private FeaturesService featuresService = null;
+    private ConfigPusher pusher = null;
 
     /*
      * A LinkedHashSet (to preserve order and insure uniqueness) of the pushedConfigs
@@ -42,20 +40,20 @@ public class FeatureConfigPusher {
      * chains.  Also, preserves the *original* Feature chain for which we pushed the config.
      * (which is handy for logging).
      */
-    Set<FeatureConfigSnapshotHolder> pushedConfigs = new LinkedHashSet<>();
+    private final Set<FeatureConfigSnapshotHolder> pushedConfigs = new LinkedHashSet<>();
 
     /*
      * LinkedHashMultimap to track which configs we pushed for each Feature installation
      * For future use
      */
-    LinkedHashMultimap<Feature,FeatureConfigSnapshotHolder> feature2configs = LinkedHashMultimap.create();
+    private final LinkedHashMultimap<Feature,FeatureConfigSnapshotHolder> feature2configs = LinkedHashMultimap.create();
 
     /*
      * @param p - ConfigPusher to push ConfigSnapshotHolders
      */
-    public FeatureConfigPusher(final ConfigPusher pusher, final FeaturesService featuresService) {
-        this.pusher = pusher;
-        this.featuresService = featuresService;
+    public FeatureConfigPusher(final ConfigPusher p, final FeaturesService f) {
+        pusher = p;
+        featuresService = f;
     }
     /*
      * Push config files from Features to config subsystem
@@ -66,11 +64,10 @@ public class FeatureConfigPusher {
      * If a Feature is not in the returned LinkedHashMultimap then we couldn't push its configs
      * (Ususally because it was not yet installed)
      */
-    public LinkedHashMultimap<Feature, FeatureConfigSnapshotHolder> pushConfigs(final List<Feature> features) throws Exception {
+    public LinkedHashMultimap<Feature, FeatureConfigSnapshotHolder> pushConfigs(final List<Feature> features)
+            throws Exception {
         LinkedHashMultimap<Feature, FeatureConfigSnapshotHolder> pushedFeatures = LinkedHashMultimap.create();
         for (Feature feature : features) {
-
-
             Set<FeatureConfigSnapshotHolder> configSnapShots = pushConfig(feature);
             if (!configSnapShots.isEmpty()) {
                 pushedFeatures.putAll(feature, configSnapShots);
@@ -80,57 +77,60 @@ public class FeatureConfigPusher {
     }
 
     private Set<FeatureConfigSnapshotHolder> pushConfig(final Feature feature) throws Exception {
-        Set<FeatureConfigSnapshotHolder> configs = new LinkedHashSet<>();
-        if(isInstalled(feature)) {
-            // FIXME Workaround for BUG-2836, features service returns null for feature: standard-condition-webconsole_0_0_0, 3.0.1
-            if(featuresService.getFeature(feature.getName(), feature.getVersion()) == null) {
-                LOG.debug("Feature: {}, {} is missing from features service. Skipping", feature.getName(), feature.getVersion());
-            } else {
-                ChildAwareFeatureWrapper wrappedFeature = new ChildAwareFeatureWrapper(feature, featuresService);
-                configs = wrappedFeature.getFeatureConfigSnapshotHolders();
-                if (!configs.isEmpty()) {
-                    configs = pushConfig(configs, feature);
-                    feature2configs.putAll(feature, configs);
-                }
-            }
+        // Ignore feature conditions — these encode conditions on other features and shouldn't be processed here
+        if (feature.getName().contains("-condition-")) {
+            LOG.debug("Ignoring conditional feature {}", feature);
+            return Collections.emptySet();
+        }
+        // pax-exam's Karaf container generates a wrapper feature holding the test dependencies. Ignore it.
+        if ("test-dependencies".equals(feature.getName())) {
+            LOG.debug("Ignoring pax-exam wrapper feature {}", feature);
+            return Collections.emptySet();
+        }
+
+        if (!isInstalled(feature)) {
+            return Collections.emptySet();
+        }
+        // FIXME Workaround for BUG-2836, features service returns null for feature:
+        // standard-condition-webconsole_0_0_0, 3.0.1
+        if (featuresService.getFeature(feature.getName(), feature.getVersion()) == null) {
+            LOG.debug("Feature: {}, {} is missing from features service. Skipping", feature.getName(),
+                feature.getVersion());
+            return Collections.emptySet();
+        }
+
+        ChildAwareFeatureWrapper wrappedFeature = new ChildAwareFeatureWrapper(feature, featuresService);
+        Set<FeatureConfigSnapshotHolder> configs = wrappedFeature.getFeatureConfigSnapshotHolders();
+        if (!configs.isEmpty()) {
+            configs = pushConfig(configs, feature);
+            feature2configs.putAll(feature, configs);
         }
         return configs;
     }
 
-    private boolean isInstalled(final Feature feature) {
-        Exception lastException = null;
+    private boolean isInstalled(final Feature feature) throws InterruptedException {
         for (int retries = 0; retries < MAX_RETRIES; retries++) {
             try {
                 List<Feature> installedFeatures = Arrays.asList(featuresService.listInstalledFeatures());
                 if (installedFeatures.contains(feature)) {
                     return true;
-                } else {
-                    LOG.warn("Karaf featuresService.listInstalledFeatures() has not yet finished installing feature (retry {}) {} {}", retries, feature.getName(), feature.getVersion());
                 }
-            // TODO This catch of ConcurrentModificationException may be able to simply be removed after
-            // we're fully on Karaf 4 only, as a comment in BUG-6787 indicates that (in Karaf 4) :
-            // "the 'installed' Map of FeaturesServiceImpl .. appears to be correctly synchronized/thread-safe".
-            // (Or, if it's still NOK, then it could be fixed properly upstream in Karaf once we're on recent.)
-            } catch (final ConcurrentModificationException e) {
-                // BUG-6787 experience shows that a LOG.warn (or info) here is very confusing to end-users;
-                // as we have a retry loop anyway, there is no point informing (and confusing) users of this
-                // intermediate state of, so ... NOOP, do not log here.
-                lastException = e;
-            }
-            try {
-                Thread.sleep(RETRY_PAUSE_MILLIS);
-            } catch (final InterruptedException e1) {
-                throw new IllegalStateException(e1);
+
+                LOG.info("Karaf Feature Service has not yet finished installing feature {}/{} (retry {})",
+                    feature.getName(), feature.getVersion(), retries);
+            } catch (final Exception e) {
+                LOG.warn("Karaf featuresService.listInstalledFeatures() has thrown an exception, retry {}", retries, e);
             }
+
+            TimeUnit.MILLISECONDS.sleep(RETRY_PAUSE_MILLIS);
         }
-        LOG.error("Giving up (after {} retries) on Karaf featuresService.listInstalledFeatures() "
-                        + "which has not yet finished installing feature {} {} (stack trace is last exception caught)",
-                MAX_RETRIES, feature.getName(), feature.getVersion(), lastException);
+        LOG.error("Giving up (after {} retries) on Karaf featuresService.listInstalledFeatures() which has not yet finished installing feature {} {}",
+            MAX_RETRIES, feature.getName(), feature.getVersion());
         return false;
     }
 
-    private Set<FeatureConfigSnapshotHolder> pushConfig(final Set<FeatureConfigSnapshotHolder> configs, final Feature feature)
-            throws InterruptedException {
+    private Set<FeatureConfigSnapshotHolder> pushConfig(final Set<FeatureConfigSnapshotHolder> configs,
+            final Feature feature) throws InterruptedException {
         Set<FeatureConfigSnapshotHolder> configsToPush = new LinkedHashSet<>(configs);
         configsToPush.removeAll(pushedConfigs);
         if (!configsToPush.isEmpty()) {
@@ -142,7 +142,7 @@ public class FeatureConfigPusher {
                 LOG.warn("Ignoring default configuration {} for feature {}, the configuration is present in {}",
                         configsToPush, feature.getId(), currentCfgPusher.get());
             } else {
-                pusher.pushConfigs(new ArrayList<ConfigSnapshotHolder>(configsToPush));
+                pusher.pushConfigs(new ArrayList<>(configsToPush));
             }
 
             pushedConfigs.addAll(configsToPush);
index 0320ea2..68ae3d3 100644 (file)
@@ -9,7 +9,9 @@ package org.opendaylight.controller.configpusherfeature.internal;
 
 import com.google.common.base.Optional;
 import com.google.common.collect.Sets;
+
 import java.util.Set;
+
 import org.apache.karaf.features.Feature;
 import org.apache.karaf.features.FeaturesListener;
 import org.apache.karaf.features.FeaturesService;
@@ -19,8 +21,11 @@ import org.osgi.framework.BundleContext;
 import org.osgi.framework.ServiceReference;
 import org.osgi.framework.ServiceRegistration;
 import org.osgi.util.tracker.ServiceTrackerCustomizer;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 public class FeatureServiceCustomizer implements ServiceTrackerCustomizer<FeaturesService, FeaturesService>, AutoCloseable {
+    private static final Logger LOG = LoggerFactory.getLogger(FeatureServiceCustomizer.class);
     private ConfigPusher configPusher = null;
     private ServiceRegistration<?> registration;
 
@@ -34,10 +39,14 @@ public class FeatureServiceCustomizer implements ServiceTrackerCustomizer<Featur
         final FeaturesService featureService = bc.getService(reference);
         final Optional<XmlFileStorageAdapter> currentPersister = XmlFileStorageAdapter.getInstance();
 
-        if(XmlFileStorageAdapter.getInstance().isPresent()) {
+        if (XmlFileStorageAdapter.getInstance().isPresent()) {
             final Set<String> installedFeatureIds = Sets.newHashSet();
-            for (final Feature installedFeature : featureService.listInstalledFeatures()) {
-                installedFeatureIds.add(installedFeature.getId());
+            try {
+                for (final Feature installedFeature : featureService.listInstalledFeatures()) {
+                    installedFeatureIds.add(installedFeature.getId());
+                }
+            } catch (final Exception e) {
+                LOG.error("Error listing installed features", e);
             }
 
             currentPersister.get().setFeaturesService(() -> installedFeatureIds);
@@ -49,19 +58,19 @@ public class FeatureServiceCustomizer implements ServiceTrackerCustomizer<Featur
 
     @Override
     public void modifiedService(final ServiceReference<FeaturesService> reference,
-            final FeaturesService service) {
+                                final FeaturesService service) {
         // we don't care if the properties change
     }
 
     @Override
     public void removedService(final ServiceReference<FeaturesService> reference,
-            final FeaturesService service) {
+                               final FeaturesService service) {
         close();
     }
 
     @Override
     public void close() {
-        if(registration != null) {
+        if (registration != null) {
             registration.unregister();
             registration = null;
         }
diff --git a/opendaylight/config/config-persister-feature4-adapter/pom.xml b/opendaylight/config/config-persister-feature4-adapter/pom.xml
deleted file mode 100644 (file)
index eb22b90..0000000
+++ /dev/null
@@ -1,74 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<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.controller</groupId>
-        <artifactId>config-subsystem</artifactId>
-        <version>0.7.0-SNAPSHOT</version>
-        <relativePath>..</relativePath>
-    </parent>
-
-    <artifactId>config-persister-feature4-adapter</artifactId>
-    <packaging>bundle</packaging>
-
-    <dependencies>
-        <dependency>
-            <groupId>org.osgi</groupId>
-            <artifactId>org.osgi.core</artifactId>
-            <scope>provided</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.karaf.features</groupId>
-            <artifactId>org.apache.karaf.features.core</artifactId>
-            <version>${karaf4.version}</version>
-            <scope>provided</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>config-persister-impl</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>config-persister-api</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>config-persister-directory-xml-adapter</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.felix</groupId>
-            <artifactId>org.apache.felix.utils</artifactId>
-            <version>1.6.0</version>
-            <scope>provided</scope>
-        </dependency>
-        <dependency>
-           <groupId>com.google.guava</groupId>
-           <artifactId>guava</artifactId>
-        </dependency>
-    </dependencies>
-
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.felix</groupId>
-                <artifactId>maven-bundle-plugin</artifactId>
-                <extensions>true</extensions>
-                <configuration>
-                    <instructions>
-                        <Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName>
-                        <Bundle-Version>${project.version}</Bundle-Version>
-                        <Bundle-Activator>org.opendaylight.controller.configpusherfeature.ConfigPusherFeatureActivator</Bundle-Activator>
-                        <Private-Package>
-                            org.apache.karaf.features.internal.model,
-                            org.apache.felix.utils.version,
-                            org.opendaylight.controller.configpusherfeature.internal
-                        </Private-Package>
-                    </instructions>
-                </configuration>
-            </plugin>
-        </plugins>
-    </build>
-
-</project>
diff --git a/opendaylight/config/config-persister-feature4-adapter/src/main/java/org/opendaylight/controller/configpusherfeature/ConfigPusherFeatureActivator.java b/opendaylight/config/config-persister-feature4-adapter/src/main/java/org/opendaylight/controller/configpusherfeature/ConfigPusherFeatureActivator.java
deleted file mode 100644 (file)
index c20c6f9..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Copyright (c) 2014 Cisco Systems, Inc. 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
- */
-package org.opendaylight.controller.configpusherfeature;
-
-import org.opendaylight.controller.config.persist.api.ConfigPusher;
-import org.opendaylight.controller.configpusherfeature.internal.ConfigPusherCustomizer;
-import org.osgi.framework.BundleActivator;
-import org.osgi.framework.BundleContext;
-import org.osgi.util.tracker.ServiceTracker;
-
-public class ConfigPusherFeatureActivator implements BundleActivator {
-
-    BundleContext bc = null;
-    ConfigPusherCustomizer cpc = null;
-    ServiceTracker<ConfigPusher,ConfigPusher> cpst = null;
-
-    public void start(final BundleContext context) throws Exception {
-        bc = context;
-        cpc = new ConfigPusherCustomizer();
-        cpst = new ServiceTracker<>(bc, ConfigPusher.class.getName(), cpc);
-        cpst.open();
-    }
-
-    public void stop(final BundleContext context) throws Exception {
-        if(cpst != null) {
-            cpst.close();
-            cpst = null;
-        }
-        if(cpc != null) {
-            cpc.close();
-            cpc = null;
-        }
-        bc = null;
-    }
-}
diff --git a/opendaylight/config/config-persister-feature4-adapter/src/main/java/org/opendaylight/controller/configpusherfeature/internal/AbstractFeatureWrapper.java b/opendaylight/config/config-persister-feature4-adapter/src/main/java/org/opendaylight/controller/configpusherfeature/internal/AbstractFeatureWrapper.java
deleted file mode 100644 (file)
index bce4d3c..0000000
+++ /dev/null
@@ -1,268 +0,0 @@
-/*
- * Copyright (c) 2014 Cisco Systems, Inc. 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
- */
-package org.opendaylight.controller.configpusherfeature.internal;
-
-import com.google.common.base.Optional;
-import com.google.common.base.Preconditions;
-import com.google.common.io.Files;
-import java.io.File;
-import java.io.FileInputStream;
-import java.util.LinkedHashSet;
-import java.util.List;
-import java.util.Set;
-import javax.xml.bind.JAXBException;
-import javax.xml.parsers.DocumentBuilderFactory;
-import javax.xml.stream.XMLStreamException;
-import org.apache.karaf.features.BundleInfo;
-import org.apache.karaf.features.Capability;
-import org.apache.karaf.features.Conditional;
-import org.apache.karaf.features.ConfigFileInfo;
-import org.apache.karaf.features.ConfigInfo;
-import org.apache.karaf.features.Dependency;
-import org.apache.karaf.features.Feature;
-import org.apache.karaf.features.Library;
-import org.apache.karaf.features.Requirement;
-import org.apache.karaf.features.Scoping;
-import org.opendaylight.controller.config.persist.storage.file.xml.model.ConfigSnapshot;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.w3c.dom.Element;
-
-/*
- * Wrap a Feature for the purposes of extracting the FeatureConfigSnapshotHolders from
- * its underlying ConfigFileInfo's
- *
- * Delegates the the contained feature and provides additional methods.
- */
-public class AbstractFeatureWrapper implements Feature {
-    private static final Logger LOG = LoggerFactory.getLogger(AbstractFeatureWrapper.class);
-
-    protected static final String CONFIG_FILE_SUFFIX = "xml";
-
-    protected Feature feature = null;
-
-    protected AbstractFeatureWrapper() {
-        // prevent instantiation without Feature
-    }
-
-    /*
-     * @param f Feature to wrap
-     */
-    public AbstractFeatureWrapper(final Feature f) {
-        Preconditions.checkNotNull(f,"FeatureWrapper requires non-null Feature in constructor");
-        this.feature = f;
-    }
-
-    /*
-     * Get FeatureConfigSnapshotHolders appropriate to feed to the config subsystem
-     * from the underlying Feature Config files
-     */
-    public Set<FeatureConfigSnapshotHolder> getFeatureConfigSnapshotHolders() throws Exception {
-        final Set<FeatureConfigSnapshotHolder> snapShotHolders = new LinkedHashSet<>();
-        for(final ConfigFileInfo c: getConfigurationFiles()) {
-            // Skip non config snapshot XML files
-            if(isConfigSnapshot(c.getFinalname())) {
-                final Optional<FeatureConfigSnapshotHolder> featureConfigSnapshotHolder = getFeatureConfigSnapshotHolder(c);
-                if(featureConfigSnapshotHolder.isPresent()) {
-                    snapShotHolders.add(featureConfigSnapshotHolder.get());
-                }
-            }
-        }
-        return snapShotHolders;
-    }
-
-    protected Optional<FeatureConfigSnapshotHolder> getFeatureConfigSnapshotHolder(final ConfigFileInfo c) {
-        try {
-            return Optional.of(new FeatureConfigSnapshotHolder(c, this));
-        } catch (final JAXBException e) {
-            LOG.warn("Unable to parse configuration snapshot. Config from '{}' will be IGNORED. " +
-                    "Note that subsequent config files may fail due to this problem. " +
-                    "Xml markup in this file needs to be fixed, for detailed information see enclosed exception.",
-                    c.getFinalname(), e);
-        } catch (final XMLStreamException e) {
-            // Files that cannot be loaded are ignored as non config subsystem files e.g. jetty.xml
-            LOG.debug("Unable to read configuration file '{}'. Not a configuration snapshot",
-                    c.getFinalname(), e);
-        }
-        return Optional.absent();
-    }
-
-    private static boolean isConfigSnapshot(final String fileName) {
-        if(!Files.getFileExtension(fileName).equals(CONFIG_FILE_SUFFIX)) {
-            return false;
-        }
-
-        if(fileName.endsWith("jetty.xml")) {
-            // Special case - ignore the jetty.xml file as it contains a DTD and causes a "Connection refused"
-            // error when it tries to go out to the network to retrieve it. We don't want it trying to go out
-            // to the network nor do we want an error logged trying to parse it.
-            return false;
-        }
-
-        File file = new File(System.getProperty("karaf.home"), fileName);
-        try(FileInputStream fis = new FileInputStream(file)) {
-            DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance();
-            builderFactory.setNamespaceAware(true);
-            builderFactory.setCoalescing(true);
-            builderFactory.setIgnoringElementContentWhitespace(true);
-            builderFactory.setIgnoringComments(true);
-
-            Element root = builderFactory.newDocumentBuilder().parse(fis).getDocumentElement();
-            return ConfigSnapshot.SNAPSHOT_ROOT_ELEMENT_NAME.equals(root.getLocalName());
-        } catch (final Exception e) {
-            LOG.error("Could not parse XML file {}", file, e);
-            return false;
-        }
-    }
-
-    @Override
-    public int hashCode() {
-        final int prime = 31;
-        int result = 1;
-        result = prime * result + (feature == null ? 0 : feature.hashCode());
-        return result;
-    }
-
-    @Override
-    public boolean equals(final Object obj) {
-        if (this == obj) {
-            return true;
-        }
-        if (obj == null) {
-            return false;
-        }
-        if (getClass() != obj.getClass()) {
-            return false;
-        }
-        final AbstractFeatureWrapper other = (AbstractFeatureWrapper) obj;
-        if (feature == null) {
-            if (other.feature != null) {
-                return false;
-            }
-        } else if (!feature.equals(other.feature)) {
-            return false;
-        }
-        return true;
-    }
-
-    @Override
-    public String toString() {
-        return feature.getName();
-    }
-
-    @Override
-    public String getId() {
-        return feature.getId();
-    }
-
-    @Override
-    public String getName() {
-        return feature.getName();
-    }
-
-    @Override
-    public String getDescription() {
-        return feature.getDescription();
-    }
-
-    @Override
-    public String getDetails() {
-        return feature.getDetails();
-    }
-
-    @Override
-    public String getVersion() {
-        return feature.getVersion();
-    }
-
-    @Override
-    public boolean hasVersion() {
-        return feature.hasVersion();
-    }
-
-    @Override
-    public String getResolver() {
-        return feature.getResolver();
-    }
-
-    @Override
-    public String getInstall() {
-        return feature.getInstall();
-    }
-
-    @Override
-    public List<Dependency> getDependencies() {
-        return feature.getDependencies();
-    }
-
-    @Override
-    public List<BundleInfo> getBundles() {
-        return feature.getBundles();
-    }
-
-    @Override
-    public List<ConfigInfo> getConfigurations() {
-        return feature.getConfigurations();
-    }
-
-    @Override
-    public List<ConfigFileInfo> getConfigurationFiles() {
-        return feature.getConfigurationFiles();
-    }
-
-    @Override
-    public List<? extends Conditional> getConditional() {
-        return feature.getConditional();
-    }
-
-    @Override
-    public int getStartLevel() {
-        return feature.getStartLevel();
-    }
-
-    @Override
-    public List<? extends Capability> getCapabilities() {
-        return feature.getCapabilities();
-    }
-
-    @Override
-    public List<? extends Library> getLibraries() {
-        return feature.getLibraries();
-    }
-
-    @Override
-    public String getNamespace() {
-        return feature.getNamespace();
-    }
-
-    @Override
-    public String getRepositoryUrl() {
-        return feature.getRepositoryUrl();
-    }
-
-    @Override
-    public List<? extends Requirement> getRequirements() {
-        return feature.getRequirements();
-    }
-
-    @Override
-    public List<String> getResourceRepositories() {
-        return feature.getResourceRepositories();
-    }
-
-    @Override
-    public Scoping getScoping() {
-        return feature.getScoping();
-    }
-
-    @Override
-    public boolean isHidden() {
-        return feature.isHidden();
-    }
-
-}
diff --git a/opendaylight/config/config-persister-feature4-adapter/src/main/java/org/opendaylight/controller/configpusherfeature/internal/ChildAwareFeatureWrapper.java b/opendaylight/config/config-persister-feature4-adapter/src/main/java/org/opendaylight/controller/configpusherfeature/internal/ChildAwareFeatureWrapper.java
deleted file mode 100644 (file)
index f51bf47..0000000
+++ /dev/null
@@ -1,108 +0,0 @@
-/*
- * Copyright (c) 2014 Cisco Systems, Inc. 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
- */
-package org.opendaylight.controller.configpusherfeature.internal;
-
-import com.google.common.base.Optional;
-import com.google.common.base.Preconditions;
-import java.util.LinkedHashSet;
-import java.util.List;
-import java.util.Set;
-import org.apache.felix.utils.version.VersionRange;
-import org.apache.felix.utils.version.VersionTable;
-import org.apache.karaf.features.Dependency;
-import org.apache.karaf.features.Feature;
-import org.apache.karaf.features.FeaturesService;
-import org.osgi.framework.Version;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/*
- * Wrap a Feature for the purposes of extracting the FeatureConfigSnapshotHolders from
- * its underlying ConfigFileInfo's and those of its children recursively
- *
- * Delegates the the contained feature and provides additional methods.
- */
-public class ChildAwareFeatureWrapper extends AbstractFeatureWrapper implements Feature {
-    private static final Logger LOG = LoggerFactory.getLogger(ChildAwareFeatureWrapper.class);
-    private FeaturesService featuresService= null;
-
-    protected ChildAwareFeatureWrapper(final Feature f) {
-        // Don't use without a feature service
-    }
-
-    /*
-     * @param f Feature to wrap
-     * @param s FeaturesService to look up dependencies
-     */
-    ChildAwareFeatureWrapper(final Feature f, final FeaturesService s) throws Exception {
-        super(s.getFeature(f.getName(), f.getVersion()));
-        Preconditions.checkNotNull(s, "FeatureWrapper requires non-null FeatureService in constructor");
-        this.featuresService = s;
-    }
-
-    protected FeaturesService getFeaturesService() {
-        return featuresService;
-    }
-
-    /*
-     * Get FeatureConfigSnapshotHolders appropriate to feed to the config subsystem
-     * from the underlying Feature Config files and those of its children recursively
-     */
-    public Set<? extends ChildAwareFeatureWrapper> getChildFeatures() throws Exception {
-        List<Dependency> dependencies = feature.getDependencies();
-        Set<ChildAwareFeatureWrapper> childFeatures = new LinkedHashSet<>();
-        if(dependencies != null) {
-            for(Dependency dependency: dependencies) {
-                Feature fi = extractFeatureFromDependency(dependency);
-                if (fi != null) {
-                    if (featuresService.getFeature(fi.getName(), fi.getVersion()) == null) {
-                        LOG.warn("Feature: {}, {} is missing from features service. Skipping", fi.getName(), fi.getVersion());
-                    } else {
-                        ChildAwareFeatureWrapper wrappedFeature = new ChildAwareFeatureWrapper(fi, featuresService);
-                        childFeatures.add(wrappedFeature);
-                    }
-                }
-            }
-        }
-        return childFeatures;
-    }
-
-    @Override
-    public Set<FeatureConfigSnapshotHolder> getFeatureConfigSnapshotHolders() throws Exception {
-        Set<FeatureConfigSnapshotHolder> snapShotHolders = new LinkedHashSet<>();
-        for(ChildAwareFeatureWrapper c: getChildFeatures()) {
-            for(FeatureConfigSnapshotHolder h: c.getFeatureConfigSnapshotHolders()) {
-                final Optional<FeatureConfigSnapshotHolder> featureConfigSnapshotHolder = getFeatureConfigSnapshotHolder(h.getFileInfo());
-                if(featureConfigSnapshotHolder.isPresent()) {
-                    snapShotHolders.add(featureConfigSnapshotHolder.get());
-                }
-            }
-        }
-        snapShotHolders.addAll(super.getFeatureConfigSnapshotHolders());
-        return snapShotHolders;
-    }
-
-    protected Feature extractFeatureFromDependency(final Dependency dependency) throws Exception {
-        Feature[] features = featuresService.listFeatures();
-        VersionRange range = org.apache.karaf.features.internal.model.Feature.DEFAULT_VERSION.equals(dependency.getVersion())
-                ? VersionRange.ANY_VERSION : new VersionRange(dependency.getVersion(), true, true);
-        Feature fi = null;
-        for(Feature f: features) {
-            if (f.getName().equals(dependency.getName())) {
-                Version v = VersionTable.getVersion(f.getVersion());
-                if (range.contains(v) &&
-                    (fi == null || VersionTable.getVersion(fi.getVersion()).compareTo(v) < 0)) {
-                    fi = f;
-                    break;
-                }
-            }
-        }
-        return fi;
-    }
-
-}
diff --git a/opendaylight/config/config-persister-feature4-adapter/src/main/java/org/opendaylight/controller/configpusherfeature/internal/ConfigFeaturesListener.java b/opendaylight/config/config-persister-feature4-adapter/src/main/java/org/opendaylight/controller/configpusherfeature/internal/ConfigFeaturesListener.java
deleted file mode 100644 (file)
index 075db50..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * Copyright (c) 2014 Cisco Systems, Inc. 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
- */
-package org.opendaylight.controller.configpusherfeature.internal;
-
-import java.util.concurrent.BlockingQueue;
-import java.util.concurrent.LinkedBlockingQueue;
-import org.apache.karaf.features.FeatureEvent;
-import org.apache.karaf.features.FeaturesListener;
-import org.apache.karaf.features.FeaturesService;
-import org.apache.karaf.features.RepositoryEvent;
-import org.opendaylight.controller.config.persist.api.ConfigPusher;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class ConfigFeaturesListener implements  FeaturesListener,  AutoCloseable {
-    private static final Logger LOG = LoggerFactory.getLogger(ConfigFeaturesListener.class);
-    private static final int QUEUE_SIZE = 1000;
-    private BlockingQueue<FeatureEvent> queue = new LinkedBlockingQueue<>(QUEUE_SIZE);
-    Thread pushingThread = null;
-
-    public ConfigFeaturesListener(final ConfigPusher p, final FeaturesService f) {
-        pushingThread = new Thread(new ConfigPushingRunnable(p, f, queue), "ConfigFeatureListener - ConfigPusher");
-        pushingThread.start();
-    }
-
-    @Override
-    public void featureEvent(final FeatureEvent event) {
-        queue.offer(event);
-    }
-
-    @Override
-    public void repositoryEvent(final RepositoryEvent event) {
-        LOG.debug("Repository: {} {}", event.getType(), event.getRepository());
-    }
-
-    @Override
-    public void close() {
-        if(pushingThread != null) {
-            pushingThread.interrupt();
-            pushingThread = null;
-        }
-    }
-}
diff --git a/opendaylight/config/config-persister-feature4-adapter/src/main/java/org/opendaylight/controller/configpusherfeature/internal/ConfigPusherCustomizer.java b/opendaylight/config/config-persister-feature4-adapter/src/main/java/org/opendaylight/controller/configpusherfeature/internal/ConfigPusherCustomizer.java
deleted file mode 100644 (file)
index ac10c68..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * Copyright (c) 2014 Cisco Systems, Inc. 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
- */
-package org.opendaylight.controller.configpusherfeature.internal;
-
-import org.apache.karaf.features.FeaturesService;
-import org.opendaylight.controller.config.persist.api.ConfigPusher;
-import org.osgi.framework.BundleContext;
-import org.osgi.framework.ServiceReference;
-import org.osgi.util.tracker.ServiceTracker;
-import org.osgi.util.tracker.ServiceTrackerCustomizer;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class ConfigPusherCustomizer implements ServiceTrackerCustomizer<ConfigPusher, ConfigPusher>, AutoCloseable {
-    private static final Logger LOG = LoggerFactory.getLogger(ConfigPusherCustomizer.class);
-    private ConfigFeaturesListener configFeaturesListener = null;
-    private FeatureServiceCustomizer featureServiceCustomizer = null;
-    private ServiceTracker<FeaturesService,FeaturesService> fsst = null;
-
-    @Override
-    public ConfigPusher addingService(final ServiceReference<ConfigPusher> configPusherServiceReference) {
-        LOG.trace("Got ConfigPusherCustomizer.addingService {}", configPusherServiceReference);
-        BundleContext bc = configPusherServiceReference.getBundle().getBundleContext();
-        ConfigPusher cpService = bc.getService(configPusherServiceReference);
-        featureServiceCustomizer = new FeatureServiceCustomizer(cpService);
-        fsst = new ServiceTracker<>(bc, FeaturesService.class.getName(), featureServiceCustomizer);
-        fsst.open();
-        return cpService;
-    }
-
-    @Override
-    public void modifiedService(final ServiceReference<ConfigPusher> configPusherServiceReference, final ConfigPusher configPusher) {
-        // we don't care if the properties change
-    }
-
-    @Override
-    public void removedService(final ServiceReference<ConfigPusher> configPusherServiceReference, final ConfigPusher configPusher) {
-        this.close();
-    }
-
-    @Override
-    public void close() {
-        if(fsst != null) {
-            fsst.close();
-            fsst = null;
-        }
-        if(configFeaturesListener != null) {
-            configFeaturesListener.close();
-            configFeaturesListener = null;
-        }
-        if(featureServiceCustomizer != null) {
-            featureServiceCustomizer.close();
-            featureServiceCustomizer = null;
-        }
-    }
-}
\ No newline at end of file
diff --git a/opendaylight/config/config-persister-feature4-adapter/src/main/java/org/opendaylight/controller/configpusherfeature/internal/ConfigPushingRunnable.java b/opendaylight/config/config-persister-feature4-adapter/src/main/java/org/opendaylight/controller/configpusherfeature/internal/ConfigPushingRunnable.java
deleted file mode 100644 (file)
index 48c494b..0000000
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
- * Copyright (c) 2014 Cisco Systems, Inc. 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
- */
-package org.opendaylight.controller.configpusherfeature.internal;
-
-import com.google.common.collect.LinkedHashMultimap;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.concurrent.BlockingQueue;
-import java.util.concurrent.TimeUnit;
-import org.apache.karaf.features.Feature;
-import org.apache.karaf.features.FeatureEvent;
-import org.apache.karaf.features.FeatureEvent.EventType;
-import org.apache.karaf.features.FeaturesService;
-import org.opendaylight.controller.config.persist.api.ConfigPusher;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class ConfigPushingRunnable implements Runnable {
-    private static final Logger LOG = LoggerFactory.getLogger(ConfigPushingRunnable.class);
-    private static final int POLL_TIME = 1;
-    private BlockingQueue<FeatureEvent> queue;
-    private FeatureConfigPusher configPusher;
-    public ConfigPushingRunnable(final ConfigPusher p, final FeaturesService f, final BlockingQueue<FeatureEvent> q) {
-        queue = q;
-        configPusher = new FeatureConfigPusher(p, f);
-    }
-
-    @Override
-    public void run() {
-        List<Feature> toInstall = new ArrayList<>();
-        FeatureEvent event = null;
-        boolean interuppted = false;
-        while(true) {
-            try {
-                if(!interuppted) {
-                    if(toInstall.isEmpty()) {
-                        event = queue.take();
-                    } else {
-                        event = queue.poll(POLL_TIME, TimeUnit.MILLISECONDS);
-                    }
-                    if(event != null && event.getFeature() !=null) {
-                        processFeatureEvent(event,toInstall);
-                    }
-                } else if(toInstall.isEmpty()) {
-                    LOG.error("ConfigPushingRunnable - exiting");
-                    return;
-                }
-            } catch (final InterruptedException e) {
-                LOG.error("ConfigPushingRunnable - interupted");
-                interuppted = true;
-            } catch (final Exception e) {
-                LOG.error("Exception while processing features {} event {}", toInstall, event, e);
-            }
-        }
-    }
-
-    protected void processFeatureEvent(final FeatureEvent event, final List<Feature> toInstall) throws Exception {
-        if(event.getType() == EventType.FeatureInstalled) {
-            toInstall.add(event.getFeature());
-            LinkedHashMultimap<Feature,FeatureConfigSnapshotHolder> result = configPusher.pushConfigs(toInstall);
-            toInstall.removeAll(result.keySet());
-        } else if(event.getType() == EventType.FeatureUninstalled) {
-            toInstall.remove(event.getFeature());
-        }
-    }
-
-    protected void logPushResult(final LinkedHashMultimap<Feature,FeatureConfigSnapshotHolder> results) {
-        for(Feature f:results.keySet()) {
-            LOG.info("Pushed configs for feature {} {}",f,results.get(f));
-        }
-    }
-}
diff --git a/opendaylight/config/config-persister-feature4-adapter/src/main/java/org/opendaylight/controller/configpusherfeature/internal/FeatureConfigPusher.java b/opendaylight/config/config-persister-feature4-adapter/src/main/java/org/opendaylight/controller/configpusherfeature/internal/FeatureConfigPusher.java
deleted file mode 100644 (file)
index 5d487e0..0000000
+++ /dev/null
@@ -1,154 +0,0 @@
-/*
- * Copyright (c) 2014 Cisco Systems, Inc. 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
- */
-package org.opendaylight.controller.configpusherfeature.internal;
-
-import com.google.common.base.Optional;
-import com.google.common.collect.LinkedHashMultimap;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.LinkedHashSet;
-import java.util.List;
-import java.util.Set;
-import java.util.concurrent.TimeUnit;
-import org.apache.karaf.features.Feature;
-import org.apache.karaf.features.FeaturesService;
-import org.opendaylight.controller.config.persist.api.ConfigPusher;
-import org.opendaylight.controller.config.persist.storage.file.xml.XmlFileStorageAdapter;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/*
- * Simple class to push configs to the config subsystem from Feature's configfiles
- */
-public class FeatureConfigPusher {
-    private static final Logger LOG = LoggerFactory.getLogger(FeatureConfigPusher.class);
-    private static final int MAX_RETRIES = 100;
-    private static final int RETRY_PAUSE_MILLIS = 1;
-
-    private FeaturesService featuresService = null;
-    private ConfigPusher pusher = null;
-
-    /*
-     * A LinkedHashSet (to preserve order and insure uniqueness) of the pushedConfigs
-     * This is used to prevent pushing duplicate configs if a Feature is in multiple dependency
-     * chains.  Also, preserves the *original* Feature chain for which we pushed the config.
-     * (which is handy for logging).
-     */
-    private final Set<FeatureConfigSnapshotHolder> pushedConfigs = new LinkedHashSet<>();
-
-    /*
-     * LinkedHashMultimap to track which configs we pushed for each Feature installation
-     * For future use
-     */
-    private final LinkedHashMultimap<Feature,FeatureConfigSnapshotHolder> feature2configs = LinkedHashMultimap.create();
-
-    /*
-     * @param p - ConfigPusher to push ConfigSnapshotHolders
-     */
-    public FeatureConfigPusher(final ConfigPusher p, final FeaturesService f) {
-        pusher = p;
-        featuresService = f;
-    }
-    /*
-     * Push config files from Features to config subsystem
-     * @param features - list of Features to extract config files from recursively and push
-     * to the config subsystem
-     *
-     * @return A LinkedHashMultimap of Features to the FeatureConfigSnapshotHolder actually pushed
-     * If a Feature is not in the returned LinkedHashMultimap then we couldn't push its configs
-     * (Ususally because it was not yet installed)
-     */
-    public LinkedHashMultimap<Feature, FeatureConfigSnapshotHolder> pushConfigs(final List<Feature> features)
-            throws Exception {
-        LinkedHashMultimap<Feature, FeatureConfigSnapshotHolder> pushedFeatures = LinkedHashMultimap.create();
-        for (Feature feature : features) {
-            Set<FeatureConfigSnapshotHolder> configSnapShots = pushConfig(feature);
-            if (!configSnapShots.isEmpty()) {
-                pushedFeatures.putAll(feature, configSnapShots);
-            }
-        }
-        return pushedFeatures;
-    }
-
-    private Set<FeatureConfigSnapshotHolder> pushConfig(final Feature feature) throws Exception {
-        // Ignore feature conditions — these encode conditions on other features and shouldn't be processed here
-        if (feature.getName().contains("-condition-")) {
-            LOG.debug("Ignoring conditional feature {}", feature);
-            return Collections.emptySet();
-        }
-        // pax-exam's Karaf container generates a wrapper feature holding the test dependencies. Ignore it.
-        if ("test-dependencies".equals(feature.getName())) {
-            LOG.debug("Ignoring pax-exam wrapper feature {}", feature);
-            return Collections.emptySet();
-        }
-
-        if (!isInstalled(feature)) {
-            return Collections.emptySet();
-        }
-        // FIXME Workaround for BUG-2836, features service returns null for feature:
-        // standard-condition-webconsole_0_0_0, 3.0.1
-        if (featuresService.getFeature(feature.getName(), feature.getVersion()) == null) {
-            LOG.debug("Feature: {}, {} is missing from features service. Skipping", feature.getName(),
-                feature.getVersion());
-            return Collections.emptySet();
-        }
-
-        ChildAwareFeatureWrapper wrappedFeature = new ChildAwareFeatureWrapper(feature, featuresService);
-        Set<FeatureConfigSnapshotHolder> configs = wrappedFeature.getFeatureConfigSnapshotHolders();
-        if (!configs.isEmpty()) {
-            configs = pushConfig(configs, feature);
-            feature2configs.putAll(feature, configs);
-        }
-        return configs;
-    }
-
-    private boolean isInstalled(final Feature feature) throws InterruptedException {
-        for (int retries = 0; retries < MAX_RETRIES; retries++) {
-            try {
-                List<Feature> installedFeatures = Arrays.asList(featuresService.listInstalledFeatures());
-                if (installedFeatures.contains(feature)) {
-                    return true;
-                }
-
-                LOG.info("Karaf Feature Service has not yet finished installing feature {}/{} (retry {})",
-                    feature.getName(), feature.getVersion(), retries);
-            } catch (final Exception e) {
-                LOG.warn("Karaf featuresService.listInstalledFeatures() has thrown an exception, retry {}", retries, e);
-            }
-
-            TimeUnit.MILLISECONDS.sleep(RETRY_PAUSE_MILLIS);
-        }
-        LOG.error("Giving up (after {} retries) on Karaf featuresService.listInstalledFeatures() which has not yet finished installing feature {} {}",
-            MAX_RETRIES, feature.getName(), feature.getVersion());
-        return false;
-    }
-
-    private Set<FeatureConfigSnapshotHolder> pushConfig(final Set<FeatureConfigSnapshotHolder> configs,
-            final Feature feature) throws InterruptedException {
-        Set<FeatureConfigSnapshotHolder> configsToPush = new LinkedHashSet<>(configs);
-        configsToPush.removeAll(pushedConfigs);
-        if (!configsToPush.isEmpty()) {
-
-            // Ignore features that are present in persisted current config
-            final Optional<XmlFileStorageAdapter> currentCfgPusher = XmlFileStorageAdapter.getInstance();
-            if (currentCfgPusher.isPresent() &&
-                    currentCfgPusher.get().getPersistedFeatures().contains(feature.getId())) {
-                LOG.warn("Ignoring default configuration {} for feature {}, the configuration is present in {}",
-                        configsToPush, feature.getId(), currentCfgPusher.get());
-            } else {
-                pusher.pushConfigs(new ArrayList<>(configsToPush));
-            }
-
-            pushedConfigs.addAll(configsToPush);
-        }
-        Set<FeatureConfigSnapshotHolder> configsPushed = new LinkedHashSet<>(pushedConfigs);
-        configsPushed.retainAll(configs);
-        return configsPushed;
-    }
-}
diff --git a/opendaylight/config/config-persister-feature4-adapter/src/main/java/org/opendaylight/controller/configpusherfeature/internal/FeatureConfigSnapshotHolder.java b/opendaylight/config/config-persister-feature4-adapter/src/main/java/org/opendaylight/controller/configpusherfeature/internal/FeatureConfigSnapshotHolder.java
deleted file mode 100644 (file)
index 7107cc9..0000000
+++ /dev/null
@@ -1,173 +0,0 @@
-/*
- * Copyright (c) 2014 Cisco Systems, Inc. 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
- */
-package org.opendaylight.controller.configpusherfeature.internal;
-
-import com.google.common.base.Preconditions;
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.Iterables;
-import com.google.common.collect.Lists;
-import java.io.File;
-import java.nio.file.Path;
-import java.nio.file.Paths;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.SortedSet;
-import javax.xml.bind.JAXBContext;
-import javax.xml.bind.JAXBException;
-import javax.xml.bind.Unmarshaller;
-import javax.xml.stream.XMLInputFactory;
-import javax.xml.stream.XMLStreamException;
-import javax.xml.stream.XMLStreamReader;
-import javax.xml.transform.stream.StreamSource;
-import org.apache.karaf.features.ConfigFileInfo;
-import org.apache.karaf.features.Feature;
-import org.opendaylight.controller.config.persist.api.ConfigSnapshotHolder;
-import org.opendaylight.controller.config.persist.storage.file.xml.model.ConfigSnapshot;
-
-/*
- * A ConfigSnapshotHolder that can track all the additional information
- * relavent to the fact we are getting these from a Feature.
- *
- * Includes tracking the 'featureChain' - an reverse ordered list of the dependency
- * graph of features that caused us to push this FeatureConfigSnapshotHolder.
- * So if A -> B -> C, then the feature chain would be C -> B -> A
- */
-public class FeatureConfigSnapshotHolder implements ConfigSnapshotHolder {
-    private ConfigSnapshot unmarshalled = null;
-    private ConfigFileInfo fileInfo = null;
-    private List<Feature> featureChain = new ArrayList<>();
-
-    /*
-     * @param holder - FeatureConfigSnapshotHolder that we
-     * @param feature - new
-     */
-    public FeatureConfigSnapshotHolder(final FeatureConfigSnapshotHolder holder, final Feature feature) throws JAXBException, XMLStreamException {
-        this(holder.fileInfo,holder.getFeature());
-        this.featureChain.add(feature);
-    }
-
-    /*
-     * Create a FeatureConfigSnapshotHolder for a given ConfigFileInfo and record the associated
-     * feature we are creating it from.
-     * @param fileInfo - ConfigFileInfo to read into the ConfigSnapshot
-     * @param feature - Feature the ConfigFileInfo was attached to
-     */
-    public FeatureConfigSnapshotHolder(final ConfigFileInfo fileInfo, final Feature feature) throws JAXBException, XMLStreamException {
-        Preconditions.checkNotNull(fileInfo);
-        Preconditions.checkNotNull(fileInfo.getFinalname());
-        Preconditions.checkNotNull(feature);
-        this.fileInfo = fileInfo;
-        this.featureChain.add(feature);
-        // TODO extract utility method for umarshalling config snapshots
-        JAXBContext jaxbContext = JAXBContext.newInstance(ConfigSnapshot.class);
-        Unmarshaller um = jaxbContext.createUnmarshaller();
-        XMLInputFactory xif = XMLInputFactory.newFactory();
-        xif.setProperty(XMLInputFactory.IS_SUPPORTING_EXTERNAL_ENTITIES, false);
-        xif.setProperty(XMLInputFactory.SUPPORT_DTD, false);
-
-        XMLStreamReader xsr = xif.createXMLStreamReader(new StreamSource(new File(fileInfo.getFinalname())));
-        unmarshalled = (ConfigSnapshot) um.unmarshal(xsr);
-    }
-    /*
-     * (non-Javadoc)
-     * @see java.lang.Object#hashCode()
-     *
-     * We really care most about the underlying ConfigShapshot, so compute hashcode on that
-     */
-    @Override
-    public int hashCode() {
-        final int prime = 31;
-        int result = 1;
-        result = prime * result + ((unmarshalled != null && unmarshalled.getConfigSnapshot() == null) ? 0 : unmarshalled.getConfigSnapshot().hashCode());
-        return result;
-    }
-    /*
-     * (non-Javadoc)
-     * @see java.lang.Object#equals(java.lang.Object)
-     * *
-     * We really care most about the underlying ConfigShapshot, so compute equality on that
-     */
-    @Override
-    public boolean equals(final Object obj) {
-        if (this == obj) {
-            return true;
-        }
-        if (obj == null) {
-            return false;
-        }
-        if (getClass() != obj.getClass()) {
-            return false;
-        }
-        FeatureConfigSnapshotHolder fcsh = (FeatureConfigSnapshotHolder)obj;
-        if(this.unmarshalled.getConfigSnapshot().equals(fcsh.unmarshalled.getConfigSnapshot())) {
-            return true;
-        }
-        return false;
-    }
-
-    @Override
-    public String toString() {
-        StringBuilder b = new StringBuilder();
-        Path p = Paths.get(fileInfo.getFinalname());
-        b.append(p.getFileName())
-            .append("(")
-            .append(getCauseFeature())
-            .append(",")
-            .append(getFeature())
-            .append(")");
-        return b.toString();
-    }
-
-    @Override
-    public String getConfigSnapshot() {
-        return unmarshalled.getConfigSnapshot();
-    }
-
-    @Override
-    public SortedSet<String> getCapabilities() {
-        return unmarshalled.getCapabilities();
-    }
-
-    public ConfigFileInfo getFileInfo() {
-        return fileInfo;
-    }
-
-    /*
-     * @returns The original feature to which the ConfigFileInfo was attached
-     * Example:
-     * A -> B -> C, ConfigFileInfo Foo is attached to C.
-     * feature:install A
-     * thus C is the 'Feature' Foo was attached.
-     */
-    public Feature getFeature() {
-        return featureChain.get(0);
-    }
-
-    /*
-     * @return The dependency chain of the features that caused the ConfigFileInfo to be pushed in reverse order.
-     * Example:
-     * A -> B -> C, ConfigFileInfo Foo is attached to C.
-     * The returned list is
-     * [C,B,A]
-     */
-    public ImmutableList<Feature> getFeatureChain() {
-        return ImmutableList.copyOf(Lists.reverse(featureChain));
-    }
-
-    /*
-     * @return The feature the installation of which was the root cause
-     * of this pushing of the ConfigFileInfo.
-     * Example:
-     * A -> B -> C, ConfigFileInfo Foo is attached to C.
-     * feature:install A
-     * this A is the 'Cause' of the installation of Foo.
-     */
-    public Feature getCauseFeature() {
-        return Iterables.getLast(featureChain);
-    }
-}
diff --git a/opendaylight/config/config-persister-feature4-adapter/src/main/java/org/opendaylight/controller/configpusherfeature/internal/FeatureServiceCustomizer.java b/opendaylight/config/config-persister-feature4-adapter/src/main/java/org/opendaylight/controller/configpusherfeature/internal/FeatureServiceCustomizer.java
deleted file mode 100644 (file)
index 68ae3d3..0000000
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- * Copyright (c) 2014 Cisco Systems, Inc. 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
- */
-package org.opendaylight.controller.configpusherfeature.internal;
-
-import com.google.common.base.Optional;
-import com.google.common.collect.Sets;
-
-import java.util.Set;
-
-import org.apache.karaf.features.Feature;
-import org.apache.karaf.features.FeaturesListener;
-import org.apache.karaf.features.FeaturesService;
-import org.opendaylight.controller.config.persist.api.ConfigPusher;
-import org.opendaylight.controller.config.persist.storage.file.xml.XmlFileStorageAdapter;
-import org.osgi.framework.BundleContext;
-import org.osgi.framework.ServiceReference;
-import org.osgi.framework.ServiceRegistration;
-import org.osgi.util.tracker.ServiceTrackerCustomizer;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class FeatureServiceCustomizer implements ServiceTrackerCustomizer<FeaturesService, FeaturesService>, AutoCloseable {
-    private static final Logger LOG = LoggerFactory.getLogger(FeatureServiceCustomizer.class);
-    private ConfigPusher configPusher = null;
-    private ServiceRegistration<?> registration;
-
-    FeatureServiceCustomizer(final ConfigPusher c) {
-        configPusher = c;
-    }
-
-    @Override
-    public FeaturesService addingService(final ServiceReference<FeaturesService> reference) {
-        BundleContext bc = reference.getBundle().getBundleContext();
-        final FeaturesService featureService = bc.getService(reference);
-        final Optional<XmlFileStorageAdapter> currentPersister = XmlFileStorageAdapter.getInstance();
-
-        if (XmlFileStorageAdapter.getInstance().isPresent()) {
-            final Set<String> installedFeatureIds = Sets.newHashSet();
-            try {
-                for (final Feature installedFeature : featureService.listInstalledFeatures()) {
-                    installedFeatureIds.add(installedFeature.getId());
-                }
-            } catch (final Exception e) {
-                LOG.error("Error listing installed features", e);
-            }
-
-            currentPersister.get().setFeaturesService(() -> installedFeatureIds);
-        }
-        ConfigFeaturesListener configFeaturesListener = new ConfigFeaturesListener(configPusher, featureService);
-        registration = bc.registerService(FeaturesListener.class.getCanonicalName(), configFeaturesListener, null);
-        return featureService;
-    }
-
-    @Override
-    public void modifiedService(final ServiceReference<FeaturesService> reference,
-                                final FeaturesService service) {
-        // we don't care if the properties change
-    }
-
-    @Override
-    public void removedService(final ServiceReference<FeaturesService> reference,
-                               final FeaturesService service) {
-        close();
-    }
-
-    @Override
-    public void close() {
-        if (registration != null) {
-            registration.unregister();
-            registration = null;
-        }
-    }
-}
index 2380655..dc650d8 100644 (file)
@@ -23,7 +23,6 @@
     <module>config-persister-api</module>
     <module>config-persister-file-xml-adapter</module>
     <module>config-persister-feature-adapter</module>
-    <module>config-persister-feature4-adapter</module>
     <module>config-manager-facade-xml</module>
     <module>yang-jmx-generator</module>
     <module>yang-jmx-generator-plugin</module>
index 5a94e58..8345bdc 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>odlparent</artifactId>
-    <version>1.9.0</version>
+    <version>2.0.0</version>
     <relativePath/>
   </parent>
 
index 92f8e5e..1cd5d2e 100644 (file)
@@ -5,7 +5,7 @@
     <parent>
         <groupId>org.opendaylight.odlparent</groupId>
         <artifactId>bundle-parent</artifactId>
-        <version>1.9.0</version>
+        <version>2.0.0</version>
         <relativePath/>
     </parent>
 
index a90a7db..962ef8e 100644 (file)
@@ -5,7 +5,7 @@
     <parent>
         <groupId>org.opendaylight.odlparent</groupId>
         <artifactId>bundle-parent</artifactId>
-        <version>1.9.0</version>
+        <version>2.0.0</version>
         <relativePath/>
     </parent>
 
index 361f3e1..97e6897 100644 (file)
@@ -5,7 +5,7 @@
     <parent>
         <groupId>org.opendaylight.odlparent</groupId>
         <artifactId>bundle-parent</artifactId>
-        <version>1.9.0</version>
+        <version>2.0.0</version>
         <relativePath/>
     </parent>
 
index 5003595..d4a467c 100644 (file)
@@ -12,7 +12,7 @@
   <parent>
     <groupId>org.opendaylight.odlparent</groupId>
     <artifactId>odlparent-lite</artifactId>
-    <version>1.9.0</version>
+    <version>2.0.0</version>
     <relativePath/>
   </parent>
 
index 1b31edf..d9a30ff 100644 (file)
@@ -14,7 +14,7 @@
     <parent>
         <groupId>org.opendaylight.odlparent</groupId>
         <artifactId>odlparent-lite</artifactId>
-        <version>1.9.0</version>
+        <version>2.0.0</version>
         <relativePath/>
     </parent>
 
index 95b23c1..dab1caa 100644 (file)
@@ -11,7 +11,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html
   <parent>
     <groupId>org.opendaylight.odlparent</groupId>
     <artifactId>bundle-parent</artifactId>
-    <version>1.9.0</version>
+    <version>2.0.0</version>
     <relativePath/>
   </parent>
   <modelVersion>4.0.0</modelVersion>
index a5791c3..9ade146 100644 (file)
@@ -11,7 +11,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html
   <parent>
     <groupId>org.opendaylight.odlparent</groupId>
     <artifactId>bundle-parent</artifactId>
-    <version>1.9.0</version>
+    <version>2.0.0</version>
     <relativePath/>
   </parent>
   <modelVersion>4.0.0</modelVersion>
@@ -23,7 +23,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html
     <mdsal.version>1.6.0-SNAPSHOT</mdsal.version>
     <karaf.distro.groupId>org.opendaylight.odlparent</karaf.distro.groupId>
     <karaf.distro.artifactId>opendaylight-karaf-empty</karaf.distro.artifactId>
-    <karaf.distro.version>1.9.0</karaf.distro.version>
+    <karaf.distro.version>2.0.0</karaf.distro.version>
     <karaf.distro.type>zip</karaf.distro.type>
     <karaf.keep.unpack>false</karaf.keep.unpack>
   </properties>
index 9bb7bad..e00fa43 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>1.9.0</version>
+    <version>2.0.0</version>
     <relativePath/>
   </parent>
 
index f82d97f..8170e01 100644 (file)
@@ -1,64 +1,28 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!--
-Copyright © 2016 Red Hat and others. All rights reserved.
+<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>
 
-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 INTERNAL
--->
-<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.odlparent</groupId>
+        <artifactId>feature-repo-parent</artifactId>
+        <version>2.0.0</version>
+        <relativePath/>
+    </parent>
 
-  <parent>
-    <groupId>org.opendaylight.odlparent</groupId>
-    <artifactId>features-parent</artifactId>
-    <version>1.9.0</version>
-    <relativePath/>
-  </parent>
-
-  <groupId>org.opendaylight.controller</groupId>
-  <artifactId>mdsal-trace-features</artifactId>
-  <version>1.6.0-SNAPSHOT</version>
-  <name>${project.artifactId}</name>
-
-  <dependencyManagement>
+    <groupId>org.opendaylight.controller</groupId>
+    <artifactId>features-mdsal-trace</artifactId>
+    <version>1.6.0-SNAPSHOT</version>
+    <name>OpenDaylight :: TracingBroker</name>
+    <packaging>feature</packaging>
     <dependencies>
-      <!-- project specific dependencies -->
-      <dependency>
-        <groupId>org.opendaylight.mdsal</groupId>
-        <artifactId>mdsal-artifacts</artifactId>
-        <version>2.3.0-SNAPSHOT</version>
-        <type>pom</type>
-        <scope>import</scope>
-      </dependency>
-      <dependency>
-        <groupId>org.opendaylight.controller</groupId>
-        <artifactId>mdsal-artifacts</artifactId>
-        <version>${project.version}</version>
-        <type>pom</type>
-        <scope>import</scope>
-      </dependency>
+        <dependency>
+            <groupId>org.opendaylight.controller</groupId>
+            <artifactId>odl-mdsal-trace</artifactId>
+            <version>${project.version}</version>
+            <type>xml</type>
+            <classifier>features</classifier>
+        </dependency>
     </dependencies>
-  </dependencyManagement>
-
-  <dependencies>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>features-mdsal</artifactId>
-      <classifier>features</classifier>
-      <type>xml</type>
-    </dependency>
-    <dependency>
-      <groupId>${project.groupId}</groupId>
-      <artifactId>mdsal-trace-dom-impl</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>${project.groupId}</groupId>
-      <artifactId>mdsal-trace-binding-impl</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>${project.groupId}</groupId>
-      <artifactId>mdsal-trace-api</artifactId>
-    </dependency>
-  </dependencies>
 </project>
diff --git a/opendaylight/md-sal/mdsal-trace/features/features-mdsal-trace/src/main/features/features.xml b/opendaylight/md-sal/mdsal-trace/features/features-mdsal-trace/src/main/features/features.xml
deleted file mode 100644 (file)
index 3eb6d7b..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- vi: set et smarttab sw=4 tabstop=4: -->
-<!--
-Copyright © 2016 Red Hat 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
--->
-<features name="odl-mdsaltrace-${project.version}" xmlns="http://karaf.apache.org/xmlns/features/v1.2.0"
-  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-  xsi:schemaLocation="http://karaf.apache.org/xmlns/features/v1.2.0 http://karaf.apache.org/xmlns/features/v1.2.0">
-  <repository>mvn:org.opendaylight.controller/features-mdsal/{{VERSION}}/xml/features</repository>
-  <repository>mvn:org.opendaylight.yangtools/features-yangtools/{{VERSION}}/xml/features</repository>
-
-  <feature name='odl-mdsal-trace' version='${project.version}' description='OpenDaylight :: TracingBroker'>
-    <feature version='${project.version}'>odl-mdsal-broker</feature>
-    <feature version='${project.version}'>odl-mdsal-broker-local</feature>
-    <bundle>mvn:org.opendaylight.controller/mdsal-trace-api/{{VERSION}}</bundle>
-    <bundle>mvn:org.opendaylight.controller/mdsal-trace-dom-impl/{{VERSION}}</bundle>
-    <bundle>mvn:org.opendaylight.controller/mdsal-trace-binding-impl/{{VERSION}}</bundle>
-    <configfile finalname="etc/opendaylight/datastore/initial/config/mdsaltrace_config.xml">mvn:org.opendaylight.controller/mdsal-trace-api/{{VERSION}}/xml/config</configfile>
-  </feature>
-</features>
diff --git a/opendaylight/md-sal/mdsal-trace/features/features4-mdsal-trace/pom.xml b/opendaylight/md-sal/mdsal-trace/features/features4-mdsal-trace/pom.xml
deleted file mode 100644 (file)
index 55e319b..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<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.odlparent</groupId>
-        <artifactId>feature-repo-parent</artifactId>
-        <version>1.9.0</version>
-        <relativePath/>
-    </parent>
-
-    <groupId>org.opendaylight.controller</groupId>
-    <artifactId>features4-mdsal-trace</artifactId>
-    <version>1.6.0-SNAPSHOT</version>
-    <name>OpenDaylight :: TracingBroker</name>
-    <packaging>feature</packaging>
-    <dependencies>
-        <dependency>
-            <groupId>org.opendaylight.controller</groupId>
-            <artifactId>odl-mdsal-trace</artifactId>
-            <version>${project.version}</version>
-            <type>xml</type>
-            <classifier>features</classifier>
-        </dependency>
-    </dependencies>
-</project>
index 821889b..238298a 100644 (file)
@@ -7,7 +7,7 @@
     <parent>
         <groupId>org.opendaylight.odlparent</groupId>
         <artifactId>single-feature-parent</artifactId>
-        <version>1.9.0</version>
+        <version>2.0.0</version>
         <relativePath/>
     </parent>
 
index 9828efd..d871d47 100644 (file)
@@ -12,7 +12,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html INTERNAL
   <parent>
     <groupId>org.opendaylight.odlparent</groupId>
     <artifactId>odlparent-lite</artifactId>
-    <version>1.9.0</version>
+    <version>2.0.0</version>
     <relativePath/>
   </parent>
 
@@ -24,6 +24,5 @@ and is available at http://www.eclipse.org/legal/epl-v10.html INTERNAL
   <modules>
     <module>features-mdsal-trace</module>
     <module>odl-mdsal-trace</module>
-    <module>features4-mdsal-trace</module>
   </modules>
 </project>
index 1e8aa6b..1b129a7 100644 (file)
@@ -11,7 +11,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html INTERNAL
   <parent>
     <groupId>org.opendaylight.odlparent</groupId>
     <artifactId>odlparent-lite</artifactId>
-    <version>1.9.0</version>
+    <version>2.0.0</version>
     <relativePath/>
   </parent>
 
index 55f1819..bd281b7 100644 (file)
@@ -12,7 +12,7 @@
   <parent>
     <groupId>org.opendaylight.odlparent</groupId>
     <artifactId>odlparent-lite</artifactId>
-    <version>1.9.0</version>
+    <version>2.0.0</version>
     <relativePath/>
   </parent>
 
index dcebde0..b2d90cf 100644 (file)
@@ -14,7 +14,7 @@ and is available at http://www.eclipse.org/legal/epl-v10.html
     <parent>
         <groupId>org.opendaylight.odlparent</groupId>
         <artifactId>bundle-parent</artifactId>
-        <version>1.9.0</version>
+        <version>2.0.0</version>
         <relativePath/>
     </parent>
 
index 11daedd..0b1e89b 100644 (file)
@@ -5,7 +5,7 @@
   <parent>
     <groupId>org.opendaylight.odlparent</groupId>
     <artifactId>odlparent-lite</artifactId>
-    <version>1.9.0</version>
+    <version>2.0.0</version>
     <relativePath/>
   </parent>
 
index c492147..e09f2fb 100644 (file)
@@ -4,7 +4,7 @@
   <parent>
     <groupId>org.opendaylight.odlparent</groupId>
     <artifactId>bundle-parent</artifactId>
-    <version>1.9.0</version>
+    <version>2.0.0</version>
     <relativePath/>
   </parent>
 
index 23f37bf..62e2c24 100644 (file)
@@ -4,7 +4,7 @@
   <parent>
     <groupId>org.opendaylight.odlparent</groupId>
     <artifactId>bundle-parent</artifactId>
-    <version>1.9.0</version>
+    <version>2.0.0</version>
     <relativePath/>
   </parent>
 
index aa6c5b8..2330f61 100644 (file)
@@ -4,7 +4,7 @@
   <parent>
     <groupId>org.opendaylight.odlparent</groupId>
     <artifactId>bundle-parent</artifactId>
-    <version>1.9.0</version>
+    <version>2.0.0</version>
     <relativePath/>
   </parent>
 
index 4c83b95..1085705 100644 (file)
@@ -4,7 +4,7 @@
   <parent>
     <groupId>org.opendaylight.odlparent</groupId>
     <artifactId>bundle-parent</artifactId>
-    <version>1.9.0</version>
+    <version>2.0.0</version>
     <relativePath/>
   </parent>
 
index 9ee450d..c188fdd 100644 (file)
@@ -4,7 +4,7 @@
   <parent>
     <groupId>org.opendaylight.odlparent</groupId>
     <artifactId>odlparent</artifactId>
-    <version>1.9.0</version>
+    <version>2.0.0</version>
     <relativePath/>
   </parent>
 
index 5f0dc08..2211fbc 100644 (file)
@@ -4,7 +4,7 @@
   <parent>
     <groupId>org.opendaylight.odlparent</groupId>
     <artifactId>bundle-parent</artifactId>
-    <version>1.9.0</version>
+    <version>2.0.0</version>
     <relativePath/>
   </parent>
 
index 6db9ec2..f9a5f9b 100644 (file)
@@ -12,7 +12,7 @@
   <parent>
     <groupId>org.opendaylight.odlparent</groupId>
     <artifactId>odlparent-lite</artifactId>
-    <version>1.9.0</version>
+    <version>2.0.0</version>
     <relativePath/>
   </parent>
 
index 065b52c..474d55c 100644 (file)
@@ -4,7 +4,7 @@
   <parent>
     <groupId>org.opendaylight.odlparent</groupId>
     <artifactId>bundle-parent</artifactId>
-    <version>1.9.0</version>
+    <version>2.0.0</version>
     <relativePath/>
   </parent>
 
index b9df496..9b0dbb0 100644 (file)
@@ -7,7 +7,6 @@
  */
 package org.opendaylight.controller.md.sal.common.impl.service;
 
-import com.google.common.util.concurrent.AsyncFunction;
 import com.google.common.util.concurrent.CheckedFuture;
 import com.google.common.util.concurrent.Futures;
 import com.google.common.util.concurrent.ListenableFuture;
@@ -25,6 +24,6 @@ public abstract class AbstractDataTransaction {
             Futures.immediateFuture(RpcResultBuilder.success(TransactionStatus.COMMITED).build());
 
     public static ListenableFuture<RpcResult<TransactionStatus>> convertToLegacyCommitFuture(final CheckedFuture<Void,TransactionCommitFailedException> from) {
-        return Futures.transform(from, (AsyncFunction<Void, RpcResult<TransactionStatus>>) input -> SUCCESS_FUTURE);
+        return Futures.transformAsync(from, input -> SUCCESS_FUTURE);
     }
 }
index b3208cd..6f98628 100644 (file)
@@ -5,7 +5,7 @@
   <parent>
     <groupId>org.opendaylight.odlparent</groupId>
     <artifactId>odlparent</artifactId>
-    <version>1.9.0</version>
+    <version>2.0.0</version>
     <relativePath />
   </parent>
 
index 790ad7e..674a944 100644 (file)
@@ -4,7 +4,7 @@
   <parent>
     <groupId>org.opendaylight.odlparent</groupId>
     <artifactId>bundle-parent</artifactId>
-    <version>1.9.0</version>
+    <version>2.0.0</version>
     <relativePath/>
   </parent>
 
index dfaa0f8..5779db6 100644 (file)
@@ -4,7 +4,7 @@
   <parent>
     <groupId>org.opendaylight.odlparent</groupId>
     <artifactId>bundle-parent</artifactId>
-    <version>1.9.0</version>
+    <version>2.0.0</version>
     <relativePath/>
   </parent>
 
index 1277854..a2a2bfc 100644 (file)
@@ -12,6 +12,7 @@ import com.google.common.base.Preconditions;
 import com.google.common.util.concurrent.FutureCallback;
 import com.google.common.util.concurrent.Futures;
 import com.google.common.util.concurrent.ListenableFuture;
+import com.google.common.util.concurrent.MoreExecutors;
 import java.util.List;
 import org.opendaylight.controller.cluster.access.concepts.TransactionIdentifier;
 import org.slf4j.Logger;
@@ -32,26 +33,26 @@ class DebugThreePhaseCommitCohort extends AbstractThreePhaseCommitCohort<Object>
     private final TransactionIdentifier transactionId;
     private Logger log = LOG;
 
-    DebugThreePhaseCommitCohort(TransactionIdentifier transactionId, AbstractThreePhaseCommitCohort<?> delegate,
-            Throwable debugContext) {
+    DebugThreePhaseCommitCohort(final TransactionIdentifier transactionId,
+            final AbstractThreePhaseCommitCohort<?> delegate, final Throwable debugContext) {
         this.delegate = Preconditions.checkNotNull(delegate);
         this.debugContext = Preconditions.checkNotNull(debugContext);
         this.transactionId = Preconditions.checkNotNull(transactionId);
     }
 
-    private <V> ListenableFuture<V> addFutureCallback(ListenableFuture<V> future) {
+    private <V> ListenableFuture<V> addFutureCallback(final ListenableFuture<V> future) {
         Futures.addCallback(future, new FutureCallback<V>() {
             @Override
-            public void onSuccess(V result) {
+            public void onSuccess(final V result) {
                 // no-op
             }
 
             @Override
-            public void onFailure(Throwable failure) {
+            public void onFailure(final Throwable failure) {
                 log.warn("Transaction {} failed with error \"{}\" - was allocated in the following context",
                         transactionId, failure, debugContext);
             }
-        });
+        }, MoreExecutors.directExecutor());
 
         return future;
     }
@@ -83,7 +84,7 @@ class DebugThreePhaseCommitCohort extends AbstractThreePhaseCommitCohort<Object>
     }
 
     @VisibleForTesting
-    void setLogger(Logger log) {
+    void setLogger(final Logger log) {
         this.log = log;
     }
 }
index 76bafb7..9fad1f1 100644 (file)
@@ -11,6 +11,7 @@ import akka.actor.ActorSelection;
 import com.google.common.base.Preconditions;
 import com.google.common.util.concurrent.FutureCallback;
 import com.google.common.util.concurrent.Futures;
+import com.google.common.util.concurrent.MoreExecutors;
 import com.google.common.util.concurrent.SettableFuture;
 import org.opendaylight.controller.cluster.access.concepts.TransactionIdentifier;
 import org.opendaylight.controller.cluster.datastore.messages.AbstractRead;
@@ -31,8 +32,8 @@ abstract class LocalTransactionContext extends AbstractTransactionContext {
     private final LocalTransactionReadySupport readySupport;
     private Exception operationError;
 
-    LocalTransactionContext(DOMStoreTransaction txDelegate, TransactionIdentifier identifier,
-            LocalTransactionReadySupport readySupport) {
+    LocalTransactionContext(final DOMStoreTransaction txDelegate, final TransactionIdentifier identifier,
+            final LocalTransactionReadySupport readySupport) {
         super(identifier);
         this.txDelegate = Preconditions.checkNotNull(txDelegate);
         this.readySupport = readySupport;
@@ -44,7 +45,7 @@ abstract class LocalTransactionContext extends AbstractTransactionContext {
 
     @Override
     @SuppressWarnings("checkstyle:IllegalCatch")
-    public void executeModification(AbstractModification modification) {
+    public void executeModification(final AbstractModification modification) {
         incrementModificationCount();
         if (operationError == null) {
             try {
@@ -56,7 +57,7 @@ abstract class LocalTransactionContext extends AbstractTransactionContext {
     }
 
     @Override
-    public <T> void executeRead(AbstractRead<T> readCmd, final SettableFuture<T> proxyFuture) {
+    public <T> void executeRead(final AbstractRead<T> readCmd, final SettableFuture<T> proxyFuture) {
         Futures.addCallback(readCmd.apply(getReadDelegate()), new FutureCallback<T>() {
             @Override
             public void onSuccess(final T result) {
@@ -67,7 +68,7 @@ abstract class LocalTransactionContext extends AbstractTransactionContext {
             public void onFailure(final Throwable failure) {
                 proxyFuture.setException(failure);
             }
-        });
+        }, MoreExecutors.directExecutor());
     }
 
     private LocalThreePhaseCommitCohort ready() {
index 405eb0f..f91da9a 100644 (file)
@@ -17,6 +17,7 @@ import com.google.common.collect.Iterables;
 import com.google.common.util.concurrent.CheckedFuture;
 import com.google.common.util.concurrent.Futures;
 import com.google.common.util.concurrent.ListenableFuture;
+import com.google.common.util.concurrent.MoreExecutors;
 import com.google.common.util.concurrent.SettableFuture;
 import java.util.ArrayList;
 import java.util.Collection;
@@ -80,7 +81,8 @@ public class TransactionProxy extends AbstractDOMStoreTransaction<TransactionIde
         return executeRead(shardNameFromIdentifier(path), new DataExists(path, DataStoreVersions.CURRENT_VERSION));
     }
 
-    private <T> CheckedFuture<T, ReadFailedException> executeRead(String shardName, final AbstractRead<T> readCmd) {
+    private <T> CheckedFuture<T, ReadFailedException> executeRead(final String shardName,
+            final AbstractRead<T> readCmd) {
         Preconditions.checkState(type != TransactionType.WRITE_ONLY,
                 "Reads from write-only transactions are not allowed");
 
@@ -90,7 +92,7 @@ public class TransactionProxy extends AbstractDOMStoreTransaction<TransactionIde
         TransactionContextWrapper contextWrapper = getContextWrapper(shardName);
         contextWrapper.maybeExecuteTransactionOperation(new TransactionOperation() {
             @Override
-            public void invoke(TransactionContext transactionContext) {
+            public void invoke(final TransactionContext transactionContext) {
                 transactionContext.executeRead(readCmd, proxyFuture);
             }
         });
@@ -138,7 +140,7 @@ public class TransactionProxy extends AbstractDOMStoreTransaction<TransactionIde
                 } catch (DataValidationFailedException e) {
                     throw new IllegalArgumentException("Failed to aggregate", e);
                 }
-            });
+            }, MoreExecutors.directExecutor());
 
         return MappingCheckedFuture.create(aggregateFuture, ReadFailedException.MAPPER);
     }
@@ -167,7 +169,7 @@ public class TransactionProxy extends AbstractDOMStoreTransaction<TransactionIde
         TransactionContextWrapper contextWrapper = getContextWrapper(modification.getPath());
         contextWrapper.maybeExecuteTransactionOperation(new TransactionOperation() {
             @Override
-            protected void invoke(TransactionContext transactionContext) {
+            protected void invoke(final TransactionContext transactionContext) {
                 transactionContext.executeModification(modification);
             }
         });
@@ -201,7 +203,7 @@ public class TransactionProxy extends AbstractDOMStoreTransaction<TransactionIde
         for (TransactionContextWrapper contextWrapper : txContextWrappers.values()) {
             contextWrapper.maybeExecuteTransactionOperation(new TransactionOperation() {
                 @Override
-                public void invoke(TransactionContext transactionContext) {
+                public void invoke(final TransactionContext transactionContext) {
                     transactionContext.closeTransaction();
                 }
             });
@@ -255,7 +257,7 @@ public class TransactionProxy extends AbstractDOMStoreTransaction<TransactionIde
             final Promise promise = akka.dispatch.Futures.promise();
             contextWrapper.maybeExecuteTransactionOperation(new TransactionOperation() {
                 @Override
-                public void invoke(TransactionContext newTransactionContext) {
+                public void invoke(final TransactionContext newTransactionContext) {
                     promise.completeWith(getDirectCommitFuture(newTransactionContext, operationCallbackRef));
                 }
             });
@@ -269,8 +271,8 @@ public class TransactionProxy extends AbstractDOMStoreTransaction<TransactionIde
             operationCallbackRef);
     }
 
-    private Future<?> getDirectCommitFuture(TransactionContext transactionContext,
-            OperationCallback.Reference operationCallbackRef) {
+    private Future<?> getDirectCommitFuture(final TransactionContext transactionContext,
+            final OperationCallback.Reference operationCallbackRef) {
         TransactionRateLimitingCallback rateLimitingCallback = new TransactionRateLimitingCallback(
                 txContextFactory.getActorContext());
         operationCallbackRef.set(rateLimitingCallback);
index 0342a13..2342e5e 100644 (file)
@@ -11,6 +11,7 @@ package org.opendaylight.controller.cluster.sharding;
 import com.google.common.util.concurrent.AsyncFunction;
 import com.google.common.util.concurrent.Futures;
 import com.google.common.util.concurrent.ListenableFuture;
+import com.google.common.util.concurrent.MoreExecutors;
 import java.util.Collection;
 import java.util.concurrent.ExecutionException;
 import org.opendaylight.controller.cluster.access.concepts.MemberName;
@@ -100,8 +101,9 @@ class PrefixedShardConfigWriter {
         final AsyncFunction<Boolean, Void> validateFunction = input -> cohort.preCommit();
         final AsyncFunction<Void, Void> prepareFunction = input -> cohort.commit();
 
-        final ListenableFuture<Void> prepareFuture = Futures.transform(cohort.canCommit(), validateFunction);
-        return Futures.transform(prepareFuture, prepareFunction);
+        final ListenableFuture<Void> prepareFuture = Futures.transformAsync(cohort.canCommit(), validateFunction,
+            MoreExecutors.directExecutor());
+        return Futures.transformAsync(prepareFuture, prepareFunction, MoreExecutors.directExecutor());
     }
 
     boolean checkDefaultIsPresent() {
index d08b47b..52630eb 100644 (file)
@@ -14,6 +14,7 @@ import com.google.common.util.concurrent.AsyncFunction;
 import com.google.common.util.concurrent.FutureCallback;
 import com.google.common.util.concurrent.Futures;
 import com.google.common.util.concurrent.ListenableFuture;
+import com.google.common.util.concurrent.MoreExecutors;
 import com.google.common.util.concurrent.SettableFuture;
 import java.util.ArrayList;
 import java.util.Collection;
@@ -129,9 +130,10 @@ class ShardProxyTransaction implements DOMDataTreeShardWriteTransaction {
         final AsyncFunction<Void, Void> prepareFunction = input -> commit();
 
         // transform validate into prepare
-        final ListenableFuture<Void> prepareFuture = Futures.transform(validate(), validateFunction);
+        final ListenableFuture<Void> prepareFuture = Futures.transformAsync(validate(), validateFunction,
+            MoreExecutors.directExecutor());
         // transform prepare into commit and return as submit result
-        return Futures.transform(prepareFuture, prepareFunction);
+        return Futures.transformAsync(prepareFuture, prepareFunction, MoreExecutors.directExecutor());
     }
 
     @Override
@@ -153,7 +155,7 @@ class ShardProxyTransaction implements DOMDataTreeShardWriteTransaction {
             public void onFailure(final Throwable throwable) {
                 ret.setException(throwable);
             }
-        });
+        }, MoreExecutors.directExecutor());
 
         return ret;
     }
@@ -177,7 +179,7 @@ class ShardProxyTransaction implements DOMDataTreeShardWriteTransaction {
             public void onFailure(final Throwable throwable) {
                 ret.setException(throwable);
             }
-        });
+        }, MoreExecutors.directExecutor());
 
         return ret;
     }
@@ -201,7 +203,7 @@ class ShardProxyTransaction implements DOMDataTreeShardWriteTransaction {
             public void onFailure(final Throwable throwable) {
                 ret.setException(throwable);
             }
-        });
+        }, MoreExecutors.directExecutor());
 
         return ret;
     }
index fcba12b..8333b48 100644 (file)
@@ -8,8 +8,8 @@
 package org.opendaylight.controller.cluster.databroker;
 
 import com.google.common.base.Optional;
-import com.google.common.util.concurrent.CheckedFuture;
 import com.google.common.util.concurrent.Futures;
+import com.google.common.util.concurrent.ListenableFuture;
 import org.junit.Assert;
 import org.junit.Before;
 import org.junit.Test;
@@ -18,7 +18,6 @@ import org.mockito.Mockito;
 import org.mockito.MockitoAnnotations;
 import org.opendaylight.controller.cluster.access.client.ClientActorContext;
 import org.opendaylight.controller.cluster.databroker.actors.dds.ClientSnapshot;
-import org.opendaylight.controller.md.sal.common.api.data.ReadFailedException;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
 import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
 
@@ -54,7 +53,7 @@ public class ClientBackedReadTransactionTest extends ClientBackedTransactionTest
 
     @Test
     public void testRead() throws Exception {
-        final CheckedFuture<Optional<NormalizedNode<?, ?>>, ReadFailedException> result = object().read(
+        final ListenableFuture<Optional<NormalizedNode<?, ?>>> result = object().read(
                 YangInstanceIdentifier.EMPTY);
         final Optional<NormalizedNode<?, ?>> resultData = result.get();
         Assert.assertTrue(resultData.isPresent());
@@ -63,7 +62,7 @@ public class ClientBackedReadTransactionTest extends ClientBackedTransactionTest
 
     @Test
     public void testExists() throws Exception {
-        final CheckedFuture<Boolean, ReadFailedException> result = object().exists(YangInstanceIdentifier.EMPTY);
+        final ListenableFuture<Boolean> result = object().exists(YangInstanceIdentifier.EMPTY);
         Assert.assertTrue(result.get());
     }
 }
\ No newline at end of file
index bef18ff..8335fcd 100644 (file)
@@ -136,8 +136,7 @@ public class ConcurrentDOMDataBrokerTest {
         doReturn(Futures.immediateFuture(null)).when(mockCohort2).preCommit();
         doReturn(Futures.immediateFuture(null)).when(mockCohort2).commit();
 
-        CheckedFuture<Void, TransactionCommitFailedException> future = coordinator.submit(
-                transaction, Arrays.asList(mockCohort1, mockCohort2));
+        ListenableFuture<Void> future = coordinator.submit(transaction, Arrays.asList(mockCohort1, mockCohort2));
 
         final CountDownLatch doneLatch = new CountDownLatch(1);
         final AtomicReference<Throwable> caughtEx = new AtomicReference<>();
@@ -152,7 +151,7 @@ public class ConcurrentDOMDataBrokerTest {
                 caughtEx.set(failure);
                 doneLatch.countDown();
             }
-        });
+        }, MoreExecutors.directExecutor());
 
         asyncCanCommitContinue.countDown();
 
index 709335c..d9b1e8e 100644 (file)
@@ -12,11 +12,10 @@ import static org.mockito.Mockito.when;
 import static org.opendaylight.controller.cluster.databroker.actors.dds.TestUtils.getWithTimeout;
 
 import com.google.common.base.Optional;
-import com.google.common.util.concurrent.CheckedFuture;
+import com.google.common.util.concurrent.ListenableFuture;
 import org.junit.Assert;
 import org.junit.Before;
 import org.junit.Test;
-import org.opendaylight.mdsal.common.api.ReadFailedException;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
 import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
 
@@ -43,14 +42,14 @@ public class ClientSnapshotTest extends AbstractClientHandleTest<ClientSnapshot>
 
     @Test
     public void testExists() throws Exception {
-        final CheckedFuture<Boolean, ReadFailedException> exists = getHandle().exists(PATH);
+        final ListenableFuture<Boolean> exists = getHandle().exists(PATH);
         verify(getDataTreeSnapshot()).readNode(PATH);
         Assert.assertFalse(getWithTimeout(exists));
     }
 
     @Test
     public void testRead() throws Exception {
-        final CheckedFuture<Optional<NormalizedNode<?, ?>>, ReadFailedException> exists = getHandle().read(PATH);
+        final ListenableFuture<Optional<NormalizedNode<?, ?>>> exists = getHandle().read(PATH);
         verify(getDataTreeSnapshot()).readNode(PATH);
         Assert.assertFalse(getWithTimeout(exists).isPresent());
     }
index 1b9ea16..a80a051 100644 (file)
@@ -395,7 +395,7 @@ public abstract class AbstractTransactionProxyTest extends AbstractTest {
                 cause = e.getCause();
             }
 
-            Throwables.propagateIfInstanceOf(cause, Exception.class);
+            Throwables.throwIfInstanceOf(cause, Exception.class);
             Throwables.propagate(cause);
         }
     }
index 86a78a7..3eb84bd 100644 (file)
@@ -810,7 +810,7 @@ public class ShardTest extends AbstractShardTest {
                 final Failure failure = expectMsgClass(duration("5 seconds"), akka.actor.Status.Failure.class);
 
                 if (failure != null) {
-                    Throwables.propagateIfInstanceOf(failure.cause(), Exception.class);
+                    Throwables.throwIfInstanceOf(failure.cause(), Exception.class);
                     Throwables.propagate(failure.cause());
                 }
             }
index 5ab1e5a..ca804fd 100644 (file)
@@ -34,6 +34,7 @@ import com.google.common.base.Throwables;
 import com.google.common.collect.Sets;
 import com.google.common.util.concurrent.CheckedFuture;
 import com.google.common.util.concurrent.FutureCallback;
+import com.google.common.util.concurrent.MoreExecutors;
 import com.google.common.util.concurrent.Uninterruptibles;
 import java.util.Collection;
 import java.util.List;
@@ -138,7 +139,8 @@ public class TransactionProxyTest extends AbstractTransactionProxyTest {
         propagateReadFailedExceptionCause(transactionProxy.read(TestModel.TEST_PATH));
     }
 
-    private void testExceptionOnInitialCreateTransaction(Exception exToThrow, Invoker invoker) throws Exception {
+    private void testExceptionOnInitialCreateTransaction(final Exception exToThrow, final Invoker invoker)
+            throws Exception {
         ActorRef actorRef = getSystem().actorOf(Props.create(DoNothingActor.class));
 
         if (exToThrow instanceof PrimaryNotFoundException) {
@@ -156,7 +158,7 @@ public class TransactionProxyTest extends AbstractTransactionProxyTest {
         propagateReadFailedExceptionCause(invoker.invoke(transactionProxy));
     }
 
-    private void testReadWithExceptionOnInitialCreateTransaction(Exception exToThrow) throws Exception {
+    private void testReadWithExceptionOnInitialCreateTransaction(final Exception exToThrow) throws Exception {
         testExceptionOnInitialCreateTransaction(exToThrow, proxy -> proxy.read(TestModel.TEST_PATH));
     }
 
@@ -355,7 +357,7 @@ public class TransactionProxyTest extends AbstractTransactionProxyTest {
         com.google.common.util.concurrent.Futures.addCallback(transactionProxy.read(TestModel.TEST_PATH),
                 new  FutureCallback<Optional<NormalizedNode<?, ?>>>() {
                     @Override
-                    public void onSuccess(Optional<NormalizedNode<?, ?>> result) {
+                    public void onSuccess(final Optional<NormalizedNode<?, ?>> result) {
                         try {
                             transactionProxy.write(TestModel.TEST_PATH, nodeToWrite);
                         } catch (Exception e) {
@@ -366,11 +368,11 @@ public class TransactionProxyTest extends AbstractTransactionProxyTest {
                     }
 
                     @Override
-                    public void onFailure(Throwable failure) {
+                    public void onFailure(final Throwable failure) {
                         caughtEx.set(failure);
                         readComplete.countDown();
                     }
-                });
+                }, MoreExecutors.directExecutor());
 
         createTxPromise.success(createTransactionReply(actorRef, DataStoreVersions.CURRENT_VERSION));
 
@@ -682,7 +684,7 @@ public class TransactionProxyTest extends AbstractTransactionProxyTest {
         verifyCohortFutures((SingleCommitCohortProxy)ready, RuntimeException.class);
     }
 
-    private void testWriteOnlyTxWithFindPrimaryShardFailure(Exception toThrow) throws Exception {
+    private void testWriteOnlyTxWithFindPrimaryShardFailure(final Exception toThrow) throws Exception {
         doReturn(Futures.failed(toThrow)).when(mockActorContext).findPrimaryShardAsync(anyString());
 
         TransactionProxy transactionProxy = new TransactionProxy(mockComponentFactory, WRITE_ONLY);
@@ -773,26 +775,27 @@ public class TransactionProxyTest extends AbstractTransactionProxyTest {
         void run(TransactionProxy transactionProxy);
     }
 
-    private PrimaryShardInfo newPrimaryShardInfo(ActorRef actorRef) {
+    private PrimaryShardInfo newPrimaryShardInfo(final ActorRef actorRef) {
         return new PrimaryShardInfo(getSystem().actorSelection(actorRef.path()), DataStoreVersions.CURRENT_VERSION);
     }
 
-    private PrimaryShardInfo newPrimaryShardInfo(ActorRef actorRef, DataTree dataTree) {
+    private PrimaryShardInfo newPrimaryShardInfo(final ActorRef actorRef, final DataTree dataTree) {
         return new PrimaryShardInfo(getSystem().actorSelection(actorRef.path()), DataStoreVersions.CURRENT_VERSION,
                 dataTree);
     }
 
-    private void throttleOperation(TransactionProxyOperation operation) {
+    private void throttleOperation(final TransactionProxyOperation operation) {
         throttleOperation(operation, 1, true);
     }
 
-    private void throttleOperation(TransactionProxyOperation operation, int outstandingOpsLimit, boolean shardFound) {
+    private void throttleOperation(final TransactionProxyOperation operation, final int outstandingOpsLimit,
+            final boolean shardFound) {
         throttleOperation(operation, outstandingOpsLimit, shardFound, TimeUnit.MILLISECONDS.toNanos(
                 mockActorContext.getDatastoreContext().getOperationTimeoutInMillis()));
     }
 
-    private void throttleOperation(TransactionProxyOperation operation, int outstandingOpsLimit, boolean shardFound,
-            long expectedCompletionTime) {
+    private void throttleOperation(final TransactionProxyOperation operation, final int outstandingOpsLimit,
+            final boolean shardFound, final long expectedCompletionTime) {
         ActorSystem actorSystem = getSystem();
         ActorRef shardActorRef = actorSystem.actorOf(Props.create(DoNothingActor.class));
 
@@ -834,11 +837,11 @@ public class TransactionProxyTest extends AbstractTransactionProxyTest {
 
     }
 
-    private void completeOperation(TransactionProxyOperation operation) {
+    private void completeOperation(final TransactionProxyOperation operation) {
         completeOperation(operation, true);
     }
 
-    private void completeOperation(TransactionProxyOperation operation, boolean shardFound) {
+    private void completeOperation(final TransactionProxyOperation operation, final boolean shardFound) {
         ActorSystem actorSystem = getSystem();
         ActorRef shardActorRef = actorSystem.actorOf(Props.create(DoNothingActor.class));
 
@@ -878,7 +881,7 @@ public class TransactionProxyTest extends AbstractTransactionProxyTest {
                 expected, end - start), end - start <= expected);
     }
 
-    private void completeOperationLocal(TransactionProxyOperation operation, DataTree dataTree) {
+    private void completeOperationLocal(final TransactionProxyOperation operation, final DataTree dataTree) {
         ActorSystem actorSystem = getSystem();
         ActorRef shardActorRef = actorSystem.actorOf(Props.create(DoNothingActor.class));
 
@@ -913,7 +916,7 @@ public class TransactionProxyTest extends AbstractTransactionProxyTest {
         return dataTree;
     }
 
-    private static DataTree createDataTree(NormalizedNode<?, ?> readResponse) {
+    private static DataTree createDataTree(final NormalizedNode<?, ?> readResponse) {
         DataTree dataTree = mock(DataTree.class);
         DataTreeSnapshot dataTreeSnapshot = mock(DataTreeSnapshot.class);
         DataTreeModification dataTreeModification = mock(DataTreeModification.class);
@@ -1238,7 +1241,7 @@ public class TransactionProxyTest extends AbstractTransactionProxyTest {
                 .getOperationTimeoutInMillis()) * 2);
     }
 
-    private void testModificationOperationBatching(TransactionType type) throws Exception {
+    private void testModificationOperationBatching(final TransactionType type) throws Exception {
         int shardBatchedModificationCount = 3;
         dataStoreContextBuilder.shardBatchedModificationCount(shardBatchedModificationCount);
 
@@ -1448,7 +1451,7 @@ public class TransactionProxyTest extends AbstractTransactionProxyTest {
     }
 
 
-    private void setUpReadData(String shardName, NormalizedNode<?, ?> expectedNode) {
+    private void setUpReadData(final String shardName, final NormalizedNode<?, ?> expectedNode) {
         ActorSystem actorSystem = getSystem();
         ActorRef shardActorRef = getSystem().actorOf(Props.create(DoNothingActor.class));
 
index fddc067..435536f 100644 (file)
@@ -4,7 +4,7 @@
   <parent>
     <groupId>org.opendaylight.odlparent</groupId>
     <artifactId>bundle-parent</artifactId>
-    <version>1.9.0</version>
+    <version>2.0.0</version>
     <relativePath/>
   </parent>
 
index c0ba23a..42a57ab 100644 (file)
@@ -4,7 +4,7 @@
   <parent>
     <groupId>org.opendaylight.odlparent</groupId>
     <artifactId>bundle-parent</artifactId>
-    <version>1.9.0</version>
+    <version>2.0.0</version>
     <relativePath/>
   </parent>
 
index bd8643b..be27dda 100644 (file)
@@ -16,11 +16,11 @@ import com.google.common.base.Optional;
 import com.google.common.collect.ImmutableMap;
 import com.google.common.collect.Lists;
 import com.google.common.collect.Maps;
-import com.google.common.util.concurrent.AsyncFunction;
 import com.google.common.util.concurrent.CheckedFuture;
 import com.google.common.util.concurrent.FutureCallback;
 import com.google.common.util.concurrent.Futures;
 import com.google.common.util.concurrent.ListenableFuture;
+import com.google.common.util.concurrent.MoreExecutors;
 import com.google.common.util.concurrent.SettableFuture;
 import java.util.Map;
 import java.util.Queue;
@@ -116,7 +116,7 @@ class ShardedDOMDataBrokerDelegatingReadWriteTransaction implements DOMDataReadW
 
     @Override
     public ListenableFuture<RpcResult<TransactionStatus>> commit() {
-        return Futures.transform(submit(), (AsyncFunction<Void, RpcResult<TransactionStatus>>) input -> SUCCESS_FUTURE);
+        return Futures.transformAsync(submit(), input -> SUCCESS_FUTURE, MoreExecutors.directExecutor());
     }
 
     @Override
@@ -140,7 +140,7 @@ class ShardedDOMDataBrokerDelegatingReadWriteTransaction implements DOMDataReadW
             public void onFailure(final Throwable t) {
                 readResult.setException(t);
             }
-        });
+        }, MoreExecutors.directExecutor());
 
         return Futures.makeChecked(readResult, ReadFailedException.MAPPER);
     }
index b5191dd..7a45c83 100644 (file)
@@ -10,7 +10,6 @@ package org.opendaylight.controller.md.sal.dom.broker.impl.legacy.sharded.adapte
 
 import static com.google.common.base.Preconditions.checkNotNull;
 
-import com.google.common.util.concurrent.AsyncFunction;
 import com.google.common.util.concurrent.CheckedFuture;
 import com.google.common.util.concurrent.Futures;
 import com.google.common.util.concurrent.ListenableFuture;
@@ -64,7 +63,7 @@ class ShardedDOMDataBrokerDelegatingWriteTransaction implements DOMDataWriteTran
 
     @Override
     public ListenableFuture<RpcResult<TransactionStatus>> commit() {
-        return Futures.transform(submit(), (AsyncFunction<Void, RpcResult<TransactionStatus>>) input -> SUCCESS_FUTURE);
+        return Futures.transformAsync(submit(), input -> SUCCESS_FUTURE);
     }
 
     @Override
index 966c906..5c19c4a 100644 (file)
@@ -4,7 +4,7 @@
   <parent>
     <groupId>org.opendaylight.odlparent</groupId>
     <artifactId>bundle-parent</artifactId>
-    <version>1.9.0</version>
+    <version>2.0.0</version>
     <relativePath/>
   </parent>
 
index 63b7ec3..7f85cb0 100644 (file)
@@ -4,7 +4,7 @@
   <parent>
     <groupId>org.opendaylight.odlparent</groupId>
     <artifactId>bundle-parent</artifactId>
-    <version>1.9.0</version>
+    <version>2.0.0</version>
     <relativePath/>
   </parent>
 
index 4199180..a77ba4c 100644 (file)
@@ -5,7 +5,7 @@
     <parent>
         <groupId>org.opendaylight.odlparent</groupId>
         <artifactId>bundle-parent</artifactId>
-        <version>1.9.0</version>
+        <version>2.0.0</version>
         <relativePath/>
     </parent>
 
index 7bb4b93..4c3ad7e 100644 (file)
@@ -12,11 +12,11 @@ import akka.actor.ActorRef;
 import akka.actor.Props;
 import com.google.common.base.Preconditions;
 import com.google.common.base.Throwables;
-import com.google.common.util.concurrent.CheckedFuture;
 import com.google.common.util.concurrent.FutureCallback;
 import com.google.common.util.concurrent.Futures;
+import com.google.common.util.concurrent.ListenableFuture;
+import com.google.common.util.concurrent.MoreExecutors;
 import org.opendaylight.controller.cluster.common.actor.AbstractUntypedActor;
-import org.opendaylight.controller.md.sal.dom.api.DOMRpcException;
 import org.opendaylight.controller.md.sal.dom.api.DOMRpcResult;
 import org.opendaylight.controller.md.sal.dom.api.DOMRpcService;
 import org.opendaylight.controller.remote.rpc.messages.ExecuteRpc;
@@ -56,7 +56,7 @@ final class RpcInvoker extends AbstractUntypedActor {
         final ActorRef sender = getSender();
         final ActorRef self = self();
 
-        final CheckedFuture<DOMRpcResult, DOMRpcException> future;
+        final ListenableFuture<DOMRpcResult> future;
         try {
             future = rpcService.invokeRpc(schemaPath, msg.getInputNormalizedNode());
         } catch (final RuntimeException e) {
@@ -93,6 +93,6 @@ final class RpcInvoker extends AbstractUntypedActor {
                     msg.getRpc(), Throwables.getRootCause(failure));
                 sender.tell(new akka.actor.Status.Failure(failure), self);
             }
-        });
+        }, MoreExecutors.directExecutor());
     }
 }
index dcd520d..31b6741 100644 (file)
@@ -4,7 +4,7 @@
   <parent>
     <groupId>org.opendaylight.odlparent</groupId>
     <artifactId>bundle-parent</artifactId>
-    <version>1.9.0</version>
+    <version>2.0.0</version>
     <relativePath/>
   </parent>
 
index c877683..0933b02 100644 (file)
@@ -4,7 +4,7 @@
   <parent>
     <groupId>org.opendaylight.odlparent</groupId>
     <artifactId>bundle-parent</artifactId>
-    <version>1.9.0</version>
+    <version>2.0.0</version>
     <relativePath/>
   </parent>
 
index 0583368..1899afb 100644 (file)
@@ -10,7 +10,6 @@ package org.opendaylight.controller.sample.kitchen.impl;
 
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.ImmutableList.Builder;
-import com.google.common.util.concurrent.AsyncFunction;
 import com.google.common.util.concurrent.Futures;
 import com.google.common.util.concurrent.JdkFutureAdapters;
 import com.google.common.util.concurrent.ListenableFuture;
@@ -73,23 +72,22 @@ public class KitchenServiceImpl extends AbstractMXBean
 
         // Then transform the RpcResults into 1.
 
-        return Futures.transform(combinedFutures,
-            (AsyncFunction<List<RpcResult<Void>>, RpcResult<Void>>) results -> {
-                boolean atLeastOneSucceeded = false;
-                Builder<RpcError> errorList = ImmutableList.builder();
-                for (RpcResult<Void> result : results) {
-                    if (result.isSuccessful()) {
-                        atLeastOneSucceeded = true;
-                    }
-
-                    if (result.getErrors() != null) {
-                        errorList.addAll(result.getErrors());
-                    }
+        return Futures.transformAsync(combinedFutures, results -> {
+            boolean atLeastOneSucceeded = false;
+            Builder<RpcError> errorList = ImmutableList.builder();
+            for (RpcResult<Void> result : results) {
+                if (result.isSuccessful()) {
+                    atLeastOneSucceeded = true;
                 }
 
-                return Futures.immediateFuture(RpcResultBuilder.<Void>status(atLeastOneSucceeded)
-                        .withRpcErrors(errorList.build()).build());
-            });
+                if (result.getErrors() != null) {
+                    errorList.addAll(result.getErrors());
+                }
+            }
+
+            return Futures.immediateFuture(RpcResultBuilder.<Void>status(atLeastOneSucceeded)
+                    .withRpcErrors(errorList.build()).build());
+        });
     }
 
     private ListenableFuture<RpcResult<Void>> makeEggs(EggsType eggsType) {
index e475c32..4078409 100644 (file)
@@ -16,7 +16,6 @@ import static org.opendaylight.yangtools.yang.common.RpcError.ErrorType.APPLICAT
 import com.google.common.base.Function;
 import com.google.common.base.Optional;
 import com.google.common.base.Preconditions;
-import com.google.common.util.concurrent.AsyncFunction;
 import com.google.common.util.concurrent.FutureCallback;
 import com.google.common.util.concurrent.Futures;
 import com.google.common.util.concurrent.ListenableFuture;
@@ -229,7 +228,7 @@ public class OpendaylightToaster extends AbstractMXBean
         ListenableFuture<Optional<Toaster>> readFuture = tx.read(OPERATIONAL, TOASTER_IID);
 
         final ListenableFuture<Void> commitFuture =
-            Futures.transform(readFuture, (AsyncFunction<Optional<Toaster>, Void>) toasterData -> {
+            Futures.transformAsync(readFuture, toasterData -> {
                 ToasterStatus toasterStatus = ToasterStatus.Up;
                 if (toasterData.isPresent()) {
                     toasterStatus = toasterData.get().getToasterStatus();
diff --git a/pom.xml b/pom.xml
index b841648..2085882 100644 (file)
--- a/pom.xml
+++ b/pom.xml
@@ -4,7 +4,7 @@
   <parent>
     <groupId>org.opendaylight.odlparent</groupId>
     <artifactId>odlparent-lite</artifactId>
-    <version>1.9.0</version>
+    <version>2.0.0</version>
     <relativePath/>
   </parent>
   <groupId>org.opendaylight.controller</groupId>

©2013 OpenDaylight, A Linux Foundation Collaborative Project. All Rights Reserved.
OpenDaylight is a registered trademark of The OpenDaylight Project, Inc.
Linux Foundation and OpenDaylight are registered trademarks of the Linux Foundation.
Linux is a registered trademark of Linus Torvalds.