<!--
   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">
  <parent>
    <groupId>org.apache</groupId>
    <artifactId>apache</artifactId>
    <version>18</version>
  </parent>
  <modelVersion>4.0.0</modelVersion>
  <groupId>org.apache.bookkeeper</groupId>
  <version>4.8.2</version>
  <artifactId>bookkeeper</artifactId>
  <packaging>pom</packaging>
  <name>Apache BookKeeper :: Parent</name>
  <url>http://bookkeeeper.apache.org</url>
  <inceptionYear>2011</inceptionYear>
  <licenses>
    <license>
      <name>Apache License, Version 2.0</name>
      <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
      <distribution>repo</distribution>
    </license>
  </licenses>
  <scm>
    <connection>scm:git:https://github.com/apache/bookkeeper.git</connection>
    <developerConnection>scm:git:https://github.com/apache/bookkeeper.git</developerConnection>
    <url>https://github.com/apache/bookkeeper</url>
    <tag>v4.8.2-rc0</tag>
  </scm>
  <issueManagement>
    <system>JIRA</system>
    <url>https://issues.apache.org/jira/browse/BOOKKEEPER</url>
  </issueManagement>
  <ciManagement>
    <system>Jenkins</system>
    <url>https://builds.apache.org/job/bookkeeper-master</url>
  </ciManagement>
  <modules>
    <module>buildtools</module>
    <module>circe-checksum</module>
    <module>bookkeeper-common</module>
    <module>bookkeeper-stats</module>
    <module>bookkeeper-proto</module>
    <module>bookkeeper-server</module>
    <module>bookkeeper-benchmark</module>
    <module>bookkeeper-stats-providers</module>
    <module>bookkeeper-http</module>
    <module>shaded</module>
    <module>tests</module>
    <module>bookkeeper-dist</module>
    <module>microbenchmarks</module>
    <module>stream/distributedlog</module>
    <module>tools</module>
  </modules>
  <mailingLists>
    <mailingList>
      <name>BookKeeper User</name>
      <subscribe>user-subscribe@bookkeeper.apache.org</subscribe>
      <unsubscribe>user-unsubscribe@bookkeeper.apache.org</unsubscribe>
      <post>user@bookkeeper.apache.org</post>
      <archive>http://www.mail-archive.com/user@bookkeeper.apache.org</archive>
    </mailingList>
    <mailingList>
      <name>BookKeeper Dev</name>
      <subscribe>dev-subscribe@bookkeeper.apache.org</subscribe>
      <unsubscribe>dev-unsubscribe@bookkeeper.apache.org</unsubscribe>
      <post>dev@bookkeeper.apache.org</post>
      <archive>http://www.mail-archive.com/dev@bookkeeper.apache.org</archive>
    </mailingList>
    <mailingList>
      <name>BookKeeper Commits</name>
      <subscribe>commits-subscribe@bookkeeper.apache.org</subscribe>
      <unsubscribe>commits-unsubscribe@bookkeeper.apache.org</unsubscribe>
      <post>commits@bookkeeper.apache.org</post>
      <archive>http://www.mail-archive.com/commits@bookkeeper.apache.org</archive>
    </mailingList>
  </mailingLists>
  <developers>
    <developer>
      <name>The Apache BookKeeper Team</name>
      <email>dev@bookkeeper.apache.org</email>
      <url>http://bookkeeper.apache.org</url>
      <organization>Apache Software Foundation</organization>
      <organizationUrl>http://www.apache.org</organizationUrl>
    </developer>
  </developers>
  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <javac.target>1.8</javac.target>
    <redirectTestOutputToFile>true</redirectTestOutputToFile>
    <testRetryCount>2</testRetryCount>

    <!-- dependencies -->
    <arquillian-cube.version>1.15.1</arquillian-cube.version>
    <arquillian-junit.version>1.1.14.Final</arquillian-junit.version>
    <codahale.metrics.version>3.0.1</codahale.metrics.version>
    <commons-cli.version>1.2</commons-cli.version>
    <commons-collections4.version>4.1</commons-collections4.version>
    <commons-codec.version>1.6</commons-codec.version>
    <commons-configuration.version>1.10</commons-configuration.version>
    <commons-compress.version>1.15</commons-compress.version>
    <commons-lang.version>2.6</commons-lang.version>
    <commons-lang3.version>3.6</commons-lang3.version>
    <commons-io.version>2.4</commons-io.version>
    <curator.version>4.0.1</curator.version>
    <dropwizard.version>3.1.0</dropwizard.version>
    <finagle.version>6.44.0</finagle.version>
    <freebuilder.version>1.14.9</freebuilder.version>
    <google.code.version>3.0.2</google.code.version>
    <google.errorprone.version>2.1.2</google.errorprone.version>
    <grpc.version>1.12.0</grpc.version>
    <guava.version>21.0</guava.version>
    <hadoop.version>2.7.3</hadoop.version>
    <hamcrest.version>1.3</hamcrest.version>
    <jackson.version>2.8.9</jackson.version>
    <jackson-mapper-asl.version>1.9.11</jackson-mapper-asl.version>
    <jcommander.version>1.48</jcommander.version>
    <jetty.version>9.4.5.v20170502</jetty.version>
    <jmh.version>1.19</jmh.version>
    <jmock.version>2.8.2</jmock.version>
    <jna.version>3.2.7</jna.version>
    <junit.version>4.12</junit.version>
    <libthrift5.version>0.5.0-1</libthrift5.version>
    <libthrift9.version>0.9.3</libthrift9.version>
    <lombok.version>1.16.22</lombok.version>
    <lz4.version>1.3.0</lz4.version>
    <mockito.version>2.22.0</mockito.version>
    <netty.version>4.1.22.Final</netty.version>
    <netty-boringssl.version>2.0.7.Final</netty-boringssl.version>
    <ostrich.version>9.1.3</ostrich.version>
    <powermock.version>2.0.0-beta.5</powermock.version>
    <prometheus.version>0.0.21</prometheus.version>
    <datasketches.version>0.8.3</datasketches.version>
    <protobuf.version>3.5.1</protobuf.version>
    <protoc3.version>3.5.1-1</protoc3.version>
    <protoc-gen-grpc-java.version>1.12.0</protoc-gen-grpc-java.version>
    <rocksdb.version>5.13.1</rocksdb.version>
    <shrinkwrap.version>3.0.1</shrinkwrap.version>
    <slf4j.version>1.7.25</slf4j.version>
    <spotbugs-annotations.version>3.1.1</spotbugs-annotations.version>
    <testcontainers.version>1.7.0</testcontainers.version>
    <twitter-server.version>1.29.0</twitter-server.version>
    <vertx.version>3.4.1</vertx.version>
    <zookeeper.version>3.4.13</zookeeper.version>
    <!-- plugin dependencies -->
    <apache-rat-plugin.version>0.12</apache-rat-plugin.version>
    <cobertura-maven-plugin.version>2.7</cobertura-maven-plugin.version>
    <coveralls-maven-plugin.version>4.3.0</coveralls-maven-plugin.version>
    <dockerfile-maven-plugin.version>1.3.7</dockerfile-maven-plugin.version>
    <license-maven-plugin.version>1.6</license-maven-plugin.version>
    <jacoco-maven-plugin.version>0.8.0</jacoco-maven-plugin.version>
    <maven-antrun-plugin.version>1.8</maven-antrun-plugin.version>
    <maven-assembly-plugin.version>3.1.0</maven-assembly-plugin.version>
    <maven-bundle-plugin.version>3.2.0</maven-bundle-plugin.version>
    <maven-checkstyle-plugin.version>3.0.0</maven-checkstyle-plugin.version>
    <maven-clean-plugin.version>2.5</maven-clean-plugin.version>
    <maven-compiler-plugin.version>3.7.0</maven-compiler-plugin.version>
    <maven-dependency-plugin.version>3.0.2</maven-dependency-plugin.version>
    <maven-deploy-plugin.version>2.7</maven-deploy-plugin.version>
    <maven-install-plugin.version>2.5.1</maven-install-plugin.version>
    <maven-jar-plugin.version>2.4</maven-jar-plugin.version>
    <maven-javadoc-plugin.version>3.0.0</maven-javadoc-plugin.version>
    <maven-shade-plugin.version>3.1.0</maven-shade-plugin.version>
    <maven-source-plugin.version>2.2.1</maven-source-plugin.version>
    <maven-surefire-plugin.version>2.21.0</maven-surefire-plugin.version>
    <nar-maven-plugin.version>3.1.0</nar-maven-plugin.version>
    <os-maven-plugin.version>1.4.1.Final</os-maven-plugin.version>
    <protobuf-maven-plugin.version>0.5.0</protobuf-maven-plugin.version>
    <puppycrawl.checkstyle.version>6.19</puppycrawl.checkstyle.version>
    <spotbugs-maven-plugin.version>3.1.0-RC6</spotbugs-maven-plugin.version>
  </properties>

  <!-- dependency definitions -->
  <dependencyManagement>
    <dependencies>
      <!-- provided dependencies -->
      <dependency>
        <groupId>com.github.spotbugs</groupId>
        <artifactId>spotbugs-annotations</artifactId>
        <version>${spotbugs-annotations.version}</version>
      </dependency>
      <dependency>
        <groupId>com.google.code.findbugs</groupId>
        <artifactId>jsr305</artifactId>
        <version>${google.code.version}</version>
      </dependency>
      <dependency>
        <groupId>com.google.errorprone</groupId>
        <artifactId>error_prone_annotations</artifactId>
        <version>${google.errorprone.version}</version>
      </dependency>
      <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <version>${lombok.version}</version>
      </dependency>
      <dependency>
        <groupId>org.inferred</groupId>
        <artifactId>freebuilder</artifactId>
        <version>${freebuilder.version}</version>
      </dependency>

      <!-- logging dependencies -->
      <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>${slf4j.version}</version>
      </dependency>
      <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-log4j12</artifactId>
        <version>${slf4j.version}</version>
      </dependency>
      <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>log4j-over-slf4j</artifactId>
        <version>${slf4j.version}</version>
      </dependency>

      <!-- commons dependencies -->
      <dependency>
        <groupId>commons-cli</groupId>
        <artifactId>commons-cli</artifactId>
        <version>${commons-cli.version}</version>
      </dependency>
      <dependency>
        <groupId>commons-codec</groupId>
        <artifactId>commons-codec</artifactId>
        <version>${commons-codec.version}</version>
      </dependency>
      <dependency>
        <groupId>commons-configuration</groupId>
        <artifactId>commons-configuration</artifactId>
        <version>${commons-configuration.version}</version>
      </dependency>
      <dependency>
        <groupId>commons-io</groupId>
        <artifactId>commons-io</artifactId>
        <version>${commons-io.version}</version>
      </dependency>
      <dependency>
        <groupId>commons-lang</groupId>
        <artifactId>commons-lang</artifactId>
        <version>${commons-lang.version}</version>
      </dependency>
      <dependency>
        <groupId>com.google.guava</groupId>
        <artifactId>guava</artifactId>
        <version>${guava.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-collections4</artifactId>
        <version>${commons-collections4.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-compress</artifactId>
        <version>${commons-compress.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-lang3</artifactId>
        <version>${commons-lang3.version}</version>
      </dependency>

      <!-- compression libs -->
      <dependency>
        <groupId>net.jpountz.lz4</groupId>
        <artifactId>lz4</artifactId>
        <version>${lz4.version}</version>
      </dependency>

      <!-- JNA -->
      <dependency>
        <groupId>net.java.dev.jna</groupId>
        <artifactId>jna</artifactId>
        <version>${jna.version}</version>
      </dependency>

      <!-- jackson dependencies -->
      <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>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-annotations</artifactId>
        <version>${jackson.version}</version>
      </dependency>
      <!-- dependency needed for zookeeper jetty admin server -->
      <dependency>
        <groupId>org.codehaus.jackson</groupId>
        <artifactId>jackson-mapper-asl</artifactId>
        <version>${jackson-mapper-asl.version}</version>
      </dependency>

      <!-- protobuf dependencies -->
      <dependency>
        <groupId>com.google.protobuf</groupId>
        <artifactId>protobuf-java</artifactId>
        <version>${protobuf.version}</version>
      </dependency>

      <!-- libthrift dependency -->
      <dependency>
        <groupId>org.apache.thrift</groupId>
        <artifactId>libthrift</artifactId>
        <version>${libthrift9.version}</version>
      </dependency>

      <!-- netty dependencies -->
      <dependency>
        <groupId>io.netty</groupId>
        <artifactId>netty-common</artifactId>
        <version>${netty.version}</version>
      </dependency>
      <dependency>
        <groupId>io.netty</groupId>
        <artifactId>netty-buffer</artifactId>
        <version>${netty.version}</version>
      </dependency>
      <dependency>
        <groupId>io.netty</groupId>
        <artifactId>netty-all</artifactId>
        <version>${netty.version}</version>
      </dependency>
      <dependency>
        <groupId>io.netty</groupId>
        <artifactId>netty-tcnative-boringssl-static</artifactId>
        <version>${netty-boringssl.version}</version>
      </dependency>

      <!-- finagle dependencies -->
      <dependency>
        <groupId>com.twitter</groupId>
        <artifactId>finagle-core_2.11</artifactId>
        <version>${finagle.version}</version>
      </dependency>

      <!-- grpc dependencies -->
      <dependency>
        <groupId>io.grpc</groupId>
        <artifactId>grpc-all</artifactId>
        <version>${grpc.version}</version>
      </dependency>

      <!-- rocksdb dependencies -->
      <dependency>
        <groupId>org.rocksdb</groupId>
        <artifactId>rocksdbjni</artifactId>
        <version>${rocksdb.version}</version>
      </dependency>

      <!-- zookeeper dependencies -->
      <dependency>
        <groupId>org.apache.zookeeper</groupId>
        <artifactId>zookeeper</artifactId>
        <version>${zookeeper.version}</version>
        <exclusions>
          <exclusion>
            <groupId>net.java.dev.javacc</groupId>
            <artifactId>javacc</artifactId>
          </exclusion>
          <exclusion>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
          </exclusion>
          <exclusion>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
          </exclusion>
          <exclusion>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
          </exclusion>
          <exclusion>
            <groupId>io.netty</groupId>
            <artifactId>netty</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>org.apache.zookeeper</groupId>
        <artifactId>zookeeper</artifactId>
        <version>${zookeeper.version}</version>
        <type>test-jar</type>
        <exclusions>
          <exclusion>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
          </exclusion>
          <exclusion>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
          </exclusion>
          <exclusion>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
          </exclusion>
          <exclusion>
            <groupId>io.netty</groupId>
            <artifactId>netty</artifactId>
          </exclusion>
        </exclusions>
      </dependency>

      <!-- curator dependencies -->
      <dependency>
        <groupId>org.apache.curator</groupId>
        <artifactId>curator-recipes</artifactId>
        <version>${curator.version}</version>
        <exclusions>
          <exclusion>
            <groupId>org.apache.zookeeper</groupId>
            <artifactId>zookeeper</artifactId>
          </exclusion>
        </exclusions>
      </dependency>

      <!-- http server dependencies -->
      <dependency>
        <groupId>com.twitter</groupId>
        <artifactId>twitter-server_2.11</artifactId>
        <version>${twitter-server.version}</version>
        <exclusions>
          <exclusion>
            <groupId>javax.servlet</groupId>
            <artifactId>servlet-api</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>io.vertx</groupId>
        <artifactId>vertx-core</artifactId>
        <version>${vertx.version}</version>
        <exclusions>
          <exclusion>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
          </exclusion>
          <exclusion>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-core</artifactId>
          </exclusion>
          <exclusion>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-annotations</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>io.vertx</groupId>
        <artifactId>vertx-web</artifactId>
        <version>${vertx.version}</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.jetty</groupId>
        <artifactId>jetty-server</artifactId>
        <version>${jetty.version}</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.jetty</groupId>
        <artifactId>jetty-servlet</artifactId>
        <version>${jetty.version}</version>
      </dependency>

      <!-- stats dependencies -->
      <!-- dropwizard metrics -->
      <dependency>
        <groupId>io.dropwizard.metrics</groupId>
        <artifactId>metrics-core</artifactId>
        <version>${dropwizard.version}</version>
      </dependency>
      <dependency>
        <groupId>io.dropwizard.metrics</groupId>
        <artifactId>metrics-jvm</artifactId>
        <version>${dropwizard.version}</version>
      </dependency>
      <dependency>
        <groupId>io.dropwizard.metrics</groupId>
        <artifactId>metrics-graphite</artifactId>
        <version>${dropwizard.version}</version>
      </dependency>
      <!-- prometheus -->
      <dependency>
        <groupId>io.prometheus</groupId>
        <artifactId>simpleclient</artifactId>
        <version>${prometheus.version}</version>
      </dependency>
      <dependency>
        <groupId>io.prometheus</groupId>
        <artifactId>simpleclient_hotspot</artifactId>
        <version>${prometheus.version}</version>
      </dependency>
      <dependency>
        <groupId>io.prometheus</groupId>
        <artifactId>simpleclient_servlet</artifactId>
        <version>${prometheus.version}</version>
      </dependency>
      <!-- data-sketches -->
      <dependency>
        <groupId>com.yahoo.datasketches</groupId>
        <artifactId>sketches-core</artifactId>
        <version>${datasketches.version}</version>
      </dependency>

      <!-- ostrich -->
      <dependency>
        <groupId>com.twitter</groupId>
        <artifactId>ostrich_2.9.2</artifactId>
        <version>${ostrich.version}</version>
      </dependency>

      <!-- tools dependencies -->
      <dependency>
        <groupId>com.beust</groupId>
        <artifactId>jcommander</artifactId>
        <version>${jcommander.version}</version>
      </dependency>

      <!-- test dependencies -->
      <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>${junit.version}</version>
      </dependency>
      <dependency>
        <groupId>org.hamcrest</groupId>
        <artifactId>hamcrest-all</artifactId>
        <version>${hamcrest.version}</version>
      </dependency>
      <dependency>
        <groupId>org.jmock</groupId>
        <artifactId>jmock</artifactId>
        <version>${jmock.version}</version>
      </dependency>
      <dependency>
        <groupId>org.mockito</groupId>
        <artifactId>mockito-core</artifactId>
        <version>${mockito.version}</version>
      </dependency>
      <dependency>
        <groupId>org.powermock</groupId>
        <artifactId>powermock-api-mockito2</artifactId>
        <version>${powermock.version}</version>
      </dependency>
      <dependency>
        <groupId>org.powermock</groupId>
        <artifactId>powermock-module-junit4</artifactId>
        <version>${powermock.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.hadoop</groupId>
        <artifactId>hadoop-minikdc</artifactId>
        <version>${hadoop.version}</version>
      </dependency>
      <dependency>
        <groupId>org.arquillian.cube</groupId>
        <artifactId>arquillian-cube-docker</artifactId>
        <version>${arquillian-cube.version}</version>
      </dependency>
      <dependency>
        <groupId>org.jboss.arquillian.junit</groupId>
        <artifactId>arquillian-junit-standalone</artifactId>
        <version>${arquillian-junit.version}</version>
      </dependency>
      <dependency>
        <groupId>org.codehaus.groovy</groupId>
        <artifactId>groovy-all</artifactId>
        <version>${groovy.version}</version>
      </dependency>
      <dependency>
        <groupId>org.jboss.shrinkwrap.resolver</groupId>
        <artifactId>shrinkwrap-resolver-impl-maven</artifactId>
        <version>${shrinkwrap.version}</version>
      </dependency>
      <dependency>
        <groupId>org.jboss.shrinkwrap.resolver</groupId>
        <artifactId>shrinkwrap-resolver-api</artifactId>
        <version>${shrinkwrap.version}</version>
      </dependency>
      <dependency>
        <groupId>org.testcontainers</groupId>
        <artifactId>testcontainers</artifactId>
        <version>${testcontainers.version}</version>
      </dependency>

      <!-- benchmark dependencies -->
      <dependency>
        <groupId>org.openjdk.jmh</groupId>
        <artifactId>jmh-core</artifactId>
        <version>${jmh.version}</version>
      </dependency>
      <dependency>
        <groupId>org.openjdk.jmh</groupId>
        <artifactId>jmh-generator-annprocess</artifactId>
        <version>${jmh.version}</version>
      </dependency>
    </dependencies>
  </dependencyManagement>

  <!-- dependencies for all modules -->
  <dependencies>
    <!-- provided dependencies (available at compilation and test classpths and *NOT* packaged) -->
    <dependency>
      <groupId>org.projectlombok</groupId>
      <artifactId>lombok</artifactId>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>com.github.spotbugs</groupId>
      <artifactId>spotbugs-annotations</artifactId>
      <scope>provided</scope>
    </dependency>

    <!-- compilation dependencies (available at all classpaths) -->
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-api</artifactId>
    </dependency>
    <dependency>
      <groupId>commons-configuration</groupId>
      <artifactId>commons-configuration</artifactId>
    </dependency>

    <!-- test dependencies -->
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency><!-- Needed by junit -->
      <groupId>org.hamcrest</groupId>
      <artifactId>hamcrest-all</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-log4j12</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.mockito</groupId>
      <artifactId>mockito-core</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.powermock</groupId>
      <artifactId>powermock-api-mockito2</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.powermock</groupId>
      <artifactId>powermock-module-junit4</artifactId>
      <scope>test</scope>
    </dependency>
  </dependencies>

  <build>
    <extensions>
      <extension>
        <groupId>kr.motd.maven</groupId>
        <artifactId>os-maven-plugin</artifactId>
        <version>${os-maven-plugin.version}</version>
      </extension>
    </extensions>
    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-checkstyle-plugin</artifactId>
          <version>${maven-checkstyle-plugin.version}</version>
          <dependencies>
            <dependency>
              <groupId>com.puppycrawl.tools</groupId>
              <artifactId>checkstyle</artifactId>
              <version>${puppycrawl.checkstyle.version}</version>
            </dependency>
            <dependency>
              <groupId>org.apache.bookkeeper</groupId>
              <artifactId>buildtools</artifactId>
              <version>${project.version}</version>
            </dependency>
          </dependencies>
          <configuration>
            <configLocation>bookkeeper/checkstyle.xml</configLocation>
            <suppressionsLocation>bookkeeper/suppressions.xml</suppressionsLocation>
            <encoding>UTF-8</encoding>
            <consoleOutput>true</consoleOutput>
            <failOnViolation>true</failOnViolation>
            <includeResources>false</includeResources>
            <includeTestSourceDirectory>true</includeTestSourceDirectory>
          </configuration>
          <executions>
            <execution>
              <id>checkstyle</id>
              <phase>validate</phase>
              <goals>
                <goal>check</goal>
              </goals>
            </execution>
          </executions>
        </plugin>
      </plugins>
    </pluginManagement>
    <plugins>
      <plugin>
        <groupId>com.github.spotbugs</groupId>
        <artifactId>spotbugs-maven-plugin</artifactId>
        <version>${spotbugs-maven-plugin.version}</version>
        <configuration>
          <excludeFilterFile>${session.executionRootDirectory}/buildtools/src/main/resources/bookkeeper/findbugsExclude.xml</excludeFilterFile>
        </configuration>
      </plugin>
      <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>${maven-compiler-plugin.version}</version>
        <configuration>
          <source>${javac.target}</source>
          <target>${javac.target}</target>
          <compilerArgs>
            <compilerArg>-Werror</compilerArg>
            <compilerArg>-Xlint:deprecation</compilerArg>
            <compilerArg>-Xlint:unchecked</compilerArg>
            <!-- https://issues.apache.org/jira/browse/MCOMPILER-205 -->
            <compilerArg>-Xpkginfo:always</compilerArg>
	      </compilerArgs>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>${maven-surefire-plugin.version}</version>
        <configuration>
          <argLine>-Xmx2G -Djava.net.preferIPv4Stack=true -Dio.netty.leakDetection.level=paranoid</argLine>
          <redirectTestOutputToFile>${redirectTestOutputToFile}</redirectTestOutputToFile>
          <reuseForks>false</reuseForks>
          <forkedProcessTimeoutInSeconds>1800</forkedProcessTimeoutInSeconds>
          <rerunFailingTestsCount>${testRetryCount}</rerunFailingTestsCount>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-javadoc-plugin</artifactId>
        <version>${maven-javadoc-plugin.version}</version>
        <configuration>
          <!-- Prevent missing javadoc comments from being marked as errors -->
          <additionalparam>-Xdoclint:none -notimestamp</additionalparam>
          <additionalOptions>-Xdoclint:none -notimestamp</additionalOptions>
          <subpackages>org.apache.bookkeeper.client:org.apache.bookkeeper.client.api:org.apache.bookkeeper.common.annotation:org.apache.bookkeeper.conf:org.apache.bookkeeper.feature:org.apache.bookkeeper.stats</subpackages>
          <groups>
            <group>
              <title>Bookkeeper Client</title>
              <packages>org.apache.bookkeeper.client:org.apache.bookkeeper.common.annotation:org.apache.bookkeeper.conf:org.apache.bookkeeper.feature</packages>
            </group>
            <group>
              <title>Bookkeeper Client (New Fluent API - Experimental)</title>
              <packages>org.apache.bookkeeper.client.api</packages>
            </group>
            <group>
              <title>Bookkeeper Stats API</title>
              <!-- currently codahale is placed under `stats` package unfortunately.
                   we have done a copy to its own package in future in 4.7.0, will remove it in 4.8.0.
                   {@link https://github.com/apache/bookkeeper/issues/762} -->
              <packages>org.apache.bookkeeper.stats</packages>
            </group>
            <group>
              <title>Bookkeeper Stats Providers</title>
              <packages>org.apache.bookkeeper.stats.codahale:org.apache.bookkeeper.stats.twitter.finagle:org.apache.bookkeeper.stats.twitter.ostrich:org.apache.bookkeeper.stats.twitter.science:org.apache.bookkeeper.stats.prometheus</packages>
            </group>
          </groups>
          <doctitle>BookKeeper Java API (version ${project.version})</doctitle>
          <overview>site/_site/overview/index.html</overview>
          <show>package</show>
        </configuration>
        <executions>
          <execution>
            <id>aggregate</id>
            <goals>
              <goal>aggregate</goal>
            </goals>
            <phase>site</phase>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <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>
        <groupId>org.apache.rat</groupId>
        <artifactId>apache-rat-plugin</artifactId>
        <version>${apache-rat-plugin.version}</version>
        <configuration>
          <excludes>
            <!-- Git -->
            <exclude>.git/**/*</exclude>
            <exclude>.github/**/*</exclude>
            <exclude>**/.gitignore</exclude>

            <!-- SVN -->
            <exclude>**/.svn/**/*</exclude>

            <!-- Built directory -->
            <exclude>**/target/**/*</exclude>

            <!-- Project files -->
            <exclude>**/README.md</exclude>
            <exclude>**/apidocs/*</exclude>
            <exclude>**/src/main/resources/deps/**</exclude>
            <exclude>**/META-INF/**</exclude>

            <!-- IDE files (eclipse & intellij) -->
            <exclude>**/.classpath</exclude>
            <exclude>**/.project</exclude>
            <exclude>**/.checkstyle</exclude>
            <exclude>**/.settings/*</exclude>
            <exclude>**/*.iml</exclude>
            <exclude>**/*.iws</exclude>
            <exclude>**/*.ipr</exclude>

            <!-- Maven (CI builds) -->
            <exclude>.repository/**</exclude>

            <!-- Website -->
            <exclude>site/**</exclude>

            <!-- Thrift generated files -->
            <exclude>**/org/apache/distributedlog/thrift/*</exclude>

            <!-- logs -->
            <exclude>**/*.log</exclude>

            <!-- data -->
            <exclude>data/**</exclude>

            <!-- vargrant -->
            <exclude>dev/.vagrant/**</exclude>
          </excludes>
          <consoleOutput>true</consoleOutput>
        </configuration>
      </plugin>
    </plugins>
  </build>
  <profiles>
    <profile>
      <!-- profile used by jenkins CI -->
      <id>code-coverage</id>
      <build>
        <plugins>
          <plugin>
            <groupId>org.eluder.coveralls</groupId>
            <artifactId>coveralls-maven-plugin</artifactId>
            <version>${coveralls-maven-plugin.version}</version>
          </plugin>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>${maven-surefire-plugin.version}</version>
            <configuration>
              <!-- @{argLine} is a variable injected by JaCoCo-->
              <argLine>@{argLine} -Xmx2G -Djava.net.preferIPv4Stack=true</argLine>
              <redirectTestOutputToFile>${redirectTestOutputToFile}</redirectTestOutputToFile>
              <reuseForks>false</reuseForks>
              <forkedProcessTimeoutInSeconds>1800</forkedProcessTimeoutInSeconds>
              <!-- we want build to complete even in case of failures -->
              <testFailureIgnore>true</testFailureIgnore>
            </configuration>
          </plugin>
          <plugin>
            <groupId>org.jacoco</groupId>
            <artifactId>jacoco-maven-plugin</artifactId>
            <version>0.8.0</version>
            <executions>
              <execution>
                <goals>
                  <goal>prepare-agent</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>

    <!-- the profiles below are only for development purpose -->
    <profile>
      <id>dev</id>
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>${maven-surefire-plugin.version}</version>
            <configuration>
              <argLine>-Xmx2G -Djava.net.preferIPv4Stack=true</argLine>
              <redirectTestOutputToFile>false</redirectTestOutputToFile>
              <reuseForks>false</reuseForks>
              <forkedProcessTimeoutInSeconds>1800</forkedProcessTimeoutInSeconds>
              <trimStackTrace>false</trimStackTrace>
              <rerunFailingTestsCount>0</rerunFailingTestsCount>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>dev-debug</id>
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>${maven-surefire-plugin.version}</version>
            <configuration>
              <argLine>-Xmx2G -Djava.net.preferIPv4Stack=true -Dbookkeeper.root.logger=DEBUG,CONSOLE</argLine>
              <redirectTestOutputToFile>false</redirectTestOutputToFile>
              <reuseForks>false</reuseForks>
              <forkedProcessTimeoutInSeconds>1800</forkedProcessTimeoutInSeconds>
              <trimStackTrace>false</trimStackTrace>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>

    <!-- enable building table service module only when -Dstream is provided -->
    <profile>
      <id>stream</id>
      <activation>
        <property>
          <name>stream</name>
        </property>
      </activation>
      <modules>
        <!-- enable building table service -->
        <module>stream</module>
      </modules>
    </profile>
  </profiles>
</project>
