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 2019/05/20 11:23:20 UTC

svn commit: r1859550 [10/26] - in /jackrabbit/site/live/archive: ./ wiki/ wiki/JCR/ wiki/JCR/attachments/ wiki/JCR/attachments/115513387/ wiki/JCR/attachments/115513390/ wiki/JCR/attachments/115513408/ wiki/JCR/attachments/115513413/ wiki/JCR/attachmen...

Added: jackrabbit/site/live/archive/wiki/JCR/Frm-HttpOperations_115513401.html
URL: http://svn.apache.org/viewvc/jackrabbit/site/live/archive/wiki/JCR/Frm-HttpOperations_115513401.html?rev=1859550&view=auto
==============================================================================
--- jackrabbit/site/live/archive/wiki/JCR/Frm-HttpOperations_115513401.html (added)
+++ jackrabbit/site/live/archive/wiki/JCR/Frm-HttpOperations_115513401.html Mon May 20 11:23:18 2019
@@ -0,0 +1,427 @@
+<!DOCTYPE html>
+<html>
+    <head>
+        <title>Apache Jackrabbit : Frm HttpOperations</title>
+        <link rel="stylesheet" href="styles/site.css" type="text/css" />
+        <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+    </head>
+
+    <body class="theme-default aui-theme-default">
+        <div id="page">
+            <div id="main" class="aui-page-panel">
+                <div id="main-header">
+                    <div id="breadcrumb-section">
+                        <ol id="breadcrumbs">
+                            <li class="first">
+                                <span><a href="index.html">Apache Jackrabbit</a></span>
+                            </li>
+                                                    <li>
+                                <span><a href="Home_70731.html">Home</a></span>
+                            </li>
+                                                    <li>
+                                <span><a href="Frm_115513400.html">Frm</a></span>
+                            </li>
+                                                </ol>
+                    </div>
+                    <h1 id="title-heading" class="pagetitle">
+                                                <span id="title-text">
+                            Apache Jackrabbit : Frm HttpOperations
+                        </span>
+                    </h1>
+                </div>
+
+                <div id="content" class="view">
+                    <div class="page-metadata">
+                        
+        
+    
+        
+    
+        
+        
+            Created by <span class='author'> ASF Infrabot</span> on May 20, 2019
+                        </div>
+                    <div id="main-content" class="wiki-content group">
+                    <h1 id="FrmHttpOperations-HTTPOperations">HTTP Operations</h1>
+
+<p>This document provides a description of the HTTP implementation of the operations exposed by the Oak Remote API.</p>
+
+<h2 id="FrmHttpOperations-Authentication">Authentication</h2>
+
+<p>This section relies on the HTTP/1.1 Authentication framework defined by RFC7235. The idea is that an Oak server may define different authentication schemes, while the client may choose one of them according to his particular needs.</p>
+
+<p>Authentication information is mandatory for every method described below, unless differently specified.</p>
+
+<h3 id="FrmHttpOperations-Basic">Basic</h3>
+
+<p>The basic authentication uses the authentication scheme described in Section 2 of RFC2617. The client provides a user name and password that will be authenticated by the repository using the normal login procedure.</p>
+
+<h3 id="FrmHttpOperations-Impersonation">Impersonation</h3>
+
+<p>The impersonation authentication uses an authentication scheme of <code>Impersonate</code>. The client must include one or more tokens that represents the principals of the target subject to impersonate. In example, an impersonation request sent by a client may contain the following header:</p>
+
+<div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent panelContent">
+<pre>Authorization: Impersonate principals=&quot;bob,authors,reviewers&quot;
+</pre>
+</div></div>
+
+<p>to force the current request to be evaluated as the current subject is correctly logged in the repository and is an aggregation of the principals &quot;bob&quot;, &quot;authors&quot; and &quot;reviewers&quot;.</p>
+
+<p>If this authentication method is chosen, the server will skip authentication completely. The server will assume that another part of the application is responsible for authentication, and will limit itself to evaluate the request according to the privileges granted to the impersonated user.</p>
+
+<p>This authentication method is particularly risky, and it is meant to be used only if there is a high degree of confidentiality between the server and the client. In example, a server may want to provide this kind of authentication scheme as a challenge to a client only in case of a secure, encrypted connection or only if the client is part of a whitelist.</p>
+
+<h2 id="FrmHttpOperations-Readarevision">Read a revision</h2>
+
+<div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent panelContent">
+<pre>GET /revisions/last
+</pre>
+</div></div>
+
+<p>In case of success, the server returns a <code>200</code> response with a content type of <code>application/json</code>. The body of the respnose is a JSON object, where the revision is the value of the <code>revision</code> property.</p>
+
+<div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent panelContent">
+<pre>{
+  &quot;revision&quot;: &quot;...&quot;
+}
+</pre>
+</div></div>
+
+<p>The value of the <code>revision</code> property is an opaque value whose format and semantics are implementation dependent.</p>
+
+<h2 id="FrmHttpOperations-Readatree">Read a tree</h2>
+
+<div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent panelContent">
+<pre>GET /revisions/:revision/tree/:path
+</pre>
+</div></div>
+
+<div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent panelContent">
+<pre>GET /revisions/last/tree/:path
+</pre>
+</div></div>
+
+<p>The <code>:revision</code> part of the URL is the revision that represents the state of the repository used when reading. A value for this parameter is obtained by using a dedicated method of this API. If the second kind of URL is used, where <code>:revision</code> assumes the value of <code>last</code>, the read operation is performed on the latest state of the repository known to the server.</p>
+
+<p>The <code>:path</code> part of the URL is the path of the node in the repository that will be used as a root for the read operation.</p>
+
+<p>Request parameters:</p>
+
+<ul>
+	<li><code>depth</code> - the maximum depth of the tree returned by the response. This parameter is optional and is a single-value parameter.
+<br class="atl-forced-newline"/></li>
+	<li><code>properties</code> - a glob representing a property filter for the returned tree. This parameter is optional and is a multi-value parameter. Multiple instances of this parameter can be included to specify different property filters.
+<br class="atl-forced-newline"/></li>
+	<li><code>children</code> - a glob representing a filter for the child nodes included in the returned tree. This parameter is optional and is a multi-value parameter. Multiple instances of this parameter can be included to specify different child node filters.
+<br class="atl-forced-newline"/></li>
+	<li><code>binaries</code> - the maximum number of bytes under which binary data are inlined in the response. This parameter is optional and is a single-value parameter.
+<br class="atl-forced-newline"/></li>
+	<li><code>childrenStart</code> - a number representing the starting index where children are read from for each returned node. This parameter is optional and is a single-value parameter.
+<br class="atl-forced-newline"/></li>
+	<li><code>childrenCount</code> - a number representing the maximum number of children to read for each returned node. This parameter is optional and is a single-value parameter.
+<br class="atl-forced-newline"/></li>
+</ul>
+
+
+<p>In case of success, the server returns a <code>200</code> response with a content type of <code>application/json</code>. If the tree is not found at the specified revision (or at the latest revision), a <code>404</code> response is returned. If a revision is specified and that revision is not valid, a <code>410</code> response is returned. The body of the response is a JSON object representing a tree node. </p>
+
+<p>A node is represented with a JSON object with the following structure:</p>
+
+<div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent panelContent">
+<pre>{
+  &quot;properties&quot;: {
+    &quot;foo&quot;: {&quot;type&quot;: &quot;string&quot;, &quot;value&quot;: &quot;bar&quot;},
+    &quot;baz&quot;: {&quot;type&quot;: &quot;uri&quot;, &quot;value&quot;: &quot;http://acme.com&quot;},
+    &quot;qux&quot;: {&quot;type&quot;: &quot;booleans&quot;, &quot;value&quot;: [true, false, true]}
+  },
+  &quot;children&quot;: {
+    &quot;bob&quot;: null,
+    &quot;sue&quot;: null
+  }
+</pre>
+</div></div>
+
+<p>The response also contains a header called <code>Oak-Revision</code> containing the revision the tree is bound to. If a tree is read from the latest revision, the <code>Oak-Revision</code> header will contain the revision ID that was used on the server to read the returned tree. This allows the client to reuse that revision ID for subsequent reads. If a tree is read from a specified revision, the content of <code>Oak-Revision</code> simply contains the revision ID specified by the client. The <code>Oak-Revision</code> header is present in case of both a <code>200</code> and a <code>404</code> response, but it is not available in case of a <code>410</code> response.</p>
+
+<p>Property values are serialized according to the following rules:</p>
+
+<div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent panelContent">
+<pre>Repository type   JSON type   Type name         Description
+===============   =========   =========         ===========
+STRING            string      &quot;string&quot;
+BINARY            string      &quot;binary&quot;          Binary value encoded in Base64.
+BINARY            string      &quot;binaryId&quot;        Implementation-dependent reference to a binary value.
+LONG              number      &quot;long&quot;
+DOUBLE            number      &quot;double&quot;
+DATE              number      &quot;date&quot;            Number of milliseconds since the epoch (Thu, 01 Jan 1970 00:00:00 GMT).
+BOOLEAN           boolean     &quot;boolean&quot;
+NAME              string      &quot;name&quot;
+PATH              string      &quot;path&quot;
+REFERENCE         string      &quot;reference&quot;
+WEAK REFERENCE    string      &quot;weakReference&quot;
+URI               string      &quot;uri&quot;
+DECIMAL           string      &quot;decimal&quot;         String serialization of the decimal number.
+</pre>
+</div></div>
+
+<h2 id="FrmHttpOperations-Writecontent">Write content</h2>
+
+<div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent panelContent">
+<pre>PATCH /revisions/:revision/tree
+</pre>
+</div></div>
+
+<div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent panelContent">
+<pre>PATCH /revisions/last/tree
+</pre>
+</div></div>
+
+<p>The <code>:revision</code> part of the URL specifies the revision the patch should be applied to. A value for this parameter is obtained by using a dedicated method of this API. If the second kind of URL is used, where <code>:revision</code> assumes the value of <code>last</code>, the patch operation is performed on the latest state of the repository known to the server.</p>
+
+<p>The request must have a content type of <code>application/json</code> and its body must contain the set of operations to apply to the content represented according to the following rules.</p>
+
+<p>The set of operations must be contained inside a JSON array. The elements of this array are the operations. Every operation is represented by a JSON object. An operation can be of one of six different types: add, remove, set, unset, copy and move.</p>
+
+<p>The following example patch shows all of the available operations and their serialization format.</p>
+
+<div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent panelContent">
+<pre>[
+  {
+    &quot;op&quot;: &quot;add&quot;,
+    &quot;path&quot;: &quot;/a/b/c&quot;,
+    &quot;properties&quot;: {
+      &quot;foo&quot;: {&quot;type&quot;: &quot;string&quot;, &quot;value&quot;: &quot;bar&quot;},
+      &quot;baz&quot;: {&quot;type&quot;: &quot;uri&quot;, &quot;value&quot;: &quot;http://acme.com&quot;},
+      &quot;qux&quot;: {&quot;type&quot;: &quot;booleans&quot;, &quot;value&quot;: [true, false, true]}
+    }
+  },
+  {
+    &quot;op&quot;: &quot;remove&quot;,
+    &quot;path&quot;: &quot;/a/b/c&quot;
+  },
+  {
+    &quot;op&quot;: &quot;set&quot;,
+    &quot;path&quot;: &quot;/a/b/c&quot;,
+    &quot;name&quot;: &quot;foo&quot;,
+    &quot;type&quot;: &quot;string&quot;,
+    &quot;value&quot;: &quot;bar&quot;
+  },
+  {
+    &quot;op&quot;: &quot;unset&quot;,
+    &quot;path&quot;: &quot;/a/b/c&quot;,
+    &quot;name&quot;: &quot;foo&quot;
+  },
+  {
+    &quot;op&quot;: &quot;move&quot;,
+    &quot;from&quot;: &quot;/x/y&quot;,
+    &quot;to&quot;: &quot;/p/q&quot;
+  },
+  {
+    &quot;op&quot;: &quot;copy&quot;,
+    &quot;from&quot;: &quot;/x/y&quot;,
+    &quot;to&quot;: &quot;/r/s&quot;
+  }
+]
+</pre>
+</div></div>
+
+<p>In case of success, the server returns a <code>201</code> response with a content type of <code>application/json</code>. The body of the respnose is a JSON object, where the revision is the value of the <code>revision</code> property.</p>
+
+<div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent panelContent">
+<pre>{
+  &quot;revision&quot;: &quot;...&quot;
+}
+</pre>
+</div></div>
+
+<p>The value of the <code>revision</code> property is an opaque value whose format and semantics are implementation dependent.</p>
+
+<h2 id="FrmHttpOperations-Readabinaryobject">Read a binary object</h2>
+
+<div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent panelContent">
+<pre>GET /binaries/:binaryId
+</pre>
+</div></div>
+
+<p>If the binary object represented by <code>:binaryId</code> is found, the server returns a 200 response with a content type of <code>application/octet-stream</code>. The response body contains the whole content of the binary object.</p>
+
+<p>If the client is not interested in the whole content of the binary object, a range request can be performed on the resource according to the rules specified in RFC7233. This has some implications on the remote API. In short:</p>
+
+<ul>
+	<li>when a GET or HEAD request on a binary resource is performed, the server should include a <code>Accept-Ranges</code> header in the response with the supported range types. If range request are supported, the server should support at least a <code>bytes</code> range type.
+<br class="atl-forced-newline"/></li>
+	<li>when a GET request is performed, the client can include a <code>Range</code> header in the request to select one or more ranges of the requested resource.
+<br class="atl-forced-newline"/></li>
+	<li>if one range is requested by the client, the server returns a 206 response with a <code>Content-Range</code> header specifying the portion of the resource that is transferred to the client.
+<br class="atl-forced-newline"/></li>
+	<li>if two or more ranges are requested by the client, the server returns a 206 response with a content type of <code>multipart/byteranges</code>. The response contains a multipart body, where each part represents one range as requested by the client. Every part has a content type of <code>application/octet-stream</code> and a <code>Content-Range</code> specifying which portion of the binary object the range represents.
+<br class="atl-forced-newline"/></li>
+</ul>
+
+
+<p>More detailed information about range requests can be found in RFC7233. </p>
+
+<h2 id="FrmHttpOperations-Writeabinaryobject">Write a binary object</h2>
+
+<div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent panelContent">
+<pre>POST /binaries
+</pre>
+</div></div>
+
+<p>The request should have a content type of <code>application/octet-stream</code>. The payload of the request will be saved by the repository in a binary object.</p>
+
+<p>In case of success, the server will send back a 201 response with a content type of <code>application/json</code>. The payload of the response will contain the binary ID of the new binary object.</p>
+
+<div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent panelContent">
+<pre>{
+  &quot;binaryId&quot;: &quot;...&quot;
+}
+</pre>
+</div></div>
+
+<h2 id="FrmHttpOperations-Search">Search</h2>
+
+<div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent panelContent">
+<pre>GET /revisions/:revision/tree
+</pre>
+</div></div>
+
+<div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent panelContent">
+<pre>GET /revisions/last/tree
+</pre>
+</div></div>
+
+<p>The <code>:revision</code> part of the URL specifies the revision the search should be performed on. A value for this parameter is obtained by using a dedicated method of this API. If the second kind of URL is used, where <code>:revision</code> assumes the value of <code>last</code>, the search occurs on the latest state of the repository known to the server.</p>
+
+<p>Request parameters:</p>
+
+<ul>
+	<li><code>query</code> - the query statement to be executed. If the query statement contains placeholders, see below for a description on how to specify them as query parameters.
+<br class="atl-forced-newline"/></li>
+	<li><code>language</code> - the language of the query. This parameter is necessary to define the syntax used in the provided query. A server, in fact, can support multiple query languages.
+<br class="atl-forced-newline"/></li>
+	<li><code>limit</code> - the maximum number of rows included in the search results.
+<br class="atl-forced-newline"/></li>
+	<li><code>offset</code> - the number of rows to skip from the returned search results.
+<br class="atl-forced-newline"/></li>
+</ul>
+
+
+<p>In case of success, the server returns a <code>200</code> response with a content type of <code>application/json</code>. The body of the response is a JSON object similar to the following.</p>
+
+<div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent panelContent">
+<pre>{
+  &quot;total&quot;: 2,
+  &quot;columns&quot;: [
+    &quot;c1&quot;, 
+    &quot;c2&quot;
+  ],
+  &quot;selectors&quot;: [
+    &quot;s1&quot;,
+    &quot;s2&quot;
+  ],
+  &quot;results&quot;: [
+    {
+      &quot;columns&quot;: {&quot;c1&quot;: &quot;...&quot;, &quot;c2&quot;: &quot;...&quot;}, 
+      &quot;selectors&quot;: {&quot;s1&quot;: &quot;...&quot;, &quot;s2&quot;: &quot;...&quot;}
+    },
+    {
+      &quot;columns&quot;: {&quot;c1&quot;: &quot;...&quot;, &quot;c2&quot;: &quot;...&quot;}, 
+      &quot;selectors&quot;: {&quot;s1&quot;: &quot;...&quot;, &quot;s2&quot;: &quot;...&quot;}
+    }
+  ]
+}
+</pre>
+</div></div>
+
+<p>The values for the <code>&quot;columns&quot;</code> and <code>&quot;selectors&quot;</code> property are entirely dependent on the query. In example, the query <code>select name from nt:unstructured as node</code> will force the inclusion of the column <code>name</code> and the selector <code>node</code> in the search results. Please also note that special columns like <code>jcr:path</code> and <code>jcr:score</code> are always included in the results even if not specified in the query.</p>
+
+<p>Since there some column and selector names may overlap, they are presented in two different sub-objects of each search result.</p>
+
+<p>The value of each column in a search result is a value in the usual form:</p>
+
+<div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent panelContent">
+<pre>{&quot;type&quot;: &quot;string&quot;, &quot;value&quot;: &quot;bar&quot;}
+</pre>
+</div></div>
+
+<p>Please note that some columns may be <code>null</code>. This happens when selecting a property name from a node that doesn't actually have a property of that name.</p>
+
+<p>The value of each selector is a path. More specifically, it is the path of the node identified by the corresponding selector.</p>
+
+<p>A more realistic example of a search result is provided below. These results are generated by the following query </p>
+
+<div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent panelContent">
+<pre>select name, address from nt:unstructured node where jcr:path like &#39;/test/%&#39;  
+</pre>
+</div></div>
+
+<p>For the query above, the returned search result (for my repository data) are:</p>
+
+<div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent panelContent">
+<pre>{
+   &quot;total&quot;:2,
+   &quot;columns&quot;:[
+      &quot;name&quot;,
+      &quot;address&quot;,
+      &quot;jcr:path&quot;,
+      &quot;jcr:score&quot;
+   ],
+   &quot;selectors&quot;:[
+      &quot;node&quot;
+   ],
+   &quot;results&quot;:[
+      {
+         &quot;columns&quot;:{
+            &quot;name&quot;:{
+               &quot;type&quot;:&quot;string&quot;,
+               &quot;value&quot;:&quot;Joe&quot;
+            },
+            &quot;address&quot;:{
+               &quot;type&quot;:&quot;string&quot;,
+               &quot;value&quot;:&quot;Whatever Street 42&quot;
+            },
+            &quot;jcr:path&quot;:{
+               &quot;type&quot;:&quot;string&quot;,
+               &quot;value&quot;:&quot;/test/two&quot;
+            },
+            &quot;jcr:score&quot;:null
+         },
+         &quot;selectors&quot;:{
+            &quot;node&quot;:&quot;/test/two&quot;
+         }
+      },
+      {
+         &quot;columns&quot;:{
+            &quot;name&quot;:{
+               &quot;type&quot;:&quot;string&quot;,
+               &quot;value&quot;:&quot;Moe&quot;
+            },
+            &quot;address&quot;:null,
+            &quot;jcr:path&quot;:{
+               &quot;type&quot;:&quot;string&quot;,
+               &quot;value&quot;:&quot;/test/one&quot;
+            },
+            &quot;jcr:score&quot;:null
+         },
+         &quot;selectors&quot;:{
+            &quot;node&quot;:&quot;/test/one&quot;
+         }
+      }
+   ]
+}
+</pre>
+</div></div>
+                    </div>
+
+                    
+                                                      
+                </div>             </div> 
+            <div id="footer" role="contentinfo">
+                <section class="footer-body">
+                    <p>Document generated by Confluence on May 20, 2019 11:11</p>
+                    <div id="footer-logo"><a href="http://www.atlassian.com/">Atlassian</a></div>
+                </section>
+            </div>
+        </div>     </body>
+</html>

Propchange: jackrabbit/site/live/archive/wiki/JCR/Frm-HttpOperations_115513401.html
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: jackrabbit/site/live/archive/wiki/JCR/Frm-HttpOperations_115513401.html
------------------------------------------------------------------------------
    svn:executable = *

Added: jackrabbit/site/live/archive/wiki/JCR/Frm-RemoteOperations_115513402.html
URL: http://svn.apache.org/viewvc/jackrabbit/site/live/archive/wiki/JCR/Frm-RemoteOperations_115513402.html?rev=1859550&view=auto
==============================================================================
--- jackrabbit/site/live/archive/wiki/JCR/Frm-RemoteOperations_115513402.html (added)
+++ jackrabbit/site/live/archive/wiki/JCR/Frm-RemoteOperations_115513402.html Mon May 20 11:23:18 2019
@@ -0,0 +1,413 @@
+<!DOCTYPE html>
+<html>
+    <head>
+        <title>Apache Jackrabbit : Frm RemoteOperations</title>
+        <link rel="stylesheet" href="styles/site.css" type="text/css" />
+        <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+    </head>
+
+    <body class="theme-default aui-theme-default">
+        <div id="page">
+            <div id="main" class="aui-page-panel">
+                <div id="main-header">
+                    <div id="breadcrumb-section">
+                        <ol id="breadcrumbs">
+                            <li class="first">
+                                <span><a href="index.html">Apache Jackrabbit</a></span>
+                            </li>
+                                                    <li>
+                                <span><a href="Home_70731.html">Home</a></span>
+                            </li>
+                                                    <li>
+                                <span><a href="Frm_115513400.html">Frm</a></span>
+                            </li>
+                                                </ol>
+                    </div>
+                    <h1 id="title-heading" class="pagetitle">
+                                                <span id="title-text">
+                            Apache Jackrabbit : Frm RemoteOperations
+                        </span>
+                    </h1>
+                </div>
+
+                <div id="content" class="view">
+                    <div class="page-metadata">
+                        
+        
+    
+        
+    
+        
+        
+            Created by <span class='author'> ASF Infrabot</span> on May 20, 2019
+                        </div>
+                    <div id="main-content" class="wiki-content group">
+                    <h1 id="FrmRemoteOperations-Remoteoperations">Remote operations</h1>
+
+<p>This document generically describes the operations exposed by the Oak Remote Interface. This section doesn't use any concept from any transport protocol. The intention to use the operations described here as the backend for multiple transport protocols.</p>
+
+<p>The operations are defined in a stateless way. This means that the description of every operation contains the definition of every needed input parameter, and it will not rely on a particular state of the system or on a particular sequence of operations to be performed before the current one.</p>
+
+<p>In this document JSON is sometimes used to represent some data structure. Please note that JSON has been chosen just for clarity, but the phisical representation of data structures is dependent on the transport protocol implementing the operations.</p>
+
+<h2 id="FrmRemoteOperations-Readarevision">Read a revision</h2>
+
+<p>Before a client is able to perform any operation on the repository, he has to read a revision. The revision represent a state of the repository over time and guarantees stable reads over time and data consitency when performing write operations.</p>
+
+<p>Required parameters:</p>
+
+<ul>
+	<li>User credentials.
+<br class="atl-forced-newline"/></li>
+</ul>
+
+
+<p>Returned values:</p>
+
+<ul>
+	<li>Revision.
+<br class="atl-forced-newline"/></li>
+</ul>
+
+
+<h2 id="FrmRemoteOperations-Readatree">Read a tree</h2>
+
+<p>This operation allows the client to read a subtree from the repository. To minimize the amount of data sent from the server, the client can specify glob filters on node and property names.</p>
+
+<p>Required parameters:</p>
+
+<ul>
+	<li>User credentials.
+<br class="atl-forced-newline"/></li>
+	<li>Revision.
+<br class="atl-forced-newline"/></li>
+	<li>Root path of the tree.
+<br class="atl-forced-newline"/></li>
+</ul>
+
+
+<p>Optional parameters:</p>
+
+<ul>
+	<li>Depth. How deep the returned tree should be. Defaults to <code>0</code>.
+<br class="atl-forced-newline"/></li>
+	<li><p>Property filters. A list of globs to filter property names. Defaults to <code>['&#42;']</code>.
+<br class="atl-forced-newline" /></p></li>
+	<li><p>Node filters. A list of globs to filter node names. Defaults to <code>['&#42;']</code>.
+<br class="atl-forced-newline" /></p></li>
+	<li>Binary threshold. The maximum number of bytes a binary property should have to be inlined inside the response. See the section about serializing binary properties below. Defaults to <code>0</code>.
+<br class="atl-forced-newline"/></li>
+	<li>Children start index. A number representing the staring index where to read children from. Defaults to <code>0</code>, meaning that children will be returned starting from the beginning.
+<br class="atl-forced-newline"/></li>
+	<li>Children count. A number representing the maximum number of children to read. Defaults to <code>-1</code>, meaning that every children will be returned.
+<br class="atl-forced-newline"/></li>
+</ul>
+
+
+<p>Returned values:</p>
+
+<ul>
+	<li>Tree.
+<br class="atl-forced-newline"/></li>
+</ul>
+
+
+<p>The tree is represented as a recursive data structure. Every node has the following information.</p>
+
+<ul>
+	<li>A dictionary of properties, mapping property names to property values. The property value is also given an explicit type.
+<br class="atl-forced-newline"/></li>
+	<li>A dictionary of child nodes, mapping a child name to a tree. This field defines the recursive relation from the current tree to the sub-trees representing its children.
+<br class="atl-forced-newline"/></li>
+</ul>
+
+
+<p>A tree returned by this operation may be represented by the following JSON object.</p>
+
+<div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent panelContent">
+<pre>{
+  &quot;properties&quot;: {
+    &quot;foo&quot;: {&quot;type&quot;: &quot;string&quot;, &quot;value&quot;: &quot;bar&quot;},
+    &quot;baz&quot;: {&quot;type&quot;: &quot;uri&quot;, &quot;value&quot;: &quot;http://acme.com&quot;},
+    &quot;qux&quot;: {&quot;type&quot;: &quot;booleans&quot;, &quot;value&quot;: [true, false, true]}
+  },
+  &quot;children&quot;: {
+    &quot;bob&quot;: null,
+    &quot;sue&quot;: null
+  }
+}
+</pre>
+</div></div>
+
+<p>The snippet above represents a tree with depth zero. The root of the tree has three properties: a string property named &quot;foo&quot;, a URI property names &quot;baz&quot; and a multi-value boolean property named &quot;qux&quot;. The root of the tree also has two children named &quot;bob&quot; and &quot;sue&quot;. Since including the children would make the depth of the tree exceed the requested depth of zero, the special empty tree value <code>null</code> is used to end the recursion in the tree representation.</p>
+
+<p>The caller has two way to filter out children. The first is by providing one or more name filters. The second is by providing a children start index, the maximum number of children to return, or both. When all these mechanisms are used in the same call, the following order in applying filters must be followed:</p>
+
+<ul>
+	<li>If the children start index is provided, the list of children is trimmed to exclude every children before the provided start index.
+<br class="atl-forced-newline"/></li>
+	<li>If the children count is provided, the list of children is trimmed to include at most the number of children specified by the children count.
+<br class="atl-forced-newline"/></li>
+	<li>If children filters are provided, they are applied to filter out the resulting list even more.
+<br class="atl-forced-newline"/></li>
+</ul>
+
+
+<p>The simple property types supported during serialization are string, binary, binary ID, long, double, date, boolean, name, path, reference, weak reference, URI and decimal. The multi-value property types are strings, binaries, binary IDs, longs, doubles, dates, booleans, names, paths, references, weak references, URIs and decimals.</p>
+
+<h2 id="FrmRemoteOperations-Serializingbinaryproperties">Serializing binary properties</h2>
+
+<p>In addition to the binary and binaries types, this specification introduces two virtual types for the sake of performance. This types are binary ID and binary IDs, that represent reference(s) to binary objects stored in the repository. A binary property in the repository can be serialized either as binary or as a binary ID, depending on the size of the binary value and on the binary threshold specified by the client.</p>
+
+<p>In the case of a simple binary property, if the size of its value is less than the binary threshold parameter, the value will be serialized with a binary type and inlined inside the response. If the size of its value is greater than or equal to the binary threshold parameter, the value will be serialized with a binary ID type instead.</p>
+
+<p>In the case of a multi-value binary property, if the sum of the sizes of its values is less than the binary threshold parameter, every value will be serialized with a binary type and inlined inside the response. If the sum of the sizes of its values is greater than or equal to the binary threshold parameter, every value will be serialized with a binary ID type instead.</p>
+
+<p><strong>TODO</strong> - Define basic serialization rules for property values. Decimal values should probably always be serialized as strings, since their high precision could prevent the client to fit a decimal value into a fixed-precision numeric type. References and weak references should probably be represented as opaque string objects. The main problem with reference types would be writing a value consistently. Should every node inside a tree representation have an &quot;id&quot; property that can be used as a value to a reference property?</p>
+
+<h2 id="FrmRemoteOperations-Writecontent">Write content</h2>
+
+<p>Writing inside the repository consists in defining a set of operations that represent the changes to perform on the content. The set of operations represent a transition from a valid state of the repository to another valid state. If the set of operations would bring the repository to an invalid state, they should all be rolled back.</p>
+
+<p>If the operations can be applied successfully, the client will receive another revision that represents the state of the repository where those changes are applied.</p>
+
+<p>Required parameters:</p>
+
+<ul>
+	<li>User credentials.
+<br class="atl-forced-newline"/></li>
+	<li>Revision.
+<br class="atl-forced-newline"/></li>
+	<li>Operations.
+<br class="atl-forced-newline"/></li>
+</ul>
+
+
+<p>Returned values:</p>
+
+<ul>
+	<li>Revision.
+<br class="atl-forced-newline"/></li>
+</ul>
+
+
+<p>The changes to perform are represented as an ordered list of operations. The operations should be applied in the order provided by the client.</p>
+
+<p>An operation can have one of the following types:</p>
+
+<ul>
+	<li>Add: add a non-existing node at a given path and initialize it with the given set of properties. The operation fails if the parent node of the added one doesn't exist or if it's not possible to initialize the new node with the provided set of properties. The operation is also invalid if a node at the given path already exists.
+<br class="atl-forced-newline"/></li>
+	<li>Remove: remove an existing node at a given path and all of its children. The operation fails if there is no node at the given path or if it is impossible for any other reason to remove the node.
+<br class="atl-forced-newline"/></li>
+	<li>Set: create or overwrite a property with the given name, type and value in a node at a given path. The operation fails if there isn't any node at the given path or if it is invalid to create a property with the given name, type and value for any other reason.
+<br class="atl-forced-newline"/></li>
+	<li>Unset: remove a property with the given name from a node at a given path. The operation fails if there isn't any node at the given path or if the node doesn't have a property with the given name.
+<br class="atl-forced-newline"/></li>
+	<li>Copy: copy a tree at a given path to a given destination path in the repository. The operation fails if the source tree doesn't exist, if a node already exists at the given destination path, or if it's impossible to copy the tree to the given location for any other reason.
+<br class="atl-forced-newline"/></li>
+	<li>Move: move a tree at a given path to to a given destination path in the repository. The operation fails if the source tree doesn't exist, if a node already exists at the given destination path, or if it's impossible to move the tree to the given destination for any other reason.
+<br class="atl-forced-newline"/></li>
+</ul>
+
+
+<h3 id="FrmRemoteOperations-Addoperation">Add operation</h3>
+
+<p>The add operation is represented by a data structure containing the following information:</p>
+
+<ul>
+	<li>Path. The path where the node should be added.
+<br class="atl-forced-newline"/></li>
+	<li>Properties. The set of properties that will be used to initialize the new node. The properties are represented as a dictionary mapping property names to property values. Every property value must have an explicit type. The properties dictionary may be empty.
+<br class="atl-forced-newline"/></li>
+</ul>
+
+
+<p>An add operation may be represented by the following JSON object.</p>
+
+<div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent panelContent">
+<pre>{
+  &quot;type&quot;: &quot;add&quot;,
+  &quot;path&quot;: &quot;/a/b/c&quot;,
+  &quot;properties&quot;: {
+    &quot;foo&quot;: {&quot;type&quot;: &quot;string&quot;, &quot;value&quot;: &quot;bar&quot;},
+    &quot;baz&quot;: {&quot;type&quot;: &quot;uri&quot;, &quot;value&quot;: &quot;http://acme.com&quot;},
+    &quot;qux&quot;: {&quot;type&quot;: &quot;booleans&quot;, &quot;value&quot;: [true, false, true]}
+  }
+}
+</pre>
+</div></div>
+
+<h3 id="FrmRemoteOperations-Removeoperation">Remove operation</h3>
+
+<p>The remove operation is represented by a data structure containing the following information:</p>
+
+<ul>
+	<li>Path. The path of the node to be removed.
+<br class="atl-forced-newline"/></li>
+</ul>
+
+
+<p>A remove operation may be represented by the following JSON object.</p>
+
+<div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent panelContent">
+<pre>{
+  &quot;type&quot;: &quot;remove&quot;,
+  &quot;path&quot;: &quot;/a/b/c&quot;
+}
+</pre>
+</div></div>
+
+<h3 id="FrmRemoteOperations-Setoperation">Set operation</h3>
+
+<p>The set operation is represented by a data structure containing the following information:</p>
+
+<ul>
+	<li>Path: the path of the node that needs to be modified.
+<br class="atl-forced-newline"/></li>
+	<li>Property name. The name of the property that should be created or overwritten.
+<br class="atl-forced-newline"/></li>
+	<li>Property type. The type of the property.
+<br class="atl-forced-newline"/></li>
+	<li>Value. The value of the property.
+<br class="atl-forced-newline"/></li>
+</ul>
+
+
+<p>A set operation may be represented by the following JSON object.</p>
+
+<div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent panelContent">
+<pre>{
+  &quot;type&quot;: &quot;set&quot;,
+  &quot;path&quot;: &quot;/a/b/c&quot;,
+  &quot;name&quot;: &quot;foo&quot;,
+  &quot;type&quot;: &quot;string&quot;,
+  &quot;value&quot;: &quot;bar&quot;
+}
+</pre>
+</div></div>
+
+<h3 id="FrmRemoteOperations-Unsetoperation">Unset operation</h3>
+
+<p>The unset operation is represented by a data structure containing the following information:</p>
+
+<ul>
+	<li>Path: the path of the node that needs to be modified.
+<br class="atl-forced-newline"/></li>
+	<li>Property name. The name of the property that should be created or overwritten.
+<br class="atl-forced-newline"/></li>
+</ul>
+
+
+<p>An unset operation may be represented by the following JSON object.</p>
+
+<div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent panelContent">
+<pre>{
+  &quot;type&quot;: &quot;unset&quot;,
+  &quot;path&quot;: &quot;/a/b/c&quot;,
+  &quot;name&quot;: &quot;foo&quot;
+}
+</pre>
+</div></div>
+
+<h2 id="FrmRemoteOperations-Readbinaryobjects">Read binary objects</h2>
+
+<p>A binary object can be read by passing a reference to it to the server. A binary object can be read in its entirety or in chunks. A reference to a binary object can be obtained by reading content from the repository or by creating a new binary object.</p>
+
+<p>Required parameters:</p>
+
+<ul>
+	<li>User credentials.</li>
+	<li>Blob ID.
+<br class="atl-forced-newline"/></li>
+</ul>
+
+
+<p>Optional parameters:</p>
+
+<ul>
+	<li>Start index. The index in the binary object where to start reading. Defaults to 0.
+<br class="atl-forced-newline"/></li>
+	<li>Number of bytes. The maximum number of bytes to read from the binary. The operation can still return less data if not enough bytes are in the binary. Defaults to -1. The default value means that every byte after the reading position should be returned.
+<br class="atl-forced-newline"/></li>
+</ul>
+
+
+<p>Return values:</p>
+
+<ul>
+	<li>Number of bytes returned.
+<br class="atl-forced-newline"/></li>
+	<li>Binary content.
+<br class="atl-forced-newline"/></li>
+</ul>
+
+
+<h2 id="FrmRemoteOperations-Writebinaryobjects">Write binary objects</h2>
+
+<p>Binary objects can be written to the repository using this operation. When a binary is written, the client receives a binary ID that can be used as a value for binary properties when writing content in the repository.</p>
+
+<p>Required parameters:</p>
+
+<ul>
+	<li>User credentials.
+<br class="atl-forced-newline"/></li>
+	<li>Number of bytes to write.
+<br class="atl-forced-newline"/></li>
+	<li>Binary content.
+<br class="atl-forced-newline"/></li>
+</ul>
+
+
+<p>Return values:</p>
+
+<ul>
+	<li>Binary ID.
+<br class="atl-forced-newline"/></li>
+</ul>
+
+
+<h2 id="FrmRemoteOperations-Search">Search</h2>
+
+<p>Content in the repository can be queried using this operation. A server may support different query languages.</p>
+
+<p>Required parameters:</p>
+
+<ul>
+	<li>User credentials.
+<br class="atl-forced-newline"/></li>
+	<li>Revision.
+<br class="atl-forced-newline"/></li>
+	<li>Query string. The query string can contain placeholders that are substituted with the values provided in the bindings parameter.
+<br class="atl-forced-newline"/></li>
+	<li>Query type. The query type identifies the syntax used in the query string.
+<br class="atl-forced-newline"/></li>
+	<li>Limit. The maximum number of results to include in the response.
+<br class="atl-forced-newline"/></li>
+	<li>Offset. The number of rows to skip when providing results. This parameter has a default value of zero.
+<br class="atl-forced-newline"/></li>
+</ul>
+
+
+<p>Return values:</p>
+
+<ul>
+	<li>Size. The number of rows, if known. Otherwise, -1.
+<br class="atl-forced-newline"/></li>
+	<li>Column names. The names of the columns included in the result.
+<br class="atl-forced-newline"/></li>
+	<li>Results. An array of objects, where each object has a property for every column name and a value for the corresponding value.</li>
+</ul>
+                    </div>
+
+                    
+                                                      
+                </div>             </div> 
+            <div id="footer" role="contentinfo">
+                <section class="footer-body">
+                    <p>Document generated by Confluence on May 20, 2019 11:11</p>
+                    <div id="footer-logo"><a href="http://www.atlassian.com/">Atlassian</a></div>
+                </section>
+            </div>
+        </div>     </body>
+</html>

Propchange: jackrabbit/site/live/archive/wiki/JCR/Frm-RemoteOperations_115513402.html
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: jackrabbit/site/live/archive/wiki/JCR/Frm-RemoteOperations_115513402.html
------------------------------------------------------------------------------
    svn:executable = *

Added: jackrabbit/site/live/archive/wiki/JCR/Frm-SegmentStoreModularization_115513403.html
URL: http://svn.apache.org/viewvc/jackrabbit/site/live/archive/wiki/JCR/Frm-SegmentStoreModularization_115513403.html?rev=1859550&view=auto
==============================================================================
--- jackrabbit/site/live/archive/wiki/JCR/Frm-SegmentStoreModularization_115513403.html (added)
+++ jackrabbit/site/live/archive/wiki/JCR/Frm-SegmentStoreModularization_115513403.html Mon May 20 11:23:18 2019
@@ -0,0 +1,260 @@
+<!DOCTYPE html>
+<html>
+    <head>
+        <title>Apache Jackrabbit : Frm SegmentStoreModularization</title>
+        <link rel="stylesheet" href="styles/site.css" type="text/css" />
+        <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+    </head>
+
+    <body class="theme-default aui-theme-default">
+        <div id="page">
+            <div id="main" class="aui-page-panel">
+                <div id="main-header">
+                    <div id="breadcrumb-section">
+                        <ol id="breadcrumbs">
+                            <li class="first">
+                                <span><a href="index.html">Apache Jackrabbit</a></span>
+                            </li>
+                                                    <li>
+                                <span><a href="Home_70731.html">Home</a></span>
+                            </li>
+                                                    <li>
+                                <span><a href="Frm_115513400.html">Frm</a></span>
+                            </li>
+                                                </ol>
+                    </div>
+                    <h1 id="title-heading" class="pagetitle">
+                                                <span id="title-text">
+                            Apache Jackrabbit : Frm SegmentStoreModularization
+                        </span>
+                    </h1>
+                </div>
+
+                <div id="content" class="view">
+                    <div class="page-metadata">
+                        
+        
+    
+        
+    
+        
+        
+            Created by <span class='author'> ASF Infrabot</span> on May 20, 2019
+                        </div>
+                    <div id="main-content" class="wiki-content group">
+                    <h1 id="FrmSegmentStoreModularization-SegmentStoreModularization">Segment Store Modularization</h1>
+
+<p>This page describes the process of storing the Segment Store and its related implementation classes in its own bundle, separated from oak-core. The initial target of the analysis are the packages matching the filter org.apache.jackrabbit.oak.plugins.segment.*.</p>
+
+<h2 id="FrmSegmentStoreModularization-Backwardsdependencies">Backwards dependencies</h2>
+
+<p>These are the components that depend on the classes contained in org.apache.jackrabbit.oak.plugins.segment.*. This shows how much code in oak-core is coupled with the internal API or with the implementation classes of the Segment Store.</p>
+
+<p>From oak-core</p>
+
+<ul>
+	<li>org.apache.jackrabbit.oak.plugins.backup.FileStoreBackup;</li>
+	<li>org.apache.jackrabbit.oak.plugins.backup.FileStoreRestore;</li>
+	<li>org.apache.jackrabbit.oak.plugins.value.ValueImpl;</li>
+	<li>org.apache.jackrabbit.oak.util.AbstractCheckpointMBean.
+<br class="atl-forced-newline"/></li>
+</ul>
+
+
+<p>I listed here only dependencies from oak-core, ignoring the ones coming from oak-http and oak-tarmk-standby. In fact, assuming that the exported packages of the Segment Store provide the needed classes, these bundles will continue to work the same. I also ignored oak-run and oak-upgrade, because they are not relevant in a conversation assuming OSGi as the runtime environment of the Segment Store.</p>
+
+<h2 id="FrmSegmentStoreModularization-Forwarddependencies">Forward dependencies</h2>
+
+<p>These are the components that the classes in org.apache.jackrabbit.oak.plugins.segment.* depend on. This shows how much code in oak-core is used by these packages.</p>
+
+<p>Dependencies on API classes:</p>
+
+<ul>
+	<li>org.apache.jackrabbit.oak.api.Blob;</li>
+	<li>org.apache.jackrabbit.oak.api.CommitFailedException;</li>
+	<li>org.apache.jackrabbit.oak.api.Descriptors;</li>
+	<li>org.apache.jackrabbit.oak.api.PropertyState;</li>
+	<li>org.apache.jackrabbit.oak.api.Type.
+<br class="atl-forced-newline"/></li>
+</ul>
+
+
+<p>Dependencies on JMX APIs:</p>
+
+<ul>
+	<li>org.apache.jackrabbit.oak.api.jmx.CacheStatsMBean;</li>
+	<li>org.apache.jackrabbit.oak.api.jmx.CheckpointMBean.
+<br class="atl-forced-newline"/></li>
+</ul>
+
+
+<p>Dependencies on cache utility classes:</p>
+
+<ul>
+	<li>org.apache.jackrabbit.oak.cache.CacheLIRS;</li>
+	<li>org.apache.jackrabbit.oak.cache.CacheStats.
+<br class="atl-forced-newline"/></li>
+</ul>
+
+
+<p>Dependencies on OSGi utility classes, and OSGi-based implementations of the whiteboard:</p>
+
+<ul>
+	<li>org.apache.jackrabbit.oak.osgi.ObserverTracker;</li>
+	<li>org.apache.jackrabbit.oak.osgi.OsgiUtil;</li>
+	<li>org.apache.jackrabbit.oak.osgi.OsgiWhiteboard.
+<br class="atl-forced-newline"/></li>
+</ul>
+
+
+<p>Dependencies on the blob internal API and implementation or utility classes:</p>
+
+<ul>
+	<li>org.apache.jackrabbit.oak.plugins.blob.BlobGarbageCollector;</li>
+	<li>org.apache.jackrabbit.oak.plugins.blob.BlobGC;</li>
+	<li>org.apache.jackrabbit.oak.plugins.blob.BlobGCMBean;</li>
+	<li>org.apache.jackrabbit.oak.plugins.blob.BlobReferenceRetriever;</li>
+	<li>org.apache.jackrabbit.oak.plugins.blob.BlobStoreBlob;</li>
+	<li>org.apache.jackrabbit.oak.plugins.blob.MarkSweepGarbageCollector;</li>
+	<li>org.apache.jackrabbit.oak.plugins.blob.ReferenceCollector;</li>
+	<li>org.apache.jackrabbit.oak.plugins.blob.SharedDataStore.
+<br class="atl-forced-newline"/></li>
+</ul>
+
+
+<p>Dependencies on data store utility classes:</p>
+
+<ul>
+	<li>org.apache.jackrabbit.oak.plugins.blob.datastore.SharedDataStoreUtils
+<br class="atl-forced-newline"/></li>
+</ul>
+
+
+<p>Dependencies on utility classes for storing cluster identifiers in the repository:</p>
+
+<ul>
+	<li>org.apache.jackrabbit.oak.plugins.identifier.ClusterRepositoryInfo.
+<br class="atl-forced-newline"/></li>
+</ul>
+
+
+<p>Dependencies on the in-memory implementation of the <a class="createlink" href="/confluence/pages/createpage.action?spaceKey=JCR&amp;title=NodeState&amp;linkCreation=true&amp;fromPageId=115513403">NodeState</a> API:</p>
+
+<ul>
+	<li>org.apache.jackrabbit.oak.plugins.memory.AbstractBlob;</li>
+	<li>org.apache.jackrabbit.oak.plugins.memory.AbstractPropertyState;</li>
+	<li>org.apache.jackrabbit.oak.plugins.memory.BinaryPropertyState;</li>
+	<li>org.apache.jackrabbit.oak.plugins.memory.EmptyNodeState;</li>
+	<li>org.apache.jackrabbit.oak.plugins.memory.MemoryChildNodeEntry;</li>
+	<li>org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder;</li>
+	<li>org.apache.jackrabbit.oak.plugins.memory.ModifiedNodeState;</li>
+	<li>org.apache.jackrabbit.oak.plugins.memory.MultiBinaryPropertyState;</li>
+	<li>org.apache.jackrabbit.oak.plugins.memory.PropertyStates.
+<br class="atl-forced-newline"/></li>
+</ul>
+
+
+<p>Dependencies on the conversion utility class:</p>
+
+<ul>
+	<li>org.apache.jackrabbit.oak.plugins.value.Conversions.
+<br class="atl-forced-newline"/></li>
+</ul>
+
+
+<p>Dependencies on the internal API to define a commit and on implementation and utility classes:</p>
+
+<ul>
+	<li>org.apache.jackrabbit.oak.spi.commit.ChangeDispatcher;</li>
+	<li>org.apache.jackrabbit.oak.spi.commit.CommitHook;</li>
+	<li>org.apache.jackrabbit.oak.spi.commit.CommitInfo;</li>
+	<li>org.apache.jackrabbit.oak.spi.commit.Observable;</li>
+	<li>org.apache.jackrabbit.oak.spi.commit.Observer.
+<br class="atl-forced-newline"/></li>
+</ul>
+
+
+<p>Dependencies on garbage collection internal API and utility classes:</p>
+
+<ul>
+	<li>org.apache.jackrabbit.oak.spi.gc.GCMonitor;</li>
+	<li>org.apache.jackrabbit.oak.spi.gc.GCMonitorTracker.
+<br class="atl-forced-newline"/></li>
+</ul>
+
+
+<p>Dependencies on the node store internal API and on implementation and utility classes:</p>
+
+<ul>
+	<li>org.apache.jackrabbit.oak.spi.state.AbstractChildNodeEntry;</li>
+	<li>org.apache.jackrabbit.oak.spi.state.AbstractNodeState;</li>
+	<li>org.apache.jackrabbit.oak.spi.state.ApplyDiff;</li>
+	<li>org.apache.jackrabbit.oak.spi.state.ChildNodeEntry;</li>
+	<li>org.apache.jackrabbit.oak.spi.state.ConflictAnnotatingRebaseDiff;</li>
+	<li>org.apache.jackrabbit.oak.spi.state.DefaultNodeStateDiff;</li>
+	<li>org.apache.jackrabbit.oak.spi.state.NodeBuilder;</li>
+	<li>org.apache.jackrabbit.oak.spi.state.NodeState;</li>
+	<li>org.apache.jackrabbit.oak.spi.state.NodeStateDiff;</li>
+	<li>org.apache.jackrabbit.oak.spi.state.NodeStateUtils;</li>
+	<li>org.apache.jackrabbit.oak.spi.state.NodeStore;</li>
+	<li>org.apache.jackrabbit.oak.spi.state.ProxyNodeStore;</li>
+	<li>org.apache.jackrabbit.oak.spi.state.RevisionGC;</li>
+	<li>org.apache.jackrabbit.oak.spi.state.RevisionGCMBean.
+<br class="atl-forced-newline"/></li>
+</ul>
+
+
+<p>Dependencies on the whiteboard API and on implementation and utility classes:</p>
+
+<ul>
+	<li>org.apache.jackrabbit.oak.spi.whiteboard.AbstractServiceTracker;</li>
+	<li>org.apache.jackrabbit.oak.spi.whiteboard.CompositeRegistration;</li>
+	<li>org.apache.jackrabbit.oak.spi.whiteboard.Registration;</li>
+	<li>org.apache.jackrabbit.oak.spi.whiteboard.WhiteboardExecutor;</li>
+	<li>org.apache.jackrabbit.oak.spi.whiteboard.WhiteboardUtils.
+<br class="atl-forced-newline"/></li>
+</ul>
+
+
+<p>Dependency on time tracking utility class:</p>
+
+<ul>
+	<li>org.apache.jackrabbit.oak.stats.Clock.
+<br class="atl-forced-newline"/></li>
+</ul>
+
+
+<p>Dependency on utility class for a generic CheckpointMBean implementation:</p>
+
+<ul>
+	<li>org.apache.jackrabbit.oak.util.AbstractCheckpointMBean
+<br class="atl-forced-newline"/></li>
+</ul>
+
+
+<h2 id="FrmSegmentStoreModularization-Listofpackagestoexport">List of packages to export</h2>
+
+<p>According to the previous list of dependencies, the following packages should be exported for the new Segment Store bundle to access the functionalities it requires.</p>
+
+<ul>
+	<li>org.apache.jackrabbit.oak.cache;</li>
+	<li>org.apache.jackrabbit.oak.plugins.blob;</li>
+	<li>org.apache.jackrabbit.oak.plugins.blob.datastore
+<br class="atl-forced-newline"/></li>
+</ul>
+
+
+<p>Before exporting those packages, it would be better to review them and try to limit their exported surface.</p>
+                    </div>
+
+                    
+                                                      
+                </div>             </div> 
+            <div id="footer" role="contentinfo">
+                <section class="footer-body">
+                    <p>Document generated by Confluence on May 20, 2019 11:11</p>
+                    <div id="footer-logo"><a href="http://www.atlassian.com/">Atlassian</a></div>
+                </section>
+            </div>
+        </div>     </body>
+</html>

Propchange: jackrabbit/site/live/archive/wiki/JCR/Frm-SegmentStoreModularization_115513403.html
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: jackrabbit/site/live/archive/wiki/JCR/Frm-SegmentStoreModularization_115513403.html
------------------------------------------------------------------------------
    svn:executable = *

Added: jackrabbit/site/live/archive/wiki/JCR/Frm_115513400.html
URL: http://svn.apache.org/viewvc/jackrabbit/site/live/archive/wiki/JCR/Frm_115513400.html?rev=1859550&view=auto
==============================================================================
--- jackrabbit/site/live/archive/wiki/JCR/Frm_115513400.html (added)
+++ jackrabbit/site/live/archive/wiki/JCR/Frm_115513400.html Mon May 20 11:23:18 2019
@@ -0,0 +1,57 @@
+<!DOCTYPE html>
+<html>
+    <head>
+        <title>Apache Jackrabbit : Frm</title>
+        <link rel="stylesheet" href="styles/site.css" type="text/css" />
+        <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+    </head>
+
+    <body class="theme-default aui-theme-default">
+        <div id="page">
+            <div id="main" class="aui-page-panel">
+                <div id="main-header">
+                    <div id="breadcrumb-section">
+                        <ol id="breadcrumbs">
+                            <li class="first">
+                                <span><a href="index.html">Apache Jackrabbit</a></span>
+                            </li>
+                                                    <li>
+                                <span><a href="Home_70731.html">Home</a></span>
+                            </li>
+                                                </ol>
+                    </div>
+                    <h1 id="title-heading" class="pagetitle">
+                                                <span id="title-text">
+                            Apache Jackrabbit : Frm
+                        </span>
+                    </h1>
+                </div>
+
+                <div id="content" class="view">
+                    <div class="page-metadata">
+                        
+        
+    
+        
+    
+        
+        
+            Created by <span class='author'> ASF Infrabot</span> on May 20, 2019
+                        </div>
+                    <div id="main-content" class="wiki-content group">
+                    <p>I described in general terms the functionalities that a remote interface should expose in <a class="createlink" href="/confluence/pages/createpage.action?spaceKey=JCR&amp;title=frm%2FRemoteOperations&amp;linkCreation=true&amp;fromPageId=115513400">this page</a>. The description is generic and not tied to any transport protocol.</p>
+
+<p>I am writing a draft about a REST API exposing those abstract operations over HTTP in <a class="createlink" href="/confluence/pages/createpage.action?spaceKey=JCR&amp;title=frm%2FHttpOperations&amp;linkCreation=true&amp;fromPageId=115513400">this page</a>.</p>
+                    </div>
+
+                    
+                                                      
+                </div>             </div> 
+            <div id="footer" role="contentinfo">
+                <section class="footer-body">
+                    <p>Document generated by Confluence on May 20, 2019 11:11</p>
+                    <div id="footer-logo"><a href="http://www.atlassian.com/">Atlassian</a></div>
+                </section>
+            </div>
+        </div>     </body>
+</html>

Propchange: jackrabbit/site/live/archive/wiki/JCR/Frm_115513400.html
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: jackrabbit/site/live/archive/wiki/JCR/Frm_115513400.html
------------------------------------------------------------------------------
    svn:executable = *

Added: jackrabbit/site/live/archive/wiki/JCR/Goals-and-non-goals-for-Jackrabbit-3_115513404.html
URL: http://svn.apache.org/viewvc/jackrabbit/site/live/archive/wiki/JCR/Goals-and-non-goals-for-Jackrabbit-3_115513404.html?rev=1859550&view=auto
==============================================================================
--- jackrabbit/site/live/archive/wiki/JCR/Goals-and-non-goals-for-Jackrabbit-3_115513404.html (added)
+++ jackrabbit/site/live/archive/wiki/JCR/Goals-and-non-goals-for-Jackrabbit-3_115513404.html Mon May 20 11:23:18 2019
@@ -0,0 +1,147 @@
+<!DOCTYPE html>
+<html>
+    <head>
+        <title>Apache Jackrabbit : Goals and non goals for Jackrabbit 3</title>
+        <link rel="stylesheet" href="styles/site.css" type="text/css" />
+        <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+    </head>
+
+    <body class="theme-default aui-theme-default">
+        <div id="page">
+            <div id="main" class="aui-page-panel">
+                <div id="main-header">
+                    <div id="breadcrumb-section">
+                        <ol id="breadcrumbs">
+                            <li class="first">
+                                <span><a href="index.html">Apache Jackrabbit</a></span>
+                            </li>
+                                                    <li>
+                                <span><a href="Home_70731.html">Home</a></span>
+                            </li>
+                                                </ol>
+                    </div>
+                    <h1 id="title-heading" class="pagetitle">
+                                                <span id="title-text">
+                            Apache Jackrabbit : Goals and non goals for Jackrabbit 3
+                        </span>
+                    </h1>
+                </div>
+
+                <div id="content" class="view">
+                    <div class="page-metadata">
+                        
+        
+    
+        
+    
+        
+        
+            Created by <span class='author'> ASF Infrabot</span> on May 20, 2019
+                        </div>
+                    <div id="main-content" class="wiki-content group">
+                    <h3 id="GoalsandnongoalsforJackrabbit3-Designprinciple">Design principle</h3>
+<p>Best effort: everything might be corrupt at any time:</p>
+<ul>
+	<li>node types</li>
+	<li>child node existence</li>
+	<li>clients may not make <strong>any</strong> consistency assumptions
+<br class="atl-forced-newline"/></li>
+</ul>
+
+
+<h3 id="GoalsandnongoalsforJackrabbit3-Goals">Goals</h3>
+<ul>
+	<li>Pass TCK. But TCK might be adapted for invalid or edge cases.</li>
+	<li>Node type consistency on save and set type (including mixin). Inconsistencies occurring do to write skew or degradation effects are acceptable though.</li>
+	<li>Scalability:
+	<ul>
+		<li>Read throughput: no degradation from current Jackrabbit 2, repeated read not slow, take advantage of locality for random reads. <strong>TODO</strong>: Needs further clarification</li>
+		<li>High write throughput across cluster nodes.</li>
+		<li>Big lists of direct child nodes (10M)</li>
+		<li>Concurrent writes within single cluster node. <strong>TODO</strong>: Needs further clarification: concurrency itself might not be the goal but the means to reach high single user throughput</li>
+		<li>Big transactions (&gt; 100k nodes at 1kB each)</li>
+		<li>Start up time &lt; 1s</li>
+		<li>Number of nodes in repository: 100M</li>
+		<li>Number of nodes in shared cloud: 10T</li>
+		<li>1G binaries with 2MB per binary =&gt; 2PB Repository size</li>
+	</ul>
+	</li>
+	<li>Simple/Fast queries (i.e. through specialized indexes) (3ms)</li>
+	<li>Partitioning of observation. <strong>TODO</strong>: Needs further clarification
+	<ul>
+		<li>Handling of recursive deletes: large number of NODE_REMOVED events vs. delete event for specific properties in subtree.</li>
+	</ul>
+	</li>
+	<li>Number of users: 200M / 20M per group</li>
+	<li>Full versioning model</li>
+	<li>Flexible durability (depending on durability guarantees of back end)
+<br class="atl-forced-newline"/></li>
+</ul>
+
+
+<h3 id="GoalsandnongoalsforJackrabbit3-Nongoals">Non goals</h3>
+<ul>
+	<li>Node type consistency when node type definition changes</li>
+	<li>Consistency guarantees</li>
+	<li>Scalability:
+	<ul>
+		<li>Big property list</li>
+		<li>Same name siblings</li>
+		<li>Namespace remapping</li>
+	</ul>
+	</li>
+	<li>Query index complete</li>
+	<li>Fast move</li>
+	<li>JCR lock support (best effort only)</li>
+</ul>
+
+
+
+<h3 id="GoalsandnongoalsforJackrabbit3-Maybe">Maybe</h3>
+<ul>
+	<li>Scalability:
+	<ul>
+		<li>Large number of values for multi valued properties</li>
+	</ul>
+	</li>
+	<li>Sharable nodes</li>
+	<li>Fast delete
+<br class="atl-forced-newline"/></li>
+</ul>
+
+
+<h3 id="GoalsandnongoalsforJackrabbit3-TBD">TBD</h3>
+<ul>
+	<li>Everything is content: search index, configuration, workspaces
+	<ul>
+		<li>At what level (i.e. JCR, SPI, Microkernel, persistence store)?</li>
+	</ul>
+	</li>
+	<li>Microkernel portable to C:
+	<ul>
+		<li>Or maybe better &quot;language agnostic API&quot;</li>
+	</ul>
+	</li>
+	<li>Flexible persistence layer (RDBMS, Cassandra, ...)</li>
+	<li>Small and embeddable
+	<ul>
+		<li>How small?,</li>
+		<li>Embeddable into what?</li>
+	</ul>
+	</li>
+	<li>Characteristics of clustering (partitioning, replication, merging, consistency)</li>
+	<li>Tunable consistency (e.g. when clustered)</li>
+</ul>
+                    </div>
+
+                    
+                                                      
+                </div>             </div> 
+            <div id="footer" role="contentinfo">
+                <section class="footer-body">
+                    <p>Document generated by Confluence on May 20, 2019 11:11</p>
+                    <div id="footer-logo"><a href="http://www.atlassian.com/">Atlassian</a></div>
+                </section>
+            </div>
+        </div>     </body>
+</html>

Propchange: jackrabbit/site/live/archive/wiki/JCR/Goals-and-non-goals-for-Jackrabbit-3_115513404.html
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: jackrabbit/site/live/archive/wiki/JCR/Goals-and-non-goals-for-Jackrabbit-3_115513404.html
------------------------------------------------------------------------------
    svn:executable = *

Added: jackrabbit/site/live/archive/wiki/JCR/Home_70731.html
URL: http://svn.apache.org/viewvc/jackrabbit/site/live/archive/wiki/JCR/Home_70731.html?rev=1859550&view=auto
==============================================================================
--- jackrabbit/site/live/archive/wiki/JCR/Home_70731.html (added)
+++ jackrabbit/site/live/archive/wiki/JCR/Home_70731.html Mon May 20 11:23:18 2019
@@ -0,0 +1,73 @@
+<!DOCTYPE html>
+<html>
+    <head>
+        <title>Apache Jackrabbit : Home</title>
+        <link rel="stylesheet" href="styles/site.css" type="text/css" />
+        <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+    </head>
+
+    <body class="theme-default aui-theme-default">
+        <div id="page">
+            <div id="main" class="aui-page-panel">
+                <div id="main-header">
+                    <div id="breadcrumb-section">
+                        <ol id="breadcrumbs">
+                            <li class="first">
+                                <span><a href="index.html">Apache Jackrabbit</a></span>
+                            </li>
+                                                </ol>
+                    </div>
+                    <h1 id="title-heading" class="pagetitle">
+                                                    <img src="images/icons/contenttypes/home_page_16.png" height="16" width="16" border="0" align="absmiddle" alt="Home Page" style="float: none; vertical-align: middle;"/>
+                                                <span id="title-text">
+                            Apache Jackrabbit : Home
+                        </span>
+                    </h1>
+                </div>
+
+                <div id="content" class="view">
+                    <div class="page-metadata">
+                        
+        
+    
+        
+    
+        
+        
+            Created by <span class='author'> Jukka Zitting</span>, last modified by <span class='editor'> Marcel Reutegger</span> on May 20, 2019
+                        </div>
+                    <div id="main-content" class="wiki-content group">
+                    <h1 id="Home-WelcometotheApacheJackrabbitWikiarchive">Welcome to the Apache Jackrabbit Wiki archive</h1><p><a href="http://jackrabbit.apache.org/" class="external-link" rel="nofollow">Apache Jackrabbit</a> is a project at the <a href="http://www.apache.org/" class="external-link" rel="nofollow">Apache Software Foundation</a>.</p><div class="confluence-information-macro confluence-information-macro-information"><span class="aui-icon aui-icon-small aui-iconfont-info confluence-information-macro-icon"></span><div class="confluence-information-macro-body"><p>As of May 2019 the project does not use a wiki system anymore and this is an archived and exported HTML version of the MoinMoin wiki content before it was decommissioned.</p><p>The content on these wiki pages must not be considered as documentation but rather as notes and ideas written down in the wiki. Please visit the official <a href="https://jackrabbit.apache.org" class="external-link" rel="nofollow">Jackrabb
 it website</a> for up-to-date information about the project.</p></div></div><h3 id="Home-Features">Features</h3><ul><li><a href="ConfigurationOverview_115513382.html">ConfigurationOverview</a>: How to configure Jackrabbit</li><li><a href="PersistenceManagerFAQ_115513487.html">PersistenceManagerFAQ</a>: Persistence Manager configuration</li><li><a href="DataStore_115513387.html">DataStore</a>: How to configure and use the binary data store</li><li><a href="NodeTypeRegistry_115513461.html">NodeTypeRegistry</a>: Registry of commonly used node types</li><li><a href="NamespaceRegistry_115513459.html">NamespaceRegistry</a>: Registry of commonly used namespace mappings</li><li><a href="Clustering_115513377.html">Clustering</a>: How to set up and use clustering</li><li><a href="Observation_115513484.html">Observation</a>: Jackrabbit-specific observation</li><li><a href="Search_115513504.html">Search</a>: How to set up and use search</li><li><a href="CacheManager_115513375.html">CacheManager
 </a>: Cache configuration</li><li><a href="RepositoryLock_115513495.html">RepositoryLock</a>: Repository locking</li><li><a href="BackupAndMigration_115513344.html">BackupAndMigration</a>: How to backup a repository or migrate to another configuration</li><li><a href="ContribTips_115513386.html">ContribTips</a>: Help regarding the contrib projects</li><li><a href="JcrSpecImplementation_115513447.html">JcrSpecImplementation</a>: List of additional features and implementation variants in Jackrabbit compared to the JCR specification</li><li><a href="JcrCommons_115513442.html">JcrCommons</a>: Jackrabbit JCR Commons</li><li><a href="ConnectionPooling_115513384.html">ConnectionPooling</a>: Connection pooling for database components</li><li><a href="RemoteAccess_115513494.html">RemoteAccess</a>: Remote access to a Jackrabbit repository over <a class="createlink" href="/confluence/pages/createpage.action?spaceKey=JCR&amp;title=DavEx&amp;linkCreation=true&amp;fromPageId=70731">DavEx</a> or R
 MI</li><li><a href="UserManagement_115513522.html">UserManagement</a>: User and group management with Jackrabbit</li><li><a href="AccessControl_115513330.html">AccessControl</a>: Access control with JCR 2.0 and Jackrabbit</li><li><a href="InteractiveCommandLine_115513412.html">InteractiveCommandLine</a>: Execute a command line tool in an interactive mode to change a JCR repository</li><li><a href="Statistics_115513513.html">Statistics</a>: an overview of the statistics exposed by Jackrabbit</li></ul><h3 id="Home-Links">Links</h3><ul><li><a href="JackrabbitDevelopment_115513425.html">JackrabbitDevelopment</a></li><li><a href="http://jackrabbit.apache.org/mailing-lists.html" class="external-link" rel="nofollow">Mailing Lists</a>: Post questions in the mailing list</li><li><a href="http://jcp.org/en/jsr/detail?id=283" class="external-link" rel="nofollow">JCR 2.0 (JSR-283) Specification</a> <a href="http://www.day.com/maven/javax.jcr/javadocs/jcr-2.0" class="external-link" rel="nofollow
 ">Javadocs</a> <a href="http://www.day.com/maven/jdiff-jcr1-jcr2/changes.html" class="external-link" rel="nofollow">Diff to JCR 1.0</a> (public final draft)</li><li><a href="http://jcp.org/en/jsr/detail?id=170" class="external-link" rel="nofollow">JCR 1.0 (JSR-170) Specification</a> <a href="http://www.day.com/maven/javax.jcr/javadocs/jcr-1.0" class="external-link" rel="nofollow">Javadocs</a> (final)</li><li><a href="JcrLinks_115513443.html">JcrLinks</a>: Links to articles, presentation, videos, tools and applications based on JCR or Jackrabbit</li><li><a href="http://incubator.apache.org/sling" class="external-link" rel="nofollow">Sling</a>: Web application framework based on REST principles. Sling uses a JCR repository</li><li><a class="unresolved" href="#">Apache Wiki Farm</a>: Other Apache wikis</li><li><a href="http://www.nabble.com/Jackrabbit-f361.html" class="external-link" rel="nofollow">Dev Mailing List Archive</a>: Search for answers in the mailing list archive</li><li><a 
 href="http://jackrabbit.apache.org/mailing-lists.html" class="external-link" rel="nofollow">Mailing Lists</a>: Post questions in the mailing list</li></ul><h3 id="Home-Community">Community</h3><ul><li><a href="ContentTrackApacheConUs2009_115513385.html">ContentTrackApacheConUs2009</a>: Proposed &quot;Content Technology&quot; track at the ApacheCon US 2009</li><li><a href="Oakathon-August-2017_115513475.html">Oakathon August 2017</a>: Oak Hackathon</li><li><a href="Oakathon-November-2017_115513479.html">Oakathon November 2017</a>: Oak Hackathon</li><li><a href="Oakathon-March-2018_115513477.html">Oakathon March 2018</a>: Oak Hackathon</li><li><a href="Oakathon-September-2018_115513483.html">Oakathon September 2018</a>: Oak Hackathon</li><li><a href="Oakathon-November-2018_115513481.html">Oakathon November 2018</a>: Oak Hackathon</li><li><a href="Oakathon-May-2019_115513478.html">Oakathon May 2019</a>: Oak Hackathon</li></ul><h3 id="Home-Architecture">Architecture</h3><ul><li><a href=
 "ItemStateManagement_115513413.html">ItemStateManagement</a>: Design of ItemState management with collaboration diagrams for various use cases that read and/or modify content</li></ul><h3 id="Home-FAQ">FAQ</h3><ul><li><a href="QuestionsAndAnswers_115513491.html">QuestionsAndAnswers</a>: Frequently asked questions about Jackrabbit</li><li><a href="ExamplesPage_115513397.html">ExamplesPage</a>: Solutions for common problems</li><li><a href="Performance_115513486.html">Performance</a>: Q. and A. about Jackrabbit perfomance</li><li><a href="JcrSessionHandling_115513446.html">JcrSessionHandling</a>: How to (re)use JCR sessions</li><li><a href="EncodingAndEscaping_115513396.html">EncodingAndEscaping</a>: How to handle special characters in path and queries</li><li><a href="QueryUsingJdbc_115513490.html">QueryUsingJdbc</a>: How to query a JCR repository using the JDBC API.</li><li><a href="UsingJNDIDataSource_115513523.html">UsingJNDIDataSource</a>: How to use a JNDI <a class="createlink" 
 href="/confluence/pages/createpage.action?spaceKey=JCR&amp;title=DataSource&amp;linkCreation=true&amp;fromPageId=70731">DataSource</a> to connect to a database.</li><li><a href="ManuallyCreatingDatabaseTables_115513453.html">ManuallyCreatingDatabaseTables</a>: How to create tables manually when using database persistence.</li></ul><h3 id="Home-Blueprintsandbestpractices">Blueprints and best practices</h3><ul><li><a href="DavidsModel_115513389.html">DavidsModel</a>: A guide for blissful content modeling. Seven rules to avoid common mistakes content modeling mistakes.</li><li><a href="NodeNamingConventions_115513460.html">NodeNamingConventions</a> : Recommendations for node names.</li></ul><h3 id="Home-FuturePlans">Future Plans</h3><ul><li><a href="RoadMap_115513499.html">RoadMap</a>: High level roadmap for Jackrabbit</li><li><a class="createlink" href="/confluence/pages/createpage.action?spaceKey=JCR&amp;title=Proposed_JCR_2.0_API_Changes&amp;linkCreation=true&amp;fromPageId=70731">P
 roposed_JCR_2.0_API_Changes</a>: Changes between the JCR 1.0 API and the proposed JCR 2.0 API as defined in JSR 283.</li><li><a href="Jsop_115513450.html">Jsop</a>: Links and proposed syntax for a Json Diff format</li><li><a href="Jackrabbit-3_115513423.html">Oak documentation</a>]: Project Oak (mainly of historical interest. Please refer to the [<a href="http://jackrabbit.apache.org/oak/docs/" class="external-link" rel="nofollow">http://jackrabbit.apache.org/oak/docs/</a> for up to date information).</li></ul><h3 id="Home-Deployment">Deployment</h3><ul><li><a href="JackrabbitOnJBoss_115513430.html">JackrabbitOnJBoss</a>: How to deploy a Jackrabbit server with JCA, expose the local repository through JNDI and WebDAV to remote clients and connect remotely from a Java program, or from a command line tool (contrib/jcr-commands).</li><li><a href="JackrabbitOnWeblogic_115513438.html">JackrabbitOnWeblogic</a>: How to deploy the Jackrabbit server on Weblogic, expose the repository over Web
 DAV, use JNDI with Oracle.</li><li><a href="JackrabbitOnTomcat_115513435.html">JackrabbitOnTomcat</a>: How to use the Jackrabbit with Tomcat, WebDAV, JNDI and Oracle.</li><li><a href="JackrabbitOnTomcat6_115513436.html">JackrabbitOnTomcat6</a>: How to use the Jackrabbit with Tomcat6 &amp; Mysql.</li><li><a href="JackrabbitOnTomcat6withJndiAndPostgresql_115513437.html">JackrabbitOnTomcat6withJndiAndPostgresql</a>: How to use the Jackrabbit with Tomcat6 and JNDI, backed by PostgreSQL.</li><li><a href="JackrabbitOnSunWebServer_115513434.html">JackrabbitOnSunWebServer</a>: How to configure the Sun Java System Web Server with Jackrabbit (Model 2).</li><li><a href="JackrabbitOnOracle_115513433.html">JackrabbitOnOracle</a>: How to configure Jackrabbit to use Oracle backend.</li><li><a href="JackrabbitOnCloud_115513428.html">JackrabbitOnCloud</a>: Running Jackrabbit using Amazon Web Services (AWS) and Google App Engine (GAE).</li><li><a href="JackrabbitStandalone_115513440.html">JackrabbitS
 tandalone</a>: Running Jackrabbit standalone.</li></ul><h3 id="Home-WebDAV">WebDAV</h3><ul><li><a href="WebDAV_115513525.html">WebDAV</a>: If you plan on using Jackrabbit through WebDAV. Useful for existing Jakarta Slide users or other WebDAV repository users thinking about migrating to Jackrabbit.</li></ul><h3 id="Home-Miscellaneous">Miscellaneous</h3><ul><li><a href="SandboxCMIS_115513500.html">SandboxCMIS</a>: More on the CMIS Sandbox project</li><li><a href="WebAppFAQ_115513524.html">WebAppFAQ</a>: Frequently asked questions related to web application development</li><li><a href="OCMandJackrabbit2_115513469.html">OCMandJackrabbit2</a>: Object Content mapping with Jackrabbit 2.0</li><li><a href="JackrabbitOsgi_115513439.html">JackrabbitOsgi</a>: Embedding the Repository in an OSGi Framework</li><li><a href="http://jackrabbit.apache.org/filevault/index.html" class="external-link" rel="nofollow">Jackrabbit FileVault</a>: Jackrabbit FileVault</li></ul><h3 id="Home-Reports">Reports</
 h3><ul><li><a href="https://whimsy.apache.org/board/minutes/Jackrabbit.html" class="external-link" rel="nofollow">https://whimsy.apache.org/board/minutes/Jackrabbit.html</a> - Jackrabbit board reports.</li><li><a href="Board-Report-June-2012_115513355.html">Board Report June 2012</a></li><li><a href="Board-Report-September-2012_115513368.html">Board Report September 2012</a></li><li><a href="Board-Report-December-2012_115513347.html">Board Report December 2012</a></li><li><a href="Board-Report-March-2013_115513361.html">Board Report March 2013</a></li><li><a href="Board-Report-June-2013_115513356.html">Board Report June 2013</a></li><li><a href="Board-Report-September-2013_115513369.html">Board Report September 2013</a></li><li><a href="Board-Report-December-2013_115513348.html">Board Report December 2013</a></li><li><a href="Board-Report-March-2014_115513362.html">Board Report March 2014</a></li><li><a href="Board-Report-July-2014_115513354.html">Board Report July 2014</a></li><li>
 <a href="Board-Report-September-2014_115513370.html">Board Report September 2014</a></li><li><a href="Board-Report-December-2014_115513349.html">Board Report December 2014</a></li><li><a href="Board-Report-March-2015_115513363.html">Board Report March 2015</a></li><li><a href="Board-Report-June-2015_115513357.html">Board Report June 2015</a></li><li><a href="Board-Report-September-2015_115513371.html">Board Report September 2015</a></li><li><a href="Board-Report-December-2015_115513350.html">Board Report December 2015</a></li><li><a href="Board-Report-March-2016_115513364.html">Board Report March 2016</a></li><li><a href="Board-Report-June-2016_115513358.html">Board Report June 2016</a></li><li><a href="Board-Report-September-2016_115513372.html">Board Report September 2016</a></li><li><a href="Board-Report-December-2016_115513351.html">Board Report December 2016</a></li><li><a href="Board-Report-March-2017_115513365.html">Board Report March 2017</a></li><li><a href="Board-Report-Ju
 ne-2017_115513359.html">Board Report June 2017</a></li><li><a href="Board-Report-September-2017_115513373.html">Board Report September 2017</a></li><li><a href="Board-Report-December-2017_115513352.html">Board Report December 2017</a></li><li><a href="Board-Report-March-2018_115513366.html">Board Report March 2018</a></li><li><a href="Board-Report-June-2018_115513360.html">Board Report June 2018</a></li><li><a href="Board-Report-September-2018_115513374.html">Board Report September 2018</a></li><li><a href="Board-Report-December-2018_115513353.html">Board Report December 2018</a></li><li><a href="Board-Report-March-2019_115513367.html">Board Report March 2019</a></li></ul><h3 id="Home-Historical">Historical</h3><ul><li><a href="JcrMeetupMarch2009_115513445.html">JcrMeetupMarch2009</a>: JCR community gathering at 20:00 on March 24th at the ApacheCon EU in Amsterdam</li><li><a href="JcrMeetupApril2008_115513444.html">JcrMeetupApril2008</a>: JCR community gathering in Amsterdam on Apri
 l 8th, 2008</li><li><a href="BackupTool_115513345.html">BackupTool</a>: Design document of the 2006 Google Summer of Code project (written by Nicolas Toper, mentored by Jukka Zitting).</li><li><a href="JNDI_115513422.html">JNDI</a>: Patching the Oracle file system and persistence manager for use with JNDI (no longer required with Jackrabbit 1.4)</li></ul>
+                    </div>
+
+                                        <div class="pageSection group">
+                        <div class="pageSectionHeader">
+                            <h2 id="attachments" class="pageSectionTitle">Attachments:</h2>
+                        </div>
+
+                        <div class="greybox" align="left">
+                                                            <img src="images/icons/bullet_blue.gif" height="8" width="8" alt=""/>
+                                <a href="attachments/70731/59671319.jpg">aceu2008_basic_125x125.jpg</a> (image/jpeg)
+                                <br/>
+                                                            <img src="images/icons/bullet_blue.gif" height="8" width="8" alt=""/>
+                                <a href="attachments/70731/59672285.png">2008-usa-125x125.png</a> (image/png)
+                                <br/>
+                                                            <img src="images/icons/bullet_blue.gif" height="8" width="8" alt=""/>
+                                <a href="attachments/70731/9615.png">2009-europe-125x125.png</a> (image/png)
+                                <br/>
+                                                            <img src="images/icons/bullet_blue.gif" height="8" width="8" alt=""/>
+                                <a href="attachments/70731/3113013.gif">2009-usa-125x125.gif</a> (image/gif)
+                                <br/>
+                                                    </div>
+                    </div>
+                    
+                                                      
+                </div>             </div> 
+            <div id="footer" role="contentinfo">
+                <section class="footer-body">
+                    <p>Document generated by Confluence on May 20, 2019 11:11</p>
+                    <div id="footer-logo"><a href="http://www.atlassian.com/">Atlassian</a></div>
+                </section>
+            </div>
+        </div>     </body>
+</html>

Propchange: jackrabbit/site/live/archive/wiki/JCR/Home_70731.html
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: jackrabbit/site/live/archive/wiki/JCR/Home_70731.html
------------------------------------------------------------------------------
    svn:executable = *