<?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-discovery</artifactId>
  <name>AWS Java SDK for AWS Application Discovery Service</name>
  <description>The AWS Java SDK for AWS Application Discovery Service module holds the client classes that are used for communicating with AWS Application Discovery 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-discovery</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>
