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/11/14 06:57:02 UTC

svn commit: r1034936 [2/2] - in /cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Modeler Guide: ./ Cayenne Project Structure/ Cayenne Project Structure/Cayenne DataMaps/ Cayenne Project Structure/Cayenne Projects/ Common Modeling Tasks...

Modified: cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Modeling Object Layer/Modeling Enumerations/index.html
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Modeler%20Guide/Modeling%20Object%20Layer/Modeling%20Enumerations/index.html?rev=1034936&r1=1034935&r2=1034936&view=diff
==============================================================================
--- cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Modeling Object Layer/Modeling Enumerations/index.html (original)
+++ cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Modeling Object Layer/Modeling Enumerations/index.html Sun Nov 14 05:57:01 2010
@@ -35,9 +35,9 @@
 <li><a href="../../../../Documentation/Modeler Guide/Common Modeling Tasks/index.html">Common Modeling Tasks</a></li>
 <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></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 +56,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" class="external-link" 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><span class="image-wrap" style=""><img src="ColorEnum.png?version=1&amp;modificationDate=1205493649000" style="border: 0px solid black" /></span></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,96 +70,24 @@
 
   <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>
   <div style="height: 12px; background-image: url('../../../../images/border_bottom.gif'); background-repeat: repeat-x;"></div>
 
   <div class="smalltext copyright">
-    Copyright &copy;2001-2008 Apache Software Foundation
+    Copyright &copy;2001-2010 Apache Software Foundation
   </div>
 
 </body>

Modified: cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Modeling Object Layer/Modeling Inheritance/index.html
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Modeler%20Guide/Modeling%20Object%20Layer/Modeling%20Inheritance/index.html?rev=1034936&r1=1034935&r2=1034936&view=diff
==============================================================================
--- cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Modeling Object Layer/Modeling Inheritance/index.html (original)
+++ cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Modeling Object Layer/Modeling Inheritance/index.html Sun Nov 14 05:57:01 2010
@@ -35,11 +35,13 @@
 <li><a href="../../../../Documentation/Modeler Guide/Common Modeling Tasks/index.html">Common Modeling Tasks</a></li>
 <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></li>
 <li><a href="../../../../Documentation/Modeler Guide/Modeling Object Layer/Modeling Inheritance/index.html">Modeling Inheritance</a><ul>
+<li><a href="../../../../Documentation/Modeler Guide/Modeling Object Layer/Modeling Inheritance/Modeling Single Table Inheritance/index.html">Modeling Single Table Inheritance</a></li>
+<li><a href="../../../../Documentation/Modeler Guide/Modeling Object Layer/Modeling Inheritance/Modeling Vertical Inheritance/index.html">Modeling Vertical Inheritance</a></li>
 </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>
@@ -54,58 +56,86 @@
 <li><a href="../../../../Documentation/Modeler Guide/Modeling Tips/index.html">Modeling Tips</a></li>
 </ul>
 </div>
-<div id="ConfluenceContent">
-<h3><a name="ModelingInheritance-ModelingInheritance"></a>Modeling Inheritance</h3>
+<div id="ConfluenceContent"><h2><a name="ModelingInheritance-Overview"></a>Overview</h2>
 
-<p>"Inheritance" is an Object Oriented concept absent from traditional RDBMS world. Still Cayenne allows to map a class hierarchy to the database schema. All classes in the hierarchy map to the same base table (this type of mapping is therefore called "single table inheritance"). One or more columns in the base table are usually assumed to be "class designator columns"; their values determine what object class to use when a fetched row is converted to a persistent object. </p>
+<p>Inheritance is a familiar and a very useful concept to any Java developer. There are three common ways of mapping it to a relational schema. In Cayenne we are calling them "single table", "vertical" and "horizontal". Other ORM frameworks may use different terms for those (e.g. in JPA "single table" is called "single table per class", "vertical" - "joined subclass", and "horizontal" - "table per concrete class", still they are referring to the same types of mapping). The picture below is a high-level representation of these three strategies. </p>
 
-<h4><a name="ModelingInheritance-CreatingObjEntityHierarchy"></a>Creating ObjEntity Hierarchy</h4>
+<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>As of this writing Cayenne does not support horizontal inheritance. It may in the future.</td></tr></table></div>
 
-<p>Consider the following class hierarchy that we want to map to a PERSON table:</p>
+<p><span class="image-wrap" style=""><img src="inheritance-overview.png?version=1&amp;modificationDate=1280231662000" style="border: 0px solid black" /></span></p>
 
-<p><img src="inheritance-diagram.jpg" align="absmiddle" border="0" /></p>
+<p>We'll discuss them in general terms in this chapter and provide Cayenne-specific details in dedicated chapters. Here we should mention that ORM inheritance should not be overused and there is some performance penalty associated with it. Often composition is a better way to model a particular problem.</p>
 
-<p>For each of the four Java classes one may create individual ObjEntities, however only AbstractPerson entity would map directly to the underlying "PERSON" DbEntity. For the rest instead of selecting a value from the "Table/View" dropdown, a corresponding "super entity" from the "Inheritance" dropdown should be selected. Note that when an entity inherits from another entity, a list of inherited attributes and relationships shows up as read only information under the corresponding tabs.</p>
 
-<h4><a name="ModelingInheritance-DefiningClassQualifier"></a>Defining Class Qualifier</h4>
+<h2><a name="ModelingInheritance-TypesofInheritance"></a>Types of Inheritance</h2>
 
-<p>Afer creating entity inheritance tree, it is important to configure how the entities differ from each other, so that later when the data is fetched, Cayenne would know which class to instantiate. This is achieved by using entity qualifiers described earlier. Usually all entities in the hierarchy, except for the root, require such qualifier. It should be created in such a way that it completely defines a given entity without considering any subclasses or superclasses. In the example above, if the possible values of the class designator column are "EMPLOYEE", "MANAGER", "CUSTOMER", the following qualifiers might be used:</p>
 
+
+<h3><a name="ModelingInheritance-SingleTableInheritance"></a>Single Table Inheritance</h3>
+
+<p>One database table is used to map all the subclasses and the superclass. So Superclass, Subclass1 and Subclass2 are all mapped to a single table. Such table has to contain columns to store the attributes of an entire class hierarchy. One or more columns are used as "discriminator columns" that tell Cayenne what type of record is stored in a given row. Single table inheritance provides good select performance, however the storage of data is not optimized.</p>
+
+<h3><a name="ModelingInheritance-VerticalInheritance"></a>Vertical Inheritance</h3>
+
+<p>One database table is used to map superclass columns, additionally one table per subclass is joined via a 1..1 relationship with the superclass table. So "Superclass" will have its own table, and extra attributes found in Subclass1 and Subclass2 will be stored in two separate tables joined with the superclass table. Discriminator columns are required for the same reason as with Single Table Inheritance. Vertical inheritance optimizes the data storage and provides a view of data very close to that of the Java classes. However that comes at a cost of doing one or more joins in every query, which may not scale into deep and wide inheritance hierarchies.</p>
+
+<h3><a name="ModelingInheritance-HorizontalInheritance"></a>Horizontal Inheritance</h3>
+
+<p><em>(Currently unsupported by Cayenne)</em></p>
+
+<p>With horizontal inheritance a superclass is usually abstract, and each subclass is mapped to its own independent database table. In our example "Superclass" will not have a table, all attributes, including inherited, of Subclass1 and Subclass2 will be stored in separate tables. Discriminator column is not required. Select performance of the horizontal inheritance mapping is not very good, as a union or a separate query per subclass is used to get the data.</p>
+
+<h3><a name="ModelingInheritance-ComparingORMInheritanceTypes"></a>Comparing ORM Inheritance Types</h3>
+
+<div class='table-wrap'>
 <table class='confluenceTable'><tbody>
 <tr>
-<th class='confluenceTh'>ObjEntity</th>
-<th class='confluenceTh'>Qualifier</th>
-<th class='confluenceTh'>Final Qualifier Generated by Cayenne for SelectQuery</th>
-</tr>
-<tr>
-<td class='confluenceTd'>AbstractPerson</td>
-<td class='confluenceTd'>none</td>
-<td class='confluenceTd'>none</td>
+<th class='confluenceTh'>Inheritance Type</th>
+<th class='confluenceTh'>Discriminator Column</th>
+<th class='confluenceTh'>Primary Key</th>
+<th class='confluenceTh'>Pros and Cons</th>
 </tr>
 <tr>
-<td class='confluenceTd'>CustomerContact</td>
-<td class='confluenceTd'>personType = 'CUSTOMER'</td>
-<td class='confluenceTd'>personType = 'CUSTOMER'</td>
+<td class='confluenceTd'><a href="../../../../Documentation/Modeler Guide/Modeling Object Layer/Modeling Inheritance/Modeling Single Table Inheritance/index.html" title="Modeling Single Table Inheritance">Single Table</a></td>
+<td class='confluenceTd'>required</td>
+<td class='confluenceTd'>shared by superclasses and subclasses</td>
+<td class='confluenceTd'>good select performance (no joins). Storage is not optimized.</td>
 </tr>
 <tr>
-<td class='confluenceTd'>Employee</td>
-<td class='confluenceTd'>personType = 'EMPLOYEE'</td>
-<td class='confluenceTd'>personType = 'EMPLOYEE' or personType = 'MANAGER'</td>
+<td class='confluenceTd'><a href="../../../../Documentation/Modeler Guide/Modeling Object Layer/Modeling Inheritance/Modeling Vertical Inheritance/index.html" title="Modeling Vertical Inheritance">Vertical</a></td>
+<td class='confluenceTd'>required</td>
+<td class='confluenceTd'>propagated from superclass to subclasses via a join</td>
+<td class='confluenceTd'>optimized data storage and a data view close to object oriented one. Adds (N - 1) joins to select, where N is the number of classes in the hierarchy</td>
 </tr>
 <tr>
-<td class='confluenceTd'>Manager</td>
-<td class='confluenceTd'>personType = 'MANAGER'</td>
-<td class='confluenceTd'>personType = 'MANAGER'</td>
+<td class='confluenceTd'>Horizontal <em>(unsupported)</em></td>
+<td class='confluenceTd'>not needed</td>
+<td class='confluenceTd'>independent in each table</td>
+<td class='confluenceTd'>selects normally require a UNION across tables</td>
 </tr>
 </tbody></table>
+</div>
+
+
+<h2><a name="ModelingInheritance-MappingInheritanceinCayenne"></a>Mapping Inheritance in Cayenne</h2>
+
+<p>Now that we discussed various types of inheritance, it should be noted that the type of inheritance <em>is not specified explicitly</em>. Instead Cayenne guesses it from the mapping. This allows for mixing multiple types in a single hierarchy. The following chapters will explain how the mapping is done in each case:</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>Qualifiers Note</b><br /><p>Qualifiers are not inherited! When defining qualifiers for inheritance purposes keep in mind that the actual qualifier built by Cayenne will include the qualifier of a root entity and qualifiers of all its known subentities joined using "or" operator, as shown in the above example. </p></td></tr></table></div></div>
+
+<ol>
+	<li><a href="../../../../Documentation/Modeler Guide/Modeling Object Layer/Modeling Inheritance/Modeling Single Table Inheritance/index.html" title="Modeling Single Table Inheritance">Modeling Single Table Inheritance</a></li>
+	<li><a href="../../../../Documentation/Modeler Guide/Modeling Object Layer/Modeling Inheritance/Modeling Vertical Inheritance/index.html" title="Modeling Vertical Inheritance">Modeling Vertical Inheritance</a></li>
+</ol>
+
+
+
+</div>
 </div>
   <div class="clearer">.</div>
   <div style="height: 12px; background-image: url('../../../../images/border_bottom.gif'); background-repeat: repeat-x;"></div>
 
   <div class="smalltext copyright">
-    Copyright &copy;2001-2008 Apache Software Foundation
+    Copyright &copy;2001-2010 Apache Software Foundation
   </div>
 
 </body>

Modified: cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Modeling Object Layer/Modeling ObjEntities/index.html
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Modeler%20Guide/Modeling%20Object%20Layer/Modeling%20ObjEntities/index.html?rev=1034936&r1=1034935&r2=1034936&view=diff
==============================================================================
--- cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Modeling Object Layer/Modeling ObjEntities/index.html (original)
+++ cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Modeling Object Layer/Modeling ObjEntities/index.html Sun Nov 14 05:57:01 2010
@@ -35,11 +35,11 @@
 <li><a href="../../../../Documentation/Modeler Guide/Common Modeling Tasks/index.html">Common Modeling Tasks</a></li>
 <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>
 </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>
@@ -71,13 +71,13 @@
 
 <h4><a name="ModelingObjEntities-ObjEntityQualifier"></a>ObjEntity Qualifier</h4>
 
-<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>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/Modeling Single Table Inheritance/index.html" title="Modeling Single Table 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>
 </div>
   <div class="clearer">.</div>
   <div style="height: 12px; background-image: url('../../../../images/border_bottom.gif'); background-repeat: repeat-x;"></div>
 
   <div class="smalltext copyright">
-    Copyright &copy;2001-2008 Apache Software Foundation
+    Copyright &copy;2001-2010 Apache Software Foundation
   </div>
 
 </body>

Modified: cayenne/main/trunk/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/trunk/docs/doc/src/main/resources/doc/Documentation/Modeler%20Guide/Modeling%20Object%20Layer/Modeling%20Remote%20Persistence/index.html?rev=1034936&r1=1034935&r2=1034936&view=diff
==============================================================================
--- cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Modeling Object Layer/Modeling Remote Persistence/index.html (original)
+++ cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Modeling Object Layer/Modeling Remote Persistence/index.html Sun Nov 14 05:57:01 2010
@@ -35,9 +35,9 @@
 <li><a href="../../../../Documentation/Modeler Guide/Common Modeling Tasks/index.html">Common Modeling Tasks</a></li>
 <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></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>
@@ -76,7 +76,7 @@ See Also <a href="../../../../Documentat
   <div style="height: 12px; background-image: url('../../../../images/border_bottom.gif'); background-repeat: repeat-x;"></div>
 
   <div class="smalltext copyright">
-    Copyright &copy;2001-2008 Apache Software Foundation
+    Copyright &copy;2001-2010 Apache Software Foundation
   </div>
 
 </body>

Modified: cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Modeling Object Layer/index.html
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Modeler%20Guide/Modeling%20Object%20Layer/index.html?rev=1034936&r1=1034935&r2=1034936&view=diff
==============================================================================
--- cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Modeling Object Layer/index.html (original)
+++ cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Modeling Object Layer/index.html Sun Nov 14 05:57:01 2010
@@ -35,9 +35,9 @@
 <li><a href="../../../Documentation/Modeler Guide/Common Modeling Tasks/index.html">Common Modeling Tasks</a></li>
 <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></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>
@@ -59,9 +59,9 @@
 <h3><a name="ModelingObjectLayer-Sections"></a>Sections</h3>
 
 <ol>
-	<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>
@@ -74,7 +74,7 @@
   <div style="height: 12px; background-image: url('../../../images/border_bottom.gif'); background-repeat: repeat-x;"></div>
 
   <div class="smalltext copyright">
-    Copyright &copy;2001-2008 Apache Software Foundation
+    Copyright &copy;2001-2010 Apache Software Foundation
   </div>
 
 </body>

Modified: cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Modeling Queries/index.html
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Modeler%20Guide/Modeling%20Queries/index.html?rev=1034936&r1=1034935&r2=1034936&view=diff
==============================================================================
--- cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Modeling Queries/index.html (original)
+++ cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Modeling Queries/index.html Sun Nov 14 05:57:01 2010
@@ -51,7 +51,7 @@ TBD </p></div>
   <div style="height: 12px; background-image: url('../../../images/border_bottom.gif'); background-repeat: repeat-x;"></div>
 
   <div class="smalltext copyright">
-    Copyright &copy;2001-2008 Apache Software Foundation
+    Copyright &copy;2001-2010 Apache Software Foundation
   </div>
 
 </body>

Modified: cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Modeling Tips/index.html
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Modeler%20Guide/Modeling%20Tips/index.html?rev=1034936&r1=1034935&r2=1034936&view=diff
==============================================================================
--- cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Modeling Tips/index.html (original)
+++ cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Modeling Tips/index.html Sun Nov 14 05:57:01 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>
@@ -62,7 +60,7 @@
   <div style="height: 12px; background-image: url('../../../images/border_bottom.gif'); background-repeat: repeat-x;"></div>
 
   <div class="smalltext copyright">
-    Copyright &copy;2001-2008 Apache Software Foundation
+    Copyright &copy;2001-2010 Apache Software Foundation
   </div>
 
 </body>

Modified: cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/ORM Case Study/Converting an Existing Business Framework/index.html
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Modeler%20Guide/ORM%20Case%20Study/Converting%20an%20Existing%20Business%20Framework/index.html?rev=1034936&r1=1034935&r2=1034936&view=diff
==============================================================================
--- cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/ORM Case Study/Converting an Existing Business Framework/index.html (original)
+++ cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/ORM Case Study/Converting an Existing Business Framework/index.html Sun Nov 14 05:57:01 2010
@@ -54,7 +54,7 @@
 
 <p>If there is an existing data layer (e.g. DAO) that needs to be converted to Cayenne, currently most of the mapping tasks will have to be done manually using the Modeler.</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>Note for EOF Users</b><br /><p>CayenneModeler provides import function for the EOModels. So most of the mapping conversions should be automatic.</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><b>Note for EOF Users</b><br />CayenneModeler provides import function for the EOModels. So most of the mapping conversions should be automatic.</td></tr></table></div>
 
 <p>In any case there is a good chance of reusing business methods already defined in a persistence framework. And definitely any existing database can be used as is. One possible approach to conversion is to follow these steps:</p>
 
@@ -83,7 +83,7 @@
   <div style="height: 12px; background-image: url('../../../../images/border_bottom.gif'); background-repeat: repeat-x;"></div>
 
   <div class="smalltext copyright">
-    Copyright &copy;2001-2008 Apache Software Foundation
+    Copyright &copy;2001-2010 Apache Software Foundation
   </div>
 
 </body>

Modified: cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/ORM Case Study/Java Interface to an Existing Database/index.html
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Modeler%20Guide/ORM%20Case%20Study/Java%20Interface%20to%20an%20Existing%20Database/index.html?rev=1034936&r1=1034935&r2=1034936&view=diff
==============================================================================
--- cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/ORM Case Study/Java Interface to an Existing Database/index.html (original)
+++ cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/ORM Case Study/Java Interface to an Existing Database/index.html Sun Nov 14 05:57:01 2010
@@ -67,7 +67,7 @@
   <div style="height: 12px; background-image: url('../../../../images/border_bottom.gif'); background-repeat: repeat-x;"></div>
 
   <div class="smalltext copyright">
-    Copyright &copy;2001-2008 Apache Software Foundation
+    Copyright &copy;2001-2010 Apache Software Foundation
   </div>
 
 </body>

Modified: cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/ORM Case Study/New System/index.html
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Modeler%20Guide/ORM%20Case%20Study/New%20System/index.html?rev=1034936&r1=1034935&r2=1034936&view=diff
==============================================================================
--- cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/ORM Case Study/New System/index.html (original)
+++ cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/ORM Case Study/New System/index.html Sun Nov 14 05:57:01 2010
@@ -67,7 +67,7 @@
   <div style="height: 12px; background-image: url('../../../../images/border_bottom.gif'); background-repeat: repeat-x;"></div>
 
   <div class="smalltext copyright">
-    Copyright &copy;2001-2008 Apache Software Foundation
+    Copyright &copy;2001-2010 Apache Software Foundation
   </div>
 
 </body>

Modified: cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/ORM Case Study/index.html
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Modeler%20Guide/ORM%20Case%20Study/index.html?rev=1034936&r1=1034935&r2=1034936&view=diff
==============================================================================
--- cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/ORM Case Study/index.html (original)
+++ cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/ORM Case Study/index.html Sun Nov 14 05:57:01 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>
 
@@ -77,7 +77,7 @@
   <div style="height: 12px; background-image: url('../../../images/border_bottom.gif'); background-repeat: repeat-x;"></div>
 
   <div class="smalltext copyright">
-    Copyright &copy;2001-2008 Apache Software Foundation
+    Copyright &copy;2001-2010 Apache Software Foundation
   </div>
 
 </body>

Modified: cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Preferences Panel/ClassPath/index.html
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Modeler%20Guide/Preferences%20Panel/ClassPath/index.html?rev=1034936&r1=1034935&r2=1034936&view=diff
==============================================================================
--- cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Preferences Panel/ClassPath/index.html (original)
+++ cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Preferences Panel/ClassPath/index.html Sun Nov 14 05:57:01 2010
@@ -54,15 +54,15 @@
 
 <p>ClassPath Preferences panel allows users to add or remove locations of the external class libraries (JAR, ZIP, or class directories). These external libraries will be used by CayenneModeler to load JDBC drivers, custom DB adapters, or any other Java resources that are not a part of the Modeler distribution itself.</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>Modeler ClassNotFound Errors</b><br /><p>If you encounter any CLASSPATH-related errors during DB reverse engineering, DataSource configuration, etc., in most cases you simply need to go to Preferences ClassPath panel and add an entry pointing to a missing external library. </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><b>Modeler ClassNotFound Errors</b><br />If you encounter any CLASSPATH-related errors during DB reverse engineering, DataSource configuration, etc., in most cases you simply need to go to Preferences ClassPath panel and add an entry pointing to a missing external library.</td></tr></table></div>
 
-<p><img src="prefs-classpath.jpg" align="absmiddle" border="0" /></p></div>
+<p><span class="image-wrap" style=""><img src="prefs-classpath.jpg?version=1&amp;modificationDate=1140119629000" style="border: 0px solid black" /></span></p></div>
 </div>
   <div class="clearer">.</div>
   <div style="height: 12px; background-image: url('../../../../images/border_bottom.gif'); background-repeat: repeat-x;"></div>
 
   <div class="smalltext copyright">
-    Copyright &copy;2001-2008 Apache Software Foundation
+    Copyright &copy;2001-2010 Apache Software Foundation
   </div>
 
 </body>

Modified: cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Preferences Panel/General Preferences/index.html
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Modeler%20Guide/Preferences%20Panel/General%20Preferences/index.html?rev=1034936&r1=1034935&r2=1034936&view=diff
==============================================================================
--- cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Preferences Panel/General Preferences/index.html (original)
+++ cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Preferences Panel/General Preferences/index.html Sun Nov 14 05:57:01 2010
@@ -58,7 +58,7 @@
   <div style="height: 12px; background-image: url('../../../../images/border_bottom.gif'); background-repeat: repeat-x;"></div>
 
   <div class="smalltext copyright">
-    Copyright &copy;2001-2008 Apache Software Foundation
+    Copyright &copy;2001-2010 Apache Software Foundation
   </div>
 
 </body>

Modified: cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Preferences Panel/Local DataSources/index.html
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Modeler%20Guide/Preferences%20Panel/Local%20DataSources/index.html?rev=1034936&r1=1034935&r2=1034936&view=diff
==============================================================================
--- cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Preferences Panel/Local DataSources/index.html (original)
+++ cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Preferences Panel/Local DataSources/index.html Sun Nov 14 05:57:01 2010
@@ -54,13 +54,13 @@
 
 <p>Local DataSource panel allows to configure a number of named DataSources that can be used for local database access from the Modeler, or to speed up creation of new DataNodes. Also since local DataSources can be associated with any DataNodes, regardless of the actual information configured for a given DataNode, it makes them extremely useful to separate your local connection information from the one in the deployment environment. For example a JNDI DataNode can be used for the database access from the Modeler in the absence of JNDI container.</p>
 
-<p><img src="prefs-datasource.jpg" align="absmiddle" border="0" /></p></div>
+<p><span class="image-wrap" style=""><img src="prefs-datasource.jpg?version=1&amp;modificationDate=1140119441000" style="border: 0px solid black" /></span></p></div>
 </div>
   <div class="clearer">.</div>
   <div style="height: 12px; background-image: url('../../../../images/border_bottom.gif'); background-repeat: repeat-x;"></div>
 
   <div class="smalltext copyright">
-    Copyright &copy;2001-2008 Apache Software Foundation
+    Copyright &copy;2001-2010 Apache Software Foundation
   </div>
 
 </body>

Modified: cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Preferences Panel/index.html
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Modeler%20Guide/Preferences%20Panel/index.html?rev=1034936&r1=1034935&r2=1034936&view=diff
==============================================================================
--- cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Preferences Panel/index.html (original)
+++ cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Preferences Panel/index.html Sun Nov 14 05:57:01 2010
@@ -54,11 +54,11 @@
 
 <p>To display Preferences Panel, select "Tools &gt; Preferences" from the menu:</p>
 
-<p><img src="prefs-open.jpg" align="absmiddle" border="0" /></p>
+<p><span class="image-wrap" style=""><img src="prefs-open.jpg?version=1&amp;modificationDate=1140119270000" style="border: 0px solid black" /></span></p>
 
 <p>A dialog window opens. To navigate to a specific type of preferences, select an item from the list on the left. When "Save" button is clicked, preference selections are permanently stored in the preferences database and will not be lost when Modeler is restarted.</p>
 
-<p><img src="prefs-panel.jpg" align="absmiddle" border="0" /></p>
+<p><span class="image-wrap" style=""><img src="prefs-panel.jpg?version=1&amp;modificationDate=1140119270000" style="border: 0px solid black" /></span></p>
 
 <h3><a name="PreferencesPanel-Sections"></a>Sections</h3>
 
@@ -74,7 +74,7 @@
   <div style="height: 12px; background-image: url('../../../images/border_bottom.gif'); background-repeat: repeat-x;"></div>
 
   <div class="smalltext copyright">
-    Copyright &copy;2001-2008 Apache Software Foundation
+    Copyright &copy;2001-2010 Apache Software Foundation
   </div>
 
 </body>

Modified: cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/index.html
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Modeler%20Guide/index.html?rev=1034936&r1=1034935&r2=1034936&view=diff
==============================================================================
--- cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/index.html (original)
+++ cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/index.html Sun Nov 14 05:57:01 2010
@@ -65,7 +65,7 @@
   <div style="height: 12px; background-image: url('../../images/border_bottom.gif'); background-repeat: repeat-x;"></div>
 
   <div class="smalltext copyright">
-    Copyright &copy;2001-2008 Apache Software Foundation
+    Copyright &copy;2001-2010 Apache Software Foundation
   </div>
 
 </body>