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 2009/10/25 13:06:25 UTC

svn commit: r829552 [1/6] - in /cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation: ./ Cayenne Guide/Ant Tasks/ Cayenne Guide/Ant Tasks/cdataport/ Cayenne Guide/Ant Tasks/cdbgen/ Cayenne Guide/Ant Tasks/cdbimport/ Cayenne Guide/Ant Tasks/...

Author: aadamchik
Date: Sun Oct 25 12:06:20 2009
New Revision: 829552

URL: http://svn.apache.org/viewvc?rev=829552&view=rev
Log:
3.0B1 docs

Added:
    cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/Customization/Custom BatchQueryBuilder Factory/
    cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/Customization/Custom BatchQueryBuilder Factory/index.html
      - copied, changed from r829522, cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/Customization/Custom Query Cache Provider/index.html
    cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/Design/Primary Key Generation/Picture 1.png
Modified:
    cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/Ant Tasks/cdataport/index.html
    cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/Ant Tasks/cdbgen/index.html
    cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/Ant Tasks/cdbimport/index.html
    cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/Ant Tasks/cdeploy/index.html
    cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/Ant Tasks/cgen/index.html
    cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/Ant Tasks/index.html
    cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/Caching and Fresh Data/Individual Object Caching/index.html
    cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/Caching and Fresh Data/Query Result Caching/index.html
    cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/Caching and Fresh Data/index.html
    cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/Customization/Custom DbAdapter/index.html
    cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/Customization/Custom Query Cache Provider/index.html
    cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/Customization/Extended Types/index.html
    cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/Customization/index.html
    cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/DataContext/DataObject State Management/index.html
    cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/DataContext/Moving Objects Between Contexts/index.html
    cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/DataContext/Nested Contexts/index.html
    cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/DataContext/Obtaining DataContext/index.html
    cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/DataObjects/Accessing PK and FK Values/index.html
    cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/DataObjects/DataObject Validation/index.html
    cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/DataObjects/DataObjectUtils/index.html
    cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/DataObjects/DataObjects Example/index.html
    cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/DataObjects/Deleting Objects/index.html
    cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/DataObjects/Flattened Relationships/index.html
    cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/DataObjects/Generic Persistent Class/index.html
    cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/DataObjects/Handling Inheritance/index.html
    cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/DataObjects/Relationships/index.html
    cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/Deployment/Configuring Logging/index.html
    cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/Deployment/Customizing Configuration/index.html
    cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/Deployment/DBCPDataSourceFactory/index.html
    cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/Deployment/Standalone Applications/index.html
    cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/Deployment/Using JNDI/index.html
    cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/Deployment/Web Applications/index.html
    cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/Deployment/index.html
    cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/Design/Cayenne Contract/index.html
    cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/Design/Persistent Object Lifecycle/index.html
    cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/Design/Primary Key Generation/Generated Columns/index.html
    cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/Design/Primary Key Generation/index.html
    cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/Design/Runtime Components/DataChannel/index.html
    cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/Design/Runtime Components/DataSource/index.html
    cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/Design/Runtime Components/Event Package/index.html
    cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/Design/Understanding Transactions/index.html
    cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/Expressions/BNF for ExpressionParser/index.html
    cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/Expressions/Building Expressions/index.html
    cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/Expressions/Expression Factory Utilities/index.html
    cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/Expressions/In-Memory Evaluation/index.html
    cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/Expressions/NULL Handling/index.html
    cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/Expressions/Path Expressions/index.html
    cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/Installation/Cayenne and Maven/index.html
    cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/Installation/JAR Files and Dependencies/index.html
    cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/Installation/Upgrade/index.html
    cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/Installation/index.html
    cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/Lifecycle Callbacks/index.html
    cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/Maven2 Plugins/index.html
    cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/Maven2 Plugins/maven2-cdbgen/index.html
    cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/Maven2 Plugins/maven2-cdbimport/index.html
    cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/Maven2 Plugins/maven2-cgen/index.html
    cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/Maven2 Plugins/maven2-modeler/index.html
    cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/Performance Tuning/Data Rows/index.html
    cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/Performance Tuning/Iterating Through Data Rows/index.html
    cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/Performance Tuning/Paginated Queries/index.html
    cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/Performance Tuning/Prefetching/index.html
    cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/Performance Tuning/Turning off Context Synchronization/index.html
    cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/Queries/Caching Query Results/index.html
    cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/Queries/Customizing Queries/index.html
    cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/Queries/EJBQLQuery/index.html
    cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/Queries/NamedQuery/index.html
    cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/Queries/ObjectIdQuery/index.html
    cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/Queries/Queries Stored in DataMap/index.html
    cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/Queries/QueryChain/index.html
    cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/Queries/RelationshipQuery/index.html
    cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/Queries/SQLTemplate Query/Advanced SQLTemplate/index.html
    cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/Queries/SQLTemplate Query/SQLTemplate Basics/index.html
    cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/Queries/SQLTemplate Query/SQLTemplate Result Mapping/index.html
    cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/Queries/SQLTemplate Query/Scripting SQLTemplate/index.html
    cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/Queries/SelectQuery/Parameterized Queries/index.html
    cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/Queries/SelectQuery/Using Orderings/index.html
    cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/Queries/SelectQuery/index.html
    cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/Quick Start/Tutorial DataContext/index.html
    cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/Quick Start/Tutorial DataObjects/index.html
    cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/Quick Start/Tutorial Delete/index.html
    cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/Quick Start/Tutorial Mapping Query/index.html
    cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/Quick Start/Tutorial SelectQuery/index.html
    cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/Quick Start/Tutorial Setup/index.html
    cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/Quick Start/Tutorial Webapp/index.html
    cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/Quick Start/index.html
    cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/Stored Procedures/Executing a Stored Procedure/index.html
    cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/Stored Procedures/Selecting Objects/index.html
    cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Cayenne Project Structure/Cayenne Projects/index.html
    cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Common Modeling Tasks/Create DataNode/index.html
    cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Common Modeling Tasks/Reverse Engineer Database/index.html
    cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Common Modeling Tasks/Setting DataMap Defaults/index.html
    cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Configuring Deployment Settings/Configuring Caching Behavior/index.html
    cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Introduction to CayenneModeler/Running CayenneModeler/index.html
    cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Modeling Object Layer/CayenneModeler Flattened Relationships/index.html
    cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Modeling Object Layer/Delete Rules/index.html
    cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Modeling Object Layer/Inheritance overview/index.html
    cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Modeling Object Layer/Modeling Enumerations/index.html
    cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Modeling Object Layer/Modeling Inheritance/index.html
    cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/ORM Case Study/Converting an Existing Business Framework/index.html
    cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Modeler Guide/Preferences Panel/ClassPath/index.html
    cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Overview/Database Support/index.html
    cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Overview/Guide to 1.1 Features/index.html
    cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Overview/Guide to 1.2 Features/index.html
    cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Overview/Guide to 3.0 Features/index.html
    cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Overview/License/index.html
    cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Overview/index.html
    cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Remote Object Persistence Guide/Remote Object Persistence CWS Deployment/index.html
    cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Remote Object Persistence Guide/Remote Object Persistence Client Deployment/index.html
    cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Remote Object Persistence Guide/Remote Object Persistence Coding Client/index.html
    cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Remote Object Persistence Guide/Remote Object Persistence Customization/index.html
    cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Remote Object Persistence Guide/Remote Object Persistence Installation/index.html
    cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Remote Object Persistence Guide/Remote Object Persistence Introduction/index.html
    cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Remote Object Persistence Guide/Remote Object Persistence Quick Start/Remote Object Persistence Tutorial Authentication/index.html
    cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Remote Object Persistence Guide/Remote Object Persistence Quick Start/Remote Object Persistence Tutorial Client Code/index.html
    cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Remote Object Persistence Guide/Remote Object Persistence Quick Start/Remote Object Persistence Tutorial Client Project/index.html
    cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Remote Object Persistence Guide/Remote Object Persistence Quick Start/Remote Object Persistence Tutorial Setup/index.html
    cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Remote Object Persistence Guide/Remote Object Persistence Quick Start/Remote Object Persistence Tutorial WebService/index.html
    cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Remote Object Persistence Guide/Remote Object Persistence Quick Start/index.html
    cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/index.html

Modified: cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/Ant Tasks/cdataport/index.html
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne%20Guide/Ant%20Tasks/cdataport/index.html?rev=829552&r1=829551&r2=829552&view=diff
==============================================================================
--- cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/Ant Tasks/cdataport/index.html (original)
+++ cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/Ant Tasks/cdataport/index.html Sun Oct 25 12:06:20 2009
@@ -107,15 +107,7 @@
 <h5><a name="cdataport-Examples"></a>Examples</h5>
 <p>Here is an example of using <tt>cdataport</tt> to port data using all source DataMaps, excluding DBEntities with name matching "BILL_*":</p>
 
-<p>Load the Ant task <em>(note: if you already loaded all Cayenne tasks via an antlib taskdef <a href="../../../../Documentation/Cayenne Guide/Ant Tasks/index.html" title="Ant Tasks">described before</a>, this step is not needed)</em>: </p>
-<div class="code"><div class="codeContent">
-<pre class="code-xml"><span class="code-tag">&lt;taskdef name=<span class="code-quote">"cdataport"</span> classname=<span class="code-quote">"org.apache.cayenne.tools.DataPortTask"</span>&gt;</span>
-     <span class="code-tag">&lt;classpath refid=<span class="code-quote">"classpath"</span>/&gt;</span>
-<span class="code-tag">&lt;/taskdef&gt;</span></pre>
-</div></div>
-
-<p>Invoke the Ant task:</p>
-<div class="code"><div class="codeContent">
+<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
 <pre class="code-xml"><span class="code-tag">&lt;cdataport projectFile=<span class="code-quote">"subdir/cayenne.xml"</span> srcNode=<span class="code-quote">"ProductionNode"</span> destNode=<span class="code-quote">"DevNode"</span> excludeTables=<span class="code-quote">"BILL_*"</span>/&gt;</span></pre>
 </div></div></div>
 </div>

Modified: cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/Ant Tasks/cdbgen/index.html
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne%20Guide/Ant%20Tasks/cdbgen/index.html?rev=829552&r1=829551&r2=829552&view=diff
==============================================================================
--- cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/Ant Tasks/cdbgen/index.html (original)
+++ cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/Ant Tasks/cdbgen/index.html Sun Oct 25 12:06:20 2009
@@ -134,21 +134,15 @@
 
 <h3><a name="cdbgen-Example"></a>Example</h3>
 
-<p>Load the Ant task <em>(note: if you already loaded all Cayenne tasks via an antlib taskdef <a href="../../../../Documentation/Cayenne Guide/Ant Tasks/index.html" title="Ant Tasks">described before</a>, this step is not needed)</em>: </p>
-<div class="code"><div class="codeContent">
-<pre class="code-xml"><span class="code-tag">&lt;taskdef name=<span class="code-quote">"cdbgen"</span> classname=<span class="code-quote">"org.apache.cayenne.tools.DbGeneratorTask"</span>&gt;</span>
-    <span class="code-tag">&lt;classpath refid=<span class="code-quote">"classpath"</span>/&gt;</span>
-<span class="code-tag">&lt;/taskdef&gt;</span></pre>
-</div></div>
-
 <p>Here is an example of using <tt>cdbgen</tt> to create DB schema objects on a local HSQLDB.</p>
 
-<div class="code"><div class="codeContent">
+<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
 <pre class="code-xml">&lt;cdbgen map=<span class="code-quote">"${context.dir}/WEB-INF/DefaultMap.map.xml"</span> 
     adapter=<span class="code-quote">"org.apache.cayenne.dba.hsqldb.HSQLDBAdapter"</span>
     driver=<span class="code-quote">"org.hsqldb.jdbcDriver"</span> 
     url=<span class="code-quote">"jdbc:hsqldb:hsql://localhost/bookmarker"</span> 
-    username=<span class="code-quote">"sa"</span>/&gt;</pre>
+    username=<span class="code-quote">"sa"</span>/&gt;
+</pre>
 </div></div></div>
 </div>
   <div class="clearer">.</div>

Modified: cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/Ant Tasks/cdbimport/index.html
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne%20Guide/Ant%20Tasks/cdbimport/index.html?rev=829552&r1=829551&r2=829552&view=diff
==============================================================================
--- cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/Ant Tasks/cdbimport/index.html (original)
+++ cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/Ant Tasks/cdbimport/index.html Sun Oct 25 12:06:20 2009
@@ -136,21 +136,15 @@
 
 <h3><a name="cdbimport-Example"></a>Example</h3>
 
-<p>Load the Ant task <em>(note: if you already loaded all Cayenne tasks via an antlib taskdef <a href="../../../../Documentation/Cayenne Guide/Ant Tasks/index.html" title="Ant Tasks">described before</a>, this step is not needed)</em>: </p>
-<div class="code"><div class="codeContent">
-<pre class="code-xml"><span class="code-tag">&lt;taskdef name=<span class="code-quote">"cdbimport"</span> classname=<span class="code-quote">"org.apache.cayenne.tools.DbImporterTask"</span>&gt;</span>
-    <span class="code-tag">&lt;classpath refid=<span class="code-quote">"classpath"</span>/&gt;</span>
-<span class="code-tag">&lt;/taskdef&gt;</span></pre>
-</div></div>
-
 <p>Here is an example of using <tt>cdbimport</tt> to create DB schema objects on a local HSQLDB.</p>
 
-<div class="code"><div class="codeContent">
+<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
 <pre class="code-xml">&lt;cdbimport map=<span class="code-quote">"${context.dir}/WEB-INF/DefaultMap.map.xml"</span> 
     adapter=<span class="code-quote">"org.apache.cayenne.dba.hsqldb.HSQLDBAdapter"</span>
     driver=<span class="code-quote">"org.hsqldb.jdbcDriver"</span> 
     url=<span class="code-quote">"jdbc:hsqldb:hsql://localhost/bookmarker"</span> 
-    username=<span class="code-quote">"sa"</span>/&gt;</pre>
+    username=<span class="code-quote">"sa"</span>/&gt;
+</pre>
 </div></div></div>
 </div>
   <div class="clearer">.</div>

Modified: cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/Ant Tasks/cdeploy/index.html
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne%20Guide/Ant%20Tasks/cdeploy/index.html?rev=829552&r1=829551&r2=829552&view=diff
==============================================================================
--- cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/Ant Tasks/cdeploy/index.html (original)
+++ cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/Ant Tasks/cdeploy/index.html Sun Oct 25 12:06:20 2009
@@ -56,7 +56,7 @@
 <li><a href="../../../../Documentation/Cayenne Guide/Customization/index.html">Customization</a></li>
 </ul>
 </div>
-<div id="ConfluenceContent"><table cellpadding='5' width='85%' cellspacing='8px' class='warningMacro' border="0" align='center'><colgroup><col width='24'><col></colgroup><tr><td valign='top'><img src="../../../../images/emoticons/forbidden.gif" width="16" height="16" align="absmiddle" alt="" border="0"></td><td><b class="strong">Deprecation Warning</b><br />cdeploy is deprecated in 3.0 and will be removed in subsequent releases</td></tr></table>
+<div id="ConfluenceContent"><div class='panelMacro'><table class='warningMacro'><colgroup><col width='24'><col></colgroup><tr><td valign='top'><img src="../../../../images/emoticons/forbidden.gif" width="16" height="16" align="absmiddle" alt="" border="0"></td><td><b>Deprecation Warning</b><br />cdeploy is deprecated in 3.0 and will be removed in subsequent releases</td></tr></table></div>
 
 <p><tt>cdeploy</tt> is an Ant task that configures Cayenne connection information in existing jar files that contain Cayenne project information. It is useful for the automation of deployment of Cayenne-based frameworks in different environments.</p>
 
@@ -126,23 +126,20 @@
 
 <h3><a name="cdeploy-Examples"></a>Examples</h3>
 
-<p>Load the Ant task <em>(note: if you already loaded all Cayenne tasks via an antlib taskdef <a href="../../../../Documentation/Cayenne Guide/Ant Tasks/index.html" title="Ant Tasks">described before</a>, this step is not needed)</em>: </p>
-<div class="code"><div class="codeContent">
-<pre class="code-xml"><span class="code-tag">&lt;taskdef name=<span class="code-quote">"cdeploy"</span> classname=<span class="code-quote">"org.apache.cayenne.tools.DeploymentConfigurator"</span>/&gt;</span></pre>
-</div></div>
-
 <p>Here is an example of using <tt>cdeploy</tt> to regenerate a jar file called "business.jar" with connection info located in "alt.driver.xml":</p>
 
-<div class="code"><div class="codeContent">
+<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
 <pre class="code-xml"><span class="code-tag">&lt;cdeploy src=<span class="code-quote">"business.jar"</span>&gt;</span>
     <span class="code-tag">&lt;node name=<span class="code-quote">"main-node"</span> driverFile=<span class="code-quote">"alt.driver.xml"</span>/&gt;</span>
-<span class="code-tag">&lt;/cdeploy&gt;</span></pre>
+<span class="code-tag">&lt;/cdeploy&gt;</span>
+</pre>
 </div></div>
 
 <p>An example of using <tt>cdeploy</tt> to redeploy a 3rd party library that contains DataMaps, but may not contain cayenne.xml:</p>
 
-<div class="code"><div class="codeContent">
-<pre class="code-xml"><span class="code-tag">&lt;cdeploy src=<span class="code-quote">"business.jar"</span> altProjectFile=<span class="code-quote">"my-cayenne.xml"</span>/&gt;</span></pre>
+<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
+<pre class="code-xml"><span class="code-tag">&lt;cdeploy src=<span class="code-quote">"business.jar"</span> altProjectFile=<span class="code-quote">"my-cayenne.xml"</span>/&gt;</span>
+</pre>
 </div></div></div>
 </div>
   <div class="clearer">.</div>

Modified: cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/Ant Tasks/cgen/index.html
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne%20Guide/Ant%20Tasks/cgen/index.html?rev=829552&r1=829551&r2=829552&view=diff
==============================================================================
--- cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/Ant Tasks/cgen/index.html (original)
+++ cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/Ant Tasks/cgen/index.html Sun Oct 25 12:06:20 2009
@@ -168,7 +168,7 @@
 </tr>
 <tr>
 <td class='confluenceTd'>config</td>
-<td class='confluenceTd'>CGen with version="1.2" also supports <span class="nobr"><a href="http://vpp.sourceforge.net/" title="Visit page outside Confluence" rel="nofollow">VPP<sup><img class="rendericon" src="../../../../images/linkext7.gif" height="7" width="7" align="absmiddle" alt="" border="0"/></sup></a></span> config nested elements for configuring the velocity template engine and adding objects to the velocity template. You can also reference a vppconfig element declared outside of the CGen task, but you'll need to insure that both <tt>vppconfig</tt> and <tt>cgen</tt> have been loaded with the same classloader by using the same ant taskdef loaderRef value for both tasks. See the <span class="nobr"><a href="http://vpp.sourceforge.net/manual/vppconfig.html" title="Visit page outside Confluence" rel="nofollow">VPP VPPConfig Manual<sup><img class="rendericon" src="../../../../images/linkext7.gif" height="7" width="7" align="absmiddle" alt="" border="0"/></sup></a></span>
  page for complete information.</td>
+<td class='confluenceTd'>CGen with version="1.2" also supports <a href="http://vpp.sourceforge.net/" rel="nofollow">VPP</a> config nested elements for configuring the velocity template engine and adding objects to the velocity template. You can also reference a vppconfig element declared outside of the CGen task, but you'll need to insure that both <tt>vppconfig</tt> and <tt>cgen</tt> have been loaded with the same classloader by using the same ant taskdef loaderRef value for both tasks. See the <a href="http://vpp.sourceforge.net/manual/vppconfig.html" rel="nofollow">VPP VPPConfig Manual</a> page for complete information.</td>
 <td class='confluenceTd'>No</td>
 </tr>
 </tbody></table>
@@ -176,18 +176,20 @@
 <h3><a name="cgen-Examples"></a>Examples</h3>
 
 <p>Here is an example of using CGen to generate subclass/superclass pairs from DataMap located in "src/datamap.xml". All generated subclasses and superclasses will be saved in the same directory "src/java/dobj" regardless of their package names:</p>
-<div class="code"><div class="codeContent">
-<pre class="code-xml"><span class="code-tag">&lt;cgen map=<span class="code-quote">"src/datamap.xml"</span> destDir=<span class="code-quote">"src/java/dobj"</span> usepkgpath=<span class="code-quote">"false"</span>/&gt;</span></pre>
+<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
+<pre class="code-xml"><span class="code-tag">&lt;cgen map=<span class="code-quote">"src/datamap.xml"</span> destDir=<span class="code-quote">"src/java/dobj"</span> usepkgpath=<span class="code-quote">"false"</span>/&gt;</span>
+</pre>
 </div></div>
 <p>Here is an example of using CGen to generate html pages for all entities starting with "Artist" in the DataMap:</p>
-<div class="code"><div class="codeContent">
+<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
 <pre class="code-xml">&lt;cgen map=<span class="code-quote">"src/datamap.xml"</span> destDir=<span class="code-quote">"src/doc/web"</span> makepairs=<span class="code-quote">"false"</span> usepkgpath=<span class="code-quote">"false"</span>
-    template=<span class="code-quote">"EntityReport.vm"</span> includeEntities=<span class="code-quote">"Artist*"</span> outputPattern=<span class="code-quote">"*Report.html"</span>/&gt;</pre>
+    template=<span class="code-quote">"EntityReport.vm"</span> includeEntities=<span class="code-quote">"Artist*"</span> outputPattern=<span class="code-quote">"*Report.html"</span>/&gt;
+</pre>
 </div></div>
 
 <p>Here is an example of using CGen with a nested config element:</p>
 
-<div class="code"><div class="codeContent">
+<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
 <pre class="code-xml">&lt;cgen map=<span class="code-quote">"src/datamap.xml"</span>
     destDir=<span class="code-quote">"src/doc/web"</span>
     makepairs=<span class="code-quote">"false"</span>
@@ -201,12 +203,13 @@
             <span class="code-tag">&lt;tool key=<span class="code-quote">"myToolName"</span> className=<span class="code-quote">"org.myDomain.MyTool"</span> /&gt;</span>
         <span class="code-tag">&lt;/context&gt;</span>
     <span class="code-tag">&lt;/config&gt;</span>
-<span class="code-tag">&lt;/cgen&gt;</span></pre>
+<span class="code-tag">&lt;/cgen&gt;</span>
+</pre>
 </div></div>
 
 <p>Here is an example of using CGen with vppconfig:</p>
 
-<div class="code"><div class="codeContent">
+<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
 <pre class="code-xml">&lt;typedef name=<span class="code-quote">"vppconfig"</span>
     classname=<span class="code-quote">"foundrylogic.vpp.VPPConfig"</span>
     loaderref=<span class="code-quote">"aclasspathloader"</span>&gt;
@@ -228,7 +231,8 @@
     includeEntities=<span class="code-quote">"Artist*"</span>
     outputPattern=<span class="code-quote">"*Report.html"</span>&gt;
     <span class="code-tag">&lt;config refid=<span class="code-quote">"myconfig"</span> /&gt;</span>
-<span class="code-tag">&lt;/cgen&gt;</span></pre>
+<span class="code-tag">&lt;/cgen&gt;</span>
+</pre>
 </div></div></div>
 </div>
   <div class="clearer">.</div>

Modified: cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/Ant Tasks/index.html
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne%20Guide/Ant%20Tasks/index.html?rev=829552&r1=829551&r2=829552&view=diff
==============================================================================
--- cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/Ant Tasks/index.html (original)
+++ cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/Ant Tasks/index.html Sun Oct 25 12:06:20 2009
@@ -56,7 +56,7 @@
 </div>
 <div id="ConfluenceContent"><h2><a name="AntTasks-Anttasks"></a>Ant tasks</h2>
 
-<p>Cayenne ships with Ant tasks that provide Ant frontend to a number of useful operations in Cayenne.  These tasks are part of the cayenne-tools JAR, which must be available on the ant classpath. The following tasks are included:</p>
+<p>Cayenne ships with Ant tasks that provide Ant frontend to a number of useful operations in Cayenne.  These tasks are part of the cayenne-tools JAR. The following tasks are included:</p>
 
 <ul>
 	<li><b><a href="../../../Documentation/Cayenne Guide/Ant Tasks/cgen/index.html" title="cgen">cgen</a></b> - Java class generator</li>
@@ -68,16 +68,27 @@
 
 
 <h3><a name="AntTasks-ImportingCayenneTasksinbuild.xml"></a>Importing Cayenne Tasks in build.xml</h3>
-<p>Cayenne tasks above can be imported individually using Ant taskdef, as described in each task documentation page. However the users of Ant 1.6 and newer can take advantage of Antlib Ant feature. <span class="nobr"><a href="http://ant.apache.org/manual/CoreTypes/antlib.html" title="Visit page outside Confluence" rel="nofollow">Antlib<sup><img class="rendericon" src="../../../images/linkext7.gif" height="7" width="7" align="absmiddle" alt="" border="0"/></sup></a></span> allows 3rd party tasks and types to be defined easily. Cayenne has an embedded antlib.xml descriptor file in the package <tt>org.apache.cayenne.tools</tt>. All of Cayenne's Ant tasks can be defined at once using the following definition in your Ant build file:</p>
 
-<div class="code"><div class="codeContent">
+<p>All Cayenne tasks above can be imported at once with "typedef". First a user needs to define Classpath structure to include cayenne-tools and a few depdendencies. Here they are shown relative to the Cayenne distro folder. In a real project they may be copied to the appropriate project folders and referenced accordingly:</p>
+
+<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
+<pre class="code-xml"><span class="code-tag">&lt;path id=<span class="code-quote">"classpath"</span>&gt;</span>
+   <span class="code-tag">&lt;fileset dir=<span class="code-quote">"lib"</span> &gt;</span>
+      <span class="code-tag">&lt;include name=<span class="code-quote">"cayenne-tools-X.X.jar"</span> /&gt;</span>
+      <span class="code-tag">&lt;include name=<span class="code-quote">"cayenne-server-X.X.jar"</span> /&gt;</span>
+      <span class="code-tag">&lt;include name=<span class="code-quote">"third-party/vpp-2.2.1.jar"</span> /&gt;</span>
+   <span class="code-tag">&lt;/fileset&gt;</span>
+<span class="code-tag">&lt;/path&gt;</span></pre>
+</div></div>
+
+<p>And then import all tasks with "typedef", referencing Antlib descriptor in Cayenne:</p>
+
+<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
 <pre class="code-xml"><span class="code-tag">&lt;typedef resource=<span class="code-quote">"org/apache/cayenne/tools/antlib.xml"</span>&gt;</span> 
    <span class="code-tag">&lt;classpath refid=<span class="code-quote">"classpath"</span>/&gt;</span> 
 <span class="code-tag">&lt;/typedef&gt;</span></pre>
 </div></div>
 
-<p>When using the Antlib construct, omit the <tt>&lt;taskdef&gt;</tt> elements shown in the examples of each task, as the antlib.xml file defines all of the Cayenne Ant tasks. </p>
-
 <h3><a name="AntTasks-Sections"></a>Sections</h3>
 
 <ol>

Modified: cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/Caching and Fresh Data/Individual Object Caching/index.html
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne%20Guide/Caching%20and%20Fresh%20Data/Individual%20Object%20Caching/index.html?rev=829552&r1=829551&r2=829552&view=diff
==============================================================================
--- cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/Caching and Fresh Data/Individual Object Caching/index.html (original)
+++ cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/Caching and Fresh Data/Individual Object Caching/index.html Sun Oct 25 12:06:20 2009
@@ -71,31 +71,34 @@
 
 <ul>
 	<li><em>Perform a query to refetch one or more objects.</em> Any of the Cayenne selecting queries would refresh previously cached objects:
-<div class="code"><div class="codeContent">
+<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
 <pre class="code-java">Artist a = ...;
 <span class="code-comment">// <span class="code-quote">"a"</span> gets stale, we need to refresh it
 </span>SelectQuery query = <span class="code-keyword">new</span> SelectQuery(Artist.class, ...);
 List&lt;Artist&gt; artists = context.performQuery(query);
-<span class="code-comment">// <span class="code-keyword">if</span> the query result includes <span class="code-quote">"a"</span>, object <span class="code-quote">"a"</span> is now refreshed</span></pre>
+<span class="code-comment">// <span class="code-keyword">if</span> the query result includes <span class="code-quote">"a"</span>, object <span class="code-quote">"a"</span> is now refreshed</span>
+</pre>
 </div></div> </li>
 </ul>
 
 
 <ul>
 	<li><em>Use <a href="../../../../Documentation/Cayenne Guide/Performance Tuning/Prefetching/index.html" title="Prefetching">prefetching</a> to refresh to-many relationships and related objects</em>. Cayenne selecting query would only refresh the "root" objects (objects of type "Artist" in the example above), including their "simple" properties and to-one relationships. To refresh to-many relationships, including to-many collection contents, and each of the related objects, a user must specify a prefetch on a given relationship. E.g.:
-<div class="code"><div class="codeContent">
+<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
 <pre class="code-java"><span class="code-comment">// to refresh a list of paintings attached to the Artist, use a prefetch:
-</span>query.addPrefetch(Artist.PAINTINGS_PROPERTY);</pre>
+</span>query.addPrefetch(Artist.PAINTINGS_PROPERTY);
+</pre>
 </div></div></li>
 </ul>
 
 
 <ul>
 	<li><em>Use <a href="../../../../Documentation/Cayenne Guide/Queries/ObjectIdQuery/index.html" title="ObjectIdQuery">ObjectIdQuery</a> to refresh a single object.</em> There is a special query that allows to refresh a single object - ObjectIdQuery. Specify "CACHE_REFRESH" caching strategy to ensure a DB fetch is performed. This requires manually creating an ObjectId:
-<div class="code"><div class="codeContent">
+<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
 <pre class="code-java">ObjectId id = <span class="code-keyword">new</span> ObjectId(<span class="code-quote">"Artist"</span>, Artist.ID_PK_COLUMN, 5);
 ObjectIdQuery query = <span class="code-keyword">new</span> ObjectIdQuery(id, <span class="code-keyword">false</span>, ObjectIdQuery.CACHE_REFRESH);
-Artist a = (Artist) DataObjectUtils.objectForQuery(query);</pre>
+Artist a = (Artist) DataObjectUtils.objectForQuery(query);
+</pre>
 </div></div></li>
 </ul>
 </div>

Modified: cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/Caching and Fresh Data/Query Result Caching/index.html
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne%20Guide/Caching%20and%20Fresh%20Data/Query%20Result%20Caching/index.html?rev=829552&r1=829551&r2=829552&view=diff
==============================================================================
--- cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/Caching and Fresh Data/Query Result Caching/index.html (original)
+++ cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/Caching and Fresh Data/Query Result Caching/index.html Sun Oct 25 12:06:20 2009
@@ -57,11 +57,12 @@
 
 <p>In addition to caching individual objects, Cayenne can cache query results. Just like with object cache, the actual caching happens behind the scenes, so users only need to declare the desired cache policy, either in the code or via the Modeler:</p>
 
-<div class="code"><div class="codeContent">
+<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
 <pre class="code-java">SelectQuery query = <span class="code-keyword">new</span> SelectQuery(Artist.class, /* some qualifier */);
 query.setCacheStrategy(QueryCacheStrategy.LOCAL_CACHE);
 query.setCacheGroups(<span class="code-quote">"artists"</span>, <span class="code-quote">"recent_exhibits"</span>);
-List&lt;Artist&gt; artists = context.performQuery(query);</pre>
+List&lt;Artist&gt; artists = context.performQuery(query);
+</pre>
 </div></div>
 
 <p>This query runs against the DB for the first time. Later if this query (or another query with the same parameters) is run again, the result is quickly returned from cache, and no DB access is performed.</p>
@@ -88,10 +89,10 @@
 
 <h4><a name="QueryResultCaching-AdvancedCacheProviderOSCache"></a>Advanced Cache Provider - OSCache</h4>
 
-<p>A much more advanced cache provider can be installed via <tt>org.apache.cayenne.cache.OSQueryCacheFactory</tt>. The actual cache is using <span class="nobr"><a href="http://www.opensymphony.com/oscache/" title="Visit page outside Confluence" rel="nofollow">OSCache<sup><img class="rendericon" src="../../../../images/linkext7.gif" height="7" width="7" align="absmiddle" alt="" border="0"/></sup></a></span> by OpenSymphony, so <a href="../../../../Documentation/Cayenne Guide/Installation/JAR Files and Dependencies/index.html" title="JAR Files and Dependencies">OSCache jars</a> need to be added to the application classpath. Cache configuration should be created outside Cayenne tools (e.g. in a text editor or in Eclipse) in a file called <br/>
-<tt>"oscache.properties"</tt>. This file should be placed in the application classpath. The file format follows a regular java properties file. Here is an example that shows some of its capabilities, and demonstrates how to configure cache policies per cache group. More standard properties are discussed in the <span class="nobr"><a href="http://www.opensymphony.com/oscache/wiki/Configuration.html" title="Visit page outside Confluence" rel="nofollow">OSCache documentation<sup><img class="rendericon" src="../../../../images/linkext7.gif" height="7" width="7" align="absmiddle" alt="" border="0"/></sup></a></span>.</p>
+<p>A much more advanced cache provider can be installed via <tt>org.apache.cayenne.cache.OSQueryCacheFactory</tt>. The actual cache is using <a href="http://www.opensymphony.com/oscache/" rel="nofollow">OSCache</a> by OpenSymphony, so <a href="../../../../Documentation/Cayenne Guide/Installation/JAR Files and Dependencies/index.html" title="JAR Files and Dependencies">OSCache jars</a> need to be added to the application classpath. Cache configuration should be created outside Cayenne tools (e.g. in a text editor or in Eclipse) in a file called <br/>
+<tt>"oscache.properties"</tt>. This file should be placed in the application classpath. The file format follows a regular java properties file. Here is an example that shows some of its capabilities, and demonstrates how to configure cache policies per cache group. More standard properties are discussed in the <a href="http://www.opensymphony.com/oscache/wiki/Configuration.html" rel="nofollow">OSCache documentation</a>.</p>
 
-<div class="preformatted"><div class="preformattedContent">
+<div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent panelContent">
 <pre># OSCache standard configuration:
                        
 #cache.memory=true
@@ -126,7 +127,7 @@
 
 <p>The first step is to find a place where an explicit cache update should be triggered. Usually this is done via <a href="../../../../Documentation/Cayenne Guide/Lifecycle Callbacks/index.html" title="Lifecycle Callbacks">post commit callbacks</a>. A callback or a listener method would gain access to the QueryCache instance and call "removeGroup" for all groups that need to be invalidated. Here is where careful selection of query cache groups pays off. E.g. we may have tagged all queries fetching deceased artists with "classics" and all modern artists as "modern". The Artist entity can map a callback method similar to this:</p>
 
-<div class="code"><div class="codeContent">
+<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
 <pre class="code-java">void onCommit() {
    QueryCache cache = ((BaseContext) getObjectContext()).getQueryCache();
    <span class="code-keyword">if</span>(isModern()) {
@@ -141,14 +142,14 @@
 
 <p>This will ensure that subsequent "performQuery" calls will not use stale data, and the cache gets lazily refreshed.</p>
 
-<p>The above approach is applicable to both LRU Map and OSCache. As expected, OSCache gives us extra capabilities in this area as well. As we've mentioned already, sending object change notifications between (possibly remote) Cayenne stacks is inefficient most of the time. Not so with OSCache. It can send remote invalidation notifications that are simply cache group names, so they create very little network traffic. Also on the receiving end invalidation is processed lazily, so no extra CPU cycles are immediately needed for the application to process an event. OSCache comes with support for JavaGroups and JMS notifications. To enable it add one of the following entries to <tt>"oscache.properties"</tt> per <span class="nobr"><a href="http://www.opensymphony.com/oscache/wiki/Clustering.html" title="Visit page outside Confluence" rel="nofollow">OSCache clustering guide<sup><img class="rendericon" src="../../../../images/linkext7.gif" height="7" width="7" align="absmiddle" alt="
 " border="0"/></sup></a></span> :</p>
+<p>The above approach is applicable to both LRU Map and OSCache. As expected, OSCache gives us extra capabilities in this area as well. As we've mentioned already, sending object change notifications between (possibly remote) Cayenne stacks is inefficient most of the time. Not so with OSCache. It can send remote invalidation notifications that are simply cache group names, so they create very little network traffic. Also on the receiving end invalidation is processed lazily, so no extra CPU cycles are immediately needed for the application to process an event. OSCache comes with support for JavaGroups and JMS notifications. To enable it add one of the following entries to <tt>"oscache.properties"</tt> per <a href="http://www.opensymphony.com/oscache/wiki/Clustering.html" rel="nofollow">OSCache clustering guide</a> :</p>
 
-<div class="preformatted"><div class="preformattedContent">
+<div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent panelContent">
 <pre>cache.event.listeners=com.opensymphony.oscache.plugins.clustersupport.JMSBroadcastingListener
 # other JMS paramaters go here...</pre>
 </div></div>
 
-<div class="preformatted"><div class="preformattedContent">
+<div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent panelContent">
 <pre>cache.event.listeners=com.opensymphony.oscache.plugins.clustersupport.JavaGroupsBroadcastingListener
 # other JavaGroups paramaters go here...</pre>
 </div></div>

Modified: cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/Caching and Fresh Data/index.html
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne%20Guide/Caching%20and%20Fresh%20Data/index.html?rev=829552&r1=829551&r2=829552&view=diff
==============================================================================
--- cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/Caching and Fresh Data/index.html (original)
+++ cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/Caching and Fresh Data/index.html Sun Oct 25 12:06:20 2009
@@ -65,7 +65,7 @@
 
 <p>This cache stores the actual objects and not only eliminates the time required to fetch data from the database, but also the time required to instantiate that data into Java objects.</p>
 
-<table cellpadding='5' width='85%' cellspacing='8px' class='noteMacro' border="0" align='center'><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 Cayenne 3.0, two types of caches (individual object and query results) are separate from each other. Query cache can be extended and managed, while individual object cache has fewer configuration options - just max size and synchronization strategy. There are plans to reconcile both caches in the following releases.</td></tr></table>
+<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 Cayenne 3.0, two types of caches (individual object and query results) are separate from each other. Query cache can be extended and managed, while individual object cache has fewer configuration options - just max size and synchronization strategy. There are plans to reconcile both caches in the following releases.</td></tr></table></div>
 
 <h3><a name="CachingandFreshData-Sections"></a>Sections</h3>
 

Copied: cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/Customization/Custom BatchQueryBuilder Factory/index.html (from r829522, cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/Customization/Custom Query Cache Provider/index.html)
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne%20Guide/Customization/Custom%20BatchQueryBuilder%20Factory/index.html?p2=cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne%20Guide/Customization/Custom%20BatchQueryBuilder%20Factory/index.html&p1=cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne%20Guide/Customization/Custom%20Query%20Cache%20Provider/index.html&r1=829522&r2=829552&rev=829552&view=diff
==============================================================================
--- cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/Customization/Custom Query Cache Provider/index.html (original)
+++ cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/Customization/Custom BatchQueryBuilder Factory/index.html Sun Oct 25 12:06:20 2009
@@ -18,14 +18,14 @@
 -->
 <html>
   <head>
-    <title>Apache Cayenne Documentation - Custom Query Cache Provider</title>
+    <title>Apache Cayenne Documentation - Custom BatchQueryBuilder Factory</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">Custom Query Cache Provider</span>
+    <span class="pagetitle">Custom BatchQueryBuilder Factory</span>
   </div>
 <div id="cayenne_toc">
 <ul>
@@ -47,33 +47,40 @@
 <li><a href="../../../../Documentation/Cayenne Guide/Customization/index.html">Customization</a><ul>
 <li><a href="../../../../Documentation/Cayenne Guide/Customization/Custom DbAdapter/index.html">Custom DbAdapter</a></li>
 <li><a href="../../../../Documentation/Cayenne Guide/Customization/Extended Types/index.html">Extended Types</a></li>
-<li><a href="../../../../Documentation/Cayenne Guide/Customization/Custom Query Cache Provider/index.html">Custom Query Cache Provider</a><ul>
+<li><a href="../../../../Documentation/Cayenne Guide/Customization/Custom Query Cache Provider/index.html">Custom Query Cache Provider</a></li>
+<li><a href="../../../../Documentation/Cayenne Guide/Customization/Custom BatchQueryBuilder Factory/index.html">Custom BatchQueryBuilder Factory</a><ul>
 </ul>
 </li>
 </ul>
 </li>
 </ul>
 </div>
-<div id="ConfluenceContent"><p>By default Cayenne stores cached query results in an LRUMap (<tt>'org.apache.cayenne.cache.MapQueryCacheFactory'</tt>) and can also be configured to use OSCache (via <tt>'org.apache.cayenne.cache.OSQueryCacheFactory'</tt>). If none of these cache engines suit specific application needs, users can hook up their own. </p>
-
-<p>Assuming you have some cache management library that you want to integrate with Cayenne, you need to implement a <tt>'org.apache.cayenne.cache.QueryCacheFactory'</tt> interface that creates an instance of <tt>'org.apache.cayenne.cache.QueryCache'</tt> that is a facade to your cache engine.</p>
-
-<div class="code"><div class="codeContent">
-<pre class="code-java">class MyFactory <span class="code-keyword">implements</span> QueryCacheFactory {
-   <span class="code-keyword">public</span> QueryCache getQueryCache(Map properties) {
-      <span class="code-keyword">return</span> <span class="code-keyword">new</span> MyQueryCache(properties);
-   }
-}</pre>
+<div id="ConfluenceContent"><p>Cayenne allows plugging user-defined behavior to the process of performing commit actions in ObjectContext. Imagine situation when you need to perform UPDATE queries to mark records in database as deleted, instead of using common DELETE queries, e.g. something like</p>
+<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
+<pre class="code-java">UPDATE ARTIST SET DELETED = <span class="code-keyword">true</span> WHERE ARTIST_ID = 1987
+</pre>
 </div></div>
-
-<p>Custom factory can be set on the DataDomain:</p>
-
-<div class="code"><div class="codeContent">
+<p>instead of</p>
+<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
+<pre class="code-java">DELETE FROM ARTIST WHERE ARTIST_ID = 1987
+</pre>
+</div></div>
+<p>In such cases you need to intercept Cayenne's process of generating SQL queries. This can be obtained by providing custom <tt>org.apache.cayenne.access.jdbc.BatchQueryBuilderFactory</tt> to a DataDomain, for example:</p>
+<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
 <pre class="code-java">DataDomain domain = Configuration.getSharedConfiguration().getDomain();
-domain.setQueryCacheFactory(<span class="code-keyword">new</span> MyFactory());</pre>
+domain.setQueryBuilderFactory(<span class="code-keyword">new</span> SoftDeleteQueryBuilderFactory());
+</pre>
 </div></div>
+<p><tt>org.apache.cayenne.access.jdbc.SoftDeleteQueryBuilderFactory</tt> is a custom factory built into Cayenne which replaces DELETE queries with UPDATEs as described above.</p>
 
-<p><em>TODO: pending <span class="nobr"><a href="https://issues.apache.org/cayenne/browse/CAY-825" title="Visit page outside Confluence" rel="nofollow">CAY-825 implementation<sup><img class="rendericon" src="../../../../images/linkext7.gif" height="7" width="7" align="absmiddle" alt="" border="0"/></sup></a></span>, setting custom factory should be possible via CayenneModeler.</em> </p></div>
+<p>You can plug in your own factories. BatchQueryBuilderFactory interface is very simple and contains methods for creating query builders for objects that were inserted, updated or deleted:</p>
+<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
+<pre class="code-java"><span class="code-keyword">public</span> BatchQueryBuilder createInsertQueryBuilder(DbAdapter adapter);
+<span class="code-keyword">public</span> BatchQueryBuilder createUpdateQueryBuilder(DbAdapter adapter);
+<span class="code-keyword">public</span> BatchQueryBuilder createDeleteQueryBuilder(DbAdapter adapter);
+</pre>
+</div></div>
+<p>Note that BatchQueryBuilder factory only affects queries being created during commit for NEW, MODIFIED or DELETED objects in ObjectContext. It has no effect on database modifications that are made with, say, EJBQLQuery or SQLTemplate.</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/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/Customization/Custom DbAdapter/index.html
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne%20Guide/Customization/Custom%20DbAdapter/index.html?rev=829552&r1=829551&r2=829552&view=diff
==============================================================================
--- cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/Customization/Custom DbAdapter/index.html (original)
+++ cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/Customization/Custom DbAdapter/index.html Sun Oct 25 12:06:20 2009
@@ -50,26 +50,27 @@
 </li>
 <li><a href="../../../../Documentation/Cayenne Guide/Customization/Extended Types/index.html">Extended Types</a></li>
 <li><a href="../../../../Documentation/Cayenne Guide/Customization/Custom Query Cache Provider/index.html">Custom Query Cache Provider</a></li>
+<li><a href="../../../../Documentation/Cayenne Guide/Customization/Custom BatchQueryBuilder Factory/index.html">Custom BatchQueryBuilder Factory</a></li>
 </ul>
 </li>
 </ul>
 </div>
 <div id="ConfluenceContent"><h2><a name="CustomDbAdapter-HowdoIwriteanadaptertosupportadatabasethatisnotyetsupported%3F"></a>How do I write an adapter to support a database that is not yet supported?</h2>
 
-<p>You need to implement a custom <span class="nobr"><a href="http://cayenne.apache.org/doc/api/org/apache/cayenne/dba/DbAdapter.html" title="Visit page outside Confluence" rel="nofollow">DbAdapter<sup><img class="rendericon" src="../../../../images/linkext7.gif" height="7" width="7" align="absmiddle" alt="" border="0"/></sup></a></span>. Most likely you won't have to do it from scratch and can extend a JdbcAdapter or one of the existing db-specific adapters. </p>
+<p>You need to implement a custom <a href="http://cayenne.apache.org/doc/api/org/apache/cayenne/dba/DbAdapter.html" rel="nofollow">DbAdapter</a>. Most likely you won't have to do it from scratch and can extend a JdbcAdapter or one of the existing db-specific adapters. </p>
 
 <h3><a name="CustomDbAdapter-IftheadapterisforadatabasethatwecurrentlydonotsupportandyouareplanningtodonateittoCayenne%2Cyoucandothisfirst%3A"></a>If the adapter is for a database that we currently do not support and you are planning to donate it to Cayenne, you can do this first:</h3>
 
 <ul>
 	<li>Open a JIRA issue where all contributed code will go.</li>
-	<li><span class="nobr"><a href="http://cayenne.apache.org/mailing-lists.html" title="Visit page outside Confluence" rel="nofollow">Subscribe<sup><img class="rendericon" src="../../../../images/linkext7.gif" height="7" width="7" align="absmiddle" alt="" border="0"/></sup></a></span> to the developer mailing list and introduce yourself to Cayenne developers.</li>
+	<li><a href="http://cayenne.apache.org/mailing-lists.html" rel="nofollow">Subscribe</a> to the developer mailing list and introduce yourself to Cayenne developers.</li>
 </ul>
 
 
 <h5><a name="CustomDbAdapter-Implementationprocedureisroughlythefollowing%3A"></a>Implementation procedure is roughly the following:</h5>
 
 <ul>
-	<li><span class="nobr"><a href="http://cayenne.apache.org/code-repository.html" title="Visit page outside Confluence" rel="nofollow">Check out<sup><img class="rendericon" src="../../../../images/linkext7.gif" height="7" width="7" align="absmiddle" alt="" border="0"/></sup></a></span> the latest Cayenne source from SVN. If you use Eclipse, follow <span class="nobr"><a href="http://cayenne.apache.org/eclipse.html" title="Visit page outside Confluence" rel="nofollow">these instructions<sup><img class="rendericon" src="../../../../images/linkext7.gif" height="7" width="7" align="absmiddle" alt="" border="0"/></sup></a></span> to setup the projects.</li>
+	<li><a href="http://cayenne.apache.org/code-repository.html" rel="nofollow">Check out</a> the latest Cayenne source from SVN. If you use Eclipse, follow <a href="http://cayenne.apache.org/eclipse.html" rel="nofollow">these instructions</a> to setup the projects.</li>
 </ul>
 
 
@@ -78,17 +79,17 @@
 </ul>
 
 
-<table cellpadding='5' width='85%' cellspacing='8px' class='tipMacro' border="0" align='center'><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>It is a good idea to put all new adapter code in its own Java package, e.g. <tt>org.apache.cayenne.dba.mydb</tt>, as default resource loading depends on that.</td></tr></table>
+<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>It is a good idea to put all new adapter code in its own Java package, e.g. <tt>org.apache.cayenne.dba.mydb</tt>, as default resource loading depends on that.</td></tr></table></div>
 
 <ul>
 	<li>Copy <tt>types.xml</tt> file from org.apache.cayenne.dba package and edit it to map standard JDBC types to the target database native types.</li>
 </ul>
 
 
-<table cellpadding='5' width='85%' cellspacing='8px' class='tipMacro' border="0" align='center'><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>Correct mapping is needed for the Modeler to do schema generation. Technically it is not required for the runtime. However <tt>types.xml</tt> should still be there.</td></tr></table>
+<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>Correct mapping is needed for the Modeler to do schema generation. Technically it is not required for the runtime. However <tt>types.xml</tt> should still be there.</td></tr></table></div>
 
 <ul>
-	<li><span class="nobr"><a href="http://cayenne.apache.org/running-unit-tests.html" title="Visit page outside Confluence" rel="nofollow">Run existing Cayenne unit tests<sup><img class="rendericon" src="../../../../images/linkext7.gif" height="7" width="7" align="absmiddle" alt="" border="0"/></sup></a></span> with the new adapter, analyze the failures and change adapter code accordingly.</li>
+	<li><a href="http://cayenne.apache.org/running-unit-tests.html" rel="nofollow">Run existing Cayenne unit tests</a> with the new adapter, analyze the failures and change adapter code accordingly.</li>
 	<li>Repeat the last step until all tests pass.</li>
 	<li>Report success in JIRA and the dev list - one of the committers will integrate your code to Cayenne.</li>
 </ul>

Modified: cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/Customization/Custom Query Cache Provider/index.html
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne%20Guide/Customization/Custom%20Query%20Cache%20Provider/index.html?rev=829552&r1=829551&r2=829552&view=diff
==============================================================================
--- cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/Customization/Custom Query Cache Provider/index.html (original)
+++ cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/Customization/Custom Query Cache Provider/index.html Sun Oct 25 12:06:20 2009
@@ -50,6 +50,7 @@
 <li><a href="../../../../Documentation/Cayenne Guide/Customization/Custom Query Cache Provider/index.html">Custom Query Cache Provider</a><ul>
 </ul>
 </li>
+<li><a href="../../../../Documentation/Cayenne Guide/Customization/Custom BatchQueryBuilder Factory/index.html">Custom BatchQueryBuilder Factory</a></li>
 </ul>
 </li>
 </ul>
@@ -58,22 +59,24 @@
 
 <p>Assuming you have some cache management library that you want to integrate with Cayenne, you need to implement a <tt>'org.apache.cayenne.cache.QueryCacheFactory'</tt> interface that creates an instance of <tt>'org.apache.cayenne.cache.QueryCache'</tt> that is a facade to your cache engine.</p>
 
-<div class="code"><div class="codeContent">
+<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
 <pre class="code-java">class MyFactory <span class="code-keyword">implements</span> QueryCacheFactory {
    <span class="code-keyword">public</span> QueryCache getQueryCache(Map properties) {
       <span class="code-keyword">return</span> <span class="code-keyword">new</span> MyQueryCache(properties);
    }
-}</pre>
+}
+</pre>
 </div></div>
 
 <p>Custom factory can be set on the DataDomain:</p>
 
-<div class="code"><div class="codeContent">
+<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
 <pre class="code-java">DataDomain domain = Configuration.getSharedConfiguration().getDomain();
-domain.setQueryCacheFactory(<span class="code-keyword">new</span> MyFactory());</pre>
+domain.setQueryCacheFactory(<span class="code-keyword">new</span> MyFactory());
+</pre>
 </div></div>
 
-<p><em>TODO: pending <span class="nobr"><a href="https://issues.apache.org/cayenne/browse/CAY-825" title="Visit page outside Confluence" rel="nofollow">CAY-825 implementation<sup><img class="rendericon" src="../../../../images/linkext7.gif" height="7" width="7" align="absmiddle" alt="" border="0"/></sup></a></span>, setting custom factory should be possible via CayenneModeler.</em> </p></div>
+<p><em>TODO: pending <a href="https://issues.apache.org/cayenne/browse/CAY-825" rel="nofollow">CAY-825 implementation</a>, setting custom factory should be possible via CayenneModeler.</em> </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/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/Customization/Extended Types/index.html
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne%20Guide/Customization/Extended%20Types/index.html?rev=829552&r1=829551&r2=829552&view=diff
==============================================================================
--- cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/Customization/Extended Types/index.html (original)
+++ cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/Customization/Extended Types/index.html Sun Oct 25 12:06:20 2009
@@ -50,6 +50,7 @@
 </ul>
 </li>
 <li><a href="../../../../Documentation/Cayenne Guide/Customization/Custom Query Cache Provider/index.html">Custom Query Cache Provider</a></li>
+<li><a href="../../../../Documentation/Cayenne Guide/Customization/Custom BatchQueryBuilder Factory/index.html">Custom BatchQueryBuilder Factory</a></li>
 </ul>
 </li>
 </ul>
@@ -59,7 +60,7 @@
 <h3><a name="ExtendedTypes-SupportingNonStandardTypes"></a>Supporting Non-Standard Types</h3>
 
 <p><tt>org.apache.cayenne.access.types.ExtendedType</tt> interface serves to integrate a custom attribute type to Cayenne. An implementation must provide <tt>ExtendedType.getClassName()</tt> method that returns a fully qualified Java class name for the supported custom type, and a number of methods that convert data between JDBC and custom type. Installing an ExtendedType currently has to be done in the code, some time during Cayenne startup (modeler support will be added in the future). The following code sample demonstrates this procedure:</p>
-<div class="code"><div class="codeContent">
+<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
 <pre class="code-java"><span class="code-comment">// create custom ExtendedType instance
 </span>ExtendedType customType = <span class="code-keyword">new</span> MyCustomType();
 
@@ -69,7 +70,8 @@
 </span>DataNode node = domain.getNode(<span class="code-quote">"node_name"</span>);
 
 <span class="code-comment">// install ExtendedType
-</span>node.getAdapter().getExtendedTypes().registerType(customType);</pre>
+</span>node.getAdapter().getExtendedTypes().registerType(customType);
+</pre>
 </div></div>
 
 <h3><a name="ExtendedTypes-DbAdaptersandExtendedTypes"></a>DbAdapters and Extended Types</h3>

Modified: cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/Customization/index.html
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne%20Guide/Customization/index.html?rev=829552&r1=829551&r2=829552&view=diff
==============================================================================
--- cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/Customization/index.html (original)
+++ cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/Customization/index.html Sun Oct 25 12:06:20 2009
@@ -48,6 +48,7 @@
 <li><a href="../../../Documentation/Cayenne Guide/Customization/Custom DbAdapter/index.html">Custom DbAdapter</a></li>
 <li><a href="../../../Documentation/Cayenne Guide/Customization/Extended Types/index.html">Extended Types</a></li>
 <li><a href="../../../Documentation/Cayenne Guide/Customization/Custom Query Cache Provider/index.html">Custom Query Cache Provider</a></li>
+<li><a href="../../../Documentation/Cayenne Guide/Customization/Custom BatchQueryBuilder Factory/index.html">Custom BatchQueryBuilder Factory</a></li>
 </ul>
 </li>
 </ul>
@@ -62,6 +63,7 @@
 	<li><a href="../../../Documentation/Cayenne Guide/Customization/Custom DbAdapter/index.html" title="Custom DbAdapter">Custom DbAdapter</a></li>
 	<li><a href="../../../Documentation/Cayenne Guide/Customization/Extended Types/index.html" title="Extended Types">Extended Types</a></li>
 	<li><a href="../../../Documentation/Cayenne Guide/Customization/Custom Query Cache Provider/index.html" title="Custom Query Cache Provider">Custom Query Cache Provider</a></li>
+	<li><a href="../../../Documentation/Cayenne Guide/Customization/Custom BatchQueryBuilder Factory/index.html" title="Custom BatchQueryBuilder Factory">Custom BatchQueryBuilder Factory</a></li>
 </ol>
 </div>
 </div>

Modified: cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/DataContext/DataObject State Management/index.html
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne%20Guide/DataContext/DataObject%20State%20Management/index.html?rev=829552&r1=829551&r2=829552&view=diff
==============================================================================
--- cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/DataContext/DataObject State Management/index.html (original)
+++ cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/DataContext/DataObject State Management/index.html Sun Oct 25 12:06:20 2009
@@ -73,7 +73,7 @@
 
 <p>Whenever a selecting query is executed by a DataContext, all fetched objects are automatically registered with this DataContext. On the other hand, newly created objects must be registered explicitly:</p>
 
-<div class="code"><div class="codeContent">
+<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.access.DataContext;
 ...
 DataContext context; <span class="code-comment">// assume <span class="code-keyword">this</span> exists
@@ -87,7 +87,7 @@
 
 <p>This code can be simplified - object creation and registrations steps can be combined in one method call:</p>
 
-<div class="code"><div class="codeContent">
+<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.access.DataContext;
 ...
 DataContext context; <span class="code-comment">// assume <span class="code-keyword">this</span> exists
@@ -103,7 +103,7 @@
 
 <p>When a new object is inserted to the DataContext as described above, it becomes "NEW":</p>
 
-<div class="code"><div class="codeContent">
+<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.access.DataContext;
 ...
 DataContext context; <span class="code-comment">// assume <span class="code-keyword">this</span> exists
@@ -114,21 +114,21 @@
 
 <p>When a DataContext is committed, such object becomes "COMMITTED":</p>
 
-<div class="code"><div class="codeContent">
+<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
 <pre class="code-java"><span class="code-comment">// artist will become PersistenceState.COMMITTED
 </span>context.commitChanges();</pre>
 </div></div>
 
 <p>When any of the attributes or relationships of the fetched or committed object are changed, such an object becomes MODIFIED:</p>
 
-<div class="code"><div class="codeContent">
+<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
 <pre class="code-java"><span class="code-comment">// <span class="code-keyword">this</span> will change the object state to PersistenceState.MODIFIED
 </span>artist.setName(<span class="code-quote">"NewName"</span>);</pre>
 </div></div>
 
 <p>When a fetched or committed object is explicitly deleted from the DataContext, object becomes DELETED:</p>
 
-<div class="code"><div class="codeContent">
+<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
 <pre class="code-java"><span class="code-comment">// <span class="code-keyword">this</span> will change the object state to PersistenceState.DELETED
 </span>context.deleteObject(artist);</pre>
 </div></div>

Modified: cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/DataContext/Moving Objects Between Contexts/index.html
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne%20Guide/DataContext/Moving%20Objects%20Between%20Contexts/index.html?rev=829552&r1=829551&r2=829552&view=diff
==============================================================================
--- cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/DataContext/Moving Objects Between Contexts/index.html (original)
+++ cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/DataContext/Moving Objects Between Contexts/index.html Sun Oct 25 12:06:20 2009
@@ -62,7 +62,7 @@
 <div id="ConfluenceContent"><h2><a name="MovingObjectsBetweenContexts-MovingObjectsBetweenContexts"></a>Moving Objects Between Contexts</h2>
 <p>Each instance of a DataObject belongs to only one DataContext for the duration of the object lifecycle. Sometimes there maybe a need to transfer a list of objects from one DataContext to another. The goal of this operation is to be able to use such objects in relationships with objects of the target DataContext. Most common use for this feature is the following. An application may have a "shared" DataContext that is used to fetch "static" read only lookup data. To avoid fetching the same data over and over again for each session, objects from the shared DataContext can be transferred to a session DataContext by calling <tt>DataContext.localObject()</tt>:</p>
 
-<div class="code"><div class="codeContent">
+<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
 <pre class="code-java">DataContext sessionContext = DataContext.getThreadDataContext();
 
 HttpSession session; <span class="code-comment">// assume <span class="code-keyword">this</span> exists

Modified: cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/DataContext/Nested Contexts/index.html
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne%20Guide/DataContext/Nested%20Contexts/index.html?rev=829552&r1=829551&r2=829552&view=diff
==============================================================================
--- cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/DataContext/Nested Contexts/index.html (original)
+++ cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/DataContext/Nested Contexts/index.html Sun Oct 25 12:06:20 2009
@@ -65,17 +65,15 @@
 
 <p>Same thing is true when ObjectContext is used via ROP. Committing changes to a nested ROP ObjectContext (CayenneContext) locally will not result in sending data to a server.</p>
 
-<table cellpadding='5' width='85%' cellspacing='8px' class='noteMacro' border="0" align='center'><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 class="strong">ROP</b><br />
-<p>Nested contexts are available in Cayenne ROP (three tier) only from version 3.0M6.</p></td></tr></table> 
+<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>ROP</b><br /><p>Nested contexts are available in Cayenne ROP (three tier) only from version 3.0M6.</p></td></tr></table></div> 
 
 <p>Nested contexts are useful in many situations, such as nested UI dialogs, complicated workflows, etc.</p>
 
 <h3><a name="NestedContexts-CreatingNestedContexts"></a>Creating Nested Contexts</h3>
 
-<table cellpadding='5' width='85%' cellspacing='8px' class='noteMacro' border="0" align='center'><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 class="strong">Deprecation</b><br />
-<p>Since 3.0M6 a new method, <tt>ObjectContext.createChildContext()</tt> was introduced, so <tt>DataContext.createChildDataContext()</tt> is now deprecated. Please update your code properly.</p></td></tr></table> 
+<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>Deprecation</b><br /><p>Since 3.0M6 a new method, <tt>ObjectContext.createChildContext()</tt> was introduced, so <tt>DataContext.createChildDataContext()</tt> is now deprecated. Please update your code properly.</p></td></tr></table></div> 
 
-<div class="code"><div class="codeContent">
+<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
 <pre class="code-java">ObjectContext parent = ...
 ObjectContext child = context.createChildContext();</pre>
 </div></div>
@@ -89,22 +87,22 @@
 <p>A nested context does everything a parent context can do, i.e. perform queries, register new objects, delete objects, etc. A specific behavior is the ability to choose between a cascading or one-level commit or rollback.</p>
 
 <p>Regular <tt>"commitChanges"</tt> call does a cascading commit through the stack of parents all the way to the database:</p>
-<div class="code"><div class="codeContent">
+<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
 <pre class="code-java">child.commitChanges();</pre>
 </div></div>
 
 <p>However it is possible to commit to parent, without triggering a DB commit:</p>
-<div class="code"><div class="codeContent">
+<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
 <pre class="code-java">child.commitChangesToParent();</pre>
 </div></div>
 
 <p>Same thing with rollback, <tt>"rollbackChanges"</tt> does a cascading rollback:</p>
-<div class="code"><div class="codeContent">
+<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
 <pre class="code-java">child.rollbackChanges();</pre>
 </div></div>
 
 <p>While <tt>"rollbackChangesLocally"</tt> only affects the nested context, and not even sent to the parent:</p>
-<div class="code"><div class="codeContent">
+<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
 <pre class="code-java">child.rollbackChangesLocally();</pre>
 </div></div>
 

Modified: cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/DataContext/Obtaining DataContext/index.html
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne%20Guide/DataContext/Obtaining%20DataContext/index.html?rev=829552&r1=829551&r2=829552&view=diff
==============================================================================
--- cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/DataContext/Obtaining DataContext/index.html (original)
+++ cayenne/main/trunk/docs/doc/src/main/resources/doc/Documentation/Cayenne Guide/DataContext/Obtaining DataContext/index.html Sun Oct 25 12:06:20 2009
@@ -65,7 +65,7 @@
 
 <p>A new DataContext instance normally can be created using the following code:</p>
 
-<div class="code"><div class="codeContent">
+<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.access.DataContext;
 ...
 DataContext context = DataContext.createDataContext();</pre>
@@ -77,7 +77,7 @@
 
 <p>A web application can be configured to automatically create a new instance of DataContext for each new HttpSession, and set it as a session attribute. Retrieving it from a session is done with the following code:</p>
 
-<div class="code"><div class="codeContent">
+<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.conf.ServletUtil;
 <span class="code-keyword">import</span> org.apache.cayenne.access.DataContext;
 ...
@@ -92,16 +92,17 @@
 
 <p>An application can bind a DataContext to a current execution thread. Later on the code that needs DB access can retrieve this DataContext without making any assumptions about the environment. This approach is universal and works in all types of applications (web, standalone, etc.). Previously bound DataContext can be retrieved by calling <tt>DataContext.getThreadDataContext()</tt> static method. If no DataContext was bound to the current thread, this method throws IllegalStateException:</p>
 
-<div class="code"><div class="codeContent">
+<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.access.DataContext;
 ...
 <span class="code-comment">// we are positive there is DataContext in the current thread, and <span class="code-keyword">do</span> not want
 </span><span class="code-comment">// to handle possible exception...
-</span>DataContext context = DataContext.getThreadDataContext();</pre>
+</span>DataContext context = DataContext.getThreadDataContext();
+</pre>
 </div></div>
 
 
-<div class="code"><div class="codeContent">
+<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.access.DataContext;
 ...
 <span class="code-comment">// we want to handle the condition of no thread context...
@@ -123,7 +124,7 @@
 
 <p>Considering that behind the scenes a source of DataContext instances is an object called DataDomain, Cayenne allows creation of multiple DataDomains per project. Each DataDomain would support a single "customer". Creation of DataContext in this case is done using DataDomain name as a parameter:</p>
 
-<div class="code"><div class="codeContent">
+<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.access.DataContext;
 ...