<?xml version="1.0" encoding="UTF-8"?>
<!--
  Copyright 2011 Google Inc. All Rights Reserved.

  Licensed under the Apache License, Version 2.0 (the "License");
  you may not use this file except in compliance with the License.
  You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
  -->

<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>

  <!-- Added this because the JSR 305 dependency wouldn't download from the
       default repository.  -->
  <repositories>
    <repository>
      <id>alt-repo1</id>
      <name>repo1.maven.org</name>
      <url>http://repo1.maven.org</url>
    </repository>
  </repositories>

  <parent>
    <groupId>com.google.errorprone</groupId>
    <artifactId>error_prone_parent</artifactId>
    <version>2.0.15</version>
  </parent>

  <name>error-prone library</name>
  <artifactId>error_prone_core</artifactId>

  <dependencies>
    <!-- If you add a dependency, please also add a comment with the license
         as the existing examples do.

         If the license is compatible with ours (e.g. Apache 2.0, BSD, and MIT
         are; assume anything else is not), please add the dependency to
         the Maven shade includes section below, so it will be packaged with
         the error-prone JAR file that we distribute.  -->

    <dependency>
      <!-- Apache 2.0 -->
      <groupId>com.google.errorprone</groupId>
      <artifactId>error_prone_annotation</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <!-- Apache 2.0 -->
      <groupId>com.google.errorprone</groupId>
      <artifactId>error_prone_check_api</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <!-- Apache 2.0 -->
      <groupId>com.google.errorprone</groupId>
      <artifactId>error_prone_test_helpers</artifactId>
      <version>${project.version}</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <!-- Apache 2.0 -->
      <groupId>com.github.stephenc.jcip</groupId>
      <artifactId>jcip-annotations</artifactId>
      <version>1.0-1</version>
    </dependency>
    <dependency>
      <!-- MIT -->
      <groupId>org.pcollections</groupId>
      <artifactId>pcollections</artifactId>
      <version>2.1.2</version>
    </dependency>
    <dependency>
      <!-- Apache 2.0 -->
      <groupId>com.google.guava</groupId>
      <artifactId>guava</artifactId>
      <version>${guava.version}</version>
    </dependency>
    <dependency>
      <!-- Apache 2.0 -->
      <groupId>com.google.auto</groupId>
      <artifactId>auto-common</artifactId>
      <version>0.7</version>
    </dependency>
    <dependency>
      <!-- LGPL -->
      <groupId>com.google.code.findbugs</groupId>
      <artifactId>jFormatString</artifactId>
      <version>3.0.0</version>
    </dependency>
    <dependency>
      <!-- BSD New -->
      <groupId>com.google.code.findbugs</groupId>
      <artifactId>jsr305</artifactId>
      <version>3.0.0</version>
    </dependency>
    <dependency>
      <!-- GPLv2 with Classpath Exception -->
      <groupId>org.checkerframework</groupId>
      <artifactId>dataflow</artifactId>
      <version>1.8.10</version>
    </dependency>
    <dependency>
      <!-- GPLv2 with Classpath Exception -->
      <groupId>com.google.errorprone</groupId>
      <artifactId>javac</artifactId>
      <version>1.9.0-dev-r2973-2</version>
    </dependency>
    <dependency>
      <!-- Apache 2.0 -->
      <groupId>com.google.auto.value</groupId>
      <artifactId>auto-value</artifactId>
      <version>1.1</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <!-- Apache 2.0 -->
      <groupId>com.google.errorprone</groupId>
      <artifactId>error_prone_annotations</artifactId>
      <version>${project.version}</version>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <!-- Eclipse Public License 1.0 -->
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.13-SNAPSHOT</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <!-- BSD New (3 clause) -->
      <groupId>org.hamcrest</groupId>
      <artifactId>hamcrest-core</artifactId>
      <version>1.3</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <!-- BSD New (3 clause) -->
      <groupId>org.hamcrest</groupId>
      <artifactId>hamcrest-library</artifactId>
      <version>1.3</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <!-- Apache 2.0 -->
      <groupId>com.google.truth</groupId>
      <artifactId>truth</artifactId>
      <version>${truth.version}</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <!-- Apache 2.0 -->
      <groupId>com.google.inject</groupId>
      <artifactId>guice</artifactId>
      <version>4.0-beta5</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <!-- Apache 2.0 -->
      <groupId>com.google.inject.extensions</groupId>
      <artifactId>guice-assistedinject</artifactId>
      <version>4.0-beta5</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <!-- Apache 2.0 -->
      <groupId>com.google.inject.extensions</groupId>
      <artifactId>guice-servlet</artifactId>
      <version>4.0-beta5</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <!-- Apache 2.0 -->
      <groupId>com.google.gwt.inject</groupId>
      <artifactId>gin</artifactId>
      <version>2.1.2</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <!-- MIT -->
      <groupId>org.mockito</groupId>
      <artifactId>mockito-core</artifactId>
      <version>2.0.3-beta</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <!-- BSD -->
      <groupId>org.jmock</groupId>
      <artifactId>jmock</artifactId>
      <version>2.8.0</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <!-- BSD -->
      <groupId>org.jmock</groupId>
      <artifactId>jmock-junit4</artifactId>
      <version>2.8.0</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <!-- Apache 2.0 -->
      <groupId>com.google.protobuf</groupId>
      <artifactId>protobuf-java</artifactId>
      <version>3.0.0-beta-4</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <!-- Apache 2.0 -->
      <groupId>com.google.dagger</groupId>
      <artifactId>dagger</artifactId>
      <version>2.5</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <!-- Apache 2.0 -->
      <groupId>com.google.dagger</groupId>
      <artifactId>dagger-producers</artifactId>
      <version>2.5</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <!-- Apache 2.0 -->
      <groupId>com.google.auto.factory</groupId>
      <artifactId>auto-factory</artifactId>
      <version>1.0-beta3</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <!-- Apache 2.0 -->
      <groupId>com.google.guava</groupId>
      <artifactId>guava-testlib</artifactId>
      <version>${guava.version}</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <!-- Apache 2.0 -->
      <groupId>com.google.testing.compile</groupId>
      <artifactId>compile-testing</artifactId>
      <version>0.6</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <!-- ICU License -->
      <groupId>com.ibm.icu</groupId>
      <artifactId>icu4j</artifactId>
      <version>56.1</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <!-- Apache 2.0 -->
      <groupId>com.google.android</groupId>
      <artifactId>android</artifactId>
      <version>4.1.1.4</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <!-- Apache 2.0 -->
      <groupId>com.google.android</groupId>
      <artifactId>support-v4</artifactId>
      <version>r6</version>
      <scope>test</scope>
    </dependency>
  </dependencies>

  <build>
    <plugins>
      <!-- Include the @BugPattern annotation in the main distribution
           so users have only one jar to add to their classpath. -->
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-shade-plugin</artifactId>
        <executions>
          <execution>
            <phase>package</phase>
            <goals>
              <goal>shade</goal>
            </goals>
            <configuration>
              <createDependencyReducedPom>false</createDependencyReducedPom>
              <artifactSet>
                <!-- Include only dependencies with compatible licenses.
                     Apache, BSD, and MIT are OK; others are not. -->
                <includes>
                  <include>com.google.errorprone:error_prone_annotation</include>
                  <include>com.github.stephenc.jcip:jcip-annotations</include>
                  <include>org.pcollections:pcollections</include>
                  <include>com.google.guava:guava</include>
                  <include>com.google.auto:auto-common</include>
                  <include>com.google.code.findbugs:jsr305</include>
                </includes>
              </artifactSet>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>2.18</version>
        <configuration>
          <!-- set heap size to work around http://github.com/travis-ci/travis-ci/issues/3396 -->
          <!-- put javac.jar on bootclasspath when executing tests -->
          <argLine>-Xmx1024m -Xbootclasspath/p:${settings.localRepository}/com/google/errorprone/javac/1.9.0-dev-r2973-2/javac-1.9.0-dev-r2973-2.jar</argLine>
        </configuration>
      </plugin>
    </plugins>
  </build>

  <profiles>
    <!-- run annotation processor -->
    <profile>
      <id>run-annotation-processor</id>
      <dependencies>
        <dependency>
          <groupId>com.google.errorprone</groupId>
          <artifactId>error_prone_docgen_processor</artifactId>
          <version>${project.version}</version>
        </dependency>
        <dependency>
          <groupId>com.google.guava</groupId>
          <artifactId>guava</artifactId>
          <version>${guava.version}</version>
        </dependency>
      </dependencies>
    </profile>
  </profiles>
</project>
