<?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/DECORATION/1.8.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/DECORATION/1.8.0 https://maven.apache.org/xsd/decoration-1.8.0.xsd"
    name="Jackrabbit FileVault Package Maven Plugin">
    <!-- disable edit button due to https://issues.apache.org/jira/browse/DOXIASITETOOLS-328 -->
    <edit></edit>
    <body>
        <breadcrumbs>
            <item name="Jackrabbit FileVault Package Maven Plugin" href="https://jackrabbit.apache.org/filevault-package-maven-plugin" />
        </breadcrumbs>
        <menu name="Overview">
            <item name="Introduction" href="index.html"/>
            <item name="Goals" href="plugin-info.html"/>
            <item name="Developing" href="dev.html"/>
            <item name="Releasing" href="howto_release.html"/>
        </menu>
        <menu name="Documentation">
            <item name="Import-package Generation" href="import_package.html"/>
            <item name="Migration from Adobe's Plugin" href="migrating.html"/>
            <item name="Validators" href="validators.html"/>
            <item name="Classifier Support" href="classifiers.html"/>
            <item name="Filtering" href="filtering.html"/>
            <item name="OSGi" href="osgi.html"/>
        </menu>
        <menu ref="modules"/>
        <menu ref="reports" inherit="bottom"/>
        <menu name="Links">
            <item href="https://jackrabbit.apache.org/filevault/" name="Apache Jackrabbit FileVault"/>
            <item href="https://jackrabbit.apache.org/" name="Apache Jackrabbit"/>
        </menu>
        <menu name="Site Versions">
            <item href="https://jackrabbit.apache.org/filevault-package-maven-plugin-archives/1.3.7-SNAPSHOT" name="1.3.7-SNAPSHOT"/>
            <item href="https://jackrabbit.apache.org/filevault-package-maven-plugin" name="1.3.6"/>
            <item href="https://jackrabbit.apache.org/filevault-package-maven-plugin-archives/1.3.4" name="1.3.4"/>
            <item href="https://jackrabbit.apache.org/filevault-package-maven-plugin-archives/1.3.2" name="1.3.2"/>
            <item href="https://jackrabbit.apache.org/filevault-package-maven-plugin-archives/1.3.0" name="1.3.0"/>
            <item href="https://jackrabbit.apache.org/filevault-package-maven-plugin-archives/1.2.2" name="1.2.2"/>
            <item href="https://jackrabbit.apache.org/filevault-package-maven-plugin-archives/1.1.8" name="1.1.8"/>
            <item href="https://jackrabbit.apache.org/filevault-package-maven-plugin-archives/1.1.6" name="1.1.6"/>
            <item href="https://jackrabbit.apache.org/filevault-package-maven-plugin-archives/1.1.4" name="1.1.4"/>
            <item href="https://jackrabbit.apache.org/filevault-package-maven-plugin-archives/1.1.2" name="1.1.2"/>
            <item href="https://jackrabbit.apache.org/filevault-package-maven-plugin-archives/1.1.0" name="1.1.0"/>
            <item href="https://jackrabbit.apache.org/filevault-package-maven-plugin-archives/1.0.4" name="1.0.4"/>
            <item href="https://jackrabbit.apache.org/filevault-package-maven-plugin-archives/1.0.3" name="1.0.3"/>
            <item href="https://jackrabbit.apache.org/filevault-package-maven-plugin-archives/1.0.1" name="1.0.1"/>
            <item href="https://jackrabbit.apache.org/filevault-package-maven-plugin-archives/1.0.0" name="1.0.0"/>
        </menu>
    </body>
    <skin>
        <groupId>org.apache.maven.skins</groupId>
        <artifactId>maven-fluido-skin</artifactId>
        <version>2.0.0-M8</version>
    </skin>
    <custom>
        <fluidoSkin>
            <gitHub>
                <projectId>apache/jackrabbit-filevault-package-maven-plugin</projectId>
                <ribbonOrientation>right</ribbonOrientation>
            </gitHub>
        </fluidoSkin>
    </custom>
</project>
