| <?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" child.project.url.inherit.append.path="false" 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>31</version> |
| <relativePath /> |
| </parent> |
| |
| <groupId>org.apache.sling</groupId> |
| <artifactId>sling</artifactId> |
| <version>60</version> |
| <packaging>pom</packaging> |
| |
| <name>Apache Sling (Parent)</name> |
| <description>The parent project for Apache Sling</description> |
| |
| <url>https://sling.apache.org</url> |
| <inceptionYear>2007</inceptionYear> |
| |
| <!-- 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> |
| <id>sling</id> |
| <name>Apache Sling Project</name> |
| <url>https://sling.apache.org/site/project-team.html</url> |
| </developer> |
| </developers> |
| |
| <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> |
| |
| <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> |
| <tag>sling-parent-reactor-60</tag> |
| <url>https://github.com/apache/sling-parent.git</url> |
| </scm> |
| |
| <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> |
| |
| <junit5.version>5.10.1</junit5.version> |
| |
| <!-- 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> |
| <!-- due to https://issues.apache.org/jira/browse/MNG-6059 --> |
| <minimalMavenBuildVersion>3.6.1</minimalMavenBuildVersion> |
| <!-- Parameter "maven.compiler.release" requires JDK9+ and we generally only support LTS releases --> |
| <minimalJavaBuildVersion>11</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> |
| |
| <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> |
| <dependency> |
| <groupId>org.junit</groupId> |
| <artifactId>junit-bom</artifactId> |
| <version>${junit5.version}</version> |
| <type>pom</type> |
| <scope>import</scope> |
| </dependency> |
| </dependencies> |
| </dependencyManagement> |
| |
| <build> |
| |
| <pluginManagement> |
| <plugins> |
| <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> |
| <plugin> |
| <artifactId>maven-site-plugin</artifactId> |
| <configuration> |
| <!-- leave absolute URLs untouched, like image urls in header: https://maven.apache.org/plugins/maven-site-plugin/site-mojo.html#relativizeDecorationLinks --> |
| <relativizeDecorationLinks>false</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.jacoco</groupId> |
| <artifactId>jacoco-maven-plugin</artifactId> |
| <version>0.8.11</version> |
| </plugin> |
| <plugin> |
| <groupId>org.apache.servicemix.tooling</groupId> |
| <artifactId>depends-maven-plugin</artifactId> |
| <version>1.5.0</version> |
| <executions> |
| <execution> |
| <id>generate-depends-file</id> |
| <goals> |
| <goal>generate-depends-file</goal> |
| </goals> |
| </execution> |
| </executions> |
| </plugin> |
| <plugin> |
| <groupId>com.diffplug.spotless</groupId> |
| <artifactId>spotless-maven-plugin</artifactId> |
| <version>2.43.0</version> |
| </plugin> |
| </plugins> |
| </pluginManagement> |
| <plugins> |
| <plugin> |
| <artifactId>maven-enforcer-plugin</artifactId> |
| <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 /> |
| </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-no-fork</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> |
| <configuration> |
| <projectVersionPolicyId>OddEvenVersionPolicy</projectVersionPolicyId> |
| </configuration> |
| <dependencies> |
| <dependency> |
| <groupId>org.apache.maven.release</groupId> |
| <artifactId>maven-release-oddeven-policy</artifactId> |
| <version>${version.maven-release-plugin}</version> |
| </dependency> |
| </dependencies> |
| </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> |
| <goals> |
| <goal>check</goal> |
| </goals> |
| <phase>verify</phase> |
| </execution> |
| </executions> |
| </plugin> |
| <!-- automatically enforce common source formatting --> |
| <plugin> |
| <groupId>com.diffplug.spotless</groupId> |
| <artifactId>spotless-maven-plugin</artifactId> |
| <configuration> |
| <java> |
| <!-- orders of used formatters are important MPOM-376 --> |
| <!-- eg. palantir overrides importOrder, so should be first --> |
| <palantirJavaFormat> |
| <version>2.40.0</version> |
| </palantirJavaFormat> |
| <removeUnusedImports /> |
| <!-- https://github.com/diffplug/spotless/tree/main/plugin-maven#java --> |
| <importOrder> |
| <order>javax,java,,\#</order> |
| <!-- static imports last --> |
| </importOrder> |
| <!-- use common ASF license header from https://github.com/apache/maven-shared-resources/blob/master/src/main/resources/config/maven-header-plain.txt --> |
| <licenseHeader> |
| <file>config/maven-header-plain.txt</file> |
| </licenseHeader> |
| </java> |
| <pom> |
| <sortPom> |
| <expandEmptyElements>false</expandEmptyElements> |
| <!-- https://issues.apache.org/jira/browse/MRELEASE-1111 --> |
| <spaceBeforeCloseEmptyElement>true</spaceBeforeCloseEmptyElement> |
| <!-- Indentation --> |
| <nrOfIndentSpace>4</nrOfIndentSpace> |
| </sortPom> |
| </pom> |
| <upToDateChecking> |
| <enabled>true</enabled> |
| </upToDateChecking> |
| </configuration> |
| <dependencies> |
| <dependency> |
| <groupId>org.apache.maven.shared</groupId> |
| <artifactId>maven-shared-resources</artifactId> |
| <version>5</version> |
| </dependency> |
| </dependencies> |
| <executions> |
| <execution> |
| <goals> |
| <goal>${spotless.action}</goal> |
| </goals> |
| <phase>process-sources</phase> |
| </execution> |
| </executions> |
| </plugin> |
| </plugins> |
| </build> |
| |
| <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> |
| <configuration> |
| <fixVersionIds>${site.jira.version.id}</fixVersionIds> |
| </configuration> |
| <reportSets> |
| <reportSet> |
| <reports> |
| <report>jira-report</report> |
| </reports> |
| </reportSet> |
| </reportSets> |
| </plugin> |
| </plugins> |
| </reporting> |
| |
| <profiles> |
| <profile> |
| <id>jacoco-report</id> |
| <build> |
| <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> |
| <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> |
| <goals> |
| <goal>merge</goal> |
| </goals> |
| <phase>post-integration-test</phase> |
| <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> |
| <goals> |
| <goal>report</goal> |
| </goals> |
| <phase>verify</phase> |
| <configuration> |
| <dataFile>${project.build.directory}/jacoco-merged.exec</dataFile> |
| <outputDirectory>${project.reporting.outputDirectory}/jacoco-merged</outputDirectory> |
| </configuration> |
| </execution> |
| </executions> |
| </plugin> |
| </plugins> |
| </build> |
| </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> |
| <goals> |
| <goal>single</goal> |
| </goals> |
| <phase>package</phase> |
| <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> |
| <goals> |
| <goal>aggregate-features</goal> |
| <goal>attach-features</goal> |
| <goal>analyse-features</goal> |
| </goals> |
| <phase>prepare-package</phase> |
| <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> |
| <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> |
| <!-- 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> |
| </plugin> |
| </plugins> |
| </build> |
| </profile> |
| <profile> |
| <!-- only check formatting with spotless by default --> |
| <id>format-check</id> |
| <activation> |
| <property> |
| <name>!format</name> |
| </property> |
| </activation> |
| <properties> |
| <spotless.action>check</spotless.action> |
| </properties> |
| </profile> |
| <!-- reformat during build with spotless with -Dformat or -Pformat --> |
| <profile> |
| <id>format</id> |
| <activation> |
| <property> |
| <name>format</name> |
| </property> |
| </activation> |
| <properties> |
| <spotless.action>apply</spotless.action> |
| </properties> |
| </profile> |
| </profiles> |
| |
| </project> |