jackrabbit-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From clomb...@apache.org
Subject svn commit: r616072 - in /jackrabbit/trunk/jackrabbit-site/src/site: site.xml xdoc/ocm/api/basic-operations.xml xdoc/ocm/api/locking.xml xdoc/ocm/api/search.xml xdoc/ocm/api/versionning.xml xdoc/ocm/engine-introduction.xml xdoc/ocm/index.xml
Date Mon, 28 Jan 2008 21:57:03 GMT
Author: clombart
Date: Mon Jan 28 13:57:02 2008
New Revision: 616072

URL: http://svn.apache.org/viewvc?rev=616072&view=rev
Log:
Review the OCM doc. work still in progress

Modified:
    jackrabbit/trunk/jackrabbit-site/src/site/site.xml
    jackrabbit/trunk/jackrabbit-site/src/site/xdoc/ocm/api/basic-operations.xml
    jackrabbit/trunk/jackrabbit-site/src/site/xdoc/ocm/api/locking.xml
    jackrabbit/trunk/jackrabbit-site/src/site/xdoc/ocm/api/search.xml
    jackrabbit/trunk/jackrabbit-site/src/site/xdoc/ocm/api/versionning.xml
    jackrabbit/trunk/jackrabbit-site/src/site/xdoc/ocm/engine-introduction.xml
    jackrabbit/trunk/jackrabbit-site/src/site/xdoc/ocm/index.xml

Modified: jackrabbit/trunk/jackrabbit-site/src/site/site.xml
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-site/src/site/site.xml?rev=616072&r1=616071&r2=616072&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-site/src/site/site.xml (original)
+++ jackrabbit/trunk/jackrabbit-site/src/site/site.xml Mon Jan 28 13:57:02 2008
@@ -76,18 +76,18 @@
          <item name="Visualization"           href="/doc/nodetype/visualization.html"
/>
       </item>
       <item name="Object Content Mapping"     href="/ocm/index.html" collapse="true">
-        <item name="Object Manager"           href="/ocm/engine-introduction.html">
+        <item name="Object Content Manager"   href="/ocm/engine-introduction.html">
           <item name="Basic operations"       href="/ocm/api/basic-operations.html"/>
-          <item name="Search"                 href="/ocm/api/search.html"/>
+          <item name="Basic Searchs"                 href="/ocm/api/search.html"/>
           <item name="Managing Versions"      href="/ocm/api/versionning.html"/>
           <item name="Locking"                href="/ocm/api/locking.html"/>
         </item>
-        <item name="Mapping Stategies"        href="/ocm/simple-strategies/introduction-strategies.html">
+        <!-- item name="Mapping Stategies"        href="/ocm/simple-strategies/introduction-strategies.html">
           <item name="Atomic Fields"          href="/ocm/simple-strategies/atomic-strategy.html"/>
           <item name="Bean Fields"            href="/ocm/simple-strategies/bean-strategy.html"/>
           <item name="Collection Fields"      href="/ocm/simple-strategies/collection-strategy.html"/>
           <item name="Advanced Strategies"    href="/ocm/advanced-strategies.html"/>
-        </item>
+        </item -->
       </item>
     </menu>
     <menu name="Thanks">

Modified: jackrabbit/trunk/jackrabbit-site/src/site/xdoc/ocm/api/basic-operations.xml
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-site/src/site/xdoc/ocm/api/basic-operations.xml?rev=616072&r1=616071&r2=616072&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-site/src/site/xdoc/ocm/api/basic-operations.xml (original)
+++ jackrabbit/trunk/jackrabbit-site/src/site/xdoc/ocm/api/basic-operations.xml Mon Jan 28
13:57:02 2008
@@ -18,55 +18,74 @@
 <document>
   <properties>
     <author email="christophe.lombart@gmail.com">Christophe Lombart</author>
-    <title>The Persistence Manager API</title>
+    <title>The Object Content Manager API</title>
   </properties>
   <body>
-    <section name="The Basic Operations">
-      <p>
-        When you have <a href="../engine-setup.html">created a new
-        Persistence Manager</a> in your application, you can use this
+    <section name="Jackrabbit OCM">
+       <subsection name="Basic operations">
+	    <p>
+        When you have <a href="../engine-introduction.html">created a new
+        Object Content Manager</a> in your application, you can use this
         component to insert, update, delete and retrieve objects.
         The class 'Folder' used in the following sections should be
-        associated to a class-descriptor defined in the  mapping descriptor.
+        associated to a class-descriptor defined in the mapping descriptor.
       </p>
       <p>
-        This page describes only the main Persistence Manager methods.
+        This page describes only the main Object Content Manager methods.
         You can see the javadoc to get more information on the API.
       </p>
-
+      </subsection>
       <subsection name="Insert">
 <source>
 Folder folder =  new Folder();
 folder.setPath("/myfolder");
 folder.set...(); // call the setter methods
 
-persistenceManager.insert(myFolder);
+ocm.insert(myFolder);
 
 </source>
       </subsection>
 
       <subsection name="Retrieve and update an object">
 <source>
-Folder folder = (Folder) persistenceManager.getObject(Folder.class, "/myfolder");
+Folder folder = (Folder) ocm.getObject("/myfolder");
 folder.set...(); // call the setter methods
 
-persistenceManager.update(myFolder);
+ocm.update(myFolder);
 
 </source>
       </subsection>
 
       <subsection name="Delete">
 <source>
-persistenceManager.remove("/test");
+ocm.remove("/test");
 </source>
       </subsection>
 
-      <subsection name ="Save last changes">
+      <subsection name ="Save the latest modification">
         <p>
           After some inserts, deletes and/or updates, you can call
-          the method <code>persistenceManager.save()</code> to apply your
+          the method <code>ocm.save()</code> to apply your
           changes into the JCR repository.
         </p>
+	<p>
+	  With Jackrabbit, it is also possible to run the modifications inside a transaction. 
+	  See the class <code>org.apache.jackrabbit.ocm.transaction.jackrabbit.UserTransactionImpl</code>
defined in the unit tests.
+	  <source>
+import javax.transaction.UserTransaction;
+import org.apache.jackrabbit.ocm.transaction.jackrabbit.UserTransactionImpl;
+	  
+UserTransaction utx = new UserTransactionImpl(session);
+	  
+// start transaction
+utx.begin();
+
+ocm.remove("/test");	  
+ocm.remove("/test2");
+
+utx.commit(); 
+          </source>
+	</p>	
       </subsection>
     </section>
   </body>

Modified: jackrabbit/trunk/jackrabbit-site/src/site/xdoc/ocm/api/locking.xml
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-site/src/site/xdoc/ocm/api/locking.xml?rev=616072&r1=616071&r2=616072&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-site/src/site/xdoc/ocm/api/locking.xml (original)
+++ jackrabbit/trunk/jackrabbit-site/src/site/xdoc/ocm/api/locking.xml Mon Jan 28 13:57:02
2008
@@ -20,11 +20,11 @@
     <author email="christophe.lombart@gmail.com">
       Christophe Lombart
     </author>
-    <title>The Persistence Manager API</title>
+    <title>The Object Content Manager API</title>
   </properties>
   <body>
-    <section name="Managing Locks">
-      <subsection name="Overview">
+    <section name="Jackrabbit OCM">
+	<subsection name="Managing Locks">
         <p>
           Following the Jcr specification, it is possible to lock nodes and
           their children (see section 8.4). You can see on this page the
@@ -67,14 +67,14 @@
 
 a.setCollection(collection);
 
-persistenceManager.insert(a);
-persistenceManager.save();
+ocm.insert(a);
+ocm.save();
 
 
 // --------------------------------------------------------------------------------
 // Check if the object is not locked
 // --------------------------------------------------------------------------------
-if (persistenceManager.isLocked("/test"))
+if (ocm.isLocked("/test"))
 {
    System.out.println("Error : The object is locked- humm ??");
 }
@@ -82,12 +82,12 @@
 // --------------------------------------------------------------------------------
 // Lock the object
 // --------------------------------------------------------------------------------
-String lockToken = persistenceManager.lock("/test", true, false);
+String lockToken = ocm.lock("/test", true, false);
 
 // --------------------------------------------------------------------------------
 // Check if the object is not locked
 // --------------------------------------------------------------------------------
-if (! persistenceManager.isLocked("/test"))
+if (! ocm.isLocked("/test"))
 {
    System.out.println("Error : The object is not locked- humm ??");
 }
@@ -95,7 +95,7 @@
 // --------------------------------------------------------------------------------
 // Unlock the object
 // --------------------------------------------------------------------------------
-persistenceManager.unlock("/test", lockToken);
+ocm.unlock("/test", lockToken);
 </source>
       </subsection>
     </section>

Modified: jackrabbit/trunk/jackrabbit-site/src/site/xdoc/ocm/api/search.xml
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-site/src/site/xdoc/ocm/api/search.xml?rev=616072&r1=616071&r2=616072&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-site/src/site/xdoc/ocm/api/search.xml (original)
+++ jackrabbit/trunk/jackrabbit-site/src/site/xdoc/ocm/api/search.xml Mon Jan 28 13:57:02
2008
@@ -18,10 +18,10 @@
 <document>
   <properties>
     <author email="christophe.lombart@gmail.com">Christophe Lombart</author>
-    <title>The Persistence Manager API</title>
+    <title>The Object Content Manager API</title>
   </properties>
   <body>
-    <section name="Searching objects">
+    <section name="Jackrabbit OCM">
       <subsection name="Searching a single object">
         <source>
 QueryManager queryManager = persistenceManager.getQueryManager();
@@ -32,7 +32,7 @@
 
 // Build the query
 Query query = queryManager.createQuery(filter);
-Paragraph paragraph = (Paragraph) persistenceManager.getObject(query);
+Paragraph paragraph = (Paragraph) ocm.getObject(query);
 </source>
       </subsection>
 
@@ -42,8 +42,8 @@
 Filter filter = queryManager.createFilter(Paragraph.class);
 filter.setScope("/test/node1//");
 Query query = queryManager.createQuery(filter);
-persistenceManager = this.getPersistenceManager();
-Collection result = persistenceManager.getObjects(query);
+
+Collection result = ocm.getObjects(query);
 </source>
       </subsection>
 
@@ -53,8 +53,8 @@
 Filter filter = queryManager.createFilter(Paragraph.class);
 filter.setScope("/test/node1//");
 Query query = queryManager.createQuery(filter);
-persistenceManager = this.getPersistenceManager();
-Iterator ierator = persistenceManager.getObjectIterator(query);
+
+Iterator ierator = ocm.getObjectIterator(query);
 </source>
       </subsection>
 
@@ -64,8 +64,8 @@
 Filter filter = queryManager.createFilter(Paragraph.class);
 filter.setScope("/test/node1//");
 Query query = queryManager.createQuery(filter);
-persistenceManager = this.getPersistenceManager();
-persistenceManager.remove(query);
+
+ocm.remove(query);
 </source>
       </subsection>
     </section>

Modified: jackrabbit/trunk/jackrabbit-site/src/site/xdoc/ocm/api/versionning.xml
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-site/src/site/xdoc/ocm/api/versionning.xml?rev=616072&r1=616071&r2=616072&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-site/src/site/xdoc/ocm/api/versionning.xml (original)
+++ jackrabbit/trunk/jackrabbit-site/src/site/xdoc/ocm/api/versionning.xml Mon Jan 28 13:57:02
2008
@@ -20,11 +20,11 @@
     <author email="christophe.lombart@gmail.com">
       Christophe Lombart
     </author>
-    <title>The Persistence Manager API</title>
+    <title>The Object Content Manager API</title>
   </properties>
   <body>
-    <section name="Managing versions">
-      <subsection name="Overview">
+    <section name="Jackrabbit OCM">
+	<subsection name="Managing versions">
         <p>
           Right now, the OCM tools provides basic versioning features:
         </p>
@@ -52,28 +52,28 @@
 page.setTitle("Page Title");
 page.addParagraph(new Paragraph("para1"));
 page.addParagraph(new Paragraph("para2"));
-persistenceManager.insert(page);
-persistenceManager.save();
+ocm.insert(page);
+ocm.save();
 
 // Update the page object and create a new version
 page.addParagraph(new Paragraph("para3"));
-persistenceManager.checkout("/page");
-persistenceManager.update(page);
-persistenceManager.save();
-persistenceManager.checkin("/page");
+ocm.checkout("/page");
+ocm.update(page);
+ocm.save();
+ocm.checkin("/page");
 
 // Update the page object and create a new version
 page.addParagraph(new Paragraph("para4"));
-persistenceManager.checkout("/page");
-persistenceManager.update(page);
-persistenceManager.save();
-persistenceManager.checkin("/page");
+ocm.checkout("/page");
+ocm.update(page);
+ocm.save();
+ocm.checkin("/page");
 </source>
       </subsection>
 
       <subsection name="Retrieve the version history">
         <source>
-VersionIterator versionIterator = persistenceManager.getAllVersions("/page");
+VersionIterator versionIterator = ocm.getAllVersions("/page");
 while (versionIterator.hasNext())
 {
     Version version = (Version) versionIterator.next();
@@ -86,11 +86,11 @@
       <subsection name="Retrieve version description">
         <source>
 // Retrieve the first version description
-Version baseVersion = persistenceManager.getBaseVersion("/page");
+Version baseVersion = ocm.getBaseVersion("/page");
 System.out.println("Base version : " + baseVersion.getName());
 
 // Retrieve the latest version description
-Version rootVersion = persistenceManager.getRootVersion("/page");
+Version rootVersion = ocm.getRootVersion("/page");
 System.out.println("Root version : " + rootVersion.getName());
 </source>
       </subsection>
@@ -98,7 +98,7 @@
       <subsection name="Retrieve the object state matching to a specific version">
         <source>
 //Get the object matching to the first version
-Page  page = (Page) persistenceManager.getObject( "/page", "1.0");
+Page  page = (Page) ocm.getObject( "/page", "1.0");
 </source>
       </subsection>
 
@@ -109,29 +109,29 @@
 page.setTitle("Page Title");
 page.addParagraph(new Paragraph("para1"));
 page.addParagraph(new Paragraph("para2"));
-persistenceManager.insert(page);
-persistenceManager.save();
+ocm.insert(page);
+ocm.save();
 
 // Checkin with some labels
 page.addParagraph(new Paragraph("para3"));
-persistenceManager.checkout("/page");
-persistenceManager.update(page);
-persistenceManager.save();
-persistenceManager.checkin("/page", new String[] {"A", "B"});
+ocm.checkout("/page");
+ocm.update(page);
+ocm.save();
+ocm.checkin("/page", new String[] {"A", "B"});
 
 // Checkin with some labels
 page.addParagraph(new Paragraph("para4"));
-persistenceManager.checkout("/page");
-persistenceManager.update(page);
-persistenceManager.save();
-persistenceManager.checkin("/page", new String[] {"C", "D"});
+ocm.checkout("/page");
+ocm.update(page);
+ocm.save();
+ocm.checkin("/page", new String[] {"C", "D"});
 
 // Retrieve all labels
-String[] allLabels = persistenceManager.getAllVersionLabels("/page");
+String[] allLabels = ocm.getAllVersionLabels("/page");
 assertTrue("Incorrect number of labels", allLabels.length == 4);
 
 // Retrieve labels assigned to the version 1.1
-String[] versionLabels = persistenceManager.getVersionLabels("/page", "1.1");
+String[] versionLabels = ocm.getVersionLabels("/page", "1.1");
 assertTrue("Incorrect number of labels", versionLabels.length == 2);
 assertTrue("Incorrect label", versionLabels[0].equals("C") || versionLabels[0].equals("D"));
 assertTrue("Incorrect label", versionLabels[1].equals("C") || versionLabels[0].equals("D"));

Modified: jackrabbit/trunk/jackrabbit-site/src/site/xdoc/ocm/engine-introduction.xml
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-site/src/site/xdoc/ocm/engine-introduction.xml?rev=616072&r1=616071&r2=616072&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-site/src/site/xdoc/ocm/engine-introduction.xml (original)
+++ jackrabbit/trunk/jackrabbit-site/src/site/xdoc/ocm/engine-introduction.xml Mon Jan 28
13:57:02 2008
@@ -18,39 +18,43 @@
 <document>
   <properties>
     <author email="christophe.lombart@gmail.com">Christophe Lombart</author>
-    <title>OCM: Object Manager</title>
+    <title>Jackrabbit OCM : the Object Content Manager</title>
   </properties>
   <body>
-    <section name="Object Manager">
+     <section name="Jackrabbit OCM">
+      <subsection name="The Object Content Manager Component">
       <p>
-        The main component in the OCM framework is the Object Manager.
-        It converts an object graph into JCR nodes and properties and
-        vice versa. The object manager is always associated with a
-        JCR Session. Usually there is one object manager per user session,
-        but depending on your needs you can use any number of object managers
-        in your application.
+	The main component in the OCM framework is the ObjectContentManager. It converts an object
graph into JCR nodes and properties and vice versa. The ObjectContentManager is always associated
with a JCR Session. It is used to retrieve, create, update and delete objects from a JCR content
repository. Usually there is one ObjectContentManager per user session.
       </p>
       <p>
-        This page describes the how object managers work and how you can
-        configure and use them in your applications.
+       This page describes how an ObjectManager is working and how it can be initialised
in your applications.
       </p>
-
-      <subsection name="How do object managers work?">
-        <p>
-          Thanks to a Mapping Descriptor file described below,
-          the Object Manager is able to use the more appropriate mapping
-          strategy for each object. The Mapping Descriptor file contains
-          one class descriptor per persistent class. Each class descriptor
-          contains mapping information for the corresponding class attributes.
-        </p>
-        <p>
-          In all cases, the desired persistent class is mapped to a JCR node
-          and its fields are mapped to subnodes or properties depending on
-          their type (see below).
-        </p>
+      </subsection>
+      <subsection name="How does the Object Content Manager work ?">
         <p>
-          There are 4 "field types":
+	Thanks to a Mapping Descriptor, the ObjectContentManager is able to use the appropriate
mapping strategy for each persistent object (pojo). The Mapping Descriptor contains one Class
Descriptor per persistent class. Each Class Descriptor contains mapping information for the
corresponding class attributes.
         </p>
+	<p>
+	In point of view implementation, the Mappring Descriptor is an java object injected into
the ObjectContentManager (see the interface org.apache.jackrabbit.ocm.mapper.Mapper). Right
now,there are 2 different Mapping Descriptor implementations:		
+	<ul>
+		<li>
+		Annotation : each persistent object is annoted in order to provide to the ObjectContentManager
all the required information on its mapping strategy (see the class org.apache.jackrabbit.ocm.mapper.impl.annotation.AnnotationMapperImpl).

+		</li>
+		<li>
+		XML configuration file : the mapping class descriptors are defined in one or more XML config
files used by the ObjectContentManager when it is instantiated (see the class org.apache.jackrabbit.ocm.mapper.impl.digester.DigesterMapperImpl).
This XML file contains the different class descriptors.
+		</li>
+	</ul>
+	</p>
+	<p>For a business developer, it is not necessary to know how the ObjectContent Manager
is using the Class Descriptors. He has to make only a choice between annoted classes or one
or more XML files. </p>
+        </subsection>
+	<subsection name="How does an object is persisted into a JCR repository ?">
+        <p>
+          In all cases, a persistent object (a pojo) is mapped into a JCR node and its fields
are mapped into subnodes or properties depending on their types.
+        </p>
+	<p>
+		There are 4 "field types":
+	</p>
+	
         <dl>
           <dt>Atomic fields</dt>
           <dd>
@@ -60,65 +64,58 @@
           <dt>Bean fields</dt>
           <dd>
             One class can contain an 1..1 association to another bean.
-            In this case, the attribute is a custom object. Those fields
-            are mapped into JCR subnodes.
+            In this case, the field is a custom object. Those fields
+            are mapped into JCR subnodes or a referenced node.
           </dd>
           <dt>Collection fields</dt>
           <dd>
             One class can contain an 1..n association to a collection of
             beans (or Map). Those fields are mapped into a collection of
-            JCR subnodes.
-          </dd>
-          <dt>Reference fields</dt>
-          <dd>
-            One good example to understand the "reference" type is the
-            Folder concept. A folder "B" can have an attribute called
-            "parentFolder" which is a simple field pointing to the parent
-            folder "A". Of course, in a JCR repository, it is a nonsense
-            for persist this "parentFolder" attribute into a "B" subnode.
-            Another interesting example are references between cms objects
-            (folders, documents, ...). This type is not yet implemented.
+            JCR subnodes or a collection of referenced nodes. It is also possible to map
a java collection into a multivalue property.
           </dd>
         </dl>
         <p>
-          Of course, all those "field types" imply different mapping
-          algorithms.
-        </p>
-        <p>
-          The descriptor file contains also information on
-          inheritance/interface mapping strategy, lazy loading,
+          The Mapping descriptor contains also information on inheritances, interface mapping
strategy, lazy loading,
           custom converter, cache strategy, etc.
         </p>
       </subsection>
 
-      <subsection name="The Mapping Descriptor File">
-        <p>
-          The mapping descriptor is an xml file with the following structure:
-        </p>
-        <source><![CDATA[
-<jackrabbit-ocm>
-  <class-descriptor ...>
-    ...
-  </class-descriptor>
-  ...
-</jackrabbit-ocm>
-]]></source>
-        <p>
-          The root element is "jackrabbit-ocm" and it contains one or more
-          "class-descriptor". As you can see in the
-          <a href="simple-strategies/introduction-stragegies.html">Mapping Strategies</a>
-          section, each class-descriptor contains the mapping information
-          used for each class attribute.
-        </p>
-        <p>
-          It is possible to have several mapping descriptor files.
-        </p>
+
+      <subsection name="Basic setup (with annoted persistent classes)">
+	      <p>
+		      When you start your application, you need the following code
+		      to initialize correctly the Object Content Manager.
+	      </p>
+	      <source>
+import javax.jcr.Session;
+import javax.jcr.Repository;
+		      
+import org.apache.jackrabbit.ocm.manager.impl.ObjectContentManagerImpl;
+import org.apache.jackrabbit.ocm.mapper.Mapper;
+import org.apache.jackrabbit.ocm.mapper.impl.annotation.AnnotationMapperImpl;
+
+		      
+// 1. Instantiate a JCR session
+Repository repository = ...;
+Session session = repository.login(...);
+		      
+// 2. Register the different persistent classes
+List classes = new ArrayList();
+classes.add(MyContent.class); // Call this method for each persistent class
+
+				      
+// 3. Instantiate the object manager
+Mapper mapper = new AnnotationMapperImpl(classes);
+ocm = new ObjectContentManagerImpl(session, mapper);
+
+		      
+	      </source>
       </subsection>
 
-      <subsection name="Basic setup">
+      <subsection name="Basic setup (with an XML Mapping Descriptor)">
         <p>
           When you start your application, you need the following code
-          to initialize correctly the Object Manager.
+          to initialize correctly the Object Content Manager.
         </p>
         <source>
 import javax.jcr.Session;
@@ -146,18 +143,9 @@
       "./src/test-config/jcrmapping-beandescriptor.xml"
   };
 
-// 3. Initialize the PersistenceManager dependencies
-Mapper mapper = new DigesterMapperImpl(files).buildMapper();
-AtomicTypeConverterProvider converterProvider =
-    new DefaultAtomicTypeConverterProvider();
-Map atomicTypeConverters = converterProvider.getAtomicTypeConverters();
-QueryManager queryManager = new QueryManagerImpl(mapper, atomicTypeConverters);
-ObjectConverter objectConverter =
-    new ObjectConverterImpl(mapper, converterProvider);
-
-// 4. Instantiate the object manager
-ObjectContentManager manager =
-    new ObjectContentManagerImpl(mapper, objectConverter, queryManager, session);
+// 3. Instantiate the object manager
+ObjectContentManager ocm = new ObjectContentManagerImpl(session, files);
+
 </source>
       </subsection>
 

Modified: jackrabbit/trunk/jackrabbit-site/src/site/xdoc/ocm/index.xml
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-site/src/site/xdoc/ocm/index.xml?rev=616072&r1=616071&r2=616072&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-site/src/site/xdoc/ocm/index.xml (original)
+++ jackrabbit/trunk/jackrabbit-site/src/site/xdoc/ocm/index.xml Mon Jan 28 13:57:02 2008
@@ -19,34 +19,23 @@
 <document>
   <properties>
     <author email="christophe.lombart@gmail.com">Christophe Lombart</author>
-    <title>Jackrabbit Object/Content Mapping (OCM)</title>
+    <title>Jackrabbit OCM : oveview</title>
   </properties>
   <body>
-    <section name="Overview">
-      <subsection name="Object/Content Mapping framework (ocm)">
-        <p>
-          This subproject is an object/JCR persistence and query service.
-          This tools lets you to persist Java objects into a JCR compliant
-          repository - including association, inheritance, polymorphism,
-          composition, and the Java collections framework. Furthermore,
-          this OCM component allows you to express queries in Java-based
-          criteria, as well as in JCR query language. It offers also
-          features like version support and object locking.
+    <section name="Jackrabbit OCM ">
+      <subsection name="Object/Content Mapping framework (OCM)">
+	 <p>
+	Jackrabbit OCM is a framework used to persist java objects (pojos) in a JCR repository including
association, inheritance, polymorphism, composition, and the Java collections framework. It
offers also features like version support, object locking and express queries with Java-based
criteria, as well as with JCR query languages.
         </p>
+	In order to easily support the JCR specification, any content application managing an high
level object model can use this framework. For example, a classic Forum application contains
objects like "Forum", "Topic" and "Post". Now, Jackrabbit OCM can manage these pojos and persist
them into a JCR compliant repository.
         <p>
-          In order to easily support the JCR specification, any content
-          application managing an high level object model can use this
-          framework. For example, a classic Forum application contains
-          objects like "Forum", "Topic" and "Post". Now, the data objects
-          (pojo) can be managed by our JCR mapping tools in order to persist
-          them into a JCR compliant repository.
+         
         </p>
       </subsection>
 
       <subsection name ="Why an ocm?">
         <p>
-          The object content mapping framework was created for the following
-          different reasons:
+          The object content mapping framework was created for the following reasons:
         </p>
         <ul>
           <li>



Mime
View raw message