You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by kw...@apache.org on 2019/11/19 09:48:46 UTC

svn commit: r1870011 [7/8] - in /jackrabbit/site/live/filevault: ./ META-INF/ css/ fonts/ images/ js/ wip/

Modified: jackrabbit/site/live/filevault/validation.html
URL: http://svn.apache.org/viewvc/jackrabbit/site/live/filevault/validation.html?rev=1870011&r1=1870010&r2=1870011&view=diff
==============================================================================
--- jackrabbit/site/live/filevault/validation.html (original)
+++ jackrabbit/site/live/filevault/validation.html Tue Nov 19 09:48:45 2019
@@ -1,298 +1,151 @@
 <!DOCTYPE html>
 <!--
- | Generated by Apache Maven Doxia at 2019-10-06
- | Rendered using Apache Maven Fluido Skin 1.3.0
+ | Generated by Apache Maven Doxia Site Renderer 1.9.1 from src/site/markdown/validation.md at 2019-11-19
+ | Rendered using Apache Maven Fluido Skin 1.8
 -->
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<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.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20191006" />
-    <meta http-equiv="Content-Language" content="en" />
-    <title>Jackrabbit Filevault - Validation</title>
-    <link rel="stylesheet" href="./css/apache-maven-fluido-1.3.0.min.css" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <meta name="generator" content="Apache Maven Doxia Site Renderer 1.9.1" />
+    <title>Jackrabbit Filevault &#x2013; Validation</title>
+    <link rel="stylesheet" href="./css/apache-maven-fluido-1.8.min.css" />
     <link rel="stylesheet" href="./css/site.css" />
     <link rel="stylesheet" href="./css/print.css" media="print" />
-
-      
-    <script type="text/javascript" src="./js/apache-maven-fluido-1.3.0.min.js"></script>
-
-    
-            </head>
-        <body class="topBarEnabled">
-          
-    
-    
-            
-    
-    
-    <a href="http://github.com/apache/jackrabbit-filevault">
+    <script src="./js/apache-maven-fluido-1.8.min.js"></script>
+  </head>
+  <body class="topBarEnabled">
+    <a href="https://github.com/apache/jackrabbit-filevault">
       <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>
-  
-                
-                    
-                
-
-    <div id="topbar" class="navbar navbar-fixed-top ">
+    <header id="topbar" class="navbar navbar-fixed-top ">
       <div class="navbar-inner">
-                <div class="container-fluid">
+        <div class="container-fluid">
         <a data-target=".nav-collapse" data-toggle="collapse" class="btn btn-navbar">
           <span class="icon-bar"></span>
           <span class="icon-bar"></span>
           <span class="icon-bar"></span>
         </a>
-                
-                                <ul class="nav">
-                          <li class="dropdown">
+            <ul class="nav">
+      <li class="dropdown">
         <a href="#" class="dropdown-toggle" data-toggle="dropdown">Overview <b class="caret"></b></a>
         <ul class="dropdown-menu">
-        
-                      <li>      <a href="index.html"  title="Jackrabbit Filevault">Jackrabbit Filevault</a>
-</li>
-                  
-                      <li>      <a href="license.html"  title="License">License</a>
-</li>
-                          </ul>
+            <li><a href="index.html" title="Jackrabbit Filevault">Jackrabbit Filevault</a></li>
+            <li><a href="license.html" title="License">License</a></li>
+        </ul>
       </li>
-                <li class="dropdown">
+      <li class="dropdown">
         <a href="#" class="dropdown-toggle" data-toggle="dropdown">Concepts and architecture <b class="caret"></b></a>
         <ul class="dropdown-menu">
-        
-                      <li>      <a href="overview.html"  title="Overview">Overview</a>
-</li>
-                  
-                      <li>      <a href="vaultfs.html"  title="Vault FS">Vault FS</a>
-</li>
-                  
-                      <li>      <a href="docview.html"  title="Document View">Document View</a>
-</li>
-                  
-                      <li>      <a href="validation.html"  title="Validation">Validation</a>
-</li>
-                          </ul>
+            <li><a href="overview.html" title="Overview">Overview</a></li>
+            <li><a href="vaultfs.html" title="Vault FS">Vault FS</a></li>
+            <li><a href="docview.html" title="Document View">Document View</a></li>
+            <li><a href="validation.html" title="Validation">Validation</a></li>
+        </ul>
       </li>
-                <li class="dropdown">
+      <li class="dropdown">
         <a href="#" class="dropdown-toggle" data-toggle="dropdown">Using Filevault <b class="caret"></b></a>
         <ul class="dropdown-menu">
-        
-                      <li>      <a href="usage.html"  title="Getting Started">Getting Started</a>
-</li>
-                  
-                      <li>      <a href="properties.html"  title="Package Properties">Package Properties</a>
-</li>
-                  
-                      <li>      <a href="filter.html"  title="Workspace Filter">Workspace Filter</a>
-</li>
-                  
-                      <li>      <a href="importmode.html"  title="Import Mode">Import Mode</a>
-</li>
-                  
-                      <li>      <a href="rcp.html"  title="Vault Remote Copy">Vault Remote Copy</a>
-</li>
-                          </ul>
+            <li><a href="usage.html" title="Getting Started">Getting Started</a></li>
+            <li><a href="properties.html" title="Package Properties">Package Properties</a></li>
+            <li><a href="filter.html" title="Workspace Filter">Workspace Filter</a></li>
+            <li><a href="importmode.html" title="Import Mode">Import Mode</a></li>
+            <li><a href="rcp.html" title="Vault Remote Copy">Vault Remote Copy</a></li>
+        </ul>
       </li>
-                <li class="dropdown">
+      <li class="dropdown">
         <a href="#" class="dropdown-toggle" data-toggle="dropdown">Developing <b class="caret"></b></a>
         <ul class="dropdown-menu">
-        
-                      <li>      <a href="dev.html"  title="Overview">Overview</a>
-</li>
-                  
-                      <li>      <a href="apidocs/index.html"  title="API docs">API docs</a>
-</li>
-                  
-                      <li>      <a href="howto_release.html"  title="How to create a release">How to create a release</a>
-</li>
-                          </ul>
+            <li><a href="apidocs/index.html" title="API docs">API docs</a></li>
+            <li><a href="howto_release.html" title="How to create a release">How to create a release</a></li>
+        </ul>
       </li>
-                <li class="dropdown">
+      <li class="dropdown">
+        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Project Documentation <b class="caret"></b></a>
+        <ul class="dropdown-menu">
+            <li class="dropdown-submenu">
+<a href="project-info.html" title="Project Information">Project Information</a>
+              <ul class="dropdown-menu">
+                  <li><a href="mailing-lists.html" title="Mailing Lists">Mailing Lists</a></li>
+                  <li><a href="ci-management.html" title="CI Management">CI Management</a></li>
+                  <li><a href="issue-management.html" title="Issue Management">Issue Management</a></li>
+                  <li><a href="licenses.html" title="Licenses">Licenses</a></li>
+                  <li><a href="scm.html" title="Source Code Management">Source Code Management</a></li>
+                  <li><a href="distribution-management.html" title="Distribution Management">Distribution Management</a></li>
+              </ul>
+            </li>
+        </ul>
+      </li>
+      <li class="dropdown">
         <a href="#" class="dropdown-toggle" data-toggle="dropdown">Links <b class="caret"></b></a>
         <ul class="dropdown-menu">
-        
-                      <li>      <a href="http://jackrabbit.apache.org/"  title="Apache Jackrabbit">Apache Jackrabbit</a>
-</li>
-                          </ul>
+            <li><a href="http://jackrabbit.apache.org/" title="Apache Jackrabbit">Apache Jackrabbit</a></li>
+        </ul>
       </li>
-                  </ul>
-          
-          
-          
-                   
-                      </div>
-          
+            </ul>
         </div>
       </div>
-    </div>
-    
-        <div class="container-fluid">
-          <div id="banner">
-        <div class="pull-left">
-                                <div id="bannerLeft">
-                <h2>Apache Jackrabbit FileVault Documentation</h2>
-                </div>
-                      </div>
-        <div class="pull-right">  </div>
-        <div class="clear"><hr/></div>
-      </div>
-
-      <div id="breadcrumbs">
-        <ul class="breadcrumb">
-                
-                    
-                  <li id="publishDate">Last Published: 2019-10-06</li>
-                  <li class="divider">|</li> <li id="projectVersion">Version: 3.4.1-SNAPSHOT</li>
-                      
-                
-                    
-      
-                            </ul>
-      </div>
+    </header>
+    <div class="container-fluid">
+      <header>
+        <div id="banner">
+          <div class="pull-left"><div id="bannerLeft"><h2>Apache Jackrabbit FileVault Documentation</h2>
+</div>
+</div>
+          <div class="pull-right"></div>
+          <div class="clear"><hr/></div>
+        </div>
 
-            
+        <div id="breadcrumbs">
+          <ul class="breadcrumb">
+        <li id="publishDate">Last Published: 2019-11-19<span class="divider">|</span>
+</li>
+          <li id="projectVersion">Version: 3.4.1-SNAPSHOT</li>
+          </ul>
+        </div>
+      </header>
       <div class="row-fluid">
-        <div id="leftColumn" class="span3">
+        <header id="leftColumn" class="span2">
+          <nav class="well sidebar-nav">
+  <ul class="nav nav-list">
+   <li class="nav-header">Overview</li>
+    <li><a href="index.html" title="Jackrabbit Filevault"><span class="none"></span>Jackrabbit Filevault</a></li>
+    <li><a href="license.html" title="License"><span class="none"></span>License</a></li>
+   <li class="nav-header">Concepts and architecture</li>
+    <li><a href="overview.html" title="Overview"><span class="none"></span>Overview</a></li>
+    <li><a href="vaultfs.html" title="Vault FS"><span class="none"></span>Vault FS</a></li>
+    <li><a href="docview.html" title="Document View"><span class="none"></span>Document View</a></li>
+    <li class="active"><a href="#"><span class="none"></span>Validation</a></li>
+   <li class="nav-header">Using Filevault</li>
+    <li><a href="usage.html" title="Getting Started"><span class="none"></span>Getting Started</a></li>
+    <li><a href="properties.html" title="Package Properties"><span class="none"></span>Package Properties</a></li>
+    <li><a href="filter.html" title="Workspace Filter"><span class="none"></span>Workspace Filter</a></li>
+    <li><a href="importmode.html" title="Import Mode"><span class="none"></span>Import Mode</a></li>
+    <li><a href="rcp.html" title="Vault Remote Copy"><span class="none"></span>Vault Remote Copy</a></li>
+   <li class="nav-header">Developing</li>
+    <li><a href="apidocs/index.html" title="API docs"><span class="none"></span>API docs</a></li>
+    <li><a href="howto_release.html" title="How to create a release"><span class="none"></span>How to create a release</a></li>
+   <li class="nav-header">Project Documentation</li>
+    <li><a href="project-info.html" title="Project Information"><span class="icon-chevron-right"></span>Project Information</a></li>
+   <li class="nav-header">Links</li>
+    <li><a href="http://jackrabbit.apache.org/" class="externalLink" title="Apache Jackrabbit"><span class="none"></span>Apache Jackrabbit</a></li>
+  </ul>
+          </nav>
           <div class="well sidebar-nav">
-                
-                    
-                <ul class="nav nav-list">
-                    <li class="nav-header">Overview</li>
-                                
-      <li>
-    
-                          <a href="index.html" title="Jackrabbit Filevault">
-          <i class="none"></i>
-        Jackrabbit Filevault</a>
-            </li>
-                  
-      <li>
-    
-                          <a href="license.html" title="License">
-          <i class="none"></i>
-        License</a>
-            </li>
-                              <li class="nav-header">Concepts and architecture</li>
-                                
-      <li>
-    
-                          <a href="overview.html" title="Overview">
-          <i class="none"></i>
-        Overview</a>
-            </li>
-                  
-      <li>
-    
-                          <a href="vaultfs.html" title="Vault FS">
-          <i class="none"></i>
-        Vault FS</a>
-            </li>
-                  
-      <li>
-    
-                          <a href="docview.html" title="Document View">
-          <i class="none"></i>
-        Document View</a>
-            </li>
-                  
-      <li class="active">
-    
-            <a href="#"><i class="none"></i>Validation</a>
-          </li>
-                              <li class="nav-header">Using Filevault</li>
-                                
-      <li>
-    
-                          <a href="usage.html" title="Getting Started">
-          <i class="none"></i>
-        Getting Started</a>
-            </li>
-                  
-      <li>
-    
-                          <a href="properties.html" title="Package Properties">
-          <i class="none"></i>
-        Package Properties</a>
-            </li>
-                  
-      <li>
-    
-                          <a href="filter.html" title="Workspace Filter">
-          <i class="none"></i>
-        Workspace Filter</a>
-            </li>
-                  
-      <li>
-    
-                          <a href="importmode.html" title="Import Mode">
-          <i class="none"></i>
-        Import Mode</a>
-            </li>
-                  
-      <li>
-    
-                          <a href="rcp.html" title="Vault Remote Copy">
-          <i class="none"></i>
-        Vault Remote Copy</a>
-            </li>
-                              <li class="nav-header">Developing</li>
-                                
-      <li>
-    
-                          <a href="dev.html" title="Overview">
-          <i class="none"></i>
-        Overview</a>
-            </li>
-                  
-      <li>
-    
-                          <a href="apidocs/index.html" title="API docs">
-          <i class="none"></i>
-        API docs</a>
-            </li>
-                  
-      <li>
-    
-                          <a href="howto_release.html" title="How to create a release">
-          <i class="none"></i>
-        How to create a release</a>
-            </li>
-                              <li class="nav-header">Links</li>
-                                
-      <li>
-    
-                          <a href="http://jackrabbit.apache.org/" class="externalLink" title="Apache Jackrabbit">
-          <i class="none"></i>
-        Apache Jackrabbit</a>
-            </li>
-            </ul>
-                
-                    
-                
-          <hr class="divider" />
-
-           <div id="poweredBy">
-                   
-    <script type="text/javascript" src="https://apis.google.com/js/plusone.js"></script>
-
-    
-    <div class="g-plusone" data-href="https://www.apache.org/parent/vault-doc/" data-size="tall" ></div>
-
-                   <div class="clear"></div>
-                            <div class="clear"></div>
-                            <div class="clear"></div>
-                             <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
-        <img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" />
-      </a>
-                  </div>
+            <hr />
+            <div id="poweredBy">
+              <div class="clear"></div>
+              <div class="clear"></div>
+              <div class="clear"></div>
+<a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>
+            </div>
           </div>
-        </div>
-        
-                
-        <div id="bodyColumn"  class="span9" >
-                                  
-            <!-- Licensed to the Apache Software Foundation (ASF) under one or more
+        </header>
+        <main id="bodyColumn"  class="span10" >
+<!--
+   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
@@ -305,310 +158,169 @@
    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. --><h1>Validation</h1>
-<div class="section">
-<h2>Overview<a name="Overview"></a></h2>
-<p>The artifact <tt>org.apache.jackrabbit.vault:vault-validation</tt> provides both an API for validating FileVault packages as well as an SPI for implementing validators. In addition this JAR contains useful validators.</p>
-<p>This validation framework is supposed to be used as </p>
-
+   limitations under the License.
+-->
+<h1>Validation</h1><section>
+<h2><a name="Overview"></a>Overview</h2>
+<p>The artifact org.apache.jackrabbit.vault:vault-validation provides both an API for validating FileVault packages as well as an SPI for implementing validators. In addition this JAR contains useful validators.</p>
+<p>This validation framework is supposed to be used as</p>
 <ol style="list-style-type: decimal">
-  
+
 <li>dependency for custom validators (SPI)</li>
-  
 <li>library for build tools which want to call validation on FileVault packages (API and Implementation)</li>
-</ol></div>
-<div class="section">
-<h2>Validators<a name="Validators"></a></h2>
-<div class="section">
-<h3>Settings<a name="Settings"></a></h3>
+</ol></section><section>
+<h2><a name="Validators"></a>Validators</h2><section>
+<h3><a name="Settings"></a>Settings</h3>
 <p>It is possible to adjust every validator registered in the system (both default and external validators) via settings. Settings have a common section (which apply to every validator) but also support validator specific options.</p>
-
 <table border="0" class="table table-striped">
-  <thead>
-    
+<thead>
+
 <tr class="a">
-      
 <th>Element </th>
-      
-<th>Description </th>
-      
-<th>Default Value</th>
-    </tr>
-  </thead>
-  <tbody>
-    
-<tr class="b">
-      
-<td><tt>defaultSeverity</tt> </td>
-      
-<td>Each validation message has a severity. The default validation message severity of each validator can be influenced with this parameter. If a validator emits different types of validation messages the other types can be influenced via <tt>options</tt>. </td>
-      
-<td><tt>error</tt></td>
-    </tr>
-    
-<tr class="a">
-      
-<td><tt>isDisabled</tt> </td>
-      
-<td>A boolean flag defining whether validator is disabled or not. </td>
-      
-<td><tt>false</tt></td>
-    </tr>
-    
-<tr class="b">
-      
-<td><tt>options</tt> </td>
-      
-<td>A map (i.e. keys and values) of validator specific options. The supported options for the validators are outlined below. </td>
-      
-<td>empty</td>
-    </tr>
-  </tbody>
+<th> Description </th>
+<th> Default Value</th></tr>
+</thead><tbody>
+
+<tr class="b">
+<td>defaultSeverity </td>
+<td> Each validation message has a severity. The default validation message severity of each validator can be influenced with this parameter. If a validator emits different types of validation messages the other types can be influenced via options. </td>
+<td> error</td></tr>
+<tr class="a">
+<td>isDisabled </td>
+<td> A boolean flag defining whether validator is disabled or not. </td>
+<td> false</td></tr>
+<tr class="b">
+<td>options </td>
+<td> A map (i.e. keys and values) of validator specific options. The supported options for the validators are outlined below. </td>
+<td> empty</td></tr>
+</tbody>
 </table>
-<p>Each validator settings are set for a specific validator id.</p></div>
-<div class="section">
-<h3>Standard Validators<a name="Standard_Validators"></a></h3>
-
+<p>Each validator settings are set for a specific validator id.</p></section><section>
+<h3><a name="Standard_Validators"></a>Standard Validators</h3>
 <table border="0" class="table table-striped">
-  <thead>
-    
-<tr class="a">
-      
-<th>ID </th>
-      
-<th>Description </th>
-      
-<th>Options</th>
-    </tr>
-  </thead>
-  <tbody>
-    
-<tr class="b">
-      
-<td><tt>jackrabbit-filter</tt> </td>
-      
-<td>Checks for validity of the <a href="./filter.html]">filter.xml</a> (according to a predefined XML schema). In addition checks that every <a href="./docview.html">docview xml node</a> is contained in the filter. It also makes sure that all filter root&#x2019;s ancestors are either known/valid roots or are contained in the package dependencies. For ancestor nodes which are not covered by a filter at least a <tt>warn</tt> is emitted. Also it makes sure that <tt>pattern</tt> values for includes/excludes as well as <tt>root</tt> values for each filter entry are valid. Orphaned filter rules (i.e. ones not being necessary) lead to validation issues as well. </td>
-      
-<td><i>severityForUncoveredAncestorNodes</i>: severity of validation messages for uncovered ancestor nodes.<br /><i>severityForUncoveredFilterRootAncestors</i>: severity of validation messages for uncovered filter root ancestors. Only relevant for package type != application (default = warn)<br /><i>severityForOrphanedFilterRules</i>: severity of validation messages for orphaned filter rules (default = info)<br /><i>validRoots</i>: comma-separated list of valid roots (default = <tt>&quot;/,/libs,/apps,/etc,/var,/tmp,/content&quot;</tt>)</td>
-    </tr>
-    
-<tr class="a">
-      
-<td><tt>jackrabbit-properties</tt> </td>
-      
-<td>Checks for validity of the <a href="./properties.html">properties.xml</a> </td>
-      
-<td>none</td>
-    </tr>
-    
-<tr class="b">
-      
-<td><tt>jackrabbit-dependencies</tt> </td>
-      
-<td>Checks for overlapping filter roots of the referenced package dependencies as well as for valid package dependency references (i.e. references which can be resolved). </td>
-      
-<td><i>severityForUnresolvedDependencies</i>: severity of validation messages for unresolved dependencies (default = warn)</td>
-    </tr>
-    
-<tr class="a">
-      
-<td><tt>jackrabbit-docviewparser</tt> </td>
-      
-<td>Checks if all docview files in the package are compliant with the <a href="docview.html">(extended) Document View Format</a>. This involves checking for XML validity as well as checking for correct property types. </td>
-      
-<td>none</td>
-    </tr>
-    
-<tr class="b">
-      
-<td><tt>jackrabbit-emptyelements</tt> </td>
-      
-<td>Check for empty elements within DocView files (used for ordering purposes, compare with <a href="docview.html">(extended) Document View Format</a>) which are included in the filter with import=replace as those are actually not replaced! </td>
-      
-<td>none</td>
-    </tr>
-    
-<tr class="a">
-      
-<td><tt>jackrabbit-mergelimitations</tt> </td>
-      
-<td>Checks for the limitation of import mode=merge outlined at <a class="externalLink" href="https://issues.apache.org/jira/browse/JCRVLT-255">JCRVLT-255</a>. </td>
-      
-<td>none</td>
-    </tr>
-    
-<tr class="b">
-      
-<td><tt>jackrabbit-oakindex</tt> </td>
-      
-<td>Checks if the package (potentially) modifies/creates an OakIndexDefinition. This is done by evaluating both the filter.xml for potential matches as well as the actual content for nodes with jcr:primaryType <tt>oak:indexDefinition</tt>. </td>
-      
-<td>none</td>
-    </tr>
-    
-<tr class="a">
-      
-<td><tt>jackrabbit-packagetype</tt> </td>
-      
-<td>Checks if the package type is correctly set for this package, i.e. is compliant with all rules outlined at <a class="externalLink" href="https://issues.apache.org/jira/browse/JCRVLT-170">JCRVLT-170</a>. </td>
-      
-<td>none</td>
-    </tr>
-    
-<tr class="b">
-      
-<td><tt>jackrabbit-primarynodetype</tt> </td>
-      
-<td>Checks if all non empty elements within <a href="docview.html">DocView files</a> have the mandatory property <tt>jcr:primaryType</tt> set. </td>
-      
-<td>none</td>
-    </tr>
-  </tbody>
-</table></div>
-<div class="section">
-<h3>Custom Validators<a name="Custom_Validators"></a></h3>
-<p>The SPI for implementing custom validators is provided in <a href="apidocs/org/apache/jackrabbit/vault/validation/spi/package-summary.html">this package</a>. The validators are registered via a <tt>ValidatorFactory</tt> which is supposed to be registered via the <a class="externalLink" href="https://docs.oracle.com/javase/8/docs/api/java/util/ServiceLoader.html">ServiceLoader</a>.</p>
-<p>The SPI is exported from the artifact <tt>org.apache.jackrabbit.vault:vault-validation</tt> as well.</p>
-<p>The validator which is returned via the <tt>ValidatorFactory</tt> is one of the following types below package <tt>org.apache.jackrabbit.filevault.maven.packaging.validator</tt></p>
+<thead>
 
+<tr class="a">
+<th>ID  </th>
+<th>  Description </th>
+<th> Options</th></tr>
+</thead><tbody>
+
+<tr class="b">
+<td>jackrabbit-filter </td>
+<td>  Checks for validity of the <a href="./filter.html">filter.xml</a> (according to a predefined  XML schema). In addition checks that every <a href="./docview.html">docview xml node</a> is contained in the filter. It also makes sure that all filter root&#x2019;s ancestors are either known/valid roots or are contained in the package dependencies. For ancestor nodes which are not covered by a filter at least a warn is emitted. Also it makes sure that pattern values for includes/excludes as well as root values for each filter entry are valid. Orphaned filter rules (i.e. ones not being necessary) lead to validation issues as well. </td>
+<td> <i>severityForUncoveredAncestorNodes</i>: severity of validation messages for uncovered ancestor nodes.<br /><i>severityForUncoveredFilterRootAncestors</i>: severity of validation messages for uncovered filter root ancestors. Only relevant for package type != application (default = warn)<br /><i>severityForOrphanedFilterRules</i>: severity of validation messages for orphaned filter rules (default = info)<br /><i>validRoots</i>: comma-separated list of valid roots (default = &quot;/,/libs,/apps,/etc,/var,/tmp,/content&quot;)</td></tr>
+<tr class="a">
+<td>jackrabbit-properties </td>
+<td> Checks for validity of the  <a href="./properties.html">properties.xml</a> </td>
+<td> none</td></tr>
+<tr class="b">
+<td>jackrabbit-dependencies </td>
+<td> Checks for overlapping filter roots of the referenced package dependencies as well as for valid package dependency references (i.e. references which can be resolved). </td>
+<td> <i>severityForUnresolvedDependencies</i>: severity of validation messages for unresolved dependencies (default = warn)</td></tr>
+<tr class="a">
+<td>jackrabbit-docviewparser </td>
+<td> Checks if all docview files in the package are compliant with the <a href="docview.html">(extended) Document View Format</a>. This involves checking for XML validity as well as checking for correct property types. </td>
+<td> none</td></tr>
+<tr class="b">
+<td>jackrabbit-emptyelements </td>
+<td> Check for empty elements within DocView files (used for ordering purposes, compare with  <a href="docview.html">(extended) Document View Format</a>) which are included in the filter with import=replace as those are actually not replaced! </td>
+<td> none</td></tr>
+<tr class="a">
+<td>jackrabbit-mergelimitations </td>
+<td> Checks for the limitation of import mode=merge outlined at <a class="externalLink" href="https://issues.apache.org/jira/browse/JCRVLT-255">JCRVLT-255</a>. </td>
+<td> none</td></tr>
+<tr class="b">
+<td>jackrabbit-oakindex </td>
+<td>  Checks if the package (potentially) modifies/creates an OakIndexDefinition. This is done by evaluating both the filter.xml for potential matches as well as the actual content for nodes with jcr:primaryType  oak:indexDefinition. </td>
+<td> none</td></tr>
+<tr class="a">
+<td>jackrabbit-packagetype </td>
+<td> Checks if the package type is correctly set for this package, i.e. is compliant with all rules outlined at <a class="externalLink" href="https://issues.apache.org/jira/browse/JCRVLT-170">JCRVLT-170</a>. </td>
+<td> none</td></tr>
+<tr class="b">
+<td>jackrabbit-primarynodetype </td>
+<td> Checks if all non empty elements within <a href="docview.html">DocView files</a> have the mandatory property jcr:primaryType set. </td>
+<td> none</td></tr>
+</tbody>
+</table></section><section>
+<h3><a name="Custom_Validators"></a>Custom Validators</h3>
+<p>The SPI for implementing custom validators is provided in <a href="apidocs/org/apache/jackrabbit/vault/validation/spi/package-summary.html">this package</a>. The validators are registered via a ValidatorFactory which is supposed to be registered via the <a class="externalLink" href="https://docs.oracle.com/javase/8/docs/api/java/util/ServiceLoader.html">ServiceLoader</a>.</p>
+<p>The SPI is exported from the artifact org.apache.jackrabbit.vault:vault-validation as well.</p>
+<p>The validator which is returned via the ValidatorFactory is one of the following types below package org.apache.jackrabbit.filevault.maven.packaging.validator</p>
 <table border="0" class="table table-striped">
-  <thead>
-    
+<thead>
+
 <tr class="a">
-      
 <th>Validator Class </th>
-      
-<th>Description </th>
-      
-<th><tt>META-INF</tt> or <tt>jcr_root</tt> </th>
-      
-<th>Called from another validator</th>
-    </tr>
-  </thead>
-  <tbody>
-    
-<tr class="b">
-      
-<td><tt>DocumentViewXmlValidator</tt> </td>
-      
-<td>Called for each node serialized into a DocView element </td>
-      
-<td><tt>jcr_root</tt> </td>
-      
-<td>no</td>
-    </tr>
-    
-<tr class="a">
-      
-<td><tt>NodePathValidator</tt> </td>
-      
-<td>Called for each node path contained in the package (even for ones not listed in the filter.xml) </td>
-      
-<td><tt>jcr_root</tt> </td>
-      
-<td>no</td>
-    </tr>
-    
-<tr class="b">
-      
-<td><tt>JcrPathValidator</tt> </td>
-      
-<td>Called for each file path contained in the package </td>
-      
-<td><tt>jcr_root</tt> </td>
-      
-<td>no</td>
-    </tr>
-    
-<tr class="a">
-      
-<td><tt>GenericJcrDataValidator</tt> </td>
-      
-<td>Called for all serialized nodes which are <i>not</i> DocViewXml </td>
-      
-<td><tt>jcr_root</tt> </td>
-      
-<td>no</td>
-    </tr>
-    
-<tr class="b">
-      
-<td><tt>FilterValidator</tt></td>
-      
-<td>Called for the <tt>vault/filter.xml</tt> file </td>
-      
-<td><tt>META-INF</tt> </td>
-      
-<td>yes (<tt>jackrabbit-filter</tt>)</td>
-    </tr>
-    
-<tr class="a">
-      
-<td><tt>PropertiesValidator</tt> </td>
-      
-<td>Called for the <tt>vault/properties.xml</tt> file </td>
-      
-<td><tt>META-INF</tt> </td>
-      
-<td>yes (<tt>jackrabbit-properties</tt>)</td>
-    </tr>
-    
-<tr class="b">
-      
-<td><tt>GenericMetaInfDataValidator</tt> </td>
-      
-<td>Called for all META-INF files (even <tt>vault/filter.xml</tt> nor <tt>vault/properties.xml</tt>). In general prefer the higher level validators (i.e. <tt>FilterValidator</tt> or <tt>PropertiesValidator</tt> if possible) </td>
-      
-<td><tt>META-INF</tt> </td>
-      
-<td>no</td>
-    </tr>
-    
-<tr class="a">
-      
-<td><tt>MetaInfFilePathValidator</tt> </td>
-      
-<td>Called for each file path contained in the package below META-INF </td>
-      
-<td><tt>META-INF</tt> </td>
-      
-<td>no</td>
-    </tr>
-  </tbody>
-</table></div></div>
-<div class="section">
-<h2>Validation API<a name="Validation_API"></a></h2>
+<th> Description </th>
+<th> META-INF or jcr_root </th>
+<th> Called from another validator</th></tr>
+</thead><tbody>
+
+<tr class="b">
+<td>DocumentViewXmlValidator </td>
+<td> Called for each node serialized into a DocView element </td>
+<td> jcr_root </td>
+<td> no</td></tr>
+<tr class="a">
+<td>NodePathValidator </td>
+<td> Called for each node path contained in the package (even for ones not listed in the filter.xml) </td>
+<td> jcr_root </td>
+<td> no</td></tr>
+<tr class="b">
+<td>JcrPathValidator </td>
+<td> Called for each file path contained in the package </td>
+<td> jcr_root </td>
+<td> no</td></tr>
+<tr class="a">
+<td>GenericJcrDataValidator </td>
+<td> Called for all serialized nodes which are <i>not</i> DocViewXml </td>
+<td> jcr_root </td>
+<td> no</td></tr>
+<tr class="b">
+<td>FilterValidator</td>
+<td> Called for the vault/filter.xml file </td>
+<td> META-INF </td>
+<td> yes (jackrabbit-filter)</td></tr>
+<tr class="a">
+<td>PropertiesValidator </td>
+<td> Called for the vault/properties.xml file </td>
+<td> META-INF </td>
+<td> yes (jackrabbit-properties)</td></tr>
+<tr class="b">
+<td>GenericMetaInfDataValidator </td>
+<td> Called for all META-INF files (even vault/filter.xml nor vault/properties.xml). In general prefer the higher level validators (i.e. FilterValidator or PropertiesValidator if possible) </td>
+<td> META-INF </td>
+<td> no</td></tr>
+<tr class="a">
+<td>MetaInfFilePathValidator </td>
+<td> Called for each file path contained in the package below META-INF </td>
+<td> META-INF </td>
+<td> no</td></tr>
+</tbody>
+</table></section></section><section>
+<h2><a name="Validation_API"></a>Validation API</h2>
 <p>The API for calling validation on specific files is provided in <a href="apidocs/org/apache/jackrabbit/vault/validation/package-summary.html">this package</a>.</p>
-<p>First you need one instance of <tt>ValidationExecutorFactory</tt>. For each new <tt>ValidationContext</tt> (i.e. new package context) you create a new <tt>ValidationExecutor</tt> via <tt>ValidationExecutorFactory.createValidationExecutor(...)</tt>. For each file you then call either</p>
-
+<p>First you need one instance of ValidationExecutorFactory. For each new ValidationContext (i.e. new package context) you create a new ValidationExecutor via ValidationExecutorFactory.createValidationExecutor(...). For each file you then call either</p>
 <ul>
-  
-<li><tt>ValidationExecutor.validateJcrRoot(...)</tt> for input streams referring to files which are supposed to end up in the repository or</li>
-  
-<li><tt>ValidationExecutor.validateMetaInf(...)</tt> for input stream representing metaInf data of the FileVault package</li>
-</ul>
-<p>The Validation API is currently used by the <a class="externalLink" href="http://jackrabbit.apache.org/filevault-package-maven-plugin/">FileVault Package Maven Plugin</a>.</p></div>
-                  </div>
-            </div>
-          </div>
 
+<li>ValidationExecutor.validateJcrRoot(...) for input streams referring to files which are supposed to end up in the repository or</li>
+<li>ValidationExecutor.validateMetaInf(...) for input streams representing metaInf data of the FileVault package</li>
+</ul>
+<p>The Validation API is currently used by the <a class="externalLink" href="http://jackrabbit.apache.org/filevault-package-maven-plugin/">FileVault Package Maven Plugin</a>.</p></section>
+        </main>
+      </div>
+    </div>
     <hr/>
-
     <footer>
-            <div class="container-fluid">
-              <div class="row span12">Copyright &copy;                    2019
-                        <a href="https://www.apache.org/">The Apache Software Foundation</a>.
-            All Rights Reserved.      
-                    
-      </div>
-
-        
-        
-          
-    
-    
+      <div class="container-fluid">
+        <div class="row-fluid">
+            <p>Copyright &#169;      2019<a href="https://www.apache.org/">The Apache Software Foundation</a>.
+.</p>
+        </div>
     <div id="ohloh" class="pull-right">
-      <script type="text/javascript" src="http://www.ohloh.net/p/jackrabbit-filevault/widgets/project_users_logo.js"></script>
+      <script src="https://www.ohloh.net/p/jackrabbit-filevault/widgets/project_users_logo.js"></script>
     </div>
         </div>
     </footer>

Modified: jackrabbit/site/live/filevault/vaultfs.html
URL: http://svn.apache.org/viewvc/jackrabbit/site/live/filevault/vaultfs.html?rev=1870011&r1=1870010&r2=1870011&view=diff
==============================================================================
--- jackrabbit/site/live/filevault/vaultfs.html (original)
+++ jackrabbit/site/live/filevault/vaultfs.html Tue Nov 19 09:48:45 2019
@@ -1,298 +1,151 @@
 <!DOCTYPE html>
 <!--
- | Generated by Apache Maven Doxia at 2019-10-06
- | Rendered using Apache Maven Fluido Skin 1.3.0
+ | Generated by Apache Maven Doxia Site Renderer 1.9.1 from src/site/markdown/vaultfs.md at 2019-11-19
+ | Rendered using Apache Maven Fluido Skin 1.8
 -->
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<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.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20191006" />
-    <meta http-equiv="Content-Language" content="en" />
-    <title>Jackrabbit Filevault - Vault FS</title>
-    <link rel="stylesheet" href="./css/apache-maven-fluido-1.3.0.min.css" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <meta name="generator" content="Apache Maven Doxia Site Renderer 1.9.1" />
+    <title>Jackrabbit Filevault &#x2013; </title>
+    <link rel="stylesheet" href="./css/apache-maven-fluido-1.8.min.css" />
     <link rel="stylesheet" href="./css/site.css" />
     <link rel="stylesheet" href="./css/print.css" media="print" />
-
-      
-    <script type="text/javascript" src="./js/apache-maven-fluido-1.3.0.min.js"></script>
-
-    
-            </head>
-        <body class="topBarEnabled">
-          
-    
-    
-            
-    
-    
-    <a href="http://github.com/apache/jackrabbit-filevault">
+    <script src="./js/apache-maven-fluido-1.8.min.js"></script>
+  </head>
+  <body class="topBarEnabled">
+    <a href="https://github.com/apache/jackrabbit-filevault">
       <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>
-  
-                
-                    
-                
-
-    <div id="topbar" class="navbar navbar-fixed-top ">
+    <header id="topbar" class="navbar navbar-fixed-top ">
       <div class="navbar-inner">
-                <div class="container-fluid">
+        <div class="container-fluid">
         <a data-target=".nav-collapse" data-toggle="collapse" class="btn btn-navbar">
           <span class="icon-bar"></span>
           <span class="icon-bar"></span>
           <span class="icon-bar"></span>
         </a>
-                
-                                <ul class="nav">
-                          <li class="dropdown">
+            <ul class="nav">
+      <li class="dropdown">
         <a href="#" class="dropdown-toggle" data-toggle="dropdown">Overview <b class="caret"></b></a>
         <ul class="dropdown-menu">
-        
-                      <li>      <a href="index.html"  title="Jackrabbit Filevault">Jackrabbit Filevault</a>
-</li>
-                  
-                      <li>      <a href="license.html"  title="License">License</a>
-</li>
-                          </ul>
+            <li><a href="index.html" title="Jackrabbit Filevault">Jackrabbit Filevault</a></li>
+            <li><a href="license.html" title="License">License</a></li>
+        </ul>
       </li>
-                <li class="dropdown">
+      <li class="dropdown">
         <a href="#" class="dropdown-toggle" data-toggle="dropdown">Concepts and architecture <b class="caret"></b></a>
         <ul class="dropdown-menu">
-        
-                      <li>      <a href="overview.html"  title="Overview">Overview</a>
-</li>
-                  
-                      <li>      <a href="vaultfs.html"  title="Vault FS">Vault FS</a>
-</li>
-                  
-                      <li>      <a href="docview.html"  title="Document View">Document View</a>
-</li>
-                  
-                      <li>      <a href="validation.html"  title="Validation">Validation</a>
-</li>
-                          </ul>
+            <li><a href="overview.html" title="Overview">Overview</a></li>
+            <li><a href="vaultfs.html" title="Vault FS">Vault FS</a></li>
+            <li><a href="docview.html" title="Document View">Document View</a></li>
+            <li><a href="validation.html" title="Validation">Validation</a></li>
+        </ul>
       </li>
-                <li class="dropdown">
+      <li class="dropdown">
         <a href="#" class="dropdown-toggle" data-toggle="dropdown">Using Filevault <b class="caret"></b></a>
         <ul class="dropdown-menu">
-        
-                      <li>      <a href="usage.html"  title="Getting Started">Getting Started</a>
-</li>
-                  
-                      <li>      <a href="properties.html"  title="Package Properties">Package Properties</a>
-</li>
-                  
-                      <li>      <a href="filter.html"  title="Workspace Filter">Workspace Filter</a>
-</li>
-                  
-                      <li>      <a href="importmode.html"  title="Import Mode">Import Mode</a>
-</li>
-                  
-                      <li>      <a href="rcp.html"  title="Vault Remote Copy">Vault Remote Copy</a>
-</li>
-                          </ul>
+            <li><a href="usage.html" title="Getting Started">Getting Started</a></li>
+            <li><a href="properties.html" title="Package Properties">Package Properties</a></li>
+            <li><a href="filter.html" title="Workspace Filter">Workspace Filter</a></li>
+            <li><a href="importmode.html" title="Import Mode">Import Mode</a></li>
+            <li><a href="rcp.html" title="Vault Remote Copy">Vault Remote Copy</a></li>
+        </ul>
       </li>
-                <li class="dropdown">
+      <li class="dropdown">
         <a href="#" class="dropdown-toggle" data-toggle="dropdown">Developing <b class="caret"></b></a>
         <ul class="dropdown-menu">
-        
-                      <li>      <a href="dev.html"  title="Overview">Overview</a>
-</li>
-                  
-                      <li>      <a href="apidocs/index.html"  title="API docs">API docs</a>
-</li>
-                  
-                      <li>      <a href="howto_release.html"  title="How to create a release">How to create a release</a>
-</li>
-                          </ul>
+            <li><a href="apidocs/index.html" title="API docs">API docs</a></li>
+            <li><a href="howto_release.html" title="How to create a release">How to create a release</a></li>
+        </ul>
+      </li>
+      <li class="dropdown">
+        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Project Documentation <b class="caret"></b></a>
+        <ul class="dropdown-menu">
+            <li class="dropdown-submenu">
+<a href="project-info.html" title="Project Information">Project Information</a>
+              <ul class="dropdown-menu">
+                  <li><a href="mailing-lists.html" title="Mailing Lists">Mailing Lists</a></li>
+                  <li><a href="ci-management.html" title="CI Management">CI Management</a></li>
+                  <li><a href="issue-management.html" title="Issue Management">Issue Management</a></li>
+                  <li><a href="licenses.html" title="Licenses">Licenses</a></li>
+                  <li><a href="scm.html" title="Source Code Management">Source Code Management</a></li>
+                  <li><a href="distribution-management.html" title="Distribution Management">Distribution Management</a></li>
+              </ul>
+            </li>
+        </ul>
       </li>
-                <li class="dropdown">
+      <li class="dropdown">
         <a href="#" class="dropdown-toggle" data-toggle="dropdown">Links <b class="caret"></b></a>
         <ul class="dropdown-menu">
-        
-                      <li>      <a href="http://jackrabbit.apache.org/"  title="Apache Jackrabbit">Apache Jackrabbit</a>
-</li>
-                          </ul>
+            <li><a href="http://jackrabbit.apache.org/" title="Apache Jackrabbit">Apache Jackrabbit</a></li>
+        </ul>
       </li>
-                  </ul>
-          
-          
-          
-                   
-                      </div>
-          
+            </ul>
         </div>
       </div>
-    </div>
-    
-        <div class="container-fluid">
-          <div id="banner">
-        <div class="pull-left">
-                                <div id="bannerLeft">
-                <h2>Apache Jackrabbit FileVault Documentation</h2>
-                </div>
-                      </div>
-        <div class="pull-right">  </div>
-        <div class="clear"><hr/></div>
-      </div>
-
-      <div id="breadcrumbs">
-        <ul class="breadcrumb">
-                
-                    
-                  <li id="publishDate">Last Published: 2019-10-06</li>
-                  <li class="divider">|</li> <li id="projectVersion">Version: 3.4.1-SNAPSHOT</li>
-                      
-                
-                    
-      
-                            </ul>
-      </div>
+    </header>
+    <div class="container-fluid">
+      <header>
+        <div id="banner">
+          <div class="pull-left"><div id="bannerLeft"><h2>Apache Jackrabbit FileVault Documentation</h2>
+</div>
+</div>
+          <div class="pull-right"></div>
+          <div class="clear"><hr/></div>
+        </div>
 
-            
+        <div id="breadcrumbs">
+          <ul class="breadcrumb">
+        <li id="publishDate">Last Published: 2019-11-19<span class="divider">|</span>
+</li>
+          <li id="projectVersion">Version: 3.4.1-SNAPSHOT</li>
+          </ul>
+        </div>
+      </header>
       <div class="row-fluid">
-        <div id="leftColumn" class="span3">
+        <header id="leftColumn" class="span2">
+          <nav class="well sidebar-nav">
+  <ul class="nav nav-list">
+   <li class="nav-header">Overview</li>
+    <li><a href="index.html" title="Jackrabbit Filevault"><span class="none"></span>Jackrabbit Filevault</a></li>
+    <li><a href="license.html" title="License"><span class="none"></span>License</a></li>
+   <li class="nav-header">Concepts and architecture</li>
+    <li><a href="overview.html" title="Overview"><span class="none"></span>Overview</a></li>
+    <li class="active"><a href="#"><span class="none"></span>Vault FS</a></li>
+    <li><a href="docview.html" title="Document View"><span class="none"></span>Document View</a></li>
+    <li><a href="validation.html" title="Validation"><span class="none"></span>Validation</a></li>
+   <li class="nav-header">Using Filevault</li>
+    <li><a href="usage.html" title="Getting Started"><span class="none"></span>Getting Started</a></li>
+    <li><a href="properties.html" title="Package Properties"><span class="none"></span>Package Properties</a></li>
+    <li><a href="filter.html" title="Workspace Filter"><span class="none"></span>Workspace Filter</a></li>
+    <li><a href="importmode.html" title="Import Mode"><span class="none"></span>Import Mode</a></li>
+    <li><a href="rcp.html" title="Vault Remote Copy"><span class="none"></span>Vault Remote Copy</a></li>
+   <li class="nav-header">Developing</li>
+    <li><a href="apidocs/index.html" title="API docs"><span class="none"></span>API docs</a></li>
+    <li><a href="howto_release.html" title="How to create a release"><span class="none"></span>How to create a release</a></li>
+   <li class="nav-header">Project Documentation</li>
+    <li><a href="project-info.html" title="Project Information"><span class="icon-chevron-right"></span>Project Information</a></li>
+   <li class="nav-header">Links</li>
+    <li><a href="http://jackrabbit.apache.org/" class="externalLink" title="Apache Jackrabbit"><span class="none"></span>Apache Jackrabbit</a></li>
+  </ul>
+          </nav>
           <div class="well sidebar-nav">
-                
-                    
-                <ul class="nav nav-list">
-                    <li class="nav-header">Overview</li>
-                                
-      <li>
-    
-                          <a href="index.html" title="Jackrabbit Filevault">
-          <i class="none"></i>
-        Jackrabbit Filevault</a>
-            </li>
-                  
-      <li>
-    
-                          <a href="license.html" title="License">
-          <i class="none"></i>
-        License</a>
-            </li>
-                              <li class="nav-header">Concepts and architecture</li>
-                                
-      <li>
-    
-                          <a href="overview.html" title="Overview">
-          <i class="none"></i>
-        Overview</a>
-            </li>
-                  
-      <li class="active">
-    
-            <a href="#"><i class="none"></i>Vault FS</a>
-          </li>
-                  
-      <li>
-    
-                          <a href="docview.html" title="Document View">
-          <i class="none"></i>
-        Document View</a>
-            </li>
-                  
-      <li>
-    
-                          <a href="validation.html" title="Validation">
-          <i class="none"></i>
-        Validation</a>
-            </li>
-                              <li class="nav-header">Using Filevault</li>
-                                
-      <li>
-    
-                          <a href="usage.html" title="Getting Started">
-          <i class="none"></i>
-        Getting Started</a>
-            </li>
-                  
-      <li>
-    
-                          <a href="properties.html" title="Package Properties">
-          <i class="none"></i>
-        Package Properties</a>
-            </li>
-                  
-      <li>
-    
-                          <a href="filter.html" title="Workspace Filter">
-          <i class="none"></i>
-        Workspace Filter</a>
-            </li>
-                  
-      <li>
-    
-                          <a href="importmode.html" title="Import Mode">
-          <i class="none"></i>
-        Import Mode</a>
-            </li>
-                  
-      <li>
-    
-                          <a href="rcp.html" title="Vault Remote Copy">
-          <i class="none"></i>
-        Vault Remote Copy</a>
-            </li>
-                              <li class="nav-header">Developing</li>
-                                
-      <li>
-    
-                          <a href="dev.html" title="Overview">
-          <i class="none"></i>
-        Overview</a>
-            </li>
-                  
-      <li>
-    
-                          <a href="apidocs/index.html" title="API docs">
-          <i class="none"></i>
-        API docs</a>
-            </li>
-                  
-      <li>
-    
-                          <a href="howto_release.html" title="How to create a release">
-          <i class="none"></i>
-        How to create a release</a>
-            </li>
-                              <li class="nav-header">Links</li>
-                                
-      <li>
-    
-                          <a href="http://jackrabbit.apache.org/" class="externalLink" title="Apache Jackrabbit">
-          <i class="none"></i>
-        Apache Jackrabbit</a>
-            </li>
-            </ul>
-                
-                    
-                
-          <hr class="divider" />
-
-           <div id="poweredBy">
-                   
-    <script type="text/javascript" src="https://apis.google.com/js/plusone.js"></script>
-
-    
-    <div class="g-plusone" data-href="https://www.apache.org/parent/vault-doc/" data-size="tall" ></div>
-
-                   <div class="clear"></div>
-                            <div class="clear"></div>
-                            <div class="clear"></div>
-                             <a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
-        <img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" />
-      </a>
-                  </div>
+            <hr />
+            <div id="poweredBy">
+              <div class="clear"></div>
+              <div class="clear"></div>
+              <div class="clear"></div>
+<a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>
+            </div>
           </div>
-        </div>
-        
-                
-        <div id="bodyColumn"  class="span9" >
-                                  
-            <!-- Licensed to the Apache Software Foundation (ASF) under one or more
+        </header>
+        <main id="bodyColumn"  class="span10" >
+<!--
+   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
@@ -305,101 +158,121 @@
    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. --><h1>Vault FS</h1>
-<p><b>NOTE</b>: Parts of the following documentation is outdated and needs review - - - </p>
-<div class="section">
-<h2>Introduction<a name="Introduction"></a></h2>
-<p>we see in various applications the need for a simple jcr repository to filesystem mapping. for example in source management tools, fileserver bindings, import/export stuff etc. if a jcr repository would only consist of <tt>nt:file</tt> and <tt>nt:folder</tt>, this would be easy. but if other nodetypes are used (even a simple as extending from <tt>nt:file</tt>) the mapping to the filesystem is not so trivial anymore. the idea is to provide a general all-purpose mechanism to export to and import from a standard (java.io based) filesystem.</p>
+   limitations under the License.
+-->
+Vault FS
+========
+**NOTE**: Parts of the following documentation is outdated and needs review
+<hr /><section>
+<h2><a name="Introduction"></a>Introduction</h2>
+<p>we see in various applications the need for a simple jcr repository to filesystem mapping. for example in source management tools, fileserver bindings, import/export stuff etc. if a jcr repository would only consist of nt:file and nt:folder, this would be easy. but if other nodetypes are used (even a simple as extending from nt:file) the mapping to the filesystem is not so trivial anymore. the idea is to provide a general all-purpose mechanism to export to and import from a standard (java.io based) filesystem.</p>
 <p>The VaultFs is designed to provide a general filesystem abstraction of a JCR repository. It provides the following features:</p>
-
 <dl>
+
 <dt>intuitive mapping</dt>
-<dd>A <tt>nt:file</tt> should just map to a simple file, a <tt>nt:folder</tt> to a directory. More complex node types should map to a <tt>nodename.xml</tt> and a possible <tt>nodename</tt> folder that contains the child nodes or be aggregated to a complete or partial serialization.</dd>
+<dd>A nt:file should just map to a simple file, a nt:folder to a directory. More complex node types should map to a nodename.xml and a possible nodename folder that contains the child nodes or be aggregated to a complete or partial serialization.</dd>
 <dt>universal api</dt>
 <dd>the api should be suitable for all filesystem based applications like WebDAV, CIFS, SCM Integration, FileVault, etc.</dd>
 <dt>extendable</dt>
 <dd>A plugin mechanism should allow to extend the mapping layer for further conversions filters and aggregators.</dd>
-</dl></div>
-<div class="section">
-<h2>Overview<a name="Overview"></a></h2>
+</dl></section><section>
+<h2><a name="Overview"></a>Overview</h2>
 <p><img src="vaultfs.png" alt="VaultFS Overview" /></p>
-<p>VaultFs consists mainly of 2 layers that map the repository&#x2019;s nodes to VaultFs files: The <i>Aggregate Node Tree</i> that is managed by the <i>aggregate manager</i> represents a hierarchical view of the content aggregates. Each aggregate is addressed by a path and allows access to its artifacts. The artifacts nodes are built using <i>aggregators</i> that define which repository items belong to an aggregate and what artifacts they produce. For each artifact there is a <i>serializer</i> defined that is used to export and import the respective content. </p>
+<p>VaultFs consists mainly of 2 layers that map the repository&#x2019;s nodes to VaultFs files: The <i>Aggregate Node Tree</i> that is managed by the <i>aggregate manager</i> represents a hierarchical view of the content aggregates. Each aggregate is addressed by a path and allows access to its artifacts. The artifacts nodes are built using <i>aggregators</i> that define which repository items belong to an aggregate and what artifacts they produce. For each artifact there is a <i>serializer</i> defined that is used to export and import the respective content.</p>
 <p>On top of the aggregate tree is the <i>Vault File System</i> that accesses the aggregates and exposes them as tree of <i>vault files</i>. They can be used to export and import the actual repository content. The mapping from aggregates and its artifacts to vault files is done in an intuitive way so that clients (and users) can deal with them in a natural filesystem like fashion.</p>
-<p><img src="vault_sample.png" alt="VaultFS Example" /></p></div>
-<div class="section">
-<h2>Aggregate Manager<a name="Aggregate_Manager"></a></h2>
-<p>The aggregate manager is configured with a set of aggregators and serializers. Once the manager is mounted on a jcr repository it exposes a tree of aggregates. They are collected using an aggregator that matches the respective repository node. For example the <i>nt:file aggregator</i> produces an artifacts node that allows no further child nodes and provides (usually) one primary artifact (which represents the content of the file).</p>
-<div class="section">
-<h3>Artifacts<a name="Artifacts"></a></h3>
+<p><img src="vault_sample.png" alt="VaultFS Example" /></p></section><section>
+<h2><a name="Aggregate_Manager"></a>Aggregate Manager</h2>
+<p>The aggregate manager is configured with a set of aggregators and serializers. Once the manager is mounted on a jcr repository it exposes a tree of aggregates. They are collected using an aggregator that matches the respective repository node. For example the <i>nt:file aggregator</i> produces an artifacts node that allows no further child nodes and provides (usually) one primary artifact (which represents the content of the file).</p><section>
+<h3><a name="Artifacts"></a>Artifacts</h3>
 <p>an artifact is one aspect or part of a content aggregation. the following artifact types exist:</p>
-<p>Directory Artifacts : represent the folder aspect of an aggregate. For example a pure <tt>nt:folder</tt> would produce an aggregate with just one sole directory artifact.</p>
-
 <dl>
+
+<dt>Directory Artifacts</dt>
+<dd>represent the folder aspect of an aggregate. For example a pure nt:folder would produce an aggregate with just one sole directory artifact.</dd>
 <dt>File Artifacts</dt>
-<dd>represent file aggregates. since the <tt>nt:file</tt> handling is very special there is an special type for it.</dd>
+<dd>represent file aggregates. since the nt:file handling is very special there is an special type for it.</dd>
 <dt>Primary Artifacts</dt>
 <dd>represent the main aggregate. This usually contains all nodes and properties that belong to the aggregate that cannot be expressed by another type.</dd>
-</dl>
-<p>Binary Artifacts : represent binary content that is not included in the primary or file artifacts. This is for example suitable for binary properties that were not included in a xml deserialization. This allows keeping the deserializations leaner and more efficient.</p></div></div>
-<div class="section">
-<h2>Content Aggregation<a name="Content_Aggregation"></a></h2>
+<dt>Binary Artifacts</dt>
+<dd>represent binary content that is not included in the primary or file artifacts. This is for example suitable for binary properties that were not included in a xml deserialization. This allows keeping the deserializations leaner and more efficient.</dd>
+</dl></section></section><section>
+<h2><a name="Content_Aggregation"></a>Content Aggregation</h2>
 <p>A subtree of nodes will be aggregated semantically into one entity, the aggregate. This mainly consists of a path and a set of artifacts and may have child aggregates.</p>
 <p>the mechanism how content aggregation works is defined by a set of <i>filters</i> with corresponding <i>aggregators</i>. if we look at the export in a recursive way, it would work as follows:</p>
-
 <ol style="list-style-type: decimal">
-  
+
 <li>traverse the repository starting at the root node</li>
-  
 <li>for each node check which filter matches</li>
-  
 <li>execute the respective aggregator and create a new aggregate</li>
-  
 <li>if aggregator allows child nodes descend into the excluded nodes</li>
-</ol>
-<div class="section">
-<h3>Aggregates<a name="Aggregates"></a></h3>
+</ol><section>
+<h3><a name="Aggregates"></a>Aggregates</h3>
 <p>an aggregate is a tree of repository items that belong together and are mapped to (a set of) artifacts. the artifacts represent filesystem resources. the aggregate type is defined by the aggregator type and not primarily by the content. i.e. the selected aggregator must return stable coverage information which is not dependent of the actual content.</p>
-<p>there can be identified 4 types of aggregates.</p>
-<div class="section">
-<h4>Full coverage aggregates<a name="Full_coverage_aggregates"></a></h4>
-<p>they aggregate an entire subtree. for example the complete serialization of a <tt>nt:nodeType</tt> node or a <i>dialog definition</i>. they are very simple to deal with, since the root node of the aggregate is usually serialized into 1 filesystem file.</p>
+<p>there can be identified 4 types of aggregates.</p><section>
+<h4><a name="Full_coverage_aggregates"></a>Full coverage aggregates</h4>
+<p>they aggregate an entire subtree. for example the complete serialization of a nt:nodeType node or a <i>dialog definition</i>. they are very simple to deal with, since the root node of the aggregate is usually serialized into 1 filesystem file.</p>
 <p>The following repository structure:</p>
+<ul>
+
+<li>nodetypes [nt:unstructured]
+<ul>
+
+<li>nt1 [nt:nodeType]
+<ul>
 
-<div class="source">
-<pre>+ nodetypes [nt:unstructured]
-  + nt1 [nt:nodeType]
-    + jcr:propertyDefinition [nt:propertyDefinition]
-    + jcr:propertyDefinition [nt:propertyDefinition]
-    + jcr:childNodeDefinition [nt:childNodeDefinition]
-  + nt2 [nt:nodeType]
-    ...
-</pre></div>
+<li>jcr:propertyDefinition [nt:propertyDefinition]</li>
+<li>jcr:propertyDefinition [nt:propertyDefinition]</li>
+<li>jcr:childNodeDefinition [nt:childNodeDefinition]</li>
+</ul>
+</li>
+<li>nt2 [nt:nodeType] &#x2026;</li>
+</ul>
+</li>
+</ul>
 <p>could be mapped to:</p>
 
-<div class="source">
-<pre>`- nodetypes
+<div>
+<div>
+<pre class="source">`- nodetypes
    |- nt1.cnd
    `- nt2.cnd
 </pre></div></div>
-<div class="section">
-<h4>Generic aggregates<a name="Generic_aggregates"></a></h4>
-<p>generic aggregates cover a part of a content subtree, hence they have not a full coverage. they always consist at least of a primary artifact and a directory artifact. examples of those are the aggregation of a <tt>cq:Page</tt> structure or of <tt>nt:unstructured</tt> nodes. </p>
+</section><section>
+<h4><a name="Generic_aggregates"></a>Generic aggregates</h4>
+<p>generic aggregates cover a part of a content subtree, hence they have not a full coverage. they always consist at least of a primary artifact and a directory artifact. examples of those are the aggregation of a cq:Page structure or of nt:unstructured nodes.</p>
 <p>the following repository structure:</p>
+<ul>
+
+<li>en [cq:Page]
+<ul>
 
-<div class="source">
-<pre>+ en [cq:Page]
-  + jcr:content [cq:Content]
-  + about [cq:Page]
-    + jcr:content [cq:Content]
-      + header [cq:Content]
-        + image.jpg
-  + solutions [cq:Page
-    + jcr:content [cq:Content]
-</pre></div>
+<li>jcr:content [cq:Content]</li>
+<li>about [cq:Page]
+<ul>
+
+<li>jcr:content [cq:Content]</li>
+<li>header [cq:Content]
+<ul>
+
+<li>image.jpg</li>
+</ul>
+</li>
+</ul>
+</li>
+<li>solutions [cq:Page
+<ul>
+
+<li>jcr:content [cq:Content]</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
 <p>are mapped to:</p>
 
-<div class="source">
-<pre>`- en
+<div>
+<div>
+<pre class="source">`- en
    |- .content.xml
    |- about
    |  |- _jcr_content
@@ -408,23 +281,36 @@
    |  `- .content.xml
    `- solution
       `- .content.xml
-</pre></div>
-<p>the example above just excluded some direct child nodes of the aggregate root from the aggregation (with the exception of the <tt>image.jpg</tt> node). but this could be more complicated.</p>
+</pre></div></div>
+
+<p>the example above just excluded some direct child nodes of the aggregate root from the aggregation (with the exception of the image.jpg node). but this could be more complicated.</p>
 <p>overlapping example:</p>
+<ul>
 
-<div class="source">
-<pre>+ apps [nt:unstructured]
-  + example [nt:unstructured]
-    + components [nt:unstructured]
-      + image [cq:Component]
-        + dialog [cq:Dialog]
-          ...  
-        + default.jsp [nt:file] 
-</pre></div>
+<li>apps [nt:unstructured]
+<ul>
+
+<li>example [nt:unstructured]
+<ul>
+
+<li>components [nt:unstructured]</li>
+<li>image [cq:Component]
+<ul>
+
+<li>dialog [cq:Dialog] &#x2026;</li>
+<li>default.jsp [nt:file]</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
 <p>is be mapped to:</p>
 
-<div class="source">
-<pre>`- apps
+<div>
+<div>
+<pre class="source">`- apps
    |- .content.xml
    `- example
       |- .content.xml
@@ -434,75 +320,83 @@
             |- .content.xml
             |- dialog.xml
             `- default.jsp
-</pre></div>
-<p>this example has 6 aggregates:</p>
+</pre></div></div>
 
+<p>this example has 6 aggregates:</p>
 <ol style="list-style-type: decimal">
-  
-<li>the generic aggregate for <tt>apps</tt></li>
-  
-<li>the generic aggregate for <tt>example</tt></li>
-  
-<li>the generic aggregate for <tt>components</tt></li>
-  
-<li>the generic aggregate for <tt>image</tt></li>
-  
-<li>the <tt>default.jsp</tt> file aggregate</li>
-  
-<li>the <tt>dialog.xml</tt> full coverage aggregate</li>
-</ol></div>
-<div class="section">
-<h4>Simple File aggregates<a name="Simple_File_aggregates"></a></h4>
-<p>since files (<tt>nt:file</tt> nodes and extents) are common they are treated differently in aggregation. the simplest mapping is to create a filesystem file for each <tt>nt:file</tt>. unfortunately there is some information in a default <tt>nt:file</tt> that cannot be preserved in the filesystem. namely:</p>
-
-<ul>
-  
-<li><tt>jcr:created</tt> property</li>
-  
-<li><tt>jcr:content/jcr:uuid</tt> property</li>
-  
-<li><tt>jcr:content/jcr:encoding</tt> property</li>
-  
-<li><tt>jcr:content/jcr:mimeType</tt> property</li>
+
+<li>the generic aggregate for apps</li>
+<li>the generic aggregate for example</li>
+<li>the generic aggregate for components</li>
+<li>the generic aggregate for image</li>
+<li>the default.jsp file aggregate</li>
+<li>the dialog.xml full coverage aggregate</li>
+</ol></section><section>
+<h4><a name="Simple_File_aggregates"></a>Simple File aggregates</h4>
+<p>since files (nt:file nodes and extents) are common they are treated differently in aggregation. the simplest mapping is to create a filesystem file for each nt:file. unfortunately there is some information in a default nt:file that cannot be preserved in the filesystem. namely:</p>
+<ul>
+
+<li>jcr:created property</li>
+<li>jcr:content/jcr:uuid property</li>
+<li>jcr:content/jcr:encoding property</li>
+<li>jcr:content/jcr:mimeType property</li>
 </ul>
 <p>so in order to achieve a complete serialization there is an extra artifact needed to store this info. but to keep the mapping lean, those properties are not part of the file aggregate but &#x2018;delegated&#x2019; to its parent aggregate.</p>
 <p>example:</p>
+<ul>
+
+<li>foo [nt:folder]
+<ul>
+
+<li>example.jsp [nt:file]
+<ul>
 
-<div class="source">
-<pre>+ foo [nt:folder]
-  + example.jsp [nt:file]
-    - jcr:created ...
-    + jcr:content [nt:resource]
-      - jcr:data
-      - jcr:lastModified
-      - jcr:mimeType
-</pre></div>
+<li>jcr:created &#x2026;</li>
+<li>jcr:content [nt:resource]</li>
+<li>jcr:data</li>
+<li>jcr:lastModified</li>
+<li>jcr:mimeType</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
 <p>is mapped to:</p>
 
-<div class="source">
-<pre>`- foo
+<div>
+<div>
+<pre class="source">`- foo
    |- .content.xml
    `- example.jsp
-</pre></div>
-<p>the <tt>.content.xml</tt> will include the properties that are not handled by the <tt>example.jsp</tt></p></div>
-<div class="section">
-<h4>Extended File aggregates<a name="Extended_File_aggregates"></a></h4>
-<p>when <tt>nt:file</tt> nodes are extended, either by primary or mixin type, the primary artifact remains the generic serialization of the resource. additional information needs to be serialized to an extra artifact.</p>
+</pre></div></div>
+
+<p>the .content.xml will include the properties that are not handled by the example.jsp</p></section><section>
+<h4><a name="Extended_File_aggregates"></a>Extended File aggregates</h4>
+<p>when nt:file nodes are extended, either by primary or mixin type, the primary artifact remains the generic serialization of the resource. additional information needs to be serialized to an extra artifact.</p>
 <p>example:</p>
+<ul>
+
+<li>sample.jpg [dam:file]
+<ul>
 
-<div class="source">
-<pre>+ sample.jpg [dam:file]
-  - jcr:created
-  + jcr:content [dam:resource]
-    - jcr:lastModified
-    + dam:thumbnails [nt:folder]
-      - 90.jpg [nt:file]
-      - 120.jpg [nt:file]
-</pre></div>
+<li>jcr:created</li>
+<li>jcr:content [dam:resource]
+<ul>
+
+<li>jcr:lastModified</li>
+<li>dam:thumbnails [nt:folder]</li>
+<li>90.jpg [nt:file]</li>
+<li>120.jpg [nt:file]</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
 <p>are be mapped to:</p>
 
-<div class="source">
-<pre>|- sample.jpg
+<div>
+<div>
+<pre class="source">|- sample.jpg
 `- sample.jpg.dir
    |- .content.xml
    `- _jcr_content
@@ -510,27 +404,35 @@
          |- 90.jpg
          `- 120.jpg
 </pre></div></div>
-<div class="section">
-<h4>Folder aggregates<a name="Folder_aggregates"></a></h4>
-<p>pure <tt>nt:folder</tt> aggregates will result in one directory and mostly in an additional <tt>.content.xml</tt></p></div>
-<div class="section">
-<h4>Binary Properties<a name="Binary_Properties"></a></h4>
-<p>There is some special handling for binary properties other than <tt>jcr:data</tt> in a <tt>jcr:content</tt> node. example (although this is probably very rare):</p>
-
-<div class="source">
-<pre>+ foo [nt:unstructured]
-  + bar [nt:unstructured]
-    + 0001 [nt:unstructured]
-      - data1 (binary)
-      - data2 (binary)
-    + 0002 [nt:unstructured]
-      - data1 (binary)
-      - data2 (binary)
-</pre></div>
+</section><section>
+<h4><a name="Folder_aggregates"></a>Folder aggregates</h4>
+<p>pure nt:folder aggregates will result in one directory and mostly in an additional .content.xml</p></section><section>
+<h4><a name="Binary_Properties"></a>Binary Properties</h4>
+<p>There is some special handling for binary properties other than jcr:data in a jcr:content node. example (although this is probably very rare):</p>
+<ul>
+
+<li>foo [nt:unstructured]
+<ul>
+
+<li>bar [nt:unstructured]
+<ul>
+
+<li>0001 [nt:unstructured]</li>
+<li>data1 (binary)</li>
+<li>data2 (binary)</li>
+<li>0002 [nt:unstructured]</li>
+<li>data1 (binary)</li>
+<li>data2 (binary)</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
 <p>is mapped to:</p>
 
-<div class="source">
-<pre>`- foo
+<div>
+<div>
+<pre class="source">`- foo
    |- .content.xml
    `- bar
       |- 0001
@@ -540,115 +442,88 @@
          |- data1.bin
          `- data2.bin      
 </pre></div></div>
-<div class="section">
-<h4>Resource Nodes<a name="Resource_Nodes"></a></h4>
-<p>there are some cases where <tt>nt:resource</tt> like structures are used that are not held below a <tt>nt:file</tt> node.</p>
-
-<div class="source">
-<pre>+ foo [nt:unstructured]
-  + cq:content [nt:resource]
-    - jcr:mimeType &quot;image/jpg&quot;
-    - jcr:data  
-    - jcr:lastModified
-</pre></div>
+</section><section>
+<h4><a name="Resource_Nodes"></a>Resource Nodes</h4>
+<p>there are some cases where nt:resource like structures are used that are not held below a nt:file node.</p>
+<ul>
+
+<li>foo [nt:unstructured]
+<ul>
+
+<li>cq:content [nt:resource]
+<ul>
+
+<li>jcr:mimeType &#x201c;image/jpg&#x201d;</li>
+<li>jcr:data</li>
+<li>jcr:lastModified</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
 <p>this is mapped to:</p>
 
-<div class="source">
-<pre>`- foo
+<div>
+<div>
+<pre class="source">`- foo
    |- .content.xml
    `- _cq_content.jpg
-</pre></div>
-<p>where as the mimetype and modification date can be recorded in the primary artifact. possible other properties like <tt>jcr:uuid</tt> etc would go to the parent aggregate.</p></div>
-<div class="section">
-<h4>Filename escaping<a name="Filename_escaping"></a></h4>
-<p>not all of the character in a jcr name are allowed filesystem characters and need escaping. the normal case is to use the <i>url encoding</i>, i.e. using a <tt>%</tt> followed by the hexnumber of the character. but this look ugly, especially for the colon <tt>:</tt>, eg a <tt>cq:content</tt> would become <tt>cq%3acontent</tt>. so for the namespace prefix there is a special escaping by replacing it by a underscores. eg: <tt>cq:content</tt> will be <tt>_cq_content</tt>. nodes already having this patter will be escaped using a double underscore. eg: <tt>_test_image.jpg</tt> would be <tt>__test_image.jpg</tt>.</p>
-<p>more examples:</p>
+</pre></div></div>
 
+<p>where as the mimetype and modification date can be recorded in the primary artifact. possible other properties like jcr:uuid etc would go to the parent aggregate.</p></section><section>
+<h4><a name="Filename_escaping"></a>Filename escaping</h4>
+<p>not all of the character in a jcr name are allowed filesystem characters and need escaping. the normal case is to use the <i>url encoding</i>, i.e. using a % followed by the hexnumber of the character. but this look ugly, especially for the colon :, eg a cq:content would become cq%3acontent. so for the namespace prefix there is a special escaping by replacing it by a underscores. eg: cq:content will be _cq_content. nodes already having this patter will be escaped using a double underscore. eg: _test_image.jpg would be __test_image.jpg.</p>
+<p>more examples:</p>
 <table border="0" class="table table-striped">
-  <thead>
-    
+<thead>
+
 <tr class="a">
-      
-<th>node name </th>
-      
-<th>file name </th>
-    </tr>
-  </thead>
-  <tbody>
-    
+<th> node name </th>
+<th> file name </th></tr>
+</thead><tbody>
+
 <tr class="b">
-      
-<td><tt>test.jpg</tt> </td>
-      
-<td><tt>test.jpg</tt> </td>
-    </tr>
-    
+<td> test.jpg          </td>
+<td> test.jpg                    </td></tr>
 <tr class="a">
-      
-<td><tt>cq:content</tt> </td>
-      
-<td><tt>_cq_content</tt> </td>
-    </tr>
-    
+<td> cq:content        </td>
+<td> _cq_content                 </td></tr>
 <tr class="b">
-      
-<td><tt>test_image.jpg</tt> </td>
-      
-<td><tt>test_image.jpg</tt> </td>
-    </tr>
-    
+<td> test_image.jpg    </td>
+<td> test_image.jpg              </td></tr>
 <tr class="a">
-      
-<td><tt>_testimage.jpg</tt> </td>
-      
-<td><tt>_testimage.jpg</tt> </td>
-    </tr>
-    
+<td> _testimage.jpg    </td>
+<td> _testimage.jpg              </td></tr>
 <tr class="b">
-      
-<td><tt>_test_image.jpg</tt> </td>
-      
-<td><tt>__test_image.jpg</tt> </td>
-    </tr>
-    
+<td> _test_image.jpg   </td>
+<td> __test_image.jpg            </td></tr>
 <tr class="a">
-      
-<td><tt>cq:test:image.jpg</tt> </td>
-      
-<td><tt>_cq_test%3aimage.jpg</tt> <sup>1</sup> </td>
-    </tr>
-  </tbody>
+<td> cq:test:image.jpg </td>
+<td> _cq_test%3aimage.jpg <sup>1</sup> </td></tr>
+</tbody>
 </table>
-<p><sup>1</sup> this is a very rare case and justifies the ugly <tt>%3a</tt> escaping.</p></div></div></div>
-<div class="section">
-<h2>Serialization<a name="Serialization"></a></h2>
-<p>The serialization of the artifacts is defined by the =serializer= that is provided by the aggregator. Currently there are only 3 kind of serializations used: a direct data serialization for the contents of file or binary artifacts, a <i>CND</i> serialized for <tt>nt:nodeType</tt> nodes and an enhanced <i>docview</i> serialization for the rest. The <i>docview</i> serialization that is used allows multi value properties (and might be enhanced by a better property type support).</p></div>
-<div class="section">
-<h2>Deserialization<a name="Deserialization"></a></h2>
+<p><sup>1</sup> this is a very rare case and justifies the ugly %3a escaping.</p></section></section></section><section>
+<h2><a name="Serialization"></a>Serialization</h2>
+<p>The serialization of the artifacts is defined by the =serializer= that is provided by the aggregator. Currently there are only 3 kind of serializations used: a direct data serialization for the contents of file or binary artifacts, a <i>CND</i> serialized for nt:nodeType nodes and an enhanced <i>docview</i> serialization for the rest. The <i>docview</i> serialization that is used allows multi value properties (and might be enhanced by a better property type support).</p></section><section>
+<h2><a name="Deserialization"></a>Deserialization</h2>
 <p>Although for exporting only 3 serialization types are used this is a bit different for importing. The importer analyzes the provided input sources and determines the following serialization types:</p>
-
 <ul>
-  
+
 <li>generic XML</li>
-  
 <li>docview XML</li>
-  
 <li>sysview XML</li>
-  
 <li>generic data</li>
 </ul>
 <p>Depending on the configuration those input sources can be handled differently. currently they are imported as follows:</p>
-<p><b>generic XML</b> produces a <tt>nt:file</tt> having a <tt>jcr:content</tt> of the deserialization of the xml document (if importing into CRX then the <tt>crx:XmlDocument</tt> nodetypes and friends are used).</p>
+<p><b>generic XML</b> produces a nt:file having a jcr:content of the deserialization of the xml document (if importing into CRX then the crx:XmlDocument nodetypes and friends are used).</p>
 <p><b>docview XML</b> is more or less imported directly below the respective import root.</p>
 <p><b>sysview XML</b> is more or less imported directly below the respective import root.</p>
-<p><b>generic data</b> produces a <tt>nt:file</tt> having the data as <tt>nt:resource</tt> content.</p></div>
-<div class="section">
-<h2>Vault File System Layer<a name="Vault_File_System_Layer"></a></h2>
-<p>The VaultFs layer provides a mapping from the aggregate tree to a file system. The goal is to keep the amount of files lean and as natural as possible with a minimum amount of extra files. </p></div>
-<div class="section">
-<h2>Terminology<a name="Terminology"></a></h2>
-
+<p><b>generic data</b> produces a nt:file having the data as nt:resource content.</p></section><section>
+<h2><a name="Vault_File_System_Layer"></a>Vault File System Layer</h2>
+<p>The VaultFs layer provides a mapping from the aggregate tree to a file system. The goal is to keep the amount of files lean and as natural as possible with a minimum amount of extra files.</p></section><section>
+<h2><a name="Terminology"></a>Terminology</h2>
 <dl>
+
 <dt>VaultFs</dt>
 <dd>The File Vault Filesystem. Provides file-like abstraction of a JCR repository.</dd>
 <dt>VaultFile</dt>
@@ -662,29 +537,20 @@
 <dt>Artifact handler</dt>
 <dd>Interface that defines methods for deserializing artifacts.</dd>
 <dt>Artifact</dt>
-<dd>Representation of a content aggregate. An aggregator can provide several artifacts.  An artifact is either mapped to a file or a directory and can be of the  type: <b>primary</b>, <b>file</b>, <b>binary</b> or <b>directory</b></dd>
-</dl></div>
-                  </div>
-            </div>
-          </div>
-
+<dd>Representation of a content aggregate. An aggregator can provide several artifacts. An artifact is either mapped to a file or a directory and can be of the type: <b>primary</b>, <b>file</b>, <b>binary</b> or <b>directory</b></dd>
+</dl></section>
+        </main>
+      </div>
+    </div>
     <hr/>
-
     <footer>
-            <div class="container-fluid">
-              <div class="row span12">Copyright &copy;                    2019
-                        <a href="https://www.apache.org/">The Apache Software Foundation</a>.
-            All Rights Reserved.      
-                    
-      </div>
-
-        
-        
-          
-    
-    
+      <div class="container-fluid">
+        <div class="row-fluid">
+            <p>Copyright &#169;      2019<a href="https://www.apache.org/">The Apache Software Foundation</a>.
+.</p>
+        </div>
     <div id="ohloh" class="pull-right">
-      <script type="text/javascript" src="http://www.ohloh.net/p/jackrabbit-filevault/widgets/project_users_logo.js"></script>
+      <script src="https://www.ohloh.net/p/jackrabbit-filevault/widgets/project_users_logo.js"></script>
     </div>
         </div>
     </footer>