<?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 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <groupId>org.apache</groupId>
    <artifactId>apache</artifactId>
    <version>33</version>
    <relativePath></relativePath>
  </parent>
  <groupId>org.apache.jackrabbit.vault</groupId>
  <artifactId>parent</artifactId>
  <version>3.8.2</version>
  <packaging>pom</packaging>
  <name>Apache Jackrabbit FileVault (Parent Project)</name>
  <description>The FileVault introduces a JCR repository to filesystem mapping. The mapping
is exposed by an API and used by the "FileVault Content Packages" which allow to
create portable packages of repository content.

The Vault Command Line Interface aka "vlt" provides a subversion like
utility to work and develop with repository content.

Apache Jackrabbit FileVault is a project of the Apache Software Foundation.</description>
  <url>https://jackrabbit.apache.org/filevault/</url>
  <licenses>
    <license>
      <name>Apache-2.0</name>
      <url>https://www.apache.org/licenses/LICENSE-2.0.txt</url>
      <distribution>repo</distribution>
    </license>
  </licenses>
  <mailingLists>
    <mailingList>
      <name>Jackrabbit Developer List</name>
      <subscribe>dev-subscribe@jackrabbit.apache.org</subscribe>
      <unsubscribe>dev-unsubscribe@jackrabbit.apache.org</unsubscribe>
      <post>mailto:dev@jackrabbit.apache.org</post>
      <archive>https://lists.apache.org/list.html?dev@jackrabbit.apache.org</archive>
    </mailingList>
    <mailingList>
      <name>Jackrabbit User List</name>
      <subscribe>users-subscribe@jackrabbit.apache.org</subscribe>
      <unsubscribe>users-unsubscribe@jackrabbit.apache.org</unsubscribe>
      <post>mailto:users@jackrabbit.apache.org</post>
      <archive>https://lists.apache.org/list.html?users@jackrabbit.apache.org</archive>
    </mailingList>
  </mailingLists>
  <scm child.scm.connection.inherit.append.path="false" child.scm.developerConnection.inherit.append.path="false" child.scm.url.inherit.append.path="false">
    <connection>scm:git:https://gitbox.apache.org/repos/asf/jackrabbit-filevault.git</connection>
    <developerConnection>scm:git:https://gitbox.apache.org/repos/asf/jackrabbit-filevault.git</developerConnection>
    <tag>jackrabbit-filevault-3.8.2</tag>
    <url>https://github.com/apache/jackrabbit-filevault/tree/${project.scm.tag}</url>
  </scm>
  <issueManagement>
    <system>JIRA</system>
    <url>https://issues.apache.org/jira/browse/JCRVLT</url>
  </issueManagement>
  <ciManagement>
    <system>Jenkins</system>
    <url>https://ci-builds.apache.org/blue/organizations/jenkins/Jackrabbit%2Ffilevault/activity</url>
  </ciManagement>
  <properties>
    <maven.compiler.release>8</maven.compiler.release>
    <minimalJavaBuildVersion>11</minimalJavaBuildVersion>
    <bnd.version>6.4.0</bnd.version>
    <sling.url>http://localhost:4502</sling.url>
    <oak.min.version>1.22.4</oak.min.version>
    <test.oak>true</test.oak>
    <jacoco.command></jacoco.command>
    <minimalMavenBuildVersion>3.6.1</minimalMavenBuildVersion>
    <revision>3.8.2</revision>
    <slf4j.version>1.7.25</slf4j.version>
    <oak.max.version>1.52.0</oak.max.version>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <jackrabbit.min.version>2.20.8</jackrabbit.min.version>
    <project.build.outputTimestamp>2024-09-20T15:31:24Z</project.build.outputTimestamp>
    <jackrabbit.max.version>2.20.10</jackrabbit.max.version>
    <version.apache-resource-bundles>1.7</version.apache-resource-bundles>
  </properties>
  <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>org.apache.jackrabbit</groupId>
        <artifactId>oak-jackrabbit-api</artifactId>
        <version>${oak.min.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.jackrabbit</groupId>
        <artifactId>jackrabbit-jcr-commons</artifactId>
        <version>${jackrabbit.min.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.jackrabbit</groupId>
        <artifactId>jackrabbit-spi</artifactId>
        <version>${jackrabbit.min.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.jackrabbit</groupId>
        <artifactId>jackrabbit-spi-commons</artifactId>
        <version>${jackrabbit.min.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.jackrabbit</groupId>
        <artifactId>jackrabbit-webdav</artifactId>
        <version>${jackrabbit.min.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.jackrabbit</groupId>
        <artifactId>jackrabbit-jcr2spi</artifactId>
        <version>${jackrabbit.max.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.jackrabbit</groupId>
        <artifactId>jackrabbit-spi2dav</artifactId>
        <version>${jackrabbit.max.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.jackrabbit</groupId>
        <artifactId>jackrabbit-jcr-client</artifactId>
        <version>${jackrabbit.max.version}</version>
      </dependency>
      <dependency>
        <groupId>javax.jcr</groupId>
        <artifactId>jcr</artifactId>
        <version>2.0</version>
      </dependency>
      <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>${slf4j.version}</version>
      </dependency>
      <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-simple</artifactId>
        <version>${slf4j.version}</version>
      </dependency>
      <dependency>
        <groupId>org.jetbrains</groupId>
        <artifactId>annotations</artifactId>
        <version>23.0.0</version>
      </dependency>
      <dependency>
        <groupId>biz.aQute.bnd</groupId>
        <artifactId>biz.aQute.bnd.annotation</artifactId>
        <version>${bnd.version}</version>
      </dependency>
      <dependency>
        <groupId>org.osgi</groupId>
        <artifactId>org.osgi.framework</artifactId>
        <version>1.8.0</version>
      </dependency>
      <dependency>
        <groupId>org.osgi</groupId>
        <artifactId>org.osgi.service.cm</artifactId>
        <version>1.6.0</version>
      </dependency>
      <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.event</artifactId>
        <version>1.3.1</version>
      </dependency>
      <dependency>
        <groupId>org.osgi</groupId>
        <artifactId>org.osgi.annotation.versioning</artifactId>
        <version>1.1.0</version>
      </dependency>
      <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.3.0</version>
      </dependency>
      <dependency>
        <groupId>commons-io</groupId>
        <artifactId>commons-io</artifactId>
        <version>2.7</version>
      </dependency>
      <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-lang3</artifactId>
        <version>3.6</version>
      </dependency>
      <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-collections4</artifactId>
        <version>4.1</version>
      </dependency>
      <dependency>
        <groupId>commons-codec</groupId>
        <artifactId>commons-codec</artifactId>
        <version>1.10</version>
      </dependency>
      <dependency>
        <groupId>org.apache.httpcomponents</groupId>
        <artifactId>httpmime</artifactId>
        <version>4.5.8</version>
      </dependency>
      <dependency>
        <groupId>org.apache.httpcomponents</groupId>
        <artifactId>httpclient</artifactId>
        <version>4.5.8</version>
      </dependency>
      <dependency>
        <groupId>commons-logging</groupId>
        <artifactId>commons-logging</artifactId>
        <version>1.0.3</version>
      </dependency>
      <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.13.2</version>
      </dependency>
      <dependency>
        <groupId>org.junit</groupId>
        <artifactId>junit-bom</artifactId>
        <version>5.9.2</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>
    </dependencies>
  </dependencyManagement>
  <build>
    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>org.apache.sling</groupId>
          <artifactId>sling-maven-plugin</artifactId>
          <version>3.0.2</version>
          <configuration>
            <slingUrlSuffix>/system/console</slingUrlSuffix>
            <deploymentMethod>WebConsole</deploymentMethod>
          </configuration>
        </plugin>
        <plugin>
          <groupId>biz.aQute.bnd</groupId>
          <artifactId>bnd-maven-plugin</artifactId>
          <version>${bnd.version}</version>
          <executions>
            <execution>
              <id>generate-osgi-metadata</id>
              <goals>
                <goal>bnd-process</goal>
              </goals>
              <configuration>
                <bnd># we cannot let bnd-maven-plugin generate it automatically, as Maven applies some inheritance logic
Bundle-DocURL: https://jackrabbit.apache.org/filevault/
Bundle-Category: jackrabbit
# https://github.com/bndtools/bnd/tree/master/maven/bnd-maven-plugin#reproducible-builds
-noextraheaders: true
-snapshot: SNAPSHOT
# export all versioned packages except for conditional ones (https://github.com/bndtools/bnd/issues/3721#issuecomment-579026778)
-exportcontents: ${removeall;${packages;VERSIONED};${packages;CONDITIONAL}}
# support only DS 1.4 (https://github.com/bndtools/bnd/pull/3121/files)
-dsannotations-options: version;maximum=1.4.0
# generate error (instead of warning) when exported package uses private (non-exported) reference
-fixupmessages:"Export *,  has \\d+,  private references"; \
    restrict:=warning; \
    is:=error</bnd>
              </configuration>
            </execution>
          </executions>
        </plugin>
        <plugin>
          <groupId>biz.aQute.bnd</groupId>
          <artifactId>bnd-baseline-maven-plugin</artifactId>
          <version>${bnd.version}</version>
          <executions>
            <execution>
              <id>baseline</id>
              <goals>
                <goal>baseline</goal>
              </goals>
            </execution>
          </executions>
          <configuration>
            <includeDistributionManagement>false</includeDistributionManagement>
            <fullReport>true</fullReport>
            <diffignores>
              <diffignore>Bundle-Version</diffignore>
            </diffignores>
          </configuration>
        </plugin>
        <plugin>
          <groupId>biz.aQute.bnd</groupId>
          <artifactId>bnd-resolver-maven-plugin</artifactId>
          <version>${bnd.version}</version>
          <executions>
            <execution>
              <phase>verify</phase>
              <goals>
                <goal>resolve</goal>
              </goals>
            </execution>
          </executions>
          <configuration>
            <useMavenDependencies>true</useMavenDependencies>
            <scopes>compile</scopes>
            <failOnChanges>false</failOnChanges>
            <writeOnChanges>false</writeOnChanges>
          </configuration>
        </plugin>
        <plugin>
          <artifactId>maven-release-plugin</artifactId>
          <dependencies>
            <dependency>
              <groupId>org.apache.maven.release</groupId>
              <artifactId>maven-release-oddeven-policy</artifactId>
              <version>${version.maven-release-plugin}</version>
            </dependency>
          </dependencies>
          <configuration>
            <autoVersionSubmodules>true</autoVersionSubmodules>
            <projectVersionPolicyId>OddEvenVersionPolicy</projectVersionPolicyId>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.rat</groupId>
          <artifactId>apache-rat-plugin</artifactId>
          <configuration>
            <excludes>
              <excludes>.asf.yaml</excludes>
              <excludes>.ratignore</excludes>
              <exclude>release.properties</exclude>
              <exclude>.git/**</exclude>
              <exclude>.idea/**</exclude>
              <exclude>.gitattributes</exclude>
              <exclude>.gitignore</exclude>
              <exclude>derby.log</exclude>
              <exclude>**/*.zip/**</exclude>
              <exclude>.mvn/**</exclude>
              <exclude>.no-defender.sh</exclude>
              <exclude>.repository/**</exclude>
              <exclude>local-snapshots-dir/**</exclude>
            </excludes>
          </configuration>
        </plugin>
        <plugin>
          <artifactId>maven-site-plugin</artifactId>
          <configuration>
            <skip>true</skip>
            <skipDeploy>true</skipDeploy>
            <relativizeDecorationLinks>false</relativizeDecorationLinks>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.jacoco</groupId>
          <artifactId>jacoco-maven-plugin</artifactId>
          <version>0.8.10</version>
        </plugin>
        <plugin>
          <groupId>org.owasp</groupId>
          <artifactId>dependency-check-maven</artifactId>
          <version>10.0.3</version>
          <executions>
            <execution>
              <goals>
                <goal>check</goal>
              </goals>
              <configuration>
                <failBuildOnCVSS>11</failBuildOnCVSS>
              </configuration>
            </execution>
          </executions>
        </plugin>
      </plugins>
    </pluginManagement>
    <plugins>
      <plugin>
        <groupId>org.apache.rat</groupId>
        <artifactId>apache-rat-plugin</artifactId>
        <executions>
          <execution>
            <phase>verify</phase>
            <goals>
              <goal>check</goal>
            </goals>
            <configuration>
              <consoleOutput>true</consoleOutput>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
          <debug>true</debug>
          <showDeprecation>false</showDeprecation>
          <showWarnings>true</showWarnings>
        </configuration>
      </plugin>
      <plugin>
        <artifactId>maven-enforcer-plugin</artifactId>
        <executions>
          <execution>
            <id>enforce-explicit-scope</id>
            <goals>
              <goal>enforce</goal>
            </goals>
            <configuration>
              <rules>
                <requireExplicitDependencyScope />
              </rules>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <artifactId>maven-site-plugin</artifactId>
        <executions>
          <execution>
            <id>attach-descriptor</id>
            <goals>
              <goal>attach-descriptor</goal>
            </goals>
          </execution>
        </executions>
        <inherited>false</inherited>
      </plugin>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>flatten-maven-plugin</artifactId>
        <version>1.5.0</version>
        <executions>
          <execution>
            <id>flatten</id>
            <phase>process-resources</phase>
            <goals>
              <goal>flatten</goal>
            </goals>
          </execution>
          <execution>
            <id>flatten.clean</id>
            <phase>clean</phase>
            <goals>
              <goal>clean</goal>
            </goals>
          </execution>
        </executions>
        <configuration>
          <updatePomFile>true</updatePomFile>
          <flattenMode>resolveCiFriendliesOnly</flattenMode>
        </configuration>
      </plugin>
    </plugins>
  </build>
  <reporting>
    <plugins>
      <plugin>
        <artifactId>maven-project-info-reports-plugin</artifactId>
        <inherited>false</inherited>
      </plugin>
    </plugins>
  </reporting>
  <profiles>
    <profile>
      <id>jacoco-report</id>
      <build>
        <pluginManagement>
          <plugins>
            <plugin>
              <artifactId>maven-surefire-plugin</artifactId>
              <configuration>
                <argLine>@{jacoco.command}</argLine>
              </configuration>
            </plugin>
            <plugin>
              <artifactId>maven-failsafe-plugin</artifactId>
              <configuration>
                <argLine>@{jacoco.command} -Djacoco.command=@{jacoco.command}</argLine>
              </configuration>
            </plugin>
          </plugins>
        </pluginManagement>
        <plugins>
          <plugin>
            <groupId>org.jacoco</groupId>
            <artifactId>jacoco-maven-plugin</artifactId>
            <executions>
              <execution>
                <id>prepare-agent</id>
                <goals>
                  <goal>prepare-agent</goal>
                </goals>
                <configuration>
                  <destFile>${project.build.directory}/jacoco-unit.exec</destFile>
                </configuration>
              </execution>
              <execution>
                <id>prepare-agent-integration</id>
                <goals>
                  <goal>prepare-agent-integration</goal>
                </goals>
                <configuration>
                  <destFile>${project.build.directory}/jacoco-it.exec</destFile>
                  <append>true</append>
                </configuration>
              </execution>
              <execution>
                <id>merge-unit-and-it</id>
                <phase>post-integration-test</phase>
                <goals>
                  <goal>merge</goal>
                </goals>
                <configuration>
                  <fileSets>
                    <fileSet>
                      <directory>${project.build.directory}</directory>
                      <includes>
                        <include>jacoco-unit.exec</include>
                        <include>jacoco-it.exec</include>
                      </includes>
                    </fileSet>
                  </fileSets>
                </configuration>
              </execution>
              <execution>
                <id>report-merged</id>
                <phase>verify</phase>
                <goals>
                  <goal>report</goal>
                </goals>
              </execution>
            </executions>
            <configuration>
              <propertyName>jacoco.command</propertyName>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>dependency-check</id>
      <build>
        <plugins>
          <plugin>
            <groupId>org.owasp</groupId>
            <artifactId>dependency-check-maven</artifactId>
          </plugin>
        </plugins>
      </build>
    </profile>
  </profiles>
</project>
