<?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">
  <parent>
    <artifactId>arpnetworking-parent-pom</artifactId>
    <groupId>com.arpnetworking.build</groupId>
    <version>1.0.1</version>
    <relativePath>../pom.xml/pom.xml</relativePath>
  </parent>
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.arpnetworking.metrics</groupId>
  <artifactId>metrics-client</artifactId>
  <name>Metrics Client (Java)</name>
  <version>0.3.4</version>
  <scm>
    <tag>metrics-client-0.3.4</tag>
  </scm>
  <build>
    <resources>
      <resource>
        <directory>src/main/resources</directory>
      </resource>
    </resources>
    <finalName>${project.artifactId}</finalName>
    <plugins>
      <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>${maven.compiler.plugin.version}</version>
        <configuration>
          <source>1.8</source>
          <target>1.8</target>
          <showDeprecation>true</showDeprecation>
          <showWarnings>true</showWarnings>
          <compilerArgs>
            <arg>-Werror</arg>
            <arg>-Xlint:all</arg>
          </compilerArgs>
          <fork>false</fork>
        </configuration>
      </plugin>
      <plugin>
        <artifactId>maven-dependency-plugin</artifactId>
        <version>${maven.dependency.plugin.version}</version>
      </plugin>
      <plugin>
        <artifactId>maven-shade-plugin</artifactId>
        <version>${maven.shade.plugin.version}</version>
        <executions>
          <execution>
            <phase>package</phase>
            <goals>
              <goal>shade</goal>
            </goals>
          </execution>
        </executions>
        <configuration>
          <minimizeJar>false</minimizeJar>
          <promoteTransitiveDependencies>true</promoteTransitiveDependencies>
          <artifactSet>
            <excludes />
            <includes>
              <include>ch.qos.logback:logback-classic</include>
              <include>ch.qos.logback:logback-core</include>
              <include>com.arpnetworking.logback:logback-steno</include>
              <include>com.fasterxml.jackson.core:jackson-core</include>
              <include>com.fasterxml.jackson.core:jackson-databind</include>
              <include>com.fasterxml.jackson.core:jackson-annotations</include>
              <include>com.fasterxml.jackson.module:jackson-module-afterburner</include>
              <include>joda-time:joda-time</include>
            </includes>
          </artifactSet>
          <filters>
            <filter>
              <artifact>ch.qos.logback:logback-classic</artifact>
              <excludes>
                <exclude>META-INF/**</exclude>
                <exclude>org/slf4j/**</exclude>
                <exclude>ch/qos/logback/classic/selector/**</exclude>
              </excludes>
            </filter>
            <filter>
              <artifact>ch.qos.logback:logback-core</artifact>
              <excludes>
                <exclude>META-INF/**</exclude>
                <exclude>ch/qos/logback/classic/selector/**</exclude>
              </excludes>
            </filter>
            <filter>
              <artifact>com.arpnetworking.logback:logback-steno</artifact>
              <excludes>
                <exclude>META-INF/**</exclude>
              </excludes>
            </filter>
            <filter>
              <artifact>joda-time:joda-time</artifact>
              <excludes>
                <exclude>META-INF/**</exclude>
              </excludes>
            </filter>
            <filter>
              <artifact>com.fasterxml.jackson.core:jackson-core</artifact>
              <excludes>
                <exclude>META-INF/**</exclude>
              </excludes>
            </filter>
            <filter>
              <artifact>com.fasterxml.jackson.core:jackson-databind</artifact>
              <excludes>
                <exclude>META-INF/**</exclude>
              </excludes>
            </filter>
            <filter>
              <artifact>com.fasterxml.jackson.core:jackson-annotations</artifact>
              <excludes>
                <exclude>META-INF/**</exclude>
              </excludes>
            </filter>
            <filter>
              <artifact>com.fasterxml.jackson.module:jackson-module-afterburner</artifact>
              <excludes>
                <exclude>META-INF/**</exclude>
              </excludes>
            </filter>
          </filters>
          <relocations>
            <relocation>
              <pattern>ch.qos.logback</pattern>
              <shadedPattern>com.arpnetworking.metrics.ch.qos.logback</shadedPattern>
            </relocation>
            <relocation>
              <pattern>org.apache.commons</pattern>
              <shadedPattern>com.arpnetworking.metrics.org.apache.commons</shadedPattern>
            </relocation>
            <relocation>
              <pattern>com.arpnetworking.logback</pattern>
              <shadedPattern>com.arpnetworking.metrics.com.arpnetworking.logback</shadedPattern>
            </relocation>
            <relocation>
              <pattern>com.arpnetworking.steno</pattern>
              <shadedPattern>com.arpnetworking.metrics.com.arpnetworking.steno</shadedPattern>
            </relocation>
            <relocation>
              <pattern>com.fasterxml.jackson</pattern>
              <shadedPattern>com.arpnetworking.metrics.com.fasterxml.jackson</shadedPattern>
            </relocation>
            <relocation>
              <pattern>org.joda.time</pattern>
              <shadedPattern>com.arpnetworking.metrics.org.joda.time</shadedPattern>
            </relocation>
          </relocations>
        </configuration>
      </plugin>
      <plugin>
        <artifactId>maven-jar-plugin</artifactId>
        <version>${maven.jar.plugin.version}</version>
      </plugin>
      <plugin>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>${maven.surefire.plugin.version}</version>
        <configuration>
          <parallel>methods</parallel>
          <threadCount>4</threadCount>
          <perCoreThreadCount>true</perCoreThreadCount>
          <argLine>-Xms512m -Xmx512m -ea -Duser.timezone="UTC"</argLine>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>findbugs-maven-plugin</artifactId>
        <version>${maven.findbugs.plugin.version}</version>
        <executions>
          <execution>
            <id>findbugs-check</id>
            <phase>verify</phase>
            <goals>
              <goal>check</goal>
              <goal>findbugs</goal>
            </goals>
          </execution>
        </executions>
        <configuration>
          <skip>${maven.test.skip}</skip>
          <failOnError>true</failOnError>
          <effort>Max</effort>
          <threshold>Low</threshold>
          <includeTests>true</includeTests>
          <xmlOutput>true</xmlOutput>
          <xmlOutputDirectory>target/site/findbugs</xmlOutputDirectory>
          <excludeFilterFile>${main.basedir}/findbugs.exclude.xml</excludeFilterFile>
        </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>COMPLEXITY</counter>
                      <value>COVEREDRATIO</value>
                      <minimum>1.0</minimum>
                    </limit>
                    <limit>
                      <counter>BRANCH</counter>
                      <value>COVEREDRATIO</value>
                      <minimum>1.0</minimum>
                    </limit>
                  </limits>
                </rule>
              </rules>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <artifactId>maven-deploy-plugin</artifactId>
        <version>${maven.deploy.plugin.version}</version>
      </plugin>
      <plugin>
        <artifactId>maven-source-plugin</artifactId>
        <version>${maven.source.plugin.version}</version>
        <executions>
          <execution>
            <id>attach-sources</id>
            <goals>
              <goal>jar</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <artifactId>maven-javadoc-plugin</artifactId>
        <version>${maven.javadoc.plugin.version}</version>
        <executions>
          <execution>
            <id>attach-javadocs</id>
            <goals>
              <goal>jar</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>versions-maven-plugin</artifactId>
        <version>${maven.versions.plugin.version}</version>
      </plugin>
      <plugin>
        <artifactId>maven-checkstyle-plugin</artifactId>
      </plugin>
    </plugins>
  </build>
  <dependencies>
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-api</artifactId>
      <version>1.7.10</version>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>org.aspectj</groupId>
      <artifactId>aspectjrt</artifactId>
      <version>1.8.5</version>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>com.google.code.findbugs</groupId>
      <artifactId>jsr305</artifactId>
      <version>3.0.0</version>
      <scope>compile</scope>
    </dependency>
  </dependencies>
  <properties>
    <maven.checkstyle.plugin.version>2.15</maven.checkstyle.plugin.version>
    <multithreadedtc.version>1.01</multithreadedtc.version>
    <maven.source.plugin.version>2.4</maven.source.plugin.version>
    <logback.steno.version>1.8.0</logback.steno.version>
    <jsr305.version>3.0.0</jsr305.version>
    <mockito.version>1.10.8</mockito.version>
    <hamcrest.version>2.0.0.0</hamcrest.version>
    <maven.versions.plugin.version>2.1</maven.versions.plugin.version>
    <jacoco-maven-plugin.version>0.7.4.201502262128</jacoco-maven-plugin.version>
    <maven.surefire.plugin.version>2.18.1</maven.surefire.plugin.version>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.dependency.plugin.version>2.9</maven.dependency.plugin.version>
    <maven.test.skip>false</maven.test.skip>
    <junit.version>4.12</junit.version>
    <logback.version>1.1.2</logback.version>
    <slf4j.version>1.7.10</slf4j.version>
    <maven.javadoc.plugin.version>2.10.1</maven.javadoc.plugin.version>
    <maven.deploy.plugin.version>2.8.2</maven.deploy.plugin.version>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <maven.shade.plugin.version>2.3</maven.shade.plugin.version>
    <json-schema-validator.version>2.2.6</json-schema-validator.version>
    <maven.compiler.plugin.version>3.2</maven.compiler.plugin.version>
    <jackson.version>2.5.3</jackson.version>
    <maven.findbugs.plugin.version>3.0.0</maven.findbugs.plugin.version>
    <main.basedir>${project.basedir}</main.basedir>
    <maven.jar.plugin.version>2.5</maven.jar.plugin.version>
  </properties>
</project>

