blob: e36f4cf8f40ff9f8813cdb49bcffbb65024f13e6 [file] [log] [blame]
<?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>26</version>
<relativePath/>
</parent>
<artifactId>org.apache.sling.models.integration-tests</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>bundle</packaging>
<name>Apache Sling Models Integration Tests</name>
<description>
Apache Sling Models Integration Tests - builds a bundle
with Sling server-side tests, and executes them via a
remote test proxy that runs in the integration-tests phase.
</description>
<!--
To keep the instance under test running and run individual tests
against it, use:
mvn clean verify -DkeepJarRunning=true -Dhttp.port=8080
optionally using jar.executor.vm.options to enable remote debugging,
and in another console:
mvn -o verify -Dtests.to.run=**/**Test.java -Dtest.server.url=http://localhost:8080
optionally using -Dmaven.surefire.debug to enable debugging.
-->
<properties>
<sling.java.version>7</sling.java.version>
<!-- Set this to run the server on a specific port
<http.port></http.port>
-->
<!-- Set this to run tests against an existing server instance -->
<keepJarRunning>false</keepJarRunning>
<!-- URL of a server against which to run tests -->
<test.server.url />
<!-- Set this to run tests against a specific hostname, if test.server.url is not set-->
<test.server.hostname />
<!-- Set this to use a different username for remote execution of sling junit tests -->
<test.server.username />
<!-- Set this to use a different password for remote execution of sling junit tests -->
<test.server.password />
<!-- Options for the VM that executes our runnable jar -->
<jar.executor.vm.options>-Xmx512m</jar.executor.vm.options>
<!-- Alternative with JVM debug port
<jar.executor.vm.options>-Xmx512m -Xdebug -Xrunjdwp:server=y,transport=dt_socket,address=38080,suspend=n</jar.executor.vm.options>
-->
<!-- Change this to use longer or shorter timeouts for testing -->
<sling.testing.timeout.multiplier>1.0</sling.testing.timeout.multiplier>
<!-- Set this to run the executable jar in a specified filesystem folder -->
<jar.executor.work.folder />
<!-- Options for the jar to execute. $JAREXEC_SERVER_PORT$ is replaced by the
selected port number -->
<jar.executor.jar.options>-p $JAREXEC_SERVER_PORT$</jar.executor.jar.options>
</properties>
<build>
<plugins>
<plugin>
<artifactId>maven-clean-plugin</artifactId>
<configuration>
<filesets>
<fileset>
<directory>${basedir}</directory>
<includes>
<!-- sling folder is the workdir of the executable jar that we test -->
<include>sling/**</include>
</includes>
</fileset>
</filesets>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<extensions>true</extensions>
<configuration>
<instructions>
<Sling-Model-Packages>
org.apache.sling.models.it.nonexisting,
org.apache.sling.models.it.noclasses,
org.apache.sling.models.it.models,
org.apache.sling.models.it.rtbound,
org.apache.sling.models.it.rtboundpicker,
org.apache.sling.models.it.delegate.request,
org.apache.sling.models.it.delegate.resource
</Sling-Model-Packages>
<Sling-Model-Classes>
org.apache.sling.models.it.exporter.BaseComponent,
org.apache.sling.models.it.exporter.ComponentImpl,
org.apache.sling.models.it.exporter.ExtendedComponent,
org.apache.sling.models.it.exporter.BaseRequestComponent,
org.apache.sling.models.it.exporter.RequestComponentImpl,
org.apache.sling.models.it.exporter.ExtendedRequestComponent,
org.apache.sling.models.it.exporter.DoubledFirstComponent,
org.apache.sling.models.it.exporter.DoubledSecondComponent
</Sling-Model-Classes>
<Sling-Test-Regexp>.*Test</Sling-Test-Regexp>
<Export-Package>
org.apache.sling.models.it.delegate.request,
org.apache.sling.models.it.delegate.resource,
org.apache.sling.models.it.exporter,
org.apache.sling.models.it.implpicker,
org.apache.sling.models.it.models,
org.apache.sling.models.it.models.implextend,
org.apache.sling.models.it.rtbound,
org.apache.sling.models.it.rtboundpicker,
org.apache.sling.models.it.services
</Export-Package>
<Import-Package>
org.apache.commons.beanutils;resolution:=optional,
*
</Import-Package>
</instructions>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-scr-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.rat</groupId>
<artifactId>apache-rat-plugin</artifactId>
<configuration>
<excludes>
<exclude>sling/**</exclude>
<exclude>derby.log</exclude>
<exclude>src/main/resources/org/apache/sling/models/it/noclasses/foo.txt</exclude>
</excludes>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>copy-runnable-jar</id>
<goals>
<goal>copy-dependencies</goal>
</goals>
<phase>process-resources</phase>
<configuration>
<includeArtifactIds>org.apache.sling.launchpad</includeArtifactIds>
<excludeTransitive>true</excludeTransitive>
<overWriteReleases>false</overWriteReleases>
<overWriteSnapshots>false</overWriteSnapshots>
</configuration>
</execution>
<execution>
<!--
Consider all dependencies as candidates to be installed
as additional bundles. We use system properties to define
which bundles to install in which order.
-->
<id>copy-additional-bundles</id>
<goals>
<goal>copy-dependencies</goal>
</goals>
<phase>process-resources</phase>
<configuration>
<outputDirectory>${project.build.directory}</outputDirectory>
<excludeTransitive>true</excludeTransitive>
<overWriteReleases>false</overWriteReleases>
<overWriteSnapshots>false</overWriteSnapshots>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<!-- Find free ports to run our server -->
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<executions>
<execution>
<id>reserve-server-port</id>
<goals>
<goal>reserve-network-port</goal>
</goals>
<phase>process-resources</phase>
<configuration>
<portNames>
<portName>http.port</portName>
</portNames>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<executions>
<execution>
<id>integration-test</id>
<goals>
<goal>integration-test</goal>
</goals>
</execution>
<execution>
<id>verify</id>
<goals>
<goal>verify</goal>
</goals>
</execution>
</executions>
<configuration>
<debugForkedProcess>${maven.surefire.debug}</debugForkedProcess>
<systemPropertyVariables>
<test.server.url>${test.server.url}</test.server.url>
<test.server.hostname>${test.server.hostname}</test.server.hostname>
<test.server.username>${test.server.username}</test.server.username>
<test.server.password>${test.server.password}</test.server.password>
<jar.executor.server.port>${http.port}</jar.executor.server.port>
<jar.executor.vm.options>${jar.executor.vm.options}</jar.executor.vm.options>
<jar.executor.jar.folder>${project.basedir}/target/dependency</jar.executor.jar.folder>
<jar.executor.jar.name.regexp>org.apache.sling.launchpad.*jar$</jar.executor.jar.name.regexp>
<jar.executor.work.folder>${jar.executor.work.folder}</jar.executor.work.folder>
<jar.executor.jar.options>${jar.executor.jar.options}</jar.executor.jar.options>
<additional.bundles.path>${project.basedir}/target,${project.basedir}/target/sling/additional-bundles</additional.bundles.path>
<keepJarRunning>${keepJarRunning}</keepJarRunning>
<server.ready.timeout.seconds>60</server.ready.timeout.seconds>
<sling.testing.timeout.multiplier>${sling.testing.timeout.multiplier}</sling.testing.timeout.multiplier>
<server.ready.path.1>/:script src="system/sling.js"</server.ready.path.1>
<server.ready.path.2>/.explorer.html:href="/libs/sling/explorer/css/explorer.css"</server.ready.path.2>
<server.ready.path.3>/sling-test/sling/sling-test.html:Sling client library tests</server.ready.path.3>
<start.bundles.timeout.seconds>30</start.bundles.timeout.seconds>
<bundle.install.timeout.seconds>20</bundle.install.timeout.seconds>
<!--
Define additional bundles to install by specifying the beginning of their artifact name.
The bundles are installed in lexical order of these property names.
All bundles must be listed as dependencies in this pom, or they won't be installed.
-->
<sling.additional.bundle.1>org.apache.sling.junit.core</sling.additional.bundle.1>
<sling.additional.bundle.3>org.apache.sling.commons.johnzon</sling.additional.bundle.3>
<sling.additional.bundle.4>commons-lang3</sling.additional.bundle.4>
<sling.additional.bundle.10>org.apache.sling.models.api</sling.additional.bundle.10>
<sling.additional.bundle.11>org.apache.sling.models.impl</sling.additional.bundle.11>
<sling.additional.bundle.12>org.apache.sling.models.jacksonexporter</sling.additional.bundle.12>
<sling.additional.bundle.13>jackson-annotations</sling.additional.bundle.13>
<sling.additional.bundle.14>jackson-core</sling.additional.bundle.14>
<sling.additional.bundle.15>jackson-databind</sling.additional.bundle.15>
<sling.additional.bundle.16>commons-lang3</sling.additional.bundle.16>
<sling.additional.bundle.17>${project.build.finalName}.jar</sling.additional.bundle.17>
</systemPropertyVariables>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>org.osgi</groupId>
<artifactId>org.osgi.core</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.osgi</groupId>
<artifactId>org.osgi.compendium</artifactId>
<scope>provided</scope>
</dependency>
<!-- Additional bundles needed by the Sling instance under test -->
<dependency>
<groupId>org.apache.sling</groupId>
<artifactId>org.apache.sling.junit.core</artifactId>
<version>1.0.26</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.sling</groupId>
<artifactId>org.apache.sling.testing.rules</artifactId>
<version>1.0.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.sling</groupId>
<artifactId>org.apache.sling.junit.teleporter</artifactId>
<version>1.0.12</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.sling</groupId>
<artifactId>org.apache.sling.commons.johnzon</artifactId>
<version>1.0.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.sling</groupId>
<artifactId>org.apache.sling.engine</artifactId>
<version>2.2.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.sling</groupId>
<artifactId>org.apache.sling.models.api</artifactId>
<version>1.3.9-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.sling</groupId>
<artifactId>org.apache.sling.models.impl</artifactId>
<version>1.4.11-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.sling</groupId>
<artifactId>org.apache.sling.models.jacksonexporter</artifactId>
<version>1.0.9-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.3.2</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.3.2</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.3.2</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.4</version>
<scope>provided</scope>
</dependency>
<!-- not part of launchpad 7 (see SLING-4710) -->
<dependency>
<groupId>org.apache.geronimo.specs</groupId>
<artifactId>geronimo-atinject_1.0_spec</artifactId>
<version>1.0</version>
<scope>provided</scope>
</dependency>
<!-- actual dependencies -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.jcr</groupId>
<artifactId>jcr</artifactId>
</dependency>
<dependency>
<groupId>org.apache.sling</groupId>
<artifactId>org.apache.sling.api</artifactId>
<version>2.4.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
<version>2.5</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.sling</groupId>
<artifactId>org.apache.sling.launchpad</artifactId>
<version>8</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.6.6</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<scope>test</scope>
<version>1.6.6</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>commons-beanutils</groupId>
<artifactId>commons-beanutils</artifactId>
<version>1.9.2</version>
<scope>provided</scope>
</dependency>
</dependencies>
<profiles>
<profile>
<id>debug-remote-process</id>
<properties>
<jar.executor.vm.options>-Xmx512m -Xdebug -Xrunjdwp:server=y,transport=dt_socket,address=38080,suspend=n</jar.executor.vm.options>
</properties>
</profile>
<profile>
<id>debug-remote-process-suspend</id>
<properties>
<jar.executor.vm.options>-Xmx512m -Xdebug -Xrunjdwp:server=y,transport=dt_socket,address=38080,suspend=n</jar.executor.vm.options>
</properties>
</profile>
</profiles>
</project>