<?xml version="1.0"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <groupId>com.amazonaws</groupId>
    <artifactId>aws-java-sdk-pom</artifactId>
    <version>1.11.18</version>
  </parent>
  <groupId>com.amazonaws</groupId>
  <artifactId>aws-java-sdk-cloudtrail</artifactId>
  <name>AWS Java SDK for AWS CloudTrail</name>
  <description>The AWS Java SDK for AWS CloudTrail module holds the client classes that are used for communicating with AWS CloudTrail Service</description>
  <url>https://aws.amazon.com/sdkforjava</url>

  <!-- The dependencies section in pom.xml is auto generated. No manual changes are allowed -->
  <dependencies>
    <dependency>
        <artifactId>aws-java-sdk-core</artifactId>
        <groupId>com.amazonaws</groupId>
        <optional>false</optional>
        <version>1.11.18</version>
    </dependency>
</dependencies>

  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-javadoc-plugin</artifactId>
      </plugin>
    </plugins>
  </build>

  <!-- This profile uses the JAPICMP plugin to generate a report of changes between the release version and the latest version -->
  <!-- For more information on the plugin, see https://github.com/siom79/japicmp -->
  <profiles>
    <profile>
      <id>versiondiff</id>
      <build>
        <plugins>
          <plugin>
            <groupId>com.github.siom79.japicmp</groupId>
            <artifactId>japicmp-maven-plugin</artifactId>
            <version>0.5.0</version>
            <executions>
              <execution>
                <phase>verify</phase>
                <goals>
                  <goal>cmp</goal>
                </goals>
              </execution>
            </executions>
            <configuration>
              <oldVersion>
                <dependency>
                  <groupId>com.amazonaws</groupId>
                  <artifactId>aws-java-sdk-cloudtrail</artifactId>
                  <version>RELEASE</version>
                </dependency>
              </oldVersion>
              <newVersion>
                <file>
                  <path>${project.build.directory}/${project.artifactId}-${project.version}.jar</path>
                </file>
              </newVersion>
              <parameter>
                <onlyModified>true</onlyModified>
                <accessModifier>public</accessModifier>
                <breakBuildOnModifications>false</breakBuildOnModifications>
                <breakBuildOnBinaryIncompatibleModifications>false</breakBuildOnBinaryIncompatibleModifications>
                <onlyBinaryIncompatible>false</onlyBinaryIncompatible>
              </parameter>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>
  </profiles>
</project>
