You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by da...@apache.org on 2014/07/04 16:53:33 UTC

[05/16] git commit: ISIS-833: starting to break out modules

ISIS-833: starting to break out modules

* new (empty) modules:
  - isis-module-audit-jdo; isis-module-background; isis-module-command-jdo; isis-module-devutils; isis-module-publishing-jdo; isis-module-settings;
* renamed o.a.i.core:isis-core-wrapper to o.a.i.module.isis-module-wrapper
* added Javadoc comments to those services already annotated with @DomainService and implemented either in applib or core.runtime:
  - Bulk.InteractionContext; ClassDiscoveryServiceUsingReflections; ClockService; CommandContext; QueryResultsCache; Scratchpad; MementoServiceDefault;
* IsisJdoSupportImpl  now annotated with @DomainService (since part of core) so automatically registered
* EventBusServiceJdo now annotated with @DomainService (since part of core) so automatically registered
* EventBusServiceDefault now marked as deprecated because it has effectively been subsumed by EventBusServiceJdo
* IsisJdoSupport moved from jdo-applib to core-applib; requires update to applib's pom.xml to reference javax.jdo:jdo-api


Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/bf34a19d
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/bf34a19d
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/bf34a19d

Branch: refs/heads/master
Commit: bf34a19d0dcbbebdd09059da8976b2b1cb07eaf6
Parents: 0efc26e
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Fri Jul 4 07:00:24 2014 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Fri Jul 4 07:00:24 2014 +0100

----------------------------------------------------------------------
 core/applib/pom.xml                             |  12 +
 .../org/apache/isis/applib/annotation/Bulk.java |   7 +-
 .../services/bookmark/BookmarkService.java      |   9 +
 .../classdiscovery/ClassDiscoveryService.java   |  10 +
 .../ClassDiscoveryServiceUsingReflections.java  |   9 +
 .../applib/services/clock/ClockService.java     |  10 +
 .../applib/services/command/CommandContext.java |   7 +-
 .../applib/services/memento/MementoService.java |  10 +
 .../queryresultscache/QueryResultsCache.java    |  10 +
 .../applib/services/scratchpad/Scratchpad.java  |  10 +
 .../applib/services/wrapper/WrapperFactory.java |   5 +
 .../xmlsnapshot/XmlSnapshotService.java         |  10 +
 .../applib/service/support/IsisJdoSupport.java  |  83 +++
 core/integtestsupport/pom.xml                   |   4 +-
 .../bookmarks/BookmarkServiceDefault.java       |  11 +-
 core/module-audit-jdo/.gitignore                |   1 +
 core/module-audit-jdo/pom.xml                   | 149 ++++
 .../src/main/java/META-INF/persistence.xml      |  26 +
 core/module-background/.gitignore               |   1 +
 core/module-background/pom.xml                  |  57 ++
 core/module-command-jdo/.gitignore              |   1 +
 core/module-command-jdo/pom.xml                 | 149 ++++
 .../src/main/java/META-INF/persistence.xml      |  26 +
 core/module-devutils/.gitignore                 |   1 +
 core/module-devutils/applib/.gitignore          |   1 +
 core/module-devutils/applib/pom.xml             |  55 ++
 core/module-devutils/impl/.gitignore            |   1 +
 core/module-devutils/impl/pom.xml               |  55 ++
 core/module-devutils/pom.xml                    |  62 ++
 core/module-publishing-jdo/.gitignore           |   1 +
 core/module-publishing-jdo/pom.xml              | 147 ++++
 .../src/main/java/META-INF/persistence.xml      |  26 +
 core/module-settings/.gitignore                 |   1 +
 core/module-settings/applib/.gitignore          |   1 +
 core/module-settings/applib/pom.xml             |  55 ++
 core/module-settings/impl-jdo/.gitignore        |   1 +
 core/module-settings/impl-jdo/pom.xml           | 146 ++++
 .../src/main/java/META-INF/persistence.xml      |  26 +
 core/module-settings/pom.xml                    |  62 ++
 core/module-wrapper/pom.xml                     | 139 ++++
 .../core/wrapper/WrapperFactoryAbstract.java    | 314 ++++++++
 .../isis/core/wrapper/WrapperFactoryCglib.java  |  30 +
 .../core/wrapper/WrapperFactoryDefault.java     |  38 +
 .../core/wrapper/WrapperFactoryJavassist.java   |  30 +
 .../dispatchers/InteractionEventDispatcher.java |  28 +
 .../InteractionEventDispatcherTypeSafe.java     |  34 +
 .../AbstractCollectionInvocationHandler.java    |  92 +++
 .../handlers/CollectionInvocationHandler.java   |  53 ++
 .../handlers/DelegatingInvocationHandler.java   |  32 +
 .../DelegatingInvocationHandlerDefault.java     | 131 ++++
 .../handlers/DomainObjectInvocationHandler.java | 721 +++++++++++++++++++
 .../wrapper/handlers/MapInvocationHandler.java  |  48 ++
 .../wrapper/handlers/ProxyContextHandler.java   |  84 +++
 .../core/wrapper/internal/util/Constants.java   |  52 ++
 .../internal/util/MethodPrefixFinder.java       |  48 ++
 .../isis/core/wrapper/internal/util/Util.java   |  53 ++
 .../core/wrapper/proxy/ProxyInstantiator.java   |  26 +
 .../proxy/ProxyInstantiatorForCglib.java        | 101 +++
 .../proxy/ProxyInstantiatorForJavassist.java    |  77 ++
 .../wrapper/WrapperFactoryAbstractTest.java     | 109 +++
 ...rapperFactoryAbstractTest_wrappedObject.java | 379 ++++++++++
 ...oryAbstractTest_wrappedObject_transient.java | 259 +++++++
 .../WrapperFactoryCglibTest_wrappedObject.java  |  32 +
 ...actoryCglibTest_wrappedObject_transient.java |  73 ++
 ...apperFactoryJavassistTest_wrappedObject.java |  32 +
 ...ryJavassistTest_wrappedObject_transient.java |  31 +
 .../applib/service/support/IsisJdoSupport.java  |  83 ---
 .../service/eventbus/EventBusServiceJdo.java    |  17 +-
 .../service/support/IsisJdoSupportImpl.java     |  15 +-
 core/pom.xml                                    |  14 +-
 .../background/BackgroundServiceDefault.java    |  24 +-
 .../eventbus/EventBusServiceDefault.java        |   4 +
 .../services/memento/MementoServiceDefault.java |   9 +
 .../xmlsnapshot/XmlSnapshotServiceDefault.java  |   9 +
 core/specsupport/pom.xml                        |   4 +-
 core/wrapper/pom.xml                            | 138 ----
 .../core/wrapper/WrapperFactoryAbstract.java    | 314 --------
 .../isis/core/wrapper/WrapperFactoryCglib.java  |  30 -
 .../core/wrapper/WrapperFactoryDefault.java     |  28 -
 .../core/wrapper/WrapperFactoryJavassist.java   |  30 -
 .../dispatchers/InteractionEventDispatcher.java |  28 -
 .../InteractionEventDispatcherTypeSafe.java     |  34 -
 .../AbstractCollectionInvocationHandler.java    |  92 ---
 .../handlers/CollectionInvocationHandler.java   |  53 --
 .../handlers/DelegatingInvocationHandler.java   |  32 -
 .../DelegatingInvocationHandlerDefault.java     | 131 ----
 .../handlers/DomainObjectInvocationHandler.java | 721 -------------------
 .../wrapper/handlers/MapInvocationHandler.java  |  48 --
 .../wrapper/handlers/ProxyContextHandler.java   |  84 ---
 .../core/wrapper/internal/util/Constants.java   |  52 --
 .../internal/util/MethodPrefixFinder.java       |  48 --
 .../isis/core/wrapper/internal/util/Util.java   |  53 --
 .../core/wrapper/proxy/ProxyInstantiator.java   |  26 -
 .../proxy/ProxyInstantiatorForCglib.java        | 101 ---
 .../proxy/ProxyInstantiatorForJavassist.java    |  77 --
 .../wrapper/WrapperFactoryAbstractTest.java     | 109 ---
 ...rapperFactoryAbstractTest_wrappedObject.java | 379 ----------
 ...oryAbstractTest_wrappedObject_transient.java | 259 -------
 .../WrapperFactoryCglibTest_wrappedObject.java  |  32 -
 ...actoryCglibTest_wrappedObject_transient.java |  73 --
 ...apperFactoryJavassistTest_wrappedObject.java |  32 -
 ...ryJavassistTest_wrappedObject_transient.java |  31 -
 .../integtests/pom.xml                          |   4 +-
 .../webapp/pom.xml                              |   4 +-
 .../integtests/pom.xml                          |   4 +-
 .../simple_wicket_restful_jdo/webapp/pom.xml    |   4 +-
 .../quickstart_wicket_restful_jdo/pom.xml       |   2 +-
 .../archetype/simple_wicket_restful_jdo/pom.xml |   2 +-
 108 files changed, 4380 insertions(+), 3158 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/bf34a19d/core/applib/pom.xml
----------------------------------------------------------------------
diff --git a/core/applib/pom.xml b/core/applib/pom.xml
index 85fe0b9..e41bb77 100644
--- a/core/applib/pom.xml
+++ b/core/applib/pom.xml
@@ -84,6 +84,18 @@
             <groupId>org.apache.geronimo.specs</groupId>
             <artifactId>geronimo-jcdi_1.0_spec</artifactId>
         </dependency>
+
+        <!--
+        must be kept consistent with the API bundled by
+        org.datanucleus:datanucleus-accessplatform-jdo-rdbms
+        -->
+        <dependency>
+            <groupId>javax.jdo</groupId>
+            <artifactId>jdo-api</artifactId>
+            <version>3.1-rc1</version>
+        </dependency>
+
+
         <dependency>
             <groupId>org.apache.isis.core</groupId>
             <artifactId>isis-core-unittestsupport</artifactId>

http://git-wip-us.apache.org/repos/asf/isis/blob/bf34a19d/core/applib/src/main/java/org/apache/isis/applib/annotation/Bulk.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/annotation/Bulk.java b/core/applib/src/main/java/org/apache/isis/applib/annotation/Bulk.java
index e424a24..d016c3b 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/annotation/Bulk.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/annotation/Bulk.java
@@ -60,7 +60,12 @@ public @interface Bulk {
     AppliesTo value() default AppliesTo.BULK_AND_REGULAR;
     
     /**
-     * Register this as a service in order to access context information about a bulk action invocation.
+     * This service provides access to context information about a bulk action invocation.
+     *
+     * <p>
+     * Because this service is annotated with {@link org.apache.isis.applib.annotation.DomainService} and is
+     * implemented in the applib, it is automatically registered and available for use; no configuration is required.
+     * </p>
      */
     @DomainService
     @RequestScoped

http://git-wip-us.apache.org/repos/asf/isis/blob/bf34a19d/core/applib/src/main/java/org/apache/isis/applib/services/bookmark/BookmarkService.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/bookmark/BookmarkService.java b/core/applib/src/main/java/org/apache/isis/applib/services/bookmark/BookmarkService.java
index 0de2213..6dda621 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/bookmark/BookmarkService.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/bookmark/BookmarkService.java
@@ -22,6 +22,15 @@ import org.apache.isis.applib.annotation.Named;
 import org.apache.isis.applib.annotation.NotInServiceMenu;
 import org.apache.isis.applib.annotation.Programmatic;
 
+/**
+ * This service enables a serializable &quot;bookmark&quot; to be created for an entity.
+ *
+ * <p>
+ * Because an implementation of this service (<tt>BookmarkServiceDefault</tt>) is annotated with
+ * {@link org.apache.isis.applib.annotation.DomainService} and is implemented in the core.metamodel, it is
+ * automatically registered and available for use; no configuration is required.
+ * </p>
+ */
 @Named("Bookmarks")
 public interface BookmarkService {
 

http://git-wip-us.apache.org/repos/asf/isis/blob/bf34a19d/core/applib/src/main/java/org/apache/isis/applib/services/classdiscovery/ClassDiscoveryService.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/classdiscovery/ClassDiscoveryService.java b/core/applib/src/main/java/org/apache/isis/applib/services/classdiscovery/ClassDiscoveryService.java
index 0f32664..9989cd6 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/classdiscovery/ClassDiscoveryService.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/classdiscovery/ClassDiscoveryService.java
@@ -22,6 +22,16 @@ import java.util.Set;
 
 import org.apache.isis.applib.annotation.Programmatic;
 
+/**
+ * This utility service supports the dynamic discovery of classes from the classpath.  One service that uses this
+ * is the <tt>FixtureScripts</tt> domain service.
+ *
+ * <p>
+ * Because an implementation of this service (<tt>ClassDiscoveryServiceUsingReflections</tt> is annotated with
+ * {@link org.apache.isis.applib.annotation.DomainService} and is implemented in the core applib, it is automatically
+ * registered and available for use; no configuration is required.
+ * </p>
+ */
 public interface ClassDiscoveryService {
 
     @Programmatic

http://git-wip-us.apache.org/repos/asf/isis/blob/bf34a19d/core/applib/src/main/java/org/apache/isis/applib/services/classdiscovery/ClassDiscoveryServiceUsingReflections.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/classdiscovery/ClassDiscoveryServiceUsingReflections.java b/core/applib/src/main/java/org/apache/isis/applib/services/classdiscovery/ClassDiscoveryServiceUsingReflections.java
index a2a52e6..2d820db 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/classdiscovery/ClassDiscoveryServiceUsingReflections.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/classdiscovery/ClassDiscoveryServiceUsingReflections.java
@@ -27,6 +27,15 @@ import org.reflections.util.ClasspathHelper;
 import org.apache.isis.applib.AbstractService;
 import org.apache.isis.applib.annotation.DomainService;
 
+/**
+ * This utility service supports the dynamic discovery of classes from the classpath.  One service that uses this
+ * is the <tt>FixtureScripts</tt> domain service.
+ *
+ * <p>
+ * Because this service is annotated with {@link org.apache.isis.applib.annotation.DomainService} and is
+ * implemented in the core applib, it is automatically registered and available for use; no configuration is required.
+ * </p>
+ */
 @DomainService
 public class ClassDiscoveryServiceUsingReflections
             extends AbstractService 

http://git-wip-us.apache.org/repos/asf/isis/blob/bf34a19d/core/applib/src/main/java/org/apache/isis/applib/services/clock/ClockService.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/clock/ClockService.java b/core/applib/src/main/java/org/apache/isis/applib/services/clock/ClockService.java
index dd4a775..7c2ab95 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/clock/ClockService.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/clock/ClockService.java
@@ -24,6 +24,16 @@ import org.apache.isis.applib.annotation.DomainService;
 import org.apache.isis.applib.annotation.Programmatic;
 import org.apache.isis.applib.clock.Clock;
 
+/**
+ * This service allows an application to be decoupled from the system time.  The most common use case is in support of
+ * testing scenarios, to &quot;mock the clock&quot;.  Use of this service also opens up the use of centralized
+ * co-ordinated time management through a centralized time service.
+ *
+ * <p>
+ * Because this service is annotated with {@link org.apache.isis.applib.annotation.DomainService} and is
+ * implemented in the core applib, it is automatically registered and available for use; no configuration is required.
+ * </p>
+ */
 @DomainService
 public class ClockService {
     

http://git-wip-us.apache.org/repos/asf/isis/blob/bf34a19d/core/applib/src/main/java/org/apache/isis/applib/services/command/CommandContext.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/command/CommandContext.java b/core/applib/src/main/java/org/apache/isis/applib/services/command/CommandContext.java
index 913c26e..5d15b40 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/command/CommandContext.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/command/CommandContext.java
@@ -25,7 +25,12 @@ import org.apache.isis.applib.annotation.DomainService;
 import org.apache.isis.applib.annotation.Programmatic;
 
 /**
- * Register this as a service in order to access context information about any {@link Command}.
+ * This service provides access to context information about any {@link Command}.
+ *
+ * <p>
+ * Because this service is annotated with {@link org.apache.isis.applib.annotation.DomainService} and is
+ * implemented in the core applib, it is automatically registered and available for use; no configuration is required.
+ * </p>
  */
 @DomainService
 @RequestScoped

http://git-wip-us.apache.org/repos/asf/isis/blob/bf34a19d/core/applib/src/main/java/org/apache/isis/applib/services/memento/MementoService.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/memento/MementoService.java b/core/applib/src/main/java/org/apache/isis/applib/services/memento/MementoService.java
index e3b7a05..3ee8505 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/memento/MementoService.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/memento/MementoService.java
@@ -21,6 +21,16 @@ import java.util.Set;
 import org.apache.isis.applib.annotation.Programmatic;
 import org.apache.isis.applib.services.bookmark.Bookmark;
 
+/**
+ * This service provides a mechanism by which a serializable memento of arbitrary state can be created.  Most
+ * commonly this is in support of implementing the {@link org.apache.isis.applib.ViewModel} interface.
+ *
+ * <p>
+ * Because an implementation of this service (<tt>MementoServiceDefault</tt>) is annotated with
+ * {@link org.apache.isis.applib.annotation.DomainService} and is implemented in the core runtime, it is automatically
+ * registered and available for use; no configuration is required.
+ * </p>
+ */
 public interface MementoService {
 
     public static interface Memento {

http://git-wip-us.apache.org/repos/asf/isis/blob/bf34a19d/core/applib/src/main/java/org/apache/isis/applib/services/queryresultscache/QueryResultsCache.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/queryresultscache/QueryResultsCache.java b/core/applib/src/main/java/org/apache/isis/applib/services/queryresultscache/QueryResultsCache.java
index 5035ff5..fb918d9 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/queryresultscache/QueryResultsCache.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/queryresultscache/QueryResultsCache.java
@@ -30,6 +30,16 @@ import org.slf4j.LoggerFactory;
 import org.apache.isis.applib.annotation.DomainService;
 import org.apache.isis.applib.annotation.Programmatic;
 
+/**
+ * This service provides a mechanism by which idempotent query results can be cached for the duration of an interaction.
+ * Most commonly this allows otherwise &quot;naive&quot; - eg that makes a repository call many times within a loop - to
+ * be performance tuned.  The benefit is that the algorithm of the business logic can remain easy to understand.
+ *
+ * <p>
+ * Because this service is annotated with {@link org.apache.isis.applib.annotation.DomainService} and is
+ * implemented in the applib, it is automatically registered and available for use; no configuration is required.
+ * </p>
+ */
 @DomainService
 @RequestScoped
 public class QueryResultsCache {

http://git-wip-us.apache.org/repos/asf/isis/blob/bf34a19d/core/applib/src/main/java/org/apache/isis/applib/services/scratchpad/Scratchpad.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/scratchpad/Scratchpad.java b/core/applib/src/main/java/org/apache/isis/applib/services/scratchpad/Scratchpad.java
index 65017e2..999f7e6 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/scratchpad/Scratchpad.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/scratchpad/Scratchpad.java
@@ -27,6 +27,16 @@ import com.google.common.collect.Maps;
 import org.apache.isis.applib.annotation.DomainService;
 import org.apache.isis.applib.annotation.Programmatic;
 
+/**
+ * This service provides a mechanism to interchange information between multiple objects invoked in the same
+ * interaction.  Most commonly this will be as the result of invoking a {@link org.apache.isis.applib.annotation.Bulk}
+ * action.
+ *
+ * <p>
+ * Because this service is annotated with {@link org.apache.isis.applib.annotation.DomainService} and is
+ * implemented in the core applib, it is automatically registered and available for use; no configuration is required.
+ * </p>
+ */
 @DomainService
 @RequestScoped
 public class Scratchpad {

http://git-wip-us.apache.org/repos/asf/isis/blob/bf34a19d/core/applib/src/main/java/org/apache/isis/applib/services/wrapper/WrapperFactory.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/wrapper/WrapperFactory.java b/core/applib/src/main/java/org/apache/isis/applib/services/wrapper/WrapperFactory.java
index 4a8a452..31f5420 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/wrapper/WrapperFactory.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/wrapper/WrapperFactory.java
@@ -59,6 +59,11 @@ import org.apache.isis.applib.services.wrapper.listeners.InteractionListener;
  * 
  * <p>
  * An exception will be thrown if any other methods are thrown.
+ *
+ * <p>
+ * An implementation of this service (<tt>WrapperFactoryDefault</tt>) can be registered by including
+ * <tt>o.a.i.module:isis-module-wrapper</tt> on the classpath; no further configuration is required.
+ * </p>
  */
 @Hidden
 public interface WrapperFactory {

http://git-wip-us.apache.org/repos/asf/isis/blob/bf34a19d/core/applib/src/main/java/org/apache/isis/applib/services/xmlsnapshot/XmlSnapshotService.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/xmlsnapshot/XmlSnapshotService.java b/core/applib/src/main/java/org/apache/isis/applib/services/xmlsnapshot/XmlSnapshotService.java
index 759539d..f1c8974 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/xmlsnapshot/XmlSnapshotService.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/xmlsnapshot/XmlSnapshotService.java
@@ -21,6 +21,16 @@ import org.w3c.dom.Element;
 
 import org.apache.isis.applib.annotation.Programmatic;
 
+/**
+ * This service allows an XML document to be generated capturing the data of a root entity and specified related
+ * entities.  This XML can be used for various purposes, such as mail merge/reporting, or adhoc auditing.
+ *
+ * <p>
+ * Because an implementation of this service (<tt>XmlSnapshotServiceDefault</tt>) is annotated with
+ * {@link org.apache.isis.applib.annotation.DomainService} and is implemented in the core runtime, it is automatically
+ * registered and available for use; no configuration is required.
+ * </p>
+ */
 public interface XmlSnapshotService {
 
     public interface Snapshot {

http://git-wip-us.apache.org/repos/asf/isis/blob/bf34a19d/core/applib/src/main/java/org/apache/isis/objectstore/jdo/applib/service/support/IsisJdoSupport.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/objectstore/jdo/applib/service/support/IsisJdoSupport.java b/core/applib/src/main/java/org/apache/isis/objectstore/jdo/applib/service/support/IsisJdoSupport.java
new file mode 100644
index 0000000..23faeb2
--- /dev/null
+++ b/core/applib/src/main/java/org/apache/isis/objectstore/jdo/applib/service/support/IsisJdoSupport.java
@@ -0,0 +1,83 @@
+/*
+ *  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.
+ */
+
+package org.apache.isis.objectstore.jdo.applib.service.support;
+
+import java.util.Collection;
+import java.util.List;
+import java.util.Map;
+
+import javax.jdo.PersistenceManager;
+
+import org.apache.isis.applib.annotation.Programmatic;
+
+/**
+ * Service that provide a number of workarounds when using JDO/DataNucleus. 
+ */
+public interface IsisJdoSupport {
+
+    /**
+     * Force a reload (corresponding to the JDO <tt>PersistenceManager</tt>'s <tt>refresh()</tt> method)
+     * of a domain objects.
+     * 
+     * <p>
+     * In fact, this may just reset the lazy-load state of the domain object, but the effect is the same: 
+     * to cause the object's state to be reloaded from the database.
+     * 
+     * <p>
+     * The particular example that led to this method being added was a 1:m bidirectional relationship,
+     * analogous to <tt>Customer <-> * Order</tt>.  Persisting the child <tt>Order</tt> object did not cause
+     * the parent <tt>Customer</tt>'s collection of orders to be updated.  In fact, JDO does not make any
+     * such guarantee to do so.  Options are therefore either to maintain the collection in code, or to
+     * refresh the parent.
+     */
+    @Programmatic
+    <T> T refresh(T domainObject);
+    
+    @Programmatic
+    void ensureLoaded(Collection<?> collectionOfDomainObjects);
+    
+    @Programmatic
+    PersistenceManager getJdoPersistenceManager();
+
+    @Programmatic
+    List<Map<String, Object>> executeSql(String sql);
+
+    @Programmatic
+    Integer executeUpdate(String sql);
+
+    /**
+     * Force the deletion of all instances of the specified class.
+     * 
+     * <p>
+     * Note: this is intended primarily for testing purposes, eg clearing existing data as part of
+     * installing fixtures.  It will generate a <tt>SQL DELETE</tt> for each instance.  To perform
+     * a bulk deletion with a single <tt>SQL DELETE</tt>, use {@link #executeUpdate(String)}.  
+     * 
+     * <p>
+     * Implementation note: It can occasionally be the case that Isis' internal adapter for the domain object is
+     * still in memory.  JDO/DataNucleus seems to bump up the version of the object prior to its deletion, 
+     * which under normal circumstances would cause Isis to throw a concurrency exception.  Therefore
+     * To prevent this from happening (ie to <i>force</i> the deletion of all instances), concurrency checking
+     * is temporarily disabled while this method is performed. 
+     */
+    @Programmatic
+    void deleteAll(Class<?>... pcClasses);
+
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/bf34a19d/core/integtestsupport/pom.xml
----------------------------------------------------------------------
diff --git a/core/integtestsupport/pom.xml b/core/integtestsupport/pom.xml
index 48bc875..708e65d 100644
--- a/core/integtestsupport/pom.xml
+++ b/core/integtestsupport/pom.xml
@@ -118,8 +118,8 @@
 		</dependency>
 
         <dependency>
-            <groupId>org.apache.isis.core</groupId>
-            <artifactId>isis-core-wrapper</artifactId>
+            <groupId>org.apache.isis.module</groupId>
+            <artifactId>isis-module-wrapper</artifactId>
         </dependency>
 
         <dependency>

http://git-wip-us.apache.org/repos/asf/isis/blob/bf34a19d/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/bookmarks/BookmarkServiceDefault.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/bookmarks/BookmarkServiceDefault.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/bookmarks/BookmarkServiceDefault.java
index da4b478..daa4370 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/bookmarks/BookmarkServiceDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/bookmarks/BookmarkServiceDefault.java
@@ -27,14 +27,21 @@ import org.apache.isis.core.metamodel.adapter.DomainObjectServices;
 import org.apache.isis.core.metamodel.adapter.DomainObjectServicesAware;
 import org.apache.isis.core.runtime.persistence.ObjectNotFoundException;
 
+/**
+ * This service enables a serializable &quot;bookmark&quot; to be created for an entity.
+ *
+ * <p>
+ * Because this service is annotated with {@link org.apache.isis.applib.annotation.DomainService} and is
+ * implemented in the core.metamodel, it is automatically registered and available for use; no configuration is required.
+ * </p>
+ */
 @DomainService
 public class BookmarkServiceDefault implements BookmarkService, DomainObjectServicesAware {
 
     private DomainObjectServices domainObjectServices;
     
     /**
-     * Contributed action contributed to
-     * any class that implements {@link BookmarkHolder}.
+     * Contributed action contributed to any class that implements {@link BookmarkHolder}.
      * 
      * <p>
      * If required, applications can suppress by subclassing and annotating the

http://git-wip-us.apache.org/repos/asf/isis/blob/bf34a19d/core/module-audit-jdo/.gitignore
----------------------------------------------------------------------
diff --git a/core/module-audit-jdo/.gitignore b/core/module-audit-jdo/.gitignore
new file mode 100644
index 0000000..a48e45b
--- /dev/null
+++ b/core/module-audit-jdo/.gitignore
@@ -0,0 +1 @@
+/target-ide

http://git-wip-us.apache.org/repos/asf/isis/blob/bf34a19d/core/module-audit-jdo/pom.xml
----------------------------------------------------------------------
diff --git a/core/module-audit-jdo/pom.xml b/core/module-audit-jdo/pom.xml
new file mode 100644
index 0000000..bf23a69
--- /dev/null
+++ b/core/module-audit-jdo/pom.xml
@@ -0,0 +1,149 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  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.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+	<modelVersion>4.0.0</modelVersion>
+
+	<parent>
+		<groupId>org.apache.isis.core</groupId>
+		<artifactId>isis</artifactId>
+        <version>1.6.0-SNAPSHOT</version>
+	</parent>
+
+    <groupId>org.apache.isis.module</groupId>
+	<artifactId>isis-module-audit-jdo</artifactId>
+
+	<name>Isis Module: Audit (JDO Implementation)</name>
+	<description>
+		AuditingService implementation that persists audit entries to 
+        database (via JDO objectstore).
+	</description>
+
+	<properties>
+        <siteBaseDir>..</siteBaseDir>
+		<relativeUrl>module-audit/</relativeUrl>
+	</properties>
+
+    <url>http://isis.apache.org/${relativeUrl}</url>
+
+	<build>
+        <resources>
+            <resource>
+                <filtering>false</filtering>
+                <directory>src/main/resources</directory>
+            </resource>
+            <resource>
+                <filtering>false</filtering>
+                <directory>src/main/java</directory>
+                <includes>
+                    <include>**</include>
+                </includes>
+                <excludes>
+                    <exclude>**/*.java</exclude>
+                </excludes>
+            </resource>
+        </resources>
+		<plugins>
+            <plugin>
+                <groupId>org.datanucleus</groupId>
+                <artifactId>datanucleus-maven-plugin</artifactId>
+                <version>${datanucleus-maven-plugin.version}</version>
+                <configuration>
+                	<fork>false</fork>
+                    <verbose>true</verbose>
+                </configuration>
+                <executions>
+                    <execution>
+                        <phase>compile</phase>
+                        <goals>
+                            <goal>enhance</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+		</plugins>
+		<pluginManagement>
+			<plugins>
+				<!--This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself.-->
+				<plugin>
+					<groupId>org.eclipse.m2e</groupId>
+					<artifactId>lifecycle-mapping</artifactId>
+					<version>1.0.0</version>
+					<configuration>
+						<lifecycleMappingMetadata>
+							<pluginExecutions>
+								<pluginExecution>
+									<pluginExecutionFilter>
+										<groupId>
+											org.datanucleus
+										</groupId>
+										<artifactId>
+											datanucleus-maven-plugin
+										</artifactId>
+										<versionRange>
+											[3.2.0-release,)
+										</versionRange>
+										<goals>
+											<goal>enhance</goal>
+										</goals>
+									</pluginExecutionFilter>
+									<action>
+										<ignore />
+									</action>
+								</pluginExecution>
+							</pluginExecutions>
+						</lifecycleMappingMetadata>
+					</configuration>
+				</plugin>
+			</plugins>
+		</pluginManagement>
+	</build>
+
+	<dependencies>
+        <dependency>
+            <groupId>org.apache.isis.core</groupId>
+            <artifactId>isis-core-applib</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.apache.isis.core</groupId>
+            <artifactId>isis-core-unittestsupport</artifactId>
+            <scope>test</scope>
+        </dependency>
+        
+        <dependency>
+          <groupId>org.slf4j</groupId>
+          <artifactId>slf4j-api</artifactId>
+        </dependency>
+        
+		<!-- DataNucleus (jdo-api, and for enhancer) -->
+        <dependency>
+            <groupId>org.datanucleus</groupId>
+            <artifactId>datanucleus-accessplatform-jdo-rdbms</artifactId>
+            <type>pom</type>
+        </dependency>
+        <dependency>
+            <groupId>org.datanucleus</groupId>
+            <artifactId>datanucleus-jodatime</artifactId>
+        </dependency>
+
+   </dependencies>
+
+   
+</project>

http://git-wip-us.apache.org/repos/asf/isis/blob/bf34a19d/core/module-audit-jdo/src/main/java/META-INF/persistence.xml
----------------------------------------------------------------------
diff --git a/core/module-audit-jdo/src/main/java/META-INF/persistence.xml b/core/module-audit-jdo/src/main/java/META-INF/persistence.xml
new file mode 100644
index 0000000..ded7c39
--- /dev/null
+++ b/core/module-audit-jdo/src/main/java/META-INF/persistence.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  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.
+-->
+<persistence xmlns="http://java.sun.com/xml/ns/persistence"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd" version="1.0">
+
+    <persistence-unit name="isis-module-audit-jdo">
+    </persistence-unit>
+</persistence>

http://git-wip-us.apache.org/repos/asf/isis/blob/bf34a19d/core/module-background/.gitignore
----------------------------------------------------------------------
diff --git a/core/module-background/.gitignore b/core/module-background/.gitignore
new file mode 100644
index 0000000..a48e45b
--- /dev/null
+++ b/core/module-background/.gitignore
@@ -0,0 +1 @@
+/target-ide

http://git-wip-us.apache.org/repos/asf/isis/blob/bf34a19d/core/module-background/pom.xml
----------------------------------------------------------------------
diff --git a/core/module-background/pom.xml b/core/module-background/pom.xml
new file mode 100644
index 0000000..2e3d055
--- /dev/null
+++ b/core/module-background/pom.xml
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  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.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+	<modelVersion>4.0.0</modelVersion>
+
+	<parent>
+		<groupId>org.apache.isis.core</groupId>
+		<artifactId>isis</artifactId>
+        <version>1.6.0-SNAPSHOT</version>
+	</parent>
+
+    <groupId>org.apache.isis.module</groupId>
+	<artifactId>isis-module-background</artifactId>
+
+	<name>Isis Module: Background</name>
+	<description>
+		BackgroundService implementation to enable apps to schedule actions
+        be run that run asynchronously (eg using a Quartz scheduler).
+	</description>
+
+	<properties>
+        <siteBaseDir>..</siteBaseDir>
+		<relativeUrl>module-background/</relativeUrl>
+	</properties>
+
+    <url>http://isis.apache.org/${relativeUrl}</url>
+
+	<dependencies>
+        <dependency>
+            <groupId>org.apache.isis.core</groupId>
+            <artifactId>isis-core-applib</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.isis.core</groupId>
+            <artifactId>isis-core-unittestsupport</artifactId>
+            <scope>test</scope>
+        </dependency>
+   </dependencies>
+
+</project>

http://git-wip-us.apache.org/repos/asf/isis/blob/bf34a19d/core/module-command-jdo/.gitignore
----------------------------------------------------------------------
diff --git a/core/module-command-jdo/.gitignore b/core/module-command-jdo/.gitignore
new file mode 100644
index 0000000..a48e45b
--- /dev/null
+++ b/core/module-command-jdo/.gitignore
@@ -0,0 +1 @@
+/target-ide

http://git-wip-us.apache.org/repos/asf/isis/blob/bf34a19d/core/module-command-jdo/pom.xml
----------------------------------------------------------------------
diff --git a/core/module-command-jdo/pom.xml b/core/module-command-jdo/pom.xml
new file mode 100644
index 0000000..702ec31
--- /dev/null
+++ b/core/module-command-jdo/pom.xml
@@ -0,0 +1,149 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  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.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+	<modelVersion>4.0.0</modelVersion>
+
+	<parent>
+		<groupId>org.apache.isis.core</groupId>
+		<artifactId>isis</artifactId>
+        <version>1.6.0-SNAPSHOT</version>
+	</parent>
+
+    <groupId>org.apache.isis.module</groupId>
+	<artifactId>isis-module-command-jdo</artifactId>
+
+	<name>Isis Module: Command (JDO Implementation)</name>
+	<description>
+		CommandService and BackgroundCommandService implementations that
+        persist commands to database (via JDO objectstore) for profiling and
+        to support background command execution.
+	</description>
+
+	<properties>
+        <siteBaseDir>..</siteBaseDir>
+		<relativeUrl>module-command/</relativeUrl>
+	</properties>
+
+    <url>http://isis.apache.org/${relativeUrl}</url>
+
+	<build>
+        <resources>
+            <resource>
+                <filtering>false</filtering>
+                <directory>src/main/resources</directory>
+            </resource>
+            <resource>
+                <filtering>false</filtering>
+                <directory>src/main/java</directory>
+                <includes>
+                    <include>**</include>
+                </includes>
+                <excludes>
+                    <exclude>**/*.java</exclude>
+                </excludes>
+            </resource>
+        </resources>
+		<plugins>
+            <plugin>
+                <groupId>org.datanucleus</groupId>
+                <artifactId>datanucleus-maven-plugin</artifactId>
+                <version>${datanucleus-maven-plugin.version}</version>
+                <configuration>
+                	<fork>false</fork>
+                    <verbose>true</verbose>
+                </configuration>
+                <executions>
+                    <execution>
+                        <phase>compile</phase>
+                        <goals>
+                            <goal>enhance</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+		</plugins>
+		<pluginManagement>
+			<plugins>
+				<!--This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself.-->
+				<plugin>
+					<groupId>org.eclipse.m2e</groupId>
+					<artifactId>lifecycle-mapping</artifactId>
+					<version>1.0.0</version>
+					<configuration>
+						<lifecycleMappingMetadata>
+							<pluginExecutions>
+								<pluginExecution>
+									<pluginExecutionFilter>
+										<groupId>
+											org.datanucleus
+										</groupId>
+										<artifactId>
+											datanucleus-maven-plugin
+										</artifactId>
+										<versionRange>
+											[3.2.0-release,)
+										</versionRange>
+										<goals>
+											<goal>enhance</goal>
+										</goals>
+									</pluginExecutionFilter>
+									<action>
+										<ignore />
+									</action>
+								</pluginExecution>
+							</pluginExecutions>
+						</lifecycleMappingMetadata>
+					</configuration>
+				</plugin>
+			</plugins>
+		</pluginManagement>
+	</build>
+
+	<dependencies>
+        <dependency>
+            <groupId>org.apache.isis.core</groupId>
+            <artifactId>isis-core-applib</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.apache.isis.core</groupId>
+            <artifactId>isis-core-unittestsupport</artifactId>
+            <scope>test</scope>
+        </dependency>
+        
+        <dependency>
+          <groupId>org.slf4j</groupId>
+          <artifactId>slf4j-api</artifactId>
+        </dependency>
+        
+		<!-- DataNucleus (jdo-api, and for enhancer) -->
+        <dependency>
+            <groupId>org.datanucleus</groupId>
+            <artifactId>datanucleus-accessplatform-jdo-rdbms</artifactId>
+            <type>pom</type>
+        </dependency>
+        <dependency>
+            <groupId>org.datanucleus</groupId>
+            <artifactId>datanucleus-jodatime</artifactId>
+        </dependency>
+
+   </dependencies>
+
+</project>

http://git-wip-us.apache.org/repos/asf/isis/blob/bf34a19d/core/module-command-jdo/src/main/java/META-INF/persistence.xml
----------------------------------------------------------------------
diff --git a/core/module-command-jdo/src/main/java/META-INF/persistence.xml b/core/module-command-jdo/src/main/java/META-INF/persistence.xml
new file mode 100644
index 0000000..e6b83a4
--- /dev/null
+++ b/core/module-command-jdo/src/main/java/META-INF/persistence.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  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.
+-->
+<persistence xmlns="http://java.sun.com/xml/ns/persistence"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd" version="1.0">
+
+    <persistence-unit name="isis-module-command-jdo">
+    </persistence-unit>
+</persistence>

http://git-wip-us.apache.org/repos/asf/isis/blob/bf34a19d/core/module-devutils/.gitignore
----------------------------------------------------------------------
diff --git a/core/module-devutils/.gitignore b/core/module-devutils/.gitignore
new file mode 100644
index 0000000..a48e45b
--- /dev/null
+++ b/core/module-devutils/.gitignore
@@ -0,0 +1 @@
+/target-ide

http://git-wip-us.apache.org/repos/asf/isis/blob/bf34a19d/core/module-devutils/applib/.gitignore
----------------------------------------------------------------------
diff --git a/core/module-devutils/applib/.gitignore b/core/module-devutils/applib/.gitignore
new file mode 100644
index 0000000..a48e45b
--- /dev/null
+++ b/core/module-devutils/applib/.gitignore
@@ -0,0 +1 @@
+/target-ide

http://git-wip-us.apache.org/repos/asf/isis/blob/bf34a19d/core/module-devutils/applib/pom.xml
----------------------------------------------------------------------
diff --git a/core/module-devutils/applib/pom.xml b/core/module-devutils/applib/pom.xml
new file mode 100644
index 0000000..5df558c
--- /dev/null
+++ b/core/module-devutils/applib/pom.xml
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  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.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+	<modelVersion>4.0.0</modelVersion>
+
+	<parent>
+		<groupId>org.apache.isis.module</groupId>
+		<artifactId>isis-module-devutils</artifactId>
+        <version>1.6.0-SNAPSHOT</version>
+	</parent>
+
+	<artifactId>isis-module-devutils-applib</artifactId>
+
+	<name>Isis Module: Developer Utilities applib</name>
+	<description>
+		API for the Developer Utilities module
+	</description>
+
+	<properties>
+        <siteBaseDir>../..</siteBaseDir>
+		<relativeUrl>module-devutils/applib/</relativeUrl>
+	</properties>
+
+    <url>http://isis.apache.org/${relativeUrl}</url>
+
+	<dependencies>
+        <dependency>
+            <groupId>org.apache.isis.core</groupId>
+            <artifactId>isis-core-applib</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.isis.core</groupId>
+            <artifactId>isis-core-unittestsupport</artifactId>
+            <scope>test</scope>
+        </dependency>
+   </dependencies>
+
+</project>

http://git-wip-us.apache.org/repos/asf/isis/blob/bf34a19d/core/module-devutils/impl/.gitignore
----------------------------------------------------------------------
diff --git a/core/module-devutils/impl/.gitignore b/core/module-devutils/impl/.gitignore
new file mode 100644
index 0000000..a48e45b
--- /dev/null
+++ b/core/module-devutils/impl/.gitignore
@@ -0,0 +1 @@
+/target-ide

http://git-wip-us.apache.org/repos/asf/isis/blob/bf34a19d/core/module-devutils/impl/pom.xml
----------------------------------------------------------------------
diff --git a/core/module-devutils/impl/pom.xml b/core/module-devutils/impl/pom.xml
new file mode 100644
index 0000000..20c3ad7
--- /dev/null
+++ b/core/module-devutils/impl/pom.xml
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  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.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+	<modelVersion>4.0.0</modelVersion>
+
+	<parent>
+		<groupId>org.apache.isis.module</groupId>
+		<artifactId>isis-module-devutils</artifactId>
+        <version>1.6.0-SNAPSHOT</version>
+	</parent>
+
+	<artifactId>isis-module-devutils-impl</artifactId>
+
+	<name>Isis Module: Developer Utilities implementation</name>
+	<description>
+		Implementation of the Developer Utilities module
+	</description>
+
+	<properties>
+        <siteBaseDir>../..</siteBaseDir>
+		<relativeUrl>module-devutils/impl/</relativeUrl>
+	</properties>
+
+    <url>http://isis.apache.org/${relativeUrl}</url>
+
+	<dependencies>
+        <dependency>
+            <groupId>org.apache.isis.core</groupId>
+            <artifactId>isis-core-applib</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.isis.core</groupId>
+            <artifactId>isis-core-unittestsupport</artifactId>
+            <scope>test</scope>
+        </dependency>
+   </dependencies>
+
+</project>

http://git-wip-us.apache.org/repos/asf/isis/blob/bf34a19d/core/module-devutils/pom.xml
----------------------------------------------------------------------
diff --git a/core/module-devutils/pom.xml b/core/module-devutils/pom.xml
new file mode 100644
index 0000000..a8d80a3
--- /dev/null
+++ b/core/module-devutils/pom.xml
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  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.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+	<modelVersion>4.0.0</modelVersion>
+
+	<parent>
+		<groupId>org.apache.isis.core</groupId>
+		<artifactId>isis</artifactId>
+        <version>1.6.0-SNAPSHOT</version>
+	</parent>
+
+    <groupId>org.apache.isis.module</groupId>
+	<artifactId>isis-module-devutils</artifactId>
+    <packaging>pom</packaging>
+
+	<name>Isis Module: Developer Utilities</name>
+	<description>
+		Developer utilities.
+	</description>
+
+	<properties>
+        <siteBaseDir>..</siteBaseDir>
+		<relativeUrl>module-devutils/</relativeUrl>
+	</properties>
+
+    <url>http://isis.apache.org/${relativeUrl}</url>
+
+	<dependencies>
+        <dependency>
+            <groupId>org.apache.isis.core</groupId>
+            <artifactId>isis-core-applib</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.isis.core</groupId>
+            <artifactId>isis-core-unittestsupport</artifactId>
+            <scope>test</scope>
+        </dependency>
+   </dependencies>
+
+   <modules>
+       <module>applib</module>
+       <module>impl</module>
+   </modules>
+   
+</project>

http://git-wip-us.apache.org/repos/asf/isis/blob/bf34a19d/core/module-publishing-jdo/.gitignore
----------------------------------------------------------------------
diff --git a/core/module-publishing-jdo/.gitignore b/core/module-publishing-jdo/.gitignore
new file mode 100644
index 0000000..a48e45b
--- /dev/null
+++ b/core/module-publishing-jdo/.gitignore
@@ -0,0 +1 @@
+/target-ide

http://git-wip-us.apache.org/repos/asf/isis/blob/bf34a19d/core/module-publishing-jdo/pom.xml
----------------------------------------------------------------------
diff --git a/core/module-publishing-jdo/pom.xml b/core/module-publishing-jdo/pom.xml
new file mode 100644
index 0000000..58bb8ac
--- /dev/null
+++ b/core/module-publishing-jdo/pom.xml
@@ -0,0 +1,147 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  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.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+	<modelVersion>4.0.0</modelVersion>
+
+	<parent>
+		<groupId>org.apache.isis.core</groupId>
+		<artifactId>isis</artifactId>
+        <version>1.6.0-SNAPSHOT</version>
+	</parent>
+
+    <groupId>org.apache.isis.module</groupId>
+	<artifactId>isis-module-publishing-jdo</artifactId>
+
+	<name>Isis Module: Publishing (JDO Implementation)</name>
+	<description>
+		PublishingService implementation that persists published events
+        to the database (using JDO Objectstore).
+	</description>
+
+	<properties>
+        <siteBaseDir>..</siteBaseDir>
+		<relativeUrl>module-publishing/</relativeUrl>
+	</properties>
+
+    <url>http://isis.apache.org/${relativeUrl}</url>
+
+	<build>
+        <resources>
+            <resource>
+                <filtering>false</filtering>
+                <directory>src/main/resources</directory>
+            </resource>
+            <resource>
+                <filtering>false</filtering>
+                <directory>src/main/java</directory>
+                <includes>
+                    <include>**</include>
+                </includes>
+                <excludes>
+                    <exclude>**/*.java</exclude>
+                </excludes>
+            </resource>
+        </resources>
+		<plugins>
+            <plugin>
+                <groupId>org.datanucleus</groupId>
+                <artifactId>datanucleus-maven-plugin</artifactId>
+                <version>${datanucleus-maven-plugin.version}</version>
+                <configuration>
+                	<fork>false</fork>
+                    <verbose>true</verbose>
+                </configuration>
+                <executions>
+                    <execution>
+                        <phase>compile</phase>
+                        <goals>
+                            <goal>enhance</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+		</plugins>
+		<pluginManagement>
+			<plugins>
+				<!--This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself.-->
+				<plugin>
+					<groupId>org.eclipse.m2e</groupId>
+					<artifactId>lifecycle-mapping</artifactId>
+					<version>1.0.0</version>
+					<configuration>
+						<lifecycleMappingMetadata>
+							<pluginExecutions>
+								<pluginExecution>
+									<pluginExecutionFilter>
+										<groupId>
+											org.datanucleus
+										</groupId>
+										<artifactId>
+											datanucleus-maven-plugin
+										</artifactId>
+										<versionRange>
+											[3.2.0-release,)
+										</versionRange>
+										<goals>
+											<goal>enhance</goal>
+										</goals>
+									</pluginExecutionFilter>
+									<action>
+										<ignore />
+									</action>
+								</pluginExecution>
+							</pluginExecutions>
+						</lifecycleMappingMetadata>
+					</configuration>
+				</plugin>
+			</plugins>
+		</pluginManagement>
+	</build>
+
+	<dependencies>
+        <dependency>
+            <groupId>org.apache.isis.core</groupId>
+            <artifactId>isis-core-applib</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.apache.isis.core</groupId>
+            <artifactId>isis-core-unittestsupport</artifactId>
+            <scope>test</scope>
+        </dependency>
+        
+        <dependency>
+          <groupId>org.slf4j</groupId>
+          <artifactId>slf4j-api</artifactId>
+        </dependency>
+        
+		<!-- DataNucleus (jdo-api, and for enhancer) -->
+        <dependency>
+            <groupId>org.datanucleus</groupId>
+            <artifactId>datanucleus-accessplatform-jdo-rdbms</artifactId>
+            <type>pom</type>
+        </dependency>
+        <dependency>
+            <groupId>org.datanucleus</groupId>
+            <artifactId>datanucleus-jodatime</artifactId>
+        </dependency>
+   </dependencies>
+
+</project>

http://git-wip-us.apache.org/repos/asf/isis/blob/bf34a19d/core/module-publishing-jdo/src/main/java/META-INF/persistence.xml
----------------------------------------------------------------------
diff --git a/core/module-publishing-jdo/src/main/java/META-INF/persistence.xml b/core/module-publishing-jdo/src/main/java/META-INF/persistence.xml
new file mode 100644
index 0000000..1cb71dd
--- /dev/null
+++ b/core/module-publishing-jdo/src/main/java/META-INF/persistence.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  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.
+-->
+<persistence xmlns="http://java.sun.com/xml/ns/persistence"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd" version="1.0">
+
+    <persistence-unit name="isis-module-publishing-jdo">
+    </persistence-unit>
+</persistence>

http://git-wip-us.apache.org/repos/asf/isis/blob/bf34a19d/core/module-settings/.gitignore
----------------------------------------------------------------------
diff --git a/core/module-settings/.gitignore b/core/module-settings/.gitignore
new file mode 100644
index 0000000..a48e45b
--- /dev/null
+++ b/core/module-settings/.gitignore
@@ -0,0 +1 @@
+/target-ide

http://git-wip-us.apache.org/repos/asf/isis/blob/bf34a19d/core/module-settings/applib/.gitignore
----------------------------------------------------------------------
diff --git a/core/module-settings/applib/.gitignore b/core/module-settings/applib/.gitignore
new file mode 100644
index 0000000..a48e45b
--- /dev/null
+++ b/core/module-settings/applib/.gitignore
@@ -0,0 +1 @@
+/target-ide

http://git-wip-us.apache.org/repos/asf/isis/blob/bf34a19d/core/module-settings/applib/pom.xml
----------------------------------------------------------------------
diff --git a/core/module-settings/applib/pom.xml b/core/module-settings/applib/pom.xml
new file mode 100644
index 0000000..efa3099
--- /dev/null
+++ b/core/module-settings/applib/pom.xml
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  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.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+	<modelVersion>4.0.0</modelVersion>
+
+	<parent>
+		<groupId>org.apache.isis.module</groupId>
+		<artifactId>isis-module-settings</artifactId>
+        <version>1.6.0-SNAPSHOT</version>
+	</parent>
+
+	<artifactId>isis-module-settings-applib</artifactId>
+
+	<name>Isis Module: Application and User Settings applib</name>
+	<description>
+		API for the application and user settings module.
+	</description>
+
+	<properties>
+        <siteBaseDir>../..</siteBaseDir>
+		<relativeUrl>module-settings/applib/</relativeUrl>
+	</properties>
+
+    <url>http://isis.apache.org/${relativeUrl}</url>
+
+	<dependencies>
+        <dependency>
+            <groupId>org.apache.isis.core</groupId>
+            <artifactId>isis-core-applib</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.isis.core</groupId>
+            <artifactId>isis-core-unittestsupport</artifactId>
+            <scope>test</scope>
+        </dependency>
+   </dependencies>
+
+</project>

http://git-wip-us.apache.org/repos/asf/isis/blob/bf34a19d/core/module-settings/impl-jdo/.gitignore
----------------------------------------------------------------------
diff --git a/core/module-settings/impl-jdo/.gitignore b/core/module-settings/impl-jdo/.gitignore
new file mode 100644
index 0000000..a48e45b
--- /dev/null
+++ b/core/module-settings/impl-jdo/.gitignore
@@ -0,0 +1 @@
+/target-ide

http://git-wip-us.apache.org/repos/asf/isis/blob/bf34a19d/core/module-settings/impl-jdo/pom.xml
----------------------------------------------------------------------
diff --git a/core/module-settings/impl-jdo/pom.xml b/core/module-settings/impl-jdo/pom.xml
new file mode 100644
index 0000000..ff6b97f
--- /dev/null
+++ b/core/module-settings/impl-jdo/pom.xml
@@ -0,0 +1,146 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  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.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+	<modelVersion>4.0.0</modelVersion>
+
+	<parent>
+		<groupId>org.apache.isis.module</groupId>
+		<artifactId>isis-module-settings</artifactId>
+        <version>1.6.0-SNAPSHOT</version>
+	</parent>
+
+	<artifactId>isis-module-settings-impl-jdo</artifactId>
+
+	<name>Isis Module: Application and User Settings (JDO implementation)</name>
+	<description>
+		Implementation of the application and user settings module, persisting
+        to database (using JDO Objectstore)
+	</description>
+
+	<properties>
+        <siteBaseDir>../..</siteBaseDir>
+		<relativeUrl>module-settings/impl/</relativeUrl>
+	</properties>
+
+    <url>http://isis.apache.org/${relativeUrl}</url>
+
+	<build>
+        <resources>
+            <resource>
+                <filtering>false</filtering>
+                <directory>src/main/resources</directory>
+            </resource>
+            <resource>
+                <filtering>false</filtering>
+                <directory>src/main/java</directory>
+                <includes>
+                    <include>**</include>
+                </includes>
+                <excludes>
+                    <exclude>**/*.java</exclude>
+                </excludes>
+            </resource>
+        </resources>
+		<plugins>
+            <plugin>
+                <groupId>org.datanucleus</groupId>
+                <artifactId>datanucleus-maven-plugin</artifactId>
+                <version>${datanucleus-maven-plugin.version}</version>
+                <configuration>
+                	<fork>false</fork>
+                    <verbose>true</verbose>
+                </configuration>
+                <executions>
+                    <execution>
+                        <phase>compile</phase>
+                        <goals>
+                            <goal>enhance</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+		</plugins>
+		<pluginManagement>
+			<plugins>
+				<!--This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself.-->
+				<plugin>
+					<groupId>org.eclipse.m2e</groupId>
+					<artifactId>lifecycle-mapping</artifactId>
+					<version>1.0.0</version>
+					<configuration>
+						<lifecycleMappingMetadata>
+							<pluginExecutions>
+								<pluginExecution>
+									<pluginExecutionFilter>
+										<groupId>
+											org.datanucleus
+										</groupId>
+										<artifactId>
+											datanucleus-maven-plugin
+										</artifactId>
+										<versionRange>
+											[3.2.0-release,)
+										</versionRange>
+										<goals>
+											<goal>enhance</goal>
+										</goals>
+									</pluginExecutionFilter>
+									<action>
+										<ignore />
+									</action>
+								</pluginExecution>
+							</pluginExecutions>
+						</lifecycleMappingMetadata>
+					</configuration>
+				</plugin>
+			</plugins>
+		</pluginManagement>
+	</build>
+
+	<dependencies>
+        <dependency>
+            <groupId>org.apache.isis.core</groupId>
+            <artifactId>isis-core-applib</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.apache.isis.core</groupId>
+            <artifactId>isis-core-unittestsupport</artifactId>
+            <scope>test</scope>
+        </dependency>
+        
+        <dependency>
+          <groupId>org.slf4j</groupId>
+          <artifactId>slf4j-api</artifactId>
+        </dependency>
+        
+		<!-- DataNucleus (jdo-api, and for enhancer) -->
+        <dependency>
+            <groupId>org.datanucleus</groupId>
+            <artifactId>datanucleus-accessplatform-jdo-rdbms</artifactId>
+            <type>pom</type>
+        </dependency>
+        <dependency>
+            <groupId>org.datanucleus</groupId>
+            <artifactId>datanucleus-jodatime</artifactId>
+        </dependency>
+   </dependencies>
+
+</project>

http://git-wip-us.apache.org/repos/asf/isis/blob/bf34a19d/core/module-settings/impl-jdo/src/main/java/META-INF/persistence.xml
----------------------------------------------------------------------
diff --git a/core/module-settings/impl-jdo/src/main/java/META-INF/persistence.xml b/core/module-settings/impl-jdo/src/main/java/META-INF/persistence.xml
new file mode 100644
index 0000000..1b83835
--- /dev/null
+++ b/core/module-settings/impl-jdo/src/main/java/META-INF/persistence.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  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.
+-->
+<persistence xmlns="http://java.sun.com/xml/ns/persistence"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd" version="1.0">
+
+    <persistence-unit name="isis-module-settings-impl-jdo">
+    </persistence-unit>
+</persistence>

http://git-wip-us.apache.org/repos/asf/isis/blob/bf34a19d/core/module-settings/pom.xml
----------------------------------------------------------------------
diff --git a/core/module-settings/pom.xml b/core/module-settings/pom.xml
new file mode 100644
index 0000000..19e24ab
--- /dev/null
+++ b/core/module-settings/pom.xml
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  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.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+	<modelVersion>4.0.0</modelVersion>
+
+	<parent>
+		<groupId>org.apache.isis.core</groupId>
+		<artifactId>isis</artifactId>
+        <version>1.6.0-SNAPSHOT</version>
+	</parent>
+
+    <groupId>org.apache.isis.module</groupId>
+	<artifactId>isis-module-settings</artifactId>
+    <packaging>pom</packaging>
+
+	<name>Isis Module: Application and User Settings</name>
+	<description>
+		Application and user settings
+	</description>
+
+	<properties>
+        <siteBaseDir>..</siteBaseDir>
+		<relativeUrl>module-settings/</relativeUrl>
+	</properties>
+
+    <url>http://isis.apache.org/${relativeUrl}</url>
+
+	<dependencies>
+        <dependency>
+            <groupId>org.apache.isis.core</groupId>
+            <artifactId>isis-core-applib</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.isis.core</groupId>
+            <artifactId>isis-core-unittestsupport</artifactId>
+            <scope>test</scope>
+        </dependency>
+   </dependencies>
+
+  <modules>
+       <module>applib</module>
+       <module>impl-jdo</module>
+   </modules>
+
+</project>

http://git-wip-us.apache.org/repos/asf/isis/blob/bf34a19d/core/module-wrapper/pom.xml
----------------------------------------------------------------------
diff --git a/core/module-wrapper/pom.xml b/core/module-wrapper/pom.xml
new file mode 100644
index 0000000..b15c9b7
--- /dev/null
+++ b/core/module-wrapper/pom.xml
@@ -0,0 +1,139 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  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.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+	<modelVersion>4.0.0</modelVersion>
+
+    <parent>
+        <groupId>org.apache.isis.core</groupId>
+        <artifactId>isis</artifactId>
+        <version>1.6.0-SNAPSHOT</version>
+	</parent>
+
+    <groupId>org.apache.isis.module</groupId>
+	<artifactId>isis-module-wrapper</artifactId>
+
+	<name>Isis Core Wrapper Service</name>
+	<description>Isis Core Wrapper Service</description>
+
+
+	<properties>
+        <siteBaseDir>..</siteBaseDir>
+		<relativeUrl>wrapper/</relativeUrl>
+	</properties>
+
+    <!-- used in Site generation for relative references. -->
+    <url>http://isis.apache.org/${relativeUrl}</url>
+
+    <reporting>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-project-info-reports-plugin</artifactId>
+                <inherited>false</inherited>
+                <configuration>
+                	<dependencyLocationsEnabled>false</dependencyLocationsEnabled>
+                </configuration>
+                <reportSets>
+                    <reportSet>
+                        <inherited>false</inherited>
+                        <reports>
+                            <report>dependencies</report>
+                            <report>dependency-convergence</report>
+                            <report>plugins</report>
+                            <report>summary</report>
+                        </reports>
+                    </reportSet>
+                </reportSets>
+            </plugin>
+        </plugins>
+    </reporting>
+
+    <dependencyManagement>
+        <dependencies>
+            <dependency>
+                <groupId>asm</groupId>
+                <artifactId>asm</artifactId>
+                <version>3.3.1</version>
+            </dependency>
+            <dependency>
+                <groupId>cglib</groupId>
+                <artifactId>cglib-nodep</artifactId>
+                <version>2.2.2</version>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
+
+	<dependencies>
+        <dependency>
+		    <groupId>org.apache.isis.core</groupId>
+		    <artifactId>isis-core-runtime</artifactId>
+        </dependency>
+
+		<dependency>
+		    <groupId>org.apache.isis.core</groupId>
+		    <artifactId>isis-core-metamodel</artifactId>
+		    <type>test-jar</type>
+		    <scope>test</scope>
+        </dependency>
+		<dependency>
+		    <groupId>org.apache.isis.core</groupId>
+		    <artifactId>isis-core-runtime</artifactId>
+		    <type>test-jar</type>
+		    <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.isis.core</groupId>
+            <artifactId>isis-core-unittestsupport</artifactId>
+            <scope>test</scope>
+        </dependency>
+
+        <dependency>
+            <groupId>org.apache.isis.core</groupId>
+            <artifactId>isis-core-tck-dom</artifactId>
+            <scope>test</scope>
+        </dependency>
+
+        <dependency>
+            <groupId>org.objenesis</groupId>
+            <artifactId>objenesis</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.javassist</groupId>
+            <artifactId>javassist</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>asm</groupId>
+            <artifactId>asm</artifactId>
+            <!-- explicitly include for use of WrapperFactoryCglib -->
+            <optional>true</optional>
+        </dependency>
+
+        <dependency>
+            <groupId>cglib</groupId>
+            <artifactId>cglib-nodep</artifactId>
+            <!-- explicitly include for use of WrapperFactoryCglib -->
+            <optional>true</optional>
+        </dependency>
+
+	</dependencies>
+
+</project>