<?xml version="1.0" encoding="ISO-8859-1"?>
<!--
    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>22</version>
        <relativePath>../../parent/pom.xml</relativePath>
    </parent>

    <artifactId>org.apache.sling.launchpad.testing</artifactId>
    <packaging>slingstart</packaging>
    <version>7-SNAPSHOT</version>

    <name>Apache Sling Launchpad Testing</name>
    <description>
        Sling Launchpad Testing module, contains integration tests that
        were previously in the launchpad webapp module.
    </description>

    <scm>
        <connection>scm:svn:http://svn.apache.org/repos/asf/sling/trunk/launchpad/testing</connection>
        <developerConnection>scm:svn:https://svn.apache.org/repos/asf/sling/trunk/launchpad/testing</developerConnection>
        <url>http://svn.apache.org/viewvc/sling/trunk/launchpad/testing</url>
    </scm>

    <properties>
        <!-- HTTP port to use when running mvn launchpad:run -->
        <run.http.port>8888</run.http.port>

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

        <!--
            Defines which tests are for the "integration-testing" phase
        -->
        <integration.test.code.path>
            **/launchpad/webapp/integrationtest
        </integration.test.code.path>

        <!-- optionally exclude some integration tests  -->
        <failsafe.exclude></failsafe.exclude>

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

        <resources.bundles.path>${project.build.directory}/launchpad-bundles/resources/bundles</resources.bundles.path>
        
        <slf4j.version>1.7.6</slf4j.version>
        <logback.version>1.1.2</logback.version>

        <min.port>41000</min.port>
        <max.port>41199</max.port>
    </properties>

    <build>
        <plugins>
            <plugin>
                <artifactId>maven-clean-plugin</artifactId>
                <configuration>
                    <filesets>
                        <fileset>
                            <directory>${basedir}</directory>
                            <includes>
                                <include>derby.log</include>
                                <include>cachedir</include>
                                <include>sling/**</include>
                                <include>jackrabbit</include>
                                <include>coverage.ec</include>
                            </includes>
                        </fileset>
                    </filesets>
                </configuration>
            </plugin>
            <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>
                            <minPortNumber>${min.port}</minPortNumber>
                            <maxPortNumber>${max.port}</maxPortNumber>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.sling</groupId>
                <artifactId>slingstart-maven-plugin</artifactId>
                <version>1.0.5-SNAPSHOT</version>
                <extensions>true</extensions>
            </plugin>

            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>emma-maven-plugin</artifactId>
                <configuration>
                    <filters>
                        <filter>-*</filter>
                    </filters>
                </configuration>
            </plugin>
        </plugins>
    </build>
    <reporting>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-javadoc-plugin</artifactId>
                <configuration>
                  <!-- No javadocs -->
                    <excludePackageNames>
                        org.apache.sling
                    </excludePackageNames>
                </configuration>
            </plugin>
        </plugins>
    </reporting>

    <profiles>
        <profile>
            <!--
                Run the integration tests.
            -->
            <id>integrationTesting</id>
            <activation>
                <property>
                    <name>!maven.test.skip</name>
                </property>
            </activation>
            <build>
                <plugins>
                    <plugin>
                        <artifactId>maven-failsafe-plugin</artifactId>
                        <executions>
                            <execution>
                                <goals>
                                    <goal>integration-test</goal>
                                    <goal>verify</goal>
                                </goals>
                            </execution>
                        </executions>
                        <configuration>
                            <dependenciesToScan>
                                <dependency>org.apache.sling:org.apache.sling.launchpad.integration-tests</dependency>
                            </dependenciesToScan>
                            <includes>
                                <include>**/*Test.java</include>
                                <include>**/*IT.java</include>
                            </includes>
                            <excludes>
                                <exclude>${failsafe.exclude}</exclude>
                            </excludes>
                            <excludedGroups>${sling.it.excludedGroups}</excludedGroups>
                            <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>
                                <launchpad.servlet.context>${http.base.path}</launchpad.servlet.context>
                             <!--
                                <HttpTestBase.readyTimeoutSeconds>${HttpTestBase.readyTimeoutSeconds}</HttpTestBase.readyTimeoutSeconds>
                                -->
                                <!-- Additional readyness checks, SLING-3235 and SLING-4261 
                                <launchpad.ready.1>GET:/system/console/status-Configurations/configuration-status-20131115-101714.txt:200:config.comment.*setup the JSP engine for running tests</launchpad.ready.1>
                                <launchpad.ready.2>GET:/.EXPORTED_PACKAGES.txt?package=org.apache.sling.api:200:PACKAGE FOUND.*org.apache.sling.api</launchpad.ready.2>
                                <launchpad.ready.3>GET:/system/sling/junit/org.apache.sling.launchpad.testservices.serversidetests.WriteableResourcesTest.json:200:WriteableResourcesTest</launchpad.ready.3>
                                -->
                            </systemPropertyVariables>
                        </configuration>
                    </plugin>
                    <plugin>
                        <groupId>org.apache.sling</groupId>
                        <artifactId>slingstart-maven-plugin</artifactId>
                        <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>${sling.run.modes}</runmode>
                                    <contextPath>${http.base.path}</contextPath>
                                </server>
                            </servers>
                            <!-- TODO 
                            <controlHost>${test.host}</controlHost>
                            -->
                        </configuration>
                    </plugin>
                </plugins>
            </build>
        </profile>
        <profile>
            <id>jackrabbit</id>
            <activation>
                <activeByDefault>true</activeByDefault>
                <property>
                    <name>sling.run.modes</name>
                    <value>!oak</value>
                </property>
            </activation>
            <properties>
                <sling.it.excludedGroups>org.apache.sling.commons.testing.junit.categories.OakOnly</sling.it.excludedGroups>
            </properties>
        </profile>
        <profile>
            <id>oak</id>
            <activation>
                <property>
                    <name>sling.run.modes</name>
                    <value>oak</value>
                </property>
            </activation>
            <properties>
                <sling.it.excludedGroups>org.apache.sling.commons.testing.junit.categories.JackrabbitOnly</sling.it.excludedGroups>
            </properties>
        </profile>
        <profile>
            <id>pax-web</id>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.sling</groupId>
                        <artifactId>maven-launchpad-plugin</artifactId>
                        <configuration>
                            <jarWebSupport>
                                <groupId>org.ops4j.pax.web</groupId>
                                <artifactId>pax-web-service</artifactId>
                                <version>0.6.0</version>
                            </jarWebSupport>
                        </configuration>
                    </plugin>
                </plugins>
            </build>
        </profile>
        <profile>
            <id>exclude-initial-content</id>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.sling</groupId>
                        <artifactId>maven-launchpad-plugin</artifactId>
                        <configuration>
                            <bundleExclusions>
                                <bundle>
                                    <groupId>org.apache.sling</groupId>
                                    <artifactId>org.apache.sling.launchpad.content</artifactId>
                                </bundle>
                            </bundleExclusions>
                        </configuration>
                    </plugin>
                </plugins>
            </build>
        </profile>
        <profile>
            <id>test-reactor-sling-bundles</id>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.sling</groupId>
                        <artifactId>maven-launchpad-plugin</artifactId>
                        <configuration>
                            <rewriteRuleFiles>
                                <rewriteRuleFile>
                                    ${basedir}/src/test/rules/reactor.drl
                                </rewriteRuleFile>
                            </rewriteRuleFiles>
                        </configuration>
                    </plugin>
                </plugins>
            </build>
        </profile>
<!-- 
 
        <profile>
            <id>emma</id>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.sling</groupId>
                        <artifactId>maven-launchpad-plugin</artifactId>
                        <configuration>
                            <rewriteRuleFiles combine.children="append">
                                <rewriteRuleFile>
                                    ${basedir}/src/test/rules/emma.drl
                                </rewriteRuleFile>
                            </rewriteRuleFiles>
                        </configuration>
                        <dependencies>
                            <dependency>
                                <groupId>emma</groupId>
                                <artifactId>emma</artifactId>
                                <version>2.0.5312</version>
                            </dependency>
                        </dependencies>
                    </plugin>
                </plugins>
            </build>
        </profile>
        -->
        <profile>
            <id>emma-report</id>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.codehaus.mojo</groupId>
                        <artifactId>exec-maven-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>emma-report</id>
                                <phase>validate</phase>
                                <goals>
                                    <goal>java</goal>
                                </goals>
                                <configuration>
                                    <mainClass>emma</mainClass>
                                    <arguments>
                                        <argument>report</argument>
                                        <argument>-r</argument>
                                        <argument>html</argument>
                                        <argument>-in</argument>
                                        <argument>${user.dir}/coverage.em,${user.dir}/coverage.ec</argument>
                                        <argument>-sp</argument>
                                        <argument>${sourceDirs}</argument>
                                    </arguments>
                                    <includePluginDependencies>true</includePluginDependencies>
                                    <includeProjectDependencies>false</includeProjectDependencies>
                                </configuration>
                            </execution>
                        </executions>
                        <dependencies>
                            <dependency>
                                <groupId>emma</groupId>
                                <artifactId>emma</artifactId>
                                <version>2.0.5312</version>
                            </dependency>
                        </dependencies>
                    </plugin>
                </plugins>
            </build>
        </profile>
        <profile>
            <id>port-java6</id>
            <activation>
                <activeByDefault>false</activeByDefault>
                <jdk>1.6</jdk>
            </activation>
            <properties>
                <min.port>41200</min.port>
                <max.port>41399</max.port>
            </properties>
        </profile>
        <profile>
            <id>port-java7</id>
            <activation>
                <activeByDefault>false</activeByDefault>
                <jdk>1.7</jdk>
            </activation>
            <properties>
                <min.port>41400</min.port>
                <max.port>41599</max.port>
            </properties>
        </profile>
        <profile>
            <id>port-java8</id>
            <activation>
                <activeByDefault>false</activeByDefault>
                <jdk>1.8</jdk>
            </activation>
            <properties>
                <min.port>41600</min.port>
                <max.port>41799</max.port>
            </properties>
        </profile>
    </profiles>
    
    <dependencies>
      <!-- The integration tests -->
        <dependency>
             <groupId>org.apache.sling</groupId>
             <artifactId>org.apache.sling.launchpad.integration-tests</artifactId>
             <version>1.0.1-SNAPSHOT</version>
             <scope>test</scope>
        </dependency>

        <!-- Dependencies for the Test Build and Run -->
        <dependency>
            <groupId>javax.jcr</groupId>
            <artifactId>jcr</artifactId>
            <version>2.0</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>${slf4j.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>jcl-over-slf4j</artifactId>
            <version>${slf4j.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>log4j-over-slf4j</artifactId>
            <version>${slf4j.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-classic</artifactId>
            <version>${logback.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
          <groupId>junit</groupId>
          <artifactId>junit</artifactId>
          <version>4.11</version>
          <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.osgi</groupId>
            <artifactId>org.osgi.core</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.osgi</groupId>
            <artifactId>org.osgi.compendium</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>
</project>
