<?xml version="1.0"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <artifactId>google-cloud-bigtable</artifactId>
  <version>0.101.0</version><!-- {x-version-update:google-cloud-bigtable:current} -->
  <packaging>jar</packaging>
  <name>Google Cloud Bigtable</name>
  <url>https://github.com/googleapis/google-cloud-java/tree/master/google-cloud-clients/google-cloud-bigtable</url>
  <description>
    Java idiomatic client for Google Cloud Bigtable.
  </description>
  <parent>
    <groupId>com.google.cloud</groupId>
    <artifactId>google-cloud-clients</artifactId>
    <version>0.101.0-alpha</version><!-- {x-version-update:google-cloud-clients:current} -->
  </parent>
  <properties>
    <site.installationModule>google-cloud-bigtable</site.installationModule>
  </properties>
  <dependencies>
    <dependency>
      <groupId>${project.groupId}</groupId>
      <artifactId>google-cloud-core-grpc</artifactId>
    </dependency>
    <dependency>
      <groupId>com.google.api.grpc</groupId>
      <artifactId>proto-google-cloud-bigtable-v2</artifactId>
    </dependency>
    <dependency>
      <groupId>com.google.api.grpc</groupId>
      <artifactId>proto-google-cloud-bigtable-admin-v2</artifactId>
    </dependency>
    <dependency>
      <groupId>com.google.auto.value</groupId>
      <artifactId>auto-value</artifactId>
      <scope>provided</scope>
    </dependency>

    <!-- Test dependencies -->
    <dependency>
      <groupId>com.google.api.grpc</groupId>
      <artifactId>grpc-google-cloud-bigtable-v2</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>com.google.api.grpc</groupId>
      <artifactId>grpc-google-cloud-bigtable-admin-v2</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.mockito</groupId>
      <artifactId>mockito-all</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>com.google.truth</groupId>
      <artifactId>truth</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>com.google.api</groupId>
      <artifactId>gax</artifactId>
      <classifier>testlib</classifier>
      <scope>test</scope>
    </dependency>
    <!-- Need testing utility classes for generated gRPC clients tests -->
    <dependency>
      <groupId>com.google.api</groupId>
      <artifactId>gax-grpc</artifactId>
      <classifier>testlib</classifier>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>io.grpc</groupId>
      <artifactId>grpc-testing</artifactId>
      <scope>test</scope>
    </dependency>
  </dependencies>
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-failsafe-plugin</artifactId>
        <version>3.0.0-M3</version>
        <executions>
          <execution>
            <goals>
              <goal>integration-test</goal>
              <goal>verify</goal>
            </goals>
          </execution>
        </executions>
        <configuration>
          <parallel>classes</parallel>
          <perCoreThreadCount>true</perCoreThreadCount>
          <threadCount>2</threadCount>
          <trimStackTrace>false</trimStackTrace>
          <test>com.google.cloud.bigtable.data.v2.it.**</test>
          <test>com.google.cloud.bigtable.admin.v2.it.**</test>
        </configuration>
        <dependencies>
          <dependency>
            <groupId>org.apache.maven.surefire</groupId>
            <artifactId>surefire-junit47</artifactId>
            <version>3.0.0-M3</version>
          </dependency>
        </dependencies>
      </plugin>
      <plugin>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>3.0.0-M3</version>
        <dependencies>
          <dependency>
            <groupId>org.apache.maven.surefire</groupId>
            <artifactId>surefire-junit47</artifactId>
            <version>3.0.0-M3</version>
          </dependency>
        </dependencies>

        <configuration>
          <!--
            TODO(igorbernstein): enable parallel tests once the generate client tests use unique
            names for the mock server
          -->
          <trimStackTrace>false</trimStackTrace>
        </configuration>
      </plugin>
    </plugins>
  </build>

  <reporting>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-javadoc-plugin</artifactId>
        <version>3.1.1</version>
        <configuration>
          <show>protected</show>
          <nohelp>true</nohelp>
          <doclint>none</doclint>
          <splitindex>true</splitindex>

          <sourceFileExcludes>
            <!-- TODO(igorbernstein): use a custom doclet to exclude @InternalApi classes from javadoc -->
            <!-- Hide @InternalApi classes -->
            <exclude>com/google/cloud/bigtable/gaxx/**</exclude>

            <!-- Hide @InternalApi classes for InstanceAdmin -->
            <exclude>com/google/cloud/bigtable/admin/v2/internal/**</exclude>
            <exclude>com/google/cloud/bigtable/admin/v2/BaseBigtableInstanceAdminClient.java</exclude>
            <exclude>com/google/cloud/bigtable/admin/v2/BaseBigtableInstanceAdminSettings.java</exclude>
            <exclude>com/google/cloud/bigtable/admin/v2/stub/GrpcBigtableInstanceAdminCallableFactory.java</exclude>
            <exclude>com/google/cloud/bigtable/admin/v2/stub/GrpcBigtableInstanceAdminStub.java</exclude>
            <exclude>com/google/cloud/bigtable/admin/v2/stub/BigtableInstanceAdminStub.java</exclude>

            <!-- Hide @InternalApi classes for TableAdmin -->
            <exclude>com/google/cloud/bigtable/admin/v2/BaseBigtableTableAdminClient.java</exclude>
            <exclude>com/google/cloud/bigtable/admin/v2/BaseBigtableTableAdminSettings.java</exclude>
            <exclude>com/google/cloud/bigtable/admin/v2/stub/GrpcBigtableTableAdminCallableFactory.java</exclude>
            <exclude>com/google/cloud/bigtable/admin/v2/stub/GrpcBigtableTableAdminStub.java</exclude>
            <exclude>com/google/cloud/bigtable/admin/v2/stub/BigtableTableAdminStub.java</exclude>
            <exclude>com/google/cloud/bigtable/admin/v2/stub/EnhancedBigtableTableAdminStub.java</exclude>

            <!-- Hide @InternalApi classes for Data -->
            <exclude>com/google/cloud/bigtable/data/v2/internal/**</exclude>
            <exclude>com/google/cloud/bigtable/data/v2/BaseBigtableDataClient.java</exclude>
            <exclude>com/google/cloud/bigtable/data/v2/BaseBigtableDataSettings.java</exclude>
            <exclude>com/google/cloud/bigtable/data/v2/stub/BigtableStub.java</exclude>
            <exclude>com/google/cloud/bigtable/data/v2/stub/BigtableStubSettings.java</exclude>
            <exclude>com/google/cloud/bigtable/data/v2/stub/GrpcBigtableStub.java</exclude>
            <exclude>com/google/cloud/bigtable/data/v2/stub/GrpcBigtableCallableFactory.java</exclude>
            <exclude>com/google/cloud/bigtable/data/v2/stub/EnhancedBigtableStub.java</exclude>
            <exclude>com/google/cloud/bigtable/data/v2/stub/mutaterows/**</exclude>
            <exclude>com/google/cloud/bigtable/data/v2/stub/readrows/**</exclude>
          </sourceFileExcludes>

          <offlineLinks>
            <offlineLink>
              <url>${project.javadoc.protobufBaseURL}</url>
              <location>../../../../../google-api-grpc/proto-google-cloud-bigtable-v2/target/site/apidocs/</location>
            </offlineLink>
            <offlineLink>
              <url>${project.javadoc.protobufBaseURL}</url>
              <location>../../../../../google-api-grpc/grpc-google-cloud-bigtable-v2/target/site/apidocs/</location>
            </offlineLink>
            <offlineLink>
              <url>${project.javadoc.protobufBaseURL}</url>
              <location>../../../../../google-api-grpc/proto-google-cloud-bigtable-admin-v2/target/site/apidocs/</location>
            </offlineLink>
            <offlineLink>
              <url>${project.javadoc.protobufBaseURL}</url>
              <location>../../../../../google-api-grpc/grpc-google-cloud-bigtable-admin-v2/target/site/apidocs/</location>
            </offlineLink>
          </offlineLinks>
        </configuration>
      </plugin>
    </plugins>
  </reporting>
</project>