[exo-jcr-commits] exo-jcr SVN: r2892 - in jcr/branches/1.12.x/docs/reference/en/src/main: docbook/en-US/modules/jcr/concepts and 2 other directories.

do-not-reply at jboss.org do-not-reply at jboss.org
Fri Aug 6 09:45:36 EDT 2010


Author: dkatayev
Date: 2010-08-06 09:45:35 -0400 (Fri, 06 Aug 2010)
New Revision: 2892

Added:
   jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/concepts/jcr-exo-implementation.xml
   jcr/branches/1.12.x/docs/reference/en/src/main/resources/images/concepts/exojcr.gif
   jcr/branches/1.12.x/docs/reference/en/src/main/resources/images/concepts/wsdatamodel.gif
Modified:
   jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr.xml
   jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/configuration/exo-jcr-configuration.xml
Log:
EXOJCR-869 eXo JCR implementation chapter added

Added: jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/concepts/jcr-exo-implementation.xml
===================================================================
--- jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/concepts/jcr-exo-implementation.xml	                        (rev 0)
+++ jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/concepts/jcr-exo-implementation.xml	2010-08-06 13:45:35 UTC (rev 2892)
@@ -0,0 +1,173 @@
+<?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="JCR.eXoImplementation">
+  <?dbhtml filename="ch-jcr-exo-implementation.html"?>
+
+  <title>eXo JCR Implementation</title>
+
+  <section>
+    <title>Related Documents</title>
+
+    <para>Access Control Configuration Export Import Implementation External
+    Value Storages JDBC Data Container config Locking Multilanguage support
+    Node types and Namespaces Repository and Workspace management Repository
+    container life cycle Workspace Persistence Storage Workspace SimpleDB
+    storage</para>
+  </section>
+
+  <section>
+    <title>How it works</title>
+
+    <para>eXo Repository Service is a standard eXo service and is a registered
+    IoC component, i.e. can be deployed in some ExoContainer (see <link
+    linkend="JCR.eXoJCRconfiguration.RepositoryConfiguration">Service
+    configuration</link> for details) Relationships between components are
+    shown in the picture below:</para>
+
+    <mediaobject>
+      <imageobject>
+        <imagedata fileref="images/concepts/exojcr.gif" />
+      </imageobject>
+    </mediaobject>
+
+    <para><emphasis role="bold">Exo Container</emphasis> some subclass of
+    org.exoplatform.container.ExoContainer (usually
+    org.exoplatform.container.StandaloneContainer or
+    org.exoplatform.container.PortalContainer) that holds a reference to
+    RepositoryService</para>
+
+    <itemizedlist>
+      <listitem>
+        <para><emphasis role="bold">Repository Service</emphasis> contains
+        information about repositories, eXo JCR is able to manage many
+        Repositories</para>
+      </listitem>
+
+      <listitem>
+        <para><emphasis role="bold">Repository</emphasis> Implementation of
+        javax.jcr.Repository. It holds references to one or more
+        Workspace(s)</para>
+      </listitem>
+
+      <listitem>
+        <para><emphasis role="bold">Workspace</emphasis> container of a single
+        rooted tree of Items (Note that here it is not exactly the same as
+        javax.jcr.Workspace as it is not a per Session object)</para>
+      </listitem>
+    </itemizedlist>
+
+    <para>Usual JCR application use case includes two initial steps:</para>
+
+    <itemizedlist>
+      <listitem>
+        <para>Obtaining Repository object by getting <emphasis
+        role="bold">RepositoryService</emphasis> from current ExoContainer
+        (eXo "native" way) or via JNDI lookup if eXo repository is bound to
+        the naming context using (see <link
+        linkend="JCR.eXoJCRconfiguration">Service configuration</link> for
+        details)</para>
+      </listitem>
+
+      <listitem>
+        <para>Creating javax.jcr.Session object that calls
+        Repository.login(..)</para>
+      </listitem>
+
+      <listitem>
+        <para>Creating javax.jcr.Session object that calls
+        Repository.login(..)</para>
+      </listitem>
+    </itemizedlist>
+  </section>
+
+  <section>
+    <title>Workspace Data Model</title>
+
+    <para>The following diagram explains which components of eXo JCR
+    implementation are used in a data flow to perform operations specified in
+    JCR API</para>
+
+    <mediaobject>
+      <imageobject>
+        <imagedata fileref="images/concepts/wsdatamodel.gif" />
+      </imageobject>
+    </mediaobject>
+
+    <para>The Workspace Data Model can be splitted into 4 levels by data
+    isolation and value from the JCR model point of view.</para>
+
+    <itemizedlist>
+      <listitem>
+        <para>eXo JCR core implements <emphasis role="bold">JCR API</emphasis>
+        intefaces such as Item, Node, Property. It contains JCR "logical" view
+        on stored data</para>
+      </listitem>
+
+      <listitem>
+        <para><emphasis role="bold">Session Level</emphasis> isolates
+        transient data viewable inside one JCR Session and interacts with API
+        level using eXo JCR internal API</para>
+      </listitem>
+
+      <listitem>
+        <para><emphasis role="bold">Session Data Manager</emphasis> maintains
+        transient session data. Along with data
+        accessing/modification/validation logic it contains Modified Items
+        Storage to hold the data changed between subsequent save() calling and
+        Session Items Cache</para>
+      </listitem>
+
+      <listitem>
+        <para><emphasis role="bold">Transaction Data Manager</emphasis>
+        maintains session data between save() and transaction commit/rollback
+        if the current session is part of a transaction</para>
+      </listitem>
+
+      <listitem>
+        <para><emphasis role="bold">Workspace Level</emphasis> operates for
+        particular workspace shared data. It contains per-Workspace
+        objects</para>
+      </listitem>
+
+      <listitem>
+        <para><emphasis role="bold">Workspace Storage Data Manager</emphasis>
+        maintains workspace data including final validation, events firing,
+        caching.</para>
+      </listitem>
+
+      <listitem>
+        <para><emphasis role="bold">Workspace Data Container</emphasis>
+        implements physical data storage. It allows different types of backend
+        (like RDB, FS files etc) to be used as a storage for JCR data. Along
+        with the main Data Container other storages for persisted Property
+        Values can be configured and used.</para>
+      </listitem>
+
+      <listitem>
+        <para><emphasis role="bold">Indexer</emphasis> maintains workspace
+        data indexing for further queries.</para>
+      </listitem>
+
+      <listitem>
+        <para><emphasis role="bold">Storage Level</emphasis> persistent
+        storages for:</para>
+
+        <itemizedlist>
+          <listitem>
+            <para>JCR Data</para>
+          </listitem>
+
+          <listitem>
+            <para>Indexes (Apache Lucene)</para>
+          </listitem>
+
+          <listitem>
+            <para>Values (for BLOBs for ex) if different from main Data
+            Container</para>
+          </listitem>
+        </itemizedlist>
+      </listitem>
+    </itemizedlist>
+  </section>
+</chapter>

Modified: jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/configuration/exo-jcr-configuration.xml
===================================================================
--- jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/configuration/exo-jcr-configuration.xml	2010-08-05 15:19:12 UTC (rev 2891)
+++ jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr/configuration/exo-jcr-configuration.xml	2010-08-06 13:45:35 UTC (rev 2892)
@@ -149,7 +149,7 @@
     </itemizedlist>
   </section>
 
-  <section>
+  <section id="JCR.eXoJCRconfiguration.RepositoryConfiguration">
     <title>Repository service configuration (JCR repositories
     configuration)</title>
 

Modified: jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr.xml
===================================================================
--- jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr.xml	2010-08-05 15:19:12 UTC (rev 2891)
+++ jcr/branches/1.12.x/docs/reference/en/src/main/docbook/en-US/modules/jcr.xml	2010-08-06 13:45:35 UTC (rev 2892)
@@ -13,9 +13,12 @@
   <xi:include href="jcr/concepts/why-jcr.xml"
               xmlns:xi="http://www.w3.org/2001/XInclude" />
               
+ <xi:include href="jcr/concepts/jcr-exo-implementation.xml"
+              xmlns:xi="http://www.w3.org/2001/XInclude" />
+              
   <xi:include href="jcr/concepts/jcr-advantages.xml"
-              xmlns:xi="http://www.w3.org/2001/XInclude" />              
-              
+              xmlns:xi="http://www.w3.org/2001/XInclude" />
+
   <xi:include href="jcr/concepts/jcr-compatibility-levels.xml"
               xmlns:xi="http://www.w3.org/2001/XInclude" />
               

Added: jcr/branches/1.12.x/docs/reference/en/src/main/resources/images/concepts/exojcr.gif
===================================================================
(Binary files differ)


Property changes on: jcr/branches/1.12.x/docs/reference/en/src/main/resources/images/concepts/exojcr.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: jcr/branches/1.12.x/docs/reference/en/src/main/resources/images/concepts/wsdatamodel.gif
===================================================================
(Binary files differ)


Property changes on: jcr/branches/1.12.x/docs/reference/en/src/main/resources/images/concepts/wsdatamodel.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream



More information about the exo-jcr-commits mailing list