<?xml version="1.0" encoding="UTF-8"?>
<!-- vi: set et smarttab sw=4 tabstop=4: -->
<!--
 Copyright (c) 2013 Cisco Systems, Inc. and others.  All rights reserved.

 This program and the accompanying materials are made available under the
 terms of the Eclipse Public License v1.0 which accompanies this distribution,
 and is available at http://www.eclipse.org/legal/epl-v10.html
-->
<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>
    <scm>
        <connection>scm:git:ssh://git.opendaylight.org:29418/bgpcep.git</connection>
        <developerConnection>scm:git:ssh://git.opendaylight.org:29418/bgpcep.git</developerConnection>
        <url>https://wiki.opendaylight.org/view/BGP_LS_PCEP:Main</url>
        <tag>HEAD</tag>
    </scm>
    <parent>
        <groupId>org.opendaylight.odlparent</groupId>
        <artifactId>odlparent</artifactId>
        <version>2.0.5</version>
        <relativePath>../..//odlparent/odlparent</relativePath>
    </parent>

    <groupId>org.opendaylight.bgpcep</groupId>
    <artifactId>bgpcep-parent</artifactId>
    <name>BGPCEP common parent</name>
    <version>0.8.2</version>
    <packaging>pom</packaging>

    <licenses>
        <license>
            <name>The Eclipse Public License v1.0</name>
            <url>http://www.eclipse.org/legal/epl-v10.html</url>
            <distribution>repo</distribution>
        </license>
    </licenses>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

        <maven.info.reports.version>2.7</maven.info.reports.version>

        <!-- YANG tools artifacts -->
        <yangtools.version>1.2.2</yangtools.version>

        <!-- MD-SAL artifacts -->
        <mdsal.version>2.3.2</mdsal.version>
        <mdsal.model.version>0.11.2</mdsal.model.version>

        <!-- Controller artifacts -->
        <controller.config.version>0.7.2</controller.config.version>
        <controller.framework.version>0.10.2</controller.framework.version>
        <controller.mdsal.version>1.6.2</controller.mdsal.version>

        <bgpcep.version>0.8.2</bgpcep.version>
    </properties>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.opendaylight.bgpcep</groupId>
                <artifactId>bgpcep-artifacts</artifactId>
                <version>${bgpcep.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>

            <!-- YANG tools -->
            <dependency>
                <groupId>org.opendaylight.yangtools</groupId>
                <artifactId>yangtools-artifacts</artifactId>
                <version>${yangtools.version}</version>
                <scope>import</scope>
                <type>pom</type>
            </dependency>

            <!-- MD-SAL -->
            <dependency>
                <groupId>org.opendaylight.mdsal</groupId>
                <artifactId>mdsal-artifacts</artifactId>
                <version>${mdsal.version}</version>
                <scope>import</scope>
                <type>pom</type>
            </dependency>
            <dependency>
                <groupId>org.opendaylight.mdsal.model</groupId>
                <artifactId>mdsal-model-artifacts</artifactId>
                <version>${mdsal.model.version}</version>
                <scope>import</scope>
                <type>pom</type>
            </dependency>

            <!-- Controller infrastructure -->
            <dependency>
                <groupId>org.opendaylight.controller</groupId>
                <artifactId>mdsal-artifacts</artifactId>
                <version>${controller.mdsal.version}</version>
                <scope>import</scope>
                <type>pom</type>
            </dependency>
            <dependency>
                <groupId>org.opendaylight.controller</groupId>
                <artifactId>config-artifacts</artifactId>
                <version>${controller.config.version}</version>
                <scope>import</scope>
                <type>pom</type>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <reporting>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-project-info-reports-plugin</artifactId>
                <version>${maven.info.reports.version}</version>
                <reportSets>
                    <reportSet>
                        <reports>
                            <report>dependency-info</report>
                            <report>license</report>
                        </reports>
                    </reportSet>
                </reportSets>
            </plugin>
            <!--plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>findbugs-maven-plugin</artifactId>
                <version>2.4.0</version>
                <configuration>
                    <effort>Max</effort>
                    <threshold>Low</threshold>
                    <goal>site</goal>
                </configuration>
            </plugin-->
        </plugins>
    </reporting>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>${java.version.source}</source>
                    <target>${java.version.target}</target>
                    <testSource>${java.version.source}</testSource>
                    <testTarget>${java.version.target}</testTarget>
                    <showDeprecation>true</showDeprecation>
                    <showWarnings>true</showWarnings>
                    <optimize>true</optimize>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <configuration>
                    <redirectTestOutputToFile>true</redirectTestOutputToFile>
                    <!--parallel>classes</parallel>
                    <forkCount>1C</forkCount>
                    <perCoreThreadCount>true</perCoreThreadCount-->
                    <runOrder>alphabetical</runOrder>
                    <threadCount>1</threadCount>
                    <reuseForks>false</reuseForks>
                    <!-- Specific to generate mapping between tests and covered code -->
                    <!--properties>
                        <property>
                            <name>listener</name>
                            <value>org.sonar.java.jacoco.JUnitListener</value>
                        </property>
                    </properties-->
                </configuration>
            </plugin>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-dependency-plugin</artifactId>
                <configuration>
                    <failOnWarning>true</failOnWarning>
                    <ignoreNonCompile>true</ignoreNonCompile>
                </configuration>
            </plugin>
            <plugin>
                <!-- Let eclipse know about the generated sources -->
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>build-helper-maven-plugin</artifactId>
                <executions>
                    <execution>
                        <phase>generate-sources</phase>
                        <goals>
                            <goal>add-source</goal>
                        </goals>
                        <configuration>
                            <sources>
                                <source>target/generated-sources/sal</source>
                                <source>target/generated-sources/config</source>
                            </sources>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-checkstyle-plugin</artifactId>
                <configuration>
                    <failOnViolation>true</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\/,**\/
                        .m2repo\/,**\/org/opendaylight/protocol/util/LoggerUtil.java,**\/org/opendaylight/protocol/util/LoggerUtilTest.java</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>
        </plugins>

        <pluginManagement>
            <plugins>
                <!--This plugin's configuration is used to store Eclipse m2e settings
                    only. It has no influence on the Maven build itself. -->
                <plugin>
                    <groupId>org.eclipse.m2e</groupId>
                    <artifactId>lifecycle-mapping</artifactId>
                    <version>1.0.0</version>
                    <configuration>
                        <lifecycleMappingMetadata>
                            <pluginExecutions>
                                <pluginExecution>
                                    <pluginExecutionFilter>
                                        <groupId>pl.project13.maven</groupId>
                                        <artifactId>git-commit-id-plugin</artifactId>
                                        <versionRange>[2.1.4,)</versionRange>
                                        <goals>
                                            <goal>revision</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.jacoco</groupId>
                                       <artifactId>jacoco-maven-plugin</artifactId>
                                       <versionRange>[0.6,)</versionRange>
                                       <goals>
                                           <goal>prepare-agent</goal>
                                       </goals>
                                    </pluginExecutionFilter>
                                    <action>
                                        <ignore/>
                                    </action>
                                </pluginExecution>
                                <pluginExecution>
                                    <pluginExecutionFilter>
                                        <groupId>org.apache.maven.plugins</groupId>
                                        <artifactId>maven-checkstyle-plugin</artifactId>
                                        <versionRange>[2.13,)</versionRange>
                                        <goals>
                                            <goal>check</goal>
                                        </goals>
                                    </pluginExecutionFilter>
                                    <action>
                                        <execute/>
                                    </action>
                                </pluginExecution>
                            </pluginExecutions>
                        </lifecycleMappingMetadata>
                    </configuration>
                </plugin>

                <!-- Our YANG->DTO generation plugin -->
                <plugin>
                    <groupId>org.opendaylight.yangtools</groupId>
                    <artifactId>yang-maven-plugin</artifactId>
                    <version>${yangtools.version}</version>
                    <executions>
                        <execution>
                            <goals>
                                <goal>generate-sources</goal>
                            </goals>
                            <configuration>
                                <yangFilesRootDir>src/main/yang</yangFilesRootDir>
                                <codeGenerators>
                                    <generator>
                                        <codeGeneratorClass>
                                            org.opendaylight.mdsal.binding.maven.api.gen.plugin.CodeGeneratorImpl
                                        </codeGeneratorClass>
                                        <outputBaseDir>
                                            target/generated-sources/sal
                                        </outputBaseDir>
                                    </generator>
                                    <generator>
                                        <codeGeneratorClass>org.opendaylight.mdsal.binding.yang.unified.doc.generator.maven.DocumentationGeneratorImpl</codeGeneratorClass>
                                        <outputBaseDir>target/site</outputBaseDir>
                                    </generator>
                                    <generator>
                                        <codeGeneratorClass>org.opendaylight.mdsal.binding.yang.wadl.generator.maven.WadlGenerator</codeGeneratorClass>
                                        <outputBaseDir>target/site</outputBaseDir>
                                    </generator>
                                    <generator>
                                        <codeGeneratorClass>
                                            org.opendaylight.controller.config.yangjmxgenerator.plugin.JMXGenerator
                                        </codeGeneratorClass>
                                        <outputBaseDir>${project.build.directory}/generated-sources/config</outputBaseDir>
                                        <additionalConfiguration>
                                            <namespaceToPackage1>
                                                urn:opendaylight:params:xml:ns:yang:controller==org.opendaylight.controller.config.yang
                                            </namespaceToPackage1>
                                        </additionalConfiguration>
                                    </generator>
                                </codeGenerators>
                                <inspectDependencies>true</inspectDependencies>
                            </configuration>
                        </execution>
                    </executions>
                    <dependencies>
                        <dependency>
                            <groupId>org.opendaylight.mdsal</groupId>
                            <artifactId>maven-sal-api-gen-plugin</artifactId>
                            <version>${mdsal.model.version}</version>
                            <type>jar</type>
                        </dependency>
                        <dependency>
                            <groupId>org.opendaylight.controller</groupId>
                            <artifactId>yang-jmx-generator-plugin</artifactId>
                            <version>${controller.config.version}</version>
                        </dependency>
                    </dependencies>
                </plugin>
            </plugins>
        </pluginManagement>
    </build>

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