<?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>
  <groupId>com.ibm.cos.v2</groupId>
  <artifactId>ibm-cos-java-sdk-v2</artifactId>
  <version>1.0.0</version>
  <packaging>pom</packaging>
  <name>IBM COS Java SDK :: Parent</name>
  <description>The IBM COS SDK for Java provides Java APIs
    for building software on IBM COS' cost-effective, scalable, and reliable
    infrastructure products. The IBM COS Java SDK allows developers to code
    against IBM's web services (S3)
  </description>
  <url>https://github.com/ibm/ibm-cos-sdk-java-v2</url>
  <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>
  <developers>
    <developer>
      <name>IBM</name>
      <email></email>
      <url>https://www.ibm.com/cloud/</url>
    </developer>
  </developers>
  <modules>
    <module>cos-java-sdk</module>
    <module>test/test-utils</module>
    <module>test/http-client-tests</module>
    <module>core</module>
    <module>services</module>
    <module>services-custom</module>
    <module>bom</module>
    <module>bom-internal</module>
    <module>http-client-spi</module>
    <module>http-clients</module>
    <module>bundle</module>
    <module>bundle-sdk</module>
    <module>bundle-logging-bridge</module>
    <module>release-scripts</module>
    <module>utils</module>
    <module>third-party</module>
  </modules>
  <scm>
    <url>${scm.github.url}</url>
    <connection>${scm.github.connection}</connection>
  </scm>
  <properties>
    <ibmcosjavasdk.version>${project.version}</ibmcosjavasdk.version>
    <sdk-core.version>9.25.0</sdk-core.version>
    <!-- Jackson Dependencies -->
    <jackson-core.version>2.21.1</jackson-core.version>
    <jackson-annotations.version>2.21</jackson-annotations.version>
    <jackson-databind.version>2.21.1</jackson-databind.version>
    <jackson-dataformat-cbor.version>2.21.1</jackson-dataformat-cbor.version>
    <jackson-datatype-jdk8.version>2.21.1</jackson-datatype-jdk8.version>
    <jackson-datatype-jsr310.version>2.21.1</jackson-datatype-jsr310.version>
    <jackson-jr-objects.version>2.17.3</jackson-jr-objects.version>
    <jackson-jr-stree.version>2.17.3</jackson-jr-stree.version>
    <!-- Netty Dependencies -->
    <!-- Update netty-tcnative-boringssl-static.version accordingly whenever we update netty versions-->
    <!-- https://github.com/netty/netty/blob/4.1/pom.xml search "tcnative.version" -->
    <netty-codec-http.version>4.2.9.Final</netty-codec-http.version>
    <netty-codec-http2.version>4.2.9.Final</netty-codec-http2.version>
    <netty-codec.version>4.2.9.Final</netty-codec.version>
    <netty-handler.version>4.2.9.Final</netty-handler.version>
    <netty-transport.version>4.2.9.Final</netty-transport.version>
    <netty-common.version>4.2.9.Final</netty-common.version>
    <netty-buffer.version>4.2.9.Final</netty-buffer.version>
    <netty-resolver.version>4.2.9.Final</netty-resolver.version>
    <netty-resolver-dns.version>4.2.9.Final</netty-resolver-dns.version>
    <netty-transport-classes-epoll.version>4.2.9.Final</netty-transport-classes-epoll.version>
    <netty-tcnative-boringssl-static.version>2.0.70.Final</netty-tcnative-boringssl-static.version>
    <!-- Apache HTTP Components -->
    <httpclient.version>4.5.13</httpclient.version>
    <httpcore.version>4.4.16</httpcore.version>
    <!-- Commons Libraries -->
    <commons-io.version>2.15.1</commons-io.version>
    <commons-lang3.version>3.18.0</commons-lang3.version>
    <commons-codec.version>1.17.1</commons-codec.version>
    <!-- Logging Dependencies -->
    <slf4j-api.version>1.7.36</slf4j-api.version>
    <log4j-api.version>2.25.3</log4j-api.version>
    <log4j-core.version>2.25.3</log4j-core.version>
    <log4j-slf4j-impl.version>2.25.3</log4j-slf4j-impl.version>
    <!-- Test Dependencies -->
    <junit-bom.version>5.10.0</junit-bom.version>
    <junit.version>4.13.2</junit.version>
    <mockito-core.version>4.3.1</mockito-core.version>
    <mockito-inline.version>4.3.1</mockito-inline.version>
    <mockito-junit-jupiter.version>4.6.0</mockito-junit-jupiter.version>
    <hamcrest-all.version>1.3</hamcrest-all.version>
    <hamcrest-core.version>1.3</hamcrest-core.version>
    <assertj-bom.version>3.27.7</assertj-bom.version>
    <assertj-core.version>3.27.7</assertj-core.version>
    <wiremock-jre8.version>2.32.0</wiremock-jre8.version>
    <equalsverifier.version>3.15.1</equalsverifier.version>
    <unitils-core.version>3.4.6</unitils-core.version>
    <xmlunit.version>1.3</xmlunit.version>
    <testng.version>7.1.0</testng.version>
    <guava.version>29.0-jre</guava.version>
    <jimfs.version>1.1</jimfs.version>
    <blockhound.version>1.0.8.RELEASE</blockhound.version>
    <byte-buddy.version>1.14.15</byte-buddy.version>
    <archunit.version>1.3.0</archunit.version>
    <archunit-junit5.version>1.3.0</archunit-junit5.version>
    <!-- SQLite Dependencies -->
    <sqlite4java.version>1.0.392</sqlite4java.version>
    <sqlite4java-win32-x86.version>1.0.392</sqlite4java-win32-x86.version>
    <sqlite4java-win32-x64.version>1.0.392</sqlite4java-win32-x64.version>
    <libsqlite4java-osx.version>1.0.392</libsqlite4java-osx.version>
    <libsqlite4java-linux-i386.version>1.0.392</libsqlite4java-linux-i386.version>
    <libsqlite4java-linux-amd64.version>1.0.392</libsqlite4java-linux-amd64.version>
    <!-- Other Dependencies -->
    <eventstream.version>1.0.1</eventstream.version>
    <rxjava.version>2.2.21</rxjava.version>
    <aws-crt.version>0.38.1</aws-crt.version>
    <reactive-streams.version>1.0.4</reactive-streams.version>
    <reactive-streams-tck.version>1.0.4</reactive-streams-tck.version>
    <org.eclipse.jdt.core.version>3.10.0</org.eclipse.jdt.core.version>
    <org.eclipse.text.version>3.5.101</org.eclipse.text.version>
    <json-schema-validator.version>1.5.4</json-schema-validator.version>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <!-- Build Plugin Dependencies -->
    <maven-surefire-plugin.version>3.1.2</maven-surefire-plugin.version>
    <maven-compiler-plugin.version>3.8.1</maven-compiler-plugin.version>
    <maven-jar-plugin.version>3.3.0</maven-jar-plugin.version>
    <maven-javadoc-plugin.version>3.4.1</maven-javadoc-plugin.version>
    <maven-dependency-plugin.version>3.1.1</maven-dependency-plugin.version>
    <maven-gpg-plugin.version>1.6</maven-gpg-plugin.version>
    <jacoco-maven-plugin.version>0.8.12</jacoco-maven-plugin.version>
    <nexus-staging-maven-plugin.version>1.6.8</nexus-staging-maven-plugin.version>
    <exec-maven-plugin.version>1.6.0</exec-maven-plugin.version>
    <maven-deploy-plugin.version>2.8.2</maven-deploy-plugin.version>
    <japicmp-maven-plugin.version>0.15.6</japicmp-maven-plugin.version>
    <maven-archetype-plugin.version>3.3.0</maven-archetype-plugin.version>
    <!-- Whenever we update maven-wrapper-plugin version, we need to run mvn wrapper:wrapper to update the Maven Wrapper files(mvnw, .maven and mvnw.cmd) -->
    <maven-wrapper-plugin.version>3.2.0</maven-wrapper-plugin.version>
    <checkstyle.version>8.42</checkstyle.version>
    <ant.version>1.10.14</ant.version>
    <maven.build.timestamp.format>yyyy</maven.build.timestamp.format>
    <!-- These properties are used by Step functions for its dependencies -->
    <json-path.version>2.4.0</json-path.version>
    <!-- These properties are used by SWF for its dependencies -->
    <spring.version>3.0.7.RELEASE</spring.version>
    <freemarker.version>2.3.9</freemarker.version>
    <aspectj.version>1.8.2</aspectj.version>
    <jre.version>1.8</jre.version>
    <httpcomponents.httpclient.version>4.5.13</httpcomponents.httpclient.version>
    <httpcomponents.httpcore.version>4.4.16</httpcomponents.httpcore.version>
    <!-- Reactive Streams version -->
    <reactive-streams.version>1.0.4</reactive-streams.version>
    <!-- S3 Access Grants plugin version -->
    <s3accessgrants.version>2.1.0</s3accessgrants.version>
    <v2.migration.tests.skip>true</v2.migration.tests.skip>
    <integTestSourceDirectory>${project.basedir}/src/it/java</integTestSourceDirectory>
    <scm.github.url>https://github.com/aws/ibm-cos-java-sdk-v2</scm.github.url>
    <scm.github.connection>scm:git:git://github.com/aws/ibm-cos-java-sdk-v2.git</scm.github.connection>
    <japicmp.skip>true</japicmp.skip>
  </properties>

  <!--publish the binary start-->
  <distributionManagement>
    <snapshotRepository>
      <id>central</id>
      <url>https://central.sonatype.com/repository/maven-snapshots/</url>
    </snapshotRepository>
    <repository>
      <id>central</id>
      <url>https://central.sonatype.com/repository/maven-releases/</url>
    </repository>
  </distributionManagement>
  <!--publish the binary end-->

  <dependencyManagement>
    <!-- Internal dependencies are managed in the bom-internal module. -->
      <dependencies>
        <!-- Force Gson 2.13.0 globally -->
        <dependency>
          <groupId>com.google.code.gson</groupId>
          <artifactId>gson</artifactId>
          <version>2.13.0</version>
        </dependency>
        <dependency>
          <groupId>commons-io</groupId>
          <artifactId>commons-io</artifactId>
          <version>2.15.1</version>
        </dependency>
          <dependency>
            <groupId>com.ibm.cloud</groupId>
            <artifactId>sdk-core</artifactId>
            <version>${sdk-core.version}</version>
          </dependency>
        
        <!-- Force secure Netty versions globally -->
        <dependency>
          <groupId>io.netty</groupId>
          <artifactId>netty-codec-http2</artifactId>
          <version>${netty-codec-http2.version}</version>
        </dependency>
        <dependency>
          <groupId>io.netty</groupId>
          <artifactId>netty-codec-http</artifactId>
          <version>${netty-codec-http.version}</version>
        </dependency>
        <dependency>
          <groupId>io.netty</groupId>
          <artifactId>netty-codec</artifactId>
          <version>${netty-codec.version}</version>
        </dependency>
        <dependency>
          <groupId>io.netty</groupId>
          <artifactId>netty-handler</artifactId>
          <version>${netty-handler.version}</version>
        </dependency>
        <dependency>
          <groupId>io.netty</groupId>
          <artifactId>netty-transport</artifactId>
          <version>${netty-transport.version}</version>
        </dependency>
        <dependency>
          <groupId>io.netty</groupId>
          <artifactId>netty-common</artifactId>
          <version>${netty-common.version}</version>
        </dependency>
        <dependency>
          <groupId>io.netty</groupId>
          <artifactId>netty-buffer</artifactId>
          <version>${netty-buffer.version}</version>
        </dependency>
        <dependency>
          <groupId>io.netty</groupId>
          <artifactId>netty-resolver</artifactId>
          <version>${netty-resolver.version}</version>
        </dependency>
        <dependency>
          <groupId>io.netty</groupId>
          <artifactId>netty-resolver-dns</artifactId>
          <version>${netty-resolver-dns.version}</version>
        </dependency>
        <dependency>
          <groupId>io.netty</groupId>
          <artifactId>netty-transport-classes-epoll</artifactId>
          <version>${netty-transport-classes-epoll.version}</version>
        </dependency>
        
        <!-- Force secure commons-lang3 version globally -->
        <dependency>
          <groupId>org.apache.commons</groupId>
          <artifactId>commons-lang3</artifactId>
          <version>${commons-lang3.version}</version>
        </dependency>
      </dependencies>

  </dependencyManagement>
  <dependencies>
    <!-- Internal dependencies are managed in the bom-internal module. -->
  </dependencies>
  <build>
    <finalName>ibm-cos-java-sdk-${project.artifactId}-${ibmcosjavasdk.version}</finalName>
    <resources>
      <resource>
        <directory>src/main/resources</directory>
        <excludes>
          <exclude>codegen-resources/**</exclude>
        </excludes>
        <filtering>false</filtering>
      </resource>
    </resources>
    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-compiler-plugin</artifactId>
          <version>${maven-compiler-plugin.version}</version>
          <configuration>
            <source>${jre.version}</source>
            <target>${jre.version}</target>
            <encoding>UTF-8</encoding>
            <forceJavacCompilerUse>true</forceJavacCompilerUse>
            <compilerArgument>-proc:none</compilerArgument>
            <fork>false</fork>
            <compilerArgument>-proc:none</compilerArgument>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-javadoc-plugin</artifactId>
          <version>${maven-javadoc-plugin.version}</version>
          <executions>
            <execution>
              <id>generate-javadocs</id>
              <goals>
                <goal>jar</goal>
              </goals>
              <configuration>
                <detectJavaApiLink>false</detectJavaApiLink>
                <source>8</source>
                <notree>true</notree>
                <includeDependencySources>false</includeDependencySources>
                <doclint>none</doclint>
                <!-- Exclude service packages to accelerate build -->
                <excludePackageNames>com.ibm.cos.v2.services.*:*.codegen</excludePackageNames>
              </configuration>
            </execution>
          </executions>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-surefire-plugin</artifactId>
          <version>${maven-surefire-plugin.version}</version>
          <configuration>
            <excludes>
              <exclude>**/*StabilityTest.java</exclude>
              <exclude>**/*StabilityTests.java</exclude>
              <exclude>**/*CucumberTest.java</exclude>
              <exclude>**/*IntegrationTest.java</exclude>
              <exclude>**/*IntegrationTests.java</exclude>
              <exclude>**/*IntegTest.java</exclude>
              <exclude>**/*IntegrationTestCase.java</exclude>
              <exclude>**/*ClientEndpointTests.java</exclude>
              <exclude>**/*EndpointProviderTests.java</exclude>
            </excludes>
            <includes>
              <include>**/Test*.java</include>
              <include>**/*Tests.java</include>
              <include>**/*Test.java</include>
              <include>**/*TestCase.java</include>
            </includes>
          </configuration>
          <!-- Have to explicitly set surefire provider because reactivestreamsTCK is using TestNG-->

          <dependencies>
            <dependency>
              <groupId>org.apache.maven.surefire</groupId>
              <artifactId>surefire-junit-platform</artifactId>
              <version>${maven-surefire-plugin.version}</version>
            </dependency>
            <dependency>
              <groupId>org.apache.httpcomponents</groupId>
              <artifactId>httpclient</artifactId>
              <version>4.5.14</version>
              <!-- or latest 4.x version -->
            </dependency>

          </dependencies>
        </plugin>

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-jar-plugin</artifactId>
          <version>${maven-jar-plugin.version}</version>
        </plugin>
      </plugins>
    </pluginManagement>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>${maven-compiler-plugin.version}</version>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-javadoc-plugin</artifactId>
        <version>${maven-javadoc-plugin.version}</version>
      </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>jacoco-site</id>
            <phase>package</phase>
            <goals>
              <goal>report</goal>
            </goals>
          </execution>
          <!--
                        Prepares the property pointing to the JaCoCo runtime agent which
                        is passed as VM argument when Maven the Failsafe plugin is executed.
                    -->
          <execution>
            <id>pre-integration-test</id>
            <phase>integration-test</phase>
            <goals>
              <goal>prepare-agent</goal>
            </goals>
          </execution>
          <execution>
            <id>post-integration-test</id>
            <phase>post-integration-test</phase>
            <goals>
              <goal>report</goal>
            </goals>
          </execution>
        </executions>
        <configuration>
          <excludes>
            <exclude>**/*Benchmark.class</exclude>
          </excludes>
        </configuration>
      </plugin>
      <plugin>
        <groupId>com.github.siom79.japicmp</groupId>
        <artifactId>japicmp-maven-plugin</artifactId>
        <version>${japicmp-maven-plugin.version}</version>
        <configuration>
          <oldVersion>
            <dependency>
              <groupId>${project.groupId}</groupId>
              <artifactId>${project.artifactId}</artifactId>
              <version>${ibmcosjavasdk.previous.version}</version>
              <type>jar</type>
            </dependency>
          </oldVersion>
          <newVersion>
            <file>
              <path>${project.build.directory}/ibm-cos-java-sdk-${project.artifactId}-${project.version}.${project.packaging}</path>
            </file>
          </newVersion>
          <parameter>
            <onlyModified>true</onlyModified>
            <includeModules>
              <includeModule>annotations</includeModule>
              <includeModule>arns</includeModule>
              <includeModule>auth</includeModule>
              <includeModule>auth-crt</includeModule>
              <includeModule>crt-core</includeModule>
              <includeModule>http-auth</includeModule>
              <includeModule>http-auth-spi</includeModule>
              <includeModule>http-auth-aws</includeModule>
              <includeModule>http-auth-aws-crt</includeModule>
              <includeModule>http-auth-aws-eventstream</includeModule>
              <includeModule>endpoints-spi</includeModule>
              <includeModule>identity-spi</includeModule>
              <includeModule>json-utils</includeModule>
              <includeModule>metrics-spi</includeModule>
              <includeModule>profiles</includeModule>
              <includeModule>protocols</includeModule>
              <includeModule>regions</includeModule>
              <includeModule>sdk-core</includeModule>
              <includeModule>http-client-spi</includeModule>
              <includeModule>apache-client</includeModule>
              <includeModule>netty-nio-client</includeModule>
              <includeModule>url-connection-client</includeModule>
              <includeModule>utils</includeModule>
              <includeModule>retries</includeModule>
              <includeModule>retries-spi</includeModule>
              <!-- High level libraries -->
              <includeModule>s3-transfer-manager</includeModule>
              <!-- Service modules that are heavily customized should be included -->
              <includeModule>s3</includeModule>
              <includeModule>kms</includeModule>
            </includeModules>
            <excludes>
              <exclude>*.internal.*</exclude>
              <exclude>com.ibm.cos.v2.thirdparty.*</exclude>
              <exclude>com.ibm.cos.v2.regions.*</exclude>
              <!-- TODO revert - Temporarily disable because system setting USER_REGION was removed -->
              <exclude>com.ibm.cos.v2.utils.JavaSystemSetting</exclude>
              <!-- TODO remove once S3ObjectSize is change is merged -->
              <exclude>com.ibm.cos.v2.services.s3.model.CompleteMultipartUploadRequest</exclude>
            </excludes>
            <ignoreMissingOldVersion>true</ignoreMissingOldVersion>
            <breakBuildOnBinaryIncompatibleModifications>true</breakBuildOnBinaryIncompatibleModifications>
            <breakBuildOnSourceIncompatibleModifications>true</breakBuildOnSourceIncompatibleModifications>
            <overrideCompatibilityChangeParameters>
              <overrideCompatibilityChangeParameter>
                <compatibilityChange>METHOD_ABSTRACT_ADDED_IN_IMPLEMENTED_INTERFACE</compatibilityChange>
                <binaryCompatible>true</binaryCompatible>
                <sourceCompatible>true</sourceCompatible>
              </overrideCompatibilityChangeParameter>
              <overrideCompatibilityChangeParameter>
                <compatibilityChange>METHOD_NEW_DEFAULT</compatibilityChange>
                <binaryCompatible>true</binaryCompatible>
                <sourceCompatible>true</sourceCompatible>
              </overrideCompatibilityChangeParameter>
              <overrideCompatibilityChangeParameter>
                <compatibilityChange>METHOD_ADDED_TO_INTERFACE</compatibilityChange>
                <binaryCompatible>true</binaryCompatible>
                <sourceCompatible>true</sourceCompatible>
              </overrideCompatibilityChangeParameter>
              <overrideCompatibilityChangeParameter>
                <compatibilityChange>METHOD_ABSTRACT_NOW_DEFAULT</compatibilityChange>
                <binaryCompatible>true</binaryCompatible>
                <sourceCompatible>true</sourceCompatible>
              </overrideCompatibilityChangeParameter>
            </overrideCompatibilityChangeParameters>
          </parameter>
        </configuration>
        <executions>
          <execution>
            <phase>verify</phase>
            <goals>
              <goal>cmp</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-wrapper-plugin</artifactId>
        <version>${maven-wrapper-plugin.version}</version>
      </plugin>
    </plugins>
  </build>
  <profiles>
    <profile>
      <id>sonar-generate</id>
      <properties>
        <checkstyle.skip>true</checkstyle.skip>
        <spotbugs.skip>true</spotbugs.skip>
        <mdep.analyze.skip>true</mdep.analyze.skip>
        <japicmp.skip>true</japicmp.skip>
        <javadoc.skip>true</javadoc.skip>
      </properties>
    </profile>
    <profile>
      <id>publishing</id>
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-source-plugin</artifactId>
            <version>3.4.0</version>
            <executions>
              <execution>
                <id>attach-sources</id>
                  <phase>verify</phase>
                  <goals>
                    <goal>jar-no-fork</goal>
                  </goals>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <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.apache.maven.plugins</groupId>
            <artifactId>maven-gpg-plugin</artifactId>
            <version>${maven-gpg-plugin.version}</version>
            <executions>
              <execution>
                <id>sign-artifacts</id>
                <phase>verify</phase>
                <goals>
                  <goal>sign</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <groupId>org.sonatype.central</groupId>
            <artifactId>central-publishing-maven-plugin</artifactId>
            <version>0.8.0</version>
            <extensions>true</extensions>
            <configuration>
              <publishingServerId>central</publishingServerId>
              <autoPublish>false</autoPublish>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>disable-java8-doclint</id>
      <activation>
        <jdk>[1.8,)</jdk>
      </activation>
      <properties>
        <additionalparam>-Xdoclint:none</additionalparam>
      </properties>
    </profile>
    <profile>
      <id>jdk-11-plus</id>
      <activation>
        <jdk>[11,)</jdk>
      </activation>
      <properties>
        <maven.compiler.release>8</maven.compiler.release>
      </properties>
    </profile>
    <profile>
      <id>jdk-13-plus</id>
      <activation>
        <jdk>[13,)</jdk>
      </activation>
      <properties>
        <!-- Blockhound doesn't support Java 13+ without flags: https://github.com/reactor/BlockHound/issues/33 -->
        <argLine>-XX:+AllowRedefinitionToAddDeleteMethods</argLine>
      </properties>
    </profile>
    <profile>
      <id>quick</id>
      <properties>
        <checkstyle.skip>true</checkstyle.skip>
        <spotbugs.skip>true</spotbugs.skip>
        <skip.unit.tests>true</skip.unit.tests>
        <mdep.analyze.skip>true</mdep.analyze.skip>
        <japicmp.skip>true</japicmp.skip>
        <maven.javadoc.skip>true</maven.javadoc.skip>
      </properties>
    </profile>
    <profile>
      <id>public-javadoc</id>
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-javadoc-plugin</artifactId>
            <version>${maven-javadoc-plugin.version}</version>
            <configuration>
              <minmemory>128m</minmemory>
              <maxmemory>24g</maxmemory>
              <includeDependencySources>false</includeDependencySources>
              <show>public</show>
              <author>false</author>
              <version>true</version>
              <!-- Whether to enable search button -->
              <noindex>false</noindex>
              <use>false</use>
              <source>8</source>
              <notree>true</notree>
              <nodeprecatedlist>true</nodeprecatedlist>
              <additionalJOptions>
                <additionalJOption>--allow-script-in-comments</additionalJOption>
              </additionalJOptions>
              <windowtitle>IBM COS SDK for Java - ${ibmcosjavasdk.version}</windowtitle>
              <encoding>UTF-8</encoding>
              <docencoding>UTF-8</docencoding>
              <doctitle>IBM COS SDK for Java API Reference - ${ibmcosjavasdk.version}</doctitle>
              <packagesheader>IBM COS SDK for Java</packagesheader>
              <excludePackageNames>:*.codegen:com.ibm.cos.v2.services.protocol*</excludePackageNames>
              <docfilessubdirs>true</docfilessubdirs>
              <javadocDirectory>${javadoc.resourcesDir}/javadoc-resources</javadocDirectory>
              <addStylesheets>
                <addStylesheet>ibm-cos-java-sdk-v2-javadoc.css</addStylesheet>
              </addStylesheets>
              <groups>
                <group>
                  <title>S3</title>
                  <packages>com.ibm.cos.v2.services.s3*</packages>
                </group>
                <group>
                  <title>KMS</title>
                  <packages>com.ibm.cos.v2.services.kms*</packages>
                </group>
              </groups>
              <header>
                &lt;h2&gt;IBM COS SDK for Java API Reference - ${project.version}&lt;/h2&gt;

              </header>
              <bottom>
                &lt;div style="margin:1.2em;"&gt;&lt;h3&gt;&lt;a id="fdbk" target="_blank"&gt;Provide feedback&lt;/a&gt;&lt;h3&gt;&lt;/div&gt;
                &lt;span id="awsdocs-legal-zone-copyright"&gt;&lt;/span&gt;
                &lt;script type="text/javascript"&gt;document.addEventListener("DOMContentLoaded",()=&gt;{
                var a=document.createElement("meta"),b=document.createElement("meta"),c=document.createElement("script"),
                h=document.getElementsByTagName("head")[0],l=location.href,f=document.getElementById("fdbk");
                a.name="guide-name",a.content="API Reference";b.name="service-name",b.content="IBM COS SDK for Java";
                c.setAttribute("type","text/javascript"),c.setAttribute("src",
                "https://docs.aws.amazon.com/assets/js/awsdocs-boot.js");h.appendChild(a);h.appendChild(b);
                h.appendChild(c);f.setAttribute("href",
                "https://docs-feedback.aws.amazon.com/feedback.jsp?hidden_service_name="+
                encodeURI("IBM COS SDK for Java")+"&amp;topic_url="+encodeURI(l))});
                &lt;/script&gt;

              </bottom>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>
  </profiles>
</project>
