Merge "Handle property place-holders in features.xml"
authorRobert Varga <nite@hq.sk>
Fri, 8 Apr 2016 11:42:36 +0000 (11:42 +0000)
committerGerrit Code Review <gerrit@opendaylight.org>
Fri, 8 Apr 2016 11:42:36 +0000 (11:42 +0000)
features-akka/pom.xml
features-akka/src/main/features/features.xml
features-parent/pom.xml

index 8206da3772eaafa42de44826ae3bdf6a11e59402..ad4a770969e34fc24ebc9b6f3597747b590626d8 100644 (file)
         <groupId>com.typesafe.akka</groupId>
         <artifactId>akka-slf4j_${scala.version}</artifactId>
       </dependency>
+      <dependency>
+        <groupId>com.typesafe.akka</groupId>
+        <artifactId>akka-protobuf_${scala.version}</artifactId>
+      </dependency>
+      <dependency>
+        <groupId>com.typesafe.akka</groupId>
+        <artifactId>akka-persistence_${scala.version}</artifactId>
+      </dependency>
       <dependency>
         <groupId>com.typesafe.akka</groupId>
         <artifactId>akka-osgi_${scala.version}</artifactId>
index 252397714bf4f15e31bda9e8e5b6bec77d3ca247..333a81f97224a561d89b941c85e6f91a678104b4 100644 (file)
     <feature name="odl-akka-scala" description="Scala Runtime for OpenDaylight" version="${scala.version}">
         <bundle>mvn:org.scala-lang/scala-library/{{VERSION}}</bundle>
         <bundle>mvn:org.scala-lang/scala-reflect/{{VERSION}}</bundle>
-        <bundle>mvn:org.scala-lang.modules/scala-java8-compat_2.11/{{VERSION}}</bundle>
+        <bundle>mvn:org.scala-lang.modules/scala-java8-compat_${scala.version}/{{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/{{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>
+        <bundle>mvn:com.typesafe.akka/akka-actor_${scala.version}/{{VERSION}}</bundle>
+        <bundle>mvn:com.typesafe.akka/akka-slf4j_${scala.version}/{{VERSION}}</bundle>
+        <bundle>mvn:com.typesafe.akka/akka-osgi_${scala.version}/{{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/{{VERSION}}</bundle>
         <bundle>mvn:com.google.protobuf/protobuf-java/{{VERSION}}</bundle>
-        <bundle>mvn:com.typesafe.akka/akka-protobuf_${scala.version}/${akka.version}</bundle>
+        <bundle>mvn:com.typesafe.akka/akka-protobuf_${scala.version}/{{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>
+        <bundle>mvn:com.typesafe.akka/akka-remote_${scala.version}/{{VERSION}}</bundle>
+        <bundle>mvn:com.typesafe.akka/akka-cluster_${scala.version}/{{VERSION}}</bundle>
     </feature>
     <feature name='odl-akka-leveldb' description='LevelDB' version='${leveldb.version}'>
         <bundle>wrap:mvn:org.iq80.leveldb/leveldb/{{VERSION}}</bundle>
@@ -45,8 +45,8 @@
     <feature name='odl-akka-persistence' description='Akka Persistence' version="${akka.version}">
         <feature version='${leveldb.version}'>odl-akka-leveldb</feature>
         <feature version="${akka.version}">odl-akka-system</feature>
-        <bundle>mvn:com.typesafe.akka/akka-protobuf_${scala.version}/${akka.version}</bundle>
-        <bundle>mvn:com.typesafe.akka/akka-persistence_${scala.version}/${akka.version}</bundle>
+        <bundle>mvn:com.typesafe.akka/akka-protobuf_${scala.version}/{{VERSION}}</bundle>
+        <bundle>mvn:com.typesafe.akka/akka-persistence_${scala.version}/{{VERSION}}</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 2b411b350a407fa345b168b004b3f71297bff756..9969b3fc28cdcc0411640ab63c0b8c54d55eb80e 100644 (file)
                                             prefix = "wrap:"
                                             mvnUrl = mvnUrl.substring(5)
                                         }
-                                        if (mvnUrl.startsWith("mvn:")) {
+                                        if (mvnUrl.startsWith("mvn:") &amp;&amp; mvnUrl.indexOf(versionPlaceholder) >= 0) {
+                                            // Process property place-holders
+                                            def dollarIndex;
+                                            while ((dollarIndex = mvnUrl.indexOf("\${")) >= 0) {
+                                                def closingBrace = mvnUrl.indexOf("}", dollarIndex);
+                                                if (closingBrace > dollarIndex) {
+                                                    def propKey = mvnUrl.substring(dollarIndex + 2, closingBrace);
+                                                    def propVal = project.properties[propKey];
+                                                    mvnUrl = mvnUrl.replace("\${${propKey}}", propVal);
+                                                } else {
+                                                    println "[WARN] Malformed Maven URL: ${mvnUrl}";
+                                                    break;
+                                                }
+                                            }
                                             def components =  mvnUrl.substring(4).split("/")
                                             if (components[2].startsWith(versionPlaceholder)) {
                                                 def suffix = "";