Break the repository index out separately from the test features
authorEd Warnicke <eaw@cisco.com>
Mon, 5 Jan 2015 17:49:55 +0000 (11:49 -0600)
committerLuis Gomez <ecelgp@gmail.com>
Sun, 11 Jan 2015 07:40:51 +0000 (23:40 -0800)
Currently, we have integration/features which is doing two things:
1)  Listing the <repositories> from all of the projects
2)  Listing the test features (like compatible-with-all) that are
    being tested by integration test.

The test features are creating user confusion, with folks doing
things like loading

odl-integration-compatible-with-all

to poor effect.  By splitting into two features repos

features-integration-index:
  Which holds only the list of repositories, and not the test features
  and is included in the shipping distribution/karaf

and

features-integration-test:
  Which holds only the test features, and is *not* shipped in the
  distribution/karaf

We should be able to clear up this confusion in the future

Change-Id: I12633819bd35a0bece2da4ac557de106d3c216e7
Signed-off-by: Ed Warnicke <eaw@cisco.com>
distributions/karaf/pom.xml
distributions/pom.xml
distributions/test/pom.xml [new file with mode: 0644]
distributions/test/src/main/assembly/etc/org.ops4j.pax.url.mvn.cfg [new file with mode: 0644]
features/index/pom.xml [new file with mode: 0644]
features/index/src/main/resources/features.xml [new file with mode: 0644]
features/pom.xml
features/src/main/resources/features.xml [deleted file]
features/test/pom.xml [new file with mode: 0644]
features/test/src/main/resources/features.xml [new file with mode: 0644]

index 71a5077ce72815ca3723646c7d3402aee52d143c..a598f5e6bc439b0ff60616a52d472c52a05fdbe8 100644 (file)
@@ -65,7 +65,7 @@
 
     <!-- integration feature -->
     <dependency>
-      <artifactId>features-integration</artifactId>
+      <artifactId>features-integration-index</artifactId>
       <groupId>org.opendaylight.integration</groupId>
       <version>${project.version}</version>
       <classifier>features</classifier>
index a118d344ca60094ffb1cde80445a596b74a17f78..37c2eccafe37656da99e63fc95c6dbba0ae36dc9 100644 (file)
@@ -15,6 +15,7 @@
   <packaging>pom</packaging>
   <modules>
     <module>karaf</module>
+    <module>test</module>
   </modules>
   <profiles>
     <profile>
diff --git a/distributions/test/pom.xml b/distributions/test/pom.xml
new file mode 100644 (file)
index 0000000..73cfead
--- /dev/null
@@ -0,0 +1,394 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+      <groupId>org.opendaylight.integration</groupId>
+      <artifactId>root</artifactId>
+      <version>0.3.0-SNAPSHOT</version>
+      <relativePath>../../</relativePath>
+   </parent>
+  <artifactId>distribution-test</artifactId>
+  <packaging>pom</packaging>
+  <prerequisites>
+    <maven>3.0</maven>
+  </prerequisites>
+  <properties>
+    <branding.version>1.1.0-SNAPSHOT</branding.version>
+    <karaf.resources.version>1.5.0-SNAPSHOT</karaf.resources.version>
+  </properties>
+
+  <dependencies>
+    <dependency>
+      <!-- scope is compile so all features (there is only one) are installed
+            into startup.properties and the feature repo itself is not installed -->
+      <groupId>org.apache.karaf.features</groupId>
+      <artifactId>framework</artifactId>
+      <version>${karaf.version}</version>
+      <type>kar</type>
+      <exclusions>
+        <exclusion>
+          <groupId>org.osgi</groupId>
+          <artifactId>org.osgi.core</artifactId>
+        </exclusion>
+        <exclusion>
+          <groupId>org.apache.sshd</groupId>
+          <artifactId>sshd-core</artifactId>
+        </exclusion>
+      </exclusions>
+    </dependency>
+    <!-- scope is runtime so the feature repo is listed in the features
+      service config file, and features may be installed using the
+      karaf-maven-plugin configuration -->
+    <dependency>
+      <groupId>org.apache.karaf.features</groupId>
+      <artifactId>standard</artifactId>
+      <version>${karaf.version}</version>
+      <classifier>features</classifier>
+      <type>xml</type>
+      <scope>runtime</scope>
+    </dependency>
+
+    <!-- ODL Branding -->
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>karaf.branding</artifactId>
+      <version>${branding.version}</version>
+      <scope>compile</scope>
+    </dependency>
+
+    <!-- Resources needed -->
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>opendaylight-karaf-resources</artifactId>
+      <version>${karaf.resources.version}</version>
+    </dependency>
+
+    <!-- integration feature -->
+    <dependency>
+      <artifactId>features-integration-test</artifactId>
+      <groupId>org.opendaylight.integration</groupId>
+      <version>${project.version}</version>
+      <classifier>features</classifier>
+      <type>xml</type>
+      <scope>runtime</scope>
+    </dependency>
+
+    <!-- External application -->
+    <dependency>
+      <groupId>org.opendaylight.vtn</groupId>
+      <artifactId>distribution.vtn-coordinator</artifactId>
+      <version>6.0.0.0-SNAPSHOT</version>
+      <type>tar.bz2</type>
+      <classifier>bin</classifier>
+      <exclusions>
+        <exclusion>
+          <groupId>com.google.code.gson</groupId>
+          <artifactId>gson</artifactId>
+        </exclusion>
+        <exclusion>
+          <groupId>commons-codec</groupId>
+          <artifactId>commons-codec</artifactId>
+        </exclusion>
+        <exclusion>
+          <groupId>org.json</groupId>
+          <artifactId>json</artifactId>
+        </exclusion>
+      </exclusions>
+    </dependency>
+
+    <dependency>
+      <groupId>org.opendaylight.vtn</groupId>
+      <artifactId>distribution.vtn-coordinator</artifactId>
+      <version>6.0.0.0-SNAPSHOT</version>
+      <type>txt</type>
+      <classifier>README</classifier>
+      <exclusions>
+        <exclusion>
+          <groupId>com.google.code.gson</groupId>
+          <artifactId>gson</artifactId>
+        </exclusion>
+        <exclusion>
+          <groupId>commons-codec</groupId>
+          <artifactId>commons-codec</artifactId>
+        </exclusion>
+        <exclusion>
+          <groupId>org.json</groupId>
+          <artifactId>json</artifactId>
+        </exclusion>
+      </exclusions>
+    </dependency>
+  </dependencies>
+
+  <build>
+    <pluginManagement>
+      <plugins>
+        <plugin>
+          <groupId>org.eclipse.m2e</groupId>
+          <artifactId>lifecycle-mapping</artifactId>
+          <version>1.0.0</version>
+          <configuration>
+            <lifecycleMappingMetadata>
+              <pluginExecutions>
+                <pluginExecution>
+                  <pluginExecutionFilter>
+                    <groupId>org.apache.felix</groupId>
+                    <artifactId>maven-bundle-plugin</artifactId>
+                    <versionRange>[0,)</versionRange>
+                    <goals>
+                      <goal>cleanVersions</goal>
+                    </goals>
+                  </pluginExecutionFilter>
+                  <action>
+                    <ignore></ignore>
+                  </action>
+                </pluginExecution>
+                <pluginExecution>
+                  <pluginExecutionFilter>
+                    <groupId>org.apache.maven.plugins</groupId>
+                    <artifactId>maven-dependency-plugin</artifactId>
+                    <versionRange>[0,)</versionRange>
+                    <goals>
+                      <goal>copy</goal>
+                      <goal>unpack</goal>
+                    </goals>
+                  </pluginExecutionFilter>
+                  <action>
+                    <ignore></ignore>
+                  </action>
+                </pluginExecution>
+                <pluginExecution>
+                  <pluginExecutionFilter>
+                    <groupId>org.apache.karaf.tooling</groupId>
+                    <artifactId>karaf-maven-plugin</artifactId>
+                    <versionRange>[0,)</versionRange>
+                    <goals>
+                      <goal>commands-generate-help</goal>
+                    </goals>
+                  </pluginExecutionFilter>
+                  <action>
+                    <ignore></ignore>
+                  </action>
+                </pluginExecution>
+                <pluginExecution>
+                  <pluginExecutionFilter>
+                    <groupId>org.fusesource.scalate</groupId>
+                    <artifactId>maven-scalate-plugin</artifactId>
+                    <versionRange>[0,)</versionRange>
+                    <goals>
+                      <goal>sitegen</goal>
+                    </goals>
+                  </pluginExecutionFilter>
+                  <action>
+                    <ignore></ignore>
+                  </action>
+                </pluginExecution>
+                <pluginExecution>
+                  <pluginExecutionFilter>
+                    <groupId>org.apache.servicemix.tooling</groupId>
+                    <artifactId>depends-maven-plugin</artifactId>
+                    <versionRange>[0,)</versionRange>
+                    <goals>
+                      <goal>generate-depends-file</goal>
+                    </goals>
+                  </pluginExecutionFilter>
+                  <action>
+                    <ignore></ignore>
+                  </action>
+                </pluginExecution>
+              </pluginExecutions>
+            </lifecycleMappingMetadata>
+          </configuration>
+        </plugin>
+      </plugins>
+    </pluginManagement>
+    <plugins>
+      <plugin>
+        <artifactId>maven-resources-plugin</artifactId>
+        <version>2.6</version>
+        <executions>
+          <execution>
+            <id>copy-resources</id>
+            <!-- here the phase you need -->
+            <phase>prepare-package</phase>
+            <goals>
+              <goal>copy-resources</goal>
+            </goals>
+            <configuration>
+              <outputDirectory>${basedir}/target/assembly</outputDirectory>
+              <resources>
+                <resource>
+                  <directory>src/main/assembly</directory>
+                </resource>
+              </resources>
+              <overwrite>true</overwrite>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+      <plugin>
+        <groupId>org.apache.karaf.tooling</groupId>
+        <artifactId>karaf-maven-plugin</artifactId>
+        <version>${karaf.version}</version>
+        <extensions>true</extensions>
+        <configuration>
+          <!-- no startupFeatures -->
+          <bootFeatures>
+            <feature>standard</feature>
+          </bootFeatures>
+          <!-- no installedFeatures -->
+        </configuration>
+        <executions>
+          <execution>
+            <id>populate-system</id>
+            <phase>generate-resources</phase>
+            <goals>
+              <goal>features-add-to-repository</goal>
+            </goals>
+            <configuration>
+              <descriptors>
+                <descriptor>mvn:org.apache.karaf.features/standard/${karaf.version}/xml/features</descriptor>
+              </descriptors>
+              <features>
+                <feature>standard</feature>
+                <feature>config</feature>
+                <feature>package</feature>
+                <feature>kar</feature>
+                <feature>ssh</feature>
+                <feature>management</feature>
+                <feature>war</feature>
+              </features>
+              <repository>target/assembly/system</repository>
+            </configuration>
+          </execution>
+          <execution>
+            <id>process-resources</id>
+            <goals>
+              <goal>install-kars</goal>
+            </goals>
+            <phase>process-resources</phase>
+          </execution>
+          <execution>
+            <id>package</id>
+            <goals>
+              <goal>instance-create-archive</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-checkstyle-plugin</artifactId>
+        <version>${checkstyle.version}</version>
+        <configuration>
+          <excludes>**\/target\/,**\/bin\/,**\/target-ide\/,**\/configuration\/initial\/</excludes>
+        </configuration>
+      </plugin>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-dependency-plugin</artifactId>
+        <version>2.8</version>
+        <executions>
+          <execution>
+            <id>copy</id>
+            <goals>
+              <goal>copy</goal>
+            </goals>
+            <!-- here the phase you need -->
+            <phase>generate-resources</phase>
+            <configuration>
+              <artifactItems>
+                <artifactItem>
+                  <groupId>org.opendaylight.controller</groupId>
+                  <artifactId>karaf.branding</artifactId>
+                  <version>${karaf.branding.version}</version>
+                  <outputDirectory>target/assembly/lib</outputDirectory>
+                  <destFileName>karaf.branding-${branding.version}.jar</destFileName>
+                </artifactItem>
+              </artifactItems>
+            </configuration>
+          </execution>
+          <execution>
+            <id>unpack-karaf-resources</id>
+            <goals>
+              <goal>unpack-dependencies</goal>
+            </goals>
+            <phase>prepare-package</phase>
+            <configuration>
+             <outputDirectory>${project.build.directory}/assembly</outputDirectory>
+             <groupId>org.opendaylight.controller</groupId>
+             <includeArtifactIds>opendaylight-karaf-resources</includeArtifactIds>
+             <excludes>META-INF\/**</excludes>
+             <excludeTransitive>true</excludeTransitive>
+             <ignorePermissions>false</ignorePermissions>
+            </configuration>
+          </execution>
+          <execution>
+            <id>copy-dependencies</id>
+            <phase>prepare-package</phase>
+            <goals>
+              <goal>copy-dependencies</goal>
+            </goals>
+            <configuration>
+              <outputDirectory>${project.build.directory}/assembly/system</outputDirectory>
+              <excludeArtifactIds>distribution.vtn-coordinator</excludeArtifactIds>
+              <overWriteReleases>false</overWriteReleases>
+              <overWriteSnapshots>true</overWriteSnapshots>
+              <overWriteIfNewer>true</overWriteIfNewer>
+              <useRepositoryLayout>true</useRepositoryLayout>
+              <addParentPoms>true</addParentPoms>
+              <copyPom>true</copyPom>
+            </configuration>
+          </execution>
+          <execution>
+            <id>copy-externalapps</id>
+            <phase>prepare-package</phase>
+            <goals>
+              <goal>copy-dependencies</goal>
+            </goals>
+            <configuration>
+              <outputDirectory>${project.build.directory}/assembly/externalapps</outputDirectory>
+              <includeArtifactIds>distribution.vtn-coordinator</includeArtifactIds>
+              <overWriteReleases>false</overWriteReleases>
+              <overWriteSnapshots>true</overWriteSnapshots>
+              <overWriteIfNewer>true</overWriteIfNewer>
+              <excludeTransitive>true</excludeTransitive>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-antrun-plugin</artifactId>
+        <executions>
+            <execution>
+                <phase>prepare-package</phase>
+                <goals>
+                    <goal>run</goal>
+                </goals>
+                <configuration>
+                  <tasks>
+                    <chmod perm="755">
+                        <fileset dir="${project.build.directory}/assembly/bin">
+                          <include name="karaf"/>
+                          <include name="instance"/>
+                          <include name="start"/>
+                          <include name="stop"/>
+                          <include name="status"/>
+                          <include name="client"/>
+                          <include name="shell"/>
+                        </fileset>
+                    </chmod>
+                  </tasks>
+                </configuration>
+            </execution>
+        </executions>
+      </plugin>
+    </plugins>
+  </build>
+  <scm>
+    <connection>scm:git:ssh://git.opendaylight.org:29418/controller.git</connection>
+    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
+    <tag>HEAD</tag>
+    <url>https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main</url>
+  </scm>
+</project>
diff --git a/distributions/test/src/main/assembly/etc/org.ops4j.pax.url.mvn.cfg b/distributions/test/src/main/assembly/etc/org.ops4j.pax.url.mvn.cfg
new file mode 100644 (file)
index 0000000..9ee45e4
--- /dev/null
@@ -0,0 +1,106 @@
+################################################################################
+#
+#    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
+
+#
+# Disable aether support by default.  This ensure that the defaultRepositories
+# below will be used
+#
+#org.ops4j.pax.url.mvn.disableAether=true
+
+#
+# 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=
+
+# 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 containing releases:
+#    http://repo1.maven.org/maven2
+#    http://repository.apache.org/content/groups/snapshots-group
+#    http://svn.apache.org/repos/asf/servicemix/m2-repo
+#    http://repository.springsource.com/maven/bundles/release
+#    http://repository.springsource.com/maven/bundles/external
+# 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 snaphots
+#    @noreleases : the repository does not contain any released artifacts
+#    @id=reponid : the id for the repository, just like in the settings.xml this is optional but recomendet 
+#
+# The default list doesn't contain any repository containing snapshots as it can impact the artifacts resolution.
+# You may want to add the following repositories containing snapshots:
+#    http://repository.apache.org/content/groups/snapshots-group@id=apache@snapshots@noreleases
+#    http://oss.sonatype.org/content/repositories/snapshots@id=sonatype.snapshots.deploy@snapshots@norelease
+#    http://oss.sonatype.org/content/repositories/ops4j-snapshots@id=ops4j.sonatype.snapshots.deploy@snapshots@noreleases
+#
+org.ops4j.pax.url.mvn.repositories= \
+       file:${karaf.home}/${karaf.default.repository}@id=system.repository, \
+    file:${karaf.data}/kar@id=kar.repository@multi, \
+    http://repo1.maven.org/maven2@id=central, \
+    http://repository.springsource.com/maven/bundles/release@id=spring.ebr.release, \
+    http://repository.springsource.com/maven/bundles/external@id=spring.ebr.external
diff --git a/features/index/pom.xml b/features/index/pom.xml
new file mode 100644 (file)
index 0000000..7fe5a16
--- /dev/null
@@ -0,0 +1,323 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- vi: set et smarttab sw=4 tabstop=4: -->
+<!--
+ Copyright (c) 2014 Cisco Systems, Inc. and others.  All rights reserved.
+
+ This program and the accompanying materials are made available under the
+ terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ and is available at http://www.eclipse.org/legal/epl-v10.html
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+   <modelVersion>4.0.0</modelVersion>
+   <parent>
+      <groupId>org.opendaylight.integration</groupId>
+      <artifactId>root</artifactId>
+      <version>0.3.0-SNAPSHOT</version>
+      <relativePath>../../</relativePath>
+   </parent>
+   <artifactId>features-integration-index</artifactId>
+   <packaging>jar</packaging>
+   <properties>
+      <features.file>features.xml</features.file>
+   </properties>
+   <dependencies>
+    <!-- dependencies on feature repos -->
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>features-mdsal</artifactId>
+      <version>${feature.mdsal.version}</version>
+      <classifier>features</classifier>
+      <type>xml</type>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>features-netconf-connector</artifactId>
+      <version>${feature.mdsal.version}</version>
+      <classifier>features</classifier>
+      <type>xml</type>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>features-restconf</artifactId>
+      <version>${feature.mdsal.version}</version>
+      <classifier>features</classifier>
+      <type>xml</type>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>features-adsal</artifactId>
+      <classifier>features</classifier>
+      <type>xml</type>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>features-nsf</artifactId>
+      <classifier>features</classifier>
+      <type>xml</type>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.ovsdb</groupId>
+      <artifactId>features-ovsdb</artifactId>
+      <classifier>features</classifier>
+      <type>xml</type>
+    </dependency>
+    <dependency>
+       <groupId>org.opendaylight.bgpcep</groupId>
+       <artifactId>features-bgp</artifactId>
+       <classifier>features</classifier>
+       <type>xml</type>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.openflowplugin</groupId>
+      <artifactId>features-openflowplugin</artifactId>
+      <version>0.1.0-SNAPSHOT</version>
+      <classifier>features</classifier>
+      <type>xml</type>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.dlux</groupId>
+      <artifactId>features-dlux</artifactId>
+      <version>${feature.dlux.version}</version>
+      <classifier>features</classifier>
+      <type>xml</type>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.ovsdb</groupId>
+      <artifactId>features-openflow-nxm</artifactId>
+      <version>0.1.0-SNAPSHOT</version>
+      <classifier>features</classifier>
+      <type>xml</type>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.l2switch</groupId>
+      <artifactId>features-l2switch</artifactId>
+      <version>0.2.0-SNAPSHOT</version>
+      <classifier>features</classifier>
+      <type>xml</type>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>features-adsal-compatibility</artifactId>
+      <version>1.5.0-SNAPSHOT</version>
+      <classifier>features</classifier>
+      <type>xml</type>
+    </dependency>
+    <!-- plugin2oc -->
+    <dependency>
+       <groupId>org.opendaylight.plugin2oc</groupId>
+       <artifactId>features-plugin2oc</artifactId>
+       <version>0.2.0-SNAPSHOT</version>
+       <classifier>features</classifier>
+       <type>xml</type>
+    </dependency>
+
+    <!-- AAA -->
+    <dependency>
+      <groupId>org.opendaylight.aaa</groupId>
+      <artifactId>features-aaa-api</artifactId>
+      <version>0.2.0-SNAPSHOT</version>
+      <classifier>features</classifier>
+      <type>xml</type>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.aaa</groupId>
+      <artifactId>features-aaa</artifactId>
+      <version>0.2.0-SNAPSHOT</version>
+      <classifier>features</classifier>
+      <type>xml</type>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.aaa</groupId>
+      <artifactId>features-aaa-authz</artifactId>
+      <version>0.2.0-SNAPSHOT</version>
+      <classifier>features</classifier>
+      <type>xml</type>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.ttp</groupId>
+      <artifactId>features-ttp</artifactId>
+      <version>${feature.ttp.version}</version>
+      <classifier>features</classifier>
+      <type>xml</type>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.lispflowmapping</groupId>
+      <artifactId>features-lispflowmapping</artifactId>
+      <version>${feature.lispflowmapping.version}</version>
+      <classifier>features</classifier>
+      <type>xml</type>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.vtn</groupId>
+      <artifactId>features-vtn-manager</artifactId>
+      <classifier>features</classifier>
+      <type>xml</type>
+    </dependency>
+    <dependency>
+      <groupId>org.opendaylight.groupbasedpolicy</groupId>
+      <artifactId>features-groupbasedpolicy</artifactId>
+      <version>${feature.groupbasedpolicy.version}</version>
+      <classifier>features</classifier>
+      <type>xml</type>
+    </dependency>
+
+    <dependency>
+      <groupId>org.opendaylight.sfc</groupId>
+      <artifactId>features-sfc</artifactId>
+      <version>0.1.0-SNAPSHOT</version>
+      <classifier>features</classifier>
+      <type>xml</type>
+    </dependency>
+
+    <dependency>
+      <groupId>org.opendaylight.sfc</groupId>
+      <artifactId>features-sfclisp</artifactId>
+      <version>0.1.0-SNAPSHOT</version>
+      <classifier>features</classifier>
+      <type>xml</type>
+    </dependency>
+
+    <dependency>
+          <groupId>org.opendaylight.sfc</groupId>
+          <artifactId>features-sfcofl2</artifactId>
+          <version>0.1.0-SNAPSHOT</version>
+          <classifier>features</classifier>
+          <type>xml</type>
+    </dependency>
+
+    <dependency>
+      <groupId>org.opendaylight.ovsdb</groupId>
+      <artifactId>features-ovs-sfc</artifactId>
+      <version>0.1.0-SNAPSHOT</version>
+      <classifier>features</classifier>
+      <type>xml</type>
+    </dependency>
+
+    <dependency>
+      <groupId>org.opendaylight.snbi</groupId>
+      <artifactId>features-snbi</artifactId>
+      <version>${feature.snbi.version}</version>
+      <classifier>features</classifier>
+      <type>xml</type>
+    </dependency>
+
+
+    <dependency>
+       <groupId>org.opendaylight.packetcable</groupId>
+       <artifactId>features-packetcable</artifactId>
+       <version>${feature.packetcable.version}</version>
+       <classifier>features</classifier>
+       <type>xml</type>
+    </dependency>
+
+    <dependency>
+      <groupId>org.opendaylight.snmp4sdn</groupId>
+      <artifactId>features-snmp4sdn</artifactId>
+      <version>0.2.0-SNAPSHOT</version>
+      <classifier>features</classifier>
+      <type>xml</type>
+    </dependency>
+
+    <dependency>
+      <groupId>org.opendaylight.sdninterfaceapp</groupId>
+      <artifactId>features-sdninterfaceapp</artifactId>
+      <version>1.5.0-SNAPSHOT</version>
+      <classifier>features</classifier>
+      <type>xml</type>
+    </dependency>
+
+
+    <!-- test to validate features.xml -->
+    <dependency>
+      <groupId>org.opendaylight.yangtools</groupId>
+      <artifactId>features-test</artifactId>
+      <version>0.7.0-SNAPSHOT</version>
+    </dependency>
+    <!-- dependency for opendaylight-karaf-empty for use by testing -->
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>opendaylight-karaf-empty</artifactId>
+      <version>1.5.0-SNAPSHOT</version>
+      <type>zip</type>
+    </dependency>
+   </dependencies>
+   <build>
+      <resources>
+         <resource>
+            <directory>src/main/resources</directory>
+            <filtering>true</filtering>
+         </resource>
+      </resources>
+      <plugins>
+         <plugin>
+            <groupId>org.apache.karaf.tooling</groupId>
+            <artifactId>karaf-maven-plugin</artifactId>
+            <version>${karaf.version}</version>
+            <extensions>true</extensions>
+            <executions>
+               <execution>
+                  <id>features-create-kar</id>
+                  <goals>
+                     <goal>features-create-kar</goal>
+                  </goals>
+                  <configuration>
+                     <featuresFile>${project.build.directory}/classes/${features.file}</featuresFile>
+                  </configuration>
+               </execution>
+            </executions>
+        <!-- There is no useful configuration for the kar mojo. The features-generate-descriptor mojo configuration may be useful -->
+         </plugin>
+         <plugin>
+            <groupId>org.apache.maven.plugins</groupId>
+            <artifactId>maven-resources-plugin</artifactId>
+            <executions>
+               <execution>
+                  <id>filter</id>
+                  <phase>generate-resources</phase>
+                  <goals>
+                     <goal>resources</goal>
+                  </goals>
+               </execution>
+            </executions>
+         </plugin>
+         <plugin>
+            <groupId>org.codehaus.mojo</groupId>
+            <artifactId>build-helper-maven-plugin</artifactId>
+            <executions>
+               <execution>
+                  <id>attach-artifacts</id>
+                  <phase>package</phase>
+                  <goals>
+                     <goal>attach-artifact</goal>
+                  </goals>
+                  <configuration>
+                     <artifacts>
+                        <artifact>
+                           <file>${project.build.directory}/classes/${features.file}</file>
+                           <type>xml</type>
+                           <classifier>features</classifier>
+                        </artifact>
+                     </artifacts>
+                  </configuration>
+               </execution>
+            </executions>
+         </plugin>
+         <plugin>
+            <groupId>org.apache.maven.plugins</groupId>
+            <artifactId>maven-surefire-plugin</artifactId>
+            <version>2.16</version>
+            <configuration>
+              <systemPropertyVariables>
+                <karaf.distro.groupId>org.opendaylight.controller</karaf.distro.groupId>
+                <karaf.distro.artifactId>opendaylight-karaf-empty</karaf.distro.artifactId>
+                <karaf.distro.version>1.5.0-SNAPSHOT</karaf.distro.version>
+              </systemPropertyVariables>
+              <dependenciesToScan>
+               <dependency>org.opendaylight.yangtools:features-test</dependency>
+              </dependenciesToScan>
+            </configuration>
+          </plugin>
+      </plugins>
+   </build>
+</project>
diff --git a/features/index/src/main/resources/features.xml b/features/index/src/main/resources/features.xml
new file mode 100644 (file)
index 0000000..9fa4e37
--- /dev/null
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- vi: set et smarttab sw=4 tabstop=4: -->
+<!--
+ Copyright (c) 2014 Cisco Systems, Inc. and others.  All rights reserved.
+
+ This program and the accompanying materials are made available under the
+ terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ and is available at http://www.eclipse.org/legal/epl-v10.html
+-->
+<features name="odl-integration-${project.version}" xmlns="http://karaf.apache.org/xmlns/features/v1.2.0"
+          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+          xsi:schemaLocation="http://karaf.apache.org/xmlns/features/v1.2.0 http://karaf.apache.org/xmlns/features/v1.2.0">
+
+    <!--
+        Concept:
+            This file is a registry of feature repos defined in the projects.
+
+            The intent is to provide a single usable index that will pull in all available features in ODL.
+
+            No features should be defined here, only <repositories> should be listed.
+
+        Directions:
+            1) Make sure your feature file is running the tests and passing them in master:
+                https://wiki.opendaylight.org/view/Karaf:Hands_On_Guide#Existing_Feature_Files
+            2) Add your <repository> below
+            3) Go to the ../pom.xml and
+                a)  Add a dependendy for your feature
+                b)  DO NOT ADD ANYTHING TO THE BOOTFEATURES.
+    -->
+
+
+    <!-- Please add new repository in an alphabetical order -->
+    <repository>mvn:org.opendaylight.aaa/features-aaa/0.2.0-SNAPSHOT/xml/features</repository>
+    <repository>mvn:org.opendaylight.aaa/features-aaa-authz/0.2.0-SNAPSHOT/xml/features</repository>
+    <repository>mvn:org.opendaylight.aaa/features-aaa-api/0.2.0-SNAPSHOT/xml/features</repository>
+    <repository>mvn:org.opendaylight.bgpcep/features-bgp/${feature.bgp.version}/xml/features</repository>
+    <repository>mvn:org.opendaylight.controller/features-adsal/${feature.adsal.version}/xml/features</repository>
+    <repository>mvn:org.opendaylight.controller/features-adsal-compatibility/1.5.0-SNAPSHOT/xml/features</repository>
+    <repository>mvn:org.opendaylight.controller/features-mdsal/${feature.mdsal.version}/xml/features</repository>
+    <repository>mvn:org.opendaylight.controller/features-netconf-connector/${feature.mdsal.version}/xml/features</repository>
+    <repository>mvn:org.opendaylight.controller/features-nsf/${feature.nsf.version}/xml/features</repository>
+    <repository>mvn:org.opendaylight.dlux/features-dlux/${feature.dlux.version}/xml/features</repository>
+    <repository>mvn:org.opendaylight.groupbasedpolicy/features-groupbasedpolicy/${feature.groupbasedpolicy.version}/xml/features</repository>
+    <repository>mvn:org.opendaylight.l2switch/features-l2switch/0.2.0-SNAPSHOT/xml/features</repository>
+    <repository>mvn:org.opendaylight.lispflowmapping/features-lispflowmapping/${feature.lispflowmapping.version}/xml/features</repository>
+    <repository>mvn:org.opendaylight.openflowplugin/features-openflowplugin/0.1.0-SNAPSHOT/xml/features</repository>
+    <repository>mvn:org.opendaylight.ovsdb/features-openflow-nxm/0.1.0-SNAPSHOT/xml/features</repository>
+    <repository>mvn:org.opendaylight.ovsdb/features-ovsdb/${feature.ovsdb.version}/xml/features</repository>
+    <repository>mvn:org.opendaylight.ovsdb/features-ovs-sfc/0.1.0-SNAPSHOT/xml/features</repository>
+    <repository>mvn:org.opendaylight.packetcable/features-packetcable/${feature.packetcable.version}/xml/features</repository>
+    <repository>mvn:org.opendaylight.plugin2oc/features-plugin2oc/0.2.0-SNAPSHOT/xml/features</repository>
+    <repository>mvn:org.opendaylight.controller/features-restconf/${feature.mdsal.version}/xml/features</repository>
+    <repository>mvn:org.opendaylight.sdninterfaceapp/features-sdninterfaceapp/1.5.0-SNAPSHOT/xml/features</repository>
+    <repository>mvn:org.opendaylight.sfc/features-sfc/0.1.0-SNAPSHOT/xml/features</repository>
+    <repository>mvn:org.opendaylight.sfc/features-sfclisp/0.1.0-SNAPSHOT/xml/features</repository>
+    <repository>mvn:org.opendaylight.sfc/features-sfcofl2/0.1.0-SNAPSHOT/xml/features</repository>
+    <repository>mvn:org.opendaylight.snbi/features-snbi/${feature.snbi.version}/xml/features</repository>
+    <repository>mvn:org.opendaylight.snmp4sdn/features-snmp4sdn/0.2.0-SNAPSHOT/xml/features</repository>
+    <repository>mvn:org.opendaylight.tcpmd5/features-tcpmd5/${feature.tcpmd5.version}/xml/features</repository>
+    <repository>mvn:org.opendaylight.ttp/features-ttp/${feature.ttp.version}/xml/features</repository>
+    <repository>mvn:org.opendaylight.vtn/features-vtn-manager/${feature.vtn-manager.version}/xml/features</repository>
+</features>
index 59f3be80319ad6e3f2386d71a6e53c15e7931ee7..18b2a6d46032f0f833c035e2e79ba685a70e4609 100644 (file)
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- vi: set et smarttab sw=4 tabstop=4: -->
 <!--
- Copyright (c) 2014 Cisco Systems, Inc. and others.  All rights reserved.
-
- This program and the accompanying materials are made available under the
- terms of the Eclipse Public License v1.0 which accompanies this distribution,
- and is available at http://www.eclipse.org/legal/epl-v10.html
+Copyright (c) 2013 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 INTERNAL
 -->
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-   <modelVersion>4.0.0</modelVersion>
-   <parent>
-      <groupId>org.opendaylight.integration</groupId>
-      <artifactId>root</artifactId>
-      <version>0.3.0-SNAPSHOT</version>
-      <relativePath>../</relativePath>
-   </parent>
-   <artifactId>features-integration</artifactId>
-   <packaging>jar</packaging>
-   <properties>
-      <features.file>features.xml</features.file>
-   </properties>
-   <dependencies>
-    <!-- dependencies on feature repos -->
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>features-mdsal</artifactId>
-      <version>${feature.mdsal.version}</version>
-      <classifier>features</classifier>
-      <type>xml</type>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>features-netconf-connector</artifactId>
-      <version>${feature.mdsal.version}</version>
-      <classifier>features</classifier>
-      <type>xml</type>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>features-restconf</artifactId>
-      <version>${feature.mdsal.version}</version>
-      <classifier>features</classifier>
-      <type>xml</type>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>features-adsal</artifactId>
-      <classifier>features</classifier>
-      <type>xml</type>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>features-nsf</artifactId>
-      <classifier>features</classifier>
-      <type>xml</type>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.ovsdb</groupId>
-      <artifactId>features-ovsdb</artifactId>
-      <classifier>features</classifier>
-      <type>xml</type>
-    </dependency>
-    <dependency>
-       <groupId>org.opendaylight.bgpcep</groupId>
-       <artifactId>features-bgp</artifactId>
-       <classifier>features</classifier>
-       <type>xml</type>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.openflowplugin</groupId>
-      <artifactId>features-openflowplugin</artifactId>
-      <version>0.1.0-SNAPSHOT</version>
-      <classifier>features</classifier>
-      <type>xml</type>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.dlux</groupId>
-      <artifactId>features-dlux</artifactId>
-      <version>${feature.dlux.version}</version>
-      <classifier>features</classifier>
-      <type>xml</type>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.ovsdb</groupId>
-      <artifactId>features-openflow-nxm</artifactId>
-      <version>0.1.0-SNAPSHOT</version>
-      <classifier>features</classifier>
-      <type>xml</type>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.l2switch</groupId>
-      <artifactId>features-l2switch</artifactId>
-      <version>0.2.0-SNAPSHOT</version>
-      <classifier>features</classifier>
-      <type>xml</type>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>features-adsal-compatibility</artifactId>
-      <version>1.5.0-SNAPSHOT</version>
-      <classifier>features</classifier>
-      <type>xml</type>
-    </dependency>
-    <!-- plugin2oc -->
-    <dependency>
-       <groupId>org.opendaylight.plugin2oc</groupId>
-       <artifactId>features-plugin2oc</artifactId>
-       <version>0.2.0-SNAPSHOT</version>
-       <classifier>features</classifier>
-       <type>xml</type>
-    </dependency>
-
-    <!-- AAA -->
-    <dependency>
-      <groupId>org.opendaylight.aaa</groupId>
-      <artifactId>features-aaa-api</artifactId>
-      <version>0.2.0-SNAPSHOT</version>
-      <classifier>features</classifier>
-      <type>xml</type>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.aaa</groupId>
-      <artifactId>features-aaa</artifactId>
-      <version>0.2.0-SNAPSHOT</version>
-      <classifier>features</classifier>
-      <type>xml</type>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.aaa</groupId>
-      <artifactId>features-aaa-authz</artifactId>
-      <version>0.2.0-SNAPSHOT</version>
-      <classifier>features</classifier>
-      <type>xml</type>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.ttp</groupId>
-      <artifactId>features-ttp</artifactId>
-      <version>${feature.ttp.version}</version>
-      <classifier>features</classifier>
-      <type>xml</type>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.lispflowmapping</groupId>
-      <artifactId>features-lispflowmapping</artifactId>
-      <version>${feature.lispflowmapping.version}</version>
-      <classifier>features</classifier>
-      <type>xml</type>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.vtn</groupId>
-      <artifactId>features-vtn-manager</artifactId>
-      <classifier>features</classifier>
-      <type>xml</type>
-    </dependency>
-    <dependency>
-      <groupId>org.opendaylight.groupbasedpolicy</groupId>
-      <artifactId>features-groupbasedpolicy</artifactId>
-      <version>${feature.groupbasedpolicy.version}</version>
-      <classifier>features</classifier>
-      <type>xml</type>
-    </dependency>
-
-    <dependency>
-      <groupId>org.opendaylight.sfc</groupId>
-      <artifactId>features-sfc</artifactId>
-      <version>0.1.0-SNAPSHOT</version>
-      <classifier>features</classifier>
-      <type>xml</type>
-    </dependency>
-
-    <dependency>
-      <groupId>org.opendaylight.sfc</groupId>
-      <artifactId>features-sfclisp</artifactId>
-      <version>0.1.0-SNAPSHOT</version>
-      <classifier>features</classifier>
-      <type>xml</type>
-    </dependency>
-
-    <dependency>
-          <groupId>org.opendaylight.sfc</groupId>
-          <artifactId>features-sfcofl2</artifactId>
-          <version>0.1.0-SNAPSHOT</version>
-          <classifier>features</classifier>
-          <type>xml</type>
-    </dependency>
-
-    <dependency>
-      <groupId>org.opendaylight.ovsdb</groupId>
-      <artifactId>features-ovs-sfc</artifactId>
-      <version>0.1.0-SNAPSHOT</version>
-      <classifier>features</classifier>
-      <type>xml</type>
-    </dependency>
-
-    <dependency>
-      <groupId>org.opendaylight.snbi</groupId>
-      <artifactId>features-snbi</artifactId>
-      <version>${feature.snbi.version}</version>
-      <classifier>features</classifier>
-      <type>xml</type>
-    </dependency>
-
-
-    <dependency>
-       <groupId>org.opendaylight.packetcable</groupId>
-       <artifactId>features-packetcable</artifactId>
-       <version>${feature.packetcable.version}</version>
-       <classifier>features</classifier>
-       <type>xml</type>
-    </dependency>
-
-    <dependency>
-      <groupId>org.opendaylight.snmp4sdn</groupId>
-      <artifactId>features-snmp4sdn</artifactId>
-      <version>0.2.0-SNAPSHOT</version>
-      <classifier>features</classifier>
-      <type>xml</type>
-    </dependency>
-   
-    <dependency>
-      <groupId>org.opendaylight.sdninterfaceapp</groupId> 
-      <artifactId>features-sdninterfaceapp</artifactId> 
-      <version>1.5.0-SNAPSHOT</version> 
-      <classifier>features</classifier> 
-      <type>xml</type> 
-    </dependency>
-
-
-    <!-- test to validate features.xml -->
-    <dependency>
-      <groupId>org.opendaylight.yangtools</groupId>
-      <artifactId>features-test</artifactId>
-      <version>0.7.0-SNAPSHOT</version>
-    </dependency>
-    <!-- dependency for opendaylight-karaf-empty for use by testing -->
-    <dependency>
-      <groupId>org.opendaylight.controller</groupId>
-      <artifactId>opendaylight-karaf-empty</artifactId>
-      <version>1.5.0-SNAPSHOT</version>
-      <type>zip</type>
-    </dependency>
-   </dependencies>
-   <build>
-      <resources>
-         <resource>
-            <directory>src/main/resources</directory>
-            <filtering>true</filtering>
-         </resource>
-      </resources>
-      <plugins>
-         <plugin>
-            <groupId>org.apache.karaf.tooling</groupId>
-            <artifactId>karaf-maven-plugin</artifactId>
-            <version>${karaf.version}</version>
-            <extensions>true</extensions>
-            <executions>
-               <execution>
-                  <id>features-create-kar</id>
-                  <goals>
-                     <goal>features-create-kar</goal>
-                  </goals>
-                  <configuration>
-                     <featuresFile>${project.build.directory}/classes/${features.file}</featuresFile>
-                  </configuration>
-               </execution>
-            </executions>
-        <!-- There is no useful configuration for the kar mojo. The features-generate-descriptor mojo configuration may be useful -->
-         </plugin>
-         <plugin>
-            <groupId>org.apache.maven.plugins</groupId>
-            <artifactId>maven-resources-plugin</artifactId>
-            <executions>
-               <execution>
-                  <id>filter</id>
-                  <phase>generate-resources</phase>
-                  <goals>
-                     <goal>resources</goal>
-                  </goals>
-               </execution>
-            </executions>
-         </plugin>
-         <plugin>
-            <groupId>org.codehaus.mojo</groupId>
-            <artifactId>build-helper-maven-plugin</artifactId>
-            <executions>
-               <execution>
-                  <id>attach-artifacts</id>
-                  <phase>package</phase>
-                  <goals>
-                     <goal>attach-artifact</goal>
-                  </goals>
-                  <configuration>
-                     <artifacts>
-                        <artifact>
-                           <file>${project.build.directory}/classes/${features.file}</file>
-                           <type>xml</type>
-                           <classifier>features</classifier>
-                        </artifact>
-                     </artifacts>
-                  </configuration>
-               </execution>
-            </executions>
-         </plugin>
-         <plugin>
-            <groupId>org.apache.maven.plugins</groupId>
-            <artifactId>maven-surefire-plugin</artifactId>
-            <version>2.16</version>
-            <configuration>
-              <systemPropertyVariables>
-                <karaf.distro.groupId>org.opendaylight.controller</karaf.distro.groupId>
-                <karaf.distro.artifactId>opendaylight-karaf-empty</karaf.distro.artifactId>
-                <karaf.distro.version>1.5.0-SNAPSHOT</karaf.distro.version>
-              </systemPropertyVariables>
-              <dependenciesToScan>
-               <dependency>org.opendaylight.yangtools:features-test</dependency>
-              </dependenciesToScan>
-            </configuration>
-          </plugin>
-      </plugins>
-   </build>
+  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+  <parent>
+    <groupId>org.opendaylight.integration</groupId>
+    <artifactId>root</artifactId>
+    <version>0.3.0-SNAPSHOT</version>
+    <relativePath>../</relativePath>
+  </parent>
+  <artifactId>features-integration-aggregator</artifactId>
+  <name>${project.artifactId}</name>
+  <packaging>pom</packaging>
+  <modelVersion>4.0.0</modelVersion>
+  <prerequisites>
+    <maven>3.1.1</maven>
+  </prerequisites>
+  <modules>
+    <module>index</module>
+    <module>test</module>
+  </modules>
 </project>
diff --git a/features/src/main/resources/features.xml b/features/src/main/resources/features.xml
deleted file mode 100644 (file)
index f38e593..0000000
+++ /dev/null
@@ -1,170 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- vi: set et smarttab sw=4 tabstop=4: -->
-<!--
- Copyright (c) 2014 Cisco Systems, Inc. and others.  All rights reserved.
-
- This program and the accompanying materials are made available under the
- terms of the Eclipse Public License v1.0 which accompanies this distribution,
- and is available at http://www.eclipse.org/legal/epl-v10.html
--->
-<features name="odl-integration-${project.version}" xmlns="http://karaf.apache.org/xmlns/features/v1.2.0"
-          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-          xsi:schemaLocation="http://karaf.apache.org/xmlns/features/v1.2.0 http://karaf.apache.org/xmlns/features/v1.2.0">
-
-    <!--
-        Concept:
-            This file is a registry of features defined in the projects.
-
-            The intent is to capture high level (not low level features).  This means a project
-            may have features that are not listed here.  That is fine.  Only the stuff you think
-            end users would want to install should be indexed here.
-
-            There are two kinds of features defined here:
-
-            odl-integration-compatible-with-all - to list high level features that don't have compatibility
-                issues
-
-            odl-integration-compatible-with-<something less than all> - to list high level features
-                that have compatibility issues with some other features.  These features should
-                always include odl-integration-compatible-with-all
-
-        Directions:
-            1) Make sure your feature file is running the tests and passing them in master:
-                https://wiki.opendaylight.org/view/Karaf:Hands_On_Guide#Existing_Feature_Files
-            2) Add your <repository> below
-            3) If and ONLY if your top level feature is compatible with everything, add it to
-                odl-integration-compatible-with-all
-            4) If and ONLY if your top level feature is incompatible with other things,
-                a)  Add it to any odl-integration-compatible-with-<...> features it works with.
-                b) If and ONLY if it is incompatible with all existing odl-integration-compatible-with-<...>
-                    features, create a feature
-                    odl-integration-compatible-with-<feature>
-                c) Include odl-integration-compatible-with-all in your new feature
-                d) Include any top level features in your feature
-                e) This is *only* for handling incompatibilities.  Your features should
-                    be defined in your project, not here.
-            5) Go to the ../pom.xml and
-                a)  Add a dependendy for your feature
-                b)  DO NOT ADD ANYTHING TO THE BOOTFEATURES.
-    -->
-
-    
-    <!-- Please add new repository in an alphabetical order -->
-    <repository>mvn:org.opendaylight.aaa/features-aaa/0.2.0-SNAPSHOT/xml/features</repository>
-    <repository>mvn:org.opendaylight.aaa/features-aaa-authz/0.2.0-SNAPSHOT/xml/features</repository>
-    <repository>mvn:org.opendaylight.aaa/features-aaa-api/0.2.0-SNAPSHOT/xml/features</repository>
-    <repository>mvn:org.opendaylight.bgpcep/features-bgp/${feature.bgp.version}/xml/features</repository>
-    <repository>mvn:org.opendaylight.controller/features-adsal/${feature.adsal.version}/xml/features</repository>
-    <repository>mvn:org.opendaylight.controller/features-adsal-compatibility/1.5.0-SNAPSHOT/xml/features</repository>
-    <repository>mvn:org.opendaylight.controller/features-mdsal/${feature.mdsal.version}/xml/features</repository>
-    <repository>mvn:org.opendaylight.controller/features-netconf-connector/${feature.mdsal.version}/xml/features</repository>
-    <repository>mvn:org.opendaylight.controller/features-nsf/${feature.nsf.version}/xml/features</repository>
-    <repository>mvn:org.opendaylight.dlux/features-dlux/${feature.dlux.version}/xml/features</repository>
-    <repository>mvn:org.opendaylight.groupbasedpolicy/features-groupbasedpolicy/${feature.groupbasedpolicy.version}/xml/features</repository>
-    <repository>mvn:org.opendaylight.l2switch/features-l2switch/0.2.0-SNAPSHOT/xml/features</repository>
-    <repository>mvn:org.opendaylight.lispflowmapping/features-lispflowmapping/${feature.lispflowmapping.version}/xml/features</repository>
-    <repository>mvn:org.opendaylight.openflowplugin/features-openflowplugin/0.1.0-SNAPSHOT/xml/features</repository>
-    <repository>mvn:org.opendaylight.ovsdb/features-openflow-nxm/0.1.0-SNAPSHOT/xml/features</repository>
-    <repository>mvn:org.opendaylight.ovsdb/features-ovsdb/${feature.ovsdb.version}/xml/features</repository>
-    <repository>mvn:org.opendaylight.ovsdb/features-ovs-sfc/0.1.0-SNAPSHOT/xml/features</repository>
-    <repository>mvn:org.opendaylight.packetcable/features-packetcable/${feature.packetcable.version}/xml/features</repository>
-    <repository>mvn:org.opendaylight.plugin2oc/features-plugin2oc/0.2.0-SNAPSHOT/xml/features</repository>
-    <repository>mvn:org.opendaylight.controller/features-restconf/${feature.mdsal.version}/xml/features</repository>
-    <repository>mvn:org.opendaylight.sdninterfaceapp/features-sdninterfaceapp/1.5.0-SNAPSHOT/xml/features</repository>
-    <repository>mvn:org.opendaylight.sfc/features-sfc/0.1.0-SNAPSHOT/xml/features</repository>
-    <repository>mvn:org.opendaylight.sfc/features-sfclisp/0.1.0-SNAPSHOT/xml/features</repository>
-    <repository>mvn:org.opendaylight.sfc/features-sfcofl2/0.1.0-SNAPSHOT/xml/features</repository>
-    <repository>mvn:org.opendaylight.snbi/features-snbi/${feature.snbi.version}/xml/features</repository>
-    <repository>mvn:org.opendaylight.snmp4sdn/features-snmp4sdn/0.2.0-SNAPSHOT/xml/features</repository>
-    <repository>mvn:org.opendaylight.tcpmd5/features-tcpmd5/${feature.tcpmd5.version}/xml/features</repository>
-    <repository>mvn:org.opendaylight.ttp/features-ttp/${feature.ttp.version}/xml/features</repository>
-    <repository>mvn:org.opendaylight.vtn/features-vtn-manager/${feature.vtn-manager.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}'>
-        <feature version='0.2.0-SNAPSHOT'>odl-aaa-api</feature>
-        <feature version='0.2.0-SNAPSHOT'>odl-aaa-authn</feature>
-        <feature version='0.2.0-SNAPSHOT'>odl-aaa-authz</feature>
-        <feature version='0.2.0-SNAPSHOT'>odl-aaa-sssd-plugin</feature>
-        <feature version='0.2.0-SNAPSHOT'>odl-aaa-netconf-plugin</feature>
-        <feature version='${feature.adsal.version}'>odl-adsal-all</feature>
-        <feature version='${feature.adsal.version}'>odl-adsal-compatibility</feature>
-        <feature version='${feature.bgp.version}'>odl-bgpcep-all</feature>
-        <feature version='${feature.dlux.version}'>odl-dlux-core</feature>
-        <feature version='${feature.lispflowmapping.version}'>odl-lispflowmapping-all</feature>
-        <feature version='1.2.0-SNAPSHOT'>odl-mdsal-broker</feature>
-        <feature version='${feature.mdsal.version}'>odl-netconf-connector-ssh</feature>
-        <feature version='${feature.nsf.version}'>odl-nsf-all</feature>
-        <feature version='0.1.0-SNAPSHOT'>odl-openflow-nxm-extensions</feature>
-        <feature version='0.6.0-SNAPSHOT'>odl-openflowjava-protocol</feature>
-        <feature version='0.1.0-SNAPSHOT'>odl-openflowplugin-flow-services</feature>
-        <feature version='0.1.0-SNAPSHOT'>odl-openflowplugin-flow-services-rest</feature>
-        <feature version='0.1.0-SNAPSHOT'>odl-openflowplugin-flow-services-ui</feature>
-        <feature version='${feature.ovsdb.version}'>odl-ovsdb-all</feature>
-        <feature version='${feature.packetcable.version}'>odl-packetcable-all</feature>
-        <feature version="1.5.0-SNAPSHOT">odl-sdninterfaceapp-all</feature>
-        <feature version='1.2.0-SNAPSHOT'>odl-restconf</feature>
-        <feature version='0.1.0-SNAPSHOT'>odl-sfc-all</feature>
-        <feature version='0.1.0-SNAPSHOT'>odl-sfclisp</feature>
-        <feature version='0.1.0-SNAPSHOT'>odl-sfcofl2</feature>
-        <feature version='${feature.snbi.version}'>odl-snbi-all</feature>
-        <feature version='${feature.ttp.version}'>odl-ttp-all</feature>
-        <feature version='0.2.0-SNAPSHOT'>odl-snmp4sdn-all</feature>
-        <feature version='${feature.tcpmd5.version}'>odl-tcpmd5-all</feature>
-    </feature>
-
-    <!-- Please use aphabetical order for non-compatible features -->
-    <!-- Since Group Based Policy is not compatible with other flow programming apps,
-         and not compatible with other openstack apps,
-         it is appropriate to create compatible feature for Group Based Policy. -->
-        <feature name='odl-integration-compatible-with-groupbasedpolicy' version='${project.version}'>
-            <feature version='${feature.groupbasedpolicy.version}'>odl-groupbasedpolicy-ofoverlay</feature>
-            <feature version='${project.version}'>odl-integration-compatible-with-all</feature>
-        </feature>
-
-    <!--
-        * Reason why l2switch has compatibility issues with others:
-            l2switch simply provides a simple l2switch among all ports
-            this is great for seeing basic functionality like pingall,
-            but doesn't interact well with other flow programming apps
-            at this time
-    -->
-        <feature name='odl-integration-compatible-with-l2switch' version='${project.version}'>
-            <feature version='${project.version}'>odl-integration-compatible-with-all</feature>
-            <feature version='0.2.0-SNAPSHOT'>odl-l2switch-switch</feature>
-            <feature version='0.2.0-SNAPSHOT'>odl-l2switch-switch-rest</feature>
-            <feature version='0.2.0-SNAPSHOT'>odl-l2switch-switch-ui</feature>
-        </feature>
-
-    <!--  plugin2oc Policy is not compatible with other flow programming apps,
-          it is appropriate to create compatible feature for plugin2oc.
-    -->
-        <feature name='odl-integration-compatible-with-plugin2oc' description="OpenDaylight :: plugin2oc :: SouthBound Plugin to the OpenContrail Platform" version='0.2.0-SNAPSHOT'>
-            <feature version='${project.version}'>odl-integration-compatible-with-all</feature>
-            <feature version='0.2.0-SNAPSHOT'>odl-plugin2oc</feature>
-        </feature>
-
-    <!--
-          Since ODL supports a few Incompatible Openstack integration such as ovs-openstack and vtn-openstack,
-          it is appropriate to create compatible feature for each of the incompatible openstack approaches.
-    -->
-        <feature name='odl-integration-compatible-with-ovs-openstack' description="OpenDaylight :: OVS :: OpenStack Network Virtualization" version='${project.version}'>
-            <feature version='${project.version}'>odl-integration-compatible-with-all</feature>
-            <feature version='${feature.ovsdb.openstack.version}'>odl-ovsdb-openstack</feature>
-        </feature>
-
-    <!-- TODO (add description here for SFC) -->
-        <feature name='odl-integration-compatible-with-ovs-sfc' description="OpenDaylight :: OVS :: Service Function Chaining" version='${project.version}'>
-            <feature version='${project.version}'>odl-integration-compatible-with-all</feature>
-            <feature version='0.1.0-SNAPSHOT'>odl-ovsdb-ovssfc</feature>
-        </feature>
-
-    <!-- Since VTN Manager is not compatible with other flow programming apps,
-         and not compatible with other openstack apps,
-         it is appropriate to create compatible feature for VTN Manager. -->
-    <feature name='odl-integration-compatible-with-vtn-manager' version='${project.version}'>
-        <feature version='${project.version}'>odl-integration-compatible-with-all</feature>
-        <feature version='${feature.vtn-manager.version}'>odl-vtn-manager-all</feature>
-    </feature>
-
-</features>
diff --git a/features/test/pom.xml b/features/test/pom.xml
new file mode 100644 (file)
index 0000000..d4d0d7c
--- /dev/null
@@ -0,0 +1,126 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- vi: set et smarttab sw=4 tabstop=4: -->
+<!--
+ Copyright (c) 2014 Cisco Systems, Inc. and others.  All rights reserved.
+
+ This program and the accompanying materials are made available under the
+ terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ and is available at http://www.eclipse.org/legal/epl-v10.html
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+   <modelVersion>4.0.0</modelVersion>
+   <parent>
+      <groupId>org.opendaylight.integration</groupId>
+      <artifactId>root</artifactId>
+      <version>0.3.0-SNAPSHOT</version>
+      <relativePath>../../</relativePath>
+   </parent>
+   <artifactId>features-integration-test</artifactId>
+   <packaging>jar</packaging>
+   <properties>
+      <features.file>features.xml</features.file>
+   </properties>
+   <dependencies>
+    <!-- dependencies on feature repos -->
+    <dependency>
+      <groupId>org.opendaylight.integration</groupId>
+      <artifactId>features-integration-index</artifactId>
+      <version>${project.version}</version>
+      <classifier>features</classifier>
+      <type>xml</type>
+    </dependency>
+
+    <!-- test to validate features.xml -->
+    <dependency>
+      <groupId>org.opendaylight.yangtools</groupId>
+      <artifactId>features-test</artifactId>
+      <version>0.7.0-SNAPSHOT</version>
+    </dependency>
+    <!-- dependency for opendaylight-karaf-empty for use by testing -->
+    <dependency>
+      <groupId>org.opendaylight.controller</groupId>
+      <artifactId>opendaylight-karaf-empty</artifactId>
+      <version>1.5.0-SNAPSHOT</version>
+      <type>zip</type>
+    </dependency>
+   </dependencies>
+   <build>
+      <resources>
+         <resource>
+            <directory>src/main/resources</directory>
+            <filtering>true</filtering>
+         </resource>
+      </resources>
+      <plugins>
+         <plugin>
+            <groupId>org.apache.karaf.tooling</groupId>
+            <artifactId>karaf-maven-plugin</artifactId>
+            <version>${karaf.version}</version>
+            <extensions>true</extensions>
+            <executions>
+               <execution>
+                  <id>features-create-kar</id>
+                  <goals>
+                     <goal>features-create-kar</goal>
+                  </goals>
+                  <configuration>
+                     <featuresFile>${project.build.directory}/classes/${features.file}</featuresFile>
+                  </configuration>
+               </execution>
+            </executions>
+        <!-- There is no useful configuration for the kar mojo. The features-generate-descriptor mojo configuration may be useful -->
+         </plugin>
+         <plugin>
+            <groupId>org.apache.maven.plugins</groupId>
+            <artifactId>maven-resources-plugin</artifactId>
+            <executions>
+               <execution>
+                  <id>filter</id>
+                  <phase>generate-resources</phase>
+                  <goals>
+                     <goal>resources</goal>
+                  </goals>
+               </execution>
+            </executions>
+         </plugin>
+         <plugin>
+            <groupId>org.codehaus.mojo</groupId>
+            <artifactId>build-helper-maven-plugin</artifactId>
+            <executions>
+               <execution>
+                  <id>attach-artifacts</id>
+                  <phase>package</phase>
+                  <goals>
+                     <goal>attach-artifact</goal>
+                  </goals>
+                  <configuration>
+                     <artifacts>
+                        <artifact>
+                           <file>${project.build.directory}/classes/${features.file}</file>
+                           <type>xml</type>
+                           <classifier>features</classifier>
+                        </artifact>
+                     </artifacts>
+                  </configuration>
+               </execution>
+            </executions>
+         </plugin>
+         <plugin>
+            <groupId>org.apache.maven.plugins</groupId>
+            <artifactId>maven-surefire-plugin</artifactId>
+            <version>2.16</version>
+            <configuration>
+              <systemPropertyVariables>
+                <karaf.distro.groupId>org.opendaylight.controller</karaf.distro.groupId>
+                <karaf.distro.artifactId>opendaylight-karaf-empty</karaf.distro.artifactId>
+                <karaf.distro.version>1.5.0-SNAPSHOT</karaf.distro.version>
+              </systemPropertyVariables>
+              <dependenciesToScan>
+               <dependency>org.opendaylight.yangtools:features-test</dependency>
+              </dependenciesToScan>
+            </configuration>
+          </plugin>
+      </plugins>
+   </build>
+</project>
diff --git a/features/test/src/main/resources/features.xml b/features/test/src/main/resources/features.xml
new file mode 100644 (file)
index 0000000..958884b
--- /dev/null
@@ -0,0 +1,104 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- vi: set et smarttab sw=4 tabstop=4: -->
+<!--
+ Copyright (c) 2014 Cisco Systems, Inc. and others.  All rights reserved.
+
+ This program and the accompanying materials are made available under the
+ terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ and is available at http://www.eclipse.org/legal/epl-v10.html
+-->
+<features name="odl-integration-${project.version}" xmlns="http://karaf.apache.org/xmlns/features/v1.2.0"
+          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+          xsi:schemaLocation="http://karaf.apache.org/xmlns/features/v1.2.0 http://karaf.apache.org/xmlns/features/v1.2.0">
+
+    <!--
+        Concept:
+            This file is a registry of features defined in the projects for use in integration testing.
+
+            The intent is to capture high level (not low level features).  This means a project
+            may have features that are not listed here.  That is fine.  Only the stuff you think
+            end users would want to install should be indexed here.
+
+            There are two kinds of features defined here:
+
+            odl-integration-compatible-with-all - to list high level features that don't have compatibility
+                issues
+
+            odl-integration-all - to list all features available in OpenDaylighthigh level features
+                that have compatibility issues with some other features.  This feature includes
+                odl-integration-compatible-with-all
+
+        Directions:
+            1) Make sure your feature file is running the tests and passing them in master:
+                https://wiki.opendaylight.org/view/Karaf:Hands_On_Guide#Existing_Feature_Files
+            2) Add your <repository> to integration/features/index/src/main/resources/features.xml
+            3) If and ONLY if your top level feature is compatible with everything, add it to
+                odl-integration-compatible-with-all
+            4) If and ONLY if your top level feature is incompatible with other things, add it to
+                odl-integration-all
+            5) Go to the ../pom.xml and
+                a)  Add a dependendy for your feature
+                b)  DO NOT ADD ANYTHING TO THE BOOTFEATURES.
+
+            Important note: None of the features defined in this file will be in the integration/karaf build by default
+                            because that is what we ship, and test features should not by default ship.
+                            Please be aware that the features pulled in via features-integration-repo from the projects
+                            *will* be.  Its only these aggregating test features that will be missing.
+                            If you need to have these test features defined in this file (for example if you are doing
+                            integration testing) then:
+                            cd integration/distributions/karaf
+                            perl -i -pe "s/features-integration-index/features-integration-test/" target/assembly/etc/org.apache.karaf.features.cfg
+                            and they will be present and availble
+    -->
+    <!-- The features-integration-index should be the one and only repository in this file.
+        If you think another repository is needed, please add it to integration/features/index/src/main/resource/features.xml
+    -->
+    <repository>mvn:org.opendaylight.integration/features-integration-index/${project.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}'>
+        <feature version='0.2.0-SNAPSHOT'>odl-aaa-api</feature>
+        <feature version='0.2.0-SNAPSHOT'>odl-aaa-authn</feature>
+        <feature version='0.2.0-SNAPSHOT'>odl-aaa-authz</feature>
+        <feature version='0.2.0-SNAPSHOT'>odl-aaa-sssd-plugin</feature>
+        <feature version='0.2.0-SNAPSHOT'>odl-aaa-netconf-plugin</feature>
+        <feature version='${feature.adsal.version}'>odl-adsal-all</feature>
+        <feature version='${feature.adsal.version}'>odl-adsal-compatibility</feature>
+        <feature version='${feature.bgp.version}'>odl-bgpcep-all</feature>
+        <feature version='${feature.dlux.version}'>odl-dlux-core</feature>
+        <feature version='${feature.lispflowmapping.version}'>odl-lispflowmapping-all</feature>
+        <feature version='1.2.0-SNAPSHOT'>odl-mdsal-broker</feature>
+        <feature version='${feature.mdsal.version}'>odl-netconf-connector-ssh</feature>
+        <feature version='${feature.nsf.version}'>odl-nsf-all</feature>
+        <feature version='0.1.0-SNAPSHOT'>odl-openflow-nxm-extensions</feature>
+        <feature version='0.6.0-SNAPSHOT'>odl-openflowjava-protocol</feature>
+        <feature version='0.1.0-SNAPSHOT'>odl-openflowplugin-flow-services</feature>
+        <feature version='0.1.0-SNAPSHOT'>odl-openflowplugin-flow-services-rest</feature>
+        <feature version='0.1.0-SNAPSHOT'>odl-openflowplugin-flow-services-ui</feature>
+        <feature version='${feature.ovsdb.version}'>odl-ovsdb-all</feature>
+        <feature version='${feature.packetcable.version}'>odl-packetcable-all</feature>
+        <feature version="1.5.0-SNAPSHOT">odl-sdninterfaceapp-all</feature>
+        <feature version='1.2.0-SNAPSHOT'>odl-restconf</feature>
+        <feature version='0.1.0-SNAPSHOT'>odl-sfc-all</feature>
+        <feature version='0.1.0-SNAPSHOT'>odl-sfclisp</feature>
+        <feature version='0.1.0-SNAPSHOT'>odl-sfcofl2</feature>
+        <feature version='${feature.snbi.version}'>odl-snbi-all</feature>
+        <feature version='${feature.ttp.version}'>odl-ttp-all</feature>
+        <feature version='0.2.0-SNAPSHOT'>odl-snmp4sdn-all</feature>
+        <feature version='${feature.tcpmd5.version}'>odl-tcpmd5-all</feature>
+    </feature>
+
+    <!-- Please use aphabetical order for non-compatible features -->
+    <feature name='odl-integration-all' version='${project.version}'>
+         <feature version='${feature.groupbasedpolicy.version}'>odl-groupbasedpolicy-ofoverlay</feature>
+         <feature version='${project.version}'>odl-integration-compatible-with-all</feature>
+         <feature version='0.2.0-SNAPSHOT'>odl-l2switch-switch</feature>
+         <feature version='0.2.0-SNAPSHOT'>odl-l2switch-switch-rest</feature>
+         <feature version='0.2.0-SNAPSHOT'>odl-l2switch-switch-ui</feature>
+         <feature version='0.2.0-SNAPSHOT'>odl-plugin2oc</feature>
+         <feature version='${feature.ovsdb.openstack.version}'>odl-ovsdb-openstack</feature>
+        <feature version='0.1.0-SNAPSHOT'>odl-ovsdb-ovssfc</feature>
+        <feature version='${feature.vtn-manager.version}'>odl-vtn-manager-all</feature>
+    </feature>
+
+</features>