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

[24/50] [abbrv] isis git commit: ISIS-1194: moving methods from QuerySubmitter interface to ObjectPersistor interface.

ISIS-1194: moving methods from QuerySubmitter interface to ObjectPersistor interface.

QuerySubmitter is now empty


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

Branch: refs/heads/master
Commit: cf98021e7473e72db8d804a1b4fc814665c9f4f6
Parents: c61e5b1
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Mon Sep 14 08:52:05 2015 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Mon Sep 14 08:52:05 2015 +0100

----------------------------------------------------------------------
 .../ChoicesFacetFromBoundedAbstract.java        | 18 ++++++------
 .../ChoicesFacetFromBoundedMarkerInterface.java |  6 ++--
 ...sFacetFromBoundedMarkerInterfaceFactory.java | 16 +++++------
 .../DomainObjectAnnotationFacetFactory.java     | 23 ++++++++-------
 .../ChoicesFacetForDomainObjectAnnotation.java  | 11 ++++---
 .../ChoicesFacetFromBoundedAnnotation.java      | 11 ++++---
 .../runtimecontext/DomainObjectServices.java    |  3 --
 .../runtimecontext/ObjectPersistor.java         | 21 ++++++++++++++
 .../runtimecontext/QuerySubmitter.java          | 20 -------------
 .../noruntime/RuntimeContextNoRuntime.java      | 20 +++++++------
 .../container/DomainObjectContainerDefault.java | 30 ++++++--------------
 .../spec/feature/ObjectMemberDependencies.java  | 10 ++++++-
 .../specloader/ObjectReflectorDefault.java      |  3 +-
 .../specimpl/ObjectActionParameterAbstract.java |  9 ++++--
 .../specimpl/ObjectMemberAbstract.java          |  8 ++++++
 .../specimpl/ObjectAssociationAbstractTest.java |  8 +++---
 ...ectAssociationAbstractTest_alwaysHidden.java |  2 +-
 .../internal/RuntimeContextFromSession.java     | 28 +++++++++---------
 .../runtime/system/ObjectActionImplTest.java    |  5 +++-
 .../system/ObjectMemberAbstractTest.java        |  2 +-
 .../system/OneToManyAssociationImplTest.java    |  5 +++-
 ...WrapperFactoryDefaultTest_wrappedObject.java |  2 +-
 22 files changed, 136 insertions(+), 125 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/cf98021e/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 6a4b7cb..c77017f 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
@@ -31,7 +31,6 @@ import org.apache.isis.applib.query.QueryFindAllInstances;
 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.QuerySubmitter;
 import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
 import org.apache.isis.core.metamodel.deployment.DeploymentCategory;
 import org.apache.isis.core.metamodel.facetapi.Facet;
@@ -43,6 +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.spec.ObjectSpecification;
 
 /**
@@ -67,21 +67,21 @@ public abstract class ChoicesFacetFromBoundedAbstract
 
     private final DeploymentCategory deploymentCategory;
     private final AuthenticationSessionProvider authenticationSessionProvider;
-    private final QuerySubmitter querySubmitter;
-    
+    private final ObjectPersistor objectPersistor;
+
     public ChoicesFacetFromBoundedAbstract(
             final FacetHolder holder,
             final DeploymentCategory deploymentCategory,
             final AuthenticationSessionProvider authenticationSessionProvider,
-            final QuerySubmitter querySubmitter) {
+            final ObjectPersistor objectPersistor) {
         super(type(), holder, Derivation.NOT_DERIVED);
         this.deploymentCategory = deploymentCategory;
         this.authenticationSessionProvider = authenticationSessionProvider;
-        this.querySubmitter = querySubmitter;
+        this.objectPersistor = objectPersistor;
     }
 
-    protected QuerySubmitter getQuerySubmitter() {
-        return querySubmitter;
+    public ObjectPersistor getObjectPersistor() {
+        return objectPersistor;
     }
 
     @Override
@@ -127,10 +127,8 @@ public abstract class ChoicesFacetFromBoundedAbstract
             ObjectAdapter adapter,
             final InteractionInitiatedBy interactionInitiatedBy) {
         final Query query = new QueryFindAllInstances(getObjectSpecification().getFullIdentifier());
-        final List<ObjectAdapter> allInstancesAdapter = getQuerySubmitter().allMatchingQuery(query);
+        final List<ObjectAdapter> allInstancesAdapter = getObjectPersistor().allMatchingQuery(query);
 
-        final AuthenticationSession authenticationSession = getAuthenticationSession();
-        final DeploymentCategory deploymentCategory = getDeploymentCategory();
         final List<ObjectAdapter> adapters =
                 ObjectAdapter.Util.visibleAdapters(
                     allInstancesAdapter, interactionInitiatedBy);

http://git-wip-us.apache.org/repos/asf/isis/blob/cf98021e/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 d8ba20b..4ba9087 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
@@ -20,10 +20,10 @@
 package org.apache.isis.core.metamodel.facets.object.choices.boundedmarkerifc;
 
 import org.apache.isis.core.commons.authentication.AuthenticationSessionProvider;
-import org.apache.isis.core.metamodel.runtimecontext.QuerySubmitter;
 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;
 
 public class ChoicesFacetFromBoundedMarkerInterface extends ChoicesFacetFromBoundedAbstract {
 
@@ -31,8 +31,8 @@ public class ChoicesFacetFromBoundedMarkerInterface extends ChoicesFacetFromBoun
             final FacetHolder holder,
             final DeploymentCategory deploymentCategory,
             final AuthenticationSessionProvider authenticationSessionProvider,
-            final QuerySubmitter querySubmitter) {
-        super(holder, deploymentCategory, authenticationSessionProvider, querySubmitter);
+            final ObjectPersistor objectPersistor) {
+        super(holder, deploymentCategory, authenticationSessionProvider, objectPersistor);
     }
 
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/cf98021e/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 1e57ba5..98b2e39 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,17 @@ 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.QuerySubmitter;
-import org.apache.isis.core.metamodel.runtimecontext.QuerySubmitterAware;
+import org.apache.isis.core.metamodel.runtimecontext.ObjectPersistor;
+import org.apache.isis.core.metamodel.runtimecontext.ObjectPersistorAware;
 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 QuerySubmitterAware {
+public class ChoicesFacetFromBoundedMarkerInterfaceFactory extends FacetFactoryAbstract implements ObjectPersistorAware {
 
-    private QuerySubmitter querySubmitter;
+    private ObjectPersistor objectPersistor;
 
     public ChoicesFacetFromBoundedMarkerInterfaceFactory() {
         super(FeatureType.OBJECTS_ONLY);
@@ -49,8 +49,7 @@ public class ChoicesFacetFromBoundedMarkerInterfaceFactory extends FacetFactoryA
             final FacetHolder holder) {
         return implementsMarker
                 ? new ChoicesFacetFromBoundedMarkerInterface(
-                    holder, getDeploymentCategory(), getAuthenticationSessionProvider(), querySubmitter)
-                : null;
+                    holder, getDeploymentCategory(), getAuthenticationSessionProvider(),objectPersistor) : null;
     }
 
     public boolean recognizes(final Method method) {
@@ -58,8 +57,7 @@ public class ChoicesFacetFromBoundedMarkerInterfaceFactory extends FacetFactoryA
     }
 
     @Override
-    public void setQuerySubmitter(QuerySubmitter querySubmitter) {
-        this.querySubmitter = querySubmitter;
+    public void setObjectPersistor(final ObjectPersistor objectPersistor) {
+        this.objectPersistor = objectPersistor;
     }
-
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/cf98021e/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 91c0597..e3f1dea 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.QuerySubmitter;
-import org.apache.isis.core.metamodel.runtimecontext.QuerySubmitterAware;
+import org.apache.isis.core.metamodel.runtimecontext.ObjectPersistor;
+import org.apache.isis.core.metamodel.runtimecontext.ObjectPersistorAware;
 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;
@@ -73,7 +73,8 @@ import org.apache.isis.core.metamodel.specloader.validator.ValidationFailures;
 import org.apache.isis.objectstore.jdo.metamodel.facets.object.persistencecapable.JdoPersistenceCapableFacet;
 
 
-public class DomainObjectAnnotationFacetFactory extends FacetFactoryAbstract implements IsisConfigurationAware, AdapterManagerAware, ServicesInjectorAware, SpecificationLoaderAware, QuerySubmitterAware, MetaModelValidatorRefiner {
+public class DomainObjectAnnotationFacetFactory extends FacetFactoryAbstract implements IsisConfigurationAware, AdapterManagerAware, ServicesInjectorAware, SpecificationLoaderAware, MetaModelValidatorRefiner,
+        ObjectPersistorAware {
 
     private final MetaModelValidatorForDeprecatedAnnotation auditedValidator = new MetaModelValidatorForDeprecatedAnnotation(Audited.class);
     private final MetaModelValidatorForDeprecatedAnnotation publishedObjectValidator = new MetaModelValidatorForDeprecatedAnnotation(PublishedObject.class);
@@ -86,7 +87,7 @@ public class DomainObjectAnnotationFacetFactory extends FacetFactoryAbstract imp
     private IsisConfiguration configuration;
     private AdapterManager adapterManager;
     private ServicesInjector servicesInjector;
-    private QuerySubmitter querySubmitter;
+    private ObjectPersistor objectPersistor;
 
     public DomainObjectAnnotationFacetFactory() {
         super(FeatureType.OBJECTS_ONLY);
@@ -154,7 +155,8 @@ public class DomainObjectAnnotationFacetFactory extends FacetFactoryAbstract imp
         PublishedObjectFacet publishedObjectFacet;
 
         // check for the deprecated @PublishedObject annotation first
-        final PublishedObject publishedObject = Annotations.getAnnotation(processClassContext.getCls(), PublishedObject.class);
+        final PublishedObject publishedObject = Annotations.getAnnotation(processClassContext.getCls(),
+                PublishedObject.class);
         publishedObjectFacet = publishedObjectValidator.flagIfPresent(
                                     PublishedObjectFacetForPublishedObjectAnnotation.create(publishedObject, facetHolder));
 
@@ -205,13 +207,13 @@ public class DomainObjectAnnotationFacetFactory extends FacetFactoryAbstract imp
         Facet facet = boundedValidator.flagIfPresent(
             ChoicesFacetFromBoundedAnnotation.create(annotation, processClassContext.getFacetHolder(),
                     getDeploymentCategory(),
-                    getAuthenticationSessionProvider(), querySubmitter
-            ));
+                    getAuthenticationSessionProvider(),
+                    objectPersistor));
 
         // else check from @DomainObject(bounded=...)
         if(facet == null) {
             facet = ChoicesFacetForDomainObjectAnnotation.create(domainObject, facetHolder, getDeploymentCategory(),
-                    getAuthenticationSessionProvider(), querySubmitter);
+                    getAuthenticationSessionProvider(), objectPersistor);
         }
 
         // then add
@@ -345,8 +347,7 @@ public class DomainObjectAnnotationFacetFactory extends FacetFactoryAbstract imp
     }
 
     @Override
-    public void setQuerySubmitter(final QuerySubmitter querySubmitter) {
-        this.querySubmitter = querySubmitter;
+    public void setObjectPersistor(final ObjectPersistor objectPersistor) {
+        this.objectPersistor = objectPersistor;
     }
-
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/cf98021e/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 53747b7..df8e339 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
@@ -21,11 +21,11 @@ package org.apache.isis.core.metamodel.facets.object.domainobject.choices;
 
 import org.apache.isis.applib.annotation.DomainObject;
 import org.apache.isis.core.commons.authentication.AuthenticationSessionProvider;
-import org.apache.isis.core.metamodel.runtimecontext.QuerySubmitter;
 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;
 
 public class ChoicesFacetForDomainObjectAnnotation extends ChoicesFacetFromBoundedAbstract {
 
@@ -34,7 +34,7 @@ public class ChoicesFacetForDomainObjectAnnotation extends ChoicesFacetFromBound
             final FacetHolder facetHolder,
             final DeploymentCategory deploymentCategory,
             final AuthenticationSessionProvider authenticationSessionProvider,
-            final QuerySubmitter querySubmitter) {
+            final ObjectPersistor objectPersistor) {
 
         if(domainObject == null) {
             return null;
@@ -43,16 +43,15 @@ public class ChoicesFacetForDomainObjectAnnotation extends ChoicesFacetFromBound
         final boolean bounded = domainObject.bounded();
         return bounded
                 ? new ChoicesFacetForDomainObjectAnnotation(
-                    facetHolder, querySubmitter, deploymentCategory, authenticationSessionProvider)
+                    facetHolder, deploymentCategory, authenticationSessionProvider, objectPersistor)
                 : null;
     }
 
     private ChoicesFacetForDomainObjectAnnotation(
             final FacetHolder holder,
-            final QuerySubmitter querySubmitter,
             final DeploymentCategory deploymentCategory,
-            final AuthenticationSessionProvider authenticationSessionProvider) {
-        super(holder, deploymentCategory, authenticationSessionProvider, querySubmitter);
+            final AuthenticationSessionProvider authenticationSessionProvider, final ObjectPersistor objectPersistor) {
+        super(holder, deploymentCategory, authenticationSessionProvider, objectPersistor);
     }
 
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/cf98021e/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 a6dc09b..6df0b4d 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
@@ -21,11 +21,11 @@ package org.apache.isis.core.metamodel.facets.object.domainobject.choices;
 
 import org.apache.isis.applib.annotation.Bounded;
 import org.apache.isis.core.commons.authentication.AuthenticationSessionProvider;
-import org.apache.isis.core.metamodel.runtimecontext.QuerySubmitter;
 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;
 
 /**
  * @deprecated
@@ -37,8 +37,8 @@ public class ChoicesFacetFromBoundedAnnotation extends ChoicesFacetFromBoundedAb
             final FacetHolder holder,
             final DeploymentCategory deploymentCategory,
             final AuthenticationSessionProvider authenticationSessionProvider,
-            final QuerySubmitter querySubmitter) {
-        super(holder, deploymentCategory, authenticationSessionProvider, querySubmitter);
+            final ObjectPersistor objectPersistor) {
+        super(holder, deploymentCategory, authenticationSessionProvider, objectPersistor);
     }
 
     public static ChoicesFacet create(
@@ -46,14 +46,13 @@ public class ChoicesFacetFromBoundedAnnotation extends ChoicesFacetFromBoundedAb
             final FacetHolder holder,
             final DeploymentCategory deploymentCategory,
             final AuthenticationSessionProvider authenticationSessionProvider,
-            final QuerySubmitter querySubmitter) {
+            final ObjectPersistor objectPersistor) {
         if (annotation == null) {
             return null;
         }
 
         return new ChoicesFacetFromBoundedAnnotation(holder, deploymentCategory, authenticationSessionProvider,
-                querySubmitter
-        );
+                objectPersistor);
     }
 
 

http://git-wip-us.apache.org/repos/asf/isis/blob/cf98021e/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/DomainObjectServices.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/DomainObjectServices.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/DomainObjectServices.java
index 4451e01..abee9be 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/DomainObjectServices.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/DomainObjectServices.java
@@ -18,11 +18,8 @@ package org.apache.isis.core.metamodel.runtimecontext;
 
 import java.util.List;
 
-import org.apache.isis.applib.services.bookmark.Bookmark;
 import org.apache.isis.core.commons.components.Injectable;
 import org.apache.isis.core.commons.config.IsisConfiguration;
-import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 
 public interface DomainObjectServices extends Injectable {
 

http://git-wip-us.apache.org/repos/asf/isis/blob/cf98021e/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
index 9b5dbf5..06fb111 100644
--- 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
@@ -16,6 +16,9 @@
  */
 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;
@@ -112,4 +115,22 @@ public interface ObjectPersistor extends Injectable {
      */
     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/cf98021e/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/QuerySubmitter.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/QuerySubmitter.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/QuerySubmitter.java
index 311fb3e..5fa31be 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/QuerySubmitter.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/QuerySubmitter.java
@@ -16,29 +16,9 @@
  */
 package org.apache.isis.core.metamodel.runtimecontext;
 
-import java.util.List;
-
-import org.apache.isis.applib.query.Query;
 import org.apache.isis.core.commons.components.Injectable;
-import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 
 public interface QuerySubmitter extends Injectable {
 
-    /**
-     * 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/cf98021e/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 0502ebd..9febe89 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
@@ -212,6 +212,17 @@ public class RuntimeContextNoRuntime extends RuntimeContextAbstract {
             public void makePersistent(final ObjectAdapter adapter) {
                 throw new UnsupportedOperationException("Not supported by this implementation of RuntimeContext");
             }
+
+            @Override
+            public <T> ObjectAdapter firstMatchingQuery(final Query<T> query) {
+                throw new UnsupportedOperationException("Not supported by this implementation of RuntimeContext");
+            }
+
+            @Override
+            public <T> List<ObjectAdapter> allMatchingQuery(final Query<T> query) {
+                throw new UnsupportedOperationException("Not supported by this implementation of RuntimeContext");
+            }
+
         };
         domainObjectServices = new DomainObjectServicesAbstract() {
 
@@ -252,15 +263,6 @@ public class RuntimeContextNoRuntime extends RuntimeContextAbstract {
         };
         querySubmitter = new QuerySubmitterAbstract() {
 
-            @Override
-            public <T> ObjectAdapter firstMatchingQuery(final Query<T> query) {
-                throw new UnsupportedOperationException("Not supported by this implementation of RuntimeContext");
-            }
-
-            @Override
-            public <T> List<ObjectAdapter> allMatchingQuery(final Query<T> query) {
-                throw new UnsupportedOperationException("Not supported by this implementation of RuntimeContext");
-            }
         };
     }
 

http://git-wip-us.apache.org/repos/asf/isis/blob/cf98021e/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 35aec48..e8d8205 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
@@ -54,21 +54,19 @@ import org.apache.isis.core.commons.authentication.AuthenticationSessionProvider
 import org.apache.isis.core.commons.authentication.AuthenticationSessionProviderAware;
 import org.apache.isis.core.commons.ensure.Assert;
 import org.apache.isis.core.commons.exceptions.IsisException;
-import org.apache.isis.core.metamodel.runtimecontext.DomainObjectServices;
-import org.apache.isis.core.metamodel.runtimecontext.DomainObjectServicesAware;
-import org.apache.isis.core.metamodel.runtimecontext.LocalizationProvider;
-import org.apache.isis.core.metamodel.runtimecontext.LocalizationProviderAware;
 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.QuerySubmitter;
-import org.apache.isis.core.metamodel.runtimecontext.QuerySubmitterAware;
 import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager;
 import org.apache.isis.core.metamodel.adapter.mgr.AdapterManagerAware;
 import org.apache.isis.core.metamodel.adapter.version.ConcurrencyException;
 import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
 import org.apache.isis.core.metamodel.consent.InteractionResult;
 import org.apache.isis.core.metamodel.facets.object.viewmodel.ViewModelFacet;
+import org.apache.isis.core.metamodel.runtimecontext.DomainObjectServices;
+import org.apache.isis.core.metamodel.runtimecontext.DomainObjectServicesAware;
+import org.apache.isis.core.metamodel.runtimecontext.LocalizationProvider;
+import org.apache.isis.core.metamodel.runtimecontext.LocalizationProviderAware;
+import org.apache.isis.core.metamodel.runtimecontext.ObjectPersistor;
+import org.apache.isis.core.metamodel.runtimecontext.ObjectPersistorAware;
 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;
@@ -79,7 +77,7 @@ import org.apache.isis.core.metamodel.spec.SpecificationLoaderAware;
 
 @DomainService(nature = NatureOfService.DOMAIN)
 public class DomainObjectContainerDefault
-        implements DomainObjectContainer, QuerySubmitterAware, DomainObjectServicesAware,
+        implements DomainObjectContainer, DomainObjectServicesAware,
         ObjectPersistorAware, SpecificationLoaderAware, AuthenticationSessionProviderAware, AdapterManagerAware,
         ServicesInjectorAware,
         LocalizationProviderAware, ExceptionRecognizer {
@@ -555,7 +553,7 @@ public class DomainObjectContainerDefault
     }
 
     <T> List<T> submitQuery(final Query<T> query) {
-        final List<ObjectAdapter> allMatching = getQuerySubmitter().allMatchingQuery(query);
+        final List<ObjectAdapter> allMatching = getObjectPersistor().allMatchingQuery(query);
         return ObjectAdapter.Util.unwrapT(allMatching);
     }
 
@@ -599,7 +597,7 @@ public class DomainObjectContainerDefault
     @SuppressWarnings("unchecked")
     public <T> T firstMatch(final Query<T> query) {
         flush(); // auto-flush any pending changes
-        final ObjectAdapter firstMatching = getQuerySubmitter().firstMatchingQuery(query);
+        final ObjectAdapter firstMatching = getObjectPersistor().firstMatchingQuery(query);
         return (T) ObjectAdapter.Util.unwrap(firstMatching);
     }
 
@@ -748,7 +746,6 @@ public class DomainObjectContainerDefault
     //region > framework dependencies
 
     private ObjectPersistor objectPersistor;
-    private QuerySubmitter querySubmitter;
     private SpecificationLoader specificationLoader;
     private DomainObjectServices domainObjectServices;
     private AuthenticationSessionProvider authenticationSessionProvider;
@@ -756,15 +753,6 @@ public class DomainObjectContainerDefault
     private LocalizationProvider localizationProvider;
     private ServicesInjector servicesInjector;
 
-    protected QuerySubmitter getQuerySubmitter() {
-        return querySubmitter;
-    }
-
-    @Programmatic
-    @Override
-    public void setQuerySubmitter(final QuerySubmitter querySubmitter) {
-        this.querySubmitter = querySubmitter;
-    }
 
     protected DomainObjectServices getDomainObjectServices() {
         return domainObjectServices;

http://git-wip-us.apache.org/repos/asf/isis/blob/cf98021e/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 84d3554..9720292 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,6 +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.QuerySubmitter;
 import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager;
 import org.apache.isis.core.metamodel.runtimecontext.ServicesInjector;
@@ -27,18 +28,21 @@ public class ObjectMemberDependencies {
     private final AdapterManager adapterManager;
     private final QuerySubmitter querySubmitter;
     private final ServicesInjector servicesInjector;
+    private final ObjectPersistor objectPersistor;
 
     public ObjectMemberDependencies(
             final SpecificationLoader specificationLoader,
             final AdapterManager adapterManager,
             final QuerySubmitter querySubmitter,
-            final ServicesInjector servicesInjector) {
+            final ServicesInjector servicesInjector,
+            final ObjectPersistor objectPersistor) {
 
         this.specificationLoader = specificationLoader;
         this.adapterManager = adapterManager;
         this.querySubmitter = querySubmitter;
 
         this.servicesInjector = servicesInjector;
+        this.objectPersistor = objectPersistor;
     }
 
     public SpecificationLoader getSpecificationLoader() {
@@ -56,4 +60,8 @@ public class ObjectMemberDependencies {
     public QuerySubmitter getQuerySubmitter() {
         return querySubmitter;
     }
+
+    public ObjectPersistor getObjectPersistor() {
+        return objectPersistor;
+    }
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/isis/blob/cf98021e/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 cc3139e..db1bd40 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
@@ -455,7 +455,8 @@ public final class ObjectReflectorDefault implements SpecificationLoaderSpi, App
                         facetProcessor, adapterManager);
 
         final ObjectMemberDependencies objectMemberDependencies = new ObjectMemberDependencies(
-                specificationLookup, adapterManager, getRuntimeContext().getQuerySubmitter(), servicesInjector);
+                specificationLookup, adapterManager, getRuntimeContext().getQuerySubmitter(), servicesInjector,
+                getRuntimeContext().getObjectPersistor());
 
         // ... and create the specs
         if (FreeStandingList.class.isAssignableFrom(cls)) {

http://git-wip-us.apache.org/repos/asf/isis/blob/cf98021e/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 c7d87f4..4b01191 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
@@ -32,7 +32,6 @@ import org.apache.isis.core.commons.lang.ClassExtensions;
 import org.apache.isis.core.commons.lang.ListExtensions;
 import org.apache.isis.core.commons.lang.StringExtensions;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.core.metamodel.runtimecontext.QuerySubmitter;
 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;
@@ -52,6 +51,8 @@ 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.QuerySubmitter;
 import org.apache.isis.core.metamodel.spec.DomainModelException;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 import org.apache.isis.core.metamodel.spec.SpecificationLoader;
@@ -417,7 +418,7 @@ public abstract class ObjectActionParameterAbstract implements ObjectActionParam
     @SuppressWarnings("unused")
     private <T> void addAllInstancesForType(final List<ObjectAdapter> adapters) {
         final Query<T> query = new QueryFindAllInstances<T>(getSpecification().getFullIdentifier());
-        final List<ObjectAdapter> allInstancesAdapter = getQuerySubmitter().allMatchingQuery(query);
+        final List<ObjectAdapter> allInstancesAdapter = getObjectPersistor().allMatchingQuery(query);
         for (final ObjectAdapter choiceAdapter : allInstancesAdapter) {
             adapters.add(choiceAdapter);
         }
@@ -520,4 +521,8 @@ public abstract class ObjectActionParameterAbstract implements ObjectActionParam
         return parentAction.getQuerySubmitter();
     }
 
+    protected ObjectPersistor getObjectPersistor() {
+        return parentAction.getObjectPersistor();
+    }
+
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/cf98021e/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 0cdd9b8..69005d1 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,6 +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.QuerySubmitter;
 import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager;
 import org.apache.isis.core.metamodel.consent.Consent;
@@ -56,6 +57,8 @@ import org.apache.isis.core.metamodel.specloader.collectiontyperegistry.Collecti
 
 public abstract class ObjectMemberAbstract implements ObjectMember {
 
+    private final ObjectPersistor objectPersistor;
+
     public static ObjectSpecification getSpecification(final SpecificationLoader specificationLookup, final Class<?> type) {
         return type == null ? null : specificationLookup.loadSpecification(type);
     }
@@ -88,6 +91,7 @@ public abstract class ObjectMemberAbstract implements ObjectMember {
         this.adapterManager = objectMemberDependencies.getAdapterManager();
         this.servicesInjector = objectMemberDependencies.getServicesInjector();
         this.querySubmitter = objectMemberDependencies.getQuerySubmitter();
+        this.objectPersistor = objectMemberDependencies.getObjectPersistor();
     }
 
 
@@ -347,6 +351,10 @@ public abstract class ObjectMemberAbstract implements ObjectMember {
         return querySubmitter;
     }
 
+    public ObjectPersistor getObjectPersistor() {
+        return objectPersistor;
+    }
+
     public CollectionTypeRegistry getCollectionTypeRegistry() {
         return collectionTypeRegistry;
     }

http://git-wip-us.apache.org/repos/asf/isis/blob/cf98021e/core/metamodel/src/test/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectAssociationAbstractTest.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectAssociationAbstractTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectAssociationAbstractTest.java
index a99fb4d..026e83b 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectAssociationAbstractTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectAssociationAbstractTest.java
@@ -19,9 +19,6 @@
 
 package org.apache.isis.core.metamodel.specloader.specimpl;
 
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
-
 import org.jmock.Expectations;
 import org.jmock.auto.Mock;
 import org.junit.Before;
@@ -45,6 +42,9 @@ import org.apache.isis.core.metamodel.spec.feature.ObjectMemberDependencies;
 import org.apache.isis.core.unittestsupport.jmocking.JUnitRuleMockery2;
 import org.apache.isis.core.unittestsupport.jmocking.JUnitRuleMockery2.Mode;
 
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
 public class ObjectAssociationAbstractTest {
 
     @Rule
@@ -72,7 +72,7 @@ public class ObjectAssociationAbstractTest {
         facetedMethod = FacetedMethod.createForProperty(Customer.class, "firstName");
         
         objectAssociation = new ObjectAssociationAbstract(facetedMethod, FeatureType.PROPERTY, objectSpecification, new ObjectMemberDependencies(
-                null, null, null, null)) {
+                null, null, null, null, null)) {
 
             @Override
             public ObjectAdapter get(

http://git-wip-us.apache.org/repos/asf/isis/blob/cf98021e/core/metamodel/src/test/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectAssociationAbstractTest_alwaysHidden.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectAssociationAbstractTest_alwaysHidden.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectAssociationAbstractTest_alwaysHidden.java
index a979e46..11e30b1 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectAssociationAbstractTest_alwaysHidden.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectAssociationAbstractTest_alwaysHidden.java
@@ -67,7 +67,7 @@ public class ObjectAssociationAbstractTest_alwaysHidden {
         
         objectAssociation = new ObjectAssociationAbstract(
                 facetedMethod, FeatureType.PROPERTY, mockObjectSpecification,
-                new ObjectMemberDependencies(null, null, null, null)) {
+                new ObjectMemberDependencies(null, null, null, null, null)) {
 
             @Override
             public ObjectAdapter get(

http://git-wip-us.apache.org/repos/asf/isis/blob/cf98021e/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 4a2cef0..e34fcde 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
@@ -203,6 +203,20 @@ public class RuntimeContextFromSession extends RuntimeContextAbstract {
                 getTransactionManager().endTransaction();
             }
 
+            @Override
+            public <T> List<ObjectAdapter> allMatchingQuery(final Query<T> query) {
+                final ObjectAdapter instances = getPersistenceSession().findInstancesInTransaction(query,
+                        QueryCardinality.MULTIPLE);
+                return CollectionFacetUtils.convertToAdapterList(instances);
+            }
+
+            @Override
+            public <T> ObjectAdapter firstMatchingQuery(final Query<T> query) {
+                final ObjectAdapter instances = getPersistenceSession().findInstancesInTransaction(query,
+                        QueryCardinality.SINGLE);
+                final List<ObjectAdapter> list = CollectionFacetUtils.convertToAdapterList(instances);
+                return list.size() > 0 ? list.get(0) : null;
+            }
 
         };
         this.domainObjectServices = new DomainObjectServicesAbstract() {
@@ -235,20 +249,6 @@ public class RuntimeContextFromSession extends RuntimeContextAbstract {
         };
         this.querySubmitter = new QuerySubmitterAbstract() {
 
-            @Override
-            public <T> List<ObjectAdapter> allMatchingQuery(final Query<T> query) {
-                final ObjectAdapter instances = getPersistenceSession().findInstancesInTransaction(query,
-                        QueryCardinality.MULTIPLE);
-                return CollectionFacetUtils.convertToAdapterList(instances);
-            }
-
-            @Override
-            public <T> ObjectAdapter firstMatchingQuery(final Query<T> query) {
-                final ObjectAdapter instances = getPersistenceSession().findInstancesInTransaction(query,
-                        QueryCardinality.SINGLE);
-                final List<ObjectAdapter> list = CollectionFacetUtils.convertToAdapterList(instances);
-                return list.size() > 0 ? list.get(0) : null;
-            }
         };
         this.localizationProvider = new LocalizationProviderAbstract() {
 

http://git-wip-us.apache.org/repos/asf/isis/blob/cf98021e/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 477591a..4ec982f 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,6 +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.QuerySubmitter;
 import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager;
 import org.apache.isis.core.metamodel.facets.FacetedMethod;
@@ -65,6 +66,8 @@ public class ObjectActionImplTest {
     private ServicesInjector mockServicesInjector;
     @Mock
     private QuerySubmitter mockQuerySubmitter;
+    @Mock
+    private ObjectPersistor mockObjectPersistor;
 
     @Before
     public void setUp() throws Exception {
@@ -77,7 +80,7 @@ public class ObjectActionImplTest {
         });
 
         action = new ObjectActionImpl(mockFacetedMethod, new ObjectMemberDependencies(
-                mockSpecificationLookup, mockAdapterManager, mockQuerySubmitter, mockServicesInjector));
+                mockSpecificationLookup, mockAdapterManager, mockQuerySubmitter, mockServicesInjector, mockObjectPersistor));
     }
 
 

http://git-wip-us.apache.org/repos/asf/isis/blob/cf98021e/core/runtime/src/test/java/org/apache/isis/core/runtime/system/ObjectMemberAbstractTest.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/test/java/org/apache/isis/core/runtime/system/ObjectMemberAbstractTest.java b/core/runtime/src/test/java/org/apache/isis/core/runtime/system/ObjectMemberAbstractTest.java
index 1f40ec6..7f565ab 100644
--- a/core/runtime/src/test/java/org/apache/isis/core/runtime/system/ObjectMemberAbstractTest.java
+++ b/core/runtime/src/test/java/org/apache/isis/core/runtime/system/ObjectMemberAbstractTest.java
@@ -272,7 +272,7 @@ class ObjectMemberAbstractImpl extends ObjectMemberAbstract {
 
     protected ObjectMemberAbstractImpl(final String id) {
         super(FacetedMethod.createForProperty(Customer.class, "firstName"), FeatureType.PROPERTY, new ObjectMemberDependencies(
-                null, null, null, null));
+                null, null, null, null, null));
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/isis/blob/cf98021e/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 d174594..b909509 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,6 +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.QuerySubmitter;
 import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager;
 import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
@@ -76,6 +77,8 @@ public class OneToManyAssociationImplTest {
     @Mock
     private QuerySubmitter mockQuerySubmitter;
     @Mock
+    private ObjectPersistor mockObjectPersistor;
+    @Mock
     private FacetedMethod mockPeer;
     @Mock
     private NamedFacet mockNamedFacet;
@@ -92,7 +95,7 @@ public class OneToManyAssociationImplTest {
         allowingPeerToReturnIdentifier();
         allowingSpecLoaderToReturnSpecs();
         association = new OneToManyAssociationImpl(mockPeer, new ObjectMemberDependencies(
-                mockSpecificationLookup, mockAdapterManager, mockQuerySubmitter, mockServicesInjector));
+                mockSpecificationLookup, mockAdapterManager, mockQuerySubmitter, mockServicesInjector, mockObjectPersistor));
     }
 
     private void allowingSpecLoaderToReturnSpecs() {

http://git-wip-us.apache.org/repos/asf/isis/blob/cf98021e/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 8dd24b7..bd0ace6 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
@@ -124,7 +124,7 @@ public class WrapperFactoryDefaultTest_wrappedObject {
     public void setUp() {
 
         objectMemberDependencies = new ObjectMemberDependencies(
-                mockSpecificationLoader, mockAdapterManager, mockQuerySubmitter, mockServicesInjector);
+                mockSpecificationLoader, mockAdapterManager, mockQuerySubmitter, mockServicesInjector, mockObjectPersistor);
         
         employeeRepository = new EmployeeRepositoryImpl();