You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by aa...@apache.org on 2010/01/16 18:27:41 UTC

svn commit: r900003 [1/3] - in /cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation: Cayenne Guide/Expressions/Expression Factory Utilities/ Cayenne Guide/Expressions/Path Expressions/ Cayenne Guide/Tutorial/Tutorial Java Cla...

Author: aadamchik
Date: Sat Jan 16 17:27:39 2010
New Revision: 900003

URL: http://svn.apache.org/viewvc?rev=900003&view=rev
Log:
updating docs from Confluence

Added:
    cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Configuring Deployment Settings/modeler-datadomain.png
    cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Introduction to CayenneModeler/General Navigation/icon-embeddable.gif
    cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Introduction to CayenneModeler/General Navigation/modeler-toolbar.png
    cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Modeling Object Layer/CayenneModeler Flattened Relationships/modeler-flattenedrelationship.png
    cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Modeling Object Layer/Modeling Embeddables/
    cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Modeling Object Layer/Modeling Embeddables/index.html
      - copied, changed from r899988, cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Modeling Object Layer/Modeling ObjEntities/index.html
    cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Modeling Object Layer/Modeling Embeddables/modeler-eattributes.png
    cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Modeling Object Layer/Modeling Embeddables/modeler-embeddedinspector.png
    cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Modeling Object Layer/Modeling Embeddables/modeler-newembeddable.png
    cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Remote Object Persistence Guide/Remote Object Persistence Tutorial/
    cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Remote Object Persistence Guide/Remote Object Persistence Tutorial/Remote Object Persistence Tutorial Authentication/
    cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Remote Object Persistence Guide/Remote Object Persistence Tutorial/Remote Object Persistence Tutorial Authentication/index.html   (with props)
    cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Remote Object Persistence Guide/Remote Object Persistence Tutorial/Remote Object Persistence Tutorial Client Code/
    cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Remote Object Persistence Guide/Remote Object Persistence Tutorial/Remote Object Persistence Tutorial Client Code/index.html   (with props)
    cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Remote Object Persistence Guide/Remote Object Persistence Tutorial/Remote Object Persistence Tutorial Client Project/
    cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Remote Object Persistence Guide/Remote Object Persistence Tutorial/Remote Object Persistence Tutorial Client Project/datamap-enableclient.png
    cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Remote Object Persistence Guide/Remote Object Persistence Tutorial/Remote Object Persistence Tutorial Client Project/index.html   (with props)
    cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Remote Object Persistence Guide/Remote Object Persistence Tutorial/Remote Object Persistence Tutorial Prerequisites/
    cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Remote Object Persistence Guide/Remote Object Persistence Tutorial/Remote Object Persistence Tutorial Prerequisites/index.html
      - copied, changed from r899988, cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Remote Object Persistence Guide/Remote Object Persistence Quick Start/Remote Object Persistence Tutorial Setup/index.html
    cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Remote Object Persistence Guide/Remote Object Persistence Tutorial/Remote Object Persistence Tutorial WebService/
    cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Remote Object Persistence Guide/Remote Object Persistence Tutorial/Remote Object Persistence Tutorial WebService/index.html   (with props)
    cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Remote Object Persistence Guide/Remote Object Persistence Tutorial/index.html
      - copied, changed from r899988, cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Remote Object Persistence Guide/Remote Object Persistence Quick Start/index.html
Removed:
    cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Configuring Deployment Settings/data-domain.jpg
    cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Introduction to CayenneModeler/General Navigation/icon-derived-dbentity.gif
    cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Introduction to CayenneModeler/General Navigation/toolbar-main.jpg
    cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Modeling Object Layer/CayenneModeler Flattened Relationships/objrelationship-path-selection.jpg
    cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Remote Object Persistence Guide/Remote Object Persistence Quick Start/Remote Object Persistence Tutorial Authentication/custom-jetty.jpg
    cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Remote Object Persistence Guide/Remote Object Persistence Quick Start/Remote Object Persistence Tutorial Authentication/index.html
    cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Remote Object Persistence Guide/Remote Object Persistence Quick Start/Remote Object Persistence Tutorial Client Code/index.html
    cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Remote Object Persistence Guide/Remote Object Persistence Quick Start/Remote Object Persistence Tutorial Client Code/main-errors.jpg
    cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Remote Object Persistence Guide/Remote Object Persistence Quick Start/Remote Object Persistence Tutorial Client Project/client-class-generator.jpg
    cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Remote Object Persistence Guide/Remote Object Persistence Quick Start/Remote Object Persistence Tutorial Client Project/client-package.jpg
    cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Remote Object Persistence Guide/Remote Object Persistence Quick Start/Remote Object Persistence Tutorial Client Project/eclipse-client-libs.jpg
    cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Remote Object Persistence Guide/Remote Object Persistence Quick Start/Remote Object Persistence Tutorial Client Project/index.html
    cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Remote Object Persistence Guide/Remote Object Persistence Quick Start/Remote Object Persistence Tutorial Setup/index.html
    cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Remote Object Persistence Guide/Remote Object Persistence Quick Start/Remote Object Persistence Tutorial WebService/index.html
    cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Remote Object Persistence Guide/Remote Object Persistence Quick Start/index.html
Modified:
    cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/Expressions/Expression Factory Utilities/index.html
    cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/Expressions/Path Expressions/index.html
    cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/Tutorial/Tutorial Java Classes/index.html
    cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Configuring Deployment Settings/Configuring Caching Behavior/index.html
    cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Configuring Deployment Settings/index.html
    cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Introduction to CayenneModeler/Cayenne User Directory/index.html
    cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Introduction to CayenneModeler/General Navigation/index.html
    cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Modeling Object Layer/CayenneModeler Flattened Relationships/index.html
    cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Modeling Object Layer/Delete Rules/index.html
    cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Modeling Object Layer/Inheritance overview/index.html
    cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Modeling Object Layer/Many-to-Many Relationships/index.html
    cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Modeling Object Layer/Modeling Enumerations/index.html
    cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Modeling Object Layer/Modeling Inheritance/index.html
    cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Modeling Object Layer/Modeling ObjEntities/index.html
    cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Modeling Object Layer/Modeling Remote Persistence/index.html
    cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Modeling Object Layer/index.html
    cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Modeling Tips/index.html
    cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/ORM Case Study/index.html
    cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Overview/Guide to 3.0 Features/index.html
    cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Remote Object Persistence Guide/Remote Object Persistence CWS Deployment/index.html
    cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Remote Object Persistence Guide/Remote Object Persistence Client Deployment/index.html
    cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Remote Object Persistence Guide/Remote Object Persistence Coding Client/index.html
    cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Remote Object Persistence Guide/Remote Object Persistence Coding Server/Remote Object Persistence Lifecycle Callbacks/index.html
    cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Remote Object Persistence Guide/Remote Object Persistence Coding Server/index.html
    cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Remote Object Persistence Guide/Remote Object Persistence Comparison/index.html
    cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Remote Object Persistence Guide/Remote Object Persistence Customization/index.html
    cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Remote Object Persistence Guide/Remote Object Persistence Features/index.html
    cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Remote Object Persistence Guide/Remote Object Persistence Installation/index.html
    cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Remote Object Persistence Guide/Remote Object Persistence Introduction/index.html
    cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Remote Object Persistence Guide/Remote Object Persistence Limitations/index.html
    cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Remote Object Persistence Guide/Remote Object Persistence Security/index.html
    cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Remote Object Persistence Guide/index.html

Modified: cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/Expressions/Expression Factory Utilities/index.html
URL: http://svn.apache.org/viewvc/cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Cayenne%20Guide/Expressions/Expression%20Factory%20Utilities/index.html?rev=900003&r1=900002&r2=900003&view=diff
==============================================================================
--- cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/Expressions/Expression Factory Utilities/index.html (original)
+++ cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/Expressions/Expression Factory Utilities/index.html Sat Jan 16 17:27:39 2010
@@ -64,25 +64,12 @@
 <p>The most simple expressions are the ones that match an object property path with a value or a list of values. ExpressionFactory provides a set of methods to build such "path/value" expressions:</p>
 <ul>
 	<li>public static Expression <b>matchExp</b>(String pathSpec, Object value)</li>
-	<li>public static Expression <b>noMatchExp</b>(String pathSpec, Object value)</li>
-	<li>public static Expression <b>matchDbExp</b>(String pathSpec, Object value)</li>
-	<li>public static Expression <b>lessExp</b>(String pathSpec, Object value)</li>
-	<li>public static Expression <b>lessOrEqualExp</b>(String pathSpec, Object value)</li>
-	<li>public static Expression <b>greaterExp</b>(String pathSpec, Object value)</li>
-	<li>public static Expression <b>greaterOrEqualExp</b>(String pathSpec, Object value)</li>
-	<li>public static Expression <b>inExp</b>(String pathSpec, Object[] values)</li>
-	<li>public static Expression <b>inExp</b>(String pathSpec, java.util.List values)</li>
-	<li>public static Expression <b>betweenExp</b>(String pathSpec, Object value1, Object value2)</li>
-	<li>public static Expression <b>likeExp</b>(String pathSpec, Object value)</li>
-	<li>public static Expression <b>likeIgnoreCaseExp</b>(String pathSpec, Object value)</li>
-	<li>public static Expression <b>notInExp</b>(String pathSpec, Object value)</li>
-	<li>public static Expression <b>notBetweenExp</b>(String pathSpec, Object value)</li>
-	<li>public static Expression <b>notLikeExp</b>(String pathSpec, Object value)</li>
-	<li>public static Expression <b>notLikeIgnoreCaseExp</b>(String pathSpec, Object value)</li>
+	<li>public static Expression <b>noMatchExp</b>(String pathSpec, Object value),</li>
+	<li>etc.. <em>(check JavaDocs of ExpressionFactory for all available factory methods)</em></li>
 </ul>
 
 
-<p>As was mentioned <a href="../../../../Documentation/Cayenne Guide/Expressions/Path Expressions/index.html" title="Path Expressions">earlier</a>, the type of a second Object argument depends on the type of property path points to. It is important to mention that paths that end with a relationship name (both to-one and to-many) can be matched against DataObjects, thus removing the need to know PK or FK values when building expressions. This behavior is not specific to ExpressionFactory, it works the same way with Expression.fromString(..) as well.</p>
+<p>As was mentioned <a href="../../../../Documentation/Cayenne Guide/Expressions/Path Expressions/index.html" title="Path Expressions">earlier</a>, the type of a second Object argument depends on the type of property path points to. It is important to mention that paths that end with a relationship name (both to-one and to-many) can be matched against Persistent objects, thus absolving you from the need to know a PK or FK when building expressions. This behavior is not specific to ExpressionFactory, it works the same way with Expression.fromString(..) as well.</p>
 <div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
 <pre class="code-java"><span class="code-keyword">import</span> org.apache.cayenne.exp.Expression;
 <span class="code-keyword">import</span> org.apache.cayenne.exp.ExpressionFactory;
@@ -93,8 +80,7 @@
 </span>
 Artist a = ...;
 Expression qual = ExpressionFactory.matchExp(<span class="code-quote">"toArtist"</span>, a);
-SelectQuery select = <span class="code-keyword">new</span> SelectQuery(Painting.class, qual);
-</pre>
+SelectQuery select = <span class="code-keyword">new</span> SelectQuery(Painting.class, qual);</pre>
 </div></div>
 
 <h3><a name="ExpressionFactoryUtilities-ChainingExpressions"></a>Chaining Expressions</h3>
@@ -153,15 +139,28 @@
 
 <p>Example of creating complex expressions:</p>
 <div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
-<pre class="code-java">HashMap map = <span class="code-keyword">new</span> HashMap();
+<pre class="code-java">Map map = <span class="code-keyword">new</span> HashMap();
 map.put(<span class="code-quote">"login"</span>, <span class="code-quote">"joeuser"</span>);
 map.put(<span class="code-quote">"password"</span>, <span class="code-quote">"secret"</span>);
 
 <span class="code-comment">// the last parameter refers to the operation inside each key/value pair. 
 </span>
-Expression qual = ExpressionFactory.matchAllExp(map, Expression.EQUAL_TO);
-</pre>
-</div></div></div>
+Expression qual = ExpressionFactory.matchAllExp(map, Expression.EQUAL_TO);</pre>
+</div></div>
+
+<h3><a name="ExpressionFactoryUtilities-SplitExpressionswith%7B%7BmatchAllExp%28%29%7D%7D"></a>Split Expressions with <tt>matchAllExp()</tt></h3>
+
+<p>As <a href="../../../../Documentation/Cayenne Guide/Expressions/Path Expressions/index.html" title="Path Expressions">discussed</a> earlier, Cayenne supports "aliases" in path Expressions, allowing to control how SQL joins are generated if the same path is encountered more than once in the same Expression. Two ExpressionFactory methods allow to implicitly generate aliases to "split" match paths into individual joins if needed:</p>
+
+<ul>
+	<li>Expression <b>matchAllExp</b>(String path, Collection values)</li>
+	<li>Expression <b>matchAllExp</b>(String path, Object... values)</li>
+</ul>
+
+
+<p>"Path" argument to both of these methods can use a split character (a pipe symbol '|') instead of dot to indicate that relationship following a path should be split into a separate set of joins, one per collection value. There can only be one split at most in any given path. Split must always precede a relationship. E.g. <tt>"|exhibits.paintings"</tt>, <tt>"exhibits|paintings"</tt>, etc. Internally Cayenne would generate distinct aliases for each of the split expressions, forcing separate joins.</p>
+
+</div>
 </div>
   <div class="clearer">.</div>
   <div style="height: 12px; background-image: url('../../../../images/border_bottom.gif'); background-repeat: repeat-x;"></div>

Modified: cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/Expressions/Path Expressions/index.html
URL: http://svn.apache.org/viewvc/cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Cayenne%20Guide/Expressions/Path%20Expressions/index.html?rev=900003&r1=900002&r2=900003&view=diff
==============================================================================
--- cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/Expressions/Path Expressions/index.html (original)
+++ cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/Expressions/Path Expressions/index.html Sat Jan 16 17:27:39 2010
@@ -93,9 +93,21 @@
 
 <p>Though database path expressions are widely used by Cayenne framework internally, they are rarely used in applications. Although there are a few cases when their explicit use is justified.</p>
 
+<h3><a name="PathExpressions-AliasesinPathExpressions"></a>Aliases in Path Expressions</h3>
+
+<p>Cayenne supports "aliases" in path Expressions. E.g. the same expression can be written using explicit path or an alias:</p>
+
+<ul>
+	<li>Full path: <tt>toArtist.exhibitArray.closingDate</tt></li>
+	<li>Using alias "e": <tt>e.closingDate</tt></li>
+</ul>
+
+
+<p>SelectQuery using the second form of the path expression must be made aware of the alias via <tt>"SelectQuery.aliasPathSplits(..)"</tt>, otherwise an Exception will be thrown. The main use of aliases is to allow users to control how SQL joins are generated if the same path is encountered more than once in any given Expression. Each alias for any given path would result in a separate join. Without aliases, a single join will be used for a group of matching paths.</p>
+
 <h3><a name="PathExpressions-MatchingPathExpressions"></a>Matching Path Expressions</h3>
 
-<p>As described in the following chapters a path expression is usually matched against some value (see for example <a href="../../../../Documentation/Cayenne Guide/Expressions/Expression Factory Utilities/index.html" title="Expression Factory Utilities">ExpressionFactory API</a> - the first argument to each method is a path, and a second - an Object value that is matched against the path). Such value type must be compatible with the type of the property pointed to by the path. E.g. toArtist.artistName can only be matched against a String, and toArtist - against instances of Artist. </p></div>
+<p>As described in the following chapters a path expression is usually matched against some value (see for example <a href="../../../../Documentation/Cayenne Guide/Expressions/Expression Factory Utilities/index.html" title="Expression Factory Utilities">ExpressionFactory API</a> - the first argument to each method is a path, and a second - an object value that is matched against the path). A type of such value must be compatible with the type of the property pointed to by the path. E.g. <tt>toArtist.artistName</tt> can only be matched against a <tt>String</tt>, and <tt>toArtist</tt> - against instances of <tt>Artist</tt>.</p></div>
 </div>
   <div class="clearer">.</div>
   <div style="height: 12px; background-image: url('../../../../images/border_bottom.gif'); background-repeat: repeat-x;"></div>

Modified: cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/Tutorial/Tutorial Java Classes/index.html
URL: http://svn.apache.org/viewvc/cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Cayenne%20Guide/Tutorial/Tutorial%20Java%20Classes/index.html?rev=900003&r1=900002&r2=900003&view=diff
==============================================================================
--- cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/Tutorial/Tutorial Java Classes/index.html (original)
+++ cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/Tutorial/Tutorial Java Classes/index.html Sat Jan 16 17:27:39 2010
@@ -73,7 +73,7 @@
 </ul>
 
 
-<p>Now go back to Eclipse, right click on "tutorial" project and select "Refresh" - you should see pairs of classes generated for each mapped entity. You probably also see that there's a bunch of red squiggles next to the newly generated Java classes in Eclipse. This is because our project does not include Cayenne as a Maven dependency yet. Let's fix it now, but adding "cayenne-server" artifact in the bottom of the <tt>pom.xml</tt> file. The resulting POM should look like this:</p>
+<p>Now go back to Eclipse, right click on "tutorial" project and select "Refresh" - you should see pairs of classes generated for each mapped entity. You probably also see that there's a bunch of red squiggles next to the newly generated Java classes in Eclipse. This is because our project does not include Cayenne as a Maven dependency yet. Let's fix it now by adding "cayenne-server" artifact in the bottom of the <tt>pom.xml</tt> file. The resulting POM should look like this:</p>
 
 <div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
 <pre class="code-java">&lt;project xmlns=<span class="code-quote">"http:<span class="code-comment">//maven.apache.org/POM/4.0.0"</span> xmlns:xsi=<span class="code-quote">"http://www.w3.org/2001/XMLSchema-instance"</span>
@@ -88,7 +88,7 @@
 			&lt;groupId&gt;org.apache.cayenne&lt;/groupId&gt;
 			&lt;artifactId&gt;cayenne-server&lt;/artifactId&gt;
    &lt;!-- Here specify the version of Cayenne you are actually using --&gt;
-			&lt;version&gt;3.0RC1&lt;/version&gt;
+			&lt;version&gt;3.0RC2&lt;/version&gt;
 		&lt;/dependency&gt;
 	&lt;/dependencies&gt;
 &lt;/project&gt;</pre>

Modified: cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Configuring Deployment Settings/Configuring Caching Behavior/index.html
URL: http://svn.apache.org/viewvc/cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler%20Guide/Configuring%20Deployment%20Settings/Configuring%20Caching%20Behavior/index.html?rev=900003&r1=900002&r2=900003&view=diff
==============================================================================
--- cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Configuring Deployment Settings/Configuring Caching Behavior/index.html (original)
+++ cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Configuring Deployment Settings/Configuring Caching Behavior/index.html Sat Jan 16 17:27:39 2010
@@ -70,14 +70,13 @@
 
 <h3><a name="ConfiguringCachingBehavior-CrossVMCacheSharingConfiguration"></a>Cross-VM Cache Sharing Configuration</h3>
 
-
 <p>Configuration that allows to notify other applications about changes made by an application and to listen for such changes made by others. This type of configuration incurs the most overhead, because it will constantly send and receive synchronization messages, but it is also the most powerful configuration. Cayenne currently supports the use of JMS and JavaGroups frameworks for synchronization, and also allows users to create their own transport mechanism. </p>
 
-<div class='panelMacro'><table class='noteMacro'><colgroup><col width='24'><col></colgroup><tr><td valign='top'><img src="../../../../images/emoticons/warning.gif" width="16" height="16" align="absmiddle" alt="" border="0"></td><td><p>Cayenne distribution archive does not include JavaGroups or JMS libraries. Those must be downloaded and installed separately. However until deployment phase, Cayenne does not require those libraries to be installed. </p></td></tr></table></div>
+<div class='panelMacro'><table class='noteMacro'><colgroup><col width='24'><col></colgroup><tr><td valign='top'><img src="../../../../images/emoticons/warning.gif" width="16" height="16" align="absmiddle" alt="" border="0"></td><td>Cayenne distribution does not include JavaGroups or JMS libraries. Those must be downloaded and installed separately. However until deployment phase, Cayenne does not require those libraries to be installed.</td></tr></table></div>
 
 <p>To configure distributed cache sharing, check "Remote Change Notifications" checkbox, and click "Configure" button to select and configure the type of transport to use.</p>
 
-<div class='panelMacro'><table class='tipMacro'><colgroup><col width='24'><col></colgroup><tr><td valign='top'><img src="../../../../images/emoticons/check.gif" width="16" height="16" align="absmiddle" alt="" border="0"></td><td><p>Synchronization is only done between remote DataDomains with the same name. Note that for JavaGroups configuration, a combination of multicast address and port must be unique for each DataDomain name.</p></td></tr></table></div>
+<div class='panelMacro'><table class='noteMacro'><colgroup><col width='24'><col></colgroup><tr><td valign='top'><img src="../../../../images/emoticons/warning.gif" width="16" height="16" align="absmiddle" alt="" border="0"></td><td>Synchronization is only done between remote DataDomains with the same name. Note that for JavaGroups configuration, a combination of multicast address and port must be unique for each DataDomain name.</td></tr></table></div>
 
 <h3><a name="ConfiguringCachingBehavior-ChoosingJavaGroupsoverJMS"></a>Choosing JavaGroups over JMS</h3>
 

Modified: cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Configuring Deployment Settings/index.html
URL: http://svn.apache.org/viewvc/cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler%20Guide/Configuring%20Deployment%20Settings/index.html?rev=900003&r1=900002&r2=900003&view=diff
==============================================================================
--- cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Configuring Deployment Settings/index.html (original)
+++ cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Configuring Deployment Settings/index.html Sat Jan 16 17:27:39 2010
@@ -51,7 +51,7 @@
 
 <p>Cayenne project deployment settings, aside from <a href="../../../Documentation/Modeler Guide/Common Modeling Tasks/Create DataNode/index.html" title="Create DataNode">DataNode</a> configuration discussed elsewhere, are done using DataDomain panel. This chapter describes various supported settings.</p>
 
-<p><img src="data-domain.jpg" align="absmiddle" border="0" /></p>
+<p><img src="modeler-datadomain.png" align="absmiddle" border="0" /></p>
 
 <h3><a name="ConfiguringDeploymentSettings-Sections"></a>Sections</h3>
 

Added: cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Configuring Deployment Settings/modeler-datadomain.png
URL: http://svn.apache.org/viewvc/cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler%20Guide/Configuring%20Deployment%20Settings/modeler-datadomain.png?rev=900003&view=auto
==============================================================================
Files cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Configuring Deployment Settings/modeler-datadomain.png (added) and cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Configuring Deployment Settings/modeler-datadomain.png Sat Jan 16 17:27:39 2010 differ

Modified: cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Introduction to CayenneModeler/Cayenne User Directory/index.html
URL: http://svn.apache.org/viewvc/cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler%20Guide/Introduction%20to%20CayenneModeler/Cayenne%20User%20Directory/index.html?rev=900003&r1=900002&r2=900003&view=diff
==============================================================================
--- cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Introduction to CayenneModeler/Cayenne User Directory/index.html (original)
+++ cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Introduction to CayenneModeler/Cayenne User Directory/index.html Sat Jan 16 17:27:39 2010
@@ -56,7 +56,7 @@
 <h3><a name="CayenneUserDirectory-CayenneUserDirectoryLocation"></a>Cayenne User Directory Location</h3>
 
 
-<p>Cayenne User Directory is a filesystem directory called ".cayenne" (notice the dot in front of the name, it makes it "hidden" on UNIX operating systems) that is a subdirectory of a user HOME directory. HOME directory is OS and machine dependent. For example on Windows this is something like "C:\Documents and Settings\username\". Cayenne User Directory is created automatically when CayenneModeler is started on a user machine for the first time.</p>
+<p>Cayenne User Directory is a filesystem directory called ".cayenne" (notice the dot in front of the name, it makes it "hidden" on UNIX operating systems) that is a subdirectory of a user HOME directory. HOME directory is OS and machine dependent. For example on Windows this is something like <tt>"C:\Documents and Settings\username\"</tt>. Cayenne User Directory is created automatically when CayenneModeler is started on a user machine for the first time.</p>
 
 <h3><a name="CayenneUserDirectory-AccessingCayenneUserDirectoryProgrammatically"></a>Accessing Cayenne User Directory Programmatically</h3>
 
@@ -67,9 +67,7 @@
 
 <p><tt>prefs</tt>: preferences database subdirectory.<br/>
 <tt>modeler.preferences</tt>: this is an old modeler preferences file. It is still used by CayenneModeler, but will be completely replaced by the preferences database in the future releases.<br/>
-<tt>cayenne-log.properties</tt>: Log4J configuration file for the Modeler.<br/>
-<tt>modeler.log</tt>: CayenneModeler log file.<br/>
-<tt>modeler.classpath</tt>: (unused) an old CLASSPATH configuration file that is now migrated to the preferences database.</p></div>
+<tt>modeler.log</tt>: CayenneModeler log file.</p></div>
 </div>
   <div class="clearer">.</div>
   <div style="height: 12px; background-image: url('../../../../images/border_bottom.gif'); background-repeat: repeat-x;"></div>

Added: cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Introduction to CayenneModeler/General Navigation/icon-embeddable.gif
URL: http://svn.apache.org/viewvc/cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler%20Guide/Introduction%20to%20CayenneModeler/General%20Navigation/icon-embeddable.gif?rev=900003&view=auto
==============================================================================
Files cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Introduction to CayenneModeler/General Navigation/icon-embeddable.gif (added) and cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Introduction to CayenneModeler/General Navigation/icon-embeddable.gif Sat Jan 16 17:27:39 2010 differ

Modified: cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Introduction to CayenneModeler/General Navigation/index.html
URL: http://svn.apache.org/viewvc/cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler%20Guide/Introduction%20to%20CayenneModeler/General%20Navigation/index.html?rev=900003&r1=900002&r2=900003&view=diff
==============================================================================
--- cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Introduction to CayenneModeler/General Navigation/index.html (original)
+++ cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Introduction to CayenneModeler/General Navigation/index.html Sat Jan 16 17:27:39 2010
@@ -52,19 +52,19 @@
 <div id="ConfluenceContent"><h3><a name="GeneralNavigation-GeneralNavigation"></a>General Navigation</h3>
 
 
-<p>CayenneModeler supports executing commands via its main menu and a button toolbar. Currently Modeler DOES NOT support contextual menus that open on right-click. All of the toolbar buttons have corresponding items in the menu that perform exact same operation (plus there are operations that are available via the menu only). If an item or a button action can not be performed in a given context an item is visually disabled.</p>
+<p>CayenneModeler supports executing commands via its main menu, a button toolbar and contextual menus that open on right-click. All of the toolbar buttons have corresponding items in the menu that perform the exact same operation (plus there are operations that are available via the menu only). If an item or a button action can not be performed in a given context an item is visually disabled.</p>
 
 <h4><a name="GeneralNavigation-Toolbars"></a>Toolbars</h4>
 
 <p>There is a main toolbar shown below, and a number of object-specific toolbars.</p>
 
-<p><img src="toolbar-main.jpg" align="absmiddle" border="0" /></p>
+<p><img src="modeler-toolbar.png" align="absmiddle" border="0" /></p>
 
 <p>The following is a quick reference of the toolbar button functions.</p>
 
 <h5><a name="GeneralNavigation-Project%3A%21iconnew.gif%21%21iconopen.gif%21%21iconsave.gif%21"></a>Project: <img src="icon-new.gif" align="absmiddle" border="0" /> <img src="icon-open.gif" align="absmiddle" border="0" /> <img src="icon-save.gif" align="absmiddle" border="0" /></h5>
 
-<p>Cayenne Project is a logical deployment unit, that consists of a main project file (called cayenne.xml) and zero or more DataNode (<b>.driver.xml) and DataMap (</b>.map.xml) XML files. Currently CayenneModeler supports a single project per running Modeler instance, however multiple instances of Modeler can be started to edit multiple projects at the same time.</p>
+<p>Cayenne Project is a logical deployment unit, that consists of a main project file (called <tt>cayenne.xml</tt>) and zero or more DataNode (<tt>&#42;.driver.xml</tt>) and DataMap (<tt>&#42;.map.xml</tt>) XML files. Currently CayenneModeler supports a single project per running Modeler instance, however multiple instances of Modeler can be started to edit multiple projects at the same time.</p>
 
 <h5><a name="GeneralNavigation-DataDomain%3A%21icondom.gif%21"></a>DataDomain: <img src="icon-dom.gif" align="absmiddle" border="0" />  </h5>
 
@@ -86,19 +86,21 @@
 
 <p>DataMap is a collection of Object/Relational mapping information linking Java object layer with the relational database. DataMaps are created within DataDomains and can be later linked to DataNodes. </p>
 
-<h5><a name="GeneralNavigation-Entities%3A%21icondbentity.gif%21%21iconderiveddbentity.gif%21%21iconobjentity.gif%21"></a>Entities: <img src="icon-dbentity.gif" align="absmiddle" border="0" /> <img src="icon-derived-dbentity.gif" align="absmiddle" border="0" /> <img src="icon-objentity.gif" align="absmiddle" border="0" /></h5>
+<h5><a name="GeneralNavigation-Entities%3A%21icondbentity.gif%21%21iconobjentity.gif%21"></a>Entities: <img src="icon-dbentity.gif" align="absmiddle" border="0" /> <img src="icon-objentity.gif" align="absmiddle" border="0" /></h5>
 
-<p>There are two types of entities in Cayenne DataMaps: ObjEntities, reflecting the structure of the object layer, and DbEntities that describe database tables and views. In other words, ObjEntity is a descriptor of a persistent Java class, and DbEntity is a descriptor of a database table or view. Each ObjEntity is based on a DbEntity, but there can be DbEntities that do not have a corresponding ObjEntity. </p>
+<p>There are two types of entities in Cayenne DataMaps: ObjEntities, reflecting the structure of the object layer, and DbEntities that describe database tables and views. In other words, ObjEntity is a descriptor of a persistent Java class, and DbEntity is a descriptor of a database table or view. Each ObjEntity is based on a DbEntity, but there can be DbEntities that do not have a corresponding ObjEntity.</p>
 
-<p>There is a special kind of DbEntity - DerivedDbEntity - that has limited capabilities of defining "virtual" database views. DerivedDbEntity is deprecated in version 3.0 and should be avoided. Try using <a href="../../../../Documentation/Cayenne Guide/Queries/SQLTemplate Query/Scripting SQLTemplate/index.html" title="Scripting SQLTemplate">Scripting SQLTemplate</a> instead.</p>
+<h5><a name="GeneralNavigation-Embeddables%3A%21iconembeddable.gif%21"></a>Embeddables: <img src="icon-embeddable.gif" align="absmiddle" border="0" /></h5>
+
+<p>Embeddables are the special kind of mapping objects that allow to map parts of a DB table as a separate object, allowing to use composition within entities.</p>
 
 <h5><a name="GeneralNavigation-Procedures%3A%21iconstoredprocedure.gif%21"></a>Procedures: <img src="icon-stored-procedure.gif" align="absmiddle" border="0" /></h5>
 
-<p>Procedure is a decriptor of a database stored procedure. It can be created in the modeler and later invoked using ProcedureQuery. Note that not all databases support stored procedures. </p>
+<p>Procedure is a descriptor of a database stored procedure. It can be created in the modeler and later invoked using ProcedureQuery. Note that not all databases support stored procedures. </p>
 
 <h5><a name="GeneralNavigation-Query%3A%21iconquery.gif%21"></a>Query: <img src="icon-query.gif" align="absmiddle" border="0" /></h5>
 
-<p>Cayenne allows to store queries in the DataMap. There are three types of Cayenne queries that can be created in the Modeler - object select query, raw SQL query, and procedure query.</p></div>
+<p>Cayenne allows to store queries in the DataMap. There are 4 types of Cayenne queries that can be created in the Modeler - object select query, raw SQL query, procedure query and EJBQL query.</p></div>
 </div>
   <div class="clearer">.</div>
   <div style="height: 12px; background-image: url('../../../../images/border_bottom.gif'); background-repeat: repeat-x;"></div>

Added: cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Introduction to CayenneModeler/General Navigation/modeler-toolbar.png
URL: http://svn.apache.org/viewvc/cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler%20Guide/Introduction%20to%20CayenneModeler/General%20Navigation/modeler-toolbar.png?rev=900003&view=auto
==============================================================================
Files cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Introduction to CayenneModeler/General Navigation/modeler-toolbar.png (added) and cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Introduction to CayenneModeler/General Navigation/modeler-toolbar.png Sat Jan 16 17:27:39 2010 differ

Modified: cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Modeling Object Layer/CayenneModeler Flattened Relationships/index.html
URL: http://svn.apache.org/viewvc/cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler%20Guide/Modeling%20Object%20Layer/CayenneModeler%20Flattened%20Relationships/index.html?rev=900003&r1=900002&r2=900003&view=diff
==============================================================================
--- cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Modeling Object Layer/CayenneModeler Flattened Relationships/index.html (original)
+++ cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Modeling Object Layer/CayenneModeler Flattened Relationships/index.html Sat Jan 16 17:27:39 2010
@@ -38,6 +38,7 @@
 <li><a href="../../../../Documentation/Modeler Guide/Modeling Object Layer/Inheritance overview/index.html">Inheritance overview</a></li>
 <li><a href="../../../../Documentation/Modeler Guide/Modeling Object Layer/Modeling ObjEntities/index.html">Modeling ObjEntities</a></li>
 <li><a href="../../../../Documentation/Modeler Guide/Modeling Object Layer/Modeling Inheritance/index.html">Modeling Inheritance</a></li>
+<li><a href="../../../../Documentation/Modeler Guide/Modeling Object Layer/Modeling Embeddables/index.html">Modeling Embeddables</a></li>
 <li><a href="../../../../Documentation/Modeler Guide/Modeling Object Layer/Modeling Enumerations/index.html">Modeling Enumerations</a></li>
 <li><a href="../../../../Documentation/Modeler Guide/Modeling Object Layer/Many-to-Many Relationships/index.html">Many-to-Many Relationships</a></li>
 <li><a href="../../../../Documentation/Modeler Guide/Modeling Object Layer/CayenneModeler Flattened Relationships/index.html">CayenneModeler Flattened Relationships</a><ul>
@@ -56,18 +57,19 @@
 </div>
 <div id="ConfluenceContent"><h3><a name="CayenneModelerFlattenedRelationships-FlattenedRelationships"></a>Flattened Relationships</h3>
 
-<p>ObjRelationships that map to more than a single DbRelationship are called "flattened".</p>
+<p>ObjRelationships that map to more than a single DbRelationship are called <tt>"flattened"</tt>.</p>
 
 <p>The most common case for using flattened relationships is modeling many-to-many relationships with a join table. E.g. ARTIST DbEntity has to-many relationship to ARTIST_EXHIBIT; ARTIST_EXHIBIT in turn has a to-one relationship to EXHIBIT DbEntity. We can create a single ObjRelationship from Artist ObjEntity to Exhibit ObjEntity that spawns two DbRelationships. This will be a to-many relationship. Lets say it is called "exhibitArray". Generated class file for Artist would contain a getExhibitArray() method returning a list of Exhibits for a given artist instance. An obvious advantage of having a flattened relationship in this case is to avoid mapping a join table as an object, meaningless in the context of the object model.</p>
 
 <p>Flattened relationships work across any combination of to-one and to-many DbRelationships. If all the relationships are to-one, then the resulting flattened relationship is also to-one. If there is at least one to-many, the result is to-many as well.</p>
-<div class='panelMacro'><table class='noteMacro'><colgroup><col width='24'><col></colgroup><tr><td valign='top'><img src="../../../../images/emoticons/warning.gif" width="16" height="16" align="absmiddle" alt="" border="0"></td><td><b>Read-Only Note</b><br /><p>Most of flattened relationships are treated as read-only by Cayenne. Only one (the most commonly used) type is read/write. It is many-to-many (n:m) flattened relationships with a single join table.</p></td></tr></table></div>
-<p>To map an ObjRelationship to a chain of DbRelationships, select ObjRelationship table row and click "Edit Relationship" button in the bottom right. "ObjRelationship Inspector" dialog will appear.</p>
+<div class='panelMacro'><table class='noteMacro'><colgroup><col width='24'><col></colgroup><tr><td valign='top'><img src="../../../../images/emoticons/warning.gif" width="16" height="16" align="absmiddle" alt="" border="0"></td><td><b>Read-Only Note</b><br />Most of flattened relationships are treated as read-only by Cayenne. Only one (the most commonly used) type is read/write. It is many-to-many (n:m) flattened relationships with a single join table.</td></tr></table></div>
 
-<p><img src="objrelationship-path-selection.jpg" align="absmiddle" border="0" /></p>
+<p>To map an ObjRelationship to a chain of DbRelationships, select ObjRelationship table row and click "Edit Relationship" button in the bottom right. "ObjRelationship Inspector" dialog will appear. The dialog contains a DbRelationship navigator, allowing to map regular as well as flattened relationships:</p>
 
-<p>The dialog contains a DbRelationship table. Clicking on each row in this table will show valid choices of DbRelationships. Once you add a "chain" component, another row automatically opens below, so you can build a chain of arbitrary length.</p>
-<div class='panelMacro'><table class='tipMacro'><colgroup><col width='24'><col></colgroup><tr><td valign='top'><img src="../../../../images/emoticons/check.gif" width="16" height="16" align="absmiddle" alt="" border="0"></td><td><b>Join Table Tip</b><br /><p>If you flatten across a join table and this join table was mapped to an ObjEntity (and a correspoding Java class), such ObjEntity can be deleted, as it is no longer needed. Underlying DbEntity must be preserved.</p></td></tr></table></div>
+<p><img src="modeler-flattenedrelationship.png" align="absmiddle" border="0" /></p>
+
+
+<div class='panelMacro'><table class='noteMacro'><colgroup><col width='24'><col></colgroup><tr><td valign='top'><img src="../../../../images/emoticons/warning.gif" width="16" height="16" align="absmiddle" alt="" border="0"></td><td><b>Join Table Tip</b><br />If you flatten across a join table and this join table was mapped to an ObjEntity (and a correspoding Java class), such ObjEntity can be deleted, as it is no longer needed. Underlying DbEntity must be preserved.</td></tr></table></div>
 
 <p>Further information about flattened relationships can be <a href="../../../../Documentation/Cayenne Guide/DataObjects/Flattened Relationships/index.html" title="Flattened Relationships">found here</a>.</p></div>
 </div>

Added: cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Modeling Object Layer/CayenneModeler Flattened Relationships/modeler-flattenedrelationship.png
URL: http://svn.apache.org/viewvc/cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler%20Guide/Modeling%20Object%20Layer/CayenneModeler%20Flattened%20Relationships/modeler-flattenedrelationship.png?rev=900003&view=auto
==============================================================================
Files cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Modeling Object Layer/CayenneModeler Flattened Relationships/modeler-flattenedrelationship.png (added) and cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Modeling Object Layer/CayenneModeler Flattened Relationships/modeler-flattenedrelationship.png Sat Jan 16 17:27:39 2010 differ

Modified: cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Modeling Object Layer/Delete Rules/index.html
URL: http://svn.apache.org/viewvc/cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler%20Guide/Modeling%20Object%20Layer/Delete%20Rules/index.html?rev=900003&r1=900002&r2=900003&view=diff
==============================================================================
--- cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Modeling Object Layer/Delete Rules/index.html (original)
+++ cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Modeling Object Layer/Delete Rules/index.html Sat Jan 16 17:27:39 2010
@@ -38,6 +38,7 @@
 <li><a href="../../../../Documentation/Modeler Guide/Modeling Object Layer/Inheritance overview/index.html">Inheritance overview</a></li>
 <li><a href="../../../../Documentation/Modeler Guide/Modeling Object Layer/Modeling ObjEntities/index.html">Modeling ObjEntities</a></li>
 <li><a href="../../../../Documentation/Modeler Guide/Modeling Object Layer/Modeling Inheritance/index.html">Modeling Inheritance</a></li>
+<li><a href="../../../../Documentation/Modeler Guide/Modeling Object Layer/Modeling Embeddables/index.html">Modeling Embeddables</a></li>
 <li><a href="../../../../Documentation/Modeler Guide/Modeling Object Layer/Modeling Enumerations/index.html">Modeling Enumerations</a></li>
 <li><a href="../../../../Documentation/Modeler Guide/Modeling Object Layer/Many-to-Many Relationships/index.html">Many-to-Many Relationships</a></li>
 <li><a href="../../../../Documentation/Modeler Guide/Modeling Object Layer/CayenneModeler Flattened Relationships/index.html">CayenneModeler Flattened Relationships</a></li>

Modified: cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Modeling Object Layer/Inheritance overview/index.html
URL: http://svn.apache.org/viewvc/cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler%20Guide/Modeling%20Object%20Layer/Inheritance%20overview/index.html?rev=900003&r1=900002&r2=900003&view=diff
==============================================================================
--- cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Modeling Object Layer/Inheritance overview/index.html (original)
+++ cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Modeling Object Layer/Inheritance overview/index.html Sat Jan 16 17:27:39 2010
@@ -40,6 +40,7 @@
 </li>
 <li><a href="../../../../Documentation/Modeler Guide/Modeling Object Layer/Modeling ObjEntities/index.html">Modeling ObjEntities</a></li>
 <li><a href="../../../../Documentation/Modeler Guide/Modeling Object Layer/Modeling Inheritance/index.html">Modeling Inheritance</a></li>
+<li><a href="../../../../Documentation/Modeler Guide/Modeling Object Layer/Modeling Embeddables/index.html">Modeling Embeddables</a></li>
 <li><a href="../../../../Documentation/Modeler Guide/Modeling Object Layer/Modeling Enumerations/index.html">Modeling Enumerations</a></li>
 <li><a href="../../../../Documentation/Modeler Guide/Modeling Object Layer/Many-to-Many Relationships/index.html">Many-to-Many Relationships</a></li>
 <li><a href="../../../../Documentation/Modeler Guide/Modeling Object Layer/CayenneModeler Flattened Relationships/index.html">CayenneModeler Flattened Relationships</a></li>

Modified: cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Modeling Object Layer/Many-to-Many Relationships/index.html
URL: http://svn.apache.org/viewvc/cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler%20Guide/Modeling%20Object%20Layer/Many-to-Many%20Relationships/index.html?rev=900003&r1=900002&r2=900003&view=diff
==============================================================================
--- cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Modeling Object Layer/Many-to-Many Relationships/index.html (original)
+++ cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Modeling Object Layer/Many-to-Many Relationships/index.html Sat Jan 16 17:27:39 2010
@@ -38,6 +38,7 @@
 <li><a href="../../../../Documentation/Modeler Guide/Modeling Object Layer/Inheritance overview/index.html">Inheritance overview</a></li>
 <li><a href="../../../../Documentation/Modeler Guide/Modeling Object Layer/Modeling ObjEntities/index.html">Modeling ObjEntities</a></li>
 <li><a href="../../../../Documentation/Modeler Guide/Modeling Object Layer/Modeling Inheritance/index.html">Modeling Inheritance</a></li>
+<li><a href="../../../../Documentation/Modeler Guide/Modeling Object Layer/Modeling Embeddables/index.html">Modeling Embeddables</a></li>
 <li><a href="../../../../Documentation/Modeler Guide/Modeling Object Layer/Modeling Enumerations/index.html">Modeling Enumerations</a></li>
 <li><a href="../../../../Documentation/Modeler Guide/Modeling Object Layer/Many-to-Many Relationships/index.html">Many-to-Many Relationships</a><ul>
 </ul>

Copied: cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Modeling Object Layer/Modeling Embeddables/index.html (from r899988, cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Modeling Object Layer/Modeling ObjEntities/index.html)
URL: http://svn.apache.org/viewvc/cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler%20Guide/Modeling%20Object%20Layer/Modeling%20Embeddables/index.html?p2=cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler%20Guide/Modeling%20Object%20Layer/Modeling%20Embeddables/index.html&p1=cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler%20Guide/Modeling%20Object%20Layer/Modeling%20ObjEntities/index.html&r1=899988&r2=900003&rev=900003&view=diff
==============================================================================
--- cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Modeling Object Layer/Modeling ObjEntities/index.html (original)
+++ cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Modeling Object Layer/Modeling Embeddables/index.html Sat Jan 16 17:27:39 2010
@@ -18,14 +18,14 @@
 -->
 <html>
   <head>
-    <title>Apache Cayenne Documentation - Modeling ObjEntities</title>
+    <title>Apache Cayenne Documentation - Modeling Embeddables</title>
     <style type="text/css">@import "../../../../style.css";</style>
   </head>
 <body>
   <div class="header">
     <div style="float: left;"><a href="http://cayenne.apache.org/"><img src="../../../../images/logo.gif" align="absmiddle" border="0"></a></div>
     <span class="logoSpaceLink"><a href="../../../../index.html">Cayenne User Documentation</a></span><br />
-    <span class="pagetitle">Modeling ObjEntities</span>
+    <span class="pagetitle">Modeling Embeddables</span>
   </div>
 <div id="cayenne_toc">
 <ul>
@@ -36,10 +36,11 @@
 <li><a href="../../../../Documentation/Modeler Guide/Modeling Database Layer/index.html">Modeling Database Layer</a></li>
 <li><a href="../../../../Documentation/Modeler Guide/Modeling Object Layer/index.html">Modeling Object Layer</a><ul>
 <li><a href="../../../../Documentation/Modeler Guide/Modeling Object Layer/Inheritance overview/index.html">Inheritance overview</a></li>
-<li><a href="../../../../Documentation/Modeler Guide/Modeling Object Layer/Modeling ObjEntities/index.html">Modeling ObjEntities</a><ul>
+<li><a href="../../../../Documentation/Modeler Guide/Modeling Object Layer/Modeling ObjEntities/index.html">Modeling ObjEntities</a></li>
+<li><a href="../../../../Documentation/Modeler Guide/Modeling Object Layer/Modeling Inheritance/index.html">Modeling Inheritance</a></li>
+<li><a href="../../../../Documentation/Modeler Guide/Modeling Object Layer/Modeling Embeddables/index.html">Modeling Embeddables</a><ul>
 </ul>
 </li>
-<li><a href="../../../../Documentation/Modeler Guide/Modeling Object Layer/Modeling Inheritance/index.html">Modeling Inheritance</a></li>
 <li><a href="../../../../Documentation/Modeler Guide/Modeling Object Layer/Modeling Enumerations/index.html">Modeling Enumerations</a></li>
 <li><a href="../../../../Documentation/Modeler Guide/Modeling Object Layer/Many-to-Many Relationships/index.html">Many-to-Many Relationships</a></li>
 <li><a href="../../../../Documentation/Modeler Guide/Modeling Object Layer/CayenneModeler Flattened Relationships/index.html">CayenneModeler Flattened Relationships</a></li>
@@ -54,24 +55,29 @@
 <li><a href="../../../../Documentation/Modeler Guide/Modeling Tips/index.html">Modeling Tips</a></li>
 </ul>
 </div>
-<div id="ConfluenceContent"><h3><a name="ModelingObjEntities-ModelingObjEntities"></a>Modeling ObjEntities</h3>
+<div id="ConfluenceContent"><p>An <tt>Embeddable</tt> is a persistent Java class that does not have its own persistent "identity" ("identity" is an ORM concept similar to "primary key") and is managed by Cayenne as a part of its owning object. Embeddables are mapped in Cayenne similar to ObjEntities, except that they are not linked to any DbEntity. An Embeddable becomes linked to one when it is "embedded" in an owning ObjEntity. "Embedding" means mapping ObjEntity's ObjAttribute to an embeddable type.  A single embeddable can be included ("embedded") in more than one ObjEntity.</p>
 
-<p>Java object layer in Cayenne is modeled as a set of ObjEntities with relationships between them. Each <tt>org.apache.cayenne.map.ObjEntity</tt> consists of a reference to a <tt>org.apache.cayenne.map.DbEntity</tt> (table). It also specifies the Java class for a business object and a set of attributes of this class.</p>
+<p>Embeddable classes are generated by Cayenne (via the Modeler, Ant or Maven), just like other persistent classes. There's no common embeddable superclass, so each embeddable inherits from Object. Still Cayenne generates a familiar pair of <tt>_Xyz</tt> superclass and <tt>Xyz</tt> subclass for each Embeddable.</p>
 
-<p>A default set of ObjEntities is created during reverse engineering the database. It can be modified manually. E.g. certain entities may be excluded, certain attributes deleted if they are not a part of object layer. Some relationships can be "flattened" as described later in this chapter.</p>
+<h3><a name="ModelingEmbeddables-MappinganEmbeddable"></a>Mapping an Embeddable</h3>
 
-<p>Modeler has a useful function that allows to update an ObjEntity after the changes were made to an underlying DbEntity. E.g. if a new database table called PAINTING_INFO was added, and a DbEntity created for this table, the following steps can be taken to quickly create a corresponding ObjEntity.</p>
-<ul>
-	<li>Create a new ObjEntity. Rename it to "PaintingInfo", specify the Java class.</li>
-	<li>From the dropdown of DbEntities select "PAINTING_INFO".</li>
-	<li>While the new entity is selected, from the "Project" menu select "Sync ObjEntity with DbEntity" item.</li>
-	<li>Inspect PaintingInfo attributes and relationships. A set of values matching the underlying DbEntity should've been created.</li>
-</ul>
+<p>A new Embeddable is created by clicking on the "Create Embeddable" button on the toolbar (or selecting an appropriate item from the menu). The only required field is a fully qualified class name:</p>
+
+<p><img src="modeler-newembeddable.png" align="absmiddle" border="0" /></p>
+
+<p>An embeddable can have one or more attributes. Each attribute requires at least the name and the java type specified. Quite often you would also specify the DbAttribute name. Although Embeddable is not connected to a DbEntity just yet, this will save some typing during embedding it to ObjEntities (provided the DB column names for the Embeddable are the same across ObjEntities):</p>
 
+<p><img src="modeler-eattributes.png" align="absmiddle" border="0" /></p>
 
-<h4><a name="ModelingObjEntities-ObjEntityQualifier"></a>ObjEntity Qualifier</h4>
+<h3><a name="ModelingEmbeddables-EmbeddinganEmbeddable"></a>Embedding an Embeddable</h3>
 
-<p>ObjEntities can hold a qualifier expression that is automatically appended to all SelectQueries rooted in a given ObjEntity. Entity qualifier can be viewed as a global data filter for a given entity. One area where this feature is used is <a href="../../../../Documentation/Modeler Guide/Modeling Object Layer/Modeling Inheritance/index.html" title="Modeling Inheritance">inheritance mapping</a>, however by itself it has nothing to do with inheritance as such and can be used standalone. To set an entity qualifier, type a Cayenne expression into the "Qualifier" field of the ObjEntity editor panel.</p></div>
+<p>A process of embedding an Embeddable is rather simple - just select the embeddable type for a given ObjAttribute "java Type". CayenneModeler would automatically include all Embeddable classes it knows about in the Java types dropdown. If the underlying DbEntity has the same column names as the original Embeddable, that's all you need to do. If not, you can override the default column names by clicking on the attribute inspector button ("I") and changing DbAttribute mappings for this particular embedding:</p>
+
+<p><img src="modeler-embeddedinspector.png" align="absmiddle" border="0" /></p>
+
+
+
+</div>
 </div>
   <div class="clearer">.</div>
   <div style="height: 12px; background-image: url('../../../../images/border_bottom.gif'); background-repeat: repeat-x;"></div>

Added: cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Modeling Object Layer/Modeling Embeddables/modeler-eattributes.png
URL: http://svn.apache.org/viewvc/cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler%20Guide/Modeling%20Object%20Layer/Modeling%20Embeddables/modeler-eattributes.png?rev=900003&view=auto
==============================================================================
Files cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Modeling Object Layer/Modeling Embeddables/modeler-eattributes.png (added) and cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Modeling Object Layer/Modeling Embeddables/modeler-eattributes.png Sat Jan 16 17:27:39 2010 differ

Added: cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Modeling Object Layer/Modeling Embeddables/modeler-embeddedinspector.png
URL: http://svn.apache.org/viewvc/cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler%20Guide/Modeling%20Object%20Layer/Modeling%20Embeddables/modeler-embeddedinspector.png?rev=900003&view=auto
==============================================================================
Files cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Modeling Object Layer/Modeling Embeddables/modeler-embeddedinspector.png (added) and cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Modeling Object Layer/Modeling Embeddables/modeler-embeddedinspector.png Sat Jan 16 17:27:39 2010 differ

Added: cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Modeling Object Layer/Modeling Embeddables/modeler-newembeddable.png
URL: http://svn.apache.org/viewvc/cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler%20Guide/Modeling%20Object%20Layer/Modeling%20Embeddables/modeler-newembeddable.png?rev=900003&view=auto
==============================================================================
Files cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Modeling Object Layer/Modeling Embeddables/modeler-newembeddable.png (added) and cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Modeling Object Layer/Modeling Embeddables/modeler-newembeddable.png Sat Jan 16 17:27:39 2010 differ

Modified: cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Modeling Object Layer/Modeling Enumerations/index.html
URL: http://svn.apache.org/viewvc/cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler%20Guide/Modeling%20Object%20Layer/Modeling%20Enumerations/index.html?rev=900003&r1=900002&r2=900003&view=diff
==============================================================================
--- cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Modeling Object Layer/Modeling Enumerations/index.html (original)
+++ cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Modeling Object Layer/Modeling Enumerations/index.html Sat Jan 16 17:27:39 2010
@@ -38,6 +38,7 @@
 <li><a href="../../../../Documentation/Modeler Guide/Modeling Object Layer/Inheritance overview/index.html">Inheritance overview</a></li>
 <li><a href="../../../../Documentation/Modeler Guide/Modeling Object Layer/Modeling ObjEntities/index.html">Modeling ObjEntities</a></li>
 <li><a href="../../../../Documentation/Modeler Guide/Modeling Object Layer/Modeling Inheritance/index.html">Modeling Inheritance</a></li>
+<li><a href="../../../../Documentation/Modeler Guide/Modeling Object Layer/Modeling Embeddables/index.html">Modeling Embeddables</a></li>
 <li><a href="../../../../Documentation/Modeler Guide/Modeling Object Layer/Modeling Enumerations/index.html">Modeling Enumerations</a><ul>
 </ul>
 </li>
@@ -56,21 +57,11 @@
 </div>
 <div id="ConfluenceContent"><h2><a name="ModelingEnumerations-MappingandModelingJavaEnumerations"></a>Mapping and Modeling Java Enumerations</h2>
 
-<p>Cayenne natively supports Java 1.5 <a href="http://java.sun.com/j2se/1.5.0/docs/guide/language/enums.html" rel="nofollow">custom enumerations</a>.  There are two levels of support.  The more flexible method is to implement the Cayenne ExtendedEnumeration interface and provide the database value for each enumeration.  The advantage of implementing this interface is it allows you to specify the exact database value represented by each enumeration and the enumerations are not order-fragile.  If you do not implement this interface, Cayenne will use a fallback approach and only use the enum's actual name (for a text column) or the ordinal position (for a numeric column, which is fragile).</p>
+<p>Cayenne allows to use any <a href="http://java.sun.com/j2se/1.5.0/docs/guide/language/enums.html" rel="nofollow">Java enumeration</a> as an ObjAttribute type. In CayenneModeler's ObjEntity editor, under the Attributes tab, enter the full class name for your enumeration under the Java Type column, and this is it:</p>
 
-<p>Regardless of which incarnation you use, in Cayenne Modeler's ObjEntity editor, under the Attributes tab, give the full class name for your enumeration under the Java Type column.  This column is pre-filled with java.lang.String, etc., but you can provide your own Java type there:</p>
+<p><img src="ColorEnum.png" align="absmiddle" border="0" /></p>
 
-<p><div align="center"><img src="ColorEnum.png" border="0" /></div></p>
-
-<p>Cayenne will auto-register the enumeration at runtime.</p>
-
-<p>There is currently no other modeler support for mapping the enumerations (no "enum editor" in Cayenne Modeler).  You have to hand-create the enumerations yourself, but this isn't too difficult to do.  Choose either Extended/Standard below and use the examples as a pattern for creating your own.</p>
-
-<h3><a name="ModelingEnumerations-ExtendedEnumerations"></a>Extended Enumerations</h3>
-
-<p>Cayenne's extended enumerations need to implement ExtendedEnumeration, which contains only the getDatabaseValue() method.  This method is used to specify the exact database value each enumeration represents.</p>
-
-<p>Here is an example mapping enumerations to integers:</p>
+<p>To convert a DB column value to an enumeration instance and back Cayenne uses enumeration's <tt>name</tt> for character colums (CHAR, VARCHAR, etc) or its <tt>ordinal</tt> for numeric columns. Also Cayenne allows users to explicitly control what value in DB corresponds to a given enumeration instance. To do that, a custom enumeration must implement <tt>org.apache.cayenne.ExtendedEnumeration</tt> interface, overriding <tt>"getDatabaseValue()"</tt> method to provide the DB value. Here is an example of a custom enumeration that maps to DB integers:</p>
 
 <div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
 <pre class="code-java"><span class="code-keyword">import</span> org.apache.cayenne.ExtendedEnumeration;
@@ -80,89 +71,17 @@
 
   <span class="code-keyword">private</span> <span class="code-object">Integer</span> value;
 
-  <span class="code-keyword">private</span> Color(<span class="code-object">Integer</span> value)
-  {
-    <span class="code-keyword">this</span>.value = value;
-  }
-
-  <span class="code-keyword">public</span> <span class="code-object">Integer</span> getDatabaseValue()
-  {
-    <span class="code-keyword">return</span> value;
-  }
-}</pre>
-</div></div>
-
-<p>This instructs Cayenne to read/write 3, 6, and 9 as RED, GREEN, and BLUE, respectively.  The order is unimportant &#8211; if someone re-orders them to be BLUE, GREEN, and RED, all values will still map correctly.</p>
-
-<p>An example mapping enumerations to strings:</p>
-
-<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
-<pre class="code-java"><span class="code-keyword">import</span> org.apache.cayenne.ExtendedEnumeration;
-
-<span class="code-keyword">public</span> <span class="code-keyword">enum</span> State <span class="code-keyword">implements</span> ExtendedEnumeration {
-  ALABAMA(<span class="code-quote">"AL"</span>), ALASKA(<span class="code-quote">"AK"</span>), ARIZONA(<span class="code-quote">"AZ"</span>), MARYLAND(<span class="code-quote">"MD"</span>), VIRGINIA(<span class="code-quote">"VA"</span>);
-
-  <span class="code-keyword">private</span> <span class="code-object">String</span> value;
-
-  <span class="code-keyword">private</span> State(<span class="code-object">String</span> value)
-  {
+  <span class="code-keyword">private</span> Color(<span class="code-object">Integer</span> value) {
     <span class="code-keyword">this</span>.value = value;
   }
 
-  <span class="code-keyword">public</span> <span class="code-object">String</span> getDatabaseValue()
-  {
+  <span class="code-keyword">public</span> <span class="code-object">Integer</span> getDatabaseValue() {
     <span class="code-keyword">return</span> value;
   }
 }</pre>
 </div></div>
 
-<p>In this example, long state names are mapped to the database as their two-letter standard abbreviation.</p>
-
-<p>The final example illustrates how the database can store one value, but you might want to utilize a different internal value for calculations or some other purpose:</p>
-
-<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
-<pre class="code-java"><span class="code-keyword">import</span> org.apache.cayenne.ExtendedEnumeration;
-
-<span class="code-keyword">public</span> <span class="code-keyword">enum</span> InterestTerm <span class="code-keyword">implements</span> ExtendedEnumeration
-{
-  YEARLY(1, 1), QUARTERLY(2, 4), MONTHLY(3, 12);
-
-  <span class="code-keyword">private</span> <span class="code-object">Integer</span> dbValue;
-  <span class="code-keyword">private</span> <span class="code-object">int</span> value;
-
-  <span class="code-keyword">private</span> InterestTerm(<span class="code-object">Integer</span> dbValue, <span class="code-object">int</span> value)
-  {
-    <span class="code-keyword">this</span>.dbValue = dbValue;
-    <span class="code-keyword">this</span>.value = value;
-  }
-
-  <span class="code-keyword">public</span> <span class="code-object">Integer</span> getDatabaseValue()
-  {
-    <span class="code-keyword">return</span> dbValue;
-  }
-
-  <span class="code-keyword">public</span> <span class="code-object">int</span> value()
-  {
-    <span class="code-keyword">return</span> value;
-  }
-}</pre>
-</div></div>
-
-<p>Cayenne will store 1, 2, and 3 as the database values in this case, but the code can call the value() method (which is not part of the ExtendedEnumeration interface) to use a different value for calculations.</p>
-
-<p>As you can see, the constructor can take as many parameters as required and you can add as many methods as you need.  Only getDatabaseValue() is required by Cayenne and that will determine the value persisted for each enumeration.</p>
-
-<h3><a name="ModelingEnumerations-StandardEnumerations"></a>Standard Enumerations</h3>
-
-<p>Cayenne's support for standard enumerations maps the enum's actual name (if a string column) or the ordinal position (if a numeric column).  Given the Color example declared this way:</p>
-
-<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
-<pre class="code-java"><span class="code-keyword">public</span> <span class="code-keyword">enum</span> Color {
-  RED, GREEN, BLUE;
-}</pre>
-</div></div>
-
-<p>Cayenne will persist "RED", "GREEN", or "BLUE" to the database for a string column (you cannot specify the value persisted).  For a numeric column, it will persist 0, 1, and 2, respectively (again, you cannot specify the value &#8211; they are simply the order defined in the Java code).  Numeric columns are especially fragile because if someone re-orders the Java enum to be BLUE, GREEN, and RED, then all previously persisted values of RED and BLUE will swap places when you read from the database (which most likely is incorrect).</p>
+<p>This instructs Cayenne to read/write 3, 6, and 9 as RED, GREEN, and BLUE, respectively.  The order is unimportant - if someone re-orders them to be BLUE, GREEN, and RED in the enum class, all values will still map correctly.</p>
 </div>
 </div>
   <div class="clearer">.</div>

Modified: cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Modeling Object Layer/Modeling Inheritance/index.html
URL: http://svn.apache.org/viewvc/cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler%20Guide/Modeling%20Object%20Layer/Modeling%20Inheritance/index.html?rev=900003&r1=900002&r2=900003&view=diff
==============================================================================
--- cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Modeling Object Layer/Modeling Inheritance/index.html (original)
+++ cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Modeling Object Layer/Modeling Inheritance/index.html Sat Jan 16 17:27:39 2010
@@ -40,6 +40,7 @@
 <li><a href="../../../../Documentation/Modeler Guide/Modeling Object Layer/Modeling Inheritance/index.html">Modeling Inheritance</a><ul>
 </ul>
 </li>
+<li><a href="../../../../Documentation/Modeler Guide/Modeling Object Layer/Modeling Embeddables/index.html">Modeling Embeddables</a></li>
 <li><a href="../../../../Documentation/Modeler Guide/Modeling Object Layer/Modeling Enumerations/index.html">Modeling Enumerations</a></li>
 <li><a href="../../../../Documentation/Modeler Guide/Modeling Object Layer/Many-to-Many Relationships/index.html">Many-to-Many Relationships</a></li>
 <li><a href="../../../../Documentation/Modeler Guide/Modeling Object Layer/CayenneModeler Flattened Relationships/index.html">CayenneModeler Flattened Relationships</a></li>

Modified: cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Modeling Object Layer/Modeling ObjEntities/index.html
URL: http://svn.apache.org/viewvc/cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler%20Guide/Modeling%20Object%20Layer/Modeling%20ObjEntities/index.html?rev=900003&r1=900002&r2=900003&view=diff
==============================================================================
--- cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Modeling Object Layer/Modeling ObjEntities/index.html (original)
+++ cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Modeling Object Layer/Modeling ObjEntities/index.html Sat Jan 16 17:27:39 2010
@@ -40,6 +40,7 @@
 </ul>
 </li>
 <li><a href="../../../../Documentation/Modeler Guide/Modeling Object Layer/Modeling Inheritance/index.html">Modeling Inheritance</a></li>
+<li><a href="../../../../Documentation/Modeler Guide/Modeling Object Layer/Modeling Embeddables/index.html">Modeling Embeddables</a></li>
 <li><a href="../../../../Documentation/Modeler Guide/Modeling Object Layer/Modeling Enumerations/index.html">Modeling Enumerations</a></li>
 <li><a href="../../../../Documentation/Modeler Guide/Modeling Object Layer/Many-to-Many Relationships/index.html">Many-to-Many Relationships</a></li>
 <li><a href="../../../../Documentation/Modeler Guide/Modeling Object Layer/CayenneModeler Flattened Relationships/index.html">CayenneModeler Flattened Relationships</a></li>

Modified: cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Modeling Object Layer/Modeling Remote Persistence/index.html
URL: http://svn.apache.org/viewvc/cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler%20Guide/Modeling%20Object%20Layer/Modeling%20Remote%20Persistence/index.html?rev=900003&r1=900002&r2=900003&view=diff
==============================================================================
--- cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Modeling Object Layer/Modeling Remote Persistence/index.html (original)
+++ cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Modeling Object Layer/Modeling Remote Persistence/index.html Sat Jan 16 17:27:39 2010
@@ -38,6 +38,7 @@
 <li><a href="../../../../Documentation/Modeler Guide/Modeling Object Layer/Inheritance overview/index.html">Inheritance overview</a></li>
 <li><a href="../../../../Documentation/Modeler Guide/Modeling Object Layer/Modeling ObjEntities/index.html">Modeling ObjEntities</a></li>
 <li><a href="../../../../Documentation/Modeler Guide/Modeling Object Layer/Modeling Inheritance/index.html">Modeling Inheritance</a></li>
+<li><a href="../../../../Documentation/Modeler Guide/Modeling Object Layer/Modeling Embeddables/index.html">Modeling Embeddables</a></li>
 <li><a href="../../../../Documentation/Modeler Guide/Modeling Object Layer/Modeling Enumerations/index.html">Modeling Enumerations</a></li>
 <li><a href="../../../../Documentation/Modeler Guide/Modeling Object Layer/Many-to-Many Relationships/index.html">Many-to-Many Relationships</a></li>
 <li><a href="../../../../Documentation/Modeler Guide/Modeling Object Layer/CayenneModeler Flattened Relationships/index.html">CayenneModeler Flattened Relationships</a></li>

Modified: cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Modeling Object Layer/index.html
URL: http://svn.apache.org/viewvc/cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler%20Guide/Modeling%20Object%20Layer/index.html?rev=900003&r1=900002&r2=900003&view=diff
==============================================================================
--- cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Modeling Object Layer/index.html (original)
+++ cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Modeling Object Layer/index.html Sat Jan 16 17:27:39 2010
@@ -38,6 +38,7 @@
 <li><a href="../../../Documentation/Modeler Guide/Modeling Object Layer/Inheritance overview/index.html">Inheritance overview</a></li>
 <li><a href="../../../Documentation/Modeler Guide/Modeling Object Layer/Modeling ObjEntities/index.html">Modeling ObjEntities</a></li>
 <li><a href="../../../Documentation/Modeler Guide/Modeling Object Layer/Modeling Inheritance/index.html">Modeling Inheritance</a></li>
+<li><a href="../../../Documentation/Modeler Guide/Modeling Object Layer/Modeling Embeddables/index.html">Modeling Embeddables</a></li>
 <li><a href="../../../Documentation/Modeler Guide/Modeling Object Layer/Modeling Enumerations/index.html">Modeling Enumerations</a></li>
 <li><a href="../../../Documentation/Modeler Guide/Modeling Object Layer/Many-to-Many Relationships/index.html">Many-to-Many Relationships</a></li>
 <li><a href="../../../Documentation/Modeler Guide/Modeling Object Layer/CayenneModeler Flattened Relationships/index.html">CayenneModeler Flattened Relationships</a></li>
@@ -62,6 +63,7 @@
 	<li><a href="../../../Documentation/Modeler Guide/Modeling Object Layer/Inheritance overview/index.html" title="Inheritance overview">Inheritance overview</a></li>
 	<li><a href="../../../Documentation/Modeler Guide/Modeling Object Layer/Modeling ObjEntities/index.html" title="Modeling ObjEntities">Modeling ObjEntities</a></li>
 	<li><a href="../../../Documentation/Modeler Guide/Modeling Object Layer/Modeling Inheritance/index.html" title="Modeling Inheritance">Modeling Inheritance</a></li>
+	<li><a href="../../../Documentation/Modeler Guide/Modeling Object Layer/Modeling Embeddables/index.html" title="Modeling Embeddables">Modeling Embeddables</a></li>
 	<li><a href="../../../Documentation/Modeler Guide/Modeling Object Layer/Modeling Enumerations/index.html" title="Modeling Enumerations">Modeling Enumerations</a></li>
 	<li><a href="../../../Documentation/Modeler Guide/Modeling Object Layer/Many-to-Many Relationships/index.html" title="Many-to-Many Relationships">Many&#45;to&#45;Many Relationships</a></li>
 	<li><a href="../../../Documentation/Modeler Guide/Modeling Object Layer/CayenneModeler Flattened Relationships/index.html" title="CayenneModeler Flattened Relationships">Flattened Relationships</a></li>

Modified: cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Modeling Tips/index.html
URL: http://svn.apache.org/viewvc/cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler%20Guide/Modeling%20Tips/index.html?rev=900003&r1=900002&r2=900003&view=diff
==============================================================================
--- cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Modeling Tips/index.html (original)
+++ cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Modeling Tips/index.html Sat Jan 16 17:27:39 2010
@@ -44,15 +44,13 @@
 </li>
 </ul>
 </div>
-<div id="ConfluenceContent">
-<p>This section contains a few unorganized tips on Object/Relational modeling in Cayenne. Some of these tips may become obsolete in the future as the Modeler evolves, making many things more transparent to the user.</p>
+<div id="ConfluenceContent"><p>This section contains a few unorganized tips on Object/Relational modeling in Cayenne. Some of these tips may become obsolete in the future as the Modeler evolves, making many things more transparent to the user.</p>
 
 <ul>
 	<li>Pay attention to validation messages when saving the project, this helps preventing lots of runtime errors. Click on the error message to go to the problem spot.</li>
 	<li>All DbRelationships must have reverse relationships.</li>
-	<li>TO-ONE ObjRelationships do not require reverse relationships to work, but TO-MANY currently do.</li>
-	<li>Do not map meaningless primary key DbAttributes (like autogenerated sequential numbers) to ObjAttributes. Simply exclude them from the object model, Cayenne will do the right thing for you.</li>
-	<li>Do not forget that even if you work with an existing database schema, special database objects may need to be created to support automated primary key generation.</li>
+	<li>You do not need to map meaningless primary key columns (like autogenerated sequential numbers) to ObjAttributes. Unless you absolutely need them, exclude them from the object model, and Cayenne will do the right thing for you.</li>
+	<li>Even if you work with an existing database schema, special database objects may need to be created to support automated primary key generation.</li>
 	<li>Display order of attributes and relationships is alphabetic and does not affect Cayenne runtime behavior.</li>
 	<li>Display order of Procedure Parameters is important - this is the order in which stored procedure parameters will be bound. Use "Up" and "Down" buttons in the bottom of the "Parameters" tab to change parameter position.</li>
 </ul>

Modified: cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/ORM Case Study/index.html
URL: http://svn.apache.org/viewvc/cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler%20Guide/ORM%20Case%20Study/index.html?rev=900003&r1=900002&r2=900003&view=diff
==============================================================================
--- cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/ORM Case Study/index.html (original)
+++ cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/ORM Case Study/index.html Sat Jan 16 17:27:39 2010
@@ -61,7 +61,7 @@
 
 <h3><a name="ORMCaseStudy-Project3%3AConvertinganExistingJavaBusinessFramework"></a>Project 3: Converting an Existing Java Business Framework</h3>
 
-<p>Before getting into O/R technology, "Some Company" created a set of Java applications for its sales and marketing teams working with business customers. These applications use a custom persistence framework based on Data Access Objects (DAO - a term for objects that encapsulate the handcoded SQL for their persistence operations). The goal of the project is to convert DAO to Cayenne-based Object/Relational business framework, preserving all business rules, and using the existing database.</p>
+<p>Before getting into O/R technology, "Some Company" created a set of Java applications for its sales and marketing teams working with business customers. These applications use a custom persistence framework. The goal of the project is to convert it to Cayenne-based project, preserving all business rules, and using the existing database.</p>
 
 <h3><a name="ORMCaseStudy-Sections"></a>Sections</h3>