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/03 12:29:51 UTC

svn commit: r581559 [4/4] - in /db/jdo/site: docs/ docs/guides/ docs/images/ docs/releases/ xdocs/ xdocs/images/

Added: db/jdo/site/docs/state_transition.html
URL: http://svn.apache.org/viewvc/db/jdo/site/docs/state_transition.html?rev=581559&view=auto
==============================================================================
--- db/jdo/site/docs/state_transition.html (added)
+++ db/jdo/site/docs/state_transition.html Wed Oct  3 03:29:44 2007
@@ -0,0 +1,85 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html><head><title>Java Data Objects (JDO) - JDO State Transitions</title><style type="text/css" media="all">
+          @import url("./style/maven-base.css");
+          
+			    @import url("./style/maven-theme.css");</style><link rel="stylesheet" href="./style/print.css" type="text/css" media="print"></link><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"></meta></head><body class="composite"><div id="banner"><a href="http://db.apache.org/jdo" id="projectLogo"><img alt="Java Data Objects (JDO)" src="./images/JDOx120.gif"></img></a><div class="clear"><hr></hr></div></div><div id="breadcrumbs"><div class="xright"></div><div class="clear"><hr></hr></div></div><div id="leftColumn"><div id="navcolumn"><div id="menuGeneral"><h5>General</h5><ul><li class="none"><a href="index.html">Home</a></li><li class="none"><a href="why_jdo.html">Why JDO?</a></li><li class="none"><a href="jdo_v_jpa.html">JDO v JPA</a></li><li class="none"><a href="jdo_v_jpa_orm.html">JDO v JPA : ORM</a></li><li class="none"><a href="downloads.html">Downloads</a></li><li class="none"><a href="http://www.apache.org/licenses/LICENSE-2.0" class="externalLink"
  title="External Link">License</a></li></ul></div><br></br><div id="menuJDO_Implementation"><h5>JDO Implementation</h5><ul><li class="none"><a href="specifications.html">Specifications</a></li><li class="none"><a href="tck.html">TCK</a></li></ul></div><br></br><div id="menuJDO_Usage"><h5>JDO Usage</h5><ul><li class="none"><a href="impls.html">Implementations</a></li><li class="none"><a href="javadoc.html">API Javadoc</a></li><li class="none"><a href="class_types.html">Types of Classes</a></li><li class="none"><a href="enhancement.html">Bytecode Enhancement</a></li><li class="none"><a href="jdohelper.html">JDOHelper</a></li><li class="none"><a href="exceptions.html">Exceptions</a></li><li class="collapsed"><a href="metadata.html">MetaData</a></li><li class="none"><strong><a href="state_transition.html">Object States</a></strong></li><li class="collapsed"><a href="guides.html">Guides</a></li><li class="none"><a href="references.html">References</a></li><li class="none"><a href
 ="glossary.html">Glossary</a></li></ul></div><br></br><div id="menuCommunity"><h5>Community</h5><ul><li class="none"><a href="get-involved.html">Get Involved</a></li><li class="none"><a href="team-list.html">Project Team</a></li><li class="none"><a href="mail-lists.html">Mailing Lists</a></li><li class="none"><a href="faq.html">FAQ</a></li><li class="none"><a href="http://wiki.apache.org/jdo" class="externalLink" title="External Link">Wiki</a></li></ul></div><br></br><div id="menuDevelopment"><h5>Development</h5><ul><li class="none"><a href="roadmap.html">RoadMap / TODO</a></li><li class="none"><a href="svn.html">Source Code</a></li><li class="none"><a href="http://cwiki.apache.org/GMOxDEV/coding-standards.html" class="externalLink" title="External Link">Coding Standards</a></li><li class="none"><a href="issuetracking.html">Issue Tracking</a></li><li class="none"><a href="dependencies.html">Dependencies</a></li></ul></div><br></br></div></div><div id="bodyColumn"><div class=
 "contentBox"><div class="section"><a name="JDO_State_Transition"></a><h2>JDO State Transition</h2><p>
+                JDO manages the lifecycle of an object, from creation (<B>Transient</B>) through to persistence in the datastore (<B>Hollow</B>, <B>Persistent Clean</B>) and all of the various states between these. The transition between these states are achieved by using methods on the Persistence Manager such as <I>makePersistent()</I>, <I>makeTransient()</I>, <I>deletePersistent()</I>, and by commiting the changes made by these operations, or by rolling them back.
+            </p><p>
+                The various lifecycle states supported by JDO are shown below.
+            </p><table class="bodyTable"><tr class="a"><th>Name</th><th>Description</th></tr><tr class="b"><td>Transient</td><td>Any object created by the developer that do are not persisted. These don't have a JDO identity.</td></tr><tr class="a"><td>Persistent New</td><td>Any object that is newly persisted in the current transaction. A JDO identity has been assigned to these objects.</td></tr><tr class="b"><td>Persistent Dirty</td><td>Any persistent object that has been changed in the current transaction.</td></tr><tr class="a"><td>Hollow</td><td>Any persistent object that represents data in the datastore, but whose values are not in the instance.</td></tr><tr class="b"><td>Persistent Clean</td><td>Any persistent object that represents data in the datastore, and whose values have not been changed in the current transaction.</td></tr><tr class="a"><td>Persistent Deleted</td><td>Any persistent object that represents data in the datastore, and that has been deleted in the cur
 rent transaction.</td></tr><tr class="b"><td>Persistent New Deleted</td><td>Any object that have been newly made persistent and then deleted in the same current transaction.</td></tr><tr class="a"><td>Persistent Non transactional</td><td>Any persistent object that represents data in the datastore, whose values are loaded but not transactionally consistent.</td></tr><tr class="b"><td>Persistent Non transactional Dirty</td><td>Any persistent object that represents data in the datastore, whose values are loaded but not transactionally consistent, and that has been modified.</td></tr><tr class="a"><td>Transient Clean</td><td>Any transient object that represents a transactional instance whose values have not been changed in the current transaction.</td></tr><tr class="b"><td>Transient Dirty</td><td>Any transient object that represents a transactional instance whose values have been changed in the current transaction.</td></tr><tr class="a"><td>Detached Clean</td><td>Any detached 
 object that represents a persistent instance whose values have not been changed since detaching.</td></tr><tr class="b"><td>Detached Dirty</td><td>Any detached object that represents a persistent instance whose values have been changed since detaching.</td></tr></table><div class="subsection"><a name="Detecting_Object_State"></a><h3>Detecting Object State</h3><p>
+                    JDO provides a class <a href="jdohelper.html">JDOHelper</a> that allows you to interrogate the object state via its attributes (isPersistent(), isDeleted(), etc).
+                    In JDO 2.1 for JDKs 1.5+ <i>JDOHelper</i> is extended to also provide a method that gives the full object state.
+                </p>
+    <div class="source"><pre>ObjectState state = JDOHelper.getObjectState(obj);</pre></div>
+  <br></br></div><div class="subsection"><a name="Persisting_an_object"></a><h3>Persisting an object</h3><p>
+                    The most basic thing you can do with JDO is persist an object. The following code is an example of how you can do this
+                </p>
+    <div class="source"><pre>
+Transaction tx=pm.currentTransaction();
+try
+{
+    tx.begin();
+    Product product = new Product("Plate", 9.99);
+    pm.makePersistent(product);
+    tx.commit();
+}
+finally
+{
+    if (tx.isActive())
+    {
+        tx.rollback();
+    }
+}
+                </pre></div>
+  <p>
+                    The <I>Product</I> object progresses from <B>Transient</B> (initial, unpersisted state), through to <B>Persistent New</B>, and then finally to <B>Hollow</B> when it reaches the data store (after the "commit"). If the persist failed, it would "rollback" and hence end up in the same state as when it started. The following diagram shows this graphically
+                </p><br></br><img src="images/state_transition_persist.gif" alt=""></img><br></br></div><div class="subsection"><a name="Updating_an_object"></a><h3>Updating an object</h3><p>
+                    When you have persisted objects you need to update them. The following code is an example of how you can do this
+                </p>
+    <div class="source"><pre>
+Transaction tx=pm.currentTransaction();
+try
+{
+    tx.begin();
+    String product_name = product.getName();
+    ...
+    product.setPrice(7.50);
+    tx.commit();
+}
+finally
+{
+    if (tx.isActive())
+    {
+        tx.rollback();
+    }
+}
+                </pre></div>
+  <p>
+                    The <I>Product</I> object starts off in <B>Hollow</B> state and progresses to <B>Persistent Clean</B> when the user requires to read from it. It then migrates to <B>Persistent Dirty</B> when the price is updated. Finally it returns to <B>Hollow</B> when the user commits/rolls back the transaction. The following diagram shows this graphically
+                </p><br></br><img src="images/state_transition_update.gif" alt=""></img><br></br></div><div class="subsection"><a name="Deleting_an_object"></a><h3>Deleting an object</h3><p>
+                    When you no longer need an object persisted, you can delete it. The following code is an example of how you can do this
+                </p>
+    <div class="source"><pre>
+Transaction tx=pm.currentTransaction();
+try
+{
+    tx.begin();
+    String product_name = product.getName();
+    ...
+    pm.deletePersistent(product);
+    tx.commit();
+}
+finally
+{
+    if (tx.isActive())
+    {
+        tx.rollback();
+    }
+}
+                </pre></div>
+  <p>
+                    The <I>Product</I> object starts off in <B>Hollow</B> state and progresses to <B>Persistent Clean</B> when the user requires to read from it. It then migrates to <B>Persistent Deleted</B> when the deletePersistent() called. Finally it either progresses to <B>Transient</B> when commit is called, or returns to <B>Hollow</B> if it is rolled back. The following diagram shows this graphically
+                </p><br></br><img src="images/state_transition_delete.gif" alt=""></img><br></br></div><div class="subsection"><a name="Possible_state_transitions"></a><h3>Possible state transitions</h3><p>
+                    The following diagram shows the state transitions possible with JDO and JPOX.
+                </p><br></br><img src="images/state_transition.gif" border="0" alt="JDO State Transition"></img><br></br></div></div></div></div><div class="clear"><hr></hr></div><table border="0" width="100%" cellpadding="0" cellspacing="0"><tr><td width="100%"><img height="1" border="0" width="100%" src="./images/header_line.gif"></img></td></tr></table><div id="footer"><div class="xleft">
+                Documentation published: 03 October 2007<br></br>
+                  © 2005-2007 <a href="http://www.apache.org/">Apache Software Foundation</a></div></div></body></html>
\ No newline at end of file

Modified: db/jdo/site/docs/svn.html
URL: http://svn.apache.org/viewvc/db/jdo/site/docs/svn.html?rev=581559&r1=581558&r2=581559&view=diff
==============================================================================
--- db/jdo/site/docs/svn.html (original)
+++ db/jdo/site/docs/svn.html Wed Oct  3 03:29:44 2007
@@ -1,7 +1,7 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html><head><title>Java Data Objects (JDO) - Source Code</title><style type="text/css" media="all">
           @import url("./style/maven-base.css");
           
-			    @import url("./style/maven-theme.css");</style><link rel="stylesheet" href="./style/print.css" type="text/css" media="print"></link><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"></meta><meta name="author" content="JDO Documentation Team"></meta><meta name="email" content="jdo-dev@db.apache.org"></meta></head><body class="composite"><div id="banner"><a href="http://db.apache.org/jdo" id="projectLogo"><img alt="Java Data Objects (JDO)" src="./images/JDOx120.gif"></img></a><div class="clear"><hr></hr></div></div><div id="breadcrumbs"><div class="xright"></div><div class="clear"><hr></hr></div></div><div id="leftColumn"><div id="navcolumn"><div id="menuGeneral"><h5>General</h5><ul><li class="none"><a href="index.html">Home</a></li><li class="none"><a href="why_jdo.html">Why JDO?</a></li><li class="none"><a href="jdo_v_jpa.html">JDO v JPA</a></li><li class="none"><a href="jdo_v_jpa_orm.html">JDO v JPA : ORM</a></li><li class="none"><a href="downlo
 ads.html">Downloads</a></li><li class="none"><a href="http://www.apache.org/licenses/LICENSE-2.0" class="externalLink" title="External Link">License</a></li></ul></div><br></br><div id="menuJDO_Implementation"><h5>JDO Implementation</h5><ul><li class="none"><a href="specifications.html">Specifications</a></li><li class="none"><a href="tck.html">TCK</a></li></ul></div><br></br><div id="menuJDO_Usage"><h5>JDO Usage</h5><ul><li class="none"><a href="impls.html">Implementations</a></li><li class="none"><a href="javadoc.html">API Javadoc</a></li><li class="none"><a href="class_types.html">Types of Classes</a></li><li class="none"><a href="enhancement.html">Bytecode Enhancement</a></li><li class="none"><a href="jdohelper.html">JDOHelper</a></li><li class="none"><a href="exceptions.html">Exceptions</a></li><li class="collapsed"><a href="metadata.html">MetaData</a></li><li class="collapsed"><a href="guides.html">Guides</a></li><li class="none"><a href="references.html">References</a
 ></li><li class="none"><a href="glossary.html">Glossary</a></li></ul></div><br></br><div id="menuCommunity"><h5>Community</h5><ul><li class="none"><a href="get-involved.html">Get Involved</a></li><li class="none"><a href="team-list.html">Project Team</a></li><li class="none"><a href="mail-lists.html">Mailing Lists</a></li><li class="none"><a href="faq.html">FAQ</a></li><li class="none"><a href="http://wiki.apache.org/jdo" class="externalLink" title="External Link">Wiki</a></li></ul></div><br></br><div id="menuDevelopment"><h5>Development</h5><ul><li class="none"><a href="roadmap.html">RoadMap / TODO</a></li><li class="none"><strong><a href="svn.html">Source Code</a></strong></li><li class="none"><a href="http://cwiki.apache.org/GMOxDEV/coding-standards.html" class="externalLink" title="External Link">Coding Standards</a></li><li class="none"><a href="issuetracking.html">Issue Tracking</a></li><li class="none"><a href="dependencies.html">Dependencies</a></li></ul></div><br></
 br></div></div><div id="bodyColumn"><div class="contentBox"><div class="section"><a name="Source_Code_Version_Control"></a><h2>Source Code Version Control</h2><p>Apache JDO uses <a rel="nofollow" href="http://subversion.tigris.org" class="externalLink" title="External Link">Subversion</a> to manage its source code.
+			    @import url("./style/maven-theme.css");</style><link rel="stylesheet" href="./style/print.css" type="text/css" media="print"></link><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"></meta><meta name="author" content="JDO Documentation Team"></meta><meta name="email" content="jdo-dev@db.apache.org"></meta></head><body class="composite"><div id="banner"><a href="http://db.apache.org/jdo" id="projectLogo"><img alt="Java Data Objects (JDO)" src="./images/JDOx120.gif"></img></a><div class="clear"><hr></hr></div></div><div id="breadcrumbs"><div class="xright"></div><div class="clear"><hr></hr></div></div><div id="leftColumn"><div id="navcolumn"><div id="menuGeneral"><h5>General</h5><ul><li class="none"><a href="index.html">Home</a></li><li class="none"><a href="why_jdo.html">Why JDO?</a></li><li class="none"><a href="jdo_v_jpa.html">JDO v JPA</a></li><li class="none"><a href="jdo_v_jpa_orm.html">JDO v JPA : ORM</a></li><li class="none"><a href="downlo
 ads.html">Downloads</a></li><li class="none"><a href="http://www.apache.org/licenses/LICENSE-2.0" class="externalLink" title="External Link">License</a></li></ul></div><br></br><div id="menuJDO_Implementation"><h5>JDO Implementation</h5><ul><li class="none"><a href="specifications.html">Specifications</a></li><li class="none"><a href="tck.html">TCK</a></li></ul></div><br></br><div id="menuJDO_Usage"><h5>JDO Usage</h5><ul><li class="none"><a href="impls.html">Implementations</a></li><li class="none"><a href="javadoc.html">API Javadoc</a></li><li class="none"><a href="class_types.html">Types of Classes</a></li><li class="none"><a href="enhancement.html">Bytecode Enhancement</a></li><li class="none"><a href="jdohelper.html">JDOHelper</a></li><li class="none"><a href="exceptions.html">Exceptions</a></li><li class="collapsed"><a href="metadata.html">MetaData</a></li><li class="none"><a href="state_transition.html">Object States</a></li><li class="collapsed"><a href="guides.html">
 Guides</a></li><li class="none"><a href="references.html">References</a></li><li class="none"><a href="glossary.html">Glossary</a></li></ul></div><br></br><div id="menuCommunity"><h5>Community</h5><ul><li class="none"><a href="get-involved.html">Get Involved</a></li><li class="none"><a href="team-list.html">Project Team</a></li><li class="none"><a href="mail-lists.html">Mailing Lists</a></li><li class="none"><a href="faq.html">FAQ</a></li><li class="none"><a href="http://wiki.apache.org/jdo" class="externalLink" title="External Link">Wiki</a></li></ul></div><br></br><div id="menuDevelopment"><h5>Development</h5><ul><li class="none"><a href="roadmap.html">RoadMap / TODO</a></li><li class="none"><strong><a href="svn.html">Source Code</a></strong></li><li class="none"><a href="http://cwiki.apache.org/GMOxDEV/coding-standards.html" class="externalLink" title="External Link">Coding Standards</a></li><li class="none"><a href="issuetracking.html">Issue Tracking</a></li><li class="n
 one"><a href="dependencies.html">Dependencies</a></li></ul></div><br></br></div></div><div id="bodyColumn"><div class="contentBox"><div class="section"><a name="Source_Code_Version_Control"></a><h2>Source Code Version Control</h2><p>Apache JDO uses <a rel="nofollow" href="http://subversion.tigris.org" class="externalLink" title="External Link">Subversion</a> to manage its source code.
 If you're new to Subversion, you can check out the
 <a href="http://svnbook.red-bean.com/" class="externalLink" title="External Link">online book</a> about Subversion.
 Note that we are currently using Subversion 1.1.x (there are separate

Modified: db/jdo/site/docs/tck.html
URL: http://svn.apache.org/viewvc/db/jdo/site/docs/tck.html?rev=581559&r1=581558&r2=581559&view=diff
==============================================================================
--- db/jdo/site/docs/tck.html (original)
+++ db/jdo/site/docs/tck.html Wed Oct  3 03:29:44 2007
@@ -1,7 +1,7 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html><head><title>Java Data Objects (JDO) - TCK</title><style type="text/css" media="all">
           @import url("./style/maven-base.css");
           
-			    @import url("./style/maven-theme.css");</style><link rel="stylesheet" href="./style/print.css" type="text/css" media="print"></link><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"></meta><meta name="author" content="JDO Documentation Team"></meta><meta name="email" content="jdo-dev@db.apache.org"></meta></head><body class="composite"><div id="banner"><a href="http://db.apache.org/jdo" id="projectLogo"><img alt="Java Data Objects (JDO)" src="./images/JDOx120.gif"></img></a><div class="clear"><hr></hr></div></div><div id="breadcrumbs"><div class="xright"></div><div class="clear"><hr></hr></div></div><div id="leftColumn"><div id="navcolumn"><div id="menuGeneral"><h5>General</h5><ul><li class="none"><a href="index.html">Home</a></li><li class="none"><a href="why_jdo.html">Why JDO?</a></li><li class="none"><a href="jdo_v_jpa.html">JDO v JPA</a></li><li class="none"><a href="jdo_v_jpa_orm.html">JDO v JPA : ORM</a></li><li class="none"><a href="downlo
 ads.html">Downloads</a></li><li class="none"><a href="http://www.apache.org/licenses/LICENSE-2.0" class="externalLink" title="External Link">License</a></li></ul></div><br></br><div id="menuJDO_Implementation"><h5>JDO Implementation</h5><ul><li class="none"><a href="specifications.html">Specifications</a></li><li class="none"><strong><a href="tck.html">TCK</a></strong></li></ul></div><br></br><div id="menuJDO_Usage"><h5>JDO Usage</h5><ul><li class="none"><a href="impls.html">Implementations</a></li><li class="none"><a href="javadoc.html">API Javadoc</a></li><li class="none"><a href="class_types.html">Types of Classes</a></li><li class="none"><a href="enhancement.html">Bytecode Enhancement</a></li><li class="none"><a href="jdohelper.html">JDOHelper</a></li><li class="none"><a href="exceptions.html">Exceptions</a></li><li class="collapsed"><a href="metadata.html">MetaData</a></li><li class="collapsed"><a href="guides.html">Guides</a></li><li class="none"><a href="references.ht
 ml">References</a></li><li class="none"><a href="glossary.html">Glossary</a></li></ul></div><br></br><div id="menuCommunity"><h5>Community</h5><ul><li class="none"><a href="get-involved.html">Get Involved</a></li><li class="none"><a href="team-list.html">Project Team</a></li><li class="none"><a href="mail-lists.html">Mailing Lists</a></li><li class="none"><a href="faq.html">FAQ</a></li><li class="none"><a href="http://wiki.apache.org/jdo" class="externalLink" title="External Link">Wiki</a></li></ul></div><br></br><div id="menuDevelopment"><h5>Development</h5><ul><li class="none"><a href="roadmap.html">RoadMap / TODO</a></li><li class="none"><a href="svn.html">Source Code</a></li><li class="none"><a href="http://cwiki.apache.org/GMOxDEV/coding-standards.html" class="externalLink" title="External Link">Coding Standards</a></li><li class="none"><a href="issuetracking.html">Issue Tracking</a></li><li class="none"><a href="dependencies.html">Dependencies</a></li></ul></div><br></
 br></div></div><div id="bodyColumn"><div class="contentBox"><div class="section"><a name="About_the_Technology_Compatibility_Kit"></a><h2>About the Technology Compatibility Kit</h2><p>
+			    @import url("./style/maven-theme.css");</style><link rel="stylesheet" href="./style/print.css" type="text/css" media="print"></link><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"></meta><meta name="author" content="JDO Documentation Team"></meta><meta name="email" content="jdo-dev@db.apache.org"></meta></head><body class="composite"><div id="banner"><a href="http://db.apache.org/jdo" id="projectLogo"><img alt="Java Data Objects (JDO)" src="./images/JDOx120.gif"></img></a><div class="clear"><hr></hr></div></div><div id="breadcrumbs"><div class="xright"></div><div class="clear"><hr></hr></div></div><div id="leftColumn"><div id="navcolumn"><div id="menuGeneral"><h5>General</h5><ul><li class="none"><a href="index.html">Home</a></li><li class="none"><a href="why_jdo.html">Why JDO?</a></li><li class="none"><a href="jdo_v_jpa.html">JDO v JPA</a></li><li class="none"><a href="jdo_v_jpa_orm.html">JDO v JPA : ORM</a></li><li class="none"><a href="downlo
 ads.html">Downloads</a></li><li class="none"><a href="http://www.apache.org/licenses/LICENSE-2.0" class="externalLink" title="External Link">License</a></li></ul></div><br></br><div id="menuJDO_Implementation"><h5>JDO Implementation</h5><ul><li class="none"><a href="specifications.html">Specifications</a></li><li class="none"><strong><a href="tck.html">TCK</a></strong></li></ul></div><br></br><div id="menuJDO_Usage"><h5>JDO Usage</h5><ul><li class="none"><a href="impls.html">Implementations</a></li><li class="none"><a href="javadoc.html">API Javadoc</a></li><li class="none"><a href="class_types.html">Types of Classes</a></li><li class="none"><a href="enhancement.html">Bytecode Enhancement</a></li><li class="none"><a href="jdohelper.html">JDOHelper</a></li><li class="none"><a href="exceptions.html">Exceptions</a></li><li class="collapsed"><a href="metadata.html">MetaData</a></li><li class="none"><a href="state_transition.html">Object States</a></li><li class="collapsed"><a hr
 ef="guides.html">Guides</a></li><li class="none"><a href="references.html">References</a></li><li class="none"><a href="glossary.html">Glossary</a></li></ul></div><br></br><div id="menuCommunity"><h5>Community</h5><ul><li class="none"><a href="get-involved.html">Get Involved</a></li><li class="none"><a href="team-list.html">Project Team</a></li><li class="none"><a href="mail-lists.html">Mailing Lists</a></li><li class="none"><a href="faq.html">FAQ</a></li><li class="none"><a href="http://wiki.apache.org/jdo" class="externalLink" title="External Link">Wiki</a></li></ul></div><br></br><div id="menuDevelopment"><h5>Development</h5><ul><li class="none"><a href="roadmap.html">RoadMap / TODO</a></li><li class="none"><a href="svn.html">Source Code</a></li><li class="none"><a href="http://cwiki.apache.org/GMOxDEV/coding-standards.html" class="externalLink" title="External Link">Coding Standards</a></li><li class="none"><a href="issuetracking.html">Issue Tracking</a></li><li class="n
 one"><a href="dependencies.html">Dependencies</a></li></ul></div><br></br></div></div><div id="bodyColumn"><div class="contentBox"><div class="section"><a name="About_the_Technology_Compatibility_Kit"></a><h2>About the Technology Compatibility Kit</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).

Modified: db/jdo/site/docs/team-list.html
URL: http://svn.apache.org/viewvc/db/jdo/site/docs/team-list.html?rev=581559&r1=581558&r2=581559&view=diff
==============================================================================
--- db/jdo/site/docs/team-list.html (original)
+++ db/jdo/site/docs/team-list.html Wed Oct  3 03:29:44 2007
@@ -1,7 +1,7 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html><head><title>Java Data Objects (JDO) - Project Team</title><style type="text/css" media="all">
           @import url("./style/maven-base.css");
           
-			    @import url("./style/maven-theme.css");</style><link rel="stylesheet" href="./style/print.css" type="text/css" media="print"></link><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"></meta><meta name="author" content="Apache JDO Development Team"></meta><meta name="email" content="jdo-dev@db.apache.org"></meta></head><body class="composite"><div id="banner"><a href="http://db.apache.org/jdo" id="projectLogo"><img alt="Java Data Objects (JDO)" src="./images/JDOx120.gif"></img></a><div class="clear"><hr></hr></div></div><div id="breadcrumbs"><div class="xright"></div><div class="clear"><hr></hr></div></div><div id="leftColumn"><div id="navcolumn"><div id="menuGeneral"><h5>General</h5><ul><li class="none"><a href="index.html">Home</a></li><li class="none"><a href="why_jdo.html">Why JDO?</a></li><li class="none"><a href="jdo_v_jpa.html">JDO v JPA</a></li><li class="none"><a href="jdo_v_jpa_orm.html">JDO v JPA : ORM</a></li><li class="none"><a href="d
 ownloads.html">Downloads</a></li><li class="none"><a href="http://www.apache.org/licenses/LICENSE-2.0" class="externalLink" title="External Link">License</a></li></ul></div><br></br><div id="menuJDO_Implementation"><h5>JDO Implementation</h5><ul><li class="none"><a href="specifications.html">Specifications</a></li><li class="none"><a href="tck.html">TCK</a></li></ul></div><br></br><div id="menuJDO_Usage"><h5>JDO Usage</h5><ul><li class="none"><a href="impls.html">Implementations</a></li><li class="none"><a href="javadoc.html">API Javadoc</a></li><li class="none"><a href="class_types.html">Types of Classes</a></li><li class="none"><a href="enhancement.html">Bytecode Enhancement</a></li><li class="none"><a href="jdohelper.html">JDOHelper</a></li><li class="none"><a href="exceptions.html">Exceptions</a></li><li class="collapsed"><a href="metadata.html">MetaData</a></li><li class="collapsed"><a href="guides.html">Guides</a></li><li class="none"><a href="references.html">Referenc
 es</a></li><li class="none"><a href="glossary.html">Glossary</a></li></ul></div><br></br><div id="menuCommunity"><h5>Community</h5><ul><li class="none"><a href="get-involved.html">Get Involved</a></li><li class="none"><strong><a href="team-list.html">Project Team</a></strong></li><li class="none"><a href="mail-lists.html">Mailing Lists</a></li><li class="none"><a href="faq.html">FAQ</a></li><li class="none"><a href="http://wiki.apache.org/jdo" class="externalLink" title="External Link">Wiki</a></li></ul></div><br></br><div id="menuDevelopment"><h5>Development</h5><ul><li class="none"><a href="roadmap.html">RoadMap / TODO</a></li><li class="none"><a href="svn.html">Source Code</a></li><li class="none"><a href="http://cwiki.apache.org/GMOxDEV/coding-standards.html" class="externalLink" title="External Link">Coding Standards</a></li><li class="none"><a href="issuetracking.html">Issue Tracking</a></li><li class="none"><a href="dependencies.html">Dependencies</a></li></ul></div><
 br></br></div></div><div id="bodyColumn"><div class="contentBox"><div class="section"><a name="The_Apache_JDO_Team"></a><h2>The Apache JDO Team</h2><p>
+			    @import url("./style/maven-theme.css");</style><link rel="stylesheet" href="./style/print.css" type="text/css" media="print"></link><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"></meta><meta name="author" content="Apache JDO Development Team"></meta><meta name="email" content="jdo-dev@db.apache.org"></meta></head><body class="composite"><div id="banner"><a href="http://db.apache.org/jdo" id="projectLogo"><img alt="Java Data Objects (JDO)" src="./images/JDOx120.gif"></img></a><div class="clear"><hr></hr></div></div><div id="breadcrumbs"><div class="xright"></div><div class="clear"><hr></hr></div></div><div id="leftColumn"><div id="navcolumn"><div id="menuGeneral"><h5>General</h5><ul><li class="none"><a href="index.html">Home</a></li><li class="none"><a href="why_jdo.html">Why JDO?</a></li><li class="none"><a href="jdo_v_jpa.html">JDO v JPA</a></li><li class="none"><a href="jdo_v_jpa_orm.html">JDO v JPA : ORM</a></li><li class="none"><a href="d
 ownloads.html">Downloads</a></li><li class="none"><a href="http://www.apache.org/licenses/LICENSE-2.0" class="externalLink" title="External Link">License</a></li></ul></div><br></br><div id="menuJDO_Implementation"><h5>JDO Implementation</h5><ul><li class="none"><a href="specifications.html">Specifications</a></li><li class="none"><a href="tck.html">TCK</a></li></ul></div><br></br><div id="menuJDO_Usage"><h5>JDO Usage</h5><ul><li class="none"><a href="impls.html">Implementations</a></li><li class="none"><a href="javadoc.html">API Javadoc</a></li><li class="none"><a href="class_types.html">Types of Classes</a></li><li class="none"><a href="enhancement.html">Bytecode Enhancement</a></li><li class="none"><a href="jdohelper.html">JDOHelper</a></li><li class="none"><a href="exceptions.html">Exceptions</a></li><li class="collapsed"><a href="metadata.html">MetaData</a></li><li class="none"><a href="state_transition.html">Object States</a></li><li class="collapsed"><a href="guides.h
 tml">Guides</a></li><li class="none"><a href="references.html">References</a></li><li class="none"><a href="glossary.html">Glossary</a></li></ul></div><br></br><div id="menuCommunity"><h5>Community</h5><ul><li class="none"><a href="get-involved.html">Get Involved</a></li><li class="none"><strong><a href="team-list.html">Project Team</a></strong></li><li class="none"><a href="mail-lists.html">Mailing Lists</a></li><li class="none"><a href="faq.html">FAQ</a></li><li class="none"><a href="http://wiki.apache.org/jdo" class="externalLink" title="External Link">Wiki</a></li></ul></div><br></br><div id="menuDevelopment"><h5>Development</h5><ul><li class="none"><a href="roadmap.html">RoadMap / TODO</a></li><li class="none"><a href="svn.html">Source Code</a></li><li class="none"><a href="http://cwiki.apache.org/GMOxDEV/coding-standards.html" class="externalLink" title="External Link">Coding Standards</a></li><li class="none"><a href="issuetracking.html">Issue Tracking</a></li><li cla
 ss="none"><a href="dependencies.html">Dependencies</a></li></ul></div><br></br></div></div><div id="bodyColumn"><div class="contentBox"><div class="section"><a name="The_Apache_JDO_Team"></a><h2>The Apache JDO Team</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.

Modified: db/jdo/site/docs/why_jdo.html
URL: http://svn.apache.org/viewvc/db/jdo/site/docs/why_jdo.html?rev=581559&r1=581558&r2=581559&view=diff
==============================================================================
--- db/jdo/site/docs/why_jdo.html (original)
+++ db/jdo/site/docs/why_jdo.html Wed Oct  3 03:29:44 2007
@@ -1,7 +1,7 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html><head><title>Java Data Objects (JDO) - Why JDO ?</title><style type="text/css" media="all">
           @import url("./style/maven-base.css");
           
-			    @import url("./style/maven-theme.css");</style><link rel="stylesheet" href="./style/print.css" type="text/css" media="print"></link><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"></meta></head><body class="composite"><div id="banner"><a href="http://db.apache.org/jdo" id="projectLogo"><img alt="Java Data Objects (JDO)" src="./images/JDOx120.gif"></img></a><div class="clear"><hr></hr></div></div><div id="breadcrumbs"><div class="xright"></div><div class="clear"><hr></hr></div></div><div id="leftColumn"><div id="navcolumn"><div id="menuGeneral"><h5>General</h5><ul><li class="none"><a href="index.html">Home</a></li><li class="none"><strong><a href="why_jdo.html">Why JDO?</a></strong></li><li class="none"><a href="jdo_v_jpa.html">JDO v JPA</a></li><li class="none"><a href="jdo_v_jpa_orm.html">JDO v JPA : ORM</a></li><li class="none"><a href="downloads.html">Downloads</a></li><li class="none"><a href="http://www.apache.org/licenses/LICENSE-2.0" cla
 ss="externalLink" title="External Link">License</a></li></ul></div><br></br><div id="menuJDO_Implementation"><h5>JDO Implementation</h5><ul><li class="none"><a href="specifications.html">Specifications</a></li><li class="none"><a href="tck.html">TCK</a></li></ul></div><br></br><div id="menuJDO_Usage"><h5>JDO Usage</h5><ul><li class="none"><a href="impls.html">Implementations</a></li><li class="none"><a href="javadoc.html">API Javadoc</a></li><li class="none"><a href="class_types.html">Types of Classes</a></li><li class="none"><a href="enhancement.html">Bytecode Enhancement</a></li><li class="none"><a href="jdohelper.html">JDOHelper</a></li><li class="none"><a href="exceptions.html">Exceptions</a></li><li class="collapsed"><a href="metadata.html">MetaData</a></li><li class="collapsed"><a href="guides.html">Guides</a></li><li class="none"><a href="references.html">References</a></li><li class="none"><a href="glossary.html">Glossary</a></li></ul></div><br></br><div id="menuComm
 unity"><h5>Community</h5><ul><li class="none"><a href="get-involved.html">Get Involved</a></li><li class="none"><a href="team-list.html">Project Team</a></li><li class="none"><a href="mail-lists.html">Mailing Lists</a></li><li class="none"><a href="faq.html">FAQ</a></li><li class="none"><a href="http://wiki.apache.org/jdo" class="externalLink" title="External Link">Wiki</a></li></ul></div><br></br><div id="menuDevelopment"><h5>Development</h5><ul><li class="none"><a href="roadmap.html">RoadMap / TODO</a></li><li class="none"><a href="svn.html">Source Code</a></li><li class="none"><a href="http://cwiki.apache.org/GMOxDEV/coding-standards.html" class="externalLink" title="External Link">Coding Standards</a></li><li class="none"><a href="issuetracking.html">Issue Tracking</a></li><li class="none"><a href="dependencies.html">Dependencies</a></li></ul></div><br></br></div></div><div id="bodyColumn"><div class="contentBox"><div class="section"><a name="Why_JDO__"></a><h2>Why JDO ?
 </h2><p>
+			    @import url("./style/maven-theme.css");</style><link rel="stylesheet" href="./style/print.css" type="text/css" media="print"></link><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"></meta></head><body class="composite"><div id="banner"><a href="http://db.apache.org/jdo" id="projectLogo"><img alt="Java Data Objects (JDO)" src="./images/JDOx120.gif"></img></a><div class="clear"><hr></hr></div></div><div id="breadcrumbs"><div class="xright"></div><div class="clear"><hr></hr></div></div><div id="leftColumn"><div id="navcolumn"><div id="menuGeneral"><h5>General</h5><ul><li class="none"><a href="index.html">Home</a></li><li class="none"><strong><a href="why_jdo.html">Why JDO?</a></strong></li><li class="none"><a href="jdo_v_jpa.html">JDO v JPA</a></li><li class="none"><a href="jdo_v_jpa_orm.html">JDO v JPA : ORM</a></li><li class="none"><a href="downloads.html">Downloads</a></li><li class="none"><a href="http://www.apache.org/licenses/LICENSE-2.0" cla
 ss="externalLink" title="External Link">License</a></li></ul></div><br></br><div id="menuJDO_Implementation"><h5>JDO Implementation</h5><ul><li class="none"><a href="specifications.html">Specifications</a></li><li class="none"><a href="tck.html">TCK</a></li></ul></div><br></br><div id="menuJDO_Usage"><h5>JDO Usage</h5><ul><li class="none"><a href="impls.html">Implementations</a></li><li class="none"><a href="javadoc.html">API Javadoc</a></li><li class="none"><a href="class_types.html">Types of Classes</a></li><li class="none"><a href="enhancement.html">Bytecode Enhancement</a></li><li class="none"><a href="jdohelper.html">JDOHelper</a></li><li class="none"><a href="exceptions.html">Exceptions</a></li><li class="collapsed"><a href="metadata.html">MetaData</a></li><li class="none"><a href="state_transition.html">Object States</a></li><li class="collapsed"><a href="guides.html">Guides</a></li><li class="none"><a href="references.html">References</a></li><li class="none"><a href
 ="glossary.html">Glossary</a></li></ul></div><br></br><div id="menuCommunity"><h5>Community</h5><ul><li class="none"><a href="get-involved.html">Get Involved</a></li><li class="none"><a href="team-list.html">Project Team</a></li><li class="none"><a href="mail-lists.html">Mailing Lists</a></li><li class="none"><a href="faq.html">FAQ</a></li><li class="none"><a href="http://wiki.apache.org/jdo" class="externalLink" title="External Link">Wiki</a></li></ul></div><br></br><div id="menuDevelopment"><h5>Development</h5><ul><li class="none"><a href="roadmap.html">RoadMap / TODO</a></li><li class="none"><a href="svn.html">Source Code</a></li><li class="none"><a href="http://cwiki.apache.org/GMOxDEV/coding-standards.html" class="externalLink" title="External Link">Coding Standards</a></li><li class="none"><a href="issuetracking.html">Issue Tracking</a></li><li class="none"><a href="dependencies.html">Dependencies</a></li></ul></div><br></br></div></div><div id="bodyColumn"><div class=
 "contentBox"><div class="section"><a name="Why_JDO__"></a><h2>Why JDO ?</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><p>

Added: db/jdo/site/xdocs/images/state_transition.gif
URL: http://svn.apache.org/viewvc/db/jdo/site/xdocs/images/state_transition.gif?rev=581559&view=auto
==============================================================================
Binary file - no diff available.

Propchange: db/jdo/site/xdocs/images/state_transition.gif
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: db/jdo/site/xdocs/images/state_transition_delete.gif
URL: http://svn.apache.org/viewvc/db/jdo/site/xdocs/images/state_transition_delete.gif?rev=581559&view=auto
==============================================================================
Binary file - no diff available.

Propchange: db/jdo/site/xdocs/images/state_transition_delete.gif
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: db/jdo/site/xdocs/images/state_transition_persist.gif
URL: http://svn.apache.org/viewvc/db/jdo/site/xdocs/images/state_transition_persist.gif?rev=581559&view=auto
==============================================================================
Binary file - no diff available.

Propchange: db/jdo/site/xdocs/images/state_transition_persist.gif
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: db/jdo/site/xdocs/images/state_transition_update.gif
URL: http://svn.apache.org/viewvc/db/jdo/site/xdocs/images/state_transition_update.gif?rev=581559&view=auto
==============================================================================
Binary file - no diff available.

Propchange: db/jdo/site/xdocs/images/state_transition_update.gif
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Modified: db/jdo/site/xdocs/navigation.xml
URL: http://svn.apache.org/viewvc/db/jdo/site/xdocs/navigation.xml?rev=581559&r1=581558&r2=581559&view=diff
==============================================================================
--- db/jdo/site/xdocs/navigation.xml (original)
+++ db/jdo/site/xdocs/navigation.xml Wed Oct  3 03:29:44 2007
@@ -29,6 +29,7 @@
                 <item name="orm DTD/XSD" href="/orm_dtd.html"/>
                 <item name="jdoquery DTD/XSD" href="/jdoquery_dtd.html"/>
 	        </item>
+            <item name="Object States" href="/state_transition.html"/>
 			<item name="Guides" href="/guides.html" collapse="true">
                 <item name="Datastore Replication" href="/guides/replication.html"/>
                 <item name="JDO and Maven1" href="/guides/maven-jdo.html"/>

Added: db/jdo/site/xdocs/state_transition.xml
URL: http://svn.apache.org/viewvc/db/jdo/site/xdocs/state_transition.xml?rev=581559&view=auto
==============================================================================
--- db/jdo/site/xdocs/state_transition.xml (added)
+++ db/jdo/site/xdocs/state_transition.xml Wed Oct  3 03:29:44 2007
@@ -0,0 +1,183 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<document>
+    <properties>
+        <title>JDO State Transitions</title>
+    </properties>
+
+    <body>
+        <section name="JDO State Transition">
+            <p>
+                JDO manages the lifecycle of an object, from creation (<B>Transient</B>) through to persistence in the datastore (<B>Hollow</B>, <B>Persistent Clean</B>) and all of the various states between these. The transition between these states are achieved by using methods on the Persistence Manager such as <I>makePersistent()</I>, <I>makeTransient()</I>, <I>deletePersistent()</I>, and by commiting the changes made by these operations, or by rolling them back.
+            </p>
+            <p>
+                The various lifecycle states supported by JDO are shown below.
+            </p>
+            <table>
+                <tr>
+                    <th>Name</th>
+                    <th>Description</th>
+                </tr>
+                <tr>
+                    <td>Transient</td>
+                    <td>Any object created by the developer that do are not persisted. These don't have a JDO identity.</td>
+                </tr>
+                <tr>
+                    <td>Persistent New</td>
+                    <td>Any object that is newly persisted in the current transaction. A JDO identity has been assigned to these objects.</td>
+                </tr>
+                <tr>
+                    <td>Persistent Dirty</td>
+                    <td>Any persistent object that has been changed in the current transaction.</td>
+                </tr>
+                <tr>
+                    <td>Hollow</td>
+                    <td>Any persistent object that represents data in the datastore, but whose values are not in the instance.</td>
+                </tr>
+                <tr>
+                    <td>Persistent Clean</td>
+                    <td>Any persistent object that represents data in the datastore, and whose values have not been changed in the current transaction.</td>
+                </tr>
+                <tr>
+                    <td>Persistent Deleted</td>
+                    <td>Any persistent object that represents data in the datastore, and that has been deleted in the current transaction.</td>
+                </tr>
+                <tr>
+                    <td>Persistent New Deleted</td>
+                    <td>Any object that have been newly made persistent and then deleted in the same current transaction.</td>
+                </tr>
+                <tr>
+                    <td>Persistent Non transactional</td>
+                    <td>Any persistent object that represents data in the datastore, whose values are loaded but not transactionally consistent.</td>
+                </tr>
+                <tr>
+                    <td>Persistent Non transactional Dirty</td>
+                    <td>Any persistent object that represents data in the datastore, whose values are loaded but not transactionally consistent, and that has been modified.</td>
+                </tr>
+                <tr>
+                    <td>Transient Clean</td>
+                    <td>Any transient object that represents a transactional instance whose values have not been changed in the current transaction.</td>
+                </tr>
+                <tr>
+                    <td>Transient Dirty</td>
+                    <td>Any transient object that represents a transactional instance whose values have been changed in the current transaction.</td>
+                </tr>
+                <tr>
+                    <td>Detached Clean</td>
+                    <td>Any detached object that represents a persistent instance whose values have not been changed since detaching.</td>
+                </tr>
+                <tr>
+                    <td>Detached Dirty</td>
+                    <td>Any detached object that represents a persistent instance whose values have been changed since detaching.</td>
+                </tr>
+            </table>
+
+            <subsection name="Detecting Object State">
+                <p>
+                    JDO provides a class <a href="jdohelper.html">JDOHelper</a> that allows you to interrogate the object state via its attributes (isPersistent(), isDeleted(), etc).
+                    In JDO 2.1 for JDKs 1.5+ <i>JDOHelper</i> is extended to also provide a method that gives the full object state.
+                </p>
+                <source>ObjectState state = JDOHelper.getObjectState(obj);</source>
+                <br/>
+            </subsection>
+
+            <subsection name="Persisting an object">
+                <p>
+                    The most basic thing you can do with JDO is persist an object. The following code is an example of how you can do this
+                </p>
+                <source>
+Transaction tx=pm.currentTransaction();
+try
+{
+    tx.begin();
+    Product product = new Product("Plate", 9.99);
+    pm.makePersistent(product);
+    tx.commit();
+}
+finally
+{
+    if (tx.isActive())
+    {
+        tx.rollback();
+    }
+}
+                </source>
+                <p>
+                    The <I>Product</I> object progresses from <B>Transient</B> (initial, unpersisted state), through to <B>Persistent New</B>, and then finally to <B>Hollow</B> when it reaches the data store (after the "commit"). If the persist failed, it would "rollback" and hence end up in the same state as when it started. The following diagram shows this graphically
+                </p>
+                <br/>
+                <img src="images/state_transition_persist.gif"/>
+                <br/>
+            </subsection>
+
+            <subsection name="Updating an object">
+                <p>
+                    When you have persisted objects you need to update them. The following code is an example of how you can do this
+                </p>
+                <source>
+Transaction tx=pm.currentTransaction();
+try
+{
+    tx.begin();
+    String product_name = product.getName();
+    ...
+    product.setPrice(7.50);
+    tx.commit();
+}
+finally
+{
+    if (tx.isActive())
+    {
+        tx.rollback();
+    }
+}
+                </source>
+                <p>
+                    The <I>Product</I> object starts off in <B>Hollow</B> state and progresses to <B>Persistent Clean</B> when the user requires to read from it. It then migrates to <B>Persistent Dirty</B> when the price is updated. Finally it returns to <B>Hollow</B> when the user commits/rolls back the transaction. The following diagram shows this graphically
+                </p>
+                <br/>
+                <img src="images/state_transition_update.gif"/>
+                <br/>
+            </subsection>
+
+            <subsection name="Deleting an object">
+                <p>
+                    When you no longer need an object persisted, you can delete it. The following code is an example of how you can do this
+                </p>
+                <source>
+Transaction tx=pm.currentTransaction();
+try
+{
+    tx.begin();
+    String product_name = product.getName();
+    ...
+    pm.deletePersistent(product);
+    tx.commit();
+}
+finally
+{
+    if (tx.isActive())
+    {
+        tx.rollback();
+    }
+}
+                </source>
+                <p>
+                    The <I>Product</I> object starts off in <B>Hollow</B> state and progresses to <B>Persistent Clean</B> when the user requires to read from it. It then migrates to <B>Persistent Deleted</B> when the deletePersistent() called. Finally it either progresses to <B>Transient</B> when commit is called, or returns to <B>Hollow</B> if it is rolled back. The following diagram shows this graphically
+                </p>
+                <br/>
+                <img src="images/state_transition_delete.gif"/>
+                <br/>
+            </subsection>
+
+            <subsection name="Possible state transitions">
+                <p>
+                    The following diagram shows the state transitions possible with JDO and JPOX.
+                </p>
+                <br/>
+                <img src="images/state_transition.gif" border="0" alt="JDO State Transition"/>
+                <br/>
+            </subsection>
+        </section>
+
+    </body>
+</document>