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 2015/09/15 08:02:30 UTC

[06/28] isis git commit: ISIS-1194: renamed ObjectPersistor interface to PersistenceSessionService

ISIS-1194: renamed ObjectPersistor interface to PersistenceSessionService


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

Branch: refs/heads/ISIS-1194
Commit: 7e3fb256d3ba0c0429432a0b5299cc366df29210
Parents: 8ff3d4f
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Mon Sep 14 09:01:03 2015 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Mon Sep 14 09:01:03 2015 +0100

----------------------------------------------------------------------
 .../ChoicesFacetFromBoundedAbstract.java        |  14 +-
 .../ChoicesFacetFromBoundedMarkerInterface.java |   6 +-
 ...sFacetFromBoundedMarkerInterfaceFactory.java |  15 +-
 .../DomainObjectAnnotationFacetFactory.java     |  16 +--
 .../ChoicesFacetForDomainObjectAnnotation.java  |  10 +-
 .../ChoicesFacetFromBoundedAnnotation.java      |  10 +-
 .../runtimecontext/ObjectPersistor.java         | 136 -------------------
 .../runtimecontext/ObjectPersistorAbstract.java |  29 ----
 .../runtimecontext/ObjectPersistorAware.java    |  29 ----
 .../PersistenceSessionService.java              | 136 +++++++++++++++++++
 .../PersistenceSessionServiceAbstract.java      |  29 ++++
 .../PersistenceSessionServiceAware.java         |  29 ++++
 .../runtimecontext/RuntimeContext.java          |   2 +-
 .../runtimecontext/RuntimeContextAbstract.java  |   2 +-
 .../noruntime/RuntimeContextNoRuntime.java      |  10 +-
 .../bookmarks/BookmarkServiceDefault.java       |  19 +--
 .../container/DomainObjectContainerDefault.java |  36 ++---
 .../spec/feature/ObjectMemberDependencies.java  |  12 +-
 .../specloader/ObjectReflectorDefault.java      |   2 +-
 .../specimpl/ObjectActionParameterAbstract.java |   6 +-
 .../specimpl/ObjectMemberAbstract.java          |  10 +-
 .../internal/RuntimeContextFromSession.java     |  12 +-
 .../system/persistence/PersistenceSession.java  |  12 +-
 .../runtime/system/ObjectActionImplTest.java    |   7 +-
 .../system/OneToManyAssociationImplTest.java    |   7 +-
 .../core/wrapper/WrapperFactoryDefault.java     |  18 +--
 .../handlers/DomainObjectInvocationHandler.java |  14 +-
 .../wrapper/handlers/ProxyContextHandler.java   |   9 +-
 ...WrapperFactoryDefaultTest_wrappedObject.java |   9 +-
 ...toryDefaultTest_wrappedObject_transient.java |   6 +-
 30 files changed, 329 insertions(+), 323 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/7e3fb256/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/choices/ChoicesFacetFromBoundedAbstract.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/choices/ChoicesFacetFromBoundedAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/choices/ChoicesFacetFromBoundedAbstract.java
index c77017f..dc9c04e 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/choices/ChoicesFacetFromBoundedAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/choices/ChoicesFacetFromBoundedAbstract.java
@@ -42,7 +42,7 @@ import org.apache.isis.core.metamodel.interactions.ObjectValidityContext;
 import org.apache.isis.core.metamodel.interactions.UsabilityContext;
 import org.apache.isis.core.metamodel.interactions.ValidatingInteractionAdvisor;
 import org.apache.isis.core.metamodel.interactions.ValidityContext;
-import org.apache.isis.core.metamodel.runtimecontext.ObjectPersistor;
+import org.apache.isis.core.metamodel.runtimecontext.PersistenceSessionService;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 
 /**
@@ -67,21 +67,21 @@ public abstract class ChoicesFacetFromBoundedAbstract
 
     private final DeploymentCategory deploymentCategory;
     private final AuthenticationSessionProvider authenticationSessionProvider;
-    private final ObjectPersistor objectPersistor;
+    private final PersistenceSessionService persistenceSessionService;
 
     public ChoicesFacetFromBoundedAbstract(
             final FacetHolder holder,
             final DeploymentCategory deploymentCategory,
             final AuthenticationSessionProvider authenticationSessionProvider,
-            final ObjectPersistor objectPersistor) {
+            final PersistenceSessionService persistenceSessionService) {
         super(type(), holder, Derivation.NOT_DERIVED);
         this.deploymentCategory = deploymentCategory;
         this.authenticationSessionProvider = authenticationSessionProvider;
-        this.objectPersistor = objectPersistor;
+        this.persistenceSessionService = persistenceSessionService;
     }
 
-    public ObjectPersistor getObjectPersistor() {
-        return objectPersistor;
+    public PersistenceSessionService getPersistenceSessionService() {
+        return persistenceSessionService;
     }
 
     @Override
@@ -127,7 +127,7 @@ public abstract class ChoicesFacetFromBoundedAbstract
             ObjectAdapter adapter,
             final InteractionInitiatedBy interactionInitiatedBy) {
         final Query query = new QueryFindAllInstances(getObjectSpecification().getFullIdentifier());
-        final List<ObjectAdapter> allInstancesAdapter = getObjectPersistor().allMatchingQuery(query);
+        final List<ObjectAdapter> allInstancesAdapter = getPersistenceSessionService().allMatchingQuery(query);
 
         final List<ObjectAdapter> adapters =
                 ObjectAdapter.Util.visibleAdapters(

http://git-wip-us.apache.org/repos/asf/isis/blob/7e3fb256/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/choices/boundedmarkerifc/ChoicesFacetFromBoundedMarkerInterface.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/choices/boundedmarkerifc/ChoicesFacetFromBoundedMarkerInterface.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/choices/boundedmarkerifc/ChoicesFacetFromBoundedMarkerInterface.java
index 4ba9087..22c7e8b 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/choices/boundedmarkerifc/ChoicesFacetFromBoundedMarkerInterface.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/choices/boundedmarkerifc/ChoicesFacetFromBoundedMarkerInterface.java
@@ -23,7 +23,7 @@ import org.apache.isis.core.commons.authentication.AuthenticationSessionProvider
 import org.apache.isis.core.metamodel.deployment.DeploymentCategory;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.object.choices.ChoicesFacetFromBoundedAbstract;
-import org.apache.isis.core.metamodel.runtimecontext.ObjectPersistor;
+import org.apache.isis.core.metamodel.runtimecontext.PersistenceSessionService;
 
 public class ChoicesFacetFromBoundedMarkerInterface extends ChoicesFacetFromBoundedAbstract {
 
@@ -31,8 +31,8 @@ public class ChoicesFacetFromBoundedMarkerInterface extends ChoicesFacetFromBoun
             final FacetHolder holder,
             final DeploymentCategory deploymentCategory,
             final AuthenticationSessionProvider authenticationSessionProvider,
-            final ObjectPersistor objectPersistor) {
-        super(holder, deploymentCategory, authenticationSessionProvider, objectPersistor);
+            final PersistenceSessionService persistenceSessionService) {
+        super(holder, deploymentCategory, authenticationSessionProvider, persistenceSessionService);
     }
 
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/7e3fb256/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/choices/boundedmarkerifc/ChoicesFacetFromBoundedMarkerInterfaceFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/choices/boundedmarkerifc/ChoicesFacetFromBoundedMarkerInterfaceFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/choices/boundedmarkerifc/ChoicesFacetFromBoundedMarkerInterfaceFactory.java
index 98b2e39..d5f181d 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/choices/boundedmarkerifc/ChoicesFacetFromBoundedMarkerInterfaceFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/choices/boundedmarkerifc/ChoicesFacetFromBoundedMarkerInterfaceFactory.java
@@ -22,17 +22,18 @@ package org.apache.isis.core.metamodel.facets.object.choices.boundedmarkerifc;
 import java.lang.reflect.Method;
 
 import org.apache.isis.applib.marker.Bounded;
-import org.apache.isis.core.metamodel.runtimecontext.ObjectPersistor;
-import org.apache.isis.core.metamodel.runtimecontext.ObjectPersistorAware;
+import org.apache.isis.core.metamodel.runtimecontext.PersistenceSessionService;
+import org.apache.isis.core.metamodel.runtimecontext.PersistenceSessionServiceAware;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facetapi.FacetUtil;
 import org.apache.isis.core.metamodel.facetapi.FeatureType;
 import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract;
 import org.apache.isis.core.metamodel.facets.objectvalue.choices.ChoicesFacet;
 
-public class ChoicesFacetFromBoundedMarkerInterfaceFactory extends FacetFactoryAbstract implements ObjectPersistorAware {
+public class ChoicesFacetFromBoundedMarkerInterfaceFactory extends FacetFactoryAbstract implements
+        PersistenceSessionServiceAware {
 
-    private ObjectPersistor objectPersistor;
+    private PersistenceSessionService persistenceSessionService;
 
     public ChoicesFacetFromBoundedMarkerInterfaceFactory() {
         super(FeatureType.OBJECTS_ONLY);
@@ -49,7 +50,7 @@ public class ChoicesFacetFromBoundedMarkerInterfaceFactory extends FacetFactoryA
             final FacetHolder holder) {
         return implementsMarker
                 ? new ChoicesFacetFromBoundedMarkerInterface(
-                    holder, getDeploymentCategory(), getAuthenticationSessionProvider(),objectPersistor) : null;
+                    holder, getDeploymentCategory(), getAuthenticationSessionProvider(), persistenceSessionService) : null;
     }
 
     public boolean recognizes(final Method method) {
@@ -57,7 +58,7 @@ public class ChoicesFacetFromBoundedMarkerInterfaceFactory extends FacetFactoryA
     }
 
     @Override
-    public void setObjectPersistor(final ObjectPersistor objectPersistor) {
-        this.objectPersistor = objectPersistor;
+    public void setPersistenceSessionService(final PersistenceSessionService persistenceSessionService) {
+        this.persistenceSessionService = persistenceSessionService;
     }
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/7e3fb256/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/DomainObjectAnnotationFacetFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/DomainObjectAnnotationFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/DomainObjectAnnotationFacetFactory.java
index e3f1dea..1d8e160 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/DomainObjectAnnotationFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/DomainObjectAnnotationFacetFactory.java
@@ -32,8 +32,8 @@ import org.apache.isis.applib.annotation.PublishedObject;
 import org.apache.isis.applib.services.HasTransactionId;
 import org.apache.isis.core.commons.config.IsisConfiguration;
 import org.apache.isis.core.commons.config.IsisConfigurationAware;
-import org.apache.isis.core.metamodel.runtimecontext.ObjectPersistor;
-import org.apache.isis.core.metamodel.runtimecontext.ObjectPersistorAware;
+import org.apache.isis.core.metamodel.runtimecontext.PersistenceSessionService;
+import org.apache.isis.core.metamodel.runtimecontext.PersistenceSessionServiceAware;
 import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager;
 import org.apache.isis.core.metamodel.adapter.mgr.AdapterManagerAware;
 import org.apache.isis.core.metamodel.facetapi.Facet;
@@ -74,7 +74,7 @@ import org.apache.isis.objectstore.jdo.metamodel.facets.object.persistencecapabl
 
 
 public class DomainObjectAnnotationFacetFactory extends FacetFactoryAbstract implements IsisConfigurationAware, AdapterManagerAware, ServicesInjectorAware, SpecificationLoaderAware, MetaModelValidatorRefiner,
-        ObjectPersistorAware {
+        PersistenceSessionServiceAware {
 
     private final MetaModelValidatorForDeprecatedAnnotation auditedValidator = new MetaModelValidatorForDeprecatedAnnotation(Audited.class);
     private final MetaModelValidatorForDeprecatedAnnotation publishedObjectValidator = new MetaModelValidatorForDeprecatedAnnotation(PublishedObject.class);
@@ -87,7 +87,7 @@ public class DomainObjectAnnotationFacetFactory extends FacetFactoryAbstract imp
     private IsisConfiguration configuration;
     private AdapterManager adapterManager;
     private ServicesInjector servicesInjector;
-    private ObjectPersistor objectPersistor;
+    private PersistenceSessionService persistenceSessionService;
 
     public DomainObjectAnnotationFacetFactory() {
         super(FeatureType.OBJECTS_ONLY);
@@ -208,12 +208,12 @@ public class DomainObjectAnnotationFacetFactory extends FacetFactoryAbstract imp
             ChoicesFacetFromBoundedAnnotation.create(annotation, processClassContext.getFacetHolder(),
                     getDeploymentCategory(),
                     getAuthenticationSessionProvider(),
-                    objectPersistor));
+                    persistenceSessionService));
 
         // else check from @DomainObject(bounded=...)
         if(facet == null) {
             facet = ChoicesFacetForDomainObjectAnnotation.create(domainObject, facetHolder, getDeploymentCategory(),
-                    getAuthenticationSessionProvider(), objectPersistor);
+                    getAuthenticationSessionProvider(), persistenceSessionService);
         }
 
         // then add
@@ -347,7 +347,7 @@ public class DomainObjectAnnotationFacetFactory extends FacetFactoryAbstract imp
     }
 
     @Override
-    public void setObjectPersistor(final ObjectPersistor objectPersistor) {
-        this.objectPersistor = objectPersistor;
+    public void setPersistenceSessionService(final PersistenceSessionService persistenceSessionService) {
+        this.persistenceSessionService = persistenceSessionService;
     }
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/7e3fb256/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/choices/ChoicesFacetForDomainObjectAnnotation.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/choices/ChoicesFacetForDomainObjectAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/choices/ChoicesFacetForDomainObjectAnnotation.java
index df8e339..d07271d 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/choices/ChoicesFacetForDomainObjectAnnotation.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/choices/ChoicesFacetForDomainObjectAnnotation.java
@@ -25,7 +25,7 @@ import org.apache.isis.core.metamodel.deployment.DeploymentCategory;
 import org.apache.isis.core.metamodel.facetapi.Facet;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.object.choices.ChoicesFacetFromBoundedAbstract;
-import org.apache.isis.core.metamodel.runtimecontext.ObjectPersistor;
+import org.apache.isis.core.metamodel.runtimecontext.PersistenceSessionService;
 
 public class ChoicesFacetForDomainObjectAnnotation extends ChoicesFacetFromBoundedAbstract {
 
@@ -34,7 +34,7 @@ public class ChoicesFacetForDomainObjectAnnotation extends ChoicesFacetFromBound
             final FacetHolder facetHolder,
             final DeploymentCategory deploymentCategory,
             final AuthenticationSessionProvider authenticationSessionProvider,
-            final ObjectPersistor objectPersistor) {
+            final PersistenceSessionService persistenceSessionService) {
 
         if(domainObject == null) {
             return null;
@@ -43,15 +43,15 @@ public class ChoicesFacetForDomainObjectAnnotation extends ChoicesFacetFromBound
         final boolean bounded = domainObject.bounded();
         return bounded
                 ? new ChoicesFacetForDomainObjectAnnotation(
-                    facetHolder, deploymentCategory, authenticationSessionProvider, objectPersistor)
+                    facetHolder, deploymentCategory, authenticationSessionProvider, persistenceSessionService)
                 : null;
     }
 
     private ChoicesFacetForDomainObjectAnnotation(
             final FacetHolder holder,
             final DeploymentCategory deploymentCategory,
-            final AuthenticationSessionProvider authenticationSessionProvider, final ObjectPersistor objectPersistor) {
-        super(holder, deploymentCategory, authenticationSessionProvider, objectPersistor);
+            final AuthenticationSessionProvider authenticationSessionProvider, final PersistenceSessionService persistenceSessionService) {
+        super(holder, deploymentCategory, authenticationSessionProvider, persistenceSessionService);
     }
 
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/7e3fb256/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/choices/ChoicesFacetFromBoundedAnnotation.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/choices/ChoicesFacetFromBoundedAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/choices/ChoicesFacetFromBoundedAnnotation.java
index 6df0b4d..875ae9e 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/choices/ChoicesFacetFromBoundedAnnotation.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/choices/ChoicesFacetFromBoundedAnnotation.java
@@ -25,7 +25,7 @@ import org.apache.isis.core.metamodel.deployment.DeploymentCategory;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.object.choices.ChoicesFacetFromBoundedAbstract;
 import org.apache.isis.core.metamodel.facets.objectvalue.choices.ChoicesFacet;
-import org.apache.isis.core.metamodel.runtimecontext.ObjectPersistor;
+import org.apache.isis.core.metamodel.runtimecontext.PersistenceSessionService;
 
 /**
  * @deprecated
@@ -37,8 +37,8 @@ public class ChoicesFacetFromBoundedAnnotation extends ChoicesFacetFromBoundedAb
             final FacetHolder holder,
             final DeploymentCategory deploymentCategory,
             final AuthenticationSessionProvider authenticationSessionProvider,
-            final ObjectPersistor objectPersistor) {
-        super(holder, deploymentCategory, authenticationSessionProvider, objectPersistor);
+            final PersistenceSessionService persistenceSessionService) {
+        super(holder, deploymentCategory, authenticationSessionProvider, persistenceSessionService);
     }
 
     public static ChoicesFacet create(
@@ -46,13 +46,13 @@ public class ChoicesFacetFromBoundedAnnotation extends ChoicesFacetFromBoundedAb
             final FacetHolder holder,
             final DeploymentCategory deploymentCategory,
             final AuthenticationSessionProvider authenticationSessionProvider,
-            final ObjectPersistor objectPersistor) {
+            final PersistenceSessionService persistenceSessionService) {
         if (annotation == null) {
             return null;
         }
 
         return new ChoicesFacetFromBoundedAnnotation(holder, deploymentCategory, authenticationSessionProvider,
-                objectPersistor);
+                persistenceSessionService);
     }
 
 

http://git-wip-us.apache.org/repos/asf/isis/blob/7e3fb256/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/ObjectPersistor.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/ObjectPersistor.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/ObjectPersistor.java
deleted file mode 100644
index 06fb111..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/ObjectPersistor.java
+++ /dev/null
@@ -1,136 +0,0 @@
-/**
- *  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.core.metamodel.runtimecontext;
-
-import java.util.List;
-
-import org.apache.isis.applib.query.Query;
-import org.apache.isis.applib.services.bookmark.Bookmark;
-import org.apache.isis.core.commons.components.Injectable;
-import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.core.metamodel.spec.ObjectSpecification;
-
-public interface ObjectPersistor extends Injectable {
-
-
-    // ///////////////////////////////////////////
-    // Instantiate
-    // ///////////////////////////////////////////
-
-    /**
-     * Provided by the <tt>PersistenceSession</tt> when used by framework.
-     *
-     * <p>
-     * Called by <tt>DomainObjectContainerDefault</tt>.
-     */
-    ObjectAdapter createTransientInstance(ObjectSpecification spec);
-
-    ObjectAdapter createViewModelInstance(ObjectSpecification spec, String memento);
-
-
-    // ///////////////////////////////////////////
-    // retrieve
-    // ///////////////////////////////////////////
-
-    /**
-     * Provided by <tt>PersistenceSession</tt> when used by framework.
-     *
-     * <p>
-     * Called by <tt>DomainObjectContainerDefault</tt>.
-     */
-    void resolve(Object parent);
-
-    /**
-     * Provided by <tt>PersistenceSession</tt> when used by framework.
-     *
-     * <p>
-     * Called by <tt>DomainObjectContainerDefault</tt>.
-     */
-    void resolve(Object parent, Object field);
-
-    /**
-     * Provided by <tt>PersistenceSession</tt> when used by framework.
-     *
-     * <p>
-     * Called by <tt>BookmarkServicesDefault</tt>.
-     * @return
-     */
-    Object lookup(Bookmark bookmark);
-
-    Bookmark bookmarkFor(Object domainObject);
-
-    Bookmark bookmarkFor(Class<?> cls, String identifier);
-
-
-    // ///////////////////////////////////////////
-    // flush, commit
-    // ///////////////////////////////////////////
-
-    /**
-     * Provided by <tt>TransactionManager</tt> when used by framework.
-     *
-     * <p>
-     * Called by <tt>DomainObjectContainerDefault</tt>.
-     */
-    boolean flush();
-
-    /**
-     * Provided by <tt>TransactionManager</tt> when used by framework.
-     *
-     * <p>
-     * Called by <tt>DomainObjectContainerDefault</tt>.
-     */
-    void commit();
-
-
-    /**
-     * Provided by the <tt>PersistenceSession</tt> when used by framework.
-     * 
-     * <p>
-     * Called by <tt>DomainObjectContainerDefault</tt> and also by
-     * <tt>DomainObjectInvocationHandler#handleSaveMethod()</tt>.
-     */
-    void makePersistent(ObjectAdapter adapter);
-
-    /**
-     * Provided by <tt>UpdateNotifier</tt> and <tt>PersistenceSession</tt> when
-     * used by framework.
-     * 
-     * <p>
-     * Called by <tt>DomainObjectContainerDefault</tt>.
-     */
-    void remove(ObjectAdapter adapter);
-
-
-    /**
-     * Provided by <tt>PersistenceSession</tt> when used by framework.
-     *
-     * <p>
-     * Called by <tt>DomainObjectContainerDefault</tt> and also by the choices
-     * facets.
-     */
-    <T> List<ObjectAdapter> allMatchingQuery(Query<T> query);
-
-    /**
-     * Provided by <tt>PersistenceSession</tt> when used by framework.
-     *
-     * <p>
-     * Called by <tt>DomainObjectContainerDefault</tt>.
-     */
-    <T> ObjectAdapter firstMatchingQuery(Query<T> query);
-
-}

http://git-wip-us.apache.org/repos/asf/isis/blob/7e3fb256/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/ObjectPersistorAbstract.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/ObjectPersistorAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/ObjectPersistorAbstract.java
deleted file mode 100644
index 258318c..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/ObjectPersistorAbstract.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/**
- *  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.core.metamodel.runtimecontext;
-
-public abstract class ObjectPersistorAbstract implements ObjectPersistor {
-
-    @Override
-    public void injectInto(final Object candidate) {
-        if (ObjectPersistorAware.class.isAssignableFrom(candidate.getClass())) {
-            final ObjectPersistorAware cast = ObjectPersistorAware.class.cast(candidate);
-            cast.setObjectPersistor(this);
-        }
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/isis/blob/7e3fb256/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/ObjectPersistorAware.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/ObjectPersistorAware.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/ObjectPersistorAware.java
deleted file mode 100644
index c772b98..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/ObjectPersistorAware.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- *  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.core.metamodel.runtimecontext;
-
-import org.apache.isis.applib.annotation.Programmatic;
-
-public interface ObjectPersistorAware {
-
-    @Programmatic
-    public void setObjectPersistor(final ObjectPersistor objectPersistor);
-
-}

http://git-wip-us.apache.org/repos/asf/isis/blob/7e3fb256/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/PersistenceSessionService.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/PersistenceSessionService.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/PersistenceSessionService.java
new file mode 100644
index 0000000..c833100
--- /dev/null
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/PersistenceSessionService.java
@@ -0,0 +1,136 @@
+/**
+ *  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.core.metamodel.runtimecontext;
+
+import java.util.List;
+
+import org.apache.isis.applib.query.Query;
+import org.apache.isis.applib.services.bookmark.Bookmark;
+import org.apache.isis.core.commons.components.Injectable;
+import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
+import org.apache.isis.core.metamodel.spec.ObjectSpecification;
+
+public interface PersistenceSessionService extends Injectable {
+
+
+    // ///////////////////////////////////////////
+    // Instantiate
+    // ///////////////////////////////////////////
+
+    /**
+     * Provided by the <tt>PersistenceSession</tt> when used by framework.
+     *
+     * <p>
+     * Called by <tt>DomainObjectContainerDefault</tt>.
+     */
+    ObjectAdapter createTransientInstance(ObjectSpecification spec);
+
+    ObjectAdapter createViewModelInstance(ObjectSpecification spec, String memento);
+
+
+    // ///////////////////////////////////////////
+    // retrieve
+    // ///////////////////////////////////////////
+
+    /**
+     * Provided by <tt>PersistenceSession</tt> when used by framework.
+     *
+     * <p>
+     * Called by <tt>DomainObjectContainerDefault</tt>.
+     */
+    void resolve(Object parent);
+
+    /**
+     * Provided by <tt>PersistenceSession</tt> when used by framework.
+     *
+     * <p>
+     * Called by <tt>DomainObjectContainerDefault</tt>.
+     */
+    void resolve(Object parent, Object field);
+
+    /**
+     * Provided by <tt>PersistenceSession</tt> when used by framework.
+     *
+     * <p>
+     * Called by <tt>BookmarkServicesDefault</tt>.
+     * @return
+     */
+    Object lookup(Bookmark bookmark);
+
+    Bookmark bookmarkFor(Object domainObject);
+
+    Bookmark bookmarkFor(Class<?> cls, String identifier);
+
+
+    // ///////////////////////////////////////////
+    // flush, commit
+    // ///////////////////////////////////////////
+
+    /**
+     * Provided by <tt>TransactionManager</tt> when used by framework.
+     *
+     * <p>
+     * Called by <tt>DomainObjectContainerDefault</tt>.
+     */
+    boolean flush();
+
+    /**
+     * Provided by <tt>TransactionManager</tt> when used by framework.
+     *
+     * <p>
+     * Called by <tt>DomainObjectContainerDefault</tt>.
+     */
+    void commit();
+
+
+    /**
+     * Provided by the <tt>PersistenceSession</tt> when used by framework.
+     * 
+     * <p>
+     * Called by <tt>DomainObjectContainerDefault</tt> and also by
+     * <tt>DomainObjectInvocationHandler#handleSaveMethod()</tt>.
+     */
+    void makePersistent(ObjectAdapter adapter);
+
+    /**
+     * Provided by <tt>UpdateNotifier</tt> and <tt>PersistenceSession</tt> when
+     * used by framework.
+     * 
+     * <p>
+     * Called by <tt>DomainObjectContainerDefault</tt>.
+     */
+    void remove(ObjectAdapter adapter);
+
+
+    /**
+     * Provided by <tt>PersistenceSession</tt> when used by framework.
+     *
+     * <p>
+     * Called by <tt>DomainObjectContainerDefault</tt> and also by the choices
+     * facets.
+     */
+    <T> List<ObjectAdapter> allMatchingQuery(Query<T> query);
+
+    /**
+     * Provided by <tt>PersistenceSession</tt> when used by framework.
+     *
+     * <p>
+     * Called by <tt>DomainObjectContainerDefault</tt>.
+     */
+    <T> ObjectAdapter firstMatchingQuery(Query<T> query);
+
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/7e3fb256/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/PersistenceSessionServiceAbstract.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/PersistenceSessionServiceAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/PersistenceSessionServiceAbstract.java
new file mode 100644
index 0000000..ef2d6b3
--- /dev/null
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/PersistenceSessionServiceAbstract.java
@@ -0,0 +1,29 @@
+/**
+ *  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.core.metamodel.runtimecontext;
+
+public abstract class PersistenceSessionServiceAbstract implements PersistenceSessionService {
+
+    @Override
+    public void injectInto(final Object candidate) {
+        if (PersistenceSessionServiceAware.class.isAssignableFrom(candidate.getClass())) {
+            final PersistenceSessionServiceAware cast = PersistenceSessionServiceAware.class.cast(candidate);
+            cast.setPersistenceSessionService(this);
+        }
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/7e3fb256/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/PersistenceSessionServiceAware.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/PersistenceSessionServiceAware.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/PersistenceSessionServiceAware.java
new file mode 100644
index 0000000..69aec02
--- /dev/null
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/PersistenceSessionServiceAware.java
@@ -0,0 +1,29 @@
+/*
+ *  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.core.metamodel.runtimecontext;
+
+import org.apache.isis.applib.annotation.Programmatic;
+
+public interface PersistenceSessionServiceAware {
+
+    @Programmatic
+    public void setPersistenceSessionService(final PersistenceSessionService persistenceSessionService);
+
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/7e3fb256/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/RuntimeContext.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/RuntimeContext.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/RuntimeContext.java
index 00c5535..766659a 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/RuntimeContext.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/RuntimeContext.java
@@ -56,7 +56,7 @@ public interface RuntimeContext extends Injectable, ApplicationScopedComponent {
 
     public ServicesInjector getServicesInjector();
 
-    public ObjectPersistor getObjectPersistor();
+    public PersistenceSessionService getPersistenceSessionService();
 
     public ConfigurationService getConfigurationService();
 

http://git-wip-us.apache.org/repos/asf/isis/blob/7e3fb256/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/RuntimeContextAbstract.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/RuntimeContextAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/RuntimeContextAbstract.java
index 3d7c736..147b2f0 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/RuntimeContextAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/RuntimeContextAbstract.java
@@ -68,7 +68,7 @@ public abstract class RuntimeContextAbstract implements RuntimeContext, Specific
         getServicesInjector().injectInto(candidate);
         getConfigurationService().injectInto(candidate);
         getLocalizationProvider().injectInto(candidate);
-        getObjectPersistor().injectInto(candidate);
+        getPersistenceSessionService().injectInto(candidate);
         getMessageBrokerService().injectInto(candidate);
         getSpecificationLoader().injectInto(candidate);
     }

http://git-wip-us.apache.org/repos/asf/isis/blob/7e3fb256/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/noruntime/RuntimeContextNoRuntime.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/noruntime/RuntimeContextNoRuntime.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/noruntime/RuntimeContextNoRuntime.java
index ca8ef4e..814a784 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/noruntime/RuntimeContextNoRuntime.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/noruntime/RuntimeContextNoRuntime.java
@@ -33,8 +33,8 @@ import org.apache.isis.core.metamodel.runtimecontext.LocalizationDefault;
 import org.apache.isis.core.metamodel.runtimecontext.LocalizationProvider;
 import org.apache.isis.core.metamodel.runtimecontext.LocalizationProviderAbstract;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.core.metamodel.runtimecontext.ObjectPersistor;
-import org.apache.isis.core.metamodel.runtimecontext.ObjectPersistorAbstract;
+import org.apache.isis.core.metamodel.runtimecontext.PersistenceSessionService;
+import org.apache.isis.core.metamodel.runtimecontext.PersistenceSessionServiceAbstract;
 import org.apache.isis.core.metamodel.runtimecontext.MessageBrokerService;
 import org.apache.isis.core.metamodel.runtimecontext.MessageBrokerServiceAbstract;
 import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager;
@@ -58,7 +58,7 @@ public class RuntimeContextNoRuntime extends RuntimeContextAbstract {
     private final ServicesInjector servicesInjector;
     private final AuthenticationSessionProviderAbstract authenticationSessionProvider;
     private final AdapterManager adapterManager;
-    private final ObjectPersistorAbstract objectPersistor;
+    private final PersistenceSessionServiceAbstract objectPersistor;
     private final ConfigurationServiceAbstract domainObjectServices;
     private final LocalizationProviderAbstract localizationProvider;
     private final MessageBrokerServiceAbstract messageBrokerService;
@@ -156,7 +156,7 @@ public class RuntimeContextNoRuntime extends RuntimeContextAbstract {
             }
 
         };
-        objectPersistor = new ObjectPersistorAbstract() {
+        objectPersistor = new PersistenceSessionServiceAbstract() {
 
             @Override
             public ObjectAdapter createTransientInstance(final ObjectSpecification spec) {
@@ -304,7 +304,7 @@ public class RuntimeContextNoRuntime extends RuntimeContextAbstract {
     }
 
     @Override
-    public ObjectPersistor getObjectPersistor() {
+    public PersistenceSessionService getPersistenceSessionService() {
         return objectPersistor;
     }
 

http://git-wip-us.apache.org/repos/asf/isis/blob/7e3fb256/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 4f1c01f..46ac2ec 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,8 +27,8 @@ import org.apache.isis.applib.services.bookmark.BookmarkService;
 import org.apache.isis.applib.services.wrapper.WrapperFactory;
 import org.apache.isis.core.metamodel.runtimecontext.ConfigurationService;
 import org.apache.isis.core.metamodel.runtimecontext.ConfigurationServiceAware;
-import org.apache.isis.core.metamodel.runtimecontext.ObjectPersistor;
-import org.apache.isis.core.metamodel.runtimecontext.ObjectPersistorAware;
+import org.apache.isis.core.metamodel.runtimecontext.PersistenceSessionService;
+import org.apache.isis.core.metamodel.runtimecontext.PersistenceSessionServiceAware;
 import org.apache.isis.core.runtime.persistence.ObjectNotFoundException;
 
 /**
@@ -42,8 +42,9 @@ import org.apache.isis.core.runtime.persistence.ObjectNotFoundException;
 @DomainService(
         nature = NatureOfService.DOMAIN
 )
-public class BookmarkServiceDefault implements BookmarkService, ConfigurationServiceAware, ObjectPersistorAware {
-    private ObjectPersistor objectPersistor;
+public class BookmarkServiceDefault implements BookmarkService, ConfigurationServiceAware,
+        PersistenceSessionServiceAware {
+    private PersistenceSessionService persistenceSessionService;
 
     // //////////////////////////////////////
 
@@ -63,7 +64,7 @@ public class BookmarkServiceDefault implements BookmarkService, ConfigurationSer
             return null;
         }
         try {
-            return objectPersistor.lookup(bookmark);
+            return persistenceSessionService.lookup(bookmark);
         } catch(ObjectNotFoundException ex) {
             return null;
         }
@@ -86,7 +87,7 @@ public class BookmarkServiceDefault implements BookmarkService, ConfigurationSer
         if(domainObject == null) {
             return null;
         }
-        return objectPersistor.bookmarkFor(unwrapped(domainObject));
+        return persistenceSessionService.bookmarkFor(unwrapped(domainObject));
     }
 
     private Object unwrapped(Object domainObject) {
@@ -98,7 +99,7 @@ public class BookmarkServiceDefault implements BookmarkService, ConfigurationSer
     @Programmatic
     @Override
     public Bookmark bookmarkFor(Class<?> cls, String identifier) {
-        return objectPersistor.bookmarkFor(cls, identifier);
+        return persistenceSessionService.bookmarkFor(cls, identifier);
     }
 
     // //////////////////////////////////////
@@ -113,8 +114,8 @@ public class BookmarkServiceDefault implements BookmarkService, ConfigurationSer
     }
 
     @Override
-    public void setObjectPersistor(final ObjectPersistor objectPersistor) {
-        this.objectPersistor = objectPersistor;
+    public void setPersistenceSessionService(final PersistenceSessionService persistenceSessionService) {
+        this.persistenceSessionService = persistenceSessionService;
     }
 
     // //////////////////////////////////////

http://git-wip-us.apache.org/repos/asf/isis/blob/7e3fb256/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/container/DomainObjectContainerDefault.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/container/DomainObjectContainerDefault.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/container/DomainObjectContainerDefault.java
index 60a7b53..89bada2 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/container/DomainObjectContainerDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/container/DomainObjectContainerDefault.java
@@ -67,8 +67,8 @@ import org.apache.isis.core.metamodel.runtimecontext.LocalizationProvider;
 import org.apache.isis.core.metamodel.runtimecontext.LocalizationProviderAware;
 import org.apache.isis.core.metamodel.runtimecontext.MessageBrokerService;
 import org.apache.isis.core.metamodel.runtimecontext.MessageBrokerServiceAware;
-import org.apache.isis.core.metamodel.runtimecontext.ObjectPersistor;
-import org.apache.isis.core.metamodel.runtimecontext.ObjectPersistorAware;
+import org.apache.isis.core.metamodel.runtimecontext.PersistenceSessionService;
+import org.apache.isis.core.metamodel.runtimecontext.PersistenceSessionServiceAware;
 import org.apache.isis.core.metamodel.runtimecontext.ServicesInjector;
 import org.apache.isis.core.metamodel.runtimecontext.ServicesInjectorAware;
 import org.apache.isis.core.metamodel.services.container.query.QueryFindByPattern;
@@ -80,7 +80,7 @@ import org.apache.isis.core.metamodel.spec.SpecificationLoaderAware;
 @DomainService(nature = NatureOfService.DOMAIN)
 public class DomainObjectContainerDefault
         implements DomainObjectContainer, ConfigurationServiceAware,
-        ObjectPersistorAware, SpecificationLoaderAware, AuthenticationSessionProviderAware, AdapterManagerAware,
+        PersistenceSessionServiceAware, SpecificationLoaderAware, AuthenticationSessionProviderAware, AdapterManagerAware,
         ServicesInjectorAware, MessageBrokerServiceAware,
         LocalizationProviderAware, ExceptionRecognizer {
     private MessageBrokerService messageBrokerService;
@@ -171,11 +171,11 @@ public class DomainObjectContainerDefault
      * Factored out as a potential hook method for subclasses.
      */
     protected ObjectAdapter doCreateTransientInstance(final ObjectSpecification spec) {
-        return getObjectPersistor().createTransientInstance(spec);
+        return getPersistenceSessionService().createTransientInstance(spec);
     }
 
     protected ObjectAdapter doCreateViewModelInstance(final ObjectSpecification spec, final String memento) {
-        return getObjectPersistor().createViewModelInstance(spec, memento);
+        return getPersistenceSessionService().createViewModelInstance(spec, memento);
     }
 
     private ObjectAdapter doCreateAggregatedInstance(final ObjectSpecification spec, final Object parent) {
@@ -193,7 +193,7 @@ public class DomainObjectContainerDefault
             throw new RepositoryException("Object not persistent: " + adapter);
         }
 
-        getObjectPersistor().remove(adapter);
+        getPersistenceSessionService().remove(adapter);
     }
 
     @Programmatic
@@ -239,7 +239,7 @@ public class DomainObjectContainerDefault
     @Programmatic
     @Override
     public void resolve(final Object parent) {
-        getObjectPersistor().resolve(unwrapped(parent));
+        getPersistenceSessionService().resolve(unwrapped(parent));
     }
 
     /**
@@ -249,7 +249,7 @@ public class DomainObjectContainerDefault
     @Programmatic
     @Override
     public void resolve(final Object parent, final Object field) {
-        getObjectPersistor().resolve(unwrapped(parent), field);
+        getPersistenceSessionService().resolve(unwrapped(parent), field);
     }
 
     /**
@@ -268,13 +268,13 @@ public class DomainObjectContainerDefault
     @Programmatic
     @Override
     public boolean flush() {
-        return getObjectPersistor().flush();
+        return getPersistenceSessionService().flush();
     }
 
     @Programmatic
     @Override
     public void commit() {
-        getObjectPersistor().commit();
+        getPersistenceSessionService().commit();
     }
 
     //endregion
@@ -337,7 +337,7 @@ public class DomainObjectContainerDefault
         if (isPersistent(domainObject)) {
             throw new PersistFailedException("Object already persistent; OID=" + adapter.getOid());
         }
-        getObjectPersistor().makePersistent(adapter);
+        getPersistenceSessionService().makePersistent(adapter);
     }
 
     /**
@@ -561,7 +561,7 @@ public class DomainObjectContainerDefault
     }
 
     <T> List<T> submitQuery(final Query<T> query) {
-        final List<ObjectAdapter> allMatching = getObjectPersistor().allMatchingQuery(query);
+        final List<ObjectAdapter> allMatching = getPersistenceSessionService().allMatchingQuery(query);
         return ObjectAdapter.Util.unwrapT(allMatching);
     }
 
@@ -605,7 +605,7 @@ public class DomainObjectContainerDefault
     @SuppressWarnings("unchecked")
     public <T> T firstMatch(final Query<T> query) {
         flush(); // auto-flush any pending changes
-        final ObjectAdapter firstMatching = getObjectPersistor().firstMatchingQuery(query);
+        final ObjectAdapter firstMatching = getPersistenceSessionService().firstMatchingQuery(query);
         return (T) ObjectAdapter.Util.unwrap(firstMatching);
     }
 
@@ -753,7 +753,7 @@ public class DomainObjectContainerDefault
 
     //region > framework dependencies
 
-    private ObjectPersistor objectPersistor;
+    private PersistenceSessionService persistenceSessionService;
     private SpecificationLoader specificationLoader;
     private ConfigurationService configurationService;
     private AuthenticationSessionProvider authenticationSessionProvider;
@@ -802,14 +802,14 @@ public class DomainObjectContainerDefault
         this.adapterManager = adapterManager;
     }
 
-    protected ObjectPersistor getObjectPersistor() {
-        return objectPersistor;
+    protected PersistenceSessionService getPersistenceSessionService() {
+        return persistenceSessionService;
     }
 
     @Programmatic
     @Override
-    public void setObjectPersistor(final ObjectPersistor objectPersistor) {
-        this.objectPersistor = objectPersistor;
+    public void setPersistenceSessionService(final PersistenceSessionService persistenceSessionService) {
+        this.persistenceSessionService = persistenceSessionService;
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/isis/blob/7e3fb256/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectMemberDependencies.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectMemberDependencies.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectMemberDependencies.java
index 4e1c571..420b31d 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectMemberDependencies.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectMemberDependencies.java
@@ -16,7 +16,7 @@
  */
 package org.apache.isis.core.metamodel.spec.feature;
 
-import org.apache.isis.core.metamodel.runtimecontext.ObjectPersistor;
+import org.apache.isis.core.metamodel.runtimecontext.PersistenceSessionService;
 import org.apache.isis.core.metamodel.runtimecontext.MessageBrokerService;
 import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager;
 import org.apache.isis.core.metamodel.runtimecontext.ServicesInjector;
@@ -28,21 +28,21 @@ public class ObjectMemberDependencies {
     private final AdapterManager adapterManager;
     private final MessageBrokerService messageBrokerService;
     private final ServicesInjector servicesInjector;
-    private final ObjectPersistor objectPersistor;
+    private final PersistenceSessionService persistenceSessionService;
 
     public ObjectMemberDependencies(
             final SpecificationLoader specificationLoader,
             final AdapterManager adapterManager,
             final MessageBrokerService messageBrokerService,
             final ServicesInjector servicesInjector,
-            final ObjectPersistor objectPersistor) {
+            final PersistenceSessionService persistenceSessionService) {
 
         this.specificationLoader = specificationLoader;
         this.adapterManager = adapterManager;
         this.messageBrokerService = messageBrokerService;
 
         this.servicesInjector = servicesInjector;
-        this.objectPersistor = objectPersistor;
+        this.persistenceSessionService = persistenceSessionService;
     }
 
     public SpecificationLoader getSpecificationLoader() {
@@ -61,7 +61,7 @@ public class ObjectMemberDependencies {
         return messageBrokerService;
     }
 
-    public ObjectPersistor getObjectPersistor() {
-        return objectPersistor;
+    public PersistenceSessionService getPersistenceSessionService() {
+        return persistenceSessionService;
     }
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/isis/blob/7e3fb256/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/ObjectReflectorDefault.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/ObjectReflectorDefault.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/ObjectReflectorDefault.java
index b17c34c..f73d8a7 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/ObjectReflectorDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/ObjectReflectorDefault.java
@@ -456,7 +456,7 @@ public final class ObjectReflectorDefault implements SpecificationLoaderSpi, App
 
         final ObjectMemberDependencies objectMemberDependencies = new ObjectMemberDependencies(
                 specificationLookup, adapterManager, getRuntimeContext().getMessageBrokerService(), servicesInjector,
-                getRuntimeContext().getObjectPersistor());
+                getRuntimeContext().getPersistenceSessionService());
 
         // ... and create the specs
         if (FreeStandingList.class.isAssignableFrom(cls)) {

http://git-wip-us.apache.org/repos/asf/isis/blob/7e3fb256/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionParameterAbstract.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionParameterAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionParameterAbstract.java
index f84c55c..89da167 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionParameterAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionParameterAbstract.java
@@ -51,7 +51,7 @@ import org.apache.isis.core.metamodel.facets.param.defaults.ActionParameterDefau
 import org.apache.isis.core.metamodel.interactions.ActionArgumentContext;
 import org.apache.isis.core.metamodel.interactions.InteractionUtils;
 import org.apache.isis.core.metamodel.interactions.ValidityContext;
-import org.apache.isis.core.metamodel.runtimecontext.ObjectPersistor;
+import org.apache.isis.core.metamodel.runtimecontext.PersistenceSessionService;
 import org.apache.isis.core.metamodel.runtimecontext.MessageBrokerService;
 import org.apache.isis.core.metamodel.spec.DomainModelException;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
@@ -521,8 +521,8 @@ public abstract class ObjectActionParameterAbstract implements ObjectActionParam
         return parentAction.getMessageBrokerService();
     }
 
-    protected ObjectPersistor getObjectPersistor() {
-        return parentAction.getObjectPersistor();
+    protected PersistenceSessionService getObjectPersistor() {
+        return parentAction.getPersistenceSessionService();
     }
 
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/7e3fb256/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectMemberAbstract.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectMemberAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectMemberAbstract.java
index cc92d88..d12f138 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectMemberAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectMemberAbstract.java
@@ -27,7 +27,7 @@ import org.apache.isis.applib.annotation.Where;
 import org.apache.isis.applib.filter.Filter;
 import org.apache.isis.core.commons.lang.StringExtensions;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.core.metamodel.runtimecontext.ObjectPersistor;
+import org.apache.isis.core.metamodel.runtimecontext.PersistenceSessionService;
 import org.apache.isis.core.metamodel.runtimecontext.MessageBrokerService;
 import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager;
 import org.apache.isis.core.metamodel.consent.Consent;
@@ -57,7 +57,7 @@ import org.apache.isis.core.metamodel.specloader.collectiontyperegistry.Collecti
 
 public abstract class ObjectMemberAbstract implements ObjectMember {
 
-    private final ObjectPersistor objectPersistor;
+    private final PersistenceSessionService persistenceSessionService;
 
     public static ObjectSpecification getSpecification(final SpecificationLoader specificationLookup, final Class<?> type) {
         return type == null ? null : specificationLookup.loadSpecification(type);
@@ -91,7 +91,7 @@ public abstract class ObjectMemberAbstract implements ObjectMember {
         this.adapterManager = objectMemberDependencies.getAdapterManager();
         this.servicesInjector = objectMemberDependencies.getServicesInjector();
         this.messageBrokerService = objectMemberDependencies.getMessageBrokerService();
-        this.objectPersistor = objectMemberDependencies.getObjectPersistor();
+        this.persistenceSessionService = objectMemberDependencies.getPersistenceSessionService();
     }
 
 
@@ -351,8 +351,8 @@ public abstract class ObjectMemberAbstract implements ObjectMember {
         return messageBrokerService;
     }
 
-    public ObjectPersistor getObjectPersistor() {
-        return objectPersistor;
+    public PersistenceSessionService getPersistenceSessionService() {
+        return persistenceSessionService;
     }
 
     public CollectionTypeRegistry getCollectionTypeRegistry() {

http://git-wip-us.apache.org/repos/asf/isis/blob/7e3fb256/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/internal/RuntimeContextFromSession.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/internal/RuntimeContextFromSession.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/internal/RuntimeContextFromSession.java
index a8903aa..72262b4 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/internal/RuntimeContextFromSession.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/internal/RuntimeContextFromSession.java
@@ -35,8 +35,8 @@ import org.apache.isis.core.metamodel.runtimecontext.ConfigurationService;
 import org.apache.isis.core.metamodel.runtimecontext.ConfigurationServiceAbstract;
 import org.apache.isis.core.metamodel.runtimecontext.LocalizationProviderAbstract;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.core.metamodel.runtimecontext.ObjectPersistor;
-import org.apache.isis.core.metamodel.runtimecontext.ObjectPersistorAbstract;
+import org.apache.isis.core.metamodel.runtimecontext.PersistenceSessionService;
+import org.apache.isis.core.metamodel.runtimecontext.PersistenceSessionServiceAbstract;
 import org.apache.isis.core.metamodel.runtimecontext.MessageBrokerService;
 import org.apache.isis.core.metamodel.runtimecontext.MessageBrokerServiceAbstract;
 import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager;
@@ -70,7 +70,7 @@ public class RuntimeContextFromSession extends RuntimeContextAbstract {
 
     private final AuthenticationSessionProvider authenticationSessionProvider;
     private final AdapterManager adapterManager;
-    private final ObjectPersistor objectPersistor;
+    private final PersistenceSessionService persistenceSessionService;
     private final MessageBrokerService messageBrokerService;
     private final ConfigurationService configurationService;
     private final LocalizationProviderAbstract localizationProvider;
@@ -145,7 +145,7 @@ public class RuntimeContextFromSession extends RuntimeContextAbstract {
 
         };
 
-        this.objectPersistor = new ObjectPersistorAbstract() {
+        this.persistenceSessionService = new PersistenceSessionServiceAbstract() {
             @Override
             public void makePersistent(final ObjectAdapter adapter) {
                 getPersistenceSession().makePersistentInTransaction(adapter);
@@ -297,8 +297,8 @@ public class RuntimeContextFromSession extends RuntimeContextAbstract {
     }
 
     @Override
-    public ObjectPersistor getObjectPersistor() {
-        return objectPersistor;
+    public PersistenceSessionService getPersistenceSessionService() {
+        return persistenceSessionService;
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/isis/blob/7e3fb256/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSession.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSession.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSession.java
index 3d94992..9730f96 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSession.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSession.java
@@ -53,8 +53,8 @@ import org.apache.isis.core.commons.util.ToString;
 import org.apache.isis.core.metamodel.runtimecontext.ConfigurationService;
 import org.apache.isis.core.metamodel.runtimecontext.ConfigurationServiceAware;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.core.metamodel.runtimecontext.ObjectPersistor;
-import org.apache.isis.core.metamodel.runtimecontext.ObjectPersistorAware;
+import org.apache.isis.core.metamodel.runtimecontext.PersistenceSessionService;
+import org.apache.isis.core.metamodel.runtimecontext.PersistenceSessionServiceAware;
 import org.apache.isis.core.metamodel.runtimecontext.MessageBrokerService;
 import org.apache.isis.core.metamodel.runtimecontext.MessageBrokerServiceAware;
 import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager;
@@ -121,7 +121,7 @@ import static org.hamcrest.CoreMatchers.notNullValue;
 import static org.hamcrest.CoreMatchers.nullValue;
 
 public class PersistenceSession implements TransactionalResource, SessionScopedComponent, DebuggableWithTitle, AdapterManager,
-        MessageBrokerService, ObjectPersistor, ConfigurationService {
+        MessageBrokerService, PersistenceSessionService, ConfigurationService {
 
     private static final Logger LOG = LoggerFactory.getLogger(PersistenceSession.class);
 
@@ -369,9 +369,9 @@ public class PersistenceSession implements TransactionalResource, SessionScopedC
             final MessageBrokerServiceAware cast = MessageBrokerServiceAware.class.cast(candidate);
             cast.setMessageBrokerService(this);
         }
-        if (ObjectPersistorAware.class.isAssignableFrom(candidate.getClass())) {
-            final ObjectPersistorAware cast = ObjectPersistorAware.class.cast(candidate);
-            cast.setObjectPersistor(this);
+        if (PersistenceSessionServiceAware.class.isAssignableFrom(candidate.getClass())) {
+            final PersistenceSessionServiceAware cast = PersistenceSessionServiceAware.class.cast(candidate);
+            cast.setPersistenceSessionService(this);
         }
         if (ConfigurationServiceAware.class.isAssignableFrom(candidate.getClass())) {
             final ConfigurationServiceAware cast = ConfigurationServiceAware.class.cast(candidate);

http://git-wip-us.apache.org/repos/asf/isis/blob/7e3fb256/core/runtime/src/test/java/org/apache/isis/core/runtime/system/ObjectActionImplTest.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/test/java/org/apache/isis/core/runtime/system/ObjectActionImplTest.java b/core/runtime/src/test/java/org/apache/isis/core/runtime/system/ObjectActionImplTest.java
index 0010d2b..4d00b29 100644
--- a/core/runtime/src/test/java/org/apache/isis/core/runtime/system/ObjectActionImplTest.java
+++ b/core/runtime/src/test/java/org/apache/isis/core/runtime/system/ObjectActionImplTest.java
@@ -27,7 +27,7 @@ import org.junit.Test;
 
 import org.apache.isis.applib.Identifier;
 import org.apache.isis.core.commons.authentication.AuthenticationSessionProvider;
-import org.apache.isis.core.metamodel.runtimecontext.ObjectPersistor;
+import org.apache.isis.core.metamodel.runtimecontext.PersistenceSessionService;
 import org.apache.isis.core.metamodel.runtimecontext.MessageBrokerService;
 import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager;
 import org.apache.isis.core.metamodel.facets.FacetedMethod;
@@ -67,7 +67,7 @@ public class ObjectActionImplTest {
     @Mock
     private MessageBrokerService mockMessageBrokerService;
     @Mock
-    private ObjectPersistor mockObjectPersistor;
+    private PersistenceSessionService mockPersistenceSessionService;
 
     @Before
     public void setUp() throws Exception {
@@ -80,7 +80,8 @@ public class ObjectActionImplTest {
         });
 
         action = new ObjectActionImpl(mockFacetedMethod, new ObjectMemberDependencies(
-                mockSpecificationLookup, mockAdapterManager, mockMessageBrokerService, mockServicesInjector, mockObjectPersistor));
+                mockSpecificationLookup, mockAdapterManager, mockMessageBrokerService, mockServicesInjector,
+                mockPersistenceSessionService));
     }
 
 

http://git-wip-us.apache.org/repos/asf/isis/blob/7e3fb256/core/runtime/src/test/java/org/apache/isis/core/runtime/system/OneToManyAssociationImplTest.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/test/java/org/apache/isis/core/runtime/system/OneToManyAssociationImplTest.java b/core/runtime/src/test/java/org/apache/isis/core/runtime/system/OneToManyAssociationImplTest.java
index 0176415..b9a6af2 100644
--- a/core/runtime/src/test/java/org/apache/isis/core/runtime/system/OneToManyAssociationImplTest.java
+++ b/core/runtime/src/test/java/org/apache/isis/core/runtime/system/OneToManyAssociationImplTest.java
@@ -28,7 +28,7 @@ import org.junit.Test;
 import org.apache.isis.applib.Identifier;
 import org.apache.isis.core.commons.authentication.AuthenticationSessionProvider;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.core.metamodel.runtimecontext.ObjectPersistor;
+import org.apache.isis.core.metamodel.runtimecontext.PersistenceSessionService;
 import org.apache.isis.core.metamodel.runtimecontext.MessageBrokerService;
 import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager;
 import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
@@ -77,7 +77,7 @@ public class OneToManyAssociationImplTest {
     @Mock
     private MessageBrokerService mockMessageBrokerService;
     @Mock
-    private ObjectPersistor mockObjectPersistor;
+    private PersistenceSessionService mockPersistenceSessionService;
     @Mock
     private FacetedMethod mockPeer;
     @Mock
@@ -95,7 +95,8 @@ public class OneToManyAssociationImplTest {
         allowingPeerToReturnIdentifier();
         allowingSpecLoaderToReturnSpecs();
         association = new OneToManyAssociationImpl(mockPeer, new ObjectMemberDependencies(
-                mockSpecificationLookup, mockAdapterManager, mockMessageBrokerService, mockServicesInjector, mockObjectPersistor));
+                mockSpecificationLookup, mockAdapterManager, mockMessageBrokerService, mockServicesInjector,
+                mockPersistenceSessionService));
     }
 
     private void allowingSpecLoaderToReturnSpecs() {

http://git-wip-us.apache.org/repos/asf/isis/blob/7e3fb256/core/wrapper/src/main/java/org/apache/isis/core/wrapper/WrapperFactoryDefault.java
----------------------------------------------------------------------
diff --git a/core/wrapper/src/main/java/org/apache/isis/core/wrapper/WrapperFactoryDefault.java b/core/wrapper/src/main/java/org/apache/isis/core/wrapper/WrapperFactoryDefault.java
index 907f8a4..6fa5312 100644
--- a/core/wrapper/src/main/java/org/apache/isis/core/wrapper/WrapperFactoryDefault.java
+++ b/core/wrapper/src/main/java/org/apache/isis/core/wrapper/WrapperFactoryDefault.java
@@ -50,8 +50,8 @@ import org.apache.isis.applib.services.wrapper.WrappingObject;
 import org.apache.isis.applib.services.wrapper.listeners.InteractionListener;
 import org.apache.isis.core.commons.authentication.AuthenticationSessionProvider;
 import org.apache.isis.core.commons.authentication.AuthenticationSessionProviderAware;
-import org.apache.isis.core.metamodel.runtimecontext.ObjectPersistor;
-import org.apache.isis.core.metamodel.runtimecontext.ObjectPersistorAware;
+import org.apache.isis.core.metamodel.runtimecontext.PersistenceSessionService;
+import org.apache.isis.core.metamodel.runtimecontext.PersistenceSessionServiceAware;
 import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager;
 import org.apache.isis.core.metamodel.adapter.mgr.AdapterManagerAware;
 import org.apache.isis.core.metamodel.spec.SpecificationLoader;
@@ -74,7 +74,7 @@ import org.apache.isis.core.wrapper.proxy.ProxyCreator;
  */
 @DomainService(nature = NatureOfService.DOMAIN)
 public class WrapperFactoryDefault implements WrapperFactory, AuthenticationSessionProviderAware,
-        SpecificationLoaderAware, AdapterManagerAware, ObjectPersistorAware {
+        SpecificationLoaderAware, AdapterManagerAware, PersistenceSessionServiceAware {
 
     private final List<InteractionListener> listeners = new ArrayList<InteractionListener>();
     private final Map<Class<? extends InteractionEvent>, InteractionEventDispatcher> dispatchersByEventClass = new HashMap<Class<? extends InteractionEvent>, InteractionEventDispatcher>();
@@ -82,7 +82,7 @@ public class WrapperFactoryDefault implements WrapperFactory, AuthenticationSess
     private AuthenticationSessionProvider authenticationSessionProvider;
     private SpecificationLoader specificationLoader;
     private AdapterManager adapterManager;
-    private ObjectPersistor objectPersistor;
+    private PersistenceSessionService persistenceSessionService;
 
     private final ProxyContextHandler proxyContextHandler;
 
@@ -257,7 +257,7 @@ public class WrapperFactoryDefault implements WrapperFactory, AuthenticationSess
     }
 
     protected <T> T createProxy(final T domainObject, final ExecutionMode mode) {
-        return proxyContextHandler.proxy(domainObject, this, mode, getAuthenticationSessionProvider(), getSpecificationLoader(), getAdapterManager(), getObjectPersistor());
+        return proxyContextHandler.proxy(domainObject, this, mode, getAuthenticationSessionProvider(), getSpecificationLoader(), getAdapterManager(), getPersistenceSessionService());
     }
 
     @Override
@@ -336,13 +336,13 @@ public class WrapperFactoryDefault implements WrapperFactory, AuthenticationSess
         this.specificationLoader = specificationLookup;
     }
 
-    protected ObjectPersistor getObjectPersistor() {
-        return objectPersistor;
+    protected PersistenceSessionService getPersistenceSessionService() {
+        return persistenceSessionService;
     }
     @Programmatic
     @Override
-    public void setObjectPersistor(final ObjectPersistor objectPersistor) {
-        this.objectPersistor = objectPersistor;
+    public void setPersistenceSessionService(final PersistenceSessionService persistenceSessionService) {
+        this.persistenceSessionService = persistenceSessionService;
     }
 
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/7e3fb256/core/wrapper/src/main/java/org/apache/isis/core/wrapper/handlers/DomainObjectInvocationHandler.java
----------------------------------------------------------------------
diff --git a/core/wrapper/src/main/java/org/apache/isis/core/wrapper/handlers/DomainObjectInvocationHandler.java b/core/wrapper/src/main/java/org/apache/isis/core/wrapper/handlers/DomainObjectInvocationHandler.java
index c071f0d..e7545a6 100644
--- a/core/wrapper/src/main/java/org/apache/isis/core/wrapper/handlers/DomainObjectInvocationHandler.java
+++ b/core/wrapper/src/main/java/org/apache/isis/core/wrapper/handlers/DomainObjectInvocationHandler.java
@@ -53,7 +53,7 @@ import org.apache.isis.applib.services.wrapper.WrappingObject;
 import org.apache.isis.core.commons.authentication.AuthenticationSession;
 import org.apache.isis.core.commons.authentication.AuthenticationSessionProvider;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.core.metamodel.runtimecontext.ObjectPersistor;
+import org.apache.isis.core.metamodel.runtimecontext.PersistenceSessionService;
 import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager;
 import org.apache.isis.core.metamodel.consent.Consent;
 import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
@@ -78,7 +78,7 @@ public class DomainObjectInvocationHandler<T> extends DelegatingInvocationHandle
     private final AuthenticationSessionProvider authenticationSessionProvider;
     private final SpecificationLoader specificationLoader;
     private final AdapterManager adapterManager;
-    private final ObjectPersistor objectPersistor;
+    private final PersistenceSessionService persistenceSessionService;
 
     private final ProxyContextHandler proxy;
     private final ExecutionMode executionMode;
@@ -124,7 +124,7 @@ public class DomainObjectInvocationHandler<T> extends DelegatingInvocationHandle
             final AuthenticationSessionProvider authenticationSessionProvider,
             final SpecificationLoader specificationLoader,
             final AdapterManager adapterManager,
-            final ObjectPersistor objectPersistor,
+            final PersistenceSessionService persistenceSessionService,
             final ProxyContextHandler proxy) {
         super(delegate, wrapperFactory, mode);
 
@@ -132,7 +132,7 @@ public class DomainObjectInvocationHandler<T> extends DelegatingInvocationHandle
         this.authenticationSessionProvider = authenticationSessionProvider;
         this.specificationLoader = specificationLoader;
         this.adapterManager = adapterManager;
-        this.objectPersistor = objectPersistor;
+        this.persistenceSessionService = persistenceSessionService;
         this.executionMode = mode;
 
         try {
@@ -357,7 +357,7 @@ public class DomainObjectInvocationHandler<T> extends DelegatingInvocationHandle
 
         if (getExecutionMode().shouldExecute()) {
             if (targetAdapter.isTransient()) {
-                getObjectPersistor().makePersistent(targetAdapter);
+                getPersistenceSessionService().makePersistent(targetAdapter);
             }
         }
         return null;
@@ -794,8 +794,8 @@ public class DomainObjectInvocationHandler<T> extends DelegatingInvocationHandle
         return adapterManager;
     }
 
-    protected ObjectPersistor getObjectPersistor() {
-        return objectPersistor;
+    protected PersistenceSessionService getPersistenceSessionService() {
+        return persistenceSessionService;
     }
 
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/7e3fb256/core/wrapper/src/main/java/org/apache/isis/core/wrapper/handlers/ProxyContextHandler.java
----------------------------------------------------------------------
diff --git a/core/wrapper/src/main/java/org/apache/isis/core/wrapper/handlers/ProxyContextHandler.java b/core/wrapper/src/main/java/org/apache/isis/core/wrapper/handlers/ProxyContextHandler.java
index ca9ce5e..049fdd8 100644
--- a/core/wrapper/src/main/java/org/apache/isis/core/wrapper/handlers/ProxyContextHandler.java
+++ b/core/wrapper/src/main/java/org/apache/isis/core/wrapper/handlers/ProxyContextHandler.java
@@ -26,7 +26,7 @@ import org.apache.isis.applib.services.wrapper.WrapperFactory;
 import org.apache.isis.applib.services.wrapper.WrapperFactory.ExecutionMode;
 import org.apache.isis.core.commons.authentication.AuthenticationSessionProvider;
 import org.apache.isis.core.commons.ensure.Ensure;
-import org.apache.isis.core.metamodel.runtimecontext.ObjectPersistor;
+import org.apache.isis.core.metamodel.runtimecontext.PersistenceSessionService;
 import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager;
 import org.apache.isis.core.metamodel.spec.SpecificationLoader;
 import org.apache.isis.core.metamodel.spec.feature.OneToManyAssociation;
@@ -44,15 +44,16 @@ public class ProxyContextHandler {
         this.proxyCreator = proxyCreator;
     }
     
-    public <T> T proxy(final T domainObject, final WrapperFactory wrapperFactory, final ExecutionMode mode, final AuthenticationSessionProvider authenticationSessionProvider, final SpecificationLoader specificationLookup, final AdapterManager adapterManager, final ObjectPersistor objectPersistor) {
+    public <T> T proxy(final T domainObject, final WrapperFactory wrapperFactory, final ExecutionMode mode, final AuthenticationSessionProvider authenticationSessionProvider, final SpecificationLoader specificationLookup, final AdapterManager adapterManager, final PersistenceSessionService persistenceSessionService) {
 
         Ensure.ensureThatArg(wrapperFactory, is(not(nullValue())));
         Ensure.ensureThatArg(authenticationSessionProvider, is(not(nullValue())));
         Ensure.ensureThatArg(specificationLookup, is(not(nullValue())));
         Ensure.ensureThatArg(adapterManager, is(not(nullValue())));
-        Ensure.ensureThatArg(objectPersistor, is(not(nullValue())));
+        Ensure.ensureThatArg(persistenceSessionService, is(not(nullValue())));
 
-        final DomainObjectInvocationHandler<T> invocationHandler = new DomainObjectInvocationHandler<T>(domainObject, wrapperFactory, mode, authenticationSessionProvider, specificationLookup, adapterManager, objectPersistor, this);
+        final DomainObjectInvocationHandler<T> invocationHandler = new DomainObjectInvocationHandler<T>(domainObject, wrapperFactory, mode, authenticationSessionProvider, specificationLookup, adapterManager,
+                persistenceSessionService, this);
 
         return proxyCreator.instantiateProxy(invocationHandler);
     }

http://git-wip-us.apache.org/repos/asf/isis/blob/7e3fb256/core/wrapper/src/test/java/org/apache/isis/progmodel/wrapper/WrapperFactoryDefaultTest_wrappedObject.java
----------------------------------------------------------------------
diff --git a/core/wrapper/src/test/java/org/apache/isis/progmodel/wrapper/WrapperFactoryDefaultTest_wrappedObject.java b/core/wrapper/src/test/java/org/apache/isis/progmodel/wrapper/WrapperFactoryDefaultTest_wrappedObject.java
index 8a8f0a1..2ab0bcc 100644
--- a/core/wrapper/src/test/java/org/apache/isis/progmodel/wrapper/WrapperFactoryDefaultTest_wrappedObject.java
+++ b/core/wrapper/src/test/java/org/apache/isis/progmodel/wrapper/WrapperFactoryDefaultTest_wrappedObject.java
@@ -35,7 +35,7 @@ import org.apache.isis.applib.services.wrapper.InvalidException;
 import org.apache.isis.core.commons.authentication.AuthenticationSessionProvider;
 import org.apache.isis.core.commons.config.IsisConfiguration;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.core.metamodel.runtimecontext.ObjectPersistor;
+import org.apache.isis.core.metamodel.runtimecontext.PersistenceSessionService;
 import org.apache.isis.core.metamodel.runtimecontext.MessageBrokerService;
 import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager;
 import org.apache.isis.core.metamodel.deployment.DeploymentCategory;
@@ -81,7 +81,7 @@ public class WrapperFactoryDefaultTest_wrappedObject {
     @Mock
     private AuthenticationSessionProvider mockAuthenticationSessionProvider;
     @Mock
-    private ObjectPersistor mockObjectPersistor;
+    private PersistenceSessionService mockPersistenceSessionService;
     @Mock
     private MessageBrokerService mockMessageBrokerService;
     @Mock
@@ -124,7 +124,8 @@ public class WrapperFactoryDefaultTest_wrappedObject {
     public void setUp() {
 
         objectMemberDependencies = new ObjectMemberDependencies(
-                mockSpecificationLoader, mockAdapterManager, mockMessageBrokerService, mockServicesInjector, mockObjectPersistor);
+                mockSpecificationLoader, mockAdapterManager, mockMessageBrokerService, mockServicesInjector,
+                mockPersistenceSessionService);
         
         employeeRepository = new EmployeeRepositoryImpl();
 
@@ -135,7 +136,7 @@ public class WrapperFactoryDefaultTest_wrappedObject {
         wrapperFactory = createWrapperFactory();
         wrapperFactory.setAdapterManager(mockAdapterManager);
         wrapperFactory.setAuthenticationSessionProvider(mockAuthenticationSessionProvider);
-        wrapperFactory.setObjectPersistor(mockObjectPersistor);
+        wrapperFactory.setPersistenceSessionService(mockPersistenceSessionService);
         wrapperFactory.setSpecificationLoader(mockSpecificationLoader);
 
         context.checking(new Expectations() {

http://git-wip-us.apache.org/repos/asf/isis/blob/7e3fb256/core/wrapper/src/test/java/org/apache/isis/progmodel/wrapper/WrapperFactoryDefaultTest_wrappedObject_transient.java
----------------------------------------------------------------------
diff --git a/core/wrapper/src/test/java/org/apache/isis/progmodel/wrapper/WrapperFactoryDefaultTest_wrappedObject_transient.java b/core/wrapper/src/test/java/org/apache/isis/progmodel/wrapper/WrapperFactoryDefaultTest_wrappedObject_transient.java
index 1890a4d..4d91efa 100644
--- a/core/wrapper/src/test/java/org/apache/isis/progmodel/wrapper/WrapperFactoryDefaultTest_wrappedObject_transient.java
+++ b/core/wrapper/src/test/java/org/apache/isis/progmodel/wrapper/WrapperFactoryDefaultTest_wrappedObject_transient.java
@@ -41,7 +41,7 @@ import org.apache.isis.applib.services.wrapper.DisabledException;
 import org.apache.isis.core.commons.authentication.AuthenticationSessionProvider;
 import org.apache.isis.core.commons.config.IsisConfiguration;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.core.metamodel.runtimecontext.ObjectPersistor;
+import org.apache.isis.core.metamodel.runtimecontext.PersistenceSessionService;
 import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager;
 import org.apache.isis.core.metamodel.consent.Allow;
 import org.apache.isis.core.metamodel.consent.Consent;
@@ -84,7 +84,7 @@ public class WrapperFactoryDefaultTest_wrappedObject_transient {
     @Mock
     private IsisConfiguration mockConfiguration;
     @Mock
-    private ObjectPersistor mockObjectPersistor;
+    private PersistenceSessionService mockPersistenceSessionService;
     @Mock
     private SpecificationLoader mockSpecificationLoader;
 
@@ -125,7 +125,7 @@ public class WrapperFactoryDefaultTest_wrappedObject_transient {
         wrapperFactory = createWrapperFactory();
         wrapperFactory.setAdapterManager(mockAdapterManager);
         wrapperFactory.setAuthenticationSessionProvider(mockAuthenticationSessionProvider);
-        wrapperFactory.setObjectPersistor(mockObjectPersistor);
+        wrapperFactory.setPersistenceSessionService(mockPersistenceSessionService);
         wrapperFactory.setSpecificationLoader(mockSpecificationLoader);
         
         context.checking(new Expectations() {