<?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>
