<?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/maven-v4_0_0.xsd">
  <parent>
    <artifactId>lib-parent</artifactId>
    <groupId>com.google.appengine</groupId>
    <version>2.0.12</version>
  </parent>
  <modelVersion>4.0.0</modelVersion>
  <artifactId>appengine-tools-sdk</artifactId>
  <name>AppEngine :: appengine-tools-sdk (aka appengine-tools-api)</name>
  <build>
    <plugins>
      <plugin>
        <groupId>com.github.os72</groupId>
        <artifactId>protoc-jar-maven-plugin</artifactId>
        <executions>
          <execution>
            <phase>generate-sources</phase>
            <goals>
              <goal>run</goal>
            </goals>
          </execution>
        </executions>
        <configuration>
          <inputDirectories>
            <dir>src/main/protobuf</dir>
          </inputDirectories>
        </configuration>
      </plugin>
      <plugin>
        <artifactId>maven-shade-plugin</artifactId>
        <executions>
          <execution>
            <phase>package</phase>
            <goals>
              <goal>shade</goal>
            </goals>
            <configuration>
              <createSourcesJar>true</createSourcesJar>
              <relocations>
                <relocation>
                  <pattern>com.google.common</pattern>
                  <shadedPattern>com.google.appengine.repackaged.com.google.common</shadedPattern>
                </relocation>
                <relocation>
                  <pattern>com.google.borg.borgcron</pattern>
                  <shadedPattern>com.google.appengine.repackaged.com.google.cron</shadedPattern>
                </relocation>
                <relocation>
                  <pattern>com.google.errorprone.annotations</pattern>
                  <shadedPattern>com.google.appengine.repackaged.com.google.errorprone.annotations</shadedPattern>
                </relocation>
                <relocation>
                  <pattern>com.google.protobuf</pattern>
                  <shadedPattern>com.google.appengine.repackaged.com.google.protobuf</shadedPattern>
                </relocation>
                <relocation>
                  <pattern>com.esotericsoftware.yamlbeans</pattern>
                  <shadedPattern>com.google.appengine.repackaged.com.esotericsoftware.yamlbeans</shadedPattern>
                </relocation>
                <relocation>
                  <pattern>org.antlr.runtime</pattern>
                  <shadedPattern>com.google.appengine.repackaged.org.antlr.runtime</shadedPattern>
                </relocation>
                <relocation>
                  <pattern>org.apache.commons.codec</pattern>
                  <shadedPattern>com.google.appengine.repackaged.org.apache.commons.codec</shadedPattern>
                </relocation>
                <relocation>
                  <pattern>org.apache.commons.logging</pattern>
                  <shadedPattern>com.google.appengine.repackaged.org.apache.commons.logging</shadedPattern>
                </relocation>
                <relocation>
                  <pattern>org.apache.http</pattern>
                  <shadedPattern>com.google.appengine.repackaged.org.apache.http</shadedPattern>
                </relocation>
              </relocations>
              <filters>
                <filter>
                  <artifact>com.google.appengine:appengine-apis:*</artifact>
                  <includes>
                    <include>com/google/apphosting/utils/security/urlfetch/**</include>
                  </includes>
                </filter>
                <filter>
                  <artifact>com.google.appengine:appengine-apis-dev:*</artifact>
                  <includes>
                    <include>com/google/appengine/tools/development/AppContext*</include>
                    <include>com/google/appengine/tools/development/DevAppServer*</include>
                    <include>com/google/appengine/tools/development/ClassLoaderUtil*</include>
                    <include>com/google/appengine/tools/development/SharedMain*</include>
                    <include>com/google/appengine/tools/info/**</include>
                    <include>com/google/appengine/tools/util/**</include>
                  </includes>
                </filter>
                <filter>
                  <artifact>com.google.appengine:proto1:*</artifact>
                  <includes>
                    <include>com/google/common/annotations/GoogleInternal*</include>
                    <include>com/google/common/base/StringUtil*</include>
                    <include>com/google/common/util/concurrent/internal/*</include>
                    <include>com/google/common/flags/*</include>
                    <include>com/google/protobuf/**</include>
                  </includes>
                </filter>
                <filter>
                  <artifact>com.google.protobuf:protobuf-java</artifact>
                  <includes>
                    <include>com/google/protobuf/*</include>
                  </includes>
                </filter>
                <filter>
                  <artifact>com.google.appengine:protos</artifact>
                  <includes>
                    <include>com/google/apphosting/base/protos/api/RemoteApiPb*</include>
                  </includes>
                </filter>
                <filter>
                  <artifact>com.google.appengine:appengine-utils</artifact>
                  <includes>
                    <include>com/google/apphosting/utils/config/**</include>
                    <include>com/google/apphosting/utils/glob/**</include>
                    <include>com/google/apphosting/utils/security/**</include>
                    <include>com/google/borg/borgcron/**</include>
                    <include>com/google/common/parameterset/**</include>
                  </includes>
                </filter>
                <filter>
                  <artifact>com.google.guava:guava</artifact>
                  <includes>
                    <include>com/google/common/annotations/**</include>
                    <include>com/google/common/base/**</include>
                    <include>com/google/common/cache/**</include>
                    <include>com/google/common/collect/**</include>
                    <include>com/google/common/escape/**</include>
                    <include>com/google/common/flags/**</include>
                    <include>com/google/common/flogger/**</include>
                    <include>com/google/common/graph/**</include>
                    <include>com/google/common/hash/**</include>
                    <include>com/google/common/html/**</include>
                    <include>com/google/common/io/**</include>
                    <include>com/google/common/math/**</include>
                    <include>com/google/common/net/**</include>
                    <include>com/google/common/primitives/**</include>
                    <include>com/google/common/util/concurrent/**</include>
                    <include>com/google/common/xml/**</include>
                  </includes>
                </filter>
                <filter>
                  <artifact>commons-codec:commons-codec</artifact>
                  <includes>
                    <include>org/apache/commons/codec/**</include>
                  </includes>
                  <excludes>
                    <exclude>org/apache/commons/codec/language/**</exclude>
                  </excludes>
                </filter>
                <filter>
                  <artifact>commons-logging:commons-logging</artifact>
                  <includes>
                    <include>org/apache/commons/logging/**</include>
                  </includes>
                </filter>
                <filter>
                  <artifact>org.antlr:antlr-runtime</artifact>
                  <includes>
                    <include>org/antlr/runtime/**</include>
                  </includes>
                </filter>
                <filter>
                  <artifact>org.apache.ant:ant</artifact>
                  <includes>
                    <include>org/apache/tools/ant/**</include>
                  </includes>
                </filter>
                <filter>
                  <artifact>org.apache.httpcomponents:httpclient</artifact>
                  <includes>
                    <include>org/apache/http/**</include>
                  </includes>
                </filter>
                <filter>
                  <artifact>org.apache.httpcomponents:httpcore</artifact>
                  <includes>
                    <include>org/apache/http/**</include>
                  </includes>
                </filter>
              </filters>
              <artifactSet>
                <includes>
                  <include>com.esotericsoftware.yamlbeans:yamlbeans</include>
                  <include>com.google.appengine:appengine-apis</include>
                  <include>com.google.appengine:appengine-apis-dev</include>
                  <include>com.google.appengine:protos</include>
                  <include>com.google.appengine:proto1:*</include>
                  <include>com.google.appengine:appengine-utils</include>
                  <include>com.google.flogger:google-extensions</include>
                  <include>com.google.flogger:flogger-system-backend</include>
                  <include>com.google.flogger:flogger</include>
                  <include>com.google.errorprone:error_prone_annotations:*</include>
                  <include>com.google.guava:guava:*</include>
                  <include>com.google.protobuf:protobuf-java:*</include>
                  <include>commons-codec:commons-codec:*</include>
                  <include>commons-logging:commons-logging:*</include>
                  <include>org.antlr:antlr-runtime:*</include>
                  <include>org.apache.ant:ant</include>
                  <include>org.apache.httpcomponents:httpclient</include>
                  <include>org.apache.httpcomponents:httpcore:*</include>
                  <include>org.eclipse.jetty:jetty-http</include>
                  <include>org.eclipse.jetty:jetty-util</include>
                </includes>
              </artifactSet>
            </configuration>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
  <dependencies>
    <dependency>
      <groupId>com.google.appengine</groupId>
      <artifactId>appengine-remote-api</artifactId>
      <version>2.0.12</version>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>com.google.auto.value</groupId>
      <artifactId>auto-value</artifactId>
      <version>1.10</version>
      <scope>provided</scope>
      <optional>true</optional>
    </dependency>
    <dependency>
      <groupId>com.google.oauth-client</groupId>
      <artifactId>google-oauth-client-java6</artifactId>
      <version>1.34.1</version>
      <scope>compile</scope>
      <optional>true</optional>
    </dependency>
    <dependency>
      <groupId>com.google.truth</groupId>
      <artifactId>truth</artifactId>
      <version>1.1.3</version>
      <scope>test</scope>
      <exclusions>
        <exclusion>
          <artifactId>junit</artifactId>
          <groupId>junit</groupId>
        </exclusion>
        <exclusion>
          <artifactId>asm</artifactId>
          <groupId>org.ow2.asm</groupId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>org.mockito</groupId>
      <artifactId>mockito-core</artifactId>
      <version>4.8.1</version>
      <scope>test</scope>
      <exclusions>
        <exclusion>
          <artifactId>byte-buddy</artifactId>
          <groupId>net.bytebuddy</groupId>
        </exclusion>
        <exclusion>
          <artifactId>byte-buddy-agent</artifactId>
          <groupId>net.bytebuddy</groupId>
        </exclusion>
        <exclusion>
          <artifactId>objenesis</artifactId>
          <groupId>org.objenesis</groupId>
        </exclusion>
      </exclusions>
    </dependency>
  </dependencies>
</project>
