You are viewing a plain text version of this content. The canonical link for it is here.
Posted to graffito-commits@incubator.apache.org by cl...@apache.org on 2006/02/05 22:38:40 UTC

svn commit: r375122 - in /incubator/graffito/trunk/jcr/jcr-mapping/xdocs: atomic-strategy.xml bean-strategy.xml engine-introduction.xml index.xml introduction-strategies.xml navigation.xml

Author: clombart
Date: Sun Feb  5 14:38:38 2006
New Revision: 375122

URL: http://svn.apache.org/viewcvs?rev=375122&view=rev
Log:
Still working on the documentation

Modified:
    incubator/graffito/trunk/jcr/jcr-mapping/xdocs/atomic-strategy.xml
    incubator/graffito/trunk/jcr/jcr-mapping/xdocs/bean-strategy.xml
    incubator/graffito/trunk/jcr/jcr-mapping/xdocs/engine-introduction.xml
    incubator/graffito/trunk/jcr/jcr-mapping/xdocs/index.xml
    incubator/graffito/trunk/jcr/jcr-mapping/xdocs/introduction-strategies.xml
    incubator/graffito/trunk/jcr/jcr-mapping/xdocs/navigation.xml

Modified: incubator/graffito/trunk/jcr/jcr-mapping/xdocs/atomic-strategy.xml
URL: http://svn.apache.org/viewcvs/incubator/graffito/trunk/jcr/jcr-mapping/xdocs/atomic-strategy.xml?rev=375122&r1=375121&r2=375122&view=diff
==============================================================================
--- incubator/graffito/trunk/jcr/jcr-mapping/xdocs/atomic-strategy.xml (original)
+++ incubator/graffito/trunk/jcr/jcr-mapping/xdocs/atomic-strategy.xml Sun Feb  5 14:38:38 2006
@@ -24,21 +24,72 @@
 				
 		<section name="Mapping Atomic Fields">
 			<subsection name="Introduction">
-				<p>The field-descriptor maps a bean attribute into one JCR property. it can map any kind of atomic types (java primitive data types and their wrapper classes)</p> 
-				<p>Based on our model defined <a href="introduction-strategies.html">here</a>, the following field-descriptor is used to map the bean field "title" into the JCR property "graffito:title".</p>
-				<source><![CDATA[ 				
-<field-descriptor fieldName="title" jcrName="graffito:title" />	
+				<p>The field-descriptor maps a bean attribute into one JCR property. it can map any kind of atomic types (java primitive data types and their wrapper classes).</p> 
+				<p>Based on our model defined <a href="introduction-strategies.html">here</a>, the following field-descriptor can be used in the class 'PageInfo' to map the bean field "title" (String type) into the JCR property "graffito:title".</p>
+				<source><![CDATA[ 
+<class-descriptor className="org.apache.portals.graffito.jcr.testmodel.PageInfo" jcrNodeType="graffito:PageInfo">
+	<field-descriptor fieldName="title" jcrName="graffito:title" />	
+	.... other descriptors ....
+</class-descriptor>	
 				]]></source>
+				<p>It is not necessary to specify the type in the field-descriptor. The Persistence Manager uses the java introspection to get information on the each atomic field.</p>
 				
 			</subsection>
 			<subsection name ="Supported Types">
+				
+				<table>
+					<tr>
+						<th>Java Type</th>
+						<th>Jcr Type</th>
+					</tr>
+					<tr>
+						<td>String</td>
+						<td>STRING</td>
+					</tr>
+					<tr>
+						<td>Boolean, boolean</td>
+						<td>BOOLEAN</td>
+					</tr>
+					<tr>
+						<td>Double, double</td>
+						<td>DOUBLE</td>
+					</tr>
+					<tr>
+						<td>Integer, int</td>
+						<td>DOUBLE</td>
+					</tr>
+					<tr>
+						<td>Long, long</td>
+						<td>LONG</td>
+					</tr>
+					<tr>
+						<td>byte[]</td>
+						<td>BINARY</td>
+					</tr>
+					
+					<tr>
+						<td>java.io.InputStream</td>
+						<td>BINALRY</td>
+					</tr>
+					
+					<tr>
+						<td>java.util.Calendar</td>
+						<td>LONG (corresponding to Calendar.getTimeInMillis()</td>
+					</tr>
+
+					<tr>
+						<td>java.sql.Timestamp</td>
+						<td>LONG (corresponding to Timestamp.getTime()</td>
+					</tr>					
+					<tr>
+						<td>java.util.Date</td>
+						<td>LONG (corresponding to java.util.Date.getTime()</td>
+					</tr>										
+					
+				</table>	
 				<p>
-				[TO DO]				
-				</p>
-			</subsection>
-			<subsection name ="Build you own Atomic Type Converter">
-				<p>
-				[TO DO]	
+					Due to some issues with Jackrabbit,  Calendar, Timestamp and date are converted into JCR LONG.
+					We plan to add other converters for those types in the next release. We plan also to support other java types (char, ...) 
 				</p>
 			</subsection>
 			

Modified: incubator/graffito/trunk/jcr/jcr-mapping/xdocs/bean-strategy.xml
URL: http://svn.apache.org/viewcvs/incubator/graffito/trunk/jcr/jcr-mapping/xdocs/bean-strategy.xml?rev=375122&r1=375121&r2=375122&view=diff
==============================================================================
--- incubator/graffito/trunk/jcr/jcr-mapping/xdocs/bean-strategy.xml (original)
+++ incubator/graffito/trunk/jcr/jcr-mapping/xdocs/bean-strategy.xml Sun Feb  5 14:38:38 2006
@@ -23,8 +23,47 @@
 	<body>
 				
 		<section name="Mapping Bean Fields">
-			TODO
+			<subsection name="Introduction">
+				<p>The bean-descriptor maps a bean attribute into one JCR node. Generally, this bean attribute is a also a bean.</p>
+				<p>Based on our model defined <a href="introduction-strategies.html">here</a>, the following bean-descriptor is used to map the bean field "pageInfo" (PageInfo class) into the JCR node called "pageInfo".</p>
+
+				<source><![CDATA[ 				
+<class-descriptor className="org.apache.portals.graffito.jcr.testmodel.Page" jcrNodeType="graffito:page">
+	<bean-descriptor fieldName="pageInfo" jcrName="pageInfo" />
+	<!-- other field, bean and collection mapping here !-->
+</class-descriptor>
+									
+<class-descriptor className="org.apache.portals.graffito.jcr.testmodel.PageInfo" jcrNodeType="graffito:PageInfo">
+	<field-descriptor fieldName="path" path="true" />
+	<field-descriptor fieldName="title" jcrName="graffito:title"/>
+	<field-descriptor fieldName="description" jcrName="graffito:description"/>
+</class-descriptor>
+									
+				]]></source>
 				
+				<p>In this example, the PageInfo class has a corresponding class-descriptor in the mapping file. 
+				   By this way, the Persistence Manager can map each PageInfo attributes.
+				   It is not necessary to specify the type in the bean-descriptor. The Persistence Manager uses the java introspection to get information on the each bean fields.</p>
+
+			</subsection>
+			
+			<subsection name ="Result in the JCR repository">
+				<p>
+					Following our example, the resulting JCR structure can be : 		
+				</p>
+				<p>
+					<source><![CDATA[ 
+/mysite/page1	
+  /mysite/page1/pageInfo
+       graffito:title = "This is my page title"
+       graffito:description = "This is my page description"
+  ... other subnodes for page1 ... 
+							  ]]></source>		  
+				</p>						
+				<p>Creating a subnode like this example (mysite/page1/pageInfo) is the default behaviour. See the section <a href="component-strategy.html">Reviewing the bean-descriptor</a> to get other bean-field mapping strategies.</p>
+				
+			
+			</subsection>
 		</section>
 	</body>
 </document>

Modified: incubator/graffito/trunk/jcr/jcr-mapping/xdocs/engine-introduction.xml
URL: http://svn.apache.org/viewcvs/incubator/graffito/trunk/jcr/jcr-mapping/xdocs/engine-introduction.xml?rev=375122&r1=375121&r2=375122&view=diff
==============================================================================
--- incubator/graffito/trunk/jcr/jcr-mapping/xdocs/engine-introduction.xml (original)
+++ incubator/graffito/trunk/jcr/jcr-mapping/xdocs/engine-introduction.xml Sun Feb  5 14:38:38 2006
@@ -22,10 +22,7 @@
 	</properties>
 	<body>
 		<section name="The Persistence Manager">
-			<p>The main component in our framework is the Persistence manager. It converts an object graph into JCR nodes and properties and vice versa.</p>
-			<subsection name="The API Overview">
-			 	<p>ADD API overview here</p>
-			</subsection>	
+			<p>The main component in our framework is the Persistence manager. It converts an object graph into JCR nodes and properties and vice versa.</p>	
 			
 			<subsection name="How the Persistence Manager is working ?">
 				
@@ -49,6 +46,10 @@
 					Of course, all those "mapping types" imply different mapping algorithms.See the "Mapping Strategies" section to get more information on the descriptor file.
 				</p>				
 			</subsection>
+			
+			<subsection name="The API Overview">
+				<p>[TO DO]</p>
+			</subsection>			
 						
 		</section>
 	</body>

Modified: incubator/graffito/trunk/jcr/jcr-mapping/xdocs/index.xml
URL: http://svn.apache.org/viewcvs/incubator/graffito/trunk/jcr/jcr-mapping/xdocs/index.xml?rev=375122&r1=375121&r2=375122&view=diff
==============================================================================
--- incubator/graffito/trunk/jcr/jcr-mapping/xdocs/index.xml (original)
+++ incubator/graffito/trunk/jcr/jcr-mapping/xdocs/index.xml Sun Feb  5 14:38:38 2006
@@ -25,7 +25,7 @@
 			<subsection name="Object/Content Mapping framework (ocm)">
 				<p>This Graffito 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 jcr-mapping allows you to express queries in Java-based Criteria, as well as in JCR query language.</p> 
 				
-				<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 objets like "Forum", "Topic" and "Post". Now these data objects (pojo) can be managed by our JCR mapping tools in order to persist them into a JCR compliant repository.</p> 
+				<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 objets 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>
@@ -37,12 +37,12 @@
 			</subsection>
 			<subsection name ="Preriquise">
 				<p>
-					Before using this JCR framework, you should review the JCR specication and implementation like <a   href="http://incubator.apache.org/jackrabbit/">JackRabbit</a>. 
+					Before using this JCR framework, you should review the JCR specication and implementations like <a   href="http://incubator.apache.org/jackrabbit/">JackRabbit</a>. 
 				</p>
 				
 			</subsection>
 			<subsection name="Download">
-				<p>There are no releases yet. See the menu 'Build a new application" for instructions on how to download and build the Graffito JCR mapping sources.</p>	
+				<p>There are no releases yet. See the menu "Getting Started" for instructions on how to download and build the Graffito JCR mapping sources.</p>	
 			</subsection>
 		</section>
 	</body>

Modified: incubator/graffito/trunk/jcr/jcr-mapping/xdocs/introduction-strategies.xml
URL: http://svn.apache.org/viewcvs/incubator/graffito/trunk/jcr/jcr-mapping/xdocs/introduction-strategies.xml?rev=375122&r1=375121&r2=375122&view=diff
==============================================================================
--- incubator/graffito/trunk/jcr/jcr-mapping/xdocs/introduction-strategies.xml (original)
+++ incubator/graffito/trunk/jcr/jcr-mapping/xdocs/introduction-strategies.xml Sun Feb  5 14:38:38 2006
@@ -24,7 +24,7 @@
 		<section name="Introduction to the Mapping Strategies">
 						
 			<p>
-				We are calling "Mapping strategies" the algorithm used to map bean fields into JCR nodes and/or properties.
+				We are calling "Mapping strategy" the algorithm used by the Persistence Manager to map a bean into JCR nodes and/or properties.
 				
 			</p>
 			
@@ -35,10 +35,10 @@
 					<li>The PageInfo class contains the title and the page description. We are using the pageInfo here to see all mapping features (see the bean-descriptors). In real application, this class is not necessary :-)</li>
 					<li>Each paragraph contains a path and a text field.</li>
 				</ul>	
-				<p><img src="./images/sample-model-doc.png"  align="center"></img></p>
+				<p align="center"> <img src="./images/sample-model-doc.png" ></img></p>
 			</p>	
 			<p>
-				This object model could be too simple for real applications and it is uses here just to simplify the description of the different mapping strategies. 
+				This object model could be too simple for real applications and it is used here just to simplify the description of the different mapping strategies. 
 			</p>	
 			<p>Based on that object model, we can define the following java classes :</p>
 			
@@ -83,10 +83,9 @@
 			</source>	
 			
 			
-			<p>
-				... and the class-descriptors can be : 	
-			</p>	
-			
+			<subsection name="The Class descriptor">
+				<p>When you decide to map a bean class, you have to create a new class descriptor entry in the Persistence Manager descriptor file.</p>			
+				<p>Here are the class-descriptors required to map the classes Page, PageInfo and Paragraph :</p>
 			<source><![CDATA[ 				
 <class-descriptor className="org.apache.portals.graffito.jcr.testmodel.Page" jcrNodeType="graffito:page">
 	<field-descriptor fieldName="path" path="true" />
@@ -126,9 +125,8 @@
 			<p>It is possible to have another kind of jcr structure by using other mapping strategies. You can see the section "Advance Mapping strategies" to get more information on that.</p>
 			
 			
-			<subsection name="The Class descriptor">
-				<p>When you decide to map a bean class, you have to create a new class descriptor entry in the Persistence Manager descriptor file.</p>
-				<p>Here is a basic class descriptor example : </p>
+
+				<p>Now, let's go back to the class-descriptor.</p>
 				<source><![CDATA[ 
 <class-descriptor className="org.apache.portals.graffito.jcr.testmodel.Paragraph" jcrNodeType="nt:unstructured">
 	<field-descriptor fieldName="path" path="true" />
@@ -139,7 +137,7 @@
 				<p>This class descriptor maps the class "org.apache.portals.graffito.jcr.testmodel.Paragraph" to the JCR type "nt:unstructured". Each field-descriptors maps one bean attribute to a JCR property. You can find more information on the field-descriptors in the page <a href="atomic-strategy.html">Mapping Atomic fields</a>. 
 				</p>	
 				<p>
-					It is also possible to map a bean class to a specific JCR custom node type. The following class-descriptor map the class "org.apache.portals.graffito.jcr.testmodel.Paragraph" to the node type "graffito:paragraph".	
+					It is also possible to map a bean class to a specific JCR node type. The following class-descriptor map the class "org.apache.portals.graffito.jcr.testmodel.Paragraph" to the node type "graffito:paragraph".	
 				</p>
 				<source><![CDATA[ 				
 <class-descriptor className="org.apache.portals.graffito.jcr.testmodel.Paragraph" jcrNodeType="graffito:paragraph">
@@ -164,7 +162,8 @@
 			    mandatory="true" onParentVersion="COPY" protected="false" multiple="false" />
 </nodeType>
 				]]></source>
-				<p>We are currently building a node type management tools which can import the node types from the class-descriptors.</p>
+				<p>
+					Of course, node types "Graffito:Page" and "Graffito:PageInfo" are alse required. 				We are currently building a node type management tools which can import the node types from the class-descriptors.</p>
 			</subsection>
 			<subsection name ="The path Field">
 				<p>

Modified: incubator/graffito/trunk/jcr/jcr-mapping/xdocs/navigation.xml
URL: http://svn.apache.org/viewcvs/incubator/graffito/trunk/jcr/jcr-mapping/xdocs/navigation.xml?rev=375122&r1=375121&r2=375122&view=diff
==============================================================================
--- incubator/graffito/trunk/jcr/jcr-mapping/xdocs/navigation.xml (original)
+++ incubator/graffito/trunk/jcr/jcr-mapping/xdocs/navigation.xml Sun Feb  5 14:38:38 2006
@@ -50,7 +50,7 @@
 			<item name="Introduction" href="introduction-advanced-strategies.html"/>
 			<item name="Inheritance" href="inheritance-strategy.html"/>
 			<item name="Reviewing the bean-descriptor" href="component-strategy.html"/>						
-			<item name="Reviewing the collection-descriptor" href="collection-strategy.html"/>
+			
 			<item name="Adding Extra JCR Nodes" href="extra-nodes-strategy.html"/>