[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><component>
+ <key>org.exoplatform.services.jcr.RepositoryService</key>
+ <type>org.exoplatform.services.jcr.impl.RepositoryServiceImpl</type>
+ </component>
+ <component>
+ <key>org.exoplatform.services.jcr.config.RepositoryServiceConfiguration</key>
+ <type>org.exoplatform.services.jcr.impl.config.RepositoryServiceConfigurationImpl</type>
+ <init-params>
+ <value-param>
+ <name>conf-path</name>
+ <description>JCR repositories configuration file</description>
+ <value>jar:/conf/standalone/exo-jcr-config.xml</value>
+ </value-param>
+ <properties-param>
+ <name>working-conf</name>
+ <description>working-conf</description>
+ <property name="source-name" value="jdbcjcr" />
+ <property name="dialect" value="hsqldb" />
+ <property name="persister-class-name" value="org.exoplatform.services.jcr.impl.config.JDBCConfigurationPersister" />
+ </properties-param>
+ </init-params>
+ </component></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><repository-service default-repository="repository">
+ <repositories>
+ <repository name="db1" system-workspace="ws" default-workspace="ws">
+ <security-domain>exo-domain</security-domain>
+ <access-control>optional</access-control>
+ <session-max-age>1h</session-max-age>
+ <authentication-policy>org.exoplatform.services.jcr.impl.core.access.JAASAuthenticator</authentication-policy>
+ <workspaces>
+ <workspace name="production">
+ <!-- for system storage -->
+ <container class="org.exoplatform.services.jcr.impl.storage.jdbc.optimisation.CQJDBCWorkspaceDataContainer">
+ <properties>
+ <property name="source-name" value="jdbcjcr" />
+ <property name="multi-db" value="false" />
+ <property name="update-storage" value="false" />
+ <property name="max-buffer-size" value="200k" />
+ <property name="swap-directory" value="../temp/swap/production" />
+ </properties>
+ <value-storages>
+ <value-storage id="system" class="org.exoplatform.services.jcr.impl.storage.value.fs.TreeFileValueStorage">
+ <properties>
+ <property name="path" value="../temp/values/production" />
+ </properties>
+ <filters>
+ <filter property-type="Binary" />
+ </filters>
+ </value-storage>
+ </value-storages>
+ </container>
+ <initializer class="org.exoplatform.services.jcr.impl.core.ScratchWorkspaceInitializer">
+ <properties>
+ <property name="root-nodetype" value="nt:unstructured" />
+ </properties>
+ </initializer>
+ <cache enabled="true" class="org.exoplatform.services.jcr.impl.dataflow.persistent.LinkedWorkspaceStorageCacheImpl">
+ <properties>
+ <property name="max-size" value="10k" />
+ <property name="live-time" value="1h" />
+ </properties>
+ </cache>
+ <query-handler class="org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex">
+ <properties>
+ <property name="index-dir" value="../temp/jcrlucenedb/production" />
+ </properties>
+ </query-handler>
+ <lock-manager>
+ <time-out>15m</time-out>
+ <persister class="org.exoplatform.services.jcr.impl.core.lock.FileSystemLockPersister">
+ <properties>
+ <property name="path" value="../temp/lock/system" />
+ </properties>
+ </persister>
+ </lock-manager>
+ </workspace>
+
+ <workspace name="backup">
+ <container class="org.exoplatform.services.jcr.impl.storage.jdbc.optimisation.CQJDBCWorkspaceDataContainer">
+ <properties>
+ <property name="source-name" value="jdbcjcr" />
+ <property name="multi-db" value="false" />
+ <property name="update-storage" value="false" />
+ <property name="max-buffer-size" value="200k" />
+ <property name="swap-directory" value="../temp/swap/backup" />
+ </properties>
+ <value-storages>
+ <value-storage id="draft" class="org.exoplatform.services.jcr.impl.storage.value.fs.TreeFileValueStorage">
+ <properties>
+ <property name="path" value="../temp/values/backup" />
+ </properties>
+ <filters>
+ <filter property-type="Binary" />
+ </filters>
+ </value-storage>
+ </value-storages>
+ </container>
+ <initializer class="org.exoplatform.services.jcr.impl.core.ScratchWorkspaceInitializer">
+ <properties>
+ <property name="root-nodetype" value="nt:unstructured" />
+ </properties>
+ </initializer>
+ <cache enabled="true" class="org.exoplatform.services.jcr.impl.dataflow.persistent.LinkedWorkspaceStorageCacheImpl">
+ <properties>
+ <property name="max-size" value="10k" />
+ <property name="live-time" value="1h" />
+ </properties>
+ </cache>
+ <query-handler class="org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex">
+ <properties>
+ <property name="index-dir" value="../temp/jcrlucenedb/backup" />
+ </properties>
+ </query-handler>
+ </workspace>
+ </workspaces>
+ </repository>
+ </repositories>
+</repository-service>
+</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