<?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/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <parent>
        <groupId>org.sonatype.oss</groupId>
        <artifactId>oss-parent</artifactId>
        <version>9</version>
        <!-- Disable behavior of looking at ../pom.xml and instead resolve the parent POM from the repositories -->
        <!-- See http://maven.apache.org/ref/3.1.1/maven-model/maven.html#class_parent -->
        <relativePath />
    </parent>

    <groupId>com.opower</groupId>
    <artifactId>opower-parent</artifactId>
    <packaging>pom</packaging>
    <version>2.4.0</version>
    <name>Opower Parent Project</name>
    <description>Parent POM for all Opower artifacts</description>
    <url>http://opower.com/</url>

    <scm>
        <connection>scm:git:git@github.com:opower/opower-parent.git</connection>
        <developerConnection>scm:git:git@github.com:opower/opower-parent.git</developerConnection>
        <tag>2.4.0</tag>
        <url>https://github.com/opower/opower-parent.git</url>
    </scm>

    <licenses>
        <license>
            <name>The MIT License</name>
            <url>http://opensource.org/licenses/MIT</url>
            <distribution>repo</distribution>
        </license>
    </licenses>

    <developers>
        <developer>
            <name>Opower Engineering</name>
            <email>dev@opower.com</email>
            <organization>opower</organization>
        </developer>
    </developers>

    <properties>
        <!-- =========================================================================== -->
        <!--  Maven/build attributes and plugin versions                                 -->
        <!-- =========================================================================== -->
        <default.encoding>UTF-8</default.encoding>
        <project.build.sourceEncoding>${default.encoding}</project.build.sourceEncoding>
        <project.reporting.outputEncoding>${default.encoding}</project.reporting.outputEncoding>
        <maven.failsafe.argLine>-XX:+HeapDumpOnOutOfMemoryError -Xmx1024M -XX:MaxPermSize=256M -Djava.awt.headless=true</maven.failsafe.argLine>
        <maven.surefire.argLine>-XX:+HeapDumpOnOutOfMemoryError -Xmx1024M -XX:MaxPermSize=256M -Djava.awt.headless=true</maven.surefire.argLine>
        <maven.surefire.fork.count>1C</maven.surefire.fork.count>
        <maven.test.runOrder>hourly</maven.test.runOrder>
        <version.buildnumber.plugin>1.3</version.buildnumber.plugin>
        <version.maven.assembly.plugin>2.4.1</version.maven.assembly.plugin>
        <version.maven.checkstyle.plugin>2.15</version.maven.checkstyle.plugin>
        <version.maven.clean.plugin>2.4.1</version.maven.clean.plugin>
        <version.maven.compiler.plugin>3.1</version.maven.compiler.plugin>
        <version.maven.dependency.plugin>2.8</version.maven.dependency.plugin>
        <version.maven.deploy.plugin>2.8.1</version.maven.deploy.plugin>
        <version.maven.enforcer.plugin>1.3</version.maven.enforcer.plugin>
        <version.maven.exec.plugin>1.2</version.maven.exec.plugin>
        <version.maven.findbugs.plugin>2.4.0</version.maven.findbugs.plugin>
        <version.maven.gpg.plugin>1.4</version.maven.gpg.plugin>
        <version.maven.jacoco.plugin>0.7.0.201403182114</version.maven.jacoco.plugin>
        <version.maven.jar.plugin>2.3.2</version.maven.jar.plugin>
        <version.maven.javadoc.plugin>2.9.1</version.maven.javadoc.plugin>
        <version.maven.jxr.plugin>2.3</version.maven.jxr.plugin>
        <version.maven.pmd.plugin>2.7.1</version.maven.pmd.plugin>
        <version.maven.project.info.plugin>2.7</version.maven.project.info.plugin>
        <version.maven.release.plugin>2.5.2</version.maven.release.plugin>
        <version.maven.resources.plugin>2.6</version.maven.resources.plugin>
        <version.maven.shade.plugin>2.2</version.maven.shade.plugin>
        <version.maven.site.plugin>3.3</version.maven.site.plugin>
        <version.maven.source.plugin>2.2.1</version.maven.source.plugin>
        <version.maven.surefire.plugin>2.16</version.maven.surefire.plugin>
        <version.docker.maven.plugin>0.10.3-OPOWER</version.docker.maven.plugin>

        <version.java>1.7</version.java>

        <!-- Shared libraries should have opower.checkstyle.checks set to "libs".
             All other artifacts should be using "main".
        -->
        <opower.checkstyle.checks>main</opower.checkstyle.checks>
        <opower.checkstyle.test.checks>main-tests</opower.checkstyle.test.checks>

        <!-- Properties for configuring maven dependency analysis strictness.  Strictness can be increased by:
               * Overriding failOnWarning to true to turn dependency warnings into errors.
               * Overriding ignoreNonCompile to false to analyze all scopes for unused dependencies.
        -->
        <maven.dependency.analyze.failOnWarning>false</maven.dependency.analyze.failOnWarning>
        <maven.dependency.analyze.ignoreNonCompile>true</maven.dependency.analyze.ignoreNonCompile>

        <!-- =========================================================================== -->
        <!--  Third party library versions                                               -->
        <!-- =========================================================================== -->
        <version.curator>2.4.2</version.curator>
        <version.codahale.metrics>3.0.2</version.codahale.metrics>
        <version.commons.lang3>3.3.2</version.commons.lang3>
        <version.commons.math3>3.2</version.commons.math3>
        <version.easymock>3.2</version.easymock>
        <version.jetty>8.1.14.v20131031</version.jetty>
        <version.mchange.c3p0>0.9.2.1</version.mchange.c3p0>
        <version.mchange.commons.java>0.2.3.4</version.mchange.commons.java>
        <version.zookeeper>3.4.5</version.zookeeper>

        <jacoco.datafile.location>${project.build.directory}/jacoco/coverage.exec</jacoco.datafile.location>
        <sonar.dynamicAnalysis>reuseReports</sonar.dynamicAnalysis>
        <sonar.junit.reportsPath>/surefire-reports</sonar.junit.reportsPath>
        <sonar.java.coveragePlugin>jacoco</sonar.java.coveragePlugin>
        <sonar.jacoco.reportPath>${jacoco.datafile.location}</sonar.jacoco.reportPath>

        <release.plugin.indent.size>4</release.plugin.indent.size>
    </properties>

    <reporting>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jxr-plugin</artifactId>
                <version>${version.maven.jxr.plugin}</version>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-checkstyle-plugin</artifactId>
                <version>${version.maven.checkstyle.plugin}</version>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-pmd-plugin</artifactId>
                <version>${version.maven.pmd.plugin}</version>
                <configuration>
                    <targetJdk>${version.java}</targetJdk>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-project-info-reports-plugin</artifactId>
                <version>${version.maven.project.info.plugin}</version>
            </plugin>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>findbugs-maven-plugin</artifactId>
                <version>${version.maven.findbugs.plugin}</version>
            </plugin>
        </plugins>
    </reporting>


    <build>
        <resources>
            <resource>
                <directory>version</directory>
                <filtering>true</filtering>
            </resource>
        </resources>
        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-release-plugin</artifactId>
                    <version>${version.maven.release.plugin}</version>
                    <configuration combine.self="override">
                        <!-- The '@' is not a typo; it's this plugin's delimiter -->
                        <!-- See http://maven.apache.org/maven-release/maven-release-plugin/examples/prepare-release.html -->
                        <tagNameFormat>@{project.version}</tagNameFormat>
                        <goals>deploy</goals>
                        <indentSize>${release.plugin.indent.size}</indentSize>
                         <!-- Invoke 'release' profile which skips tests -->
                        <releaseProfiles>release</releaseProfiles>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-surefire-plugin</artifactId>
                    <version>${version.maven.surefire.plugin}</version>
                    <configuration>
                        <argLine>${jacocoSurefireArgLine} ${maven.surefire.argLine}</argLine>
                        <redirectTestOutputToFile>true</redirectTestOutputToFile>
                        <!-- Defines the order the tests will be run in. Supported values are "alphabetical",
                           "reversealphabetical", "random", "hourly" (alphabetical on even hours, reverse alphabetical
                           on odd hours) and "filesystem". -->
                        <runOrder>${maven.test.runOrder}</runOrder>
                        <systemPropertyVariables>
                            <basedir>${project.basedir}</basedir>
                            <build.directory>${project.build.directory}</build.directory>
                        </systemPropertyVariables>
                        <!-- Spawn 1 VM per core to run unit tests in parallel -->
                        <forkCount>${maven.surefire.fork.count}</forkCount>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-failsafe-plugin</artifactId>
                    <version>${version.maven.surefire.plugin}</version>  <!-- intentionally set to version.maven.surefire.plugin -->
                    <executions>
                        <execution>
                            <goals>
                                <goal>integration-test</goal>
                            </goals>
                         </execution>
                         <execution>
                             <!-- This fails the build if an IntTest fails -->
                             <id>verify</id>
                             <phase>verify</phase>
                             <goals>
                                 <goal>verify</goal>
                             </goals>
                         </execution>
                    </executions>
                    <configuration>
                        <argLine>${jacocoFailsafeArgLine} ${maven.failsafe.argLine}</argLine>
                        <redirectTestOutputToFile>true</redirectTestOutputToFile>
                        <!-- Defines the order the tests will be run in. Supported values are "alphabetical",
                           "reversealphabetical", "random", "hourly" (alphabetical on even hours, reverse alphabetical
                           on odd hours) and "filesystem". -->
                        <runOrder>${maven.test.runOrder}</runOrder>
                        <systemPropertyVariables>
                            <basedir>${project.basedir}</basedir>
                            <build.directory>${project.build.directory}</build.directory>
                        </systemPropertyVariables>
                        <includes>
                            <include>**/IntTest*.java</include>
                        </includes>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-clean-plugin</artifactId>
                    <version>${version.maven.clean.plugin}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-checkstyle-plugin</artifactId>
                    <version>${version.maven.checkstyle.plugin}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>${version.maven.compiler.plugin}</version>
                    <configuration>
                        <source>${version.java}</source>
                        <target>${version.java}</target>
                        <compilerArgument>-Xlint:unchecked</compilerArgument>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-jar-plugin</artifactId>
                    <version>${version.maven.jar.plugin}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-javadoc-plugin</artifactId>
                    <version>${version.maven.javadoc.plugin}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-dependency-plugin</artifactId>
                    <version>${version.maven.dependency.plugin}</version>
                    <executions>
                        <execution>
                            <id>analyze</id>
                            <goals>
                                <goal>analyze-only</goal>
                            </goals>
                            <configuration>
                                <failOnWarning>${maven.dependency.analyze.failOnWarning}</failOnWarning>
                                <ignoreNonCompile>${maven.dependency.analyze.ignoreNonCompile}</ignoreNonCompile>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-deploy-plugin</artifactId>
                    <version>${version.maven.deploy.plugin}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-enforcer-plugin</artifactId>
                    <version>${version.maven.enforcer.plugin}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-assembly-plugin</artifactId>
                    <version>${version.maven.assembly.plugin}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-shade-plugin</artifactId>
                    <version>${version.maven.shade.plugin}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-source-plugin</artifactId>
                    <version>${version.maven.source.plugin}</version>
                    <executions>
                        <execution>
                            <id>attach-sources</id>
                            <goals>
                                <goal>jar</goal>
                                <goal>test-jar</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-site-plugin</artifactId>
                    <version>${version.maven.site.plugin}</version>
                    <configuration>
                        <locales>en</locales>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-pmd-plugin</artifactId>
                    <version>${version.maven.pmd.plugin}</version>
                    <configuration>
                        <targetJdk>${version.java}</targetJdk>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-resources-plugin</artifactId>
                    <version>${version.maven.resources.plugin}</version>
                </plugin>
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>exec-maven-plugin</artifactId>
                    <version>${version.maven.exec.plugin}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.cxf</groupId>
                    <artifactId>cxf-codegen-plugin</artifactId>
                    <version>${version.cxf}</version>
                </plugin>
                <plugin>
                    <groupId>org.mortbay.jetty</groupId>
                    <artifactId>jetty-maven-plugin</artifactId>
                    <version>${version.jetty}</version>
                </plugin>
                <plugin>
                    <groupId>org.jacoco</groupId>
                    <artifactId>jacoco-maven-plugin</artifactId>
                    <version>${version.maven.jacoco.plugin}</version>
                    <executions>
                        <execution>
                            <id>pre-unit-test</id>
                            <goals>
                                <goal>prepare-agent</goal>
                            </goals>
                            <configuration>
                                <destFile>${jacoco.datafile.location}</destFile>
                                <!-- Sets the name of the property containing the settings for JaCoCo runtime agent. -->
                                <propertyName>jacocoSurefireArgLine</propertyName>
                                <append>true</append>
                            </configuration>
                        </execution>
                        <execution>
                            <id>post-unit-test</id>
                            <phase>test</phase>
                            <goals>
                                <goal>report</goal>
                            </goals>
                            <configuration>
                                <dataFile>${jacoco.datafile.location}</dataFile>
                                <outputDirectory>${project.reporting.outputDirectory}/jacoco-unit-tests</outputDirectory>
                                <append>true</append>
                            </configuration>
                        </execution>
                        <execution>
                            <id>pre-integration-test</id>
                            <phase>pre-integration-test</phase>
                            <goals>
                                <goal>prepare-agent</goal>
                            </goals>
                            <configuration>
                                <destFile>${jacoco.datafile.location}</destFile>
                                <!-- Sets the name of the property containing the settings for JaCoCo runtime agent. -->
                                <propertyName>jacocoFailsafeArgLine</propertyName>
                                <append>true</append>
                            </configuration>
                        </execution>
                        <execution>
                            <id>post-integration-test</id>
                            <phase>post-integration-test</phase>
                            <goals>
                                <goal>report</goal>
                            </goals>
                            <configuration>
                                <dataFile>${jacoco.datafile.location}</dataFile>
                                <outputDirectory>${project.reporting.outputDirectory}/jacoco-combined</outputDirectory>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>buildnumber-maven-plugin</artifactId>
                    <version>${version.buildnumber.plugin}</version>
                    <executions>
                        <execution>
                            <phase>validate</phase>
                            <goals>
                                <goal>create</goal>
                            </goals>
                        </execution>
                    </executions>
                    <configuration>
                        <doCheck>false</doCheck>
                        <doUpdate>false</doUpdate>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.jolokia</groupId>
                    <artifactId>docker-maven-plugin</artifactId>
                    <version>${version.docker.maven.plugin}</version>
              </plugin>
            </plugins>
        </pluginManagement>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-release-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-source-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-site-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-dependency-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-failsafe-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>org.jacoco</groupId>
                <artifactId>jacoco-maven-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>buildnumber-maven-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-enforcer-plugin</artifactId>
                <executions>
                    <execution>
                        <id>enforce-no-snapshots</id>
                        <goals>
                            <goal>enforce</goal>
                        </goals>
                        <configuration>
                            <rules>
                                <requireReleaseDeps>
                                    <message>No Snapshots Allowed!</message>
                                    <onlyWhenRelease>true</onlyWhenRelease>
                                </requireReleaseDeps>
                            </rules>
                            <fail>true</fail>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
    <dependencyManagement>
        <dependencies>
            <!-- =========================================================================================================== -->
            <!-- Web servers, application servers, etc.                                                                      -->
            <!-- =========================================================================================================== -->
            <dependency>
                <groupId>org.eclipse.jetty</groupId>
                <artifactId>jetty-util</artifactId>
                <version>${version.jetty}</version>
            </dependency>

            <!-- =========================================================================================================== -->
            <!-- Databases, Caches, Pools, etc.                                                                              -->
            <!-- =========================================================================================================== -->
            <dependency>
                <groupId>com.mchange</groupId>
                <artifactId>c3p0</artifactId>
                <version>${version.mchange.c3p0}</version>
            </dependency>
            <dependency>
                <groupId>com.mchange</groupId>
                <artifactId>mchange-commons-java</artifactId>
                <version>${version.mchange.commons.java}</version>
            </dependency>

            <!-- =========================================================================================================== -->
            <!-- Commons libraries (apache)                                                                                  -->
            <!-- =========================================================================================================== -->
            <dependency>
                <groupId>org.apache.commons</groupId>
                <artifactId>commons-lang3</artifactId>
                <version>${version.commons.lang3}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.commons</groupId>
                <artifactId>commons-math3</artifactId>
                <version>${version.commons.math3}</version>
            </dependency>

            <!-- =========================================================================================================== -->
            <!-- Metrics Library Dependencies                                                                                -->
            <!-- =========================================================================================================== -->
            <dependency>
                <groupId>com.codahale.metrics</groupId>
                <artifactId>metrics-core</artifactId>
                <version>${version.codahale.metrics}</version>
            </dependency>
            <dependency>
                <groupId>com.codahale.metrics</groupId>
                <artifactId>metrics-logback</artifactId>
                <version>${version.codahale.metrics}</version>
            </dependency>
            <dependency>
                <groupId>com.codahale.metrics</groupId>
                <artifactId>metrics-healthchecks</artifactId>
                <version>${version.codahale.metrics}</version>
            </dependency>
            <dependency>
                <groupId>com.codahale.metrics</groupId>
                <artifactId>metrics-annotation</artifactId>
                <version>${version.codahale.metrics}</version>
            </dependency>
            <dependency>
                <groupId>com.codahale.metrics</groupId>
                <artifactId>metrics-servlets</artifactId>
                <version>${version.codahale.metrics}</version>
            </dependency>
            <dependency>
                <groupId>com.codahale.metrics</groupId>
                <artifactId>metrics-jersey</artifactId>
                <version>${version.codahale.metrics}</version>
            </dependency>
            <dependency>
                <groupId>com.codahale.metrics</groupId>
                <artifactId>metrics-jetty8</artifactId>
                <version>${version.codahale.metrics}</version>
            </dependency>
            <dependency>
                <groupId>com.codahale.metrics</groupId>
                <artifactId>metrics-jvm</artifactId>
                <version>${version.codahale.metrics}</version>
            </dependency>

            <!-- =========================================================================================================== -->
            <!-- Zookeeper and friends                                                                                       -->
            <!-- =========================================================================================================== -->
            <dependency>
                <groupId>org.apache.zookeeper</groupId>
                <artifactId>zookeeper</artifactId>
                <version>${version.zookeeper}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.curator</groupId>
                <artifactId>curator-client</artifactId>
                <version>${version.curator}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.curator</groupId>
                <artifactId>curator-framework</artifactId>
                <version>${version.curator}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.curator</groupId>
                <artifactId>curator-x-discovery</artifactId>
                <version>${version.curator}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.curator</groupId>
                <artifactId>curator-recipes</artifactId>
                <version>${version.curator}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.curator</groupId>
                <artifactId>curator-test</artifactId>
                <version>${version.curator}</version>
            </dependency>

            <!-- =========================================================================================================== -->
            <!-- Testing libraries                                                                                           -->
            <!-- =========================================================================================================== -->
            <dependency>
                <groupId>org.easymock</groupId>
                <artifactId>easymock</artifactId>
                <version>${version.easymock}</version>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <profiles>
        <profile>
            <!--
            Used only when invoking release:perform so we do not re-run tests as part of the deployment
            -->
            <id>release</id>
            <properties>
                <maven.test.skip.exec>true</maven.test.skip.exec>
                <jetty.skip>true</jetty.skip>
            </properties>
        </profile>
        <profile>
            <!--
            Used to configure our maven-release-plugin like Sonatype wants for releasing our opensource artifacts
            -->
            <id>release-opensource</id>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-release-plugin</artifactId>
                        <version>${version.maven.release.plugin}</version>
                        <configuration combine.self="override">
                            <mavenExecutorId>forked-path</mavenExecutorId>
                            <useReleaseProfile>false</useReleaseProfile>
                            <arguments>${arguments} -Psonatype-oss-release</arguments>
                            <tagNameFormat>@{project.version}</tagNameFormat>
                        </configuration>
                    </plugin>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-gpg-plugin</artifactId>
                        <version>${version.maven.gpg.plugin}</version>
                        <executions>
                            <execution>
                                <id>sign-artifacts</id>
                                <phase>verify</phase>
                                <goals>
                                    <goal>sign</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
        <profile>
            <id>deactivate-docker</id>
            <activation>
                <property>
                    <name>!docker.host</name>
                </property>
            </activation>
            <properties>
                <!-- If the docker.host property hasn't been set, disable all goals of the docker-maven-plugin -->
                <docker.skip>true</docker.skip>
            </properties>
        </profile>
        <profile>
            <id>exhaustive</id>
            <activation>
                <property>
                    <name>exhaustive</name>
                </property>
            </activation>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-failsafe-plugin</artifactId>
                        <executions>
                            <!--
                              Only run exhaustive tests during the exhaustive test
                              integration test target.  The other integration tests have
                              already been run as part of the regular test target.
                            -->
                            <execution>
                                <id>exhaustive-tests</id>
                                <goals>
                                    <goal>integration-test</goal>
                                </goals>
                                <configuration>
                                    <argLine>${jacocoFailsafeArgLine} ${maven.failsafe.argLine}</argLine>
                                    <redirectTestOutputToFile>true</redirectTestOutputToFile>
                                    <runOrder>${maven.test.runOrder}</runOrder>
                                    <systemPropertyVariables>
                                        <build.directory>${project.build.directory}</build.directory>
                                    </systemPropertyVariables>
                                    <includes>
                                        <include>**/Exhaustive*.java</include>
                                    </includes>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
    </profiles>

    <!--
    <repositories>
        DO NOT add repositories to this POM.  Repos are inherited from our sonatype parent.
        To deploy a SNAPSHOT of this artifact or do a release, you'll need the sonatype server ids
      in your ~/.m2/settings.xml, per these instructions: https://wiki.opower.com/display/PD/OpenSource+Hosting+with+Sonatype
    </repositories>
    -->

</project>
<!-- vim: set ts=4 sw=4 : -->
