<?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.65-SNAPSHOT</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>1716393921</project.build.outputTimestamp>
    <minimalMavenBuildVersion>3.6.1</minimalMavenBuildVersion><!-- due to https://issues.apache.org/jira/browse/MNG-6059 -->
    <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.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.13</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.17.1</jackson.version>
    <testcontainers.version>1.19.7</testcontainers.version>
    <pax-exam.version>4.13.1</pax-exam.version>
    <groovy.version>3.0.21</groovy.version>
    <!-- determines the bytecode version (i.e. the minimum JRE required to run the build artifact) -->
    <javaTargetVersion>11</javaTargetVersion>
    <maven.compiler.release>${javaTargetVersion}</maven.compiler.release>
    <maven.compiler.target>${javaTargetVersion}</maven.compiler.target>
    <minimalJavaBuildVersion>${javaTargetVersion}</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.9</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>
                  <!-- OAK-10838: we can't control the package version for the EOLd copy of lucene-core -->
                  <filter>!org.apache.lucene.*</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>
            <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.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.16.2</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>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.12.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.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>5.2.0</version>
      </dependency>
      <dependency>
        <groupId>org.mockito</groupId>
        <artifactId>mockito-core</artifactId>
        <version>5.6.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.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.16.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>9.0.87</version>
      </dependency>
      <dependency>
        <groupId>org.apache.tomcat</groupId>
        <artifactId>tomcat-juli</artifactId>
        <version>9.0.87</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.6</version>
      </dependency>
      <dependency>
        <groupId>com.microsoft.azure</groupId>
        <artifactId>azure-keyvault-core</artifactId>
        <version>1.2.6</version>
      </dependency>
      <dependency>
        <groupId>com.azure</groupId>
        <artifactId>azure-identity</artifactId>
        <version>1.11.3</version>
      </dependency>

      <!-- Azure identity transitive dependencies  -->
      <dependency>
        <groupId>com.azure</groupId>
        <artifactId>azure-core</artifactId>
        <version>1.47.0</version>
      </dependency>
      <dependency>
        <groupId>com.azure</groupId>
        <artifactId>azure-json</artifactId>
        <version>1.1.0</version>
      </dependency>
      <dependency>
        <groupId>org.reactivestreams</groupId>
        <artifactId>reactive-streams</artifactId>
        <version>1.0.4</version>
      </dependency>
      <dependency>
        <groupId>com.microsoft.azure</groupId>
        <artifactId>msal4j</artifactId>
        <version>1.14.0</version>
      </dependency>
      <dependency>
        <groupId>io.projectreactor</groupId>
        <artifactId>reactor-core</artifactId>
        <version>3.4.34</version>
      </dependency>
      <dependency>
        <groupId>com.nimbusds</groupId>
        <artifactId>oauth2-oidc-sdk</artifactId>
        <version>10.7.1</version>
      </dependency>
      <dependency>
        <groupId>com.nimbusds</groupId>
        <artifactId>nimbus-jose-jwt</artifactId>
        <version>9.30.2</version>
      </dependency>
      <dependency>
        <groupId>com.azure</groupId>
        <artifactId>azure-core-http-netty</artifactId>
        <version>1.14.1</version>
      </dependency>
      <dependency>
        <groupId>io.projectreactor.netty</groupId>
        <artifactId>reactor-netty-http</artifactId>
        <version>1.0.40</version>
      </dependency>
      <dependency>
        <groupId>io.projectreactor.netty</groupId>
        <artifactId>reactor-netty-core</artifactId>
        <version>1.0.40</version>
      </dependency>
      <dependency>
        <groupId>net.minidev</groupId>
        <artifactId>json-smart</artifactId>
        <version>2.4.10</version>
      </dependency>
      <dependency>
        <groupId>com.nimbusds</groupId>
        <artifactId>content-type</artifactId>
        <version>2.2</version>
      </dependency>
      <dependency>
        <groupId>net.minidev</groupId>
        <artifactId>accessors-smart</artifactId>
        <version>2.4.9</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>
      <dependency>
        <groupId>com.github.stefanbirkner</groupId>
        <artifactId>system-rules</artifactId>
        <version>1.19.0</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>

  <!-- 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>trunk</tag>
  </scm>
</project>
