<?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/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <artifactId>immutables</artifactId>
    <groupId>org.immutables</groupId>
    <version>2.1.5</version>
  </parent>
  <artifactId>gson</artifactId>

  <name>${project.groupId}.${project.artifactId}</name>
  <description>Gson integration for Immutables. Also includes optional integration with Jackson to speed-up
    streaming parsing of Gson, while using all of gson binding infrastructure.
  </description>

  <dependencies>
    <dependency>
      <!-- Required Gson dependency -->
      <groupId>com.google.code.gson</groupId>
      <artifactId>gson</artifactId>
      <version>2.5</version>
    </dependency>
    <dependency>
      <!-- Compile only META-INF/services generator -->
      <groupId>org.immutables</groupId>
      <artifactId>metainf</artifactId>
      <version>${project.version}</version>
      <optional>true</optional>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <!-- Compile only annotations. Used to document and statically verify code properties. -->
      <groupId>com.google.code.findbugs</groupId>
      <artifactId>jsr305</artifactId>
      <version>1.3.9</version>
      <scope>provided</scope>
      <optional>true</optional>
    </dependency>
    <dependency>
      <!-- Optional. Jackson used to speedup Gson's streaming if performance absolutely matters -->
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-core</artifactId>
      <version>2.5.0</version>
      <scope>provided</scope>
      <optional>true</optional>
    </dependency>
    <dependency>
      <!-- Optional. Jackson binding have utility used when using polymorhic marshaling with jackson-core implementation -->
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-databind</artifactId>
      <version>2.5.0</version>
      <scope>provided</scope>
      <optional>true</optional>
    </dependency>
    <dependency>
      <!-- Optional. Message body reader and writer provider implementation, optional dependency on JAX-RS -->
      <groupId>javax.ws.rs</groupId>
      <artifactId>javax.ws.rs-api</artifactId>
      <version>2.0</version>
      <optional>true</optional>
    </dependency>

    <!-- it's better have just 'value' dep, but due to some maven 3.3.1 bug,
    it exposes both relocated and not relocated classess, having processor to run twice -->
    <dependency>
      <groupId>org.immutables</groupId>
      <artifactId>value</artifactId>
      <version>${project.version}</version>
      <classifier>annotations</classifier>
      <scope>provided</scope>
      <optional>true</optional>
    </dependency>
    <dependency>
      <groupId>org.immutables</groupId>
      <artifactId>value-processor</artifactId>
      <version>${project.version}</version>
      <scope>provided</scope>
      <optional>true</optional>
    </dependency>
    <dependency>
      <!-- Test only utilities -->
      <groupId>org.immutables</groupId>
      <artifactId>testing</artifactId>
      <version>${project.version}</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <!-- Test only jersey dependency -->
      <groupId>org.glassfish.jersey.core</groupId>
      <artifactId>jersey-client</artifactId>
      <version>2.11</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <!-- Test only jersey dependency -->
      <groupId>org.glassfish.jersey.containers</groupId>
      <artifactId>jersey-container-grizzly2-http</artifactId>
      <version>2.11</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
  <build>
    <plugins>
      <plugin>
        <groupId>org.immutables.tools</groupId>
        <artifactId>maven-shade-plugin</artifactId>
        <version>3</version>
        <executions>
          <execution>
            <phase>package</phase>
            <goals>
              <goal>shade</goal>
            </goals>
            <configuration>
              <createDependencyReducedPom>false</createDependencyReducedPom>
              <shadedArtifactAttached>true</shadedArtifactAttached>
              <minimizeJar>false</minimizeJar>
              <createSourcesJar>true</createSourcesJar>
              <shadedClassifierName>annotations</shadedClassifierName>

              <artifactSet>
                <includes>
                  <include>org.immutables:gson</include>
                </includes>
              </artifactSet>

              <filters>
                <filter>
                  <artifact>org.immutables:gson</artifact>
                  <includes>
                    <include>org/immutables/gson/*</include>
                  </includes>
                </filter>
              </filters>
            </configuration>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
</project>
