<?xml version="1.0" encoding="UTF-8"?>
<!--
      Licensed to the Apache Software Foundation (ASF) under one or more
      contributor license agreements.  See the NOTICE file distributed with
      this work for additional information regarding copyright ownership.
      The ASF licenses this file to You under the Apache License, Version 2.0
      (the "License"); you may not use this file except in compliance with
      the License.  You may obtain a copy of the License at
          http://www.apache.org/licenses/LICENSE-2.0
      Unless required by applicable law or agreed to in writing, software
      distributed under the License is distributed on an "AS IS" BASIS,
      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
      See the License for the specific language governing permissions and
      limitations under the License.
   -->
<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>com.capitalone.dashboard</groupId>
    <artifactId>core</artifactId>
    <packaging>jar</packaging>
    <version>3.7.5</version>
    <name>${project.groupId}:${project.artifactId}</name>
    <description>Core package shared by API layer and Microservices</description>
    <url>https://github.com/Hygieia/hygieia-core</url>

    <organization>
        <name>Hygieia</name>
        <url>https://www.github.com/Hygieia</url>
    </organization>

    <properties>
        <apache.rat.plugin.version>0.13</apache.rat.plugin.version>
        <coveralls.maven.plugin.version>4.3.0</coveralls.maven.plugin.version>
        <guava.version>19</guava.version>
        <hamcrest.version>1.3</hamcrest.version>
        <jacoco.maven.plugin.version>0.8.5</jacoco.maven.plugin.version>
        <jacoco.coverage.percentage.minimum>0.200</jacoco.coverage.percentage.minimum>
        <jacoco.classes.missed.minimum>300</jacoco.classes.missed.minimum>
        <java.compilation.source>1.8</java.compilation.source>
        <java.compilation.target>1.8</java.compilation.target>
        <joda-time.version>2.7</joda-time.version>
        <joda-convert.version>1.8.1</joda-convert.version>
        <jackson.version>2.10.3</jackson.version>
        <junit.version>4.11</junit.version>
        <maven.compiler.plugin.version>3.8.1</maven.compiler.plugin.version>
        <maven.changes.plugin.version>2.12.1</maven.changes.plugin.version>
        <maven.checkstyle.plugin.version>3.0.0</maven.checkstyle.plugin.version>
        <maven.javadoc.plugin.version>3.1.0</maven.javadoc.plugin.version>
        <maven.pmd.plugin.version>3.11.0</maven.pmd.plugin.version>
        <maven.project-info.version>3.0.0</maven.project-info.version>
        <maven.scm.publish.plugin.version>3.0.0</maven.scm.publish.plugin.version>
        <maven.site.plugin.version>3.7.1</maven.site.plugin.version>
        <mongo>3.0.2</mongo>
        <mongodb.version>3.0.2</mongodb.version>
        <pmd.version>3.6</pmd.version>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <site.publish.url>https://github.com/Hygieia/hygieia-core</site.publish.url>
        <site.publish.checkout.directory>site-content</site.publish.checkout.directory>
        <spotbugs.plugin.version>3.1.11</spotbugs.plugin.version>
        <spring.version>4.1.7.RELEASE</spring.version>
        <spring.data.version>1.8.0.RELEASE</spring.data.version>
        <spring-data-releasetrain.version>Gosling-RELEASE</spring-data-releasetrain.version>
        <spring.version>4.2.5.RELEASE</spring.version>
        <spring.cloud.version>1.3.1.RELEASE</spring.cloud.version>
    </properties>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.3.0.RELEASE</version>
    </parent>

    <scm>
        <connection>scm:git:http://github.com/Hygieia/hygieia-core.git</connection>
        <developerConnection>scm:git:http://github.com/Hygieia/hygieia-core.git
        </developerConnection>
        <url>http://github.com/Hygieia/hygieia-core</url>
        <tag>HEAD</tag>
    </scm>

    <distributionManagement>
        <snapshotRepository>
            <id>ossrh</id>
            <url>https://oss.sonatype.org/content/repositories/snapshots</url>
        </snapshotRepository>
        <repository>
            <id>ossrh</id>
            <url>https://oss.sonatype.org/service/local/staging/deploy/maven2/</url>
        </repository>
        <site>
            <id>hygieia.core.website</id>
            <name>Capital One Maven Plugins Site</name>
            <url>scm:git:https://${github.username}@github.com/Hygieia/hygieia-core</url>
        </site>
    </distributionManagement>

    <developers>
        <developer>
            <id>tabladrum</id>
            <name>Tapabrata "Topo" Pal</name>
            <email>tapabrata.pal@capitalone.com</email>
            <url>https://github.com/tabladrum</url>
            <roles>
                <role>maintainer</role>
            </roles>
            <timezone>America/New_York</timezone>
        </developer>
        <developer>
            <id>rvema</id>
            <name>Raghavendra Vema</name>
            <email>ragha.vema@capitalone.com</email>
            <url>https://github.com/rvema</url>
            <roles>
                <role>maintainer</role>
            </roles>
            <timezone>America/New_York</timezone>
        </developer>
        <developer>
            <id>nireeshT</id>
            <name>Nireesh Thiruveedula</name>
            <email>nireesh.thiruveedula@capitalone.com</email>
            <url>https://github.com/nireesht</url>
            <roles>
                <role>maintainer</role>
            </roles>
            <timezone>America/New_York</timezone>
        </developer>
        <developer>
            <id>sbrenthughes</id>
            <name>Stephen Hughes</name>
            <email>stephen.hughes@capitalone.com</email>
            <url>https://github.com/sbrenthughes</url>
            <roles>
                <role>maintainer</role>
            </roles>
            <timezone>America/New_York</timezone>
        </developer>
        <developer>
            <name>Matthew Beasley</name>
            <email>matthew.beasley@capitalone.com</email>
            <id>matthewbeasley</id>
        </developer>
        <developer>
            <name>Rob Tompkins</name>
            <url>https://github.com/chtompki</url>
            <id>chtompki</id>
        </developer>
    </developers>



    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot</artifactId>
        </dependency>
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-classic</artifactId>
            <version>1.2.3</version>
            <scope>test</scope>
        </dependency>

        <!-- Misc Deps -->
        <dependency>
            <groupId>com.google.guava</groupId>
            <artifactId>guava</artifactId>
            <version>19.0</version>
        </dependency>

        <!-- apache commons -->
        <dependency>
            <groupId>commons-codec</groupId>
            <artifactId>commons-codec</artifactId>
            <version>1.13</version>
        </dependency>
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
            <version>3.9</version>
        </dependency>
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-collections4</artifactId>
            <version>4.1</version>
        </dependency>
        <!-- spring -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-test</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.data</groupId>
            <artifactId>spring-data-mongodb</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-config</artifactId>
            <version>${spring.cloud.version}</version>
            <exclusions>
                <exclusion>
                    <groupId>org.bouncycastle</groupId>
                    <artifactId>bcprov-jdk15on</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

        <!-- Query DSL -->
        <dependency>
            <groupId>com.mysema.querydsl</groupId>
            <artifactId>querydsl-jpa</artifactId>
            <version>3.6.0</version>
        </dependency>
        <dependency>
            <groupId>com.mysema.querydsl</groupId>
            <artifactId>querydsl-apt</artifactId>
            <version>3.6.0</version>
        </dependency>
        <dependency>
            <groupId>com.mysema.querydsl</groupId>
            <artifactId>querydsl-mongodb</artifactId>
            <version>3.6.0</version>
        </dependency>

        <dependency>
            <groupId>org.springframework.data</groupId>
            <artifactId>spring-data-commons</artifactId>
            <version>1.11.0.RELEASE</version>
        </dependency>


        <dependency>
            <groupId>com.googlecode.json-simple</groupId>
            <artifactId>json-simple</artifactId>
        </dependency>

        <!-- jasypt spring boot -->
        <dependency>
            <groupId>com.github.ulisesbocchio</groupId>
            <artifactId>jasypt-spring-boot-starter</artifactId>
            <version>1.9</version>
        </dependency>

        <!-- testing -->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.hamcrest</groupId>
            <artifactId>hamcrest-all</artifactId>
            <version>${hamcrest.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>javax.validation</groupId>
            <artifactId>validation-api</artifactId>
            <version>1.1.0.Final</version>
        </dependency>
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-validator</artifactId>
        </dependency>
        <dependency>
            <groupId>javax.el</groupId>
            <artifactId>javax.el-api</artifactId>
            <version>2.2.4</version>
        </dependency>
        <dependency>
            <groupId>org.joda</groupId>
            <artifactId>joda-convert</artifactId>
            <version>1.8.1</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>commons-beanutils</groupId>
            <artifactId>commons-beanutils</artifactId>
            <version>1.9.4</version>
            <exclusions>
                <exclusion>
                    <groupId>commons-collections</groupId>
                    <artifactId>commons-collections</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

        <dependency>
            <groupId>commons-collections</groupId>
            <artifactId>commons-collections</artifactId>
            <version>3.2.2</version>
        </dependency>

        <dependency>
            <groupId>com.google.code.gson</groupId>
            <artifactId>gson</artifactId>
            <version>2.7</version>
        </dependency>
        <dependency>
            <groupId>com.github.fakemongo</groupId>
            <artifactId>fongo</artifactId>
            <version>2.0.3</version>
        </dependency>
        <dependency>
            <groupId>org.mockito</groupId>
            <artifactId>mockito-all</artifactId>
            <version>1.10.19</version>
        </dependency>
        <dependency>
            <groupId>joda-time</groupId>
            <artifactId>joda-time</artifactId>
        </dependency>
        <dependency>
            <groupId>commons-io</groupId>
            <artifactId>commons-io</artifactId>
            <version>2.1</version>
        </dependency>
        <dependency>
            <groupId>javax.annotation</groupId>
            <artifactId>javax.annotation-api</artifactId>
            <version>1.3.2</version>
        </dependency>
        <dependency>
            <groupId>javax.xml.bind</groupId>
            <artifactId>jaxb-api</artifactId>
            <version>2.2.11</version>
        </dependency>
        <dependency>
            <groupId>com.sun.xml.bind</groupId>
            <artifactId>jaxb-core</artifactId>
            <version>2.2.11</version>
        </dependency>
        <dependency>
            <groupId>com.sun.xml.bind</groupId>
            <artifactId>jaxb-impl</artifactId>
            <version>2.2.11</version>
        </dependency>
        <dependency>
            <groupId>javax.activation</groupId>
            <artifactId>activation</artifactId>
            <version>1.1.1</version>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>com.mysema.maven</groupId>
                <artifactId>apt-maven-plugin</artifactId>
                <version>1.1.3</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>process</goal>
                        </goals>
                        <configuration>
                            <outputDirectory>target/generated-sources/java</outputDirectory>
                            <processor>org.springframework.data.mongodb.repository.support.MongoAnnotationProcessor
                            </processor>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>${maven.compiler.plugin.version}</version>
                <configuration>
                    <source>${java.compilation.source}</source>
                    <target>${java.compilation.target}</target>
                </configuration>
            </plugin>
            <plugin>
                <groupId>com.github.siom79.japicmp</groupId>
                <artifactId>japicmp-maven-plugin</artifactId>
                <version>0.13.1</version>
                <configuration>
                    <parameter>
                        <!-- see documentation -->
                    </parameter>
                </configuration>
                <executions>
                    <execution>
                        <phase>verify</phase>
                        <goals>
                            <goal>cmp</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-checkstyle-plugin</artifactId>
                <version>${maven.checkstyle.plugin.version}</version>
                <configuration>
                    <configLocation>src/devops/checkstyle.xml</configLocation>
                    <suppressionsLocation>src/devops/checkstyle-suppressions.xml</suppressionsLocation>
                    <encoding>UTF-8</encoding>
                    <consoleOutput>true</consoleOutput>
                    <failsOnError>false</failsOnError>
                    <linkXRef>false</linkXRef>
                </configuration>
                <executions>
                    <execution>
                        <id>validate</id>
                        <phase>validate</phase>
                        <goals>
                            <goal>check</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.rat</groupId>
                <artifactId>apache-rat-plugin</artifactId>
                <version>${apache.rat.plugin.version}</version>
                <configuration>
                    <excludes>
                        <exclude>.tests/**</exclude>
                        <exclude>.tests/**</exclude>
                        <exclude>logs/**</exclude>
                        <exclude>src/test/resources/org/tmatesoft/svn/test/apache.config.template</exclude>
                        <exclude>src/test/resources/org/tmatesoft/svn/test/test.properties.template</exclude>
                        <exclude>src/test/resources/org/tmatesoft/svn/test/svnserve.config.template</exclude>
                        <exclude>src/main/resources/banner.txt</exclude>
                    </excludes>
                </configuration>
            </plugin>
            <plugin>
                <groupId>com.github.spotbugs</groupId>
                <artifactId>spotbugs-maven-plugin</artifactId>
                <version>${spotbugs.plugin.version}</version>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-pmd-plugin</artifactId>
                <version>${maven.pmd.plugin.version}</version>
                <configuration>
                    <failOnViolation>false</failOnViolation>
                    <rulesets>
                        <ruleset>src/devops/pmd.xml</ruleset>
                    </rulesets>
                    <targetJdk>${java.compilation.target}</targetJdk>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.jacoco</groupId>
                <artifactId>jacoco-maven-plugin</artifactId>
                <version>${jacoco.maven.plugin.version}</version>
                <executions>
                    <execution>
                        <id>default-prepare-agent</id>
                        <goals>
                            <goal>prepare-agent</goal>
                        </goals>
                    </execution>
                    <execution>
                        <id>default-report</id>
                        <phase>prepare-package</phase>
                        <goals>
                            <goal>report</goal>
                        </goals>
                    </execution>
                    <execution>
                        <id>default-check</id>
                        <goals>
                            <goal>check</goal>
                        </goals>
                        <configuration>
                            <rules>
                                <rule>
                                    <element>BUNDLE</element>
                                    <limits>
                                        <limit>
                                            <counter>INSTRUCTION</counter>
                                            <value>COVEREDRATIO</value>
                                            <minimum>${jacoco.coverage.percentage.minimum}</minimum>
                                        </limit>
                                        <limit>
                                            <counter>CLASS</counter>
                                            <value>MISSEDCOUNT</value>
                                            <maximum>${jacoco.classes.missed.minimum}</maximum>
                                        </limit>
                                    </limits>
                                </rule>
                            </rules>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-scm-publish-plugin</artifactId>
                <version>${maven.scm.publish.plugin.version}</version>
                <configuration>
                    <content>${project.build.directory}/site</content>
                    <checkoutDirectory>${site.publish.checkout.directory}</checkoutDirectory>
                    <scmBranch>gh-pages</scmBranch>
                    <tryUpdate>true</tryUpdate>
                </configuration>
                <dependencies>
                    <dependency>
                        <groupId>org.apache.maven.scm</groupId>
                        <artifactId>maven-scm-provider-gitexe</artifactId>
                        <version>1.9.5</version>
                        <scope>compile</scope>
                    </dependency>
                    <dependency>
                        <groupId>org.sonatype.plexus</groupId>
                        <artifactId>plexus-cipher</artifactId>
                        <version>1.4</version>
                    </dependency>
                </dependencies>
                <executions>
                    <execution>
                        <id>scm-publish</id>
                        <phase>site-deploy</phase>
                        <!--  deploy site with maven-scm-publish-plugin  -->
                        <goals>
                            <goal>publish-scm</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-site-plugin</artifactId>
                <version>${maven.site.plugin.version}</version>
                <configuration>
                    <!-- don't deploy site with maven-site-plugin -->
                    <skipDeploy>true</skipDeploy>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-deploy-plugin</artifactId>
                <version>2.8.2</version>
                <executions>
                    <execution>
                        <id>default-deploy</id>
                        <phase>deploy</phase>
                        <goals>
                            <goal>deploy</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.sonatype.plugins</groupId>
                <artifactId>nexus-staging-maven-plugin</artifactId>
                <version>1.6.8</version>
                <extensions>true</extensions>
                <configuration>
                    <serverId>ossrh</serverId>
                    <nexusUrl>https://oss.sonatype.org/</nexusUrl>
                    <autoReleaseAfterClose>true</autoReleaseAfterClose>
                    <autoDropAfterRelease>true</autoDropAfterRelease>
                    <stagingProfileId>26a9600c05a6d3</stagingProfileId>
                </configuration>
            </plugin>
        </plugins>
        <testResources>
            <testResource>
                <directory>src/test/resources</directory>
            </testResource>
        </testResources>
    </build>

    <reporting>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-javadoc-plugin</artifactId>
                <version>${maven.javadoc.plugin.version}</version>
                <configuration>
                    <failOnError>false</failOnError>
                    <failOnWarnings>false</failOnWarnings>
                    <excludes>**/*Test*.java</excludes>
                </configuration>
            </plugin>
            <plugin>
                <artifactId>maven-checkstyle-plugin</artifactId>
                <version>${maven.checkstyle.plugin.version}</version>
                <configuration>
                    <configLocation>${basedir}/src/devops/checkstyle.xml</configLocation>
                    <suppressionsLocation>${basedir}/src/devops/checkstyle-suppressions.xml</suppressionsLocation>
                    <includeTestSourceDirectory>false</includeTestSourceDirectory>
                    <enableRulesSummary>false</enableRulesSummary>
                </configuration>
                <reportSets>
                    <reportSet>
                        <reports>
                            <report>checkstyle</report>
                        </reports>
                    </reportSet>
                </reportSets>
            </plugin>
            <plugin>
                <groupId>org.jacoco</groupId>
                <artifactId>jacoco-maven-plugin</artifactId>
                <version>${jacoco.maven.plugin.version}</version>
                <reportSets>
                    <reportSet>
                        <reports>
                            <report>report</report>
                        </reports>
                    </reportSet>
                </reportSets>
            </plugin>
            <plugin>
                <groupId>com.github.siom79.japicmp</groupId>
                <artifactId>japicmp-maven-plugin</artifactId>
                <version>0.13.1</version>
            </plugin>
            <plugin>
                <groupId>org.apache.rat</groupId>
                <artifactId>apache-rat-plugin</artifactId>
                <version>${apache.rat.plugin.version}</version>
                <configuration>
                    <excludes>
                        <exclude>.tests/**</exclude>
                        <exclude>logs/**</exclude>
                        <exclude>src/test/resources/org/tmatesoft/svn/test/apache.config.template</exclude>
                        <exclude>src/test/resources/org/tmatesoft/svn/test/test.properties.template</exclude>
                        <exclude>src/test/resources/org/tmatesoft/svn/test/svnserve.config.template</exclude>
                        <exclude>src/main/resources/banner.txt</exclude>
                    </excludes>
                </configuration>
            </plugin>
            <plugin>
                <groupId>com.github.spotbugs</groupId>
                <artifactId>spotbugs-maven-plugin</artifactId>
                <version>${spotbugs.plugin.version}</version>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-pmd-plugin</artifactId>
                <version>${maven.pmd.plugin.version}</version>
                <configuration>
                    <failOnViolation>false</failOnViolation>
                    <rulesets>
                        <ruleset>src/devops/pmd.xml</ruleset>
                    </rulesets>
                    <targetJdk>${java.compilation.target}</targetJdk>
                </configuration>
                <reportSets>
                    <reportSet>
                        <reports>
                            <report>pmd</report>
                            <report>cpd</report>
                        </reports>
                    </reportSet>
                </reportSets>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-changes-plugin</artifactId>
                <version>${maven.changes.plugin.version}</version>
                <configuration>
                    <xmlPath>${basedir}/src/changes/changes.xml</xmlPath>
                    <columnNames>Fix Version,Key,Component,Summary,Type,Resolution,Status</columnNames>
                    <!-- Sort cols in natural order when using JQL for JIRA 5.1 -->
                    <sortColumnNames>Fix Version DESC,Type,Key DESC</sortColumnNames>
                    <resolutionIds>Fixed</resolutionIds>
                    <statusIds>Closed</statusIds>
                    <!-- Don't include sub-task -->
                    <typeIds>Bug,New Feature,Task,Improvement,Wish,Test</typeIds>
                    <!-- For JIRA >= 5.1 -->
                    <useJql>true</useJql>
                    <onlyCurrentVersion>false</onlyCurrentVersion>
                    <maxEntries>100</maxEntries>
                    <runOnlyAtExecutionRoot>false</runOnlyAtExecutionRoot>
                    <issueLinkTemplatePerSystem>
                        <github>http://github.com/Hygieia/hygieia-subversion-scm-collector/issues/%ISSUE%</github>
                    </issueLinkTemplatePerSystem>
                </configuration>
                <reportSets>
                    <reportSet>
                        <reports>
                            <report>changes-report</report>
                        </reports>
                    </reportSet>
                </reportSets>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-project-info-reports-plugin</artifactId>
                <version>${maven.project-info.version}</version>
                <!--
                  Unfortunately it does not appear to be possible to override
                  reports configured in a parent POM.
                  See https://jira.codehaus.org/browse/MPIR-241
                  and https://issues.apache.org/jira/browse/MPOM-32
                  So we define here all those reports that are suitable for
                  all components.
                  Components can add extra reports if they wish, but cannot disable any.
                -->
                <reportSets>
                    <reportSet>
                        <reports>
                            <report>index</report>
                            <report>summary</report>
                            <report>modules</report>
                            <!-- <report>license</report> site must link to ASF page instead -->
                            <report>team</report>
                            <report>scm</report>
                            <report>issue-management</report>
                            <report>mailing-lists</report>
                            <report>dependency-info</report>
                            <report>dependency-management</report>
                            <report>dependencies</report>
                            <report>dependency-convergence</report>
                            <report>ci-management</report>
                            <!-- <report>plugin-management</report> not very useful for end users -->
                            <!-- <report>plugins</report> not very useful for end users -->
                            <report>distribution-management</report>
                        </reports>
                    </reportSet>
                </reportSets>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-site-plugin</artifactId>
                <version>${maven.site.plugin.version}</version>
                <configuration>
                    <!-- Exclude the navigation file for Maven 1 sites
                      and the changes file used by the changes-plugin,
                      as they interfere with the site generation. -->
                    <moduleExcludes>
                        <xdoc>navigation.xml,changes.xml</xdoc>
                    </moduleExcludes>
                </configuration>
            </plugin>
        </plugins>
    </reporting>

    <profiles>
        <profile>
            <!--
              Generate release notes in top-level directory from src/changes/changes.xml
              Usage:
              mvn changes:announcement-generate -Prelease-notes [-Dchanges.version=nnn]
              Defining changes.version allows one to create the RN without first removing the SNAPSHOT suffix.
              Requires file src/changes/release-notes.vm.
              A sample template is available from:
              https://svn.apache.org/repos/asf/commons/proper/commons-parent/trunk/src/changes/release-notes.vm
            -->
            <id>release-notes</id>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-changes-plugin</artifactId>
                        <version>${maven.changes.plugin.version}</version>
                        <configuration>
                            <template>release-notes.vm</template>
                            <templateDirectory>src/changes</templateDirectory>
                            <runOnlyAtExecutionRoot>true</runOnlyAtExecutionRoot>
                            <announcementDirectory>.</announcementDirectory>
                            <announcementFile>RELEASE-NOTES.txt</announcementFile>
                            <announceParameters>
                                <releaseVersion>${version}</releaseVersion>
                            </announceParameters>
                        </configuration>
                        <executions>
                            <execution>
                                <id>create-release-notes</id>
                                <phase>generate-resources</phase>
                                <goals>
                                    <goal>announcement-generate</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
        <profile>
            <id>setup-checkout</id>
            <activation>
                <file>
                    <missing>site-content</missing>
                </file>
            </activation>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-antrun-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>prepare-checkout</id>
                                <phase>pre-site</phase>
                                <goals>
                                    <goal>run</goal>
                                </goals>
                                <configuration>
                                    <tasks>
                                        <exec executable="git">
                                            <arg line="clone -b gh-pages --single-branch ${site.publish.url} ${site.publish.checkout.directory}" />
                                        </exec>

                                        <exec executable="git" dir="site-content">
                                            <arg line="fetch origin gh-pages" />
                                        </exec>

                                        <exec executable="git" dir="site-content">
                                            <arg line="reset --hard origin/gh-pages" />
                                        </exec>

                                        <pathconvert pathsep=" " property="dirs">
                                            <dirset dir="${site.publish.checkout.directory}" includes="*" />
                                        </pathconvert>
                                    </tasks>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
        <profile>
            <id>travis-jacoco</id>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.jacoco</groupId>
                        <artifactId>jacoco-maven-plugin</artifactId>
                        <version>${jacoco.maven.plugin.version}</version>
                    </plugin>
                    <plugin>
                        <groupId>org.eluder.coveralls</groupId>
                        <artifactId>coveralls-maven-plugin</artifactId>
                        <version>${coveralls.maven.plugin.version}</version>
                        <configuration>
                            <timestampFormat>EpochMillis</timestampFormat>
                        </configuration>
                    </plugin>
                </plugins>
            </build>
        </profile>
        <profile>
            <id>release</id>
            <activation>
                <property>
                    <name>performRelease</name>
                    <value>true</value>
                </property>
            </activation>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-compiler-plugin</artifactId>
                        <version>3.5.1</version>
                        <configuration>
                            <source>1.8</source>
                            <target>1.8</target>
                        </configuration>
                    </plugin>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-source-plugin</artifactId>
                        <version>3.0.1</version>
                        <executions>
                            <execution>
                                <id>attach-sources</id>
                                <goals>
                                    <goal>jar-no-fork</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-javadoc-plugin</artifactId>
                        <version>${maven.javadoc.plugin.version}</version>
                        <configuration>
                            <doclint>none</doclint>
                        </configuration>
                        <executions>
                            <execution>
                                <id>attach-javadocs</id>
                                <goals>
                                    <goal>jar</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-gpg-plugin</artifactId>
                        <version>1.5</version>
                        <executions>
                            <execution>
                                <id>sign-artifacts</id>
                                <phase>verify</phase>
                                <goals>
                                    <goal>sign</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>


                </plugins>
            </build>
        </profile>
    </profiles>
</project>