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/07/27 16:27:09 UTC

svn commit: r979722 [3/4] - in /cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation: ./ Cayenne Guide/Ant Tasks/cdataport/ Cayenne Guide/Ant Tasks/cdbgen/ Cayenne Guide/Ant Tasks/cdbimport/ Cayenne Guide/Ant Tasks/cdeploy/ Ca...

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=979722&r1=979721&r2=979722&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 Tue Jul 27 14:27:06 2010
@@ -35,7 +35,6 @@
 <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>
@@ -57,9 +56,9 @@
 </div>
 <div id="ConfluenceContent"><h2><a name="ModelingEnumerations-MappingandModelingJavaEnumerations"></a>Mapping and Modeling Java Enumerations</h2>
 
-<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>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><img src="ColorEnum.png" align="absmiddle" border="0" /></p>
+<p><span class="image-wrap" style=""><img src="ColorEnum.png?version=1&amp;modificationDate=1205493649000" style="border: 0px solid black" /></span></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>
 

Added: cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Modeling Object Layer/Modeling Inheritance/Modeling Single Table Inheritance/book-dbentity.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%20Inheritance/Modeling%20Single%20Table%20Inheritance/book-dbentity.png?rev=979722&view=auto
==============================================================================
Files cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Modeling Object Layer/Modeling Inheritance/Modeling Single Table Inheritance/book-dbentity.png (added) and cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Modeling Object Layer/Modeling Inheritance/Modeling Single Table Inheritance/book-dbentity.png Tue Jul 27 14:27:06 2010 differ

Added: cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Modeling Object Layer/Modeling Inheritance/Modeling Single Table Inheritance/book-qualifier.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%20Inheritance/Modeling%20Single%20Table%20Inheritance/book-qualifier.png?rev=979722&view=auto
==============================================================================
Files cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Modeling Object Layer/Modeling Inheritance/Modeling Single Table Inheritance/book-qualifier.png (added) and cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Modeling Object Layer/Modeling Inheritance/Modeling Single Table Inheritance/book-qualifier.png Tue Jul 27 14:27:06 2010 differ

Added: cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Modeling Object Layer/Modeling Inheritance/Modeling Single Table 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/Modeling%20Single%20Table%20Inheritance/index.html?rev=979722&view=auto
==============================================================================
--- cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Modeling Object Layer/Modeling Inheritance/Modeling Single Table Inheritance/index.html (added)
+++ cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Modeling Object Layer/Modeling Inheritance/Modeling Single Table Inheritance/index.html Tue Jul 27 14:27:06 2010
@@ -0,0 +1,102 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one
+   or more contributor license agreements.  See the NOTICE file
+   distributed with this work for additional information
+   regarding copyright ownership.  The ASF licenses this file
+   to you under the Apache License, Version 2.0 (the
+   "License"); you may not use this file except in compliance
+   with the License.  You may obtain a copy of the License at
+ 
+     http://www.apache.org/licenses/LICENSE-2.0
+ 
+   Unless required by applicable law or agreed to in writing,
+   software distributed under the License is distributed on an
+   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+   KIND, either express or implied.  See the License for the
+   specific language governing permissions and limitations
+   under the License.
+-->
+<html>
+  <head>
+    <title>Apache Cayenne Documentation - Modeling Single Table Inheritance</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 Single Table Inheritance</span>
+  </div>
+<div id="cayenne_toc">
+<ul>
+<li><a href="../../../../../Documentation/Modeler Guide/Introduction to CayenneModeler/index.html">Introduction to CayenneModeler</a></li>
+<li><a href="../../../../../Documentation/Modeler Guide/ORM Case Study/index.html">ORM Case Study</a></li>
+<li><a href="../../../../../Documentation/Modeler Guide/Cayenne Project Structure/index.html">Cayenne Project Structure</a></li>
+<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/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><ul>
+</ul>
+</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>
+<li><a href="../../../../../Documentation/Modeler Guide/Modeling Object Layer/Delete Rules/index.html">Delete Rules</a></li>
+<li><a href="../../../../../Documentation/Modeler Guide/Modeling Object Layer/Modeling Remote Persistence/index.html">Modeling Remote Persistence</a></li>
+</ul>
+</li>
+<li><a href="../../../../../Documentation/Modeler Guide/Modeling Queries/index.html">Modeling Queries</a></li>
+<li><a href="../../../../../Documentation/Modeler Guide/Configuring Deployment Settings/index.html">Configuring Deployment Settings</a></li>
+<li><a href="../../../../../Documentation/Modeler Guide/Migrate Changes between Model and Database/index.html">Migrate Changes between Model and Database</a></li>
+<li><a href="../../../../../Documentation/Modeler Guide/Preferences Panel/index.html">Preferences Panel</a></li>
+<li><a href="../../../../../Documentation/Modeler Guide/Modeling Tips/index.html">Modeling Tips</a></li>
+</ul>
+</div>
+<div id="ConfluenceContent"><h2><a name="ModelingSingleTableInheritance-ModelingSingleTableInheritance"></a>Modeling Single Table Inheritance</h2>
+
+<p>Let's look at a specific example shown below. An online bookstore may be selling regular paper books and electronic books. Both share a number of common attributes placed in a common superclass "Book", but also have a number of specific attributes found only in each book distribution format:</p>
+
+<p><span class="image-wrap" style=""><img src="single-table-inheritance.png?version=1&amp;modificationDate=1280228715730" style="border: 0px solid black" /></span></p>
+
+<blockquote><p>As with many other ORM inheritance examples, this one is contrived and oversimplified. In a real bookstore it is likely that the same book is available in both formats, so mapping this inheritance hierarchy as a composition may be more appropriate, but let's stick with this example for simplicity sake.</p></blockquote>
+
+<p>As you see, a "BOOK" table contains attributes from superclass and all subclasses, plus it has the ID (primary key) and a "TYPE" column which will be used as a "discriminator colum" to determine which sublcass is stored in each row. Mapping of this inheritance hierarchy, just like mapping a single class, starts by creating a DbEntity for the "BOOK" table:</p>
+
+<p><span class="image-wrap" style=""><img src="book-dbentity.png?version=1&amp;modificationDate=1280229286128" style="border: 0px solid black" /></span></p>
+
+<p>Now let's create a superclass "Book", mapping only the columns that should be in the superclass (you can do it by clicking on "Create ObjEntity" icon on the DbEntity toolbar, and then removing unneeded subclass attributes). The next step is to create two subclasses. For each one of them, create a new ObjEntity, then under "Inheritance" dropdown specify "Book" as a superclass. This automatically selects "Table/View" to be "BOOK". </p>
+
+<p>While Book is an abstract class and we did not specify entity qualifier for it (we could if it wasn't abstract), PaperBook and EBook both require "Qualifier" field to be populated. Let's assume that "E" is a designator for e-books, and "P" - for the paper books, then respective qualifiers would look like this:</p>
+
+<ul>
+	<li><tt>type = 'E'</tt></li>
+	<li><tt>type = 'P'</tt></li>
+</ul>
+
+
+<p><span class="image-wrap" style=""><img src="book-qualifier.png?version=1&amp;modificationDate=1280230324133" style="border: 0px solid black" /></span></p>
+
+<blockquote><p>Unlike some other ORMs, Cayenne is really flexible about the semantics of discriminator columns. Qualifier can be any valid Cayenne expression, as long as it doesn't span any relationships (i.e. uses columns of the root table only). It doesn't have to be a single collumn, it can contain less or greater expressions. E.g. "<tt>price &gt; 500</tt>", "<tt>type = 'E' and sizeMB &lt; 1000</tt>", etc. Note however that if the expression is not settable (e.g. when using &lt; or &gt;), Cayenne won't be able to guess the right values on insert and the user application must provide those values explicitly. </p></blockquote>
+
+<blockquote><p>Also note that Qualifiers are not inherited. When defining qualifiers for inheritance purposes keep in mind that a fetch qualifier built by Cayenne will include the qualifier of a root entity of a query and qualifiers of all its known subentities joined using "or" operator. </p></blockquote>
+
+<p>Finally switch to "Attributes" tab and in addition to the already shown inherited attributes, add entity-specific attributes. Note that Relationships can also be inherited, or subclass-specific (not shown in our example).</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-2010 Apache Software Foundation
+  </div>
+
+</body>
+</html>

Propchange: cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Modeling Object Layer/Modeling Inheritance/Modeling Single Table Inheritance/index.html
------------------------------------------------------------------------------
    svn:eol-style = native

Added: cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Modeling Object Layer/Modeling Inheritance/Modeling Single Table Inheritance/single-table-inheritance.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%20Inheritance/Modeling%20Single%20Table%20Inheritance/single-table-inheritance.png?rev=979722&view=auto
==============================================================================
Files cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Modeling Object Layer/Modeling Inheritance/Modeling Single Table Inheritance/single-table-inheritance.png (added) and cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Modeling Object Layer/Modeling Inheritance/Modeling Single Table Inheritance/single-table-inheritance.png Tue Jul 27 14:27:06 2010 differ

Added: cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Modeling Object Layer/Modeling Inheritance/Modeling Vertical Inheritance/flattened_attribute.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%20Inheritance/Modeling%20Vertical%20Inheritance/flattened_attribute.png?rev=979722&view=auto
==============================================================================
Files cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Modeling Object Layer/Modeling Inheritance/Modeling Vertical Inheritance/flattened_attribute.png (added) and cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Modeling Object Layer/Modeling Inheritance/Modeling Vertical Inheritance/flattened_attribute.png Tue Jul 27 14:27:06 2010 differ

Added: cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Modeling Object Layer/Modeling Inheritance/Modeling Vertical 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/Modeling%20Vertical%20Inheritance/index.html?rev=979722&view=auto
==============================================================================
--- cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Modeling Object Layer/Modeling Inheritance/Modeling Vertical Inheritance/index.html (added)
+++ cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Modeling Object Layer/Modeling Inheritance/Modeling Vertical Inheritance/index.html Tue Jul 27 14:27:06 2010
@@ -0,0 +1,85 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one
+   or more contributor license agreements.  See the NOTICE file
+   distributed with this work for additional information
+   regarding copyright ownership.  The ASF licenses this file
+   to you under the Apache License, Version 2.0 (the
+   "License"); you may not use this file except in compliance
+   with the License.  You may obtain a copy of the License at
+ 
+     http://www.apache.org/licenses/LICENSE-2.0
+ 
+   Unless required by applicable law or agreed to in writing,
+   software distributed under the License is distributed on an
+   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+   KIND, either express or implied.  See the License for the
+   specific language governing permissions and limitations
+   under the License.
+-->
+<html>
+  <head>
+    <title>Apache Cayenne Documentation - Modeling Vertical Inheritance</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 Vertical Inheritance</span>
+  </div>
+<div id="cayenne_toc">
+<ul>
+<li><a href="../../../../../Documentation/Modeler Guide/Introduction to CayenneModeler/index.html">Introduction to CayenneModeler</a></li>
+<li><a href="../../../../../Documentation/Modeler Guide/ORM Case Study/index.html">ORM Case Study</a></li>
+<li><a href="../../../../../Documentation/Modeler Guide/Cayenne Project Structure/index.html">Cayenne Project Structure</a></li>
+<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/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><ul>
+</ul>
+</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>
+<li><a href="../../../../../Documentation/Modeler Guide/Modeling Object Layer/Delete Rules/index.html">Delete Rules</a></li>
+<li><a href="../../../../../Documentation/Modeler Guide/Modeling Object Layer/Modeling Remote Persistence/index.html">Modeling Remote Persistence</a></li>
+</ul>
+</li>
+<li><a href="../../../../../Documentation/Modeler Guide/Modeling Queries/index.html">Modeling Queries</a></li>
+<li><a href="../../../../../Documentation/Modeler Guide/Configuring Deployment Settings/index.html">Configuring Deployment Settings</a></li>
+<li><a href="../../../../../Documentation/Modeler Guide/Migrate Changes between Model and Database/index.html">Migrate Changes between Model and Database</a></li>
+<li><a href="../../../../../Documentation/Modeler Guide/Preferences Panel/index.html">Preferences Panel</a></li>
+<li><a href="../../../../../Documentation/Modeler Guide/Modeling Tips/index.html">Modeling Tips</a></li>
+</ul>
+</div>
+<div id="ConfluenceContent"><h2><a name="ModelingVerticalInheritance-ModelingVerticalInheritance"></a>Modeling Vertical Inheritance</h2>
+
+<p>Continuing with the example used for <a href="../../../../../Documentation/Modeler Guide/Modeling Object Layer/Modeling Inheritance/Modeling Single Table Inheritance/index.html" title="Modeling Single Table Inheritance">single table mapping</a>, let's re-map it as vertical inheritance.</p>
+
+<p><span class="image-wrap" style=""><img src="vertical-inheritance.png?version=1&amp;modificationDate=1280230992379" style="border: 0px solid black" /></span></p>
+
+<p>Note that in Cayenne <b>vertical</b> is essentially <b>single table with flattened attributes in subclasses</b>. We'll demonstrate this below.</p>
+
+<p>We need to start by mapping all 3 tables, and creating 1..1 relationship between BOOK and subclass tables ("To Dep PK" must be checked on BOOK side of relationships).</p>
+
+<p>On the ObjEntity end, there is no difference in mapping qualifier (it is needed), superclass, root table ("Table/View" for subclasses is still "BOOK"). The only difference is that subclass-specific attributes are mapped as "flattened attributes":</p>
+
+<p><span class="image-wrap" style=""><img src="flattened_attribute.png?version=1&amp;modificationDate=1280231422730" style="border: 0px solid black" /></span></p>
+
+<blockquote><p>Note that flattened attributes can be used with or without inheritance, however in combination with single-table inheritance mapping, they give us "vertical" inheritance.</p></blockquote></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-2010 Apache Software Foundation
+  </div>
+
+</body>
+</html>

Propchange: cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Modeling Object Layer/Modeling Inheritance/Modeling Vertical Inheritance/index.html
------------------------------------------------------------------------------
    svn:eol-style = native

Added: cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Modeling Object Layer/Modeling Inheritance/Modeling Vertical Inheritance/vertical-inheritance.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%20Inheritance/Modeling%20Vertical%20Inheritance/vertical-inheritance.png?rev=979722&view=auto
==============================================================================
Files cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Modeling Object Layer/Modeling Inheritance/Modeling Vertical Inheritance/vertical-inheritance.png (added) and cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Modeling Object Layer/Modeling Inheritance/Modeling Vertical Inheritance/vertical-inheritance.png Tue Jul 27 14:27:06 2010 differ

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=979722&r1=979721&r2=979722&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 Tue Jul 27 14:27:06 2010
@@ -35,9 +35,10 @@
 <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>
@@ -55,52 +56,80 @@
 <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=1277570842000" 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>

Added: cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Modeling Object Layer/Modeling Inheritance/inheritance-overview.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%20Inheritance/inheritance-overview.png?rev=979722&view=auto
==============================================================================
Files cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Modeling Object Layer/Modeling Inheritance/inheritance-overview.png (added) and cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Modeling Object Layer/Modeling Inheritance/inheritance-overview.png Tue Jul 27 14:27:06 2010 differ

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=979722&r1=979721&r2=979722&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 Tue Jul 27 14:27:06 2010
@@ -35,7 +35,6 @@
 <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>
@@ -72,7 +71,7 @@
 
 <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>

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=979722&r1=979721&r2=979722&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 Tue Jul 27 14:27:06 2010
@@ -35,7 +35,6 @@
 <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>
@@ -69,7 +68,7 @@
 <ul>
 	<li><b>Client Java Class.</b></li>
 	<li><b>Client Superclass.</b><br/>
-See Also <a href="http://cwiki.apache.org/confluence/confluence/display/CAYDOC/Remote+Object+Persistence+Guide" title="Remote Object Persistence Guide">Remote Object Persistence</a></li>
+See Also <a href="https://cwiki.apache.org/confluence/confluence/display/CAYDOC/Remote%20Object%20Persistence%20Guide" title="Remote Object Persistence Guide">Remote Object Persistence</a></li>
 </ul>
 </div>
 </div>

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=979722&r1=979721&r2=979722&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 Tue Jul 27 14:27:06 2010
@@ -35,7 +35,6 @@
 <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>
@@ -60,7 +59,6 @@
 <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>

Modified: cayenne/main/branches/STABLE-3.0/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/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler%20Guide/ORM%20Case%20Study/Converting%20an%20Existing%20Business%20Framework/index.html?rev=979722&r1=979721&r2=979722&view=diff
==============================================================================
--- cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/ORM Case Study/Converting an Existing Business Framework/index.html (original)
+++ cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/ORM Case Study/Converting an Existing Business Framework/index.html Tue Jul 27 14:27:06 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>
 

Modified: cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Preferences Panel/ClassPath/index.html
URL: http://svn.apache.org/viewvc/cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler%20Guide/Preferences%20Panel/ClassPath/index.html?rev=979722&r1=979721&r2=979722&view=diff
==============================================================================
--- cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Preferences Panel/ClassPath/index.html (original)
+++ cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Preferences Panel/ClassPath/index.html Tue Jul 27 14:27:06 2010
@@ -54,9 +54,9 @@
 
 <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>

Modified: cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Preferences Panel/Local DataSources/index.html
URL: http://svn.apache.org/viewvc/cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler%20Guide/Preferences%20Panel/Local%20DataSources/index.html?rev=979722&r1=979721&r2=979722&view=diff
==============================================================================
--- cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Preferences Panel/Local DataSources/index.html (original)
+++ cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Preferences Panel/Local DataSources/index.html Tue Jul 27 14:27:06 2010
@@ -54,7 +54,7 @@
 
 <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>

Modified: cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Preferences Panel/index.html
URL: http://svn.apache.org/viewvc/cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler%20Guide/Preferences%20Panel/index.html?rev=979722&r1=979721&r2=979722&view=diff
==============================================================================
--- cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Preferences Panel/index.html (original)
+++ cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Preferences Panel/index.html Tue Jul 27 14:27:06 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>
 

Modified: cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Overview/Database Support/index.html
URL: http://svn.apache.org/viewvc/cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Overview/Database%20Support/index.html?rev=979722&r1=979721&r2=979722&view=diff
==============================================================================
--- cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Overview/Database Support/index.html (original)
+++ cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Overview/Database Support/index.html Tue Jul 27 14:27:06 2010
@@ -43,10 +43,11 @@
 
 <h3><a name="DatabaseSupport-DB2"></a>DB2</h3>
 
+<div class='table-wrap'>
 <table class='confluenceTable'><tbody>
 <tr>
 <td class='confluenceTd'>Vendor Site</td>
-<td class='confluenceTd'><a href="http://www.ibm.com/db2/" rel="nofollow">http://www.ibm.com/db2/</a></td>
+<td class='confluenceTd'><a href="http://www.ibm.com/db2/" class="external-link" rel="nofollow">http://www.ibm.com/db2/</a></td>
 </tr>
 <tr>
 <td class='confluenceTd'>Driver Name</td>
@@ -57,14 +58,17 @@
 <td class='confluenceTd'>jdbc:db2://127.0.0.1:50000/dbname</td>
 </tr>
 </tbody></table>
+</div>
+
 
 
 <h3><a name="DatabaseSupport-Derby"></a>Derby</h3>
 
+<div class='table-wrap'>
 <table class='confluenceTable'><tbody>
 <tr>
 <td class='confluenceTd'>Vendor Site</td>
-<td class='confluenceTd'><a href="http://db.apache.org/derby/" rel="nofollow">http://db.apache.org/derby/</a></td>
+<td class='confluenceTd'><a href="http://db.apache.org/derby/" class="external-link" rel="nofollow">http://db.apache.org/derby/</a></td>
 </tr>
 <tr>
 <th class='confluenceTh'>&nbsp;</th>
@@ -91,15 +95,18 @@
 <td class='confluenceTd'>jdbc:derby://127.0.0.1/testdb</td>
 </tr>
 </tbody></table>
+</div>
+
 
 
 
 <h3><a name="DatabaseSupport-FireBird%28Interbase%29"></a>FireBird (Interbase)</h3>
 
+<div class='table-wrap'>
 <table class='confluenceTable'><tbody>
 <tr>
 <td class='confluenceTd'>Vendor Site</td>
-<td class='confluenceTd'><a href="http://firebird.sourceforge.net/" rel="nofollow">http://firebird.sourceforge.net/</a></td>
+<td class='confluenceTd'><a href="http://firebird.sourceforge.net/" class="external-link" rel="nofollow">http://firebird.sourceforge.net/</a></td>
 </tr>
 <tr>
 <td class='confluenceTd'>Driver Name</td>
@@ -114,13 +121,16 @@
 <td class='confluenceTd'>FirebirdAdapter hasn't been well-tested for some time. Looking for volunteer FireBird users to help us.</td>
 </tr>
 </tbody></table>
+</div>
+
 
 <h3><a name="DatabaseSupport-FrontBase"></a>FrontBase</h3>
 
+<div class='table-wrap'>
 <table class='confluenceTable'><tbody>
 <tr>
 <td class='confluenceTd'>Vendor Site</td>
-<td class='confluenceTd'><a href="http://www.frontbase.com/" rel="nofollow">http://www.frontbase.com/</a></td>
+<td class='confluenceTd'><a href="http://www.frontbase.com/" class="external-link" rel="nofollow">http://www.frontbase.com/</a></td>
 </tr>
 <tr>
 <td class='confluenceTd'>Driver Name</td>
@@ -131,14 +141,17 @@
 <td class='confluenceTd'>jdbc:FrontBase://127.0.0.1/dbname</td>
 </tr>
 </tbody></table>
+</div>
+
 
 
 <h3><a name="DatabaseSupport-HSQLDB"></a>HSQLDB</h3>
 
+<div class='table-wrap'>
 <table class='confluenceTable'><tbody>
 <tr>
 <td class='confluenceTd'>Vendor Site</td>
-<td class='confluenceTd'><a href="http://hsqldb.sourceforge.net/" rel="nofollow">http://hsqldb.sourceforge.net/</a></td>
+<td class='confluenceTd'><a href="http://hsqldb.sourceforge.net/" class="external-link" rel="nofollow">http://hsqldb.sourceforge.net/</a></td>
 </tr>
 <tr>
 <td class='confluenceTd'>Driver Name</td>
@@ -150,7 +163,8 @@
 </tr>
 <tr>
 <td class='confluenceTd'>Sample URL</td>
-<td class='confluenceTd'>jdbc:hsqldb:<a href="file:/path-to-hsql-db-files" rel="nofollow">file:/path-to-hsql-db-files</a></td>
+<td class='confluenceTd'>jdbc:hsqldb:
+<a href="file:/path-to-hsql-db-files" class="external-link" rel="nofollow">file:/path-to-hsql-db-files</a></td>
 </tr>
 <tr>
 <th class='confluenceTh'>&nbsp;</th>
@@ -161,16 +175,19 @@
 <td class='confluenceTd'>jdbc:hsqldb:hsql://127.0.0.1</td>
 </tr>
 </tbody></table>
+</div>
+
 
 
 <h3><a name="DatabaseSupport-H2"></a>H2</h3>
 <p><em>(since Cayenne 3.0)</em></p>
 
 
+<div class='table-wrap'>
 <table class='confluenceTable'><tbody>
 <tr>
 <td class='confluenceTd'>Vendor Site</td>
-<td class='confluenceTd'><a href="http://www.h2database.com/" rel="nofollow">http://www.h2database.com/</a></td>
+<td class='confluenceTd'><a href="http://www.h2database.com/" class="external-link" rel="nofollow">http://www.h2database.com/</a></td>
 </tr>
 <tr>
 <td class='confluenceTd'>Driver Name</td>
@@ -185,15 +202,18 @@
 <td class='confluenceTd'>jdbc:h2:mem:myTestMem;MVCC=TRUE</td>
 </tr>
 </tbody></table>
+</div>
+
 
 
 <h3><a name="DatabaseSupport-Ingres"></a>Ingres</h3>
 <p><em>(since Cayenne 1.2)</em></p>
 
+<div class='table-wrap'>
 <table class='confluenceTable'><tbody>
 <tr>
 <td class='confluenceTd'>Vendor Site</td>
-<td class='confluenceTd'><a href="http://www.ingres.com/products/ingres-database.php" rel="nofollow">http://www.ingres.com/products/ingres-database.php</a></td>
+<td class='confluenceTd'><a href="http://www.ingres.com/products/ingres-database.php" class="external-link" rel="nofollow">http://www.ingres.com/products/ingres-database.php</a></td>
 </tr>
 <tr>
 <td class='confluenceTd'>Driver Name</td>
@@ -204,13 +224,16 @@
 <td class='confluenceTd'>jdbc:ingres://127.0.0.1:II7/dbname</td>
 </tr>
 </tbody></table>
+</div>
+
 
 <h3><a name="DatabaseSupport-MySQL"></a>MySQL</h3>
 
+<div class='table-wrap'>
 <table class='confluenceTable'><tbody>
 <tr>
 <td class='confluenceTd'>Vendor Site</td>
-<td class='confluenceTd'><a href="http://www.mysql.com/" rel="nofollow">http://www.mysql.com/</a></td>
+<td class='confluenceTd'><a href="http://www.mysql.com/" class="external-link" rel="nofollow">http://www.mysql.com/</a></td>
 </tr>
 <tr>
 <td class='confluenceTd'>Driver Name</td>
@@ -221,13 +244,16 @@
 <td class='confluenceTd'>jdbc:mysql://127.0.0.1/dbname</td>
 </tr>
 </tbody></table>
+</div>
+
 
 <h3><a name="DatabaseSupport-OpenBase"></a>OpenBase</h3>
 
+<div class='table-wrap'>
 <table class='confluenceTable'><tbody>
 <tr>
 <td class='confluenceTd'>Vendor Site</td>
-<td class='confluenceTd'><a href="http://www.openbase.com/" rel="nofollow">http://www.openbase.com/</a></td>
+<td class='confluenceTd'><a href="http://www.openbase.com/" class="external-link" rel="nofollow">http://www.openbase.com/</a></td>
 </tr>
 <tr>
 <td class='confluenceTd'>Driver Name</td>
@@ -238,13 +264,16 @@
 <td class='confluenceTd'>jdbc:openbase://127.0.0.1/dbname</td>
 </tr>
 </tbody></table>
+</div>
+
 
 <h3><a name="DatabaseSupport-Oracle%2810i%29"></a>Oracle (10i)</h3>
 
+<div class='table-wrap'>
 <table class='confluenceTable'><tbody>
 <tr>
 <td class='confluenceTd'>Vendor Site</td>
-<td class='confluenceTd'><a href="http://oracle.com/" rel="nofollow">http://oracle.com/</a></td>
+<td class='confluenceTd'><a href="http://oracle.com/" class="external-link" rel="nofollow">http://oracle.com/</a></td>
 </tr>
 <tr>
 <td class='confluenceTd'>Driver Name</td>
@@ -255,13 +284,16 @@
 <td class='confluenceTd'>jdbc:oracle:thin:@//127.0.0.1:1521/dbname</td>
 </tr>
 </tbody></table>
+</div>
+
 
 <h3><a name="DatabaseSupport-Oracle%288%2C8i%2C9i%29"></a>Oracle (8, 8i, 9i)</h3>
 
+<div class='table-wrap'>
 <table class='confluenceTable'><tbody>
 <tr>
 <td class='confluenceTd'>Vendor Site</td>
-<td class='confluenceTd'><a href="http://oracle.com/" rel="nofollow">http://oracle.com/</a></td>
+<td class='confluenceTd'><a href="http://oracle.com/" class="external-link" rel="nofollow">http://oracle.com/</a></td>
 </tr>
 <tr>
 <td class='confluenceTd'>Driver Name</td>
@@ -272,13 +304,16 @@
 <td class='confluenceTd'>jdbc:oracle:thin:@127.0.0.1:1521:dbname</td>
 </tr>
 </tbody></table>
+</div>
+
 
 <h3><a name="DatabaseSupport-PostgreSQL%287.4%2C8.%29"></a>PostgreSQL (7.4, 8.*)</h3>
 
+<div class='table-wrap'>
 <table class='confluenceTable'><tbody>
 <tr>
 <td class='confluenceTd'>Vendor Site</td>
-<td class='confluenceTd'><a href="http://www.postgresql.org/" rel="nofollow">http://www.postgresql.org/</a></td>
+<td class='confluenceTd'><a href="http://www.postgresql.org/" class="external-link" rel="nofollow">http://www.postgresql.org/</a></td>
 </tr>
 <tr>
 <td class='confluenceTd'>Driver Name</td>
@@ -289,14 +324,17 @@
 <td class='confluenceTd'>jdbc:postgresql://127.0.0.1:5432/dbname</td>
 </tr>
 </tbody></table>
+</div>
+
 
 <h3><a name="DatabaseSupport-SQLite3."></a>SQLite 3.*</h3>
 <p><em>(since Cayenne 3.0)</em></p>
 
+<div class='table-wrap'>
 <table class='confluenceTable'><tbody>
 <tr>
 <td class='confluenceTd'>Vendor Site</td>
-<td class='confluenceTd'><a href="http://www.sqlite.org/" rel="nofollow">http://www.sqlite.org/</a> <a href="http://www.zentus.com/sqlitejdbc/" rel="nofollow">http://www.zentus.com/sqlitejdbc/</a></td>
+<td class='confluenceTd'><a href="http://www.sqlite.org/" class="external-link" rel="nofollow">http://www.sqlite.org/</a> <a href="http://www.zentus.com/sqlitejdbc/" class="external-link" rel="nofollow">http://www.zentus.com/sqlitejdbc/</a></td>
 </tr>
 <tr>
 <td class='confluenceTd'>Driver Name</td>
@@ -307,10 +345,13 @@
 <td class='confluenceTd'>jdbc:sqlite:path_to_dbfile</td>
 </tr>
 </tbody></table>
+</div>
+
 
 
 <h3><a name="DatabaseSupport-SQLServer"></a>SQLServer</h3>
 
+<div class='table-wrap'>
 <table class='confluenceTable'><tbody>
 <tr>
 <th class='confluenceTh'>&nbsp;</th>
@@ -318,7 +359,7 @@
 </tr>
 <tr>
 <td class='confluenceTd'>Vendor Site</td>
-<td class='confluenceTd'><a href="http://msdn.microsoft.com/en-us/data/aa937724.aspx" rel="nofollow">http://msdn.microsoft.com/en-us/data/aa937724.aspx</a></td>
+<td class='confluenceTd'><a href="http://msdn.microsoft.com/en-us/data/aa937724.aspx" class="external-link" rel="nofollow">http://msdn.microsoft.com/en-us/data/aa937724.aspx</a></td>
 </tr>
 <tr>
 <td class='confluenceTd'>Driver Name</td>
@@ -346,7 +387,7 @@
 </tr>
 <tr>
 <td class='confluenceTd'>Vendor Site</td>
-<td class='confluenceTd'><a href="http://jtds.sourceforge.net/" rel="nofollow">http://jtds.sourceforge.net/</a></td>
+<td class='confluenceTd'><a href="http://jtds.sourceforge.net/" class="external-link" rel="nofollow">http://jtds.sourceforge.net/</a></td>
 </tr>
 <tr>
 <td class='confluenceTd'>Driver Name</td>
@@ -357,9 +398,12 @@
 <td class='confluenceTd'>jdbc:jtds:sqlserver://127.0.0.1:5000/dbname</td>
 </tr>
 </tbody></table>
+</div>
+
 
 <h3><a name="DatabaseSupport-Sybase"></a>Sybase</h3>
 
+<div class='table-wrap'>
 <table class='confluenceTable'><tbody>
 <tr>
 <th class='confluenceTh'>&nbsp;</th>
@@ -367,7 +411,7 @@
 </tr>
 <tr>
 <td class='confluenceTd'>Vendor Site</td>
-<td class='confluenceTd'><a href="http://www.sybase.com/" rel="nofollow">http://www.sybase.com/</a></td>
+<td class='confluenceTd'><a href="http://www.sybase.com/" class="external-link" rel="nofollow">http://www.sybase.com/</a></td>
 </tr>
 <tr>
 <td class='confluenceTd'>Driver Name</td>
@@ -383,7 +427,7 @@
 </tr>
 <tr>
 <td class='confluenceTd'>Vendor Site</td>
-<td class='confluenceTd'><a href="http://jtds.sourceforge.net/" rel="nofollow">http://jtds.sourceforge.net/</a></td>
+<td class='confluenceTd'><a href="http://jtds.sourceforge.net/" class="external-link" rel="nofollow">http://jtds.sourceforge.net/</a></td>
 </tr>
 <tr>
 <td class='confluenceTd'>Driver Name</td>
@@ -394,6 +438,8 @@
 <td class='confluenceTd'>jdbc:jtds:sybase://127.0.0.1:5000/dbname;useLOBs=false;TDS=4.2</td>
 </tr>
 </tbody></table>
+</div>
+
 
 
 

Modified: cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Overview/Guide to 1.1 Features/index.html
URL: http://svn.apache.org/viewvc/cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Overview/Guide%20to%201.1%20Features/index.html?rev=979722&r1=979721&r2=979722&view=diff
==============================================================================
--- cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Overview/Guide to 1.1 Features/index.html (original)
+++ cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Overview/Guide to 1.1 Features/index.html Tue Jul 27 14:27:06 2010
@@ -44,10 +44,10 @@
 
 <p>"cayenne.xml" and "*.map.xml" file formats were updated to support new features. 1.1 DTD files are located here:</p>
 <ul>
-	<li><a href="cayenne-project-1_1.dtd?version=1">cayenne-project-1_1.dtd</a></li>
-	<li><a href="cayenne-data-map-1_2.dtd?version=1">cayenne-data-map-1_2.dtd</a></li>
-	<li><a href="cayenne-data-view-1_1.dtd?version=1">cayenne-data-view-1_1.dtd</a></li>
-	<li><a href="cayenne-driver-1_1.dtd?version=1">cayenne-driver-1_1.dtd</a></li>
+	<li><a href="cayenne-project-1_1.dtd?version=1&amp;modificationDate=1159716637000">cayenne-project-1_1.dtd</a></li>
+	<li><a href="cayenne-data-map-1_2.dtd?version=1&amp;modificationDate=1159716637000">cayenne-data-map-1_2.dtd</a></li>
+	<li><a href="cayenne-data-view-1_1.dtd?version=1&amp;modificationDate=1159716637000">cayenne-data-view-1_1.dtd</a></li>
+	<li><a href="cayenne-driver-1_1.dtd?version=1&amp;modificationDate=1159716637000">cayenne-driver-1_1.dtd</a></li>
 </ul>
 
 
@@ -57,7 +57,7 @@
 
 <p>Cayenne now provides a way to share its object cache between DataContexts in the same JVM and across JVMs. The following chapters in the user guide describe this feature:</p>
 <ul>
-	<li><a href="http://cwiki.apache.org/confluence/confluence/display/CAYDOC12/Object+Caching" title="Object Caching">Object Caching</a></li>
+	<li><a href="https://cwiki.apache.org/confluence/confluence/display/CAYDOC12/Object%20Caching" title="Object Caching">Object Caching</a></li>
 	<li><a href="../../../Documentation/Cayenne Guide/Queries/Caching Query Results/index.html" title="Caching Query Results">Caching Query Results</a></li>
 	<li><a href="../../../Documentation/Cayenne Guide/Performance Tuning/Caching Lookup Tables/index.html" title="Caching Lookup Tables">Caching Lookup Tables</a></li>
 </ul>
@@ -77,7 +77,7 @@
 
 <h3><a name="Guideto1.1Features-DataViewsandDVModeler"></a>Data Views and DVModeler</h3>
 
-<p><a href="http://cwiki.apache.org/confluence/confluence/display/CAYDV/Index" title="Index">Index</a> is a completely new addition to Cayenne. This is a framework and a Swing modeler tool to quickly build Swing applications based on Cayenne.</p>
+<p><a href="https://cwiki.apache.org/confluence/confluence/display/CAYDV/Index" title="Index">Index</a> is a completely new addition to Cayenne. This is a framework and a Swing modeler tool to quickly build Swing applications based on Cayenne.</p>
 
 <h3><a name="Guideto1.1Features-GenericMultithreadedandDistributedEventsMechanism"></a>Generic Multithreaded and Distributed Events Mechanism</h3>
 
@@ -136,7 +136,7 @@
 
 <p>Cayenne now supports container-managed transactions. As a result it can be used inside EJBs out of the box. It also allows a high degree of transactions customization. The following user guide chapter explains Transactions design and behavior in details:</p>
 <ul>
-	<li><a href="http://cwiki.apache.org/confluence/confluence/display/CAYDOC30/Design#Design-CayenneTransactions">Understanding Transactions</a></li>
+	<li><a href="https://cwiki.apache.org/confluence/confluence/display/CAYDOC30/Design#Design-CayenneTransactions">Understanding Transactions</a></li>
 </ul>
 
 

Modified: cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Overview/Guide to 1.2 Features/index.html
URL: http://svn.apache.org/viewvc/cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Overview/Guide%20to%201.2%20Features/index.html?rev=979722&r1=979721&r2=979722&view=diff
==============================================================================
--- cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Overview/Guide to 1.2 Features/index.html (original)
+++ cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Overview/Guide to 1.2 Features/index.html Tue Jul 27 14:27:06 2010
@@ -123,7 +123,7 @@
 	<li>New adapter for Ingres</li>
 	<li>MySQL adapter is improved to support referential integrity constraints for InnoDB tables.</li>
 	<li>Adapter Auto Detection. Users no longer need to specify DbAdapter in the Modeler. All standard adapters are "guessed" by Cayenne in runtime using database metadata. Only custom adapters need to be set explicitly, using the new "Adapter" tab in the DataNode Editor panel. This simplifies configuration, makes deployment more transparent, and allows Cayenne to dynamically tweak adapter settings depending on the underlying database version and runtime parameters.</li>
-	<li><a href="http://objectstyle.org/cayenne/userguide/access-stack/extended-types.html" rel="nofollow">Extended type mechanism</a> now allows mapping a persistent property as an interface. This can be achieved via ExtendedTypeFactory API. A custom <tt>ExtendedTypeFactory</tt> is registered in a manner similar to ExtendedType with adapter's <tt>ExtendedTypeMap</tt>: <tt>extendedTypeMap.addFactory(myFactory)</tt>. Cayenne already takes advantage of this API by providing a factory that handles an arbitrary JDK 1.5 Enum via reflection.</li>
+	<li><a href="http://objectstyle.org/cayenne/userguide/access-stack/extended-types.html" class="external-link" rel="nofollow">Extended type mechanism</a> now allows mapping a persistent property as an interface. This can be achieved via ExtendedTypeFactory API. A custom <tt>ExtendedTypeFactory</tt> is registered in a manner similar to ExtendedType with adapter's <tt>ExtendedTypeMap</tt>: <tt>extendedTypeMap.addFactory(myFactory)</tt>. Cayenne already takes advantage of this API by providing a factory that handles an arbitrary JDK 1.5 Enum via reflection.</li>
 </ul>
 
 
@@ -145,7 +145,7 @@
 </ul>
 
 
-<h4><a name="Guideto1.2Features-XMLSerializationCAY%3AXMLSerialization"></a><a href="http://cwiki.apache.org/confluence/confluence/display/CAY/XML+Serialization" title="XML Serialization">XML Serialization</a></h4>
+<h4><a name="Guideto1.2Features-XMLSerializationCAY%3AXMLSerialization"></a><a href="https://cwiki.apache.org/confluence/confluence/display/CAY/XML%20Serialization" title="XML Serialization">XML Serialization</a></h4>
 
 <p>A new package <tt>org.objectstyle.cayenne.xml</tt> provides a way to encode arbitrary Java objects to XML and decode them from XML. It allows a great degree of control over the XML structure, thus simplifying integration with third party XML message systems. M5 features the first usable release of this feature. However there may be more changes in the course of 1.2.</p>
 

Modified: cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Overview/Guide to 3.0 Features/index.html
URL: http://svn.apache.org/viewvc/cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Overview/Guide%20to%203.0%20Features/index.html?rev=979722&r1=979721&r2=979722&view=diff
==============================================================================
--- cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Overview/Guide to 3.0 Features/index.html (original)
+++ cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Overview/Guide to 3.0 Features/index.html Tue Jul 27 14:27:06 2010
@@ -68,7 +68,7 @@
 
 <h3><a name="Guideto3.0Features-DataMapDTDReplacedwithSchema"></a>DataMap DTD Replaced with Schema</h3>
 
-<p>A schema is now available <a href="http://cayenne.apache.org/schema/3.0/modelMap.html" rel="nofollow">here</a> for the DataMap XML format.</p>
+<p>A schema is now available <a href="http://cayenne.apache.org/schema/3.0/modelMap.html" class="external-link" rel="nofollow">here</a> for the DataMap XML format.</p>
 
 <h3><a name="Guideto3.0Features-Embeddables"></a>Embeddables</h3>
 
@@ -76,7 +76,11 @@
 
 <h3><a name="Guideto3.0Features-FlattenedAttributes"></a>Flattened Attributes</h3>
 
-<p>Just like with "flattened" relationships, now there is a way to map an ObjAttribute that spans one or more DbRelationships and is mapped to a column of a joined table.</p>
+<p>Just like with "flattened" relationships, now there is a way to map an ObjAttribute that spans one or more DbRelationships and is mapped to a column of a joined table. An important use of flattened attributes is vertical inheritance mapping, as described below.</p>
+
+<h3><a name="Guideto3.0Features-VerticalInheritance"></a>Vertical Inheritance</h3>
+
+<p>Adding flattened attributes to subclasses in a single-table mapping gives us another powerful way to map inheritance - "vertical inheritance mapping", described in more details <a href="../../../Documentation/Modeler Guide/Modeling Object Layer/Modeling Inheritance/Modeling Vertical Inheritance/index.html" title="Modeling Vertical Inheritance">here</a>.</p>
 
 <h3><a name="Guideto3.0Features-PersistingPrimitivesandaNumberofOtherSimpleProperties"></a>Persisting Primitives and a Number of Other Simple Properties</h3>
 
@@ -168,8 +172,8 @@
 
 <ul>
 	<li>Added support for "long" primary keys (vs. "int" PK used previously)</li>
-	<li>Added adapter for <a href="http://www.sqlite.org/" rel="nofollow">SQLite</a> database.</li>
-	<li>Added adapter for <a href="http://www.h2database.com/" rel="nofollow">H2</a> database.</li>
+	<li>Added adapter for <a href="http://www.sqlite.org/" class="external-link" rel="nofollow">SQLite</a> database.</li>
+	<li>Added adapter for <a href="http://www.h2database.com/" class="external-link" rel="nofollow">H2</a> database.</li>
 	<li>Added stored procedure support on MySQL.</li>
 	<li>Changed default table type on MySQL to InnoDB, added MySQL FK constraints support in the Modeler.</li>
 	<li>Turned on update query batching on SQL Server and Derby.</li>

Modified: cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Remote Object Persistence Guide/Remote Object Persistence CWS Deployment/index.html
URL: http://svn.apache.org/viewvc/cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Remote%20Object%20Persistence%20Guide/Remote%20Object%20Persistence%20CWS%20Deployment/index.html?rev=979722&r1=979721&r2=979722&view=diff
==============================================================================
--- cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Remote Object Persistence Guide/Remote Object Persistence CWS Deployment/index.html (original)
+++ cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Remote Object Persistence Guide/Remote Object Persistence CWS Deployment/index.html Tue Jul 27 14:27:06 2010
@@ -47,7 +47,7 @@
 </div>
 <div id="ConfluenceContent"><h2><a name="RemoteObjectPersistenceCWSDeployment-CWSDeploymentwithHessian"></a>CWS Deployment with Hessian</h2>
 
-<p><a href="http://www.caucho.com/hessian/" rel="nofollow">Hessian-based</a> Cayenne Web Service is a regular Java web application that contains Cayenne mapping file and persistent objects. What makes it a web service is a HessianServlet mapped via web.xml that handles requests from Cayenne Client Tier applications.</p>
+<p><a href="http://www.caucho.com/hessian/" class="external-link" rel="nofollow">Hessian-based</a> Cayenne Web Service is a regular Java web application that contains Cayenne mapping file and persistent objects. What makes it a web service is a HessianServlet mapped via web.xml that handles requests from Cayenne Client Tier applications.</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>Client tier Java classes have to be present on the server together with server DataObjects. So you'll end up with two sets of objects mapped to the same set of entities. Hopefully we will get rid of this inconvenience in the future releases.</td></tr></table></div>
 

Modified: cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Remote Object Persistence Guide/Remote Object Persistence Client Deployment/index.html
URL: http://svn.apache.org/viewvc/cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Remote%20Object%20Persistence%20Guide/Remote%20Object%20Persistence%20Client%20Deployment/index.html?rev=979722&r1=979721&r2=979722&view=diff
==============================================================================
--- cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Remote Object Persistence Guide/Remote Object Persistence Client Deployment/index.html (original)
+++ cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Remote Object Persistence Guide/Remote Object Persistence Client Deployment/index.html Tue Jul 27 14:27:06 2010
@@ -57,7 +57,7 @@
 
 <h3><a name="RemoteObjectPersistenceClientDeployment-ClientDeploymentwithJavaWebStart"></a>Client Deployment with Java Web Start</h3>
 
-<p>One common approach for distributing J2SE applications (especially desktop applications) is via <a href="http://java.sun.com/products/javawebstart/" rel="nofollow">Java Web Start</a>. Below is a sample JNLP deployment descriptor that can be used as a template for Web Start based distribution:</p>
+<p>One common approach for distributing J2SE applications (especially desktop applications) is via <a href="http://java.sun.com/products/javawebstart/" class="external-link" rel="nofollow">Java Web Start</a>. Below is a sample JNLP deployment descriptor that can be used as a template for Web Start based distribution:</p>
 
 <div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
 <pre class="code-java">&lt;?xml version=<span class="code-quote">"1.0"</span> encoding=<span class="code-quote">"UTF-8"</span>?&gt;

Modified: cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Remote Object Persistence Guide/Remote Object Persistence Installation/index.html
URL: http://svn.apache.org/viewvc/cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Remote%20Object%20Persistence%20Guide/Remote%20Object%20Persistence%20Installation/index.html?rev=979722&r1=979721&r2=979722&view=diff
==============================================================================
--- cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Remote Object Persistence Guide/Remote Object Persistence Installation/index.html (original)
+++ cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Remote Object Persistence Guide/Remote Object Persistence Installation/index.html Tue Jul 27 14:27:06 2010
@@ -54,7 +54,7 @@
 <p>Cayenne web service is no different from a regular Cayenne application, so it requires <b><tt>cayenne-server.jar</tt></b> and all standard dependencies. The only additional required third-party library is Hessian:</p>
 
 <ul>
-	<li><a href="http://www.caucho.com/hessian/" rel="nofollow">Hessian Library</a>, version 3.1.6.</li>
+	<li><a href="http://www.caucho.com/hessian/" class="external-link" rel="nofollow">Hessian Library</a>, version 3.1.6.</li>
 </ul>
 
 
@@ -63,15 +63,15 @@
 <p>On the client <b><tt>cayenne-client.jar</tt></b> is needed. This is a stripped-down version of Cayenne runtime. The following third party dependencies are needed (all included in "lib/third-party" directory of the distribution, except for hessian):</p>
 
 <ul>
-	<li><a href="http://jakarta.apache.org/commons/logging/" rel="nofollow">Apache Commons Logging</a>, version 1.1.</li>
-	<li><a href="http://jakarta.apache.org/commons/collections" rel="nofollow">Apache Commons Collections</a>, version 3.1.</li>
-	<li><a href="http://www.caucho.com/hessian/" rel="nofollow">Hessian Library</a>, version 3.1.6.</li>
+	<li><a href="http://jakarta.apache.org/commons/logging/" class="external-link" rel="nofollow">Apache Commons Logging</a>, version 1.1.</li>
+	<li><a href="http://jakarta.apache.org/commons/collections" class="external-link" rel="nofollow">Apache Commons Collections</a>, version 3.1.</li>
+	<li><a href="http://www.caucho.com/hessian/" class="external-link" rel="nofollow">Hessian Library</a>, version 3.1.6.</li>
 </ul>
 
 
 <p>Note that there can be issues with running different versions of Hessian on the client and server since the Hessian protocols sometimes change between even minor releases. We recommend you keep them matched or look at the Hessian source to decide whether you might have compatibility issues.</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>Hessian Versions</b><br />Cayenne 3.0 works correctly with Hessian 3.0.x and 3.1.x. Hessian 4.0.2 has a <a href="http://maillist.caucho.com/pipermail/hessian-interest/2009-December/000842.html" rel="nofollow">bug</a> that stops ROP. Hessian 3.2.x is binary incompatible with other versions and cannot be used.</td></tr></table></div> </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>Hessian Versions</b><br />Cayenne 3.0 works correctly with Hessian 3.0.x and 3.1.x. Hessian 4.0.2 has a <a href="http://maillist.caucho.com/pipermail/hessian-interest/2009-December/000842.html" class="external-link" rel="nofollow">bug</a> that stops ROP. Hessian 3.2.x is binary incompatible with other versions and cannot be used.</td></tr></table></div> </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/Remote Object Persistence Guide/Remote Object Persistence Introduction/index.html
URL: http://svn.apache.org/viewvc/cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Remote%20Object%20Persistence%20Guide/Remote%20Object%20Persistence%20Introduction/index.html?rev=979722&r1=979721&r2=979722&view=diff
==============================================================================
--- cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Remote Object Persistence Guide/Remote Object Persistence Introduction/index.html (original)
+++ cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Remote Object Persistence Guide/Remote Object Persistence Introduction/index.html Tue Jul 27 14:27:06 2010
@@ -49,7 +49,7 @@
 
 <p>The following picture compares a regular Cayenne web application and a rich client application that uses remote object persistence technology:</p>
 
-<p><img src="remote-object-persistence.jpg" align="absmiddle" border="0" /></p>
+<p><span class="image-wrap" style=""><img src="remote-object-persistence.jpg?version=1&amp;modificationDate=1144048717000" style="border: 0px solid black" /></span></p>
 
 <p>Persistence stack above consists of the following parts:</p>
 

Modified: 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
URL: http://svn.apache.org/viewvc/cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Remote%20Object%20Persistence%20Guide/Remote%20Object%20Persistence%20Tutorial/Remote%20Object%20Persistence%20Tutorial%20Authentication/index.html?rev=979722&r1=979721&r2=979722&view=diff
==============================================================================
--- 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 (original)
+++ 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 Tue Jul 27 14:27:06 2010
@@ -106,11 +106,12 @@
 
 <p>Now create a new file called {["realm.properties"}} <em>at the root of the server project</em> and put user login/password in there:</p>
 
-<p><div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent panelContent">
+<div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent panelContent">
 <pre>cayenne-user: secret,cayenne-service-user</pre>
-</div></div>.</p>
+</div></div>
+<p>.</p>
 
-<p>Now let's stop the server and start it again. Everything should start as before, but if you go to <a href="http://localhost:8080/tutorial/cayenne-service" rel="nofollow">http://localhost:8080/tutorial/cayenne-service</a>, your browser should pop up authentication dialog. Enter "cayenne-user/secret" for user name / password, and you should see "Hessian Requires POST" message. So the server is now secured.</p>
+<p>Now let's stop the server and start it again. Everything should start as before, but if you go to <a href="http://localhost:8080/tutorial/cayenne-service" class="external-link" rel="nofollow">http://localhost:8080/tutorial/cayenne-service</a>, your browser should pop up authentication dialog. Enter "cayenne-user/secret" for user name / password, and you should see "Hessian Requires POST" message. So the server is now secured.</p>
 
 <h2><a name="RemoteObjectPersistenceTutorialAuthentication-RunningClientwithBasicAuthentication"></a>Running Client with Basic Authentication</h2>
 

Modified: 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
URL: http://svn.apache.org/viewvc/cayenne/main/branches/STABLE-3.0/docs/doc/src/main/resources/doc/Documentation/Remote%20Object%20Persistence%20Guide/Remote%20Object%20Persistence%20Tutorial/Remote%20Object%20Persistence%20Tutorial%20Client%20Project/index.html?rev=979722&r1=979721&r2=979722&view=diff
==============================================================================
--- 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 (original)
+++ 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 Tue Jul 27 14:27:06 2010
@@ -71,7 +71,7 @@
 </ul>
 
 
-<p><img src="datamap-enableclient.png" align="absmiddle" border="0" /></p>
+<p><span class="image-wrap" style=""><img src="datamap-enableclient.png?version=1&amp;modificationDate=1263431522000" style="border: 0px solid black" /></span></p>
 
 <ul>
 	<li>Select <tt>"Tools &gt; Generate Classes"</tt> menu.</li>