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 [12/12] - in /websites/production/db/content/jdo: ./ guides/ releases/

Modified: websites/production/db/content/jdo/tck.html
==============================================================================
--- websites/production/db/content/jdo/tck.html (original)
+++ websites/production/db/content/jdo/tck.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,63 +210,63 @@
     </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>About the Technology Compatibility Kit<a name="About_the_Technology_Compatibility_Kit"></a></h2>
-
-<p>
-    In order to demonstrate compliance with the Java Data Objects specification,
-    an implementation must pass all of the tests in the Technology Compatibility Kit (TCK).
-    The TCK is released as a packaged Java source tree.
-    Maven is the driver of a test run. You must download and install 
-    <a class="externalLink" href="http://maven.apache.org/">Maven 2+</a>before running the TCK.
-</p>
-</div>
-
-<div class="section"><h2>Running the TCK<a name="Running_the_TCK"></a></h2>
-    <p>
-        To run the Technology Compatibility Kit:
-    </p>
-    <ol style="list-style-type: decimal">
-        <li>
-        Check out the JDO source code from the most recent branch. See <a class="externalLink" href="http://db.apache.org/jdo/svn.html">Source Code</a> for instructions on checking out code.
-        </li>
-        <li>
-        Follow the instructions in the Prerequisites section of 
-        <a class="externalLink" href="http://svn.apache.org/viewcvs.cgi/*checkout*/db/jdo/branches/2.3-ea/README.html">README.html</a>.
-        </li>
-        <li>
-        Follow the procedure in <a class="externalLink" href="http://svn.apache.org/viewcvs.cgi/*checkout*/db/jdo/branches/2.3-ea/tck2/RunRules.html">RunRules.html</a> in the jdo2-tck-<i>version</i> directory.
-        </li>
-    </ol>
-</div>
-
-<div class="section"><h2>Demonstrating Compliance<a name="Demonstrating_Compliance"></a></h2>
-<p>
-Vendors must post test results on a publicly accessible web site for
-examination by the public. The posting includes the output of the
-test run, which consists of multiple log files containing
-configuration information and test results. For an example of the
-required posting, please see <a href="tck/final">http://db.apache.org/jdo/tck/final</a>.
-</p>
-</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>About the Technology Compatibility Kit<a name="About_the_Technology_Compatibility_Kit"></a></h2>
+
+<p>
+    In order to demonstrate compliance with the Java Data Objects specification,
+    an implementation must pass all of the tests in the Technology Compatibility Kit (TCK).
+    The TCK is released as a packaged Java source tree.
+    Maven is the driver of a test run. You must download and install 
+    <a class="externalLink" href="http://maven.apache.org/">Maven 2+</a>before running the TCK.
+</p>
+</div>
+
+<div class="section"><h2>Running the TCK<a name="Running_the_TCK"></a></h2>
+    <p>
+        To run the Technology Compatibility Kit:
+    </p>
+    <ol style="list-style-type: decimal">
+        <li>
+        Check out the JDO source code from the most recent branch. See <a class="externalLink" href="http://db.apache.org/jdo/svn.html">Source Code</a> for instructions on checking out code.
+        </li>
+        <li>
+        Follow the instructions in the Prerequisites section of 
+        <a class="externalLink" href="http://svn.apache.org/viewcvs.cgi/*checkout*/db/jdo/branches/2.3-ea/README.html">README.html</a>.
+        </li>
+        <li>
+        Follow the procedure in <a class="externalLink" href="http://svn.apache.org/viewcvs.cgi/*checkout*/db/jdo/branches/2.3-ea/tck2/RunRules.html">RunRules.html</a> in the jdo2-tck-<i>version</i> directory.
+        </li>
+    </ol>
+</div>
+
+<div class="section"><h2>Demonstrating Compliance<a name="Demonstrating_Compliance"></a></h2>
+<p>
+Vendors must post test results on a publicly accessible web site for
+examination by the public. The posting includes the output of the
+test run, which consists of multiple log files containing
+configuration information and test results. For an example of the
+required posting, please see <a href="tck/final">http://db.apache.org/jdo/tck/final</a>.
+</p>
+</div>
+
+
 
       </div>
     </div>

Modified: websites/production/db/content/jdo/team-list.html
==============================================================================
--- websites/production/db/content/jdo/team-list.html (original)
+++ websites/production/db/content/jdo/team-list.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="Apache JDO Development Team" />
-    <meta name="Date-Revision-yyyymmdd" content="20130120" />
+    <meta name="Date-Revision-yyyymmdd" content="20130223" />
     <meta http-equiv="Content-Language" content="en" />
         
         </head>
@@ -210,71 +210,71 @@
     </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>The Apache JDO Team<a name="The_Apache_JDO_Team"></a></h2>
-
-<p>
-    The people listed below have made significant contributions to JDO by
-    working long and hard to make quality software for the rest of the world to
-    use.
-</p>
-
-<p>
-    If you would like to contribute to JDO, please see the
-    <a href="roadmap.html">roadmap</a> list to find areas where you 
-    can contribute.
-    If there is nothing in there that suits your interest, but you still have
-    ideas, please feel free to suggest them on the mailing list.
-</p>
-<p>
-    If you would like to become a committer, please see
-    <a href="get-involved.html">Get Involved</a>.
-</p>
-
-</div>
-<div class="section"><h2>Apache JDO Committers<a name="Apache_JDO_Committers"></a></h2>
-<table border="0" class="bodyTable">
-<tr class="a"><th>Name</th><th>Organization</th></tr>
-<tr class="b"><td>Matthew Adams</td><td>SpringSource</td></tr>
-<tr class="a"><td>Erik Bengtson</td><td>JPOX</td></tr>
-<tr class="b"><td>Michael Bouschen</td><td>Tech@Spree</td></tr>
-<tr class="a"><td>Michelle Caisse</td><td>Sun Microsystems, Inc.</td></tr>
-<tr class="b"><td>Andy Jefferson</td><td>DataNucleus</td></tr>
-<tr class="a"><td>Patrick Linskey</td><td>Oracle</td></tr>
-<tr class="b"><td>Geir Magnusson Jr.</td><td>IBM</td></tr>
-<tr class="a"><td>Brian McCallister</td><td></td></tr>
-<tr class="b"><td>Craig Russell</td><td>Sun Microsystems, Inc.</td></tr>
-<tr class="a"><td>Dain Sundstrom</td><td></td></tr>
-<tr class="b"><td>Brian Topping</td><td></td></tr>
-<tr class="a"><td>Michael Watzek</td><td>Tech@Spree</td></tr>
-<tr class="b"><td>Martin Zaun</td><td>Sun Microsystems, Inc.</td></tr>
-</table>
-</div>
-
-<div class="section"><h2>Apache JDO Contributors<a name="Apache_JDO_Contributors"></a></h2>
-<table border="0" class="bodyTable">
-<tr class="a"><th>Name</th><th>Organization</th></tr>
-<tr class="b"><td>Chris Beams</td><td>SpringSource</td></tr>
-<tr class="a"><td>Ilan Kirsch</td><td>ObjectDB</td></tr>
-</table>
-</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>The Apache JDO Team<a name="The_Apache_JDO_Team"></a></h2>
+
+<p>
+    The people listed below have made significant contributions to JDO by
+    working long and hard to make quality software for the rest of the world to
+    use.
+</p>
+
+<p>
+    If you would like to contribute to JDO, please see the
+    <a href="roadmap.html">roadmap</a> list to find areas where you 
+    can contribute.
+    If there is nothing in there that suits your interest, but you still have
+    ideas, please feel free to suggest them on the mailing list.
+</p>
+<p>
+    If you would like to become a committer, please see
+    <a href="get-involved.html">Get Involved</a>.
+</p>
+
+</div>
+<div class="section"><h2>Apache JDO Committers<a name="Apache_JDO_Committers"></a></h2>
+<table border="0" class="bodyTable">
+<tr class="a"><th>Name</th><th>Organization</th></tr>
+<tr class="b"><td>Matthew Adams</td><td>SpringSource</td></tr>
+<tr class="a"><td>Erik Bengtson</td><td>JPOX</td></tr>
+<tr class="b"><td>Michael Bouschen</td><td>Tech@Spree</td></tr>
+<tr class="a"><td>Michelle Caisse</td><td>Sun Microsystems, Inc.</td></tr>
+<tr class="b"><td>Andy Jefferson</td><td>DataNucleus</td></tr>
+<tr class="a"><td>Patrick Linskey</td><td>Oracle</td></tr>
+<tr class="b"><td>Geir Magnusson Jr.</td><td>IBM</td></tr>
+<tr class="a"><td>Brian McCallister</td><td></td></tr>
+<tr class="b"><td>Craig Russell</td><td>Sun Microsystems, Inc.</td></tr>
+<tr class="a"><td>Dain Sundstrom</td><td></td></tr>
+<tr class="b"><td>Brian Topping</td><td></td></tr>
+<tr class="a"><td>Michael Watzek</td><td>Tech@Spree</td></tr>
+<tr class="b"><td>Martin Zaun</td><td>Sun Microsystems, Inc.</td></tr>
+</table>
+</div>
+
+<div class="section"><h2>Apache JDO Contributors<a name="Apache_JDO_Contributors"></a></h2>
+<table border="0" class="bodyTable">
+<tr class="a"><th>Name</th><th>Organization</th></tr>
+<tr class="b"><td>Chris Beams</td><td>SpringSource</td></tr>
+<tr class="a"><td>Ilan Kirsch</td><td>ObjectDB</td></tr>
+</table>
+</div>
+
 
       </div>
     </div>

Modified: websites/production/db/content/jdo/transactions.html
==============================================================================
--- websites/production/db/content/jdo/transactions.html (original)
+++ websites/production/db/content/jdo/transactions.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,51 +209,51 @@
     </div>
     <div id="bodyColumn">
       <div id="contentBox">
-        
-    
-        <div class="section"><h2>Transactions<a name="Transactions"></a></h2>
-            <p>
-                When managing the persistence of objects using a <a href="pm.html">PersistenceManager</a>
-                it is normal to handle all datastore operations in a transaction. For this reason each
-                <i>PersistenceManager</i> has its own transaction. Consequently a typical JDO persistence method
-                will look something like this
-            </p>
-            <div class="source"><pre>
-PersistenceManager pm = pmf.getPersistenceManager();
-Transaction tx = pm.currentTransaction();
-try
-{
-    tx.begin(); // Start the PM transaction
-
-    ... perform some persistence operations
-
-    tx.commit(); // Commit the PM transaction
-}
-finally
-{
-    if (tx.isActive())
-    {
-        tx.rollback(); // Error occurred so rollback the PM transaction
-    }
-}</pre></div>
-            <p>
-                JDO supports the two main forms of transaction
-            </p>
-            <ul>
-                <li>Transactions can lock all records in a datastore and keep them locked until they are 
-                    ready to commit their changes. These are known as Pessimistic (or datastore) 
-                    Transactions</li>
-                <li>Transactions can simply assume that things in the datastore will not change until they 
-                    are ready to commit, not lock any records and then just before committing make a check 
-                    for changes. These are known as Optimistic Transactions.</li>
-            </ul>
-            <p>
-                You select the type of transaction to be used by a <i>PersistenceManager</i> (PM) either by
-                setting the PMF property <b>javax.jdo.option.Optimistic</b>, or on the transaction you call
-            </p>
-            <div class="source"><pre>pm.currentTransaction().setOptimistic(true);</pre></div>
-        </div>
-    
+        
+    
+        <div class="section"><h2>Transactions<a name="Transactions"></a></h2>
+            <p>
+                When managing the persistence of objects using a <a href="pm.html">PersistenceManager</a>
+                it is normal to handle all datastore operations in a transaction. For this reason each
+                <i>PersistenceManager</i> has its own transaction. Consequently a typical JDO persistence method
+                will look something like this
+            </p>
+            <div class="source"><pre>
+PersistenceManager pm = pmf.getPersistenceManager();
+Transaction tx = pm.currentTransaction();
+try
+{
+    tx.begin(); // Start the PM transaction
+
+    ... perform some persistence operations
+
+    tx.commit(); // Commit the PM transaction
+}
+finally
+{
+    if (tx.isActive())
+    {
+        tx.rollback(); // Error occurred so rollback the PM transaction
+    }
+}</pre></div>
+            <p>
+                JDO supports the two main forms of transaction
+            </p>
+            <ul>
+                <li>Transactions can lock all records in a datastore and keep them locked until they are 
+                    ready to commit their changes. These are known as Pessimistic (or datastore) 
+                    Transactions</li>
+                <li>Transactions can simply assume that things in the datastore will not change until they 
+                    are ready to commit, not lock any records and then just before committing make a check 
+                    for changes. These are known as Optimistic Transactions.</li>
+            </ul>
+            <p>
+                You select the type of transaction to be used by a <i>PersistenceManager</i> (PM) either by
+                setting the PMF property <b>javax.jdo.option.Optimistic</b>, or on the transaction you call
+            </p>
+            <div class="source"><pre>pm.currentTransaction().setOptimistic(true);</pre></div>
+        </div>
+    
 
       </div>
     </div>

Modified: websites/production/db/content/jdo/why_jdo.html
==============================================================================
--- websites/production/db/content/jdo/why_jdo.html (original)
+++ websites/production/db/content/jdo/why_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" />
@@ -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,164 +209,164 @@
     </div>
     <div id="bodyColumn">
       <div id="contentBox">
-        
-    
-        <div class="section"><h2>Why JDO ?<a name="Why_JDO_"></a></h2>
-            <p>
-                The majority of applications need to persist (or store) data during their lifecycle. 
-                There are many ways of doing this with an application written in Java.
-            </p>
-            <ul>
-                <li>If your datastore is RDBMS you can handle the persistence (and retrieval) of data yourself
-                    using <b>JDBC</b>. Obviously with this route you have the burden of having to write the 
-                    persistence layer yourself. This gives much control, but also creates significant work,
-                    both in writing the code but also in testing and maintenance.</li>
-                <li>You can use <b>JDO</b>, a standardised persistence API. With <b>JDO</b> you can develop
-                    plain old java objects (POJOs) and persist them as they are transparently. This requires
-                    very little work from the developer. It allows persistence to any type of datastore in
-                    principle, being designed with flexibility and datastore agnositicity in mind.
-                    This has been a standard since 2002 (JDO1), being upgraded in 2006 (JDO2) and
-                    is in the process of being developed further (JDO2.1) by Apache JDO</li>
-                <li>You can use <b>JPA</b>, a standardised persistence API, and part of the EJB3 specification. This also allows you to
-                    to develop plain old Java objects (POJOs) and persist them using a standardised API. It's specification
-                    is not as mature or as feature rich as the JDO API, nor does it provide the flexibility
-                    of using any type of datastore. This was released in 2006 (JPA1) to supercede EJB2. It really
-                    only allows persistence to RDBMS datastores. If you want to persist to other datastores
-                    you should consider JDO.</li>
-                <li><i>If you are stuck with using an EJB2.* architecture you could use Entity Beans. This 
-                    means that you hand off your objects to the EJB part of the J2EE server. This simplifies 
-                    things for the developer in some respect but places major restrictions in that your objects 
-                    have to be Entity Beans.</i></li>
-                <li>You can also use a proprietary persistence API (e.g Hibernates own API, TopLinks own API, iBatis, Castor etc).
-                    The disadvantages of going this route are that you cannot easily swap to an alternative
-                    implementation of the API if you hit problems with your software choice.</li>
-            </ul>
-            <p>
-                To give a <i>guide</i>, here are a few important consideration points when choosing a persistence layer for your application.
-            </p>
-
-            <table border="0" class="bodyTable">
-                <tr class="a">
-                    <th>Feature</th>
-                    <th width="100">JDBC</th>
-                    <th width="100">JDO</th>
-                    <th width="100">JPA</th>
-                    <th width="100">EJB2</th>
-                    <th width="100">Custom ORM</th>
-                </tr>
-                <tr class="b">
-                    <td>Standards-Driven</td>
-                    <td><img src="images/icon_success_sml.gif" alt="" border="0" /></td>
-                    <td><img src="images/icon_success_sml.gif" alt="" border="0" /></td>
-                    <td><img src="images/icon_success_sml.gif" alt="" border="0" /></td>
-                    <td><img src="images/icon_success_sml.gif" alt="" border="0" /></td>
-                    <td><img src="images/icon_error_sml.gif" alt="" border="0" /></td>
-                </tr>
-                <tr class="a">
-                    <td>Choice of datastores</td>
-                    <td><img src="images/icon_error_sml.gif" alt="" border="0" /></td>
-                    <td><img src="images/icon_success_sml.gif" alt="" border="0" /></td>
-                    <td><img src="images/icon_error_sml.gif" alt="" border="0" /></td>
-                    <td><img src="images/icon_error_sml.gif" alt="" border="0" /></td>
-                    <td><img src="images/icon_success_sml.gif" alt="" border="0" /></td>
-                </tr>
-                <tr class="b">
-                    <td>Support POJOs</td>
-                    <td><img src="images/icon_success_sml.gif" alt="" border="0" /></td>
-                    <td><img src="images/icon_success_sml.gif" alt="" border="0" /></td>
-                    <td><img src="images/icon_success_sml.gif" alt="" border="0" /></td>
-                    <td><img src="images/icon_error_sml.gif" alt="" border="0" /></td>
-                    <td><img src="images/icon_success_sml.gif" alt="" border="0" /></td>
-                </tr>
-                <tr class="a">
-                    <td>Usable in J2SE</td>
-                    <td><img src="images/icon_success_sml.gif" alt="" border="0" /></td>
-                    <td><img src="images/icon_success_sml.gif" alt="" border="0" /></td>
-                    <td><img src="images/icon_success_sml.gif" alt="" border="0" /></td>
-                    <td><img src="images/icon_error_sml.gif" alt="" border="0" /></td>
-                    <td><img src="images/icon_success_sml.gif" alt="" border="0" /></td>
-                </tr>
-                <tr class="b">
-                    <td>Usable in J2EE</td>
-                    <td><img src="images/icon_success_sml.gif" alt="" border="0" /></td>
-                    <td><img src="images/icon_success_sml.gif" alt="" border="0" /></td>
-                    <td><img src="images/icon_success_sml.gif" alt="" border="0" /></td>
-                    <td><img src="images/icon_success_sml.gif" alt="" border="0" /></td>
-                    <td><img src="images/icon_success_sml.gif" alt="" border="0" /></td>
-                </tr>
-                <tr class="a">
-                    <td>Out of box implementation (1)</td>
-                    <td><img src="images/icon_error_sml.gif" alt="" border="0" /></td>
-                    <td><img src="images/icon_success_sml.gif" alt="" border="0" /></td>
-                    <td><img src="images/icon_success_sml.gif" alt="" border="0" /></td>
-                    <td><img src="images/icon_error_sml.gif" alt="" border="0" /></td>
-                    <td><img src="images/icon_success_sml.gif" alt="" border="0" /></td>
-                </tr>
-                <tr class="b">
-                    <td>Simple to unit test</td>
-                    <td><img src="images/icon_success_sml.gif" alt="" border="0" /></td>
-                    <td><img src="images/icon_success_sml.gif" alt="" border="0" /></td>
-                    <td><img src="images/icon_success_sml.gif" alt="" border="0" /></td>
-                    <td><img src="images/icon_error_sml.gif" alt="" border="0" /></td>
-                    <td><img src="images/icon_success_sml.gif" alt="" border="0" /></td>
-                </tr>
-                <tr class="a">
-                    <td>Dynamic queries</td>
-                    <td><img src="images/icon_success_sml.gif" alt="" border="0" /> (2)</td>
-                    <td><img src="images/icon_success_sml.gif" alt="" border="0" /></td>
-                    <td><img src="images/icon_success_sml.gif" alt="" border="0" /></td>
-                    <td><img src="images/icon_error_sml.gif" alt="" border="0" /></td>
-                    <td><img src="images/icon_success_sml.gif" alt="" border="0" /></td>
-                </tr>
-                <tr class="b">
-                    <td>Comprehensive ORM</td>
-                    <td><img src="images/icon_warning_sml.gif" alt="" border="0" /></td>
-                    <td><img src="images/icon_success_sml.gif" alt="" border="0" /></td>
-                    <td><img src="images/icon_warning_sml.gif" alt="" border="0" /></td>
-                    <td><img src="images/icon_error_sml.gif" alt="" border="0" /></td>
-                    <td><img src="images/icon_success_sml.gif" alt="" border="0" /></td>
-                </tr>
-                <tr class="a">
-                    <td>Primary Key generation</td>
-                    <td><img src="images/icon_success_sml.gif" alt="" border="0" /> (2)</td>
-                    <td><img src="images/icon_success_sml.gif" alt="" border="0" /></td>
-                    <td><img src="images/icon_success_sml.gif" alt="" border="0" /></td>
-                    <td><img src="images/icon_success_sml.gif" alt="" border="0" /></td>
-                    <td><img src="images/icon_success_sml.gif" alt="" border="0" /></td>
-                </tr>
-                <tr class="b">
-                    <td>Supports inherited objects</td>
-                    <td><img src="images/icon_success_sml.gif" alt="" border="0" /> (2)</td>
-                    <td><img src="images/icon_success_sml.gif" alt="" border="0" /></td>
-                    <td><img src="images/icon_success_sml.gif" alt="" border="0" /></td>
-                    <td><img src="images/icon_success_sml.gif" alt="" border="0" /></td>
-                    <td><img src="images/icon_success_sml.gif" alt="" border="0" /></td>
-                </tr>
-                <tr class="a">
-                    <td>Schema Creation</td>
-                    <td><img src="images/icon_error_sml.gif" alt="" border="0" /></td>
-                    <td><img src="images/icon_success_sml.gif" alt="" border="0" /></td>
-                    <td><img src="images/icon_success_sml.gif" alt="" border="0" /></td>
-                    <td><img src="images/icon_success_sml.gif" alt="" border="0" /></td>
-                    <td><img src="images/icon_success_sml.gif" alt="" border="0" /></td>
-                </tr>                
-                <tr class="b">
-                    <td>Existing schema</td>
-                    <td><img src="images/icon_success_sml.gif" alt="" border="0" /></td>
-                    <td><img src="images/icon_success_sml.gif" alt="" border="0" /></td>
-                    <td><img src="images/icon_success_sml.gif" alt="" border="0" /></td>
-                    <td><img src="images/icon_success_sml.gif" alt="" border="0" /></td>
-                    <td><img src="images/icon_success_sml.gif" alt="" border="0" /></td>
-                </tr>
-            </table>
-            <ol style="list-style-type: decimal">
-                <li>refers to whether it is necessary to write the persistence yourself (e.g as with JDBC) or 
-                    whether you can just persist by simple calls.</li>
-                <li>requires the developer to write this layer.</li>
-            </ol>
-        </div>
-
-    
+        
+    
+        <div class="section"><h2>Why JDO ?<a name="Why_JDO_"></a></h2>
+            <p>
+                The majority of applications need to persist (or store) data during their lifecycle. 
+                There are many ways of doing this with an application written in Java.
+            </p>
+            <ul>
+                <li>If your datastore is RDBMS you can handle the persistence (and retrieval) of data yourself
+                    using <b>JDBC</b>. Obviously with this route you have the burden of having to write the 
+                    persistence layer yourself. This gives much control, but also creates significant work,
+                    both in writing the code but also in testing and maintenance.</li>
+                <li>You can use <b>JDO</b>, a standardised persistence API. With <b>JDO</b> you can develop
+                    plain old java objects (POJOs) and persist them as they are transparently. This requires
+                    very little work from the developer. It allows persistence to any type of datastore in
+                    principle, being designed with flexibility and datastore agnositicity in mind.
+                    This has been a standard since 2002 (JDO1), being upgraded in 2006 (JDO2) and
+                    is in the process of being developed further (JDO2.1) by Apache JDO</li>
+                <li>You can use <b>JPA</b>, a standardised persistence API, and part of the EJB3 specification. This also allows you to
+                    to develop plain old Java objects (POJOs) and persist them using a standardised API. It's specification
+                    is not as mature or as feature rich as the JDO API, nor does it provide the flexibility
+                    of using any type of datastore. This was released in 2006 (JPA1) to supercede EJB2. It really
+                    only allows persistence to RDBMS datastores. If you want to persist to other datastores
+                    you should consider JDO.</li>
+                <li><i>If you are stuck with using an EJB2.* architecture you could use Entity Beans. This 
+                    means that you hand off your objects to the EJB part of the J2EE server. This simplifies 
+                    things for the developer in some respect but places major restrictions in that your objects 
+                    have to be Entity Beans.</i></li>
+                <li>You can also use a proprietary persistence API (e.g Hibernates own API, TopLinks own API, iBatis, Castor etc).
+                    The disadvantages of going this route are that you cannot easily swap to an alternative
+                    implementation of the API if you hit problems with your software choice.</li>
+            </ul>
+            <p>
+                To give a <i>guide</i>, here are a few important consideration points when choosing a persistence layer for your application.
+            </p>
+
+            <table border="0" class="bodyTable">
+                <tr class="a">
+                    <th>Feature</th>
+                    <th width="100">JDBC</th>
+                    <th width="100">JDO</th>
+                    <th width="100">JPA</th>
+                    <th width="100">EJB2</th>
+                    <th width="100">Custom ORM</th>
+                </tr>
+                <tr class="b">
+                    <td>Standards-Driven</td>
+                    <td><img src="images/icon_success_sml.gif" alt="" border="0" /></td>
+                    <td><img src="images/icon_success_sml.gif" alt="" border="0" /></td>
+                    <td><img src="images/icon_success_sml.gif" alt="" border="0" /></td>
+                    <td><img src="images/icon_success_sml.gif" alt="" border="0" /></td>
+                    <td><img src="images/icon_error_sml.gif" alt="" border="0" /></td>
+                </tr>
+                <tr class="a">
+                    <td>Choice of datastores</td>
+                    <td><img src="images/icon_error_sml.gif" alt="" border="0" /></td>
+                    <td><img src="images/icon_success_sml.gif" alt="" border="0" /></td>
+                    <td><img src="images/icon_error_sml.gif" alt="" border="0" /></td>
+                    <td><img src="images/icon_error_sml.gif" alt="" border="0" /></td>
+                    <td><img src="images/icon_success_sml.gif" alt="" border="0" /></td>
+                </tr>
+                <tr class="b">
+                    <td>Support POJOs</td>
+                    <td><img src="images/icon_success_sml.gif" alt="" border="0" /></td>
+                    <td><img src="images/icon_success_sml.gif" alt="" border="0" /></td>
+                    <td><img src="images/icon_success_sml.gif" alt="" border="0" /></td>
+                    <td><img src="images/icon_error_sml.gif" alt="" border="0" /></td>
+                    <td><img src="images/icon_success_sml.gif" alt="" border="0" /></td>
+                </tr>
+                <tr class="a">
+                    <td>Usable in J2SE</td>
+                    <td><img src="images/icon_success_sml.gif" alt="" border="0" /></td>
+                    <td><img src="images/icon_success_sml.gif" alt="" border="0" /></td>
+                    <td><img src="images/icon_success_sml.gif" alt="" border="0" /></td>
+                    <td><img src="images/icon_error_sml.gif" alt="" border="0" /></td>
+                    <td><img src="images/icon_success_sml.gif" alt="" border="0" /></td>
+                </tr>
+                <tr class="b">
+                    <td>Usable in J2EE</td>
+                    <td><img src="images/icon_success_sml.gif" alt="" border="0" /></td>
+                    <td><img src="images/icon_success_sml.gif" alt="" border="0" /></td>
+                    <td><img src="images/icon_success_sml.gif" alt="" border="0" /></td>
+                    <td><img src="images/icon_success_sml.gif" alt="" border="0" /></td>
+                    <td><img src="images/icon_success_sml.gif" alt="" border="0" /></td>
+                </tr>
+                <tr class="a">
+                    <td>Out of box implementation (1)</td>
+                    <td><img src="images/icon_error_sml.gif" alt="" border="0" /></td>
+                    <td><img src="images/icon_success_sml.gif" alt="" border="0" /></td>
+                    <td><img src="images/icon_success_sml.gif" alt="" border="0" /></td>
+                    <td><img src="images/icon_error_sml.gif" alt="" border="0" /></td>
+                    <td><img src="images/icon_success_sml.gif" alt="" border="0" /></td>
+                </tr>
+                <tr class="b">
+                    <td>Simple to unit test</td>
+                    <td><img src="images/icon_success_sml.gif" alt="" border="0" /></td>
+                    <td><img src="images/icon_success_sml.gif" alt="" border="0" /></td>
+                    <td><img src="images/icon_success_sml.gif" alt="" border="0" /></td>
+                    <td><img src="images/icon_error_sml.gif" alt="" border="0" /></td>
+                    <td><img src="images/icon_success_sml.gif" alt="" border="0" /></td>
+                </tr>
+                <tr class="a">
+                    <td>Dynamic queries</td>
+                    <td><img src="images/icon_success_sml.gif" alt="" border="0" /> (2)</td>
+                    <td><img src="images/icon_success_sml.gif" alt="" border="0" /></td>
+                    <td><img src="images/icon_success_sml.gif" alt="" border="0" /></td>
+                    <td><img src="images/icon_error_sml.gif" alt="" border="0" /></td>
+                    <td><img src="images/icon_success_sml.gif" alt="" border="0" /></td>
+                </tr>
+                <tr class="b">
+                    <td>Comprehensive ORM</td>
+                    <td><img src="images/icon_warning_sml.gif" alt="" border="0" /></td>
+                    <td><img src="images/icon_success_sml.gif" alt="" border="0" /></td>
+                    <td><img src="images/icon_warning_sml.gif" alt="" border="0" /></td>
+                    <td><img src="images/icon_error_sml.gif" alt="" border="0" /></td>
+                    <td><img src="images/icon_success_sml.gif" alt="" border="0" /></td>
+                </tr>
+                <tr class="a">
+                    <td>Primary Key generation</td>
+                    <td><img src="images/icon_success_sml.gif" alt="" border="0" /> (2)</td>
+                    <td><img src="images/icon_success_sml.gif" alt="" border="0" /></td>
+                    <td><img src="images/icon_success_sml.gif" alt="" border="0" /></td>
+                    <td><img src="images/icon_success_sml.gif" alt="" border="0" /></td>
+                    <td><img src="images/icon_success_sml.gif" alt="" border="0" /></td>
+                </tr>
+                <tr class="b">
+                    <td>Supports inherited objects</td>
+                    <td><img src="images/icon_success_sml.gif" alt="" border="0" /> (2)</td>
+                    <td><img src="images/icon_success_sml.gif" alt="" border="0" /></td>
+                    <td><img src="images/icon_success_sml.gif" alt="" border="0" /></td>
+                    <td><img src="images/icon_success_sml.gif" alt="" border="0" /></td>
+                    <td><img src="images/icon_success_sml.gif" alt="" border="0" /></td>
+                </tr>
+                <tr class="a">
+                    <td>Schema Creation</td>
+                    <td><img src="images/icon_error_sml.gif" alt="" border="0" /></td>
+                    <td><img src="images/icon_success_sml.gif" alt="" border="0" /></td>
+                    <td><img src="images/icon_success_sml.gif" alt="" border="0" /></td>
+                    <td><img src="images/icon_success_sml.gif" alt="" border="0" /></td>
+                    <td><img src="images/icon_success_sml.gif" alt="" border="0" /></td>
+                </tr>                
+                <tr class="b">
+                    <td>Existing schema</td>
+                    <td><img src="images/icon_success_sml.gif" alt="" border="0" /></td>
+                    <td><img src="images/icon_success_sml.gif" alt="" border="0" /></td>
+                    <td><img src="images/icon_success_sml.gif" alt="" border="0" /></td>
+                    <td><img src="images/icon_success_sml.gif" alt="" border="0" /></td>
+                    <td><img src="images/icon_success_sml.gif" alt="" border="0" /></td>
+                </tr>
+            </table>
+            <ol style="list-style-type: decimal">
+                <li>refers to whether it is necessary to write the persistence yourself (e.g as with JDBC) or 
+                    whether you can just persist by simple calls.</li>
+                <li>requires the developer to write this layer.</li>
+            </ol>
+        </div>
+
+    
 
       </div>
     </div>