<?xml version="1.0" encoding="UTF-8"?>
  <!--
    Licensed to the Apache Software Foundation (ASF) under one or more
    contributor license agreements. See the NOTICE file distributed with
    this work for additional information regarding copyright ownership.
    The ASF licenses this file to you 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/maven-v4_0_0.xsd">

  <modelVersion>4.0.0</modelVersion>
  <parent>
    <groupId>org.apache.sling</groupId>
    <artifactId>sling</artifactId>
    <version>16</version>
    <relativePath />
  </parent>

  <artifactId>org.apache.sling.bgservlets.testing</artifactId>
  <version>1.0.0</version>
  <packaging>slingstart</packaging>

  <name>Apache Sling Background Servlets Integration Tests</name>

  <properties>
      <!-- Timeout when checking for Sling readyness before starting tests -->
      <HttpTestBase.readyTimeoutSeconds>62</HttpTestBase.readyTimeoutSeconds>

      <!-- path suffix for HTTP access to Sling -->
      <http.base.path />

      <!-- path suffix for WebDAV access to the repository -->
      <webdav.workspace.path />

      <!-- hostname for integration tests -->
      <test.host>localhost</test.host>

      <!--
          Set this to true to stop mvn once the integration test Jetty instance is
          started. Useful to manually test the integration testing webapp.
      -->
      <integration.test.wait>false</integration.test.wait>

      <!--
      if set to "true" this will start the launchpad with the following debug options:
          -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8000

      otherwise you can provide your own debug settings
      -->
      <debug.options />
  </properties>
  
  <scm>
    <connection>scm:svn:https://svn.apache.org/repos/asf/sling/tags/org.apache.sling.bgservlets.testing-1.0.0</connection>
    <developerConnection>scm:svn:https://svn.apache.org/repos/asf/sling/tags/org.apache.sling.bgservlets.testing-1.0.0</developerConnection>
    <url>http://svn.apache.org/repos/asf/sling/tags/org.apache.sling.bgservlets.testing-1.0.0</url>
  </scm>

  <build>
    <plugins>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>build-helper-maven-plugin</artifactId>
        <executions>
          <execution>
            <id>reserve-network-port</id>
            <goals>
              <goal>reserve-network-port</goal>
            </goals>
            <phase>process-resources</phase>
            <configuration>
              <portNames>
                <portName>http.port</portName>
                <portName>sling.control.port</portName>
              </portNames>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <artifactId>maven-failsafe-plugin</artifactId>
        <executions>
          <execution>
            <goals>
              <goal>integration-test</goal>
              <goal>verify</goal>
            </goals>
          </execution>
        </executions>
        <configuration>
          <runOrder>alphabetical</runOrder>
          <systemPropertyVariables>
            <launchpad.http.server.url>http://${test.host}:${http.port}/</launchpad.http.server.url>
            <launchpad.webdav.server.url>http://${test.host}:${http.port}/${webdav.workspace.path}</launchpad.webdav.server.url>
            <HttpTestBase.readyTimeoutSeconds>${HttpTestBase.readyTimeoutSeconds}</HttpTestBase.readyTimeoutSeconds>
            <launchpad.ready.1>GET:/index.html:200:.*Welcome to the Sling Launchpad.*</launchpad.ready.1>
          </systemPropertyVariables>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.sling</groupId>
        <artifactId>slingstart-maven-plugin</artifactId>
        <version>1.2.0</version>
        <extensions>true</extensions>
        <executions>
          <execution>
            <id>start-container</id>
            <goals>
              <goal>start</goal>
              <goal>stop</goal>
            </goals>
          </execution>
        </executions>
        <configuration>
          <servers>
            <server>
              <port>${http.port}</port>
              <controlPort>${sling.control.port}</controlPort>
              <runmode>jackrabbit</runmode>
              <contextPath>${http.base.path}</contextPath>
<!-- TODO activate when never slingstart plugin is available
              <debug>${debug.options}</debug>
-->
            </server>
          </servers>
        </configuration>
      </plugin>
    </plugins>
  </build>

  <dependencies>
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>servlet-api</artifactId>
    </dependency>
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-api</artifactId>
      <version>1.7.0</version>
    </dependency>
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-simple</artifactId>
      <version>1.7.0</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.mockito</groupId>
      <artifactId>mockito-core</artifactId>
      <version>1.9.5</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.sling</groupId>
      <artifactId>org.apache.sling.commons.testing</artifactId>
      <version>2.0.18</version>
      <exclusions>
        <exclusion>
          <groupId>junit</groupId>
          <artifactId>junit-dep</artifactId>
        </exclusion>
        <exclusion>
          <groupId>org.slf4j</groupId>
          <artifactId>slf4j-simple</artifactId>
        </exclusion>
      </exclusions>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <scope>test</scope>
    </dependency>
  </dependencies>
</project>