<?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 http://maven.apache.org/xsd/decoration-1.8.0.xsd"
         name="Jackrabbit Oak">
  <publishDate position="right"/>
  <version position="none"/>
  <body>
    <breadcrumbs>
      <item name="Jackrabbit" href="https://jackrabbit.apache.org/"/>
      <item name="Oak" href="https://jackrabbit.apache.org/oak/docs/"/>
    </breadcrumbs>
    <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://s.apache.org/jcr-2.0-spec/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/elastic.html" name="Elastic Index" />
        <item href="query/property-index.html" name="Property Index" />
        <item href="query/hybrid-index.html" name="Hybrid 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="testing.html" name="Testing" />
      <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>
    <footer><![CDATA[
<p>&#169; 2012-$date.get('yyyy')
<a href="https://www.apache.org/">The Apache Software Foundation</a> &vert; <a href="https://privacy.apache.org/policies/privacy-policy-public.html">Privacy Policy</a>
</p>
    ]]></footer>
  </body>
  <edit>https://github.com/apache/jackrabbit-oak/edit/trunk/oak-doc</edit>
  <skin>
    <groupId>org.apache.maven.skins</groupId>
    <artifactId>maven-fluido-skin</artifactId>
    <version>1.11.1</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>
      <googleSearch/>
    </fluidoSkin>
    <matomo>
      <siteId>4</siteId>
      <url>https://analytics.apache.org</url>
      <options>
        <disableCookies/>
        <trackPageView/>
        <enableLinkTracking/>
      </options>
    </matomo>
  </custom>
</project>
