blob: 867a414d25fe7a462445f6a9a0632893a938c6f0 [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.jackrabbit</groupId>
<artifactId>oak-parent</artifactId>
<name>Oak Parent POM</name>
<version>1.58.0</version>
<packaging>pom</packaging>
<properties>
<minimalMavenBuildVersion>3.3.9</minimalMavenBuildVersion><!-- evaluated by ASF parent -->
<test.opts.memory>-Xmx512m</test.opts.memory>
<test.opts>${test.opts.coverage} ${test.opts.memory} -XX:+HeapDumpOnOutOfMemoryError -Dupdate.limit=100 -Djava.awt.headless=true</test.opts>
<skip.deployment>false</skip.deployment>
<skip.coverage>true</skip.coverage>
<minimum.line.coverage>0.0</minimum.line.coverage>
<minimum.branch.coverage>0.0</minimum.branch.coverage>
<known.issues />
<project.reporting.outputEncoding>
${project.build.sourceEncoding}
</project.reporting.outputEncoding>
<jackrabbit.version>2.20.12</jackrabbit.version>
<mongo.host>127.0.0.1</mongo.host>
<mongo.port>27017</mongo.port>
<mongo.db>MongoMKDB</mongo.db>
<mongo.db2>MongoMKDB2</mongo.db2>
<mongo.url />
<mongo.version>3.6</mongo.version>
<segment.db>SegmentMK</segment.db>
<lucene.version>4.7.1</lucene.version>
<solr.version>8.11.1</solr.version>
<mongo.driver.version>3.12.11</mongo.driver.version>
<slf4j.api.version>1.7.36</slf4j.api.version>
<slf4j.version>1.7.36</slf4j.version> <!-- sync with logback version -->
<logback.version>1.2.10</logback.version>
<h2.version>2.1.214</h2.version>
<tika.version>1.28.5</tika.version>
<derby.version>10.15.2.0</derby.version>
<jackson.version>2.15.2</jackson.version>
<testcontainers.version>1.19.0</testcontainers.version>
<pax-exam.version>4.13.1</pax-exam.version>
<groovy.version>2.5.22</groovy.version>
<java.version>11</java.version>
<maven.compiler.release>${java.version}</maven.compiler.release>
<maven.compiler.target>${java.version}</maven.compiler.target>
<minimalJavaBuildVersion>${java.version}</minimalJavaBuildVersion>
<!-- specifies on which fixture to run the integration testing tests.
override in profiles or provide from command line to change behaviour. Provide
more fixtures space separated. See org.apache.jackrabbit.oak.jcr.FixturesHelper#AVAILABLE_FIXTURES
for the possible values: SEGMENT_MK SEGMENT_TAR SEGMENT_AWS SEGMENT_AZURE DOCUMENT_NS DOCUMENT_RDB -->
<fixtures>SEGMENT_TAR</fixtures>
<!-- whether skip the surefire unit testing during the integration testing.
Override with -Dsurefire.skip.ut=true when needed -->
<surefire.skip.ut>false</surefire.skip.ut>
<!-- refresh interval in seconds for elastic stats cache (default is 60 seconds).
Lower interval is needed for tests to execute faster. So setting to 10 seconds using a system property-->
<oak.elastic.statsRefreshSeconds>10</oak.elastic.statsRefreshSeconds>
<sonar.coverage.jacoco.xmlReportPaths>
${project.reporting.outputDirectory}/jacoco-ut/jacoco.xml
</sonar.coverage.jacoco.xmlReportPaths>
<sonar.organization>apache</sonar.organization>
<sonar.host.url>https://sonarcloud.io</sonar.host.url>
</properties>
<issueManagement>
<system>Jira</system>
<url>http://issues.apache.org/jira/browse/OAK</url>
</issueManagement>
<url>http://jackrabbit.apache.org/</url>
<inceptionYear>2012</inceptionYear>
<description>
The goal of the Oak effort within the Apache Jackrabbit project is
to implement a scalable and performant hierarchical content repository
for use as the foundation of modern world-class web sites and other
demanding content applications.
</description>
<build>
<pluginManagement>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<compilerArgs>
<!-- OAK-7310 -->
<arg>-Xpkginfo:always</arg>
</compilerArgs>
</configuration>
</plugin>
<plugin>
<artifactId>maven-javadoc-plugin</artifactId>
<configuration>
<doclint>none</doclint>
<detectJavaApiLink>false</detectJavaApiLink>
<aggregate>true</aggregate>
<links>
<link>https://s.apache.org/jcr-2.0-javadoc/</link>
<link>https://jackrabbit.apache.org/api/2.20/</link>
<link>http://www.slf4j.org/apidocs/</link>
</links>
<!-- workaround for https://issues.apache.org/jira/browse/OAK-8517 -->
<excludePackageNames>org.apache.jackrabbit.oak.plugins.index.*</excludePackageNames>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<version>5.1.8</version>
<extensions>true</extensions>
<inherited>true</inherited>
<dependencies>
<dependency>
<groupId>org.apache.felix</groupId>
<artifactId>org.apache.felix.scr.bnd</artifactId>
<version>1.9.6</version>
<exclusions>
<!--
This SCR plugin pulls in a bnd version with a different artifactId, thus leading
to two bnd artifacts existing at the same time.
-->
<exclusion>
<groupId>biz.aQute.bnd</groupId>
<artifactId>bnd</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
<configuration>
<exportScr>true</exportScr>
<obrRepository>NONE</obrRepository>
<instructions>
<Bundle-Category>oak</Bundle-Category>
<Bundle-DocURL>
http://jackrabbit.apache.org/oak/
</Bundle-DocURL>
<Bundle-Vendor>The Apache Software Foundation</Bundle-Vendor>
<!-- Don't default to bundle version for packages without explicit export version.
See FELIX-5172 -->
<_nodefaultversion>true</_nodefaultversion>
<!-- Support parsing of maven-scr-plugin annotations through the felix.scr.bnd plugin -->
<_plugin>org.apache.felix.scrplugin.bnd.SCRDescriptorBndPlugin;destdir=${project.build.outputDirectory}</_plugin>
</instructions>
</configuration>
<executions>
<execution>
<id>baseline</id>
<goals>
<goal>baseline</goal>
</goals>
<phase>pre-integration-test</phase>
<configuration>
<logResults>false</logResults>
<failOnWarning>false</failOnWarning>
<failOnError>true</failOnError>
<filters>
<!-- Disable baseline for explicitly NOT managed packages. See OAK-3842 -->
<filter>!org.apache.jackrabbit.oak.spi.blob</filter>
<filter>!org.apache.jackrabbit.oak.spi.blob.split</filter>
<filter>!org.apache.jackrabbit.oak.spi.blob.stats</filter>
<filter>!org.apache.jackrabbit.oak.blob.cloud.aws.s3</filter>
<filter>!org.apache.jackrabbit.oak.blob.cloud.azure.blobstorage</filter>
<filter>!org.apache.jackrabbit.oak</filter>
<filter>!org.apache.jackrabbit.oak.json</filter>
<filter>!org.apache.jackrabbit.oak.namepath.impl</filter>
<filter>!org.apache.jackrabbit.oak.plugins.blob</filter>
<filter>!org.apache.jackrabbit.oak.plugins.blob.datastore</filter>
<filter>!org.apache.jackrabbit.oak.plugins.commit</filter>
<filter>!org.apache.jackrabbit.oak.plugins.identifier</filter>
<filter>!org.apache.jackrabbit.oak.plugins.index</filter>
<filter>!org.apache.jackrabbit.oak.plugins.index.aggregate</filter>
<filter>!org.apache.jackrabbit.oak.plugins.index.cursor</filter>
<filter>!org.apache.jackrabbit.oak.plugins.index.fulltext</filter>
<filter>!org.apache.jackrabbit.oak.plugins.index.property</filter>
<filter>!org.apache.jackrabbit.oak.plugins.index.property.strategy</filter>
<filter>!org.apache.jackrabbit.oak.plugins.index.reference</filter>
<filter>!org.apache.jackrabbit.oak.plugins.lock</filter>
<filter>!org.apache.jackrabbit.oak.plugins.memory</filter>
<filter>!org.apache.jackrabbit.oak.plugins.migration</filter>
<filter>!org.apache.jackrabbit.oak.plugins.migration.report</filter>
<filter>!org.apache.jackrabbit.oak.plugins.name</filter>
<filter>!org.apache.jackrabbit.oak.plugins.nodetype</filter>
<filter>!org.apache.jackrabbit.oak.plugins.nodetype.write</filter>
<filter>!org.apache.jackrabbit.oak.plugins.observation</filter>
<filter>!org.apache.jackrabbit.oak.plugins.observation.filter</filter>
<filter>!org.apache.jackrabbit.oak.plugins.tree.factories</filter>
<filter>!org.apache.jackrabbit.oak.plugins.value</filter>
<filter>!org.apache.jackrabbit.oak.plugins.value.jcr</filter>
<filter>!org.apache.jackrabbit.oak.plugins.version</filter>
<filter>!org.apache.jackrabbit.oak.query</filter>
<filter>!org.apache.jackrabbit.oak.query.fulltext</filter>
<filter>!org.apache.jackrabbit.oak.spi.cluster</filter>
<filter>!org.apache.jackrabbit.oak.spi.commit</filter>
<filter>!org.apache.jackrabbit.oak.spi.filter</filter>
<filter>!org.apache.jackrabbit.oak.spi.lifecycle</filter>
<filter>!org.apache.jackrabbit.oak.spi.state</filter>
<filter>!org.apache.jackrabbit.oak.jcr</filter>
<filter>!org.apache.jackrabbit.oak.plugins.document.spi</filter>
<filter>!org.apache.jackrabbit.oak.plugins.index.lucene</filter>
<filter>!org.apache.jackrabbit.oak.plugins.index.lucene.util</filter>
<filter>!org.apache.jackrabbit.oak.plugins.index.solr</filter>
<filter>!org.apache.jackrabbit.oak.plugins.index.solr.configuration</filter>
<filter>!org.apache.jackrabbit.oak.plugins.index.solr.index</filter>
<filter>!org.apache.jackrabbit.oak.plugins.index.solr.query</filter>
<filter>!org.apache.jackrabbit.oak.plugins.index.solr.server</filter>
<filter>!org.apache.jackrabbit.oak.plugins.index.solr.util</filter>
<filter>!org.apache.jackrabbit.oak.segment.spi.monitor</filter>
<filter>!org.apache.jackrabbit.oak.segment.spi.persistence</filter>
<filter>*</filter>
</filters>
</configuration>
</execution>
<!-- Configure extra execution of 'manifest' in process-classes phase to make sure SCR metadata is generated before unit test runs -->
<execution>
<id>scr-metadata</id>
<goals>
<goal>manifest</goal>
</goals>
<configuration>
<supportIncrementalBuild>true</supportIncrementalBuild>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.gmavenplus</groupId>
<artifactId>gmavenplus-plugin</artifactId>
<version>1.13.1</version>
</plugin>
<plugin>
<artifactId>maven-deploy-plugin</artifactId>
<configuration>
<skip>${skip.deployment}</skip>
</configuration>
</plugin>
<plugin>
<artifactId>maven-release-plugin</artifactId>
<configuration>
<autoVersionSubmodules>true</autoVersionSubmodules>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.rat</groupId>
<artifactId>apache-rat-plugin</artifactId>
<configuration>
<consoleOutput>true</consoleOutput>
</configuration>
</plugin>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<argLine>${test.opts}</argLine>
<trimStackTrace>false</trimStackTrace>
<systemPropertyVariables>
<!-- evaluated in oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/util/KnownIssuesIgnoreRule.java (JUnit4) and
https://github.com/apache/jackrabbit/blob/ed3124e5fe223dada33ce6ddf53bc666063c3f2f/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/AbstractJCRTest.java#L476 (JUnit3)
-->
<known.issues>${known.issues}</known.issues>
<mongo.host>${mongo.host}</mongo.host>
<mongo.port>${mongo.port}</mongo.port>
<mongo.db>${mongo.db}</mongo.db>
<mongo.db2>${mongo.db2}</mongo.db2>
<mongo.url>${mongo.url}</mongo.url>
<segment.db>${segment.db}</segment.db>
<nsfixtures>${fixtures}</nsfixtures>
<oak.elastic.statsRefreshSeconds>${oak.elastic.statsRefreshSeconds}</oak.elastic.statsRefreshSeconds>
<derby.stream.error.file>${project.build.directory}/derby.log</derby.stream.error.file>
</systemPropertyVariables>
<redirectTestOutputToFile>true</redirectTestOutputToFile>
</configuration>
</plugin>
<plugin>
<artifactId>maven-failsafe-plugin</artifactId>
<configuration>
<argLine>${test.opts}</argLine>
<trimStackTrace>false</trimStackTrace>
<systemPropertyVariables>
<!-- evaluated in oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/util/KnownIssuesIgnoreRule.java (JUnit4) and
https://github.com/apache/jackrabbit/blob/ed3124e5fe223dada33ce6ddf53bc666063c3f2f/jackrabbit-jcr-tests/src/main/java/org/apache/jackrabbit/test/AbstractJCRTest.java#L476 (JUnit3)
-->
<known.issues>${known.issues}</known.issues>
<mongo.host>${mongo.host}</mongo.host>
<mongo.port>${mongo.port}</mongo.port>
<mongo.db>${mongo.db}</mongo.db>
<mongo.db2>${mongo.db2}</mongo.db2>
<mongo.url>${mongo.url}</mongo.url>
<nsfixtures>${fixtures}</nsfixtures>
<derby.stream.error.file>${project.build.directory}/derby.log</derby.stream.error.file>
</systemPropertyVariables>
</configuration>
</plugin>
<plugin>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>3.1.2</version>
</plugin>
<plugin>
<groupId>com.github.spotbugs</groupId>
<artifactId>spotbugs-maven-plugin</artifactId>
<version>4.7.1.0</version>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>versions-maven-plugin</artifactId>
<version>2.14.1</version>
</plugin>
<!-- This plugin's configuration is used to store Eclipse m2e -->
<!-- settings only. It has no influence on the Maven build itself. -->
<plugin>
<groupId>org.eclipse.m2e</groupId>
<artifactId>lifecycle-mapping</artifactId>
<version>1.0.0</version>
<configuration>
<lifecycleMappingMetadata>
<pluginExecutions>
<pluginExecution>
<pluginExecutionFilter>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<versionRange>[1.7,)</versionRange>
<goals>
<goal>reserve-network-port</goal>
</goals>
</pluginExecutionFilter>
<action>
<execute />
</action>
</pluginExecution>
<pluginExecution>
<pluginExecutionFilter>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<versionRange>[0.7.1.201405082137,)</versionRange>
<goals>
<goal>prepare-agent</goal>
</goals>
</pluginExecutionFilter>
<action>
<ignore />
</action>
</pluginExecution>
</pluginExecutions>
</lifecycleMappingMetadata>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-site-plugin</artifactId>
<configuration>
<generateReports>false</generateReports>
<skip>true</skip>
<skipDeploy>true</skipDeploy>
<relativizeDecorationLinks>false</relativizeDecorationLinks><!-- leave absolute URLs untouched: https://maven.apache.org/plugins/maven-site-plugin/site-mojo.html#relativizeDecorationLinks -->
</configuration>
</plugin>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.8.8</version>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<executions>
<execution>
<id>pre-unit-test</id>
<goals>
<goal>prepare-agent</goal>
</goals>
<configuration>
<skip>${skip.coverage}</skip>
<destFile>${project.build.directory}/coverage-reports/jacoco-ut.exec</destFile>
<propertyName>test.opts.coverage</propertyName>
</configuration>
</execution>
<execution>
<id>post-unit-test</id>
<phase>test</phase>
<goals>
<goal>report</goal>
</goals>
<configuration>
<skip>${skip.coverage}</skip>
<dataFile>${project.build.directory}/coverage-reports/jacoco-ut.exec</dataFile>
<outputDirectory>${project.reporting.outputDirectory}/jacoco-ut</outputDirectory>
</configuration>
</execution>
<execution>
<id>default-check</id>
<goals>
<goal>check</goal>
</goals>
<configuration>
<dataFile>${project.build.directory}/coverage-reports/jacoco-ut.exec</dataFile>
<rules>
<rule>
<element>BUNDLE</element>
<limits>
<limit>
<counter>LINE</counter>
<value>COVEREDRATIO</value>
<minimum>${minimum.line.coverage}</minimum>
</limit>
<limit>
<counter>BRANCH</counter>
<value>COVEREDRATIO</value>
<minimum>${minimum.branch.coverage}</minimum>
</limit>
</limits>
</rule>
</rules>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>test-jar</goal>
</goals>
<configuration>
<excludes>
<exclude>logback-test.xml</exclude>
</excludes>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
<reporting>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-project-info-reports-plugin</artifactId>
<!--avoid child modules from inheriting anything from the apache parent pom -->
<inherited>false</inherited>
</plugin>
</plugins>
</reporting>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.osgi</groupId>
<artifactId>osgi.core</artifactId>
<version>7.0.0</version>
</dependency>
<!-- OSGi R7 Compendium Specs -->
<dependency>
<groupId>org.osgi</groupId>
<artifactId>org.osgi.service.component</artifactId>
<version>1.4.0</version>
</dependency>
<dependency>
<groupId>org.osgi</groupId>
<artifactId>org.osgi.service.metatype</artifactId>
<version>1.4.1</version>
</dependency>
<dependency>
<groupId>org.osgi</groupId>
<artifactId>org.osgi.service.cm</artifactId>
<version>1.6.1</version>
</dependency>
<dependency>
<groupId>org.osgi</groupId>
<artifactId>org.osgi.service.log</artifactId>
<version>1.4.0</version>
</dependency>
<dependency>
<groupId>org.osgi</groupId>
<artifactId>org.osgi.service.event</artifactId>
<version>1.4.1</version>
</dependency>
<!-- OSGi R7 annotations -->
<dependency>
<groupId>org.osgi</groupId>
<artifactId>org.osgi.service.component.annotations</artifactId>
<version>1.4.0</version>
</dependency>
<dependency>
<groupId>org.osgi</groupId>
<artifactId>org.osgi.service.metatype.annotations</artifactId>
<version>1.4.0</version>
</dependency>
<dependency>
<groupId>org.osgi</groupId>
<artifactId>org.osgi.annotation.bundle</artifactId>
<version>1.0.0</version><!-- R7 version, https://docs.osgi.org/javadoc/osgi.annotation/7.0.0/org/osgi/annotation/bundle/package-summary.html -->
</dependency>
<dependency>
<groupId>org.osgi</groupId>
<artifactId>org.osgi.annotation.versioning</artifactId>
<version>1.1.2</version><!-- R7 version, https://docs.osgi.org/javadoc/osgi.annotation/7.0.0/org/osgi/annotation/versioning/package-summary.html -->
</dependency>
<dependency>
<groupId>org.apache.felix</groupId>
<artifactId>org.apache.felix.scr.annotations</artifactId>
<version>1.9.6</version>
</dependency>
<dependency>
<groupId>org.jetbrains</groupId>
<artifactId>annotations</artifactId>
<version>18.0.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13.1</version>
</dependency>
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongo-java-driver</artifactId>
<version>${mongo.driver.version}</version>
</dependency>
<dependency>
<groupId>org.easymock</groupId>
<artifactId>easymock</artifactId>
<version>3.6</version>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<version>4.11.0</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>${slf4j.api.version}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version>${slf4j.version}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>log4j-over-slf4j</artifactId>
<version>${slf4j.version}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jcl-over-slf4j</artifactId>
<version>${slf4j.version}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jul-to-slf4j</artifactId>
<version>${slf4j.version}</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>${logback.version}</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-core</artifactId>
<version>${logback.version}</version>
</dependency>
<dependency>
<groupId>org.apache.jclouds.provider</groupId>
<artifactId>aws-s3</artifactId>
<version>2.0.3</version>
</dependency>
<dependency>
<groupId>org.apache.sling</groupId>
<artifactId>org.apache.sling.testing.osgi-mock.junit4</artifactId>
<version>2.4.18</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.sling</groupId>
<artifactId>org.apache.sling.testing.osgi-mock.core</artifactId>
<version>2.4.18</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.13.0</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.13.0</version>
</dependency>
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>1.16.0</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-math3</artifactId>
<version>3.6.1</version>
</dependency>
<dependency>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-jdbc</artifactId>
<version>9.0.80</version>
</dependency>
<dependency>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-juli</artifactId>
<version>9.0.80</version>
</dependency>
<dependency>
<groupId>org.apache.felix</groupId>
<artifactId>org.apache.felix.jaas</artifactId>
<version>1.0.2</version>
</dependency>
<dependency>
<groupId>net.sf.jopt-simple</groupId>
<artifactId>jopt-simple</artifactId>
<version>5.0.3</version>
</dependency>
<dependency>
<groupId>io.dropwizard.metrics</groupId>
<artifactId>metrics-core</artifactId>
<version>3.2.3</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>${jackson.version}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>${jackson.version}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>${jackson.version}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.dataformat</groupId>
<artifactId>jackson-dataformat-smile</artifactId>
<version>${jackson.version}</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.14</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient-osgi</artifactId>
<version>4.5.14</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpcore</artifactId>
<version>4.4.16</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpcore-osgi</artifactId>
<version>4.4.16</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpmime</artifactId>
<version>4.5.14</version>
</dependency>
<dependency>
<groupId>com.arakelian</groupId>
<artifactId>docker-junit-rule</artifactId>
<version>2.3.0</version>
</dependency>
<dependency>
<groupId>com.microsoft.azure</groupId>
<artifactId>azure-storage</artifactId>
<version>8.6.6</version>
</dependency>
<dependency>
<groupId>com.microsoft.azure</groupId>
<artifactId>azure-keyvault-core</artifactId>
<version>1.2.6</version>
</dependency>
<!-- Pax Exam Integration Test Dependencies -->
<dependency>
<groupId>org.apache.sling</groupId>
<artifactId>org.apache.sling.testing.paxexam</artifactId>
<version>3.1.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.ops4j.pax.exam</groupId>
<artifactId>pax-exam-junit4</artifactId>
<version>${pax-exam.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.ops4j.pax.exam</groupId>
<artifactId>pax-exam-link-mvn</artifactId>
<version>${pax-exam.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.ops4j.pax.exam</groupId>
<artifactId>pax-exam-cm</artifactId>
<version>${pax-exam.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.ops4j.pax.exam</groupId>
<artifactId>pax-exam</artifactId>
<version>${pax-exam.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.ops4j.pax.exam</groupId>
<artifactId>pax-exam-container-forked</artifactId>
<version>${pax-exam.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.ops4j.pax.url</groupId>
<artifactId>pax-url-aether</artifactId>
<version>2.6.9</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.ops4j.pax.url</groupId>
<artifactId>pax-url-wrap</artifactId>
<version>2.6.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.felix</groupId>
<artifactId>org.apache.felix.framework</artifactId>
<version>7.0.3</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>javax.inject</groupId>
<artifactId>javax.inject</artifactId>
<version>1</version>
<scope>test</scope>
</dependency>
</dependencies>
</dependencyManagement>
<profiles>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Unit testing profiles -->
<profile>
<id>unittesting</id>
<properties>
<!-- emptying $fixtures means run on all -->
<fixtures />
</properties>
<build>
<plugins>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
</plugin>
</plugins>
</build>
</profile>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Integration testing profiles -->
<profile>
<!-- runs all the IT agains the default fixture. See <properties> section -->
<id>integrationTesting</id>
<activation>
<property>
<name>env.OAK_INTEGRATION_TESTING</name>
</property>
</activation>
<build>
<plugins>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<skipTests>${surefire.skip.ut}</skipTests>
</configuration>
</plugin>
<plugin>
<artifactId>maven-failsafe-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>integration-test</goal>
<goal>verify</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<!-- - - - - - - - - - - - - - - - - - - - will run all the required tests before a release -->
<profile>
<id>release</id> <!-- needs to be activated manually, not used automatically with m-release-p goals -->
<properties>
<nsfixtures />
<rdb.jdbc-url>jdbc:derby:./target/derby-release-test;create=true</rdb.jdbc-url>
<derby.stream.error.file>${project.build.directory}/derby.log</derby.stream.error.file>
</properties>
<build>
<plugins>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<systemProperties>
<derby.stream.error.file>${project.build.directory}/derby.log</derby.stream.error.file>
</systemProperties>
</configuration>
</plugin>
<plugin>
<artifactId>maven-failsafe-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>integration-test</goal>
<goal>verify</goal>
</goals>
<configuration>
<systemProperties>
<derby.stream.error.file>${project.build.directory}/derby.log</derby.stream.error.file>
</systemProperties>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.rat</groupId>
<artifactId>apache-rat-plugin</artifactId>
<executions>
<execution>
<phase>verify</phase>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-checkstyle-plugin</artifactId>
<configuration>
<failOnViolation>false</failOnViolation>
</configuration>
<executions>
<execution>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>com.github.spotbugs</groupId>
<artifactId>spotbugs-maven-plugin</artifactId>
<configuration>
<failOnError>false</failOnError>
</configuration>
<executions>
<execution>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>org.apache.derby</groupId>
<artifactId>derby</artifactId>
<version>${derby.version}</version>
</dependency>
</dependencies>
</profile>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - other profiles -->
<profile>
<id>longevity</id>
<build>
<plugins>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<skipTests>true</skipTests>
</configuration>
</plugin>
<plugin>
<artifactId>maven-failsafe-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>integration-test</goal>
<goal>verify</goal>
</goals>
</execution>
</executions>
<configuration>
<includes>
<include>**/*LT.java</include>
</includes>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>rat</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.rat</groupId>
<artifactId>apache-rat-plugin</artifactId>
<executions>
<execution>
<phase>verify</phase>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<!-- run a test to prevent Jenkins from failing because no test ran -->
<test>PathUtilsTest</test>
<failIfNoSpecifiedTests>false</failIfNoSpecifiedTests>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>javadoc</id>
<build>
<plugins>
<plugin>
<artifactId>maven-javadoc-plugin</artifactId>
<executions>
<execution>
<phase>verify</phase>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<!-- run a test to prevent Jenkins from failing because no test ran -->
<test>PathUtilsTest</test>
<failIfNoSpecifiedTests>false</failIfNoSpecifiedTests>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>pedantic</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.rat</groupId>
<artifactId>apache-rat-plugin</artifactId>
<executions>
<execution>
<phase>verify</phase>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-checkstyle-plugin</artifactId>
<configuration>
<failOnViolation>false</failOnViolation>
</configuration>
<executions>
<execution>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>com.github.spotbugs</groupId>
<artifactId>spotbugs-maven-plugin</artifactId>
<configuration>
<failOnError>false</failOnError>
</configuration>
<executions>
<execution>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<skipTests>${surefire.skip.ut}</skipTests>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>rdb-derby</id>
<dependencies>
<dependency>
<groupId>org.apache.derby</groupId>
<artifactId>derby</artifactId>
<version>${derby.version}</version>
</dependency>
</dependencies>
</profile>
<profile>
<id>rdb-mysql</id>
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.19</version>
</dependency>
</dependencies>
</profile>
<profile>
<id>rdb-postgres</id>
<dependencies>
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>42.2.18</version>
</dependency>
</dependencies>
</profile>
<profile>
<id>rdb-h2</id>
<dependencies>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<version>${h2.version}</version>
</dependency>
</dependencies>
</profile>
<profile>
<id>rdb-mssql</id>
<dependencies>
<dependency>
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>mssql-jdbc</artifactId>
<version>8.2.2.jre8</version>
</dependency>
</dependencies>
</profile>
<profile>
<!-- requires local copy of Oracle JDBC driver deployed to Maven repo -->
<!-- for instance:
mvn install:install-file -Dfile=ojdbc8.jar -Dpackaging=jar\
-DgroupId=com.oracle.jdbc -DartifactId=ojdbc8 -Dversion=12.2.0.1
-->
<!-- or see https://blogs.oracle.com/dev2dev/get-oracle-jdbc-drivers-and-ucp-from-oracle-maven-repository-without-ides -->
<id>rdb-oracle</id>
<dependencies>
<dependency>
<groupId>com.oracle.jdbc</groupId>
<artifactId>ojdbc8</artifactId>
<version>12.2.0.1</version>
</dependency>
</dependencies>
</profile>
<profile>
<!-- requires local copy of IBM DB2 JDBC drivers deployed to Maven repo-->
<!-- for instance:
mvn install:install-file -Dfile=db2jcc4.jar -Dpackaging=jar\
-DgroupId=com.ibm.db2 -DartifactId=db2 -Dversion=4.19.77
-->
<id>rdb-db2</id>
<dependencies>
<dependency>
<groupId>com.ibm.db2</groupId>
<artifactId>db2</artifactId>
<version>4.19.77</version>
</dependency>
</dependencies>
</profile>
<profile>
<!-- requires local copy of IBM DB2 JDBC drivers deployed to Maven repo-->
<!-- for instance:
mvn install:install-file -Dfile=db2jcc4.jar -Dpackaging=jar\
-DgroupId=com.ibm.db2 -DartifactId=db2 -Dversion=4.25.13
-->
<id>rdb-db2-11</id>
<dependencies>
<dependency>
<groupId>com.ibm.db2</groupId>
<artifactId>db2</artifactId>
<version>4.25.13</version>
</dependency>
</dependencies>
</profile>
<profile>
<id>coverage</id>
<properties>
<skip.coverage>false</skip.coverage>
</properties>
</profile>
<profile>
<id>fast</id>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<executions>
<execution>
<id>default</id>
<goals>
<goal>testCompile</goal>
</goals>
<configuration>
<skip>true</skip>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<executions>
<execution>
<id>default</id>
<goals>
<goal>testResources</goal>
</goals>
<configuration>
<skip>true</skip>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<executions>
<execution>
<id>default</id>
<goals>
<goal>test-jar</goal>
</goals>
<configuration>
<skip>true</skip>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<executions>
<execution>
<id>baseline</id>
<goals>
<goal>baseline</goal>
</goals>
<configuration>
<skip>true</skip>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<executions>
<execution>
<id>pre-unit-test</id>
<goals>
<goal>prepare-agent</goal>
</goals>
<configuration>
<skip>true</skip>
</configuration>
</execution>
<execution>
<id>post-unit-test</id>
<goals>
<goal>report</goal>
</goals>
<configuration>
<skip>true</skip>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>animal-sniffer-maven-plugin</artifactId>
<executions>
<execution>
<id>animal-sniffer</id>
<phase />
</execution>
</executions>
</plugin>
</plugins>
</pluginManagement>
</build>
</profile>
<profile>
<id>intellij-build-workaround</id>
<!-- workaround for IntelliJ issue https://youtrack.jetbrains.com/issue/IDEA-141732/OSMORC-unable-to-load-bnd-plugin -->
<!-- IntelliJ does not add the plugin's extra dependency to the plugin's class-path, which causes the build to fail. -->
<!-- This means unit-tests cannot be run from within the IDE. Removing the _plugin instruction from the config if -->
<!-- the IntelliJ specific property "idea.maven.embedder.version" is present resolves the issue. In order for all -->
<!-- tests to work properly, a maven build may need to be run first, in order to generate SCR configuration files -->
<!-- from the "old" Felix OSGi annotations. The newer annotations from the OSGi DS specification are supported ootb -->
<!-- by bnd and thus by the maven-bundle-plugin. -->
<activation>
<property>
<name>idea.maven.embedder.version</name>
</property>
</activation>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<configuration>
<instructions>
<_plugin combine.self="override">
<!-- remove the _plugin instruction that causes Intellij IDEA to fail when running unit-tests -->
</_plugin>
</instructions>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
</profile>
</profiles>
<scm>
<tag>jackrabbit-oak-1.58.0</tag>
</scm>
</project>