<?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">
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <groupId>com.google.guava</groupId>
    <artifactId>guava-parent</artifactId>
    <version>18.0</version>
  </parent>
  <artifactId>guava-gwt</artifactId>
  <name>Guava GWT compatible libs</name>
  <description>
    Guava is a suite of core and expanded libraries that include
    utility classes, google's collections, io classes, and much
    much more.

    This project includes GWT-friendly sources.
  </description>
  <properties>
    <gwt.test.include>**/GwtTestSuite.java</gwt.test.include>
    <gwt.version>2.6.1</gwt.version>
  </properties>
  <dependencies>
    <!-- GWT requires a library's transitive dependencies to be present when
         compiling a project that uses that library, thanks to its full-program
         compilation, so we don't use optional=true. -->
    <dependency>
      <groupId>com.google.code.findbugs</groupId>
      <artifactId>jsr305</artifactId>
      <optional>false</optional>
    </dependency>
    <dependency>
      <groupId>com.google.guava</groupId>
      <artifactId>guava</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>com.google.guava</groupId>
      <artifactId>guava-testlib</artifactId>
      <version>${project.version}</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>com.google.guava</groupId>
      <artifactId>guava-testlib</artifactId>
      <version>${project.version}</version>
      <classifier>tests</classifier>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>com.google.guava</groupId>
      <artifactId>guava-tests</artifactId>
      <version>${project.version}</version>
      <classifier>tests</classifier> 
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>com.google.gwt</groupId>
      <artifactId>gwt-dev</artifactId>
      <version>${gwt.version}</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>com.google.gwt</groupId>
      <artifactId>gwt-user</artifactId>
      <version>${gwt.version}</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>com.google.truth</groupId>
      <artifactId>truth</artifactId>
      <version>${truth.version}</version>
      <classifier>gwt</classifier>
      <scope>test</scope>
    </dependency>
  </dependencies>
  <build>
    <plugins>
      <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
      </plugin>
      <plugin>
        <artifactId>maven-jar-plugin</artifactId>
      </plugin>
      <plugin>
        <artifactId>maven-source-plugin</artifactId>
      </plugin>
      <plugin>
        <artifactId>maven-javadoc-plugin</artifactId>
      </plugin>
      <!-- Disable "normal" testing, which doesn't work for GWT tests. -->
      <plugin>
        <artifactId>maven-surefire-plugin</artifactId>
        <configuration>
          <skip>true</skip>
        </configuration>
      </plugin>
      <plugin>
        <artifactId>maven-dependency-plugin</artifactId>
        <executions>
          <execution>
            <id>unpack-guava-sources</id>
            <phase>generate-resources</phase>
            <goals><goal>unpack-dependencies</goal></goals>
            <configuration>
              <includeArtifactIds>guava</includeArtifactIds>
              <classifier>sources</classifier>
              <overWrite>true</overWrite>
              <excludeTransitive>true</excludeTransitive>
              <excludes>META-INF/MANIFEST.MF</excludes>
              <outputDirectory>${project.build.directory}/guava-sources</outputDirectory>
              <type>java-source</type>
              <silent>false</silent>
            </configuration>
          </execution>
          <execution>
            <id>unpack-guava-testlib-sources</id>
            <phase>generate-resources</phase>
            <goals><goal>unpack-dependencies</goal></goals>
            <configuration>
              <includeArtifactIds>guava-testlib</includeArtifactIds>
              <classifier>sources</classifier>
              <overWrite>true</overWrite>
              <excludeTransitive>true</excludeTransitive>
              <excludes>META-INF/MANIFEST.MF</excludes>
              <outputDirectory>${project.build.directory}/guava-test-sources</outputDirectory>
              <type>java-source</type>
              <silent>false</silent>
            </configuration>
          </execution>
          <execution>
            <id>unpack-guava-testlib-test-sources</id>
            <phase>generate-resources</phase>
            <goals><goal>unpack-dependencies</goal></goals>
            <configuration>
              <includeArtifactIds>guava-testlib</includeArtifactIds>
              <classifier>test-sources</classifier>
              <overWrite>true</overWrite>
              <excludeTransitive>true</excludeTransitive>
              <excludes>META-INF/MANIFEST.MF</excludes>
              <outputDirectory>${project.build.directory}/guava-test-sources</outputDirectory>
              <type>java-source</type>
              <silent>false</silent>
            </configuration>
          </execution>
          <execution>
            <id>unpack-guava-test-sources</id>
            <phase>generate-resources</phase>
            <goals><goal>unpack-dependencies</goal></goals>
            <configuration>
              <includeArtifactIds>guava-tests</includeArtifactIds>
              <classifier>test-sources</classifier>
              <overWrite>true</overWrite>
              <excludeTransitive>true</excludeTransitive>
              <excludes>META-INF/MANIFEST.MF</excludes>
              <outputDirectory>${project.build.directory}/guava-test-sources</outputDirectory>
              <type>java-source</type>
              <silent>false</silent>
            </configuration>
          </execution>
        </executions>
        <dependencies>
          <dependency>
            <groupId>com.google.guava</groupId>
            <artifactId>guava</artifactId>
            <version>${project.version}</version>
            <classifier>sources</classifier>
          </dependency>
          <dependency>
            <groupId>com.google.guava</groupId>
            <artifactId>guava-testlib</artifactId>
            <version>${project.version}</version>
            <classifier>sources</classifier>
          </dependency>
          <dependency>
            <groupId>com.google.guava</groupId>
            <artifactId>guava-testlib</artifactId>
            <version>${project.version}</version>
            <classifier>test-sources</classifier>
          </dependency>
          <dependency>
            <groupId>com.google.guava</groupId>
            <artifactId>guava-tests</artifactId>
            <version>${project.version}</version>
            <classifier>test-sources</classifier>
          </dependency>
        </dependencies>
      </plugin>
      <plugin>
        <artifactId>maven-antrun-plugin</artifactId>
        <executions>
          <execution>
            <phase>generate-resources</phase>
            <goals><goal>run</goal></goals>
            <configuration>
              <target name="copy-gwt-resources">
                <copy toDir="${project.build.directory}/guava-gwt-sources"
                      verbose="true">
                  <fileset dir="${project.build.directory}/guava-sources">
                    <and>
                      <contains text="@GwtCompatible"/>
                      <not><contains text="emulated = true"/></not>
                    </and>
                  </fileset>
                </copy>
                <copy toDir="${project.build.directory}/guava-test-gwt-sources"
                      verbose="true">
                  <fileset dir="${project.build.directory}/guava-test-sources">
                    <and>
                      <contains text="@GwtCompatible"/>
                      <not><contains text="emulated = true"/></not>
                    </and>
                  </fileset>
                </copy>
              </target>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>gwt-maven-plugin</artifactId>
        <version>${gwt.version}</version>
        <executions>
          <execution>
            <id>gwt-compile</id>
            <goals>
              <goal>compile</goal>
            </goals>
            <configuration>
              <module>com.google.common.ForceGuavaCompilation</module>
              <strict>true</strict>
              <validateOnly>true</validateOnly>
            </configuration>
          </execution>
          <execution>
            <id>gwt-test</id>
            <goals>
              <goal>test</goal>
            </goals>
            <configuration>
              <module>com.google.common.GuavaTests</module>
              <strict>true</strict>
              <includes>${gwt.test.include}</includes>
              <mode>htmlunit</mode>
              <testTimeOut>600</testTimeOut>
              <extraJvmArgs>-Xms3500m -Xmx3500m -Xss1024k</extraJvmArgs>
            </configuration>
          </execution>
        </executions>
      </plugin>
    </plugins>
    <resources>
      <resource>
        <directory>src</directory>
      </resource>
      <resource>
        <directory>src-super</directory>
      </resource>
      <resource>
        <directory>${project.build.directory}/guava-gwt-sources</directory>
      </resource>
    </resources>
    <testResources>
      <testResource>
        <directory>test</directory>
      </testResource>
      <testResource>
        <directory>test-super</directory>
      </testResource>
      <testResource>
        <directory>${project.build.directory}/guava-test-gwt-sources</directory>
      </testResource>
    </testResources>
  </build>
</project>