<?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>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-skipper-parent</artifactId>
    <version>1.0.0.RELEASE</version>
    <name>Spring Cloud Skipper</name>
    <packaging>pom</packaging>
    <organization>
        <name>Pivotal Software, Inc.</name>
        <url>http://www.spring.io</url>
    </organization>
    <parent>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-build</artifactId>
        <version>1.3.7.RELEASE</version>
        <relativePath />
    </parent>

    <properties>

        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>

        <jline.version>2.12</jline.version>
        <jopt.version>4.6</jopt.version>

        <spring.version>4.3.7.RELEASE</spring.version>
        <spring-shell.version>2.0.0.RELEASE</spring-shell.version>
        <spring-statemachine.version>1.2.8.RELEASE</spring-statemachine.version>

        <spring-cloud.version>Dalston.RELEASE</spring-cloud.version>
        <spring-cloud-deployer.version>1.3.0.RELEASE</spring-cloud-deployer.version>
        <spring-cloud-deployer-local.version>1.3.0.RELEASE</spring-cloud-deployer-local.version>
        <spring-cloud-deployer-cloudfoundry.version>1.3.0.RELEASE</spring-cloud-deployer-cloudfoundry.version>
        <spring-cloud-deployer-kubernetes.version>1.3.0.RELEASE</spring-cloud-deployer-kubernetes.version>

        <dockerfile-maven-plugin.version>1.3.6</dockerfile-maven-plugin.version>
        <zeroturnaround.version>1.11</zeroturnaround.version>
        <spring-restdocs.version>1.2.2.RELEASE</spring-restdocs.version>
        <java-semver.version>0.9.0</java-semver.version>
        <spring-common-security>1.0.0.RELEASE</spring-common-security>

        <reactor.version>3.0.7.RELEASE</reactor.version>
        <jsonpath.version>2.2.0</jsonpath.version>
        <commons-lang.version>3.4</commons-lang.version>
        <equalverifier.version>2.4.1</equalverifier.version>
        <flyway.version>5.0.5</flyway.version>
        <hibernate.jpa.version>1.0.0.Final</hibernate.jpa.version>

        <jacoco-maven-plugin.version>0.7.9</jacoco-maven-plugin.version>
        <surefire-maven-plugin.version>2.20</surefire-maven-plugin.version>
        <sonar-maven-plugin.version>3.0.2</sonar-maven-plugin.version>
        <checkstyle.config.location>etc/checkstyle/checkstyle.xml</checkstyle.config.location>
        <javadoc.opts>-Xdoclint:none</javadoc.opts>
        <checkstyle.config.location>etc/checkstyle/checkstyle.xml</checkstyle.config.location>

        <commons-io.version>2.5</commons-io.version>
        <snakeyaml.version>1.18</snakeyaml.version>

        <maven-javadoc-plugin.version>2.10.1</maven-javadoc-plugin.version>
        <asciidoctor-maven-plugin.version>1.5.3</asciidoctor-maven-plugin.version>
        <asciidoctorj-pdf.version>1.5.0-alpha.11</asciidoctorj-pdf.version>
        <docbkx-maven-plugin.version>2.0.15</docbkx-maven-plugin.version>
        <xslthl.version>2.1.0</xslthl.version>
        <docbook-xml.version>5.0-all</docbook-xml.version>
        <maven-antrun-plugin.version>1.8</maven-antrun-plugin.version>
        <ant-contrib.version>1.0b3</ant-contrib.version>
        <ant-nodeps.version>1.8.1</ant-nodeps.version>
        <antelopetasks.version>3.2.10</antelopetasks.version>
        <build-helper-maven-plugin>1.9.1</build-helper-maven-plugin>

    </properties>

    <modules>
        <module>spring-cloud-skipper-server-core</module>
        <module>spring-cloud-skipper-server</module>
        <module>spring-cloud-skipper</module>
        <module>spring-cloud-skipper-shell</module>
        <module>spring-cloud-skipper-shell-commands</module>
        <module>spring-cloud-skipper-client</module>
        <module>spring-cloud-skipper-docs</module>
        <module>spring-cloud-skipper-platform-cloudfoundry</module>
        <module>spring-cloud-skipper-platform-kubernetes</module>
    </modules>
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>${spring-cloud.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-skipper-client</artifactId>
                <version>1.0.0.RELEASE</version>
            </dependency>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-skipper</artifactId>
                <version>1.0.0.RELEASE</version>
            </dependency>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-skipper-server-core</artifactId>
                <version>1.0.0.RELEASE</version>
            </dependency>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-skipper-server</artifactId>
                <version>1.0.0.RELEASE</version>
            </dependency>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-skipper-shell</artifactId>
                <version>1.0.0.RELEASE</version>
            </dependency>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-skipper-shell-commands</artifactId>
                <version>1.0.0.RELEASE</version>
            </dependency>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-skipper-platform-cloudfoundry</artifactId>
                <version>1.0.0.RELEASE</version>
            </dependency>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-skipper-platform-kubernetes</artifactId>
                <version>1.0.0.RELEASE</version>
            </dependency>
            <dependency>
                <groupId>org.springframework.shell</groupId>
                <artifactId>spring-shell-starter</artifactId>
                <version>${spring-shell.version}</version>
            </dependency>
            <dependency>
                <groupId>org.springframework.statemachine</groupId>
                <artifactId>spring-statemachine-boot</artifactId>
                <version>${spring-statemachine.version}</version>
            </dependency>
            <dependency>
                <groupId>org.springframework.statemachine</groupId>
                <artifactId>spring-statemachine-data-jpa</artifactId>
                <version>${spring-statemachine.version}</version>
            </dependency>
            <dependency>
                <groupId>org.springframework.statemachine</groupId>
                <artifactId>spring-statemachine-test</artifactId>
                <version>${spring-statemachine.version}</version>
            </dependency>
            <dependency>
                <groupId>org.zeroturnaround</groupId>
                <artifactId>zt-zip</artifactId>
                <version>1.11</version>
            </dependency>
            <dependency>
                <groupId>org.flywaydb</groupId>
                <artifactId>flyway-core</artifactId>
                <version>${flyway.version}</version>
            </dependency>
        </dependencies>
    </dependencyManagement>
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>${surefire-maven-plugin.version}</version>
                <configuration>
                    <includes>
                        <include>**/*Tests.java</include>
                        <include>**/*Test.java</include>
                    </includes>
                    <excludes>
                        <exclude>**/Abstract*.java</exclude>
                    </excludes>
                    <!-- see http://stackoverflow.com/questions/18107375/getting-skipping-jacoco-execution-due-to-missing-execution-data-file-upon-exec -->
                    <argLine>${argLine}</argLine>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.jacoco</groupId>
                <artifactId>jacoco-maven-plugin</artifactId>
                <executions>
                    <execution>
                        <id>agent</id>
                        <goals>
                            <goal>prepare-agent</goal>
                        </goals>
                    </execution>
                    <execution>
                        <id>report</id>
                        <phase>test</phase>
                        <goals>
                            <goal>report</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-checkstyle-plugin</artifactId>
                <executions>
                    <execution>
                        <id>checkstyle-validation</id>
                        <phase>validate</phase>
                        <configuration>
                            <encoding>UTF-8</encoding>
                            <!--<failsOnError>true</failsOnError>-->
                            <failOnViolation>true</failOnViolation>
                            <violationSeverity>warning</violationSeverity>
                            <includeTestSourceDirectory>true</includeTestSourceDirectory>
                        </configuration>
                        <goals>
                            <goal>check</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                    <version>${spring-boot.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.sonarsource.scanner.maven</groupId>
                    <artifactId>sonar-maven-plugin</artifactId>
                    <version>${sonar-maven-plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.jacoco</groupId>
                    <artifactId>jacoco-maven-plugin</artifactId>
                    <version>${jacoco-maven-plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-jar-plugin</artifactId>
                    <version>3.0.2</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-source-plugin</artifactId>
                    <version>3.0.1</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-javadoc-plugin</artifactId>
                    <version>2.10.4</version>
                    <executions>
                        <execution>
                            <id>attach-javadocs</id>
                            <goals>
                                <goal>jar</goal>
                            </goals>
                            <configuration>
                                <additionalparam>${javadoc.opts}</additionalparam>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-checkstyle-plugin</artifactId>
                    <version>2.17</version>
                    <dependencies>
                        <dependency>
                            <groupId>com.puppycrawl.tools</groupId>
                            <artifactId>checkstyle</artifactId>
                            <version>7.6.1</version>
                        </dependency>
                    </dependencies>
                </plugin>
            </plugins>
        </pluginManagement>
    </build>
    <reporting>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jxr-plugin</artifactId>
                <version>2.5</version>
            </plugin>
        </plugins>
    </reporting>
    <profiles>
        <profile>
            <id>spring</id>
            <repositories>
                <repository>
                    <id>spring-snapshots</id>
                    <name>Spring Snapshots</name>
                    <url>http://repo.spring.io/libs-snapshot-local</url>
                    <snapshots>
                        <enabled>true</enabled>
                    </snapshots>
                </repository>
                <repository>
                    <id>spring-milestones</id>
                    <name>Spring Milestones</name>
                    <url>http://repo.spring.io/libs-milestone-local</url>
                    <snapshots>
                        <enabled>false</enabled>
                    </snapshots>
                </repository>
                <repository>
                    <id>spring-releases</id>
                    <name>Spring Releases</name>
                    <url>http://repo.spring.io/release</url>
                    <snapshots>
                        <enabled>false</enabled>
                    </snapshots>
                </repository>
            </repositories>
            <pluginRepositories>
                <pluginRepository>
                    <id>spring-snapshots</id>
                    <name>Spring Snapshots</name>
                    <url>http://repo.spring.io/libs-snapshot-local</url>
                    <snapshots>
                        <enabled>true</enabled>
                    </snapshots>
                </pluginRepository>
                <pluginRepository>
                    <id>spring-milestones</id>
                    <name>Spring Milestones</name>
                    <url>http://repo.spring.io/libs-milestone-local</url>
                    <snapshots>
                        <enabled>false</enabled>
                    </snapshots>
                </pluginRepository>
            </pluginRepositories>
        </profile>
        <profile>
            <id>coverage</id>
            <activation>
                <property>
                    <name>env.TRAVIS</name>
                    <value>true</value>
                </property>
            </activation>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.jacoco</groupId>
                        <artifactId>jacoco-maven-plugin</artifactId>
                        <version>0.7.9</version>
                        <executions>
                            <execution>
                                <id>agent</id>
                                <goals>
                                    <goal>prepare-agent</goal>
                                </goals>
                            </execution>
                            <execution>
                                <id>report</id>
                                <phase>test</phase>
                                <goals>
                                    <goal>report</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
    </profiles>
</project>
