Pull in com.typesafe:config from odlparent 52/31352/5
authorStephen Kitt <skitt@redhat.com>
Tue, 15 Dec 2015 14:43:27 +0000 (15:43 +0100)
committerGerrit Code Review <gerrit@opendaylight.org>
Mon, 28 Dec 2015 21:48:40 +0000 (21:48 +0000)
Along with an equivalent patch to netconf (forthcoming), this will
ensure the versions of com.typesafe:config are the same in both
projects, avoiding issues loading Karaf features in some cases
(e.g. odl-restconf-all from the netconf distribution).

This involves migrating features-akka to features-parent, which
requires support for extended version specifiers in odlparent
(I5033fae1ea13a31b1f2e3b97806829fe086e5f92). commons.odlparent is used
as an artifact POM to avoid having to duplicate properties, without
embarking on a whole-sale property clean-up (yet).

Change-Id: Ie557c8cb1634552acdf4762a5fe13a902a0ce8c2
Signed-off-by: Stephen Kitt <skitt@redhat.com>
features/akka/pom.xml
features/akka/src/main/features/features.xml [moved from features/akka/src/main/resources/features.xml with 51% similarity]
opendaylight/commons/opendaylight/pom.xml

index 84e743f..7f8d2ef 100644 (file)
  This program and the accompanying materials are made available under the
  terms of the Eclipse Public License v1.0 which accompanies this distribution,
  and is available at http://www.eclipse.org/legal/epl-v10.html
---><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
-    <groupId>org.opendaylight.controller</groupId>
-    <artifactId>commons.opendaylight</artifactId>
+    <groupId>org.opendaylight.odlparent</groupId>
+    <artifactId>features-parent</artifactId>
     <version>1.6.0-SNAPSHOT</version>
-    <relativePath>../../opendaylight/commons/opendaylight</relativePath>
+    <relativePath/>
    </parent>
    <artifactId>features-akka</artifactId>
    <groupId>org.opendaylight.controller</groupId>
-   <packaging>jar</packaging>
+   <version>1.6.0-SNAPSHOT</version>
+   <packaging>pom</packaging>
    <properties>
       <features.file>features.xml</features.file>
-      <!-- Optional TODO: Move these properties to your parent pom and possibly
-            DependencyManagement section of your parent pom -->
       <branding.version>1.2.0-SNAPSHOT</branding.version>
       <karaf.resources.version>1.6.0-SNAPSHOT</karaf.resources.version>
       <feature.test.version>0.8.0-SNAPSHOT</feature.test.version>
       <karaf.empty.version>1.6.0-SNAPSHOT</karaf.empty.version>
       <surefire.version>2.16</surefire.version>
+      <akka.version>2.3.14</akka.version>
+      <scala.version>2.10</scala.version>
    </properties>
+    <dependencyManagement>
+        <dependencies>
+            <dependency>
+                <groupId>org.opendaylight.controller</groupId>
+                <artifactId>commons.opendaylight</artifactId>
+                <version>1.6.0-SNAPSHOT</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
    <dependencies>
-    <!--
-      Necessary TODO: Put dependencies on any feature repos
-      you use in your features.xml file.
-
-      Note: they will need to be <type>xml</xml>
-      and <classifier>features</classifier>.
-      One other thing to watch for is to make sure they are
-      <scope>compile</compile>, which they should be by default,
-      but be cautious lest they be at a different scope in a parent pom.
-
-      Examples:
-        <dependency>
-          <groupId>org.opendaylight.yangtools</groupId>
-          <artifactId>features-yangtools</artifactId>
-          <version>0.8.0-SNAPSHOT</version>
-          <classifier>features</classifier>
-          <type>xml</type>
-        </dependency>
-        <dependency>
-          <groupId>org.opendaylight.controller</groupId>
-          <artifactId>features-mdsal</artifactId>
-          <version>1.3.0-SNAPSHOT</version>
-          <classifier>features</classifier>
-          <type>xml</type>
-        </dependency>
-        <dependency>
-          <groupId>org.opendaylight.openflowplugin</groupId>
-          <artifactId>features-openflowplugin</artifactId>
-          <version>0.2.0-SNAPSHOT</version>
-          <classifier>features</classifier>
-          <type>xml</type>
-        </dependency>
-    -->
-
-    <!--
-      Necessary TODO: Put dependencies for bundles directly referenced
-      in your features.xml file.  For every <bundle> reference in your
-      features.xml file, you need a corresponding dependency here.
-
-      Examples:
-      <dependency>
-        <groupId>org.opendaylight.controller</groupId>
-        <artifactId>controller-provider</artifactId>
-        <version>${project.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>org.opendaylight.controller</groupId>
-        <artifactId>controller-model</artifactId>
-        <version>${project.version}</version>
-      </dependency>
-    -->
-
-    <!--
-      Necessary TODO: Put dependencies for configfiles directly referenced
-      in your features.xml file.  For every <configfile> reference in your
-      features.xml file, you need a corresponding dependency here.
-
-      Example (presuming here version is coming from the parent pom):
-      <dependency>
-        <groupId>org.opendaylight.controller</groupId>
-        <artifactId>controller-config</artifactId>
-        <version>${project.version}</version>
-        <type>xml</type>
-        <classifier>config</classifier>
-      </dependency>
-    -->
     <dependency>
       <groupId>org.scala-lang</groupId>
       <artifactId>scala-library</artifactId>
-      <version>${scala.version}.${scala.micro.version}</version>
     </dependency>
     <dependency>
       <groupId>org.scala-lang</groupId>
       <artifactId>scala-reflect</artifactId>
-      <version>${scala.version}.${scala.micro.version}</version>
     </dependency>
     <dependency>
       <groupId>com.typesafe</groupId>
       <artifactId>config</artifactId>
-      <version>${typesafe.config.version}</version>
     </dependency>
     <dependency>
       <groupId>com.typesafe.akka</groupId>
       <artifactId>akka-actor_${scala.version}</artifactId>
-      <version>${akka.version}</version>
     </dependency>
     <dependency>
       <groupId>com.typesafe.akka</groupId>
       <artifactId>akka-slf4j_${scala.version}</artifactId>
-      <version>${akka.version}</version>
     </dependency>
     <dependency>
       <groupId>com.typesafe.akka</groupId>
       <artifactId>akka-osgi_${scala.version}</artifactId>
-      <version>${akka.version}</version>
     </dependency>
     <dependency>
         <groupId>org.uncommons.maths</groupId>
         <artifactId>uncommons-maths</artifactId>
-        <version>${uncommons.maths.version}</version>
         <exclusions>
             <exclusion>
                 <groupId>jfree</groupId>
     <dependency>
       <groupId>com.google.protobuf</groupId>
       <artifactId>protobuf-java</artifactId>
-      <version>${protobuf.version}</version>
     </dependency>
     <dependency>
       <groupId>io.netty</groupId>
     <dependency>
       <groupId>com.typesafe.akka</groupId>
       <artifactId>akka-remote_${scala.version}</artifactId>
-      <version>${akka.version}</version>
     </dependency>
     <dependency>
       <groupId>com.typesafe.akka</groupId>
       <artifactId>akka-cluster_${scala.version}</artifactId>
-      <version>${akka.version}</version>
     </dependency>
     <dependency>
       <groupId>org.iq80.leveldb</groupId>
       <artifactId>leveldb</artifactId>
-      <version>${leveldb.version}</version>
     </dependency>
     <dependency>
       <groupId>org.fusesource.leveldbjni</groupId>
       <artifactId>leveldbjni-all</artifactId>
-      <version>${leveldbjni.version}</version>
     </dependency>
-    <!--
-      Optional TODO: Remove TODO comments.
-    -->
     <!-- test to validate features.xml -->
     <dependency>
       <groupId>org.opendaylight.odlparent</groupId>
     -->
 
    </dependencies>
-   <build>
-      <resources>
-         <resource>
-            <directory>src/main/resources</directory>
-            <filtering>true</filtering>
-         </resource>
-      </resources>
-      <plugins>
-         <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>${surefire.version}</version>
-            <configuration>
-              <systemPropertyVariables>
-                <karaf.distro.groupId>org.opendaylight.controller</karaf.distro.groupId>
-                <karaf.distro.artifactId>opendaylight-karaf-empty</karaf.distro.artifactId>
-                <karaf.distro.version>${karaf.empty.version}</karaf.distro.version>
-              </systemPropertyVariables>
-              <dependenciesToScan>
-               <dependency>org.opendaylight.odlparent:features-test</dependency>
-              </dependenciesToScan>
-            </configuration>
-          </plugin>
-      </plugins>
-   </build>
    <scm>
       <connection>scm:git:http://git.opendaylight.org/gerrit/controller.git</connection>
       <developerConnection>scm:git:ssh://git.opendaylight.org:29418/controller.git</developerConnection>
similarity index 51%
rename from features/akka/src/main/resources/features.xml
rename to features/akka/src/main/features/features.xml
index 6a9b588..f0f004e 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!-- vi: set et smarttab sw=4 tabstop=4: -->
 <!--
- Necessary TODO: Put your copyright statement here
+ Copyright (c) 2014, 2015 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,
 <features name="odl-controller-${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">
-    <!--
-        Necessary TODO: Please read the features guidelines:
-        https://wiki.opendaylight.org/view/Runtime:Karaf_Features_Guidelines#Feature_Best_Practices
-    -->
     <feature name='odl-akka-all' version='${project.version}' description='OpenDaylight :: Akka :: All'>
-        <!--
-            Necessary TODO:
-            List all of the user consumable features you define in this feature file here.
-            Generally you would *not* list individual bundles here, but only features defined in *this* file.
-            It is useful to list them in the same order they occur in the file.
-
-            Examples:
-            <feature version='${project.version}'>odl-controller-provider</feature>
-            <feature version='${project.version}'>odl-controller-model</feature>
-        -->
         <feature version="${scala.version}">odl-akka-scala</feature>
         <feature version="${akka.version}">odl-akka-system</feature>
         <feature version="${akka.version}">odl-akka-clustering</feature>
         <feature version='0.7'>odl-akka-leveldb</feature>
         <feature version="${akka.version}">odl-akka-persistence</feature>
     </feature>
-    <!--
-        Necessary TODO: Define your features.  It is useful to list then in order of dependency.  So if A depends on B, list A first.
-        When naming your features please be mindful of the guidelines:
-            https://wiki.opendaylight.org/view/Runtime:Karaf_Features_Guidelines
-        Particularly:
-            a) Prefixing names with 'odl-': https://wiki.opendaylight.org/view/Runtime:Karaf_Features_Guidelines#Feature_Naming
-            b) Descriptions: https://wiki.opendaylight.org/view/Runtime:Karaf_Features_Guidelines#Description
-            c) Avoid start-levels: https://wiki.opendaylight.org/view/Runtime:Karaf_Features_Guidelines#Avoid_start-levels
-    -->
     <feature name="odl-akka-scala" description="Scala Runtime for OpenDaylight" version="${scala.version}">
-        <bundle>mvn:org.scala-lang/scala-library/${scala.version}.${scala.micro.version}</bundle>
-        <bundle>mvn:org.scala-lang/scala-reflect/${scala.version}.${scala.micro.version}</bundle>
+        <bundle>mvn:org.scala-lang/scala-library/{{VERSION}}</bundle>
+        <bundle>mvn:org.scala-lang/scala-reflect/{{VERSION}}</bundle>
     </feature>
     <feature name="odl-akka-system" description="Akka Actor Framework System Bundles" version="${akka.version}">
         <feature version="${scala.version}">odl-akka-scala</feature>
-        <bundle>mvn:com.typesafe/config/${typesafe.config.version}</bundle>
+        <bundle>mvn:com.typesafe/config/{{VERSION}}</bundle>
         <bundle>mvn:com.typesafe.akka/akka-actor_${scala.version}/${akka.version}</bundle>
         <bundle>mvn:com.typesafe.akka/akka-slf4j_${scala.version}/${akka.version}</bundle>
         <bundle>mvn:com.typesafe.akka/akka-osgi_${scala.version}/${akka.version}</bundle>
     </feature>
     <feature name="odl-akka-clustering" description="Akka Clustering" version="${akka.version}">
         <feature version="${akka.version}">odl-akka-system</feature>
-        <bundle>wrap:mvn:org.uncommons.maths/uncommons-maths/${uncommons.maths.version}</bundle>
-        <bundle>mvn:com.google.protobuf/protobuf-java/${protobuf.version}</bundle>
-        <bundle>mvn:io.netty/netty/3.8.0.Final</bundle>
+        <bundle>wrap:mvn:org.uncommons.maths/uncommons-maths/{{VERSION}}</bundle>
+        <bundle>mvn:com.google.protobuf/protobuf-java/{{VERSION}}</bundle>
+        <bundle>mvn:io.netty/netty/{{VERSION}}</bundle>
         <bundle>mvn:com.typesafe.akka/akka-remote_${scala.version}/${akka.version}</bundle>
         <bundle>mvn:com.typesafe.akka/akka-cluster_${scala.version}/${akka.version}</bundle>
     </feature>
     <feature name='odl-akka-leveldb' description='LevelDB' version='0.7'>
-        <bundle>wrap:mvn:org.iq80.leveldb/leveldb/${leveldb.version}</bundle>
-        <bundle>mvn:org.fusesource.leveldbjni/leveldbjni-all/${leveldbjni.version}</bundle>
+        <bundle>wrap:mvn:org.iq80.leveldb/leveldb/{{VERSION}}</bundle>
+        <bundle>mvn:org.fusesource.leveldbjni/leveldbjni-all/{{VERSION}}</bundle>
     </feature>
     <feature name='odl-akka-persistence' description='Akka Persistence' version="${akka.version}">
         <feature version='0.7'>odl-akka-leveldb</feature>
         <feature version="${akka.version}">odl-akka-system</feature>
         <bundle>mvn:com.typesafe.akka/akka-persistence-experimental_${scala.version}/${akka.version}</bundle>
-        <bundle>wrap:mvn:com.google.protobuf/protobuf-java/${protobuf.version}$overwrite=merge&amp;DynamicImport-Package=org.opendaylight.controller.protobuff.messages.*;org.opendaylight.controller.cluster.raft.protobuff.client.messages.*</bundle>
+        <bundle>wrap:mvn:com.google.protobuf/protobuf-java/{{VERSION}}$overwrite=merge&amp;DynamicImport-Package=org.opendaylight.controller.protobuff.messages.*;org.opendaylight.controller.cluster.raft.protobuff.client.messages.*</bundle>
     </feature>
 </features>
index 735c5f1..d2b2d1d 100644 (file)
     <topologymanager.version>0.6.0-SNAPSHOT</topologymanager.version>
     <topologymanager.shell.version>1.2.0-SNAPSHOT</topologymanager.shell.version>
     <troubleshoot.web.version>0.6.0-SNAPSHOT</troubleshoot.web.version>
-    <typesafe.config.version>1.2.0</typesafe.config.version>
     <uncommons.maths.version>1.2.2a</uncommons.maths.version>
     <usermanager.implementation.version>0.6.0-SNAPSHOT</usermanager.implementation.version>
     <usermanager.northbound.version>0.2.0-SNAPSHOT</usermanager.northbound.version>
         <artifactId>app</artifactId>
         <version>1.0.0-v20070606</version>
       </dependency>
+      <dependency>
+        <groupId>org.uncommons.maths</groupId>
+        <artifactId>uncommons-maths</artifactId>
+        <version>${uncommons.maths.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>com.google.protobuf</groupId>
+        <artifactId>protobuf-java</artifactId>
+        <version>${protobuf.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.iq80.leveldb</groupId>
+        <artifactId>leveldb</artifactId>
+        <version>${leveldb.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.fusesource.leveldbjni</groupId>
+        <artifactId>leveldbjni-all</artifactId>
+        <version>${leveldbjni.version}</version>
+      </dependency>
 
       <!-- equinox http service bridge -->
       <dependency>
         <artifactId>scala-library</artifactId>
         <version>${scala.version}.1</version>
       </dependency>
+      <dependency>
+        <groupId>org.scala-lang</groupId>
+        <artifactId>scala-reflect</artifactId>
+        <version>${scala.version}.1</version>
+      </dependency>
       <dependency>
         <groupId>org.opendaylight.controller</groupId>
         <artifactId>commons.logback_settings</artifactId>

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