<?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.4.2-Helium</version>
        <relativePath/>
    </parent>
    <prerequisites>
        <maven>3.0</maven>
    </prerequisites>
    <groupId>org.opendaylight.openflowplugin</groupId>
    <artifactId>openflowplugin-parent</artifactId>
    <version>0.0.3-Helium</version>
    <packaging>pom</packaging>

    <scm>
      <connection>scm:git:ssh://git.opendaylight.org:29418/openflowplugin.git</connection>
      <developerConnection>scm:git:ssh://git.opendaylight.org:29418/openflowplugin.git</developerConnection>
      <url>https://wiki.opendaylight.org/view/OpenDaylight_OpenFlow_Plugin:Main</url>
      <tag>HEAD</tag>
    </scm>

    <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>

    <properties>
      <project.build.sourceEncoding>utf-8</project.build.sourceEncoding>
      <mdsal.version>1.1-Helium</mdsal.version>
      <nexusproxy>http://nexus.opendaylight.org/content</nexusproxy>
      <openflowjava.version>0.5-Helium</openflowjava.version>
      <controller.model.version>1.1-Helium</controller.model.version>
      <sal.api.version>0.8.1-Helium</sal.api.version>
      <sal.connection.api.version>0.1.2-Helium</sal.connection.api.version>
      <sal.common.util.version>1.1-Helium</sal.common.util.version>
      <netconf.parent.version>0.2.5-Helium</netconf.parent.version>
      <config.parent.version>0.2.5-Helium</config.parent.version>
      <build.helper.version>1.8</build.helper.version>
      <xtend.dstdir>src/main/xtend-gen</xtend.dstdir>
      <jmxGeneratorPath>src/main/yang-gen-config</jmxGeneratorPath>
      <salGeneratorPath>src/main/yang-gen-sal</salGeneratorPath>
      <exi.nagasena.version>0000.0002.0038.0</exi.nagasena.version>
      <controller.distribution.version>0.1.2-Helium</controller.distribution.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>
      <sonar.profile>Sonar way with Findbugs</sonar.profile>

      <karaf.distro.empty.version>1.4.2-Helium</karaf.distro.empty.version>
      <yang.binding.version>0.6.2-Helium</yang.binding.version>
      <dlux.version>0.1.0-Helium</dlux.version>
    </properties>

    <dependencyManagement>
      <dependencies>
         <dependency>
            <groupId>org.opendaylight.yangtools</groupId>
            <artifactId>yang-binding</artifactId>
            <version>${yang.binding.version}</version>
        </dependency>
          <dependency>
              <groupId>org.opendaylight.openflowplugin</groupId>
              <artifactId>openflowplugin-api</artifactId>
              <version>${project.version}</version>
          </dependency>
        <dependency>
          <groupId>org.opendaylight.openflowjava</groupId>
          <artifactId>openflow-protocol-impl</artifactId>
          <version>${openflowjava.version}</version>
        </dependency>
        <dependency>
          <groupId>org.opendaylight.openflowjava</groupId>
          <artifactId>openflow-protocol-api</artifactId>
          <version>${openflowjava.version}</version>
        </dependency>
        <dependency>
          <groupId>org.opendaylight.openflowjava</groupId>
          <artifactId>openflow-protocol-spi</artifactId>
          <version>${openflowjava.version}</version>
        </dependency>
        <dependency>
          <groupId>org.opendaylight.openflowjava</groupId>
          <artifactId>util</artifactId>
          <version>${openflowjava.version}</version>
        </dependency>
        <dependency>
          <groupId>org.opendaylight.openflowjava</groupId>
          <artifactId>simple-client</artifactId>
          <version>${openflowjava.version}</version>
        </dependency>
        <dependency>
          <groupId>org.opendaylight.controller.model</groupId>
          <artifactId>model-flow-base</artifactId>
          <version>${controller.model.version}</version>
        </dependency>
        <dependency>
          <groupId>org.opendaylight.controller.model</groupId>
          <artifactId>model-flow-service</artifactId>
          <version>${controller.model.version}</version>
        </dependency>
        <dependency>
          <groupId>org.opendaylight.controller.model</groupId>
          <artifactId>model-flow-statistics</artifactId>
          <version>${controller.model.version}</version>
        </dependency>
        <dependency>
          <groupId>org.opendaylight.controller.model</groupId>
          <artifactId>model-inventory</artifactId>
          <version>${controller.model.version}</version>
        </dependency>
        <dependency>
          <groupId>org.opendaylight.controller</groupId>
          <artifactId>sal-binding-api</artifactId>
          <version>${controller.model.version}</version>
        </dependency>
        <dependency>
            <groupId>org.opendaylight.controller</groupId>
            <artifactId>liblldp</artifactId>
            <version>${sal.api.version}</version>
        </dependency>
        <dependency>
            <groupId>org.opendaylight.controller</groupId>
            <artifactId>sal-common-util</artifactId>
            <version>${controller.model.version}</version>
        </dependency>
        <!-- IT -->
        <dependency>
            <groupId>org.opendaylight.controller</groupId>
            <artifactId>sal-common-util</artifactId>
            <version>${sal.common.util.version}</version>
        </dependency>
        <dependency>
            <groupId>org.opendaylight.controller</groupId>
            <artifactId>config-netconf-connector</artifactId>
            <version>${netconf.parent.version}</version>
        </dependency>
        <dependency>
            <groupId>org.opendaylight.controller</groupId>
            <artifactId>sal-binding-it</artifactId>
            <version>${controller.model.version}</version>
        </dependency>
        <dependency>
            <groupId>org.opendaylight.controller</groupId>
            <artifactId>sal-binding-broker-impl</artifactId>
            <version>${controller.model.version}</version>
        </dependency>
        <dependency>
            <groupId>org.opendaylight.controller</groupId>
            <artifactId>config-manager</artifactId>
            <version>${config.parent.version}</version>
        </dependency>
          <dependency>
              <groupId>org.opendaylight.controller</groupId>
              <artifactId>config-api</artifactId>
              <version>${config.parent.version}</version>
          </dependency>
        <dependency>
            <groupId>org.opendaylight.yangtools.thirdparty</groupId>
            <artifactId>antlr4-runtime-osgi-nohead</artifactId>
            <version>4.0</version>
        </dependency>
        <dependency>
          <groupId>org.opendaylight.controller</groupId>
          <artifactId>logback-config</artifactId>
          <version>${config.parent.version}</version>
        </dependency>
        <dependency>
          <groupId>org.opendaylight.controller</groupId>
          <artifactId>config-persister-api</artifactId>
          <version>${config.parent.version}</version>
        </dependency>
        <dependency>
          <groupId>org.opendaylight.controller</groupId>
          <artifactId>config-persister-impl</artifactId>
          <version>${config.parent.version}</version>
        </dependency>
        <dependency>
          <groupId>org.opendaylight.controller</groupId>
          <artifactId>config-persister-file-xml-adapter</artifactId>
          <version>${config.parent.version}</version>
        </dependency>
        <dependency>
          <groupId>org.opendaylight.controller</groupId>
          <artifactId>netconf-monitoring</artifactId>
          <version>${netconf.parent.version}</version>
        </dependency>
        <dependency>
          <groupId>org.opendaylight.controller</groupId>
          <artifactId>netconf-client</artifactId>
          <version>${netconf.parent.version}</version>
        </dependency>
        <dependency>
          <groupId>org.opendaylight.controller</groupId>
          <artifactId>netconf-impl</artifactId>
          <version>${netconf.parent.version}</version>
        </dependency>

        <!-- thirdparty -->
        <dependency>
          <groupId>org.openexi</groupId>
          <artifactId>nagasena</artifactId>
          <version>${exi.nagasena.version}</version>
        </dependency>
        <dependency>
          <groupId>org.openexi</groupId>
          <artifactId>nagasena-rta</artifactId>
          <version>${exi.nagasena.version}</version>
        </dependency>
        <dependency>
          <groupId>org.opendaylight.controller.thirdparty</groupId>
          <artifactId>ganymed</artifactId>
          <version>1.1-Helium</version>
        </dependency>
        <dependency>
            <groupId>xml-apis</groupId>
            <artifactId>xml-apis</artifactId>
            <version>1.4.01</version>
        </dependency>
        <dependency>
            <groupId>org.opendaylight.yangtools.thirdparty</groupId>
            <artifactId>xtend-lib-osgi</artifactId>
            <version>2.4.3</version>
            <scope>test</scope>
        </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.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-compiler-plugin</artifactId>
              <configuration>
                <source>1.7</source>
                <target>1.7</target>
              </configuration>
            </plugin>
            <plugin>
              <groupId>org.ops4j.pax.exam</groupId>
              <artifactId>maven-paxexam-plugin</artifactId>
              <version>1.2.4</version>
            </plugin>
            <plugin>
              <groupId>org.eclipse.xtend</groupId>
              <artifactId>xtend-maven-plugin</artifactId>
              <version>${xtend.version}</version>
              <executions>
                  <execution>
                      <goals>
                          <goal>compile</goal>
                      </goals>
                      <configuration>
                          <outputDirectory>${xtend.dstdir}</outputDirectory>
                      </configuration>
                  </execution>
              </executions>
          </plugin>
          <plugin>
              <artifactId>maven-clean-plugin</artifactId>
              <configuration>
                  <filesets>
                      <fileset>
                          <directory>${xtend.dstdir}</directory>
                          <includes>
                              <include>**</include>
                          </includes>
                      </fileset>
                      <fileset>
                          <directory>${jmxGeneratorPath}</directory>
                          <includes>
                              <include>**</include>
                          </includes>
                      </fileset>
                      <fileset>
                          <directory>${salGeneratorPath}</directory>
                          <includes>
                              <include>**</include>
                          </includes>
                      </fileset>
                  </filesets>
              </configuration>
            </plugin>
          <plugin>
             <groupId>org.codehaus.mojo</groupId>
             <artifactId>build-helper-maven-plugin</artifactId>
             <version>${build.helper.version}</version>
             <executions>
                <execution>
                   <id>add-source</id>
                   <phase>generate-sources</phase>
                   <goals>
                      <goal>add-source</goal>
                   </goals>
                   <configuration>
                      <sources>
                         <source>${jmxGeneratorPath}</source>
                         <source>${salGeneratorPath}</source>
                         <source>${xtend.dstdir}</source>
                      </sources>
                   </configuration>
                </execution>
             </executions>
            </plugin>
            <plugin>
              <groupId>org.opendaylight.yangtools</groupId>
              <artifactId>yang-maven-plugin</artifactId>
              <version>${yang.binding.version}</version>
            </plugin>
            <plugin>
              <groupId>org.apache.felix</groupId>
              <artifactId>maven-bundle-plugin</artifactId>
              <version>${maven.bundle.version}</version>
              <extensions>true</extensions>
              <configuration>
                <instructions>
                  <Bundle-Name>${project.groupId}.${project.artifactId}</Bundle-Name>
                </instructions>
                <manifestLocation>${project.build.directory}/META-INF</manifestLocation>
              </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.codehaus.enunciate</groupId>
                        <artifactId>maven-enunciate-plugin</artifactId>
                        <versionRange>[0.0,)</versionRange>
                        <goals>
                          <goal>docs</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>
            <plugin>
              <groupId>org.apache.maven.plugins</groupId>
              <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-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>
          </plugins>
        </pluginManagement>
    </build>

    <profiles>
      <profile>
        <id>findbugsReport</id>
        <reporting>
          <plugins>
            <plugin>
              <groupId>org.apache.maven.plugins</groupId>
              <artifactId>maven-project-info-reports-plugin</artifactId>
              <version>2.7</version>
              <configuration>
                <dependencyDetailsEnabled>false</dependencyDetailsEnabled>
                <dependencyLocationsEnabled>false</dependencyLocationsEnabled>
              </configuration>
              <reportSets>
                <reportSet>
                  <reports>
                    <report>index</report>
                    <report>project-team</report>
                    <report>license</report>
                    <report>mailing-list</report>
                    <report>plugin-management</report>
                    <report>cim</report>
                    <report>issue-tracking</report>
                    <report>scm</report>
                    <report>summary</report>
                  </reports>
                </reportSet>
              </reportSets>
            </plugin>
            <plugin>
              <groupId>org.codehaus.mojo</groupId>
              <artifactId>findbugs-maven-plugin</artifactId>
              <version>2.5.2</version>
            </plugin>
            <plugin>
              <groupId>org.apache.maven.plugins</groupId>
              <artifactId>maven-pmd-plugin</artifactId>
              <version>3.0.1</version>
            </plugin>
            <plugin>
              <groupId>org.apache.maven.plugins</groupId>
              <artifactId>maven-jxr-plugin</artifactId>
              <version>2.3</version>
            </plugin>
          </plugins>
        </reporting>
      </profile>
    </profiles>

    <repositories>
      <repository>
        <id>opendaylight-snapshot</id>
        <name>opendaylight-snapshot</name>
        <url>http://nexus.opendaylight.org/content/repositories/opendaylight.snapshot</url>
        <releases>
          <enabled>false</enabled>
        </releases>
      </repository>
      <repository>
        <id>public</id>
        <name>public</name>
        <url>http://nexus.opendaylight.org/content/groups/public</url>
        <snapshots>
          <enabled>false</enabled>
        </snapshots>
      </repository>

    </repositories>

    <pluginRepositories>
      <pluginRepository>
        <id>opendaylight-central</id>
        <name>opendaylight-central</name>
        <url>http://nexus.opendaylight.org/content/repositories/public</url>
        <snapshots>
          <enabled>false</enabled>
        </snapshots>
      </pluginRepository>
      <pluginRepository>
        <id>opendaylight-snapshot</id>
        <name>central2</name>
        <url>http://nexus.opendaylight.org/content/repositories/opendaylight.snapshot</url>
        <releases>
          <enabled>false</enabled>
        </releases>
      </pluginRepository>
    </pluginRepositories>

    <modules>
      <module>openflowplugin-api</module>
      <module>openflowplugin</module>
      <module>extension</module>
      <module>distribution/base</module>
      <module>distribution/cbench</module>
      <module>distribution/karaf</module>
      <module>openflowplugin-controller-config</module>
      <module>openflowplugin-it</module>
      <module>test-provider</module>
      <module>drop-test</module>
      <module>drop-test-karaf</module>
      <module>test-common</module>
      <module>features</module>
      <module>samples/sample-consumer</module>
      <module>samples/learning-switch</module>
    <module>applications</module>
  </modules>
</project>
