<?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.3.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/DECORATION/1.3.0 http://maven.apache.org/xsd/decoration-1.3.0.xsd"
         name="Jackrabbit Oak">
  <body>
    <menu name="Overview">
      <item href="index.html" name="Jackrabbit Oak" />
      <item href="license.html" name="License" />
      <item href="downloads.html" name="Downloads" />
      <item href="roadmap.html" name="Roadmap" />
      <item href="articles.html" name="Articles" />
    </menu>
    <menu name="Concepts and Architecture">
      <item href="architecture/overview.html" name="Overview" />
      <item href="architecture/nodestate.html" name="The Node State Model" />
    </menu>
    <menu name="Main APIs">
      <item href="https://docs.adobe.com/docs/en/spec/jcr/2.0/index.html" name="JCR API" />
      <item href="https://jackrabbit.apache.org/jcr/jcr-api.html" name="Jackrabbit API" />
      <item href="oak_api/overview.html" name="Oak API" />
    </menu>
    <menu name="Features and Plugins">
      <item href="nodestore/overview.html" name="Node Storage" collapse="false">
        <item href="nodestore/documentmk.html" name="Document NodeStore" collapse="false">
          <item href="nodestore/document/mongo-document-store.html" name="MongoDB DocumentStore" />
          <item href="nodestore/document/rdb-document-store.html" name="RDB DocumentStore" />
          <item href="nodestore/document/node-bundling.html" name="Node Bundling" />
          <item href="nodestore/document/secondary-store.html" name="Secondary Store" />
          <item href="nodestore/persistent-cache.html" name="Persistent Cache" />
          <item href="clustering.html" name="Clustering" />
        </item>
        <item href="nodestore/segment/overview.html" name="Segment NodeStore" />
        <item href="nodestore/compositens.html" name="Composite NodeStore" />
      </item>
      <item href="plugins/blobstore.html" name="Blob Storage" collapse="false">
          <item href="features/direct-binary-access.html" name="Direct Binary Access" />
          <item href="features/direct-binary-access-upload-file.html" name="Direct Binary Access Upload File" />
      </item>
      <item href="query/query.html" name="Query" collapse="false">
        <item href="query/query-engine.html" name="Query Engine" />
        <item href="query/grammar-xpath.html" name="XPath Grammar" />
        <item href="query/grammar-sql2.html" name="SQL-2 Grammar" />
        <item href="query/query-troubleshooting.html" name="Troubleshooting" />
        <item href="query/indexing.html" name="Indexing" />
        <item href="query/oak-run-indexing.html" name="Indexing with Oak-Run" />
        <item href="query/lucene.html" name="Lucene Index" />
        <item href="query/property-index.html" name="Property Index" />
        <item href="query/solr.html" name="Solr Index" />
      </item>
      <item href="security/overview.html" name="Security" collapse="false">
        <item href="security/introduction.html" name="Introduction" />
        <item href="security/reports.html" name="Reports" />
        <item href="security/authentication.html" name="Authentication" collapse="true">
          <item href="security/authentication/differences.html" name="Differences" />
          <item href="security/authentication/default.html" name="Default" />
          <item href="security/authentication/preauthentication.html" name="Pre-Authentication" />
          <item href="javascript:void(0)" name="Extensions" collapse="false">
            <item href="security/authentication/tokenmanagement.html" name="Token"/>
            <item href="security/authentication/externalloginmodule.html" name="External" collapse="true">
              <item href="security/authentication/usersync.html" name="Sync" />
              <item href="security/authentication/identitymanagement.html" name="Identity Management" />
              <item href="security/authentication/ldap.html" name="LDAP" />
            </item>
          </item>
        </item>
        <item href="security/authorization.html" name="Authorization" collapse="true">
          <item href="security/accesscontrol.html" name="Access Control Management" collapse="true">
            <item href="security/accesscontrol/differences.html" name="Differences" />
            <item href="security/accesscontrol/default.html" name="Default" />
            <item href="security/accesscontrol/editing.html" name="Using the API" />
          </item>
          <item href="security/permission.html" name="Permission Evaluation" collapse="true">
            <item href="security/permission/differences.html" name="Differences" />
            <item href="security/permission/default.html" name="Default" />
            <item href="security/permission/permissionsandprivileges.html" name="Permissions vs Privileges" />
          </item>
          <item href="security/privilege.html" name="Privilege Management" collapse="true">
            <item href="security/privilege/differences.html" name="Differences" />
            <item href="security/privilege/default.html" name="Default" />
            <item href="javascript:void(0)" name="Mappings" collapse="false">
              <item href="security/privilege/mappingtoitems.html" name="Privileges to API"/>
              <item href="security/privilege/mappingtoprivileges.html" name="API to Privileges"/>
            </item>
          </item>
          <item href="javascript:void(0)" name="Extensions" collapse="false">
            <item href="security/authorization/restriction.html" name="Restrictions" />
            <item href="security/authorization/composite.html" name="Multiple Models" />
            <item href="security/authorization/cug.html" name="Closed User Groups" />
            <item href="security/authorization/principalbased.html" name="Principal Based" />
          </item>
        </item>
        <item href="security/principal.html" name="Principal Management" collapse="true">
          <item href="security/principal/differences.html" name="Differences" />
          <item href="security/principal.html#default_implementation" name="Default" />
        </item>
        <item href="security/user.html" name="User Management" collapse="true">
          <item href="security/user/differences.html" name="Differences" />
          <item href="security/user/default.html" name="Default" collapse="true">
            <item href="security/user/membership.html" name="Group Membership" />
            <item href="security/user/authorizableaction.html" name="Authorizable Actions" />
            <item href="security/user/groupaction.html" name="Group Actions" />
            <item href="security/user/useraction.html" name="User Actions" />
            <item href="security/user/authorizablenodename.html" name="Node Name Generation" />
            <item href="security/user/expiry.html" name="Password Expiry" />
            <item href="security/user/history.html" name="Password History" />
          </item>
          <item href="security/user/query.html" name="Query" />
        </item>
      </item>
      <item href="features/atomic-counter.html" name="Atomic Counter" />
      <item href="features/observation.html" name="Observation" />
    </menu>
    <menu name="Using Oak">
      <item href="use_getting_started.html" name="Getting Started" />
      <item href="construct.html" name="Repository Construction" />
      <item href="osgi_config.html" name="Configuring Oak" />
      <item href="command_line.html" name="Command Line Tools" />
      <item href="migration.html" name="Migration" />
      <item href="differences.html" name="Differences to Jackrabbit 2" />
      <item href="known_issues.html" name="Known Issues" />
      <item href="constraints.html" name="Constraints" />
      <item href="dos_and_donts.html" name="Dos and Don'ts" />
      <item href="coldstandby/coldstandby.html" name="Cold Standby" />
      <item href="FAQ.html" name="FAQ" />
    </menu>
    <menu name="Developing Oak">
      <item href="dev_getting_started.html" name="Getting Started" />
      <item href="participating.html" name="Participating" />
      <item href="oakathons.html" name="Oakathons" />
      <item href="developing-with-git.html" name="Developing with Git" />
      <item href="diagnostic-builds.html" name="Cutting diagnostic builds" />
      <item href="branching.html" name="Branching off a new stable" />
      <item href="attribution.html" name="Attribution" />
      <item href="release-schedule.html" name="Release Schedule" />
    </menu>
    <menu name="Links">
      <item href="http://jackrabbit.apache.org/oak" name="Apache Jackrabbit Oak" />
      <item href="http://jackrabbit.apache.org/" name="Apache Jackrabbit" />
    </menu>
  </body>

  <skin>
    <groupId>org.apache.maven.skins</groupId>
    <artifactId>maven-fluido-skin</artifactId>
    <version>1.6</version>
  </skin>

  <custom>
    <fluidoSkin>
      <sourceLineNumbersEnabled>false</sourceLineNumbersEnabled>
      <topBarEnabled>true</topBarEnabled>
      <topBarIcon>
        <name>Oak logo</name>
        <alt>Oak logo</alt>
        <src>oak_logo.png</src>
        <href>/</href>
      </topBarIcon>
      <sideBarEnabled>true</sideBarEnabled>
      <gitHub>
        <projectId>apache/jackrabbit-oak</projectId>
        <ribbonOrientation>right</ribbonOrientation>
      </gitHub>
      <ohloh>
        <projectId>jackrabbit-oak</projectId>
        <widget>thin-badge</widget>
      </ohloh>
      <googlePlusOne />
    </fluidoSkin>
  </custom>
</project>
