[exo-jcr-commits] exo-jcr SVN: r1890 - jcr/trunk/docs/reference/en/src/main/docbook/en-US/modules.

do-not-reply at jboss.org do-not-reply at jboss.org
Thu Feb 18 07:06:33 EST 2010


Author: sergiykarpenko
Date: 2010-02-18 07:06:33 -0500 (Thu, 18 Feb 2010)
New Revision: 1890

Added:
   jcr/trunk/docs/reference/en/src/main/docbook/en-US/modules/search-configuration.xml
Modified:
   jcr/trunk/docs/reference/en/src/main/docbook/en-US/modules/cluster-config.xml
   jcr/trunk/docs/reference/en/src/main/docbook/en-US/modules/configuration.xml
   jcr/trunk/docs/reference/en/src/main/docbook/en-US/modules/external-value-storages.xml
   jcr/trunk/docs/reference/en/src/main/docbook/en-US/modules/intro.xml
   jcr/trunk/docs/reference/en/src/main/docbook/en-US/modules/jbosscache-configuration-templates.xml
   jcr/trunk/docs/reference/en/src/main/docbook/en-US/modules/lock-manager-config.xml
   jcr/trunk/docs/reference/en/src/main/docbook/en-US/modules/query-handler-config.xml
Log:
EXOJCR-490: articles changed to chapter

Modified: jcr/trunk/docs/reference/en/src/main/docbook/en-US/modules/cluster-config.xml
===================================================================
--- jcr/trunk/docs/reference/en/src/main/docbook/en-US/modules/cluster-config.xml	2010-02-18 11:45:30 UTC (rev 1889)
+++ jcr/trunk/docs/reference/en/src/main/docbook/en-US/modules/cluster-config.xml	2010-02-18 12:06:33 UTC (rev 1890)
@@ -1,11 +1,11 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
 "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-<article>
-  <articleinfo>
-    <title>Configuring JBoss AS with eXo JCR in cluster</title>
-  </articleinfo>
+<chapter>
+  <?dbhtml filename="cluster-config.html"?>
 
+  <title>Configuring JBoss AS with eXo JCR in cluster</title>
+
   <section>
     <title>Launching Cluster</title>
 
@@ -182,7 +182,7 @@
           <programlisting>&lt;value-storages&gt;
    &lt;value-storage id="system" class="org.exoplatform.services.jcr.impl.storage.value.fs.TreeFileValueStorage"&gt;
       &lt;properties&gt;
-         &lt;property name="path" value="/mnt/tornado/temp/values/production" /&gt;    -    path within NFS where ValueStorage will hold it's data
+         &lt;property name="path" value="/mnt/tornado/temp/values/production" /&gt;    &lt;!--path within NFS where ValueStorage will hold it's data--&gt;
       &lt;/properties&gt;
       &lt;filters&gt;
          &lt;filter property-type="Binary" /&gt;
@@ -196,9 +196,9 @@
 
           <programlisting>&lt;cache enabled="true" class="org.exoplatform.services.jcr.impl.dataflow.persistent.jbosscache.JBossCacheWorkspaceStorageCache"&gt;
    &lt;properties&gt;
-      &lt;property name="jbosscache-configuration" value="jar:/conf/portal/test-jbosscache-data.xml" /&gt;     -    path to JBoss Cache configuration for data storage
-      &lt;property name="jgroups-configuration" value="jar:/conf/portal/udp-mux.xml" /&gt;                     -    path to JGroups configuration
-      &lt;property name="jbosscache-cluster-name" value="JCR_Cluster_cache_production" /&gt;                   -    JBoss Cache data storage cluster name
+      &lt;property name="jbosscache-configuration" value="jar:/conf/portal/test-jbosscache-data.xml" /&gt;     &lt;!--    path to JBoss Cache configuration for data storage --&gt;
+      &lt;property name="jgroups-configuration" value="jar:/conf/portal/udp-mux.xml" /&gt;                     &lt;!--    path to JGroups configuration --&gt;
+      &lt;property name="jbosscache-cluster-name" value="JCR_Cluster_cache_production" /&gt;                   &lt;!--    JBoss Cache data storage cluster name --&gt;
       &lt;property name="jgroups-multiplexer-stack" value="true" /&gt;
    &lt;/properties&gt;
 &lt;/cache&gt; </programlisting>
@@ -210,10 +210,10 @@
           <programlisting>&lt;query-handler class="org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex"&gt;
    &lt;properties&gt;
       &lt;property name="changesfilter-class" value="org.exoplatform.services.jcr.impl.core.query.jbosscache.JBossCacheIndexChangesFilter" /&gt;
-      &lt;property name="index-dir" value="/mnt/tornado/temp/jcrlucenedb/production" /&gt;                       -    path within NFS where ValueStorage will hold it's data
-      &lt;property name="jbosscache-configuration" value="jar:/conf/portal/test-jbosscache-indexer.xml" /&gt;    -    path to JBoss Cache configuration for indexer
-      &lt;property name="jgroups-configuration" value="jar:/conf/portal/udp-mux.xml" /&gt;                       -    path to JGroups configuration
-      &lt;property name="jbosscache-cluster-name" value="JCR_Cluster_indexer_production" /&gt;                   -    JBoss Cache indexer cluster name
+      &lt;property name="index-dir" value="/mnt/tornado/temp/jcrlucenedb/production" /&gt;                       &lt;!--    path within NFS where ValueStorage will hold it's data --&gt;
+      &lt;property name="jbosscache-configuration" value="jar:/conf/portal/test-jbosscache-indexer.xml" /&gt;    &lt;!--    path to JBoss Cache configuration for indexer --&gt;
+      &lt;property name="jgroups-configuration" value="jar:/conf/portal/udp-mux.xml" /&gt;                       &lt;!--    path to JGroups configuration --&gt;
+      &lt;property name="jbosscache-cluster-name" value="JCR_Cluster_indexer_production" /&gt;                   &lt;!--    JBoss Cache indexer cluster name --&gt;
       &lt;property name="jgroups-multiplexer-stack" value="true" /&gt;
    &lt;/properties&gt;
 &lt;/query-handler&gt; </programlisting>
@@ -225,12 +225,12 @@
           <programlisting>&lt;lock-manager class="org.exoplatform.services.jcr.impl.core.lock.jbosscache.CacheableLockManagerImpl"&gt;
    &lt;properties&gt;
       &lt;property name="time-out" value="15m" /&gt;
-      &lt;property name="jbosscache-configuration" value="jar:/conf/portal/test-jbosscache-lock.xml" /&gt;       -    path to JBoss Cache configuration for lock manager
-      &lt;property name="jgroups-configuration" value="jar:/conf/portal/udp-mux.xml" /&gt;                       -    path to JGroups configuration
+      &lt;property name="jbosscache-configuration" value="jar:/conf/portal/test-jbosscache-lock.xml" /&gt;       &lt;!--    path to JBoss Cache configuration for lock manager --&gt;
+      &lt;property name="jgroups-configuration" value="jar:/conf/portal/udp-mux.xml" /&gt;                       &lt;!--    path to JGroups configuration --&gt;
       &lt;property name="jgroups-multiplexer-stack" value="true" /&gt;
-      &lt;property name="jbosscache-cluster-name" value="JCR_Cluster_lock_production" /&gt;                      -    JBoss Cache locks cluster name
+      &lt;property name="jbosscache-cluster-name" value="JCR_Cluster_lock_production" /&gt;                      &lt;!--    JBoss Cache locks cluster name --&gt;
                      
-      &lt;property name="jbosscache-cl-cache.jdbc.table.name" value="jcrlocks_production"/&gt;                   -    the name of the DB table where lock's data will be stored
+      &lt;property name="jbosscache-cl-cache.jdbc.table.name" value="jcrlocks_production"/&gt;                   &lt;!--    the name of the DB table where lock's data will be stored --&gt;
       &lt;property name="jbosscache-cl-cache.jdbc.table.create" value="true"/&gt;
       &lt;property name="jbosscache-cl-cache.jdbc.table.drop" value="false"/&gt;
       &lt;property name="jbosscache-cl-cache.jdbc.table.primarykey" value="jcrlocks_production_pk"/&gt;
@@ -244,4 +244,4 @@
       </itemizedlist>
     </section>
   </section>
-</article>
+</chapter>

Modified: jcr/trunk/docs/reference/en/src/main/docbook/en-US/modules/configuration.xml
===================================================================
--- jcr/trunk/docs/reference/en/src/main/docbook/en-US/modules/configuration.xml	2010-02-18 11:45:30 UTC (rev 1889)
+++ jcr/trunk/docs/reference/en/src/main/docbook/en-US/modules/configuration.xml	2010-02-18 12:06:33 UTC (rev 1890)
@@ -1,447 +1,435 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
-"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-<article>
-  <articleinfo>
-    <title>eXo JCR configuration</title>
-
-    <author>
-      <firstname></firstname>
-
-      <surname></surname>
-
-      <affiliation>
-        <orgname></orgname>
-      </affiliation>
-    </author>
-
-    <pubdate></pubdate>
-  </articleinfo>
-
-  <section>
-    <title>Related documents</title>
-
-    <para></para>
-
-    <itemizedlist>
-      <listitem>
-        <para>Search Configuration</para>
-      </listitem>
-
-      <listitem>
-        <para>JDBC Data Container config</para>
-      </listitem>
-
-      <listitem>
-        <para>External Value Storages</para>
-      </listitem>
-    </itemizedlist>
-  </section>
-
-  <section>
-    <title>Portal and Standalone configuration</title>
-
-    <para>Like other eXo services eXo JCR can be configured and used in portal
-    or embedded mode (as a service embedded in eXo Portal) and in standalone
-    mode.</para>
-
-    <para>In Embedded mode, JCR services are registered in the Portal
-    container and the second option is to use a Standalone container. The main
-    difference between these container types is that the first one is intended
-    to be used in a Portal (Web) environment, while the second one can be used
-    standalone (TODO see the comprehensive page Service Configuration for
-    Beginners for more details).</para>
-
-    <para>The following setup procedure is used to obtain a Standalone
-    configuration (TODO find more in Container configuration):</para>
-
-    <itemizedlist>
-      <listitem>
-        <para>Configuration that is set explicitly using
-        StandaloneContainer.addConfigurationURL(String url) or
-        StandaloneContainer.addConfigurationPath(String path) before
-        getInstance()</para>
-      </listitem>
-
-      <listitem>
-        <para>Configuration from $base:directory/exo-configuration.xml or
-        $base:directory/conf/exo-configuration.xml file. Where $base:directory
-        is either AS's home directory in case of J2EE AS environment or just
-        the current directory in case of a standalone application.</para>
-      </listitem>
-
-      <listitem>
-        <para>/conf/exo-configuration.xml in the current classloader (e.g.
-        war, ear archive)</para>
-      </listitem>
-
-      <listitem>
-        <para>Configuration from
-        $service_jar_file/conf/portal/configuration.xml. WARNING: do not rely
-        on some concrete jar's configuration if you have more than one jar
-        containing conf/portal/configuration.xml file. In this case choosing a
-        configuration is unpredictable.</para>
-      </listitem>
-    </itemizedlist>
-
-    <para>JCR service configuration looks like:</para>
-
-    <programlisting>&lt;component&gt;
-    &lt;key&gt;org.exoplatform.services.jcr.RepositoryService&lt;/key&gt;
-    &lt;type&gt;org.exoplatform.services.jcr.impl.RepositoryServiceImpl&lt;/type&gt;
-  &lt;/component&gt;
-  &lt;component&gt;
-    &lt;key&gt;org.exoplatform.services.jcr.config.RepositoryServiceConfiguration&lt;/key&gt;
-    &lt;type&gt;org.exoplatform.services.jcr.impl.config.RepositoryServiceConfigurationImpl&lt;/type&gt;
-    &lt;init-params&gt;
-      &lt;value-param&gt;
-        &lt;name&gt;conf-path&lt;/name&gt;
-        &lt;description&gt;JCR repositories configuration file&lt;/description&gt;
-        &lt;value&gt;jar:/conf/standalone/exo-jcr-config.xml&lt;/value&gt;
-      &lt;/value-param&gt;
-      &lt;properties-param&gt;
-        &lt;name&gt;working-conf&lt;/name&gt;
-        &lt;description&gt;working-conf&lt;/description&gt;
-        &lt;property name="source-name" value="jdbcjcr" /&gt;
-        &lt;property name="dialect" value="hsqldb" /&gt;
-        &lt;property name="persister-class-name" value="org.exoplatform.services.jcr.impl.config.JDBCConfigurationPersister" /&gt;
-      &lt;/properties-param&gt;
-    &lt;/init-params&gt;
-  &lt;/component&gt;</programlisting>
-
-    <para>conf-path : a path to a RepositoryService JCR Configuration</para>
-
-    <para>working-conf : optional; JCR configuration persister configuration.
-    If there isn't a working-conf the persister will be disabled</para>
-
-    <section>
-      <title>JCR Configuration</title>
-
-      <para>The Configuration is defined in an XML file (see DTD
-      below).</para>
-
-      <para>JCR Service can use multiple Repositories and each repository can
-      have multiple Workspaces.</para>
-
-      <para>Repositories configuration parameters support human-readable
-      formats of values. They are all case-insensitive:</para>
-
-      <itemizedlist>
-        <listitem>
-          <para>Numbers formats: K,KB - kilobytes, M,MB - megabytes, G,GB -
-          gigabytes, T,TB - terabytes.</para>
-
-          <para>Examples: 100.5 - digit 100.5, 200k - 200 Kbytes, 4m - 4
-          Mbytes, 1.4G - 1.4 Gbytes, 10T - 10 Tbytes</para>
-        </listitem>
-
-        <listitem>
-          <para>Time format endings: ms - milliseconds, s - seconds, m -
-          minutes, h - hours, d - days, w - weeks, if no ending -
-          seconds.</para>
-
-          <para>Examples: 500ms - 500 milliseconds, 20 or 20s - 20 seconds,
-          30m - 30 minutes, 12h - 12 hours, 5d - 5 days, 4w - 4 weeks.</para>
-        </listitem>
-      </itemizedlist>
-
-      <para></para>
-    </section>
-
-    <section id="sect_repository_service_configuration">
-      <title>Repository service configuration</title>
-
-      <para>Default configuration of the Repository Service located in
-      jar:/conf/portal/exo-jcr-config.xml, it will be available for portal and
-      standalone modes.</para>
-
-      <para>In portal mode it is overriden and located in the portal web
-      application portal/WEB-INF/conf/jcr/repository-configuration.xml.</para>
-
-      <para>Example of Repository Service configuration for standalone
-      mode:</para>
-
-      <programlisting>&lt;repository-service default-repository="repository"&gt;
-   &lt;repositories&gt;
-      &lt;repository name="db1" system-workspace="ws" default-workspace="ws"&gt;
-         &lt;security-domain&gt;exo-domain&lt;/security-domain&gt;
-         &lt;access-control&gt;optional&lt;/access-control&gt;
-         &lt;session-max-age&gt;1h&lt;/session-max-age&gt;
-         &lt;authentication-policy&gt;org.exoplatform.services.jcr.impl.core.access.JAASAuthenticator&lt;/authentication-policy&gt;
-         &lt;workspaces&gt;
-            &lt;workspace name="production"&gt;
-               &lt;!-- for system storage --&gt;
-               &lt;container class="org.exoplatform.services.jcr.impl.storage.jdbc.optimisation.CQJDBCWorkspaceDataContainer"&gt;
-                  &lt;properties&gt;
-                     &lt;property name="source-name" value="jdbcjcr" /&gt;
-                     &lt;property name="multi-db" value="false" /&gt;
-                     &lt;property name="update-storage" value="false" /&gt;
-                     &lt;property name="max-buffer-size" value="200k" /&gt;
-                     &lt;property name="swap-directory" value="../temp/swap/production" /&gt;
-                  &lt;/properties&gt;
-                  &lt;value-storages&gt;
-                     &lt;value-storage id="system" class="org.exoplatform.services.jcr.impl.storage.value.fs.TreeFileValueStorage"&gt;
-                        &lt;properties&gt;
-                           &lt;property name="path" value="../temp/values/production" /&gt;
-                        &lt;/properties&gt;
-                        &lt;filters&gt;
-                           &lt;filter property-type="Binary" /&gt;
-                        &lt;/filters&gt;
-                     &lt;/value-storage&gt;
-                  &lt;/value-storages&gt;
-               &lt;/container&gt;
-               &lt;initializer class="org.exoplatform.services.jcr.impl.core.ScratchWorkspaceInitializer"&gt;
-                  &lt;properties&gt;
-                     &lt;property name="root-nodetype" value="nt:unstructured" /&gt;
-                  &lt;/properties&gt;
-               &lt;/initializer&gt;
-               &lt;cache enabled="true" class="org.exoplatform.services.jcr.impl.dataflow.persistent.LinkedWorkspaceStorageCacheImpl"&gt;
-                  &lt;properties&gt;
-                     &lt;property name="max-size" value="10k" /&gt;
-                     &lt;property name="live-time" value="1h" /&gt;
-                  &lt;/properties&gt;
-               &lt;/cache&gt;
-               &lt;query-handler class="org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex"&gt;
-                  &lt;properties&gt;
-                     &lt;property name="index-dir" value="../temp/jcrlucenedb/production" /&gt;
-                  &lt;/properties&gt;
-               &lt;/query-handler&gt;
-               &lt;lock-manager&gt;
-                  &lt;time-out&gt;15m&lt;/time-out&gt;
-                  &lt;persister class="org.exoplatform.services.jcr.impl.core.lock.FileSystemLockPersister"&gt;
-                     &lt;properties&gt;
-                        &lt;property name="path" value="../temp/lock/system" /&gt;
-                     &lt;/properties&gt;
-                  &lt;/persister&gt;
-               &lt;/lock-manager&gt;
-            &lt;/workspace&gt;
-
-            &lt;workspace name="backup"&gt;
-               &lt;container class="org.exoplatform.services.jcr.impl.storage.jdbc.optimisation.CQJDBCWorkspaceDataContainer"&gt;
-                  &lt;properties&gt;
-                     &lt;property name="source-name" value="jdbcjcr" /&gt;
-                     &lt;property name="multi-db" value="false" /&gt;
-                     &lt;property name="update-storage" value="false" /&gt;
-                     &lt;property name="max-buffer-size" value="200k" /&gt;
-                     &lt;property name="swap-directory" value="../temp/swap/backup" /&gt;
-                  &lt;/properties&gt;
-                  &lt;value-storages&gt;
-                     &lt;value-storage id="draft" class="org.exoplatform.services.jcr.impl.storage.value.fs.TreeFileValueStorage"&gt;
-                        &lt;properties&gt;
-                           &lt;property name="path" value="../temp/values/backup" /&gt;
-                        &lt;/properties&gt;
-                        &lt;filters&gt;
-                           &lt;filter property-type="Binary" /&gt;
-                        &lt;/filters&gt;
-                     &lt;/value-storage&gt;
-                  &lt;/value-storages&gt;
-               &lt;/container&gt;
-               &lt;initializer class="org.exoplatform.services.jcr.impl.core.ScratchWorkspaceInitializer"&gt;
-                  &lt;properties&gt;
-                     &lt;property name="root-nodetype" value="nt:unstructured" /&gt;
-                  &lt;/properties&gt;
-               &lt;/initializer&gt;
-               &lt;cache enabled="true" class="org.exoplatform.services.jcr.impl.dataflow.persistent.LinkedWorkspaceStorageCacheImpl"&gt;
-                  &lt;properties&gt;
-                     &lt;property name="max-size" value="10k" /&gt;
-                     &lt;property name="live-time" value="1h" /&gt;
-                  &lt;/properties&gt;
-               &lt;/cache&gt;
-               &lt;query-handler class="org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex"&gt;
-                  &lt;properties&gt;
-                     &lt;property name="index-dir" value="../temp/jcrlucenedb/backup" /&gt;
-                  &lt;/properties&gt;
-               &lt;/query-handler&gt;
-            &lt;/workspace&gt;
-          &lt;/workspaces&gt;
-       &lt;/repository&gt;
-   &lt;/repositories&gt;
-&lt;/repository-service&gt;
-</programlisting>
-
-      <para>Repository Service configuration:</para>
-
-      <para>default-repository - the name of a default repository (one
-      returned by RepositoryService.getRepository())</para>
-
-      <para>repositories - the list of repositories</para>
-
-      <para>Repository configuration:</para>
-
-      <para>name - the name of a repository</para>
-
-      <para>default-workspace - the name of a workspace obtained using
-      Session's login() or login(Credentials) methods (ones without an
-      explicit workspace name)</para>
-
-      <para>system-workspace - name of workspace where /jcr:system node is
-      placed</para>
-
-      <para>security-domain - the name of a security domain for JAAS
-      authentication</para>
-
-      <para>access-control - the name of an access control policy. There can
-      be 3 types: optional - ACL is created on-demand(default), disable - no
-      access control, mandatory - an ACL is created for each added node(not
-      supported yet)</para>
-
-      <para>authentication-policy - the name of an authentication policy
-      class</para>
-
-      <para>workspaces - the list of workspaces</para>
-
-      <para>session-max-age - the time after which an idle session will be
-      removed (called logout). If not set, the idle session will never be
-      removed.</para>
-
-      <para>Workspace configuration:</para>
-
-      <para>name - the name of a workspace</para>
-
-      <para>auto-init-root-nodetype - DEPRECATED in JCR 1.9 (use initializer).
-      The node type for root node initialization</para>
-
-      <para>container - workspace data container (physical storage)
-      configuration</para>
-
-      <para>initializer - workspace initializer configuration</para>
-
-      <para>cache - workspace storage cache configuration</para>
-
-      <para>query-handler - query handler configuration</para>
-
-      <para>Workspace data container configuration:</para>
-
-      <para>class - A workspace data container class name</para>
-
-      <para>properties - the list of properties (name-value pairs) for the
-      concrete Workspace data container</para>
-
-      <para>value-storages - the list of value storage plugins</para>
-
-      <para>Value Storage plugin configuration (optional feature):</para>
-
-      <note>
-        <para>The value-storage element is optional. If you don't include it,
-        the values will be stored as BLOBs inside the database.</para>
-      </note>
-
-      <para>value-storage - Optional value Storage plugin definition</para>
-
-      <para>class- a value storage plugin class name (attribute)</para>
-
-      <para>properties - the list of properties (name-value pairs) for a
-      concrete Value Storage plugin</para>
-
-      <para>filters - the list of filters defining conditions when this plugin
-      is applicable</para>
-
-      <para>Initializer configuration (optional):</para>
-
-      <para>class - initializer implementation class.</para>
-
-      <para>properties - the list of properties (name-value pairs). Properties
-      are supported:</para>
-
-      <para>root-nodetype - The node type for root node initialization</para>
-
-      <para>root-permissions - Default permissions of the root node. It is
-      defined as a set of semicolon-delimited permissions containing a group
-      of space-delimited identities (user, group etc, see Organization service
-      documentation for details) and the type of permission. For example any
-      read;:/admin read;:/admin add_node;:/admin set_property;:/admin remove
-      means that users from group admin have all permissions and other users
-      have only a 'read' permission.</para>
-
-      <para>Configurable initializer adds a capability to override workspace
-      initial startup procedure.</para>
-
-      <para>Cache configuration:</para>
-
-      <para>enabled - if workspace cache is enabled</para>
-
-      <para>class - cache implementation class, optional from 1.9. Default
-      value is
-      org.exoplatform.services.jcr.impl.dataflow.persistent.LinkedWorkspaceStorageCacheImpl.</para>
-
-      <para>Cache can be configured to use concrete implementation of
-      WorkspaceStorageCache interface. JCR core has two implementation to use:
-      * LinkedWorkspaceStorageCacheImpl - default, with configurable read
-      behavior and statistic. * WorkspaceStorageCacheImpl - pre 1.9, still can
-      be used.</para>
-
-      <para>properties - the list of properties (name-value pairs) for
-      Workspace cache:</para>
-
-      <para>max-size - cache maximum size.</para>
-
-      <para>live-time - cached item live time.</para>
-
-      <para>LinkedWorkspaceStorageCacheImpl supports additional optional
-      parameters TODO</para>
-
-      <para>Query Handler configuration:</para>
-
-      <para>class - A Query Handler class name</para>
-
-      <para>properties - the list of properties (name-value pairs) for a Query
-      Handler (indexDir) properties and advanced features described in *Search
-      Configuration*</para>
-
-      <para>Lock Manager configuration:</para>
-
-      <para>time-out - time after which the unused global lock will be
-      removed.</para>
-
-      <para>persister - a class for storing lock information for future use.
-      For example, remove lock after jcr restart.</para>
-
-      <para>path - a lock folder, each workspace has its own.</para>
-
-      <para></para>
-
-      <para>Configuration definition:</para>
-
-      <programlisting>&lt;!ELEMENT repository-service (repositories)&gt;
-  &lt;!ATTLIST repository-service default-repository NMTOKEN #REQUIRED&gt;
-  &lt;!ELEMENT repositories (repository)&gt;
-  &lt;!ELEMENT repository (security-domain,access-control,session-max-age,authentication-policy,workspaces)&gt;
-  &lt;!ATTLIST repository
-	default-workspace NMTOKEN #REQUIRED
-	name NMTOKEN #REQUIRED
-	system-workspace NMTOKEN #REQUIRED
-  &gt;
-  &lt;!ELEMENT security-domain (#PCDATA)&gt;
-  &lt;!ELEMENT access-control (#PCDATA)&gt;
-  &lt;!ELEMENT session-max-age (#PCDATA)&gt;
-  &lt;!ELEMENT authentication-policy (#PCDATA)&gt;
-  &lt;!ELEMENT workspaces (workspace+)&gt;
-  &lt;!ELEMENT workspace (container,initializer,cache,query-handler)&gt;
-  &lt;!ATTLIST workspace name NMTOKEN #REQUIRED&gt;
-  &lt;!ELEMENT container (properties,value-storages)&gt;
-  &lt;!ATTLIST container class NMTOKEN #REQUIRED&gt;
-  &lt;!ELEMENT value-storages (value-storage+)&gt;
-  &lt;!ELEMENT value-storage (properties,filters)&gt;
-  &lt;!ATTLIST value-storage class NMTOKEN #REQUIRED&gt;
-  &lt;!ELEMENT filters (filter+)&gt;
-  &lt;!ELEMENT filter EMPTY&gt;
-  &lt;!ATTLIST filter property-type NMTOKEN #REQUIRED&gt;
-  &lt;!ELEMENT initializer (properties)&gt;
-  &lt;!ATTLIST initializer class NMTOKEN #REQUIRED&gt;
-  &lt;!ELEMENT cache (properties)&gt;
-  &lt;!ATTLIST cache 
-        enabled NMTOKEN #REQUIRED
-        class NMTOKEN #REQUIRED
-  &gt;
-  &lt;!ELEMENT query-handler (properties)&gt;
-  &lt;!ATTLIST query-handler class NMTOKEN #REQUIRED&gt;
-  &lt;!ELEMENT access-manager (properties)&gt;
-  &lt;!ATTLIST access-manager class NMTOKEN #REQUIRED&gt;
-  &lt;!ELEMENT lock-manager (time-out,persister)&gt;
-  &lt;!ELEMENT time-out (#PCDATA)&gt;
-  &lt;!ELEMENT persister (properties)&gt;
-  &lt;!ELEMENT properties (property+)&gt;
-  &lt;!ELEMENT property EMPTY&gt;</programlisting>
-    </section>
-  </section>
-</article>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
+"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
+<chapter>
+  <?dbhtml filename="configuration.html"?>
+
+  <title>eXo JCR configuration</title>
+
+  <section>
+    <title>Related documents</title>
+
+    <para></para>
+
+    <itemizedlist>
+      <listitem>
+        <para>Search Configuration</para>
+      </listitem>
+
+      <listitem>
+        <para>JDBC Data Container config</para>
+      </listitem>
+
+      <listitem>
+        <para>External Value Storages</para>
+      </listitem>
+    </itemizedlist>
+  </section>
+
+  <section>
+    <title>Portal and Standalone configuration</title>
+
+    <para>Like other eXo services eXo JCR can be configured and used in portal
+    or embedded mode (as a service embedded in eXo Portal) and in standalone
+    mode.</para>
+
+    <para>In Embedded mode, JCR services are registered in the Portal
+    container and the second option is to use a Standalone container. The main
+    difference between these container types is that the first one is intended
+    to be used in a Portal (Web) environment, while the second one can be used
+    standalone (TODO see the comprehensive page Service Configuration for
+    Beginners for more details).</para>
+
+    <para>The following setup procedure is used to obtain a Standalone
+    configuration (TODO find more in Container configuration):</para>
+
+    <itemizedlist>
+      <listitem>
+        <para>Configuration that is set explicitly using
+        StandaloneContainer.addConfigurationURL(String url) or
+        StandaloneContainer.addConfigurationPath(String path) before
+        getInstance()</para>
+      </listitem>
+
+      <listitem>
+        <para>Configuration from $base:directory/exo-configuration.xml or
+        $base:directory/conf/exo-configuration.xml file. Where $base:directory
+        is either AS's home directory in case of J2EE AS environment or just
+        the current directory in case of a standalone application.</para>
+      </listitem>
+
+      <listitem>
+        <para>/conf/exo-configuration.xml in the current classloader (e.g.
+        war, ear archive)</para>
+      </listitem>
+
+      <listitem>
+        <para>Configuration from
+        $service_jar_file/conf/portal/configuration.xml. WARNING: do not rely
+        on some concrete jar's configuration if you have more than one jar
+        containing conf/portal/configuration.xml file. In this case choosing a
+        configuration is unpredictable.</para>
+      </listitem>
+    </itemizedlist>
+
+    <para>JCR service configuration looks like:</para>
+
+    <programlisting>&lt;component&gt;
+    &lt;key&gt;org.exoplatform.services.jcr.RepositoryService&lt;/key&gt;
+    &lt;type&gt;org.exoplatform.services.jcr.impl.RepositoryServiceImpl&lt;/type&gt;
+  &lt;/component&gt;
+  &lt;component&gt;
+    &lt;key&gt;org.exoplatform.services.jcr.config.RepositoryServiceConfiguration&lt;/key&gt;
+    &lt;type&gt;org.exoplatform.services.jcr.impl.config.RepositoryServiceConfigurationImpl&lt;/type&gt;
+    &lt;init-params&gt;
+      &lt;value-param&gt;
+        &lt;name&gt;conf-path&lt;/name&gt;
+        &lt;description&gt;JCR repositories configuration file&lt;/description&gt;
+        &lt;value&gt;jar:/conf/standalone/exo-jcr-config.xml&lt;/value&gt;
+      &lt;/value-param&gt;
+      &lt;properties-param&gt;
+        &lt;name&gt;working-conf&lt;/name&gt;
+        &lt;description&gt;working-conf&lt;/description&gt;
+        &lt;property name="source-name" value="jdbcjcr" /&gt;
+        &lt;property name="dialect" value="hsqldb" /&gt;
+        &lt;property name="persister-class-name" value="org.exoplatform.services.jcr.impl.config.JDBCConfigurationPersister" /&gt;
+      &lt;/properties-param&gt;
+    &lt;/init-params&gt;
+  &lt;/component&gt;</programlisting>
+
+    <para>conf-path : a path to a RepositoryService JCR Configuration</para>
+
+    <para>working-conf : optional; JCR configuration persister configuration.
+    If there isn't a working-conf the persister will be disabled</para>
+
+    <section>
+      <title>JCR Configuration</title>
+
+      <para>The Configuration is defined in an XML file (see DTD
+      below).</para>
+
+      <para>JCR Service can use multiple Repositories and each repository can
+      have multiple Workspaces.</para>
+
+      <para>Repositories configuration parameters support human-readable
+      formats of values. They are all case-insensitive:</para>
+
+      <itemizedlist>
+        <listitem>
+          <para>Numbers formats: K,KB - kilobytes, M,MB - megabytes, G,GB -
+          gigabytes, T,TB - terabytes.</para>
+
+          <para>Examples: 100.5 - digit 100.5, 200k - 200 Kbytes, 4m - 4
+          Mbytes, 1.4G - 1.4 Gbytes, 10T - 10 Tbytes</para>
+        </listitem>
+
+        <listitem>
+          <para>Time format endings: ms - milliseconds, s - seconds, m -
+          minutes, h - hours, d - days, w - weeks, if no ending -
+          seconds.</para>
+
+          <para>Examples: 500ms - 500 milliseconds, 20 or 20s - 20 seconds,
+          30m - 30 minutes, 12h - 12 hours, 5d - 5 days, 4w - 4 weeks.</para>
+        </listitem>
+      </itemizedlist>
+
+      <para></para>
+    </section>
+
+    <section id="sect_repository_service_configuration">
+      <title>Repository service configuration</title>
+
+      <para>Default configuration of the Repository Service located in
+      jar:/conf/portal/exo-jcr-config.xml, it will be available for portal and
+      standalone modes.</para>
+
+      <para>In portal mode it is overriden and located in the portal web
+      application portal/WEB-INF/conf/jcr/repository-configuration.xml.</para>
+
+      <para>Example of Repository Service configuration for standalone
+      mode:</para>
+
+      <programlisting>&lt;repository-service default-repository="repository"&gt;
+   &lt;repositories&gt;
+      &lt;repository name="db1" system-workspace="ws" default-workspace="ws"&gt;
+         &lt;security-domain&gt;exo-domain&lt;/security-domain&gt;
+         &lt;access-control&gt;optional&lt;/access-control&gt;
+         &lt;session-max-age&gt;1h&lt;/session-max-age&gt;
+         &lt;authentication-policy&gt;org.exoplatform.services.jcr.impl.core.access.JAASAuthenticator&lt;/authentication-policy&gt;
+         &lt;workspaces&gt;
+            &lt;workspace name="production"&gt;
+               &lt;!-- for system storage --&gt;
+               &lt;container class="org.exoplatform.services.jcr.impl.storage.jdbc.optimisation.CQJDBCWorkspaceDataContainer"&gt;
+                  &lt;properties&gt;
+                     &lt;property name="source-name" value="jdbcjcr" /&gt;
+                     &lt;property name="multi-db" value="false" /&gt;
+                     &lt;property name="update-storage" value="false" /&gt;
+                     &lt;property name="max-buffer-size" value="200k" /&gt;
+                     &lt;property name="swap-directory" value="../temp/swap/production" /&gt;
+                  &lt;/properties&gt;
+                  &lt;value-storages&gt;
+                     &lt;value-storage id="system" class="org.exoplatform.services.jcr.impl.storage.value.fs.TreeFileValueStorage"&gt;
+                        &lt;properties&gt;
+                           &lt;property name="path" value="../temp/values/production" /&gt;
+                        &lt;/properties&gt;
+                        &lt;filters&gt;
+                           &lt;filter property-type="Binary" /&gt;
+                        &lt;/filters&gt;
+                     &lt;/value-storage&gt;
+                  &lt;/value-storages&gt;
+               &lt;/container&gt;
+               &lt;initializer class="org.exoplatform.services.jcr.impl.core.ScratchWorkspaceInitializer"&gt;
+                  &lt;properties&gt;
+                     &lt;property name="root-nodetype" value="nt:unstructured" /&gt;
+                  &lt;/properties&gt;
+               &lt;/initializer&gt;
+               &lt;cache enabled="true" class="org.exoplatform.services.jcr.impl.dataflow.persistent.LinkedWorkspaceStorageCacheImpl"&gt;
+                  &lt;properties&gt;
+                     &lt;property name="max-size" value="10k" /&gt;
+                     &lt;property name="live-time" value="1h" /&gt;
+                  &lt;/properties&gt;
+               &lt;/cache&gt;
+               &lt;query-handler class="org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex"&gt;
+                  &lt;properties&gt;
+                     &lt;property name="index-dir" value="../temp/jcrlucenedb/production" /&gt;
+                  &lt;/properties&gt;
+               &lt;/query-handler&gt;
+               &lt;lock-manager&gt;
+                  &lt;time-out&gt;15m&lt;/time-out&gt;
+                  &lt;persister class="org.exoplatform.services.jcr.impl.core.lock.FileSystemLockPersister"&gt;
+                     &lt;properties&gt;
+                        &lt;property name="path" value="../temp/lock/system" /&gt;
+                     &lt;/properties&gt;
+                  &lt;/persister&gt;
+               &lt;/lock-manager&gt;
+            &lt;/workspace&gt;
+
+            &lt;workspace name="backup"&gt;
+               &lt;container class="org.exoplatform.services.jcr.impl.storage.jdbc.optimisation.CQJDBCWorkspaceDataContainer"&gt;
+                  &lt;properties&gt;
+                     &lt;property name="source-name" value="jdbcjcr" /&gt;
+                     &lt;property name="multi-db" value="false" /&gt;
+                     &lt;property name="update-storage" value="false" /&gt;
+                     &lt;property name="max-buffer-size" value="200k" /&gt;
+                     &lt;property name="swap-directory" value="../temp/swap/backup" /&gt;
+                  &lt;/properties&gt;
+                  &lt;value-storages&gt;
+                     &lt;value-storage id="draft" class="org.exoplatform.services.jcr.impl.storage.value.fs.TreeFileValueStorage"&gt;
+                        &lt;properties&gt;
+                           &lt;property name="path" value="../temp/values/backup" /&gt;
+                        &lt;/properties&gt;
+                        &lt;filters&gt;
+                           &lt;filter property-type="Binary" /&gt;
+                        &lt;/filters&gt;
+                     &lt;/value-storage&gt;
+                  &lt;/value-storages&gt;
+               &lt;/container&gt;
+               &lt;initializer class="org.exoplatform.services.jcr.impl.core.ScratchWorkspaceInitializer"&gt;
+                  &lt;properties&gt;
+                     &lt;property name="root-nodetype" value="nt:unstructured" /&gt;
+                  &lt;/properties&gt;
+               &lt;/initializer&gt;
+               &lt;cache enabled="true" class="org.exoplatform.services.jcr.impl.dataflow.persistent.LinkedWorkspaceStorageCacheImpl"&gt;
+                  &lt;properties&gt;
+                     &lt;property name="max-size" value="10k" /&gt;
+                     &lt;property name="live-time" value="1h" /&gt;
+                  &lt;/properties&gt;
+               &lt;/cache&gt;
+               &lt;query-handler class="org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex"&gt;
+                  &lt;properties&gt;
+                     &lt;property name="index-dir" value="../temp/jcrlucenedb/backup" /&gt;
+                  &lt;/properties&gt;
+               &lt;/query-handler&gt;
+            &lt;/workspace&gt;
+          &lt;/workspaces&gt;
+       &lt;/repository&gt;
+   &lt;/repositories&gt;
+&lt;/repository-service&gt;
+</programlisting>
+
+      <para>Repository Service configuration:</para>
+
+      <para>default-repository - the name of a default repository (one
+      returned by RepositoryService.getRepository())</para>
+
+      <para>repositories - the list of repositories</para>
+
+      <para>Repository configuration:</para>
+
+      <para>name - the name of a repository</para>
+
+      <para>default-workspace - the name of a workspace obtained using
+      Session's login() or login(Credentials) methods (ones without an
+      explicit workspace name)</para>
+
+      <para>system-workspace - name of workspace where /jcr:system node is
+      placed</para>
+
+      <para>security-domain - the name of a security domain for JAAS
+      authentication</para>
+
+      <para>access-control - the name of an access control policy. There can
+      be 3 types: optional - ACL is created on-demand(default), disable - no
+      access control, mandatory - an ACL is created for each added node(not
+      supported yet)</para>
+
+      <para>authentication-policy - the name of an authentication policy
+      class</para>
+
+      <para>workspaces - the list of workspaces</para>
+
+      <para>session-max-age - the time after which an idle session will be
+      removed (called logout). If not set, the idle session will never be
+      removed.</para>
+
+      <para>Workspace configuration:</para>
+
+      <para>name - the name of a workspace</para>
+
+      <para>auto-init-root-nodetype - DEPRECATED in JCR 1.9 (use initializer).
+      The node type for root node initialization</para>
+
+      <para>container - workspace data container (physical storage)
+      configuration</para>
+
+      <para>initializer - workspace initializer configuration</para>
+
+      <para>cache - workspace storage cache configuration</para>
+
+      <para>query-handler - query handler configuration</para>
+
+      <para>Workspace data container configuration:</para>
+
+      <para>class - A workspace data container class name</para>
+
+      <para>properties - the list of properties (name-value pairs) for the
+      concrete Workspace data container</para>
+
+      <para>value-storages - the list of value storage plugins</para>
+
+      <para>Value Storage plugin configuration (optional feature):</para>
+
+      <note>
+        <para>The value-storage element is optional. If you don't include it,
+        the values will be stored as BLOBs inside the database.</para>
+      </note>
+
+      <para>value-storage - Optional value Storage plugin definition</para>
+
+      <para>class- a value storage plugin class name (attribute)</para>
+
+      <para>properties - the list of properties (name-value pairs) for a
+      concrete Value Storage plugin</para>
+
+      <para>filters - the list of filters defining conditions when this plugin
+      is applicable</para>
+
+      <para>Initializer configuration (optional):</para>
+
+      <para>class - initializer implementation class.</para>
+
+      <para>properties - the list of properties (name-value pairs). Properties
+      are supported:</para>
+
+      <para>root-nodetype - The node type for root node initialization</para>
+
+      <para>root-permissions - Default permissions of the root node. It is
+      defined as a set of semicolon-delimited permissions containing a group
+      of space-delimited identities (user, group etc, see Organization service
+      documentation for details) and the type of permission. For example any
+      read;:/admin read;:/admin add_node;:/admin set_property;:/admin remove
+      means that users from group admin have all permissions and other users
+      have only a 'read' permission.</para>
+
+      <para>Configurable initializer adds a capability to override workspace
+      initial startup procedure.</para>
+
+      <para>Cache configuration:</para>
+
+      <para>enabled - if workspace cache is enabled</para>
+
+      <para>class - cache implementation class, optional from 1.9. Default
+      value is
+      org.exoplatform.services.jcr.impl.dataflow.persistent.LinkedWorkspaceStorageCacheImpl.</para>
+
+      <para>Cache can be configured to use concrete implementation of
+      WorkspaceStorageCache interface. JCR core has two implementation to use:
+      * LinkedWorkspaceStorageCacheImpl - default, with configurable read
+      behavior and statistic. * WorkspaceStorageCacheImpl - pre 1.9, still can
+      be used.</para>
+
+      <para>properties - the list of properties (name-value pairs) for
+      Workspace cache:</para>
+
+      <para>max-size - cache maximum size.</para>
+
+      <para>live-time - cached item live time.</para>
+
+      <para>LinkedWorkspaceStorageCacheImpl supports additional optional
+      parameters TODO</para>
+
+      <para>Query Handler configuration:</para>
+
+      <para>class - A Query Handler class name</para>
+
+      <para>properties - the list of properties (name-value pairs) for a Query
+      Handler (indexDir) properties and advanced features described in *Search
+      Configuration*</para>
+
+      <para>Lock Manager configuration:</para>
+
+      <para>time-out - time after which the unused global lock will be
+      removed.</para>
+
+      <para>persister - a class for storing lock information for future use.
+      For example, remove lock after jcr restart.</para>
+
+      <para>path - a lock folder, each workspace has its own.</para>
+
+      <para></para>
+
+      <para>Configuration definition:</para>
+
+      <programlisting>&lt;!ELEMENT repository-service (repositories)&gt;
+  &lt;!ATTLIST repository-service default-repository NMTOKEN #REQUIRED&gt;
+  &lt;!ELEMENT repositories (repository)&gt;
+  &lt;!ELEMENT repository (security-domain,access-control,session-max-age,authentication-policy,workspaces)&gt;
+  &lt;!ATTLIST repository
+	default-workspace NMTOKEN #REQUIRED
+	name NMTOKEN #REQUIRED
+	system-workspace NMTOKEN #REQUIRED
+  &gt;
+  &lt;!ELEMENT security-domain (#PCDATA)&gt;
+  &lt;!ELEMENT access-control (#PCDATA)&gt;
+  &lt;!ELEMENT session-max-age (#PCDATA)&gt;
+  &lt;!ELEMENT authentication-policy (#PCDATA)&gt;
+  &lt;!ELEMENT workspaces (workspace+)&gt;
+  &lt;!ELEMENT workspace (container,initializer,cache,query-handler)&gt;
+  &lt;!ATTLIST workspace name NMTOKEN #REQUIRED&gt;
+  &lt;!ELEMENT container (properties,value-storages)&gt;
+  &lt;!ATTLIST container class NMTOKEN #REQUIRED&gt;
+  &lt;!ELEMENT value-storages (value-storage+)&gt;
+  &lt;!ELEMENT value-storage (properties,filters)&gt;
+  &lt;!ATTLIST value-storage class NMTOKEN #REQUIRED&gt;
+  &lt;!ELEMENT filters (filter+)&gt;
+  &lt;!ELEMENT filter EMPTY&gt;
+  &lt;!ATTLIST filter property-type NMTOKEN #REQUIRED&gt;
+  &lt;!ELEMENT initializer (properties)&gt;
+  &lt;!ATTLIST initializer class NMTOKEN #REQUIRED&gt;
+  &lt;!ELEMENT cache (properties)&gt;
+  &lt;!ATTLIST cache 
+        enabled NMTOKEN #REQUIRED
+        class NMTOKEN #REQUIRED
+  &gt;
+  &lt;!ELEMENT query-handler (properties)&gt;
+  &lt;!ATTLIST query-handler class NMTOKEN #REQUIRED&gt;
+  &lt;!ELEMENT access-manager (properties)&gt;
+  &lt;!ATTLIST access-manager class NMTOKEN #REQUIRED&gt;
+  &lt;!ELEMENT lock-manager (time-out,persister)&gt;
+  &lt;!ELEMENT time-out (#PCDATA)&gt;
+  &lt;!ELEMENT persister (properties)&gt;
+  &lt;!ELEMENT properties (property+)&gt;
+  &lt;!ELEMENT property EMPTY&gt;</programlisting>
+    </section>
+  </section>
+</chapter>

Modified: jcr/trunk/docs/reference/en/src/main/docbook/en-US/modules/external-value-storages.xml
===================================================================
--- jcr/trunk/docs/reference/en/src/main/docbook/en-US/modules/external-value-storages.xml	2010-02-18 11:45:30 UTC (rev 1889)
+++ jcr/trunk/docs/reference/en/src/main/docbook/en-US/modules/external-value-storages.xml	2010-02-18 12:06:33 UTC (rev 1890)
@@ -1,248 +1,247 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
-"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-<article>
-  <articleinfo>
-    <title>External Value Storages</title>
-  </articleinfo>
-
-  <section>
-    <title>Introduction</title>
-
-    <para>By default JCR Values are stored in the Workspace Data container
-    along with the JCR structure (i.e. Nodes and Properties). eXo JCR offers
-    an additional option of storing JCR Values separately from Workspace Data
-    container, which can be extremely helpful to keep Binary Large Objects
-    (BLOBs) for example (see [TODOBinary values processing link]).</para>
-
-    <para>Value storage configuration is a part of Repository configuration,
-    find more details <link
-    linkend="sect_repository_service_configuration">there</link>.</para>
-
-    <para>Tree-based storage is recommended for most of cases. If you run an
-    application on Amazon EC2 - the S3 option may be interesting for
-    architecture. Simple 'flat' storage is good in speed of creation/deletion
-    of values, it might be a compromise for a small storages.</para>
-  </section>
-
-  <section>
-    <title>Tree File Value Storage</title>
-
-    <para>Holds Values in tree-like FileSystem files.
-    <property>path</property> property points to the root directory to store
-    the files.</para>
-
-    <para>This is a recommended type of external storage, it can contain large
-    amount of files limited only by disk/volume free space.</para>
-
-    <para>A disadvantage it's a higher time on Value deletion due to unused
-    tree-nodes remove.</para>
-
-    <programlisting>&lt;value-storage id="Storage #1" class="org.exoplatform.services.jcr.impl.storage.value.fs.TreeFileValueStorage"&gt;
-     &lt;properties&gt;
-       &lt;property name="path" value="data/values"/&gt;
-     &lt;/properties&gt;
-     &lt;filters&gt;
-       &lt;filter property-type="Binary" min-value-size="1M"/&gt;
-     &lt;/filters&gt;</programlisting>
-
-    <para>Where :<simplelist>
-        <member><parameter>id</parameter> - the value storage unique
-        identifier, used for linking with properties stored in workspace
-        container</member>
-
-        <member><parameter>path</parameter> - a location where value files
-        will be stored</member>
-      </simplelist></para>
-
-    <para>Each file value storage can have the <function>filter(s)</function>
-    for incoming values. A filter can match values by property type
-    (<property>property-type</property>), property name
-    (<property>property-name</property>), ancestor path
-    (<property>ancestor-path</property>) and/or size of values stored
-    (<property>min-value-size</property>, in bytes). In code sample we use a
-    filter with property-type and min-value-size only. I.e. storage for binary
-    values with size greater of 1MB. It's recommended to store properties with
-    large values in file value storage only.</para>
-
-    <para>Another example shows a value storage with different locations for
-    large files (<property>min-value-size</property> a 20Mb-sized filter). A
-    value storage uses ORed logic in the process of filter selection. That
-    means the first filter in the list will be asked first and if not matched
-    the next will be called etc. Here a value matches the 20 MB-sized filter
-    <property>min-value-size</property> and will be stored in the path
-    "data/20Mvalues", all other in "data/values".</para>
-
-    <programlisting>&lt;value-storages&gt;
-  &lt;value-storage id="Storage #1" class="org.exoplatform.services.jcr.impl.storage.value.fs.TreeFileValueStorage"&gt;
-    &lt;properties&gt;
-      &lt;property name="path" value="data/20Mvalues"/&gt;
-    &lt;/properties&gt;
-    &lt;filters&gt;
-      &lt;filter property-type="Binary" min-value-size="20M"/&gt;
-    &lt;/filters&gt;
-  &lt;value-storage&gt;
-  &lt;value-storage id="Storage #2" class="org.exoplatform.services.jcr.impl.storage.value.fs.TreeFileValueStorage"&gt;
-    &lt;properties&gt;
-      &lt;property name="path" value="data/values"/&gt;
-    &lt;/properties&gt;
-    &lt;filters&gt;
-      &lt;filter property-type="Binary" min-value-size="1M"/&gt;
-    &lt;/filters&gt;
-  &lt;value-storage&gt;
-&lt;value-storages&gt;</programlisting>
-  </section>
-
-  <section>
-    <title>S3 File Value Storage</title>
-
-    <para>Holds Values at Amazon S3 storage. For more about S3 see <ulink
-    url="http://www.amazon.com/S3-AWS-home-page-Money/b/ref=sc_fe_l_2/103-7720231-3235021?ie=UTF8&amp;node=16427261&amp;no=3435361&amp;me=A36L942TSJ2AJA">http://www.amazon.com/S3-AWS-home-page-Money/b/ref=sc_fe_l_2/103-7720231-3235021?ie=UTF8&amp;node=16427261&amp;no=3435361&amp;me=A36L942TSJ2AJA</ulink>.</para>
-
-    <para>This type of storage saves all matching Values on Amazon S3 service.
-    That is very useful for <phrase>cloud computing</phrase> (like Amazon EC2
-    hosted repositories). But can be used in any environment and storages
-    combinations. It's often used in combined with Workspace Simple DB storage
-    [TODO Workspace Simple DB storage].</para>
-
-    <para>It's networked storage with RESTbased access (via HTTP) that makes a
-    footprint on performance of the Repository.</para>
-
-    <programlisting>&lt;value-storage id="Storage #1" class="org.exoplatform.services.jcr.impl.storage.value.s3.SimpleS3ValueStorage"&gt;
-    &lt;properties&gt;
-      &lt;property name="bucket" value="BUCKET NAME HERE"/&gt;
-      &lt;property name="aws-access-key" value="INSERT YOUR AWS ACCESS KEY ID HERE"/&gt;
-      &lt;property name="aws-secret-access-key" value="INSERT YOUR AWS SECRET ACCESS KEY HERE"/&gt;
-      &lt;property name="s3-swap-directory" value="s3swap_directory_name"/&gt;
-    &lt;/properties&gt;
-    &lt;filters&gt;
-      &lt;filter property-type="Binary"/&gt;
-    &lt;/filters&gt;
-&lt;/value-storage&gt;</programlisting>
-  </section>
-
-  <section>
-    <title>Simple File Value Storage</title>
-
-    <note>
-      <para>Not recommended to use in production due to low capacity
-      capabilities on most file systems.</para>
-
-      <para>But if you're sure in your file-system or data amount is small it
-      may be useful for you as haves a faster speed of Value removal.</para>
-    </note>
-
-    <para>Holds Values in flat FileSystem files. <property>path</property>
-    property points to root directory in order to store files</para>
-
-    <programlisting>&lt;value-storage id="Storage #1" class="org.exoplatform.services.jcr.impl.storage.value.fs.SimpleFileValueStorage"&gt;
-     &lt;properties&gt;
-       &lt;property name="path" value="data/values"/&gt;
-     &lt;/properties&gt;
-     &lt;filters&gt;
-       &lt;filter property-type="Binary" min-value-size="1M"/&gt;
-     &lt;/filters&gt;</programlisting>
-  </section>
-
-  <section>
-    <title>Content Addressable Value storage (CAS) support</title>
-
-    <remark>Available from version 1.9.3</remark>
-
-    <para>eXo JCR supports <phrase>Content-addressable storage</phrase>
-    feature for <phrase>Values</phrase> storing.</para>
-
-    <note>
-      <para>Content-addressable storage, also referred to as associative
-      storage and abbreviated CAS, is a mechanism for storing information that
-      can be retrieved based on its content, not its storage location. It is
-      typically used for high-speed storage and retrieval of fixed content,
-      such as documents stored for compliance with government
-      regulations.</para>
-    </note>
-
-    <para>Content Addressable Value storage stores unique content once.
-    Different properties (values) with same content will be stored as one data
-    file shared between those values. We can tell the Value content will be
-    shared across some Values in storage and will be stored on one physical
-    file.</para>
-
-    <para>Storage size will be decreased for application which governs
-    potentially same data in the content.</para>
-
-    <note>
-      <para>For example: if you have 100 different properties containing the
-      same data (e.g. mail attachment) the storage stores only one single
-      file. The file will be shared with all referencing properties.</para>
-    </note>
-
-    <para>If property Value changes it is stored in an additional file.
-    Alternatively the file is shared with other values, pointing to the same
-    content.</para>
-
-    <para>The storage calculates Value content address each time the property
-    was changed. CAS write operations are much more expensive compared to the
-    non-CAS storages.</para>
-
-    <para>Content address calculation based on java.security.MessageDigest
-    hash computation and tested with <abbrev>MD5</abbrev> and
-    <abbrev>SHA1</abbrev> algorithms.</para>
-
-    <note>
-      <para>CAS storage works most efficiently on data that does not change
-      often. For data that changes frequently, CAS is not as efficient as
-      location-based addressing.</para>
-    </note>
-
-    <para>CAS support can be enabled for <phrase>Tree</phrase> and
-    <phrase>Simple File Value Storage</phrase> types.</para>
-
-    <para>To enable CAS support just configure it in JCR Repositories
-    configuration like we do for other Value Storages.</para>
-
-    <programlisting>&lt;workspaces&gt;
-        &lt;workspace name="ws"&gt;
-          &lt;container class="org.exoplatform.services.jcr.impl.storage.jdbc.JDBCWorkspaceDataContainer"&gt;
-            &lt;properties&gt;
-              &lt;property name="source-name" value="jdbcjcr"/&gt;
-              &lt;property name="dialect" value="oracle"/&gt;
-              &lt;property name="multi-db" value="false"/&gt;
-              &lt;property name="update-storage" value="false"/&gt;
-              &lt;property name="max-buffer-size" value="200k"/&gt;
-              &lt;property name="swap-directory" value="target/temp/swap/ws"/&gt;
-            &lt;/properties&gt;
-            &lt;value-storages&gt;
-&lt;!------------------- here -----------------------&gt;
-              &lt;value-storage id="ws" class="org.exoplatform.services.jcr.impl.storage.value.fs.CASableTreeFileValueStorage"&gt;
-                &lt;properties&gt;
-                  &lt;property name="path" value="target/temp/values/ws"/&gt;
-                  &lt;property name="digest-algo" value="MD5"/&gt;
-                  &lt;property name="vcas-type" value="org.exoplatform.services.jcr.impl.storage.value.cas.JDBCValueContentAddressStorageImpl"/&gt;
-                  &lt;property name="jdbc-source-name" value="jdbcjcr"/&gt;
-                  &lt;property name="jdbc-dialect" value="oracle"/&gt;
-                &lt;/properties&gt;
-                &lt;filters&gt;
-                  &lt;filter property-type="Binary"/&gt;
-                &lt;/filters&gt;
-              &lt;/value-storage&gt;
-            &lt;/value-storages&gt;</programlisting>
-
-    <para>Properties:<simplelist>
-        <member><parameter>digest-algo</parameter> - digest hash algorithm
-        (MD5 and SHA1 were tested);</member>
-
-        <member><parameter>vcas-type</parameter> - Value CAS internal data
-        type, JDBC backed is currently implemented
-        org.exoplatform.services.jcr.impl.storage.value.cas.JDBCValueContentAddressStorageImp;l</member>
-
-        <member><parameter>jdbc-source-name</parameter> -
-        JDBCValueContentAddressStorageImpl specific parameter, database will
-        be used to save CAS metadata. It's simple to use same as in workspace
-        container;</member>
-
-        <member><parameter>jdbc-dialect</parameter> -
-        JDBCValueContentAddressStorageImpl specific parameter, database
-        dialect. It's simple to use same as in workspace container;</member>
-      </simplelist></para>
-  </section>
-</article>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
+"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
+<chapter>
+  <?dbhtml filename="external-value-storages.html"?>
+  <title>External Value Storages</title>
+
+  <section>
+    <title>Introduction</title>
+
+    <para>By default JCR Values are stored in the Workspace Data container
+    along with the JCR structure (i.e. Nodes and Properties). eXo JCR offers
+    an additional option of storing JCR Values separately from Workspace Data
+    container, which can be extremely helpful to keep Binary Large Objects
+    (BLOBs) for example (see [TODOBinary values processing link]).</para>
+
+    <para>Value storage configuration is a part of Repository configuration,
+    find more details <link
+    linkend="sect_repository_service_configuration">there</link>.</para>
+
+    <para>Tree-based storage is recommended for most of cases. If you run an
+    application on Amazon EC2 - the S3 option may be interesting for
+    architecture. Simple 'flat' storage is good in speed of creation/deletion
+    of values, it might be a compromise for a small storages.</para>
+  </section>
+
+  <section>
+    <title>Tree File Value Storage</title>
+
+    <para>Holds Values in tree-like FileSystem files.
+    <property>path</property> property points to the root directory to store
+    the files.</para>
+
+    <para>This is a recommended type of external storage, it can contain large
+    amount of files limited only by disk/volume free space.</para>
+
+    <para>A disadvantage it's a higher time on Value deletion due to unused
+    tree-nodes remove.</para>
+
+    <programlisting>&lt;value-storage id="Storage #1" class="org.exoplatform.services.jcr.impl.storage.value.fs.TreeFileValueStorage"&gt;
+     &lt;properties&gt;
+       &lt;property name="path" value="data/values"/&gt;
+     &lt;/properties&gt;
+     &lt;filters&gt;
+       &lt;filter property-type="Binary" min-value-size="1M"/&gt;
+     &lt;/filters&gt;</programlisting>
+
+    <para>Where :<simplelist>
+        <member><parameter>id</parameter> - the value storage unique
+        identifier, used for linking with properties stored in workspace
+        container</member>
+
+        <member><parameter>path</parameter> - a location where value files
+        will be stored</member>
+      </simplelist></para>
+
+    <para>Each file value storage can have the <function>filter(s)</function>
+    for incoming values. A filter can match values by property type
+    (<property>property-type</property>), property name
+    (<property>property-name</property>), ancestor path
+    (<property>ancestor-path</property>) and/or size of values stored
+    (<property>min-value-size</property>, in bytes). In code sample we use a
+    filter with property-type and min-value-size only. I.e. storage for binary
+    values with size greater of 1MB. It's recommended to store properties with
+    large values in file value storage only.</para>
+
+    <para>Another example shows a value storage with different locations for
+    large files (<property>min-value-size</property> a 20Mb-sized filter). A
+    value storage uses ORed logic in the process of filter selection. That
+    means the first filter in the list will be asked first and if not matched
+    the next will be called etc. Here a value matches the 20 MB-sized filter
+    <property>min-value-size</property> and will be stored in the path
+    "data/20Mvalues", all other in "data/values".</para>
+
+    <programlisting>&lt;value-storages&gt;
+  &lt;value-storage id="Storage #1" class="org.exoplatform.services.jcr.impl.storage.value.fs.TreeFileValueStorage"&gt;
+    &lt;properties&gt;
+      &lt;property name="path" value="data/20Mvalues"/&gt;
+    &lt;/properties&gt;
+    &lt;filters&gt;
+      &lt;filter property-type="Binary" min-value-size="20M"/&gt;
+    &lt;/filters&gt;
+  &lt;value-storage&gt;
+  &lt;value-storage id="Storage #2" class="org.exoplatform.services.jcr.impl.storage.value.fs.TreeFileValueStorage"&gt;
+    &lt;properties&gt;
+      &lt;property name="path" value="data/values"/&gt;
+    &lt;/properties&gt;
+    &lt;filters&gt;
+      &lt;filter property-type="Binary" min-value-size="1M"/&gt;
+    &lt;/filters&gt;
+  &lt;value-storage&gt;
+&lt;value-storages&gt;</programlisting>
+  </section>
+
+  <section>
+    <title>S3 File Value Storage</title>
+
+    <para>Holds Values at Amazon S3 storage. For more about S3 see <ulink
+    url="http://www.amazon.com/S3-AWS-home-page-Money/b/ref=sc_fe_l_2/103-7720231-3235021?ie=UTF8&amp;node=16427261&amp;no=3435361&amp;me=A36L942TSJ2AJA">http://www.amazon.com/S3-AWS-home-page-Money/b/ref=sc_fe_l_2/103-7720231-3235021?ie=UTF8&amp;node=16427261&amp;no=3435361&amp;me=A36L942TSJ2AJA</ulink>.</para>
+
+    <para>This type of storage saves all matching Values on Amazon S3 service.
+    That is very useful for <phrase>cloud computing</phrase> (like Amazon EC2
+    hosted repositories). But can be used in any environment and storages
+    combinations. It's often used in combined with Workspace Simple DB storage
+    [TODO Workspace Simple DB storage].</para>
+
+    <para>It's networked storage with RESTbased access (via HTTP) that makes a
+    footprint on performance of the Repository.</para>
+
+    <programlisting>&lt;value-storage id="Storage #1" class="org.exoplatform.services.jcr.impl.storage.value.s3.SimpleS3ValueStorage"&gt;
+    &lt;properties&gt;
+      &lt;property name="bucket" value="BUCKET NAME HERE"/&gt;
+      &lt;property name="aws-access-key" value="INSERT YOUR AWS ACCESS KEY ID HERE"/&gt;
+      &lt;property name="aws-secret-access-key" value="INSERT YOUR AWS SECRET ACCESS KEY HERE"/&gt;
+      &lt;property name="s3-swap-directory" value="s3swap_directory_name"/&gt;
+    &lt;/properties&gt;
+    &lt;filters&gt;
+      &lt;filter property-type="Binary"/&gt;
+    &lt;/filters&gt;
+&lt;/value-storage&gt;</programlisting>
+  </section>
+
+  <section>
+    <title>Simple File Value Storage</title>
+
+    <note>
+      <para>Not recommended to use in production due to low capacity
+      capabilities on most file systems.</para>
+
+      <para>But if you're sure in your file-system or data amount is small it
+      may be useful for you as haves a faster speed of Value removal.</para>
+    </note>
+
+    <para>Holds Values in flat FileSystem files. <property>path</property>
+    property points to root directory in order to store files</para>
+
+    <programlisting>&lt;value-storage id="Storage #1" class="org.exoplatform.services.jcr.impl.storage.value.fs.SimpleFileValueStorage"&gt;
+     &lt;properties&gt;
+       &lt;property name="path" value="data/values"/&gt;
+     &lt;/properties&gt;
+     &lt;filters&gt;
+       &lt;filter property-type="Binary" min-value-size="1M"/&gt;
+     &lt;/filters&gt;</programlisting>
+  </section>
+
+  <section>
+    <title>Content Addressable Value storage (CAS) support</title>
+
+    <remark>Available from version 1.9.3</remark>
+
+    <para>eXo JCR supports <phrase>Content-addressable storage</phrase>
+    feature for <phrase>Values</phrase> storing.</para>
+
+    <note>
+      <para>Content-addressable storage, also referred to as associative
+      storage and abbreviated CAS, is a mechanism for storing information that
+      can be retrieved based on its content, not its storage location. It is
+      typically used for high-speed storage and retrieval of fixed content,
+      such as documents stored for compliance with government
+      regulations.</para>
+    </note>
+
+    <para>Content Addressable Value storage stores unique content once.
+    Different properties (values) with same content will be stored as one data
+    file shared between those values. We can tell the Value content will be
+    shared across some Values in storage and will be stored on one physical
+    file.</para>
+
+    <para>Storage size will be decreased for application which governs
+    potentially same data in the content.</para>
+
+    <note>
+      <para>For example: if you have 100 different properties containing the
+      same data (e.g. mail attachment) the storage stores only one single
+      file. The file will be shared with all referencing properties.</para>
+    </note>
+
+    <para>If property Value changes it is stored in an additional file.
+    Alternatively the file is shared with other values, pointing to the same
+    content.</para>
+
+    <para>The storage calculates Value content address each time the property
+    was changed. CAS write operations are much more expensive compared to the
+    non-CAS storages.</para>
+
+    <para>Content address calculation based on java.security.MessageDigest
+    hash computation and tested with <abbrev>MD5</abbrev> and
+    <abbrev>SHA1</abbrev> algorithms.</para>
+
+    <note>
+      <para>CAS storage works most efficiently on data that does not change
+      often. For data that changes frequently, CAS is not as efficient as
+      location-based addressing.</para>
+    </note>
+
+    <para>CAS support can be enabled for <phrase>Tree</phrase> and
+    <phrase>Simple File Value Storage</phrase> types.</para>
+
+    <para>To enable CAS support just configure it in JCR Repositories
+    configuration like we do for other Value Storages.</para>
+
+    <programlisting>&lt;workspaces&gt;
+        &lt;workspace name="ws"&gt;
+          &lt;container class="org.exoplatform.services.jcr.impl.storage.jdbc.JDBCWorkspaceDataContainer"&gt;
+            &lt;properties&gt;
+              &lt;property name="source-name" value="jdbcjcr"/&gt;
+              &lt;property name="dialect" value="oracle"/&gt;
+              &lt;property name="multi-db" value="false"/&gt;
+              &lt;property name="update-storage" value="false"/&gt;
+              &lt;property name="max-buffer-size" value="200k"/&gt;
+              &lt;property name="swap-directory" value="target/temp/swap/ws"/&gt;
+            &lt;/properties&gt;
+            &lt;value-storages&gt;
+&lt;!------------------- here -----------------------&gt;
+              &lt;value-storage id="ws" class="org.exoplatform.services.jcr.impl.storage.value.fs.CASableTreeFileValueStorage"&gt;
+                &lt;properties&gt;
+                  &lt;property name="path" value="target/temp/values/ws"/&gt;
+                  &lt;property name="digest-algo" value="MD5"/&gt;
+                  &lt;property name="vcas-type" value="org.exoplatform.services.jcr.impl.storage.value.cas.JDBCValueContentAddressStorageImpl"/&gt;
+                  &lt;property name="jdbc-source-name" value="jdbcjcr"/&gt;
+                  &lt;property name="jdbc-dialect" value="oracle"/&gt;
+                &lt;/properties&gt;
+                &lt;filters&gt;
+                  &lt;filter property-type="Binary"/&gt;
+                &lt;/filters&gt;
+              &lt;/value-storage&gt;
+            &lt;/value-storages&gt;</programlisting>
+
+    <para>Properties:<simplelist>
+        <member><parameter>digest-algo</parameter> - digest hash algorithm
+        (MD5 and SHA1 were tested);</member>
+
+        <member><parameter>vcas-type</parameter> - Value CAS internal data
+        type, JDBC backed is currently implemented
+        org.exoplatform.services.jcr.impl.storage.value.cas.JDBCValueContentAddressStorageImp;l</member>
+
+        <member><parameter>jdbc-source-name</parameter> -
+        JDBCValueContentAddressStorageImpl specific parameter, database will
+        be used to save CAS metadata. It's simple to use same as in workspace
+        container;</member>
+
+        <member><parameter>jdbc-dialect</parameter> -
+        JDBCValueContentAddressStorageImpl specific parameter, database
+        dialect. It's simple to use same as in workspace container;</member>
+      </simplelist></para>
+  </section>
+</chapter>

Modified: jcr/trunk/docs/reference/en/src/main/docbook/en-US/modules/intro.xml
===================================================================
--- jcr/trunk/docs/reference/en/src/main/docbook/en-US/modules/intro.xml	2010-02-18 11:45:30 UTC (rev 1889)
+++ jcr/trunk/docs/reference/en/src/main/docbook/en-US/modules/intro.xml	2010-02-18 12:06:33 UTC (rev 1890)
@@ -1,84 +1,70 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
-"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-<article>
-  <articleinfo>
-    <title>Introduction in eXoJCR</title>
-
-    <author>
-      <firstname></firstname>
-
-      <surname></surname>
-
-      <affiliation>
-        <orgname></orgname>
-      </affiliation>
-    </author>
-
-    <pubdate></pubdate>
-  </articleinfo>
-
-  <section>
-    <title>JCR (JSR-170) API main concepts</title>
-
-    <para>Java Content Repository API as well as other Java language related
-    standards is created within the Java Community Process http://jcp.org/ as
-    a result of collaboration of an expert group and the Java community and
-    known as JSR-170 (Java Specification Request)
-    http://www.jcp.org/en/jsr/detail?id=170.</para>
-
-    <para></para>
-
-    <section>
-      <title>Data model</title>
-
-      <para>As the main purpose of content repository is to maintain the data
-      - the heart of CR is the data model:</para>
-
-      <para><itemizedlist>
-          <listitem>
-            <para>The main data storage abstraction of JCR's data model is a
-            workspace</para>
-          </listitem>
-
-          <listitem>
-            <para>Each repository should have one or more workspaces</para>
-          </listitem>
-
-          <listitem>
-            <para>The content is stored in a workspace as a hierarchy of
-            items</para>
-          </listitem>
-
-          <listitem>
-            <para>Each workspace has its own hierarchy of items</para>
-          </listitem>
-        </itemizedlist></para>
-
-      <figure>
-        <title>Item hierarchy</title>
-
-        <mediaobject>
-          <imageobject>
-            <imagedata fileref="images/item-hierarchy.gif" />
-          </imageobject>
-        </mediaobject>
-      </figure>
-
-      <para>Node is intended to support the data hierarchy. They are typed
-      using namespaced names which allows the content to be structured
-      according to standardized constraints. A node may be versioned through
-      an associated version graph (optional feature)</para>
-
-      <para>Property stored data are values of predefined types (String,
-      Binary, Long, Boolean, Double, Date, Reference, Path).</para>
-
-      <para>It is important to note that the data model for the interface (the
-      repository model) is rarely the same as the data models used by the
-      repository's underlying storage subsystems. The repository knows how to
-      make the client's changes persistent because that is part of the
-      repository configuration, rather than part of the application
-      programming task.</para>
-    </section>
-  </section>
-</article>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
+"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
+<chapter>
+  <?dbhtml filename="intro.html"?>
+  <title>Introduction in eXoJCR</title>
+  <section>
+    <title>JCR (JSR-170) API main concepts</title>
+
+    <para>Java Content Repository API as well as other Java language related
+    standards is created within the Java Community Process http://jcp.org/ as
+    a result of collaboration of an expert group and the Java community and
+    known as JSR-170 (Java Specification Request)
+    http://www.jcp.org/en/jsr/detail?id=170.</para>
+
+    <para></para>
+
+    <section>
+      <title>Data model</title>
+
+      <para>As the main purpose of content repository is to maintain the data
+      - the heart of CR is the data model:</para>
+
+      <para><itemizedlist>
+          <listitem>
+            <para>The main data storage abstraction of JCR's data model is a
+            workspace</para>
+          </listitem>
+
+          <listitem>
+            <para>Each repository should have one or more workspaces</para>
+          </listitem>
+
+          <listitem>
+            <para>The content is stored in a workspace as a hierarchy of
+            items</para>
+          </listitem>
+
+          <listitem>
+            <para>Each workspace has its own hierarchy of items</para>
+          </listitem>
+        </itemizedlist></para>
+
+      <figure>
+        <title>Item hierarchy</title>
+
+        <mediaobject>
+          <imageobject>
+            <imagedata fileref="images/item-hierarchy.gif" />
+          </imageobject>
+        </mediaobject>
+      </figure>
+
+      <para>Node is intended to support the data hierarchy. They are typed
+      using namespaced names which allows the content to be structured
+      according to standardized constraints. A node may be versioned through
+      an associated version graph (optional feature)</para>
+
+      <para>Property stored data are values of predefined types (String,
+      Binary, Long, Boolean, Double, Date, Reference, Path).</para>
+
+      <para>It is important to note that the data model for the interface (the
+      repository model) is rarely the same as the data models used by the
+      repository's underlying storage subsystems. The repository knows how to
+      make the client's changes persistent because that is part of the
+      repository configuration, rather than part of the application
+      programming task.</para>
+    </section>
+  </section>
+</chapter>

Modified: jcr/trunk/docs/reference/en/src/main/docbook/en-US/modules/jbosscache-configuration-templates.xml
===================================================================
--- jcr/trunk/docs/reference/en/src/main/docbook/en-US/modules/jbosscache-configuration-templates.xml	2010-02-18 11:45:30 UTC (rev 1889)
+++ jcr/trunk/docs/reference/en/src/main/docbook/en-US/modules/jbosscache-configuration-templates.xml	2010-02-18 12:06:33 UTC (rev 1890)
@@ -1,265 +1,265 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
-"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-<article>
-  <articleinfo>
-    <title>JBoss Cache configuration</title>
-  </articleinfo>
-
-  <section>
-    <title>JBoss cache configuration for indexer, lock manager and data
-    container</title>
-
-    <para>Each mentioned components uses instances of JBoss Cache product for
-    caching in clustered environment. So every element has it's own transport
-    and has to be configured in proper way. As usual, workspaces has similar
-    configuration but with different cluster-names and may-be some other
-    parameters. The simplest way to configure them is to define their's own
-    configuration files for each component in each workspace: </para>
-
-    <programlisting>&lt;property name="jbosscache-configuration" value="conf/standalone/test-jbosscache-lock-db1-ws1.xml" /&gt;</programlisting>
-
-    <para>But if there are few workspaces, configuring them in such a way can
-    be painful and hard-manageable. eXo JCR offers a template-based
-    configuration for JBoss Cache instances. You can have one template for
-    Lock Manager, one for Indexer and one for data container and use them in
-    all the workspaces, defining the map of substitution parameters in main
-    configuration file. Just simply define ${jbosscache-&lt;parameter
-    name&gt;} inside xml-template and list correct value in JCR configuration
-    file just below "jbosscache-configuration", as shown:</para>
-
-    <para>template: </para>
-
-    <programlisting>...
-&lt;clustering mode="replication" clusterName="${jbosscache-cluster-name}"&gt;
-  &lt;stateRetrieval timeout="20000" fetchInMemoryState="false" /&gt;
-...</programlisting>
-
-    <para>and JCR configuration file: </para>
-
-    <programlisting>...
-&lt;property name="jbosscache-configuration" value="jar:/conf/portal/jbosscache-lock.xml" /&gt;
-&lt;property name="jbosscache-cluster-name" value="JCR-cluster-locks-db1-ws" /&gt;
-...</programlisting>
-  </section>
-
-  <section>
-    <title>JGroups configuration</title>
-
-    <para>JGroups is used by JBoss Cache for network communications and
-    transport in clustered environment. If property "jgroups-configuration" is
-    defined in component configuration, it will be injected into the JBoss
-    Cache instance on startup. </para>
-
-    <programlisting>&lt;property name="jgroups-configuration" value="your/path/to/modified-udp.xml" /&gt;</programlisting>
-
-    <para>As mentioned above, each component (lock manager, data container and
-    query handler) for each workspace requires it's own clustered environment.
-    Saying with another words, they have their own clusters with unique names.
-    By default each cluster should perform multi-casts on separate port. This
-    configuration leads to great unnecessary overhead on cluster. Thats why
-    JGroups offers multiplexer feature, providing ability to use one single
-    channel for set of clusters. This feature reduces network overheads
-    increasing performance and stability of application. To enable multiplexer
-    stack, You should define appropriate configuration file (upd-mux.xml is
-    pre-shipped one with eXo JCR) and set "jgroups-multiplexer-stack" into
-    "true".</para>
-
-    <programlisting>&lt;property name="jgroups-configuration" value="jar:/conf/portal/udp-mux.xml" /&gt;
-&lt;property name="jgroups-multiplexer-stack" value="true" /&gt;</programlisting>
-  </section>
-
-  <section>
-    <title>Shipped JBoss Cache configuration templates</title>
-
-    <para>Exo JCR implementation is shipped with ready-to-use JBoss Cache
-    configuration templates for JCR's components. They are situated in
-    application package in /conf/porta/ folder.</para>
-
-    <section>
-      <title>Data container template</title>
-
-      <para>Data container template is "jbosscache-data.xml" It's</para>
-
-      <programlisting>&lt;?xml version="1.0" encoding="UTF-8"?&gt;
-&lt;jbosscache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:jboss:jbosscache-core:config:3.1"&gt;
-
-   &lt;locking useLockStriping="false" concurrencyLevel="50000" lockParentForChildInsertRemove="false"
-      lockAcquisitionTimeout="20000" /&gt;
-
-   &lt;clustering mode="replication" clusterName="${jbosscache-cluster-name}"&gt;
-      &lt;stateRetrieval timeout="20000" fetchInMemoryState="false" /&gt;
-      &lt;jgroupsConfig multiplexerStack="jcr.stack" /&gt;
-      &lt;sync /&gt;
-   &lt;/clustering&gt;
-
-   &lt;!-- Eviction configuration --&gt;
-   &lt;eviction wakeUpInterval="5000"&gt;
-      &lt;default algorithmClass="org.jboss.cache.eviction.LRUAlgorithm"
-         actionPolicyClass="org.exoplatform.services.jcr.impl.dataflow.persistent.jbosscache.ParentNodeEvictionActionPolicy"
-         eventQueueSize="1000000"&gt;
-         &lt;property name="maxNodes" value="1000000" /&gt;
-         &lt;property name="timeToLive" value="120000" /&gt;
-      &lt;/default&gt;
-   &lt;/eviction&gt;
-&lt;/jbosscache&gt;</programlisting>
-
-      <table>
-        <title>Template variables</title>
-
-        <tgroup cols="1">
-          <thead>
-            <row>
-              <entry align="center">Variable</entry>
-            </row>
-          </thead>
-
-          <tbody>
-            <row>
-              <entry>jbosscache-cluster-name</entry>
-            </row>
-          </tbody>
-        </tgroup>
-      </table>
-
-      <para> </para>
-    </section>
-
-    <section>
-      <title>Lock manager template</title>
-
-      <para>It's template name is "jbosscache-lock.xml" </para>
-
-      <programlisting>&lt;?xml version="1.0" encoding="UTF-8"?&gt;
-&lt;jbosscache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:jboss:jbosscache-core:config:3.1"&gt;
-
-   &lt;locking useLockStriping="false" concurrencyLevel="50000" lockParentForChildInsertRemove="false"
-      lockAcquisitionTimeout="20000" /&gt;
-   &lt;clustering mode="replication" clusterName="${jbosscache-cluster-name}"&gt;
-      &lt;stateRetrieval timeout="20000" fetchInMemoryState="false" /&gt;
-      &lt;jgroupsConfig multiplexerStack="jcr.stack" /&gt;
-      &lt;sync /&gt;
-   &lt;/clustering&gt;
-   &lt;loaders passivation="false" shared="true"&gt;
-      &lt;preload&gt;
-         &lt;node fqn="/" /&gt;
-      &lt;/preload&gt;
-      &lt;loader class="org.jboss.cache.loader.JDBCCacheLoader" async="false" fetchPersistentState="false"
-         ignoreModifications="false" purgeOnStartup="false"&gt;
-         &lt;properties&gt;
-            cache.jdbc.table.name=${jbosscache-cl-cache.jdbc.table.name}
-            cache.jdbc.table.create=${jbosscache-cl-cache.jdbc.table.create}
-            cache.jdbc.table.drop=${jbosscache-cl-cache.jdbc.table.drop}
-            cache.jdbc.table.primarykey=${jbosscache-cl-cache.jdbc.table.primarykey}
-            cache.jdbc.fqn.column=${jbosscache-cl-cache.jdbc.fqn.column}
-            cache.jdbc.fqn.type=${jbosscache-cl-cache.jdbc.fqn.type}
-            cache.jdbc.node.column=${jbosscache-cl-cache.jdbc.node.column}
-            cache.jdbc.node.type=${jbosscache-cl-cache.jdbc.node.type}
-            cache.jdbc.parent.column=${jbosscache-cl-cache.jdbc.parent.column}
-            cache.jdbc.datasource=${jbosscache-cl-cache.jdbc.datasource}
-         &lt;/properties&gt;
-      &lt;/loader&gt;
-   &lt;/loaders&gt;
-&lt;/jbosscache&gt;</programlisting>
-
-      <table>
-        <title>Template variables</title>
-
-        <tgroup cols="1">
-          <thead>
-            <row>
-              <entry align="center">Variable</entry>
-            </row>
-          </thead>
-
-          <tbody>
-            <row>
-              <entry>jbosscache-cluster-name</entry>
-            </row>
-
-            <row>
-              <entry>jbosscache-cl-cache.jdbc.table.name</entry>
-            </row>
-
-            <row>
-              <entry>jbosscache-cl-cache.jdbc.table.create</entry>
-            </row>
-
-            <row>
-              <entry>jbosscache-cl-cache.jdbc.table.drop</entry>
-            </row>
-
-            <row>
-              <entry>jbosscache-cl-cache.jdbc.table.primarykey</entry>
-            </row>
-
-            <row>
-              <entry>jbosscache-cl-cache.jdbc.fqn.column</entry>
-            </row>
-
-            <row>
-              <entry>jbosscache-cl-cache.jdbc.fqn.type</entry>
-            </row>
-
-            <row>
-              <entry>jbosscache-cl-cache.jdbc.node.column</entry>
-            </row>
-
-            <row>
-              <entry>jbosscache-cl-cache.jdbc.node.type</entry>
-            </row>
-
-            <row>
-              <entry>jbosscache-cl-cache.jdbc.parent.column</entry>
-            </row>
-
-            <row>
-              <entry>jbosscache-cl-cache.jdbc.datasource</entry>
-            </row>
-          </tbody>
-        </tgroup>
-      </table>
-    </section>
-
-    <section>
-      <title>Query handler (indexer) template</title>
-
-      <para>Have a look at "jbosscache-indexer.xml" </para>
-
-      <programlisting>&lt;?xml version="1.0" encoding="UTF-8"?&gt;
-&lt;jbosscache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:jboss:jbosscache-core:config:3.1"&gt;
-   &lt;locking useLockStriping="false" concurrencyLevel="50000" lockParentForChildInsertRemove="false"
-      lockAcquisitionTimeout="20000" /&gt;
-   &lt;clustering mode="replication" clusterName="${jbosscache-cluster-name}"&gt;
-      &lt;stateRetrieval timeout="20000" fetchInMemoryState="false" /&gt;
-      &lt;jgroupsConfig multiplexerStack="jcr.stack" /&gt;
-      &lt;sync /&gt;
-   &lt;/clustering&gt;
-   &lt;!-- Eviction configuration --&gt;
-   &lt;eviction wakeUpInterval="5000"&gt;
-      &lt;default algorithmClass="org.jboss.cache.eviction.FIFOAlgorithm" eventQueueSize="1000000"&gt;
-         &lt;property name="maxNodes" value="10000" /&gt;
-         &lt;property name="minTimeToLive" value="60000" /&gt;
-      &lt;/default&gt;
-   &lt;/eviction&gt;
-&lt;/jbosscache&gt;</programlisting>
-      <table>
-          <title>Template variables</title>
-
-          <tgroup cols="1">
-            <thead>
-              <row>
-                <entry align="center">Variable</entry>
-              </row>
-            </thead>
-
-            <tbody>
-              <row>
-                <entry>jbosscache-cluster-name</entry>
-              </row>
-            </tbody>
-          </tgroup>
-        </table>
-    </section>
-  </section>
-</article>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
+"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
+<chapter>
+  <?dbhtml filename="jbosscache-configuration-templates.html"?>
+
+  <title>JBoss Cache configuration</title>
+
+  <section>
+    <title>JBoss cache configuration for indexer, lock manager and data
+    container</title>
+
+    <para>Each mentioned components uses instances of JBoss Cache product for
+    caching in clustered environment. So every element has it's own transport
+    and has to be configured in proper way. As usual, workspaces has similar
+    configuration but with different cluster-names and may-be some other
+    parameters. The simplest way to configure them is to define their's own
+    configuration files for each component in each workspace: </para>
+
+    <programlisting>&lt;property name="jbosscache-configuration" value="conf/standalone/test-jbosscache-lock-db1-ws1.xml" /&gt;</programlisting>
+
+    <para>But if there are few workspaces, configuring them in such a way can
+    be painful and hard-manageable. eXo JCR offers a template-based
+    configuration for JBoss Cache instances. You can have one template for
+    Lock Manager, one for Indexer and one for data container and use them in
+    all the workspaces, defining the map of substitution parameters in main
+    configuration file. Just simply define ${jbosscache-&lt;parameter
+    name&gt;} inside xml-template and list correct value in JCR configuration
+    file just below "jbosscache-configuration", as shown:</para>
+
+    <para>template: </para>
+
+    <programlisting>...
+&lt;clustering mode="replication" clusterName="${jbosscache-cluster-name}"&gt;
+  &lt;stateRetrieval timeout="20000" fetchInMemoryState="false" /&gt;
+...</programlisting>
+
+    <para>and JCR configuration file: </para>
+
+    <programlisting>...
+&lt;property name="jbosscache-configuration" value="jar:/conf/portal/jbosscache-lock.xml" /&gt;
+&lt;property name="jbosscache-cluster-name" value="JCR-cluster-locks-db1-ws" /&gt;
+...</programlisting>
+  </section>
+
+  <section>
+    <title>JGroups configuration</title>
+
+    <para>JGroups is used by JBoss Cache for network communications and
+    transport in clustered environment. If property "jgroups-configuration" is
+    defined in component configuration, it will be injected into the JBoss
+    Cache instance on startup. </para>
+
+    <programlisting>&lt;property name="jgroups-configuration" value="your/path/to/modified-udp.xml" /&gt;</programlisting>
+
+    <para>As mentioned above, each component (lock manager, data container and
+    query handler) for each workspace requires it's own clustered environment.
+    Saying with another words, they have their own clusters with unique names.
+    By default each cluster should perform multi-casts on separate port. This
+    configuration leads to great unnecessary overhead on cluster. Thats why
+    JGroups offers multiplexer feature, providing ability to use one single
+    channel for set of clusters. This feature reduces network overheads
+    increasing performance and stability of application. To enable multiplexer
+    stack, You should define appropriate configuration file (upd-mux.xml is
+    pre-shipped one with eXo JCR) and set "jgroups-multiplexer-stack" into
+    "true".</para>
+
+    <programlisting>&lt;property name="jgroups-configuration" value="jar:/conf/portal/udp-mux.xml" /&gt;
+&lt;property name="jgroups-multiplexer-stack" value="true" /&gt;</programlisting>
+  </section>
+
+  <section>
+    <title>Shipped JBoss Cache configuration templates</title>
+
+    <para>Exo JCR implementation is shipped with ready-to-use JBoss Cache
+    configuration templates for JCR's components. They are situated in
+    application package in /conf/porta/ folder.</para>
+
+    <section>
+      <title>Data container template</title>
+
+      <para>Data container template is "jbosscache-data.xml" It's</para>
+
+      <programlisting>&lt;?xml version="1.0" encoding="UTF-8"?&gt;
+&lt;jbosscache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:jboss:jbosscache-core:config:3.1"&gt;
+
+   &lt;locking useLockStriping="false" concurrencyLevel="50000" lockParentForChildInsertRemove="false"
+      lockAcquisitionTimeout="20000" /&gt;
+
+   &lt;clustering mode="replication" clusterName="${jbosscache-cluster-name}"&gt;
+      &lt;stateRetrieval timeout="20000" fetchInMemoryState="false" /&gt;
+      &lt;jgroupsConfig multiplexerStack="jcr.stack" /&gt;
+      &lt;sync /&gt;
+   &lt;/clustering&gt;
+
+   &lt;!-- Eviction configuration --&gt;
+   &lt;eviction wakeUpInterval="5000"&gt;
+      &lt;default algorithmClass="org.jboss.cache.eviction.LRUAlgorithm"
+         actionPolicyClass="org.exoplatform.services.jcr.impl.dataflow.persistent.jbosscache.ParentNodeEvictionActionPolicy"
+         eventQueueSize="1000000"&gt;
+         &lt;property name="maxNodes" value="1000000" /&gt;
+         &lt;property name="timeToLive" value="120000" /&gt;
+      &lt;/default&gt;
+   &lt;/eviction&gt;
+&lt;/jbosscache&gt;</programlisting>
+
+      <table>
+        <title>Template variables</title>
+
+        <tgroup cols="1">
+          <thead>
+            <row>
+              <entry align="center">Variable</entry>
+            </row>
+          </thead>
+
+          <tbody>
+            <row>
+              <entry>jbosscache-cluster-name</entry>
+            </row>
+          </tbody>
+        </tgroup>
+      </table>
+
+      <para> </para>
+    </section>
+
+    <section>
+      <title>Lock manager template</title>
+
+      <para>It's template name is "jbosscache-lock.xml" </para>
+
+      <programlisting>&lt;?xml version="1.0" encoding="UTF-8"?&gt;
+&lt;jbosscache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:jboss:jbosscache-core:config:3.1"&gt;
+
+   &lt;locking useLockStriping="false" concurrencyLevel="50000" lockParentForChildInsertRemove="false"
+      lockAcquisitionTimeout="20000" /&gt;
+   &lt;clustering mode="replication" clusterName="${jbosscache-cluster-name}"&gt;
+      &lt;stateRetrieval timeout="20000" fetchInMemoryState="false" /&gt;
+      &lt;jgroupsConfig multiplexerStack="jcr.stack" /&gt;
+      &lt;sync /&gt;
+   &lt;/clustering&gt;
+   &lt;loaders passivation="false" shared="true"&gt;
+      &lt;preload&gt;
+         &lt;node fqn="/" /&gt;
+      &lt;/preload&gt;
+      &lt;loader class="org.jboss.cache.loader.JDBCCacheLoader" async="false" fetchPersistentState="false"
+         ignoreModifications="false" purgeOnStartup="false"&gt;
+         &lt;properties&gt;
+            cache.jdbc.table.name=${jbosscache-cl-cache.jdbc.table.name}
+            cache.jdbc.table.create=${jbosscache-cl-cache.jdbc.table.create}
+            cache.jdbc.table.drop=${jbosscache-cl-cache.jdbc.table.drop}
+            cache.jdbc.table.primarykey=${jbosscache-cl-cache.jdbc.table.primarykey}
+            cache.jdbc.fqn.column=${jbosscache-cl-cache.jdbc.fqn.column}
+            cache.jdbc.fqn.type=${jbosscache-cl-cache.jdbc.fqn.type}
+            cache.jdbc.node.column=${jbosscache-cl-cache.jdbc.node.column}
+            cache.jdbc.node.type=${jbosscache-cl-cache.jdbc.node.type}
+            cache.jdbc.parent.column=${jbosscache-cl-cache.jdbc.parent.column}
+            cache.jdbc.datasource=${jbosscache-cl-cache.jdbc.datasource}
+         &lt;/properties&gt;
+      &lt;/loader&gt;
+   &lt;/loaders&gt;
+&lt;/jbosscache&gt;</programlisting>
+
+      <table>
+        <title>Template variables</title>
+
+        <tgroup cols="1">
+          <thead>
+            <row>
+              <entry align="center">Variable</entry>
+            </row>
+          </thead>
+
+          <tbody>
+            <row>
+              <entry>jbosscache-cluster-name</entry>
+            </row>
+
+            <row>
+              <entry>jbosscache-cl-cache.jdbc.table.name</entry>
+            </row>
+
+            <row>
+              <entry>jbosscache-cl-cache.jdbc.table.create</entry>
+            </row>
+
+            <row>
+              <entry>jbosscache-cl-cache.jdbc.table.drop</entry>
+            </row>
+
+            <row>
+              <entry>jbosscache-cl-cache.jdbc.table.primarykey</entry>
+            </row>
+
+            <row>
+              <entry>jbosscache-cl-cache.jdbc.fqn.column</entry>
+            </row>
+
+            <row>
+              <entry>jbosscache-cl-cache.jdbc.fqn.type</entry>
+            </row>
+
+            <row>
+              <entry>jbosscache-cl-cache.jdbc.node.column</entry>
+            </row>
+
+            <row>
+              <entry>jbosscache-cl-cache.jdbc.node.type</entry>
+            </row>
+
+            <row>
+              <entry>jbosscache-cl-cache.jdbc.parent.column</entry>
+            </row>
+
+            <row>
+              <entry>jbosscache-cl-cache.jdbc.datasource</entry>
+            </row>
+          </tbody>
+        </tgroup>
+      </table>
+    </section>
+
+    <section>
+      <title>Query handler (indexer) template</title>
+
+      <para>Have a look at "jbosscache-indexer.xml" </para>
+
+      <programlisting>&lt;?xml version="1.0" encoding="UTF-8"?&gt;
+&lt;jbosscache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:jboss:jbosscache-core:config:3.1"&gt;
+   &lt;locking useLockStriping="false" concurrencyLevel="50000" lockParentForChildInsertRemove="false"
+      lockAcquisitionTimeout="20000" /&gt;
+   &lt;clustering mode="replication" clusterName="${jbosscache-cluster-name}"&gt;
+      &lt;stateRetrieval timeout="20000" fetchInMemoryState="false" /&gt;
+      &lt;jgroupsConfig multiplexerStack="jcr.stack" /&gt;
+      &lt;sync /&gt;
+   &lt;/clustering&gt;
+   &lt;!-- Eviction configuration --&gt;
+   &lt;eviction wakeUpInterval="5000"&gt;
+      &lt;default algorithmClass="org.jboss.cache.eviction.FIFOAlgorithm" eventQueueSize="1000000"&gt;
+         &lt;property name="maxNodes" value="10000" /&gt;
+         &lt;property name="minTimeToLive" value="60000" /&gt;
+      &lt;/default&gt;
+   &lt;/eviction&gt;
+&lt;/jbosscache&gt;</programlisting>
+      <table>
+          <title>Template variables</title>
+
+          <tgroup cols="1">
+            <thead>
+              <row>
+                <entry align="center">Variable</entry>
+              </row>
+            </thead>
+
+            <tbody>
+              <row>
+                <entry>jbosscache-cluster-name</entry>
+              </row>
+            </tbody>
+          </tgroup>
+        </table>
+    </section>
+  </section>
+</chapter>

Modified: jcr/trunk/docs/reference/en/src/main/docbook/en-US/modules/lock-manager-config.xml
===================================================================
--- jcr/trunk/docs/reference/en/src/main/docbook/en-US/modules/lock-manager-config.xml	2010-02-18 11:45:30 UTC (rev 1889)
+++ jcr/trunk/docs/reference/en/src/main/docbook/en-US/modules/lock-manager-config.xml	2010-02-18 12:06:33 UTC (rev 1890)
@@ -1,11 +1,11 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
 "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-<article>
-  <articleinfo>
-    <title>LockManager configuration</title>
-  </articleinfo>
+<chapter>
+  <?dbhtml filename="lock-manager-config.html"?>
 
+  <title>LockManager configuration</title>
+
   <section>
     <title>Introduction</title>
 
@@ -437,4 +437,4 @@
       </table>
     </section>
   </section>
-</article>
+</chapter>

Modified: jcr/trunk/docs/reference/en/src/main/docbook/en-US/modules/query-handler-config.xml
===================================================================
--- jcr/trunk/docs/reference/en/src/main/docbook/en-US/modules/query-handler-config.xml	2010-02-18 11:45:30 UTC (rev 1889)
+++ jcr/trunk/docs/reference/en/src/main/docbook/en-US/modules/query-handler-config.xml	2010-02-18 12:06:33 UTC (rev 1890)
@@ -1,188 +1,187 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
-"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-<article>
-  <articleinfo>
-    <title>QueryHandler configuration</title>
-  </articleinfo>
-
-  <section>
-    <title>How does it work?</title>
-
-    <para>Lets talk about indexing content in cluster.</para>
-
-    <para>For couple of reasons, we can't replicate index. That's means, some
-    data added and indexed on one cluster node, will be replicated to another
-    cluster node, but will not be indexed on that node.</para>
-
-    <para><citetitle>So, how do the indexing works in cluster
-    environment?</citetitle></para>
-
-    <para>As, we can not index same data on all nodes of cluster, we must
-    index it on one node. Node, that can index data and do changes on lucene
-    index, is called "coordinator". Coordinator-node is choosen automaticaly,
-    so we do not need special configuration for coordinator.</para>
-
-    <para>But, how can another nodes save their changes to lucene
-    index?</para>
-
-    <para>First of all, data is already saved and replicated to another
-    cluster-nodes, so we need only deliver message like "we need to index this
-    data" to coordinator. Thats why Jboss-cache is used.</para>
-
-    <para>All nodes of cluster writes messages into JBoss-cache but only
-    coordinator takes those messages and makes changes Lucene index.</para>
-
-    <para><citetitle>How do the search works in cluster
-    environment?</citetitle></para>
-
-    <para>Search engine do not works with indexer, coordinator, etc. Search
-    needs only lucene index. But only one cluster node can change lucene index
-    - asking you. Yes - lucene index is shared. So, all cluster nodes must be
-    configured to use lucene index from shared directory.</para>
-
-    <para>A little bit about indexing process (no matter, cluster or not)
-    Indexer do not writes changes to FS lucene index immediately. At first,
-    Indexer writes changes to Volatile index. If Volatile index size become
-    1Mb or more it is flushed to FS. Also there is timer, that flushes
-    volatile index by timeout. Volatile index timeout configured by
-    "max-volatile-time" paremeter.</para>
-
-    <para>Common scheme of Shared Index<mediaobject>
-        <imageobject>
-          <imagedata fileref="images/diagram-shared-index.png" />
-        </imageobject>
-      </mediaobject></para>
-  </section>
-
-  <section>
-    <title>Configuration</title>
-
-    <section>
-      <title>Common requirements</title>
-
-      <para>Now, lets see what we need to run Search engine in cluster
-      environment.<itemizedlist>
-          <listitem>
-            <para>shared directory for storing Lucene index (i.e. NFS);</para>
-          </listitem>
-
-          <listitem>
-            <para>changes filter configured as
-            org.exoplatform.services.jcr.impl.core.query.jbosscache.JBossCacheIndexChangesFilter;</para>
-
-            <note>
-              <para>This filter ignore changes on non-coordinator nodes, and
-              index changes on coordinator node.</para>
-            </note>
-          </listitem>
-
-          <listitem>
-            <para>configure JBoss-cache, course;</para>
-          </listitem>
-        </itemizedlist></para>
-    </section>
-
-    <section>
-      <title>Query-handler configuration</title>
-
-      <para>Configuration example:<programlisting>&lt;workspace name="ws"&gt;
-   &lt;query-handler class="org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex"&gt;
-      &lt;properties&gt;
-         &lt;property name="index-dir" value="shareddir/index/db1/ws" /&gt;
-         &lt;property name="changesfilter-class"
-            value="org.exoplatform.services.jcr.impl.core.query.jbosscache.JBossCacheIndexChangesFilter" /&gt;
-         &lt;property name="jbosscache-configuration" value="jbosscache-indexer.xml" /&gt;
-         &lt;property name="jgroups-configuration" value="udp-mux.xml" /&gt;
-         &lt;property name="jgroups-multiplexer-stack" value="true" /&gt;
-         &lt;property name="jbosscache-cluster-name" value="JCR-cluster-indexer-ws" /&gt;
-         &lt;property name="max-volatile-time" value="60" /&gt;
-      &lt;/properties&gt;
-   &lt;/query-handler&gt;
-&lt;/workspace&gt;</programlisting> <table>
-          <title>Config properties description</title>
-
-          <tgroup cols="2">
-            <thead>
-              <row>
-                <entry>Property name</entry>
-
-                <entry>Description</entry>
-              </row>
-            </thead>
-
-            <tbody>
-              <row>
-                <entry>index-dir</entry>
-
-                <entry>path to index</entry>
-              </row>
-
-              <row>
-                <entry>jbosscache-configuration</entry>
-
-                <entry>template of JBoss-cache configuration for all
-                query-handlers in repository</entry>
-              </row>
-
-              <row>
-                <entry>jgroups-configuration</entry>
-
-                <entry>jgroups-configuration is template configuration for all
-                components (search, cache, locks) [Add link to document
-                describing template configurations]</entry>
-              </row>
-
-              <row>
-                <entry>jgroups-multiplexer-stack</entry>
-
-                <entry>[TODO about jgroups-multiplexer-stack - add link to
-                JBoss doc]</entry>
-              </row>
-
-              <row>
-                <entry>jbosscache-cluster-name</entry>
-
-                <entry>cluster name (must be unique)</entry>
-              </row>
-
-              <row>
-                <entry>max-volatile-time</entry>
-
-                <entry>max time to live for Volatile Index</entry>
-              </row>
-            </tbody>
-          </tgroup>
-        </table></para>
-    </section>
-
-    <section>
-      <title>JBoss-Cache template configuration</title>
-
-      <para>JBoss-Cache template configuration for query handler.</para>
-
-      <para>jbosscache-indexer.xml<programlisting>&lt;?xml version="1.0" encoding="UTF-8"?&gt;
-&lt;jbosscache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:jboss:jbosscache-core:config:3.1"&gt;
-
-   &lt;locking useLockStriping="false" concurrencyLevel="50000" lockParentForChildInsertRemove="false"
-      lockAcquisitionTimeout="20000" /&gt;
-   &lt;!-- Configure the TransactionManager --&gt;
-   &lt;transaction transactionManagerLookupClass="org.jboss.cache.transaction.JBossStandaloneJTAManagerLookup" /&gt;
-
-   &lt;clustering mode="replication" clusterName="${jbosscache-cluster-name}"&gt;
-      &lt;stateRetrieval timeout="20000" fetchInMemoryState="false" /&gt;
-      &lt;jgroupsConfig multiplexerStack="jcr.stack" /&gt;
-      &lt;sync /&gt;
-   &lt;/clustering&gt;
-   &lt;!-- Eviction configuration --&gt;
-   &lt;eviction wakeUpInterval="5000"&gt;
-      &lt;default algorithmClass="org.jboss.cache.eviction.FIFOAlgorithm" eventQueueSize="1000000"&gt;
-         &lt;property name="maxNodes" value="10000" /&gt;
-         &lt;property name="minTimeToLive" value="60000" /&gt;
-      &lt;/default&gt;
-   &lt;/eviction&gt;
-
-&lt;/jbosscache&gt;</programlisting></para>
-    </section>
-  </section>
-</article>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
+"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
+<chapter>
+  <?dbhtml filename="query-handler-config.html"?>
+  <title>QueryHandler configuration</title>
+
+  <section>
+    <title>How does it work?</title>
+
+    <para>Lets talk about indexing content in cluster.</para>
+
+    <para>For couple of reasons, we can't replicate index. That's means, some
+    data added and indexed on one cluster node, will be replicated to another
+    cluster node, but will not be indexed on that node.</para>
+
+    <para><citetitle>So, how do the indexing works in cluster
+    environment?</citetitle></para>
+
+    <para>As, we can not index same data on all nodes of cluster, we must
+    index it on one node. Node, that can index data and do changes on lucene
+    index, is called "coordinator". Coordinator-node is choosen automaticaly,
+    so we do not need special configuration for coordinator.</para>
+
+    <para>But, how can another nodes save their changes to lucene
+    index?</para>
+
+    <para>First of all, data is already saved and replicated to another
+    cluster-nodes, so we need only deliver message like "we need to index this
+    data" to coordinator. Thats why Jboss-cache is used.</para>
+
+    <para>All nodes of cluster writes messages into JBoss-cache but only
+    coordinator takes those messages and makes changes Lucene index.</para>
+
+    <para><citetitle>How do the search works in cluster
+    environment?</citetitle></para>
+
+    <para>Search engine do not works with indexer, coordinator, etc. Search
+    needs only lucene index. But only one cluster node can change lucene index
+    - asking you. Yes - lucene index is shared. So, all cluster nodes must be
+    configured to use lucene index from shared directory.</para>
+
+    <para>A little bit about indexing process (no matter, cluster or not)
+    Indexer do not writes changes to FS lucene index immediately. At first,
+    Indexer writes changes to Volatile index. If Volatile index size become
+    1Mb or more it is flushed to FS. Also there is timer, that flushes
+    volatile index by timeout. Volatile index timeout configured by
+    "max-volatile-time" paremeter.</para>
+
+    <para>Common scheme of Shared Index<mediaobject>
+        <imageobject>
+          <imagedata fileref="images/diagram-shared-index.png" />
+        </imageobject>
+      </mediaobject></para>
+  </section>
+
+  <section>
+    <title>Configuration</title>
+
+    <section>
+      <title>Common requirements</title>
+
+      <para>Now, lets see what we need to run Search engine in cluster
+      environment.<itemizedlist>
+          <listitem>
+            <para>shared directory for storing Lucene index (i.e. NFS);</para>
+          </listitem>
+
+          <listitem>
+            <para>changes filter configured as
+            org.exoplatform.services.jcr.impl.core.query.jbosscache.JBossCacheIndexChangesFilter;</para>
+
+            <note>
+              <para>This filter ignore changes on non-coordinator nodes, and
+              index changes on coordinator node.</para>
+            </note>
+          </listitem>
+
+          <listitem>
+            <para>configure JBoss-cache, course;</para>
+          </listitem>
+        </itemizedlist></para>
+    </section>
+
+    <section>
+      <title>Query-handler configuration</title>
+
+      <para>Configuration example:<programlisting>&lt;workspace name="ws"&gt;
+   &lt;query-handler class="org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex"&gt;
+      &lt;properties&gt;
+         &lt;property name="index-dir" value="shareddir/index/db1/ws" /&gt;
+         &lt;property name="changesfilter-class"
+            value="org.exoplatform.services.jcr.impl.core.query.jbosscache.JBossCacheIndexChangesFilter" /&gt;
+         &lt;property name="jbosscache-configuration" value="jbosscache-indexer.xml" /&gt;
+         &lt;property name="jgroups-configuration" value="udp-mux.xml" /&gt;
+         &lt;property name="jgroups-multiplexer-stack" value="true" /&gt;
+         &lt;property name="jbosscache-cluster-name" value="JCR-cluster-indexer-ws" /&gt;
+         &lt;property name="max-volatile-time" value="60" /&gt;
+      &lt;/properties&gt;
+   &lt;/query-handler&gt;
+&lt;/workspace&gt;</programlisting> <table>
+          <title>Config properties description</title>
+
+          <tgroup cols="2">
+            <thead>
+              <row>
+                <entry>Property name</entry>
+
+                <entry>Description</entry>
+              </row>
+            </thead>
+
+            <tbody>
+              <row>
+                <entry>index-dir</entry>
+
+                <entry>path to index</entry>
+              </row>
+
+              <row>
+                <entry>jbosscache-configuration</entry>
+
+                <entry>template of JBoss-cache configuration for all
+                query-handlers in repository</entry>
+              </row>
+
+              <row>
+                <entry>jgroups-configuration</entry>
+
+                <entry>jgroups-configuration is template configuration for all
+                components (search, cache, locks) [Add link to document
+                describing template configurations]</entry>
+              </row>
+
+              <row>
+                <entry>jgroups-multiplexer-stack</entry>
+
+                <entry>[TODO about jgroups-multiplexer-stack - add link to
+                JBoss doc]</entry>
+              </row>
+
+              <row>
+                <entry>jbosscache-cluster-name</entry>
+
+                <entry>cluster name (must be unique)</entry>
+              </row>
+
+              <row>
+                <entry>max-volatile-time</entry>
+
+                <entry>max time to live for Volatile Index</entry>
+              </row>
+            </tbody>
+          </tgroup>
+        </table></para>
+    </section>
+
+    <section>
+      <title>JBoss-Cache template configuration</title>
+
+      <para>JBoss-Cache template configuration for query handler.</para>
+
+      <para>jbosscache-indexer.xml<programlisting>&lt;?xml version="1.0" encoding="UTF-8"?&gt;
+&lt;jbosscache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:jboss:jbosscache-core:config:3.1"&gt;
+
+   &lt;locking useLockStriping="false" concurrencyLevel="50000" lockParentForChildInsertRemove="false"
+      lockAcquisitionTimeout="20000" /&gt;
+   &lt;!-- Configure the TransactionManager --&gt;
+   &lt;transaction transactionManagerLookupClass="org.jboss.cache.transaction.JBossStandaloneJTAManagerLookup" /&gt;
+
+   &lt;clustering mode="replication" clusterName="${jbosscache-cluster-name}"&gt;
+      &lt;stateRetrieval timeout="20000" fetchInMemoryState="false" /&gt;
+      &lt;jgroupsConfig multiplexerStack="jcr.stack" /&gt;
+      &lt;sync /&gt;
+   &lt;/clustering&gt;
+   &lt;!-- Eviction configuration --&gt;
+   &lt;eviction wakeUpInterval="5000"&gt;
+      &lt;default algorithmClass="org.jboss.cache.eviction.FIFOAlgorithm" eventQueueSize="1000000"&gt;
+         &lt;property name="maxNodes" value="10000" /&gt;
+         &lt;property name="minTimeToLive" value="60000" /&gt;
+      &lt;/default&gt;
+   &lt;/eviction&gt;
+
+&lt;/jbosscache&gt;</programlisting></para>
+    </section>
+  </section>
+</chapter>

Added: jcr/trunk/docs/reference/en/src/main/docbook/en-US/modules/search-configuration.xml
===================================================================
--- jcr/trunk/docs/reference/en/src/main/docbook/en-US/modules/search-configuration.xml	                        (rev 0)
+++ jcr/trunk/docs/reference/en/src/main/docbook/en-US/modules/search-configuration.xml	2010-02-18 12:06:33 UTC (rev 1890)
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
+"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
+<chapter>
+  <?dbhtml filename="search-configuration.html"?>
+
+  <title>Search Configuration</title>
+
+  <section>
+    <title></title>
+
+    <para></para>
+  </section>
+</chapter>



More information about the exo-jcr-commits mailing list