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