Release Lithium-SR4
[openflowjava.git] / pom.xml
diff --git a/pom.xml b/pom.xml
index bca0797ab26ba14d013470ea60b2adb050a123a5..62e506cc41388a240e314e241fd2da576dee1dd0 100644 (file)
--- a/pom.xml
+++ b/pom.xml
+<?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.odlparent</groupId>
+        <artifactId>odlparent</artifactId>
+        <version>1.5.4-Lithium-SR4</version>
+        <relativePath/>
+    </parent>
+
     <groupId>org.opendaylight.openflowjava</groupId>
     <artifactId>openflow-protocol-parent</artifactId>
-    <version>0.3</version>
+    <version>0.6.4-Lithium-SR4</version>
+    <name>openflowjava</name> <!-- Used by Sonar to set project name -->
     <packaging>pom</packaging>
+
     <modules>
+        <module>artifacts</module>
+        <module>features</module>
+        <module>openflowjava-config</module>
         <module>openflow-protocol-api</module>
-        <module>openflow-protocol-spi</module>
         <module>openflow-protocol-impl</module>
         <module>openflow-protocol-it</module>
+        <module>openflow-protocol-spi</module>
         <module>simple-client</module>
+        <module>util</module>
     </modules>
     <scm>
         <connection>scm:git:ssh://git.opendaylight.org:29418/openflowjava.git</connection>
         <developerConnection>scm:git:ssh://git.opendaylight.org:29418/openflowjava.git</developerConnection>
         <url>https://wiki.opendaylight.org/view/Openflow_Protocol_Library:Main</url>
-      <tag>openflow-protocol-parent-0.3</tag>
-  </scm>
+      <tag>HEAD</tag>
+    </scm>
 
     <properties>
-        <sonar.host.url>https://sonar.opendaylight.org/</sonar.host.url>
-        <nexusproxy>http://nexus.opendaylight.org/content</nexusproxy>
         <sitedeploy>dav:http://nexus.opendaylight.org/content/sites/site</sitedeploy>
-        <siteplugin>3.2</siteplugin>
-        <projectinfo>2.6</projectinfo>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-        <compiler.version>2.3.2</compiler.version>
-        <surefire.version>2.13</surefire.version>
-        <exam.version>3.0.0</exam.version>
-        <url.version>1.5.0</url.version>
-        <enunciate.version>1.26.2</enunciate.version>
-        <sonar.branch>${user.name}-private-view</sonar.branch>
-        <sonar.skippedModules>org.openflow.openflowj,net.sf.jung2</sonar.skippedModules>
-        <logback.version>1.0.9</logback.version>
-        <slf4j.version>1.7.2</slf4j.version>
-        <yang.prototype.version>1.0</yang.prototype.version>
-        <maven.bundle.version>2.4.0</maven.bundle.version>
-        <guava.version>14.0.1</guava.version> 
-        <netty.version>4.0.10.Final</netty.version>
-        <releaseplugin.version>2.3.2</releaseplugin.version>
-    </properties>
+        <jmxGeneratorPath>${project.build.directory}/yang-gen-config</jmxGeneratorPath>
+        <karaf.distro.empty.version>1.5.4-Lithium-SR4</karaf.distro.empty.version>
+        <salGeneratorPath>${project.build.directory}/yang-gen-sal</salGeneratorPath>
 
-    <pluginRepositories>
-        <pluginRepository>
-            <id>odlPublic</id>
-            <name>odlPublic</name>
-            <url>${nexusproxy}/groups/public/</url>
-            <snapshots>
-              <enabled>false</enabled>
-            </snapshots>
-        </pluginRepository>
-       <pluginRepository>
-            <id>opendaylight-release</id>
-            <url>${nexusproxy}/repositories/opendaylight.release/</url>
-            <snapshots>
-              <enabled>false</enabled>
-            </snapshots>
-        </pluginRepository>
-        <!-- OpenDayLight Snapshot artifact -->
-        <pluginRepository>
-            <id>opendaylight-snapshot</id>
-            <url>${nexusproxy}/repositories/opendaylight.snapshot/</url>
-            <releases>
-              <enabled>false</enabled>
-            </releases>
-        </pluginRepository>
-    </pluginRepositories>
-
-
-    <repositories>
-        <!-- Opendaylight public group -->
-        <repository>
-            <id>odlPublic</id>
-            <name>odlPublic</name>
-            <url>${nexusproxy}/groups/public/</url>
-            <snapshots>
-              <enabled>false</enabled>
-            </snapshots>
-        </repository>
-        <!-- OpenDayLight Released artifact -->
-        <repository>
-            <id>opendaylight-release</id>
-            <name>opendaylight-release</name>
-            <url>${nexusproxy}/repositories/opendaylight.release/</url>
-            <snapshots>
-              <enabled>false</enabled>
-            </snapshots>
-        </repository>
-        <!-- OpenDayLight Snapshot artifact -->
-        <repository>
-            <id>opendaylight-snapshot</id>
-            <name>opendaylight-snapshot</name>
-            <url>${nexusproxy}/repositories/opendaylight.snapshot/</url>
-            <releases>
-              <enabled>false</enabled>
-            </releases>
-        </repository>
-    </repositories>
-    <distributionManagement>
-        <!-- OpenDayLight Released artifact -->
-        <repository>
-            <id>opendaylight-release</id>
-            <url>${nexusproxy}/repositories/opendaylight.release/</url>
-        </repository>
-        <!-- OpenDayLight Snapshot artifact -->
-        <snapshotRepository>
-            <id>opendaylight-snapshot</id>
-            <url>${nexusproxy}/repositories/opendaylight.snapshot/</url>
-        </snapshotRepository>
-        <!-- Site deployment -->
-        <!-- site>
-            <id>website</id>
-            <url>${sitedeploy}</url>
-        </site -->
-    </distributionManagement>
+        <config.version>0.3.4-Lithium-SR4</config.version>
+        <mdsal.version>1.2.4-Lithium-SR4</mdsal.version>
+        <yangtools.version>0.7.4-Lithium-SR4</yangtools.version>
 
+        <!-- Sonar config -->
+        <sonar-jacoco-listeners.version>2.4</sonar-jacoco-listeners.version>
+        <sonar.core.codeCoveragePlugin>jacoco</sonar.core.codeCoveragePlugin>
+        <sonar.jacoco.reportPath>target/code-coverage/jacoco.exec</sonar.jacoco.reportPath>
+        <sonar.jacoco.itReportPath>target/code-coverage/jacoco-it.exec</sonar.jacoco.itReportPath>
+    </properties>
 
     <dependencyManagement>
         <dependencies>
             <dependency>
-                <groupId>junit</groupId>
-                <artifactId>junit</artifactId>
-                <version>4.10</version>
-                <scope>test</scope>
-                <optional>true</optional>
+              <groupId>org.opendaylight.openflowjava</groupId>
+              <artifactId>openflowjava-artifacts</artifactId>
+              <version>${project.version}</version>
+              <type>pom</type>
+              <scope>import</scope>
             </dependency>
             <dependency>
-                <groupId>org.slf4j</groupId>
-                <artifactId>slf4j-api</artifactId>
-                <version>${slf4j.version}</version>
+              <groupId>org.opendaylight.yangtools</groupId>
+              <artifactId>yangtools-artifacts</artifactId>
+              <version>${yangtools.version}</version>
+              <type>pom</type>
+              <scope>import</scope>
             </dependency>
             <dependency>
-                <groupId>io.netty</groupId>
-                <artifactId>netty-handler</artifactId>
-                <version>${netty.version}</version>
+              <groupId>org.opendaylight.controller</groupId>
+              <artifactId>config-artifacts</artifactId>
+              <version>${config.version}</version>
+              <type>pom</type>
+              <scope>import</scope>
             </dependency>
             <dependency>
-            <groupId>com.google.guava</groupId>
-            <artifactId>guava</artifactId>
-            <version>${guava.version}</version>
-        </dependency>
+              <groupId>org.opendaylight.controller</groupId>
+              <artifactId>mdsal-artifacts</artifactId>
+              <version>${mdsal.version}</version>
+              <scope>import</scope>
+              <type>pom</type>
+            </dependency>
         </dependencies>
     </dependencyManagement>
+
+    <dependencies>
+        <!-- Sonar -->
+        <dependency>
+            <groupId>org.codehaus.sonar-plugins.java</groupId>
+            <artifactId>sonar-jacoco-listeners</artifactId>
+            <version>${sonar-jacoco-listeners.version}</version>
+            <scope>test</scope>
+        </dependency>
+    </dependencies>
+
     <build>
         <plugins>
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-compiler-plugin</artifactId>
-                <version>${compiler.version}</version>
                 <inherited>true</inherited>
                 <configuration>
                     <source>1.7</source>
                         <phase>deploy</phase>
                         <goals>
                             <goal>jar-no-fork</goal>
-                        </goals> 
+                        </goals>
                     </execution>
                 </executions>
             </plugin>
-            <plugin> 
-                <!-- explicitly define maven-deploy-plugin after other to force exec order -->
-                <artifactId>maven-deploy-plugin</artifactId> 
-                <executions> 
-                    <execution> 
-                        <id>deploy</id>
-                        <phase>deploy</phase>
-                        <goals>
-                            <goal>deploy</goal>
-                        </goals> 
-                    </execution> 
-                </executions> 
-            </plugin> 
             <plugin>
               <groupId>org.apache.felix</groupId>
               <artifactId>maven-bundle-plugin</artifactId>
-              <version>${maven.bundle.version}</version>
               <extensions>true</extensions>
               <configuration>
                 <instructions>
                 <manifestLocation>${project.build.directory}/META-INF</manifestLocation>
               </configuration>
             </plugin>
+            <plugin>
+              <groupId>org.apache.maven.plugins</groupId>
+             <artifactId>maven-checkstyle-plugin</artifactId>
+              <version>2.12</version>
+              <configuration>
+                <failOnViolation>false</failOnViolation>
+                <configLocation>checkstyle-logging.xml</configLocation>
+                <consoleOutput>true</consoleOutput>
+                <includeTestSourceDirectory>true</includeTestSourceDirectory>
+                <sourceDirectory>${project.basedir}</sourceDirectory>
+                <includes>**\/*.java,**\/*.xml,**\/*.ini,**\/*.sh,**\/*.bat,**\/*.yang</includes>
+                <excludes>**\/target\/,**\/bin\/,**\/target-ide\/,**\/src/main/yang-gen-config\/,**\/src/main/yang-gen-sal\/</excludes>
+              </configuration>
+              <dependencies>
+                <dependency>
+                <groupId>org.opendaylight.yangtools</groupId>
+                <artifactId>checkstyle-logging</artifactId>
+                <version>${yangtools.version}</version>
+                </dependency>
+              </dependencies>
+              <executions>
+                <execution>
+                <goals>
+                  <goal>check</goal>
+                </goals>
+                </execution>
+              </executions>
+            </plugin>
+            <plugin>
+                <groupId>org.codehaus.mojo</groupId>
+                <artifactId>build-helper-maven-plugin</artifactId>
+            </plugin>
+            <plugin>
+                <groupId>org.jacoco</groupId>
+                <artifactId>jacoco-maven-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <id>prepare-ut-agent</id>
+                        <phase>process-test-classes</phase>
+                        <goals>
+                            <goal>prepare-agent</goal>
+                        </goals>
+                        <configuration>
+                            <destFile>${sonar.jacoco.reportPath}</destFile>
+                            <propertyName>jacoco.agent.ut.arg</propertyName>
+                        </configuration>
+                    </execution>
+                    <execution>
+                        <id>prepare-it-agent</id>
+                        <phase>pre-integration-test</phase>
+                        <goals>
+                            <goal>prepare-agent</goal>
+                        </goals>
+                        <configuration>
+                            <destFile>${sonar.jacoco.itReportPath}</destFile>
+                            <propertyName>jacoco.agent.it.arg</propertyName>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
         </plugins>
         <pluginManagement>
             <plugins>
                 <plugin>
-                    <groupId>org.apache.maven.plugins</groupId>
-                    <artifactId>maven-source-plugin</artifactId>
-                    <version>2.2.1</version>
+                    <groupId>org.opendaylight.yangtools</groupId>
+                    <artifactId>yang-maven-plugin</artifactId>
+                    <version>${yangtools.version}</version>
                 </plugin>
                 <plugin>
-                    <groupId>org.apache.maven.plugins</groupId>
-                    <artifactId>maven-deploy-plugin</artifactId>
-                    <version>2.7</version>
+                    <groupId>org.codehaus.mojo</groupId>
+                    <artifactId>build-helper-maven-plugin</artifactId>
+                    <version>1.8</version>
+                    <executions>
+                        <execution>
+                            <id>add-source</id>
+                            <goals>
+                                <goal>add-source</goal>
+                            </goals>
+                            <phase>generate-sources</phase>
+                            <configuration>
+                                <sources>
+                                    <source>src/main/yang</source>
+                                </sources>
+                            </configuration>
+                        </execution>
+                    </executions>
                 </plugin>
                 <plugin>
                     <groupId>org.apache.maven.plugins</groupId>
-                    <artifactId>maven-jar-plugin</artifactId>
-                    <version>2.4</version>
+                    <artifactId>maven-failsafe-plugin</artifactId>
+                    <configuration>
+                        <!-- Specific to generate mapping between tests and covered code -->
+                        <argLine>${jacoco.agent.it.arg}</argLine>
+                        <properties>
+                            <property>
+                                <name>listener</name>
+                                <value>org.sonar.java.jacoco.JUnitListener</value>
+                            </property>
+                        </properties>
+                        <!-- Let's put failsafe reports with surefire to have access to tests failures/success reports in sonar -->
+                        <reportsDirectory>${project.build.directory}/surefire-reports</reportsDirectory>
+                    </configuration>
                 </plugin>
                 <plugin>
                     <groupId>org.apache.maven.plugins</groupId>
-                    <artifactId>maven-release-plugin</artifactId>
-                    <version>${releaseplugin.version}</version>
+                    <artifactId>maven-surefire-plugin</artifactId>
+                    <configuration>
+                        <!-- Specific to generate mapping between tests and covered code -->
+                        <argLine>${jacoco.agent.ut.arg}</argLine>
+                        <properties>
+                            <property>
+                                <name>listener</name>
+                                <value>org.sonar.java.jacoco.JUnitListener</value>
+                            </property>
+                        </properties>
+                    </configuration>
+                </plugin>
+                <!-- Ignore/Execute plugin execution -->
+                <plugin>
+                  <groupId>org.eclipse.m2e</groupId>
+                  <artifactId>lifecycle-mapping</artifactId>
+                  <version>1.0.0</version>
+                  <configuration>
+                    <lifecycleMappingMetadata>
+                      <pluginExecutions>
+                        <pluginExecution>
+                          <pluginExecutionFilter>
+                            <groupId>org.codehaus.mojo</groupId>
+                            <artifactId>properties-maven-plugin</artifactId>
+                            <versionRange>[0.0,)</versionRange>
+                            <goals>
+                              <goal>set-system-properties</goal>
+                            </goals>
+                          </pluginExecutionFilter>
+                          <action>
+                            <ignore/>
+                          </action>
+                        </pluginExecution>
+                        <pluginExecution>
+                          <pluginExecutionFilter>
+                            <groupId>org.jacoco</groupId>
+                            <artifactId>jacoco-maven-plugin</artifactId>
+                            <versionRange>[0.0,)</versionRange>
+                            <goals>
+                              <goal>prepare-agent</goal>
+                              <goal>pre-test</goal>
+                              <goal>post-test</goal>
+                            </goals>
+                          </pluginExecutionFilter>
+                          <action>
+                            <ignore/>
+                          </action>
+                        </pluginExecution>
+                        <pluginExecution>
+                          <pluginExecutionFilter>
+                            <groupId>org.ops4j.pax.exam</groupId>
+                            <artifactId>maven-paxexam-plugin</artifactId>
+                            <versionRange>[1.2.4,)</versionRange>
+                            <goals>
+                              <goal>generate-depends-file</goal>
+                            </goals>
+                          </pluginExecutionFilter>
+                          <action>
+                            <execute>
+                              <runOnIncremental>false</runOnIncremental>
+                            </execute>
+                          </action>
+                        </pluginExecution>
+                        <pluginExecution>
+                          <pluginExecutionFilter>
+                            <groupId>org.apache.maven.plugins</groupId>
+                            <artifactId>maven-checkstyle-plugin</artifactId>
+                            <versionRange>[2.0,)</versionRange>
+                            <goals>
+                              <goal>check</goal>
+                            </goals>
+                          </pluginExecutionFilter>
+                          <action>
+                            <ignore/>
+                          </action>
+                        </pluginExecution>
+                        <pluginExecution>
+                          <pluginExecutionFilter>
+                            <groupId>org.opendaylight.yangtools</groupId>
+                            <artifactId>yang-maven-plugin</artifactId>
+                            <versionRange>[0.5,)</versionRange>
+                            <goals>
+                              <goal>generate-sources</goal>
+                            </goals>
+                          </pluginExecutionFilter>
+                          <action>
+                            <execute/>
+                          </action>
+                        </pluginExecution>
+                        <pluginExecution>
+                          <pluginExecutionFilter>
+                            <groupId>org.codehaus.groovy.maven</groupId>
+                            <artifactId>gmaven-plugin</artifactId>
+                            <versionRange>1.0</versionRange>
+                            <goals>
+                              <goal>execute</goal>
+                            </goals>
+                          </pluginExecutionFilter>
+                          <action>
+                            <ignore/>
+                          </action>
+                        </pluginExecution>
+                        <pluginExecution>
+                          <pluginExecutionFilter>
+                            <groupId>org.apache.maven.plugins</groupId>
+                            <artifactId>maven-enforcer-plugin</artifactId>
+                            <versionRange>${enforcer.version}</versionRange>
+                            <goals>
+                              <goal>enforce</goal>
+                            </goals>
+                          </pluginExecutionFilter>
+                          <action>
+                            <ignore/>
+                          </action>
+                        </pluginExecution>
+                      </pluginExecutions>
+                    </lifecycleMappingMetadata>
+                  </configuration>
                 </plugin>
             </plugins>
         </pluginManagement>