You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by bu...@apache.org on 2013/06/13 13:20:05 UTC

svn commit: r865546 - in /websites/staging/isis/trunk: cgi-bin/ content/ content/components/objectstores/jdo/ content/components/objectstores/jdo/resources/ content/contributors/

Author: buildbot
Date: Thu Jun 13 11:20:05 2013
New Revision: 865546

Log:
Staging update by buildbot for isis

Added:
    websites/staging/isis/trunk/content/components/objectstores/jdo/datanucleus-and-eclipse.html
    websites/staging/isis/trunk/content/components/objectstores/jdo/datanucleus-and-maven.html
    websites/staging/isis/trunk/content/components/objectstores/jdo/persistence_xml.html
    websites/staging/isis/trunk/content/components/objectstores/jdo/resources/jdo-applib-dn-project-configuration.png   (with props)
    websites/staging/isis/trunk/content/components/objectstores/jdo/resources/jdo-applib-persistence-xml.png   (with props)
Removed:
    websites/staging/isis/trunk/content/components/objectstores/jdo/maven-and-eclipse.html
Modified:
    websites/staging/isis/trunk/cgi-bin/   (props changed)
    websites/staging/isis/trunk/content/   (props changed)
    websites/staging/isis/trunk/content/components/objectstores/jdo/about.html
    websites/staging/isis/trunk/content/contributors/development-environment.html
    websites/staging/isis/trunk/content/documentation.html

Propchange: websites/staging/isis/trunk/cgi-bin/
------------------------------------------------------------------------------
--- cms:source-revision (original)
+++ cms:source-revision Thu Jun 13 11:20:05 2013
@@ -1 +1 @@
-1492553
+1492623

Propchange: websites/staging/isis/trunk/content/
------------------------------------------------------------------------------
--- cms:source-revision (original)
+++ cms:source-revision Thu Jun 13 11:20:05 2013
@@ -1 +1 @@
-1492553
+1492623

Modified: websites/staging/isis/trunk/content/components/objectstores/jdo/about.html
==============================================================================
--- websites/staging/isis/trunk/content/components/objectstores/jdo/about.html (original)
+++ websites/staging/isis/trunk/content/components/objectstores/jdo/about.html Thu Jun 13 11:20:05 2013
@@ -257,7 +257,9 @@
 <h3>Hints and tips:</h3>
 
 <ul>
-<li><a href="maven-and-eclipse.html">Maven and Eclipse</a></li>
+<li><a href="datanucleus-and-eclipse.html">DataNucleus and Eclipse</a></li>
+<li><a href="datanucleus-and-maven.html">DataNucleus and Maven</a></li>
+<li><a href="persistence_xml.html"><code>persistence.xml</code> file</a></li>
 <li><a href="dates-blobs-lazy-loading.html">Dates, Blobs and Lazy Loading</a></li>
 <li><a href="using-jndi-datasource.html">Using a JNDI Datasource</a></li>
 <li><a href="workarounds.html">Workarounds (the <code>IsisJdoSupport</code> service)</a></li>

Added: websites/staging/isis/trunk/content/components/objectstores/jdo/datanucleus-and-eclipse.html
==============================================================================
--- websites/staging/isis/trunk/content/components/objectstores/jdo/datanucleus-and-eclipse.html (added)
+++ websites/staging/isis/trunk/content/components/objectstores/jdo/datanucleus-and-eclipse.html Thu Jun 13 11:20:05 2013
@@ -0,0 +1,427 @@
+<!DOCTYPE html>
+<html lang="en">
+  <head>
+
+    <meta charset="utf-8">
+      <title>Using JDO/DataNucleus with Eclipse</title>
+    <meta name="description" content="">
+    <meta name="author" content="">
+
+    <!-- Le HTML5 shim, for IE6-8 support of HTML elements -->
+    <!--[if lt IE 9]>
+      <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+
+    <!-- Le styles -->
+    <link href="./../../../bootstrap.css" rel="stylesheet">
+    <link href="./../../../prettify.css" rel="stylesheet">
+
+    <style type="text/css">
+        body {
+          padding-top: 60px;
+        }
+        .sprite {
+            display: inline-block;
+            height: 20px;
+            margin: 0 auto 4px;
+            outline: medium none;
+            text-indent: -999em;
+            width: 24px;
+            background-image: url('./../../../images/sprites.png');
+            background-repeat: no-repeat;
+            overflow: hidden;
+            cursor: pointer;
+        }
+        .edit-page {
+            display: inline-block;
+            height: 20px;
+            margin: 0 auto 4px;
+            outline: medium none;
+            text-indent: -999em;
+            width: 24px;
+            background-image: url('./../../../images/edit.png');
+            background-repeat: no-repeat;
+            overflow: hidden;
+            cursor: pointer;
+        }
+        .fb-share {
+            background-position: 0px -40px;
+        }
+        .gp-share {
+            background-position: 0px 0px;
+        }
+        .tw-share {
+            background-position: 0px -80px;
+        }
+        .markdown-content {
+            min-height: 500px;
+        }
+        .book-image img {
+          border: 1px;
+          border-style: solid;
+        }
+        .release-matrix .heading {
+            background-color: #eeeeee;
+        }
+        .release-matrix .new {
+            color: #dd0000;
+            font-weight: bolder;
+        }
+        .stub,.note {
+            position: relative;
+            padding: 7px 15px;
+            margin-bottom: 18px;
+            color: #404040;
+            background-color: #eedc94;
+            background-repeat: repeat-x;
+            background-image: -khtml-gradient(linear, left top, left bottom, from(#fceec1), to(#eedc94));
+            background-image: -moz-linear-gradient(top, #fceec1, #eedc94);
+            background-image: -ms-linear-gradient(top, #fceec1, #eedc94);
+            background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #fceec1), color-stop(100%, #eedc94));
+            background-image: -webkit-linear-gradient(top, #fceec1, #eedc94);
+            background-image: -o-linear-gradient(top, #fceec1, #eedc94);
+            background-image: linear-gradient(top, #fceec1, #eedc94);
+            filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fceec1', endColorstr='#eedc94', GradientType=0);
+            text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
+            border-color: #eedc94 #eedc94 #e4c652;
+            border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
+            text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);
+            border-width: 1px;
+            border-style: solid;
+            -webkit-border-radius: 4px;
+            -moz-border-radius: 4px;
+            border-radius: 4px;
+            -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25);
+            -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25);
+            box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25);
+        }
+    </style>
+    <script type="text/javascript">
+      function fbshare () {
+          window.open(
+                  "http://www.facebook.com/sharer/sharer.php?u="+document.URL,
+                  'Share on Facebook',
+                  'width=640,height=426');
+      };
+      function gpshare () {
+          window.open(
+                  "https://plus.google.com/share?url="+document.URL,
+                  'Share on Google+',
+                  'width=584,height=385');
+      };
+      function twshare () {
+          window.open(
+                  "https://twitter.com/intent/tweet?url="+document.URL+"&text=Using JDO/DataNucleus with Eclipse",
+                  'Share on Twitter',
+                  'width=800,height=526');
+      };
+    </script>
+
+    <!-- Le fav and touch icons -->
+    <link rel="shortcut icon" href="./../../../images/favicon.ico">
+    <!--
+    <link rel="apple-touch-icon" href="./../../../images/apple-touch-icon.png">
+    <link rel="apple-touch-icon" sizes="72x72" href="./../../../images/apple-touch-icon-72x72.png">
+    <link rel="apple-touch-icon" sizes="114x114" href="./../../../images/apple-touch-icon-114x114.png">
+    -->
+
+    <script src="./../../../javascript/prettify.js" type="text/javascript"></script>
+    <script src="./../../../javascript/jquery-latest.js"></script>
+
+
+    <script src="http://platform.twitter.com/widgets.js" type="text/javascript"></script>
+    <script src="./../../../javascript/common.js"></script>
+    <script src="./../../../javascript/prettyprint.js"></script>
+
+    <script src="./../../../javascript/bootstrap-alert.js"></script>
+    <script src="./../../../javascript/bootstrap-dropdown.js"></script>
+    <script src="./../../../javascript/bootstrap-tooltip.js"></script>
+    <!--
+    <script src="./../../../javascript/bootstrap-alerts.js"></script>
+    -->
+    <script src="./../../../javascript/bootstrap-modal.js"></script>
+    <script src="./../../../javascript/bootstrap-transition.js"></script>
+    <script src="./../../../javascript/bootstrap-button.js"></script>
+    <script src="./../../../javascript/bootstrap-popover.js"></script>
+    <script src="./../../../javascript/bootstrap-scrollspy.js"></script>
+    <script src="./../../../javascript/bootstrap-typeahead.js"></script>
+    <script src="./../../../javascript/bootstrap-carousel.js"></script>
+    <script src="./../../../javascript/bootstrap-tab.js"></script>
+    <script src="./../../../javascript/bootstrap-collapse.js"></script>
+
+    
+    
+    
+
+    <script>
+    $(function () { prettyPrint() })
+    $().dropdown()
+    </script>
+
+    <!-- GAQ stuff removed here -->
+
+
+  </head>
+
+  <body>
+
+    <div class="topbar">
+      <div class="fill">
+        <div class="container">
+          <a class="brand" href="./../../../index.html">Apache Isis&trade;</a>
+          <ul class="nav">
+            <li class="dropdown">
+              <a href="#" class="dropdown-toggle" data-toggle="dropdown">Apache <b class="caret"></b></a>
+              <ul class="dropdown-menu">
+                <li>
+                  <a href="http://www.apache.org/">Apache Homepage <i class="icon-share-alt"></i></a>
+                </li>
+                <li>
+                  <a href="http://www.apache.org/licenses/">Licenses <i class="icon-share-alt"></i></a>
+                </li>
+                <li>
+                  <a href="http://www.apache.org/security/">Security <i class="icon-share-alt"></i></a>
+                </li>
+                <li>
+                  <a href="http://www.apache.org/foundation/sponsorship.html">Sponsorship <i class="icon-share-alt"></i></a>
+                </li>
+                <li>
+                  <a href="http://www.apache.org/foundation/thanks.html">Thanks <i class="icon-share-alt"></i></a>
+                </li>
+                <li>
+                  <a href="./../../../more-thanks.html">More thanks <i class="icon-share-alt"></i></a>
+                </li>
+              </ul>
+            </li>
+            <li><a href="./../../../index.html">Home</a></li>
+            <li><a href="./../../../download.html">Download</a></li>
+            <li class="dropdown">
+              <a href="#" class="dropdown-toggle" data-toggle="dropdown">Screenshots<b class="caret"></b></a>
+              <ul class="dropdown-menu">
+                <li><a href="./../../../getting-started/screenshots.html">Screenshots</a></li>
+                <li><a href="./../../../getting-started/screencasts.html">Screencasts</a></li>
+                <li><a href="./../../../getting-started/powered-by.html">Powered by</a></li>
+                <!--
+                <li><a href="#">Online Demo</a></li>
+                -->
+              </ul>
+            </li>
+            <li><a href="./../../../documentation.html">Documentation</a></li>
+            <li><a href="./../../../support.html">Support</a></li>
+
+          </ul>
+
+          <!-- Google CSE Search Box Begins -->
+          <div style="float: right; position: relative; ">
+
+          <!--
+              <form action="http://www.google.com/cse" id="cse-search-box" _lpchecked="1">
+                <div>
+                    <input type="hidden" name="cx" value="012614087480249044419:dn-q5gtwxya">
+                    <input type="hidden" name="ie" value="UTF-8">
+                    <input type="text" name="q" placeholder="Search" size="31" style="border: 1px solid rgb(126, 157, 185); padding: 2px; background-color: rgb(255, 255, 255); background-position: 0% 50%; background-repeat: no-repeat no-repeat;">
+                    <input type="submit" name="sa" value="Search">
+                </div>
+                <input name="siteurl" type="hidden" value="isis.apache.org">
+                <input name="ref" type="hidden" value="">
+                <input name="ss" type="hidden" value="677j458329j2">
+            </form>
+          -->
+          
+            <FORM class="pull-right" id="searchbox_012614087480249044419:dn-q5gtwxya" action="http://www.google.com/cse">
+                    <input type="hidden" name="cx" value="012614087480249044419:dn-q5gtwxya">
+                <INPUT type="hidden" name="cof" value="FORID:0">
+                <INPUT name="q" type="text" placeholder="Search">
+            </FORM>
+
+          </div>
+       <!-- Google CSE Search Box Ends -->
+        
+        </div>
+      </div>
+    </div>
+
+    <div class="container">
+      <div class="markdown-content">
+      
+
+<div class="page-header">
+<p><a href="./../../../documentation.html">Docs</a>&nbsp;&raquo&nbsp;<a href="./../../../components/about.html">Components</a>&nbsp;&raquo&nbsp;<a href="./../../../components/objectstores/about.html">Objectstores</a>&nbsp;&raquo&nbsp;<a href="./../../../components/objectstores/jdo/about.html">Jdo</a></p>
+<h1>Using JDO/DataNucleus with Eclipse
+
+</h1>
+</div>
+
+<blockquote>
+  <p>See also:</p>
+  
+  <ul>
+  <li>this page describing <a href="./datanucleus-and-maven.html">how to use JDO/DataNucleus with Maven</a>.  </li>
+  <li>this screencast describing <a href="../../../getting-started/screencasts.html">how to import an application into Eclipse</a></li>
+  </ul>
+</blockquote>
+
+<p>By leveraging the JDO/Datanucleus ORM, Isis' JDO objectstore is very powerful. However, with such power comes a little bit of complexity to the development environment: all domain objects must be enhanced through the <a href="http://db.apache.org/jdo/enhancement.html">JDO enhancer</a>.  So the enhancer must, in one way or another, be integrated into your development environment.</p>
+
+<p>If working in Eclipse, then JDO enhancement is done by installing <a href="http://www.datanucleus.org/plugins/ide.eclipse.html">DataNucleus' plugin</a>.  This hooks the bytecode enhancement of your domain objects into Eclipse's normal incremental compilation.</p>
+
+<p>This plugin needs to be configured for each of your domain projects.  Often, there will only be one such domain project in your workspace (though there could be many).  Details on are in the section below.</p>
+
+<p>Over and above this, there are two distinct sets of problems you may encounter:</p>
+
+<ul>
+<li>if running on Windows, then there's a good chance you'll hit the <a href="http://msdn.microsoft.com/en-us/library/aa365247%28VS.85%29.aspx#maxpath">maximum path length limit</a>. Fortunately, the workaround is straight-forward: configure a <code>persistence.xml</code> file.  (This workaround is also required if <a href="./datanucleus-and-maven.html">developing in Maven</a>).</li>
+<li>you may also find that the DataNucleus plugin within Eclipse can get confused.  We have a process that usually works.</li>
+</ul>
+
+<p>To the detail...</p>
+
+<h2>Configuring a domain project with the DataNucleus enhancer</h2>
+
+<p>In Eclipse, for the domain object model project, first add DataNucleus support:
+>
+<img src="resources/eclipse-100-project-support.png"  width="600px"/></p>
+
+<p>Then turn on Auto-Enhancement:
+>
+<img src="resources/eclipse-110-project-support.png"  width="600px"/></p>
+
+<h3>Update the classpath</h3>
+
+<p>DataNucleus' enhancer uses the domain object model's own classpath to reference DataNucleus JARs.  So, even though your domain objects are unlikely to depend on DataNucleus, these references must still be present.</p>
+
+<p>Add the following to your <code>pom.xml</code>:</p>
+
+<pre>
+&lt;dependencies&gt;
+    &lt;dependency&gt;
+        &lt;groupId&gt;org.apache.isis.core&lt;/groupId&gt;
+        &lt;artifactId&gt;isis-core-applib&lt;/artifactId&gt;
+    &lt;/dependency&gt;
+
+    &lt;dependency&gt;
+        &lt;groupId&gt;org.apache.isis.objectstore&lt;/groupId&gt;
+        &lt;artifactId&gt;isis-objectstore-jdo-applib&lt;/artifactId&gt;
+    &lt;/dependency&gt;
+
+    &lt;!-- DataNucleus (horrid, but needed to run the enhancer)--&gt;
+    &lt;dependency&gt;
+        &lt;groupId&gt;javax.jdo&lt;/groupId&gt;
+        &lt;artifactId&gt;jdo-api&lt;/artifactId&gt;
+    &lt;/dependency&gt;
+    &lt;dependency&gt;
+        &lt;groupId&gt;org.datanucleus&lt;/groupId&gt;
+        &lt;artifactId&gt;datanucleus-core&lt;/artifactId&gt;
+    &lt;/dependency&gt;
+    &lt;dependency&gt;
+        &lt;groupId&gt;org.datanucleus&lt;/groupId&gt;
+        &lt;artifactId&gt;datanucleus-enhancer&lt;/artifactId&gt;
+        &lt;exclusions&gt;
+            &lt;exclusion&gt;
+                &lt;groupId&gt;org.ow2.asm&lt;/groupId&gt;
+                &lt;artifactId&gt;asm&lt;/artifactId&gt;
+            &lt;/exclusion&gt;
+        &lt;/exclusions&gt;
+    &lt;/dependency&gt;
+    &lt;dependency&gt;
+        &lt;groupId&gt;org.datanucleus&lt;/groupId&gt;
+        &lt;artifactId&gt;datanucleus-api-jdo&lt;/artifactId&gt;
+        &lt;/dependency&gt;
+&lt;/dependencies&gt;
+</pre>
+
+<p>Then, tell DataNucleus to use the project classpath:
+>
+<img src="resources/eclipse-010-windows-preferences.png" width="600px"/></p>
+
+<p>When the enhancer runs, it will print out to the console:
+>
+<img src="resources/eclipse-120-console.png" width="500px"/></p>
+
+<h2>Workaround for path limits: Configuring the DataNucleus plugin to use the <code>persistence.xml</code></h2>
+
+<p>As noted above, if running on Windows then the DataNucleus plugin is very likely to hit the Windows path limit.</p>
+
+<p>To fix this, we configure the enhancer to read from the <code>persistence.xml</code> file.  (This fix is also required if <a href="./datanucleus-and-maven.html">working with Maven</a>.</p>
+
+<p>As a prerequisite, first make sure that your domain object has a <code>persistence.xml</code> file.  The details of how to do this can be found <a href="./persistence_xml.html">here</a>.</p>
+
+<p>Then specify the <code>persistence-unit</code> in the project properties:
+>
+<img src="resources/eclipse-025-project-properties.png"  width="600px"/></p>
+
+<h3>Other domain projects.</h3>
+
+<p>There is nothing to prevent you having multiple domain projects.  You might want to do such that each domain project corresponds to a <a href="http://www.methodsandtools.com/archive/archive.php?id=97p2">DDD module</a>, thus guaranteeing that there are no cyclic dependencies between your modules.</p>
+
+<p>If you do this, make sure that each project has its own <code>persistence.xml</code> file.</p>
+
+<p>And, remember also to configure Eclipse's DataNucleus plugin for these other domain projects.</p>
+
+<h3>JDO Applib domain projects.</h3>
+
+<p>The JDO objectstore also defines some of its own persistable domain entities, these being used in its implementation of the <a href="./publishing-service-jdo.html">Publishing Service</a> and the <a href="./settings-services-jdo.html">Settings Services</a>.   These persistable domain entities are defined in the JDO applib, and must be enhanced.</p>
+
+<p>If just using released versions of Isis, then there is nothing to be done.</p>
+
+<p>However, if building Isis from source code and in Eclipse, and if you plan to use either of these services, then you must also configure Eclipse's DataNucleus plugin.</p>
+
+<p>As noted in the <a href="./persistence_xml.html">page describing persistence.xml</a>, the <code>persistence-unit</code> name is: <code>jdo-applib</code>.  You should therefore configure the enhance the DataNucleus enhancer for the <code>isis-objectstore-jdo-applib</code> project, and configure the plugin as shown below:
+>
+<img src="./resources/jdo-applib-dn-project-configuration.png" alt="" /> </p>
+
+<h2>Workaround: If the enhancer fails</h2>
+
+<p>On occasion it appears that Eclipse can attempt to run two instances of the DataNucleus enhancer.  This is probably due to multiple Eclipse builders being defined; we've noticed multiple entries in the Eclipse's <code>Debug</code> view:</p>
+
+<p><img src="resources/eclipse-210-enhancer-fails-duplicates.png"/></p>
+
+<p>At any rate, you'll know you've encountered this error if you see the following in the console:
+<img src="resources/eclipse-200-enhancer-fails-duplicates.png"/></p>
+
+<p>The best solution is to remove DataNucleus support and then to re-add it:</p>
+
+<p><img src="resources/eclipse-220-enhancer-fails-duplicates.png"  width="600px"/></p>
+
+<p>If you consistently hit problems, then the final recourse is to disable the automatic enhancement and to remember to manually enhance your domain object model before each run.  Not ideal, we know.  Please feel free to contribute a better solution :-)</p>
+
+
+
+      </div>
+
+        <div id="edit" class="modal hide fade in" style="display: none; ">
+            <div class="modal-header">
+                <a class="close" data-dismiss="modal">x</a>
+
+                <h3>Thank you for contributing to the documention!</h3>
+            </div>
+            <div class="modal-body">
+                <h4>Any help with the documentation is greatly appreciated.</h4>
+                <p>All edits are reviewed before going live, so feel free to do much more than fix typos or links.  If you see a page that could benefit from an entire rewrite, we'd be thrilled to review it.  Don't be surprised if we like it so much we ask you for help with other pages :)</p>
+                <small>NOTICE: unless indicated otherwise on the pages in question, all editable content available from apache.org is presumed to be licensed under the Apache License (AL) version 2.0 and hence all submissions to apache.org treated as formal Contributions under the license terms.</small>
+                <!--[if gt IE 6]>
+                <h4>Internet Explorer Users</h4>
+                <p>If you are not an Apache committer, click the Yes link and enter a <i>anonymous</i> for the username and leave the password empty</p>
+                <![endif]-->
+
+            </div>
+            <div class="modal-footer">
+                Do you have an Apache ID?
+                <a href="javascript:void(location.href='https://cms.apache.org/redirect?uri='+escape(location.href))" class="btn">Yes</a>
+                <a href="javascript:void(location.href='https://anonymous:@cms.apache.org/redirect?uri='+escape(location.href))" class="btn">No</a>
+            </div>
+        </div>
+        <script src="./../../../javascript/bootstrap-modal.js"></script>
+
+      <footer>
+        <p>
+        Copyright &copy; 2012~2013 The Apache Software Foundation, Licensed under the Apache License, Version 2.0.
+        <br/>
+        Apache Isis, Isis, Apache, the Apache feather logo, and the Apache Isis project logo are trademarks of The Apache Software Foundation.
+        </p>
+      </footer>
+
+    </div> <!-- /container -->
+
+  </body>
+</html>

Added: websites/staging/isis/trunk/content/components/objectstores/jdo/datanucleus-and-maven.html
==============================================================================
--- websites/staging/isis/trunk/content/components/objectstores/jdo/datanucleus-and-maven.html (added)
+++ websites/staging/isis/trunk/content/components/objectstores/jdo/datanucleus-and-maven.html Thu Jun 13 11:20:05 2013
@@ -0,0 +1,386 @@
+<!DOCTYPE html>
+<html lang="en">
+  <head>
+
+    <meta charset="utf-8">
+      <title>Using JDO/DataNucleus with Maven</title>
+    <meta name="description" content="">
+    <meta name="author" content="">
+
+    <!-- Le HTML5 shim, for IE6-8 support of HTML elements -->
+    <!--[if lt IE 9]>
+      <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+
+    <!-- Le styles -->
+    <link href="./../../../bootstrap.css" rel="stylesheet">
+    <link href="./../../../prettify.css" rel="stylesheet">
+
+    <style type="text/css">
+        body {
+          padding-top: 60px;
+        }
+        .sprite {
+            display: inline-block;
+            height: 20px;
+            margin: 0 auto 4px;
+            outline: medium none;
+            text-indent: -999em;
+            width: 24px;
+            background-image: url('./../../../images/sprites.png');
+            background-repeat: no-repeat;
+            overflow: hidden;
+            cursor: pointer;
+        }
+        .edit-page {
+            display: inline-block;
+            height: 20px;
+            margin: 0 auto 4px;
+            outline: medium none;
+            text-indent: -999em;
+            width: 24px;
+            background-image: url('./../../../images/edit.png');
+            background-repeat: no-repeat;
+            overflow: hidden;
+            cursor: pointer;
+        }
+        .fb-share {
+            background-position: 0px -40px;
+        }
+        .gp-share {
+            background-position: 0px 0px;
+        }
+        .tw-share {
+            background-position: 0px -80px;
+        }
+        .markdown-content {
+            min-height: 500px;
+        }
+        .book-image img {
+          border: 1px;
+          border-style: solid;
+        }
+        .release-matrix .heading {
+            background-color: #eeeeee;
+        }
+        .release-matrix .new {
+            color: #dd0000;
+            font-weight: bolder;
+        }
+        .stub,.note {
+            position: relative;
+            padding: 7px 15px;
+            margin-bottom: 18px;
+            color: #404040;
+            background-color: #eedc94;
+            background-repeat: repeat-x;
+            background-image: -khtml-gradient(linear, left top, left bottom, from(#fceec1), to(#eedc94));
+            background-image: -moz-linear-gradient(top, #fceec1, #eedc94);
+            background-image: -ms-linear-gradient(top, #fceec1, #eedc94);
+            background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #fceec1), color-stop(100%, #eedc94));
+            background-image: -webkit-linear-gradient(top, #fceec1, #eedc94);
+            background-image: -o-linear-gradient(top, #fceec1, #eedc94);
+            background-image: linear-gradient(top, #fceec1, #eedc94);
+            filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fceec1', endColorstr='#eedc94', GradientType=0);
+            text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
+            border-color: #eedc94 #eedc94 #e4c652;
+            border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
+            text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);
+            border-width: 1px;
+            border-style: solid;
+            -webkit-border-radius: 4px;
+            -moz-border-radius: 4px;
+            border-radius: 4px;
+            -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25);
+            -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25);
+            box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25);
+        }
+    </style>
+    <script type="text/javascript">
+      function fbshare () {
+          window.open(
+                  "http://www.facebook.com/sharer/sharer.php?u="+document.URL,
+                  'Share on Facebook',
+                  'width=640,height=426');
+      };
+      function gpshare () {
+          window.open(
+                  "https://plus.google.com/share?url="+document.URL,
+                  'Share on Google+',
+                  'width=584,height=385');
+      };
+      function twshare () {
+          window.open(
+                  "https://twitter.com/intent/tweet?url="+document.URL+"&text=Using JDO/DataNucleus with Maven",
+                  'Share on Twitter',
+                  'width=800,height=526');
+      };
+    </script>
+
+    <!-- Le fav and touch icons -->
+    <link rel="shortcut icon" href="./../../../images/favicon.ico">
+    <!--
+    <link rel="apple-touch-icon" href="./../../../images/apple-touch-icon.png">
+    <link rel="apple-touch-icon" sizes="72x72" href="./../../../images/apple-touch-icon-72x72.png">
+    <link rel="apple-touch-icon" sizes="114x114" href="./../../../images/apple-touch-icon-114x114.png">
+    -->
+
+    <script src="./../../../javascript/prettify.js" type="text/javascript"></script>
+    <script src="./../../../javascript/jquery-latest.js"></script>
+
+
+    <script src="http://platform.twitter.com/widgets.js" type="text/javascript"></script>
+    <script src="./../../../javascript/common.js"></script>
+    <script src="./../../../javascript/prettyprint.js"></script>
+
+    <script src="./../../../javascript/bootstrap-alert.js"></script>
+    <script src="./../../../javascript/bootstrap-dropdown.js"></script>
+    <script src="./../../../javascript/bootstrap-tooltip.js"></script>
+    <!--
+    <script src="./../../../javascript/bootstrap-alerts.js"></script>
+    -->
+    <script src="./../../../javascript/bootstrap-modal.js"></script>
+    <script src="./../../../javascript/bootstrap-transition.js"></script>
+    <script src="./../../../javascript/bootstrap-button.js"></script>
+    <script src="./../../../javascript/bootstrap-popover.js"></script>
+    <script src="./../../../javascript/bootstrap-scrollspy.js"></script>
+    <script src="./../../../javascript/bootstrap-typeahead.js"></script>
+    <script src="./../../../javascript/bootstrap-carousel.js"></script>
+    <script src="./../../../javascript/bootstrap-tab.js"></script>
+    <script src="./../../../javascript/bootstrap-collapse.js"></script>
+
+    
+    
+    
+
+    <script>
+    $(function () { prettyPrint() })
+    $().dropdown()
+    </script>
+
+    <!-- GAQ stuff removed here -->
+
+
+  </head>
+
+  <body>
+
+    <div class="topbar">
+      <div class="fill">
+        <div class="container">
+          <a class="brand" href="./../../../index.html">Apache Isis&trade;</a>
+          <ul class="nav">
+            <li class="dropdown">
+              <a href="#" class="dropdown-toggle" data-toggle="dropdown">Apache <b class="caret"></b></a>
+              <ul class="dropdown-menu">
+                <li>
+                  <a href="http://www.apache.org/">Apache Homepage <i class="icon-share-alt"></i></a>
+                </li>
+                <li>
+                  <a href="http://www.apache.org/licenses/">Licenses <i class="icon-share-alt"></i></a>
+                </li>
+                <li>
+                  <a href="http://www.apache.org/security/">Security <i class="icon-share-alt"></i></a>
+                </li>
+                <li>
+                  <a href="http://www.apache.org/foundation/sponsorship.html">Sponsorship <i class="icon-share-alt"></i></a>
+                </li>
+                <li>
+                  <a href="http://www.apache.org/foundation/thanks.html">Thanks <i class="icon-share-alt"></i></a>
+                </li>
+                <li>
+                  <a href="./../../../more-thanks.html">More thanks <i class="icon-share-alt"></i></a>
+                </li>
+              </ul>
+            </li>
+            <li><a href="./../../../index.html">Home</a></li>
+            <li><a href="./../../../download.html">Download</a></li>
+            <li class="dropdown">
+              <a href="#" class="dropdown-toggle" data-toggle="dropdown">Screenshots<b class="caret"></b></a>
+              <ul class="dropdown-menu">
+                <li><a href="./../../../getting-started/screenshots.html">Screenshots</a></li>
+                <li><a href="./../../../getting-started/screencasts.html">Screencasts</a></li>
+                <li><a href="./../../../getting-started/powered-by.html">Powered by</a></li>
+                <!--
+                <li><a href="#">Online Demo</a></li>
+                -->
+              </ul>
+            </li>
+            <li><a href="./../../../documentation.html">Documentation</a></li>
+            <li><a href="./../../../support.html">Support</a></li>
+
+          </ul>
+
+          <!-- Google CSE Search Box Begins -->
+          <div style="float: right; position: relative; ">
+
+          <!--
+              <form action="http://www.google.com/cse" id="cse-search-box" _lpchecked="1">
+                <div>
+                    <input type="hidden" name="cx" value="012614087480249044419:dn-q5gtwxya">
+                    <input type="hidden" name="ie" value="UTF-8">
+                    <input type="text" name="q" placeholder="Search" size="31" style="border: 1px solid rgb(126, 157, 185); padding: 2px; background-color: rgb(255, 255, 255); background-position: 0% 50%; background-repeat: no-repeat no-repeat;">
+                    <input type="submit" name="sa" value="Search">
+                </div>
+                <input name="siteurl" type="hidden" value="isis.apache.org">
+                <input name="ref" type="hidden" value="">
+                <input name="ss" type="hidden" value="677j458329j2">
+            </form>
+          -->
+          
+            <FORM class="pull-right" id="searchbox_012614087480249044419:dn-q5gtwxya" action="http://www.google.com/cse">
+                    <input type="hidden" name="cx" value="012614087480249044419:dn-q5gtwxya">
+                <INPUT type="hidden" name="cof" value="FORID:0">
+                <INPUT name="q" type="text" placeholder="Search">
+            </FORM>
+
+          </div>
+       <!-- Google CSE Search Box Ends -->
+        
+        </div>
+      </div>
+    </div>
+
+    <div class="container">
+      <div class="markdown-content">
+      
+
+<div class="page-header">
+<p><a href="./../../../documentation.html">Docs</a>&nbsp;&raquo&nbsp;<a href="./../../../components/about.html">Components</a>&nbsp;&raquo&nbsp;<a href="./../../../components/objectstores/about.html">Objectstores</a>&nbsp;&raquo&nbsp;<a href="./../../../components/objectstores/jdo/about.html">Jdo</a></p>
+<h1>Using JDO/DataNucleus with Maven
+
+</h1>
+</div>
+
+<blockquote>
+  <p>See also <a href="./datanucleus-and-eclipse.html">how to use JDO/DataNucleus with Maven</a>.  </p>
+</blockquote>
+
+<p>By leveraging the JDO/Datanucleus ORM, Isis' JDO objectstore is very powerful. However, with such power comes a little bit of complexity to the development environment: all domain objects must be enhanced through the <a href="http://db.apache.org/jdo/enhancement.html">JDO enhancer</a>.  So the enhancer must, in one way or another, be integrated into your development environment.</p>
+
+<p>If working from the Maven command line, JDO enhancement is done using the <code>maven-datanucleus-plugin</code>.</p>
+
+<p>However there are a couple of issues you may encounter:</p>
+
+<ul>
+<li>if running on Windows, then there's a good chance you'll hit the <a href="http://msdn.microsoft.com/en-us/library/aa365247%28VS.85%29.aspx#maxpath">maximum path length limit</a>. Fortunately, the workaround is straight-forward: configure a <code>persistence.xml</code> file.  (This workaround is also required if <a href="./datanucleus-and-eclipse.html">developing in Eclipse</a>).</li>
+<li>New releases of DataNucleus plugins in the Maven central repo can cause versioning problems.</li>
+</ul>
+
+<p>We have workarounds for both.</p>
+
+<h2>Workaround for path limits: Configuring the <code>persistence.xml</code> file</h2>
+
+<p>Configuring a <code>persistence.xml</code> 
+Details of how to configure the <code>persistence.xml</code> file can be found <a href="./persistence_xml.html">here</a>.</p>
+
+<p>There is no additional configuration required in any Maven <code>pom.xml</code>; you are done.</p>
+
+<h2>Workaround for DN versioning issues: using a Maven profile</h2>
+
+<p>Every so often there will be a new release of DataNucleus plugins to the <a href="http://search.maven.org">Maven central repo</a>.  For better or for worse, the Maven DataNucleus enhancer plugin defines a range dependency: it will always use the latest version of the DN modules available.</p>
+
+<p>The DataNucleus plugin for Eclipse on the other hand is configured to use the project classpath, and so it will remain compatible with the version referenced by Isis' own JDO objectstore.</p>
+
+<p>Unfortunately, if the enhancer is run referencing two different versions of the <code>org.datanucleus:dataducleus-core</code> jar, then it will fail:</p>
+
+<pre>
+[INFO] Example Claims .................................... SUCCESS [0.017s]
+[INFO] Example Claims App DOM ............................ FAILURE [1.532s]
+[INFO] Example Claims App Repositories (for ObjectStore Default)  SKIPPED
+[INFO] Example Claims App Fixtures ....................... SKIPPED
+[INFO] Example Claims App Repositories (for JDO ObjectStore)  SKIPPED
+...
+...
+[INFO] ------------------------------------------------------------------------
+[INFO] BUILD FAILURE
+[INFO] ------------------------------------------------------------------------
+[INFO] Total time: 5:49.374s
+[INFO] Finished at: Thu Dec 06 15:54:44 GMT 2012
+[INFO] Final Memory: 113M/883M
+[INFO] ------------------------------------------------------------------------
+[ERROR] Failed to execute goal org.datanucleus:maven-datanucleus-plugin:3.1.1:en
+hance (default) on project claims-dom: Error executing DataNucleus tool org.data
+nucleus.enhancer.DataNucleusEnhancer: InvocationTargetException: Plugin (Bundle)
+ "org.datanucleus" is already registered. Ensure you dont have multiple JAR vers
+ions of the same plugin in the classpath. The URL "file:/C:/MVN/.m2/repository/o
+rg/datanucleus/datanucleus-core/3.1.3/datanucleus-core-3.1.3.jar" is already reg
+istered, and you are trying to register an identical plugin located at URL "file
+:/C:/MVN/.m2/repository/org/datanucleus/datanucleus-core/3.1.2/datanucleus-core-
+3.1.2.jar." -&gt; [Help 1]
+[ERROR]
+[ERROR] To see the full stack trace of the errors, re-run Maven with the -e swit
+ch.
+</pre>
+
+<p>The fix is to use a Maven profile:</p>
+
+<pre>
+    &lt;profiles&gt;
+        &lt;profile&gt;
+            &lt;id&gt;not-m2e&lt;/id&gt;
+            &lt;activation&gt;
+                &lt;property&gt;
+                    &lt;name&gt;!m2e.version&lt;/name&gt;
+                &lt;/property&gt;
+            &lt;/activation&gt;
+            &lt;dependencies&gt;
+                &lt;dependency&gt;
+                    &lt;groupId&gt;org.datanucleus&lt;/groupId&gt;
+                    &lt;artifactId&gt;datanucleus-core&lt;/artifactId&gt;
+                    &lt;version&gt;(3.0.99, 3.1.99)&lt;/version&gt;
+                    &lt;scope&gt;runtime&lt;/scope&gt;
+                &lt;/dependency&gt;
+                &lt;dependency&gt;
+                    &lt;groupId&gt;org.datanucleus&lt;/groupId&gt;
+                    &lt;artifactId&gt;datanucleus-enhancer&lt;/artifactId&gt;
+                    &lt;version&gt;(3.0.99, 3.1.99)&lt;/version&gt;
+                    &lt;scope&gt;runtime&lt;/scope&gt;
+                &lt;/dependency&gt;
+            &lt;/dependencies&gt;
+        &lt;/profile&gt;
+    &lt;/profiles&gt;
+</pre>
+
+<p>This says that when <em>not</em> run within Eclipse (the ${m2e.version} property is <em>not</em> set), then to use the latest version of the DataNucleus dependency can be referenced.  You can maintain the &lt;version&gt; to keep track with the latest-n-greatest available in the Maven repo.</p>
+
+
+
+      </div>
+
+        <div id="edit" class="modal hide fade in" style="display: none; ">
+            <div class="modal-header">
+                <a class="close" data-dismiss="modal">x</a>
+
+                <h3>Thank you for contributing to the documention!</h3>
+            </div>
+            <div class="modal-body">
+                <h4>Any help with the documentation is greatly appreciated.</h4>
+                <p>All edits are reviewed before going live, so feel free to do much more than fix typos or links.  If you see a page that could benefit from an entire rewrite, we'd be thrilled to review it.  Don't be surprised if we like it so much we ask you for help with other pages :)</p>
+                <small>NOTICE: unless indicated otherwise on the pages in question, all editable content available from apache.org is presumed to be licensed under the Apache License (AL) version 2.0 and hence all submissions to apache.org treated as formal Contributions under the license terms.</small>
+                <!--[if gt IE 6]>
+                <h4>Internet Explorer Users</h4>
+                <p>If you are not an Apache committer, click the Yes link and enter a <i>anonymous</i> for the username and leave the password empty</p>
+                <![endif]-->
+
+            </div>
+            <div class="modal-footer">
+                Do you have an Apache ID?
+                <a href="javascript:void(location.href='https://cms.apache.org/redirect?uri='+escape(location.href))" class="btn">Yes</a>
+                <a href="javascript:void(location.href='https://anonymous:@cms.apache.org/redirect?uri='+escape(location.href))" class="btn">No</a>
+            </div>
+        </div>
+        <script src="./../../../javascript/bootstrap-modal.js"></script>
+
+      <footer>
+        <p>
+        Copyright &copy; 2012~2013 The Apache Software Foundation, Licensed under the Apache License, Version 2.0.
+        <br/>
+        Apache Isis, Isis, Apache, the Apache feather logo, and the Apache Isis project logo are trademarks of The Apache Software Foundation.
+        </p>
+      </footer>
+
+    </div> <!-- /container -->
+
+  </body>
+</html>

Added: websites/staging/isis/trunk/content/components/objectstores/jdo/persistence_xml.html
==============================================================================
--- websites/staging/isis/trunk/content/components/objectstores/jdo/persistence_xml.html (added)
+++ websites/staging/isis/trunk/content/components/objectstores/jdo/persistence_xml.html Thu Jun 13 11:20:05 2013
@@ -0,0 +1,350 @@
+<!DOCTYPE html>
+<html lang="en">
+  <head>
+
+    <meta charset="utf-8">
+      <title>Configuring the persistence.xml file</title>
+    <meta name="description" content="">
+    <meta name="author" content="">
+
+    <!-- Le HTML5 shim, for IE6-8 support of HTML elements -->
+    <!--[if lt IE 9]>
+      <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+
+    <!-- Le styles -->
+    <link href="./../../../bootstrap.css" rel="stylesheet">
+    <link href="./../../../prettify.css" rel="stylesheet">
+
+    <style type="text/css">
+        body {
+          padding-top: 60px;
+        }
+        .sprite {
+            display: inline-block;
+            height: 20px;
+            margin: 0 auto 4px;
+            outline: medium none;
+            text-indent: -999em;
+            width: 24px;
+            background-image: url('./../../../images/sprites.png');
+            background-repeat: no-repeat;
+            overflow: hidden;
+            cursor: pointer;
+        }
+        .edit-page {
+            display: inline-block;
+            height: 20px;
+            margin: 0 auto 4px;
+            outline: medium none;
+            text-indent: -999em;
+            width: 24px;
+            background-image: url('./../../../images/edit.png');
+            background-repeat: no-repeat;
+            overflow: hidden;
+            cursor: pointer;
+        }
+        .fb-share {
+            background-position: 0px -40px;
+        }
+        .gp-share {
+            background-position: 0px 0px;
+        }
+        .tw-share {
+            background-position: 0px -80px;
+        }
+        .markdown-content {
+            min-height: 500px;
+        }
+        .book-image img {
+          border: 1px;
+          border-style: solid;
+        }
+        .release-matrix .heading {
+            background-color: #eeeeee;
+        }
+        .release-matrix .new {
+            color: #dd0000;
+            font-weight: bolder;
+        }
+        .stub,.note {
+            position: relative;
+            padding: 7px 15px;
+            margin-bottom: 18px;
+            color: #404040;
+            background-color: #eedc94;
+            background-repeat: repeat-x;
+            background-image: -khtml-gradient(linear, left top, left bottom, from(#fceec1), to(#eedc94));
+            background-image: -moz-linear-gradient(top, #fceec1, #eedc94);
+            background-image: -ms-linear-gradient(top, #fceec1, #eedc94);
+            background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #fceec1), color-stop(100%, #eedc94));
+            background-image: -webkit-linear-gradient(top, #fceec1, #eedc94);
+            background-image: -o-linear-gradient(top, #fceec1, #eedc94);
+            background-image: linear-gradient(top, #fceec1, #eedc94);
+            filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fceec1', endColorstr='#eedc94', GradientType=0);
+            text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
+            border-color: #eedc94 #eedc94 #e4c652;
+            border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
+            text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);
+            border-width: 1px;
+            border-style: solid;
+            -webkit-border-radius: 4px;
+            -moz-border-radius: 4px;
+            border-radius: 4px;
+            -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25);
+            -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25);
+            box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25);
+        }
+    </style>
+    <script type="text/javascript">
+      function fbshare () {
+          window.open(
+                  "http://www.facebook.com/sharer/sharer.php?u="+document.URL,
+                  'Share on Facebook',
+                  'width=640,height=426');
+      };
+      function gpshare () {
+          window.open(
+                  "https://plus.google.com/share?url="+document.URL,
+                  'Share on Google+',
+                  'width=584,height=385');
+      };
+      function twshare () {
+          window.open(
+                  "https://twitter.com/intent/tweet?url="+document.URL+"&text=Configuring the persistence.xml file",
+                  'Share on Twitter',
+                  'width=800,height=526');
+      };
+    </script>
+
+    <!-- Le fav and touch icons -->
+    <link rel="shortcut icon" href="./../../../images/favicon.ico">
+    <!--
+    <link rel="apple-touch-icon" href="./../../../images/apple-touch-icon.png">
+    <link rel="apple-touch-icon" sizes="72x72" href="./../../../images/apple-touch-icon-72x72.png">
+    <link rel="apple-touch-icon" sizes="114x114" href="./../../../images/apple-touch-icon-114x114.png">
+    -->
+
+    <script src="./../../../javascript/prettify.js" type="text/javascript"></script>
+    <script src="./../../../javascript/jquery-latest.js"></script>
+
+
+    <script src="http://platform.twitter.com/widgets.js" type="text/javascript"></script>
+    <script src="./../../../javascript/common.js"></script>
+    <script src="./../../../javascript/prettyprint.js"></script>
+
+    <script src="./../../../javascript/bootstrap-alert.js"></script>
+    <script src="./../../../javascript/bootstrap-dropdown.js"></script>
+    <script src="./../../../javascript/bootstrap-tooltip.js"></script>
+    <!--
+    <script src="./../../../javascript/bootstrap-alerts.js"></script>
+    -->
+    <script src="./../../../javascript/bootstrap-modal.js"></script>
+    <script src="./../../../javascript/bootstrap-transition.js"></script>
+    <script src="./../../../javascript/bootstrap-button.js"></script>
+    <script src="./../../../javascript/bootstrap-popover.js"></script>
+    <script src="./../../../javascript/bootstrap-scrollspy.js"></script>
+    <script src="./../../../javascript/bootstrap-typeahead.js"></script>
+    <script src="./../../../javascript/bootstrap-carousel.js"></script>
+    <script src="./../../../javascript/bootstrap-tab.js"></script>
+    <script src="./../../../javascript/bootstrap-collapse.js"></script>
+
+    
+    
+    
+
+    <script>
+    $(function () { prettyPrint() })
+    $().dropdown()
+    </script>
+
+    <!-- GAQ stuff removed here -->
+
+
+  </head>
+
+  <body>
+
+    <div class="topbar">
+      <div class="fill">
+        <div class="container">
+          <a class="brand" href="./../../../index.html">Apache Isis&trade;</a>
+          <ul class="nav">
+            <li class="dropdown">
+              <a href="#" class="dropdown-toggle" data-toggle="dropdown">Apache <b class="caret"></b></a>
+              <ul class="dropdown-menu">
+                <li>
+                  <a href="http://www.apache.org/">Apache Homepage <i class="icon-share-alt"></i></a>
+                </li>
+                <li>
+                  <a href="http://www.apache.org/licenses/">Licenses <i class="icon-share-alt"></i></a>
+                </li>
+                <li>
+                  <a href="http://www.apache.org/security/">Security <i class="icon-share-alt"></i></a>
+                </li>
+                <li>
+                  <a href="http://www.apache.org/foundation/sponsorship.html">Sponsorship <i class="icon-share-alt"></i></a>
+                </li>
+                <li>
+                  <a href="http://www.apache.org/foundation/thanks.html">Thanks <i class="icon-share-alt"></i></a>
+                </li>
+                <li>
+                  <a href="./../../../more-thanks.html">More thanks <i class="icon-share-alt"></i></a>
+                </li>
+              </ul>
+            </li>
+            <li><a href="./../../../index.html">Home</a></li>
+            <li><a href="./../../../download.html">Download</a></li>
+            <li class="dropdown">
+              <a href="#" class="dropdown-toggle" data-toggle="dropdown">Screenshots<b class="caret"></b></a>
+              <ul class="dropdown-menu">
+                <li><a href="./../../../getting-started/screenshots.html">Screenshots</a></li>
+                <li><a href="./../../../getting-started/screencasts.html">Screencasts</a></li>
+                <li><a href="./../../../getting-started/powered-by.html">Powered by</a></li>
+                <!--
+                <li><a href="#">Online Demo</a></li>
+                -->
+              </ul>
+            </li>
+            <li><a href="./../../../documentation.html">Documentation</a></li>
+            <li><a href="./../../../support.html">Support</a></li>
+
+          </ul>
+
+          <!-- Google CSE Search Box Begins -->
+          <div style="float: right; position: relative; ">
+
+          <!--
+              <form action="http://www.google.com/cse" id="cse-search-box" _lpchecked="1">
+                <div>
+                    <input type="hidden" name="cx" value="012614087480249044419:dn-q5gtwxya">
+                    <input type="hidden" name="ie" value="UTF-8">
+                    <input type="text" name="q" placeholder="Search" size="31" style="border: 1px solid rgb(126, 157, 185); padding: 2px; background-color: rgb(255, 255, 255); background-position: 0% 50%; background-repeat: no-repeat no-repeat;">
+                    <input type="submit" name="sa" value="Search">
+                </div>
+                <input name="siteurl" type="hidden" value="isis.apache.org">
+                <input name="ref" type="hidden" value="">
+                <input name="ss" type="hidden" value="677j458329j2">
+            </form>
+          -->
+          
+            <FORM class="pull-right" id="searchbox_012614087480249044419:dn-q5gtwxya" action="http://www.google.com/cse">
+                    <input type="hidden" name="cx" value="012614087480249044419:dn-q5gtwxya">
+                <INPUT type="hidden" name="cof" value="FORID:0">
+                <INPUT name="q" type="text" placeholder="Search">
+            </FORM>
+
+          </div>
+       <!-- Google CSE Search Box Ends -->
+        
+        </div>
+      </div>
+    </div>
+
+    <div class="container">
+      <div class="markdown-content">
+      
+
+<div class="page-header">
+<p><a href="./../../../documentation.html">Docs</a>&nbsp;&raquo&nbsp;<a href="./../../../components/about.html">Components</a>&nbsp;&raquo&nbsp;<a href="./../../../components/objectstores/about.html">Objectstores</a>&nbsp;&raquo&nbsp;<a href="./../../../components/objectstores/jdo/about.html">Jdo</a></p>
+<h1>Configuring the persistence.xml file
+
+</h1>
+</div>
+
+<blockquote>
+  <p>See also:</p>
+  
+  <ul>
+  <li><a href="../datanucleus-and-maven.html">how to use JDO/DataNucleus with Maven</a>.  </li>
+  <li><a href="../datanucleus-and-eclipse.html">how to use JDO/DataNucleus with Eclipse</a>.  </li>
+  </ul>
+</blockquote>
+
+<p>By leveraging the JDO/Datanucleus ORM, Isis' JDO objectstore is very powerful. However, with such power comes a little bit of complexity to the development environment: all domain objects must be enhanced through the <a href="http://db.apache.org/jdo/enhancement.html">JDO enhancer</a>.  So the enhancer must, in one way or another, be integrated into your development environment.</p>
+
+<p>Whether working with <a href="../datanucleus-and-maven.html">Maven</a> or with <a href="../datanucleus-and-eclipse.html">Eclipse</a> and on the Windows, there's a good chance you'll hit the <a href="http://msdn.microsoft.com/en-us/library/aa365247%28VS.85%29.aspx#maxpath">maximum path length limit</a>. The workaround is straight-forward: configure a <code>persistence.xml</code> file.</p>
+
+<h2>Create <code>persistence.xml</code> for the domain project</h2>
+
+<p>In <code>src/main/java/META-INF</code> of the domain project:</p>
+
+<p><img src="resources/eclipse-028-persistence-unit-xml.png" width="250px"/></p>
+
+<p>Specify a suitable value for the <code>&lt;persistence-unit&gt;</code>:</p>
+
+<pre>
+&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; ?&gt;
+&lt;persistence xmlns=&quot;http://java.sun.com/xml/ns/persistence&quot;
+    xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;
+    xsi:schemaLocation=&quot;http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd&quot; version=&quot;1.0&quot;&gt;
+
+    &lt;persistence-unit name=&quot;quickstart&quot;&gt;
+    &lt;/persistence-unit&gt;
+&lt;/persistence&gt;
+</pre>
+
+<p>The rest of the file can be left alone; Isis will automatically register all entities with DataNucleus.</p>
+
+<p>If you are using Eclipse, note that will also need to configure Eclipse's DataNucleus plugin; details can be found <a href="./datanucleus-and-eclipse.html">here</a>.</p>
+
+<h2>Other domain projects.</h2>
+
+<p>There is nothing to prevent you having multiple domain projects.  You might want to do such that each domain project corresponds to a <a href="http://www.methodsandtools.com/archive/archive.php?id=97p2">DDD module</a>, thus guaranteeing that there are no cyclic dependencies between your modules.</p>
+
+<p>If you do this, make sure that each project has its own <code>persistence.xml</code> file.</p>
+
+<p>And, if you are using Eclipse, remember also to configure Eclipse's DataNucleus plugin for these other domain projects; details can be found <a href="./datanucleus-and-eclipse.html">here</a>.</p>
+
+<h2>JDO Applib domain projects.</h2>
+
+<p>The JDO objectstore also defines some of its own persistable domain entities, these being used in its implementation of the <a href="./publishing-service-jdo.html">Publishing Service</a> and the <a href="./settings-services-jdo.html">Settings Services</a>.  These persistable domain entities are defined in the JDO applib, and must be enhanced.</p>
+
+<p>If just using released versions of Isis, then there is nothing to be done.</p>
+
+<p>However, if building Isis from source code and in Eclipse, and if using either of these services, then you must also configure Eclipse's DataNucleus plugin; details can be found <a href="./datanucleus-and-eclipse.html">here</a>.</p>
+
+<p>As the screenshot below shows, the <code>persistence-unit</code> name to configure is called <code>jdo-applib</code>:
+>
+<img src="resources/jdo-applib-persistence-xml.png" alt="" /></p>
+
+
+
+      </div>
+
+        <div id="edit" class="modal hide fade in" style="display: none; ">
+            <div class="modal-header">
+                <a class="close" data-dismiss="modal">x</a>
+
+                <h3>Thank you for contributing to the documention!</h3>
+            </div>
+            <div class="modal-body">
+                <h4>Any help with the documentation is greatly appreciated.</h4>
+                <p>All edits are reviewed before going live, so feel free to do much more than fix typos or links.  If you see a page that could benefit from an entire rewrite, we'd be thrilled to review it.  Don't be surprised if we like it so much we ask you for help with other pages :)</p>
+                <small>NOTICE: unless indicated otherwise on the pages in question, all editable content available from apache.org is presumed to be licensed under the Apache License (AL) version 2.0 and hence all submissions to apache.org treated as formal Contributions under the license terms.</small>
+                <!--[if gt IE 6]>
+                <h4>Internet Explorer Users</h4>
+                <p>If you are not an Apache committer, click the Yes link and enter a <i>anonymous</i> for the username and leave the password empty</p>
+                <![endif]-->
+
+            </div>
+            <div class="modal-footer">
+                Do you have an Apache ID?
+                <a href="javascript:void(location.href='https://cms.apache.org/redirect?uri='+escape(location.href))" class="btn">Yes</a>
+                <a href="javascript:void(location.href='https://anonymous:@cms.apache.org/redirect?uri='+escape(location.href))" class="btn">No</a>
+            </div>
+        </div>
+        <script src="./../../../javascript/bootstrap-modal.js"></script>
+
+      <footer>
+        <p>
+        Copyright &copy; 2012~2013 The Apache Software Foundation, Licensed under the Apache License, Version 2.0.
+        <br/>
+        Apache Isis, Isis, Apache, the Apache feather logo, and the Apache Isis project logo are trademarks of The Apache Software Foundation.
+        </p>
+      </footer>
+
+    </div> <!-- /container -->
+
+  </body>
+</html>

Added: websites/staging/isis/trunk/content/components/objectstores/jdo/resources/jdo-applib-dn-project-configuration.png
==============================================================================
Binary file - no diff available.

Propchange: websites/staging/isis/trunk/content/components/objectstores/jdo/resources/jdo-applib-dn-project-configuration.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Added: websites/staging/isis/trunk/content/components/objectstores/jdo/resources/jdo-applib-persistence-xml.png
==============================================================================
Binary file - no diff available.

Propchange: websites/staging/isis/trunk/content/components/objectstores/jdo/resources/jdo-applib-persistence-xml.png
------------------------------------------------------------------------------
    svn:mime-type = image/png

Modified: websites/staging/isis/trunk/content/contributors/development-environment.html
==============================================================================
--- websites/staging/isis/trunk/content/contributors/development-environment.html (original)
+++ websites/staging/isis/trunk/content/contributors/development-environment.html Thu Jun 13 11:20:05 2013
@@ -396,6 +396,10 @@ MAVEN_OPTS=-Xms512m -Xmx1024m -XX:MaxPer
 
 <h3>Sharing Projects</h3>
 
+<blockquote>
+  <p>In the Juno release and later, this is now done automatically.</p>
+</blockquote>
+
 <p>The next thing to do is to configure eGit so that you can use git commands within Eclipse.  This is done by selecting all the projects in the <code>Package Explorer</code>, then right clicking <code>Team &gt; Share Project</code>:</p>
 
 <p><img src="resources/sharing-projects-1.png" width="500px"></img></p>
@@ -457,9 +461,19 @@ TODO: to add from the original incubator
 
 <p><img src="resources/eclipse-preferences-white-space-2.png" width="400px"></img></p>
 
+<h2>Setting up DataNucleus enhancer</h2>
+
+<p>If you are either contributing to the JDO Objectstore, or even if you simply intend to use the latest-n-greatest version and build from source, then you should also configure the DataNucleus plugin for Eclipse.  This does the job of bytecode-enhancing your domain objects.</p>
+
+<p>See <a href="../components/objectstores/jdo/datanucleus-and-eclipse.html">this page</a> for details on how to setup the plugin.</p>
+
+<p>You will also see that the page describes how to configure the <code>isis-objectstore-jdo-applib</code> domain project with the DataNucleus enhancer.</p>
+
+<p>If you fail to do this, then the JDO ObjectStore's implementation of the <a href="../components/objectstores/jdo/publishing-service-jdo.html">Publishing Service</a> and the <a href="../components/objectstores/jdo/settings-services-jdo.html">Settings Services</a> will throw runtime exceptions.</p>
+
 <h2>What's Next</h2>
 
-<p>Now you've set up your development environment the next thing to do is to <a href="building-isis.html">build Isis</a>.</p>
+<p>Now you've set up your development environment the next thing to do is to <a href="building-isis.html">build Isis</a> from the command line.</p>
 
 
 

Modified: websites/staging/isis/trunk/content/documentation.html
==============================================================================
--- websites/staging/isis/trunk/content/documentation.html (original)
+++ websites/staging/isis/trunk/content/documentation.html Thu Jun 13 11:20:05 2013
@@ -448,7 +448,9 @@
 
 <ul>
 <li><a href="components/objectstores/jdo/about.html">About</a></li>
-<li><a href="components/objectstores/jdo/maven-and-eclipse.html">Maven and Eclipse</a></li>
+<li><a href="components/objectstores/jdo/datanucleus-and-eclipse.html">DataNucleus and Eclipse</a></li>
+<li><a href="components/objectstores/jdo/datanucleus-and-maven.html">DataNucleus and Maven</a></li>
+<li><a href="components/objectstores/jdo/persistence_xml.html"><code>persistence.xml</code> file</a></li>
 <li><a href="components/objectstores/jdo/dates-blobs-lazy-loading.html">Dates, Blobs and Lazy Loading</a></li>
 <li><a href="components/objectstores/jdo/using-jndi-datasource.html">Using a JNDI Datasource</a></li>
 <li><a href="components/objectstores/jdo/workarounds.html">Workarounds</a></li>