You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jdo-commits@db.apache.org by an...@apache.org on 2007/10/20 12:58:10 UTC

svn commit: r586701 - in /db/jdo/site: docs/why_jdo.html xdocs/why_jdo.xml

Author: andyj
Date: Sat Oct 20 03:58:10 2007
New Revision: 586701

URL: http://svn.apache.org/viewvc?rev=586701&view=rev
Log:
JDO-539 JPA wording, and "Custom ORM" wording

Modified:
    db/jdo/site/docs/why_jdo.html
    db/jdo/site/xdocs/why_jdo.xml

Modified: db/jdo/site/docs/why_jdo.html
URL: http://svn.apache.org/viewvc/db/jdo/site/docs/why_jdo.html?rev=586701&r1=586700&r2=586701&view=diff
==============================================================================
--- db/jdo/site/docs/why_jdo.html (original)
+++ db/jdo/site/docs/why_jdo.html Sat Oct 20 03:58:10 2007
@@ -7,29 +7,28 @@
             </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, but this gives much control, but also creates significant work,
+                    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 interface. With <b>JDO</b> you can develop
+                <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 2001 (JDO1), being upgraded in 2006 (JDO2) and
-                    is being developed further currently (JDO2.1)</li>
-                <li>You can use <B>JPA1</B>, a part of the EJB3 specification. This also allows you to develop
-                    plain old Java objects (POJOs) and persist them using a standardised API. It's specification
+                    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>JPA1</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</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. 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>
+                <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 class="bodyTable"><tr class="b"><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 (1)</th></tr><tr class="a"><td>Standards-Driven</td><td><img src="images/icon_success_sml.gif" border="0" alt=""></img></td><td><img src="images/icon_success_sml.gif" border="0" alt=""></img></td><td><img src="images/icon_success_sml.gif" border="0" alt=""></img></td><td><img src="images/icon_success_sml.gif" border="0" alt=""></img></td><td><img src="images/icon_error_sml.gif" border="0" alt=""></img></td></tr><tr class="b"><td>Choice of datastores</td><td><img src="images/icon_error_sml.gif" border="0" alt=""></img></td><td><img src="images/icon_success_sml.gif" border="0" alt=""></img></td><td><img src="images/icon_error_sml.gif" border="0" alt=""></img></td><td><img src="images/icon_error_sml.gif" border="0" alt=""></img></td><td><img src="images/icon_success_sml.gif" border="0"
  alt=""></img></td></tr><tr class="a"><td>Support POJOs</td><td><img src="images/icon_success_sml.gif" border="0" alt=""></img></td><td><img src="images/icon_success_sml.gif" border="0" alt=""></img></td><td><img src="images/icon_success_sml.gif" border="0" alt=""></img></td><td><img src="images/icon_error_sml.gif" border="0" alt=""></img></td><td><img src="images/icon_success_sml.gif" border="0" alt=""></img></td></tr><tr class="b"><td>Usable in J2SE</td><td><img src="images/icon_success_sml.gif" border="0" alt=""></img></td><td><img src="images/icon_success_sml.gif" border="0" alt=""></img></td><td><img src="images/icon_success_sml.gif" border="0" alt=""></img></td><td><img src="images/icon_error_sml.gif" border="0" alt=""></img></td><td><img src="images/icon_success_sml.gif" border="0" alt=""></img></td></tr><tr class="a"><td>Usable in J2EE</td><td><img src="images/icon_success_sml.gif" border="0" alt=""></img></td><td><img src="images/icon_success_sml.gif" border="0" alt
 =""></img></td><td><img src="images/icon_success_sml.gif" border="0" alt=""></img></td><td><img src="images/icon_success_sml.gif" border="0" alt=""></img></td><td><img src="images/icon_success_sml.gif" border="0" alt=""></img></td></tr><tr class="b"><td>Out of box implementation (2)</td><td><img src="images/icon_error_sml.gif" border="0" alt=""></img></td><td><img src="images/icon_success_sml.gif" border="0" alt=""></img></td><td><img src="images/icon_success_sml.gif" border="0" alt=""></img></td><td><img src="images/icon_error_sml.gif" border="0" alt=""></img></td><td><img src="images/icon_success_sml.gif" border="0" alt=""></img></td></tr><tr class="a"><td>Simple to unit test</td><td><img src="images/icon_success_sml.gif" border="0" alt=""></img></td><td><img src="images/icon_success_sml.gif" border="0" alt=""></img></td><td><img src="images/icon_success_sml.gif" border="0" alt=""></img></td><td><img src="images/icon_error_sml.gif" border="0" alt=""></img></td><td><img src
 ="images/icon_success_sml.gif" border="0" alt=""></img></td></tr><tr class="b"><td>Dynamic queries</td><td><img src="images/icon_success_sml.gif" border="0" alt=""></img> (3)</td><td><img src="images/icon_success_sml.gif" border="0" alt=""></img></td><td><img src="images/icon_success_sml.gif" border="0" alt=""></img></td><td><img src="images/icon_error_sml.gif" border="0" alt=""></img></td><td><img src="images/icon_success_sml.gif" border="0" alt=""></img></td></tr><tr class="a"><td>Comprehensive ORM</td><td><img src="images/icon_warning_sml.gif" border="0" alt=""></img></td><td><img src="images/icon_success_sml.gif" border="0" alt=""></img></td><td><img src="images/icon_warning_sml.gif" border="0" alt=""></img></td><td><img src="images/icon_error_sml.gif" border="0" alt=""></img></td><td><img src="images/icon_success_sml.gif" border="0" alt=""></img></td></tr><tr class="b"><td>Primary Key generation</td><td><img src="images/icon_success_sml.gif" border="0" alt=""></img> (3)
 </td><td><img src="images/icon_success_sml.gif" border="0" alt=""></img></td><td><img src="images/icon_success_sml.gif" border="0" alt=""></img></td><td><img src="images/icon_success_sml.gif" border="0" alt=""></img></td><td><img src="images/icon_success_sml.gif" border="0" alt=""></img></td></tr><tr class="a"><td>Supports inherited objects</td><td><img src="images/icon_success_sml.gif" border="0" alt=""></img> (3)</td><td><img src="images/icon_success_sml.gif" border="0" alt=""></img></td><td><img src="images/icon_success_sml.gif" border="0" alt=""></img></td><td><img src="images/icon_success_sml.gif" border="0" alt=""></img></td><td><img src="images/icon_success_sml.gif" border="0" alt=""></img></td></tr><tr class="b"><td>Schema Creation</td><td><img src="images/icon_error_sml.gif" border="0" alt=""></img></td><td><img src="images/icon_success_sml.gif" border="0" alt=""></img></td><td><img src="images/icon_success_sml.gif" border="0" alt=""></img></td><td><img src="images/
 icon_success_sml.gif" border="0" alt=""></img></td><td><img src="images/icon_success_sml.gif" border="0" alt=""></img></td></tr><tr class="a"><td>Existing schema</td><td><img src="images/icon_success_sml.gif" border="0" alt=""></img></td><td><img src="images/icon_success_sml.gif" border="0" alt=""></img></td><td><img src="images/icon_success_sml.gif" border="0" alt=""></img></td><td><img src="images/icon_success_sml.gif" border="0" alt=""></img></td><td><img src="images/icon_success_sml.gif" border="0" alt=""></img></td></tr></table><ol>
-                <li>refers to proprietary APIs of products such as Hibernate, TopLink, Castor, iBatis.</li>
+            </p><table class="bodyTable"><tr class="b"><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="a"><td>Standards-Driven</td><td><img src="images/icon_success_sml.gif" border="0" alt=""></img></td><td><img src="images/icon_success_sml.gif" border="0" alt=""></img></td><td><img src="images/icon_success_sml.gif" border="0" alt=""></img></td><td><img src="images/icon_success_sml.gif" border="0" alt=""></img></td><td><img src="images/icon_error_sml.gif" border="0" alt=""></img></td></tr><tr class="b"><td>Choice of datastores</td><td><img src="images/icon_error_sml.gif" border="0" alt=""></img></td><td><img src="images/icon_success_sml.gif" border="0" alt=""></img></td><td><img src="images/icon_error_sml.gif" border="0" alt=""></img></td><td><img src="images/icon_error_sml.gif" border="0" alt=""></img></td><td><img src="images/icon_success_sml.gif" border="0" alt
 =""></img></td></tr><tr class="a"><td>Support POJOs</td><td><img src="images/icon_success_sml.gif" border="0" alt=""></img></td><td><img src="images/icon_success_sml.gif" border="0" alt=""></img></td><td><img src="images/icon_success_sml.gif" border="0" alt=""></img></td><td><img src="images/icon_error_sml.gif" border="0" alt=""></img></td><td><img src="images/icon_success_sml.gif" border="0" alt=""></img></td></tr><tr class="b"><td>Usable in J2SE</td><td><img src="images/icon_success_sml.gif" border="0" alt=""></img></td><td><img src="images/icon_success_sml.gif" border="0" alt=""></img></td><td><img src="images/icon_success_sml.gif" border="0" alt=""></img></td><td><img src="images/icon_error_sml.gif" border="0" alt=""></img></td><td><img src="images/icon_success_sml.gif" border="0" alt=""></img></td></tr><tr class="a"><td>Usable in J2EE</td><td><img src="images/icon_success_sml.gif" border="0" alt=""></img></td><td><img src="images/icon_success_sml.gif" border="0" alt="">
 </img></td><td><img src="images/icon_success_sml.gif" border="0" alt=""></img></td><td><img src="images/icon_success_sml.gif" border="0" alt=""></img></td><td><img src="images/icon_success_sml.gif" border="0" alt=""></img></td></tr><tr class="b"><td>Out of box implementation (1)</td><td><img src="images/icon_error_sml.gif" border="0" alt=""></img></td><td><img src="images/icon_success_sml.gif" border="0" alt=""></img></td><td><img src="images/icon_success_sml.gif" border="0" alt=""></img></td><td><img src="images/icon_error_sml.gif" border="0" alt=""></img></td><td><img src="images/icon_success_sml.gif" border="0" alt=""></img></td></tr><tr class="a"><td>Simple to unit test</td><td><img src="images/icon_success_sml.gif" border="0" alt=""></img></td><td><img src="images/icon_success_sml.gif" border="0" alt=""></img></td><td><img src="images/icon_success_sml.gif" border="0" alt=""></img></td><td><img src="images/icon_error_sml.gif" border="0" alt=""></img></td><td><img src="im
 ages/icon_success_sml.gif" border="0" alt=""></img></td></tr><tr class="b"><td>Dynamic queries</td><td><img src="images/icon_success_sml.gif" border="0" alt=""></img> (2)</td><td><img src="images/icon_success_sml.gif" border="0" alt=""></img></td><td><img src="images/icon_success_sml.gif" border="0" alt=""></img></td><td><img src="images/icon_error_sml.gif" border="0" alt=""></img></td><td><img src="images/icon_success_sml.gif" border="0" alt=""></img></td></tr><tr class="a"><td>Comprehensive ORM</td><td><img src="images/icon_warning_sml.gif" border="0" alt=""></img></td><td><img src="images/icon_success_sml.gif" border="0" alt=""></img></td><td><img src="images/icon_warning_sml.gif" border="0" alt=""></img></td><td><img src="images/icon_error_sml.gif" border="0" alt=""></img></td><td><img src="images/icon_success_sml.gif" border="0" alt=""></img></td></tr><tr class="b"><td>Primary Key generation</td><td><img src="images/icon_success_sml.gif" border="0" alt=""></img> (2)</td
 ><td><img src="images/icon_success_sml.gif" border="0" alt=""></img></td><td><img src="images/icon_success_sml.gif" border="0" alt=""></img></td><td><img src="images/icon_success_sml.gif" border="0" alt=""></img></td><td><img src="images/icon_success_sml.gif" border="0" alt=""></img></td></tr><tr class="a"><td>Supports inherited objects</td><td><img src="images/icon_success_sml.gif" border="0" alt=""></img> (2)</td><td><img src="images/icon_success_sml.gif" border="0" alt=""></img></td><td><img src="images/icon_success_sml.gif" border="0" alt=""></img></td><td><img src="images/icon_success_sml.gif" border="0" alt=""></img></td><td><img src="images/icon_success_sml.gif" border="0" alt=""></img></td></tr><tr class="b"><td>Schema Creation</td><td><img src="images/icon_error_sml.gif" border="0" alt=""></img></td><td><img src="images/icon_success_sml.gif" border="0" alt=""></img></td><td><img src="images/icon_success_sml.gif" border="0" alt=""></img></td><td><img src="images/icon
 _success_sml.gif" border="0" alt=""></img></td><td><img src="images/icon_success_sml.gif" border="0" alt=""></img></td></tr><tr class="a"><td>Existing schema</td><td><img src="images/icon_success_sml.gif" border="0" alt=""></img></td><td><img src="images/icon_success_sml.gif" border="0" alt=""></img></td><td><img src="images/icon_success_sml.gif" border="0" alt=""></img></td><td><img src="images/icon_success_sml.gif" border="0" alt=""></img></td><td><img src="images/icon_success_sml.gif" border="0" alt=""></img></td></tr></table><ol>
                 <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>

Modified: db/jdo/site/xdocs/why_jdo.xml
URL: http://svn.apache.org/viewvc/db/jdo/site/xdocs/why_jdo.xml?rev=586701&r1=586700&r2=586701&view=diff
==============================================================================
--- db/jdo/site/xdocs/why_jdo.xml (original)
+++ db/jdo/site/xdocs/why_jdo.xml Sat Oct 20 03:58:10 2007
@@ -13,25 +13,25 @@
             <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, but this gives much control, but also creates significant work,
+                    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 interface. With <b>JDO</b> you can develop
+                <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 2001 (JDO1), being upgraded in 2006 (JDO2) and
-                    is being developed further currently (JDO2.1)</li>
-                <li>You can use <B>JPA1</B>, a part of the EJB3 specification. This also allows you to develop
-                    plain old Java objects (POJOs) and persist them using a standardised API. It's specification
+                    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>JPA1</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</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. 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>
+                <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.
@@ -44,7 +44,7 @@
                     <th width="100">JDO</th>
                     <th width="100">JPA</th>
                     <th width="100">EJB2</th>
-                    <th width="100">Custom ORM (1)</th>
+                    <th width="100">Custom ORM</th>
                 </tr>
                 <tr>
                     <td>Standards-Driven</td>
@@ -87,7 +87,7 @@
                     <td><img src="images/icon_success_sml.gif" border="0"/></td>
                 </tr>
                 <tr>
-                    <td>Out of box implementation (2)</td>
+                    <td>Out of box implementation (1)</td>
                     <td><img src="images/icon_error_sml.gif" border="0"/></td>
                     <td><img src="images/icon_success_sml.gif" border="0"/></td>
                     <td><img src="images/icon_success_sml.gif" border="0"/></td>
@@ -104,7 +104,7 @@
                 </tr>
                 <tr>
                     <td>Dynamic queries</td>
-                    <td><img src="images/icon_success_sml.gif" border="0"/> (3)</td>
+                    <td><img src="images/icon_success_sml.gif" border="0"/> (2)</td>
                     <td><img src="images/icon_success_sml.gif" border="0"/></td>
                     <td><img src="images/icon_success_sml.gif" border="0"/></td>
                     <td><img src="images/icon_error_sml.gif" border="0"/></td>
@@ -120,7 +120,7 @@
                 </tr>
                 <tr>
                     <td>Primary Key generation</td>
-                    <td><img src="images/icon_success_sml.gif" border="0"/> (3)</td>
+                    <td><img src="images/icon_success_sml.gif" border="0"/> (2)</td>
                     <td><img src="images/icon_success_sml.gif" border="0"/></td>
                     <td><img src="images/icon_success_sml.gif" border="0"/></td>
                     <td><img src="images/icon_success_sml.gif" border="0"/></td>
@@ -128,7 +128,7 @@
                 </tr>
                 <tr>
                     <td>Supports inherited objects</td>
-                    <td><img src="images/icon_success_sml.gif" border="0"/> (3)</td>
+                    <td><img src="images/icon_success_sml.gif" border="0"/> (2)</td>
                     <td><img src="images/icon_success_sml.gif" border="0"/></td>
                     <td><img src="images/icon_success_sml.gif" border="0"/></td>
                     <td><img src="images/icon_success_sml.gif" border="0"/></td>
@@ -152,7 +152,6 @@
                 </tr>
             </table>
             <ol>
-                <li>refers to proprietary APIs of products such as Hibernate, TopLink, Castor, iBatis.</li>
                 <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>