| <?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.samples.testing.bundle-with-it</artifactId> |
| <version>0.0.9-SNAPSHOT</version> |
| <packaging>bundle</packaging> |
| |
| <name>Apache Sling Testing - sample bundle with integration tests</name> |
| <description> |
| Sample project that demonstrates a bundle with unit and integration |
| tests in the same Maven module, running against a full Sling instance. |
| Uses both HTTP-based and teleported server-side tests. |
| </description> |
| |
| <properties> |
| <!-- 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> |
| |
| <!-- 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> |
| |
| <!-- Filter IT --> |
| <sling.it.ignorelist>*.FilterIT#testShouldNotRun:test_filter</sling.it.ignorelist> |
| </properties> |
| |
| <scm> |
| <connection>scm:git:https://gitbox.apache.org/repos/asf/sling-samples.git</connection> |
| <developerConnection> scm:svn:https://svn.apache.org/repos/asf/sling/trunk/testing/samples/bundle-with-tests</developerConnection> |
| <url>https://gitbox.apache.org/repos/asf?p=sling-samples.git</url> |
| </scm> |
| |
| <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> |
| </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>derby.log</exclude> |
| <exclude>sling/**</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> |
| <version>2.19.1</version> |
| <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> |
| <systemPropertyVariables> |
| <!-- |
| TODO this is a fairly complicated setup, we might |
| switch to a Maven plugin using a Sling provisioning |
| model to start the server under test. The slingstart |
| plugin does this but currently requires a launchpad jar, |
| using a pure provisioning model startup would be more |
| flexible. |
| --> |
| |
| <!-- if set, this prevents jar executor from starting Sling?? |
| <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.build.directory}</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> |
| |
| <!-- Install this bundle for integration tests --> |
| <sling.additional.bundle.2>${project.artifactId}-${project.version}.jar</sling.additional.bundle.2> |
| |
| <!-- Test the Filter rule --> |
| <sling.it.ignorelist>${sling.it.ignorelist}</sling.it.ignorelist> |
| </systemPropertyVariables> |
| </configuration> |
| </plugin> |
| </plugins> |
| </build> |
| |
| <dependencies> |
| <dependency> |
| <groupId>org.osgi</groupId> |
| <artifactId>org.osgi.core</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>org.osgi</groupId> |
| <artifactId>org.osgi.compendium</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.sling</groupId> |
| <artifactId>org.apache.sling.api</artifactId> |
| <version>2.4.2</version> |
| <scope>provided</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.sling</groupId> |
| <artifactId>org.apache.sling.commons.mime</artifactId> |
| <version>2.1.2</version> |
| <scope>provided</scope> |
| </dependency> |
| <dependency> |
| <groupId>javax.servlet</groupId> |
| <artifactId>servlet-api</artifactId> |
| <scope>provided</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.felix</groupId> |
| <artifactId>org.apache.felix.scr.annotations</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.sling</groupId> |
| <artifactId>org.apache.sling.junit.core</artifactId> |
| <version>1.0.14</version> |
| <scope>provided</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.sling</groupId> |
| <artifactId>org.apache.sling.testing.rules</artifactId> |
| <version>1.0.0</version> |
| <scope>test</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.sling</groupId> |
| <artifactId>org.apache.sling.junit.teleporter</artifactId> |
| <version>1.0.6</version> |
| <scope>test</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.sling</groupId> |
| <artifactId>org.apache.sling.launchpad</artifactId> |
| <version>8</version> |
| <scope>provided</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.slf4j</groupId> |
| <artifactId>slf4j-api</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>org.slf4j</groupId> |
| <artifactId>slf4j-simple</artifactId> |
| <scope>test</scope> |
| </dependency> |
| <dependency> |
| <groupId>junit</groupId> |
| <artifactId>junit</artifactId> |
| <version>4.12</version> |
| <scope>test</scope> |
| </dependency> |
| </dependencies> |
| </project> |