<?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.22.22</version>
  <packaging>pom</packaging>

  <properties>
    <!-- build time stamp: should be updated prior to a release -->
    <!-- see https://maven.apache.org/guides/mini/guide-reproducible-builds.html -->
    <project.build.outputTimestamp>1742591357</project.build.outputTimestamp>
    <minimalMavenBuildVersion>3.6.1</minimalMavenBuildVersion><!-- due to https://issues.apache.org/jira/browse/MNG-6059 -->
    <maven.compiler.target>${java.version}</maven.compiler.target><!-- evaluated by m-compiler-p and m-javadoc-p -->
    <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.16</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.2</lucene.version>
    <solr.version>8.11.3</solr.version>
    <mongo.driver.version>3.12.14</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.13</logback.version>
    <h2.version>2.1.214</h2.version>
    <tika.version>1.28.5</tika.version>
    <guava.version>15.0</guava.version>
    <guava.osgi.import>com.google.common.*;version="[15.0,20)"</guava.osgi.import>
    <derby.version>10.14.2.0</derby.version>
    <jackson.version>2.16.2</jackson.version>
    <testcontainers.version>1.19.7</testcontainers.version>
    <groovy.version>2.5.23</groovy.version>
    <netty.version>4.1.119.Final</netty.version>
    <!-- determines the bytecode version (i.e. the minimum JRE required to run the build artifact) -->
    <javaTargetVersion>8</javaTargetVersion>
    <maven.compiler.release>${javaTargetVersion}</maven.compiler.release>
    <maven.compiler.target>${javaTargetVersion}</maven.compiler.target>
    <minimalJavaBuildVersion>11</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_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>
  </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>https://google.github.io/guava/releases/${guava.version}/api/docs/</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.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>
                  <!-- OAK-10838: we can't control the package version for the EOLd copy of lucene-core -->
                  <filter>!org.apache.lucene.*</filter>
                  <!-- OAK-11286: blob-cloud, segment: update netty version to 4.1.115 -->
                  <filter>!io.netty.*</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>3.0.2</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>
            <systemPropertyVariables>
              <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>
              <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>
            <systemPropertyVariables>
              <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.3.1</version>
          </plugin>
        <plugin>
          <groupId>com.github.spotbugs</groupId>
          <artifactId>spotbugs-maven-plugin</artifactId>
          <version>4.8.5.0</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-shade-plugin</artifactId>
          <version>3.5.3</version>
        </plugin>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>versions-maven-plugin</artifactId>
          <version>2.17.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.12</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>org.osgi.core</artifactId>
        <version>4.2.0</version>
      </dependency>
      <dependency>
        <groupId>org.osgi</groupId>
        <artifactId>org.osgi.compendium</artifactId>
        <version>4.2.0</version>
      </dependency>
      <dependency>
        <groupId>org.osgi</groupId>
        <artifactId>org.osgi.service.component.annotations</artifactId>
        <version>1.3.0</version>
      </dependency>
      <dependency>
        <groupId>org.osgi</groupId>
        <artifactId>org.osgi.service.metatype.annotations</artifactId>
        <version>1.3.0</version>
      </dependency>

      <dependency>
        <groupId>org.apache.felix</groupId>
        <artifactId>org.apache.felix.scr.annotations</artifactId>
        <version>1.12.0</version>
      </dependency>
      <dependency>
        <groupId>org.osgi</groupId>
        <artifactId>org.osgi.annotation</artifactId>
        <version>6.0.0</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.12</version>
      </dependency>
      <dependency>
        <groupId>org.mongodb</groupId>
        <artifactId>mongo-java-driver</artifactId>
        <version>${mongo.driver.version}</version>
      </dependency>
      <dependency>
        <groupId>com.google.guava</groupId>
        <artifactId>guava</artifactId>
        <version>${guava.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.9.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</artifactId>
        <version>2.3.10</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-lang3</artifactId>
        <version>3.14.0</version>
      </dependency>
      <dependency>
        <groupId>commons-io</groupId>
        <artifactId>commons-io</artifactId>
        <version>2.15.1</version>
      </dependency>
      <dependency>
        <groupId>commons-codec</groupId>
        <artifactId>commons-codec</artifactId>
        <version>1.17.1</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>8.5.92</version>
      </dependency>
      <dependency>
        <groupId>org.apache.tomcat</groupId>
        <artifactId>tomcat-juli</artifactId>
        <version>8.5.92</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>
      <!-- Testcontainers dependency -->
      <dependency>
        <groupId>org.testcontainers</groupId>
        <artifactId>testcontainers</artifactId>
        <version>${testcontainers.version}</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>com.microsoft.azure</groupId>
        <artifactId>azure-storage</artifactId>
        <version>8.6.0</version>
      </dependency>
      <dependency>
        <groupId>com.microsoft.azure</groupId>
        <artifactId>azure-keyvault-core</artifactId>
        <version>1.2.2</version>
      </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>guavabetachecks</id>
      <build>
         <plugins>
            <plugin>
              <artifactId>maven-compiler-plugin</artifactId>
              <configuration>
                <compilerId>javac-with-errorprone</compilerId>
                <forceJavacCompilerUse>true</forceJavacCompilerUse>
                <target>${java.version}</target>
                <source>${java.version}</source>
                <annotationProcessorPaths>
                  <path>
                    <groupId>com.google.guava</groupId>
                    <artifactId>guava-beta-checker</artifactId>
                    <version>1.0</version>
                  </path>
                </annotationProcessorPaths>
                <compilerArgs>
                  <!-- OAK-7310 -->
                  <arg>-Xpkginfo:always</arg>
                  <arg>-XepDisableAllChecks</arg>
                  <arg>-Xep:BetaApi:ERROR</arg>
                </compilerArgs>
              </configuration>
              <dependencies>
                <dependency>
                  <groupId>org.codehaus.plexus</groupId>
                  <artifactId>plexus-compiler-javac-errorprone</artifactId>
                  <version>2.5</version>
                </dependency>
                <dependency>
                  <groupId>com.google.errorprone</groupId>
                  <artifactId>error_prone_core</artifactId>
                  <version>2.3.1</version>
                </dependency>
              </dependencies>
            </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>guava-latest</id>
      <properties>
        <guava.version>19.0</guava.version>
      </properties>
    </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.1.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>
  </profiles>

  <!-- using adjusted inheritance rules: https://issues.apache.org/jira/browse/MNG-6059 -->
  <scm child.scm.connection.inherit.append.path="false" child.scm.developerConnection.inherit.append.path="false">
    <connection>scm:git:https://gitbox.apache.org/repos/asf/jackrabbit-oak.git</connection>
    <developerConnection>scm:git:https://gitbox.apache.org/repos/asf/jackrabbit-oak.git</developerConnection>
    <url>https://github.com/apache/jackrabbit/tree/${project.scm.tag}</url>
    <tag>jackrabbit-oak-1.22.22</tag>
  </scm>
</project>
