blob: a8bc4b8a4fc64faebffeb8c98e4bd012e1423567 [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</groupId>
<artifactId>apache</artifactId>
<version>29</version>
<relativePath />
</parent>
<groupId>org.apache.sling</groupId>
<artifactId>sling</artifactId>
<packaging>pom</packaging>
<version>50-SNAPSHOT</version>
<name>Apache Sling (Parent)</name>
<description>The parent project for Apache Sling</description>
<inceptionYear>2007</inceptionYear>
<url>https://sling.apache.org</url>
<issueManagement>
<system>Jira</system>
<url>https://issues.apache.org/jira/browse/SLING</url>
</issueManagement>
<ciManagement>
<system>Jenkins</system>
<url>https://ci-builds.apache.org/job/Sling/</url>
</ciManagement>
<properties>
<site.jira.version.id>12313945</site.jira.version.id>
<site.javadoc.exclude />
<!--
Java API and class file compliance. This property supports
one of these values:
- 8: Java 8
- 9: Java 9
- 10..19: Java 10-19
-->
<sling.java.version>11</sling.java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<surefire.version>3.0.0-M5</surefire.version>
<minimalMavenBuildVersion>3.3.9</minimalMavenBuildVersion>
<minimalJavaBuildVersion>1.8</minimalJavaBuildVersion>
<!-- the github id used for the ribbon for Maven sites: https://maven.apache.org/skins/maven-fluido-skin/#GitHub_ribbons -->
<github.project.id>apache/sling-dummyproject</github.project.id>
<javadoc.excludePackageNames>*.impl:*.internal:${site.javadoc.exclude}</javadoc.excludePackageNames>
</properties>
<scm>
<connection>scm:git:https://gitbox.apache.org/repos/asf/sling-parent.git</connection>
<developerConnection>scm:git:https://gitbox.apache.org/repos/asf/sling-parent.git</developerConnection>
<url>https://gitbox.apache.org/repos/asf?p=sling-parent.git</url>
<tag>HEAD</tag>
</scm>
<reporting>
<plugins>
<plugin>
<artifactId>maven-javadoc-plugin</artifactId>
<!-- configuration set in build->pluginMgmt -->
<reportSets>
<reportSet>
<reports>
<report>javadoc</report>
</reports>
</reportSet>
</reportSets>
</plugin>
<plugin>
<artifactId>maven-surefire-report-plugin</artifactId>
</plugin>
<plugin>
<artifactId>maven-changes-plugin</artifactId>
<reportSets>
<reportSet>
<reports>
<report>jira-report</report>
</reports>
</reportSet>
</reportSets>
<configuration>
<fixVersionIds>${site.jira.version.id}</fixVersionIds>
</configuration>
</plugin>
</plugins>
</reporting>
<build>
<plugins>
<plugin>
<artifactId>maven-enforcer-plugin</artifactId>
<dependencies>
<dependency>
<groupId>org.apache.sling</groupId>
<artifactId>maven-enforcer-rules</artifactId>
<version>1.1.0</version>
</dependency>
</dependencies>
<executions>
<execution>
<id>enforce-sling-java-version</id>
<goals>
<goal>enforce</goal>
</goals>
<configuration>
<rules>
<requireProperty>
<property>sling.java.version</property>
<regex>^(8|9|1[0-9])$</regex>
<regexMessage>
The value of the "sling.java.version" property should comply with the following pattern: ^(8|9|1[0-9])$.
</regexMessage>
</requireProperty>
</rules>
</configuration>
</execution>
<execution>
<!-- all local dependencies must have an explicit scope set, https://github.com/apache/sling-maven-enforcer-rules/blob/master/README.md#require-explicit-dependency-scope-since-version-110 -->
<id>enforce-explicit-scope</id>
<goals>
<goal>enforce</goal>
</goals>
<configuration>
<rules>
<requireExplicitDependencyScope implementation="org.apache.sling.maven.enforcer.RequireExplicitDependencyScope" />
</rules>
</configuration>
</execution>
<execution>
<id>enforce-scope-of-annotation-deps</id>
<goals>
<goal>enforce</goal>
</goals>
<configuration>
<rules>
<bannedDependencies>
<searchTransitive>false</searchTransitive>
<excludes>
<exclude>org.jetbrains:annotations:*:*:compile</exclude>
</excludes>
<message>The annotation dependencies should be used with scope provided to prevent transitive inheritance and to prevent runtime inclusion</message>
</bannedDependencies>
</rules>
</configuration>
</execution>
</executions>
</plugin>
<!-- Attach sources for all builds -->
<plugin>
<artifactId>maven-source-plugin</artifactId>
<inherited>true</inherited>
<executions>
<execution>
<id>attach-sources</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.geronimo.genesis.plugins</groupId>
<artifactId>tools-maven-plugin</artifactId>
<executions>
<execution>
<id>verify-legal-files</id>
<goals>
<goal>verify-legal-files</goal>
</goals>
<configuration>
<!-- Fail the build if any artifacts are missing legal files -->
<strict>true</strict>
</configuration>
</execution>
</executions>
</plugin>
<!--
Override the default remote-resources configuration from the Apache pom
to include our custom NOTICE file
-->
<plugin>
<artifactId>maven-remote-resources-plugin</artifactId>
<executions>
<execution>
<id>remote-resources-custom-notice</id>
<goals>
<goal>process</goal>
</goals>
<configuration>
<resourceBundles>
<resourceBundle>org.apache.sling:apache-sling-jar-resource-bundle:1.0.2</resourceBundle>
<resourceBundle>org.apache:apache-jar-resource-bundle:1.4</resourceBundle>
</resourceBundles>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-release-plugin</artifactId>
<dependencies>
<dependency>
<groupId>org.apache.maven.release</groupId>
<artifactId>maven-release-oddeven-policy</artifactId>
<version>3.0.0-M7</version>
</dependency>
</dependencies>
<configuration>
<projectVersionPolicyId>OddEvenVersionPolicy</projectVersionPolicyId>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.rat</groupId>
<artifactId>apache-rat-plugin</artifactId>
<configuration>
<excludes combine.children="append">
<!-- Used by maven-remote-resources-plugin -->
<exclude>src/main/appended-resources/META-INF/*</exclude>
<!-- Generated by maven-remote-resources-plugin -->
<exclude>velocity.log</exclude>
<!-- Don't check anything in target -->
<exclude>target/*</exclude>
<!-- Files in markdown format -->
<exclude>**/*.md</exclude>
<!-- Ignore files generated by IDE plugins e.g. maven-eclipse-plugin -->
<exclude>maven-eclipse.xml</exclude>
<!-- Ignore "hidden" files and folders -->
<exclude>.*</exclude>
<exclude>.*/**</exclude>
<!-- Exclude all JSON files -->
<exclude>**/*.json</exclude>
<!-- Generated for release source archives -->
<exclude>DEPENDENCIES</exclude>
<!-- .rej files from svn/patch -->
<exclude>**/*.rej</exclude>
<!-- Exclude Java crash log files -->
<exclude>hs_err_*.log</exclude>
<!-- Lucene index details (Oak 1.6) -->
<exclude>**/repository/index/*/index-details.txt</exclude>
<!-- bnd -->
<exclude>bnd.bnd</exclude>
</excludes>
<consoleOutput>true</consoleOutput>
</configuration>
<executions>
<execution>
<id>rat-check</id>
<phase>verify</phase>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
<pluginManagement>
<plugins>
<plugin>
<artifactId>maven-enforcer-plugin</artifactId>
<version>3.3.0</version>
</plugin>
<plugin>
<artifactId>maven-javadoc-plugin</artifactId>
<!-- this affects both direct invocation and execution in the context of site building (https://maven.apache.org/shared/maven-reporting-exec/) -->
<configuration>
<excludePackageNames>${javadoc.excludePackageNames}</excludePackageNames>
</configuration>
</plugin>
<plugin>
<artifactId>maven-changes-plugin</artifactId>
<version>2.12.1</version>
</plugin>
<plugin>
<artifactId>maven-deploy-plugin</artifactId>
<configuration>
<retryFailedDeploymentCount>10</retryFailedDeploymentCount>
</configuration>
</plugin>
<!-- only overwrite config for surefire/failsafe -->
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<trimStackTrace>false</trimStackTrace>
</configuration>
</plugin>
<plugin>
<artifactId>maven-failsafe-plugin</artifactId>
<configuration>
<trimStackTrace>false</trimStackTrace>
</configuration>
</plugin>
<plugin>
<artifactId>maven-site-plugin</artifactId>
<configuration>
<relativizeDecorationLinks>false</relativizeDecorationLinks><!-- leave absolute URLs untouched, like image urls in header: https://maven.apache.org/plugins/maven-site-plugin/site-mojo.html#relativizeDecorationLinks -->
</configuration>
</plugin>
<plugin>
<groupId>org.apache.sling</groupId>
<artifactId>maven-jspc-plugin</artifactId>
<version>2.0.8</version>
</plugin>
<plugin>
<groupId>org.apache.sling</groupId>
<artifactId>slingstart-maven-plugin</artifactId>
<version>1.9.12</version>
</plugin>
<plugin>
<groupId>org.codehaus.cargo</groupId>
<artifactId>cargo-maven3-plugin</artifactId>
<version>1.9.11</version>
</plugin>
<!--
Documentation: https://geronimo.apache.org/maven/genesis/plugins/tools-maven-plugin/usage.html
Source code: https://svn.apache.org/repos/asf/geronimo/genesis/tags/genesis-1.4/plugins/tools-maven-plugin/
-->
<plugin>
<groupId>org.apache.geronimo.genesis.plugins</groupId>
<artifactId>tools-maven-plugin</artifactId>
<version>1.4</version>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>3.3.0</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.3.0</version>
</plugin>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.8.8</version>
</plugin>
<plugin>
<groupId>org.apache.servicemix.tooling</groupId>
<artifactId>depends-maven-plugin</artifactId>
<version>1.4.0</version>
<executions>
<execution>
<id>generate-depends-file</id>
<goals>
<goal>generate-depends-file</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</pluginManagement>
</build>
<profiles>
<profile>
<id>jacoco-report</id>
<build>
<plugins>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<executions>
<execution>
<id>prepare-agent</id>
<goals>
<goal>prepare-agent</goal>
</goals>
<configuration>
<append>true</append>
<destFile>${project.build.directory}/jacoco-ut.exec</destFile>
<propertyName>jacoco.ut.command</propertyName>
</configuration>
</execution>
<execution>
<id>prepare-agent-integration</id>
<goals>
<goal>prepare-agent-integration</goal>
</goals>
<configuration>
<append>true</append>
<destFile>${project.build.directory}/jacoco-it.exec</destFile>
<propertyName>jacoco.it.command</propertyName>
</configuration>
</execution>
<execution>
<id>report</id>
<goals>
<goal>report</goal>
</goals>
<configuration>
<dataFile>${project.build.directory}/jacoco-ut.exec</dataFile>
<outputDirectory> ${project.reporting.outputDirectory}/jacoco-ut</outputDirectory>
</configuration>
</execution>
<execution>
<id>report-integration</id>
<goals>
<goal>report-integration</goal>
</goals>
<configuration>
<dataFile>${project.build.directory}/jacoco-it.exec</dataFile>
<outputDirectory>${project.reporting.outputDirectory}/jacoco-it</outputDirectory>
</configuration>
</execution>
<execution>
<id>merge-unit-and-it</id>
<phase>post-integration-test</phase>
<goals>
<goal>merge</goal>
</goals>
<configuration>
<destFile>${project.build.directory}/jacoco-merged.exec</destFile>
<fileSets>
<fileSet>
<directory>${project.build.directory}</directory>
<includes>
<include>jacoco-ut.exec</include>
<include>jacoco-it.exec</include>
</includes>
</fileSet>
</fileSets>
</configuration>
</execution>
<execution>
<id>report-merged</id>
<phase>verify</phase>
<goals>
<goal>report</goal>
</goals>
<configuration>
<dataFile>${project.build.directory}/jacoco-merged.exec</dataFile>
<outputDirectory>${project.reporting.outputDirectory}/jacoco-merged</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<argLine>${jacoco.ut.command}</argLine>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<configuration>
<argLine>${jacoco.it.command}</argLine>
<systemPropertyVariables>
<!--
for IT where you need a forked JVM to run the tests you can use this system property to make sure that
the JaCoCo agent correctly instruments your code
-->
<jacoco.it.command>${jacoco.it.command}</jacoco.it.command>
</systemPropertyVariables>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-invoker-plugin</artifactId>
<configuration>
<mavenOpts>${jacoco.it.command}</mavenOpts>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
</profile>
<profile>
<id>jdk8</id>
<activation>
<jdk>1.8</jdk>
</activation>
<properties>
<!-- this affects m-compiler-p and m-javadoc-p -->
<maven.compiler.source>${sling.java.version}</maven.compiler.source>
<maven.compiler.target>${sling.java.version}</maven.compiler.target>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>animal-sniffer-maven-plugin</artifactId>
<version>1.21</version>
<executions>
<execution>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
<configuration>
<signature>
<groupId>org.codehaus.mojo.signature</groupId>
<artifactId>java18</artifactId>
<version>1.0</version>
</signature>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>jdk9-or-higher</id>
<activation>
<!-- syntax according to http://maven.apache.org/enforcer/enforcer-rules/versionRanges.html -->
<jdk>[9,)</jdk>
</activation>
<properties>
<!--
release sets API classpath, source and target, see
https://docs.oracle.com/javase/9/tools/javac.htm#GUID-AEEC9F07-CB49-4E96-8BC7-BCC2C7F725C9__GUID-D343F6B4-3FDD-43A8-AD24-43DD70214471
and http://openjdk.java.net/jeps/247, this affects m-compiler-p and m-javadoc-p -->
<maven.compiler.release>${sling.java.version}</maven.compiler.release>
</properties>
</profile>
<!-- This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself. -->
<profile>
<id>only-eclipse</id>
<activation>
<property>
<name>m2e.version</name>
</property>
</activation>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.eclipse.m2e</groupId>
<artifactId>lifecycle-mapping</artifactId>
<version>1.0.0</version>
<configuration>
<lifecycleMappingMetadata>
<pluginExecutions>
<pluginExecution>
<pluginExecutionFilter>
<groupId>
org.apache.maven.plugins
</groupId>
<artifactId>
maven-dependency-plugin
</artifactId>
<versionRange>
[2.2,)
</versionRange>
<goals>
<goal>copy-dependencies</goal>
<goal>unpack</goal>
</goals>
</pluginExecutionFilter>
<action>
<ignore />
</action>
</pluginExecution>
<pluginExecution>
<pluginExecutionFilter>
<groupId>
org.codehaus.groovy.maven
</groupId>
<artifactId>
gmaven-plugin
</artifactId>
<versionRange>
[1.0,)
</versionRange>
<goals>
<goal>compile</goal>
<goal>testCompile</goal>
<goal>execute</goal>
</goals>
</pluginExecutionFilter>
<action>
<ignore />
</action>
</pluginExecution>
<pluginExecution>
<pluginExecutionFilter>
<groupId>
org.codehaus.mojo
</groupId>
<artifactId>
build-helper-maven-plugin
</artifactId>
<versionRange>
[1.5,)
</versionRange>
<goals>
<goal>
reserve-network-port
</goal>
</goals>
</pluginExecutionFilter>
<action>
<ignore />
</action>
</pluginExecution>
<pluginExecution>
<pluginExecutionFilter>
<groupId>
org.apache.sling
</groupId>
<artifactId>
maven-launchpad-plugin
</artifactId>
<versionRange>
[2.0.10,)
</versionRange>
<goals>
<goal>prepare-package</goal>
</goals>
</pluginExecutionFilter>
<action>
<ignore />
</action>
</pluginExecution>
<pluginExecution>
<pluginExecutionFilter>
<groupId>
org.apache.sling
</groupId>
<artifactId>
maven-jcrocm-plugin
</artifactId>
<versionRange>
[2.0.4-incubator,)
</versionRange>
<goals>
<goal>ocm</goal>
</goals>
</pluginExecutionFilter>
<action>
<ignore />
</action>
</pluginExecution>
<pluginExecution>
<pluginExecutionFilter>
<groupId>
org.apache.sling
</groupId>
<artifactId>
sling-maven-plugin
</artifactId>
<versionRange>
[2.1.0,)
</versionRange>
<goals>
<goal>generate-adapter-metadata</goal>
</goals>
</pluginExecutionFilter>
<action>
<ignore />
</action>
</pluginExecution>
<pluginExecution>
<pluginExecutionFilter>
<groupId>
org.apache.maven.plugins
</groupId>
<artifactId>
maven-dependency-plugin
</artifactId>
<versionRange>
[2.2,)
</versionRange>
<goals>
<goal>
unpack-dependencies
</goal>
</goals>
</pluginExecutionFilter>
<action>
<ignore />
</action>
</pluginExecution>
<pluginExecution>
<pluginExecutionFilter>
<groupId>
org.apache.maven.plugins
</groupId>
<artifactId>
maven-jar-plugin
</artifactId>
<versionRange>
[2.3.1,)
</versionRange>
<goals>
<goal>
jar
</goal>
</goals>
</pluginExecutionFilter>
<action>
<ignore />
</action>
</pluginExecution>
<pluginExecution>
<pluginExecutionFilter>
<groupId>
org.apache.sling
</groupId>
<artifactId>
maven-jspc-plugin
</artifactId>
<versionRange>
[2.0.4,)
</versionRange>
<goals>
<goal>
jspc
</goal>
</goals>
</pluginExecutionFilter>
<action>
<ignore />
</action>
</pluginExecution>
<pluginExecution>
<pluginExecutionFilter>
<groupId>
net.alchim31.maven
</groupId>
<artifactId>
yuicompressor-maven-plugin
</artifactId>
<versionRange>
[1.3.0,)
</versionRange>
<goals>
<goal>
compress
</goal>
</goals>
</pluginExecutionFilter>
<action>
<ignore />
</action>
</pluginExecution>
<pluginExecution>
<pluginExecutionFilter>
<groupId>
org.scala-tools
</groupId>
<artifactId>
maven-scala-plugin
</artifactId>
<versionRange>
[2.15.2,)
</versionRange>
<goals>
<goal>
compile
</goal>
<goal>
testCompile
</goal>
</goals>
</pluginExecutionFilter>
<action>
<ignore />
</action>
</pluginExecution>
<pluginExecution>
<pluginExecutionFilter>
<groupId>
org.apache.maven.plugins
</groupId>
<artifactId>
maven-enforcer-plugin
</artifactId>
<versionRange>
[1.3.1,)
</versionRange>
<goals>
<goal>
enforce
</goal>
</goals>
</pluginExecutionFilter>
<action>
<ignore />
</action>
</pluginExecution>
<pluginExecution>
<pluginExecutionFilter>
<groupId>
org.apache.maven.plugins
</groupId>
<artifactId>
maven-remote-resources-plugin
</artifactId>
<versionRange>
[1.5,)
</versionRange>
<goals>
<goal>
process
</goal>
</goals>
</pluginExecutionFilter>
<action>
<ignore />
</action>
</pluginExecution>
<pluginExecution>
<pluginExecutionFilter>
<groupId>
org.apache.avro
</groupId>
<artifactId>
avro-maven-plugin
</artifactId>
<versionRange>
[1.7.7,)
</versionRange>
<goals>
<goal>schema</goal>
</goals>
</pluginExecutionFilter>
<action>
<ignore />
</action>
</pluginExecution>
</pluginExecutions>
</lifecycleMappingMetadata>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
</profile>
<!-- This profile is only active when building this parent pom (or sling-bundle-parent) -->
<profile>
<id>parent-pom-build</id>
<activation>
<file>
<exists>.isParentPom</exists>
</file>
</activation>
<build>
<pluginManagement>
<plugins>
<!-- Create a source-release artifact that contains the fully buildable
project directory source structure. This is the artifact which is
the official subject of any release vote. -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<!-- add dedicated execution as the one defined in ASF Parent POM only runs at execution root -->
<executions>
<execution>
<id>source-release-assembly-for-pom</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
<configuration>
<runOnlyAtExecutionRoot>false</runOnlyAtExecutionRoot>
<descriptorRefs>
<descriptorRef>${sourceReleaseAssemblyDescriptor}</descriptorRef>
</descriptorRefs>
<tarLongFileMode>posix</tarLongFileMode>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<executions>
<execution>
<id>enforce-output-timestamp-property</id>
<configuration>
<skip>true</skip>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</pluginManagement>
</build>
</profile>
<profile>
<!--
This profile enables execution of the Sling Starter ITs on top of the specified
Starter version. It is designed to include the current version of the bundle as an override
so that the tests are executed against the version of the bundle being built.
-->
<id>starter-its</id>
<activation>
<property>
<!-- the version of the Starter and Starter ITs to run, e.g. 12 or 13-SNAPSHOT -->
<name>starter-its.starter.version</name>
</property>
</activation>
<properties>
<starter-its.startTimeoutSeconds>120</starter-its.startTimeoutSeconds>
<starter-its.failsafeTestClassesDirectory>${project.build.testOutputDirectory}</starter-its.failsafeTestClassesDirectory>
</properties>
<dependencies>
<dependency>
<groupId>org.apache.sling</groupId>
<artifactId>org.apache.sling.launchpad.integration-tests</artifactId>
<version>${starter-its.starter.version}</version>
<scope>test</scope>
<!--
Remove various banned dependencies. These should be gradually removed from the integration-tests
module.
-->
<exclusions>
<exclusion>
<groupId>org.apache.felix</groupId>
<artifactId>org.apache.felix.scr.annotations</artifactId>
</exclusion>
<exclusion>
<groupId>org.osgi</groupId>
<artifactId>osgi.core</artifactId>
</exclusion>
<exclusion>
<groupId>org.osgi</groupId>
<artifactId>osgi.cmpn</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
<build>
<plugins>
<!-- reserve network ports for the integration tests -->
<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>pre-integration-test</phase>
<configuration>
<portNames>
<portName>starter-its.http.port</portName>
</portNames>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.sling</groupId>
<artifactId>slingfeature-maven-plugin</artifactId>
<version>1.6.4</version>
<extensions>true</extensions>
<executions>
<execution>
<id>create-current-artifact-feature</id>
<goals>
<goal>include-artifact</goal>
</goals>
<configuration>
<includeArtifactClassifier>current-artifact-feature</includeArtifactClassifier>
</configuration>
</execution>
<execution>
<id>aggregate-features</id>
<phase>prepare-package</phase>
<goals>
<goal>aggregate-features</goal>
<goal>attach-features</goal>
<goal>analyse-features</goal>
</goals>
<configuration>
<aggregates>
<aggregate>
<!-- aggregate the Sling Starter with the additional testing files from this module -->
<classifier>testing_oak_tar</classifier>
<!-- depend on the exact same Slingstart version -->
<includeArtifact>
<groupId>org.apache.sling</groupId>
<artifactId>org.apache.sling.starter</artifactId>
<version>${starter-its.starter.version}</version>
<classifier>oak_tar_test</classifier>
<type>slingosgifeature</type>
</includeArtifact>
<includeClassifier>current-artifact-feature</includeClassifier>
<!-- To apply the same override rule for all clashes, a wildcard using '*' for
groupID and artifactID can be used; this can be used as a catch all -->
<artifactsOverrides>
<artifactsOverride>${project.groupId}:${project.artifactId}:${project.version}</artifactsOverride>
</artifactsOverrides>
</aggregate>
</aggregates>
<scans>
<scan>
<includeClassifier>testing_oak_tar</includeClassifier>
</scan>
</scans>
</configuration>
</execution>
</executions>
</plugin>
<!-- launch the Sling instances to test; only oak-tar -->
<plugin>
<groupId>org.apache.sling</groupId>
<artifactId>feature-launcher-maven-plugin</artifactId>
<version>0.1.2</version>
<configuration>
<launches>
<launch>
<id>sling-starter-oak-tar</id>
<!-- Include the feature previously aggregated -->
<feature>
<groupId>${project.groupId}</groupId>
<artifactId>${project.artifactId}</artifactId>
<version>${project.version}</version>
<classifier>testing_oak_tar</classifier>
<type>slingosgifeature</type>
</feature>
<launcherArguments>
<frameworkProperties>
<org.osgi.service.http.port>${starter-its.http.port}</org.osgi.service.http.port>
</frameworkProperties>
</launcherArguments>
<startTimeoutSeconds>${starter-its.startTimeoutSeconds}</startTimeoutSeconds>
</launch>
</launches>
</configuration>
<executions>
<execution>
<goals>
<goal>start</goal>
<goal>stop</goal>
</goals>
</execution>
</executions>
</plugin>
<!-- run the ITs -->
<plugin>
<artifactId>maven-failsafe-plugin</artifactId>
<!-- ensure that tests are run with JUnit 4, even if the test classpath has JUnit 5 -->
<dependencies>
<dependency>
<groupId>org.apache.maven.surefire</groupId>
<artifactId>surefire-junit47</artifactId>
<version>${surefire.version}</version>
</dependency>
</dependencies>
<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>
<testClassesDirectory>
${starter-its.failsafeTestClassesDirectory}
</testClassesDirectory>
<includes>
<include>**/*Test.java</include>
<include>**/*IT.java</include>
</includes>
<excludes>
<exclude>${failsafe.exclude}</exclude>
<!-- Don't run provisioning model ITs in the feature model context -->
<exclude>org/apache/sling/launchpad/webapp/integrationtest/provisioning/**.java</exclude>
</excludes>
<systemPropertyVariables>
<launchpad.http.server.url>http://localhost:${starter-its.http.port}/</launchpad.http.server.url>
<starter.http.test.ports>false:${starter-its.http.port}</starter.http.test.ports>
<starter.min.bundles.count>100</starter.min.bundles.count>
<!-- Comma-separated list of paths to check for 200 status (added for SLING-10402) -->
<starter.check.paths>
/slingshot/users/slingshot1/travel/home/images/home.jpg,
/slingshot/resources/images/background.jpg,
/slingshot/users/slingshot2/places/landing/images/landing.jpg,
/starter.html,
/bin/browser.html,
/system/console/bundles,
</starter.check.paths>
</systemPropertyVariables>
</configuration>
</plugin>
</plugins>
</build>
</profile>
</profiles>
<mailingLists>
<mailingList>
<name>Apache Sling Users List</name>
<subscribe>
users-subscribe@sling.apache.org
</subscribe>
<unsubscribe>
users-unsubscribe@sling.apache.org
</unsubscribe>
<!-- to prevent scraping just point to Sling websites, which contains hints how to post -->
<post>https://sling.apache.org/project-information.html#mailing-lists</post>
<archive>
https://lists.apache.org/list.html?users@sling.apache.org
</archive>
<otherArchives>
<otherArchive>
https://www.mail-archive.com/users@sling.apache.org/
</otherArchive>
</otherArchives>
</mailingList>
<mailingList>
<name>Apache Sling Development List</name>
<subscribe>
dev-subscribe@sling.apache.org
</subscribe>
<unsubscribe>
dev-unsubscribe@sling.apache.org
</unsubscribe>
<!-- to prevent scraping just point to Sling websites, which contains hints how to post -->
<post>https://sling.apache.org/project-information.html#mailing-lists</post>
<archive>
https://lists.apache.org/list.html?dev@sling.apache.org
</archive>
<otherArchives>
<otherArchive>
https://www.mail-archive.com/dev@sling.apache.org/
</otherArchive>
</otherArchives>
</mailingList>
<mailingList>
<name>Apache Sling Source Control List</name>
<subscribe>
commits-subscribe@sling.apache.org
</subscribe>
<unsubscribe>
commits-unsubscribe@sling.apache.org
</unsubscribe>
<archive>
https://mail-archives.apache.org/mod_mbox/sling-commits/
</archive>
<otherArchives>
<otherArchive>
https://sling-commits.markmail.org/
</otherArchive>
<otherArchive>
https://www.mail-archive.com/commits@sling.apache.org/
</otherArchive>
</otherArchives>
</mailingList>
</mailingLists>
<!-- Please visit our website for the current information about the
Apache Sling project team. (see #SLING-1120 why we don't include
the list here) -->
<developers>
<developer>
<name>Apache Sling Project</name>
<id>sling</id>
<url>https://sling.apache.org/site/project-team.html</url>
</developer>
</developers>
<dependencyManagement>
<dependencies>
<!-- Web Application API -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
</dependency>
<!-- Dependency injection annotations -->
<dependency>
<groupId>javax.inject</groupId>
<artifactId>javax.inject</artifactId>
<version>1</version>
</dependency>
<!-- JCR API -->
<dependency>
<groupId>javax.jcr</groupId>
<artifactId>jcr</artifactId>
<version>2.0</version>
</dependency>
<!-- Basic Logging -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.25</version>
</dependency>
<!-- JetBrains annotations for null-analysis (SLING-7798), https://github.com/JetBrains/java-annotations -->
<dependency>
<groupId>org.jetbrains</groupId>
<artifactId>annotations</artifactId>
<version>23.0.0</version>
</dependency>
<!-- Annotations used in Maven Plugins -->
<dependency>
<groupId>org.apache.maven.plugin-tools</groupId>
<artifactId>maven-plugin-annotations</artifactId>
<version>${maven.plugin.tools.version}</version>
</dependency>
<!-- Basic dependencies for Unit Tests -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13.2</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version>1.7.25</version>
</dependency>
</dependencies>
</dependencyManagement>
</project>