<?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.jenkins-ci.plugins</groupId>
    <artifactId>plugin</artifactId>
    <version>2.17</version>
  </parent>

  <groupId>io.jenkins.blueocean</groupId>
  <artifactId>blueocean-parent</artifactId>
  <version>1.2.2</version>
  <packaging>pom</packaging>

  <name>Blue Ocean Parent</name>

  <properties>
    <java.level>7</java.level>
    <jackson.version>2.8.9</jackson.version>
    <jenkins.version>2.7.4</jenkins.version> <!-- Should be kept in sync with Dockerfile FROM statement-->
    <javadoc.exec.goal>javadoc-no-fork</javadoc.exec.goal> <!-- stop initialize phase plugins executing twice -->
    <node.version>6.4.0</node.version>
    <npm.version>3.10.3</npm.version>
    <findbugs-maven-plugin.version>3.0.4</findbugs-maven-plugin.version>
    <findbugs.failOnError>true</findbugs.failOnError>
    <powermock.version>1.6.6</powermock.version>
    <guava.version>11.0.1</guava.version>
    <jacoco.version>0.7.9</jacoco.version>
    <jacoco.haltOnFailure>false</jacoco.haltOnFailure>
    <jacoco.line.coverage>0.70</jacoco.line.coverage>
    <jacoco.missedclass.coverage>0.00</jacoco.missedclass.coverage>
    <hpi.dependencyResolution>runtime</hpi.dependencyResolution>
    <jenkins-test-harness.version>2.23</jenkins-test-harness.version>
    <scm-api.version>2.2.0</scm-api.version>
    <git.version>3.5.1</git.version>
  </properties>

  <scm>
    <connection>scm:git:https://github.com/jenkinsci/blueocean-plugin.git</connection>
    <developerConnection>scm:git:https://github.com/jenkinsci/blueocean-plugin.git</developerConnection>
    <url>https://github.com/jenkinsci/blueocean-plugin</url>
    <tag>blueocean-parent-1.2.2</tag>
  </scm>

  <url>https://wiki.jenkins-ci.org/display/JENKINS/Blue+Ocean+Plugin</url>

  <developers>
     <developer>
       <id>scherler</id>
       <name>Thorsten Iberian Sumurai</name>
     </developer>
     <developer>
       <id>cliffmeyers</id>
       <name>Cliff Meyers</name>
     </developer>
     <developer>
       <id>tfennelly</id>
       <name>Tom Fennelly</name>
     </developer>
     <developer>
       <id>vivek</id>
       <name>Vivek Pandey</name>
     </developer>
     <developer>
       <id>kohsuke</id>
       <name>Kohsuke</name>
     </developer>
     <developer>
       <id>sophistifunk</id>
       <name>Josh McDonald</name>
     </developer>
     <developer>
       <id>imeredith</id>
       <name>Ivan Meredith</name>
     </developer>
     <developer>
       <id>michaelneale</id>
       <name>Michael Neale</name>
     </developer>
     <developer>
       <id>kzantow</id>
       <name>Keith Zantow</name>
     </developer>
     <developer>
       <id>i386</id>
       <name>James Dumay</name>
     </developer>
     <developer>
       <id>marcesher</id>
       <name>Marc</name>
     </developer>
     <developer>
       <id>dragoonis</id>
       <name>Paul Dragoonis</name>
     </developer>
     <developer>
       <id>pragmaticivan</id>
       <name>Ivan Santos</name>
     </developer>
     <developer>
       <id>PeterDaveHello</id>
       <name>Peter Dave Hello</name>
     </developer>
     <developer>
       <id>alexsomai</id>
       <name>Alexandru Somai</name>
     </developer>
  </developers>

  <modules>
    <module>blueocean-commons</module>
    <module>blueocean-i18n</module>
    <module>blueocean-web</module>
    <module>blueocean-rest</module>
    <module>blueocean-pipeline-scm-api</module>
    <module>blueocean-rest-impl</module>
    <module>blueocean-pipeline-api-impl</module>
    <module>blueocean-events</module>
    <module>blueocean-dashboard</module>
    <module>blueocean-personalization</module>
    <module>blueocean-config</module>
    <module>blueocean</module>
    <module>blueocean-jwt</module>
    <module>blueocean-github-pipeline</module>
    <module>blueocean-git-pipeline</module>
    <module>blueocean-bitbucket-pipeline</module>
    <module>blueocean-pipeline-editor</module>
    <module>blueocean-jira</module>
  </modules>

  <repositories>
    <repository>
      <id>repo.jenkins-ci.org</id>
      <url>http://repo.jenkins-ci.org/public/</url>
    </repository>
  </repositories>
  <pluginRepositories>
    <pluginRepository>
      <id>repo.jenkins-ci.org</id>
      <url>http://repo.jenkins-ci.org/public/</url>
    </pluginRepository>
  </pluginRepositories>

  <dependencies>
      <dependency>
          <groupId>junit</groupId>
          <artifactId>junit</artifactId>
          <scope>test</scope>
      </dependency>
      <dependency>
          <groupId>org.mockito</groupId>
          <artifactId>mockito-core</artifactId>
          <scope>test</scope>
      </dependency>
      <dependency>
          <groupId>org.hamcrest</groupId>
          <artifactId>hamcrest-all</artifactId>
          <scope>test</scope>
      </dependency>
      <dependency>
          <groupId>com.mashape.unirest</groupId>
          <artifactId>unirest-java</artifactId>
          <scope>test</scope>
      </dependency>
      <dependency>
          <groupId>org.powermock</groupId>
          <artifactId>powermock-module-junit4-common</artifactId>
          <scope>test</scope>
      </dependency>
      <dependency>
          <groupId>org.powermock</groupId>
          <artifactId>powermock-module-junit4</artifactId>
          <scope>test</scope>
      </dependency>
      <dependency>
          <groupId>org.powermock</groupId>
          <artifactId>powermock-api-mockito</artifactId>
          <scope>test</scope>
      </dependency>
      <dependency>
          <groupId>org.jacoco</groupId>
          <artifactId>org.jacoco.agent</artifactId>
          <classifier>runtime</classifier>
          <version>${jacoco.version}</version>
          <scope>test</scope>
      </dependency>
  </dependencies>

  <dependencyManagement>
    <dependencies>

        <!-- Module versions -->
        <dependency>
            <groupId>${project.groupId}</groupId>
            <artifactId>blueocean-commons</artifactId>
            <version>${project.version}</version>
        </dependency>

        <dependency>
            <groupId>${project.groupId}</groupId>
            <artifactId>blueocean-i18n</artifactId>
            <version>${project.version}</version>
        </dependency>

        <dependency>
            <groupId>${project.groupId}</groupId>
            <artifactId>blueocean-web</artifactId>
            <version>${project.version}</version>
        </dependency>

        <dependency>
            <groupId>${project.groupId}</groupId>
            <artifactId>blueocean-rest</artifactId>
            <version>${project.version}</version>
        </dependency>

        <dependency>
            <groupId>${project.groupId}</groupId>
            <artifactId>blueocean-dashboard</artifactId>
            <version>${project.version}</version>
        </dependency>

        <dependency>
            <groupId>${project.groupId}</groupId>
            <artifactId>blueocean-personalization</artifactId>
            <version>${project.version}</version>
        </dependency>

        <dependency>
            <groupId>${project.groupId}</groupId>
            <artifactId>blueocean-events</artifactId>
            <version>${project.version}</version>
        </dependency>

        <dependency>
            <groupId>${project.groupId}</groupId>
            <artifactId>blueocean-rest-impl</artifactId>
            <version>${project.version}</version>
        </dependency>

        <dependency>
            <groupId>io.jenkins.blueocean.rest.annotation</groupId>
            <artifactId>capability-annotation</artifactId>
            <version>1.2</version>
        </dependency>

        <dependency>
            <groupId>${project.groupId}</groupId>
            <artifactId>blueocean-pipeline-scm-api</artifactId>
            <version>${project.version}</version>
        </dependency>

        <dependency>
            <groupId>${project.groupId}</groupId>
            <artifactId>blueocean-pipeline-api-impl</artifactId>
            <version>${project.version}</version>
        </dependency>

        <dependency>
            <groupId>${project.groupId}</groupId>
            <artifactId>blueocean-config</artifactId>
            <version>${project.version}</version>
        </dependency>

        <dependency>
            <groupId>${project.groupId}</groupId>
            <artifactId>blueocean</artifactId>
            <version>${project.version}</version>
        </dependency>

        <dependency>
            <groupId>${project.groupId}</groupId>
            <artifactId>blueocean-jwt</artifactId>
            <version>${project.version}</version>
        </dependency>

        <dependency>
            <groupId>org.jenkins-ci.plugins</groupId>
            <artifactId>blueocean-autofavorite</artifactId>
            <version>1.0.0</version>
        </dependency>

        <dependency>
            <groupId>${project.groupId}</groupId>
            <artifactId>blueocean-jira</artifactId>
            <version>${project.version}</version>
        </dependency>

        <!-- TODO: should be moved out of blueocean repo as separate plugin -->
        <dependency>
            <groupId>${project.groupId}</groupId>
            <artifactId>blueocean-github-pipeline</artifactId>
            <version>${project.version}</version>
        </dependency>
        <dependency>
            <groupId>${project.groupId}</groupId>
            <artifactId>blueocean-git-pipeline</artifactId>
            <version>${project.version}</version>
        </dependency>
        <dependency>
            <groupId>${project.groupId}</groupId>
            <artifactId>blueocean-bitbucket-pipeline</artifactId>
            <version>${project.version}</version>
        </dependency>
        <dependency>
            <groupId>${project.groupId}</groupId>
            <artifactId>blueocean-pipeline-editor</artifactId>
            <version>${project.version}</version>
        </dependency>

        <!-- Pipeline -->
        <dependency>
            <groupId>org.jenkins-ci.plugins</groupId>
            <artifactId>branch-api</artifactId>
            <version>2.0.11</version>
        </dependency>
        <dependency>
            <groupId>org.jenkinsci.plugins</groupId>
            <artifactId>pipeline-model-definition</artifactId>
            <version>1.1.9</version>
        </dependency>
        <dependency>
            <groupId>org.jenkins-ci.plugins.workflow</groupId>
            <artifactId>workflow-cps</artifactId>
            <version>2.39</version>
        </dependency>
        <dependency>
            <groupId>org.jenkins-ci.plugins.workflow</groupId>
            <artifactId>workflow-api</artifactId>
            <version>2.20</version>
        </dependency>

        <!--
            workflow-job >= 2.12 requires a Jenkins core >= 2.60.
            Do not upgrade this dependency without a discussion on jenkinsci-ux@googlegroups.com
        -->
        <dependency>
            <groupId>org.jenkins-ci.plugins.workflow</groupId>
            <artifactId>workflow-job</artifactId>
            <version>2.11.1</version>
        </dependency>

        <dependency>
            <groupId>org.jenkins-ci.plugins</groupId>
            <artifactId>pipeline-graph-analysis</artifactId>
            <version>1.5</version>
        </dependency>
        <dependency>
            <groupId>org.jenkins-ci.plugins</groupId>
            <artifactId>github-branch-source</artifactId>
            <version>2.2.3</version>
        </dependency>
        <dependency>
            <groupId>org.jenkins-ci.plugins.workflow</groupId>
            <artifactId>workflow-multibranch</artifactId>
            <version>2.16</version>
        </dependency>
        <dependency>
            <groupId>org.jenkins-ci.plugins.workflow</groupId>
            <artifactId>workflow-step-api</artifactId>
            <version>2.12</version>
        </dependency>
        <dependency>
            <groupId>org.jenkins-ci.plugins.workflow</groupId>
            <artifactId>workflow-durable-task-step</artifactId>
            <version>2.13</version>
        </dependency>
        <dependency>
            <groupId>org.jenkins-ci.plugins.workflow</groupId>
            <artifactId>workflow-support</artifactId>
            <version>2.14</version>
        </dependency>
        <dependency>
            <groupId>org.jenkins-ci.plugins.workflow</groupId>
            <artifactId>workflow-support</artifactId>
            <version>2.14</version>
            <classifier>tests</classifier>
        </dependency>
        <dependency>
            <groupId>org.jenkins-ci.plugins.workflow</groupId>
            <artifactId>workflow-basic-steps</artifactId>
            <version>2.6</version>
        </dependency>

        <!--
            workflow-scm-step >= 2.6 requires a Jenkins core >= 2.60.
            Do not upgrade this dependency without a discussion on jenkinsci-ux@googlegroups.com
        -->
        <dependency>
            <groupId>org.jenkins-ci.plugins.workflow</groupId>
            <artifactId>workflow-scm-step</artifactId>
            <version>2.5</version>
        </dependency>

        <dependency>
            <groupId>org.jenkins-ci.plugins</groupId>
            <artifactId>pipeline-stage-step</artifactId>
            <version>2.2</version>
        </dependency>
        <dependency>
            <groupId>org.jenkins-ci.plugins</groupId>
            <artifactId>pipeline-input-step</artifactId>
            <version>2.8</version> <!-- TODO: Update when released -->
        </dependency>
        <dependency>
            <groupId>org.jenkins-ci.plugins</groupId>
            <artifactId>pipeline-build-step</artifactId>
            <version>2.5.1</version>
        </dependency>
        <dependency>
            <groupId>org.jenkins-ci.plugins</groupId>
            <artifactId>pipeline-milestone-step</artifactId>
            <version>1.3.1</version>
        </dependency>
        <dependency>
            <groupId>com.coravy.hudson.plugins.github</groupId>
            <artifactId>github</artifactId>
            <version>1.28.0</version>
        </dependency>

        <!-- Bitbucket dependencies -->
        <dependency>
            <groupId>org.jenkins-ci.plugins</groupId>
            <artifactId>cloudbees-bitbucket-branch-source</artifactId>
            <version>2.2.3</version>
        </dependency>
        <dependency>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>fluent-hc</artifactId>
            <version>4.5.3</version>
        </dependency>
        <dependency>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>httpmime</artifactId>
            <version>4.5.3</version>
        </dependency>
        <dependency>
            <groupId>org.apache.maven</groupId>
            <artifactId>maven-artifact</artifactId>
            <version>3.5.0</version>
        </dependency>

        <!-- Other -->
        <dependency>
            <groupId>org.jenkins-ci.plugins</groupId>
            <artifactId>blueocean-display-url</artifactId>
            <version>2.1.0</version>
        </dependency>
        <dependency>
            <groupId>org.jenkins-ci.plugins</groupId>
            <artifactId>scm-api</artifactId>
            <version>${scm-api.version}</version>
        </dependency>
        <dependency>
            <groupId>org.jenkins-ci.plugins</groupId>
            <artifactId>git</artifactId>
            <version>${git.version}</version>
        </dependency>
        <dependency>
            <groupId>org.jenkins-ci.plugins</groupId>
            <artifactId>jira</artifactId>
            <version>2.4.2</version>
            <exclusions>
                <exclusion>
                    <groupId>com.google.guava</groupId>
                    <artifactId>guava</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.jenkins-ci.plugins</groupId>
            <artifactId>credentials</artifactId>
            <version>2.1.14</version>
        </dependency>
        <dependency>
            <groupId>org.jenkins-ci.plugins</groupId>
            <artifactId>ssh-credentials</artifactId>
            <version>1.13</version>
        </dependency>
        <dependency>
            <groupId>org.jenkins-ci.plugins</groupId>
            <artifactId>cloudbees-folder</artifactId>
            <version>6.1.2</version>
        </dependency>
        <dependency>
            <groupId>org.jenkins-ci.main</groupId>
            <artifactId>maven-plugin</artifactId>
            <version>2.17</version>
        </dependency>
        <dependency>
            <groupId>org.jenkins-ci.plugins</groupId>
            <artifactId>matrix-project</artifactId>
            <version>1.11</version>
        </dependency>
        <dependency>
            <groupId>org.jenkins-ci.main</groupId>
            <artifactId>jenkins-test-harness-tools</artifactId>
            <version>2.0</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.jenkins-ci.plugins</groupId>
            <artifactId>structs</artifactId>
            <version>1.10</version>
        </dependency>
        <dependency>
            <groupId>org.jenkins-ci.plugins</groupId>
            <artifactId>pubsub-light</artifactId>
            <version>1.12</version>
        </dependency>
        <dependency>
            <groupId>org.jenkins-ci.plugins</groupId>
            <artifactId>sse-gateway</artifactId>
            <version>1.15</version>
        </dependency>
        <dependency>
            <groupId>org.jenkins-ci.plugins</groupId>
            <artifactId>metrics</artifactId>
            <version>3.1.2.10</version>
        </dependency>
        <dependency>
            <groupId>org.jenkins-ci.plugins</groupId>
            <artifactId>variant</artifactId>
            <version>1.1</version>
        </dependency>
        <dependency>
            <groupId>org.jenkins-ci.plugins</groupId>
            <artifactId>htmlpublisher</artifactId>
            <version>1.14</version>
        </dependency>

        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-annotations</artifactId>
            <version>${jackson.version}</version>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-core</artifactId>
            <version>${jackson.version}</version>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>${jackson.version}</version>
        </dependency>
        <dependency>
            <groupId>org.kohsuke</groupId>
            <artifactId>github-api</artifactId>
            <version>1.86</version>
        </dependency>
        <dependency>
            <groupId>commons-codec</groupId>
            <artifactId>commons-codec</artifactId>
            <version>1.10</version>
        </dependency>
        <dependency>
            <groupId>commons-lang</groupId>
            <artifactId>commons-lang</artifactId>
            <version>2.6</version>
        </dependency>
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
            <version>3.6</version>
        </dependency>
        <dependency>
            <groupId>oro</groupId>
            <artifactId>oro</artifactId>
            <version>2.0.8</version>
        </dependency>
        <dependency>
            <groupId>org.jenkins-ci.plugins</groupId>
            <artifactId>mailer</artifactId>
            <version>1.20</version>
        </dependency>
        <dependency>
            <groupId>org.bitbucket.b_c</groupId>
            <artifactId>jose4j</artifactId>
            <version>0.6.0</version>
        </dependency>
        <dependency>
            <groupId>org.jvnet.hudson.plugins</groupId>
            <artifactId>favorite</artifactId>
            <version>2.3.0</version>
        </dependency>

        <dependency>
            <groupId>io.keen</groupId>
            <artifactId>keen-client-api-java</artifactId>
            <version>5.2.0</version>
        </dependency>

        <!-- Included in core -->
        <dependency>
            <groupId>org.jenkins-ci.modules</groupId>
            <artifactId>instance-identity</artifactId>
            <version>2.1</version>
            <scope>provided</scope>
        </dependency>

        <dependency>
            <groupId>ua_parser</groupId>
            <artifactId>ua-parser</artifactId>
            <version>1.3.0</version>
        </dependency>

        <dependency>
            <groupId>joda-time</groupId>
            <artifactId>joda-time</artifactId>
            <version>2.9.9</version>
        </dependency>

        <!-- Needed for blueocean-display-url plugin -->
        <dependency>
            <groupId>org.jenkins-ci.plugins</groupId>
            <artifactId>junit</artifactId>
            <version>1.21</version>
        </dependency>


        <!-- Test dependencies -->
        <dependency>
            <groupId>org.hamcrest</groupId>
            <artifactId>hamcrest-all</artifactId>
            <version>1.3</version>
        </dependency>
        <dependency>
            <groupId>com.mashape.unirest</groupId>
            <artifactId>unirest-java</artifactId>
            <version>1.4.9</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.mockito</groupId>
            <artifactId>mockito-core</artifactId>
            <!--We need 1.x version untile powermock has decent support for mockito2-->
            <version>1.10.19</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.powermock</groupId>
            <artifactId>powermock-module-junit4-common</artifactId>
            <version>${powermock.version}</version>
        </dependency>
        <dependency>
            <groupId>org.powermock</groupId>
            <artifactId>powermock-module-junit4</artifactId>
            <version>${powermock.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.powermock</groupId>
            <artifactId>powermock-api-mockito</artifactId>
            <version>${powermock.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>com.github.tomakehurst</groupId>
            <artifactId>wiremock</artifactId>
            <version>2.6.0</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.jenkins-ci.plugins</groupId>
            <artifactId>async-http-client</artifactId>
            <version>1.7.24.1</version>
            <scope>test</scope>
        </dependency>

        <!--Needed to preempt wiremock from loading ver 18, that breaks lots of things -->
        <!--<dependency>-->
            <!--<groupId>com.google.guava</groupId>-->
            <!--<artifactId>guava</artifactId>-->
            <!--<version>${guava.version}</version>-->
            <!--<scope>provided</scope>-->
        <!--</dependency>-->


        <!-- github pulls token-macro 1.11 that doesn't get resolved -->
        <dependency>
            <groupId>org.jenkins-ci.plugins</groupId>
            <artifactId>token-macro</artifactId>
            <version>2.1</version>
        </dependency>
        <dependency>
            <!--
            jsoup HTML parser library @ http://jsoup.org/
            Using this to get the raw/unprocessed HTML from Jenkins
            -->
            <groupId>org.jsoup</groupId>
            <artifactId>jsoup</artifactId>
            <version>1.10.3</version>
            <scope>test</scope>
        </dependency>
        <dependency> <!-- TODO pending https://github.com/jenkinsci/jenkins-test-harness/pull/2 -->
            <groupId>org.eclipse.sisu</groupId>
            <artifactId>org.eclipse.sisu.plexus</artifactId>
            <version>0.1.0</version>
        </dependency>
        <dependency>
            <groupId>org.jenkins-ci.plugins</groupId>
            <artifactId>git</artifactId>
            <classifier>tests</classifier>
            <version>${git.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.jenkins-ci.plugins</groupId>
            <artifactId>scm-api</artifactId>
            <version>${scm-api.version}</version>
            <classifier>tests</classifier>
            <scope>test</scope>
        </dependency>

    </dependencies>
  </dependencyManagement>

  <build>
      <pluginManagement>
          <plugins>
              <plugin>
                  <groupId>org.apache.maven.plugins</groupId>
                  <artifactId>maven-javadoc-plugin</artifactId>
                  <version>2.10.4</version>
              </plugin>
              <plugin>
                  <groupId>org.codehaus.mojo</groupId>
                  <artifactId>findbugs-maven-plugin</artifactId>
                  <version>${findbugs-maven-plugin.version}</version>
                  <configuration>
                      <effort>Max</effort>
                      <threshold>Default</threshold>
                      <xmlOutput>true</xmlOutput>
                      <findbugsXmlOutput>false</findbugsXmlOutput>
                  </configuration>
              </plugin>
              <plugin>
                  <groupId>org.jacoco</groupId>
                  <artifactId>jacoco-maven-plugin</artifactId>
                  <version>${jacoco.version}</version>
                  <configuration>
                      <haltOnFailure>${jacoco.haltOnFailure}</haltOnFailure>
                      <destFile>${project.build.directory}/code-coverage/jacoco.exec</destFile>
                      <!-- Sets the path to the file which contains the execution data. -->
                      <dataFile>${project.build.directory}/code-coverage/jacoco.exec</dataFile>
                      <!-- Sets the output directory for the code coverage report. -->
                      <outputDirectory>${project.build.directory}/code-coverage/report</outputDirectory>
                  </configuration>

                  <executions>
                      <execution>
                          <id>default-instrument</id>
                          <goals>
                              <goal>instrument</goal>
                          </goals>
                      </execution>
                      <execution>
                          <id>default-restore-instrumented-classes</id>
                          <goals>
                              <goal>restore-instrumented-classes</goal>
                          </goals>
                      </execution>

                      <execution>
                          <id>default-report</id>
                          <phase>prepare-package</phase>
                          <goals>
                              <goal>report</goal>
                          </goals>
                      </execution>

                      <execution>
                          <id>jacoco-check</id>
                          <goals>
                              <goal>check</goal>
                          </goals>
                          <configuration>
                              <rules>
                                  <rule>
                                      <element>BUNDLE</element>
                                      <limits>
                                          <limit>
                                              <counter>LINE</counter>
                                              <value>COVEREDRATIO</value>
                                              <minimum>${jacoco.line.coverage}</minimum>
                                          </limit>
                                          <limit>
                                              <counter>CLASS</counter>
                                              <value>MISSEDCOUNT</value>
                                              <maximum>${jacoco.missedclass.coverage}</maximum>
                                          </limit>
                                      </limits>
                                  </rule>
                              </rules>
                          </configuration>
                      </execution>
                  </executions>
              </plugin>
          </plugins>
      </pluginManagement>
    <plugins>
      <plugin>
          <groupId>org.jacoco</groupId>
          <artifactId>jacoco-maven-plugin</artifactId>
          <version>${jacoco.version}</version>
      </plugin>
      <plugin>
        <!-- TODO: java8 signature doesn't exist yet -->
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>animal-sniffer-maven-plugin</artifactId>
        <configuration>
          <skip>true</skip>
        </configuration>
      </plugin>
        <!-- Disable InjectedTest -->
        <plugin>
            <groupId>org.jenkins-ci.tools</groupId>
            <artifactId>maven-hpi-plugin</artifactId>
            <configuration>
                <disabledTestInjection>true</disabledTestInjection>
                <dependencyResolution>${hpi.dependencyResolution}</dependencyResolution>
            </configuration>
        </plugin>

        <!--
        TODO: Remove/review this as part of solving https://issues.jenkins-ci.org/browse/JENKINS-38888
        See comment below on argLine config.
        -->
        <plugin>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>2.19.1</version>
            <configuration>
                <systemProperties>
                    <property>
                        <name>hudson.udp</name>
                        <value>33849</value>
                    </property>
                </systemProperties>
                <reuseForks>true</reuseForks>
                <forkCount>${concurrency}</forkCount>
                <!--
                The following line is the one that's a must. Without it, with get jacoco complexity failures.
                -->
                <argLine>-Djava.awt.headless=true ${argLine}</argLine>
                <rerunFailingTestsCount>0</rerunFailingTestsCount>
                <systemPropertyVariables>
                    <jacoco-agent.destfile>${project.build.directory}/code-coverage/jacoco.exec</jacoco-agent.destfile>
                </systemPropertyVariables>
            </configuration>
        </plugin>

        <!-- run findbugs on all modules -->
        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>findbugs-maven-plugin</artifactId>
        </plugin>
    </plugins>
  </build>
</project>
