Karaf4 features and distribution 62/51762/13
authorVratko Polak <vrpolak@cisco.com>
Fri, 3 Mar 2017 13:03:14 +0000 (14:03 +0100)
committerVratko Polak <vrpolak@cisco.com>
Fri, 10 Mar 2017 11:02:29 +0000 (12:02 +0100)
+ upstream-artifact split to multiple files depending on type.
+ Version properties moved to a parent pom separate from aggregators.
+ Added TODOs to remind only atrifact-artifacts should be referred to ideally.
+ distribution-artifact still contains all types in one file.
+ Karaf 4 features added, both distribution and some upstream.
+ features/ split to singles/ and repos/.
+ odl-restconf and odl-netconf-mdsal are the only upstream Karaf 4 features (compatible).
+ Additionaly features4-netconf-connector added (user-facing features are incompatible).
+ features3-distribution as artifactId for the Karaf 3 distribution feature repo.
*+ Karaf 4 feature repos do not contain "integration" in artifactId.
*+ So othe Karaf 3 feature repos kept their artifactId, no releng change needed.
- The generated features-index descriptor lists single features (very ugly).
+ Karaf 3 related directories contain "3", Karaf 4 ones do not contain number.
*- Except distribution-karaf to not confuse releng, it will be deleted soon anyway.
+ distribution:karaf is the artifact creating Karaf 4 distribution.
*+ New content for org.ops4j.pax.url.mvn.cfg with minimal changes (to work offline) from default.
*- Other resources duplicated without any change.
*- aaa-cli-jar had to be commented out for the build to succeed.
+ ${project.*} used whenever possible (except in parent poms of course).
+ Modules named "all" listed last in aggregator (as if the order mattered).
+ Descriptions and comments improved.
+ Pom <project> atributes in separate lines.
+ Some copypastas from previous Changes fixed.

Change-Id: Ifed7d811e4f049e90f4a8cfa759ab2f67ae51f5b
Signed-off-by: Vratko Polak <vratko.polak@gmail.com>
36 files changed:
artifacts/all/pom.xml
artifacts/distribution/pom.xml
artifacts/pom.xml
artifacts/upstream/all/pom.xml [new file with mode: 0644]
artifacts/upstream/artifacts/pom.xml [new file with mode: 0644]
artifacts/upstream/feature-repos/pom.xml [new file with mode: 0644]
artifacts/upstream/feature3-repos/pom.xml [new file with mode: 0644]
artifacts/upstream/other/pom.xml [new file with mode: 0644]
artifacts/upstream/pom.xml
artifacts/upstream/properties/pom.xml [new file with mode: 0644]
artifacts/upstream/single-features/pom.xml [new file with mode: 0644]
distribution-karaf/pom.xml
features/pom.xml [new file with mode: 0644]
features/repos/distribution/pom.xml [new file with mode: 0644]
features/repos/index/pom.xml [new file with mode: 0644]
features/repos/pom.xml [new file with mode: 0644]
features/repos/test/pom.xml [new file with mode: 0644]
features/singles/odl-distribution-version/pom.xml [new file with mode: 0644]
features/singles/odl-distribution-version/src/main/features/features.xml [new file with mode: 0644]
features/singles/odl-integration-all/pom.xml [new file with mode: 0644]
features/singles/odl-integration-compatible-with-all/pom.xml [new file with mode: 0644]
features/singles/pom.xml [new file with mode: 0644]
features3-distribution/pom.xml [moved from features-distribution/pom.xml with 83% similarity]
features3-distribution/src/main/features/features.xml [moved from features-distribution/src/main/features/features.xml with 100% similarity]
features3-index/pom.xml [moved from features-index/pom.xml with 98% similarity]
features3-index/src/main/features/features.xml [moved from features-index/src/main/features/features.xml with 98% similarity]
features3-test/pom.xml [moved from features-test/pom.xml with 92% similarity]
features3-test/src/main/features/features.xml [moved from features-test/src/main/features/features.xml with 98% similarity]
karaf/pom.xml [new file with mode: 0644]
karaf/src/main/assembly/bin/configure-cluster-ipdetect.sh [new file with mode: 0755]
karaf/src/main/assembly/bin/configure_cluster.sh [new file with mode: 0755]
karaf/src/main/assembly/bin/custom_shard_config.txt [new file with mode: 0644]
karaf/src/main/assembly/bin/set_persistence.sh [new file with mode: 0755]
karaf/src/main/assembly/etc/org.ops4j.pax.url.mvn.cfg [new file with mode: 0644]
pom.xml
version/pom.xml

index e91cd84ed4037e78b3a8d9b0c2f94bd403e80457..106dc6e8cc60cdf52898304a7d40b7295b1ef920 100644 (file)
@@ -7,7 +7,9 @@
  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>
@@ -22,7 +24,6 @@
     <!-- <name> formatting is used by autorelease to parse and notify projects on
          build failure. Please do not modify this unless you have a good reason. -->
     <name>ODL :: integration :: ${project.artifactId}</name>
-
     <description>POM to import with all ODL artifact versions including Distribution.</description>
     <url>https://wiki.opendaylight.org/view/Integration/Distribution</url>
     <licenses>
         <tag>HEAD</tag>
     </scm>
     <dependencyManagement>
+        <!-- TODO: Hardcode each version when moving to semantic versioning. -->
         <dependencies>
             <dependency>
                 <groupId>${project.groupId}</groupId>
-                <artifactId>upstream-artifacts</artifactId>
+                <artifactId>upstream-all-artifacts</artifactId>
                 <version>${project.version}</version>
                 <scope>import</scope>
                 <type>pom</type>
index 8771d54e15287a7e10ff78ce67276985c37a90e3..b956b824b2f5a1479e3515ab269f03e847574169 100644 (file)
@@ -7,7 +7,9 @@
  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>
@@ -38,8 +40,9 @@
         <tag>HEAD</tag>
     </scm>
     <dependencyManagement>
+        <!-- TODO: Hardcode versions when moving to semantic versioning. -->
         <dependencies>
-            <!-- Version -->
+            <!-- Version artifacts. -->
             <dependency>
                 <groupId>${project.groupId}</groupId>
                 <artifactId>version</artifactId>
                 <type>xml</type>
                 <classifier>config</classifier>
             </dependency>
-            <!-- Karaf 3 features -->
+            <!-- Karaf 3 features. -->
             <dependency>
                 <groupId>${project.groupId}</groupId>
-                <artifactId>features-distribution</artifactId>
+                <artifactId>features3-distribution</artifactId>
                 <version>${project.version}</version>
                 <classifier>features</classifier>
                 <type>xml</type>
                 <classifier>features</classifier>
                 <type>xml</type>
             </dependency>
+            <!-- Karaf 4 single features. -->
+            <dependency>
+                <groupId>${project.groupId}</groupId>
+                <artifactId>odl-distribution-version</artifactId>
+                <version>${project.version}</version>
+                <classifier>features</classifier>
+                <type>xml</type>
+            </dependency>
+            <dependency>
+                <groupId>${project.groupId}</groupId>
+                <artifactId>odl-integration-compatible-with-all</artifactId>
+                <version>${project.version}</version>
+                <classifier>features</classifier>
+                <type>xml</type>
+            </dependency>
+            <dependency>
+                <groupId>${project.groupId}</groupId>
+                <artifactId>odl-integration-all</artifactId>
+                <version>${project.version}</version>
+                <classifier>features</classifier>
+                <type>xml</type>
+            </dependency>
+            <!-- Karaf 4 feature repositories. -->
+            <dependency>
+                <groupId>${project.groupId}</groupId>
+                <artifactId>features-distribution</artifactId>
+                <version>${project.version}</version>
+                <classifier>features</classifier>
+                <type>xml</type>
+            </dependency>
+            <dependency>
+                <groupId>${project.groupId}</groupId>
+                <artifactId>features-index</artifactId>
+                <version>${project.version}</version>
+                <classifier>features</classifier>
+                <type>xml</type>
+            </dependency>
+            <dependency>
+                <groupId>${project.groupId}</groupId>
+                <artifactId>features-test</artifactId>
+                <version>${project.version}</version>
+                <classifier>features</classifier>
+                <type>xml</type>
+            </dependency>
         </dependencies>
     </dependencyManagement>
 </project>
index 567c830ec17fcaedd16df8316cd51ac0aecdadba..19ceed3c9cee55bf2c17d030532a36c180c6aee3 100644 (file)
@@ -7,7 +7,9 @@
  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>
@@ -38,8 +40,8 @@
         <tag>HEAD</tag>
     </scm>
     <modules>
-        <module>all</module>
         <module>distribution</module>
         <module>upstream</module>
+        <module>all</module>
     </modules>
 </project>
diff --git a/artifacts/upstream/all/pom.xml b/artifacts/upstream/all/pom.xml
new file mode 100644 (file)
index 0000000..7027160
--- /dev/null
@@ -0,0 +1,84 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- vi: set et smarttab sw=4 tabstop=4: -->
+<!--
+ Copyright (c) 2017 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">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+      <groupId>org.opendaylight.odlparent</groupId>
+      <artifactId>odlparent-lite</artifactId>
+      <version>1.8.0-SNAPSHOT</version>
+      <relativePath/>
+    </parent>
+    <groupId>org.opendaylight.integration</groupId>
+    <artifactId>upstream-all-artifacts</artifactId>
+    <version>0.6.0-SNAPSHOT</version>
+    <packaging>pom</packaging>
+    <!-- <name> formatting is used by autorelease to parse and notify projects on
+         build failure. Please do not modify this unless you have a good reason. -->
+    <name>ODL :: integration :: ${project.artifactId}</name>
+    <description>POM to import, with all relevant public upstream ODL artifact versions.</description>
+    <url>https://wiki.opendaylight.org/view/Integration/Distribution</url>
+    <licenses>
+        <license>
+            <name>Eclipse Public License v1.0</name>
+            <url>http://www.eclipse.org/legal/epl-v10.html</url>
+        </license>
+    </licenses>
+    <!-- FIXME: Add developers section -->
+    <scm>
+        <connection>scm:git:https://git.opendaylight.org/gerrit/integration/distribution.git</connection>
+        <developerConnection>scm:git:ssh://git.opendaylight.org:29418/integration/distribution.git</developerConnection>
+        <url>https://git.opendaylight.org/gerrit/gitweb?p=integration/distribution.git;a=tree;f=artifacts/upstream/all;hb=HEAD</url>
+        <tag>HEAD</tag>
+    </scm>
+    <dependencyManagement>
+        <!-- TODO: Hardcode versions when moving to semantic versioning. -->
+        <dependencies>
+            <!-- Idealy, only artifact artifacts should be needed. -->
+            <dependency>
+                <groupId>${project.groupId}</groupId>
+                <artifactId>artifact-artifacts</artifactId>
+                <version>${project.version}</version>
+                <scope>import</scope>
+                <type>pom</type>
+            </dependency>
+            <!-- TODO: All of the following should contain directions on how to get rid of their content. -->
+            <dependency>
+                <groupId>${project.groupId}</groupId>
+                <artifactId>feature3-repo-artifacts</artifactId>
+                <version>${project.version}</version>
+                <scope>import</scope>
+                <type>pom</type>
+            </dependency>
+            <dependency>
+                <groupId>${project.groupId}</groupId>
+                <artifactId>feature-repo-artifacts</artifactId>
+                <version>${project.version}</version>
+                <scope>import</scope>
+                <type>pom</type>
+            </dependency>
+            <dependency>
+                <groupId>${project.groupId}</groupId>
+                <artifactId>single-feature-artifacts</artifactId>
+                <version>${project.version}</version>
+                <scope>import</scope>
+                <type>pom</type>
+            </dependency>
+            <dependency>
+                <groupId>${project.groupId}</groupId>
+                <artifactId>other-artifacts</artifactId>
+                <version>${project.version}</version>
+                <scope>import</scope>
+                <type>pom</type>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
+</project>
diff --git a/artifacts/upstream/artifacts/pom.xml b/artifacts/upstream/artifacts/pom.xml
new file mode 100644 (file)
index 0000000..3985913
--- /dev/null
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- vi: set et smarttab sw=4 tabstop=4: -->
+<!--
+ Copyright (c) 2017 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">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.opendaylight.integration</groupId>
+        <artifactId>properties</artifactId>
+        <version>0.6.0-SNAPSHOT</version>
+        <relativePath>../properties</relativePath>
+    </parent>
+    <artifactId>artifact-artifacts</artifactId>
+    <packaging>pom</packaging>
+    <!-- <name> formatting is used by autorelease to parse and notify projects on
+         build failure. Please do not modify this unless you have a good reason. -->
+    <name>ODL :: integration :: ${project.artifactId}</name>
+    <description>POM to import, with all upstream ODL project artifact poms with public versions.</description>
+    <url>https://wiki.opendaylight.org/view/Integration/Distribution</url>
+    <licenses>
+        <license>
+            <name>Eclipse Public License v1.0</name>
+            <url>http://www.eclipse.org/legal/epl-v10.html</url>
+        </license>
+    </licenses>
+    <!-- FIXME: Add developers section -->
+    <scm>
+        <connection>scm:git:https://git.opendaylight.org/gerrit/integration/distribution.git</connection>
+        <developerConnection>scm:git:ssh://git.opendaylight.org:29418/integration/distribution.git</developerConnection>
+        <url>https://git.opendaylight.org/gerrit/gitweb?p=integration/distribution.git;a=tree;f=artifacts/upstream/artifacts;hb=HEAD</url>
+        <tag>HEAD</tag>
+    </scm>
+    <dependencyManagement>
+        <dependencies>
+            <!-- Project artifact poms. -->
+            <!-- TODO: Open Bugs agains projects to export a single artifact pom containing every public atrifact version. -->
+            <dependency>
+                <groupId>org.opendaylight.controller</groupId>
+                <artifactId>config-artifacts</artifactId>
+                <version>${config.version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
+</project>
diff --git a/artifacts/upstream/feature-repos/pom.xml b/artifacts/upstream/feature-repos/pom.xml
new file mode 100644 (file)
index 0000000..f2d10f2
--- /dev/null
@@ -0,0 +1,68 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- vi: set et smarttab sw=4 tabstop=4: -->
+<!--
+ Copyright (c) 2017 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">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.opendaylight.integration</groupId>
+        <artifactId>properties</artifactId>
+        <version>0.6.0-SNAPSHOT</version>
+        <relativePath>../properties</relativePath>
+    </parent>
+    <artifactId>feature-repo-artifacts</artifactId>
+    <packaging>pom</packaging>
+    <!-- <name> formatting is used by autorelease to parse and notify projects on
+         build failure. Please do not modify this unless you have a good reason. -->
+    <name>ODL :: integration :: ${project.artifactId}</name>
+    <description>POM to import, with all upstream ODL user-facing feature repo artifact versions.</description>
+    <url>https://wiki.opendaylight.org/view/Integration/Distribution</url>
+    <licenses>
+        <license>
+            <name>Eclipse Public License v1.0</name>
+            <url>http://www.eclipse.org/legal/epl-v10.html</url>
+        </license>
+    </licenses>
+    <!-- FIXME: Add developers section -->
+    <scm>
+        <connection>scm:git:https://git.opendaylight.org/gerrit/integration/distribution.git</connection>
+        <developerConnection>scm:git:ssh://git.opendaylight.org:29418/integration/distribution.git</developerConnection>
+        <url>https://git.opendaylight.org/gerrit/gitweb?p=integration/distribution.git;a=tree;f=artifacts/upstream/feature-repos;hb=HEAD</url>
+        <tag>HEAD</tag>
+    </scm>
+    <!-- TODO: Open Bugs against projects to export user-facing feature repository versions in artifact poms. -->
+    <dependencyManagement>
+        <!-- User facing feature repositories. -->
+        <dependencies>
+            <!-- Netconf -->
+            <dependency>
+                <groupId>org.opendaylight.netconf</groupId>
+                <artifactId>features4-netconf</artifactId>
+                <version>${netconf.version}</version>
+                <classifier>features</classifier>
+                <type>xml</type>
+            </dependency>
+            <dependency>
+                <groupId>org.opendaylight.netconf</groupId>
+                <artifactId>features4-netconf-connector</artifactId>
+                <version>${netconf.version}</version>
+                <classifier>features</classifier>
+                <type>xml</type>
+            </dependency>
+            <dependency>
+                <groupId>org.opendaylight.netconf</groupId>
+                <artifactId>features4-restconf</artifactId>
+                <version>${restconf.version}</version>
+                <classifier>features</classifier>
+                <type>xml</type>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
+</project>
diff --git a/artifacts/upstream/feature3-repos/pom.xml b/artifacts/upstream/feature3-repos/pom.xml
new file mode 100644 (file)
index 0000000..c6eb8fa
--- /dev/null
@@ -0,0 +1,595 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- vi: set et smarttab sw=4 tabstop=4: -->
+<!--
+ Copyright (c) 2017 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">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.opendaylight.integration</groupId>
+        <artifactId>properties</artifactId>
+        <version>0.6.0-SNAPSHOT</version>
+        <relativePath>../properties</relativePath>
+    </parent>
+    <artifactId>feature3-repo-artifacts</artifactId>
+    <packaging>pom</packaging>
+    <!-- <name> formatting is used by autorelease to parse and notify projects on
+         build failure. Please do not modify this unless you have a good reason. -->
+    <name>ODL :: integration :: ${project.artifactId}</name>
+    <description>POM to import, with all user-facing upstream ODL Karaf 3 feature repository artifact versions.</description>
+    <url>https://wiki.opendaylight.org/view/Integration/Distribution</url>
+    <licenses>
+        <license>
+            <name>Eclipse Public License v1.0</name>
+            <url>http://www.eclipse.org/legal/epl-v10.html</url>
+        </license>
+    </licenses>
+    <!-- FIXME: Add developers section -->
+    <scm>
+        <connection>scm:git:https://git.opendaylight.org/gerrit/integration/distribution.git</connection>
+        <developerConnection>scm:git:ssh://git.opendaylight.org:29418/integration/distribution.git</developerConnection>
+        <url>https://git.opendaylight.org/gerrit/gitweb?p=integration/distribution.git;a=tree;f=artifacts/upstream/feature3-repos;hb=HEAD</url>
+        <tag>HEAD</tag>
+    </scm>
+    <!-- Question: This basically duplicates features-index dependencies just to save 1 line per dependency there. Worth it? -->
+    <!-- Answer: This will be deleted soon, and even if not, projects should provide these in artifact poms. -->
+    <dependencyManagement>
+        <dependencies>
+            <!-- For feature repositories (Karaf 3), by project. -->
+            <!-- Aaa -->
+            <dependency>
+                <groupId>org.opendaylight.aaa</groupId>
+                <artifactId>features-aaa</artifactId>
+                <version>${aaa.version}</version>
+                <classifier>features</classifier>
+                <type>xml</type>
+            </dependency>
+            <dependency>
+                <groupId>org.opendaylight.aaa</groupId>
+                <artifactId>features-aaa-shiro</artifactId>
+                <version>${aaa.version}</version>
+                <classifier>features</classifier>
+                <type>xml</type>
+            </dependency>
+            <!-- Alto -->
+            <dependency>
+                <groupId>org.opendaylight.alto</groupId>
+                <artifactId>features-alto-release</artifactId>
+                <version>${alto.version}</version>
+                <classifier>features</classifier>
+                <type>xml</type>
+            </dependency>
+            <!-- Atrium
+                Removed from autorelease due to inactivity.
+            <dependency>
+                <groupId>org.opendaylight.atrium</groupId>
+                <artifactId>atrium-features</artifactId>
+                <version>${atrium.version}</version>
+                <classifier>features</classifier>
+                <type>xml</type>
+            </dependency>
+            -->
+            <!-- Bgpcep -->
+            <dependency>
+                <groupId>org.opendaylight.bgpcep</groupId>
+                <artifactId>features-bgp</artifactId>
+                <classifier>features</classifier>
+                <version>${bgpcep.version}</version>
+                <type>xml</type>
+            </dependency>
+            <dependency>
+                <groupId>org.opendaylight.bgpcep</groupId>
+                <artifactId>features-bmp</artifactId>
+                <classifier>features</classifier>
+                <version>${bgpcep.version}</version>
+                <type>xml</type>
+            </dependency>
+            <dependency>
+                <groupId>org.opendaylight.bgpcep</groupId>
+                <artifactId>features-extras</artifactId>
+                <classifier>features</classifier>
+                <version>${bgpcep.version}</version>
+                <type>xml</type>
+            </dependency>
+            <dependency>
+                <groupId>org.opendaylight.bgpcep</groupId>
+                <artifactId>features-pcep</artifactId>
+                <classifier>features</classifier>
+                <version>${bgpcep.version}</version>
+                <type>xml</type>
+            </dependency>
+            <dependency>
+                <groupId>org.opendaylight.bgpcep</groupId>
+                <artifactId>features-rsvp</artifactId>
+                <classifier>features</classifier>
+                <version>${bgpcep.version}</version>
+                <type>xml</type>
+            </dependency>
+            <!-- Bier -->
+            <dependency>
+                <groupId>org.opendaylight.bier</groupId>
+                <artifactId>features-bier</artifactId>
+                <classifier>features</classifier>
+                <version>${bier.version}</version>
+                <type>xml</type>
+            </dependency>
+            <!-- Capwap -->
+            <dependency>
+                <groupId>org.opendaylight.capwap</groupId>
+                <artifactId>capwap-features</artifactId>
+                <version>${capwap.version}</version>
+                <classifier>features</classifier>
+                <type>xml</type>
+            </dependency>
+            <!-- Cardinal -->
+            <dependency>
+                <groupId>org.opendaylight.cardinal</groupId>
+                <artifactId>cardinal-features</artifactId>
+                <version>${cardinal.version}</version>
+                <classifier>features</classifier>
+                <type>xml</type>
+            </dependency>
+            <!-- Centinel
+                Removed from autorelease due to inactivity.
+            <dependency>
+                <groupId>org.opendaylight.centinel</groupId>
+                <artifactId>centinel-features</artifactId>
+                <version>${centinel.version}</version>
+                <classifier>features</classifier>
+                <type>xml</type>
+            </dependency>
+            -->
+            <!-- Controller -->
+            <dependency>
+                <groupId>org.opendaylight.controller</groupId>
+                <artifactId>features-extras</artifactId>
+                <version>${controller.extras.version}</version>
+                <classifier>features</classifier>
+                <type>xml</type>
+            </dependency>
+            <dependency>
+                <groupId>org.opendaylight.controller</groupId>
+                <artifactId>features-mdsal</artifactId>
+                <version>${mdsal.version}</version>
+                <classifier>features</classifier>
+                <type>xml</type>
+            </dependency>
+            <dependency>
+                <groupId>org.opendaylight.controller</groupId>
+                <artifactId>features-mdsal-benchmark</artifactId>
+                <version>${benchmark.version}</version>
+                <classifier>features</classifier>
+                <type>xml</type>
+            </dependency>
+            <!-- Didm -->
+            <dependency>
+                <groupId>org.opendaylight.didm</groupId>
+                <artifactId>features-didm</artifactId>
+                <version>${didm.version}</version>
+                <classifier>features</classifier>
+                <type>xml</type>
+            </dependency>
+            <dependency>
+                <groupId>org.opendaylight.didm</groupId>
+                <artifactId>features-didm-hp</artifactId>
+                <version>${didm.version}</version>
+                <classifier>features</classifier>
+                <type>xml</type>
+            </dependency>
+            <dependency>
+                <groupId>org.opendaylight.didm</groupId>
+                <artifactId>features-didm-ovs</artifactId>
+                <version>${didm.version}</version>
+                <classifier>features</classifier>
+                <type>xml</type>
+            </dependency>
+            <!-- Dlux -->
+            <dependency>
+                <groupId>org.opendaylight.dlux</groupId>
+                <artifactId>features-dlux</artifactId>
+                <version>${dlux.version}</version>
+                <classifier>features</classifier>
+                <type>xml</type>
+            </dependency>
+            <!-- Dluxapps -->
+            <dependency>
+                <groupId>org.opendaylight.dluxapps</groupId>
+                <artifactId>features-dluxapps</artifactId>
+                <version>${dluxapps.version}</version>
+                <classifier>features</classifier>
+                <type>xml</type>
+            </dependency>
+            <!-- Eman -->
+            <dependency>
+                <groupId>org.opendaylight.eman</groupId>
+                <artifactId>eman-features</artifactId>
+                <version>${eman.version}</version>
+                <classifier>features</classifier>
+                <type>xml</type>
+            </dependency>
+            <!-- Faas -->
+            <dependency>
+                <groupId>org.opendaylight.faas</groupId>
+                <artifactId>features-faas</artifactId>
+                <version>${faas.version}</version>
+                <classifier>features</classifier>
+                <type>xml</type>
+            </dependency>
+            <!-- Federation -->
+            <dependency>
+                <groupId>org.opendaylight.federation</groupId>
+                <artifactId>federation-features</artifactId>
+                <version>${federation.version}</version>
+                <classifier>features</classifier>
+                <type>xml</type>
+            </dependency>
+            <!-- Genius -->
+            <dependency>
+                <groupId>org.opendaylight.genius</groupId>
+                <artifactId>genius-features</artifactId>
+                <version>${genius.version}</version>
+                <classifier>features</classifier>
+                <type>xml</type>
+            </dependency>
+            <!-- Groupbasedpolicy -->
+            <dependency>
+                <groupId>org.opendaylight.groupbasedpolicy</groupId>
+                <artifactId>features-groupbasedpolicy</artifactId>
+                <version>${groupbasedpolicy.version}</version>
+                <classifier>features</classifier>
+                <type>xml</type>
+            </dependency>
+            <!-- Honeycomb/Vbd -->
+            <dependency>
+                <groupId>org.opendaylight.honeycomb.vbd</groupId>
+                <artifactId>vbd-features</artifactId>
+                <version>${honeycomb.vbd.version}</version>
+                <classifier>features</classifier>
+                <type>xml</type>
+            </dependency>
+            <!-- Infrautils -->
+            <dependency>
+                <groupId>org.opendaylight.infrautils</groupId>
+                <artifactId>infrautils-features</artifactId>
+                <version>${infrautils.version}</version>
+                <classifier>features</classifier>
+                <type>xml</type>
+            </dependency>
+            <!-- Iotdm -->
+            <dependency>
+                <groupId>org.opendaylight.iotdm</groupId>
+                <artifactId>onem2mall-features</artifactId>
+                <version>${iotdm.version}</version>
+                <classifier>features</classifier>
+                <type>xml</type>
+            </dependency>
+            <!-- L2switch -->
+            <dependency>
+                <groupId>org.opendaylight.l2switch</groupId>
+                <artifactId>features-l2switch</artifactId>
+                <version>${l2switch.version}</version>
+                <classifier>features</classifier>
+                <type>xml</type>
+            </dependency>
+            <!-- Lacp -->
+            <dependency>
+                <groupId>org.opendaylight.lacp</groupId>
+                <artifactId>features-lacp</artifactId>
+                <version>${lacp.version}</version>
+                <classifier>features</classifier>
+                <type>xml</type>
+            </dependency>
+            <!-- Lispflowmapping -->
+            <dependency>
+                <groupId>org.opendaylight.lispflowmapping</groupId>
+                <artifactId>features-lispflowmapping</artifactId>
+                <version>${lispflowmapping.version}</version>
+                <classifier>features</classifier>
+                <type>xml</type>
+            </dependency>
+            <!-- Natapp -->
+            <dependency>
+                <groupId>org.opendaylight.natapp</groupId>
+                <artifactId>natapp-features</artifactId>
+                <version>${natapp.version}</version>
+                <classifier>features</classifier>
+                <type>xml</type>
+            </dependency>
+            <!-- Nemo -->
+            <dependency>
+                <groupId>org.opendaylight.nemo</groupId>
+                <artifactId>nemo-features</artifactId>
+                <version>${nemo.version}</version>
+                <classifier>features</classifier>
+                <type>xml</type>
+            </dependency>
+            <!-- Netconf -->
+            <dependency>
+                <groupId>org.opendaylight.netconf</groupId>
+                <artifactId>features-netconf</artifactId>
+                <version>${netconf.version}</version>
+                <classifier>features</classifier>
+                <type>xml</type>
+            </dependency>
+            <dependency>
+                <groupId>org.opendaylight.netconf</groupId>
+                <artifactId>features-netconf-connector</artifactId>
+                <version>${netconf.version}</version>
+                <classifier>features</classifier>
+                <type>xml</type>
+            </dependency>
+            <dependency>
+                <groupId>org.opendaylight.netconf</groupId>
+                <artifactId>features-restconf</artifactId>
+                <version>${restconf.version}</version>
+                <classifier>features</classifier>
+                <type>xml</type>
+            </dependency>
+            <!-- Netvirt -->
+            <dependency>
+                <groupId>org.opendaylight.netvirt</groupId>
+                <artifactId>features-netvirt</artifactId>
+                <version>${netvirt.version}</version>
+                <classifier>features</classifier>
+                <type>xml</type>
+            </dependency>
+            <dependency>
+                <groupId>org.opendaylight.netvirt</groupId>
+                <artifactId>openstack.net-virt-sfc-features</artifactId>
+                <version>${netvirt.version}</version>
+                <classifier>features</classifier>
+                <type>xml</type>
+            </dependency>
+            <dependency>
+                <groupId>org.opendaylight.netvirt</groupId>
+                <artifactId>openstack.sfc-translator-features</artifactId>
+                <version>${netvirt.version}</version>
+                <classifier>features</classifier>
+                <type>xml</type>
+            </dependency>
+            <dependency>
+                <groupId>org.opendaylight.netvirt</groupId>
+                <artifactId>vpnservice-features</artifactId>
+                <version>${vpnservice.version}</version>
+                <classifier>features</classifier>
+                <type>xml</type>
+            </dependency>
+            <!-- Netide -->
+            <dependency>
+                <groupId>org.opendaylight.netide</groupId>
+                <artifactId>netide-features</artifactId>
+                <version>${netide.version}</version>
+                <classifier>features</classifier>
+                <type>xml</type>
+            </dependency>
+            <!-- Neutron -->
+            <dependency>
+                <groupId>org.opendaylight.neutron</groupId>
+                <artifactId>features-neutron</artifactId>
+                <version>${neutron.version}</version>
+                <classifier>features</classifier>
+                <type>xml</type>
+            </dependency>
+            <!-- Nic -->
+            <dependency>
+                <groupId>org.opendaylight.nic</groupId>
+                <artifactId>features-nic</artifactId>
+                <version>${nic.version}</version>
+                <classifier>features</classifier>
+                <type>xml</type>
+            </dependency>
+            <!-- Ocpplugin -->
+            <dependency>
+                <groupId>org.opendaylight.ocpplugin</groupId>
+                <artifactId>features-ocpplugin</artifactId>
+                <version>${ocpplugin.version}</version>
+                <classifier>features</classifier>
+                <type>xml</type>
+            </dependency>
+            <!-- Odlparent -->
+            <dependency>
+                <groupId>org.opendaylight.odlparent</groupId>
+                <artifactId>features-akka</artifactId>
+                <version>${odlparent.version}</version>
+                <classifier>features</classifier>
+                <type>xml</type>
+            </dependency>
+            <dependency>
+                <groupId>org.opendaylight.odlparent</groupId>
+                <artifactId>features-odlparent</artifactId>
+                <version>${odlparent.version}</version>
+                <classifier>features</classifier>
+                <type>xml</type>
+            </dependency>
+            <!-- Of-config -->
+            <dependency>
+                <groupId>org.opendaylight.of-config</groupId>
+                <artifactId>features-of-config</artifactId>
+                <version>${of-config.version}</version>
+                <classifier>features</classifier>
+                <type>xml</type>
+            </dependency>
+            <!-- Openflowplugin -->
+            <dependency>
+                <groupId>org.opendaylight.openflowplugin</groupId>
+                <artifactId>features-openflowplugin</artifactId>
+                <version>${openflowplugin.version}</version>
+                <classifier>features</classifier>
+                <type>xml</type>
+            </dependency>
+            <dependency>
+                <groupId>org.opendaylight.openflowplugin</groupId>
+                <artifactId>features-openflowplugin-he</artifactId>
+                <version>${openflowplugin.version}</version>
+                <classifier>features</classifier>
+                <type>xml</type>
+            </dependency>
+            <dependency>
+                <groupId>org.opendaylight.openflowplugin</groupId>
+                <artifactId>features-openflowplugin-extension</artifactId>
+                <version>${openflowplugin.version}</version>
+                <classifier>features</classifier>
+                <type>xml</type>
+            </dependency>
+            <dependency>
+                <groupId>org.opendaylight.openflowplugin</groupId>
+                <artifactId>features-openflowplugin-extension-he</artifactId>
+                <version>${openflowplugin.version}</version>
+                <classifier>features</classifier>
+                <type>xml</type>
+            </dependency>
+            <!-- Ovsdb -->
+            <dependency>
+                <groupId>org.opendaylight.ovsdb</groupId>
+                <artifactId>library-features</artifactId>
+                <version>${ovsdb.version}</version>
+                <classifier>features</classifier>
+                <type>xml</type>
+            </dependency>
+            <dependency>
+                <groupId>org.opendaylight.ovsdb</groupId>
+                <artifactId>southbound-features</artifactId>
+                <version>${ovsdb.version}</version>
+                <classifier>features</classifier>
+                <type>xml</type>
+            </dependency>
+            <dependency>
+                <groupId>org.opendaylight.ovsdb</groupId>
+                <artifactId>hwvtepsouthbound-features</artifactId>
+                <version>${ovsdb.version}</version>
+                <classifier>features</classifier>
+                <type>xml</type>
+            </dependency>
+            <!-- Packetcable -->
+            <dependency>
+                <groupId>org.opendaylight.packetcable</groupId>
+                <artifactId>features-packetcable-policy</artifactId>
+                <version>${packetcable.version}</version>
+                <classifier>features</classifier>
+                <type>xml</type>
+            </dependency>
+            <!-- Sdninterfaceapp -->
+            <dependency>
+                <groupId>org.opendaylight.sdninterfaceapp</groupId>
+                <artifactId>features-sdninterfaceapp</artifactId>
+                <version>${sdninterfaceapp.version}</version>
+                <classifier>features</classifier>
+                <type>xml</type>
+            </dependency>
+            <!-- Sfc -->
+            <dependency>
+                <groupId>org.opendaylight.sfc</groupId>
+                <artifactId>features-sfc</artifactId>
+                <version>${sfc.version}</version>
+                <classifier>features</classifier>
+                <type>xml</type>
+            </dependency>
+            <!-- Snbi -->
+            <dependency>
+                <groupId>org.opendaylight.snbi</groupId>
+                <artifactId>features-snbi</artifactId>
+                <version>${snbi.version}</version>
+                <classifier>features</classifier>
+                <type>xml</type>
+            </dependency>
+            <!-- Snmp -->
+            <dependency>
+                <groupId>org.opendaylight.snmp</groupId>
+                <artifactId>features-snmp</artifactId>
+                <version>${snmp.version}</version>
+                <classifier>features</classifier>
+                <type>xml</type>
+            </dependency>
+            <!-- Snmp4sdn -->
+            <dependency>
+                <groupId>org.opendaylight.snmp4sdn</groupId>
+                <artifactId>features-snmp4sdn</artifactId>
+                <version>${snmp4sdn.version}</version>
+                <classifier>features</classifier>
+                <type>xml</type>
+            </dependency>
+            <!-- Sxp -->
+            <dependency>
+                <groupId>org.opendaylight.sxp</groupId>
+                <artifactId>features</artifactId>
+                <version>${sxp.version}</version>
+                <classifier>features</classifier>
+                <type>xml</type>
+            </dependency>
+            <!-- Topoprocessing -->
+            <dependency>
+                <groupId>org.opendaylight.topoprocessing</groupId>
+                <artifactId>features-topoprocessing</artifactId>
+                <version>${topoprocessing.version}</version>
+                <classifier>features</classifier>
+                <type>xml</type>
+            </dependency>
+            <!-- Tsdr -->
+            <dependency>
+                <groupId>org.opendaylight.tsdr</groupId>
+                <artifactId>features-tsdr</artifactId>
+                <version>${tsdr.version}</version>
+                <classifier>features</classifier>
+                <type>xml</type>
+            </dependency>
+            <!-- Ttp -->
+            <dependency>
+                <groupId>org.opendaylight.ttp</groupId>
+                <artifactId>features-ttp</artifactId>
+                <version>${ttp.version}</version>
+                <classifier>features</classifier>
+                <type>xml</type>
+            </dependency>
+            <!-- Unimgr -->
+            <dependency>
+                <groupId>org.opendaylight.unimgr</groupId>
+                <artifactId>unimgr-features</artifactId>
+                <version>${unimgr.version}</version>
+                <classifier>features</classifier>
+                <type>xml</type>
+            </dependency>
+            <!-- Usc -->
+            <dependency>
+                <groupId>org.opendaylight.usc</groupId>
+                <artifactId>usc-features</artifactId>
+                <version>${usc.version}</version>
+                <classifier>features</classifier>
+                <type>xml</type>
+            </dependency>
+            <!-- Usecplugin
+                Removed from autorelease due to inactivity.
+            <dependency>
+                <groupId>org.opendaylight.usecplugin</groupId>
+                <artifactId>usecplugin-features</artifactId>
+                <version>${usecplugin.version}</version>
+                <classifier>features</classifier>
+                <type>xml</type>
+            </dependency>
+            -->
+            <!-- Vtn -->
+            <dependency>
+                <groupId>org.opendaylight.vtn</groupId>
+                <artifactId>features-vtn-manager</artifactId>
+                <version>${vtn-manager.version}</version>
+                <classifier>features</classifier>
+                <type>xml</type>
+            </dependency>
+            <!-- Yang-push
+                Removed from autorelease due to inactivity.
+            <dependency>
+                <groupId>org.opendaylight.yang-push</groupId>
+                <artifactId>yangpush-features</artifactId>
+                <version>${yang-push.version}</version>
+                <classifier>features</classifier>
+                <type>xml</type>
+            </dependency>
+            -->
+        </dependencies>
+    </dependencyManagement>
+</project>
diff --git a/artifacts/upstream/other/pom.xml b/artifacts/upstream/other/pom.xml
new file mode 100644 (file)
index 0000000..d4d00c5
--- /dev/null
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- vi: set et smarttab sw=4 tabstop=4: -->
+<!--
+ Copyright (c) 2017 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">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.opendaylight.integration</groupId>
+        <artifactId>properties</artifactId>
+        <version>0.6.0-SNAPSHOT</version>
+        <relativePath>../properties</relativePath>
+    </parent>
+    <artifactId>other-artifacts</artifactId>
+    <packaging>pom</packaging>
+    <!-- <name> formatting is used by autorelease to parse and notify projects on
+         build failure. Please do not modify this unless you have a good reason. -->
+    <name>ODL :: integration :: ${project.artifactId}</name>
+    <description>POM to import, with all the needed versions of upstream ODL artifacts not imported elsewhere.</description>
+    <url>https://wiki.opendaylight.org/view/Integration/Distribution</url>
+    <licenses>
+        <license>
+            <name>Eclipse Public License v1.0</name>
+            <url>http://www.eclipse.org/legal/epl-v10.html</url>
+        </license>
+    </licenses>
+    <!-- FIXME: Add developers section -->
+    <scm>
+        <connection>scm:git:https://git.opendaylight.org/gerrit/integration/distribution.git</connection>
+        <developerConnection>scm:git:ssh://git.opendaylight.org:29418/integration/distribution.git</developerConnection>
+        <url>https://git.opendaylight.org/gerrit/gitweb?p=integration/distribution.git;a=tree;f=artifacts/upstream/other;hb=HEAD</url>
+        <tag>HEAD</tag>
+    </scm>
+    <dependencyManagement>
+        <dependencies>
+            <!-- External applications. -->
+            <dependency>
+                <groupId>org.opendaylight.aaa</groupId>
+                <artifactId>aaa-cli-jar</artifactId>
+                <!-- TODO: Open Bug agains AAA to export this version in an artifact pom. -->
+                <version>${aaa.version}</version>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
+</project>
index 27f6d99012d354d1038df88978428bd796d36a24..4873744073e89c86aea7e0d1423800529a6c9271 100644 (file)
@@ -7,7 +7,9 @@
  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>
       <relativePath/>
     </parent>
     <groupId>org.opendaylight.integration</groupId>
-    <artifactId>upstream-artifacts</artifactId>
+    <artifactId>upstream-aggregator</artifactId>
     <version>0.6.0-SNAPSHOT</version>
     <packaging>pom</packaging>
     <!-- <name> formatting is used by autorelease to parse and notify projects on
          build failure. Please do not modify this unless you have a good reason. -->
     <name>ODL :: integration :: ${project.artifactId}</name>
-    <description>POM to import with all upstream ODL artifact versions.</description>
+    <description>Aggregator for upstream artifact related modules.</description>
     <url>https://wiki.opendaylight.org/view/Integration/Distribution</url>
     <licenses>
         <license>
         <url>https://git.opendaylight.org/gerrit/gitweb?p=integration/distribution.git;a=tree;f=artifacts/upstream;hb=HEAD</url>
         <tag>HEAD</tag>
     </scm>
-    <properties>
-        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-        <!-- Version properties by project or component. -->
-        <!-- Keep this list sorted alphabetically please. -->
-        <aaa.version>0.5.0-SNAPSHOT</aaa.version>
-        <alto.version>0.4.0-SNAPSHOT</alto.version>
-        <!-- Removed from autorelease due to inactivity.
-        <atrium.version>0.1.0-SNAPSHOT</atrium.version>
-        -->
-        <benchmark.version>1.3.0-SNAPSHOT</benchmark.version>
-        <bgpcep.version>0.7.0-SNAPSHOT</bgpcep.version>
-        <bier.version>0.1.0-SNAPSHOT</bier.version>
-        <capwap.version>0.4.0-SNAPSHOT</capwap.version>
-        <cardinal.version>0.2.0-SNAPSHOT</cardinal.version>
-        <!-- Removed from autorelease due to inactivity.
-        <centinel.version>0.3.0-SNAPSHOT</centinel.version>
-        -->
-        <controller.config.version>0.6.0-SNAPSHOT</controller.config.version>
-        <controller.extras.version>1.8.0-SNAPSHOT</controller.extras.version>
-        <didm.version>0.4.0-SNAPSHOT</didm.version>
-        <dlux.version>0.5.0-SNAPSHOT</dlux.version>
-        <dluxapps.version>0.5.0-SNAPSHOT</dluxapps.version>
-        <eman.version>1.1.0-SNAPSHOT</eman.version>
-        <faas.version>1.2.0-SNAPSHOT</faas.version>
-        <federation.version>0.2.0-SNAPSHOT</federation.version>
-        <flow.version>1.5.0-SNAPSHOT</flow.version>
-        <genius.version>0.2.0-SNAPSHOT</genius.version>
-        <groupbasedpolicy.version>0.5.0-SNAPSHOT</groupbasedpolicy.version>
-        <honeycomb.vbd.version>1.1.0-SNAPSHOT</honeycomb.vbd.version>
-        <infrautils.version>1.1.0-SNAPSHOT</infrautils.version>
-        <iotdm.version>0.3.0-SNAPSHOT</iotdm.version>
-        <l2switch.version>0.5.0-SNAPSHOT</l2switch.version>
-        <lacp.version>1.3.0-SNAPSHOT</lacp.version>
-        <lispflowmapping.version>1.5.0-SNAPSHOT</lispflowmapping.version>
-        <mdsal.version>1.5.0-SNAPSHOT</mdsal.version>
-        <natapp.version>0.2.0-SNAPSHOT</natapp.version>
-        <nemo.version>1.2.0-SNAPSHOT</nemo.version>
-        <netconf.version>1.2.0-SNAPSHOT</netconf.version>
-        <netide.version>0.3.0-SNAPSHOT</netide.version>
-        <netvirt.version>1.4.0-SNAPSHOT</netvirt.version>
-        <nic.version>1.3.0-SNAPSHOT</nic.version>
-        <neutron.version>0.8.0-SNAPSHOT</neutron.version>
-        <ocpplugin.version>0.2.0-SNAPSHOT</ocpplugin.version>
-        <odlparent.version>1.8.0-SNAPSHOT</odlparent.version>
-        <of-config.version>1.2.0-SNAPSHOT</of-config.version>
-        <openflowplugin.version>0.4.0-SNAPSHOT</openflowplugin.version>
-        <ovsdb.version>1.4.0-SNAPSHOT</ovsdb.version>
-        <packetcable.version>1.5.0-SNAPSHOT</packetcable.version>
-        <restconf.version>1.5.0-SNAPSHOT</restconf.version>
-        <sdninterfaceapp.version>1.8.0-SNAPSHOT</sdninterfaceapp.version>
-        <sfc.version>0.5.0-SNAPSHOT</sfc.version>
-        <snbi.version>1.4.0-SNAPSHOT</snbi.version>
-        <snmp.version>1.3.0-SNAPSHOT</snmp.version>
-        <snmp4sdn.version>0.5.0-SNAPSHOT</snmp4sdn.version>
-        <sxp.version>1.4.0-SNAPSHOT</sxp.version>
-        <topoprocessing.version>0.3.0-SNAPSHOT</topoprocessing.version>
-        <tsdr.version>1.3.0-SNAPSHOT</tsdr.version>
-        <ttp.version>0.4.0-SNAPSHOT</ttp.version>
-        <unimgr.version>0.2.0-SNAPSHOT</unimgr.version>
-        <usc.version>1.3.0-SNAPSHOT</usc.version>
-        <!-- Removed from autorelease due to inactivity.
-        <usecplugin.version>1.2.0-SNAPSHOT</usecplugin.version>
-        -->
-        <vpnservice.version>0.4.0-SNAPSHOT</vpnservice.version>
-        <vtn-manager.version>0.6.0-SNAPSHOT</vtn-manager.version>
-        <!-- Removed from autorelease due to inactivity.
-        <yang-push.version>1.2.0-SNAPSHOT</yang-push.version>
-        -->
-        <yangtools.version>1.1.0-SNAPSHOT</yangtools.version>
-        <!-- Keep this list sorted alphabetically please. -->
-    </properties>
-    <dependencyManagement>
-        <dependencies>
-            <!-- For Version. -->
-            <dependency>
-                <groupId>org.opendaylight.controller</groupId>
-                <artifactId>features-config-persister</artifactId>
-                <version>${controller.config.version}</version>
-                <classifier>features</classifier>
-                <type>xml</type>
-            </dependency>
-            <!-- External applications. -->
-            <dependency>
-                <groupId>org.opendaylight.aaa</groupId>
-                <artifactId>aaa-cli-jar</artifactId>
-                <version>${aaa.version}</version>
-            </dependency>
-            <!-- For features, by project. -->
-            <!-- TODO: This basically duplicates features-index dependencies just to save 1 line per dependency there. Worth it? -->
-            <!-- Aaa -->
-            <dependency>
-                <groupId>org.opendaylight.aaa</groupId>
-                <artifactId>features-aaa</artifactId>
-                <version>${aaa.version}</version>
-                <classifier>features</classifier>
-                <type>xml</type>
-            </dependency>
-            <dependency>
-                <groupId>org.opendaylight.aaa</groupId>
-                <artifactId>features-aaa-shiro</artifactId>
-                <version>${aaa.version}</version>
-                <classifier>features</classifier>
-                <type>xml</type>
-            </dependency>
-            <!-- Alto -->
-            <dependency>
-                <groupId>org.opendaylight.alto</groupId>
-                <artifactId>features-alto-release</artifactId>
-                <version>${alto.version}</version>
-                <classifier>features</classifier>
-                <type>xml</type>
-            </dependency>
-            <!-- Atrium
-                Removed from autorelease due to inactivity.
-            <dependency>
-                <groupId>org.opendaylight.atrium</groupId>
-                <artifactId>atrium-features</artifactId>
-                <version>${atrium.version}</version>
-                <classifier>features</classifier>
-                <type>xml</type>
-            </dependency>
-            -->
-            <!-- Bgpcep -->
-            <dependency>
-                <groupId>org.opendaylight.bgpcep</groupId>
-                <artifactId>features-bgp</artifactId>
-                <classifier>features</classifier>
-                <version>${bgpcep.version}</version>
-                <type>xml</type>
-            </dependency>
-            <dependency>
-                <groupId>org.opendaylight.bgpcep</groupId>
-                <artifactId>features-bmp</artifactId>
-                <classifier>features</classifier>
-                <version>${bgpcep.version}</version>
-                <type>xml</type>
-            </dependency>
-            <dependency>
-                <groupId>org.opendaylight.bgpcep</groupId>
-                <artifactId>features-extras</artifactId>
-                <classifier>features</classifier>
-                <version>${bgpcep.version}</version>
-                <type>xml</type>
-            </dependency>
-            <dependency>
-                <groupId>org.opendaylight.bgpcep</groupId>
-                <artifactId>features-pcep</artifactId>
-                <classifier>features</classifier>
-                <version>${bgpcep.version}</version>
-                <type>xml</type>
-            </dependency>
-            <dependency>
-                <groupId>org.opendaylight.bgpcep</groupId>
-                <artifactId>features-rsvp</artifactId>
-                <classifier>features</classifier>
-                <version>${bgpcep.version}</version>
-                <type>xml</type>
-            </dependency>
-            <!-- Bier -->
-            <dependency>
-                <groupId>org.opendaylight.bier</groupId>
-                <artifactId>features-bier</artifactId>
-                <classifier>features</classifier>
-                <version>${bier.version}</version>
-                <type>xml</type>
-            </dependency>
-            <!-- Capwap -->
-            <dependency>
-                <groupId>org.opendaylight.capwap</groupId>
-                <artifactId>capwap-features</artifactId>
-                <version>${capwap.version}</version>
-                <classifier>features</classifier>
-                <type>xml</type>
-            </dependency>
-            <!-- Cardinal -->
-            <dependency>
-                <groupId>org.opendaylight.cardinal</groupId>
-                <artifactId>cardinal-features</artifactId>
-                <version>${cardinal.version}</version>
-                <classifier>features</classifier>
-                <type>xml</type>
-            </dependency>
-            <!-- Centinel
-                Removed from autorelease due to inactivity.
-            <dependency>
-                <groupId>org.opendaylight.centinel</groupId>
-                <artifactId>centinel-features</artifactId>
-                <version>${centinel.version}</version>
-                <classifier>features</classifier>
-                <type>xml</type>
-            </dependency>
-            -->
-            <!-- Controller -->
-            <dependency>
-                <groupId>org.opendaylight.controller</groupId>
-                <artifactId>features-extras</artifactId>
-                <version>${controller.extras.version}</version>
-                <classifier>features</classifier>
-                <type>xml</type>
-            </dependency>
-            <dependency>
-                <groupId>org.opendaylight.controller</groupId>
-                <artifactId>features-mdsal</artifactId>
-                <version>${mdsal.version}</version>
-                <classifier>features</classifier>
-                <type>xml</type>
-            </dependency>
-            <dependency>
-                <groupId>org.opendaylight.controller</groupId>
-                <artifactId>features-mdsal-benchmark</artifactId>
-                <version>${benchmark.version}</version>
-                <classifier>features</classifier>
-                <type>xml</type>
-            </dependency>
-            <!-- Didm -->
-            <dependency>
-                <groupId>org.opendaylight.didm</groupId>
-                <artifactId>features-didm</artifactId>
-                <version>${didm.version}</version>
-                <classifier>features</classifier>
-                <type>xml</type>
-            </dependency>
-            <dependency>
-                <groupId>org.opendaylight.didm</groupId>
-                <artifactId>features-didm-hp</artifactId>
-                <version>${didm.version}</version>
-                <classifier>features</classifier>
-                <type>xml</type>
-            </dependency>
-            <dependency>
-                <groupId>org.opendaylight.didm</groupId>
-                <artifactId>features-didm-ovs</artifactId>
-                <version>${didm.version}</version>
-                <classifier>features</classifier>
-                <type>xml</type>
-            </dependency>
-            <!-- Dlux -->
-            <dependency>
-                <groupId>org.opendaylight.dlux</groupId>
-                <artifactId>features-dlux</artifactId>
-                <version>${dlux.version}</version>
-                <classifier>features</classifier>
-                <type>xml</type>
-            </dependency>
-            <!-- Dluxapps -->
-            <dependency>
-                <groupId>org.opendaylight.dluxapps</groupId>
-                <artifactId>features-dluxapps</artifactId>
-                <version>${dluxapps.version}</version>
-                <classifier>features</classifier>
-                <type>xml</type>
-            </dependency>
-            <!-- Eman -->
-            <dependency>
-                <groupId>org.opendaylight.eman</groupId>
-                <artifactId>eman-features</artifactId>
-                <version>${eman.version}</version>
-                <classifier>features</classifier>
-                <type>xml</type>
-            </dependency>
-            <!-- Faas -->
-            <dependency>
-                <groupId>org.opendaylight.faas</groupId>
-                <artifactId>features-faas</artifactId>
-                <version>${faas.version}</version>
-                <classifier>features</classifier>
-                <type>xml</type>
-            </dependency>
-            <!-- Federation -->
-            <dependency>
-                <groupId>org.opendaylight.federation</groupId>
-                <artifactId>federation-features</artifactId>
-                <version>${federation.version}</version>
-                <classifier>features</classifier>
-                <type>xml</type>
-            </dependency>
-            <!-- Genius -->
-            <dependency>
-                <groupId>org.opendaylight.genius</groupId>
-                <artifactId>genius-features</artifactId>
-                <version>${genius.version}</version>
-                <classifier>features</classifier>
-                <type>xml</type>
-            </dependency>
-            <!-- Groupbasedpolicy -->
-            <dependency>
-                <groupId>org.opendaylight.groupbasedpolicy</groupId>
-                <artifactId>features-groupbasedpolicy</artifactId>
-                <version>${groupbasedpolicy.version}</version>
-                <classifier>features</classifier>
-                <type>xml</type>
-            </dependency>
-            <!-- Honeycomb/Vbd -->
-            <dependency>
-                <groupId>org.opendaylight.honeycomb.vbd</groupId>
-                <artifactId>vbd-features</artifactId>
-                <version>${honeycomb.vbd.version}</version>
-                <classifier>features</classifier>
-                <type>xml</type>
-            </dependency>
-            <!-- Infrautils -->
-            <dependency>
-                <groupId>org.opendaylight.infrautils</groupId>
-                <artifactId>infrautils-features</artifactId>
-                <version>${infrautils.version}</version>
-                <classifier>features</classifier>
-                <type>xml</type>
-            </dependency>
-            <!-- Iotdm -->
-            <dependency>
-                <groupId>org.opendaylight.iotdm</groupId>
-                <artifactId>onem2mall-features</artifactId>
-                <version>${iotdm.version}</version>
-                <classifier>features</classifier>
-                <type>xml</type>
-            </dependency>
-            <!-- L2switch -->
-            <dependency>
-                <groupId>org.opendaylight.l2switch</groupId>
-                <artifactId>features-l2switch</artifactId>
-                <version>${l2switch.version}</version>
-                <classifier>features</classifier>
-                <type>xml</type>
-            </dependency>
-            <!-- Lacp -->
-            <dependency>
-                <groupId>org.opendaylight.lacp</groupId>
-                <artifactId>features-lacp</artifactId>
-                <version>${lacp.version}</version>
-                <classifier>features</classifier>
-                <type>xml</type>
-            </dependency>
-            <!-- Lispflowmapping -->
-            <dependency>
-                <groupId>org.opendaylight.lispflowmapping</groupId>
-                <artifactId>features-lispflowmapping</artifactId>
-                <version>${lispflowmapping.version}</version>
-                <classifier>features</classifier>
-                <type>xml</type>
-            </dependency>
-            <!-- Natapp -->
-            <dependency>
-                <groupId>org.opendaylight.natapp</groupId>
-                <artifactId>natapp-features</artifactId>
-                <version>${natapp.version}</version>
-                <classifier>features</classifier>
-                <type>xml</type>
-            </dependency>
-            <!-- Nemo -->
-            <dependency>
-                <groupId>org.opendaylight.nemo</groupId>
-                <artifactId>nemo-features</artifactId>
-                <version>${nemo.version}</version>
-                <classifier>features</classifier>
-                <type>xml</type>
-            </dependency>
-            <!-- Netconf -->
-            <dependency>
-                <groupId>org.opendaylight.netconf</groupId>
-                <artifactId>features-netconf</artifactId>
-                <version>${netconf.version}</version>
-                <classifier>features</classifier>
-                <type>xml</type>
-            </dependency>
-            <dependency>
-                <groupId>org.opendaylight.netconf</groupId>
-                <artifactId>features-netconf-connector</artifactId>
-                <version>${netconf.version}</version>
-                <classifier>features</classifier>
-                <type>xml</type>
-            </dependency>
-            <dependency>
-                <groupId>org.opendaylight.netconf</groupId>
-                <artifactId>features-restconf</artifactId>
-                <version>${restconf.version}</version>
-                <classifier>features</classifier>
-                <type>xml</type>
-            </dependency>
-            <!-- Netvirt -->
-            <dependency>
-                <groupId>org.opendaylight.netvirt</groupId>
-                <artifactId>features-netvirt</artifactId>
-                <version>${netvirt.version}</version>
-                <classifier>features</classifier>
-                <type>xml</type>
-            </dependency>
-            <dependency>
-                <groupId>org.opendaylight.netvirt</groupId>
-                <artifactId>openstack.net-virt-sfc-features</artifactId>
-                <version>${netvirt.version}</version>
-                <classifier>features</classifier>
-                <type>xml</type>
-            </dependency>
-            <dependency>
-                <groupId>org.opendaylight.netvirt</groupId>
-                <artifactId>openstack.sfc-translator-features</artifactId>
-                <version>${netvirt.version}</version>
-                <classifier>features</classifier>
-                <type>xml</type>
-            </dependency>
-            <dependency>
-                <groupId>org.opendaylight.netvirt</groupId>
-                <artifactId>vpnservice-features</artifactId>
-                <version>${vpnservice.version}</version>
-                <classifier>features</classifier>
-                <type>xml</type>
-            </dependency>
-            <!-- Netide -->
-            <dependency>
-                <groupId>org.opendaylight.netide</groupId>
-                <artifactId>netide-features</artifactId>
-                <version>${netide.version}</version>
-                <classifier>features</classifier>
-                <type>xml</type>
-            </dependency>
-            <!-- Neutron -->
-            <dependency>
-                <groupId>org.opendaylight.neutron</groupId>
-                <artifactId>features-neutron</artifactId>
-                <version>${neutron.version}</version>
-                <classifier>features</classifier>
-                <type>xml</type>
-            </dependency>
-            <!-- Nic -->
-            <dependency>
-                <groupId>org.opendaylight.nic</groupId>
-                <artifactId>features-nic</artifactId>
-                <version>${nic.version}</version>
-                <classifier>features</classifier>
-                <type>xml</type>
-            </dependency>
-            <!-- Ocpplugin -->
-            <dependency>
-                <groupId>org.opendaylight.ocpplugin</groupId>
-                <artifactId>features-ocpplugin</artifactId>
-                <version>${ocpplugin.version}</version>
-                <classifier>features</classifier>
-                <type>xml</type>
-            </dependency>
-            <!-- Odlparent -->
-            <dependency>
-                <groupId>org.opendaylight.odlparent</groupId>
-                <artifactId>features-akka</artifactId>
-                <version>${odlparent.version}</version>
-                <classifier>features</classifier>
-                <type>xml</type>
-            </dependency>
-            <dependency>
-                <groupId>org.opendaylight.odlparent</groupId>
-                <artifactId>features-odlparent</artifactId>
-                <version>${odlparent.version}</version>
-                <classifier>features</classifier>
-                <type>xml</type>
-            </dependency>
-            <!-- Of-config -->
-            <dependency>
-                <groupId>org.opendaylight.of-config</groupId>
-                <artifactId>features-of-config</artifactId>
-                <version>${of-config.version}</version>
-                <classifier>features</classifier>
-                <type>xml</type>
-            </dependency>
-            <!-- Openflowplugin -->
-            <dependency>
-                <groupId>org.opendaylight.openflowplugin</groupId>
-                <artifactId>features-openflowplugin</artifactId>
-                <version>${openflowplugin.version}</version>
-                <classifier>features</classifier>
-                <type>xml</type>
-            </dependency>
-            <dependency>
-                <groupId>org.opendaylight.openflowplugin</groupId>
-                <artifactId>features-openflowplugin-he</artifactId>
-                <version>${openflowplugin.version}</version>
-                <classifier>features</classifier>
-                <type>xml</type>
-            </dependency>
-            <dependency>
-                <groupId>org.opendaylight.openflowplugin</groupId>
-                <artifactId>features-openflowplugin-extension</artifactId>
-                <version>${openflowplugin.version}</version>
-                <classifier>features</classifier>
-                <type>xml</type>
-            </dependency>
-            <dependency>
-                <groupId>org.opendaylight.openflowplugin</groupId>
-                <artifactId>features-openflowplugin-extension-he</artifactId>
-                <version>${openflowplugin.version}</version>
-                <classifier>features</classifier>
-                <type>xml</type>
-            </dependency>
-            <!-- Ovsdb -->
-            <dependency>
-                <groupId>org.opendaylight.ovsdb</groupId>
-                <artifactId>library-features</artifactId>
-                <version>${ovsdb.version}</version>
-                <classifier>features</classifier>
-                <type>xml</type>
-            </dependency>
-            <dependency>
-                <groupId>org.opendaylight.ovsdb</groupId>
-                <artifactId>southbound-features</artifactId>
-                <version>${ovsdb.version}</version>
-                <classifier>features</classifier>
-                <type>xml</type>
-            </dependency>
-            <dependency>
-                <groupId>org.opendaylight.ovsdb</groupId>
-                <artifactId>hwvtepsouthbound-features</artifactId>
-                <version>${ovsdb.version}</version>
-                <classifier>features</classifier>
-                <type>xml</type>
-            </dependency>
-            <!-- Packetcable -->
-            <dependency>
-                <groupId>org.opendaylight.packetcable</groupId>
-                <artifactId>features-packetcable-policy</artifactId>
-                <version>${packetcable.version}</version>
-                <classifier>features</classifier>
-                <type>xml</type>
-            </dependency>
-            <!-- Sdninterfaceapp -->
-            <dependency>
-                <groupId>org.opendaylight.sdninterfaceapp</groupId>
-                <artifactId>features-sdninterfaceapp</artifactId>
-                <version>${sdninterfaceapp.version}</version>
-                <classifier>features</classifier>
-                <type>xml</type>
-            </dependency>
-            <!-- Sfc -->
-            <dependency>
-                <groupId>org.opendaylight.sfc</groupId>
-                <artifactId>features-sfc</artifactId>
-                <version>${sfc.version}</version>
-                <classifier>features</classifier>
-                <type>xml</type>
-            </dependency>
-            <!-- Snbi -->
-            <dependency>
-                <groupId>org.opendaylight.snbi</groupId>
-                <artifactId>features-snbi</artifactId>
-                <version>${snbi.version}</version>
-                <classifier>features</classifier>
-                <type>xml</type>
-            </dependency>
-            <!-- Snmp -->
-            <dependency>
-                <groupId>org.opendaylight.snmp</groupId>
-                <artifactId>features-snmp</artifactId>
-                <version>${snmp.version}</version>
-                <classifier>features</classifier>
-                <type>xml</type>
-            </dependency>
-            <!-- Snmp4sdn -->
-            <dependency>
-                <groupId>org.opendaylight.snmp4sdn</groupId>
-                <artifactId>features-snmp4sdn</artifactId>
-                <version>${snmp4sdn.version}</version>
-                <classifier>features</classifier>
-                <type>xml</type>
-            </dependency>
-            <!-- Sxp -->
-            <dependency>
-                <groupId>org.opendaylight.sxp</groupId>
-                <artifactId>features</artifactId>
-                <version>${sxp.version}</version>
-                <classifier>features</classifier>
-                <type>xml</type>
-            </dependency>
-            <!-- Topoprocessing -->
-            <dependency>
-                <groupId>org.opendaylight.topoprocessing</groupId>
-                <artifactId>features-topoprocessing</artifactId>
-                <version>${topoprocessing.version}</version>
-                <classifier>features</classifier>
-                <type>xml</type>
-            </dependency>
-            <!-- Tsdr -->
-            <dependency>
-                <groupId>org.opendaylight.tsdr</groupId>
-                <artifactId>features-tsdr</artifactId>
-                <version>${tsdr.version}</version>
-                <classifier>features</classifier>
-                <type>xml</type>
-            </dependency>
-            <!-- Ttp -->
-            <dependency>
-                <groupId>org.opendaylight.ttp</groupId>
-                <artifactId>features-ttp</artifactId>
-                <version>${ttp.version}</version>
-                <classifier>features</classifier>
-                <type>xml</type>
-            </dependency>
-            <!-- Unimgr -->
-            <dependency>
-                <groupId>org.opendaylight.unimgr</groupId>
-                <artifactId>unimgr-features</artifactId>
-                <version>${unimgr.version}</version>
-                <classifier>features</classifier>
-                <type>xml</type>
-            </dependency>
-            <!-- Usc -->
-            <dependency>
-                <groupId>org.opendaylight.usc</groupId>
-                <artifactId>usc-features</artifactId>
-                <version>${usc.version}</version>
-                <classifier>features</classifier>
-                <type>xml</type>
-            </dependency>
-            <!-- Usecplugin
-                Removed from autorelease due to inactivity.
-            <dependency>
-                <groupId>org.opendaylight.usecplugin</groupId>
-                <artifactId>usecplugin-features</artifactId>
-                <version>${usecplugin.version}</version>
-                <classifier>features</classifier>
-                <type>xml</type>
-            </dependency>
-            -->
-            <!-- Vtn -->
-            <dependency>
-                <groupId>org.opendaylight.vtn</groupId>
-                <artifactId>features-vtn-manager</artifactId>
-                <version>${vtn-manager.version}</version>
-                <classifier>features</classifier>
-                <type>xml</type>
-            </dependency>
-            <!-- Yang-push
-                Removed from autorelease due to inactivity.
-            <dependency>
-                <groupId>org.opendaylight.yang-push</groupId>
-                <artifactId>yangpush-features</artifactId>
-                <version>${yang-push.version}</version>
-                <classifier>features</classifier>
-                <type>xml</type>
-            </dependency>
-            -->
-        </dependencies>
-    </dependencyManagement>
+    <!-- TODO: Work towards using artifact-artifacts only. Properties, artifacts and all than can be joined to replace this pom. -->
+    <modules>
+        <module>properties</module>
+        <module>artifacts</module>
+        <module>feature3-repos</module>
+        <module>feature-repos</module>
+        <module>single-features</module>
+        <module>other</module>
+        <module>all</module>
+    </modules>
 </project>
diff --git a/artifacts/upstream/properties/pom.xml b/artifacts/upstream/properties/pom.xml
new file mode 100644 (file)
index 0000000..3f24091
--- /dev/null
@@ -0,0 +1,115 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- vi: set et smarttab sw=4 tabstop=4: -->
+<!--
+ Copyright (c) 2017 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">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.opendaylight.odlparent</groupId>
+        <artifactId>odlparent-lite</artifactId>
+        <version>1.8.0-SNAPSHOT</version>
+        <relativePath/>
+    </parent>
+    <groupId>org.opendaylight.integration</groupId>
+    <artifactId>properties</artifactId>
+    <version>0.6.0-SNAPSHOT</version>
+    <!-- This is a parent POM, it cannot act as an aggregator, to avoid cyclic imports. -->
+    <packaging>pom</packaging>
+    <!-- <name> formatting is used by autorelease to parse and notify projects on
+         build failure. Please do not modify this unless you have a good reason. -->
+    <name>ODL :: integration :: properties</name>
+    <!-- Avoid ${project.*} in parent poms. -->
+    <description>POM defining upstream public versions as properties, to be used as parent for artifact pom definitions.</description>
+    <url>https://wiki.opendaylight.org/view/Integration/Distribution</url>
+    <licenses>
+        <license>
+            <name>Eclipse Public License v1.0</name>
+            <url>http://www.eclipse.org/legal/epl-v10.html</url>
+        </license>
+    </licenses>
+    <!-- FIXME: Add developers section -->
+    <scm>
+        <connection>scm:git:https://git.opendaylight.org/gerrit/integration/distribution.git</connection>
+        <developerConnection>scm:git:ssh://git.opendaylight.org:29418/integration/distribution.git</developerConnection>
+        <url>https://git.opendaylight.org/gerrit/gitweb?p=integration/distribution.git;a=tree;f=artifacts/upstream/properties;hb=HEAD</url>
+        <tag>HEAD</tag>
+    </scm>
+    <!-- TODO: If only artifact-artifacts is used, hardcode versions there and delete this. -->
+    <properties>
+        <!-- Version properties by project or component. -->
+        <!-- Keep this list sorted alphabetically please. -->
+        <aaa.version>0.5.0-SNAPSHOT</aaa.version>
+        <alto.version>0.4.0-SNAPSHOT</alto.version>
+        <!-- Removed from autoreelase due to inactivity.
+        <atrium.version>0.1.0-SNAPSHOT</atrium.version>
+        -->
+        <benchmark.version>1.3.0-SNAPSHOT</benchmark.version>
+        <bgpcep.version>0.7.0-SNAPSHOT</bgpcep.version>
+        <bier.version>0.1.0-SNAPSHOT</bier.version>
+        <capwap.version>0.4.0-SNAPSHOT</capwap.version>
+        <cardinal.version>0.2.0-SNAPSHOT</cardinal.version>
+        <!-- Removed from autoreelase due to inactivity.
+        <centinel.version>0.3.0-SNAPSHOT</centinel.version>
+        -->
+        <config.version>0.6.0-SNAPSHOT</config.version>
+        <controller.extras.version>1.8.0-SNAPSHOT</controller.extras.version>
+        <didm.version>0.4.0-SNAPSHOT</didm.version>
+        <dlux.version>0.5.0-SNAPSHOT</dlux.version>
+        <dluxapps.version>0.5.0-SNAPSHOT</dluxapps.version>
+        <eman.version>1.1.0-SNAPSHOT</eman.version>
+        <faas.version>1.2.0-SNAPSHOT</faas.version>
+        <federation.version>0.2.0-SNAPSHOT</federation.version>
+        <flow.version>1.5.0-SNAPSHOT</flow.version>
+        <genius.version>0.2.0-SNAPSHOT</genius.version>
+        <groupbasedpolicy.version>0.5.0-SNAPSHOT</groupbasedpolicy.version>
+        <honeycomb.vbd.version>1.1.0-SNAPSHOT</honeycomb.vbd.version>
+        <infrautils.version>1.1.0-SNAPSHOT</infrautils.version>
+        <iotdm.version>0.3.0-SNAPSHOT</iotdm.version>
+        <l2switch.version>0.5.0-SNAPSHOT</l2switch.version>
+        <lacp.version>1.3.0-SNAPSHOT</lacp.version>
+        <lispflowmapping.version>1.5.0-SNAPSHOT</lispflowmapping.version>
+        <mdsal.version>1.5.0-SNAPSHOT</mdsal.version>
+        <natapp.version>0.2.0-SNAPSHOT</natapp.version>
+        <nemo.version>1.2.0-SNAPSHOT</nemo.version>
+        <netconf.version>1.2.0-SNAPSHOT</netconf.version>
+        <netide.version>0.3.0-SNAPSHOT</netide.version>
+        <netvirt.version>1.4.0-SNAPSHOT</netvirt.version>
+        <nic.version>1.3.0-SNAPSHOT</nic.version>
+        <neutron.version>0.8.0-SNAPSHOT</neutron.version>
+        <ocpplugin.version>0.2.0-SNAPSHOT</ocpplugin.version>
+        <odlparent.version>1.8.0-SNAPSHOT</odlparent.version>
+        <of-config.version>1.2.0-SNAPSHOT</of-config.version>
+        <openflowplugin.version>0.4.0-SNAPSHOT</openflowplugin.version>
+        <ovsdb.version>1.4.0-SNAPSHOT</ovsdb.version>
+        <packetcable.version>1.5.0-SNAPSHOT</packetcable.version>
+        <restconf.version>1.5.0-SNAPSHOT</restconf.version>
+        <sdninterfaceapp.version>1.8.0-SNAPSHOT</sdninterfaceapp.version>
+        <sfc.version>0.5.0-SNAPSHOT</sfc.version>
+        <snbi.version>1.4.0-SNAPSHOT</snbi.version>
+        <snmp.version>1.3.0-SNAPSHOT</snmp.version>
+        <snmp4sdn.version>0.5.0-SNAPSHOT</snmp4sdn.version>
+        <sxp.version>1.4.0-SNAPSHOT</sxp.version>
+        <topoprocessing.version>0.3.0-SNAPSHOT</topoprocessing.version>
+        <tsdr.version>1.3.0-SNAPSHOT</tsdr.version>
+        <ttp.version>0.4.0-SNAPSHOT</ttp.version>
+        <unimgr.version>0.2.0-SNAPSHOT</unimgr.version>
+        <usc.version>1.3.0-SNAPSHOT</usc.version>
+        <!-- Removed from autoreelase due to inactivity.
+        <usecplugin.version>1.2.0-SNAPSHOT</usecplugin.version>
+        -->
+        <vpnservice.version>0.4.0-SNAPSHOT</vpnservice.version>
+        <vtn-manager.version>0.6.0-SNAPSHOT</vtn-manager.version>
+        <!-- Removed from autoreelase due to inactivity.
+        <yang-push.version>1.2.0-SNAPSHOT</yang-push.version>
+        -->
+        <yangtools.version>1.1.0-SNAPSHOT</yangtools.version>
+        <!-- Keep this list sorted alphabetically please. -->
+    </properties>
+</project>
diff --git a/artifacts/upstream/single-features/pom.xml b/artifacts/upstream/single-features/pom.xml
new file mode 100644 (file)
index 0000000..50a52d0
--- /dev/null
@@ -0,0 +1,69 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- vi: set et smarttab sw=4 tabstop=4: -->
+<!--
+ Copyright (c) 2017 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">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.opendaylight.integration</groupId>
+        <artifactId>properties</artifactId>
+        <version>0.6.0-SNAPSHOT</version>
+        <relativePath>../properties</relativePath>
+    </parent>
+    <artifactId>single-feature-artifacts</artifactId>
+    <packaging>pom</packaging>
+    <!-- <name> formatting is used by autorelease to parse and notify projects on
+         build failure. Please do not modify this unless you have a good reason. -->
+    <name>ODL :: integration :: ${project.artifactId}</name>
+    <description>POM to import, with all upstream ODL user-facing single feature artifact versions.</description>
+    <url>https://wiki.opendaylight.org/view/Integration/Distribution</url>
+    <licenses>
+        <license>
+            <name>Eclipse Public License v1.0</name>
+            <url>http://www.eclipse.org/legal/epl-v10.html</url>
+        </license>
+    </licenses>
+    <!-- FIXME: Add developers section -->
+    <scm>
+        <connection>scm:git:https://git.opendaylight.org/gerrit/integration/distribution.git</connection>
+        <developerConnection>scm:git:ssh://git.opendaylight.org:29418/integration/distribution.git</developerConnection>
+        <url>https://git.opendaylight.org/gerrit/gitweb?p=integration/distribution.git;a=tree;f=artifacts/upstream/single-features;hb=HEAD</url>
+        <tag>HEAD</tag>
+    </scm>
+    <dependencyManagement>
+        <dependencies>
+            <!-- Non-user-facing single feature needed for Version. -->
+            <dependency>
+                <groupId>org.opendaylight.controller</groupId>
+                <artifactId>odl-config-persister</artifactId>
+                <version>${config.version}</version>
+                <!-- TODO: Ask Controller to export this version in an artifact POM.-->
+                <classifier>features</classifier>
+                <type>xml</type>
+            </dependency>
+            <!-- User facing single features. -->
+            <!-- TODO: Open Bugs against projects to export user-facing single feature versions in artifact pom. -->
+            <dependency>
+                <groupId>org.opendaylight.netconf</groupId>
+                <artifactId>odl-netconf-mdsal</artifactId>
+                <version>${mdsal.version}</version>
+                <classifier>features</classifier>
+                <type>xml</type>
+            </dependency>
+            <dependency>
+                <groupId>org.opendaylight.netconf</groupId>
+                <artifactId>odl-restconf</artifactId>
+                <version>${restconf.version}</version>
+                <classifier>features</classifier>
+                <type>xml</type>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
+</project>
index 5d65b86c5a564835546b1fe6d90eb8abf79fb25c..d92d7529d745871489ef60bfa21975f9a698354d 100644 (file)
@@ -7,7 +7,9 @@
  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>
         <relativePath/>
     </parent>
     <groupId>org.opendaylight.integration</groupId>
-    <!-- TODO: Rename to "distribution" or "karaf". -->
     <artifactId>distribution-karaf</artifactId>
     <version>0.6.0-SNAPSHOT</version>
     <packaging>pom</packaging>
     <!-- <name> formatting is used by autorelease to parse and notify projects on
          build failure. Please do not modify this unless you have a good reason. -->
     <name>ODL :: integration :: ${project.artifactId}</name>
-    <description>The actual Karaf building sub-project.</description>
+    <description>The Karaf 3 archives building sub-project.</description>
     <url>https://wiki.opendaylight.org/view/Integration/Distribution</url>
     <licenses>
         <license>
@@ -58,8 +59,8 @@
         </dependency>
         <!-- Integration index feature repository. -->
         <dependency>
+            <groupId>${project.groupId}</groupId>
             <artifactId>features-integration-index</artifactId>
-            <groupId>org.opendaylight.integration</groupId>
             <classifier>features</classifier>
             <type>xml</type>
             <scope>runtime</scope>
@@ -76,8 +77,8 @@
         </dependency>
         <!-- Integration test feature repository. -->
         <dependency>
+            <groupId>${project.groupId}</groupId>
             <artifactId>features-integration-test</artifactId>
-            <groupId>org.opendaylight.integration</groupId>
             <classifier>features</classifier>
             <type>xml</type>
             <scope>test</scope>
diff --git a/features/pom.xml b/features/pom.xml
new file mode 100644 (file)
index 0000000..1e2dd8e
--- /dev/null
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- vi: set et smarttab sw=4 tabstop=4: -->
+<!--
+ Copyright (c) 2017 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">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.opendaylight.odlparent</groupId>
+        <artifactId>odlparent-lite</artifactId>
+        <version>1.8.0-SNAPSHOT</version>
+        <relativePath/>
+    </parent>
+    <groupId>org.opendaylight.integration</groupId>
+    <artifactId>features-aggregator</artifactId>
+    <version>0.6.0-SNAPSHOT</version>
+    <packaging>pom</packaging>
+    <!-- <name> formatting is used by autorelease to parse and notify projects on
+         build failure. Please do not modify this unless you have a good reason. -->
+    <name>ODL :: integration :: ${project.artifactId}</name>
+    <description>Aggregator for distribution features and feature repos.</description>
+    <url>https://wiki.opendaylight.org/view/Integration/Distribution</url>
+    <licenses>
+        <license>
+            <name>Eclipse Public License v1.0</name>
+            <url>http://www.eclipse.org/legal/epl-v10.html</url>
+        </license>
+    </licenses>
+    <!-- FIXME: Add developers section -->
+    <scm>
+        <connection>scm:git:https://git.opendaylight.org/gerrit/integration/distribution.git</connection>
+        <developerConnection>scm:git:ssh://git.opendaylight.org:29418/integration/distribution.git</developerConnection>
+        <url>https://git.opendaylight.org/gerrit/gitweb?p=integration/distribution.git;a=tree;f=features;hb=HEAD</url>
+        <tag>HEAD</tag>
+    </scm>
+    <modules>
+        <module>singles</module>
+        <module>repos</module>
+    </modules>
+</project>
diff --git a/features/repos/distribution/pom.xml b/features/repos/distribution/pom.xml
new file mode 100644 (file)
index 0000000..abeba8c
--- /dev/null
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- vi: set et smarttab sw=4 tabstop=4: -->
+<!--
+ Copyright (c) 2017 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">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.opendaylight.odlparent</groupId>
+        <artifactId>feature-repo-parent</artifactId>
+        <version>1.8.0-SNAPSHOT</version>
+        <relativePath/>
+    </parent>
+    <groupId>org.opendaylight.integration</groupId>
+    <artifactId>features-distribution</artifactId>
+    <version>0.6.0-SNAPSHOT</version>
+    <packaging>feature</packaging>
+    <!-- <name> formatting is used by autorelease to parse and notify projects on
+         build failure. Please do not modify this unless you have a good reason. -->
+    <name>ODL :: integration :: ${project.artifactId}</name>
+    <description>Repository of features internal to distribution.</description>
+    <url>https://wiki.opendaylight.org/view/Integration/Distribution</url>
+    <licenses>
+        <license>
+            <name>Eclipse Public License v1.0</name>
+            <url>http://www.eclipse.org/legal/epl-v10.html</url>
+        </license>
+    </licenses>
+    <!-- FIXME: Add developers section -->
+    <scm>
+        <connection>scm:git:https://git.opendaylight.org/gerrit/integration/distribution.git</connection>
+        <developerConnection>scm:git:ssh://git.opendaylight.org:29418/integration/distribution.git</developerConnection>
+        <url>https://git.opendaylight.org/gerrit/gitweb?p=integration/distribution.git;a=tree;f=features/repos/distribution;hb=HEAD</url>
+        <tag>HEAD</tag>
+    </scm>
+    <dependencyManagement>
+        <dependencies>
+            <dependency>
+                <groupId>${project.groupId}</groupId>
+                <artifactId>all-artifacts</artifactId>
+                <version>${project.version}</version>
+                <scope>import</scope>
+                <type>pom</type>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
+    <dependencies>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>odl-distribution-version</artifactId>
+            <classifier>features</classifier>
+            <type>xml</type>
+        </dependency>
+    </dependencies>
+</project>
diff --git a/features/repos/index/pom.xml b/features/repos/index/pom.xml
new file mode 100644 (file)
index 0000000..89f72d8
--- /dev/null
@@ -0,0 +1,82 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- vi: set et smarttab sw=4 tabstop=4: -->
+<!--
+ Copyright (c) 2017 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">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.opendaylight.odlparent</groupId>
+        <artifactId>feature-repo-parent</artifactId>
+        <version>1.8.0-SNAPSHOT</version>
+        <relativePath/>
+    </parent>
+    <groupId>org.opendaylight.integration</groupId>
+    <artifactId>features-index</artifactId>
+    <version>0.6.0-SNAPSHOT</version>
+    <packaging>feature</packaging>
+    <!-- <name> formatting is used by autorelease to parse and notify projects on
+         build failure. Please do not modify this unless you have a good reason. -->
+    <name>ODL :: integration :: ${project.artifactId}</name>
+    <description>Aggregate repository of all ODL repositories with user-facing features.</description>
+    <url>https://wiki.opendaylight.org/view/Integration/Distribution</url>
+    <licenses>
+        <license>
+            <name>Eclipse Public License v1.0</name>
+            <url>http://www.eclipse.org/legal/epl-v10.html</url>
+        </license>
+    </licenses>
+    <!-- FIXME: Add developers section -->
+    <scm>
+        <connection>scm:git:https://git.opendaylight.org/gerrit/integration/distribution.git</connection>
+        <developerConnection>scm:git:ssh://git.opendaylight.org:29418/integration/distribution.git</developerConnection>
+        <url>https://git.opendaylight.org/gerrit/gitweb?p=integration/distribution.git;a=tree;f=features/repos/index;hb=HEAD</url>
+        <tag>HEAD</tag>
+    </scm>
+    <dependencyManagement>
+        <dependencies>
+            <dependency>
+                <groupId>${project.groupId}</groupId>
+                <artifactId>all-artifacts</artifactId>
+                <version>${project.version}</version>
+                <scope>import</scope>
+                <type>pom</type>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
+    <dependencies>
+        <!-- FIXME: How to explain to feature-repo-parent it shall not list single features from repo dependencies? -->
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>features-distribution</artifactId>
+            <classifier>features</classifier>
+            <type>xml</type>
+        </dependency>
+        <!-- Commented out due to https://bugs.opendaylight.org/show_bug.cgi?id=7891
+        <dependency>
+            <groupId>org.opendaylight.netconf</groupId>
+            <artifactId>features4-netconf</artifactId>
+            <classifier>features</classifier>
+            <type>xml</type>
+        </dependency>
+        <dependency>
+            <groupId>org.opendaylight.netconf</groupId>
+            <artifactId>features4-netconf-connector</artifactId>
+            <classifier>features</classifier>
+            <type>xml</type>
+        </dependency>
+        <dependency>
+            <groupId>org.opendaylight.netconf</groupId>
+            <artifactId>features4-restconf</artifactId>
+            <classifier>features</classifier>
+            <type>xml</type>
+        </dependency>
+        -->
+    </dependencies>
+</project>
diff --git a/features/repos/pom.xml b/features/repos/pom.xml
new file mode 100644 (file)
index 0000000..cbc148c
--- /dev/null
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- vi: set et smarttab sw=4 tabstop=4: -->
+<!--
+ Copyright (c) 2017 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">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.opendaylight.odlparent</groupId>
+        <artifactId>odlparent-lite</artifactId>
+        <version>1.8.0-SNAPSHOT</version>
+        <relativePath/>
+    </parent>
+    <groupId>org.opendaylight.integration</groupId>
+    <artifactId>repos-aggregator</artifactId>
+    <version>0.6.0-SNAPSHOT</version>
+    <packaging>pom</packaging>
+    <!-- <name> formatting is used by autorelease to parse and notify projects on
+         build failure. Please do not modify this unless you have a good reason. -->
+    <name>ODL :: integration :: ${project.artifactId}</name>
+    <description>Aggregator for distribution feature repos.</description>
+    <url>https://wiki.opendaylight.org/view/Integration/Distribution</url>
+    <licenses>
+        <license>
+            <name>Eclipse Public License v1.0</name>
+            <url>http://www.eclipse.org/legal/epl-v10.html</url>
+        </license>
+    </licenses>
+    <!-- FIXME: Add developers section -->
+    <scm>
+        <connection>scm:git:https://git.opendaylight.org/gerrit/integration/distribution.git</connection>
+        <developerConnection>scm:git:ssh://git.opendaylight.org:29418/integration/distribution.git</developerConnection>
+        <url>https://git.opendaylight.org/gerrit/gitweb?p=integration/distribution.git;a=tree;f=features/repos;hb=HEAD</url>
+        <tag>HEAD</tag>
+    </scm>
+    <modules>
+        <!-- Keep distribution-atrifacts updated. -->
+        <module>distribution</module>
+        <module>index</module>
+        <module>test</module>
+    </modules>
+</project>
diff --git a/features/repos/test/pom.xml b/features/repos/test/pom.xml
new file mode 100644 (file)
index 0000000..425ba0b
--- /dev/null
@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- vi: set et smarttab sw=4 tabstop=4: -->
+<!--
+ Copyright (c) 2017 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">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.opendaylight.odlparent</groupId>
+        <artifactId>feature-repo-parent</artifactId>
+        <version>1.8.0-SNAPSHOT</version>
+        <relativePath/>
+    </parent>
+    <groupId>org.opendaylight.integration</groupId>
+    <artifactId>features-test</artifactId>
+    <version>0.6.0-SNAPSHOT</version>
+    <packaging>feature</packaging>
+    <!-- <name> formatting is used by autorelease to parse and notify projects on
+         build failure. Please do not modify this unless you have a good reason. -->
+    <name>ODL :: integration :: ${project.artifactId}</name>
+    <description>Aggregate repository of features used for integration system testsing.</description>
+    <url>https://wiki.opendaylight.org/view/Integration/Distribution</url>
+    <licenses>
+        <license>
+            <name>Eclipse Public License v1.0</name>
+            <url>http://www.eclipse.org/legal/epl-v10.html</url>
+        </license>
+    </licenses>
+    <!-- FIXME: Add developers section -->
+    <scm>
+        <connection>scm:git:https://git.opendaylight.org/gerrit/integration/distribution.git</connection>
+        <developerConnection>scm:git:ssh://git.opendaylight.org:29418/integration/distribution.git</developerConnection>
+        <url>https://git.opendaylight.org/gerrit/gitweb?p=integration/distribution.git;a=tree;f=features/repos/test;hb=HEAD</url>
+        <tag>HEAD</tag>
+    </scm>
+    <dependencyManagement>
+        <dependencies>
+            <dependency>
+                <groupId>${project.groupId}</groupId>
+                <artifactId>all-artifacts</artifactId>
+                <version>${project.version}</version>
+                <scope>import</scope>
+                <type>pom</type>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
+    <dependencies>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>odl-integration-compatible-with-all</artifactId>
+            <classifier>features</classifier>
+            <type>xml</type>
+        </dependency>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>odl-integration-all</artifactId>
+            <classifier>features</classifier>
+            <type>xml</type>
+        </dependency>
+    </dependencies>
+</project>
diff --git a/features/singles/odl-distribution-version/pom.xml b/features/singles/odl-distribution-version/pom.xml
new file mode 100644 (file)
index 0000000..a5bb770
--- /dev/null
@@ -0,0 +1,72 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Copyright (c) 2017 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">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.opendaylight.odlparent</groupId>
+        <artifactId>single-feature-parent</artifactId>
+        <version>1.8.0-SNAPSHOT</version>
+        <relativePath/>
+    </parent>
+    <groupId>org.opendaylight.integration</groupId>
+    <artifactId>odl-distribution-version</artifactId>
+    <version>0.6.0-SNAPSHOT</version>
+    <packaging>feature</packaging>
+    <!-- <name> formatting is used by autorelease to parse and notify projects on
+         build failure. Please do not modify this unless you have a good reason. -->
+    <name>ODL :: integration :: ${project.artifactId}</name>
+    <description>Single feature for Version functionality.</description>
+    <url>https://wiki.opendaylight.org/view/Integration/Distribution</url>
+    <licenses>
+        <license>
+            <name>Eclipse Public License v1.0</name>
+            <url>http://www.eclipse.org/legal/epl-v10.html</url>
+        </license>
+    </licenses>
+    <!-- FIXME: Add developers section -->
+    <scm>
+        <connection>scm:git:https://git.opendaylight.org/gerrit/integration/distribution.git</connection>
+        <developerConnection>scm:git:ssh://git.opendaylight.org:29418/integration/distribution.git</developerConnection>
+        <url>https://git.opendaylight.org/gerrit/gitweb?p=integration/distribution.git;a=tree;f=features/singles/odl-distribution-version;hb=HEAD</url>
+        <tag>HEAD</tag>
+    </scm>
+    <dependencyManagement>
+        <dependencies>
+            <dependency>
+                <groupId>${project.groupId}</groupId>
+                <artifactId>all-artifacts</artifactId>
+                <version>${project.version}</version>
+                <scope>import</scope>
+                <type>pom</type>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
+    <dependencies>
+        <!-- Version module jar and config. -->
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>version</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>version</artifactId>
+            <type>xml</type>
+            <classifier>config</classifier>
+        </dependency>
+        <!-- External single feature dependencies. -->
+        <dependency>
+            <groupId>org.opendaylight.controller</groupId>
+            <artifactId>odl-config-persister</artifactId>
+            <type>xml</type>
+            <classifier>features</classifier>
+        </dependency>
+    </dependencies>
+</project>
diff --git a/features/singles/odl-distribution-version/src/main/features/features.xml b/features/singles/odl-distribution-version/src/main/features/features.xml
new file mode 100644 (file)
index 0000000..dffe874
--- /dev/null
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- vi: set et smarttab sw=4 tabstop=4: -->
+<!--
+ Copyright (c) 2017 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
+-->
+<features name="odl-integration-distribution-${project.version}" xmlns="http://karaf.apache.org/xmlns/features/v1.2.0">
+    <feature name="odl-distribution-version" version="${project.version}">
+        <configfile finalname="etc/opendaylight/karaf/odl-version.xml">
+            mvn:org.opendaylight.integration/version/${project.version}/xml/config
+        </configfile>
+    </feature>
+</features>
diff --git a/features/singles/odl-integration-all/pom.xml b/features/singles/odl-integration-all/pom.xml
new file mode 100644 (file)
index 0000000..6f6b132
--- /dev/null
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Copyright (c) 2017 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">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.opendaylight.odlparent</groupId>
+        <artifactId>single-feature-parent</artifactId>
+        <version>1.8.0-SNAPSHOT</version>
+        <relativePath/>
+    </parent>
+    <groupId>org.opendaylight.integration</groupId>
+    <artifactId>odl-integration-all</artifactId>
+    <!-- TODO: Diferent name? -->
+    <version>0.6.0-SNAPSHOT</version>
+    <packaging>feature</packaging>
+    <!-- <name> formatting is used by autorelease to parse and notify projects on
+         build failure. Please do not modify this unless you have a good reason. -->
+    <name>ODL :: integration :: ${project.artifactId}</name>
+    <description>Single feature containing all features separately compatible with odl-integration-compatible-with-all.</description>
+    <url>https://wiki.opendaylight.org/view/Integration/Distribution</url>
+    <licenses>
+        <license>
+            <name>Eclipse Public License v1.0</name>
+            <url>http://www.eclipse.org/legal/epl-v10.html</url>
+        </license>
+    </licenses>
+    <!-- FIXME: Add developers section -->
+    <scm>
+        <connection>scm:git:https://git.opendaylight.org/gerrit/integration/distribution.git</connection>
+        <developerConnection>scm:git:ssh://git.opendaylight.org:29418/integration/distribution.git</developerConnection>
+        <url>https://git.opendaylight.org/gerrit/gitweb?p=integration/distribution.git;a=tree;f=features/singles/odl-integration-all;hb=HEAD</url>
+        <tag>HEAD</tag>
+    </scm>
+    <dependencyManagement>
+        <dependencies>
+            <dependency>
+                <groupId>${project.groupId}</groupId>
+                <artifactId>all-artifacts</artifactId>
+                <version>${project.version}</version>
+                <scope>import</scope>
+                <type>pom</type>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
+    <dependencies>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>odl-integration-compatible-with-all</artifactId>
+            <type>xml</type>
+            <classifier>features</classifier>
+        </dependency>
+        <!-- External single feature dependencies. -->
+    </dependencies>
+</project>
diff --git a/features/singles/odl-integration-compatible-with-all/pom.xml b/features/singles/odl-integration-compatible-with-all/pom.xml
new file mode 100644 (file)
index 0000000..803fb4d
--- /dev/null
@@ -0,0 +1,76 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Copyright (c) 2017 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">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.opendaylight.odlparent</groupId>
+        <artifactId>single-feature-parent</artifactId>
+        <version>1.8.0-SNAPSHOT</version>
+        <relativePath/>
+    </parent>
+    <groupId>org.opendaylight.integration</groupId>
+    <artifactId>odl-integration-compatible-with-all</artifactId>
+    <!-- TODO: Shorter name? -->
+    <version>0.6.0-SNAPSHOT</version>
+    <packaging>feature</packaging>
+    <!-- <name> formatting is used by autorelease to parse and notify projects on
+         build failure. Please do not modify this unless you have a good reason. -->
+    <name>ODL :: integration :: ${project.artifactId}</name>
+    <description>Single feature containing all features compatible together.</description>
+    <url>https://wiki.opendaylight.org/view/Integration/Distribution</url>
+    <licenses>
+        <license>
+            <name>Eclipse Public License v1.0</name>
+            <url>http://www.eclipse.org/legal/epl-v10.html</url>
+        </license>
+    </licenses>
+    <!-- FIXME: Add developers section -->
+    <scm>
+        <connection>scm:git:https://git.opendaylight.org/gerrit/integration/distribution.git</connection>
+        <developerConnection>scm:git:ssh://git.opendaylight.org:29418/integration/distribution.git</developerConnection>
+        <url>https://git.opendaylight.org/gerrit/gitweb?p=integration/distribution.git;a=tree;f=features/singles/odl-integration-compatible-with-all;hb=HEAD</url>
+        <tag>HEAD</tag>
+    </scm>
+    <dependencyManagement>
+        <dependencies>
+            <dependency>
+                <groupId>${project.groupId}</groupId>
+                <artifactId>all-artifacts</artifactId>
+                <version>${project.version}</version>
+                <scope>import</scope>
+                <type>pom</type>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
+    <dependencies>
+        <!-- External single feature dependencies. -->
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>odl-distribution-version</artifactId>
+            <type>xml</type>
+            <classifier>features</classifier>
+        </dependency>
+        <!-- Commented out due to https://bugs.opendaylight.org/show_bug.cgi?id=7891
+        <dependency>
+            <groupId>org.opendaylight.netconf</groupId>
+            <artifactId>odl-netconf-mdsal</artifactId>
+            <type>xml</type>
+            <classifier>features</classifier>
+        </dependency>
+        <dependency>
+            <groupId>org.opendaylight.netconf</groupId>
+            <artifactId>odl-restconf</artifactId>
+            <type>xml</type>
+            <classifier>features</classifier>
+        </dependency>
+        -->
+    </dependencies>
+</project>
diff --git a/features/singles/pom.xml b/features/singles/pom.xml
new file mode 100644 (file)
index 0000000..b0361bd
--- /dev/null
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- vi: set et smarttab sw=4 tabstop=4: -->
+<!--
+ Copyright (c) 2017 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">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.opendaylight.odlparent</groupId>
+        <artifactId>odlparent-lite</artifactId>
+        <version>1.8.0-SNAPSHOT</version>
+        <relativePath/>
+    </parent>
+    <groupId>org.opendaylight.integration</groupId>
+    <artifactId>singles-aggregator</artifactId>
+    <version>0.6.0-SNAPSHOT</version>
+    <packaging>pom</packaging>
+    <!-- <name> formatting is used by autorelease to parse and notify projects on
+         build failure. Please do not modify this unless you have a good reason. -->
+    <name>ODL :: integration :: ${project.artifactId}</name>
+    <description>Aggregator for distribution single features.</description>
+    <url>https://wiki.opendaylight.org/view/Integration/Distribution</url>
+    <licenses>
+        <license>
+            <name>Eclipse Public License v1.0</name>
+            <url>http://www.eclipse.org/legal/epl-v10.html</url>
+        </license>
+    </licenses>
+    <!-- FIXME: Add developers section -->
+    <scm>
+        <connection>scm:git:https://git.opendaylight.org/gerrit/integration/distribution.git</connection>
+        <developerConnection>scm:git:ssh://git.opendaylight.org:29418/integration/distribution.git</developerConnection>
+        <url>https://git.opendaylight.org/gerrit/gitweb?p=integration/distribution.git;a=tree;f=features/singles;hb=HEAD</url>
+        <tag>HEAD</tag>
+    </scm>
+    <modules>
+        <!-- Keep distribution-atrifacts updated. -->
+        <module>odl-distribution-version</module>
+        <module>odl-integration-compatible-with-all</module>
+        <module>odl-integration-all</module>
+    </modules>
+</project>
similarity index 83%
rename from features-distribution/pom.xml
rename to features3-distribution/pom.xml
index d245d5dc216a0923906d8dc5fa205adf6826db52..e06f59ad3c4313e99fca7f4b439ab6131dead4c5 100644 (file)
@@ -7,7 +7,9 @@
  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>
@@ -16,7 +18,7 @@
         <relativePath/>
     </parent>
     <groupId>org.opendaylight.integration</groupId>
-    <artifactId>features-distribution</artifactId>
+    <artifactId>features3-distribution</artifactId>
     <version>0.6.0-SNAPSHOT</version>
     <packaging>jar</packaging>
     <!-- <name> formatting is used by autorelease to parse and notify projects on
@@ -34,7 +36,7 @@
     <scm>
         <connection>scm:git:https://git.opendaylight.org/gerrit/integration/distribution.git</connection>
         <developerConnection>scm:git:ssh://git.opendaylight.org:29418/integration/distribution.git</developerConnection>
-        <url>https://git.opendaylight.org/gerrit/gitweb?p=integration/distribution.git;a=tree;f=features-distribution;hb=HEAD</url>
+        <url>https://git.opendaylight.org/gerrit/gitweb?p=integration/distribution.git;a=tree;f=features3-distribution;hb=HEAD</url>
         <tag>HEAD</tag>
     </scm>
     <dependencyManagement>
@@ -49,7 +51,8 @@
         </dependencies>
     </dependencyManagement>
     <dependencies>
-        <!-- version module -->
+        <!-- Version module. -->
+        <!-- Keep distribution-atrifacts updated. -->
         <dependency>
             <groupId>${project.groupId}</groupId>
             <artifactId>version</artifactId>
@@ -60,7 +63,8 @@
             <type>xml</type>
             <classifier>config</classifier>
         </dependency>
-        <!-- dependencies on feature repos -->
+        <!-- Dependencies on upstream feature repositories. -->
+        <!-- Keep upstream-atrifacts updated. -->
         <dependency>
             <groupId>org.opendaylight.controller</groupId>
             <artifactId>features-config-persister</artifactId>
similarity index 98%
rename from features-index/pom.xml
rename to features3-index/pom.xml
index c64683c33419c751ec81b6c1f68b72ffb9076408..628c187ac45be4ee54d806510a67671915f411fb 100644 (file)
@@ -7,7 +7,9 @@
  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>
             </dependency>
         </dependencies>
     </dependencyManagement>
+    <!-- Keep upstream-artifacts updated. -->
     <dependencies>
         <!-- Feature repository dependencies from this project. -->
         <dependency>
             <groupId>${project.groupId}</groupId>
-            <artifactId>features-distribution</artifactId>
+            <artifactId>features3-distribution</artifactId>
             <classifier>features</classifier>
             <type>xml</type>
         </dependency>
similarity index 98%
rename from features-index/src/main/features/features.xml
rename to features3-index/src/main/features/features.xml
index 1caa6c1c44d9d8df3ab2d9fa6bd65689b56d77ba..92f125d03d0ebf5fa64877615301b9d9164981dc 100644 (file)
@@ -62,7 +62,7 @@
     <repository>mvn:org.opendaylight.groupbasedpolicy/features-groupbasedpolicy/{{VERSION}}/xml/features</repository>
     <repository>mvn:org.opendaylight.honeycomb.vbd/vbd-features/{{VERSION}}/xml/features</repository>
     <repository>mvn:org.opendaylight.infrautils/infrautils-features/{{VERSION}}/xml/features</repository>
-    <repository>mvn:org.opendaylight.integration/features-distribution/{{VERSION}}/xml/features</repository>
+    <repository>mvn:org.opendaylight.integration/features3-distribution/{{VERSION}}/xml/features</repository>
     <repository>mvn:org.opendaylight.iotdm/onem2mall-features/{{VERSION}}/xml/features</repository>
     <repository>mvn:org.opendaylight.l2switch/features-l2switch/{{VERSION}}/xml/features</repository>
     <repository>mvn:org.opendaylight.lacp/features-lacp/{{VERSION}}/xml/features</repository>
similarity index 92%
rename from features-test/pom.xml
rename to features3-test/pom.xml
index 0a8adaff917d369ce7d29c209b967ab29d89e880..28a20f9f3f973201d9674e66281d0d20d3d2e94f 100644 (file)
@@ -7,7 +7,9 @@
  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>
similarity index 98%
rename from features-test/src/main/features/features.xml
rename to features3-test/src/main/features/features.xml
index 108dc6cfc92d226fa3ddbaa688d4ea7cebb2ef59..d309183e8b634e77a8d6baabe76ef2d71a0b8d87 100644 (file)
@@ -55,8 +55,8 @@
     -->
     <repository>mvn:org.opendaylight.integration/features-integration-index/{{VERSION}}/xml/features</repository>
 
-    <!-- Please use alphabetical order to add a compatible with all features -->
     <feature name='odl-integration-compatible-with-all' version='${project.version}'>
+        <!-- Please use alphabetical order to add a compatible with all features -->
         <feature>odl-aaa-shiro</feature>
         <feature>odl-aaa-netconf-plugin</feature>
         <feature>odl-bgpcep-bgp-all</feature>
         -->
     </feature>
 
-    <!-- Please use alphabetical order for non-compatible features -->
     <feature name='odl-integration-all' version='${project.version}'>
+        <!-- Please use alphabetical order for non-compatible features -->
         <feature>odl-alto-release</feature>
         <!-- Removed from autorelease due to inactivity.
         <feature>odl-atrium-all</feature>
diff --git a/karaf/pom.xml b/karaf/pom.xml
new file mode 100644 (file)
index 0000000..32b2b09
--- /dev/null
@@ -0,0 +1,135 @@
+<?xml version="1.0"?>
+<!-- vi: set et smarttab sw=4 tabstop=4: -->
+<!--
+ Copyright (c) 2014-2017 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">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.opendaylight.odlparent</groupId>
+        <artifactId>karaf4-parent</artifactId>
+        <version>1.8.0-SNAPSHOT</version>
+        <relativePath/>
+    </parent>
+    <groupId>org.opendaylight.integration</groupId>
+    <artifactId>karaf</artifactId>
+    <version>0.6.0-SNAPSHOT</version>
+    <packaging>pom</packaging>
+    <!-- <name> formatting is used by autorelease to parse and notify projects on
+         build failure. Please do not modify this unless you have a good reason. -->
+    <name>ODL :: integration :: ${project.artifactId}</name>
+    <description>The actual Karaf archive building sub-project.</description>
+    <url>https://wiki.opendaylight.org/view/Integration/Distribution</url>
+    <licenses>
+        <license>
+            <name>Eclipse Public License v1.0</name>
+            <url>http://www.eclipse.org/legal/epl-v10.html</url>
+        </license>
+    </licenses>
+    <!-- FIXME: Add developers section -->
+    <scm>
+        <connection>scm:git:https://git.opendaylight.org/gerrit/integration/distribution.git</connection>
+        <developerConnection>scm:git:ssh://git.opendaylight.org:29418/integration/distribution.git</developerConnection>
+        <url>https://git.opendaylight.org/gerrit/gitweb?p=integration/distribution.git;a=tree;f=karaf;hb=HEAD</url>
+        <tag>HEAD</tag>
+    </scm>
+    <dependencyManagement>
+        <dependencies>
+            <dependency>
+                <groupId>${project.groupId}</groupId>
+                <artifactId>all-artifacts</artifactId>
+                <version>${project.version}</version>
+                <scope>import</scope>
+                <type>pom</type>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
+    <dependencies>
+        <!-- Integration index feature repository. -->
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>features-index</artifactId>
+            <classifier>features</classifier>
+            <type>xml</type>
+            <scope>runtime</scope>
+            <exclusions>
+                <exclusion>
+                    <groupId>org.opendaylight.odlparent</groupId>
+                    <artifactId>opendaylight-karaf4-empty</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>org.opendaylight.controller</groupId>
+                    <artifactId>opendaylight-karaf-empty</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>org.opendaylight.odlparent</groupId>
+                    <artifactId>opendaylight-karaf-empty</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <!-- Integration test feature repository. -->
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>features-test</artifactId>
+            <classifier>features</classifier>
+            <type>xml</type>
+            <scope>test</scope>
+            <exclusions>
+                <exclusion>
+                    <groupId>org.opendaylight.odlparent</groupId>
+                    <artifactId>opendaylight-karaf4-empty</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>org.opendaylight.controller</groupId>
+                    <artifactId>opendaylight-karaf-empty</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>org.opendaylight.odlparent</groupId>
+                    <artifactId>opendaylight-karaf-empty</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+
+        <!-- External applications. -->
+        <!-- This leads to "Unsupported 'Bundle-ManifestVersion' value: 1". Uncomment when fixed.
+        <dependency>
+            <groupId>org.opendaylight.aaa</groupId>
+            <artifactId>aaa-cli-jar</artifactId>
+        </dependency>
+        -->
+    </dependencies>
+
+    <build>
+        <plugins>
+            <!-- This leads to "Unsupported 'Bundle-ManifestVersion' value: 1". Uncomment when fixed.
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-dependency-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <id>copy-aaa-cli-jar</id>
+                        <phase>prepare-package</phase>
+                        <goals>
+                            <goal>copy-dependencies</goal>
+                        </goals>
+                        <configuration>
+                            <outputDirectory>${project.build.directory}/assembly/bin</outputDirectory>
+                            <includeArtifactIds>aaa-cli-jar</includeArtifactIds>
+                            <overWriteReleases>true</overWriteReleases>
+                            <overWriteSnapshots>true</overWriteSnapshots>
+                            <overWriteIfNewer>true</overWriteIfNewer>
+                            <excludeTransitive>true</excludeTransitive>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+            -->
+        </plugins>
+    </build>
+</project>
diff --git a/karaf/src/main/assembly/bin/configure-cluster-ipdetect.sh b/karaf/src/main/assembly/bin/configure-cluster-ipdetect.sh
new file mode 100755 (executable)
index 0000000..7b97ef9
--- /dev/null
@@ -0,0 +1,265 @@
+#!/bin/bash
+#
+# Copyright (c) 2015 Brocade Communications Systems, Inc. and others.  All rights reserved.
+# Copyright (c) 2016 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
+#
+
+
+function usage()
+{
+    # Print any error messages
+    test "$1" != "" && echo " ERROR: $1"
+
+    # Print standard usage help
+    cat << EOF
+ This script is used to configure cluster parameters on this
+ controller. The user should restart controller to apply changes.
+
+ Usage: $0 <seed_nodes_list>
+  - seed_nodes_list: List of seed nodes, separated by comma or space.
+
+ The script checks that one (any) of the the controller's active IP
+ addresses is present in the seed_nodes_list. When running this script
+ on multiple  seed nodes, keep the seed_node_list same on all nodes.
+
+ Optionally, shards can be configured in a more granular way by
+ modifying the file "custom_shard_configs.txt" in the same folder
+ as this tool.  Please see that file for more details.
+
+This script is currently limited to IPv4 addresses. If you have
+problems running this script, please use 'configure_cluster.sh'.
+
+EOF
+
+    exit 1
+}
+
+
+function start_banner
+{
+cat <<EOF
+################################################
+##             Configure Cluster              ##
+################################################
+EOF
+}
+
+function end_banner
+{
+cat <<EOF
+################################################
+##   NOTE: Manually restart controller to     ##
+##         apply configuration.               ##
+################################################
+EOF
+}
+
+# Utility function for joining strings.
+function join {
+    delim=',\n\t\t\t\t'
+    final=$1; shift
+
+    for str in $* ; do
+        final=${final}${delim}${str}
+    done
+
+    echo ${final}
+}
+
+function create_strings
+{
+    # Using a list of controller IPs, create the strings for data
+    # and rpc seed nodes, as well as the list of members.
+
+    # First create an arrays with one string per controller.
+    # Then merge the array using the join utility defined above.
+    count=1
+    for ip in ${CONTROLLERIPS[@]} ; do
+        ds[$count]=\\\"akka.tcp:\\/\\/opendaylight-cluster-data@${ip}:2550\\\"
+        rpc[$count]=\\\"akka.tcp:\\/\\/odl-cluster-rpc@${ip}:2551\\\"
+        members[$count]=\\\"member-${count}\\\"
+        count=$[count + 1]
+    done
+
+    DATA_SEED_LIST=$(join ${ds[@]})
+    RPC_SEED_LIST=$(join ${rpc[@]})
+    MEMBER_NAME_LIST=$(join ${members[@]})
+}
+
+function module_shards_builder
+{
+
+    module_shards_string="module-shards = [\n\t{\n\t\tname = \"default\"\n\t\tshards = [\n\t\t\t{\n\t\t\t\tname = \"default\"\n\t\t\t\treplicas = []\n\t\t\t}\n\t\t]\n\t}"
+    for name in ${FRIENDLY_MODULE_NAMES[@]} ; do
+        module_shards_string="${module_shards_string},\n\t{\n\t\tname = \"${name}\"\n\t\tshards = [\n\t\t\t{\n\t\t\t\tname=\"${name}\"\n\t\t\t\treplicas = []\n\t\t\t}\n\t\t]\n\t}"
+    done
+
+    echo -e ${module_shards_string}"\n]"
+}
+
+function modules_builder
+{
+
+    modules_string="modules = [\n\t"
+    count=1
+    for name in ${FRIENDLY_MODULE_NAMES[@]} ; do
+        modules_string="${modules_string}\n\t{\n\t\tname = \"${name}\"\n\t\tnamespace = \"${MODULE_NAMESPACES[${count}]}\"\n\t\tshard-strategy = \"module\"\n\t},"
+        count=$[count + 1]
+    done
+
+    # using ::-1 below to remove the extra comma we get from the above loop
+    echo -e ${modules_string::-1}"\n]"
+}
+
+
+function get_index ()
+{
+    # Determine if the local IP address is in the CONTROLLER_LIST
+    # and its index in the list. Return the index.
+
+    local MY_IP=$1
+    shift
+    local IP_ADDRS=("$@")
+    local COUNTER=1
+
+    for IP in ${IP_ADDRS[@]} ;
+    do
+        if [ "$MY_IP" == "$IP" ]; then
+            echo "$COUNTER"
+            return
+        fi
+        COUNTER=$[$COUNTER + 1]
+    done
+    echo "$COUNTER"
+}
+
+function get_local_ip_addresses
+{
+    # Get the local node's IP addresses as list
+    LOCAL_IPS=()
+    for IP in `hostname -I`
+    do
+        LOCAL_IPS+=("$IP")
+    done
+    echo ${LOCAL_IPS[@]}
+}
+
+function get_cli_params
+{
+    # Check if params have been supplied
+    CONTROLLER_LIST=$*
+
+    # Verify we have controller list
+    test "${CONTROLLER_LIST}" == "" && usage "Missing controller list"
+
+    # Create the list of controllers from the CONTROLLER_LIST variable
+    CONTROLLERIPS=( ${CONTROLLER_LIST//,/ } )
+
+    # Get the local node's IP addresses
+    LOCAL_IPS=$(get_local_ip_addresses)
+
+    for CONTROLLER_IP in ${LOCAL_IPS[@]} ;
+    do
+        INDEX=$(get_index $CONTROLLER_IP ${CONTROLLERIPS[@]})
+        if [ ${INDEX} -le ${#CONTROLLERIPS[@]} ] ; then
+            break
+        fi
+    done
+
+    test ${INDEX} -le 0 -o ${INDEX} -gt ${#CONTROLLERIPS[@]} && \
+        usage "Controller's local IP address not in the controller list"
+
+    CONTROLLER_ID="member-${INDEX}"
+}
+
+
+function modify_conf_files
+{
+    BIN_DIR=`dirname $0`
+    CUSTOM_SHARD_CONFIG_FILE=${BIN_DIR}'/custom_shard_config.txt'
+    echo "Configuring unique name in akka.conf"
+    sed -i -e "/roles[ ]*=/ { :loop1 /.*\]/ b done1; N; b loop1; :done1 s/roles.*\]/roles = [\"${CONTROLLER_ID}\"]/}" ${AKKACONF}
+
+    echo "Configuring hostname in akka.conf"
+    sed -i -e "s/hostname[ ]*=.*\"/hostname = \"${CONTROLLER_IP}\"/" ${AKKACONF}
+
+    echo "Configuring data and rpc seed nodes in akka.conf"
+    sed -i -e "/seed-nodes[ ]*=/ { :loop2 /.*\]/ b done2; N; b loop2; :done2 s/seed-nodes.*opendaylight-cluster-data.*\]/seed-nodes = [${DATA_SEED_LIST}]/; s/seed-nodes.*odl-cluster-rpc.*\]/seed-nodes = [${RPC_SEED_LIST}]/}" ${AKKACONF}
+
+    if [ -f ${CUSTOM_SHARD_CONFIG_FILE} ]; then
+        source ${CUSTOM_SHARD_CONFIG_FILE}
+        if [ "${#FRIENDLY_MODULE_NAMES[@]}" -ne "${#MODULE_NAMESPACES[@]}" ]; then
+            echo -e "\ncustom shard config file \"${CUSTOM_SHARD_CONFIG_FILE}\" does not have the same number of FRIENDLY_MODULE_NAMES[] and MODULE_NAMESPACES[]\n"
+            exit 1
+        fi
+        module_shards_builder > ${MODULESHARDSCONF}
+        modules_builder > ${MODULESCONF}
+        cat ${MODULESCONF}
+    fi
+
+    echo "Configuring replication type in module-shards.conf"
+    sed -i -e "/^[^#].*replicas[ ]*=/ { :loop /.*\]/ b done; N; b loop; :done s/replicas.*\]/replicas = [${MEMBER_NAME_LIST}]/}" ${MODULESHARDSCONF}
+}
+
+
+function verify_configuration_files
+{
+    # Constants
+    BIN_DIR=`dirname $0`
+    test ${BIN_DIR} == '.' && BIN_DIR=${PWD}
+    CONTROLLER_DIR=`dirname ${BIN_DIR}`
+    CONF_DIR=${CONTROLLER_DIR}/configuration/initial
+    AKKACONF=${CONF_DIR}/akka.conf
+    MODULESCONF=${CONF_DIR}/modules.conf
+    MODULESHARDSCONF=${CONF_DIR}/module-shards.conf
+
+    # Verify configuration files are present in expected location.
+    if [ ! -f ${AKKACONF} -o ! -f ${MODULESHARDSCONF} ]; then
+        # Check if the configuration files exist in the system
+        # directory, then copy them over.
+        ORIG_CONF_DIR=${CONTROLLER_DIR}/system/org/opendaylight/controller/sal-clustering-config
+        version=$(sed -n -e 's/.*<version>\(.*\)<\/version>/\1/p' ${ORIG_CONF_DIR}/maven-metadata-local.xml)
+        ORIG_CONF_DIR=${ORIG_CONF_DIR}/${version}
+        ORIG_AKKA_CONF=sal-clustering-config-${version}-akkaconf.xml
+        ORIG_MODULES_CONF=sal-clustering-config-${version}-moduleconf.xml
+        ORIG_MODULESHARDS_CONF=sal-clustering-config-${version}-moduleshardconf.xml
+
+        if [ -f ${ORIG_CONF_DIR}/${ORIG_AKKA_CONF} -a \
+             -f ${ORIG_CONF_DIR}/${ORIG_MODULES_CONF} -a \
+             -f ${ORIG_CONF_DIR}/${ORIG_MODULESHARDS_CONF} ]; then
+            cat <<EOF
+ NOTE: Cluster configuration files not found. Copying from
+ ${ORIG_CONF_DIR}
+EOF
+            mkdir -p ${CONF_DIR}
+            cp ${ORIG_CONF_DIR}/${ORIG_AKKA_CONF} ${AKKACONF}
+            cp ${ORIG_CONF_DIR}/${ORIG_MODULES_CONF} ${MODULESCONF}
+            cp ${ORIG_CONF_DIR}/${ORIG_MODULESHARDS_CONF} ${MODULESHARDSCONF}
+
+        else
+            cat << EOF
+ ERROR: Cluster configurations files not found. Please\
+ configure clustering feature.
+EOF
+            exit 1
+        fi
+    fi
+}
+
+function main
+{
+    get_cli_params $*
+    start_banner
+    verify_configuration_files
+    create_strings
+    modify_conf_files
+    end_banner
+}
+
+main $*
+
+# vim: ts=4 sw=4 sts=4 et ft=sh :
diff --git a/karaf/src/main/assembly/bin/configure_cluster.sh b/karaf/src/main/assembly/bin/configure_cluster.sh
new file mode 100755 (executable)
index 0000000..5607767
--- /dev/null
@@ -0,0 +1,223 @@
+#!/bin/bash
+#
+# Copyright (c) 2015 Brocade Communications 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
+#
+
+
+function usage()
+{
+    # Print any error messages
+    test "$1" != "" && echo " ERROR: $1"
+
+    # Print standard usage help
+    cat << EOF
+ This script is used to configure cluster parameters on this
+ controller. The user should restart controller to apply changes.
+
+ Usage: $0 <index> <seed_nodes_list>
+  - index: Integer within 1..N, where N is the number of seed nodes.
+  - seed_nodes_list: List of seed nodes, separated by comma or space.
+
+ The address at the provided index should belong this controller.
+ When running this script on multiple seed nodes, keep the
+ seed_node_list same, and vary the index from 1 through N.
+
+ Optionally, shards can be configured in a more granular way by
+ modifying the file "custom_shard_configs.txt" in the same folder
+ as this tool.  Please see that file for more details
+
+EOF
+
+    exit 1
+}
+
+
+function start_banner
+{
+cat <<EOF
+################################################
+##             Configure Cluster              ##
+################################################
+EOF
+}
+
+function end_banner
+{
+cat <<EOF
+################################################
+##   NOTE: Manually restart controller to     ##
+##         apply configuration.               ##
+################################################
+EOF
+}
+
+# Utility function for joining strings.
+function join {
+    delim=',\n\t\t\t\t'
+    final=$1; shift
+
+    for str in $* ; do
+        final=${final}${delim}${str}
+    done
+
+    echo ${final}
+}
+
+function create_strings
+{
+    # Using a list of controller IPs, create the strings for data
+    # and rpc seed nodes, as well as the list of members.
+
+    # First create an arrays with one string per controller.
+    # Then merge the array using the join utility defined above.
+    count=1
+    for ip in ${CONTROLLERIPS[@]} ; do
+        ds[$count]=\\\"akka.tcp:\\/\\/opendaylight-cluster-data@${ip}:2550\\\"
+        rpc[$count]=\\\"akka.tcp:\\/\\/odl-cluster-rpc@${ip}:2551\\\"
+        members[$count]=\\\"member-${count}\\\"
+        count=$[count + 1]
+    done
+
+    DATA_SEED_LIST=$(join ${ds[@]})
+    RPC_SEED_LIST=$(join ${rpc[@]})
+    MEMBER_NAME_LIST=$(join ${members[@]})
+}
+
+function module_shards_builder
+{
+
+    module_shards_string="module-shards = [\n\t{\n\t\tname = \"default\"\n\t\tshards = [\n\t\t\t{\n\t\t\t\tname = \"default\"\n\t\t\t\treplicas = []\n\t\t\t}\n\t\t]\n\t}"
+    for name in ${FRIENDLY_MODULE_NAMES[@]} ; do
+        module_shards_string="${module_shards_string},\n\t{\n\t\tname = \"${name}\"\n\t\tshards = [\n\t\t\t{\n\t\t\t\tname=\"${name}\"\n\t\t\t\treplicas = []\n\t\t\t}\n\t\t]\n\t}"
+    done
+
+    echo -e ${module_shards_string}"\n]"
+}
+
+function modules_builder
+{
+
+    modules_string="modules = [\n\t"
+    count=1
+    for name in ${FRIENDLY_MODULE_NAMES[@]} ; do
+        modules_string="${modules_string}\n\t{\n\t\tname = \"${name}\"\n\t\tnamespace = \"${MODULE_NAMESPACES[${count}]}\"\n\t\tshard-strategy = \"module\"\n\t},"
+        count=$[count + 1]
+    done
+
+    # using ::-1 below to remove the extra comma we get from the above loop
+    echo -e ${modules_string::-1}"\n]"
+}
+
+function get_cli_params
+{
+    # Check if params have been supplied
+    test $# -eq 0 && usage
+
+    # First param is index, and rest are controller list
+    INDEX=$1; shift
+    CONTROLLER_LIST=$*
+
+    # Verify we have controller list
+    test "${CONTROLLER_LIST}" == "" && usage "Missing controller list"
+
+    # Create the list of controllers from the CONTROLLER_LIST variable
+    CONTROLLERIPS=( ${CONTROLLER_LIST//,/ } )
+
+    test ${INDEX} -le 0 -o ${INDEX} -gt ${#CONTROLLERIPS[@]} && \
+        usage "Invalid index"
+
+    CONTROLLER_ID="member-${INDEX}"
+    CONTROLLER_IP="${CONTROLLERIPS[((${INDEX} - 1))]}"
+}
+
+
+function modify_conf_files
+{
+    BIN_DIR=`dirname $0`
+    CUSTOM_SHARD_CONFIG_FILE=${BIN_DIR}'/custom_shard_config.txt'
+    echo "Configuring unique name in akka.conf"
+    sed -i -e "/roles[ ]*=/ { :loop1 /.*\]/ b done1; N; b loop1; :done1 s/roles.*\]/roles = [\"${CONTROLLER_ID}\"]/}" ${AKKACONF}
+
+    echo "Configuring hostname in akka.conf"
+    sed -i -e "s/hostname[ ]*=.*\"/hostname = \"${CONTROLLER_IP}\"/" ${AKKACONF}
+
+    echo "Configuring data and rpc seed nodes in akka.conf"
+    sed -i -e "/seed-nodes[ ]*=/ { :loop2 /.*\]/ b done2; N; b loop2; :done2 s/seed-nodes.*opendaylight-cluster-data.*\]/seed-nodes = [${DATA_SEED_LIST}]/; s/seed-nodes.*odl-cluster-rpc.*\]/seed-nodes = [${RPC_SEED_LIST}]/}" ${AKKACONF}
+
+    if [ -f ${CUSTOM_SHARD_CONFIG_FILE} ]; then
+        source ${CUSTOM_SHARD_CONFIG_FILE}
+        if [ "${#FRIENDLY_MODULE_NAMES[@]}" -ne "${#MODULE_NAMESPACES[@]}" ]; then
+            echo -e "\ncustom shard config file \"${CUSTOM_SHARD_CONFIG_FILE}\" does not have the same number of FRIENDLY_MODULE_NAMES[] and MODULE_NAMESPACES[]\n"
+            exit 1
+        fi
+        module_shards_builder > ${MODULESHARDSCONF}
+        modules_builder > ${MODULESCONF}
+        cat ${MODULESCONF}
+    fi
+
+    echo "Configuring replication type in module-shards.conf"
+    sed -i -e "/^[^#].*replicas[ ]*=/ { :loop /.*\]/ b done; N; b loop; :done s/replicas.*\]/replicas = [${MEMBER_NAME_LIST}]/}" ${MODULESHARDSCONF}
+}
+
+
+function verify_configuration_files
+{
+    # Constants
+    BIN_DIR=`dirname $0`
+    test ${BIN_DIR} == '.' && BIN_DIR=${PWD}
+    CONTROLLER_DIR=`dirname ${BIN_DIR}`
+    CONF_DIR=${CONTROLLER_DIR}/configuration/initial
+    AKKACONF=${CONF_DIR}/akka.conf
+    MODULESCONF=${CONF_DIR}/modules.conf
+    MODULESHARDSCONF=${CONF_DIR}/module-shards.conf
+
+    # Verify configuration files are present in expected location.
+    if [ ! -f ${AKKACONF} -o ! -f ${MODULESHARDSCONF} ]; then
+        # Check if the configuration files exist in the system
+        # directory, then copy them over.
+        ORIG_CONF_DIR=${CONTROLLER_DIR}/system/org/opendaylight/controller/sal-clustering-config
+        version=$(sed -n -e 's/.*<version>\(.*\)<\/version>/\1/p' ${ORIG_CONF_DIR}/maven-metadata-local.xml)
+        ORIG_CONF_DIR=${ORIG_CONF_DIR}/${version}
+        ORIG_AKKA_CONF=sal-clustering-config-${version}-akkaconf.xml
+        ORIG_MODULES_CONF=sal-clustering-config-${version}-moduleconf.xml
+        ORIG_MODULESHARDS_CONF=sal-clustering-config-${version}-moduleshardconf.xml
+
+        if [ -f ${ORIG_CONF_DIR}/${ORIG_AKKA_CONF} -a \
+             -f ${ORIG_CONF_DIR}/${ORIG_MODULES_CONF} -a \
+             -f ${ORIG_CONF_DIR}/${ORIG_MODULESHARDS_CONF} ]; then
+            cat <<EOF
+ NOTE: Cluster configuration files not found. Copying from
+ ${ORIG_CONF_DIR}
+EOF
+            mkdir -p ${CONF_DIR}
+            cp ${ORIG_CONF_DIR}/${ORIG_AKKA_CONF} ${AKKACONF}
+            cp ${ORIG_CONF_DIR}/${ORIG_MODULES_CONF} ${MODULESCONF}
+            cp ${ORIG_CONF_DIR}/${ORIG_MODULESHARDS_CONF} ${MODULESHARDSCONF}
+
+        else
+            cat << EOF
+ ERROR: Cluster configurations files not found. Please\
+ configure clustering feature.
+EOF
+            exit 1
+        fi
+    fi
+}
+
+function main
+{
+    get_cli_params $*
+    start_banner
+    verify_configuration_files
+    create_strings
+    modify_conf_files
+    end_banner
+}
+
+main $*
+
+# vim: ts=4 sw=4 sts=4 et ft=sh :
diff --git a/karaf/src/main/assembly/bin/custom_shard_config.txt b/karaf/src/main/assembly/bin/custom_shard_config.txt
new file mode 100644 (file)
index 0000000..e536349
--- /dev/null
@@ -0,0 +1,17 @@
+# If this file has entries, they will be used to configure the module
+# shards that will be available.  Otherwise, the default shards will
+# be used.  Below, the commented lines are the current default shards
+# (inventory, network-topology, and toaster)
+#
+# These configurations are an array and the indexes need to increment
+# from 1,2,3...
+#
+# There is a FRIENDLY_MODULE_NAME[$index] that will map to the
+# MODULE_NAMESPACES[$index]
+#
+FRIENDLY_MODULE_NAMES[1]='inventory'
+MODULE_NAMESPACES[1]='urn:opendaylight:inventory'
+FRIENDLY_MODULE_NAMES[2]='topology'
+MODULE_NAMESPACES[2]='urn:TBD:params:xml:ns:yang:network-topology'
+FRIENDLY_MODULE_NAMES[3]='toaster'
+MODULE_NAMESPACES[3]='http://netconfcentral.org/ns/toaster'
diff --git a/karaf/src/main/assembly/bin/set_persistence.sh b/karaf/src/main/assembly/bin/set_persistence.sh
new file mode 100755 (executable)
index 0000000..15c2271
--- /dev/null
@@ -0,0 +1,111 @@
+#!/bin/bash
+#
+# Copyright (c) 2015 Brocade Communications 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
+#
+
+
+function usage()
+{
+    # Print any error messages
+    test "$1" != "" && echo " ERROR: $1"
+
+    # Print standard usage help
+    cat << EOF
+ This script is used to enable or disable the config datastore
+ persistence. The default state is enabled. The user should
+ restart controller to apply changes. The script can be used
+ before starting controller for the first time.
+
+ Usage: $0 <on/off>
+
+EOF
+
+    exit 1
+}
+
+
+function end_banner
+{
+cat <<EOF
+################################################
+##   NOTE: Manually restart controller to     ##
+##         apply configuration.               ##
+################################################
+EOF
+}
+
+
+function get_cli_params
+{
+    # Check if params have been supplied
+    test $# -eq 0 && usage
+
+    # First param is on/off
+    SWITCH="$1"
+
+    # Verify we only have 1 param
+    test $# -ne 1 && usage "Too many parameters"
+}
+
+
+function modify_conf_file
+{
+    if [ "${SWITCH}" == "off"  ]; then
+        echo "disabling config datastore persistence"
+        sed -i -e "s/^#persistent=true/persistent=false/" ${CLUSTERCONF}
+    elif [ "${SWITCH}" == "on"  ]; then
+        echo "enabling config datastore persistence"
+        sed -i -e "s/^persistent=false/#persistent=true/" ${CLUSTERCONF}
+    else
+        usage "Allowed values are on/off"
+    fi
+}
+
+
+function verify_configuration_file
+{
+    # Constants
+    BIN_DIR=`dirname $0`
+    test ${BIN_DIR} == '.' && BIN_DIR=${PWD}
+    CONTROLLER_DIR=`dirname ${BIN_DIR}`
+    CONF_DIR=${CONTROLLER_DIR}/etc
+    CLUSTERCONF=${CONF_DIR}/org.opendaylight.controller.cluster.datastore.cfg
+
+    # Verify configuration files are present in expected location.
+    if [ ! -f ${CLUSTERCONF} ]; then
+        # Check if the configuration files exist in the system
+        # directory, then copy them over.
+        ORIG_CONF_DIR=${CONTROLLER_DIR}/system/org/opendaylight/controller/sal-clustering-config
+        version=$(sed -n -e 's/.*<version>\(.*\)<\/version>/\1/p' ${ORIG_CONF_DIR}/maven-metadata-local.xml)
+        ORIG_CONF_DIR=${ORIG_CONF_DIR}/${version}
+        ORIG_CLUSTER_CONF=sal-clustering-config-${version}-datastore.cfg
+
+        if [ -f ${ORIG_CONF_DIR}/${ORIG_CLUSTER_CONF} ]; then
+            cat <<EOF
+ NOTE: Cluster configuration file not found. Copying from
+ ${ORIG_CONF_DIR}
+EOF
+            cp ${ORIG_CONF_DIR}/${ORIG_CLUSTER_CONF} ${CLUSTERCONF}
+
+        else
+            usage "Cluster configuration file not found"
+        fi
+    fi
+}
+
+function main
+{
+    get_cli_params "$@"
+    verify_configuration_file
+    modify_conf_file
+    end_banner
+}
+
+main "$@"
+
+# vim: ts=4 sw=4 sts=4 et ft=sh :
+
diff --git a/karaf/src/main/assembly/etc/org.ops4j.pax.url.mvn.cfg b/karaf/src/main/assembly/etc/org.ops4j.pax.url.mvn.cfg
new file mode 100644 (file)
index 0000000..cdd5837
--- /dev/null
@@ -0,0 +1,96 @@
+################################################################################
+#
+#    Licensed to the Apache Software Foundation (ASF) under one or more
+#    contributor license agreements.  See the NOTICE file distributed with
+#    this work for additional information regarding copyright ownership.
+#    The ASF licenses this file to You under the Apache License, Version 2.0
+#    (the "License"); you may not use this file except in compliance with
+#    the License.  You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+#    Unless required by applicable law or agreed to in writing, software
+#    distributed under the License is distributed on an "AS IS" BASIS,
+#    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#    See the License for the specific language governing permissions and
+#    limitations under the License.
+#
+################################################################################
+
+#
+# If set to true, the following property will not allow any certificate to be used
+# when accessing Maven repositories through SSL
+#
+#org.ops4j.pax.url.mvn.certificateCheck=
+
+#
+# Path to the local Maven settings file.
+# The repositories defined in this file will be automatically added to the list
+# of default repositories if the 'org.ops4j.pax.url.mvn.repositories' property
+# below is not set.
+# The following locations are checked for the existence of the settings.xml file
+#   * 1. looks for the specified url
+#   * 2. if not found looks for ${user.home}/.m2/settings.xml
+#   * 3. if not found looks for ${maven.home}/conf/settings.xml
+#   * 4. if not found looks for ${M2_HOME}/conf/settings.xml
+#
+#org.ops4j.pax.url.mvn.settings=
+
+#
+# Path to the local Maven repository which is used to avoid downloading
+# artifacts when they already exist locally.
+# The value of this property will be extracted from the settings.xml file
+# above, or defaulted to:
+#     System.getProperty( "user.home" ) + "/.m2/repository"
+#
+org.ops4j.pax.url.mvn.localRepository=${karaf.home}/${karaf.default.repository}
+
+#
+# Default this to false. It's just weird to use undocumented repos
+#
+org.ops4j.pax.url.mvn.useFallbackRepositories=false
+
+#
+# Uncomment if you don't wanna use the proxy settings
+# from the Maven conf/settings.xml file
+#
+# org.ops4j.pax.url.mvn.proxySupport=false
+
+#
+# Comma separated list of repositories scanned when resolving an artifact.
+# Those repositories will be checked before iterating through the
+#    below list of repositories and even before the local repository
+# A repository url can be appended with zero or more of the following flags:
+#    @snapshots  : the repository contains snaphots
+#    @noreleases : the repository does not contain any released artifacts
+#
+# The following property value will add the system folder as a repo.
+#
+org.ops4j.pax.url.mvn.defaultRepositories=\
+    file:${karaf.home}/${karaf.default.repository}@id=system.repository@snapshots,\
+    file:${karaf.data}/kar@id=kar.repository@multi@snapshots,\
+    file:${karaf.base}/${karaf.default.repository}@id=child.system.repository@snapshots
+
+# Use the default local repo (e.g.~/.m2/repository) as a "remote" repo
+#org.ops4j.pax.url.mvn.defaultLocalRepoAsRemote=false
+
+#
+# Comma separated list of repositories scanned when resolving an artifact.
+# The default list includes the following repositories:
+#    http://repo1.maven.org/maven2@id=central
+#    http://repository.springsource.com/maven/bundles/release@id=spring.ebr
+#    http://repository.springsource.com/maven/bundles/external@id=spring.ebr.external
+#    http://zodiac.springsource.com/maven/bundles/release@id=gemini
+#    http://repository.apache.org/content/groups/snapshots-group@id=apache@snapshots@noreleases
+#    https://oss.sonatype.org/content/repositories/snapshots@id=sonatype.snapshots.deploy@snapshots@noreleases
+#    https://oss.sonatype.org/content/repositories/ops4j-snapshots@id=ops4j.sonatype.snapshots.deploy@snapshots@noreleases
+# To add repositories to the default ones, prepend '+' to the list of repositories
+# to add.
+# A repository url can be appended with zero or more of the following flags:
+#    @snapshots  : the repository contains snapshots
+#    @noreleases : the repository does not contain any released artifacts
+#    @id=repository.id : the id for the repository, just like in the settings.xml this is optional but recommended
+#
+org.ops4j.pax.url.mvn.repositories=
+
+### ^^^ No remote repositories. This is the only ODL change compared to Karaf defaults.
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index a1d139418df5ed9b0412478c0736b7ea1b67b7f3..86da3d8599ed2d069e8d9c4b812f2b62bfce1607 100644 (file)
--- a/pom.xml
+++ b/pom.xml
@@ -7,7 +7,9 @@
  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>
@@ -16,7 +18,7 @@
         <relativePath/>
     </parent>
     <groupId>org.opendaylight.integration</groupId>
-    <artifactId>agregator</artifactId>
+    <artifactId>distribution-aggregator</artifactId>
     <version>0.6.0-SNAPSHOT</version>
     <packaging>pom</packaging>
     <!-- <name> value is used by Sonar to set project name -->
     <modules>
         <!-- Keep this list sorted alphabetically please -->
         <module>artifacts</module>
+        <module>karaf</module>
         <module>distribution-karaf</module>
-        <module>features-distribution</module>
-        <module>features-index</module>
-        <module>features-test</module>
+        <module>features</module>
+        <module>features3-distribution</module>
+        <module>features3-index</module>
+        <module>features3-test</module>
         <module>version</module>
     </modules>
 </project>
index 5b0cbbd244f3b48645ab49ea1ee452da7a3894b0..683142a56bcd9c0e130991fd5ebe7c5ae68cfe3e 100644 (file)
@@ -7,7 +7,9 @@
  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.controller</groupId>