http://git-wip-us.apache.org/repos/asf/isis-site/blob/18dc39e7/content/guides/ugodn.html
----------------------------------------------------------------------
diff --git a/content/guides/ugodn.html b/content/guides/ugodn.html
new file mode 100644
index 0000000..f62825f
--- /dev/null
+++ b/content/guides/ugodn.html
@@ -0,0 +1,1011 @@
+<!doctype html>
+<html class="no-js" lang="en">
+<head>
+    <meta charset="utf-8"/>
+    <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
+
+    <title>DataNucleus Object Store</title>
+
+    <!--
+        Licensed to the Apache Software Foundation (ASF) under one
+        or more contributor license agreements.  See the NOTICE file
+        distributed with this work for additional information
+        regarding copyright ownership.  The ASF licenses this file
+        to you under the Apache License, Version 2.0 (the
+        "License"); you may not use this file except in compliance
+        with the License.  You may obtain a copy of the License at
+
+        http://www.apache.org/licenses/LICENSE-2.0
+
+        Unless required by applicable law or agreed to in writing,
+        software distributed under the License is distributed on an
+        "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+        KIND, either express or implied.  See the License for the
+        specific language governing permissions and limitations
+        under the License.
+    -->
+
+    <!-- No caching headers -->
+    <meta http-equiv="cache-control" content="no-cache" />
+    <meta http-equiv="pragma" content="no-cache" />
+    <meta http-equiv="expires" content="-1" />
+
+
+    <!-- TODO: need to (re)instate CDN in the future (not using for now just 
so can develop off-line -->
+    <link href="../css/foundation/5.5.1/foundation.css" rel="stylesheet" />
+    <script src="../js/foundation/5.5.1/vendor/modernizr.js"></script>
+    <link href="../css/asciidoctor/colony.css" rel="stylesheet">
+    <link href="../css/font-awesome/4.3.0/css/font-awesome.min.css" 
rel="stylesheet">
+
+
+
+
+    <link href="../css/github-fork-ribbon-css/0.1.1/gh-fork-ribbon.css" 
rel="stylesheet" />
+    <!--[if lt IE 9]>
+      <link href="../css/github-fork-ribbon-css/0.1.1/gh-fork-ribbon.ie.css" 
rel="stylesheet" />
+    <![endif]-->
+
+
+
+    <style type="text/css">
+        pre code {
+            background-color: inherit;
+            border-style: none;
+        }
+
+        pre code > span:first-child {
+            margin-left: -5px;
+        }
+
+    <style>
+
+    <!--
+    <style type="text/css">
+        /* Stylesheet for CodeRay to match GitHub theme | MIT License | 
http://foundation.zurb.com */
+/*pre.CodeRay {background-color:#f7f7f8;}*/
+.CodeRay .line-numbers{border-right:1px solid #d8d8d8;padding:0 0.5em 0 .25em}
+.CodeRay 
span.line-numbers{display:inline-block;margin-right:.5em;color:rgba(0,0,0,.3)}
+.CodeRay .line-numbers strong{color:rgba(0,0,0,.4)}
+table.CodeRay{border-collapse:separate;border-spacing:0;margin-bottom:0;border:0;background:none}
+table.CodeRay td{vertical-align: top;line-height:1.45}
+table.CodeRay td.line-numbers{text-align:right}
+table.CodeRay td.line-numbers>pre{padding:0;color:rgba(0,0,0,.3)}
+table.CodeRay td.code{padding:0 0 0 .5em}
+table.CodeRay td.code>pre{padding:0}
+.CodeRay .debug{color:#fff !important;background:#000080 !important}
+.CodeRay .annotation{color:#007}
+.CodeRay .attribute-name{color:#000080}
+.CodeRay .attribute-value{color:#700}
+.CodeRay .binary{color:#509}
+.CodeRay .comment{color:#998;font-style:italic}
+.CodeRay .char{color:#04d}
+.CodeRay .char .content{color:#04d}
+.CodeRay .char .delimiter{color:#039}
+.CodeRay .class{color:#458;font-weight:bold}
+.CodeRay .complex{color:#a08}
+.CodeRay .constant,.CodeRay .predefined-constant{color:#008080}
+.CodeRay .color{color:#099}
+.CodeRay .class-variable{color:#369}
+.CodeRay .decorator{color:#b0b}
+.CodeRay .definition{color:#099}
+.CodeRay .delimiter{color:#000}
+.CodeRay .doc{color:#970}
+.CodeRay .doctype{color:#34b}
+.CodeRay .doc-string{color:#d42}
+.CodeRay .escape{color:#666}
+.CodeRay .entity{color:#800}
+.CodeRay .error{color:#808}
+.CodeRay .exception{color:inherit}
+.CodeRay .filename{color:#099}
+.CodeRay .function{color:#900;font-weight:bold}
+.CodeRay .global-variable{color:#008080}
+.CodeRay .hex{color:#058}
+.CodeRay .integer,.CodeRay .float{color:#099}
+.CodeRay .include{color:#555}
+.CodeRay .inline{color:#000}
+.CodeRay .inline .inline{background:#ccc}
+.CodeRay .inline .inline .inline{background:#bbb}
+.CodeRay .inline .inline-delimiter{color:#d14}
+.CodeRay .inline-delimiter{color:#d14}
+.CodeRay .important{color:#555;font-weight:bold}
+.CodeRay .interpreted{color:#b2b}
+.CodeRay .instance-variable{color:#008080}
+.CodeRay .label{color:#970}
+.CodeRay .local-variable{color:#963}
+.CodeRay .octal{color:#40e}
+.CodeRay .predefined{color:#369}
+.CodeRay .preprocessor{color:#579}
+.CodeRay .pseudo-class{color:#555}
+.CodeRay .directive{font-weight:bold}
+.CodeRay .type{font-weight:bold}
+.CodeRay .predefined-type{color:inherit}
+.CodeRay .reserved,.CodeRay .keyword {color:#000;font-weight:bold}
+.CodeRay .key{color:#808}
+.CodeRay .key .delimiter{color:#606}
+.CodeRay .key .char{color:#80f}
+.CodeRay .value{color:#088}
+.CodeRay .regexp .delimiter{color:#808}
+.CodeRay .regexp .content{color:#808}
+.CodeRay .regexp .modifier{color:#808}
+.CodeRay .regexp .char{color:#d14}
+.CodeRay .regexp .function{color:#404;font-weight:bold}
+.CodeRay .string{color:#d20}
+.CodeRay .string .string .string{background:#ffd0d0}
+.CodeRay .string .content{color:#d14}
+.CodeRay .string .char{color:#d14}
+.CodeRay .string .delimiter{color:#d14}
+.CodeRay .shell{color:#d14}
+.CodeRay .shell .delimiter{color:#d14}
+.CodeRay .symbol{color:#990073}
+.CodeRay .symbol .content{color:#a60}
+.CodeRay .symbol .delimiter{color:#630}
+.CodeRay .tag{color:#008080}
+.CodeRay .tag-special{color:#d70}
+.CodeRay .variable{color:#036}
+.CodeRay .insert{background:#afa}
+.CodeRay .delete{background:#faa}
+.CodeRay .change{color:#aaf;background:#007}
+.CodeRay .head{color:#f8f;background:#505}
+.CodeRay .insert .insert{color:#080}
+.CodeRay .delete .delete{color:#800}
+.CodeRay .change .change{color:#66f}
+.CodeRay .head .head{color:#f4f}
+
+        pre.CodeRay code {
+            background-color: inherit;
+            border-style: none;
+        }
+
+        pre.CodeRay code > span:first-child {
+            margin-left: -5px;
+        }
+
+        .literalblock pre,
+        .listingblock pre:not(.highlight),
+        .listingblock pre[class="highlight"],
+        .listingblock pre[class^="highlight "],
+        .listingblock pre.CodeRay,
+        .listingblock pre.prettyprint {
+            background: rgb(253, 250, 246);
+         }
+        .sidebarblock .literalblock pre,
+        .sidebarblock .listingblock pre:not(.highlight),
+        .sidebarblock .listingblock pre[class="highlight"],
+        .sidebarblock .listingblock pre[class^="highlight "],
+        .sidebarblock .listingblock pre.CodeRay,
+        .sidebarblock .listingblock pre.prettyprint {
+            background: rgb(253, 250, 246);
+         }
+
+    <style>
+    -->
+
+    <style>
+    .github-fork-ribbon-wrapper.right {
+        position: fixed;
+    }
+    .github-fork-ribbon {
+        background: #090;
+    }
+    .github-fork-ribbon a:hover {
+        background:#0D0;
+        color:#fff;
+        font-size: 1.1em;
+    }
+    </style>
+
+    <style>
+        @media only screen and (min-width: 40.063em) {
+          .top-bar {
+            .contain-to-grid .top-bar {
+                max-width: 80rem;
+            }
+          }
+        }
+        .row {
+            max-width: 80rem;
+        }
+    </style>
+
+    <style>
+        .extended-quote,
+        .extended-quote-first {
+            margin-left: 40px;
+            margin-right: 40px;
+            font-style: italic;
+        }
+        .extended-quote-attribution {
+            text-align: right;
+            margin-right: 100px;
+            color: #10B061;
+        }
+
+        .extended-quote-first:before {
+            content: "\201c";
+            float: left;
+            font-size: 2.75em;
+            font-weight: bold;
+            line-height: 0.6em;
+            margin-left: -0.6em;
+            color: #003b6b;
+            text-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
+        }
+        
+    </style>
+
+    <style>
+        body {
+          position: relative;
+        }
+
+        *:not(pre) a > code {
+            color: #210DDC;
+        }
+
+        *:not(pre) > code {
+            background-color: inherit;
+            border: none;
+            font-weight: normal;
+        }
+
+        body div#toc li,
+        body div#toc2 li {
+            list-style-type: none;
+        }
+
+        div#doc-content {
+            margin-top: 30px;
+        }
+
+        div.documentation-page table.frame-all {
+            border-left: none;
+            border-right: none;
+        }
+
+        body div#toc li.active-region:before,
+        body div#toc2 li.active-region:before {
+            content: "\00BB \0020";
+            margin-left: -12px;
+        }
+
+        body div#toc li a.active,
+        body div#toc2 li a.active {
+            color: red;
+        }
+
+        body div#toc.toc,
+        body div#toc.toc2 {
+            position: fixed;
+            left: auto;
+            padding-top: 60px;
+            z-index: auto;
+            background-color: white;
+            border-left-color: #eee;
+            border-left-style: solid;
+            border-right: none;
+            min-height: 2000px;
+        }
+
+    </style>
+
+    <style>
+
+        @media only screen and (min-width: 768px) {
+          #toc.toc2 ul ul { margin-left: -10px; }
+        }
+
+
+        body div#toc .tocify-subheader ul {
+            margin-bottom: 0px;
+        }
+
+        body div#toc .tocify-subheader li {
+            font-size: 14px;
+        }
+        .tocify li.tocify-item, .tocify ul.tocify-item {
+            line-height: 24px;
+        }
+
+        body div#toc li.tocify-item.active:before,
+        body div#toc2 li.tocify-item.active:before {
+            content: "\00BB \0020";
+            margin-left: -12px;
+        }
+
+        body div#toc li.tocify-item.active a,
+        body div#toc2 li.tocify-item.active a {
+            color: red;
+        }
+    </style>
+
+    <style>
+        footer {
+            margin-top: 1000px;
+        }
+    </style>
+
+    <style>
+        /* overriding colony.css stylesheet */
+        .literalblock pre, .literalblock pre[class], .listingblock pre, 
.listingblock pre[class] {
+           /*padding: 1.25em 1.5625em 1.125em 1.5625em;*/
+           padding: 0.3em 0.6em 0.25em 0.6em;
+        }
+        @media only screen and (min-width: 1280px)
+        #toc.toc2 {
+          /*width: 20em;*/
+          width: 25em;
+        }
+
+        #doc-content a {
+          color: #210DDC;
+        }
+
+        .top-bar h1 {
+            border-bottom: inherit;
+        }
+
+        h2 {
+          margin-top: 80px;
+        }
+        h3 {
+          margin-top: 40px;
+        }
+        h4,h5 {
+          margin-top: 30px;
+        }
+
+        .admonitionblock.tip > table td.content {
+            color: #10B061;
+        }
+        .admonitionblock.note > table td.content {
+            color: #B509AB;
+        }
+        .admonitionblock.important > table td.content {
+            color: #D5810A;
+        }
+
+        .admonitionblock .title {
+            font-size: larger;
+            font-style: italic;
+        }
+
+        .imageblock img {
+            margin-bottom: 10px;
+        }
+    </style>
+
+    <style>
+        /* from http://ben.balter.com/2014/03/13/pages-anchor-links/ */
+        .header-link {
+          position: absolute;
+          left: -0.5em;
+          opacity: 0;
+
+          /*
+          -webkit-transition: opacity 0.2s ease-in-out 0.1s;
+          -moz-transition: opacity 0.2s ease-in-out 0.1s;
+          -ms-transition: opacity 0.2s ease-in-out 0.1s;
+          */
+        }
+
+        h2:hover .header-link,
+        h3:hover .header-link,
+        h4:hover .header-link,
+        h5:hover .header-link,
+        h6:hover .header-link {
+          opacity: 1;
+        }
+    </style>
+
+    <style>
+        .top-bar
+        {
+            -webkit-transition-duration: .5s;
+            transition-duration: .5s;
+
+            -webkit-transition-timing-function: cubic-bezier( 0.215, 0.610, 
0.355, 1.000 );
+            transition-timing-function: cubic-bezier( 0.215, 0.610, 0.355, 
1.000 );
+
+            -webkit-transition-property: -webkit-transform;
+            transition-property: transform;
+        }
+
+        /*
+        http://osvaldas.info/auto-hide-sticky-header
+        MIT license
+        */
+        .header--hidden
+        {
+            -webkit-transform: translateY( -100% );
+            -ms-transform: translateY( -100% );
+            transform: translateY( -100% );
+
+            transition-duration: .5s;
+            transition-timing-function: cubic-bezier( 0.215, 0.610, 0.355, 
1.000 );
+            -webkit-transition-property: -webkit-transform;
+            transition-property: transform;
+        }
+    </style>
+
+    <style>
+        #doc-content a.guide {
+            color: white;
+        }
+    </style>
+
+    <style>
+        .tocify {
+            margin-top: 80px;
+        }
+    </style>
+
+
+</script>
+
+</head>
+<body>
+
+<<div class="github-fork-ribbon-wrapper right" style="position: fixed;">
+    <div class="github-fork-ribbon">
+        <a href="https://github.com/apache/isis#fork-destination-box";>Fork me 
on GitHub</a>
+    </div>
+</div>
+
+
+<div class="row">
+
+    <div class="fixed contain-to-grid header">
+        <nav class="top-bar" data-topbar role="navigation" style="max-width: 
80rem">
+            <ul class="title-area">
+                <li class="name">
+                    <h1>
+                        <a href="/index.html">Apache Isis&trade;</a>
+                    </h1>
+                </li>
+                <!-- Remove the class "menu-icon" to get rid of menu icon. 
Take out "Menu" to just have icon alone -->
+                <li class="toggle-topbar menu-icon"><a 
href="#"><span>Menu</span></a></li>
+            </ul>
+
+            <section class="top-bar-section">
+                <ul class="right">
+
+                    <li class="has-form">
+                       <FORM class="searchbox navbar-form navbar-right" 
id="searchbox_012614087480249044419:dn-q5gtwxya" 
action="http://www.google.com/cse";>
+                        <div class="row collapse">
+                            <input type="hidden" name="cx" 
value="012614087480249044419:dn-q5gtwxya">
+                            <INPUT type="hidden" name="cof" value="FORID:0">
+                            <INPUT class="form-control" name="q" type="text" 
placeholder="Search">
+                        </div>
+                    </FORM>
+                     </li>
+
+                </ul>
+
+                <!-- Left Nav Section -->
+                <ul class="left">
+
+                    <li><a href="/documentation.html">Documentation</a></li>
+                    <li><a href="/downloads.html">Downloads</a></li>
+                    <li><a href="/help.html">Help</a></li>
+                    <li><a href="/asf.html">@ASF</a></li>
+
+                </ul>
+
+            </section>
+        </nav>
+    </div>
+</div>
+
+<div class="row">
+
+    <div id="doc-content-left" class="large-9 medium-9 columns">
+
+
+        <div id="doc-content">
+          <div class="sect1">
+<h2 id="_ugdnos">1. DataNucleus Object Store</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The DataNucleus Object Store enables domain objects to be persisted to 
relational as well as NoSQL databases.  The object store is implemented using 
<a href="http://datanuclues.org";>DataNucleus</a>.</p>
+</div>
+<div class="paragraph">
+<p>This user guide discuss end-user features, configuration and customization 
of the DataNucleus object store.</p>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+<div class="paragraph">
+<p>DataNucleus as a product also supports the JPA API; Apache Isis is likely 
to also support JPA in the future.</p>
+</div>
+</td>
+</tr>
+</table>
+</div>
+<div class="paragraph">
+<p>Unresolved directive in ugodn.adoc - 
include::_ugbtb_datanucleus_overriding-jdo-annotations.adoc[leveloffset=+1]
+Unresolved directive in ugodn.adoc - 
include::_ugbtb_datanucleus_java8.adoc[leveloffset=+1]</p>
+</div>
+<div class="sect2">
+<h3 id="_other_guides">1.1. Other Guides</h3>
+<div class="paragraph">
+<p>Apache Isis documentation is broken out into a number of user and reference 
guides.</p>
+</div>
+<div class="paragraph">
+<p>The user guides available are:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p><a href="ugfun.html">Fundamentals</a></p>
+</li>
+<li>
+<p><a href="ugvw.html">Wicket viewer</a></p>
+</li>
+<li>
+<p><a href="ugvro.html">Restful Objects viewer</a></p>
+</li>
+<li>
+<p><a href="ugvro.html">DataNucleus object store</a> (this guide)</p>
+</li>
+<li>
+<p><a href="ugsec.html">Security</a></p>
+</li>
+<li>
+<p><a href="ugtst.html">Testing</a></p>
+</li>
+<li>
+<p><a href="ugbtb.html">Beyond the Basics</a></p>
+</li>
+</ul>
+</div>
+<div class="paragraph">
+<p>The reference guides are:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p><a href="rgant.html">Annotations</a></p>
+</li>
+<li>
+<p><a href="rgsvc.html">Domain Services</a></p>
+</li>
+<li>
+<p><a href="rgcfg.html">Configuration Properties</a></p>
+</li>
+<li>
+<p><a href="rgcms.html">Classes, Methods and Schema</a></p>
+</li>
+<li>
+<p><a href="rgmvn.html">Apache Isis Maven plugin</a></p>
+</li>
+<li>
+<p><a href="rgfis.html">Framework Internal Services</a></p>
+</li>
+</ul>
+</div>
+<div class="paragraph">
+<p>The remaining guides are:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p><a href="dg.html">Developers' Guide</a> (how to set up a development 
environment
+for Apache Isis and contribute back to the project)</p>
+</li>
+<li>
+<p><a href="cgcom.html">Committers' Guide</a> (release procedures and related 
practices)</p>
+</li>
+</ul>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_ugodn_overriding-jdo-annotations">2. Overriding JDO Annotations</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The JDO Objectstore (or rather, the underlying DataNucleus implementation) 
builds its own persistence metamodel by reading both annotations on the class 
and also by searching for metadata in XML files. The metadata in the XML files 
takes precedence over the annotations, and so can be used to override metadata 
that is "hard-coded" in annotations.</p>
+</div>
+<div class="paragraph">
+<p>For example, as of 1.9.0 the various <a 
href="http://www.isisaddons.org";>Isis addons</a> modules (not ASF) use schemas 
for each entity. For example, the <code>AuditEntry</code> entity in the <a 
href="http://github.com/isisaddons/isis-module-audit";>audit module</a> is 
annotated as:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="CodeRay highlight"><code data-lang="java"><span 
class="annotation">@javax</span>.jdo.annotations.PersistenceCapable(
+        identityType=IdentityType.DATASTORE,
+        schema = <span class="string"><span 
class="delimiter">&quot;</span><span 
class="content">IsisAddonsAudit</span><span 
class="delimiter">&quot;</span></span>,
+        table=<span class="string"><span class="delimiter">&quot;</span><span 
class="content">AuditEntry</span><span class="delimiter">&quot;</span></span>)
+<span class="directive">public</span> <span class="type">class</span> <span 
class="class">AuditEntry</span> {
+    ...
+}</code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>This will map the <code>AuditEntry</code> class to a table 
<code>&quot;IsisAddonsAudit&quot;.&quot;AuditEntry&quot;</code>; that is using 
a custom schema to own the object.</p>
+</div>
+<div class="paragraph">
+<p>Suppose though that for whatever reason we didn&#8217;t want to use a 
custom schema but would rather use the default. We can override the above 
annotation using a <code>package.jdo</code> file, for example:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="CodeRay highlight"><code data-lang="xml"><span 
class="preprocessor">&lt;?xml version=&quot;1.0&quot; 
encoding=&quot;UTF-8&quot; ?&gt;</span>
+<span class="tag">&lt;jdo</span> <span 
class="attribute-name">xmlns</span>=<span class="string"><span 
class="delimiter">&quot;</span><span 
class="content">http://xmlns.jcp.org/xml/ns/jdo/jdo</span><span 
class="delimiter">&quot;</span></span>
+    <span class="attribute-name">xmlns:xsi</span>=<span class="string"><span 
class="delimiter">&quot;</span><span 
class="content">http://www.w3.org/2001/XMLSchema-instance</span><span 
class="delimiter">&quot;</span></span>
+    <span class="attribute-name">xsi:schemaLocation</span>=<span 
class="string"><span class="delimiter">&quot;</span><span 
class="content">http://xmlns.jcp.org/xml/ns/jdo/jdo</span>
+        <span 
class="content">http://xmlns.jcp.org/xml/ns/jdo/jdo_3_0.xsd</span><span 
class="delimiter">&quot;</span></span> <span 
class="attribute-name">version</span>=<span class="string"><span 
class="delimiter">&quot;</span><span class="content">3.0</span><span 
class="delimiter">&quot;</span></span><span class="tag">&gt;</span>
+    <span class="tag">&lt;package</span> <span 
class="attribute-name">name</span>=<span class="string"><span 
class="delimiter">&quot;</span><span 
class="content">org.isisaddons.module.audit.dom</span><span 
class="delimiter">&quot;</span></span><span class="tag">&gt;</span>
+        <span class="tag">&lt;class</span> <span 
class="attribute-name">name</span>=<span class="string"><span 
class="delimiter">&quot;</span><span class="content">AuditEntry</span><span 
class="delimiter">&quot;</span></span> <span 
class="attribute-name">schema</span>=<span class="string"><span 
class="delimiter">&quot;</span><span class="content">PUBLIC</span><span 
class="delimiter">&quot;</span></span> <span 
class="attribute-name">table</span>=<span class="string"><span 
class="delimiter">&quot;</span><span 
class="content">IsisAddonsAuditEntry</span><span 
class="delimiter">&quot;</span></span><span class="tag">&gt;</span>
+        <span class="tag">&lt;/class&gt;</span>
+    <span class="tag">&lt;/package&gt;</span>
+<span class="tag">&lt;/jdo&gt;</span></code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>This file should be placed can be placed in 
<code>src/main/java/META-INF</code> within your application&#8217;s 
<code>dom</code> module.</p>
+</div>
+<div class="admonitionblock tip">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-tip" title="Tip"></i>
+</td>
+<td class="content">
+<div class="paragraph">
+<p>You can use a mixin action on <a 
href="rgcms.html#_rgcms_classes_mixins_Persistable"><code>Persistable</code></a>
 mixin
+to download the JDO class metadata in XML form.</p>
+</div>
+</td>
+</tr>
+</table>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+<div class="ulist">
+<ul>
+<li>
+<p>The same approach should work for any other JDO metadata, but some 
experimentation might be required.+</p>
+<div class="paragraph">
+<p>For example, in writing up the above example we found that writing 
<code>schema=&quot;&quot;</code> (in an attempt to say, "use the default schema 
for this table") actually caused the original annotation value to be used 
instead.</p>
+</div>
+</li>
+<li>
+<p>Forcing the schema to "PUBLIC" (as in the above example) works, but it 
isn&#8217;t ideal because the name "PUBLIC" is not vendor-neutral (it works for 
HSQLDB, but MS SQL Server uses "dbo" as its default).</p>
+</li>
+<li>
+<p>As of 1.9.0 Apache Isis will automatically (attempt) to create the owning 
schema for a given table if it does not exist. This behaviour can be 
customized, as described in the section on <a 
href="#_ugbtb_decoupling_db-schemas">using modules</a>.</p>
+</li>
+<li>
+<p>You may need to override the entire class metadata rather than individual 
elements; the mixin mentioned above can help here.</p>
+</li>
+</ul>
+</div>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_ugodn_java8">3. Java8</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>DataNucleus 4.x supports Java 7, but can also be used with Java 8, eg for 
streams support against collections managed
+by DataNucleus.</p>
+</div>
+<div class="paragraph">
+<p>Just include within <code>&lt;dependencies&gt;</code> of your 
<code>dom</code> module&#8217;s <code>pom.xml</code>:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="CodeRay highlight"><code data-lang="xml"><span 
class="tag">&lt;dependency&gt;</span>
+    <span class="tag">&lt;groupId&gt;</span>org.datanucleus<span 
class="tag">&lt;/groupId&gt;</span>
+    <span class="tag">&lt;artifactId&gt;</span>datanucleus-java8<span 
class="tag">&lt;/artifactId&gt;</span>
+    <span class="tag">&lt;version&gt;</span>4.2.0-release<span 
class="tag">&lt;/version&gt;</span>t
+<span class="tag">&lt;/dependency&gt;</span></code></pre>
+</div>
+</div>
+<div class="admonitionblock note">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-note" title="Note"></i>
+</td>
+<td class="content">
+<div class="paragraph">
+<p>The DataNucleus website includes a <a 
href="http://www.datanucleus.org/products/accessplatform/compatibility.html";>page</a>
+listing version compatibility of these extensions vis-a-vis the core 
DataNucleus platform.</p>
+</div>
+</td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+        </div>
+
+        <footer>
+          <hr>
+          <p class="small">
+          Copyright &copy; 2010~2016 The Apache&nbsp;Software&nbsp;Foundation, 
licensed under the Apache&nbsp;License,&nbsp;v2.0.
+          <br/>
+          Apache, the Apache feather logo, Apache&nbsp;Isis, and the 
Apache&nbsp;Isis project logo are all trademarks of 
The&nbsp;Apache&nbsp;Software&nbsp;Foundation.
+          </p>
+        </footer>
+
+    </div>
+
+    <div id="doc-content-right" class="large-3 medium-3 xcolumns">
+        <div id="toc" class="toc2">
+            <div class="fallback-toc">
+                <ul class="sectlevel1">
+<li><a href="#_ugdnos">1. DataNucleus Object Store</a>
+<ul class="sectlevel2">
+<li><a href="#_other_guides">1.1. Other Guides</a></li>
+</ul>
+</li>
+<li><a href="#_ugodn_overriding-jdo-annotations">2. Overriding JDO 
Annotations</a></li>
+<li><a href="#_ugodn_java8">3. Java8</a></li>
+</ul>
+            </div>
+        </div>
+    </div>
+
+</div>
+
+
+<script src="../js/foundation/5.5.1/vendor/jquery.js"></script>
+<script src="../js/foundation/5.5.1/foundation.min.js"></script>
+
+
+<link href="../css/jquery.tocify/1.9.0/jquery.tocify.css" rel="stylesheet">
+<script src="../js/jqueryui/1.11.4/jquery-ui.min.js"></script>
+<script src="../js/jquery.tocify/1.9.0/jquery.tocify.js"></script>
+
+
+
+<script type="text/javascript">
+    $(function () {
+        $("#toc").tocify({
+            scrollTo: 50,
+            extendPage: true,
+            context: "#doc-content",
+            highlightOnScroll: true,
+            hashGenerator: "pretty",
+            hideEffect: "slideUp",
+            selectors: "h2,h3,h4,h5"
+        });
+        $(".fallback-toc").hide();
+    });
+</script>
+
+<script type="text/javascript">
+
+  /****
+
+      $(document).foundation();
+
+      $(document).ready(function(){
+        // Cache selectors
+        var lastId,
+            topMenu = $("div#toc ul"),
+            topMenuHeight = 100,
+
+            menuItems = topMenu.find("a"),
+            menuItemsHrefs = menuItems.map(function(){
+              var item = $($(this).attr("href"));
+              if (item.length) { return item; }
+            });
+
+        // Bind click handler to menu items to scroll animation
+        menuItems.click(function(e){
+          var href = $(this).attr("href"),
+              offsetTop = href === "#" ? 0 : 
$(href).offset().top-topMenuHeight+1;
+          $('html, body').stop().animate({
+              scrollTop: offsetTop
+          }, 300);
+
+          e.preventDefault();
+        });
+
+        // Bind to scroll of window
+        $(  window ).scroll(function(){
+
+           // Get container scroll position
+           var fromTop = $(this).scrollTop()+topMenuHeight;
+
+           var cur = menuItemsHrefs.map(function(){
+             if ($(this).offset().top < fromTop)
+               return this;
+           });
+
+           // Get the id of the current element
+           cur = cur[cur.length-1];
+
+           var id = cur && cur.length ? cur[0].id : "";
+
+           if (lastId !== id && id) {
+               scrollTo(id);
+           }
+
+           window.history.pushState({}, "", window.location.origin + 
window.location.pathname + "#" + id);
+        });
+
+        scrollTo = function(id) {
+              lastId = id;
+
+              menuItems
+                .removeClass("active");
+
+              menuItems
+                .parents()
+                .removeClass("active-region");
+
+              menuItems
+                .parents("ul").hide();
+
+              menuItems
+                .filter("[href=#"+id+"]")
+                .addClass("active");
+
+              menuItems
+                .filter("[href=#"+id+"]")
+                .parents("ul").show();
+
+              menuItems
+                .filter("[href=#"+id+"]")
+                .parent().children("ul").show();
+
+              menuItems
+                .filter("[href=#"+id+"]")
+                .parents("li").addClass("active-region");
+
+        }
+      menuItems
+        .removeClass("active");
+
+      menuItems
+        .parents()
+        .removeClass("active-region");
+
+        var syncMenuItem;
+        if(window.location.hash!=="") {
+            var menuItemFor = $.grep(menuItems, function(e) {
+                return e.hash === window.location.hash;
+            });
+            console.log(menuItemFor);
+            if(menuItemFor.length === 1) {
+                syncMenuItem = menuItemFor[0];
+            }
+        }
+
+        if(!syncMenuItem){
+            syncMenuItem = menuItems[0];
+        }
+
+        $(syncMenuItem).click();
+
+      });
+
+    ***/
+
+</script>
+
+<script type="text/javascript">
+
+$(document).ready(function(){
+    if("Documentation" === "DataNucleus Object Store") {
+        console.log( "processing 'Documentation'" );
+
+        
$("#doc-content-left").removeClass("large-9").removeClass("medium-9").addClass("large-12").addClass("medium-12");
+        
$("#doc-content-right").removeClass("large-3").removeClass("medium-3").hide();
+    }
+
+});
+
+</script>
+
+
+<script>
+
+$( document ).ready(function() {
+
+    (function() {
+      $(function() {
+        return $("#doc-content h2, #doc-content h3, #doc-content h4, 
#doc-content h5, #doc-content h6").each(function(i, el) {
+          var $el, icon, id;
+          $el = $(el);
+          id = $el.attr('id');
+          icon = '<i class="fa fa-link"></i>';
+          if (id) {
+            return $el.prepend($("<a />").addClass("header-link").attr("href", 
"#" + id).html(icon));
+          }
+        });
+      });
+    }).call(this);
+
+
+
+       /*
+        http://osvaldas.info/auto-hide-sticky-header
+        MIT license
+       */
+       ;( function( $, window, document, undefined )
+       {
+               'use strict';
+
+               var elSelector          = '.header',
+                       elClassHidden   = 'header--hidden',
+                       throttleTimeout = 500,
+                       $element                = $( elSelector );
+
+               if( !$element.length ) return true;
+
+               var $window                     = $( window ),
+                       wHeight                 = 0,
+                       wScrollCurrent  = 0,
+                       wScrollBefore   = 0,
+                       wScrollDiff             = 0,
+                       $document               = $( document ),
+                       dHeight                 = 0,
+
+                       throttle = function( delay, fn )
+                       {
+                               var last, deferTimer;
+                               return function()
+                               {
+                                       var context = this, args = arguments, 
now = +new Date;
+                                       if( last && now < last + delay )
+                                       {
+                                               clearTimeout( deferTimer );
+                                               deferTimer = setTimeout( 
function(){ last = now; fn.apply( context, args ); }, delay );
+                                       }
+                                       else
+                                       {
+                                               last = now;
+                                               fn.apply( context, args );
+                                       }
+                               };
+                       };
+
+               $window.on( 'scroll', throttle( throttleTimeout, function()
+               {
+                       dHeight                 = $document.height();
+                       wHeight                 = $window.height();
+                       wScrollCurrent  = $window.scrollTop();
+                       wScrollDiff             = wScrollBefore - 
wScrollCurrent;
+
+                       if( wScrollCurrent <= 0 ) // scrolled to the very top; 
element sticks to the top
+                               $element.removeClass( elClassHidden );
+
+                       else if( wScrollDiff > 0 && $element.hasClass( 
elClassHidden ) ) // scrolled up; element slides in
+                               $element.removeClass( elClassHidden );
+
+                       else if( wScrollDiff < 0 ) // scrolled down
+                       {
+                               if( wScrollCurrent + wHeight >= dHeight && 
$element.hasClass( elClassHidden ) ) // scrolled to the very bottom; element 
slides in
+                                       $element.removeClass( elClassHidden );
+
+                               else // scrolled down; element slides out
+                                       $element.addClass( elClassHidden );
+                       }
+
+                       wScrollBefore = wScrollCurrent;
+               }));
+
+       })( jQuery, window, document );
+
+
+});
+</script>
+
+</body>
+</html>

Reply via email to