[exo-jcr-commits] exo-jcr SVN: r1877 - in jcr/trunk/docs/reference/en/src/main/docbook/en-US: modules and 1 other directory.

do-not-reply at jboss.org do-not-reply at jboss.org
Wed Feb 17 11:28:08 EST 2010


Author: pnedonosko
Date: 2010-02-17 11:28:08 -0500 (Wed, 17 Feb 2010)
New Revision: 1877

Modified:
   jcr/trunk/docs/reference/en/src/main/docbook/en-US/master.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/intro.xml
Log:
EXOJCR-512 intro & jcr configuration in progress)

Modified: jcr/trunk/docs/reference/en/src/main/docbook/en-US/master.xml
===================================================================
--- jcr/trunk/docs/reference/en/src/main/docbook/en-US/master.xml	2010-02-17 16:18:15 UTC (rev 1876)
+++ jcr/trunk/docs/reference/en/src/main/docbook/en-US/master.xml	2010-02-17 16:28:08 UTC (rev 1877)
@@ -42,18 +42,8 @@
 
     <copyright>
       <year>2009, 2010</year>
-
       <holder>eXoPlatform</holder>
     </copyright>
-
-    <!-- PDF version -->
-
-    <!-- abstract>
-       <title/>
-         <para>
-       	    <ulink url="../pdf/richfaces_reference.pdf">PDF version</ulink>
-         </para>
-   </abstract -->
   </bookinfo>
 
   <toc></toc>

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-17 16:18:15 UTC (rev 1876)
+++ jcr/trunk/docs/reference/en/src/main/docbook/en-US/modules/configuration.xml	2010-02-17 16:28:08 UTC (rev 1877)
@@ -1,20 +1,343 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
+<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
 "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-<chapter id="configuration" xreflabel="configuration">
-  <?dbhtml filename="configuration.html"?>
+<article>
+  <articleinfo>
+    <title>eXo JCR configuration</title>
 
-  <chapterinfo>
-    <keywordset>
-      <keyword>JCR</keyword>
+    <author>
+      <firstname></firstname>
 
-      <keyword>eXoJCR</keyword>
+      <surname></surname>
 
-      <keyword>etc</keyword>
-    </keywordset>
-  </chapterinfo>
+      <affiliation>
+        <orgname></orgname>
+      </affiliation>
+    </author>
 
-  <title>Configuration of the eXoJCR</title>
+    <pubdate></pubdate>
+  </articleinfo>
 
-  <para>JCR configuration</para>
-</chapter>
+  <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>
+      <title>Repository service configuration (JCR repositories
+      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>
+    </section>
+  </section>
+</article>

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-17 16:18:15 UTC (rev 1876)
+++ jcr/trunk/docs/reference/en/src/main/docbook/en-US/modules/intro.xml	2010-02-17 16:28:08 UTC (rev 1877)
@@ -1,18 +1,84 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
-"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
-<chapter id="Introduction" xreflabel="Introduction">
-<?dbhtml filename="Introduction.html"?>
-
-  <chapterinfo>
-    <keywordset>
-      <keyword>JCR</keyword>
-      <keyword>eXoJCR</keyword>
-      <keyword>etc</keyword>
-      <keyword>developer guide</keyword>
-    </keywordset>
-  </chapterinfo>
-
-  <title>Introduction</title>
-
-</chapter>
+<?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>



More information about the exo-jcr-commits mailing list