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/03 14:33:16 UTC

[85/87] [abbrv] isis git commit: ISIS-1044: removed AuthenticationSession and DeploymentCategory from facet API that call ObjectAdapter.Util#isVisible (either directly or indirectly).

ISIS-1044: removed AuthenticationSession and DeploymentCategory from facet API that call ObjectAdapter.Util#isVisible (either directly or indirectly).

Instead, the facet can obtain the auth session from the AuthenticationSessionProvider injected in the constructor by the facet factory; DeploymentCategory is similarly injected via the constructor.

Updated:
- ActionChoicesFacet
- ActionInvocationFacet
- ActionParameterAutoCompleteFacet
- ActionParameterChoicesFacet
- AutoCompleteFacet
- ChoicesFacet
- CollectionAccessorFacetViaAccessor
- CollectionAddToFacet   ... ForDomainEventAbstract
- CollectionRemoveFromFacet  ... ForDomainEventAbstract
- PropertyAccessorFacetViaAccessor
- PropertyAutoCompleteFacet
- PropertyChoicesFacetDerivedFromChoicesFacet
- PropertyClearFacet  ... ForDomainEventAbstract
- PropertySetterFacet ... ForDomainEventAbstract

... and their respective implementations and facet factories
... the  ... ForDomainEventAbstract are because require access to read current state in order to emit event


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

Branch: refs/heads/master
Commit: 6f865c596237ab5fc2c974f9f0f1b73485c9c157
Parents: eab298d
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Thu Sep 3 12:32:12 2015 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Thu Sep 3 12:32:12 2015 +0100

----------------------------------------------------------------------
 .../metamodel/facets/FacetFactoryAbstract.java  |  8 +-
 .../action/ActionAnnotationFacetFactory.java    | 17 +++-
 .../invocation/ActionInvocationFacet.java       |  2 -
 ...onInvocationFacetForDomainEventAbstract.java | 27 ++++--
 ...FacetForDomainEventFromActionAnnotation.java | 13 ++-
 ...ainEventFromActionInteractionAnnotation.java | 13 ++-
 ...nvocationFacetForDomainEventFromDefault.java | 12 ++-
 ...cetForPostsActionInvokedEventAnnotation.java | 12 ++-
 .../CollectionAccessorFacetViaAccessor.java     | 15 ++-
 ...llectionAccessorFacetViaAccessorFactory.java |  5 +-
 ...ionAddToFacetForDomainEventFromAbstract.java |  2 +-
 ...moveFromFacetForDomainEventFromAbstract.java |  2 +-
 .../facets/fallback/ActionChoicesFacetNone.java |  5 +-
 .../object/autocomplete/AutoCompleteFacet.java  |  7 +-
 .../autocomplete/AutoCompleteFacetAbstract.java | 27 +++++-
 .../ChoicesFacetFromBoundedAbstract.java        | 25 ++++-
 .../ChoicesFacetFromBoundedMarkerInterface.java |  9 +-
 ...sFacetFromBoundedMarkerInterfaceFactory.java |  9 +-
 .../object/choices/enums/ChoicesFacetEnum.java  |  5 +-
 .../DomainObjectAnnotationFacetFactory.java     | 19 +++-
 ...oCompleteFacetForAutoCompleteAnnotation.java | 26 ++++-
 ...oCompleteFacetForDomainObjectAnnotation.java | 24 ++++-
 .../ChoicesFacetForDomainObjectAnnotation.java  | 21 ++++-
 .../ChoicesFacetFromBoundedAnnotation.java      | 21 ++++-
 ...FacetAnnotationElseConfigurationFactory.java |  7 --
 ...ueFacetAnnotationOrConfigurationFactory.java |  7 --
 ...ValueFacetUsingSemanticsProviderFactory.java |  7 --
 .../objectvalue/choices/ChoicesFacet.java       |  7 +-
 .../ActionParameterAutoCompleteFacet.java       |  8 +-
 ...ctionParameterAutoCompleteFacetAbstract.java | 16 ++++
 ...tionParameterAutoCompleteFacetViaMethod.java | 16 +++-
 ...ameterAutoCompleteFacetViaMethodFactory.java |  6 +-
 .../param/choices/ActionChoicesFacet.java       |  7 +-
 .../choices/ActionParameterChoicesFacet.java    |  5 +-
 .../ActionParameterChoicesFacetAbstract.java    | 16 ++++
 .../ActionParameterChoicesFacetNone.java        |  9 +-
 ...eterChoicesFacetDerivedFromChoicesFacet.java | 15 +--
 ...icesFacetDerivedFromChoicesFacetFactory.java |  6 +-
 .../method/ActionChoicesFacetViaMethod.java     | 27 ++++--
 .../ActionChoicesFacetViaMethodFactory.java     |  3 +-
 .../ActionParameterChoicesFacetViaMethod.java   | 13 ++-
 ...onParameterChoicesFacetViaMethodFactory.java |  4 +-
 .../PropertyOrCollectionAccessorFacet.java      |  7 +-
 ...opertyOrCollectionAccessorFacetAbstract.java | 25 ++++-
 .../PropertyAccessorFacetViaAccessor.java       | 16 +++-
 ...PropertyAccessorFacetViaAccessorFactory.java |  6 +-
 .../autocomplete/PropertyAutoCompleteFacet.java |  5 +-
 .../method/PropertyAutoCompleteFacetMethod.java | 20 +++-
 .../PropertyAutoCompleteFacetMethodFactory.java |  4 +-
 ...ertyChoicesFacetDerivedFromChoicesFacet.java |  2 +-
 ...ropertyClearFacetForDomainEventAbstract.java |  4 +-
 .../PropertyDomainEventFacetAbstract.java       |  2 +-
 ...opertySetterFacetForDomainEventAbstract.java |  4 +-
 .../specloader/specimpl/ObjectActionImpl.java   |  8 +-
 .../specimpl/ObjectActionParameterAbstract.java |  4 +-
 .../specimpl/OneToManyAssociationImpl.java      |  2 +-
 .../specimpl/OneToOneAssociationImpl.java       |  4 +-
 .../AbstractFacetFactoryJUnit4TestCase.java     | 15 +++
 .../actions/ActionMethodsFacetFactoryTest.java  | 60 ++++++++++++
 .../CollectionFieldMethodsFacetFactoryTest.java | 73 +++++++++++++++
 .../CollectionAnnotationFacetFactoryTest.java   | 11 +--
 ...etFromBoundedMarkerInterfaceFactoryTest.java | 27 ++++++
 ...esFacetFromBoundedAnnotationFactoryTest.java | 27 ++++++
 .../TitleAnnotationFacetFactoryTest.java        | 11 +--
 ...tAnnotationElseConfigurationFactoryTest.java | 28 ++++++
 ...cetAnnotationOrConfigurationFactoryTest.java | 28 ++++++
 .../PropertyMethodsFacetFactoryTest.java        | 99 +++++++++++++++++++-
 .../PropertyAnnotationFacetFactoryTest.java     | 11 +--
 .../adaptermanager/AdapterManagerDefault.java   |  2 +-
 .../ActionInvocationFacetWrapTransaction.java   |  6 +-
 .../scalars/reference/ReferencePanel.java       |  2 +-
 ...WrapperFactoryDefaultTest_wrappedObject.java | 12 ++-
 ...toryDefaultTest_wrappedObject_transient.java | 11 ++-
 73 files changed, 813 insertions(+), 228 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/6f865c59/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/FacetFactoryAbstract.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/FacetFactoryAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/FacetFactoryAbstract.java
index 01ab99b..cc5654e 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/FacetFactoryAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/FacetFactoryAbstract.java
@@ -25,6 +25,7 @@ import com.google.common.collect.ImmutableList;
 
 import org.apache.isis.core.commons.authentication.AuthenticationSessionProvider;
 import org.apache.isis.core.commons.authentication.AuthenticationSessionProviderAware;
+import org.apache.isis.core.metamodel.deployment.DeploymentCategory;
 import org.apache.isis.core.metamodel.deployment.DeploymentCategoryProvider;
 import org.apache.isis.core.metamodel.deployment.DeploymentCategoryProviderAware;
 import org.apache.isis.core.metamodel.facetapi.FeatureType;
@@ -91,7 +92,12 @@ public abstract class FacetFactoryAbstract implements FacetFactory, Specificatio
         this.deploymentCategoryProvider = deploymentCategoryProvider;
     }
 
-    protected DeploymentCategoryProvider getDeploymentCategoryProvider() {
+    private DeploymentCategoryProvider getDeploymentCategoryProvider() {
         return deploymentCategoryProvider;
     }
+
+    protected DeploymentCategory getDeploymentCategory() {
+        return getDeploymentCategoryProvider().getDeploymentCategory();
+    }
+
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/6f865c59/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/ActionAnnotationFacetFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/ActionAnnotationFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/ActionAnnotationFacetFactory.java
index 323021f..c73f530 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/ActionAnnotationFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/ActionAnnotationFacetFactory.java
@@ -210,26 +210,35 @@ public class ActionAnnotationFacetFactory extends FacetFactoryAbstract implement
                 actionInvocationFacet = actionInteractionValidator.flagIfPresent(
                         new ActionInvocationFacetForPostsActionInvokedEventAnnotation(
                                 actionInvokedEventType, actionMethod, typeSpec, returnSpec, holder,
-                                getRuntimeContext(), getAdapterManager(), getServicesInjector(), configuration), processMethodContext);
+                                getDeploymentCategory(), configuration, getServicesInjector(),
+                                getAuthenticationSessionProvider(), getAdapterManager(), getRuntimeContext()
+                        ), processMethodContext);
             } else
             // deprecated (but more recently)
             if (actionInteraction != null) {
                 actionInvocationFacet = actionInteractionValidator.flagIfPresent(
                         new ActionInvocationFacetForDomainEventFromActionInteractionAnnotation(
                                 actionDomainEventType, actionMethod, typeSpec, returnSpec, holder,
-                                getRuntimeContext(), getAdapterManager(), getServicesInjector(), configuration), processMethodContext);
+                                getDeploymentCategory(), configuration, getServicesInjector(),
+                                getAuthenticationSessionProvider(), getAdapterManager(), getRuntimeContext()
+                        ), processMethodContext);
             } else
             // current
             if (action != null) {
                 actionInvocationFacet = new ActionInvocationFacetForDomainEventFromActionAnnotation(
                         actionDomainEventType, actionMethod, typeSpec, returnSpec, holder,
-                        getRuntimeContext(), getAdapterManager(), getServicesInjector(), configuration);
+                        getDeploymentCategory(), configuration, getServicesInjector(),
+                        getAuthenticationSessionProvider(),
+                        getAdapterManager(), getRuntimeContext()
+                );
             } else
             // default
             {
                 actionInvocationFacet = new ActionInvocationFacetForDomainEventFromDefault(
                         actionDomainEventType, actionMethod, typeSpec, returnSpec, holder,
-                        getRuntimeContext(), getAdapterManager(), getServicesInjector(), configuration);
+                        getDeploymentCategory(), configuration, getServicesInjector(), getAuthenticationSessionProvider(),
+                        getAdapterManager(), getRuntimeContext()
+                );
             }
             FacetUtil.addFacet(actionInvocationFacet);
 

http://git-wip-us.apache.org/repos/asf/isis/blob/6f865c59/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/invocation/ActionInvocationFacet.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/invocation/ActionInvocationFacet.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/invocation/ActionInvocationFacet.java
index dab59d7..1ce0b61 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/invocation/ActionInvocationFacet.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/invocation/ActionInvocationFacet.java
@@ -55,8 +55,6 @@ public interface ActionInvocationFacet extends Facet {
             ObjectAction owningAction,
             ObjectAdapter targetAdapter,
             ObjectAdapter[] argumentAdapters,
-            final AuthenticationSession authenticationSession,
-            final DeploymentCategory deploymentCategory,
             final InteractionInitiatedBy interactionInitiatedBy);
 
     public ObjectSpecification getReturnType();

http://git-wip-us.apache.org/repos/asf/isis/blob/6f865c59/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/invocation/ActionInvocationFacetForDomainEventAbstract.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/invocation/ActionInvocationFacetForDomainEventAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/invocation/ActionInvocationFacetForDomainEventAbstract.java
index 415cb85..ba0279d 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/invocation/ActionInvocationFacetForDomainEventAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/invocation/ActionInvocationFacetForDomainEventAbstract.java
@@ -49,6 +49,7 @@ import org.apache.isis.applib.services.eventbus.AbstractDomainEvent;
 import org.apache.isis.applib.services.eventbus.ActionDomainEvent;
 import org.apache.isis.applib.services.queryresultscache.QueryResultsCache;
 import org.apache.isis.core.commons.authentication.AuthenticationSession;
+import org.apache.isis.core.commons.authentication.AuthenticationSessionProvider;
 import org.apache.isis.core.commons.config.IsisConfiguration;
 import org.apache.isis.core.commons.exceptions.IsisException;
 import org.apache.isis.core.commons.lang.ThrowableExtensions;
@@ -85,6 +86,8 @@ public abstract class ActionInvocationFacetForDomainEventAbstract
     private final ObjectSpecification returnType;
 
     private final AdapterManager adapterManager;
+    private final DeploymentCategory deploymentCategory;
+    private final AuthenticationSessionProvider authenticationSessionProvider;
     private final RuntimeContext runtimeContext;
 
     private final ServicesInjector servicesInjector;
@@ -98,15 +101,19 @@ public abstract class ActionInvocationFacetForDomainEventAbstract
             final ObjectSpecification onType,
             final ObjectSpecification returnType,
             final FacetHolder holder,
-            final RuntimeContext runtimeContext,
-            final AdapterManager adapterManager,
+            final DeploymentCategory deploymentCategory,
+            final IsisConfiguration configuration,
             final ServicesInjector servicesInjector,
-            final IsisConfiguration configuration) {
+            final AuthenticationSessionProvider authenticationSessionProvider,
+            final AdapterManager adapterManager,
+            final RuntimeContext runtimeContext) {
         super(holder);
         this.eventType = eventType;
         this.method = method;
         this.onType = onType;
         this.returnType = returnType;
+        this.deploymentCategory = deploymentCategory;
+        this.authenticationSessionProvider = authenticationSessionProvider;
         this.runtimeContext = runtimeContext;
         this.adapterManager = adapterManager;
         this.servicesInjector = servicesInjector;
@@ -184,7 +191,7 @@ public abstract class ActionInvocationFacetForDomainEventAbstract
             final ObjectAdapter[] argumentAdapters,
             final AuthenticationSession authenticationSession,
             final DeploymentCategory deploymentCategory, final InteractionInitiatedBy interactionInitiatedBy) {
-        return invoke(null, targetAdapter, argumentAdapters, authenticationSession, deploymentCategory,
+        return invoke(null, targetAdapter, argumentAdapters,
                 interactionInitiatedBy);
     }
 
@@ -193,13 +200,14 @@ public abstract class ActionInvocationFacetForDomainEventAbstract
             final ObjectAction owningAction,
             final ObjectAdapter targetAdapter,
             final ObjectAdapter[] arguments,
-            final AuthenticationSession session,
-            final DeploymentCategory deploymentCategory,
             final InteractionInitiatedBy interactionInitiatedBy) {
 
         final CommandContext commandContext = getServicesInjector().lookupService(CommandContext.class);
         final Command command = commandContext != null ? commandContext.getCommand() : null;
 
+        final AuthenticationSession session = getAuthenticationSession();
+        final DeploymentCategory deploymentCategory = getDeploymentCategory();
+
         // ... post the executing event
         final ActionDomainEvent<?> event =
                 domainEventHelper.postEventForAction(
@@ -517,4 +525,11 @@ public abstract class ActionInvocationFacetForDomainEventAbstract
         return configuration;
     }
 
+    public DeploymentCategory getDeploymentCategory() {
+        return deploymentCategory;
+    }
+
+    public AuthenticationSession getAuthenticationSession() {
+        return authenticationSessionProvider.getAuthenticationSession();
+    }
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/6f865c59/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/invocation/ActionInvocationFacetForDomainEventFromActionAnnotation.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/invocation/ActionInvocationFacetForDomainEventFromActionAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/invocation/ActionInvocationFacetForDomainEventFromActionAnnotation.java
index 51885f88..49267e8 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/invocation/ActionInvocationFacetForDomainEventFromActionAnnotation.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/invocation/ActionInvocationFacetForDomainEventFromActionAnnotation.java
@@ -22,9 +22,11 @@ package org.apache.isis.core.metamodel.facets.actions.action.invocation;
 import java.lang.reflect.Method;
 
 import org.apache.isis.applib.services.eventbus.ActionDomainEvent;
+import org.apache.isis.core.commons.authentication.AuthenticationSessionProvider;
 import org.apache.isis.core.commons.config.IsisConfiguration;
 
 import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager;
+import org.apache.isis.core.metamodel.deployment.DeploymentCategory;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.runtimecontext.RuntimeContext;
 import org.apache.isis.core.metamodel.runtimecontext.ServicesInjector;
@@ -39,11 +41,12 @@ public class ActionInvocationFacetForDomainEventFromActionAnnotation
             final ObjectSpecification onType,
             final ObjectSpecification returnType,
             final FacetHolder holder,
-            final RuntimeContext runtimeContext,
-            final AdapterManager adapterManager,
+            final DeploymentCategory deploymentCategory,
+            final IsisConfiguration isisConfiguration,
             final ServicesInjector servicesInjector,
-            final IsisConfiguration isisConfiguration) {
-        super(eventType, method, onType, returnType, holder,
-                runtimeContext, adapterManager, servicesInjector, isisConfiguration);
+            final AuthenticationSessionProvider authenticationSessionProvider,
+            final AdapterManager adapterManager,
+            final RuntimeContext runtimeContext) {
+        super(eventType, method, onType, returnType, holder, deploymentCategory, isisConfiguration, servicesInjector, authenticationSessionProvider, adapterManager, runtimeContext);
     }
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/6f865c59/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/invocation/ActionInvocationFacetForDomainEventFromActionInteractionAnnotation.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/invocation/ActionInvocationFacetForDomainEventFromActionInteractionAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/invocation/ActionInvocationFacetForDomainEventFromActionInteractionAnnotation.java
index 7a39a7f..e41186e 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/invocation/ActionInvocationFacetForDomainEventFromActionInteractionAnnotation.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/invocation/ActionInvocationFacetForDomainEventFromActionInteractionAnnotation.java
@@ -22,9 +22,11 @@ package org.apache.isis.core.metamodel.facets.actions.action.invocation;
 import java.lang.reflect.Method;
 
 import org.apache.isis.applib.services.eventbus.ActionDomainEvent;
+import org.apache.isis.core.commons.authentication.AuthenticationSessionProvider;
 import org.apache.isis.core.commons.config.IsisConfiguration;
 
 import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager;
+import org.apache.isis.core.metamodel.deployment.DeploymentCategory;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.runtimecontext.RuntimeContext;
 import org.apache.isis.core.metamodel.runtimecontext.ServicesInjector;
@@ -43,11 +45,12 @@ public class ActionInvocationFacetForDomainEventFromActionInteractionAnnotation
             final ObjectSpecification onType,
             final ObjectSpecification returnType,
             final FacetHolder holder,
-            final RuntimeContext runtimeContext,
-            final AdapterManager adapterManager,
+            final DeploymentCategory deploymentCategory,
+            final IsisConfiguration isisConfiguration,
             final ServicesInjector servicesInjector,
-            final IsisConfiguration isisConfiguration) {
-        super(eventType, method, onType, returnType, holder,
-                runtimeContext, adapterManager, servicesInjector, isisConfiguration);
+            final AuthenticationSessionProvider authenticationSessionProvider,
+            final AdapterManager adapterManager,
+            final RuntimeContext runtimeContext) {
+        super(eventType, method, onType, returnType, holder, deploymentCategory, isisConfiguration, servicesInjector, authenticationSessionProvider, adapterManager, runtimeContext);
     }
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/6f865c59/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/invocation/ActionInvocationFacetForDomainEventFromDefault.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/invocation/ActionInvocationFacetForDomainEventFromDefault.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/invocation/ActionInvocationFacetForDomainEventFromDefault.java
index b0708e3..fd55995 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/invocation/ActionInvocationFacetForDomainEventFromDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/invocation/ActionInvocationFacetForDomainEventFromDefault.java
@@ -22,8 +22,10 @@ package org.apache.isis.core.metamodel.facets.actions.action.invocation;
 import java.lang.reflect.Method;
 
 import org.apache.isis.applib.services.eventbus.ActionDomainEvent;
+import org.apache.isis.core.commons.authentication.AuthenticationSessionProvider;
 import org.apache.isis.core.commons.config.IsisConfiguration;
 import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager;
+import org.apache.isis.core.metamodel.deployment.DeploymentCategory;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.runtimecontext.RuntimeContext;
 import org.apache.isis.core.metamodel.runtimecontext.ServicesInjector;
@@ -38,11 +40,13 @@ public class ActionInvocationFacetForDomainEventFromDefault
             final ObjectSpecification onType,
             final ObjectSpecification returnType,
             final FacetHolder holder,
-            final RuntimeContext runtimeContext,
-            final AdapterManager adapterManager,
+            final DeploymentCategory deploymentCategory,
+            final IsisConfiguration isisConfiguration,
             final ServicesInjector servicesInjector,
-            final IsisConfiguration isisConfiguration) {
+            final AuthenticationSessionProvider authenticationSessionProvider,
+            final AdapterManager adapterManager,
+            final RuntimeContext runtimeContext) {
         super(eventType, method, onType, returnType, holder,
-                runtimeContext, adapterManager, servicesInjector, isisConfiguration);
+                deploymentCategory, isisConfiguration, servicesInjector, authenticationSessionProvider, adapterManager, runtimeContext);
     }
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/6f865c59/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/invocation/ActionInvocationFacetForPostsActionInvokedEventAnnotation.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/invocation/ActionInvocationFacetForPostsActionInvokedEventAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/invocation/ActionInvocationFacetForPostsActionInvokedEventAnnotation.java
index 982af38..ed8f587 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/invocation/ActionInvocationFacetForPostsActionInvokedEventAnnotation.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/invocation/ActionInvocationFacetForPostsActionInvokedEventAnnotation.java
@@ -22,8 +22,10 @@ package org.apache.isis.core.metamodel.facets.actions.action.invocation;
 import java.lang.reflect.Method;
 
 import org.apache.isis.applib.services.eventbus.ActionDomainEvent;
+import org.apache.isis.core.commons.authentication.AuthenticationSessionProvider;
 import org.apache.isis.core.commons.config.IsisConfiguration;
 import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager;
+import org.apache.isis.core.metamodel.deployment.DeploymentCategory;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.runtimecontext.RuntimeContext;
 import org.apache.isis.core.metamodel.runtimecontext.ServicesInjector;
@@ -42,12 +44,14 @@ public class ActionInvocationFacetForPostsActionInvokedEventAnnotation
             final ObjectSpecification onType,
             final ObjectSpecification returnType,
             final FacetHolder holder,
-            final RuntimeContext runtimeContext,
-            final AdapterManager adapterManager,
+            final DeploymentCategory deploymentCategory,
+            final IsisConfiguration isisConfiguration,
             final ServicesInjector servicesInjector,
-            final IsisConfiguration isisConfiguration) {
+            final AuthenticationSessionProvider authenticationSessionProvider,
+            final AdapterManager adapterManager,
+            final RuntimeContext runtimeContext) {
         super(eventType, method, onType, returnType, holder,
-                runtimeContext, adapterManager, servicesInjector, isisConfiguration);
+                deploymentCategory, isisConfiguration, servicesInjector, authenticationSessionProvider, adapterManager, runtimeContext);
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/isis/blob/6f865c59/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/accessor/CollectionAccessorFacetViaAccessor.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/accessor/CollectionAccessorFacetViaAccessor.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/accessor/CollectionAccessorFacetViaAccessor.java
index b203bd4..30b4156 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/accessor/CollectionAccessorFacetViaAccessor.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/accessor/CollectionAccessorFacetViaAccessor.java
@@ -26,6 +26,7 @@ import java.util.List;
 import com.google.common.collect.Lists;
 
 import org.apache.isis.core.commons.authentication.AuthenticationSession;
+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.adapter.mgr.AdapterManager;
@@ -46,10 +47,14 @@ public class CollectionAccessorFacetViaAccessor
     public CollectionAccessorFacetViaAccessor(
             final Method method,
             final FacetHolder holder,
-            final AdapterManager adapterManager,
+            final DeploymentCategory deploymentCategory,
+            final IsisConfiguration isisConfiguration,
             final SpecificationLoader specificationLoader,
-            final IsisConfiguration isisConfiguration) {
-        super(holder, adapterManager, specificationLoader, isisConfiguration);
+            final AuthenticationSessionProvider authenticationSessionProvider,
+            final AdapterManager adapterManager) {
+        super(holder, deploymentCategory, isisConfiguration, specificationLoader, authenticationSessionProvider,
+                adapterManager
+        );
         this.method = method;
     }
 
@@ -70,13 +75,13 @@ public class CollectionAccessorFacetViaAccessor
     @Override
     public Object getProperty(
             final ObjectAdapter owningAdapter,
-            final AuthenticationSession authenticationSession,
-            final DeploymentCategory deploymentCategory,
             final InteractionInitiatedBy interactionInitiatedBy) {
         final Object collectionOrArray = ObjectAdapter.InvokeUtils.invoke(method, owningAdapter);
 
         final ObjectAdapter collectionAdapter = getAdapterManager().adapterFor(collectionOrArray);
 
+        final AuthenticationSession authenticationSession = getAuthenticationSession();
+        final DeploymentCategory deploymentCategory = getDeploymentCategory();
         boolean filterForVisibility = getConfiguration().getBoolean("isis.reflector.facet.filterVisibility", true);
         if(filterForVisibility) {
             final List<ObjectAdapter> visibleAdapters =

http://git-wip-us.apache.org/repos/asf/isis/blob/6f865c59/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/accessor/CollectionAccessorFacetViaAccessorFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/accessor/CollectionAccessorFacetViaAccessorFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/accessor/CollectionAccessorFacetViaAccessorFactory.java
index e5a468a..5d4c07a 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/accessor/CollectionAccessorFacetViaAccessorFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/accessor/CollectionAccessorFacetViaAccessorFactory.java
@@ -52,9 +52,12 @@ public class CollectionAccessorFacetViaAccessorFactory
         FacetUtil.addFacet(
                 new CollectionAccessorFacetViaAccessor(
                         accessorMethod, holder,
-                        getAdapterManager(), getSpecificationLoader(), getConfiguration()));
+                        getDeploymentCategory(), getConfiguration(), getSpecificationLoader(),
+                        getAuthenticationSessionProvider(), getAdapterManager()
+                ));
     }
 
+
     // ///////////////////////////////////////////////////////////////
     // PropertyOrCollectionIdentifyingFacetFactory impl.
     // ///////////////////////////////////////////////////////////////

http://git-wip-us.apache.org/repos/asf/isis/blob/6f865c59/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/collection/modify/CollectionAddToFacetForDomainEventFromAbstract.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/collection/modify/CollectionAddToFacetForDomainEventFromAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/collection/modify/CollectionAddToFacetForDomainEventFromAbstract.java
index 4a43f0a..bfa1dde 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/collection/modify/CollectionAddToFacetForDomainEventFromAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/collection/modify/CollectionAddToFacetForDomainEventFromAbstract.java
@@ -76,7 +76,7 @@ public abstract class CollectionAddToFacetForDomainEventFromAbstract
         final Object referencedObject = ObjectAdapter.Util.unwrap(referencedObjectAdapter);
 
         // get hold of underlying collection
-        final Object collection = getterFacet.getProperty(targetAdapter, null, null, interactionInitiatedBy);
+        final Object collection = getterFacet.getProperty(targetAdapter, interactionInitiatedBy);
 
         // don't post event if has set semantics and already contains object
         if(collection instanceof Set) {

http://git-wip-us.apache.org/repos/asf/isis/blob/6f865c59/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/collection/modify/CollectionRemoveFromFacetForDomainEventFromAbstract.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/collection/modify/CollectionRemoveFromFacetForDomainEventFromAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/collection/modify/CollectionRemoveFromFacetForDomainEventFromAbstract.java
index 62cb270..ae52f09 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/collection/modify/CollectionRemoveFromFacetForDomainEventFromAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/collection/modify/CollectionRemoveFromFacetForDomainEventFromAbstract.java
@@ -80,7 +80,7 @@ public abstract class CollectionRemoveFromFacetForDomainEventFromAbstract
 
         // get hold of underlying collection
         // passing null through for authenticationSession/deploymentType means to avoid any visibility filtering.
-        final Object collection = getterFacet.getProperty(targetAdapter, null, null, interactionInitiatedBy);
+        final Object collection = getterFacet.getProperty(targetAdapter, interactionInitiatedBy);
 
         // don't post event if the collections does not contain object
         if (!((Collection<?>) collection).contains(referencedObject)) {

http://git-wip-us.apache.org/repos/asf/isis/blob/6f865c59/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/fallback/ActionChoicesFacetNone.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/fallback/ActionChoicesFacetNone.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/fallback/ActionChoicesFacetNone.java
index a65cf27..b8416fe 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/fallback/ActionChoicesFacetNone.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/fallback/ActionChoicesFacetNone.java
@@ -19,10 +19,8 @@
 
 package org.apache.isis.core.metamodel.facets.fallback;
 
-import org.apache.isis.core.commons.authentication.AuthenticationSession;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
-import org.apache.isis.core.metamodel.deployment.DeploymentCategory;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.param.choices.ActionChoicesFacetAbstract;
 
@@ -35,8 +33,7 @@ public class ActionChoicesFacetNone extends ActionChoicesFacetAbstract {
     @Override
     public Object[][] getChoices(
             final ObjectAdapter inObject,
-            final AuthenticationSession authenticationSession,
-            final DeploymentCategory deploymentCategory, final InteractionInitiatedBy interactionInitiatedBy) {
+            final InteractionInitiatedBy interactionInitiatedBy) {
         return new ObjectAdapter[0][0];
     }
 

http://git-wip-us.apache.org/repos/asf/isis/blob/6f865c59/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/autocomplete/AutoCompleteFacet.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/autocomplete/AutoCompleteFacet.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/autocomplete/AutoCompleteFacet.java
index be69686..cd95edb 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/autocomplete/AutoCompleteFacet.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/autocomplete/AutoCompleteFacet.java
@@ -21,17 +21,14 @@ package org.apache.isis.core.metamodel.facets.object.autocomplete;
 
 import java.util.List;
 
-import org.apache.isis.core.commons.authentication.AuthenticationSession;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
-import org.apache.isis.core.metamodel.deployment.DeploymentCategory;
 import org.apache.isis.core.metamodel.facetapi.Facet;
 
 public interface AutoCompleteFacet extends Facet {
 
     public List<ObjectAdapter> execute(
-            String search,
-            final AuthenticationSession authenticationSession,
-            final DeploymentCategory deploymentCategory, final InteractionInitiatedBy interactionInitiatedBy);
+            final String search,
+            final InteractionInitiatedBy interactionInitiatedBy);
 
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/6f865c59/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/autocomplete/AutoCompleteFacetAbstract.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/autocomplete/AutoCompleteFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/autocomplete/AutoCompleteFacetAbstract.java
index f0055a6..913d694 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/autocomplete/AutoCompleteFacetAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/autocomplete/AutoCompleteFacetAbstract.java
@@ -23,6 +23,7 @@ import java.util.Collections;
 import java.util.List;
 
 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.adapter.mgr.AdapterManager;
 import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
@@ -47,7 +48,9 @@ public abstract class AutoCompleteFacetAbstract extends FacetAbstract implements
     private final Class<?> repositoryClass;
     private final String actionName;
 
+    private final DeploymentCategory deploymentCategory;
     private final SpecificationLoader specificationLoader;
+    private final AuthenticationSessionProvider authenticationSessionProvider;
     private final AdapterManager adapterManager;
     private final ServicesInjector servicesInjector;
 
@@ -61,11 +64,20 @@ public abstract class AutoCompleteFacetAbstract extends FacetAbstract implements
     private Object repository;
 
     public AutoCompleteFacetAbstract(
-            final FacetHolder holder, final Class<?> repositoryClass, final String actionName, final SpecificationLoader specificationLoader, final AdapterManager adapterManager, final ServicesInjector servicesInjector) {
+            final FacetHolder holder,
+            final Class<?> repositoryClass,
+            final String actionName,
+            final DeploymentCategory deploymentCategory,
+            final SpecificationLoader specificationLoader,
+            final ServicesInjector servicesInjector,
+            final AuthenticationSessionProvider authenticationSessionProvider,
+            final AdapterManager adapterManager) {
         super(type(), holder, Derivation.NOT_DERIVED);
         this.repositoryClass = repositoryClass;
         this.actionName = actionName;
+        this.deploymentCategory = deploymentCategory;
         this.specificationLoader = specificationLoader;
+        this.authenticationSessionProvider = authenticationSessionProvider;
         this.adapterManager = adapterManager;
         this.servicesInjector = servicesInjector;
     }
@@ -73,8 +85,6 @@ public abstract class AutoCompleteFacetAbstract extends FacetAbstract implements
     @Override
     public List<ObjectAdapter> execute(
             final String search,
-            final AuthenticationSession authenticationSession,
-            final DeploymentCategory deploymentCategory,
             final InteractionInitiatedBy interactionInitiatedBy) {
 
         cacheRepositoryAndRepositoryActionIfRequired();
@@ -91,10 +101,12 @@ public abstract class AutoCompleteFacetAbstract extends FacetAbstract implements
             return Collections.emptyList();
         }
 
-        final ObjectSpecification objectSpecification = (ObjectSpecification) getFacetHolder();
         final CollectionFacet facet = CollectionFacet.Utils.getCollectionFacetFromSpec(resultAdapter);
 
         final Iterable<ObjectAdapter> adapterList = facet.iterable(resultAdapter);
+
+        final AuthenticationSession authenticationSession = getAuthenticationSession();
+        final DeploymentCategory deploymentCategory = getDeploymentCategory();
         return ObjectAdapter.Util.visibleAdapters(
                         adapterList, authenticationSession, deploymentCategory, interactionInitiatedBy);
     }
@@ -125,4 +137,11 @@ public abstract class AutoCompleteFacetAbstract extends FacetAbstract implements
         cachedRepositoryObject = true;
     }
 
+    protected DeploymentCategory getDeploymentCategory() {
+        return deploymentCategory;
+    }
+
+    protected AuthenticationSession getAuthenticationSession() {
+        return authenticationSessionProvider.getAuthenticationSession();
+    }
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/6f865c59/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 33561b2..ce2658c 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
@@ -29,6 +29,7 @@ import org.apache.isis.applib.marker.Bounded;
 import org.apache.isis.applib.query.Query;
 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.adapter.QuerySubmitter;
 import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
@@ -56,16 +57,26 @@ import org.apache.isis.core.metamodel.spec.ObjectSpecification;
  * member with {@link org.apache.isis.applib.annotation.Bounded Bounded} annotation
  * or implementing the {@link Bounded} marker interface.
  */
-public abstract class ChoicesFacetFromBoundedAbstract extends FacetAbstract implements ChoicesFacet, DisablingInteractionAdvisor, ValidatingInteractionAdvisor {
+public abstract class ChoicesFacetFromBoundedAbstract
+        extends FacetAbstract
+        implements ChoicesFacet, DisablingInteractionAdvisor, ValidatingInteractionAdvisor {
 
     public static Class<? extends Facet> type() {
         return ChoicesFacet.class;
     }
 
+    private final DeploymentCategory deploymentCategory;
+    private final AuthenticationSessionProvider authenticationSessionProvider;
     private final QuerySubmitter querySubmitter;
     
-    public ChoicesFacetFromBoundedAbstract(final FacetHolder holder, final QuerySubmitter querySubmitter) {
+    public ChoicesFacetFromBoundedAbstract(
+            final FacetHolder holder,
+            final DeploymentCategory deploymentCategory,
+            final AuthenticationSessionProvider authenticationSessionProvider,
+            final QuerySubmitter querySubmitter) {
         super(type(), holder, Derivation.NOT_DERIVED);
+        this.deploymentCategory = deploymentCategory;
+        this.authenticationSessionProvider = authenticationSessionProvider;
         this.querySubmitter = querySubmitter;
     }
 
@@ -114,12 +125,12 @@ public abstract class ChoicesFacetFromBoundedAbstract extends FacetAbstract impl
     @Override
     public Object[] getChoices(
             ObjectAdapter adapter,
-            final AuthenticationSession authenticationSession,
-            final DeploymentCategory deploymentCategory,
             final InteractionInitiatedBy interactionInitiatedBy) {
         final Query query = new QueryFindAllInstances(getObjectSpecification().getFullIdentifier());
         final List<ObjectAdapter> allInstancesAdapter = getQuerySubmitter().allMatchingQuery(query);
 
+        final AuthenticationSession authenticationSession = getAuthenticationSession();
+        final DeploymentCategory deploymentCategory = getDeploymentCategory();
         final List<ObjectAdapter> adapters =
                 ObjectAdapter.Util.visibleAdapters(
                     allInstancesAdapter, authenticationSession, deploymentCategory, interactionInitiatedBy);
@@ -128,5 +139,11 @@ public abstract class ChoicesFacetFromBoundedAbstract extends FacetAbstract impl
         return Lists.newArrayList(pojos).toArray();
     }
 
+    protected DeploymentCategory getDeploymentCategory() {
+        return deploymentCategory;
+    }
 
+    protected AuthenticationSession getAuthenticationSession() {
+        return authenticationSessionProvider.getAuthenticationSession();
+    }
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/6f865c59/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 525e5db..386b80c 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
@@ -19,15 +19,20 @@
 
 package org.apache.isis.core.metamodel.facets.object.choices.boundedmarkerifc;
 
+import org.apache.isis.core.commons.authentication.AuthenticationSessionProvider;
 import org.apache.isis.core.metamodel.adapter.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;
 
 public class ChoicesFacetFromBoundedMarkerInterface extends ChoicesFacetFromBoundedAbstract {
 
     public ChoicesFacetFromBoundedMarkerInterface(
-            final FacetHolder holder, final QuerySubmitter querySubmitter) {
-        super(holder, querySubmitter);
+            final FacetHolder holder,
+            final DeploymentCategory deploymentCategory,
+            final AuthenticationSessionProvider authenticationSessionProvider,
+            final QuerySubmitter querySubmitter) {
+        super(holder, deploymentCategory, authenticationSessionProvider, querySubmitter);
     }
 
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/6f865c59/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 f94d29f..8b157f9 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
@@ -44,8 +44,13 @@ public class ChoicesFacetFromBoundedMarkerInterfaceFactory extends FacetFactoryA
         FacetUtil.addFacet(create(implementsMarker, processClassContaxt.getFacetHolder()));
     }
 
-    private ChoicesFacet create(final boolean implementsMarker, final FacetHolder holder) {
-        return implementsMarker ? new ChoicesFacetFromBoundedMarkerInterface(holder, querySubmitter) : null;
+    private ChoicesFacet create(
+            final boolean implementsMarker,
+            final FacetHolder holder) {
+        return implementsMarker
+                ? new ChoicesFacetFromBoundedMarkerInterface(
+                    holder, getDeploymentCategory(), getAuthenticationSessionProvider(), querySubmitter)
+                : null;
     }
 
     public boolean recognizes(final Method method) {

http://git-wip-us.apache.org/repos/asf/isis/blob/6f865c59/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/choices/enums/ChoicesFacetEnum.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/choices/enums/ChoicesFacetEnum.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/choices/enums/ChoicesFacetEnum.java
index 4aad077..0498c65 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/choices/enums/ChoicesFacetEnum.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/choices/enums/ChoicesFacetEnum.java
@@ -19,10 +19,8 @@
 
 package org.apache.isis.core.metamodel.facets.object.choices.enums;
 
-import org.apache.isis.core.commons.authentication.AuthenticationSession;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
-import org.apache.isis.core.metamodel.deployment.DeploymentCategory;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.objectvalue.choices.ChoicesFacetAbstract;
 
@@ -38,8 +36,7 @@ public class ChoicesFacetEnum extends ChoicesFacetAbstract {
     @Override
     public Object[] getChoices(
             final ObjectAdapter adapter,
-            final AuthenticationSession authenticationSession,
-            final DeploymentCategory deploymentCategory, final InteractionInitiatedBy interactionInitiatedBy) {
+            final InteractionInitiatedBy interactionInitiatedBy) {
         return choices;
     }
 

http://git-wip-us.apache.org/repos/asf/isis/blob/6f865c59/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 5d3c35b..09d6f5b 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
@@ -176,12 +176,19 @@ public class DomainObjectAnnotationFacetFactory extends FacetFactoryAbstract imp
         // check for the deprecated @AutoComplete annotation first
         final AutoComplete annotation = Annotations.getAnnotation(processClassContext.getCls(), AutoComplete.class);
         Facet facet = autoCompleteValidator.flagIfPresent(
-                AutoCompleteFacetForAutoCompleteAnnotation.create(annotation, getSpecificationLoader(), adapterManager, servicesInjector, facetHolder));
+                AutoCompleteFacetForAutoCompleteAnnotation.create(annotation, facetHolder,
+                        getDeploymentCategory(), getSpecificationLoader(),
+                        servicesInjector, getAuthenticationSessionProvider(),
+                        adapterManager
+                ));
 
         // else check from @DomainObject(auditing=...)
         if(facet == null) {
             facet = AutoCompleteFacetForDomainObjectAnnotation.create(
-                    domainObject, getSpecificationLoader(), adapterManager, servicesInjector, facetHolder);
+                    domainObject, facetHolder, getDeploymentCategory(),
+                    getSpecificationLoader(), servicesInjector,
+                    getAuthenticationSessionProvider(), adapterManager
+            );
         }
 
         // then add
@@ -196,11 +203,15 @@ public class DomainObjectAnnotationFacetFactory extends FacetFactoryAbstract imp
         // check for the deprecated @Bounded annotation first
         final Bounded annotation = Annotations.getAnnotation(processClassContext.getCls(), Bounded.class);
         Facet facet = boundedValidator.flagIfPresent(
-            ChoicesFacetFromBoundedAnnotation.create(annotation, querySubmitter, processClassContext.getFacetHolder()));
+            ChoicesFacetFromBoundedAnnotation.create(annotation, processClassContext.getFacetHolder(),
+                    getDeploymentCategory(),
+                    getAuthenticationSessionProvider(), querySubmitter
+            ));
 
         // else check from @DomainObject(bounded=...)
         if(facet == null) {
-            facet = ChoicesFacetForDomainObjectAnnotation.create(domainObject, querySubmitter, facetHolder);
+            facet = ChoicesFacetForDomainObjectAnnotation.create(domainObject, facetHolder, getDeploymentCategory(),
+                    getAuthenticationSessionProvider(), querySubmitter);
         }
 
         // then add

http://git-wip-us.apache.org/repos/asf/isis/blob/6f865c59/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/autocomplete/AutoCompleteFacetForAutoCompleteAnnotation.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/autocomplete/AutoCompleteFacetForAutoCompleteAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/autocomplete/AutoCompleteFacetForAutoCompleteAnnotation.java
index d0960a5..09b257f 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/autocomplete/AutoCompleteFacetForAutoCompleteAnnotation.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/autocomplete/AutoCompleteFacetForAutoCompleteAnnotation.java
@@ -20,7 +20,9 @@
 package org.apache.isis.core.metamodel.facets.object.domainobject.autocomplete;
 
 import org.apache.isis.applib.annotation.AutoComplete;
+import org.apache.isis.core.commons.authentication.AuthenticationSessionProvider;
 import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager;
+import org.apache.isis.core.metamodel.deployment.DeploymentCategory;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.object.autocomplete.AutoCompleteFacet;
 import org.apache.isis.core.metamodel.facets.object.autocomplete.AutoCompleteFacetAbstract;
@@ -35,10 +37,12 @@ public class AutoCompleteFacetForAutoCompleteAnnotation extends AutoCompleteFace
 
     public static AutoCompleteFacet create(
             final AutoComplete annotation,
+            final FacetHolder holder,
+            final DeploymentCategory deploymentCategory,
             final SpecificationLoader specificationLoader,
-            final AdapterManager adapterManager,
             final ServicesInjector servicesInjector,
-            final FacetHolder holder) {
+            final AuthenticationSessionProvider authenticationSessionProvider,
+            final AdapterManager adapterManager) {
 
         if(annotation == null) {
             return null;
@@ -47,11 +51,23 @@ public class AutoCompleteFacetForAutoCompleteAnnotation extends AutoCompleteFace
         final Class<?> repositoryClass = annotation.repository();
         final String actionName = annotation.action();
 
-        return new AutoCompleteFacetForAutoCompleteAnnotation(holder, repositoryClass, actionName, specificationLoader, adapterManager, servicesInjector);
+        return new AutoCompleteFacetForAutoCompleteAnnotation(holder, repositoryClass, actionName, deploymentCategory,
+                specificationLoader, servicesInjector, authenticationSessionProvider, adapterManager
+        );
     }
 
-    private AutoCompleteFacetForAutoCompleteAnnotation(final FacetHolder holder, final Class<?> repositoryClass, final String actionName, final SpecificationLoader specificationLoader, final AdapterManager adapterManager, final ServicesInjector servicesInjector) {
-        super(holder, repositoryClass, actionName, specificationLoader, adapterManager, servicesInjector);
+    private AutoCompleteFacetForAutoCompleteAnnotation(
+            final FacetHolder holder,
+            final Class<?> repositoryClass,
+            final String actionName,
+            final DeploymentCategory deploymentCategory,
+            final SpecificationLoader specificationLoader,
+            final ServicesInjector servicesInjector,
+            final AuthenticationSessionProvider authenticationSessionProvider,
+            final AdapterManager adapterManager) {
+        super(holder, repositoryClass, actionName, deploymentCategory, specificationLoader, servicesInjector,
+                authenticationSessionProvider, adapterManager
+        );
     }
 
 

http://git-wip-us.apache.org/repos/asf/isis/blob/6f865c59/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/autocomplete/AutoCompleteFacetForDomainObjectAnnotation.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/autocomplete/AutoCompleteFacetForDomainObjectAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/autocomplete/AutoCompleteFacetForDomainObjectAnnotation.java
index 222482e..5913aa2 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/autocomplete/AutoCompleteFacetForDomainObjectAnnotation.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/autocomplete/AutoCompleteFacetForDomainObjectAnnotation.java
@@ -20,7 +20,9 @@
 package org.apache.isis.core.metamodel.facets.object.domainobject.autocomplete;
 
 import org.apache.isis.applib.annotation.DomainObject;
+import org.apache.isis.core.commons.authentication.AuthenticationSessionProvider;
 import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager;
+import org.apache.isis.core.metamodel.deployment.DeploymentCategory;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.object.autocomplete.AutoCompleteFacet;
 import org.apache.isis.core.metamodel.facets.object.autocomplete.AutoCompleteFacetAbstract;
@@ -34,10 +36,12 @@ public class AutoCompleteFacetForDomainObjectAnnotation extends AutoCompleteFace
 
     public static AutoCompleteFacet create(
             final DomainObject domainObject,
+            final FacetHolder holder,
+            final DeploymentCategory deploymentCategory,
             final SpecificationLoader specificationLoader,
-            final AdapterManager adapterManager,
             final ServicesInjector servicesInjector,
-            final FacetHolder holder) {
+            final AuthenticationSessionProvider authenticationSessionProvider,
+            final AdapterManager adapterManager) {
 
         if(domainObject == null) {
             return null;
@@ -48,12 +52,22 @@ public class AutoCompleteFacetForDomainObjectAnnotation extends AutoCompleteFace
             return null;
         }
         final String autoCompleteAction = domainObject.autoCompleteAction();
-        return new AutoCompleteFacetForDomainObjectAnnotation(holder, autoCompleteRepository, autoCompleteAction, specificationLoader, adapterManager, servicesInjector);
+        return new AutoCompleteFacetForDomainObjectAnnotation(holder, autoCompleteRepository, autoCompleteAction, deploymentCategory, specificationLoader, servicesInjector, authenticationSessionProvider, adapterManager
+        );
     }
 
     private AutoCompleteFacetForDomainObjectAnnotation(
-            final FacetHolder holder, final Class<?> repositoryClass, final String actionName, final SpecificationLoader specificationLoader, final AdapterManager adapterManager, final ServicesInjector servicesInjector) {
-        super(holder, repositoryClass, actionName, specificationLoader, adapterManager, servicesInjector);
+            final FacetHolder holder,
+            final Class<?> repositoryClass,
+            final String actionName,
+            final DeploymentCategory deploymentCategory,
+            final SpecificationLoader specificationLoader,
+            final ServicesInjector servicesInjector,
+            final AuthenticationSessionProvider authenticationSessionProvider,
+            final AdapterManager adapterManager) {
+        super(holder, repositoryClass, actionName, deploymentCategory, specificationLoader, servicesInjector,
+                authenticationSessionProvider, adapterManager
+        );
         this.repositoryClass = repositoryClass;
         this.actionName = actionName;
     }

http://git-wip-us.apache.org/repos/asf/isis/blob/6f865c59/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 75bc114..d0ecea2 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
@@ -20,7 +20,9 @@
 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.adapter.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;
@@ -29,19 +31,28 @@ public class ChoicesFacetForDomainObjectAnnotation extends ChoicesFacetFromBound
 
     public static Facet create(
             final DomainObject domainObject,
-            final QuerySubmitter querySubmitter,
-            final FacetHolder facetHolder) {
+            final FacetHolder facetHolder,
+            final DeploymentCategory deploymentCategory,
+            final AuthenticationSessionProvider authenticationSessionProvider,
+            final QuerySubmitter querySubmitter) {
 
         if(domainObject == null) {
             return null;
         }
 
         final boolean bounded = domainObject.bounded();
-        return bounded ? new ChoicesFacetForDomainObjectAnnotation(facetHolder, querySubmitter): null;
+        return bounded
+                ? new ChoicesFacetForDomainObjectAnnotation(
+                    facetHolder, querySubmitter, deploymentCategory, authenticationSessionProvider)
+                : null;
     }
 
-    private ChoicesFacetForDomainObjectAnnotation(final FacetHolder holder, final QuerySubmitter querySubmitter) {
-        super(holder, querySubmitter);
+    private ChoicesFacetForDomainObjectAnnotation(
+            final FacetHolder holder,
+            final QuerySubmitter querySubmitter,
+            final DeploymentCategory deploymentCategory,
+            final AuthenticationSessionProvider authenticationSessionProvider) {
+        super(holder, deploymentCategory, authenticationSessionProvider, querySubmitter);
     }
 
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/6f865c59/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 5954cd4..4f1f7a8 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
@@ -20,7 +20,9 @@
 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.adapter.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;
@@ -31,16 +33,27 @@ import org.apache.isis.core.metamodel.facets.objectvalue.choices.ChoicesFacet;
 @Deprecated
 public class ChoicesFacetFromBoundedAnnotation extends ChoicesFacetFromBoundedAbstract {
 
-    private ChoicesFacetFromBoundedAnnotation(final FacetHolder holder, QuerySubmitter querySubmitter) {
-        super(holder, querySubmitter);
+    private ChoicesFacetFromBoundedAnnotation(
+            final FacetHolder holder,
+            final DeploymentCategory deploymentCategory,
+            final AuthenticationSessionProvider authenticationSessionProvider,
+            final QuerySubmitter querySubmitter) {
+        super(holder, deploymentCategory, authenticationSessionProvider, querySubmitter);
     }
 
-    public static ChoicesFacet create(final Bounded annotation, final QuerySubmitter querySubmitter, final FacetHolder holder) {
+    public static ChoicesFacet create(
+            final Bounded annotation,
+            final FacetHolder holder,
+            final DeploymentCategory deploymentCategory,
+            final AuthenticationSessionProvider authenticationSessionProvider,
+            final QuerySubmitter querySubmitter) {
         if (annotation == null) {
             return null;
         }
 
-        return new ChoicesFacetFromBoundedAnnotation(holder, querySubmitter);
+        return new ChoicesFacetFromBoundedAnnotation(holder, deploymentCategory, authenticationSessionProvider,
+                querySubmitter
+        );
     }
 
 

http://git-wip-us.apache.org/repos/asf/isis/blob/6f865c59/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/parseable/annotcfg/ParseableFacetAnnotationElseConfigurationFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/parseable/annotcfg/ParseableFacetAnnotationElseConfigurationFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/parseable/annotcfg/ParseableFacetAnnotationElseConfigurationFactory.java
index 49810a0..e826fde 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/parseable/annotcfg/ParseableFacetAnnotationElseConfigurationFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/parseable/annotcfg/ParseableFacetAnnotationElseConfigurationFactory.java
@@ -28,7 +28,6 @@ import org.apache.isis.core.commons.config.IsisConfiguration;
 import org.apache.isis.core.commons.config.IsisConfigurationAware;
 import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager;
 import org.apache.isis.core.metamodel.adapter.mgr.AdapterManagerAware;
-import org.apache.isis.core.metamodel.deployment.DeploymentCategory;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facetapi.FacetUtil;
 import org.apache.isis.core.metamodel.facetapi.FeatureType;
@@ -87,12 +86,6 @@ public class ParseableFacetAnnotationElseConfigurationFactory extends FacetFacto
     // Dependencies (injected via setters since *Aware)
     // ////////////////////////////////////////////////////////////////////
 
-    /**
-     * Derived from {@link #setRuntimeContext(RuntimeContext)} (since {@link RuntimeContextAware}).
-     */
-    private DeploymentCategory getDeploymentCategory() {
-        return runtimeContext.getDeploymentCategory();
-    }
 
     public IsisConfiguration getIsisConfiguration() {
         return configuration;

http://git-wip-us.apache.org/repos/asf/isis/blob/6f865c59/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/value/annotcfg/ValueFacetAnnotationOrConfigurationFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/value/annotcfg/ValueFacetAnnotationOrConfigurationFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/value/annotcfg/ValueFacetAnnotationOrConfigurationFactory.java
index a53fafa..153374e 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/value/annotcfg/ValueFacetAnnotationOrConfigurationFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/value/annotcfg/ValueFacetAnnotationOrConfigurationFactory.java
@@ -129,13 +129,6 @@ public class ValueFacetAnnotationOrConfigurationFactory extends FacetFactoryAbst
     // Injected
     // ////////////////////////////////////////////////////////////////////
 
-    /**
-     * Derived from {@link #setRuntimeContext(RuntimeContext)} (since {@link RuntimeContextAware}).
-     */
-    private DeploymentCategory getDeploymentCategory() {
-        return runtimeContext.getDeploymentCategory();
-    }
-
     public IsisConfiguration getIsisConfiguration() {
         return configuration;
     }

http://git-wip-us.apache.org/repos/asf/isis/blob/6f865c59/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/value/vsp/ValueFacetUsingSemanticsProviderFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/value/vsp/ValueFacetUsingSemanticsProviderFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/value/vsp/ValueFacetUsingSemanticsProviderFactory.java
index 8af29ce..049dc32 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/value/vsp/ValueFacetUsingSemanticsProviderFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/value/vsp/ValueFacetUsingSemanticsProviderFactory.java
@@ -60,13 +60,6 @@ public abstract class ValueFacetUsingSemanticsProviderFactory<T> extends FacetFa
     // Dependencies (injected via setter)
     // ////////////////////////////////////////////////////
 
-    /**
-     * Derived from {@link #setRuntimeContext(RuntimeContext)} (since {@link RuntimeContextAware}).
-     */
-    private DeploymentCategory getDeploymentCategory() {
-        return runtimeContext.getDeploymentCategory();
-    }
-
 
     public IsisConfiguration getConfiguration() {
         return configuration;

http://git-wip-us.apache.org/repos/asf/isis/blob/6f865c59/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/objectvalue/choices/ChoicesFacet.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/objectvalue/choices/ChoicesFacet.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/objectvalue/choices/ChoicesFacet.java
index f74235c..e0c2cca 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/objectvalue/choices/ChoicesFacet.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/objectvalue/choices/ChoicesFacet.java
@@ -19,10 +19,8 @@
 
 package org.apache.isis.core.metamodel.facets.objectvalue.choices;
 
-import org.apache.isis.core.commons.authentication.AuthenticationSession;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
-import org.apache.isis.core.metamodel.deployment.DeploymentCategory;
 import org.apache.isis.core.metamodel.facetapi.Facet;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 
@@ -32,9 +30,8 @@ public interface ChoicesFacet extends Facet {
      * Gets a set of choices for this object.
      */
     public Object[] getChoices(
-            ObjectAdapter adapter,
-            final AuthenticationSession authenticationSession,
-            final DeploymentCategory deploymentCategory, final InteractionInitiatedBy interactionInitiatedBy);
+            final ObjectAdapter adapter,
+            final InteractionInitiatedBy interactionInitiatedBy);
 
     
     

http://git-wip-us.apache.org/repos/asf/isis/blob/6f865c59/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/autocomplete/ActionParameterAutoCompleteFacet.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/autocomplete/ActionParameterAutoCompleteFacet.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/autocomplete/ActionParameterAutoCompleteFacet.java
index e0d33e8..3fa945a 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/autocomplete/ActionParameterAutoCompleteFacet.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/autocomplete/ActionParameterAutoCompleteFacet.java
@@ -19,10 +19,8 @@
 
 package org.apache.isis.core.metamodel.facets.param.autocomplete;
 
-import org.apache.isis.core.commons.authentication.AuthenticationSession;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
-import org.apache.isis.core.metamodel.deployment.DeploymentCategory;
 import org.apache.isis.core.metamodel.facetapi.Facet;
 
 /**
@@ -36,10 +34,8 @@ import org.apache.isis.core.metamodel.facetapi.Facet;
 public interface ActionParameterAutoCompleteFacet extends Facet {
 
     public Object[] autoComplete(
-            ObjectAdapter inObject,
-            String searchArg,
-            final AuthenticationSession authenticationSession,
-            final DeploymentCategory deploymentCategory,
+            final ObjectAdapter inObject,
+            final String searchArg,
             final InteractionInitiatedBy interactionInitiatedBy);
     /**
      * The minimum number of characters that need to be entered.

http://git-wip-us.apache.org/repos/asf/isis/blob/6f865c59/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/autocomplete/ActionParameterAutoCompleteFacetAbstract.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/autocomplete/ActionParameterAutoCompleteFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/autocomplete/ActionParameterAutoCompleteFacetAbstract.java
index 8fa0e4a..5ab9032 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/autocomplete/ActionParameterAutoCompleteFacetAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/autocomplete/ActionParameterAutoCompleteFacetAbstract.java
@@ -19,7 +19,10 @@
 
 package org.apache.isis.core.metamodel.facets.param.autocomplete;
 
+import org.apache.isis.core.commons.authentication.AuthenticationSession;
+import org.apache.isis.core.commons.authentication.AuthenticationSessionProvider;
 import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager;
+import org.apache.isis.core.metamodel.deployment.DeploymentCategory;
 import org.apache.isis.core.metamodel.facetapi.Facet;
 import org.apache.isis.core.metamodel.facetapi.FacetAbstract;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
@@ -32,15 +35,21 @@ public abstract class ActionParameterAutoCompleteFacetAbstract extends FacetAbst
         return ActionParameterAutoCompleteFacet.class;
     }
 
+    private final DeploymentCategory deploymentCategory;
     private final SpecificationLoader specificationLoader;
+    private final AuthenticationSessionProvider authenticationSessionProvider;
     private final AdapterManager adapterManager;
 
     public ActionParameterAutoCompleteFacetAbstract(
             final FacetHolder holder,
+            final DeploymentCategory deploymentCategory,
             final SpecificationLoader specificationLoader,
+            final AuthenticationSessionProvider authenticationSessionProvider,
             final AdapterManager adapterManager) {
         super(type(), holder, Derivation.NOT_DERIVED);
+        this.deploymentCategory = deploymentCategory;
         this.specificationLoader = specificationLoader;
+        this.authenticationSessionProvider = authenticationSessionProvider;
         this.adapterManager = adapterManager;
     }
 
@@ -63,4 +72,11 @@ public abstract class ActionParameterAutoCompleteFacetAbstract extends FacetAbst
         return adapterManager;
     }
 
+    protected DeploymentCategory getDeploymentCategory() {
+        return deploymentCategory;
+    }
+
+    protected AuthenticationSession getAuthenticationSession() {
+        return authenticationSessionProvider.getAuthenticationSession();
+    }
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/6f865c59/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/autocomplete/method/ActionParameterAutoCompleteFacetViaMethod.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/autocomplete/method/ActionParameterAutoCompleteFacetViaMethod.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/autocomplete/method/ActionParameterAutoCompleteFacetViaMethod.java
index f7c6b58..adba970 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/autocomplete/method/ActionParameterAutoCompleteFacetViaMethod.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/autocomplete/method/ActionParameterAutoCompleteFacetViaMethod.java
@@ -27,6 +27,7 @@ import com.google.common.collect.Iterables;
 import com.google.common.collect.Lists;
 
 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.adapter.mgr.AdapterManager;
 import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
@@ -46,8 +47,15 @@ public class ActionParameterAutoCompleteFacetViaMethod extends ActionParameterAu
     private final Class<?> choicesType;
     private final int minLength;
 
-    public ActionParameterAutoCompleteFacetViaMethod(final Method method, final Class<?> choicesType, final FacetHolder holder, final SpecificationLoader specificationLookup, final AdapterManager adapterManager) {
-        super(holder, specificationLookup, adapterManager);
+    public ActionParameterAutoCompleteFacetViaMethod(
+            final Method method,
+            final Class<?> choicesType,
+            final FacetHolder holder,
+            final DeploymentCategory deploymentCategory,
+            final SpecificationLoader specificationLookup,
+            final AuthenticationSessionProvider authenticationSessionProvider,
+            final AdapterManager adapterManager) {
+        super(holder, deploymentCategory, specificationLookup, authenticationSessionProvider, adapterManager);
         this.method = method;
         this.choicesType = choicesType;
         this.minLength = MinLengthUtil.determineMinLength(method);
@@ -76,8 +84,6 @@ public class ActionParameterAutoCompleteFacetViaMethod extends ActionParameterAu
     public Object[] autoComplete(
             final ObjectAdapter owningAdapter,
             final String searchArg,
-            final AuthenticationSession authenticationSession,
-            final DeploymentCategory deploymentCategory,
             final InteractionInitiatedBy interactionInitiatedBy) {
 
         final Object collectionOrArray = ObjectAdapter.InvokeUtils.invoke(method, owningAdapter, searchArg);
@@ -89,6 +95,8 @@ public class ActionParameterAutoCompleteFacetViaMethod extends ActionParameterAu
         final FacetedMethodParameter facetedMethodParameter = (FacetedMethodParameter) getFacetHolder();
         final Class<?> parameterType = facetedMethodParameter.getType();
 
+        final AuthenticationSession authenticationSession = getAuthenticationSession();
+        final DeploymentCategory deploymentCategory = getDeploymentCategory();
         final List<ObjectAdapter> visibleAdapters =
                 ObjectAdapter.Util.visibleAdapters(
                         collectionAdapter,

http://git-wip-us.apache.org/repos/asf/isis/blob/6f865c59/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/autocomplete/method/ActionParameterAutoCompleteFacetViaMethodFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/autocomplete/method/ActionParameterAutoCompleteFacetViaMethodFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/autocomplete/method/ActionParameterAutoCompleteFacetViaMethodFactory.java
index 89fb2f2..9edb76d 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/autocomplete/method/ActionParameterAutoCompleteFacetViaMethodFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/autocomplete/method/ActionParameterAutoCompleteFacetViaMethodFactory.java
@@ -84,7 +84,11 @@ public class ActionParameterAutoCompleteFacetViaMethodFactory extends MethodPref
 
             // add facets directly to parameters, not to actions
             final FacetedMethodParameter paramAsHolder = parameters.get(i);
-            FacetUtil.addFacet(new ActionParameterAutoCompleteFacetViaMethod(autoCompleteMethod, paramType, paramAsHolder, getSpecificationLoader(), getAdapterManager()));
+            FacetUtil.addFacet(
+                    new ActionParameterAutoCompleteFacetViaMethod(
+                            autoCompleteMethod, paramType, paramAsHolder,
+                            getDeploymentCategory(), getSpecificationLoader(),
+                            getAuthenticationSessionProvider(), getAdapterManager()));
         }
     }
 

http://git-wip-us.apache.org/repos/asf/isis/blob/6f865c59/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/choices/ActionChoicesFacet.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/choices/ActionChoicesFacet.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/choices/ActionChoicesFacet.java
index a4055b8..7b46bf5 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/choices/ActionChoicesFacet.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/param/choices/ActionChoicesFacet.java
@@ -19,10 +19,8 @@
 
 package org.apache.isis.core.metamodel.facets.param.choices;
 
-import org.apache.isis.core.commons.authentication.AuthenticationSession;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
-import org.apache.isis.core.metamodel.deployment.DeploymentCategory;
 import org.apache.isis.core.metamodel.facetapi.Facet;
 
 /**
@@ -35,7 +33,6 @@ import org.apache.isis.core.metamodel.facetapi.Facet;
 public interface ActionChoicesFacet extends Facet {
 
     public Object[][] getChoices(
-            ObjectAdapter inObject,
-            final AuthenticationSession authenticationSession,
-            final DeploymentCategory deploymentCategory, final InteractionInitiatedBy interactionInitiatedBy);
+            final ObjectAdapter inObject,
+            final InteractionInitiatedBy interactionInitiatedBy);
 }