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

    <artifactId>google-cloud-bigtable-parent</artifactId>
    <packaging>pom</packaging>
    <version>2.23.2</version><!-- {x-version-update:google-cloud-bigtable:current} -->
    <name>Google Cloud Bigtable Parent</name>
    <url>https://github.com/googleapis/java-bigtable</url>
    <description>
        Java idiomatic client for Google Cloud Platform services.
    </description>

    <parent>
        <groupId>com.google.cloud</groupId>
        <artifactId>google-cloud-shared-config</artifactId>
        <version>1.5.5</version>
        <relativePath/>
    </parent>

    <developers>
        <developer>
            <id>garrettjonesgoogle</id>
            <name>Garrett Jones</name>
            <email>garrettjones@google.com</email>
            <organization>Google</organization>
            <roles>
                <role>Developer</role>
            </roles>
        </developer>
        <developer>
            <id>pongad</id>
            <name>Michael Darakananda</name>
            <email>pongad@google.com</email>
            <organization>Google</organization>
            <roles>
                <role>Developer</role>
            </roles>
        </developer>
        <developer>
            <id>shinfan</id>
            <name>Shin Fan</name>
            <email>shinfan@google.com</email>
            <organization>Google</organization>
            <roles>
                <role>Developer</role>
            </roles>
        </developer>
        <developer>
            <id>michaelbausor</id>
            <name>Micheal Bausor</name>
            <email>michaelbausor@google.com</email>
            <organization>Google</organization>
            <roles>
                <role>Developer</role>
            </roles>
        </developer>
        <developer>
            <id>vam-google</id>
            <name>Vadym Matsishevskyi</name>
            <email>vam@google.com</email>
            <organization>Google</organization>
            <roles>
                <role>Developer</role>
            </roles>
        </developer>
        <developer>
            <id>tswast</id>
            <name>Tim Swast</name>
            <email>tswast@google.com</email>
            <organization>Google</organization>
            <roles>
                <role>Developer</role>
            </roles>
        </developer>
        <developer>
            <id>neozwu</id>
            <name>Neo Wu</name>
            <email>neowu@google.com</email>
            <organization>Google</organization>
            <roles>
                <role>Developer</role>
            </roles>
        </developer>
        <developer>
            <id>lesv</id>
            <name>Les Vogel</name>
            <email>lesv@google.com</email>
            <organization>Google</organization>
            <roles>
                <role>Developer</role>
            </roles>
        </developer>
        <developer>
            <id>schmidt_sebastian</id>
            <name>Sebastian Schmidt</name>
            <email>mrschmidt@google.com</email>
            <organization>Google</organization>
            <roles>
                <role>Developer</role>
            </roles>
        </developer>
        <developer>
            <id>andreamlin</id>
            <name>Andrea Lin</name>
            <email>andrealin@google.com</email>
            <roles>
                <role>Developer</role>
            </roles>
        </developer>
        <developer>
            <id>hzyi-google</id>
            <name>Hanzhen Yi</name>
            <email>hzyi@google.com</email>
            <roles>
                <role>Developer</role>
            </roles>
        </developer>
    </developers>
    <organization>
        <name>Google LLC</name>
    </organization>
    <scm>
        <connection>scm:git:git@github.com:googleapis/java-bigtable.git</connection>
        <developerConnection>scm:git:git@github.com:googleapis/java-bigtable.git</developerConnection>
        <url>https://github.com/googleapis/java-bigtable</url>
        <tag>HEAD</tag>
    </scm>
    <issueManagement>
        <url>https://github.com/googleapis/java-bigtable/issues</url>
        <system>GitHub Issues</system>
    </issueManagement>
    
    <licenses>
        <license>
            <name>Apache-2.0</name>
            <url>https://www.apache.org/licenses/LICENSE-2.0.txt</url>
        </license>
    </licenses>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <github.global.server>github</github.global.server>
        <site.installationModule>google-cloud-bigtable-parent</site.installationModule>
        <project.javadoc.protobufBaseURL>https://googleapis.dev/java/google-api-grpc/latest</project.javadoc.protobufBaseURL>
    </properties>

    <dependencyManagement>
        <dependencies>
            <!-- Production Deps have been moved to google-cloud-bigtable-deps-bom -->

            <dependency>
                <groupId>com.google.api.grpc</groupId>
                <artifactId>proto-google-cloud-bigtable-v2</artifactId>
                <version>2.23.2</version><!-- {x-version-update:proto-google-cloud-bigtable-v2:current} -->
            </dependency>
            <dependency>
                <groupId>com.google.api.grpc</groupId>
                <artifactId>proto-google-cloud-bigtable-admin-v2</artifactId>
                <version>2.23.2</version><!-- {x-version-update:proto-google-cloud-bigtable-admin-v2:current} -->
            </dependency>
            <dependency>
                <groupId>com.google.api.grpc</groupId>
                <artifactId>grpc-google-cloud-bigtable-v2</artifactId>
                <version>2.23.2</version><!-- {x-version-update:grpc-google-cloud-bigtable-v2:current} -->
            </dependency>
            <dependency>
                <groupId>com.google.api.grpc</groupId>
                <artifactId>grpc-google-cloud-bigtable-admin-v2</artifactId>
                <version>2.23.2</version><!-- {x-version-update:grpc-google-cloud-bigtable-admin-v2:current} -->
            </dependency>
            <dependency>
                <groupId>com.google.cloud</groupId>
                <artifactId>google-cloud-bigtable</artifactId>
                <version>2.23.2</version><!-- {x-version-update:google-cloud-bigtable:current} -->
            </dependency>
            <!-- Test Deps in alphabetical order -->
            <dependency>
                <groupId>com.google.cloud</groupId>
                <artifactId>google-cloud-conformance-tests</artifactId>
                <version>0.3.6</version>
            </dependency>
            <dependency>
                <groupId>com.google.truth</groupId>
                <artifactId>truth</artifactId>
                <version>1.1.4</version>
            </dependency>
            <dependency>
                <groupId>com.google.truth.extensions</groupId>
                <artifactId>truth-proto-extension</artifactId>
                <version>1.1.4</version>
                <scope>test</scope>
                <exclusions>
                    <!-- exclude protobuf-java as it is managed in the shared deps bom-->
                    <exclusion>
                        <groupId>com.google.protobuf</groupId>
                        <artifactId>protobuf-java</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>4.13.2</version>
            </dependency>
            <dependency>
                <groupId>org.mockito</groupId>
                <artifactId>mockito-core</artifactId>
                <version>4.11.0</version>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <build>
        <plugins>
            <!-- Using maven site plugin only as a hook for javadoc:aggregate, don't need the reports -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-site-plugin</artifactId>

                <configuration>
                    <generateReports>false</generateReports>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-javadoc-plugin</artifactId>
                <version>3.5.0</version>
                <executions>
                    <execution>
                        <id>aggregate</id>
                        <inherited>false</inherited>
                        <phase>site</phase>
                        <goals>
                            <goal>aggregate</goal>
                        </goals>
                        <configuration>
                            <sourceFileExcludes combine.children="append">
                                <!-- Exclude protobuf & grpc stubs from the public javadocs site. -->
                                <sourceFileExclude>**/com/google/bigtable/**</sourceFileExclude>
                            </sourceFileExcludes>
                        </configuration>
                    </execution>
                </executions>

                <configuration>
                    <!-- This is the old way of publishing the doc to googleapis.dev -->
                    <doclint>none</doclint>
                    <show>protected</show>
                    <nohelp>true</nohelp>
                    <outputDirectory>${project.build.directory}/javadoc</outputDirectory>

                    <sourceFileExcludes>
                        <!-- Hide InternalApi & non public classes from javadocs site and the javadoc jars -->
                        <!-- TODO(igorbernstein): use a custom doclet to exclude @InternalApi classes from javadoc -->
                        <!-- Hide @InternalApi classes -->
                        <sourceFileExclude>**/com/google/cloud/bigtable/gaxx/**</sourceFileExclude>

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

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

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

                    <!-- Enable external linking -->
                    <links>
                        <link>https://googleapis.dev/java/gax/${gax.version}/</link>
                        <link>https://googleapis.github.io/api-common-java/${google.api-common.version}/apidocs/</link>
                    </links>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-shade-plugin</artifactId>
                <version>3.3.0</version>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-dependency-plugin</artifactId>
                <configuration>
                    <ignoreNonCompile>true</ignoreNonCompile>
                </configuration>
            </plugin>
        </plugins>
    </build>

    <profiles>
        <profile>
            <id>docFX</id>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-javadoc-plugin</artifactId>
                        <version>3.5.0</version>
                        <configuration>
                            <!-- This is the new way of publishing the doc to cloud.google.com -->
                            <doclet>com.microsoft.doclet.DocFxDoclet</doclet>
                            <useStandardDocletOptions>false</useStandardDocletOptions>
                            <docletPath>${env.KOKORO_GFILE_DIR}/java-docfx-doclet-1.9.0.jar</docletPath>
                            <additionalOptions>
                                -outputpath ${project.build.directory}/docfx-yml
                                -projectname ${artifactId}
                                <!-- List of excluded packages as regex, separated by a colon-->
                                <!-- Exclude generating javadocs for internal implementations for admin and data, which
                                 are under internal/ and .v2.stub/, and exclude all BaseClients and BaseSettings.
                                 The only exception is we want to keep the javadoc for StubSettings. -->
                                -excludeclasses com\.google\.cloud\.bigtable\.admin\.v2\.(internal\.|(Base.*).*|stub\.(?!Bigtable.*StubSettings).*):com\.google\.cloud\.bigtable\.data\.v2\.(internal\.|(Base.*).*|stub\.(?!Enhanced.*StubSettings).*)
                                <!-- Exclude the javadocs for the auto-generated raw protos since we don't expose them.
                                 The raw protos generated by gapic are under com.google.bigtable. And the public surface
                                 is under com.google.cloud.bigtable. Also exclude the stats package which is the
                                 internal implementation for metrics. -->
                                -excludepackages com\.google\.(bigtable\.v2|bigtable\.admin\.v2|cloud\.bigtable\.stats)
                            </additionalOptions>
                        </configuration>

                        <executions>
                            <execution>
                                <id>aggregate</id>
                                <goals>
                                    <goal>aggregate</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>

        <profile>
            <!-- Shading workaround for IDEs: This project relocates some of its internal dependencies. Since IDEs can't
             resolve the relocated symbols on their own, a workaround is added: first mvn install the shaded module,
             then disable the with-shaded profile to force IDEs to resolve the relocated dependencies from the local
             repository -->
            <id>with-shaded</id>
            <activation>
                <property>
                    <name>!skip-shaded</name>
                </property>
            </activation>
            <modules>
                <module>google-cloud-bigtable-stats</module>
            </modules>
        </profile>
    </profiles>

    <modules>
    <module>google-cloud-bigtable</module>
    <module>grpc-google-cloud-bigtable-admin-v2</module>
    <module>grpc-google-cloud-bigtable-v2</module>
    <module>proto-google-cloud-bigtable-admin-v2</module>
    <module>proto-google-cloud-bigtable-v2</module>
    <module>google-cloud-bigtable-emulator-core</module>
    <module>google-cloud-bigtable-emulator</module>
    <module>google-cloud-bigtable-bom</module>
    <module>google-cloud-bigtable-deps-bom</module>
  </modules>

  </project>
