You are viewing a plain text version of this content. The canonical link for it is here.
Posted to general@db.apache.org by an...@apache.org on 2013/02/23 15:12:19 UTC

svn commit: r851672 [4/12] - in /websites/production/db/content/jdo: ./ guides/ releases/

Modified: websites/production/db/content/jdo/glossary.html
==============================================================================
--- websites/production/db/content/jdo/glossary.html (original)
+++ websites/production/db/content/jdo/glossary.html Sat Feb 23 14:12:18 2013
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.3 at Jan 20, 2013 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.3 at Feb 23, 2013 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -11,7 +11,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20130120" />
+    <meta name="Date-Revision-yyyymmdd" content="20130223" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -209,145 +209,145 @@
     </div>
     <div id="bodyColumn">
       <div id="contentBox">
-        
-    
-        <div class="section"><h2>JDO Glossary<a name="JDO_Glossary"></a></h2>
-            <p>
-                JDO utilizes some terminology used elsewhere (e.g J2EE) but also introduces some terminology that may be new to people.
-                Below is a glossary of some common terms that may be encountered.
-            </p>
-            <table border="0" class="bodyTable">
-                <tr class="a">
-                    <th>Term</th>
-                    <th>Definition</th>
-                </tr>
-                <tr class="b">
-                    <td><a name="application-identity"></a>application identity</td>
-                    <td>When the persistence of a class is defined in a MetaData file, the developer can decide that they want 
-                        to control the identity of objects of that class. This is called <b>application identity</b> because 
-                        the application has the control.</td>
-                </tr>
-                <tr class="a">
-                    <td><a name="attach-detach"></a>attach/detach</td>
-                    <td>When you have an object of a class that is associated with a PersistenceManager it is referred to as being 
-                        <i>attached</i>. If you want to stop persistence of that object you can <i>detach</i> the object. This has 
-                        the effect that any changes to the object will not be persisted, and also that the object can be used 
-                        outside transactions.</td>
-                </tr>
-                <tr class="b">
-                    <td><a name="datastore-identity"></a>datastore identity</td>
-                    <td>When the persistence of a class is defined in a MetaData file, the developer can decide that they want the 
-                        identity of objects of that class to be defined by the JDO implementation. This is called <b>datastore 
-                        identity</b></td>
-                </tr>
-                <tr class="a">
-                    <td><a name="default-fetch-group"></a>default-fetch-group (DFG)</td>
-                    <td>When a persisted object is retrieved from the datastore its fields can be retrieved with it, or optionally 
-                        can be retrieved only when needed. If a field is in the <b>default-fetch-group</b> it will be retrieved when 
-                        the object is retrieved. Some field types default to being in the <b>default-fetch-group</b> (e.g primitives, 
-                        wrappers to primtives, java.util.Date) and others (e.g java.util.Set, java.util.List) don't.</td>
-                </tr>
-                <tr class="b">
-                    <td><a name="embedded"></a>embedded</td>
-                    <td>A field can be defined as embedded if it will be stored as a column in the table of its containing object.</td>
-                </tr>
-                <tr class="a">
-                    <td><a name="enhancer"></a>enhancer</td>
-                    <td>JDO 1.0.1 requires the use of a byte-code enhancer that takes the Java compiled classes and &quot;enhances&quot; them, 
-                        adding in information to permit their use in a JDO environment.</td>
-                </tr>
-                <tr class="b">
-                    <td><a name="fco"></a>FCO</td>
-                    <td>JDO defines 2 main groups of Java objects. The first is those objects that have an identity. These are
-                        termed &quot;First Class Objects&quot; or FCO for short.</td>
-                </tr>
-                <tr class="a">
-                    <td><a name="fetchgroup"></a>Fetch Group</td>
-                    <td>JDO allows a user to define groups of fields that should be retrieved (fetched) at the same time. These are called a &quot;fetch group&quot;.
-                        The principal &quot;fetch group&quot; is the &quot;default fetch group&quot;, where JDO has rules for what fields are in this group. 
-                        A user can define their own group, and make this active so that when objects of their type are retrieved, they have control over the fetching process.</td>
-                </tr>
-                <tr class="b">
-                    <td><a name="JDOQL"></a>JDOQL</td>
-                    <td>JDO introduces its own Java-like query language as a datastore independent way of retrieving objects from 
-                        the datastore. This is known as JDOQL (JDO Query Language).</td>
-                </tr>
-                <tr class="a">
-                    <td><a name="nondurable-identity"></a>nondurable identity</td>
-                    <td>Where the objects of a class should be unique in the JVM but not in the datastore (where an RDBMS table doesnt have a PK for example).</td>
-                </tr>
-                <tr class="b">
-                    <td><a name="objectid-class"></a>objectid class</td>
-                    <td>When an object of a class is persisted, it is assigned an object identity. When the developer has chosen to 
-                        use <a href="#application-identity">application identity</a> they can assign a class to represent this 
-                        identity (as a primary key) - this is the object id class.</td>
-                </tr>
-                <tr class="a">
-                    <td><a name="optimistic-transaction"></a>optimistic transaction</td>
-                    <td>When working with long duration transactions it is undesirable to have locking and so the assumption is made 
-                        that the data being updated by the transaction will not be modified by any other transaction during the course 
-                        of the (optimistic) transaction. The data is checked just before commit to confirm integrity that no data has 
-                        been changed. See also <a href="#pessimistic-transaction">pessimistic transaction</a> for the contrary type 
-                        which provides locking.</td>
-                </tr>
-                <tr class="b">
-                    <td><a name="persistence-by-reachability"></a>persistence-by-reachability</td>
-                    <td>When you call makePersistent() on an object, the object will be persisted and, in addition, any 
-                        other objects reachable from that object (via relationships) will also be persisted. This is 
-                        known as <b>persistence-by-reachability</b>. This process is repeated at commit() time when 
-                        it checks whether these reachable objects are still reachable and, if not, removes them from persistence.</td>
-                </tr>
-                <tr class="a">
-                    <td><a name="persistence-aware"></a>persistence-aware</td>
-                    <td>When an class needs to access fields of a persistence capable class directly, it should be enhanced, and is referred to as &quot;Persistence Aware&quot;. If a class uses field accessor methods then it doesnt need to become &quot;Persistence Aware&quot;.</td>
-                </tr>
-                <tr class="b">
-                    <td><a name="persistence-capable"></a>persistence-capable (PC)</td>
-                    <td>When an class is byte-code enhanced, and has valid MetaData, it is referred to as &quot;Persistence Capable&quot;. This 
-                        means that it can be persisted by a JDO implementation.</td>
-                </tr>
-                <tr class="a">
-                    <td><a name="persistence-modifier"></a>persistence-modifier</td>
-                    <td>When defining the persistence of a class, the developer can select particular fields to be persisted, and 
-                        others not depending on their importance in the scope of their application. The <b>persistence-modifier</b> 
-                        defines whether a field is persistent. If this tag is not specified JDO will assign defaults based on the 
-                        field type (primitives, primitive wrappers, java.util.Data, persistence capable fields, etc are by default 
-                        persistent).</td>
-                </tr>
-                <tr class="b">
-                    <td><a name="persistent"></a>persistent</td>
-                    <td>This is an object state where the object is persistent in a datastore.</td>
-                </tr>
-                <tr class="a">
-                    <td><a name="pessimistic-transaction"></a>pessimistic transaction</td>
-                    <td>This is the default transaction type in JDO, and is suitable for shortlived operations where there is no 
-                        other blocking activity during the transaction. When data is accessed other transactions are locked out 
-                        from accessing it until the transaction is complete. See also <a href="#optimistic-transaction">optimistic 
-                        transaction</a> for the contrary type which reduces locking.</td>
-                </tr>
-                <tr class="b">
-                    <td><a name="requires-extent"></a>Requires Extent</td>
-                    <td>When the persistent of a class is defined, the developer decides if the object will be stored with its own 
-                        identity (in its own table for example) or whether it will be stored as part of another object. If it will 
-                        have its own identity, it will require and Extent.</td>
-                </tr>
-                <tr class="a">
-                    <td><a name="sco"></a>SCO</td>
-                    <td>JDO defines 2 main groups of Java objects. The second group is those objects that don't have an identity. 
-                        These are termed &quot;Second Class Objects&quot; or SCO for short.</td>
-                </tr>
-                <tr class="b">
-                    <td><a name="SQL"></a>SQL</td>
-                    <td>JDO allows use of multiple query languages. One of these, for use with RDBMS datastores, is SQL.</td>
-                </tr>
-                <tr class="a">
-                    <td><a name="transient"></a>transient</td>
-                    <td>This is an object state where the object is not persistent.</td>
-                </tr>
-            </table>
-        </div>
-
-    
+        
+    
+        <div class="section"><h2>JDO Glossary<a name="JDO_Glossary"></a></h2>
+            <p>
+                JDO utilizes some terminology used elsewhere (e.g J2EE) but also introduces some terminology that may be new to people.
+                Below is a glossary of some common terms that may be encountered.
+            </p>
+            <table border="0" class="bodyTable">
+                <tr class="a">
+                    <th>Term</th>
+                    <th>Definition</th>
+                </tr>
+                <tr class="b">
+                    <td><a name="application-identity"></a>application identity</td>
+                    <td>When the persistence of a class is defined in a MetaData file, the developer can decide that they want 
+                        to control the identity of objects of that class. This is called <b>application identity</b> because 
+                        the application has the control.</td>
+                </tr>
+                <tr class="a">
+                    <td><a name="attach-detach"></a>attach/detach</td>
+                    <td>When you have an object of a class that is associated with a PersistenceManager it is referred to as being 
+                        <i>attached</i>. If you want to stop persistence of that object you can <i>detach</i> the object. This has 
+                        the effect that any changes to the object will not be persisted, and also that the object can be used 
+                        outside transactions.</td>
+                </tr>
+                <tr class="b">
+                    <td><a name="datastore-identity"></a>datastore identity</td>
+                    <td>When the persistence of a class is defined in a MetaData file, the developer can decide that they want the 
+                        identity of objects of that class to be defined by the JDO implementation. This is called <b>datastore 
+                        identity</b></td>
+                </tr>
+                <tr class="a">
+                    <td><a name="default-fetch-group"></a>default-fetch-group (DFG)</td>
+                    <td>When a persisted object is retrieved from the datastore its fields can be retrieved with it, or optionally 
+                        can be retrieved only when needed. If a field is in the <b>default-fetch-group</b> it will be retrieved when 
+                        the object is retrieved. Some field types default to being in the <b>default-fetch-group</b> (e.g primitives, 
+                        wrappers to primtives, java.util.Date) and others (e.g java.util.Set, java.util.List) don't.</td>
+                </tr>
+                <tr class="b">
+                    <td><a name="embedded"></a>embedded</td>
+                    <td>A field can be defined as embedded if it will be stored as a column in the table of its containing object.</td>
+                </tr>
+                <tr class="a">
+                    <td><a name="enhancer"></a>enhancer</td>
+                    <td>JDO 1.0.1 requires the use of a byte-code enhancer that takes the Java compiled classes and &quot;enhances&quot; them, 
+                        adding in information to permit their use in a JDO environment.</td>
+                </tr>
+                <tr class="b">
+                    <td><a name="fco"></a>FCO</td>
+                    <td>JDO defines 2 main groups of Java objects. The first is those objects that have an identity. These are
+                        termed &quot;First Class Objects&quot; or FCO for short.</td>
+                </tr>
+                <tr class="a">
+                    <td><a name="fetchgroup"></a>Fetch Group</td>
+                    <td>JDO allows a user to define groups of fields that should be retrieved (fetched) at the same time. These are called a &quot;fetch group&quot;.
+                        The principal &quot;fetch group&quot; is the &quot;default fetch group&quot;, where JDO has rules for what fields are in this group. 
+                        A user can define their own group, and make this active so that when objects of their type are retrieved, they have control over the fetching process.</td>
+                </tr>
+                <tr class="b">
+                    <td><a name="JDOQL"></a>JDOQL</td>
+                    <td>JDO introduces its own Java-like query language as a datastore independent way of retrieving objects from 
+                        the datastore. This is known as JDOQL (JDO Query Language).</td>
+                </tr>
+                <tr class="a">
+                    <td><a name="nondurable-identity"></a>nondurable identity</td>
+                    <td>Where the objects of a class should be unique in the JVM but not in the datastore (where an RDBMS table doesnt have a PK for example).</td>
+                </tr>
+                <tr class="b">
+                    <td><a name="objectid-class"></a>objectid class</td>
+                    <td>When an object of a class is persisted, it is assigned an object identity. When the developer has chosen to 
+                        use <a href="#application-identity">application identity</a> they can assign a class to represent this 
+                        identity (as a primary key) - this is the object id class.</td>
+                </tr>
+                <tr class="a">
+                    <td><a name="optimistic-transaction"></a>optimistic transaction</td>
+                    <td>When working with long duration transactions it is undesirable to have locking and so the assumption is made 
+                        that the data being updated by the transaction will not be modified by any other transaction during the course 
+                        of the (optimistic) transaction. The data is checked just before commit to confirm integrity that no data has 
+                        been changed. See also <a href="#pessimistic-transaction">pessimistic transaction</a> for the contrary type 
+                        which provides locking.</td>
+                </tr>
+                <tr class="b">
+                    <td><a name="persistence-by-reachability"></a>persistence-by-reachability</td>
+                    <td>When you call makePersistent() on an object, the object will be persisted and, in addition, any 
+                        other objects reachable from that object (via relationships) will also be persisted. This is 
+                        known as <b>persistence-by-reachability</b>. This process is repeated at commit() time when 
+                        it checks whether these reachable objects are still reachable and, if not, removes them from persistence.</td>
+                </tr>
+                <tr class="a">
+                    <td><a name="persistence-aware"></a>persistence-aware</td>
+                    <td>When an class needs to access fields of a persistence capable class directly, it should be enhanced, and is referred to as &quot;Persistence Aware&quot;. If a class uses field accessor methods then it doesnt need to become &quot;Persistence Aware&quot;.</td>
+                </tr>
+                <tr class="b">
+                    <td><a name="persistence-capable"></a>persistence-capable (PC)</td>
+                    <td>When an class is byte-code enhanced, and has valid MetaData, it is referred to as &quot;Persistence Capable&quot;. This 
+                        means that it can be persisted by a JDO implementation.</td>
+                </tr>
+                <tr class="a">
+                    <td><a name="persistence-modifier"></a>persistence-modifier</td>
+                    <td>When defining the persistence of a class, the developer can select particular fields to be persisted, and 
+                        others not depending on their importance in the scope of their application. The <b>persistence-modifier</b> 
+                        defines whether a field is persistent. If this tag is not specified JDO will assign defaults based on the 
+                        field type (primitives, primitive wrappers, java.util.Data, persistence capable fields, etc are by default 
+                        persistent).</td>
+                </tr>
+                <tr class="b">
+                    <td><a name="persistent"></a>persistent</td>
+                    <td>This is an object state where the object is persistent in a datastore.</td>
+                </tr>
+                <tr class="a">
+                    <td><a name="pessimistic-transaction"></a>pessimistic transaction</td>
+                    <td>This is the default transaction type in JDO, and is suitable for shortlived operations where there is no 
+                        other blocking activity during the transaction. When data is accessed other transactions are locked out 
+                        from accessing it until the transaction is complete. See also <a href="#optimistic-transaction">optimistic 
+                        transaction</a> for the contrary type which reduces locking.</td>
+                </tr>
+                <tr class="b">
+                    <td><a name="requires-extent"></a>Requires Extent</td>
+                    <td>When the persistent of a class is defined, the developer decides if the object will be stored with its own 
+                        identity (in its own table for example) or whether it will be stored as part of another object. If it will 
+                        have its own identity, it will require and Extent.</td>
+                </tr>
+                <tr class="a">
+                    <td><a name="sco"></a>SCO</td>
+                    <td>JDO defines 2 main groups of Java objects. The second group is those objects that don't have an identity. 
+                        These are termed &quot;Second Class Objects&quot; or SCO for short.</td>
+                </tr>
+                <tr class="b">
+                    <td><a name="SQL"></a>SQL</td>
+                    <td>JDO allows use of multiple query languages. One of these, for use with RDBMS datastores, is SQL.</td>
+                </tr>
+                <tr class="a">
+                    <td><a name="transient"></a>transient</td>
+                    <td>This is an object state where the object is not persistent.</td>
+                </tr>
+            </table>
+        </div>
+
+    
 
       </div>
     </div>

Modified: websites/production/db/content/jdo/guides.html
==============================================================================
--- websites/production/db/content/jdo/guides.html (original)
+++ websites/production/db/content/jdo/guides.html Sat Feb 23 14:12:18 2013
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.3 at Jan 20, 2013 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.3 at Feb 23, 2013 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -11,7 +11,7 @@
       @import url("./css/site.css");
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20130120" />
+    <meta name="Date-Revision-yyyymmdd" content="20130223" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -217,14 +217,14 @@
     </div>
     <div id="bodyColumn">
       <div id="contentBox">
-        
-    
-        <div class="section"><h2>Guides<a name="Guides"></a></h2>
-            <p>
-                This section provides guides to the process of introducing JDO into your application.
-            </p>
-        </div>
-    
+        
+    
+        <div class="section"><h2>Guides<a name="Guides"></a></h2>
+            <p>
+                This section provides guides to the process of introducing JDO into your application.
+            </p>
+        </div>
+    
 
       </div>
     </div>

Modified: websites/production/db/content/jdo/guides/maven-jdo.html
==============================================================================
--- websites/production/db/content/jdo/guides/maven-jdo.html (original)
+++ websites/production/db/content/jdo/guides/maven-jdo.html Sat Feb 23 14:12:18 2013
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.3 at Jan 20, 2013 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.3 at Feb 23, 2013 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -12,7 +12,7 @@
     </style>
     <link rel="stylesheet" href="../css/print.css" type="text/css" media="print" />
       <meta name="author" content="Andy Jefferson" />
-    <meta name="Date-Revision-yyyymmdd" content="20130120" />
+    <meta name="Date-Revision-yyyymmdd" content="20130223" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -218,230 +218,230 @@
     </div>
     <div id="bodyColumn">
       <div id="contentBox">
-        <!-- 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. -->
-    
-    <div class="section"><h2>JDO Meets Maven<a name="JDO_Meets_Maven"></a></h2>
-        <p>
-        By <a class="externalLink" href="mailto:andy@jpox.org">Andy Jefferson</a>
-        </p>
-
-        <div class="section"><h3>Background - Maven<a name="Background_-_Maven"></a></h3>
-            <p><a class="externalLink" href="http://maven.apache.org" target="_top">Maven</a> is a tool for managing 
-				and building projects providing an alternative to the accepted 
-				<a class="externalLink" href="http://ant.apache.org" target="_top">Ant</a> build process. Maven is 
-				almost totally plugin-driven, and provides plugins for many common tasks (for 
-				example: building EJB components such as WARs and EARs, generating documentation, 
-				running unit tests) and related software (for example: 
-				<a class="externalLink" href="http://checkstyle.sf.net" target="_top">Checkstyle</a>, 
-				<a class="externalLink" href="http://pmd.sf.net" target="_top">PMD</a>, 
-				<a class="externalLink" href="http://www.thecortex.net/clover" target="_top">Clover</a>, 
-				<a class="externalLink" href="http://www.jcoverage.com" target="_top">JCoverage</a>).</p>
-
-            <p>Maven builds on top of the definition of a project. It formalises project 
-				definitions such as dependencies (and hence classpaths), versions, source 
-				repositories, mailing lists, etc. This project definition provides placeholders 
-				for all of the typical metrics important to a project. It formalises the location 
-				of the source tree for a project and of the unit tests. This rigorous structure 
-				allows Maven's plugins to provide generalised functionality such as building the 
-				source tree, running the unit tests, generating javadoc, code analysis, etc.</p>
-
-            <p>Maven operates using the concept of <b>goals</b>. Each <b>goal</b> can have &quot;pre&quot; 
-				and &quot;post&quot; goals. This structure allows for chaining of operations, with one 
-				operation firing off another, and another to achieve some overall end result.</p>
-        </div>
-
-        <div class="section"><h3>Integrating JDO with Maven<a name="Integrating_JDO_with_Maven"></a></h3>
-            <p>In developing a JDO system, the developer has many concerns - not least the likes 
-				of object-relationship mapping - and should, as far as possible, be spared the 
-				&quot;administrative&quot; burdens associated with building the system. Maven's 
-				formalization of the source tree structure and chaining of actions helps achieve 
-				this objective by saving the developer from having to explicitly define tasks 
-				like JDO class bytecode-enhancement. Thus, rather than explicitly invoking a 
-				bytecode-enhancement task in the system build, Maven is able to provide this 
-				activity by way of a plugin, which could even be automatically chained off the 
-				existing Java compilation task.</p>
-        </div>
-
-        <div class="section"><h3>Anatomy of a Maven JDO plugin<a name="Anatomy_of_a_Maven_JDO_plugin"></a></h3>
-            <p>A Maven plugin can use a variety of languages, however most commonly utilises 
-				<a class="externalLink" href="http://jakarta.apache.org/commons/jelly/" target="_top">Jelly scripting language</a>, at least for definition of the plugin's goals.
-                A Maven plugin typically requires a minimum of 3 files ... 
-            </p>
-            <ul>
-                <li><i>project.xml</i> (defining the dependencies of the plugin on other software)</li>
-                <li><i>plugin.jelly</i> (providing the <b>goals</b> definition)</li>
-                <li><i>plugin.properties</i> (properties available for configuration)</li>
-            </ul>
-            <p>
-                Maven plugins can use a variety of other scripting and templating utilities, however 
-				these are not currently required for the JDO plugins implemented.</p>
-
-            <p>Plugins have now been developed for 
-				<a class="externalLink" href="http://www.jpox.org" target="_blank">JPOX</a>, and 
-				<a class="externalLink" href="http://tjdo.sf.net" target="_blank">TJDO</a>, though can readily be 
-				developed for any JDO implementation. The best way of understanding the process 
-				involved is by analysing a Maven JDO plugin - in this case, the JPOX plugin. Here 
-				the <i>plugin.jelly</i> file is as follows:</p>
-            <div class="source"><pre>
-&lt;goal name=&quot;jpox&quot;
-    description=&quot;Enhance classes for use with Java Persistent Objects (JPOX)&quot;
-    prereqs=&quot;jpox:enhance&quot;/&gt;
-
-&lt;goal name=&quot;jpox:init&quot;&gt;
-    ... snip ... code to generate jpoxClasspath and jpoxMetaDataFiles
-&lt;/goal&gt;
-
-&lt;goal name=&quot;jpox:enhance&quot;
-    description=&quot;Perform the enhancement of classes for use with JPOX&quot;
-    prereqs=&quot;jpox:init&quot;&gt;
-    &lt;echo&gt;JDO-enhancing classes for Java Persistent Objects&lt;/echo&gt;
-
-    &lt;ant:java dir=&quot;${maven.build.dest}&quot;
-        classname=&quot;org.jpox.enhance.SunReferenceEnhancer&quot;
-        failonerror=&quot;true&quot;
-        fork=&quot;true&quot;&gt;
-        &lt;classpath refid=&quot;jpoxClasspath&quot;/&gt;
-        &lt;arg line=&quot;${jpoxMetaDataFiles}&quot;/&gt;
-    &lt;/ant:java&gt;
-
-    &lt;echo&gt;Classes are now JDO-enhanced for Java Persistent Objects&lt;/echo&gt;
-&lt;/goal&gt;</pre></div>
-
-            <p>It can be seen that the plugin has several goals, the default one being to run the 
-				enhance goal. Since this goal requires (as a prerequisite) the running of the init 
-				goal, they are chained.</p>
-
-            <p>Some JDO implementations (for example JPOX, or Kodo) allow the generation of the 
-				JDO database schema prior to running the JDO-enabled application. This is catered 
-				for with additional <b>goal(s)</b>. For JPOX again, this is handled as follows </p>
-
-            <div class="source"><pre>
-&lt;goal name=&quot;jpox:schema-create&quot;
-    prereqs=&quot;jpox:init&quot;&gt;
-    &lt;echo&gt;Creating tables for Persistence Capability&lt;/echo&gt;
-
-    &lt;ant:java dir=&quot;${maven.build.dest}&quot;
-        classname=&quot;org.jpox.SchemaTool&quot;
-        failonerror=&quot;true&quot;
-        fork=&quot;true&quot;&gt;
-        &lt;classpath refid=&quot;jpoxClasspath&quot;/&gt;
-        &lt;sysproperty key=&quot;database.driver&quot; value=&quot;${maven.jpox.database.driver}&quot;/&gt;
-        &lt;sysproperty key=&quot;database.url&quot; value=&quot;${maven.jpox.database.url}&quot;/&gt;
-        &lt;sysproperty key=&quot;database.user&quot; value=&quot;${maven.jpox.database.user}&quot;/&gt;
-        &lt;sysproperty key=&quot;database.password&quot; value=&quot;${maven.jpox.database.password}&quot;/&gt;
-        &lt;arg line=&quot;-create&quot;/&gt;
-        &lt;arg line=&quot;${jpoxMetaDataFiles}&quot;/&gt;
-    &lt;/ant:java&gt;
-&lt;/goal&gt;
-
-&lt;goal name=&quot;jpox:schema-delete&quot;
-    prereqs=&quot;jpox:init&quot;&gt;
-    &lt;echo&gt;Deleting tables for Persistence Capability&lt;/echo&gt;
-
-    &lt;ant:java dir=&quot;${maven.build.dest}&quot;
-        classname=&quot;org.jpox.SchemaTool&quot;
-        failonerror=&quot;true&quot;
-        fork=&quot;true&quot;&gt;
-        &lt;classpath refid=&quot;jpoxClasspath&quot;/&gt;
-        &lt;sysproperty key=&quot;database.driver&quot; value=&quot;${maven.jpox.database.driver}&quot;/&gt;
-        &lt;sysproperty key=&quot;database.url&quot; value=&quot;${maven.jpox.database.url}&quot;/&gt;
-        &lt;sysproperty key=&quot;database.user&quot; value=&quot;${maven.jpox.database.user}&quot;/&gt;
-        &lt;sysproperty key=&quot;database.password&quot; value=&quot;${maven.jpox.database.password}&quot;/&gt;
-        &lt;arg line=&quot;-delete&quot;/&gt;
-        &lt;arg line=&quot;${jpoxMetaDataFiles}&quot;/&gt;
-    &lt;/ant:java&gt;
-    &lt;/goal&gt;</pre></div>
-
-            <p>Hence there are 2 additional <b>goals</b>, one for creating all tables required by 
-				JPOX, and a second for deleting these tables. Clearly this has more relevance to 
-				<b>schema generation</b> than for <b>existing schemas</b></p>
-            <p>Where a JDO implementation allows a particular configuration operation, a Maven 
-				plugin <b>goal</b> can be added to deliver this functionality to the Maven user. 
-				As a result, individual implementations can add as many goals as they wish to 
-				fulfil their users requirements.</p>
-        </div>
-
-        <div class="section"><h3>Using a Maven JDO plugin<a name="Using_a_Maven_JDO_plugin"></a></h3>
-            <p>Using the JPOX Maven plugin as an example, the basic enhancement process could be 
-				invoked as follows:</p>
-            <div class="source"><pre>maven jpox:enhance</pre></div>
-            <p>The problem with this is that it burdens the developer with having to explicitly 
-				invoke the enhancement process. As an alternative it is possible to integrate 
-				bytecode enhancement as an automatic step chained off the basic Java compilation 
-				process. This is achieved by including the following in the project 
-				<i>maven.xml</i> file:</p>
-            <div class="source"><pre>
-&lt;postGoal name=&quot;java:compile&quot;&gt;
-    &lt;attainGoal name=&quot;jpox:enhance&quot;/&gt;
-&lt;/postGoal&gt;</pre></div>
-
-            <p>So wherever the <b>java:compile</b> goal is called, as a postGoal it runs the 
-				<b>jpox:enhance</b> goal, leaving the developer with JDO enabled classes ready to 
-				run.</p>
-
-            <p>Maven's plugins can be made configurable using properties specified in the 
-				<i>plugin.properties</i> file. For the JPOX plugin, the following properties can 
-				be set
-		    </p>
-            <ul>
-            <li><b>maven.jpox.jdo.fileset.dir</b> : Directory containing the JDO MetaData files</li>
-            <li><b>maven.jpox.jdo.fileset.include</b> : Fileset include path for JDO MetaData files (default: **/*.jdo)</li>
-            <li><b>maven.jpox.jdo.fileset.exclude</b> : Fileset exclude path for JDO MetaData files</li>
-            <li><b>maven.jpox.database.driver</b> : Driver for use in connecting to datastore</li>
-            <li><b>maven.jpox.database.url</b> : URL defining the datastore</li>
-            <li><b>maven.jpox.database.user</b> : Login name for the datastore</li>
-            <li><b>maven.jpox.database.password</b> : Password for the datastore</li>
-            </ul>
-            <p>
-                For example, the following properties could be included in the Maven <i>project.properties</i> file
-            </p>
-
-            <div class="source"><pre>
-maven.jpox.jdo.fileset.dir=${basedir}/jdo
-maven.jpox.jdo.fileset.include=**/*.jdo
-maven.jpox.database.driver=com.mysql.jdbc.Driver
-maven.jpox.database.url=jdbc:mysql://localhost/jpox
-maven.jpox.database.user={my_username}
-maven.jpox.database.password={my_password}</pre></div>
-
-            <p>This would define the JDO MetaData files residing under the &quot;jdo&quot; project directory, with names matching *.jdo and would be used when all JDO plugin <b>goals</b> (such as <b>enhance</b>) are called. The 4 <b>database</b> properties are used in the <b>schema-create/schema-delete</b> goals (as seen in the <i>plugin.jelly</i> file earlier).</p>
-
-            <p>Invocation of the JPOX schema-create optional goal could be achieved as follows:</p>
-            <div class="source"><pre>maven jpox:schema-create</pre></div>
-        </div>
-
-        <div class="section"><h3>Conclusion<a name="Conclusion"></a></h3>
-            <p>This article has attempted to give a feel for both the operation of Maven, and how 
-				to integrate JDO into a Maven project. The various Maven JDO plugins can be 
-				downloaded as follows
-		    </p>
-            <ul>
-            <li>JPOX (1.1.8) - <a class="externalLink" href="http://www.jpox.org/" target="_blank">Java Persistent Objects (JPOX) project</a></li>
-            <li>TJDO (2.0-beta3) - <a class="externalLink" href="http://www.ibiblio.org/maven/maven/plugins/" target="_top">Ibiblio site</a></li>
-            </ul>
-        </div>
-
-        <div class="section"><h3>About the author<a name="About_the_author"></a></h3>
-            <p>Andy Jefferson is an independent software consultant who has been working in the 
-				IT industry for more than 15 years, primarily in the United Kingdom. He is an 
-				active participator in several OpenSource projects, primarily JPOX, and 
-				Apache JDO, and a member of the JSR243 (JDO2) Expert Group.</p>
-        </div>
-    </div>
-    
+        <!-- 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. -->
+    
+    <div class="section"><h2>JDO Meets Maven<a name="JDO_Meets_Maven"></a></h2>
+        <p>
+        By <a class="externalLink" href="mailto:andy@jpox.org">Andy Jefferson</a>
+        </p>
+
+        <div class="section"><h3>Background - Maven<a name="Background_-_Maven"></a></h3>
+            <p><a class="externalLink" href="http://maven.apache.org" target="_top">Maven</a> is a tool for managing 
+				and building projects providing an alternative to the accepted 
+				<a class="externalLink" href="http://ant.apache.org" target="_top">Ant</a> build process. Maven is 
+				almost totally plugin-driven, and provides plugins for many common tasks (for 
+				example: building EJB components such as WARs and EARs, generating documentation, 
+				running unit tests) and related software (for example: 
+				<a class="externalLink" href="http://checkstyle.sf.net" target="_top">Checkstyle</a>, 
+				<a class="externalLink" href="http://pmd.sf.net" target="_top">PMD</a>, 
+				<a class="externalLink" href="http://www.thecortex.net/clover" target="_top">Clover</a>, 
+				<a class="externalLink" href="http://www.jcoverage.com" target="_top">JCoverage</a>).</p>
+
+            <p>Maven builds on top of the definition of a project. It formalises project 
+				definitions such as dependencies (and hence classpaths), versions, source 
+				repositories, mailing lists, etc. This project definition provides placeholders 
+				for all of the typical metrics important to a project. It formalises the location 
+				of the source tree for a project and of the unit tests. This rigorous structure 
+				allows Maven's plugins to provide generalised functionality such as building the 
+				source tree, running the unit tests, generating javadoc, code analysis, etc.</p>
+
+            <p>Maven operates using the concept of <b>goals</b>. Each <b>goal</b> can have &quot;pre&quot; 
+				and &quot;post&quot; goals. This structure allows for chaining of operations, with one 
+				operation firing off another, and another to achieve some overall end result.</p>
+        </div>
+
+        <div class="section"><h3>Integrating JDO with Maven<a name="Integrating_JDO_with_Maven"></a></h3>
+            <p>In developing a JDO system, the developer has many concerns - not least the likes 
+				of object-relationship mapping - and should, as far as possible, be spared the 
+				&quot;administrative&quot; burdens associated with building the system. Maven's 
+				formalization of the source tree structure and chaining of actions helps achieve 
+				this objective by saving the developer from having to explicitly define tasks 
+				like JDO class bytecode-enhancement. Thus, rather than explicitly invoking a 
+				bytecode-enhancement task in the system build, Maven is able to provide this 
+				activity by way of a plugin, which could even be automatically chained off the 
+				existing Java compilation task.</p>
+        </div>
+
+        <div class="section"><h3>Anatomy of a Maven JDO plugin<a name="Anatomy_of_a_Maven_JDO_plugin"></a></h3>
+            <p>A Maven plugin can use a variety of languages, however most commonly utilises 
+				<a class="externalLink" href="http://jakarta.apache.org/commons/jelly/" target="_top">Jelly scripting language</a>, at least for definition of the plugin's goals.
+                A Maven plugin typically requires a minimum of 3 files ... 
+            </p>
+            <ul>
+                <li><i>project.xml</i> (defining the dependencies of the plugin on other software)</li>
+                <li><i>plugin.jelly</i> (providing the <b>goals</b> definition)</li>
+                <li><i>plugin.properties</i> (properties available for configuration)</li>
+            </ul>
+            <p>
+                Maven plugins can use a variety of other scripting and templating utilities, however 
+				these are not currently required for the JDO plugins implemented.</p>
+
+            <p>Plugins have now been developed for 
+				<a class="externalLink" href="http://www.jpox.org" target="_blank">JPOX</a>, and 
+				<a class="externalLink" href="http://tjdo.sf.net" target="_blank">TJDO</a>, though can readily be 
+				developed for any JDO implementation. The best way of understanding the process 
+				involved is by analysing a Maven JDO plugin - in this case, the JPOX plugin. Here 
+				the <i>plugin.jelly</i> file is as follows:</p>
+            <div class="source"><pre>
+&lt;goal name=&quot;jpox&quot;
+    description=&quot;Enhance classes for use with Java Persistent Objects (JPOX)&quot;
+    prereqs=&quot;jpox:enhance&quot;/&gt;
+
+&lt;goal name=&quot;jpox:init&quot;&gt;
+    ... snip ... code to generate jpoxClasspath and jpoxMetaDataFiles
+&lt;/goal&gt;
+
+&lt;goal name=&quot;jpox:enhance&quot;
+    description=&quot;Perform the enhancement of classes for use with JPOX&quot;
+    prereqs=&quot;jpox:init&quot;&gt;
+    &lt;echo&gt;JDO-enhancing classes for Java Persistent Objects&lt;/echo&gt;
+
+    &lt;ant:java dir=&quot;${maven.build.dest}&quot;
+        classname=&quot;org.jpox.enhance.SunReferenceEnhancer&quot;
+        failonerror=&quot;true&quot;
+        fork=&quot;true&quot;&gt;
+        &lt;classpath refid=&quot;jpoxClasspath&quot;/&gt;
+        &lt;arg line=&quot;${jpoxMetaDataFiles}&quot;/&gt;
+    &lt;/ant:java&gt;
+
+    &lt;echo&gt;Classes are now JDO-enhanced for Java Persistent Objects&lt;/echo&gt;
+&lt;/goal&gt;</pre></div>
+
+            <p>It can be seen that the plugin has several goals, the default one being to run the 
+				enhance goal. Since this goal requires (as a prerequisite) the running of the init 
+				goal, they are chained.</p>
+
+            <p>Some JDO implementations (for example JPOX, or Kodo) allow the generation of the 
+				JDO database schema prior to running the JDO-enabled application. This is catered 
+				for with additional <b>goal(s)</b>. For JPOX again, this is handled as follows </p>
+
+            <div class="source"><pre>
+&lt;goal name=&quot;jpox:schema-create&quot;
+    prereqs=&quot;jpox:init&quot;&gt;
+    &lt;echo&gt;Creating tables for Persistence Capability&lt;/echo&gt;
+
+    &lt;ant:java dir=&quot;${maven.build.dest}&quot;
+        classname=&quot;org.jpox.SchemaTool&quot;
+        failonerror=&quot;true&quot;
+        fork=&quot;true&quot;&gt;
+        &lt;classpath refid=&quot;jpoxClasspath&quot;/&gt;
+        &lt;sysproperty key=&quot;database.driver&quot; value=&quot;${maven.jpox.database.driver}&quot;/&gt;
+        &lt;sysproperty key=&quot;database.url&quot; value=&quot;${maven.jpox.database.url}&quot;/&gt;
+        &lt;sysproperty key=&quot;database.user&quot; value=&quot;${maven.jpox.database.user}&quot;/&gt;
+        &lt;sysproperty key=&quot;database.password&quot; value=&quot;${maven.jpox.database.password}&quot;/&gt;
+        &lt;arg line=&quot;-create&quot;/&gt;
+        &lt;arg line=&quot;${jpoxMetaDataFiles}&quot;/&gt;
+    &lt;/ant:java&gt;
+&lt;/goal&gt;
+
+&lt;goal name=&quot;jpox:schema-delete&quot;
+    prereqs=&quot;jpox:init&quot;&gt;
+    &lt;echo&gt;Deleting tables for Persistence Capability&lt;/echo&gt;
+
+    &lt;ant:java dir=&quot;${maven.build.dest}&quot;
+        classname=&quot;org.jpox.SchemaTool&quot;
+        failonerror=&quot;true&quot;
+        fork=&quot;true&quot;&gt;
+        &lt;classpath refid=&quot;jpoxClasspath&quot;/&gt;
+        &lt;sysproperty key=&quot;database.driver&quot; value=&quot;${maven.jpox.database.driver}&quot;/&gt;
+        &lt;sysproperty key=&quot;database.url&quot; value=&quot;${maven.jpox.database.url}&quot;/&gt;
+        &lt;sysproperty key=&quot;database.user&quot; value=&quot;${maven.jpox.database.user}&quot;/&gt;
+        &lt;sysproperty key=&quot;database.password&quot; value=&quot;${maven.jpox.database.password}&quot;/&gt;
+        &lt;arg line=&quot;-delete&quot;/&gt;
+        &lt;arg line=&quot;${jpoxMetaDataFiles}&quot;/&gt;
+    &lt;/ant:java&gt;
+    &lt;/goal&gt;</pre></div>
+
+            <p>Hence there are 2 additional <b>goals</b>, one for creating all tables required by 
+				JPOX, and a second for deleting these tables. Clearly this has more relevance to 
+				<b>schema generation</b> than for <b>existing schemas</b></p>
+            <p>Where a JDO implementation allows a particular configuration operation, a Maven 
+				plugin <b>goal</b> can be added to deliver this functionality to the Maven user. 
+				As a result, individual implementations can add as many goals as they wish to 
+				fulfil their users requirements.</p>
+        </div>
+
+        <div class="section"><h3>Using a Maven JDO plugin<a name="Using_a_Maven_JDO_plugin"></a></h3>
+            <p>Using the JPOX Maven plugin as an example, the basic enhancement process could be 
+				invoked as follows:</p>
+            <div class="source"><pre>maven jpox:enhance</pre></div>
+            <p>The problem with this is that it burdens the developer with having to explicitly 
+				invoke the enhancement process. As an alternative it is possible to integrate 
+				bytecode enhancement as an automatic step chained off the basic Java compilation 
+				process. This is achieved by including the following in the project 
+				<i>maven.xml</i> file:</p>
+            <div class="source"><pre>
+&lt;postGoal name=&quot;java:compile&quot;&gt;
+    &lt;attainGoal name=&quot;jpox:enhance&quot;/&gt;
+&lt;/postGoal&gt;</pre></div>
+
+            <p>So wherever the <b>java:compile</b> goal is called, as a postGoal it runs the 
+				<b>jpox:enhance</b> goal, leaving the developer with JDO enabled classes ready to 
+				run.</p>
+
+            <p>Maven's plugins can be made configurable using properties specified in the 
+				<i>plugin.properties</i> file. For the JPOX plugin, the following properties can 
+				be set
+		    </p>
+            <ul>
+            <li><b>maven.jpox.jdo.fileset.dir</b> : Directory containing the JDO MetaData files</li>
+            <li><b>maven.jpox.jdo.fileset.include</b> : Fileset include path for JDO MetaData files (default: **/*.jdo)</li>
+            <li><b>maven.jpox.jdo.fileset.exclude</b> : Fileset exclude path for JDO MetaData files</li>
+            <li><b>maven.jpox.database.driver</b> : Driver for use in connecting to datastore</li>
+            <li><b>maven.jpox.database.url</b> : URL defining the datastore</li>
+            <li><b>maven.jpox.database.user</b> : Login name for the datastore</li>
+            <li><b>maven.jpox.database.password</b> : Password for the datastore</li>
+            </ul>
+            <p>
+                For example, the following properties could be included in the Maven <i>project.properties</i> file
+            </p>
+
+            <div class="source"><pre>
+maven.jpox.jdo.fileset.dir=${basedir}/jdo
+maven.jpox.jdo.fileset.include=**/*.jdo
+maven.jpox.database.driver=com.mysql.jdbc.Driver
+maven.jpox.database.url=jdbc:mysql://localhost/jpox
+maven.jpox.database.user={my_username}
+maven.jpox.database.password={my_password}</pre></div>
+
+            <p>This would define the JDO MetaData files residing under the &quot;jdo&quot; project directory, with names matching *.jdo and would be used when all JDO plugin <b>goals</b> (such as <b>enhance</b>) are called. The 4 <b>database</b> properties are used in the <b>schema-create/schema-delete</b> goals (as seen in the <i>plugin.jelly</i> file earlier).</p>
+
+            <p>Invocation of the JPOX schema-create optional goal could be achieved as follows:</p>
+            <div class="source"><pre>maven jpox:schema-create</pre></div>
+        </div>
+
+        <div class="section"><h3>Conclusion<a name="Conclusion"></a></h3>
+            <p>This article has attempted to give a feel for both the operation of Maven, and how 
+				to integrate JDO into a Maven project. The various Maven JDO plugins can be 
+				downloaded as follows
+		    </p>
+            <ul>
+            <li>JPOX (1.1.8) - <a class="externalLink" href="http://www.jpox.org/" target="_blank">Java Persistent Objects (JPOX) project</a></li>
+            <li>TJDO (2.0-beta3) - <a class="externalLink" href="http://www.ibiblio.org/maven/maven/plugins/" target="_top">Ibiblio site</a></li>
+            </ul>
+        </div>
+
+        <div class="section"><h3>About the author<a name="About_the_author"></a></h3>
+            <p>Andy Jefferson is an independent software consultant who has been working in the 
+				IT industry for more than 15 years, primarily in the United Kingdom. He is an 
+				active participator in several OpenSource projects, primarily JPOX, and 
+				Apache JDO, and a member of the JSR243 (JDO2) Expert Group.</p>
+        </div>
+    </div>
+    
 
       </div>
     </div>

Modified: websites/production/db/content/jdo/guides/replication.html
==============================================================================
--- websites/production/db/content/jdo/guides/replication.html (original)
+++ websites/production/db/content/jdo/guides/replication.html Sat Feb 23 14:12:18 2013
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.3 at Jan 20, 2013 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.3 at Feb 23, 2013 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -11,7 +11,7 @@
       @import url("../css/site.css");
     </style>
     <link rel="stylesheet" href="../css/print.css" type="text/css" media="print" />
-    <meta name="Date-Revision-yyyymmdd" content="20130120" />
+    <meta name="Date-Revision-yyyymmdd" content="20130223" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -217,148 +217,148 @@
     </div>
     <div id="bodyColumn">
       <div id="contentBox">
-        
-    
-        <div class="section"><h2>Data Replication<a name="Data_Replication"></a></h2>
-            <p>
-                There are times when you need to replicate data between datastores. In many cases datastores themselves provide a means of doing this, however if you want to avoid using datastore-specific functionality you can utilise JDO to perform this task.
-                JDO2 allows replication by use of detach/attach functionality.
-                We demonstrate this with an example
-            </p>
-            <div class="source"><pre>
-public class ElementHolder
-{
-    long id;
-    private Set elements = new HashSet();
-
-    ...
-}
-
-public class Element
-{
-    String name;
-
-    ...
-}
-
-public class SubElement extends Element
-{
-    double value;
-
-    ...
-}</pre></div>
-            <p>
-                so we have a 1-N unidirectional (Set) relation, and we define the metadata like this
-            </p>
-            <div class="source"><pre>
-&lt;jdo&gt;
-    &lt;package name=&quot;org.apache.jdo.test&quot;&gt;
-        &lt;class name=&quot;ElementHolder&quot; identity-type=&quot;application&quot; detachable=&quot;true&quot;&gt;
-            &lt;inheritance strategy=&quot;new-table&quot;/&gt;
-            &lt;field name=&quot;id&quot; primary-key=&quot;true&quot;/&gt;
-            &lt;field name=&quot;elements&quot; persistence-modifier=&quot;persistent&quot;&gt;
-                &lt;collection element-type=&quot;Element&quot;/&gt;
-                &lt;join/&gt;
-            &lt;/field&gt;
-        &lt;/class&gt;
-
-        &lt;class name=&quot;Element&quot; identity-type=&quot;application&quot; detachable=&quot;true&quot;&gt;
-            &lt;inheritance strategy=&quot;new-table&quot;/&gt;
-            &lt;field name=&quot;name&quot; primary-key=&quot;true&quot;/&gt;
-        &lt;/class&gt;
-
-        &lt;class name=&quot;SubElement&quot;&gt;
-            &lt;inheritance strategy=&quot;new-table&quot;/&gt;
-            &lt;field name=&quot;value&quot;/&gt; 
-        &lt;/class&gt;
-    &lt;/package&gt;
-&lt;/jdo&gt;</pre></div>
-            <p>
-                and so in our application we create some objects in <i>datastore1</i>, like this
-            </p>
-            <div class="source"><pre>
-PersistenceManagerFactory pmf1 = JDOHelper.getPersistenceManagerFactory(&quot;jdo.1.properties&quot;);
-PersistenceManager pm1 = pmf1.getPersistenceManager();
-Transaction tx1 = pm1.currentTransaction();
-Object holderId = null;
-try
-{
-    tx1.begin();
-
-    ElementHolder holder = new ElementHolder(101);
-    holder.addElement(new Element(&quot;First Element&quot;));
-    holder.addElement(new Element(&quot;Second Element&quot;));
-    holder.addElement(new SubElement(&quot;First Inherited Element&quot;));
-    holder.addElement(new SubElement(&quot;Second Inherited Element&quot;));
-    pm1.makePersistent(holder);
-
-    tx1.commit();
-    holderId = JDOHelper.getObjectId(holder);
-}
-finally
-{
-    if (tx1.isActive())
-    {
-        tx1.rollback();
-    }
-    pm1.close();
-}</pre></div>
-            <p>
-                and now we want to replicate these objects into <i>datastore2</i>, so we detach them from <i>datastore1</i>
-                and attach them to <i>datastore2</i>, like this
-            </p>
-            <div class="source"><pre>
-// Detach the objects from &quot;datastore1&quot;
-ElementHolder detachedHolder = null;
-pm1 = pmf1.getPersistenceManager();
-tx1 = pm1.currentTransaction();
-try
-{
-    pm1.getFetchPlan().setGroups(new String[] {FetchPlan.DEFAULT, FetchPlan.ALL});
-    pm1.getFetchPlan().setMaxFetchDepth(-1);
-
-    tx1.begin();
-
-    ElementHolder holder = (ElementHolder) pm1.getObjectById(holderID);
-    detachedHolder = (ElementHolder) pm1.detachCopy(holder);
-
-    tx1.commit();
-}
-finally
-{
-    if (tx1.isActive())
-    {
-        tx1.rollback();
-    }
-    pm1.close();
-}
-
-// Attach the objects to datastore2
-PersistenceManagerFactory pmf2 = JDOHelper.getPersistenceManagerFactory(&quot;jdo.2.properties&quot;);
-PersistenceManager pm2 = pmf2.getPersistenceManager();
-Transaction tx2 = pm2.currentTransaction();
-try
-{
-    tx2.begin();
-
-    pm2.makePersistent(detachedHolder);
-
-    tx2.commit();
-}
-finally
-{
-    if (tx2.isActive())
-    {
-        tx2.rollback();
-    }
-    pm2.close();
-}</pre></div>
-            <p>
-                These objects are now replicated into <i>datastore2</i>.
-                Clearly you can extend this basic idea and replicate large amounts of data.
-            </p>
-        </div>
-    
+        
+    
+        <div class="section"><h2>Data Replication<a name="Data_Replication"></a></h2>
+            <p>
+                There are times when you need to replicate data between datastores. In many cases datastores themselves provide a means of doing this, however if you want to avoid using datastore-specific functionality you can utilise JDO to perform this task.
+                JDO2 allows replication by use of detach/attach functionality.
+                We demonstrate this with an example
+            </p>
+            <div class="source"><pre>
+public class ElementHolder
+{
+    long id;
+    private Set elements = new HashSet();
+
+    ...
+}
+
+public class Element
+{
+    String name;
+
+    ...
+}
+
+public class SubElement extends Element
+{
+    double value;
+
+    ...
+}</pre></div>
+            <p>
+                so we have a 1-N unidirectional (Set) relation, and we define the metadata like this
+            </p>
+            <div class="source"><pre>
+&lt;jdo&gt;
+    &lt;package name=&quot;org.apache.jdo.test&quot;&gt;
+        &lt;class name=&quot;ElementHolder&quot; identity-type=&quot;application&quot; detachable=&quot;true&quot;&gt;
+            &lt;inheritance strategy=&quot;new-table&quot;/&gt;
+            &lt;field name=&quot;id&quot; primary-key=&quot;true&quot;/&gt;
+            &lt;field name=&quot;elements&quot; persistence-modifier=&quot;persistent&quot;&gt;
+                &lt;collection element-type=&quot;Element&quot;/&gt;
+                &lt;join/&gt;
+            &lt;/field&gt;
+        &lt;/class&gt;
+
+        &lt;class name=&quot;Element&quot; identity-type=&quot;application&quot; detachable=&quot;true&quot;&gt;
+            &lt;inheritance strategy=&quot;new-table&quot;/&gt;
+            &lt;field name=&quot;name&quot; primary-key=&quot;true&quot;/&gt;
+        &lt;/class&gt;
+
+        &lt;class name=&quot;SubElement&quot;&gt;
+            &lt;inheritance strategy=&quot;new-table&quot;/&gt;
+            &lt;field name=&quot;value&quot;/&gt; 
+        &lt;/class&gt;
+    &lt;/package&gt;
+&lt;/jdo&gt;</pre></div>
+            <p>
+                and so in our application we create some objects in <i>datastore1</i>, like this
+            </p>
+            <div class="source"><pre>
+PersistenceManagerFactory pmf1 = JDOHelper.getPersistenceManagerFactory(&quot;jdo.1.properties&quot;);
+PersistenceManager pm1 = pmf1.getPersistenceManager();
+Transaction tx1 = pm1.currentTransaction();
+Object holderId = null;
+try
+{
+    tx1.begin();
+
+    ElementHolder holder = new ElementHolder(101);
+    holder.addElement(new Element(&quot;First Element&quot;));
+    holder.addElement(new Element(&quot;Second Element&quot;));
+    holder.addElement(new SubElement(&quot;First Inherited Element&quot;));
+    holder.addElement(new SubElement(&quot;Second Inherited Element&quot;));
+    pm1.makePersistent(holder);
+
+    tx1.commit();
+    holderId = JDOHelper.getObjectId(holder);
+}
+finally
+{
+    if (tx1.isActive())
+    {
+        tx1.rollback();
+    }
+    pm1.close();
+}</pre></div>
+            <p>
+                and now we want to replicate these objects into <i>datastore2</i>, so we detach them from <i>datastore1</i>
+                and attach them to <i>datastore2</i>, like this
+            </p>
+            <div class="source"><pre>
+// Detach the objects from &quot;datastore1&quot;
+ElementHolder detachedHolder = null;
+pm1 = pmf1.getPersistenceManager();
+tx1 = pm1.currentTransaction();
+try
+{
+    pm1.getFetchPlan().setGroups(new String[] {FetchPlan.DEFAULT, FetchPlan.ALL});
+    pm1.getFetchPlan().setMaxFetchDepth(-1);
+
+    tx1.begin();
+
+    ElementHolder holder = (ElementHolder) pm1.getObjectById(holderID);
+    detachedHolder = (ElementHolder) pm1.detachCopy(holder);
+
+    tx1.commit();
+}
+finally
+{
+    if (tx1.isActive())
+    {
+        tx1.rollback();
+    }
+    pm1.close();
+}
+
+// Attach the objects to datastore2
+PersistenceManagerFactory pmf2 = JDOHelper.getPersistenceManagerFactory(&quot;jdo.2.properties&quot;);
+PersistenceManager pm2 = pmf2.getPersistenceManager();
+Transaction tx2 = pm2.currentTransaction();
+try
+{
+    tx2.begin();
+
+    pm2.makePersistent(detachedHolder);
+
+    tx2.commit();
+}
+finally
+{
+    if (tx2.isActive())
+    {
+        tx2.rollback();
+    }
+    pm2.close();
+}</pre></div>
+            <p>
+                These objects are now replicated into <i>datastore2</i>.
+                Clearly you can extend this basic idea and replicate large amounts of data.
+            </p>
+        </div>
+    
 
       </div>
     </div>

Modified: websites/production/db/content/jdo/impls.html
==============================================================================
--- websites/production/db/content/jdo/impls.html (original)
+++ websites/production/db/content/jdo/impls.html Sat Feb 23 14:12:18 2013
@@ -1,5 +1,5 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!-- Generated by Apache Maven Doxia Site Renderer 1.3 at Jan 20, 2013 -->
+<!-- Generated by Apache Maven Doxia Site Renderer 1.3 at Feb 23, 2013 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
@@ -12,7 +12,7 @@
     </style>
     <link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
       <meta name="author" content="JDO Documentation Team" />
-    <meta name="Date-Revision-yyyymmdd" content="20130120" />
+    <meta name="Date-Revision-yyyymmdd" content="20130223" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -210,140 +210,140 @@
     </div>
     <div id="bodyColumn">
       <div id="contentBox">
-        <!-- 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. -->
-
-    <div class="section"><h2>JDO Implementations<a name="JDO_Implementations"></a></h2>
-        <p>
-            To build and run your JDO application, you need a JDO implementation.
-            This page lists commercial and non-commercial JDO implementations.
-            For information on how vendors certify compliance with the JDO specifications, 
-			see <a href="tck.html">TCK</a>.
-        </p>
-
-        <div class="section"><h3>JDO Reference Implementations<a name="JDO_Reference_Implementations"></a></h3>
-            <ul>
-            <li><b>JDO 1.0</b> : <a class="externalLink" href="http://jcp.org/aboutJava/communityprocess/final/jsr012/index2.html">FOStore</a></li>
-            <li><b>JDO 2.0</b> : <a class="externalLink" href="http://www.jpox.org/docs/1_1/">JPOX 1.1</a></li>
-            <li><b>JDO 2.1</b> : <a class="externalLink" href="http://www.jpox.org/docs/1_2/">JPOX 1.2</a></li>
-            <li><b>JDO 2.2</b> : <a class="externalLink" href="http://www.datanucleus.org/products/accessplatform_1_0/index.html">DataNucleus AccessPlatform 1.0.1</a></li>
-            <li><b>JDO 3.0</b> : <a class="externalLink" href="http://www.datanucleus.org/products/accessplatform_2_1/index.html">DataNucleus AccessPlatform 2.1.0</a></li>
-            <li><b>JDO 3.1</b> : <a class="externalLink" href="http://www.datanucleus.org/products/accessplatform_3_1/index.html">DataNucleus AccessPlatform 3.1.0</a></li>
-            </ul>
-            <br />
-        </div>
-
-        <div class="section"><h3>Implementations<a name="Implementations"></a></h3>
-            <p>
-                Below is a list of known implementations of JDO, showing the level of JDO that
-                the implementation tries to implement, and the type of datastore that the
-                implementation supports. You should check the vendors website for details of whether
-                the implementation is fully compliant with the specification claimed - Apache JDO
-                simply provides visibility of known implementations.
-            </p>
-            <table border="0" class="bodyTable">
-                <tr class="a">
-                    <th>Name</th>
-                    <th>License</th>
-                    <th>JDO Spec</th>
-                    <th>Datastore(s)</th>
-                </tr>
-                <tr class="b">
-                    <td><a class="externalLink" href="http://www.datanucleus.org">DataNucleus Access Platform</a></td>
-                    <td>NonCommercial</td>
-                    <td>1.0, 2.0, 2.1, 2.2, 3.0, 3.1</td>
-                    <td>RDBMS, db4o, NeoDatis, LDAP, Excel XLS, Excel OOXML, ODF, XML, JSON, 
-						Google BigTable, HBase, Amazon S3, MongoDB, GoogleStorage, Cassandra,
-					    OrientDB, Salesforce.com, Neo4j</td>
-                </tr>
-                <tr class="a">
-                    <td><a class="externalLink" href="http://www.jdoinstruments.org/">JDOInstruments</a></td>
-                    <td>NonCommercial</td>
-                    <td>1.0</td>
-                    <td>JDOInstruments</td>
-                </tr>
-                <tr class="b">
-                    <td><a class="externalLink" href="http://www.jpox.org"><i>JPOX</i></a></td>
-                    <td>NonCommercial</td>
-                    <td>1.0, 2.0, 2.1</td>
-                    <td>RDBMS, db4o</td>
-                </tr>
-                <tr class="a">
-                    <td><a class="externalLink" href="http://www.bea.com/kodo"><i>Kodo</i></a></td>
-                    <td>Commercial</td>
-                    <td>1.0, 2.0</td>
-                    <td>RDBMS, XML</td>
-                </tr>
-                <tr class="b">
-                    <td><a class="externalLink" href="http://www.objectdb.com/">ObjectDB for Java/JDO</a></td>
-                    <td>Commercial</td>
-                    <td>1.0, 2.0</td>
-                    <td>ObjectDB</td>
-                </tr>
-                <tr class="a">
-                    <td><a class="externalLink" href="http://www.objectivity.com/pages/object-database-solutions/java-data-objects.asp">Objectivity</a></td>
-                    <td>Commercial</td>
-                    <td>1.0</td>
-                    <td>ObjectivityDB</td>
-                </tr>
-                <tr class="b">
-                    <td><a class="externalLink" href="http://www.orientechnologies.com/cms/">Orient</a></td>
-                    <td>Commercial</td>
-                    <td>1.0</td>
-                    <td>Orient</td>
-                </tr>
-                <tr class="a">
-                    <td><a class="externalLink" href="http://pejava.tripod.com/index.html"><i>hywy's PE:J</i></a></td>
-                    <td>Commercial</td>
-                    <td>1.0</td>
-                    <td>RDBMS</td>
-                </tr>
-                <tr class="b">
-                    <td><a class="externalLink" href="http://www.signsoft.de/signsoft/en/intelliBO/"><i>SignSoft intelliBO</i></a></td>
-                    <td>Commercial</td>
-                    <td>1.0</td>
-                    <td>intelliBO</td>
-                </tr>
-                <tr class="a">
-                    <td><a class="externalLink" href="http://speedo.objectweb.org/"><i>Speedo</i></a></td>
-                    <td>NonCommercial</td>
-                    <td>1.0</td>
-                    <td>RDBMS</td>
-                </tr>
-                <tr class="b">
-                    <td><a class="externalLink" href="http://tjdo.sourceforge.net/"><i>TJDO</i></a></td>
-                    <td>NonCommercial</td>
-                    <td>1.0</td>
-                    <td>RDBMS</td>
-                </tr>
-                <tr class="a">
-                    <td><a class="externalLink" href="http://www.versant.com/en_US/products/objectdatabase/">Versant</a></td>
-                    <td>Commercial</td>
-                    <td>1.0, 2.0</td>
-                    <td>Versant Object Database</td>
-                </tr>
-                <tr class="b">
-                    <td><a class="externalLink" href="http://www.xcalia.com/xdn/specs/jdo">Xcalia</a></td>
-                    <td>Commercial</td>
-                    <td>1.0, 2.0</td>
-                    <td>RDBMS, XML, Versant ODBMS, Jalisto, Web services, mainframe transactions and screens (CICS, IMS...), packaged applications (ERP, CRM,SFA...), components (EJB...).</td>
-                </tr>
-            </table>
-        </div>
-    </div>
-
+        <!-- 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. -->
+
+    <div class="section"><h2>JDO Implementations<a name="JDO_Implementations"></a></h2>
+        <p>
+            To build and run your JDO application, you need a JDO implementation.
+            This page lists commercial and non-commercial JDO implementations.
+            For information on how vendors certify compliance with the JDO specifications, 
+			see <a href="tck.html">TCK</a>.
+        </p>
+
+        <div class="section"><h3>JDO Reference Implementations<a name="JDO_Reference_Implementations"></a></h3>
+            <ul>
+            <li><b>JDO 1.0</b> : <a class="externalLink" href="http://jcp.org/aboutJava/communityprocess/final/jsr012/index2.html">FOStore</a></li>
+            <li><b>JDO 2.0</b> : <a class="externalLink" href="http://www.jpox.org/docs/1_1/">JPOX 1.1</a></li>
+            <li><b>JDO 2.1</b> : <a class="externalLink" href="http://www.jpox.org/docs/1_2/">JPOX 1.2</a></li>
+            <li><b>JDO 2.2</b> : <a class="externalLink" href="http://www.datanucleus.org/products/accessplatform_1_0/index.html">DataNucleus AccessPlatform 1.0.1</a></li>
+            <li><b>JDO 3.0</b> : <a class="externalLink" href="http://www.datanucleus.org/products/accessplatform_2_1/index.html">DataNucleus AccessPlatform 2.1.0</a></li>
+            <li><b>JDO 3.1</b> : <a class="externalLink" href="http://www.datanucleus.org/products/accessplatform_3_2/index.html">DataNucleus AccessPlatform 3.2.0</a></li>
+            </ul>
+            <br />
+        </div>
+
+        <div class="section"><h3>Implementations<a name="Implementations"></a></h3>
+            <p>
+                Below is a list of known implementations of JDO, showing the level of JDO that
+                the implementation tries to implement, and the type of datastore that the
+                implementation supports. You should check the vendors website for details of whether
+                the implementation is fully compliant with the specification claimed - Apache JDO
+                simply provides visibility of known implementations.
+            </p>
+            <table border="0" class="bodyTable">
+                <tr class="a">
+                    <th>Name</th>
+                    <th>License</th>
+                    <th>JDO Spec</th>
+                    <th>Datastore(s)</th>
+                </tr>
+                <tr class="b">
+                    <td><a class="externalLink" href="http://www.datanucleus.org">DataNucleus Access Platform</a></td>
+                    <td>NonCommercial</td>
+                    <td>1.0, 2.0, 2.1, 2.2, 3.0, 3.1</td>
+                    <td>RDBMS, db4o, NeoDatis, LDAP, Excel XLS, Excel OOXML, ODF, XML, JSON, 
+						Google BigTable, HBase, Amazon S3, MongoDB, GoogleStorage, Cassandra,
+					    OrientDB, Salesforce.com, Neo4j</td>
+                </tr>
+                <tr class="a">
+                    <td><a class="externalLink" href="http://www.jdoinstruments.org/">JDOInstruments</a></td>
+                    <td>NonCommercial</td>
+                    <td>1.0</td>
+                    <td>JDOInstruments</td>
+                </tr>
+                <tr class="b">
+                    <td><a class="externalLink" href="http://www.jpox.org"><i>JPOX</i></a></td>
+                    <td>NonCommercial</td>
+                    <td>1.0, 2.0, 2.1</td>
+                    <td>RDBMS, db4o</td>
+                </tr>
+                <tr class="a">
+                    <td><a class="externalLink" href="http://www.bea.com/kodo"><i>Kodo</i></a></td>
+                    <td>Commercial</td>
+                    <td>1.0, 2.0</td>
+                    <td>RDBMS, XML</td>
+                </tr>
+                <tr class="b">
+                    <td><a class="externalLink" href="http://www.objectdb.com/">ObjectDB for Java/JDO</a></td>
+                    <td>Commercial</td>
+                    <td>1.0, 2.0</td>
+                    <td>ObjectDB</td>
+                </tr>
+                <tr class="a">
+                    <td><a class="externalLink" href="http://www.objectivity.com/pages/object-database-solutions/java-data-objects.asp">Objectivity</a></td>
+                    <td>Commercial</td>
+                    <td>1.0</td>
+                    <td>ObjectivityDB</td>
+                </tr>
+                <tr class="b">
+                    <td><a class="externalLink" href="http://www.orientechnologies.com/cms/">Orient</a></td>
+                    <td>Commercial</td>
+                    <td>1.0</td>
+                    <td>Orient</td>
+                </tr>
+                <tr class="a">
+                    <td><a class="externalLink" href="http://pejava.tripod.com/index.html"><i>hywy's PE:J</i></a></td>
+                    <td>Commercial</td>
+                    <td>1.0</td>
+                    <td>RDBMS</td>
+                </tr>
+                <tr class="b">
+                    <td><a class="externalLink" href="http://www.signsoft.de/signsoft/en/intelliBO/"><i>SignSoft intelliBO</i></a></td>
+                    <td>Commercial</td>
+                    <td>1.0</td>
+                    <td>intelliBO</td>
+                </tr>
+                <tr class="a">
+                    <td><a class="externalLink" href="http://speedo.objectweb.org/"><i>Speedo</i></a></td>
+                    <td>NonCommercial</td>
+                    <td>1.0</td>
+                    <td>RDBMS</td>
+                </tr>
+                <tr class="b">
+                    <td><a class="externalLink" href="http://tjdo.sourceforge.net/"><i>TJDO</i></a></td>
+                    <td>NonCommercial</td>
+                    <td>1.0</td>
+                    <td>RDBMS</td>
+                </tr>
+                <tr class="a">
+                    <td><a class="externalLink" href="http://www.versant.com/en_US/products/objectdatabase/">Versant</a></td>
+                    <td>Commercial</td>
+                    <td>1.0, 2.0</td>
+                    <td>Versant Object Database</td>
+                </tr>
+                <tr class="b">
+                    <td><a class="externalLink" href="http://www.xcalia.com/xdn/specs/jdo">Xcalia</a></td>
+                    <td>Commercial</td>
+                    <td>1.0, 2.0</td>
+                    <td>RDBMS, XML, Versant ODBMS, Jalisto, Web services, mainframe transactions and screens (CICS, IMS...), packaged applications (ERP, CRM,SFA...), components (EJB...).</td>
+                </tr>
+            </table>
+        </div>
+    </div>
+
 
       </div>
     </div>