Bump versions by x.y.(z+1)
[odlparent.git] / features-parent / pom.xml
index 5b359524cf527575342af82723cd85959a095a5f..131b5d7ce1000246b13e0d9f2a4f2f8089bbcfea 100644 (file)
     <parent>
         <groupId>org.opendaylight.odlparent</groupId>
         <artifactId>odlparent</artifactId>
-        <version>1.6.0-SNAPSHOT</version>
+        <version>1.8.5-SNAPSHOT</version>
         <relativePath>../odlparent</relativePath>
     </parent>
 
-    <groupId>org.opendaylight.odlparent</groupId>
     <artifactId>features-parent</artifactId>
     <packaging>pom</packaging>
+    <name>ODL :: odlparent :: ${project.artifactId}</name>
 
     <properties>
         <features.file>features.xml</features.file>
@@ -49,6 +49,7 @@
                 <!-- generate dependencies versions -->
                 <plugin>
                     <artifactId>maven-dependency-plugin</artifactId>
+                    <version>2.10</version>
                       <executions>
                           <execution>
                               <phase>generate-resources</phase>
                                             args[2] = dependencyVersion
                                             return "mvn:" + args.join("/")
                                         }
-                                        throw new IllegalArgumentException("Feature dependency $groupId:$artifactId is not dependecy of project.")
+                                        throw new IllegalArgumentException("Feature dependency $groupId:$artifactId is not a dependency in the project pom.xml.")
                                     }
 
-
-                                    def updateMavenDependency  = { dep ->
-                                       def mvnUrl = dep.text()
-                                       if(mvnUrl.startsWith("mvn:")) {
-                                         def components =  mvnUrl.substring(4).split("/")
-                                         if(components[2] == versionPlaceholder) {
-                                         dep.value = updatedURLFromProject(components)
-                                         }
-                                       }
+                                    def updateMavenDependency = { dep ->
+                                        def mvnUrl = dep.text()
+                                        def prefix = ""
+                                        if (mvnUrl.startsWith("wrap:")) {
+                                            prefix = "wrap:"
+                                            mvnUrl = mvnUrl.substring(5)
+                                        }
+                                        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 = "";
+                                                if (components[2].length() > versionPlaceholder.length()) {
+                                                    suffix = components[2].substring(versionPlaceholder.length())
+                                                    components[2] = versionPlaceholder
+                                                }
+                                                dep.value = prefix + updatedURLFromProject(components) + suffix
+                                            }
+                                        }
                                     }
 
                                     def featureFile = new File(project.basedir,featureFilePath)
                                     def root = new XmlParser().parse(featureFile)
 
+                                    println "[INFO] Updating repository declarations"
+                                    root.repository.each updateMavenDependency
+
                                     root.feature.each { feature ->
                                         println "[INFO] Processing feature: ${feature.@name}"
                                         feature.bundle.each updateMavenDependency
                 <plugin>
                     <groupId>org.codehaus.mojo</groupId>
                     <artifactId>build-helper-maven-plugin</artifactId>
+                    <version>1.12</version>
                     <executions>
                         <execution>
                         <phase>generate-resources</phase>
                     </executions>
                 </plugin>
                 <plugin>
-                    <groupId>org.apache.maven.plugins</groupId>
                     <artifactId>maven-resources-plugin</artifactId>
+                    <version>3.0.1</version>
                     <executions>
                         <execution>
                             <id>filter</id>
                     </executions>
                 </plugin>
                 <plugin>
-                    <groupId>org.apache.maven.plugins</groupId>
                     <artifactId>maven-surefire-plugin</artifactId>
+                    <version>${maven.surefire.version}</version>
                     <configuration>
                         <skip>${skip.karaf.featureTest}</skip>
+                        <systemPropertyVariables>
+                            <!-- Remove these properties when a better fix to Bug 6523 appears. -->
+                            <karaf.distro.groupId>org.opendaylight.odlparent</karaf.distro.groupId>
+                            <karaf.distro.artifactId>opendaylight-karaf-empty</karaf.distro.artifactId>
+                            <karaf.distro.version>1.8.5-SNAPSHOT</karaf.distro.version>
+                        </systemPropertyVariables>
                         <dependenciesToScan>
                             <dependency>org.opendaylight.odlparent:features-test</dependency>
                         </dependenciesToScan>
         </pluginManagement>
 
         <plugins>
+            <plugin>
+                <!-- This generates the META-INF/maven/dependencies.properties file
+                        which is required by the versionAsInProject() used in SingleFeatureTest -->
+                <groupId>org.apache.servicemix.tooling</groupId>
+                <artifactId>depends-maven-plugin</artifactId>
+            </plugin>
             <plugin>
                 <artifactId>maven-dependency-plugin</artifactId>
             </plugin>
                 <artifactId>build-helper-maven-plugin</artifactId>
             </plugin>
             <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-resources-plugin</artifactId>
             </plugin>
             <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-surefire-plugin</artifactId>
             </plugin>
         </plugins>
         <dependency>
             <groupId>org.opendaylight.odlparent</groupId>
             <artifactId>features-test</artifactId>
-            <version>1.6.0-SNAPSHOT</version>
+            <version>1.8.5-SNAPSHOT</version>
+            <scope>test</scope>
+        </dependency>
+        <!-- Remove this dependency when a better fix for Bug 6523 appears. -->
+        <dependency>
+            <groupId>org.opendaylight.odlparent</groupId>
+            <artifactId>opendaylight-karaf-empty</artifactId>
+            <version>1.8.5-SNAPSHOT</version>
+            <type>zip</type>
             <scope>test</scope>
         </dependency>
     </dependencies>
+
+  <!--
+    Maven Site Configuration
+
+    The following configuration is necessary for maven-site-plugin to
+    correctly identify the correct deployment path for OpenDaylight Maven
+    sites.
+  -->
+  <url>${odl.site.url}/${project.groupId}/${stream}/${project.artifactId}/</url>
+
+  <distributionManagement>
+    <site>
+      <id>opendaylight-site</id>
+      <url>${nexus.site.url}/${project.artifactId}/</url>
+    </site>
+  </distributionManagement>
 </project>