You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by mr...@apache.org on 2022/12/15 09:54:28 UTC

svn commit: r1906010 [7/22] - in /jackrabbit/site/live/jcr: ./ components/ css/ fonts/ js/ ocm/ status/

Modified: jackrabbit/site/live/jcr/fonts/glyphicons-halflings-regular.ttf
URL: http://svn.apache.org/viewvc/jackrabbit/site/live/jcr/fonts/glyphicons-halflings-regular.ttf?rev=1906010&r1=1906009&r2=1906010&view=diff
==============================================================================
Binary files - no diff available.

Modified: jackrabbit/site/live/jcr/fonts/glyphicons-halflings-regular.woff
URL: http://svn.apache.org/viewvc/jackrabbit/site/live/jcr/fonts/glyphicons-halflings-regular.woff?rev=1906010&r1=1906009&r2=1906010&view=diff
==============================================================================
Binary files - no diff available.

Modified: jackrabbit/site/live/jcr/frequently-asked-questions.html
URL: http://svn.apache.org/viewvc/jackrabbit/site/live/jcr/frequently-asked-questions.html?rev=1906010&r1=1906009&r2=1906010&view=diff
==============================================================================
--- jackrabbit/site/live/jcr/frequently-asked-questions.html (original)
+++ jackrabbit/site/live/jcr/frequently-asked-questions.html Thu Dec 15 09:54:26 2022
@@ -1,42 +1,40 @@
 <!DOCTYPE html>
+
+
 <!--
- | Generated by Apache Maven Doxia Site Renderer 1.9.2 from src\site\markdown/frequently-asked-questions.md at 2022-05-12
- | Rendered using Apache Maven Fluido Skin 1.9
+ | Generated by Apache Maven Doxia Site Renderer 1.11.1 from src/site/markdown/frequently-asked-questions.md at 2022-12-15
+ | Rendered using Apache Maven Fluido Skin 1.11.1
 -->
 <html xmlns="http://www.w3.org/1999/xhtml" lang="en">
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1" />
-    <meta name="generator" content="Apache Maven Doxia Site Renderer 1.9.2" />
+    <meta name="generator" content="Apache Maven Doxia Site Renderer 1.11.1" />
     <title>Apache Jackrabbit &#x2013; Frequently Asked Questions</title>
-    <link rel="stylesheet" href="./css/apache-maven-fluido-1.9.min.css" />
+    <link rel="stylesheet" href="./css/apache-maven-fluido-1.11.1.min.css" />
     <link rel="stylesheet" href="./css/site.css" />
     <link rel="stylesheet" href="./css/print.css" media="print" />
-    <script src="./js/apache-maven-fluido-1.9.min.js"></script>
-<!-- Matomo -->
-<script>
-  var _paq = window._paq = window._paq || [];
-  /* tracker methods like "setCustomDimension" should be called before "trackPageView" */
-  /* We explicitly disable cookie tracking to avoid privacy issues */
-  _paq.push(['disableCookies']);
-  _paq.push(['trackPageView']);
-  _paq.push(['enableLinkTracking']);
-  (function() {
-    var u="https://matomo.privacy.apache.org/";
-    _paq.push(['setTrackerUrl', u+'matomo.php']);
-    _paq.push(['setSiteId', '4']);
-    var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
-    g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
-  })();
-</script>
-<!-- End Matomo Code -->
+    <script src="./js/apache-maven-fluido-1.11.1.min.js"></script>
+
+    <!-- Matomo -->
+    <script>
+        var _paq = window._paq = window._paq || [];
+                _paq.push(['disableCookies']);
+                    _paq.push(['trackPageView']);
+                    _paq.push(['enableLinkTracking']);
+        
+        (function() {
+            var u="https://analytics.apache.org";
+            _paq.push(['setTrackerUrl', u+'/matomo.php']);
+            _paq.push(['setSiteId', '4']);
+            var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
+            g.async=true; g.src=u+'/matomo.js'; s.parentNode.insertBefore(g,s);
+        })();
+    </script>
+    <!-- End Matomo Code -->
   </head>
   <body class="topBarEnabled">
-    <a href="https://github.com/apache/jackrabbit">
-      <img style="position: absolute; top: 0; right: 0; border: 0; z-index: 10000;"
-        src="https://s3.amazonaws.com/github/ribbons/forkme_right_red_aa0000.png"
-        alt="Fork me on GitHub">
-    </a>
+    <a class="github-fork-ribbon right-top" href="https://github.com/apache/jackrabbit" data-ribbon="Fork me on GitHub" title="Fork me on GitHub">Fork me on GitHub</a>
     <header id="topbar" class="navbar navbar-fixed-top ">
       <div class="navbar-inner">
         <div class="container-fluid">
@@ -49,18 +47,18 @@
 </a>
             <ul class="nav">
       <li class="dropdown">
-        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Apache Jackrabbit <b class="caret"></b></a>
+        <a class="dropdown-toggle" data-toggle="dropdown">Apache Jackrabbit <b class="caret"></b></a>
         <ul class="dropdown-menu">
             <li><a href="index.html" title="Welcome">Welcome</a></li>
             <li><a href="downloads.html" title="Downloads">Downloads</a></li>
             <li><a href="articles.html" title="Articles">Articles</a></li>
-            <li><a href="frequently-asked-questions.html" title="FAQ">FAQ</a></li>
+            <li><a title="FAQ">FAQ</a></li>
             <li><a href="https://jackrabbit.apache.org/archive/wiki/JCR/Home_70731.html" title="Archived Jackrabbit Wiki">Archived Jackrabbit Wiki</a></li>
             <li><a href="jackrabbit-history.html" title="Jackrabbit History">Jackrabbit History</a></li>
         </ul>
       </li>
       <li class="dropdown">
-        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Documentation <b class="caret"></b></a>
+        <a class="dropdown-toggle" data-toggle="dropdown">Documentation <b class="caret"></b></a>
         <ul class="dropdown-menu">
             <li><a href="getting-started-with-apache-jackrabbit.html" title="Getting Started">Getting Started</a></li>
             <li><a href="standalone-server.html" title="Standalone Server">Standalone Server</a></li>
@@ -75,7 +73,7 @@
         </ul>
       </li>
       <li class="dropdown">
-        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Development <b class="caret"></b></a>
+        <a class="dropdown-toggle" data-toggle="dropdown">Development <b class="caret"></b></a>
         <ul class="dropdown-menu">
             <li><a href="jackrabbit-team.html" title="Jackrabbit Team">Jackrabbit Team</a></li>
             <li><a href="jackrabbit-roadmap.html" title="Jackrabbit Roadmap">Jackrabbit Roadmap</a></li>
@@ -90,7 +88,7 @@
         </ul>
       </li>
       <li class="dropdown">
-        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Apache Software Foundation <b class="caret"></b></a>
+        <a class="dropdown-toggle" data-toggle="dropdown">Apache Software Foundation <b class="caret"></b></a>
         <ul class="dropdown-menu">
             <li><a href="https://www.apache.org/foundation/how-it-works.html" title="Introduction">Introduction</a></li>
             <li><a href="https://www.apache.org/foundation/sponsorship.html" title="Sponsorship">Sponsorship</a></li>
@@ -105,7 +103,7 @@
     <div class="container-fluid">
       <header>
         <div id="banner">
-          <div class="pull-left"><div id="bannerLeft"><h2>Apache Jackrabbit Site</h2>
+          <div class="pull-left"><div id="bannerLeft"><h1>Apache Jackrabbit Site</h1>
 </div>
 </div>
           <div class="pull-right"></div>
@@ -114,7 +112,7 @@
 
         <div id="breadcrumbs">
           <ul class="breadcrumb">
-        <li id="publishDate">Last Published: 2022-05-12</li>
+        <li id="publishDate">Last Published: 2022-12-15</li>
           </ul>
         </div>
       </header>
@@ -126,7 +124,7 @@
     <li><a href="index.html" title="Welcome"><span class="none"></span>Welcome</a></li>
     <li><a href="downloads.html" title="Downloads"><span class="none"></span>Downloads</a></li>
     <li><a href="articles.html" title="Articles"><span class="none"></span>Articles</a></li>
-    <li class="active"><a href="#"><span class="none"></span>FAQ</a></li>
+    <li class="active"><a><span class="none"></span>FAQ</a></li>
     <li><a href="https://jackrabbit.apache.org/archive/wiki/JCR/Home_70731.html" class="externalLink" title="Archived Jackrabbit Wiki"><span class="none"></span>Archived Jackrabbit Wiki</a></li>
     <li><a href="jackrabbit-history.html" title="Jackrabbit History"><span class="none"></span>Jackrabbit History</a></li>
    <li class="nav-header">Documentation</li>
@@ -159,7 +157,6 @@
   </ul>
           </nav>
           <div class="well sidebar-nav">
-            <hr />
             <div id="poweredBy">
               <div class="clear"></div>
               <div class="clear"></div>
@@ -188,29 +185,65 @@
 <h1>Frequently Asked Questions</h1><section>
 <h2><a name="General"></a>General</h2><section>
 <h3><a name="What_is_JCR.3F"></a>What is JCR?</h3>
-<p>JCR is the acronym of the Content Repository for Java technology API, a standard interface for accessing content repositories. JCR version 1.0 was specified in <a class="externalLink" href="http://jcp.org/en/jsr/detail?id=170">Java Specification Request 170 (JSR 170)</a>, and version 2.0 in <a class="externalLink" href="http://jcp.org/en/jsr/detail?id=283">JSR 283</a>.</p></section><section>
+<p>JCR is the acronym of the Content Repository for Java technology API, a standard interface for accessing content repositories.
+JCR version 1.0 was specified in <a class="externalLink" href="http://jcp.org/en/jsr/detail?id=170">Java Specification Request 170 (JSR 170)</a>,
+and version 2.0 in <a class="externalLink" href="http://jcp.org/en/jsr/detail?id=283">JSR 283</a>.</p></section><section>
 <h3><a name="What_is_a_content_repository.3F"></a>What is a content repository?</h3>
-<p>A content repository is an information management system that provides various services for storing, accessing, and managing content. In addition to a hierarchically structured storage, common services of a content repository are versioning, access control, full text searching, and event monitoring. A content repository is not a content management system (CMS), although most existing CMSs contain a custom content repository implementation, often based on the file system or a relational database.</p></section><section>
+<p>A content repository is an information management system that provides
+various services for storing, accessing, and managing content. In addition
+to a hierarchically structured storage, common services of a content
+repository are versioning, access control, full text searching, and event
+monitoring. A content repository is not a content management system (CMS),
+although most existing CMSs contain a custom content repository
+implementation, often based on the file system or a relational database.</p></section><section>
 <h3><a name="What_is_Apache_Jackrabbit.3F"></a>What is Apache Jackrabbit?</h3>
-<p>Apache Jackrabbit is a fully featured content repository that implements the entire JCR API.  The Jackrabbit project was started when Day Software, the JSR-170 specification lead, licensed their initial implementation of the JCR reference implementation. The Jackrabbit codebase was used for the official reference implementation (RI) and technology compatibility kit (TCK) released along with the final JCR API.</p></section><section>
+<p>Apache Jackrabbit is a fully featured content repository that implements
+the entire JCR API.  The Jackrabbit project was started when Day Software,
+the JSR-170 specification lead, licensed their initial implementation of
+the JCR reference implementation. The Jackrabbit codebase was used for the
+official reference implementation (RI) and technology compatibility kit
+(TCK) released along with the final JCR API.</p></section><section>
 <h3><a name="What_do_I_do_if_I_have_a_question.3F"></a>What do I do if I have a question?</h3>
-<p>Please ask questions on the <a class="externalLink" href="http://jackrabbit.apache.org/mailing-lists.html">Jackrabbit mailing lists</a>. There is the users list for questions around using JCR and Jackrabbit and the dev list for the development of Jackrabbit itself and for people starting to extend Jackrabbit or other advanced topics.</p></section></section><section>
+<p>Please ask questions on the <a class="externalLink" href="http://jackrabbit.apache.org/mailing-lists.html">Jackrabbit mailing lists</a>.
+There is the users list for questions around using JCR and Jackrabbit and
+the dev list for the development of Jackrabbit itself and for people
+starting to extend Jackrabbit or other advanced topics.</p></section></section><section>
 <h2><a name="Building_Jackrabbit"></a>Building Jackrabbit</h2><section>
 <h3><a name="How_do_I_build_the_Apache_Jackrabbit_sources.3F"></a>How do I build the Apache Jackrabbit sources?</h3>
 <p>See the <a href="building-jackrabbit.html">Building Jackrabbit</a> page for detailed build instructions.</p></section></section><section>
 <h2><a name="Using_Jackrabbit"></a>Using Jackrabbit</h2><section>
 <h3><a name="How_do_I_do_X_with_JCR.2FJackrabbit.3F"></a>How do I do X with JCR/Jackrabbit?</h3>
-<p>See the JCR specification, the JCR API documentation, or the Examples page on the Jackrabbit wiki for information on how to perform various operation using the JCR API.</p>
-<p>For Jackrabbit features (like access control and node type management) not covered by the JCR API, see the Examples page on the wiki, the Jackrabbit javadocs, or contact the Jackrabbit mailing list.</p></section><section>
+<p>See the JCR specification, the JCR API documentation, or the Examples page
+on the Jackrabbit wiki for information on how to perform various operation
+using the JCR API.</p>
+<p>For Jackrabbit features (like access control and node type management) not
+covered by the JCR API, see the Examples page on the wiki, the Jackrabbit
+javadocs, or contact the Jackrabbit mailing list.</p></section><section>
 <h3><a name="How_do_I_use_transactions_with_JCR.3F"></a>How do I use transactions with JCR?</h3>
-<p>See the mailing list announcement for a simple example on using the JTA support in Jackrabbit. For a more complete explanation of the transaction features, please	   see section 8.1 Transactions of the JCR specification.</p></section><section>
+<p>See the mailing list announcement for a simple example on using the JTA
+support in Jackrabbit. For a more complete explanation of the transaction
+features, please	   see section 8.1 Transactions of the JCR
+specification.</p></section><section>
 <h3><a name="How_do_I_create_new_workspaces_in_Jackrabbit.3F"></a>How do I create new workspaces in Jackrabbit?</h3>
 <p>The JCR 2.0 API has two <a class="externalLink" href="https://s.apache.org/jcr-2.0-javadoc/javax/jcr/Workspace.html#createWorkspace(java.lang.String)">Workspace.createWorkspace()</a> methods for that.</p>
-<p>The JCR 1.0 API does not contain features for creating or managing workspaces, so you need to use Jackrabbit-specific functionality for creating new workspaces. You can create a new workspace either manually or programmatically.</p>
-<p>The manual way is to create a new workspace directory within the repository home directory and to place a new workspace.xml configuration file in that folder. You can use the configuration file of an existing workspace as an example, just remember to change the name of the workspace in the Workspace name=&#x201c;&#x2026;&#x201d; tag. See the <a href="jackrabbit-configuration.html">Jackrabbit Configuration</a> page for configuration details. Note also that you need to restart the repository instance to access the new workspace.</p>
-<p>The programmatic way is to acquire a Workspace instance using the normal JCR API and to cast the instance to the JackrabbitWorkspace interface. You can then use the createWorkspace(String) method to create new workspaces.</p></section><section>
+<p>The JCR 1.0 API does not contain features for creating or managing
+workspaces, so you need to use Jackrabbit-specific functionality for
+creating new workspaces. You can create a new workspace either manually or
+programmatically.</p>
+<p>The manual way is to create a new workspace directory within the repository
+home directory and to place a new workspace.xml configuration file in that
+folder. You can use the configuration file of an existing workspace as an
+example, just remember to change the name of the workspace in the
+Workspace name=&#x201c;&#x2026;&#x201d; tag. See the <a href="jackrabbit-configuration.html">Jackrabbit Configuration</a>
+page for configuration details. Note also that you need to restart the
+repository instance to access the new workspace.</p>
+<p>The programmatic way is to acquire a Workspace instance using the normal
+JCR API and to cast the instance to the JackrabbitWorkspace interface. You
+can then use the createWorkspace(String) method to create new workspaces.</p></section><section>
 <h3><a name="How_do_I_delete_a_workspace_in_Jackrabbit.3F"></a>How do I delete a workspace in Jackrabbit?</h3>
-<p>There is currently no programmatic way to delete workspaces. You can delete a workspace by manually removing the workspace directory when the repository instance is not running.</p></section><section>
+<p>There is currently no programmatic way to delete workspaces. You can delete
+a workspace by manually removing the workspace directory when the
+repository instance is not running.</p></section><section>
 <h3><a name="How_do_I_deploy_Jackrabbit_into_Tomcat.3F"></a>How do I deploy Jackrabbit into Tomcat?</h3>
 <ul>
 
@@ -220,71 +253,123 @@
 </ul></section></section><section>
 <h2><a name="Access_control"></a>Access control</h2><section>
 <h3><a name="How_do_I_use_LDAP.2C_Kerberos.2C_or_some_other_authentication_mechanism_with_Jackrabbit.3F"></a>How do I use LDAP, Kerberos, or some other authentication mechanism with Jackrabbit?</h3>
-<p>Jackrabbit uses the Java Authentication and Authorization Service (JAAS) for authenticating users. You should be able to use any JAAS LoginModule implementation (e.g. the LoginModules in thecom.sum.security.auth.modulepackage) for authentication. See the JAAS documentation for configuration instructions.</p></section><section>
+<p>Jackrabbit uses the Java Authentication and Authorization Service (JAAS)
+for authenticating users. You should be able to use any JAAS LoginModule
+implementation (e.g. the LoginModules in thecom.sum.security.auth.modulepackage)
+for authentication. See the JAAS documentation for configuration instructions.</p></section><section>
 <h3><a name="How_do_I_manage_the_access_rights_of_authenticated_users.3F"></a>How do I manage the access rights of authenticated users?</h3>
-<p>The current JackrabbitSimpleAccessManager class only supports three access levels: anonymous, normal, and system. Anonymous users have read access while normal and system users have full read-write access. You need to implement a custom AccessManager class to get more fine-grained access control.</p></section></section><section>
+<p>The current JackrabbitSimpleAccessManager class only supports three access
+levels: anonymous, normal, and system. Anonymous users have read
+access while normal and system users have full read-write access.
+You need to implement a custom AccessManager class to get more fine-grained
+access control.</p></section></section><section>
 <h2><a name="Persistence_managers"></a>Persistence managers</h2><section>
 <h3><a name="What_is_a_persistence_manager.3F"></a>What is a persistence manager?</h3>
-<p>A persistence manager (PM) is an internal Jackrabbit component that handles the persistent storage of content nodes and properties. Each workspace of a Jackrabbit content repository<br />
+<p>A persistence manager (PM) is an internal Jackrabbit component
+that handles the persistent storage of content nodes and
+properties. Each workspace of a Jackrabbit content repository<br />
 uses a separate persistence manager to store the content in that<br />
-workspace. Also the Jackrabbit version handler uses a separate		 persistence manager.The persistence manager sits at the very bottom layer of the Jackrabbit system architecture. Reliability, integrity and performance of the PM are crucial to the overall<br />
+workspace. Also the Jackrabbit version handler uses a separate		
+persistence manager.The persistence manager sits at the very bottom layer
+of the Jackrabbit system architecture. Reliability, integrity and
+performance of the PM are crucial to the overall<br />
 stability and performance of the repository. If e.g. the data<br />
 that a PM is based upon is allowed to change through external<br />
-means the integrity of the repository would be at risk (think of referential integrity / node references e.g.).</p>
+means the integrity of the repository would be at risk (think of referential
+integrity / node references e.g.).</p>
 <p>In practice, a persistence manager is any Java class that<br />
-implements the PersistenceManager interface and the associated behavioural contracts. Jackrabbit contains a set of built-in persistence manager classes that cover most of the deployment needs. There are also a few contributed persistence managers that give additional flexibility.</p></section><section>
+implements the PersistenceManager interface and the associated
+behavioural contracts. Jackrabbit contains a set of built-in
+persistence manager classes that cover most of the deployment
+needs. There are also a few contributed persistence managers that
+give additional flexibility.</p></section><section>
 <h3><a name="What_is_a_Jackrabbit_file_system.3F"></a>What is a Jackrabbit file system?</h3>
 <p>A Jackrabbit file system (FS) is an internal component that<br />
 implements standard file system operations on top of some underlying<br />
 storage mechanism (a normal file system, a database, a webdav server,<br />
-or a custom file format). A file system component is any Java class that implements the FileSystem interface and the associated behavioral contracts. File systems are used in Jackrabbit both as sub-components of the persistence managers and for general storage needs (for example to store the full text indexes).</p></section><section>
+or a custom file format). A file system component is any Java class
+that implements the FileSystem interface and the
+associated behavioral contracts. File systems are used in
+Jackrabbit both as sub-components of the persistence managers and
+for general storage needs (for example to store the full text
+indexes).</p></section><section>
 <h3><a name="Can_I_use_a_persistence_manager_to_access_an_existing_data_source.3F"></a>Can I use a persistence manager to access an existing data source?</h3>
 <p>No. The persistence manager interface was never intended as being<br />
 a general SPI that you could implement in order to integrate<br />
 external data sources with proprietary formats (e.g. a customers<br />
-database). The reason why we abstracted the PM interface was to leave room for future performance optimizations that would not affect the rest of the implementation (e.g. by storing the raw data in a b-tree based database instead of individual file).</p></section><section>
+database). The reason why we abstracted the PM interface was to
+leave room for future performance optimizations that would not
+affect the rest of the implementation (e.g. by storing the raw
+data in a b-tree based database instead of individual file).</p></section><section>
 <h3><a name="How_smart_should_a_persistence_manager_be.3F"></a>How smart should a persistence manager be?</h3>
-<p>A persistence manager should not be intelligent, i.e. it should not interpret the content it is managing. The only thing it should care about is to efficiently, consistently, and reliably store and read the content encapsulated in the passed NodeState and PropertyState objects. Though it might be feasible to write a custom persistence manager to represent existing legacy data in a level-1 (read-only) repository, I don&#x2019;t think the same is possible for a level-2 repository and I certainly would not recommend it.</p></section></section><section>
+<p>A persistence manager should not be intelligent, i.e. it should
+not interpret the content it is managing. The only thing it
+should care about is to efficiently, consistently, and reliably
+store and read the content encapsulated in the passed NodeState
+and PropertyState objects. Though it might be feasible to write a
+custom persistence manager to represent existing legacy data in a
+level-1 (read-only) repository, I don't think the same is
+possible for a level-2 repository and I certainly would not
+recommend it.</p></section></section><section>
 <h2><a name="Query"></a>Query</h2><section>
-<h3><a name="I.E2.80.99ve_configured_textFilterClasses_but_my_query_still_doesn.E2.80.99t_work.2C_what.E2.80.99s_wrong.3F"></a>I&#x2019;ve configured textFilterClasses but my query still doesn&#x2019;t work, what&#x2019;s wrong?</h3>
-<p>Make sure you changed existing workspace.xml files as well. The workspace element in <code>repository.xml only</code> acts as a template for new workspaces.</p>
-<p>Verify that you also put the jar files into the classpath that jackrabbit depends on for text extraction. You can find all required jar files inside the jackrabbit-webapp war file (the <i>WEB-INF/lib</i> folder). Go to the <a href="downloads.html">downloads</a> page to get the war file.</p>
-<p>Some documents may still not be searchable for various reasons: the document is corrupt, bug in one of the libraries that extract text, document is encrypted or otherwise protected, etc.</p></section><section>
-<h3><a name="Why_doesn.E2.80.99t_.2F.2F.2A.5C.5Bjcr:contains.28.40jcr:data.2C_.27foo.27.29.5D.28jcr:contains.28.40jcr:data.2C-.27foo.27.29.html.29_return_matches_for_binary_content.3F"></a>Why doesn&#x2019;t <code>//*\[jcr:contains(@jcr:data, 'foo')](jcr:contains(@jcr:data,-'foo').html)</code> return matches for binary content?</h3>
-<p>Extracted text from binary content is only indexed on the parent node of the <code>@jcr:data property. Use jcr:contains()</code> on the nt:resource node. Examples:</p>
+<h3><a name="I.27ve_configured_textFilterClasses_but_my_query_still_doesn.27t_work.2C_what.27s_wrong.3F"></a>I've configured textFilterClasses but my query still doesn't work, what's wrong?</h3>
+<p>Make sure you changed existing workspace.xml files as well. The workspace
+element in <code>repository.xml only</code> acts as a template for new workspaces.</p>
+<p>Verify that you also put the jar files into the classpath that jackrabbit
+depends on for text extraction. You can find all required jar files inside
+the jackrabbit-webapp war file (the <i>WEB-INF/lib</i> folder).
+Go to the <a href="downloads.html">downloads</a> page to get the war file.</p>
+<p>Some documents may still not be searchable for various reasons: the
+document is corrupt, bug in one of the libraries that extract text,
+document is encrypted or otherwise protected, etc.</p></section><section>
+<h3><a name="Why_doesn.27t_.2F.2F.2A.5C.5Bjcr:contains.28.40jcr:data.2C_.27foo.27.29.5D.28jcr:contains.28.40jcr:data.2C-.27foo.27.29.html.29_return_matches_for_binary_content.3F"></a>Why doesn't <code>//*\[jcr:contains(@jcr:data, 'foo')](jcr:contains(@jcr:data,-'foo').html)</code> return matches for binary content?</h3>
+<p>Extracted text from binary content is only indexed on the parent node of
+the <code>@jcr:data property. Use jcr:contains()</code> on the nt:resource node.
+Examples:</p>
 
-<div class="source">
-<div class="source"><pre class="prettyprint linenums">//element(*, nt:resource)[jcr:contains(., 'foo')]
+<div class="source"><pre class="prettyprint linenums"><code>//element(*, nt:resource)[jcr:contains(., 'foo')]
 //element(*, nt:file)[jcr:contains(jcr:content, 'foo')]
-</pre></div></div>
-</section><section>
+</code></pre></div></section><section>
 <h3><a name="Can_I_use_the_Lucene_field_syntax_in_jcr:contains.28.29_.3F"></a>Can I use the Lucene field syntax in <code>jcr:contains()</code> ?</h3>
-<p>No, you cannot. Even though Jackrabbit uses a Lucene index, the fields for JCR properties do not map 1:1 to Lucene fields. Instead you can use the following:</p>
+<p>No, you cannot. Even though Jackrabbit uses a Lucene index, the fields for
+JCR properties do not map 1:1 to Lucene fields. Instead you can use the
+following:</p>
 
-<div class="source">
-<div class="source"><pre class="prettyprint linenums">//element(*, book)[jcr:contains(@title, 'jackrabbit') and jcr:contains(@text, 'query')]
-</pre></div></div>
-</section><section>
-<h3><a name="My_XPath_query_returns_no_results_when_I_add_a_path_constraint.2C_what.E2.80.99s_wrong.3F"></a>My XPath query returns no results when I add a path constraint, what&#x2019;s wrong?</h3>
+<div class="source"><pre class="prettyprint linenums"><code>//element(*, book)[jcr:contains(@title, 'jackrabbit') and jcr:contains(@text, 'query')]
+</code></pre></div></section><section>
+<h3><a name="My_XPath_query_returns_no_results_when_I_add_a_path_constraint.2C_what.27s_wrong.3F"></a>My XPath query returns no results when I add a path constraint, what's wrong?</h3>
 <p>You probably forgot to prefix your statement with <i>/jcr:root</i>.</p>
 <p>JSR 170 says in section 6.6.4.3:</p>
 <blockquote>
 
-<p>The context node of an XPath query is the XML node relative to which the query expression is evaluated.</p>
-<p>A relative XPath statement (one that does not have a leading /) will be interpreted relative to the root node of the workspace, which, in the XML document view is the top-most XML element, <a href="jcr:root">jcr:root</a>. This means that one should not include jcr:root as the first segment in a relative XPath statement, since that element is already the default context node.</p>
-<p>An absolute XPath (one with a leading /), in contrast, will be interpreted relative to a position one level above <a href="jcr:root">jcr:root</a>. This means that an absolute XPath must either begin with // or with /jcr:root in order to match anything at all.</p>
+<p>The context node of an XPath query is the XML node relative to which the
+query expression is evaluated.</p>
+<p>A relative XPath statement (one that does not have a leading /) will be
+interpreted relative to the root node of the workspace, which, in the XML
+document view is the top-most XML element, <a href="jcr:root">jcr:root</a>. This means that one
+should not include jcr:root as the first segment in a relative XPath
+statement, since that element is already the default context node.</p>
+<p>An absolute XPath (one with a leading /), in contrast, will be interpreted
+relative to a position one level above <a href="jcr:root">jcr:root</a>. This means that an
+absolute XPath must either begin with // or with /jcr:root in order to
+match anything at all.</p>
 </blockquote></section><section>
 <h3><a name="How_do_I_force_a_consistency_check_on_the_search_index.3F"></a>How do I force a consistency check on the search index?</h3>
-<p>Forcing a consistency check may be useful when you think the index is inconsistent. You need to add two parameters to the SearchIndex section in the workspace.xml configuration file:</p>
+<p>Forcing a consistency check may be useful when you think the index is
+inconsistent. You need to add two parameters to the SearchIndex section in
+the workspace.xml configuration file:</p>
 
-<div class="source">
-<div class="source"><pre class="prettyprint linenums">&lt;param name=&quot;enableConsistencyCheck&quot; value=&quot;true&quot;/&gt;
+<div class="source"><pre class="prettyprint linenums"><code>&lt;param name=&quot;enableConsistencyCheck&quot; value=&quot;true&quot;/&gt;
 &lt;param name=&quot;forceConsistencyCheck&quot; value=&quot;true&quot;/&gt;
-</pre></div></div>
-
-<p>Then restart Jackrabbit and watch the log file for possible repair messages. Don&#x2019;t forget to remove the parameters again when you are done.</p></section><section>
+</code></pre></div>
+<p>Then restart Jackrabbit and watch the log file for possible repair
+messages. Don't forget to remove the parameters again when you are done.</p></section><section>
 <h3><a name="Why_is_the_size_of_my_query_result_-1.3F"></a>Why is the size of my query result -1?</h3>
-<p>A JCR implementation may return -1 when the size is unknown. Starting with 2.0 Jackrabbit will return -1 for some query statements when there is potential for a more optimized query execution. If you still want a size information you can append an order by clause to your statement. This will force Jackrabbit to calculate the result size.</p></section></section>
+<p>A JCR implementation may return -1 when the size is unknown. Starting with
+2.0 Jackrabbit will return -1 for some query statements when there is
+potential for a more optimized query execution. If you still want a size
+information you can append an order by clause to your statement. This will
+force Jackrabbit to calculate the result size.</p></section></section>
         </main>
       </div>
     </div>
@@ -296,10 +381,12 @@ database). The reason why we abstracted
 <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>
         </div>
-    <div id="ohloh" class="pull-right">
-      <script src="https://www.ohloh.net/p/jackrabbit/widgets/project_users_logo.js"></script>
-    </div>
-        </div>
+      </div>
     </footer>
+<script>
+	if(anchors) {
+	  anchors.add();
+	}
+</script>
   </body>
 </html>
\ No newline at end of file

Modified: jackrabbit/site/live/jcr/getting-started-with-apache-jackrabbit.html
URL: http://svn.apache.org/viewvc/jackrabbit/site/live/jcr/getting-started-with-apache-jackrabbit.html?rev=1906010&r1=1906009&r2=1906010&view=diff
==============================================================================
--- jackrabbit/site/live/jcr/getting-started-with-apache-jackrabbit.html (original)
+++ jackrabbit/site/live/jcr/getting-started-with-apache-jackrabbit.html Thu Dec 15 09:54:26 2022
@@ -1,42 +1,40 @@
 <!DOCTYPE html>
+
+
 <!--
- | Generated by Apache Maven Doxia Site Renderer 1.9.2 from src\site\markdown/getting-started-with-apache-jackrabbit.md at 2022-05-12
- | Rendered using Apache Maven Fluido Skin 1.9
+ | Generated by Apache Maven Doxia Site Renderer 1.11.1 from src/site/markdown/getting-started-with-apache-jackrabbit.md at 2022-12-15
+ | Rendered using Apache Maven Fluido Skin 1.11.1
 -->
 <html xmlns="http://www.w3.org/1999/xhtml" lang="en">
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1" />
-    <meta name="generator" content="Apache Maven Doxia Site Renderer 1.9.2" />
+    <meta name="generator" content="Apache Maven Doxia Site Renderer 1.11.1" />
     <title>Apache Jackrabbit &#x2013; Getting Started with Apache Jackrabbit</title>
-    <link rel="stylesheet" href="./css/apache-maven-fluido-1.9.min.css" />
+    <link rel="stylesheet" href="./css/apache-maven-fluido-1.11.1.min.css" />
     <link rel="stylesheet" href="./css/site.css" />
     <link rel="stylesheet" href="./css/print.css" media="print" />
-    <script src="./js/apache-maven-fluido-1.9.min.js"></script>
-<!-- Matomo -->
-<script>
-  var _paq = window._paq = window._paq || [];
-  /* tracker methods like "setCustomDimension" should be called before "trackPageView" */
-  /* We explicitly disable cookie tracking to avoid privacy issues */
-  _paq.push(['disableCookies']);
-  _paq.push(['trackPageView']);
-  _paq.push(['enableLinkTracking']);
-  (function() {
-    var u="https://matomo.privacy.apache.org/";
-    _paq.push(['setTrackerUrl', u+'matomo.php']);
-    _paq.push(['setSiteId', '4']);
-    var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
-    g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
-  })();
-</script>
-<!-- End Matomo Code -->
+    <script src="./js/apache-maven-fluido-1.11.1.min.js"></script>
+
+    <!-- Matomo -->
+    <script>
+        var _paq = window._paq = window._paq || [];
+                _paq.push(['disableCookies']);
+                    _paq.push(['trackPageView']);
+                    _paq.push(['enableLinkTracking']);
+        
+        (function() {
+            var u="https://analytics.apache.org";
+            _paq.push(['setTrackerUrl', u+'/matomo.php']);
+            _paq.push(['setSiteId', '4']);
+            var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
+            g.async=true; g.src=u+'/matomo.js'; s.parentNode.insertBefore(g,s);
+        })();
+    </script>
+    <!-- End Matomo Code -->
   </head>
   <body class="topBarEnabled">
-    <a href="https://github.com/apache/jackrabbit">
-      <img style="position: absolute; top: 0; right: 0; border: 0; z-index: 10000;"
-        src="https://s3.amazonaws.com/github/ribbons/forkme_right_red_aa0000.png"
-        alt="Fork me on GitHub">
-    </a>
+    <a class="github-fork-ribbon right-top" href="https://github.com/apache/jackrabbit" data-ribbon="Fork me on GitHub" title="Fork me on GitHub">Fork me on GitHub</a>
     <header id="topbar" class="navbar navbar-fixed-top ">
       <div class="navbar-inner">
         <div class="container-fluid">
@@ -49,7 +47,7 @@
 </a>
             <ul class="nav">
       <li class="dropdown">
-        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Apache Jackrabbit <b class="caret"></b></a>
+        <a class="dropdown-toggle" data-toggle="dropdown">Apache Jackrabbit <b class="caret"></b></a>
         <ul class="dropdown-menu">
             <li><a href="index.html" title="Welcome">Welcome</a></li>
             <li><a href="downloads.html" title="Downloads">Downloads</a></li>
@@ -60,9 +58,9 @@
         </ul>
       </li>
       <li class="dropdown">
-        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Documentation <b class="caret"></b></a>
+        <a class="dropdown-toggle" data-toggle="dropdown">Documentation <b class="caret"></b></a>
         <ul class="dropdown-menu">
-            <li><a href="getting-started-with-apache-jackrabbit.html" title="Getting Started">Getting Started</a></li>
+            <li><a title="Getting Started">Getting Started</a></li>
             <li><a href="standalone-server.html" title="Standalone Server">Standalone Server</a></li>
             <li><a href="jackrabbit-components.html" title="Jackrabbit Components">Jackrabbit Components</a></li>
             <li><a href="first-hops.html" title="First Hops">First Hops</a></li>
@@ -75,7 +73,7 @@
         </ul>
       </li>
       <li class="dropdown">
-        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Development <b class="caret"></b></a>
+        <a class="dropdown-toggle" data-toggle="dropdown">Development <b class="caret"></b></a>
         <ul class="dropdown-menu">
             <li><a href="jackrabbit-team.html" title="Jackrabbit Team">Jackrabbit Team</a></li>
             <li><a href="jackrabbit-roadmap.html" title="Jackrabbit Roadmap">Jackrabbit Roadmap</a></li>
@@ -90,7 +88,7 @@
         </ul>
       </li>
       <li class="dropdown">
-        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Apache Software Foundation <b class="caret"></b></a>
+        <a class="dropdown-toggle" data-toggle="dropdown">Apache Software Foundation <b class="caret"></b></a>
         <ul class="dropdown-menu">
             <li><a href="https://www.apache.org/foundation/how-it-works.html" title="Introduction">Introduction</a></li>
             <li><a href="https://www.apache.org/foundation/sponsorship.html" title="Sponsorship">Sponsorship</a></li>
@@ -105,7 +103,7 @@
     <div class="container-fluid">
       <header>
         <div id="banner">
-          <div class="pull-left"><div id="bannerLeft"><h2>Apache Jackrabbit Site</h2>
+          <div class="pull-left"><div id="bannerLeft"><h1>Apache Jackrabbit Site</h1>
 </div>
 </div>
           <div class="pull-right"></div>
@@ -114,7 +112,7 @@
 
         <div id="breadcrumbs">
           <ul class="breadcrumb">
-        <li id="publishDate">Last Published: 2022-05-12</li>
+        <li id="publishDate">Last Published: 2022-12-15</li>
           </ul>
         </div>
       </header>
@@ -130,7 +128,7 @@
     <li><a href="https://jackrabbit.apache.org/archive/wiki/JCR/Home_70731.html" class="externalLink" title="Archived Jackrabbit Wiki"><span class="none"></span>Archived Jackrabbit Wiki</a></li>
     <li><a href="jackrabbit-history.html" title="Jackrabbit History"><span class="none"></span>Jackrabbit History</a></li>
    <li class="nav-header">Documentation</li>
-    <li class="active"><a href="#"><span class="none"></span>Getting Started</a></li>
+    <li class="active"><a><span class="none"></span>Getting Started</a></li>
     <li><a href="standalone-server.html" title="Standalone Server"><span class="none"></span>Standalone Server</a></li>
     <li><a href="jackrabbit-components.html" title="Jackrabbit Components"><span class="none"></span>Jackrabbit Components</a></li>
     <li><a href="first-hops.html" title="First Hops"><span class="none"></span>First Hops</a></li>
@@ -159,7 +157,6 @@
   </ul>
           </nav>
           <div class="well sidebar-nav">
-            <hr />
             <div id="poweredBy">
               <div class="clear"></div>
               <div class="clear"></div>
@@ -186,21 +183,43 @@
    limitations under the License.
 -->
 <h1>Getting Started with Apache Jackrabbit</h1>
-<p>To get started with Jackrabbit you should first become familiar with the JCR API. Download the <a class="externalLink" href="http://jcp.org/aboutJava/communityprocess/final/jsr170/index.html">JSR 170 specification</a>, browse the <a class="externalLink" href="https://s.apache.org/jcr-1.0-javadoc/">API documentation</a>, check our introduction to JCR levels, or read some of the JCR articles to understand the content repository model that Jackrabbit implements. You can also take a look at the various JCR and Jackrabbit applications to get an idea of what to do with a content repository.</p>
-<p>If you are interested in using Jackrabbit, you should check the Jackrabbit architecture and try out the First Hops examples we have prepared. You can either download a binary release or build Jackrabbit<br />
+<p>To get started with Jackrabbit you should first become familiar with the
+JCR API. Download the <a class="externalLink" href="http://jcp.org/aboutJava/communityprocess/final/jsr170/index.html">JSR 170 specification</a>,
+browse the <a class="externalLink" href="https://s.apache.org/jcr-1.0-javadoc/">API documentation</a>,
+check our introduction to JCR levels, or read some of the JCR
+articles to understand the content repository model that Jackrabbit
+implements. You can also take a look at the various JCR and
+Jackrabbit applications to get an idea of what to do with a content
+repository.</p>
+<p>If you are interested in using Jackrabbit, you should check the Jackrabbit
+architecture and try out the First Hops examples we have
+prepared. You can either download a binary release or build Jackrabbit<br />
 from sources.</p>
 <p>Take a look at the Frequently Asked Questions or browse the<br />
-archives of the user and development mailing lists (see also the searchable archives at The Mail Archive, Gmane, and Nabble) for answers to questions not covered by the documentation pages. See the Mailing Lists page if you want to subscribe or unsubscribe the Jackrabbit mailing lists.</p>
-<p>Apache Jackrabbit is an open source project and welcomes all contributions. You can participate by answering questions on the mailing list, filing bug reports for any problems or improvement ideas<br />
-you come up with, contributing to the Jackrabbit Wiki, or writing documentation and code. See the How the ASF works page for background<br />
+archives of the user and development mailing lists (see also the searchable
+archives at The Mail Archive, Gmane, and Nabble) for answers to questions
+not covered by the documentation pages. See the Mailing Lists page
+if you want to subscribe or unsubscribe the Jackrabbit mailing
+lists.</p>
+<p>Apache Jackrabbit is an open source project and welcomes all
+contributions. You can participate by answering questions on the
+mailing list, filing bug reports for any problems or improvement ideas<br />
+you come up with, contributing to the Jackrabbit Wiki, or writing
+documentation and code. See the How the ASF works page for background<br />
 information on the Apache Software Foundation and the way we work.</p><section>
 <h2><a name="Content_Repository_for_Java_Technology_API_.28JCR.29"></a>Content Repository for Java Technology API (JCR)</h2>
 <p>Jackrabbit is a complete implementation of the JCR API, so the<br />
-primary API for Jackrabbit application developers is to be found in the JCR section of the Documentation.</p></section><section>
+primary API for Jackrabbit application developers is to be found in
+the JCR section of the Documentation.</p></section><section>
 <h2><a name="Jackrabbit_architecture_and_Deployment_Models"></a>Jackrabbit architecture and Deployment Models</h2>
-<p>Find out more about the Jackrabbit Architecture or learn more about the Jackrabbit deployment Options be it as an embedded content repository to be delivered with you are application, a shared repository for example in a J2EE environment or a classical content repository server setup.</p></section><section>
+<p>Find out more about the Jackrabbit Architecture or learn more
+about the Jackrabbit deployment Options be it as an embedded
+content repository to be delivered with you are application, a
+shared repository for example in a J2EE environment or a classical content
+repository server setup.</p></section><section>
 <h2><a name="Node_Types"></a>Node Types</h2>
-<p>To learn about the content modeling system used in Jackrabbit, read the section on node types.</p></section>
+<p>To learn about the content modeling system used in Jackrabbit, read the
+section on node types.</p></section>
         </main>
       </div>
     </div>
@@ -212,10 +231,12 @@ primary API for Jackrabbit application d
 <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>
         </div>
-    <div id="ohloh" class="pull-right">
-      <script src="https://www.ohloh.net/p/jackrabbit/widgets/project_users_logo.js"></script>
-    </div>
-        </div>
+      </div>
     </footer>
+<script>
+	if(anchors) {
+	  anchors.add();
+	}
+</script>
   </body>
 </html>
\ No newline at end of file

Modified: jackrabbit/site/live/jcr/how-jackrabbit-works.html
URL: http://svn.apache.org/viewvc/jackrabbit/site/live/jcr/how-jackrabbit-works.html?rev=1906010&r1=1906009&r2=1906010&view=diff
==============================================================================
--- jackrabbit/site/live/jcr/how-jackrabbit-works.html (original)
+++ jackrabbit/site/live/jcr/how-jackrabbit-works.html Thu Dec 15 09:54:26 2022
@@ -1,42 +1,40 @@
 <!DOCTYPE html>
+
+
 <!--
- | Generated by Apache Maven Doxia Site Renderer 1.9.2 from src\site\markdown/how-jackrabbit-works.md at 2022-05-12
- | Rendered using Apache Maven Fluido Skin 1.9
+ | Generated by Apache Maven Doxia Site Renderer 1.11.1 from src/site/markdown/how-jackrabbit-works.md at 2022-12-15
+ | Rendered using Apache Maven Fluido Skin 1.11.1
 -->
 <html xmlns="http://www.w3.org/1999/xhtml" lang="en">
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1" />
-    <meta name="generator" content="Apache Maven Doxia Site Renderer 1.9.2" />
+    <meta name="generator" content="Apache Maven Doxia Site Renderer 1.11.1" />
     <title>Apache Jackrabbit &#x2013; How Jackrabbit works</title>
-    <link rel="stylesheet" href="./css/apache-maven-fluido-1.9.min.css" />
+    <link rel="stylesheet" href="./css/apache-maven-fluido-1.11.1.min.css" />
     <link rel="stylesheet" href="./css/site.css" />
     <link rel="stylesheet" href="./css/print.css" media="print" />
-    <script src="./js/apache-maven-fluido-1.9.min.js"></script>
-<!-- Matomo -->
-<script>
-  var _paq = window._paq = window._paq || [];
-  /* tracker methods like "setCustomDimension" should be called before "trackPageView" */
-  /* We explicitly disable cookie tracking to avoid privacy issues */
-  _paq.push(['disableCookies']);
-  _paq.push(['trackPageView']);
-  _paq.push(['enableLinkTracking']);
-  (function() {
-    var u="https://matomo.privacy.apache.org/";
-    _paq.push(['setTrackerUrl', u+'matomo.php']);
-    _paq.push(['setSiteId', '4']);
-    var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
-    g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
-  })();
-</script>
-<!-- End Matomo Code -->
+    <script src="./js/apache-maven-fluido-1.11.1.min.js"></script>
+
+    <!-- Matomo -->
+    <script>
+        var _paq = window._paq = window._paq || [];
+                _paq.push(['disableCookies']);
+                    _paq.push(['trackPageView']);
+                    _paq.push(['enableLinkTracking']);
+        
+        (function() {
+            var u="https://analytics.apache.org";
+            _paq.push(['setTrackerUrl', u+'/matomo.php']);
+            _paq.push(['setSiteId', '4']);
+            var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
+            g.async=true; g.src=u+'/matomo.js'; s.parentNode.insertBefore(g,s);
+        })();
+    </script>
+    <!-- End Matomo Code -->
   </head>
   <body class="topBarEnabled">
-    <a href="https://github.com/apache/jackrabbit">
-      <img style="position: absolute; top: 0; right: 0; border: 0; z-index: 10000;"
-        src="https://s3.amazonaws.com/github/ribbons/forkme_right_red_aa0000.png"
-        alt="Fork me on GitHub">
-    </a>
+    <a class="github-fork-ribbon right-top" href="https://github.com/apache/jackrabbit" data-ribbon="Fork me on GitHub" title="Fork me on GitHub">Fork me on GitHub</a>
     <header id="topbar" class="navbar navbar-fixed-top ">
       <div class="navbar-inner">
         <div class="container-fluid">
@@ -49,7 +47,7 @@
 </a>
             <ul class="nav">
       <li class="dropdown">
-        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Apache Jackrabbit <b class="caret"></b></a>
+        <a class="dropdown-toggle" data-toggle="dropdown">Apache Jackrabbit <b class="caret"></b></a>
         <ul class="dropdown-menu">
             <li><a href="index.html" title="Welcome">Welcome</a></li>
             <li><a href="downloads.html" title="Downloads">Downloads</a></li>
@@ -60,7 +58,7 @@
         </ul>
       </li>
       <li class="dropdown">
-        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Documentation <b class="caret"></b></a>
+        <a class="dropdown-toggle" data-toggle="dropdown">Documentation <b class="caret"></b></a>
         <ul class="dropdown-menu">
             <li><a href="getting-started-with-apache-jackrabbit.html" title="Getting Started">Getting Started</a></li>
             <li><a href="standalone-server.html" title="Standalone Server">Standalone Server</a></li>
@@ -75,7 +73,7 @@
         </ul>
       </li>
       <li class="dropdown">
-        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Development <b class="caret"></b></a>
+        <a class="dropdown-toggle" data-toggle="dropdown">Development <b class="caret"></b></a>
         <ul class="dropdown-menu">
             <li><a href="jackrabbit-team.html" title="Jackrabbit Team">Jackrabbit Team</a></li>
             <li><a href="jackrabbit-roadmap.html" title="Jackrabbit Roadmap">Jackrabbit Roadmap</a></li>
@@ -90,7 +88,7 @@
         </ul>
       </li>
       <li class="dropdown">
-        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Apache Software Foundation <b class="caret"></b></a>
+        <a class="dropdown-toggle" data-toggle="dropdown">Apache Software Foundation <b class="caret"></b></a>
         <ul class="dropdown-menu">
             <li><a href="https://www.apache.org/foundation/how-it-works.html" title="Introduction">Introduction</a></li>
             <li><a href="https://www.apache.org/foundation/sponsorship.html" title="Sponsorship">Sponsorship</a></li>
@@ -105,7 +103,7 @@
     <div class="container-fluid">
       <header>
         <div id="banner">
-          <div class="pull-left"><div id="bannerLeft"><h2>Apache Jackrabbit Site</h2>
+          <div class="pull-left"><div id="bannerLeft"><h1>Apache Jackrabbit Site</h1>
 </div>
 </div>
           <div class="pull-right"></div>
@@ -114,7 +112,7 @@
 
         <div id="breadcrumbs">
           <ul class="breadcrumb">
-        <li id="publishDate">Last Published: 2022-05-12</li>
+        <li id="publishDate">Last Published: 2022-12-15</li>
           </ul>
         </div>
       </header>
@@ -159,7 +157,6 @@
   </ul>
           </nav>
           <div class="well sidebar-nav">
-            <hr />
             <div id="poweredBy">
               <div class="clear"></div>
               <div class="clear"></div>
@@ -186,38 +183,73 @@
    limitations under the License.
 -->
 <h1>How Jackrabbit works</h1>
-<p>The diagram on the left explains which components of the Jackrabbit are used when a user of the JCR API modified content in the content repository. This is a simple and very common operation, that touches a large portion of the components in the Jackrabbit implementation. Please keep in mind that this implementation architecture is not mandated by JCR, but has been designed from scratch based on JCR.</p>
+<p>The diagram on the left explains which components of the Jackrabbit are
+used when a user of the JCR API modified content in the content repository.
+This is a simple and very common operation, that touches a large portion of
+the components in the Jackrabbit implementation. Please keep in mind that
+this implementation architecture is not mandated by JCR, but has been
+designed from scratch based on JCR.</p>
 <p><img src="how-jackrabbit-works-ism.jpg" alt="Item State Manager" /></p>
-<p>The used components and their respective functions in the order of their appearance in the use case of writing or modifying content in the content repository:</p>
+<p>The used components and their respective functions in the order of their
+appearance in the use case of writing or modifying content in the content
+repository:</p>
 <ul>
 
 <li>
 
 <p><b>Transient Item State Manager</b><br />
-Once content items are read by a session they are cached in the Transient Item State Manager. When those items are modified the modification is only visible to that same session, in the so-called &#x201c;transient&#x201d; space.</p>
+Once content items are read by a session
+they are cached in the Transient Item State Manager. When those items are
+modified the modification is only visible to that same session, in the
+so-called &#x201c;transient&#x201d; space.</p>
 </li>
 <li>
 
-<p><b>Transactional Item State Manager</b> When the Application persists the modified items using the JCR <code>Item.save()</code> or <code>Session.save()</code> the transient Items are promoted into the Transactional ISM. The modifications are still only visible within the scope of this transaction, meaning that other sessions will not see the modification until they are committed. The commit is implicit if the Content Repository is not running in an XA environment.</p>
+<p><b>Transactional Item State Manager</b>
+When the Application persists the
+modified items using the JCR <code>Item.save()</code> or <code>Session.save()</code> the transient
+Items are promoted into the Transactional ISM. The modifications are still
+only visible within the scope of this transaction, meaning that other
+sessions will not see the modification until they are committed. The commit
+is implicit if the Content Repository is not running in an XA environment.</p>
 </li>
 <li>
 
-<p><b>Shared Item State Manager</b> Once a transaction is committed the Shared Item State Manager receives the changelog and publishes the changes to all the sessions logged into the same workspace. This means that all the Item States that are cached and referenced by other sessions are notified and possibly updated or invalidated. The Shared Item State Manager also triggers the observation and hands the changelog over to the persistence manager that is configured for this workspace.</p>
+<p><b>Shared Item State Manager</b>
+Once a transaction is committed the Shared
+Item State Manager receives the changelog and publishes the changes to all
+the sessions logged into the same workspace. This means that all the Item
+States that are cached and referenced by other sessions are notified and
+possibly updated or invalidated. The Shared Item State Manager also
+triggers the observation and hands the changelog over to the persistence
+manager that is configured for this workspace.</p>
 </li>
 <li>
 
 <p><b>Persistence Manager</b><br />
-The Persistence Manager persists all the Item States in the changelog passed by the Shared ISM. The persistence manager is a very simple, fast and transactional interface that is very low-level and does not need to understand the complexities of the repository operations, but basically just needs to be able persist and retrieve a given item based on its item id.</p>
+The Persistence Manager persists all the Item
+States in the changelog passed by the Shared ISM. The persistence manager
+is a very simple, fast and transactional interface that is very low-level
+and does not need to understand the complexities of the repository
+operations, but basically just needs to be able persist and retrieve a
+given item based on its item id.</p>
 </li>
 <li>
 
 <p><b>Observation</b><br />
-When a transaction is committed the Shared Item State Manager triggers the Observation mechanism. This allows applications to asynchronously subscribe changes in the workspace. Jackrabbit also non-standard offers a synchronous observation.</p>
+When a transaction is committed the Shared Item State
+Manager triggers the Observation mechanism. This allows applications to
+asynchronously subscribe changes in the workspace. Jackrabbit also
+non-standard offers a synchronous observation.</p>
 </li>
 <li>
 
 <p><b>Query Manager / Index</b><br />
-Through a synchronous observation event the Query Manager is instructed to index the new or modified items. A content repository index is much more complex than a classical RDB index since it deals with content repository features like the item hierarchy, nodetype inheritance or fulltext searches.</p>
+Through a synchronous observation event the Query
+Manager is instructed to index the new or modified items. A content
+repository index is much more complex than a classical RDB index since it
+deals with content repository features like the item hierarchy, nodetype
+inheritance or fulltext searches.</p>
 </li>
 </ul>
         </main>
@@ -231,10 +263,12 @@ Through a synchronous observation event
 <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>
         </div>
-    <div id="ohloh" class="pull-right">
-      <script src="https://www.ohloh.net/p/jackrabbit/widgets/project_users_logo.js"></script>
-    </div>
-        </div>
+      </div>
     </footer>
+<script>
+	if(anchors) {
+	  anchors.add();
+	}
+</script>
   </body>
 </html>
\ No newline at end of file

Modified: jackrabbit/site/live/jcr/index-readers.html
URL: http://svn.apache.org/viewvc/jackrabbit/site/live/jcr/index-readers.html?rev=1906010&r1=1906009&r2=1906010&view=diff
==============================================================================
--- jackrabbit/site/live/jcr/index-readers.html (original)
+++ jackrabbit/site/live/jcr/index-readers.html Thu Dec 15 09:54:26 2022
@@ -1,42 +1,40 @@
 <!DOCTYPE html>
+
+
 <!--
- | Generated by Apache Maven Doxia Site Renderer 1.9.2 from src\site\markdown/index-readers.md at 2022-05-12
- | Rendered using Apache Maven Fluido Skin 1.9
+ | Generated by Apache Maven Doxia Site Renderer 1.11.1 from src/site/markdown/index-readers.md at 2022-12-15
+ | Rendered using Apache Maven Fluido Skin 1.11.1
 -->
 <html xmlns="http://www.w3.org/1999/xhtml" lang="en">
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1" />
-    <meta name="generator" content="Apache Maven Doxia Site Renderer 1.9.2" />
+    <meta name="generator" content="Apache Maven Doxia Site Renderer 1.11.1" />
     <title>Apache Jackrabbit &#x2013; Index readers</title>
-    <link rel="stylesheet" href="./css/apache-maven-fluido-1.9.min.css" />
+    <link rel="stylesheet" href="./css/apache-maven-fluido-1.11.1.min.css" />
     <link rel="stylesheet" href="./css/site.css" />
     <link rel="stylesheet" href="./css/print.css" media="print" />
-    <script src="./js/apache-maven-fluido-1.9.min.js"></script>
-<!-- Matomo -->
-<script>
-  var _paq = window._paq = window._paq || [];
-  /* tracker methods like "setCustomDimension" should be called before "trackPageView" */
-  /* We explicitly disable cookie tracking to avoid privacy issues */
-  _paq.push(['disableCookies']);
-  _paq.push(['trackPageView']);
-  _paq.push(['enableLinkTracking']);
-  (function() {
-    var u="https://matomo.privacy.apache.org/";
-    _paq.push(['setTrackerUrl', u+'matomo.php']);
-    _paq.push(['setSiteId', '4']);
-    var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
-    g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
-  })();
-</script>
-<!-- End Matomo Code -->
+    <script src="./js/apache-maven-fluido-1.11.1.min.js"></script>
+
+    <!-- Matomo -->
+    <script>
+        var _paq = window._paq = window._paq || [];
+                _paq.push(['disableCookies']);
+                    _paq.push(['trackPageView']);
+                    _paq.push(['enableLinkTracking']);
+        
+        (function() {
+            var u="https://analytics.apache.org";
+            _paq.push(['setTrackerUrl', u+'/matomo.php']);
+            _paq.push(['setSiteId', '4']);
+            var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
+            g.async=true; g.src=u+'/matomo.js'; s.parentNode.insertBefore(g,s);
+        })();
+    </script>
+    <!-- End Matomo Code -->
   </head>
   <body class="topBarEnabled">
-    <a href="https://github.com/apache/jackrabbit">
-      <img style="position: absolute; top: 0; right: 0; border: 0; z-index: 10000;"
-        src="https://s3.amazonaws.com/github/ribbons/forkme_right_red_aa0000.png"
-        alt="Fork me on GitHub">
-    </a>
+    <a class="github-fork-ribbon right-top" href="https://github.com/apache/jackrabbit" data-ribbon="Fork me on GitHub" title="Fork me on GitHub">Fork me on GitHub</a>
     <header id="topbar" class="navbar navbar-fixed-top ">
       <div class="navbar-inner">
         <div class="container-fluid">
@@ -49,7 +47,7 @@
 </a>
             <ul class="nav">
       <li class="dropdown">
-        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Apache Jackrabbit <b class="caret"></b></a>
+        <a class="dropdown-toggle" data-toggle="dropdown">Apache Jackrabbit <b class="caret"></b></a>
         <ul class="dropdown-menu">
             <li><a href="index.html" title="Welcome">Welcome</a></li>
             <li><a href="downloads.html" title="Downloads">Downloads</a></li>
@@ -60,7 +58,7 @@
         </ul>
       </li>
       <li class="dropdown">
-        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Documentation <b class="caret"></b></a>
+        <a class="dropdown-toggle" data-toggle="dropdown">Documentation <b class="caret"></b></a>
         <ul class="dropdown-menu">
             <li><a href="getting-started-with-apache-jackrabbit.html" title="Getting Started">Getting Started</a></li>
             <li><a href="standalone-server.html" title="Standalone Server">Standalone Server</a></li>
@@ -75,7 +73,7 @@
         </ul>
       </li>
       <li class="dropdown">
-        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Development <b class="caret"></b></a>
+        <a class="dropdown-toggle" data-toggle="dropdown">Development <b class="caret"></b></a>
         <ul class="dropdown-menu">
             <li><a href="jackrabbit-team.html" title="Jackrabbit Team">Jackrabbit Team</a></li>
             <li><a href="jackrabbit-roadmap.html" title="Jackrabbit Roadmap">Jackrabbit Roadmap</a></li>
@@ -90,7 +88,7 @@
         </ul>
       </li>
       <li class="dropdown">
-        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Apache Software Foundation <b class="caret"></b></a>
+        <a class="dropdown-toggle" data-toggle="dropdown">Apache Software Foundation <b class="caret"></b></a>
         <ul class="dropdown-menu">
             <li><a href="https://www.apache.org/foundation/how-it-works.html" title="Introduction">Introduction</a></li>
             <li><a href="https://www.apache.org/foundation/sponsorship.html" title="Sponsorship">Sponsorship</a></li>
@@ -105,7 +103,7 @@
     <div class="container-fluid">
       <header>
         <div id="banner">
-          <div class="pull-left"><div id="bannerLeft"><h2>Apache Jackrabbit Site</h2>
+          <div class="pull-left"><div id="bannerLeft"><h1>Apache Jackrabbit Site</h1>
 </div>
 </div>
           <div class="pull-right"></div>
@@ -114,7 +112,7 @@
 
         <div id="breadcrumbs">
           <ul class="breadcrumb">
-        <li id="publishDate">Last Published: 2022-05-12</li>
+        <li id="publishDate">Last Published: 2022-12-15</li>
           </ul>
         </div>
       </header>
@@ -159,7 +157,6 @@
   </ul>
           </nav>
           <div class="well sidebar-nav">
-            <hr />
             <div id="poweredBy">
               <div class="clear"></div>
               <div class="clear"></div>
@@ -186,25 +183,88 @@
    limitations under the License.
 -->
 <h1>Index readers</h1>
-<p>Jackrabbit uses Lucene as the underlying index implementation and provides several extensions and customizations that help improve performance in an environment where changes to the index are frequent. The extensions also cover features that are not supported by Lucene, like hierarchical queries.</p>
+<p>Jackrabbit uses Lucene as the underlying index implementation and provides
+several extensions and customizations that help improve performance in an
+environment where changes to the index are frequent. The extensions also
+cover features that are not supported by Lucene, like hierarchical queries.</p>
 <p><img src="index-readers-per-segment.jpg" alt="Per Index Segment" /></p><section>
 <h2><a name="CachingIndexReader"></a>CachingIndexReader</h2>
-<p>The <code>CachingIndexReader</code> is at the very bottom of the index reader stack in Jackrabbit. It&#x2019;s main purpose is to cache the parent relationship of a node. Each node is represented with a document in the index and one of the fields is <code>_:PARENT</code>. The value of this field is the string representation of the parent nodes UUID. In case of the root node the the parent field contains an empty string as its value. Several queries in Jackrabbit are hierarchical and check whether a node is a descendant of another node. For the very simple case, where one needs to know if a node is the child of another node, we can just look up both nodes (lucene documents) in the index and compare the parent field on one node with the <code>_:UUID</code> field of the other. If they match the one is the child of the other node. When it comes to evaluating a descendant axis, this becomes much more expensive and will cause lots of document lookups in lucene. By caching the parent ch
 ild relationship of documents, hierarchical operations can be executed much faster.</p>
-<p>The cache consists of an array of DocId instances. The length of this array corresponds to the number of documents accessible through the index reader. That is every document in the index has a corresponding cache entry in the array. Initially the cache is empty and is filled as it is accessed. There are two kinds of DocIds: PlainDocId and UUIDDocId. When the parent of a node resides in the same index segment a PlainDocId is created, which simply contains the document number of the parent. If the parent resides in a different index segment a UUIDDocId is created, which contains the UUID of the parent node. When a UUIDDocId is resolved it is passed an index reader, which allows it to get the document number for the UUID and cache it for later reuse.</p></section><section>
+<p>The <code>CachingIndexReader</code> is at the very bottom of the index reader stack in
+Jackrabbit. It's main purpose is to cache the parent relationship of a
+node. Each node is represented with a document in the index and one of the
+fields is <code>_:PARENT</code>. The value of this field is the string representation of
+the parent nodes UUID. In case of the root node the the parent field
+contains an empty string as its value. Several queries in Jackrabbit are
+hierarchical and check whether a node is a descendant of another node. For
+the very simple case, where one needs to know if a node is the child of
+another node, we can just look up both nodes (lucene documents) in the
+index and compare the parent field on one node with the <code>_:UUID</code> field of the
+other. If they match the one is the child of the other node. When it comes
+to evaluating a descendant axis, this becomes much more expensive and will
+cause lots of document lookups in lucene. By caching the parent child
+relationship of documents, hierarchical operations can be executed much
+faster.</p>
+<p>The cache consists of an array of DocId instances. The length of this array
+corresponds to the number of documents accessible through the index reader.
+That is every document in the index has a corresponding cache entry in the
+array. Initially the cache is empty and is filled as it is accessed. There
+are two kinds of DocIds: PlainDocId and UUIDDocId. When the parent of a
+node resides in the same index segment a PlainDocId is created, which
+simply contains the document number of the parent. If the parent resides in
+a different index segment a UUIDDocId is created, which contains the UUID
+of the parent node. When a UUIDDocId is resolved it is passed an index
+reader, which allows it to get the document number for the UUID and cache
+it for later reuse.</p></section><section>
 <h2><a name="Overwriting_DocId"></a>Overwriting DocId</h2>
-<p>It may happen that a PlainDocId is present in the cache of a <code>CachingIndexReader</code> but must be considered invalid in the context of a call. <code>CachingIndexReader.getParent()</code> may be called from a ReadOnlyIndexReader instance which has the target of the PlainDocId in the set of deleted document. This indicates that the nodes has been deleted or modified. Thus it has traveled to another index segment. In this case the PlainDocId is overwritten with a UUIDDocId. The opposite never happens. A UUIDDocId is never overwritten with a PlainDocId because when a document is added to an index a new CachingIndexReader is created.</p></section><section>
+<p>It may happen that a PlainDocId is present in the cache of a
+<code>CachingIndexReader</code> but must be considered invalid in the context of a call.
+<code>CachingIndexReader.getParent()</code> may be called from a ReadOnlyIndexReader
+instance which has the target of the PlainDocId in the set of deleted
+document. This indicates that the nodes has been deleted or modified. Thus
+it has traveled to another index segment. In this case the PlainDocId is
+overwritten with a UUIDDocId. The opposite never happens. A UUIDDocId is
+never overwritten with a PlainDocId because when a document is added to an
+index a new CachingIndexReader is created.</p></section><section>
 <h2><a name="SharedIndexReader"></a>SharedIndexReader</h2>
-<p>The SharedIndexReader wraps a CachingIndexReader and adds a reference count facility. A SharedIndexReader is kept open for the entire lifetime of a PersistentIndex. Even if documents are marked deleted in the underlying index (by another thread through CommittableIndexReader), the SharedIndexReader will still be kept open and considers the documents as valid. The reference counting is needed because it may happen that a client of the SharedIndexReader is still in use while the underlying PersistentIndex is closed. This may happen when the index merger replaces indexes while a query still operates on the indexes to be deleted. Using reference counts, closing the SharedIndexReader is delayed until all clients are finished with the  SharedIndexReader.</p></section><section>
+<p>The SharedIndexReader wraps a CachingIndexReader and adds a reference count
+facility. A SharedIndexReader is kept open for the entire lifetime of a
+PersistentIndex. Even if documents are marked deleted in the underlying
+index (by another thread through CommittableIndexReader), the
+SharedIndexReader will still be kept open and considers the documents as
+valid. The reference counting is needed because it may happen that a client
+of the SharedIndexReader is still in use while the underlying
+PersistentIndex is closed. This may happen when the index merger replaces
+indexes while a query still operates on the indexes to be deleted. Using
+reference counts, closing the SharedIndexReader is delayed until all
+clients are finished with the  SharedIndexReader.</p></section><section>
 <h2><a name="ReadOnlyIndexReader"></a>ReadOnlyIndexReader</h2>
-<p>The inconsistency introduced by the SharedIndexReader (considers deleted documents as still valid) is corrected by the ReadOnlyIndexReader. Whenever a new instance of this reader is created it copies the currently marked deleted documents from the CommittableIndexReader. At the same time all methods that attempt delete documents will throw a UnsupportedOperationException.</p></section><section>
+<p>The inconsistency introduced by the SharedIndexReader (considers deleted
+documents as still valid) is corrected by the ReadOnlyIndexReader. Whenever
+a new instance of this reader is created it copies the currently marked
+deleted documents from the CommittableIndexReader. At the same time all
+methods that attempt delete documents will throw a
+UnsupportedOperationException.</p></section><section>
 <h2><a name="CommittableIndexReader"></a>CommittableIndexReader</h2>
-<p>This is the index reader where documents are marked deleted in a PersistentIndex. As with the SharedIndexReader the CommittableIndexReader is kept open for the entire lifetime of the PersistentIndex. To achieve this the CommittableIndexReader exposes a method commitDeleted, which forces the underlying native lucene index reader to commit changes. Only committing changes whithout closing the index reader is otherwise not possible using the plain lucene index reader.</p></section><section>
+<p>This is the index reader where documents are marked deleted in a
+PersistentIndex. As with the SharedIndexReader the CommittableIndexReader
+is kept open for the entire lifetime of the PersistentIndex. To achieve
+this the CommittableIndexReader exposes a method commitDeleted, which
+forces the underlying native lucene index reader to commit changes. Only
+committing changes whithout closing the index reader is otherwise not
+possible using the plain lucene index reader.</p></section><section>
 <h2><a name="Combining_the_index_segments"></a>Combining the index segments</h2>
 <p><img src="index-readers-per-query-handler.jpg" alt="Per Query Handler" /></p></section><section>
 <h2><a name="CachingMultiIndexReader"></a>CachingMultiIndexReader</h2>
-<p>The index for the content of a workspace consists of multiple segments, that is multiple ReadOnlyIndexReaders. They are combined in a MultiIndex using a CachingMultiIndexReader. In order to speed up lookups by UUID the CachingMultiIndexReader also has a DocNumberCache. This cache uses a LRU algorithm to keep a limited amount of UUID to document number mappings.</p></section><section>
+<p>The index for the content of a workspace consists of multiple segments,
+that is multiple ReadOnlyIndexReaders. They are combined in a MultiIndex
+using a CachingMultiIndexReader. In order to speed up lookups by UUID the
+CachingMultiIndexReader also has a DocNumberCache. This cache uses a LRU
+algorithm to keep a limited amount of UUID to document number mappings.</p></section><section>
 <h2><a name="CombinedIndexReader"></a>CombinedIndexReader</h2>
-<p>This index reader is similar to the CachingMultiIndexReader, in fact both implement MultiIndexReader and HierarchyResolver. A CombinedIndexReader is created when a query needs an index reader that spans both the workspace index as well as the jcr:system index, where the version store resides.</p></section>
+<p>This index reader is similar to the CachingMultiIndexReader, in fact both
+implement MultiIndexReader and HierarchyResolver. A CombinedIndexReader is
+created when a query needs an index reader that spans both the workspace
+index as well as the jcr:system index, where the version store resides.</p></section>
         </main>
       </div>
     </div>
@@ -216,10 +276,12 @@
 <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>
         </div>
-    <div id="ohloh" class="pull-right">
-      <script src="https://www.ohloh.net/p/jackrabbit/widgets/project_users_logo.js"></script>
-    </div>
-        </div>
+      </div>
     </footer>
+<script>
+	if(anchors) {
+	  anchors.add();
+	}
+</script>
   </body>
 </html>
\ No newline at end of file

Modified: jackrabbit/site/live/jcr/index.html
URL: http://svn.apache.org/viewvc/jackrabbit/site/live/jcr/index.html?rev=1906010&r1=1906009&r2=1906010&view=diff
==============================================================================
--- jackrabbit/site/live/jcr/index.html (original)
+++ jackrabbit/site/live/jcr/index.html Thu Dec 15 09:54:26 2022
@@ -2,7 +2,7 @@
 
 
 <!--
- | Generated by Apache Maven Doxia Site Renderer 1.11.1 from src\site\markdown/index.md at 2022-12-13
+ | Generated by Apache Maven Doxia Site Renderer 1.11.1 from src/site/markdown/index.md at 2022-12-15
  | Rendered using Apache Maven Fluido Skin 1.11.1
 -->
 <html xmlns="http://www.w3.org/1999/xhtml" lang="en">
@@ -112,7 +112,7 @@
 
         <div id="breadcrumbs">
           <ul class="breadcrumb">
-        <li id="publishDate">Last Published: 2022-12-13</li>
+        <li id="publishDate">Last Published: 2022-12-15</li>
           </ul>
         </div>
       </header>