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:17 UTC

[86/87] [abbrv] isis git commit: ISIS-1044: remove DeploymentCategory, AuthenticationSession from the InteractionContext class hierarchy.

http://git-wip-us.apache.org/repos/asf/isis/blob/6b5d586e/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/ObjectValidityContext.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/ObjectValidityContext.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/ObjectValidityContext.java
index 793e067..ac8178e 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/ObjectValidityContext.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/ObjectValidityContext.java
@@ -19,16 +19,13 @@
 
 package org.apache.isis.core.metamodel.interactions;
 
-import static org.apache.isis.core.metamodel.adapter.ObjectAdapter.Util.unwrap;
-
-
 import org.apache.isis.applib.Identifier;
 import org.apache.isis.applib.events.ObjectValidityEvent;
-import org.apache.isis.core.commons.authentication.AuthenticationSession;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.core.metamodel.consent.InteractionContextType;
 import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
-import org.apache.isis.core.metamodel.deployment.DeploymentCategory;
+
+import static org.apache.isis.core.metamodel.adapter.ObjectAdapter.Util.unwrap;
 
 /**
  * See {@link InteractionContext} for overview; analogous to
@@ -36,8 +33,11 @@ import org.apache.isis.core.metamodel.deployment.DeploymentCategory;
  */
 public class ObjectValidityContext extends ValidityContext<ObjectValidityEvent> implements ProposedHolder {
 
-    public ObjectValidityContext(DeploymentCategory deploymentCategory, final AuthenticationSession session, final InteractionInitiatedBy invocationMethod, final ObjectAdapter target, final Identifier identifier) {
-        super(InteractionContextType.OBJECT_VALIDATE, deploymentCategory, session, invocationMethod, identifier, target);
+    public ObjectValidityContext(
+            final ObjectAdapter targetAdapter,
+            final Identifier identifier,
+            final InteractionInitiatedBy interactionInitiatedBy) {
+        super(InteractionContextType.OBJECT_VALIDATE, targetAdapter, identifier, interactionInitiatedBy);
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/isis/blob/6b5d586e/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/ObjectVisibilityContext.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/ObjectVisibilityContext.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/ObjectVisibilityContext.java
index 8c3908e..42ae62f 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/ObjectVisibilityContext.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/ObjectVisibilityContext.java
@@ -22,11 +22,9 @@ package org.apache.isis.core.metamodel.interactions;
 import org.apache.isis.applib.Identifier;
 import org.apache.isis.applib.annotation.Where;
 import org.apache.isis.applib.events.ObjectVisibilityEvent;
-import org.apache.isis.core.commons.authentication.AuthenticationSession;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.core.metamodel.consent.InteractionContextType;
 import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
-import org.apache.isis.core.metamodel.deployment.DeploymentCategory;
 
 import static org.apache.isis.core.metamodel.adapter.ObjectAdapter.Util.unwrap;
 
@@ -37,13 +35,11 @@ import static org.apache.isis.core.metamodel.adapter.ObjectAdapter.Util.unwrap;
 public class ObjectVisibilityContext extends VisibilityContext<ObjectVisibilityEvent> implements ProposedHolder {
 
     public ObjectVisibilityContext(
-            final DeploymentCategory deploymentCategory,
-            final AuthenticationSession session,
-            final InteractionInitiatedBy invocationMethod,
-            final ObjectAdapter target,
+            final ObjectAdapter targetAdapter,
             final Identifier identifier,
+            final InteractionInitiatedBy interactionInitiatedBy,
             final Where where) {
-        super(InteractionContextType.OBJECT_VISIBILITY, deploymentCategory, session, invocationMethod, identifier, target, where);
+        super(InteractionContextType.OBJECT_VISIBILITY, targetAdapter, identifier, interactionInitiatedBy, where);
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/isis/blob/6b5d586e/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/ParseValueContext.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/ParseValueContext.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/ParseValueContext.java
index 17492f0..be0c1ce 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/ParseValueContext.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/ParseValueContext.java
@@ -19,16 +19,13 @@
 
 package org.apache.isis.core.metamodel.interactions;
 
-import static org.apache.isis.core.metamodel.adapter.ObjectAdapter.Util.unwrap;
-
-
 import org.apache.isis.applib.Identifier;
 import org.apache.isis.applib.events.ParseValueEvent;
-import org.apache.isis.core.commons.authentication.AuthenticationSession;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.core.metamodel.consent.InteractionContextType;
 import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
-import org.apache.isis.core.metamodel.deployment.DeploymentCategory;
+
+import static org.apache.isis.core.metamodel.adapter.ObjectAdapter.Util.unwrap;
 
 /**
  * See {@link InteractionContext} for overview; analogous to
@@ -38,8 +35,12 @@ public class ParseValueContext extends ValidityContext<ParseValueEvent> implemen
 
     private final ObjectAdapter proposed;
 
-    public ParseValueContext(DeploymentCategory deploymentCategory, final AuthenticationSession session, final InteractionInitiatedBy invocationMethod, final ObjectAdapter target, final Identifier identifier, final ObjectAdapter proposed) {
-        super(InteractionContextType.PARSE_VALUE, deploymentCategory, session, invocationMethod, identifier, target);
+    public ParseValueContext(
+            final ObjectAdapter targetAdapter,
+            final Identifier identifier,
+            final ObjectAdapter proposed,
+            final InteractionInitiatedBy interactionInitiatedBy) {
+        super(InteractionContextType.PARSE_VALUE, targetAdapter, identifier, interactionInitiatedBy);
         this.proposed = proposed;
     }
 

http://git-wip-us.apache.org/repos/asf/isis/blob/6b5d586e/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/PropertyAccessContext.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/PropertyAccessContext.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/PropertyAccessContext.java
index b16b139..a2bff2a 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/PropertyAccessContext.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/PropertyAccessContext.java
@@ -19,16 +19,13 @@
 
 package org.apache.isis.core.metamodel.interactions;
 
-import static org.apache.isis.core.metamodel.adapter.ObjectAdapter.Util.unwrap;
-
-
 import org.apache.isis.applib.Identifier;
 import org.apache.isis.applib.events.PropertyAccessEvent;
-import org.apache.isis.core.commons.authentication.AuthenticationSession;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.core.metamodel.consent.InteractionContextType;
 import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
-import org.apache.isis.core.metamodel.deployment.DeploymentCategory;
+
+import static org.apache.isis.core.metamodel.adapter.ObjectAdapter.Util.unwrap;
 
 /**
  * See {@link InteractionContext} for overview; analogous to
@@ -38,8 +35,12 @@ public class PropertyAccessContext extends AccessContext<PropertyAccessEvent> {
 
     private final ObjectAdapter value;
 
-    public PropertyAccessContext(DeploymentCategory deploymentCategory, final AuthenticationSession session, final InteractionInitiatedBy invocationMethod, final ObjectAdapter target, final Identifier id, final ObjectAdapter value) {
-        super(InteractionContextType.PROPERTY_READ, deploymentCategory, session, invocationMethod, id, target);
+    public PropertyAccessContext(
+            final ObjectAdapter targetAdapter,
+            final Identifier id,
+            final ObjectAdapter value,
+            final InteractionInitiatedBy interactionInitiatedBy) {
+        super(InteractionContextType.PROPERTY_READ, id, targetAdapter, interactionInitiatedBy);
 
         this.value = value;
     }

http://git-wip-us.apache.org/repos/asf/isis/blob/6b5d586e/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/PropertyModifyContext.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/PropertyModifyContext.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/PropertyModifyContext.java
index b1596d3..3205852 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/PropertyModifyContext.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/PropertyModifyContext.java
@@ -19,16 +19,13 @@
 
 package org.apache.isis.core.metamodel.interactions;
 
-import static org.apache.isis.core.metamodel.adapter.ObjectAdapter.Util.unwrap;
-
-
 import org.apache.isis.applib.Identifier;
 import org.apache.isis.applib.events.PropertyModifyEvent;
-import org.apache.isis.core.commons.authentication.AuthenticationSession;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.core.metamodel.consent.InteractionContextType;
 import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
-import org.apache.isis.core.metamodel.deployment.DeploymentCategory;
+
+import static org.apache.isis.core.metamodel.adapter.ObjectAdapter.Util.unwrap;
 
 /**
  * See {@link InteractionContext} for overview; analogous to
@@ -38,8 +35,12 @@ public class PropertyModifyContext extends ValidityContext<PropertyModifyEvent>
 
     private final ObjectAdapter proposed;
 
-    public PropertyModifyContext(DeploymentCategory deploymentCategory, final AuthenticationSession session, final InteractionInitiatedBy invocationMethod, final ObjectAdapter target, final Identifier id, final ObjectAdapter proposed) {
-        super(InteractionContextType.PROPERTY_MODIFY, deploymentCategory, session, invocationMethod, id, target);
+    public PropertyModifyContext(
+            final ObjectAdapter targetAdapter,
+            final Identifier id,
+            final ObjectAdapter proposed,
+            final InteractionInitiatedBy interactionInitiatedBy) {
+        super(InteractionContextType.PROPERTY_MODIFY, targetAdapter, id, interactionInitiatedBy);
 
         this.proposed = proposed;
     }

http://git-wip-us.apache.org/repos/asf/isis/blob/6b5d586e/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/PropertyUsabilityContext.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/PropertyUsabilityContext.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/PropertyUsabilityContext.java
index b6b2d68..4701619 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/PropertyUsabilityContext.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/PropertyUsabilityContext.java
@@ -19,17 +19,14 @@
 
 package org.apache.isis.core.metamodel.interactions;
 
-import static org.apache.isis.core.metamodel.adapter.ObjectAdapter.Util.unwrap;
-
-
 import org.apache.isis.applib.Identifier;
 import org.apache.isis.applib.annotation.Where;
 import org.apache.isis.applib.events.PropertyUsabilityEvent;
-import org.apache.isis.core.commons.authentication.AuthenticationSession;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.core.metamodel.consent.InteractionContextType;
 import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
-import org.apache.isis.core.metamodel.deployment.DeploymentCategory;
+
+import static org.apache.isis.core.metamodel.adapter.ObjectAdapter.Util.unwrap;
 
 /**
  * See {@link InteractionContext} for overview; analogous to
@@ -37,8 +34,12 @@ import org.apache.isis.core.metamodel.deployment.DeploymentCategory;
  */
 public class PropertyUsabilityContext extends UsabilityContext<PropertyUsabilityEvent> {
 
-    public PropertyUsabilityContext(DeploymentCategory deploymentCategory, final AuthenticationSession session, final InteractionInitiatedBy invocationMethod, final ObjectAdapter target, final Identifier identifier, Where where) {
-        super(InteractionContextType.PROPERTY_USABLE, deploymentCategory, session, invocationMethod, identifier, target, where);
+    public PropertyUsabilityContext(
+            final ObjectAdapter targetAdapter,
+            final Identifier identifier,
+            final InteractionInitiatedBy interactionInitiatedBy,
+            final Where where) {
+        super(InteractionContextType.PROPERTY_USABLE, targetAdapter, identifier, interactionInitiatedBy, where);
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/isis/blob/6b5d586e/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/PropertyVisibilityContext.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/PropertyVisibilityContext.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/PropertyVisibilityContext.java
index 415e5d6..365eb8f 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/PropertyVisibilityContext.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/PropertyVisibilityContext.java
@@ -22,11 +22,9 @@ package org.apache.isis.core.metamodel.interactions;
 import org.apache.isis.applib.Identifier;
 import org.apache.isis.applib.annotation.Where;
 import org.apache.isis.applib.events.PropertyVisibilityEvent;
-import org.apache.isis.core.commons.authentication.AuthenticationSession;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.core.metamodel.consent.InteractionContextType;
 import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
-import org.apache.isis.core.metamodel.deployment.DeploymentCategory;
 
 import static org.apache.isis.core.metamodel.adapter.ObjectAdapter.Util.unwrap;
 
@@ -36,8 +34,12 @@ import static org.apache.isis.core.metamodel.adapter.ObjectAdapter.Util.unwrap;
  */
 public class PropertyVisibilityContext extends VisibilityContext<PropertyVisibilityEvent> {
 
-    public PropertyVisibilityContext(DeploymentCategory deploymentCategory, final AuthenticationSession session, final InteractionInitiatedBy invocationMethod, final ObjectAdapter target, final Identifier identifier, Where where) {
-        super(InteractionContextType.PROPERTY_VISIBLE, deploymentCategory, session, invocationMethod, identifier, target, where);
+    public PropertyVisibilityContext(
+            final ObjectAdapter targetAdapter,
+            final Identifier identifier,
+            final InteractionInitiatedBy interactionInitiatedBy,
+            final Where where) {
+        super(InteractionContextType.PROPERTY_VISIBLE, targetAdapter, identifier, interactionInitiatedBy, where);
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/isis/blob/6b5d586e/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/UsabilityContext.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/UsabilityContext.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/UsabilityContext.java
index dae7531..bdcf8d3 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/UsabilityContext.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/UsabilityContext.java
@@ -22,11 +22,9 @@ package org.apache.isis.core.metamodel.interactions;
 import org.apache.isis.applib.Identifier;
 import org.apache.isis.applib.annotation.Where;
 import org.apache.isis.applib.events.UsabilityEvent;
-import org.apache.isis.core.commons.authentication.AuthenticationSession;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.core.metamodel.consent.InteractionContextType;
 import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
-import org.apache.isis.core.metamodel.deployment.DeploymentCategory;
 
 /**
  * See {@link InteractionContext} for overview; analogous to
@@ -36,8 +34,13 @@ public abstract class UsabilityContext<T extends UsabilityEvent> extends Interac
 
     private final Where where;
 
-    public UsabilityContext(final InteractionContextType interactionType, DeploymentCategory deploymentCategory, final AuthenticationSession session, final InteractionInitiatedBy invocationMethod, final Identifier identifier, final ObjectAdapter target, final Where where) {
-        super(interactionType, deploymentCategory, session, invocationMethod, identifier, target);
+    public UsabilityContext(
+            final InteractionContextType interactionType,
+            final ObjectAdapter targetAdapter,
+            final Identifier identifier,
+            final InteractionInitiatedBy interactionInitiatedBy,
+            final Where where) {
+        super(interactionType, interactionInitiatedBy, identifier, targetAdapter);
         this.where = where;
     }
 

http://git-wip-us.apache.org/repos/asf/isis/blob/6b5d586e/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/ValidityContext.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/ValidityContext.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/ValidityContext.java
index 8cdb2ca..ea4e17d 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/ValidityContext.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/ValidityContext.java
@@ -21,11 +21,9 @@ package org.apache.isis.core.metamodel.interactions;
 
 import org.apache.isis.applib.Identifier;
 import org.apache.isis.applib.events.ValidityEvent;
-import org.apache.isis.core.commons.authentication.AuthenticationSession;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.core.metamodel.consent.InteractionContextType;
 import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
-import org.apache.isis.core.metamodel.deployment.DeploymentCategory;
 
 /**
  * See {@link InteractionContext} for overview; analogous to
@@ -33,8 +31,12 @@ import org.apache.isis.core.metamodel.deployment.DeploymentCategory;
  */
 public abstract class ValidityContext<T extends ValidityEvent> extends InteractionContext<T> {
 
-    public ValidityContext(final InteractionContextType interactionType, DeploymentCategory deploymentCategory, final AuthenticationSession session, final InteractionInitiatedBy invocationMethod, final Identifier identifier, final ObjectAdapter target) {
-        super(interactionType, deploymentCategory, session, invocationMethod, identifier, target);
+    public ValidityContext(
+            final InteractionContextType interactionType,
+            final ObjectAdapter target,
+            final Identifier identifier,
+            final InteractionInitiatedBy invocationMethod) {
+        super(interactionType, invocationMethod, identifier, target);
     }
 
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/6b5d586e/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/VisibilityContext.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/VisibilityContext.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/VisibilityContext.java
index 6a20167..b264cf1 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/VisibilityContext.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/interactions/VisibilityContext.java
@@ -22,11 +22,9 @@ package org.apache.isis.core.metamodel.interactions;
 import org.apache.isis.applib.Identifier;
 import org.apache.isis.applib.annotation.Where;
 import org.apache.isis.applib.events.VisibilityEvent;
-import org.apache.isis.core.commons.authentication.AuthenticationSession;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.core.metamodel.consent.InteractionContextType;
 import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
-import org.apache.isis.core.metamodel.deployment.DeploymentCategory;
 
 /**
  * See {@link InteractionContext} for overview; analogous to
@@ -38,13 +36,11 @@ public abstract class VisibilityContext<T extends VisibilityEvent> extends Inter
 
     public VisibilityContext(
             final InteractionContextType interactionType,
-            final DeploymentCategory deploymentCategory,
-            final AuthenticationSession session,
-            final InteractionInitiatedBy invocationMethod,
+            final ObjectAdapter targetAdapter,
             final Identifier identifier,
-            final ObjectAdapter target,
+            final InteractionInitiatedBy interactionInitiatedBy,
             final Where where) {
-        super(interactionType, deploymentCategory, session, invocationMethod, identifier, target);
+        super(interactionType, interactionInitiatedBy, identifier, targetAdapter);
         this.where = where;
     }
 

http://git-wip-us.apache.org/repos/asf/isis/blob/6b5d586e/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ObjectSpecification.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ObjectSpecification.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ObjectSpecification.java
index c79e957..18a0ab1 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ObjectSpecification.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ObjectSpecification.java
@@ -224,24 +224,26 @@ public interface ObjectSpecification extends Specification, ObjectActionContaine
     // ValidityContext, Validity
     // //////////////////////////////////////////////////////////////
 
-    /**
-     * Create an {@link InteractionContext} representing an attempt to save the
-     * object.
-     * @param deploymentCategory TODO
-     */
-    ObjectValidityContext createValidityInteractionContext(DeploymentCategory deploymentCategory, AuthenticationSession session, InteractionInitiatedBy invocationMethod, ObjectAdapter targetObjectAdapter);
+    // internal API
+    ObjectValidityContext createValidityInteractionContext(
+            final ObjectAdapter targetAdapter,
+            final InteractionInitiatedBy interactionInitiatedBy);
 
     /**
      * Determines whether the specified object is in a valid state (for example,
      * so can be persisted); represented as a {@link Consent}.
      */
-    Consent isValid(ObjectAdapter adapter, final InteractionInitiatedBy interactionInitiatedBy);
+    Consent isValid(
+            final ObjectAdapter targetAdapter,
+            final InteractionInitiatedBy interactionInitiatedBy);
 
     /**
      * Determines whether the specified object is in a valid state (for example,
      * so can be persisted); represented as a {@link InteractionResult}.
      */
-    InteractionResult isValidResult(ObjectAdapter adapter, final InteractionInitiatedBy interactionInitiatedBy);
+    InteractionResult isValidResult(
+            final ObjectAdapter targetAdapter,
+            final InteractionInitiatedBy interactionInitiatedBy);
 
     // //////////////////////////////////////////////////////////////
     // Facets

http://git-wip-us.apache.org/repos/asf/isis/blob/6b5d586e/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionImpl.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionImpl.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionImpl.java
index 8ec664f..4d40f3d 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionImpl.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionImpl.java
@@ -284,8 +284,7 @@ public class ObjectActionImpl extends ObjectMemberAbstract implements ObjectActi
     public VisibilityContext<?> createVisibleInteractionContext(
             final ObjectAdapter targetObjectAdapter, final InteractionInitiatedBy interactionInitiatedBy,
             Where where) {
-        final AuthenticationSession session = getAuthenticationSession();
-        return new ActionVisibilityContext(getDeploymentCategory(), session, interactionInitiatedBy, targetObjectAdapter, getIdentifier(), where);
+        return new ActionVisibilityContext(targetObjectAdapter, getIdentifier(), interactionInitiatedBy, where);
     }
 
     // /////////////////////////////////////////////////////////////
@@ -296,8 +295,7 @@ public class ObjectActionImpl extends ObjectMemberAbstract implements ObjectActi
     public UsabilityContext<?> createUsableInteractionContext(
             final ObjectAdapter targetObjectAdapter, final InteractionInitiatedBy interactionInitiatedBy,
             Where where) {
-        final AuthenticationSession session = getAuthenticationSession();
-        return new ActionUsabilityContext(getDeploymentCategory(), session, interactionInitiatedBy, targetObjectAdapter, getIdentifier(), where);
+        return new ActionUsabilityContext(targetObjectAdapter, getIdentifier(), interactionInitiatedBy, where);
     }
 
     // //////////////////////////////////////////////////////////////////
@@ -341,7 +339,8 @@ public class ObjectActionImpl extends ObjectMemberAbstract implements ObjectActi
             final ObjectAdapter targetObject,
             final ObjectAdapter[] proposedArguments,
             final InteractionInitiatedBy interactionInitiatedBy) {
-        return new ActionInvocationContext(getDeploymentCategory(), getAuthenticationSession(), interactionInitiatedBy, targetObject, getIdentifier(), proposedArguments);
+        return new ActionInvocationContext(targetObject, getIdentifier(), proposedArguments,
+                interactionInitiatedBy);
     }
 
     // //////////////////////////////////////////////////////////////////

http://git-wip-us.apache.org/repos/asf/isis/blob/6b5d586e/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 ead6489..d5688ba 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
@@ -442,7 +442,8 @@ public abstract class ObjectActionParameterAbstract implements ObjectActionParam
             final ObjectAdapter[] proposedArguments,
             final int position,
             final InteractionInitiatedBy interactionInitiatedBy) {
-        return new ActionArgumentContext(getDeploymentCategory(), getAuthenticationSession(), interactionInitiatedBy, targetObject, getIdentifier(), proposedArguments, position);
+        return new ActionArgumentContext(targetObject, getIdentifier(), proposedArguments,
+                position, interactionInitiatedBy);
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/isis/blob/6b5d586e/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectSpecificationAbstract.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectSpecificationAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectSpecificationAbstract.java
index c31a987..ad7c6d5 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectSpecificationAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectSpecificationAbstract.java
@@ -623,7 +623,8 @@ public abstract class ObjectSpecificationAbstract extends FacetHolderImpl implem
 
     @Override
     public ObjectTitleContext createTitleInteractionContext(final AuthenticationSession session, final InteractionInitiatedBy interactionMethod, final ObjectAdapter targetObjectAdapter) {
-        return new ObjectTitleContext(getDeploymentCategory(), session, interactionMethod, targetObjectAdapter, getIdentifier(), targetObjectAdapter.titleString());
+        return new ObjectTitleContext(targetObjectAdapter, getIdentifier(), targetObjectAdapter.titleString(null),
+                interactionMethod);
     }
 
     // //////////////////////////////////////////////////////////////////////
@@ -1085,17 +1086,17 @@ public abstract class ObjectSpecificationAbstract extends FacetHolderImpl implem
     // //////////////////////////////////////////////////////////////////////
 
     @Override
-    public Consent isValid(final ObjectAdapter inObject, final InteractionInitiatedBy interactionInitiatedBy) {
-        return isValidResult(inObject, interactionInitiatedBy).createConsent();
+    public Consent isValid(final ObjectAdapter targetAdapter, final InteractionInitiatedBy interactionInitiatedBy) {
+        return isValidResult(targetAdapter, interactionInitiatedBy).createConsent();
     }
 
     @Override
     public InteractionResult isValidResult(
-            final ObjectAdapter targetObjectAdapter,
+            final ObjectAdapter targetAdapter,
             final InteractionInitiatedBy interactionInitiatedBy) {
         final ObjectValidityContext validityContext =
-                createValidityInteractionContext(deploymentCategory, getAuthenticationSession(),
-                interactionInitiatedBy, targetObjectAdapter);
+                createValidityInteractionContext(
+                        targetAdapter, interactionInitiatedBy);
         return InteractionUtils.isValidResult(this, validityContext);
     }
 
@@ -1104,8 +1105,9 @@ public abstract class ObjectSpecificationAbstract extends FacetHolderImpl implem
      * object.
      */
     @Override
-    public ObjectValidityContext createValidityInteractionContext(DeploymentCategory deploymentCategory, final AuthenticationSession session, final InteractionInitiatedBy interactionMethod, final ObjectAdapter targetObjectAdapter) {
-        return new ObjectValidityContext(deploymentCategory, session, interactionMethod, targetObjectAdapter, getIdentifier());
+    public ObjectValidityContext createValidityInteractionContext(
+            final ObjectAdapter targetAdapter, final InteractionInitiatedBy interactionInitiatedBy) {
+        return new ObjectValidityContext(targetAdapter, getIdentifier(), interactionInitiatedBy);
     }
 
     // //////////////////////////////////////////////////////////////////////

http://git-wip-us.apache.org/repos/asf/isis/blob/6b5d586e/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToManyAssociationImpl.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToManyAssociationImpl.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToManyAssociationImpl.java
index 9665a48..e05cf76 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToManyAssociationImpl.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToManyAssociationImpl.java
@@ -78,8 +78,7 @@ public class OneToManyAssociationImpl extends ObjectAssociationAbstract implemen
     public VisibilityContext<?> createVisibleInteractionContext(
             final ObjectAdapter ownerAdapter, final InteractionInitiatedBy interactionInitiatedBy,
             Where where) {
-        final AuthenticationSession session = getAuthenticationSession();
-        return new CollectionVisibilityContext(getDeploymentCategory(), session, interactionInitiatedBy, ownerAdapter, getIdentifier(), where);
+        return new CollectionVisibilityContext(ownerAdapter, getIdentifier(), interactionInitiatedBy, where);
     }
 
     // /////////////////////////////////////////////////////////////
@@ -90,8 +89,7 @@ public class OneToManyAssociationImpl extends ObjectAssociationAbstract implemen
     public UsabilityContext<?> createUsableInteractionContext(
             final ObjectAdapter ownerAdapter, final InteractionInitiatedBy interactionInitiatedBy,
             Where where) {
-        final AuthenticationSession session = getAuthenticationSession();
-        return new CollectionUsabilityContext(getDeploymentCategory(), session, interactionInitiatedBy, ownerAdapter, getIdentifier(), where);
+        return new CollectionUsabilityContext(ownerAdapter, getIdentifier(), interactionInitiatedBy, where);
     }
 
     // /////////////////////////////////////////////////////////////
@@ -103,8 +101,8 @@ public class OneToManyAssociationImpl extends ObjectAssociationAbstract implemen
             final InteractionInitiatedBy interactionInitiatedBy,
             final ObjectAdapter ownerAdapter,
             final ObjectAdapter proposedToAddAdapter) {
-        final AuthenticationSession authenticationSession = getAuthenticationSession();
-        return new CollectionAddToContext(getDeploymentCategory(), authenticationSession, interactionInitiatedBy, ownerAdapter, getIdentifier(), proposedToAddAdapter);
+        return new CollectionAddToContext(ownerAdapter, getIdentifier(), proposedToAddAdapter,
+                interactionInitiatedBy);
     }
 
     @Override
@@ -133,11 +131,8 @@ public class OneToManyAssociationImpl extends ObjectAssociationAbstract implemen
             final ObjectAdapter proposedToRemoveAdapter,
             final InteractionInitiatedBy interactionInitiatedBy) {
         return new CollectionRemoveFromContext(
-                getDeploymentCategory(), getAuthenticationSession(),
-                interactionInitiatedBy,
-                ownerAdapter,
-                getIdentifier(),
-                proposedToRemoveAdapter);
+                ownerAdapter, getIdentifier(), proposedToRemoveAdapter, interactionInitiatedBy
+        );
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/isis/blob/6b5d586e/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToOneAssociationImpl.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToOneAssociationImpl.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToOneAssociationImpl.java
index 5ada58a..ec07768 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToOneAssociationImpl.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToOneAssociationImpl.java
@@ -78,8 +78,7 @@ public class OneToOneAssociationImpl extends ObjectAssociationAbstract implement
     public VisibilityContext<?> createVisibleInteractionContext(
             final ObjectAdapter ownerAdapter, final InteractionInitiatedBy interactionInitiatedBy,
             Where where) {
-        final AuthenticationSession session = getAuthenticationSession();
-        return new PropertyVisibilityContext(getDeploymentCategory(), session, interactionInitiatedBy, ownerAdapter, getIdentifier(), where);
+        return new PropertyVisibilityContext(ownerAdapter, getIdentifier(), interactionInitiatedBy, where);
     }
 
     // /////////////////////////////////////////////////////////////
@@ -90,8 +89,7 @@ public class OneToOneAssociationImpl extends ObjectAssociationAbstract implement
     public UsabilityContext<?> createUsableInteractionContext(
             final ObjectAdapter ownerAdapter, final InteractionInitiatedBy interactionInitiatedBy,
             Where where) {
-        final AuthenticationSession session = getAuthenticationSession();
-        return new PropertyUsabilityContext(getDeploymentCategory(), session, interactionInitiatedBy, ownerAdapter, getIdentifier(), where);
+        return new PropertyUsabilityContext(ownerAdapter, getIdentifier(), interactionInitiatedBy, where);
     }
 
     // /////////////////////////////////////////////////////////////
@@ -102,8 +100,8 @@ public class OneToOneAssociationImpl extends ObjectAssociationAbstract implement
             final ObjectAdapter ownerAdapter,
             final ObjectAdapter proposedToReferenceAdapter,
             final InteractionInitiatedBy interactionInitiatedBy) {
-        final AuthenticationSession session = getAuthenticationSession();
-        return new PropertyModifyContext(getDeploymentCategory(), session, interactionInitiatedBy, ownerAdapter, getIdentifier(), proposedToReferenceAdapter);
+        return new PropertyModifyContext(ownerAdapter, getIdentifier(), proposedToReferenceAdapter,
+                interactionInitiatedBy);
     }
 
     @Override
@@ -118,7 +116,6 @@ public class OneToOneAssociationImpl extends ObjectAssociationAbstract implement
             final ObjectAdapter ownerAdapter,
             final ObjectAdapter proposedToReferenceAdapter,
             final InteractionInitiatedBy interactionInitiatedBy) {
-        final AuthenticationSession session = getAuthenticationSession();
         final ValidityContext<?> validityContext =
                 createValidateInteractionContext(
                         ownerAdapter, proposedToReferenceAdapter, interactionInitiatedBy
@@ -163,12 +160,8 @@ public class OneToOneAssociationImpl extends ObjectAssociationAbstract implement
             final InteractionInitiatedBy interactionInitiatedBy) {
         final ObjectAdapter referencedAdapter = get(ownerAdapter, interactionInitiatedBy);
         return new PropertyAccessContext(
-                getDeploymentCategory(),
-                getAuthenticationSession(),
-                interactionInitiatedBy,
-                ownerAdapter,
-                getIdentifier(),
-                referencedAdapter);
+                ownerAdapter, getIdentifier(), referencedAdapter, interactionInitiatedBy
+        );
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/isis/blob/6b5d586e/core/metamodel/src/main/java/org/apache/isis/core/runtime/authorization/standard/AuthorizationFacetAbstract.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/runtime/authorization/standard/AuthorizationFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/runtime/authorization/standard/AuthorizationFacetAbstract.java
index 96fb783..d257e4f 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/runtime/authorization/standard/AuthorizationFacetAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/runtime/authorization/standard/AuthorizationFacetAbstract.java
@@ -21,6 +21,8 @@ package org.apache.isis.core.runtime.authorization.standard;
 
 import org.apache.isis.applib.events.UsabilityEvent;
 import org.apache.isis.applib.events.VisibilityEvent;
+import org.apache.isis.core.commons.authentication.AuthenticationSession;
+import org.apache.isis.core.commons.authentication.AuthenticationSessionProvider;
 import org.apache.isis.core.metamodel.facetapi.Facet;
 import org.apache.isis.core.metamodel.facetapi.FacetAbstract;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
@@ -35,20 +37,29 @@ public abstract class AuthorizationFacetAbstract extends FacetAbstract implement
     }
 
     private final AuthorizationManager authorizationManager;
+    private final AuthenticationSessionProvider authenticationSessionProvider;
 
-    public AuthorizationFacetAbstract(final FacetHolder holder, final AuthorizationManager authorizationManager) {
+    public AuthorizationFacetAbstract(
+            final FacetHolder holder,
+            final AuthorizationManager authorizationManager,
+            final AuthenticationSessionProvider authenticationSessionProvider) {
         super(type(), holder, Derivation.NOT_DERIVED);
         this.authorizationManager = authorizationManager;
+        this.authenticationSessionProvider = authenticationSessionProvider;
     }
 
     @Override
     public String hides(final VisibilityContext<? extends VisibilityEvent> ic) {
-        return authorizationManager.isVisible(ic.getSession(), ic.getTarget(), ic.getIdentifier()) ? null : "Not authorized to view";
+        return authorizationManager.isVisible(getAuthenticationSession(), ic.getTarget(), ic.getIdentifier()) ? null : "Not authorized to view";
     }
 
     @Override
     public String disables(final UsabilityContext<? extends UsabilityEvent> ic) {
-        return authorizationManager.isUsable(ic.getSession(), ic.getTarget(), ic.getIdentifier()) ? null : "Not authorized to edit";
+        return authorizationManager.isUsable(getAuthenticationSession(), ic.getTarget(), ic.getIdentifier()) ? null : "Not authorized to edit";
+    }
+
+    protected AuthenticationSession getAuthenticationSession() {
+        return authenticationSessionProvider.getAuthenticationSession();
     }
 
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/6b5d586e/core/metamodel/src/main/java/org/apache/isis/core/runtime/authorization/standard/AuthorizationFacetFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/runtime/authorization/standard/AuthorizationFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/runtime/authorization/standard/AuthorizationFacetFactory.java
index 7cb4f48..f72d34a 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/runtime/authorization/standard/AuthorizationFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/runtime/authorization/standard/AuthorizationFacetFactory.java
@@ -45,8 +45,7 @@ public class AuthorizationFacetFactory extends FacetFactoryAbstract {
     }
 
     private AuthorizationFacetImpl createFacet(final FacetHolder holder) {
-        final AuthorizationManager authorizationManager = getAuthorizationManager();
-        return new AuthorizationFacetImpl(holder, authorizationManager);
+        return new AuthorizationFacetImpl(holder, getAuthorizationManager(), getAuthenticationSessionProvider());
     }
 
     // //////////////////////////////////////////////////////////////////

http://git-wip-us.apache.org/repos/asf/isis/blob/6b5d586e/core/metamodel/src/main/java/org/apache/isis/core/runtime/authorization/standard/AuthorizationFacetImpl.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/runtime/authorization/standard/AuthorizationFacetImpl.java b/core/metamodel/src/main/java/org/apache/isis/core/runtime/authorization/standard/AuthorizationFacetImpl.java
index bf6df95..1efe2c5 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/runtime/authorization/standard/AuthorizationFacetImpl.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/runtime/authorization/standard/AuthorizationFacetImpl.java
@@ -19,13 +19,17 @@
 
 package org.apache.isis.core.runtime.authorization.standard;
 
+import org.apache.isis.core.commons.authentication.AuthenticationSessionProvider;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.runtime.authorization.AuthorizationManager;
 
 public class AuthorizationFacetImpl extends AuthorizationFacetAbstract {
 
-    public AuthorizationFacetImpl(final FacetHolder holder, final AuthorizationManager authorizationManager) {
-        super(holder, authorizationManager);
+    public AuthorizationFacetImpl(
+            final FacetHolder holder,
+            final AuthorizationManager authorizationManager,
+            final AuthenticationSessionProvider authenticationSessionProvider) {
+        super(holder, authorizationManager, authenticationSessionProvider);
     }
 
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/6b5d586e/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/actions/action/PrototypeFacetAnnotationFactoryTest.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/actions/action/PrototypeFacetAnnotationFactoryTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/actions/action/PrototypeFacetAnnotationFactoryTest.java
index 2a4ca24..95b1474 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/actions/action/PrototypeFacetAnnotationFactoryTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/actions/action/PrototypeFacetAnnotationFactoryTest.java
@@ -20,22 +20,54 @@
 package org.apache.isis.core.metamodel.facets.actions.action;
 
 import java.lang.reflect.Method;
+
+import org.jmock.Expectations;
+
 import org.apache.isis.applib.annotation.Prototype;
+import org.apache.isis.applib.services.i18n.TranslationService;
+import org.apache.isis.core.commons.authentication.AuthenticationSession;
+import org.apache.isis.core.commons.authentication.AuthenticationSessionProvider;
+import org.apache.isis.core.metamodel.deployment.DeploymentCategory;
+import org.apache.isis.core.metamodel.deployment.DeploymentCategoryProvider;
 import org.apache.isis.core.metamodel.facetapi.Facet;
 import org.apache.isis.core.metamodel.facets.AbstractFacetFactoryTest;
 import org.apache.isis.core.metamodel.facets.FacetFactory.ProcessMethodContext;
 import org.apache.isis.core.metamodel.facets.actions.prototype.PrototypeFacet;
 import org.apache.isis.core.metamodel.facets.actions.prototype.PrototypeFacetAbstract;
+import org.apache.isis.core.unittestsupport.jmocking.JUnitRuleMockery2;
 
 public class PrototypeFacetAnnotationFactoryTest extends AbstractFacetFactoryTest {
 
+    private JUnitRuleMockery2 context = JUnitRuleMockery2.createFor(JUnitRuleMockery2.Mode.INTERFACES_AND_CLASSES);
+
     private ActionAnnotationFacetFactory facetFactory;
 
+    private TranslationService mockTranslationService;
+
+    private DeploymentCategoryProvider mockDeploymentCategoryProvider;
+    private AuthenticationSessionProvider mockAuthenticationSessionProvider;
+
     @Override
     protected void setUp() throws Exception {
         super.setUp();
 
+        mockDeploymentCategoryProvider = context.mock(DeploymentCategoryProvider.class);
+        mockAuthenticationSessionProvider = context.mock(AuthenticationSessionProvider.class);
+
+        final AuthenticationSession mockAuthenticationSession = context.mock(AuthenticationSession.class);
+        context.checking(new Expectations() {{
+            allowing(mockDeploymentCategoryProvider).getDeploymentCategory();
+            will(returnValue(DeploymentCategory.PRODUCTION));
+
+            allowing(mockAuthenticationSessionProvider).getAuthenticationSession();
+
+            will(returnValue(mockAuthenticationSession));
+        }});
+
+
         facetFactory = new ActionAnnotationFacetFactory();
+        facetFactory.setDeploymentCategoryProvider(mockDeploymentCategoryProvider);
+        facetFactory.setAuthenticationSessionProvider(mockAuthenticationSessionProvider);
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/isis/blob/6b5d586e/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/actions/exploration/ExplorationFacetAnnotationFactoryTest.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/actions/exploration/ExplorationFacetAnnotationFactoryTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/actions/exploration/ExplorationFacetAnnotationFactoryTest.java
index 21616c5..14a4048 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/actions/exploration/ExplorationFacetAnnotationFactoryTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/actions/exploration/ExplorationFacetAnnotationFactoryTest.java
@@ -21,21 +21,52 @@ package org.apache.isis.core.metamodel.facets.actions.exploration;
 
 import java.lang.reflect.Method;
 
+import org.jmock.Expectations;
+
 import org.apache.isis.applib.annotation.Exploration;
+import org.apache.isis.applib.services.i18n.TranslationService;
+import org.apache.isis.core.commons.authentication.AuthenticationSession;
+import org.apache.isis.core.commons.authentication.AuthenticationSessionProvider;
+import org.apache.isis.core.metamodel.deployment.DeploymentCategory;
+import org.apache.isis.core.metamodel.deployment.DeploymentCategoryProvider;
 import org.apache.isis.core.metamodel.facetapi.Facet;
 import org.apache.isis.core.metamodel.facets.FacetFactory.ProcessMethodContext;
 import org.apache.isis.core.metamodel.facets.AbstractFacetFactoryTest;
 import org.apache.isis.core.metamodel.facets.actions.exploration.annotation.ExplorationFacetAnnotationFactory;
+import org.apache.isis.core.unittestsupport.jmocking.JUnitRuleMockery2;
 
 public class ExplorationFacetAnnotationFactoryTest extends AbstractFacetFactoryTest {
 
+    private JUnitRuleMockery2 context = JUnitRuleMockery2.createFor(JUnitRuleMockery2.Mode.INTERFACES_AND_CLASSES);
+
     private ExplorationFacetAnnotationFactory facetFactory;
 
+    private TranslationService mockTranslationService;
+
+    private DeploymentCategoryProvider mockDeploymentCategoryProvider;
+    private AuthenticationSessionProvider mockAuthenticationSessionProvider;
+
     @Override
     protected void setUp() throws Exception {
         super.setUp();
 
+        mockDeploymentCategoryProvider = context.mock(DeploymentCategoryProvider.class);
+        mockAuthenticationSessionProvider = context.mock(AuthenticationSessionProvider.class);
+
+        final AuthenticationSession mockAuthenticationSession = context.mock(AuthenticationSession.class);
+        context.checking(new Expectations() {{
+            allowing(mockDeploymentCategoryProvider).getDeploymentCategory();
+            will(returnValue(DeploymentCategory.PRODUCTION));
+
+            allowing(mockAuthenticationSessionProvider).getAuthenticationSession();
+
+            will(returnValue(mockAuthenticationSession));
+        }});
+
+
         facetFactory = new ExplorationFacetAnnotationFactory();
+        facetFactory.setDeploymentCategoryProvider(mockDeploymentCategoryProvider);
+        facetFactory.setAuthenticationSessionProvider(mockAuthenticationSessionProvider);
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/isis/blob/6b5d586e/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/actions/prototype/PrototypeFacetAbstractTest.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/actions/prototype/PrototypeFacetAbstractTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/actions/prototype/PrototypeFacetAbstractTest.java
index 20ccf45..52db4a3 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/actions/prototype/PrototypeFacetAbstractTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/actions/prototype/PrototypeFacetAbstractTest.java
@@ -18,10 +18,10 @@
  */
 package org.apache.isis.core.metamodel.facets.actions.prototype;
 
-import org.jmock.Expectations;
 import org.jmock.auto.Mock;
 import org.junit.Rule;
 import org.junit.Test;
+
 import org.apache.isis.core.metamodel.deployment.DeploymentCategory;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.interactions.VisibilityContext;
@@ -48,13 +48,7 @@ public class PrototypeFacetAbstractTest {
 
     protected void givenWhenThen(final DeploymentCategory deploymentCategory, final String expected) {
         // given
-        final PrototypeFacetAbstract facet = new PrototypeFacetAbstract(mockFacetHolder){};
-
-        // expect
-        context.checking(new Expectations() {{
-            oneOf(mockVisibilityContext).getDeploymentCategory();
-            will(returnValue(deploymentCategory));
-        }});
+        final PrototypeFacetAbstract facet = new PrototypeFacetAbstract(mockFacetHolder, deploymentCategory){};
 
         // when
         final String reason = facet.hides(mockVisibilityContext);

http://git-wip-us.apache.org/repos/asf/isis/blob/6b5d586e/core/metamodel/src/test/java/org/apache/isis/core/metamodel/testspec/ObjectSpecificationStub.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/testspec/ObjectSpecificationStub.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/testspec/ObjectSpecificationStub.java
index 01e04d0..078d171 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/testspec/ObjectSpecificationStub.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/testspec/ObjectSpecificationStub.java
@@ -36,7 +36,6 @@ import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.core.metamodel.consent.Consent;
 import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
 import org.apache.isis.core.metamodel.consent.InteractionResult;
-import org.apache.isis.core.metamodel.deployment.DeploymentCategory;
 import org.apache.isis.core.metamodel.facetapi.FacetHolderImpl;
 import org.apache.isis.core.metamodel.facetapi.FeatureType;
 import org.apache.isis.core.metamodel.facets.object.immutable.ImmutableFacet;
@@ -374,7 +373,7 @@ public class ObjectSpecificationStub extends FacetHolderImpl implements ObjectSp
     }
 
     @Override
-    public Consent isValid(final ObjectAdapter transientObject, final InteractionInitiatedBy interactionInitiatedBy) {
+    public Consent isValid(final ObjectAdapter targetAdapter, final InteractionInitiatedBy interactionInitiatedBy) {
         return null;
     }
 
@@ -432,7 +431,8 @@ public class ObjectSpecificationStub extends FacetHolderImpl implements ObjectSp
     }
 
     @Override
-    public ObjectValidityContext createValidityInteractionContext(final DeploymentCategory deploymentCategory, final AuthenticationSession session, final InteractionInitiatedBy invocationMethod, final ObjectAdapter targetObjectAdapter) {
+    public ObjectValidityContext createValidityInteractionContext(
+            final ObjectAdapter targetAdapter, final InteractionInitiatedBy interactionInitiatedBy) {
         return null;
     }
 
@@ -443,7 +443,7 @@ public class ObjectSpecificationStub extends FacetHolderImpl implements ObjectSp
 
     @Override
     public InteractionResult isValidResult(
-            final ObjectAdapter transientObject,
+            final ObjectAdapter targetAdapter,
             final InteractionInitiatedBy interactionInitiatedBy) {
         return null;
     }

http://git-wip-us.apache.org/repos/asf/isis/blob/6b5d586e/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 5c9cce1..9a7be61 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
@@ -19,12 +19,15 @@
 
 package org.apache.isis.core.runtime.system;
 
+import org.jmock.Expectations;
+import org.jmock.auto.Mock;
 import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
 import org.apache.isis.applib.annotation.When;
 import org.apache.isis.applib.annotation.Where;
 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.consent.Consent;
 import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
@@ -70,11 +73,20 @@ public class ObjectMemberAbstractTest {
     
     private ObjectAdapter persistentAdapter;
     private ObjectAdapter transientAdapter;
-    
+
+    @Mock
+    private AuthenticationSessionProvider mockAuthenticationSessionProvider;
+    @Mock
+    private AuthenticationSession mockAuthenticationSession;
+
     @Before
     public void setUp() throws Exception {
         org.apache.log4j.Logger.getRootLogger().setLevel(org.apache.log4j.Level.OFF);
 
+        context.checking(new Expectations() {{
+            allowing(mockAuthenticationSessionProvider).getAuthenticationSession();
+            will(returnValue(mockAuthenticationSession));
+        }});
         persistentAdapter = PojoAdapterBuilder.create().build();
         transientAdapter = PojoAdapterBuilder.create().with(Persistence.TRANSIENT).build();
 
@@ -89,7 +101,7 @@ public class ObjectMemberAbstractTest {
 
     @Test
     public void testAvailableForUser() throws Exception {
-        testMember.addFacet(new DisableForSessionFacetAbstract(testMember) {
+        testMember.addFacet(new DisableForSessionFacetAbstract(testMember, mockAuthenticationSessionProvider) {
             @Override
             public String disabledReason(final AuthenticationSession session) {
                 return null;
@@ -151,7 +163,7 @@ public class ObjectMemberAbstractTest {
 
     @Test
     public void testVisibleForSession() {
-        testMember.addFacet(new HideForSessionFacetAbstract(testMember) {
+        testMember.addFacet(new HideForSessionFacetAbstract(testMember, mockAuthenticationSessionProvider) {
             @Override
             public String hiddenReason(final AuthenticationSession session) {
                 return "Hidden";
@@ -162,7 +174,7 @@ public class ObjectMemberAbstractTest {
 
     @Test
     public void testVisibleForSessionFails() {
-        testMember.addFacet(new HideForSessionFacetAbstract(testMember) {
+        testMember.addFacet(new HideForSessionFacetAbstract(testMember, mockAuthenticationSessionProvider) {
             @Override
             public String hiddenReason(final AuthenticationSession session) {
                 return "hidden";
@@ -221,7 +233,7 @@ class ObjectMemberAbstractImpl extends ObjectMemberAbstract {
             final ObjectAdapter target, final InteractionInitiatedBy interactionInitiatedBy,
             Where where) {
         final AuthenticationSession session = getAuthenticationSession();
-        return new PropertyUsabilityContext(DeploymentCategory.PRODUCTION, session, interactionInitiatedBy, target, getIdentifier(), where);
+        return new PropertyUsabilityContext(target, getIdentifier(), interactionInitiatedBy, where);
     }
 
     @Override
@@ -229,7 +241,8 @@ class ObjectMemberAbstractImpl extends ObjectMemberAbstract {
             final ObjectAdapter targetObjectAdapter, final InteractionInitiatedBy interactionInitiatedBy,
             Where where) {
         final AuthenticationSession session = getAuthenticationSession();
-        return new PropertyVisibilityContext(DeploymentCategory.PRODUCTION, session, interactionInitiatedBy, targetObjectAdapter, getIdentifier(), where);
+        return new PropertyVisibilityContext(targetObjectAdapter, getIdentifier(), interactionInitiatedBy,
+                where);
     }
 
     // /////////////////////////////////////////////////////////////

http://git-wip-us.apache.org/repos/asf/isis/blob/6b5d586e/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/CollectionContentsSortableDataProvider.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/CollectionContentsSortableDataProvider.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/CollectionContentsSortableDataProvider.java
index 0a374db..080e5c9 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/CollectionContentsSortableDataProvider.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/CollectionContentsSortableDataProvider.java
@@ -145,11 +145,7 @@ public class CollectionContentsSortableDataProvider extends SortableDataProvider
 
     private VisibilityContext<?> createVisibleInteractionContext(final ObjectAdapter objectAdapter) {
         return new ObjectVisibilityContext(
-                getDeploymentCategory(),
-                getAuthenticationSession(),
-                InteractionInitiatedBy.USER,
-                objectAdapter,
-                objectAdapter.getSpecification().getIdentifier(),
+                objectAdapter, objectAdapter.getSpecification().getIdentifier(), InteractionInitiatedBy.USER,
                 Where.ALL_TABLES);
     }
 

http://git-wip-us.apache.org/repos/asf/isis/blob/6b5d586e/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/entity/EntityPage.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/entity/EntityPage.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/entity/EntityPage.java
index 5285f95..9716a19 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/entity/EntityPage.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/entity/EntityPage.java
@@ -206,11 +206,7 @@ public class EntityPage extends PageAbstract {
             final ObjectAdapter objectAdapter) {
         final Identifier identifier = objectAdapter.getSpecification().getIdentifier();
         return new ObjectVisibilityContext(
-                getDeploymentCategory(),
-                getAuthenticationSession(),
-                InteractionInitiatedBy.USER,
-                objectAdapter,
-                identifier,
+                objectAdapter, identifier, InteractionInitiatedBy.USER,
                 Where.OBJECT_FORMS);
     }