<?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>
    <groupId>org.glowroot.instrumentation</groupId>
    <artifactId>instrumentation-parent</artifactId>
    <version>0.14.8</version>
    <relativePath>../..</relativePath>
  </parent>

  <artifactId>instrumentation-play</artifactId>

  <name>Instrumentation for Play Framework</name>
  <description>Instrumentation for Play Framework</description>

  <licenses>
    <license>
      <name>The Apache Software License, Version 2.0</name>
      <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
      <distribution>repo</distribution>
    </license>
  </licenses>

  <dependencies>
    <dependency>
      <groupId>org.glowroot.instrumentation</groupId>
      <artifactId>instrumentation-api</artifactId>
      <version>${project.version}</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.assertj</groupId>
      <artifactId>assertj-core</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.glowroot.instrumentation</groupId>
      <artifactId>instrumentation-test-harness</artifactId>
      <version>${project.version}</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <!-- using apache httpclient instead of asynchttpclient to avoid netty conflicts with
        different play versions -->
      <groupId>org.apache.httpcomponents</groupId>
      <artifactId>httpclient</artifactId>
      <version>4.5.6</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>ch.qos.logback</groupId>
      <artifactId>logback-classic</artifactId>
      <scope>test</scope>
    </dependency>
  </dependencies>

  <profiles>
    <profile>
      <id>auto-activated-skip-tests-under-java-9</id>
      <activation>
        <!-- scala compiler failing under java 9 -->
        <jdk>[9,)</jdk>
      </activation>
      <build>
        <pluginManagement>
          <plugins>
            <plugin>
              <groupId>net.alchim31.maven</groupId>
              <artifactId>scala-maven-plugin</artifactId>
              <!-- scala-maven-plugin version 3.3.3+ requres maven 3.5.3+ -->
              <version>3.3.2</version>
              <configuration>
                <skip>true</skip>
              </configuration>
            </plugin>
            <plugin>
              <artifactId>maven-compiler-plugin</artifactId>
              <executions>
                <execution>
                  <id>default-testCompile</id>
                  <phase>test-compile</phase>
                  <goals>
                    <goal>testCompile</goal>
                  </goals>
                  <configuration>
                    <skip>true</skip>
                  </configuration>
                </execution>
              </executions>
            </plugin>
          </plugins>
        </pluginManagement>
      </build>
    </profile>
    <profile>
      <id>play-2.x</id>
      <dependencies>
        <dependency>
          <!-- netty plugin is required for play 2.x -->
          <groupId>org.glowroot.instrumentation</groupId>
          <artifactId>instrumentation-netty</artifactId>
          <version>${project.version}</version>
          <scope>test</scope>
        </dependency>
        <dependency>
          <!-- executor plugin is required for play 2.x -->
          <groupId>org.glowroot.instrumentation</groupId>
          <artifactId>instrumentation-executor</artifactId>
          <version>${project.version}</version>
          <scope>test</scope>
        </dependency>
        <dependency>
          <!-- logger plugin is included to test 500 responses -->
          <groupId>org.glowroot.instrumentation</groupId>
          <artifactId>instrumentation-logback</artifactId>
          <version>${project.version}</version>
          <scope>test</scope>
        </dependency>
        <dependency>
          <!-- this is to resolve maven enforcer RequireUpperBoundDeps error -->
          <groupId>commons-codec</groupId>
          <artifactId>commons-codec</artifactId>
          <version>1.11</version>
          <scope>test</scope>
        </dependency>
        <dependency>
          <!-- this is to resolve maven enforcer RequireUpperBoundDeps error -->
          <groupId>org.scala-lang</groupId>
          <artifactId>scala-library</artifactId>
          <version>${scala.version}</version>
          <scope>test</scope>
        </dependency>
      </dependencies>
      <repositories>
        <repository>
          <!-- this is needed for play 2.3.8 and prior -->
          <id>typesafe</id>
          <url>https://repo.typesafe.com/typesafe/releases</url>
        </repository>
        <repository>
          <!-- this repo is referenced by com.codahale.jerkson_2.9.1 (which is transitive dependency
            of play:play_2.9.1) inside typesafe repo, but is no longer available -->
          <id>repo.codahale.com</id>
          <url>http://repo.codahale.com</url>
          <releases>
            <enabled>false</enabled>
          </releases>
          <snapshots>
            <enabled>false</enabled>
          </snapshots>
        </repository>
      </repositories>
      <build>
        <plugins>
          <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>build-helper-maven-plugin</artifactId>
            <executions>
              <execution>
                <id>test-play-2.x</id>
                <phase>generate-test-sources</phase>
                <goals>
                  <goal>add-test-source</goal>
                  <goal>add-test-resource</goal>
                </goals>
                <configuration>
                  <sources>
                    <source>src/test/app-${test.app.version}-${test.app.language}/java</source>
                    <source>src/test/play-2.x/java</source>
                  </sources>
                  <resources>
                    <resource>
                      <directory>
                        src/test/app-${test.app.version}-${test.app.language}/resources
                      </directory>
                    </resource>
                  </resources>
                </configuration>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <groupId>net.alchim31.maven</groupId>
            <artifactId>scala-maven-plugin</artifactId>
            <!-- scala-maven-plugin version 3.3.3+ requres maven 3.5.3+ -->
            <version>3.3.2</version>
            <configuration>
              <scalaVersion>${scala.version}</scalaVersion>
              <testSourceDir>
                src/test/app-${test.app.version}-${test.app.language}/scala
              </testSourceDir>
            </configuration>
            <executions>
              <execution>
                <phase>process-test-resources</phase>
                <goals>
                  <goal>testCompile</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>play-2.4.x</id>
      <properties>
        <play.version>2.5.10</play.version>
        <scala.major.version>2.11</scala.major.version>
        <scala.version>2.11.8</scala.version>
        <jackson.version>2.7.8</jackson.version>
        <test.app.version>2.5.x</test.app.version>
        <test.app.language>java</test.app.language>
      </properties>
      <dependencies>
        <dependency>
          <groupId>com.typesafe.play</groupId>
          <artifactId>play-java_${scala.major.version}</artifactId>
          <version>${play.version}</version>
          <scope>test</scope>
        </dependency>
        <dependency>
          <groupId>com.typesafe.play</groupId>
          <artifactId>play-test_${scala.major.version}</artifactId>
          <version>${play.version}</version>
          <scope>test</scope>
        </dependency>
      </dependencies>
    </profile>
    <profile>
      <id>play-2.2.x</id>
      <properties>
        <play.version>2.3.10</play.version>
        <scala.major.version>2.11</scala.major.version>
        <scala.version>2.11.8</scala.version>
        <jackson.version>2.3.2</jackson.version>
        <test.app.version>2.3.x</test.app.version>
        <test.app.language>java</test.app.language>
      </properties>
      <dependencies>
        <dependency>
          <groupId>com.typesafe.play</groupId>
          <artifactId>play-java_${scala.major.version}</artifactId>
          <version>${play.version}</version>
          <scope>test</scope>
        </dependency>
        <dependency>
          <groupId>com.typesafe.play</groupId>
          <artifactId>play-test_${scala.major.version}</artifactId>
          <version>${play.version}</version>
          <scope>test</scope>
        </dependency>
      </dependencies>
    </profile>
    <profile>
      <id>play-2.1.x</id>
      <properties>
        <play.version>2.1.5</play.version>
        <scala.major.version>2.10</scala.major.version>
        <scala.version>2.10.3</scala.version>
        <jackson.version>2.2.2</jackson.version>
        <test.app.version>2.1.x</test.app.version>
        <test.app.language>java</test.app.language>
      </properties>
      <dependencies>
        <dependency>
          <groupId>play</groupId>
          <artifactId>play-java_${scala.major.version}</artifactId>
          <version>${play.version}</version>
          <scope>test</scope>
        </dependency>
        <dependency>
          <groupId>play</groupId>
          <artifactId>play-test_${scala.major.version}</artifactId>
          <version>${play.version}</version>
          <scope>test</scope>
        </dependency>
      </dependencies>
    </profile>
    <profile>
      <id>play-2.0.x</id>
      <properties>
        <play.version>2.0.8</play.version>
        <scala.major.version>2.9</scala.major.version>
        <scala.version>2.9.3</scala.version>
        <jackson.version>2.2.2</jackson.version>
        <test.app.version>2.0.x</test.app.version>
        <test.app.language>java</test.app.language>
      </properties>
      <dependencies>
        <dependency>
          <groupId>play</groupId>
          <artifactId>play_2.9.1</artifactId>
          <version>${play.version}</version>
          <scope>test</scope>
        </dependency>
        <dependency>
          <groupId>play</groupId>
          <artifactId>play-test_2.9.1</artifactId>
          <version>${play.version}</version>
          <scope>test</scope>
        </dependency>
      </dependencies>
      <build>
        <plugins>
          <plugin>
            <artifactId>maven-failsafe-plugin</artifactId>
            <configuration>
              <systemPropertyVariables>
                <test.play20x>true</test.play20x>
              </systemPropertyVariables>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>play-1.x</id>
      <properties>
        <play.version>1.4.2</play.version>
      </properties>
      <dependencies>
        <dependency>
          <!-- netty plugin is required for play 1.x dev mode -->
          <groupId>org.glowroot.instrumentation</groupId>
          <artifactId>instrumentation-netty</artifactId>
          <version>${project.version}</version>
          <scope>test</scope>
        </dependency>
        <dependency>
          <!-- executor plugin is required for play 1.x dev mode -->
          <groupId>org.glowroot.instrumentation</groupId>
          <artifactId>instrumentation-executor</artifactId>
          <version>${project.version}</version>
          <scope>test</scope>
        </dependency>
        <dependency>
          <groupId>com.google.code.maven-play-plugin.org.playframework</groupId>
          <artifactId>play</artifactId>
          <version>${play.version}</version>
          <scope>test</scope>
          <exclusions>
            <exclusion>
              <groupId>org.slf4j</groupId>
              <artifactId>slf4j-log4j12</artifactId>
            </exclusion>
          </exclusions>
        </dependency>
      </dependencies>
      <build>
        <plugins>
          <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>build-helper-maven-plugin</artifactId>
            <executions>
              <execution>
                <id>test-play-1.x</id>
                <phase>generate-test-sources</phase>
                <goals>
                  <goal>add-test-source</goal>
                  <goal>add-test-resource</goal>
                </goals>
                <configuration>
                  <sources>
                    <source>src/test/play-1.x/java</source>
                  </sources>
                  <resources>
                    <resource>
                      <directory>src/test/play-1.x/resources</directory>
                    </resource>
                  </resources>
                </configuration>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
  </profiles>
</project>
