Rework feature generation 11/11911/4
authorRobert Varga <rovarga@cisco.com>
Sun, 12 Oct 2014 08:26:20 +0000 (10:26 +0200)
committerRobert Varga <rovarga@cisco.com>
Mon, 13 Oct 2014 21:42:45 +0000 (23:42 +0200)
This patch takes advantage of the features-builder, laying the
preparation work for switching artifact tracking.

Change-Id: I8c325ad4b26ca0b9839edacb919134ea43db46fe
Signed-off-by: Tony Tkacik <ttkacik@cisco.com>
Signed-off-by: Robert Varga <rovarga@cisco.com>
common/features-builder/pom.xml
common/features/pom.xml
common/features/src/main/feature/features.xml [moved from common/features/src/main/resources/features.xml with 60% similarity]

index 0576893ad410ec94f90adad2ee13361ffbb779c5..6fac4b5c97bfdd66e25187a58ee1e7cdb8fb687c 100644 (file)
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
     <modelVersion>4.0.0</modelVersion>
     <parent>
-        <groupId>org.opendaylight.odlparent</groupId>
-        <artifactId>odlparent</artifactId>
-        <version>1.5.0-SNAPSHOT</version>
+        <groupId>org.opendaylight.yangtools</groupId>
+        <artifactId>yangtools-parent</artifactId>
+        <version>0.7.0-SNAPSHOT</version>
+        <relativePath>../parent/pom.xml</relativePath>
     </parent>
 
     <groupId>org.opendaylight.yangtools</groupId>
index a37c36a72653dd63af7a981d38a5b2a780c24658..0400515a67b008129c3b2262c66eeab290e8f283 100644 (file)
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <groupId>org.opendaylight.yangtools</groupId>
-        <artifactId>yangtools-parent</artifactId>
+        <artifactId>features-builder</artifactId>
         <version>0.7.0-SNAPSHOT</version>
-        <relativePath>../parent/pom.xml</relativePath>
+        <relativePath>../features-builder/pom.xml</relativePath>
     </parent>
-    <artifactId>features-yangtools</artifactId>
+
+    <artifactId>yangtools-features</artifactId>
     <packaging>jar</packaging>
-    <properties>
-        <features.file>features.xml</features.file>
-    </properties>
+
     <build>
-        <resources>
-            <resource>
-                <directory>src/main/resources</directory>
-                <filtering>true</filtering>
-            </resource>
-        </resources>
         <plugins>
+            <!-- generate dependencies versions -->
             <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 -->
+                <artifactId>maven-dependency-plugin</artifactId>
             </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>
+                <groupId>com.alexecollins.maven.plugin</groupId>
+                <artifactId>script-maven-plugin</artifactId>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.karaf.tooling</groupId>
+                <artifactId>karaf-maven-plugin</artifactId>
             </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-resources-plugin</artifactId>
             </plugin>
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
@@ -92,6 +52,7 @@
             </plugin>
         </plugins>
     </build>
+
     <dependencies>
         <dependency>
             <groupId>org.opendaylight.yangtools.model</groupId>
             <groupId>com.google.guava</groupId>
             <artifactId>guava</artifactId>
         </dependency>
-
-        <!-- test the features.xml -->
-        <dependency>
-            <groupId>org.opendaylight.yangtools</groupId>
-            <artifactId>features-test</artifactId>
-            <scope>test</scope>
-        </dependency>
     </dependencies>
 </project>
similarity index 60%
rename from common/features/src/main/resources/features.xml
rename to common/features/src/main/feature/features.xml
index baba09124cca17d37796fa74e1f169066eb3cd3e..72baaf35050d90446b892b6f17ef8d184c880f71 100644 (file)
 
     <feature name='odl-yangtools-models' version='${project.version}' description='OpenDaylight :: Yangtools :: Models'>
         <feature version='${project.version}'>odl-yangtools-binding</feature>
-        <bundle>mvn:org.opendaylight.yangtools.model/ietf-inet-types/${ietf.inet.types.version}</bundle>
-        <bundle>mvn:org.opendaylight.yangtools.model/ietf-yang-types/${ietf.yang.types.version}</bundle>
-        <bundle>mvn:org.opendaylight.yangtools.model/ietf-yang-types-20130715/${ietf.yang.types.20130715.version}</bundle>
-        <bundle>mvn:org.opendaylight.yangtools.model/ietf-restconf/${ietf.restconf.version}</bundle>
-        <bundle>mvn:org.opendaylight.yangtools.model/yang-ext/${yang.ext.version}</bundle>
-        <bundle>mvn:org.opendaylight.yangtools.model/opendaylight-l2-types/${opendaylight.l2.types.version}</bundle>
-        <bundle>mvn:org.opendaylight.yangtools.model/ietf-topology/${ietf.topology.version}</bundle>
+        <bundle>mvn:org.opendaylight.yangtools.model/ietf-inet-types/{{VERSION}}</bundle>
+        <bundle>mvn:org.opendaylight.yangtools.model/ietf-yang-types/{{VERSION}}</bundle>
+        <bundle>mvn:org.opendaylight.yangtools.model/ietf-yang-types-20130715/{{VERSION}}</bundle>
+        <bundle>mvn:org.opendaylight.yangtools.model/ietf-restconf/{{VERSION}}</bundle>
+        <bundle>mvn:org.opendaylight.yangtools.model/yang-ext/{{VERSION}}</bundle>
+        <bundle>mvn:org.opendaylight.yangtools.model/opendaylight-l2-types/{{VERSION}}</bundle>
+        <bundle>mvn:org.opendaylight.yangtools.model/ietf-topology/{{VERSION}}</bundle>
        </feature>
 
     <feature name='odl-yangtools-data-binding' version='${project.version}' description='OpenDaylight :: Yangtools :: Data Binding'>
         <feature version='${project.version}'>odl-yangtools-binding</feature>
-        <bundle>mvn:org.opendaylight.yangtools.thirdparty/antlr4-runtime-osgi-nohead/${antlr4.version}</bundle>
-        <bundle>mvn:commons-io/commons-io/${commons.io.version}</bundle>
-        <bundle>mvn:org.opendaylight.yangtools/yang-data-api/${project.version}</bundle>
-        <bundle>mvn:org.opendaylight.yangtools/yang-data-composite-node/${project.version}</bundle>
-        <bundle>mvn:org.opendaylight.yangtools/yang-data-impl/${project.version}</bundle>
-        <bundle>mvn:org.opendaylight.yangtools/yang-data-operations/${project.version}</bundle>
-        <bundle>mvn:org.opendaylight.yangtools/yang-data-util/${project.version}</bundle>
-        <bundle>mvn:org.opendaylight.yangtools/yang-model-api/${project.version}</bundle>
-        <bundle>mvn:org.opendaylight.yangtools/yang-model-util/${project.version}</bundle>
-        <bundle>mvn:org.opendaylight.yangtools/yang-parser-api/${project.version}</bundle>
-        <bundle>mvn:org.opendaylight.yangtools/yang-parser-impl/${project.version}</bundle>
+        <bundle>mvn:org.opendaylight.yangtools.thirdparty/antlr4-runtime-osgi-nohead/{{VERSION}}</bundle>
+        <bundle>mvn:commons-io/commons-io/{{VERSION}}</bundle>
+        <bundle>mvn:org.opendaylight.yangtools/yang-data-api/{{VERSION}}</bundle>
+        <bundle>mvn:org.opendaylight.yangtools/yang-data-composite-node/{{VERSION}}</bundle>
+        <bundle>mvn:org.opendaylight.yangtools/yang-data-impl/{{VERSION}}</bundle>
+        <bundle>mvn:org.opendaylight.yangtools/yang-data-operations/{{VERSION}}</bundle>
+        <bundle>mvn:org.opendaylight.yangtools/yang-data-util/{{VERSION}}</bundle>
+        <bundle>mvn:org.opendaylight.yangtools/yang-model-api/{{VERSION}}</bundle>
+        <bundle>mvn:org.opendaylight.yangtools/yang-model-util/{{VERSION}}</bundle>
+        <bundle>mvn:org.opendaylight.yangtools/yang-parser-api/{{VERSION}}</bundle>
+        <bundle>mvn:org.opendaylight.yangtools/yang-parser-impl/{{VERSION}}</bundle>
 
         <!-- GSON-based JSON codec. Can be split out -->
-        <bundle>mvn:com.google.code.gson/gson/${gson.version}</bundle>
-        <bundle>mvn:org.opendaylight.yangtools/yang-data-codec-gson/${project.version}</bundle>
+        <bundle>mvn:com.google.code.gson/gson/{{VERSION}}</bundle>
+        <bundle>mvn:org.opendaylight.yangtools/yang-data-codec-gson/{{VERSION}}</bundle>
     </feature>
 
     <feature name='odl-yangtools-binding' version='${project.version}' description='OpenDaylight :: Yangtools :: Binding'>
         <feature version='${project.version}'>odl-yangtools-common</feature>
-        <bundle>mvn:org.opendaylight.yangtools/yang-binding/${project.version}</bundle>
-        <bundle>mvn:org.opendaylight.yangtools/util/${project.version}</bundle>
+        <bundle>mvn:org.opendaylight.yangtools/yang-binding/{{VERSION}}</bundle>
+        <bundle>mvn:org.opendaylight.yangtools/util/{{VERSION}}</bundle>
     </feature>
 
     <feature name='odl-yangtools-common' version='${project.version}' description='OpenDaylight :: Yangtools :: Common'>
-        <bundle>mvn:com.google.guava/guava/${guava.version}</bundle>
-        <bundle>mvn:org.opendaylight.yangtools/concepts/${project.version}</bundle>
-        <bundle>mvn:org.opendaylight.yangtools/yang-common/${project.version}</bundle>
-        <bundle>mvn:org.opendaylight.yangtools/util/${project.version}</bundle>
-        <bundle>mvn:org.opendaylight.yangtools/object-cache-api/${project.version}</bundle>
-        <bundle>mvn:org.opendaylight.yangtools/object-cache-guava/${project.version}</bundle>
-        <bundle>mvn:org.opendaylight.yangtools/object-cache-noop/${project.version}</bundle>
+        <bundle>mvn:com.google.guava/guava/{{VERSION}}</bundle>
+        <bundle>mvn:org.opendaylight.yangtools/concepts/{{VERSION}}</bundle>
+        <bundle>mvn:org.opendaylight.yangtools/yang-common/{{VERSION}}</bundle>
+        <bundle>mvn:org.opendaylight.yangtools/util/{{VERSION}}</bundle>
+        <bundle>mvn:org.opendaylight.yangtools/object-cache-api/{{VERSION}}</bundle>
+        <bundle>mvn:org.opendaylight.yangtools/object-cache-guava/{{VERSION}}</bundle>
+        <bundle>mvn:org.opendaylight.yangtools/object-cache-noop/{{VERSION}}</bundle>
     </feature>
     <feature name='odl-yangtools-binding-generator' version='${project.version}' description='OpenDaylight :: Yangtools :: Binding Generator'>
         <feature version='${project.version}'>odl-yangtools-data-binding</feature>
-        <bundle>mvn:org.javassist/javassist/${javassist.version}</bundle>
-        <bundle>mvn:org.apache.commons/commons-lang3/${commons.lang3.version}</bundle>
-        <bundle>mvn:org.opendaylight.yangtools/binding-generator-api/${project.version}</bundle>
-        <bundle>mvn:org.opendaylight.yangtools/binding-generator-impl/${project.version}</bundle>
-        <bundle>mvn:org.opendaylight.yangtools/binding-generator-spi/${project.version}</bundle>
-        <bundle>mvn:org.opendaylight.yangtools/binding-generator-util/${project.version}</bundle>
-        <bundle>mvn:org.opendaylight.yangtools/binding-model-api/${project.version}</bundle>
-        <bundle>mvn:org.opendaylight.yangtools/binding-type-provider/${project.version}</bundle>
-        <bundle>mvn:org.opendaylight.yangtools/binding-data-codec/${project.version}</bundle>
-        <bundle>mvn:org.opendaylight.yangtools.thirdparty/xtend-lib-osgi/${xtend.version}</bundle>
-        <bundle>mvn:org.opendaylight.yangtools/yang-model-api/${project.version}</bundle>
-        <bundle>mvn:org.opendaylight.yangtools/yang-model-util/${project.version}</bundle>
-        <bundle>mvn:org.opendaylight.yangtools/yang-parser-api/${project.version}</bundle>
+        <bundle>mvn:org.javassist/javassist/{{VERSION}}</bundle>
+        <bundle>mvn:org.apache.commons/commons-lang3/{{VERSION}}</bundle>
+        <bundle>mvn:org.opendaylight.yangtools/binding-generator-api/{{VERSION}}</bundle>
+        <bundle>mvn:org.opendaylight.yangtools/binding-generator-impl/{{VERSION}}</bundle>
+        <bundle>mvn:org.opendaylight.yangtools/binding-generator-spi/{{VERSION}}</bundle>
+        <bundle>mvn:org.opendaylight.yangtools/binding-generator-util/{{VERSION}}</bundle>
+        <bundle>mvn:org.opendaylight.yangtools/binding-model-api/{{VERSION}}</bundle>
+        <bundle>mvn:org.opendaylight.yangtools/binding-type-provider/{{VERSION}}</bundle>
+        <bundle>mvn:org.opendaylight.yangtools/binding-data-codec/{{VERSION}}</bundle>
+        <bundle>mvn:org.opendaylight.yangtools.thirdparty/xtend-lib-osgi/{{VERSION}}</bundle>
+        <bundle>mvn:org.opendaylight.yangtools/yang-model-api/{{VERSION}}</bundle>
+        <bundle>mvn:org.opendaylight.yangtools/yang-model-util/{{VERSION}}</bundle>
+        <bundle>mvn:org.opendaylight.yangtools/yang-parser-api/{{VERSION}}</bundle>
     </feature>
     <feature name='odl-yangtools-restconf' version='${project.version}' description='OpenDaylight :: Yangtools :: Restconf'>
-        <bundle>mvn:org.opendaylight.yangtools/restconf-client-api/${project.version}</bundle>
-        <bundle>mvn:org.opendaylight.yangtools/restconf-client-impl/${project.version}</bundle>
-        <bundle>mvn:org.opendaylight.yangtools/restconf-common/${project.version}</bundle>
+        <bundle>mvn:org.opendaylight.yangtools/restconf-client-api/{{VERSION}}</bundle>
+        <bundle>mvn:org.opendaylight.yangtools/restconf-client-impl/{{VERSION}}</bundle>
+        <bundle>mvn:org.opendaylight.yangtools/restconf-common/{{VERSION}}</bundle>
      </feature>
 </features>