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 16:23:08 UTC

[1/5] isis git commit: ISIS-1044: removing RuntimeContext#getDeploymentCategory()

Repository: isis
Updated Branches:
  refs/heads/master 6b5d586ea -> 69450a333


ISIS-1044: removing RuntimeContext#getDeploymentCategory()

instead use #getDeploymentCategoryProvider()


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

Branch: refs/heads/master
Commit: 02b0bc5dc4d70226578f5cc6d07c1f2567ddfecb
Parents: 6b5d586
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Thu Sep 3 13:39:07 2015 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Thu Sep 3 13:39:07 2015 +0100

----------------------------------------------------------------------
 .../core/metamodel/runtimecontext/RuntimeContext.java |  3 ---
 .../runtimecontext/RuntimeContextAbstract.java        | 14 --------------
 .../noruntime/RuntimeContextNoRuntime.java            | 12 ++++++++++--
 .../metamodel/specloader/ObjectReflectorDefault.java  |  2 +-
 .../core/metamodel/app/IsisMetaModelTest_init.java    | 10 ++++++++--
 .../internal/RuntimeContextFromSession.java           | 12 ++++++++++--
 .../main/java/domainapp/dom/simple/SimpleObject.java  |  1 +
 7 files changed, 30 insertions(+), 24 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/02b0bc5d/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/RuntimeContext.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/RuntimeContext.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/RuntimeContext.java
index 30643b0..6337b36 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/RuntimeContext.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/RuntimeContext.java
@@ -30,7 +30,6 @@ import org.apache.isis.core.metamodel.adapter.ObjectPersistor;
 import org.apache.isis.core.metamodel.adapter.QuerySubmitter;
 import org.apache.isis.core.metamodel.adapter.ServicesProvider;
 import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager;
-import org.apache.isis.core.metamodel.deployment.DeploymentCategory;
 import org.apache.isis.core.metamodel.deployment.DeploymentCategoryProvider;
 import org.apache.isis.core.metamodel.spec.ObjectInstantiator;
 import org.apache.isis.core.metamodel.spec.SpecificationLoader;
@@ -43,8 +42,6 @@ public interface RuntimeContext extends Injectable, ApplicationScopedComponent {
 
     public DeploymentCategoryProvider getDeploymentCategoryProvider();
 
-    public DeploymentCategory getDeploymentCategory();
-
     /**
      * A mechanism for returning the <tt>current</tt>
      * {@link AuthenticationSession}.

http://git-wip-us.apache.org/repos/asf/isis/blob/02b0bc5d/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/RuntimeContextAbstract.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/RuntimeContextAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/RuntimeContextAbstract.java
index 16a2b12..4741a01 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/RuntimeContextAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/RuntimeContextAbstract.java
@@ -26,9 +26,6 @@ import java.util.Properties;
 
 import com.google.common.collect.Lists;
 
-import org.apache.isis.core.metamodel.deployment.DeploymentCategory;
-import org.apache.isis.core.metamodel.deployment.DeploymentCategoryProvider;
-import org.apache.isis.core.metamodel.deployment.DeploymentCategoryProviderAbstract;
 import org.apache.isis.core.metamodel.services.ServicesInjectorSpiDelegator;
 import org.apache.isis.core.metamodel.spec.ObjectSpecId;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
@@ -79,17 +76,6 @@ public abstract class RuntimeContextAbstract implements RuntimeContext, Specific
     }
 
     @Override
-    public DeploymentCategoryProvider getDeploymentCategoryProvider() {
-        return new DeploymentCategoryProviderAbstract() {
-            @Override
-            public DeploymentCategory getDeploymentCategory() {
-                return RuntimeContextAbstract.this.getDeploymentCategory();
-            }
-        };
-    }
-
-
-    @Override
     public SpecificationLoader getSpecificationLoader() {
         return specificationLookupDelegator;
     }

http://git-wip-us.apache.org/repos/asf/isis/blob/02b0bc5d/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/noruntime/RuntimeContextNoRuntime.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/noruntime/RuntimeContextNoRuntime.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/noruntime/RuntimeContextNoRuntime.java
index 314f91e..3a7e10f 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/noruntime/RuntimeContextNoRuntime.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/noruntime/RuntimeContextNoRuntime.java
@@ -33,6 +33,8 @@ import org.apache.isis.core.metamodel.adapter.mgr.AdapterManagerAware;
 import org.apache.isis.core.metamodel.adapter.oid.Oid;
 import org.apache.isis.core.metamodel.adapter.oid.TypedOid;
 import org.apache.isis.core.metamodel.deployment.DeploymentCategory;
+import org.apache.isis.core.metamodel.deployment.DeploymentCategoryProvider;
+import org.apache.isis.core.metamodel.deployment.DeploymentCategoryProviderAbstract;
 import org.apache.isis.core.metamodel.runtimecontext.RuntimeContextAbstract;
 import org.apache.isis.core.metamodel.runtimecontext.ServicesInjector;
 import org.apache.isis.core.metamodel.spec.ObjectInstantiationException;
@@ -304,9 +306,15 @@ public class RuntimeContextNoRuntime extends RuntimeContextAbstract {
     // Components
     // ///////////////////////////////////////////
 
+
     @Override
-    public DeploymentCategory getDeploymentCategory() {
-        return deploymentCategory;
+    public DeploymentCategoryProvider getDeploymentCategoryProvider() {
+        return new DeploymentCategoryProviderAbstract() {
+            @Override
+            public DeploymentCategory getDeploymentCategory() {
+                return deploymentCategory;
+            }
+        };
     }
 
 

http://git-wip-us.apache.org/repos/asf/isis/blob/02b0bc5d/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/ObjectReflectorDefault.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/ObjectReflectorDefault.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/ObjectReflectorDefault.java
index 1b9c3b3..77158b3 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/ObjectReflectorDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/ObjectReflectorDefault.java
@@ -460,7 +460,7 @@ public final class ObjectReflectorDefault implements SpecificationLoaderSpi, App
         if(runtimeContext == null) {
             throw new IllegalStateException("Runtime context has not been injected.");
         }
-        return runtimeContext.getDeploymentCategory();
+        return runtimeContext.getDeploymentCategoryProvider().getDeploymentCategory();
     }
 
     private Class<?> loadBuiltIn(final String className) throws ClassNotFoundException {

http://git-wip-us.apache.org/repos/asf/isis/blob/02b0bc5d/core/metamodel/src/test/java/org/apache/isis/core/metamodel/app/IsisMetaModelTest_init.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/app/IsisMetaModelTest_init.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/app/IsisMetaModelTest_init.java
index 24312dc..b5ed2a0 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/app/IsisMetaModelTest_init.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/app/IsisMetaModelTest_init.java
@@ -34,6 +34,7 @@ import org.apache.isis.core.metamodel.adapter.QuerySubmitter;
 import org.apache.isis.core.metamodel.adapter.ServicesProvider;
 import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager;
 import org.apache.isis.core.metamodel.deployment.DeploymentCategory;
+import org.apache.isis.core.metamodel.deployment.DeploymentCategoryProviderAbstract;
 import org.apache.isis.core.metamodel.facetdecorator.FacetDecorator;
 import org.apache.isis.core.metamodel.progmodel.ProgrammingModel;
 import org.apache.isis.core.metamodel.runtimecontext.RuntimeContext;
@@ -108,8 +109,13 @@ public class IsisMetaModelTest_init {
                 allowing(mockRuntimeContext).getObjectInstantiator();
                 will(returnValue(mockObjectInstantiator));
 
-                allowing(mockRuntimeContext).getDeploymentCategory();
-                will(returnValue(DeploymentCategory.PRODUCTION));
+                allowing(mockRuntimeContext).getDeploymentCategoryProvider();
+                will(returnValue(new DeploymentCategoryProviderAbstract() {
+                    @Override
+                    public DeploymentCategory getDeploymentCategory() {
+                        return DeploymentCategory.PRODUCTION;
+                    }
+                }));
 
                 oneOf(mockProgrammingModelFacets).init();
                 inSequence(initSequence);

http://git-wip-us.apache.org/repos/asf/isis/blob/02b0bc5d/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/internal/RuntimeContextFromSession.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/internal/RuntimeContextFromSession.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/internal/RuntimeContextFromSession.java
index 06e97bd..e8b8fa1 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/internal/RuntimeContextFromSession.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/internal/RuntimeContextFromSession.java
@@ -48,6 +48,8 @@ import org.apache.isis.core.metamodel.adapter.mgr.AdapterManagerAware;
 import org.apache.isis.core.metamodel.adapter.oid.Oid;
 import org.apache.isis.core.metamodel.adapter.oid.TypedOid;
 import org.apache.isis.core.metamodel.deployment.DeploymentCategory;
+import org.apache.isis.core.metamodel.deployment.DeploymentCategoryProvider;
+import org.apache.isis.core.metamodel.deployment.DeploymentCategoryProviderAbstract;
 import org.apache.isis.core.metamodel.facets.collections.modify.CollectionFacetUtils;
 import org.apache.isis.core.metamodel.runtimecontext.RuntimeContextAbstract;
 import org.apache.isis.core.metamodel.runtimecontext.ServicesInjector;
@@ -387,10 +389,16 @@ public class RuntimeContextFromSession extends RuntimeContextAbstract {
     // ///////////////////////////////////////////
 
     @Override
-    public DeploymentCategory getDeploymentCategory() {
-        return IsisContext.getDeploymentType().getDeploymentCategory();
+    public DeploymentCategoryProvider getDeploymentCategoryProvider() {
+        return new DeploymentCategoryProviderAbstract() {
+            @Override
+            public DeploymentCategory getDeploymentCategory() {
+                return IsisContext.getDeploymentType().getDeploymentCategory();
+            }
+        };
     }
 
+
     private static PersistenceSession getPersistenceSession() {
         return IsisContext.getPersistenceSession();
     }

http://git-wip-us.apache.org/repos/asf/isis/blob/02b0bc5d/example/application/simpleapp/dom/src/main/java/domainapp/dom/simple/SimpleObject.java
----------------------------------------------------------------------
diff --git a/example/application/simpleapp/dom/src/main/java/domainapp/dom/simple/SimpleObject.java b/example/application/simpleapp/dom/src/main/java/domainapp/dom/simple/SimpleObject.java
index 1bd9c35..fff1099 100644
--- a/example/application/simpleapp/dom/src/main/java/domainapp/dom/simple/SimpleObject.java
+++ b/example/application/simpleapp/dom/src/main/java/domainapp/dom/simple/SimpleObject.java
@@ -112,6 +112,7 @@ public class SimpleObject implements Comparable<SimpleObject> {
         return this;
     }
 
+
     public String default0UpdateName() {
         return getName();
     }


[3/5] isis git commit: ISIS-1194: FacetFactorys no longer implement RuntimeContextAware.

Posted by da...@apache.org.
ISIS-1194: FacetFactorys no longer implement RuntimeContextAware.

... those that required this instead implement TransactionStateProviderAware.


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

Branch: refs/heads/master
Commit: dd162be98128c3762d273ffd9b71c6eb092f4b46
Parents: fe1f75d
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Thu Sep 3 14:34:13 2015 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Thu Sep 3 14:34:13 2015 +0100

----------------------------------------------------------------------
 .../action/ActionAnnotationFacetFactory.java    | 23 +++++---------------
 ...onInvocationFacetForDomainEventAbstract.java |  4 ----
 ...FacetForDomainEventFromActionAnnotation.java |  5 +----
 ...ainEventFromActionInteractionAnnotation.java |  5 +----
 ...nvocationFacetForDomainEventFromDefault.java |  4 +---
 ...cetForPostsActionInvokedEventAnnotation.java |  4 +---
 ...FacetAnnotationElseConfigurationFactory.java | 10 +--------
 ...ueFacetAnnotationOrConfigurationFactory.java | 19 +++++-----------
 ...ValueFacetUsingSemanticsProviderFactory.java | 11 +---------
 ...tAnnotationElseConfigurationFactoryTest.java |  1 -
 ...cetAnnotationOrConfigurationFactoryTest.java |  1 -
 11 files changed, 17 insertions(+), 70 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/dd162be9/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 58bddba..8f9da41 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
@@ -24,6 +24,7 @@ import java.lang.reflect.Method;
 import java.lang.reflect.ParameterizedType;
 import java.lang.reflect.Type;
 import java.lang.reflect.TypeVariable;
+
 import org.apache.isis.applib.annotation.Action;
 import org.apache.isis.applib.annotation.ActionInteraction;
 import org.apache.isis.applib.annotation.ActionSemantics;
@@ -88,8 +89,6 @@ import org.apache.isis.core.metamodel.facets.actions.publish.PublishedActionFace
 import org.apache.isis.core.metamodel.facets.actions.semantics.ActionSemanticsFacet;
 import org.apache.isis.core.metamodel.facets.all.hide.HiddenFacet;
 import org.apache.isis.core.metamodel.facets.members.disabled.DisabledFacet;
-import org.apache.isis.core.metamodel.runtimecontext.RuntimeContext;
-import org.apache.isis.core.metamodel.runtimecontext.RuntimeContextAware;
 import org.apache.isis.core.metamodel.runtimecontext.ServicesInjector;
 import org.apache.isis.core.metamodel.runtimecontext.ServicesInjectorAware;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
@@ -99,7 +98,7 @@ import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorFor
 import org.apache.isis.core.metamodel.transactions.TransactionStateProvider;
 import org.apache.isis.core.metamodel.transactions.TransactionStateProviderAware;
 
-public class ActionAnnotationFacetFactory extends FacetFactoryAbstract implements ServicesInjectorAware, IsisConfigurationAware, AdapterManagerAware, RuntimeContextAware, MetaModelValidatorRefiner,
+public class ActionAnnotationFacetFactory extends FacetFactoryAbstract implements ServicesInjectorAware, IsisConfigurationAware, AdapterManagerAware, MetaModelValidatorRefiner,
         TransactionStateProviderAware {
 
     private final MetaModelValidatorForDeprecatedAnnotation actionSemanticsValidator = new MetaModelValidatorForDeprecatedAnnotation(ActionSemantics.class);
@@ -119,7 +118,6 @@ public class ActionAnnotationFacetFactory extends FacetFactoryAbstract implement
     private ServicesInjector servicesInjector;
     private IsisConfiguration configuration;
     private AdapterManager adapterManager;
-    private RuntimeContext runtimeContext;
     private TransactionStateProvider transactionStateProvider;
 
     private final CollectionTypeRegistry collectionTypeRegistry = new CollectionTypeRegistry();
@@ -215,7 +213,7 @@ public class ActionAnnotationFacetFactory extends FacetFactoryAbstract implement
                         new ActionInvocationFacetForPostsActionInvokedEventAnnotation(
                                 actionInvokedEventType, actionMethod, typeSpec, returnSpec, holder,
                                 getDeploymentCategory(), configuration, getServicesInjector(),
-                                getAuthenticationSessionProvider(), getAdapterManager(), getRuntimeContext(),
+                                getAuthenticationSessionProvider(), getAdapterManager(),
                                 transactionStateProvider
                         ), processMethodContext);
             } else
@@ -225,7 +223,7 @@ public class ActionAnnotationFacetFactory extends FacetFactoryAbstract implement
                         new ActionInvocationFacetForDomainEventFromActionInteractionAnnotation(
                                 actionDomainEventType, actionMethod, typeSpec, returnSpec, holder,
                                 getDeploymentCategory(), configuration, getServicesInjector(),
-                                getAuthenticationSessionProvider(), getAdapterManager(), getRuntimeContext(),
+                                getAuthenticationSessionProvider(), getAdapterManager(),
                                 transactionStateProvider
                         ), processMethodContext);
             } else
@@ -235,7 +233,7 @@ public class ActionAnnotationFacetFactory extends FacetFactoryAbstract implement
                         actionDomainEventType, actionMethod, typeSpec, returnSpec, holder,
                         getDeploymentCategory(), configuration, getServicesInjector(),
                         getAuthenticationSessionProvider(),
-                        getAdapterManager(), getRuntimeContext(), transactionStateProvider
+                        getAdapterManager(), transactionStateProvider
                 );
             } else
             // default
@@ -243,7 +241,7 @@ public class ActionAnnotationFacetFactory extends FacetFactoryAbstract implement
                 actionInvocationFacet = new ActionInvocationFacetForDomainEventFromDefault(
                         actionDomainEventType, actionMethod, typeSpec, returnSpec, holder,
                         getDeploymentCategory(), configuration, getServicesInjector(), getAuthenticationSessionProvider(),
-                        getAdapterManager(), getRuntimeContext(), transactionStateProvider
+                        getAdapterManager(), transactionStateProvider
                 );
             }
             FacetUtil.addFacet(actionInvocationFacet);
@@ -577,15 +575,6 @@ public class ActionAnnotationFacetFactory extends FacetFactoryAbstract implement
         return servicesInjector;
     }
 
-    private RuntimeContext getRuntimeContext() {
-        return runtimeContext;
-    }
-
-    @Override
-    public void setRuntimeContext(final RuntimeContext runtimeContext) {
-        this.runtimeContext = runtimeContext;
-    }
-
     @Override
     public void setTransactionStateProvider(final TransactionStateProvider transactionStateProvider) {
         this.transactionStateProvider = transactionStateProvider;

http://git-wip-us.apache.org/repos/asf/isis/blob/dd162be9/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 f78c720..acf8074 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
@@ -69,7 +69,6 @@ import org.apache.isis.core.metamodel.facets.actions.publish.PublishedActionFace
 import org.apache.isis.core.metamodel.facets.actions.semantics.ActionSemanticsFacet;
 import org.apache.isis.core.metamodel.facets.collections.modify.CollectionFacet;
 import org.apache.isis.core.metamodel.facets.object.viewmodel.ViewModelFacet;
-import org.apache.isis.core.metamodel.runtimecontext.RuntimeContext;
 import org.apache.isis.core.metamodel.runtimecontext.ServicesInjector;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
@@ -90,7 +89,6 @@ public abstract class ActionInvocationFacetForDomainEventAbstract
     private final AdapterManager adapterManager;
     private final DeploymentCategory deploymentCategory;
     private final AuthenticationSessionProvider authenticationSessionProvider;
-    private final RuntimeContext runtimeContext;
 
     private final ServicesInjector servicesInjector;
     private final IsisConfiguration configuration;
@@ -109,7 +107,6 @@ public abstract class ActionInvocationFacetForDomainEventAbstract
             final ServicesInjector servicesInjector,
             final AuthenticationSessionProvider authenticationSessionProvider,
             final AdapterManager adapterManager,
-            final RuntimeContext runtimeContext,
             final TransactionStateProvider transactionStateProvider) {
         super(holder);
         this.eventType = eventType;
@@ -118,7 +115,6 @@ public abstract class ActionInvocationFacetForDomainEventAbstract
         this.returnType = returnType;
         this.deploymentCategory = deploymentCategory;
         this.authenticationSessionProvider = authenticationSessionProvider;
-        this.runtimeContext = runtimeContext;
         this.adapterManager = adapterManager;
         this.servicesInjector = servicesInjector;
         this.configuration = configuration;

http://git-wip-us.apache.org/repos/asf/isis/blob/dd162be9/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 7f6d614..a8685f5 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
@@ -24,11 +24,9 @@ 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;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 import org.apache.isis.core.metamodel.transactions.TransactionStateProvider;
@@ -47,9 +45,8 @@ public class ActionInvocationFacetForDomainEventFromActionAnnotation
             final ServicesInjector servicesInjector,
             final AuthenticationSessionProvider authenticationSessionProvider,
             final AdapterManager adapterManager,
-            final RuntimeContext runtimeContext,
             final TransactionStateProvider transactionStateProvider) {
-        super(eventType, method, onType, returnType, holder, deploymentCategory, isisConfiguration, servicesInjector, authenticationSessionProvider, adapterManager, runtimeContext,
+        super(eventType, method, onType, returnType, holder, deploymentCategory, isisConfiguration, servicesInjector, authenticationSessionProvider, adapterManager,
                 transactionStateProvider);
     }
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/dd162be9/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 3bda165..7fcec42 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
@@ -24,11 +24,9 @@ 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;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 import org.apache.isis.core.metamodel.transactions.TransactionStateProvider;
@@ -51,9 +49,8 @@ public class ActionInvocationFacetForDomainEventFromActionInteractionAnnotation
             final ServicesInjector servicesInjector,
             final AuthenticationSessionProvider authenticationSessionProvider,
             final AdapterManager adapterManager,
-            final RuntimeContext runtimeContext,
             final TransactionStateProvider transactionStateProvider) {
-        super(eventType, method, onType, returnType, holder, deploymentCategory, isisConfiguration, servicesInjector, authenticationSessionProvider, adapterManager, runtimeContext,
+        super(eventType, method, onType, returnType, holder, deploymentCategory, isisConfiguration, servicesInjector, authenticationSessionProvider, adapterManager,
                 transactionStateProvider);
     }
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/dd162be9/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 395f2c7..5632337 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
@@ -27,7 +27,6 @@ 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;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 import org.apache.isis.core.metamodel.transactions.TransactionStateProvider;
@@ -46,10 +45,9 @@ public class ActionInvocationFacetForDomainEventFromDefault
             final ServicesInjector servicesInjector,
             final AuthenticationSessionProvider authenticationSessionProvider,
             final AdapterManager adapterManager,
-            final RuntimeContext runtimeContext,
             final TransactionStateProvider transactionStateProvider) {
         super(eventType, method, onType, returnType, holder,
-                deploymentCategory, isisConfiguration, servicesInjector, authenticationSessionProvider, adapterManager, runtimeContext,
+                deploymentCategory, isisConfiguration, servicesInjector, authenticationSessionProvider, adapterManager,
                 transactionStateProvider);
     }
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/dd162be9/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 67ad6d0..a4143cc 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
@@ -27,7 +27,6 @@ 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;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 import org.apache.isis.core.metamodel.transactions.TransactionStateProvider;
@@ -50,10 +49,9 @@ public class ActionInvocationFacetForPostsActionInvokedEventAnnotation
             final ServicesInjector servicesInjector,
             final AuthenticationSessionProvider authenticationSessionProvider,
             final AdapterManager adapterManager,
-            final RuntimeContext runtimeContext,
             final TransactionStateProvider transactionStateProvider) {
         super(eventType, method, onType, returnType, holder,
-                deploymentCategory, isisConfiguration, servicesInjector, authenticationSessionProvider, adapterManager, runtimeContext,
+                deploymentCategory, isisConfiguration, servicesInjector, authenticationSessionProvider, adapterManager,
                 transactionStateProvider);
     }
 

http://git-wip-us.apache.org/repos/asf/isis/blob/dd162be9/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 e826fde..bbb416c 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
@@ -35,12 +35,10 @@ import org.apache.isis.core.metamodel.facets.Annotations;
 import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract;
 import org.apache.isis.core.metamodel.facets.object.parseable.ParseableFacetAbstract;
 import org.apache.isis.core.metamodel.facets.object.parseable.ParserUtil;
-import org.apache.isis.core.metamodel.runtimecontext.RuntimeContext;
-import org.apache.isis.core.metamodel.runtimecontext.RuntimeContextAware;
 import org.apache.isis.core.metamodel.runtimecontext.ServicesInjector;
 import org.apache.isis.core.metamodel.runtimecontext.ServicesInjectorAware;
 
-public class ParseableFacetAnnotationElseConfigurationFactory extends FacetFactoryAbstract implements IsisConfigurationAware, AuthenticationSessionProviderAware, AdapterManagerAware, ServicesInjectorAware, RuntimeContextAware {
+public class ParseableFacetAnnotationElseConfigurationFactory extends FacetFactoryAbstract implements IsisConfigurationAware, AuthenticationSessionProviderAware, AdapterManagerAware, ServicesInjectorAware {
 
     private IsisConfiguration configuration;
 
@@ -48,8 +46,6 @@ public class ParseableFacetAnnotationElseConfigurationFactory extends FacetFacto
     private AdapterManager adapterManager;
     private ServicesInjector servicesInjector;
 
-    private RuntimeContext runtimeContext;
-
     public ParseableFacetAnnotationElseConfigurationFactory() {
         super(FeatureType.OBJECTS_ONLY);
     }
@@ -114,9 +110,5 @@ public class ParseableFacetAnnotationElseConfigurationFactory extends FacetFacto
         this.servicesInjector = dependencyInjector;
     }
 
-    @Override
-    public void setRuntimeContext(RuntimeContext runtimeContext) {
-        this.runtimeContext = runtimeContext;
-    }
 
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/dd162be9/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 153374e..8d3dfe4 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
@@ -30,26 +30,23 @@ 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;
 import org.apache.isis.core.metamodel.facets.Annotations;
 import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract;
-import org.apache.isis.core.metamodel.facets.object.value.EqualByContentFacet;
-import org.apache.isis.core.metamodel.facets.object.parented.ParentedFacet;
 import org.apache.isis.core.metamodel.facets.object.encodeable.EncodableFacet;
 import org.apache.isis.core.metamodel.facets.object.icon.IconFacet;
 import org.apache.isis.core.metamodel.facets.object.immutable.ImmutableFacet;
+import org.apache.isis.core.metamodel.facets.object.parented.ParentedFacet;
 import org.apache.isis.core.metamodel.facets.object.parseable.ParseableFacet;
 import org.apache.isis.core.metamodel.facets.object.title.TitleFacet;
+import org.apache.isis.core.metamodel.facets.object.value.EqualByContentFacet;
 import org.apache.isis.core.metamodel.facets.object.value.ValueFacet;
-import org.apache.isis.core.metamodel.runtimecontext.RuntimeContext;
-import org.apache.isis.core.metamodel.runtimecontext.RuntimeContextAware;
-import org.apache.isis.core.metamodel.runtimecontext.ServicesInjector;
-import org.apache.isis.core.metamodel.runtimecontext.ServicesInjectorAware;
 import org.apache.isis.core.metamodel.facets.object.value.vsp.ValueSemanticsProviderContext;
 import org.apache.isis.core.metamodel.facets.object.value.vsp.ValueSemanticsProviderUtil;
+import org.apache.isis.core.metamodel.runtimecontext.ServicesInjector;
+import org.apache.isis.core.metamodel.runtimecontext.ServicesInjectorAware;
 
 /**
  * Processes the {@link Value} annotation.
@@ -77,10 +74,9 @@ import org.apache.isis.core.metamodel.facets.object.value.vsp.ValueSemanticsProv
  * <p>
  * Note that {@link ParentedFacet} is <i>not</i> installed.
  */
-public class ValueFacetAnnotationOrConfigurationFactory extends FacetFactoryAbstract implements IsisConfigurationAware, AuthenticationSessionProviderAware, AdapterManagerAware, ServicesInjectorAware, RuntimeContextAware {
+public class ValueFacetAnnotationOrConfigurationFactory extends FacetFactoryAbstract implements IsisConfigurationAware, AuthenticationSessionProviderAware, AdapterManagerAware, ServicesInjectorAware {
 
     private IsisConfiguration configuration;
-    private RuntimeContext runtimeContext;
     private AuthenticationSessionProvider authenticationSessionProvider;
     private AdapterManager adapterManager;
     private ServicesInjector servicesInjector;
@@ -165,9 +161,4 @@ public class ValueFacetAnnotationOrConfigurationFactory extends FacetFactoryAbst
         this.servicesInjector = dependencyInjector;
     }
 
-    @Override
-    public void setRuntimeContext(RuntimeContext runtimeContext) {
-        this.runtimeContext = runtimeContext;
-    }
-
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/dd162be9/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 049dc32..e5cefc1 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
@@ -25,19 +25,15 @@ 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.FacetUtil;
 import org.apache.isis.core.metamodel.facetapi.FeatureType;
 import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract;
-import org.apache.isis.core.metamodel.runtimecontext.RuntimeContext;
-import org.apache.isis.core.metamodel.runtimecontext.RuntimeContextAware;
 import org.apache.isis.core.metamodel.runtimecontext.ServicesInjector;
 import org.apache.isis.core.metamodel.runtimecontext.ServicesInjectorAware;
 
-public abstract class ValueFacetUsingSemanticsProviderFactory<T> extends FacetFactoryAbstract implements IsisConfigurationAware, AuthenticationSessionProviderAware, AdapterManagerAware, ServicesInjectorAware, RuntimeContextAware {
+public abstract class ValueFacetUsingSemanticsProviderFactory<T> extends FacetFactoryAbstract implements IsisConfigurationAware, AuthenticationSessionProviderAware, AdapterManagerAware, ServicesInjectorAware {
 
     private IsisConfiguration configuration;
-    private RuntimeContext runtimeContext;
     private AuthenticationSessionProvider authenticationSessionProvider;
     private AdapterManager adapterManager;
     private ServicesInjector servicesInjector;
@@ -92,9 +88,4 @@ public abstract class ValueFacetUsingSemanticsProviderFactory<T> extends FacetFa
         this.servicesInjector = dependencyInjector;
     }
 
-    @Override
-    public void setRuntimeContext(RuntimeContext runtimeContext) {
-        this.runtimeContext = runtimeContext;
-    }
-
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/dd162be9/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/parseable/ParseableFacetAnnotationElseConfigurationFactoryTest.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/parseable/ParseableFacetAnnotationElseConfigurationFactoryTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/parseable/ParseableFacetAnnotationElseConfigurationFactoryTest.java
index a6d9e99..83ace6b 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/parseable/ParseableFacetAnnotationElseConfigurationFactoryTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/parseable/ParseableFacetAnnotationElseConfigurationFactoryTest.java
@@ -65,7 +65,6 @@ public class ParseableFacetAnnotationElseConfigurationFactoryTest extends Abstra
         facetFactory = new ParseableFacetAnnotationElseConfigurationFactory();
         isisConfigurationDefault = new IsisConfigurationDefault();
         facetFactory.setConfiguration(isisConfigurationDefault);
-        facetFactory.setRuntimeContext(new RuntimeContextNoRuntime(DeploymentCategory.PRODUCTION));
 
         facetFactory.setAuthenticationSessionProvider(mockAuthenticationSessionProvider);
         facetFactory.setDeploymentCategoryProvider(mockDeploymentCategoryProvider);

http://git-wip-us.apache.org/repos/asf/isis/blob/dd162be9/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/value/ValueFacetAnnotationOrConfigurationFactoryTest.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/value/ValueFacetAnnotationOrConfigurationFactoryTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/value/ValueFacetAnnotationOrConfigurationFactoryTest.java
index d7cbfc7..839bcb9 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/value/ValueFacetAnnotationOrConfigurationFactoryTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/value/ValueFacetAnnotationOrConfigurationFactoryTest.java
@@ -77,7 +77,6 @@ public class ValueFacetAnnotationOrConfigurationFactoryTest extends AbstractFace
         facetFactory = new ValueFacetAnnotationOrConfigurationFactory();
         isisConfigurationDefault = new IsisConfigurationDefault();
         facetFactory.setConfiguration(isisConfigurationDefault);
-        facetFactory.setRuntimeContext(new RuntimeContextNoRuntime(DeploymentCategory.PRODUCTION));
 
         facetFactory.setAuthenticationSessionProvider(mockAuthenticationSessionProvider);
         facetFactory.setDeploymentCategoryProvider(mockDeploymentCategoryProvider);


[2/5] isis git commit: ISIS-1194: rationalizing RuntimeContext - introducing TransactionStateProvider

Posted by da...@apache.org.
ISIS-1194: rationalizing RuntimeContext - introducing TransactionStateProvider

... cf DeploymentCategoryProvider and AuthenticationSessionProvider etc.


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

Branch: refs/heads/master
Commit: fe1f75dddb7ea2bfeb3f6327863f5c3e67a59ea9
Parents: 02b0bc5
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Thu Sep 3 14:19:58 2015 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Thu Sep 3 14:19:58 2015 +0100

----------------------------------------------------------------------
 .../action/ActionAnnotationFacetFactory.java    | 20 +++--
 ...onInvocationFacetForDomainEventAbstract.java | 13 ++-
 ...FacetForDomainEventFromActionAnnotation.java |  7 +-
 ...ainEventFromActionInteractionAnnotation.java |  7 +-
 ...nvocationFacetForDomainEventFromDefault.java |  7 +-
 ...cetForPostsActionInvokedEventAnnotation.java |  7 +-
 .../runtimecontext/RuntimeContext.java          | 87 +-----------------
 .../runtimecontext/RuntimeContextAbstract.java  |  1 +
 .../noruntime/RuntimeContextNoRuntime.java      | 23 +++--
 .../transactions/TransactionState.java          | 94 ++++++++++++++++++++
 .../transactions/TransactionStateProvider.java  | 26 ++++++
 .../TransactionStateProviderAbstract.java       | 30 +++++++
 .../TransactionStateProviderAware.java          | 29 ++++++
 .../internal/RuntimeContextFromSession.java     | 27 ++++--
 .../system/transaction/IsisTransaction.java     |  2 +-
 15 files changed, 262 insertions(+), 118 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/fe1f75dd/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 a3fa1bc..58bddba 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
@@ -96,8 +96,11 @@ import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 import org.apache.isis.core.metamodel.specloader.collectiontyperegistry.CollectionTypeRegistry;
 import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorComposite;
 import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorForDeprecatedAnnotation;
+import org.apache.isis.core.metamodel.transactions.TransactionStateProvider;
+import org.apache.isis.core.metamodel.transactions.TransactionStateProviderAware;
 
-public class ActionAnnotationFacetFactory extends FacetFactoryAbstract implements ServicesInjectorAware, IsisConfigurationAware, AdapterManagerAware, RuntimeContextAware, MetaModelValidatorRefiner {
+public class ActionAnnotationFacetFactory extends FacetFactoryAbstract implements ServicesInjectorAware, IsisConfigurationAware, AdapterManagerAware, RuntimeContextAware, MetaModelValidatorRefiner,
+        TransactionStateProviderAware {
 
     private final MetaModelValidatorForDeprecatedAnnotation actionSemanticsValidator = new MetaModelValidatorForDeprecatedAnnotation(ActionSemantics.class);
     private final MetaModelValidatorForDeprecatedAnnotation actionInteractionValidator = new MetaModelValidatorForDeprecatedAnnotation(ActionInteraction.class);
@@ -117,6 +120,7 @@ public class ActionAnnotationFacetFactory extends FacetFactoryAbstract implement
     private IsisConfiguration configuration;
     private AdapterManager adapterManager;
     private RuntimeContext runtimeContext;
+    private TransactionStateProvider transactionStateProvider;
 
     private final CollectionTypeRegistry collectionTypeRegistry = new CollectionTypeRegistry();
 
@@ -211,7 +215,8 @@ public class ActionAnnotationFacetFactory extends FacetFactoryAbstract implement
                         new ActionInvocationFacetForPostsActionInvokedEventAnnotation(
                                 actionInvokedEventType, actionMethod, typeSpec, returnSpec, holder,
                                 getDeploymentCategory(), configuration, getServicesInjector(),
-                                getAuthenticationSessionProvider(), getAdapterManager(), getRuntimeContext()
+                                getAuthenticationSessionProvider(), getAdapterManager(), getRuntimeContext(),
+                                transactionStateProvider
                         ), processMethodContext);
             } else
             // deprecated (but more recently)
@@ -220,7 +225,8 @@ public class ActionAnnotationFacetFactory extends FacetFactoryAbstract implement
                         new ActionInvocationFacetForDomainEventFromActionInteractionAnnotation(
                                 actionDomainEventType, actionMethod, typeSpec, returnSpec, holder,
                                 getDeploymentCategory(), configuration, getServicesInjector(),
-                                getAuthenticationSessionProvider(), getAdapterManager(), getRuntimeContext()
+                                getAuthenticationSessionProvider(), getAdapterManager(), getRuntimeContext(),
+                                transactionStateProvider
                         ), processMethodContext);
             } else
             // current
@@ -229,7 +235,7 @@ public class ActionAnnotationFacetFactory extends FacetFactoryAbstract implement
                         actionDomainEventType, actionMethod, typeSpec, returnSpec, holder,
                         getDeploymentCategory(), configuration, getServicesInjector(),
                         getAuthenticationSessionProvider(),
-                        getAdapterManager(), getRuntimeContext()
+                        getAdapterManager(), getRuntimeContext(), transactionStateProvider
                 );
             } else
             // default
@@ -237,7 +243,7 @@ public class ActionAnnotationFacetFactory extends FacetFactoryAbstract implement
                 actionInvocationFacet = new ActionInvocationFacetForDomainEventFromDefault(
                         actionDomainEventType, actionMethod, typeSpec, returnSpec, holder,
                         getDeploymentCategory(), configuration, getServicesInjector(), getAuthenticationSessionProvider(),
-                        getAdapterManager(), getRuntimeContext()
+                        getAdapterManager(), getRuntimeContext(), transactionStateProvider
                 );
             }
             FacetUtil.addFacet(actionInvocationFacet);
@@ -580,4 +586,8 @@ public class ActionAnnotationFacetFactory extends FacetFactoryAbstract implement
         this.runtimeContext = runtimeContext;
     }
 
+    @Override
+    public void setTransactionStateProvider(final TransactionStateProvider transactionStateProvider) {
+        this.transactionStateProvider = transactionStateProvider;
+    }
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/fe1f75dd/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 880f377..f78c720 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
@@ -74,6 +74,8 @@ import org.apache.isis.core.metamodel.runtimecontext.ServicesInjector;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
 import org.apache.isis.core.metamodel.specloader.ReflectiveActionException;
+import org.apache.isis.core.metamodel.transactions.TransactionState;
+import org.apache.isis.core.metamodel.transactions.TransactionStateProvider;
 
 public abstract class ActionInvocationFacetForDomainEventAbstract
         extends ActionInvocationFacetAbstract
@@ -92,6 +94,7 @@ public abstract class ActionInvocationFacetForDomainEventAbstract
 
     private final ServicesInjector servicesInjector;
     private final IsisConfiguration configuration;
+    private final TransactionStateProvider transactionStateProvider;
     private final Class<? extends ActionDomainEvent<?>> eventType;
     private final DomainEventHelper domainEventHelper;
 
@@ -106,7 +109,8 @@ public abstract class ActionInvocationFacetForDomainEventAbstract
             final ServicesInjector servicesInjector,
             final AuthenticationSessionProvider authenticationSessionProvider,
             final AdapterManager adapterManager,
-            final RuntimeContext runtimeContext) {
+            final RuntimeContext runtimeContext,
+            final TransactionStateProvider transactionStateProvider) {
         super(holder);
         this.eventType = eventType;
         this.method = method;
@@ -118,6 +122,7 @@ public abstract class ActionInvocationFacetForDomainEventAbstract
         this.adapterManager = adapterManager;
         this.servicesInjector = servicesInjector;
         this.configuration = configuration;
+        this.transactionStateProvider = transactionStateProvider;
         this.domainEventHelper = new DomainEventHelper(this.servicesInjector);
 
     }
@@ -469,7 +474,7 @@ public abstract class ActionInvocationFacetForDomainEventAbstract
                 throw new ReflectiveActionException("IllegalStateException thrown while executing " + method + " " + targetException.getMessage(), targetException);
             }
             if(targetException instanceof RecoverableException) {
-                if (!runtimeContext.getTransactionState().canCommit()) {
+                if (!getTransactionState().canCommit()) {
                     // something severe has happened to the underlying transaction;
                     // so escalate this exception to be non-recoverable
                     final Throwable targetExceptionCause = targetException.getCause();
@@ -532,4 +537,8 @@ public abstract class ActionInvocationFacetForDomainEventAbstract
     public AuthenticationSession getAuthenticationSession() {
         return authenticationSessionProvider.getAuthenticationSession();
     }
+
+    public TransactionState getTransactionState() {
+        return transactionStateProvider.getTransactionState();
+    }
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/fe1f75dd/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 49267e8..7f6d614 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
@@ -31,6 +31,7 @@ import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.runtimecontext.RuntimeContext;
 import org.apache.isis.core.metamodel.runtimecontext.ServicesInjector;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
+import org.apache.isis.core.metamodel.transactions.TransactionStateProvider;
 
 public class ActionInvocationFacetForDomainEventFromActionAnnotation
         extends ActionInvocationFacetForDomainEventAbstract {
@@ -46,7 +47,9 @@ public class ActionInvocationFacetForDomainEventFromActionAnnotation
             final ServicesInjector servicesInjector,
             final AuthenticationSessionProvider authenticationSessionProvider,
             final AdapterManager adapterManager,
-            final RuntimeContext runtimeContext) {
-        super(eventType, method, onType, returnType, holder, deploymentCategory, isisConfiguration, servicesInjector, authenticationSessionProvider, adapterManager, runtimeContext);
+            final RuntimeContext runtimeContext,
+            final TransactionStateProvider transactionStateProvider) {
+        super(eventType, method, onType, returnType, holder, deploymentCategory, isisConfiguration, servicesInjector, authenticationSessionProvider, adapterManager, runtimeContext,
+                transactionStateProvider);
     }
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/fe1f75dd/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 e41186e..3bda165 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
@@ -31,6 +31,7 @@ import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.runtimecontext.RuntimeContext;
 import org.apache.isis.core.metamodel.runtimecontext.ServicesInjector;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
+import org.apache.isis.core.metamodel.transactions.TransactionStateProvider;
 
 /**
  * @deprecated
@@ -50,7 +51,9 @@ public class ActionInvocationFacetForDomainEventFromActionInteractionAnnotation
             final ServicesInjector servicesInjector,
             final AuthenticationSessionProvider authenticationSessionProvider,
             final AdapterManager adapterManager,
-            final RuntimeContext runtimeContext) {
-        super(eventType, method, onType, returnType, holder, deploymentCategory, isisConfiguration, servicesInjector, authenticationSessionProvider, adapterManager, runtimeContext);
+            final RuntimeContext runtimeContext,
+            final TransactionStateProvider transactionStateProvider) {
+        super(eventType, method, onType, returnType, holder, deploymentCategory, isisConfiguration, servicesInjector, authenticationSessionProvider, adapterManager, runtimeContext,
+                transactionStateProvider);
     }
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/fe1f75dd/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 fd55995..395f2c7 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
@@ -30,6 +30,7 @@ import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.runtimecontext.RuntimeContext;
 import org.apache.isis.core.metamodel.runtimecontext.ServicesInjector;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
+import org.apache.isis.core.metamodel.transactions.TransactionStateProvider;
 
 public class ActionInvocationFacetForDomainEventFromDefault
         extends ActionInvocationFacetForDomainEventAbstract {
@@ -45,8 +46,10 @@ public class ActionInvocationFacetForDomainEventFromDefault
             final ServicesInjector servicesInjector,
             final AuthenticationSessionProvider authenticationSessionProvider,
             final AdapterManager adapterManager,
-            final RuntimeContext runtimeContext) {
+            final RuntimeContext runtimeContext,
+            final TransactionStateProvider transactionStateProvider) {
         super(eventType, method, onType, returnType, holder,
-                deploymentCategory, isisConfiguration, servicesInjector, authenticationSessionProvider, adapterManager, runtimeContext);
+                deploymentCategory, isisConfiguration, servicesInjector, authenticationSessionProvider, adapterManager, runtimeContext,
+                transactionStateProvider);
     }
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/fe1f75dd/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 ed8f587..67ad6d0 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
@@ -30,6 +30,7 @@ import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.runtimecontext.RuntimeContext;
 import org.apache.isis.core.metamodel.runtimecontext.ServicesInjector;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
+import org.apache.isis.core.metamodel.transactions.TransactionStateProvider;
 
 /**
  * @deprecated
@@ -49,9 +50,11 @@ public class ActionInvocationFacetForPostsActionInvokedEventAnnotation
             final ServicesInjector servicesInjector,
             final AuthenticationSessionProvider authenticationSessionProvider,
             final AdapterManager adapterManager,
-            final RuntimeContext runtimeContext) {
+            final RuntimeContext runtimeContext,
+            final TransactionStateProvider transactionStateProvider) {
         super(eventType, method, onType, returnType, holder,
-                deploymentCategory, isisConfiguration, servicesInjector, authenticationSessionProvider, adapterManager, runtimeContext);
+                deploymentCategory, isisConfiguration, servicesInjector, authenticationSessionProvider, adapterManager, runtimeContext,
+                transactionStateProvider);
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/isis/blob/fe1f75dd/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/RuntimeContext.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/RuntimeContext.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/RuntimeContext.java
index 6337b36..93ad76e 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/RuntimeContext.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/RuntimeContext.java
@@ -33,6 +33,7 @@ import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager;
 import org.apache.isis.core.metamodel.deployment.DeploymentCategoryProvider;
 import org.apache.isis.core.metamodel.spec.ObjectInstantiator;
 import org.apache.isis.core.metamodel.spec.SpecificationLoader;
+import org.apache.isis.core.metamodel.transactions.TransactionStateProvider;
 
 /**
  * Decouples the metamodel from a runtime.
@@ -42,6 +43,8 @@ public interface RuntimeContext extends Injectable, ApplicationScopedComponent {
 
     public DeploymentCategoryProvider getDeploymentCategoryProvider();
 
+    public TransactionStateProvider getTransactionStateProvider();
+
     /**
      * A mechanism for returning the <tt>current</tt>
      * {@link AuthenticationSession}.
@@ -62,9 +65,6 @@ public interface RuntimeContext extends Injectable, ApplicationScopedComponent {
 
     public ServicesProvider getServicesProvider();
 
-    /**
-     * aka the ServicesInjector...
-     */
     public ServicesInjector getServicesInjector();
 
     public ObjectDirtier getObjectDirtier();
@@ -75,85 +75,4 @@ public interface RuntimeContext extends Injectable, ApplicationScopedComponent {
 
     public LocalizationProvider getLocalizationProvider();
 
-
-    // ///////////////////////////////////////////
-    // transaction state
-    // ///////////////////////////////////////////
-
-    public TransactionState getTransactionState();
-
-    public static enum TransactionState {
-        
-        /**
-         * No transaction exists.
-         */
-        NONE,
-        /**
-         * Started, still in progress.
-         * 
-         * <p>
-         * May flush, commit or abort.
-         */
-        IN_PROGRESS,
-        /**
-         * Started, but has hit an exception.
-         * 
-         * <p>
-         * May not flush or commit (will throw an {@link IllegalStateException}),
-         * can only abort.
-         * 
-         * <p>
-         * Similar to <tt>setRollbackOnly</tt> in EJBs.
-         */
-        MUST_ABORT,
-        /**
-         * Completed, having successfully committed.
-         * 
-         * <p>
-         * May not flush or abort or commit (will throw {@link IllegalStateException}).
-         */
-        COMMITTED,
-        /**
-         * Completed, having aborted.
-         * 
-         * <p>
-         * May not flush, commit or abort (will throw {@link IllegalStateException}).
-         */
-        ABORTED;
-
-        private TransactionState(){}
-
-        /**
-         * Whether it is valid to flush the transaction.
-         */
-        public boolean canFlush() {
-            return this == IN_PROGRESS;
-        }
-
-        /**
-         * Whether it is valid to commit the transaction.
-         */
-        public boolean canCommit() {
-            return this == IN_PROGRESS;
-        }
-
-        /**
-         * Whether it is valid to mark as aborted this transaction}.
-         */
-        public boolean canAbort() {
-            return this == IN_PROGRESS || this == MUST_ABORT;
-        }
-
-        /**
-         * Whether the transaction is complete (and so a new one can be started).
-         */
-        public boolean isComplete() {
-            return this == COMMITTED || this == ABORTED;
-        }
-
-        public boolean mustAbort() {
-            return this == MUST_ABORT;
-        }
-    }
-
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/fe1f75dd/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/RuntimeContextAbstract.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/RuntimeContextAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/RuntimeContextAbstract.java
index 4741a01..0f32c96 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/RuntimeContextAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/RuntimeContextAbstract.java
@@ -64,6 +64,7 @@ public abstract class RuntimeContextAbstract implements RuntimeContext, Specific
         getAdapterManager().injectInto(candidate);
         getAuthenticationSessionProvider().injectInto(candidate);
         getDeploymentCategoryProvider().injectInto(candidate);
+        getTransactionStateProvider().injectInto(candidate);
         getServicesInjector().injectInto(candidate);
         getDomainObjectServices().injectInto(candidate);
         getLocalizationProvider().injectInto(candidate);

http://git-wip-us.apache.org/repos/asf/isis/blob/fe1f75dd/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/noruntime/RuntimeContextNoRuntime.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/noruntime/RuntimeContextNoRuntime.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/noruntime/RuntimeContextNoRuntime.java
index 3a7e10f..c0c511f 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/noruntime/RuntimeContextNoRuntime.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/noruntime/RuntimeContextNoRuntime.java
@@ -37,11 +37,14 @@ import org.apache.isis.core.metamodel.deployment.DeploymentCategoryProvider;
 import org.apache.isis.core.metamodel.deployment.DeploymentCategoryProviderAbstract;
 import org.apache.isis.core.metamodel.runtimecontext.RuntimeContextAbstract;
 import org.apache.isis.core.metamodel.runtimecontext.ServicesInjector;
+import org.apache.isis.core.metamodel.transactions.TransactionState;
 import org.apache.isis.core.metamodel.spec.ObjectInstantiationException;
 import org.apache.isis.core.metamodel.spec.ObjectInstantiator;
 import org.apache.isis.core.metamodel.spec.ObjectInstantiatorAbstract;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 import org.apache.isis.core.metamodel.spec.feature.OneToManyAssociation;
+import org.apache.isis.core.metamodel.transactions.TransactionStateProvider;
+import org.apache.isis.core.metamodel.transactions.TransactionStateProviderAbstract;
 
 public class RuntimeContextNoRuntime extends RuntimeContextAbstract {
 
@@ -317,6 +320,16 @@ public class RuntimeContextNoRuntime extends RuntimeContextAbstract {
         };
     }
 
+    @Override
+    public TransactionStateProvider getTransactionStateProvider() {
+        return new TransactionStateProviderAbstract() {
+            @Override
+            public TransactionState getTransactionState() {
+                throw new UnsupportedOperationException("Not supported by this implementation of RuntimeContext");
+            }
+        };
+    }
+
 
     @Override
     public AuthenticationSessionProvider getAuthenticationSessionProvider() {
@@ -393,13 +406,5 @@ public class RuntimeContextNoRuntime extends RuntimeContextAbstract {
         return localizationProvider;
     }
 
-    
-    // ///////////////////////////////////////////
-    // getTransactionState
-    // ///////////////////////////////////////////
-    
-    @Override
-    public TransactionState getTransactionState() {
-        throw new UnsupportedOperationException("Not supported by this implementation of RuntimeContext");
-    }
+
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/fe1f75dd/core/metamodel/src/main/java/org/apache/isis/core/metamodel/transactions/TransactionState.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/transactions/TransactionState.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/transactions/TransactionState.java
new file mode 100644
index 0000000..e6bf13f
--- /dev/null
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/transactions/TransactionState.java
@@ -0,0 +1,94 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
+package org.apache.isis.core.metamodel.transactions;
+
+public enum TransactionState {
+
+    /**
+     * No transaction exists.
+     */
+    NONE,
+    /**
+     * Started, still in progress.
+     * <p/>
+     * <p/>
+     * May flush, commit or abort.
+     */
+    IN_PROGRESS,
+    /**
+     * Started, but has hit an exception.
+     * <p/>
+     * <p/>
+     * May not flush or commit (will throw an {@link IllegalStateException}),
+     * can only abort.
+     * <p/>
+     * <p/>
+     * Similar to <tt>setRollbackOnly</tt> in EJBs.
+     */
+    MUST_ABORT,
+    /**
+     * Completed, having successfully committed.
+     * <p/>
+     * <p/>
+     * May not flush or abort or commit (will throw {@link IllegalStateException}).
+     */
+    COMMITTED,
+    /**
+     * Completed, having aborted.
+     * <p/>
+     * <p/>
+     * May not flush, commit or abort (will throw {@link IllegalStateException}).
+     */
+    ABORTED;
+
+    private TransactionState() {
+    }
+
+    /**
+     * Whether it is valid to flush the transaction.
+     */
+    public boolean canFlush() {
+        return this == IN_PROGRESS;
+    }
+
+    /**
+     * Whether it is valid to commit the transaction.
+     */
+    public boolean canCommit() {
+        return this == IN_PROGRESS;
+    }
+
+    /**
+     * Whether it is valid to mark as aborted this transaction}.
+     */
+    public boolean canAbort() {
+        return this == IN_PROGRESS || this == MUST_ABORT;
+    }
+
+    /**
+     * Whether the transaction is complete (and so a new one can be started).
+     */
+    public boolean isComplete() {
+        return this == COMMITTED || this == ABORTED;
+    }
+
+    public boolean mustAbort() {
+        return this == MUST_ABORT;
+    }
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/fe1f75dd/core/metamodel/src/main/java/org/apache/isis/core/metamodel/transactions/TransactionStateProvider.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/transactions/TransactionStateProvider.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/transactions/TransactionStateProvider.java
new file mode 100644
index 0000000..26349d0
--- /dev/null
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/transactions/TransactionStateProvider.java
@@ -0,0 +1,26 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
+
+package org.apache.isis.core.metamodel.transactions;
+
+import org.apache.isis.core.commons.components.Injectable;
+
+public interface TransactionStateProvider extends Injectable {
+    public TransactionState getTransactionState();
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/fe1f75dd/core/metamodel/src/main/java/org/apache/isis/core/metamodel/transactions/TransactionStateProviderAbstract.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/transactions/TransactionStateProviderAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/transactions/TransactionStateProviderAbstract.java
new file mode 100644
index 0000000..2ba5a9c
--- /dev/null
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/transactions/TransactionStateProviderAbstract.java
@@ -0,0 +1,30 @@
+/**
+ *  Licensed to the Apache Software Foundation (ASF) under one or more
+ *  contributor license agreements.  See the NOTICE file distributed with
+ *  this work for additional information regarding copyright ownership.
+ *  The ASF licenses this file to You under the Apache License, Version 2.0
+ *  (the "License"); you may not use this file except in compliance with
+ *  the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */
+package org.apache.isis.core.metamodel.transactions;
+
+public abstract class TransactionStateProviderAbstract implements
+        TransactionStateProvider {
+
+    @Override
+    public void injectInto(final Object candidate) {
+        if (TransactionStateProviderAware.class.isAssignableFrom(candidate.getClass())) {
+            final TransactionStateProviderAware cast = TransactionStateProviderAware.class.cast(candidate);
+            cast.setTransactionStateProvider(this);
+        }
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/fe1f75dd/core/metamodel/src/main/java/org/apache/isis/core/metamodel/transactions/TransactionStateProviderAware.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/transactions/TransactionStateProviderAware.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/transactions/TransactionStateProviderAware.java
new file mode 100644
index 0000000..2cb551f
--- /dev/null
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/transactions/TransactionStateProviderAware.java
@@ -0,0 +1,29 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
+
+package org.apache.isis.core.metamodel.transactions;
+
+import org.apache.isis.applib.annotation.Programmatic;
+
+public interface TransactionStateProviderAware {
+
+    @Programmatic
+    public void setTransactionStateProvider(TransactionStateProvider transactionStateProvider);
+
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/fe1f75dd/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/internal/RuntimeContextFromSession.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/internal/RuntimeContextFromSession.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/internal/RuntimeContextFromSession.java
index e8b8fa1..c082ed5 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/internal/RuntimeContextFromSession.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/internal/RuntimeContextFromSession.java
@@ -59,6 +59,9 @@ import org.apache.isis.core.metamodel.spec.ObjectInstantiator;
 import org.apache.isis.core.metamodel.spec.ObjectInstantiatorAbstract;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 import org.apache.isis.core.metamodel.spec.feature.OneToManyAssociation;
+import org.apache.isis.core.metamodel.transactions.TransactionState;
+import org.apache.isis.core.metamodel.transactions.TransactionStateProvider;
+import org.apache.isis.core.metamodel.transactions.TransactionStateProviderAbstract;
 import org.apache.isis.core.runtime.persistence.container.DomainObjectContainerObjectChanged;
 import org.apache.isis.core.runtime.persistence.container.DomainObjectContainerResolve;
 import org.apache.isis.core.runtime.system.context.IsisContext;
@@ -398,6 +401,21 @@ public class RuntimeContextFromSession extends RuntimeContextAbstract {
         };
     }
 
+    @Override
+    public TransactionStateProvider getTransactionStateProvider() {
+        return new TransactionStateProviderAbstract() {
+            @Override
+            public TransactionState getTransactionState() {
+                final IsisTransaction transaction = getTransactionManager().getTransaction();
+                if(transaction == null) {
+                    return TransactionState.NONE;
+                }
+                IsisTransaction.State state = transaction.getState();
+                return state.getRuntimeContextState();
+            }
+        };
+    }
+
 
     private static PersistenceSession getPersistenceSession() {
         return IsisContext.getPersistenceSession();
@@ -415,14 +433,5 @@ public class RuntimeContextFromSession extends RuntimeContextAbstract {
         return IsisContext.getMessageBroker();
     }
 
-    @Override
-    public TransactionState getTransactionState() {
-        final IsisTransaction transaction = getTransactionManager().getTransaction();
-        if(transaction == null) {
-            return TransactionState.NONE;
-        }
-        IsisTransaction.State state = transaction.getState();
-        return state.getRuntimeContextState();
-    }
 
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/fe1f75dd/core/runtime/src/main/java/org/apache/isis/core/runtime/system/transaction/IsisTransaction.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/transaction/IsisTransaction.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/transaction/IsisTransaction.java
index 2a2f75c..7ad1e64 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/transaction/IsisTransaction.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/transaction/IsisTransaction.java
@@ -87,7 +87,7 @@ import org.apache.isis.core.metamodel.facets.actions.publish.PublishedActionFace
 import org.apache.isis.core.metamodel.facets.object.audit.AuditableFacet;
 import org.apache.isis.core.metamodel.facets.object.encodeable.EncodableFacet;
 import org.apache.isis.core.metamodel.facets.object.publishedobject.PublishedObjectFacet;
-import org.apache.isis.core.metamodel.runtimecontext.RuntimeContext.TransactionState;
+import org.apache.isis.core.metamodel.transactions.TransactionState;
 import org.apache.isis.core.metamodel.runtimecontext.ServicesInjector;
 import org.apache.isis.core.metamodel.spec.feature.Contributed;
 import org.apache.isis.core.metamodel.spec.feature.ObjectAssociation;


[4/5] isis git commit: ISIS-1194 (and also ISIS-1044): removing unused code.

Posted by da...@apache.org.
http://git-wip-us.apache.org/repos/asf/isis/blob/69450a33/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 e05cf76..c96eff2 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
@@ -20,7 +20,6 @@
 package org.apache.isis.core.metamodel.specloader.specimpl;
 
 import org.apache.isis.applib.annotation.Where;
-import org.apache.isis.core.commons.authentication.AuthenticationSession;
 import org.apache.isis.core.commons.debug.DebugString;
 import org.apache.isis.core.commons.exceptions.IsisException;
 import org.apache.isis.core.commons.util.ToString;
@@ -28,7 +27,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.FeatureType;
 import org.apache.isis.core.metamodel.facets.FacetedMethod;
 import org.apache.isis.core.metamodel.facets.propcoll.accessor.PropertyOrCollectionAccessorFacet;
@@ -46,22 +44,23 @@ import org.apache.isis.core.metamodel.interactions.ValidityContext;
 import org.apache.isis.core.metamodel.interactions.VisibilityContext;
 import org.apache.isis.core.metamodel.spec.Instance;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
-import org.apache.isis.core.metamodel.spec.feature.ObjectMemberContext;
+import org.apache.isis.core.metamodel.spec.feature.ObjectMemberDependencies;
 import org.apache.isis.core.metamodel.spec.feature.OneToManyAssociation;
 
 public class OneToManyAssociationImpl extends ObjectAssociationAbstract implements OneToManyAssociation {
 
     public OneToManyAssociationImpl(
             final FacetedMethod facetedMethod, 
-            final ObjectMemberContext objectMemberContext) {
-        this(facetedMethod, getSpecification(objectMemberContext.getSpecificationLoader(), facetedMethod.getType()), objectMemberContext);
+            final ObjectMemberDependencies objectMemberDependencies) {
+        this(facetedMethod, getSpecification(objectMemberDependencies.getSpecificationLoader(), facetedMethod.getType()),
+                objectMemberDependencies);
     }
 
     protected OneToManyAssociationImpl(
             final FacetedMethod facetedMethod, 
             final ObjectSpecification objectSpec, 
-            final ObjectMemberContext objectMemberContext) {
-        super(facetedMethod, FeatureType.COLLECTION, objectSpec, objectMemberContext);
+            final ObjectMemberDependencies objectMemberDependencies) {
+        super(facetedMethod, FeatureType.COLLECTION, objectSpec, objectMemberDependencies);
     }
 
     @Override
@@ -271,8 +270,6 @@ public class OneToManyAssociationImpl extends ObjectAssociationAbstract implemen
     public ObjectAdapter[] getAutoComplete(
             ObjectAdapter object,
             String searchArg,
-            final AuthenticationSession authenticationSession,
-            final DeploymentCategory deploymentCategory,
             final InteractionInitiatedBy interactionInitiatedBy) {
         return new ObjectAdapter[0];
     }

http://git-wip-us.apache.org/repos/asf/isis/blob/69450a33/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToOneActionParameterContributee.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToOneActionParameterContributee.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToOneActionParameterContributee.java
index 9797396..77ed327 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToOneActionParameterContributee.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToOneActionParameterContributee.java
@@ -18,11 +18,9 @@ package org.apache.isis.core.metamodel.specloader.specimpl;
 
 import java.util.List;
 
-import org.apache.isis.core.commons.authentication.AuthenticationSession;
 import org.apache.isis.core.commons.lang.ListExtensions;
 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.spec.feature.ObjectActionParameter;
 
 public class OneToOneActionParameterContributee extends OneToOneActionParameterImpl implements ObjectActionParameterContributee{
@@ -58,8 +56,6 @@ public class OneToOneActionParameterContributee extends OneToOneActionParameterI
             final ObjectAdapter adapter,
             final String searchArg,
             final InteractionInitiatedBy interactionInitiatedBy) {
-        final AuthenticationSession authenticationSession = getAuthenticationSession();
-        final DeploymentCategory deploymentCategory = serviceAction.getDeploymentCategory();
         return serviceActionParameter.getAutoComplete(serviceAdapter, searchArg,
                 interactionInitiatedBy);
     }

http://git-wip-us.apache.org/repos/asf/isis/blob/69450a33/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToOneAssociationContributee.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToOneAssociationContributee.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToOneAssociationContributee.java
index dec40df..24f58ad 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToOneAssociationContributee.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToOneAssociationContributee.java
@@ -39,7 +39,7 @@ import org.apache.isis.core.metamodel.interactions.UsabilityContext;
 import org.apache.isis.core.metamodel.interactions.VisibilityContext;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
-import org.apache.isis.core.metamodel.spec.feature.ObjectMemberContext;
+import org.apache.isis.core.metamodel.spec.feature.ObjectMemberDependencies;
 
 public class OneToOneAssociationContributee extends OneToOneAssociationImpl implements ContributeeMember {
 
@@ -59,8 +59,8 @@ public class OneToOneAssociationContributee extends OneToOneAssociationImpl impl
             final ObjectAdapter serviceAdapter, 
             final ObjectActionImpl serviceAction, 
             final ObjectSpecification contributeeType,
-            final ObjectMemberContext objectMemberContext) {
-        super(serviceAction.getFacetedMethod(), serviceAction.getReturnType(), objectMemberContext);
+            final ObjectMemberDependencies objectMemberDependencies) {
+        super(serviceAction.getFacetedMethod(), serviceAction.getReturnType(), objectMemberDependencies);
         this.serviceAdapter = serviceAdapter;
         this.serviceAction = serviceAction;
 

http://git-wip-us.apache.org/repos/asf/isis/blob/69450a33/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 ec07768..963669f 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
@@ -24,9 +24,6 @@ import java.util.List;
 import com.google.common.collect.Lists;
 
 import org.apache.isis.applib.annotation.Where;
-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.debug.DebugString;
 import org.apache.isis.core.commons.exceptions.IsisException;
 import org.apache.isis.core.commons.util.ToString;
@@ -34,11 +31,11 @@ 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.FeatureType;
 import org.apache.isis.core.metamodel.facets.FacetedMethod;
-import org.apache.isis.core.metamodel.facets.propcoll.accessor.PropertyOrCollectionAccessorFacet;
 import org.apache.isis.core.metamodel.facets.objectvalue.mandatory.MandatoryFacet;
+import org.apache.isis.core.metamodel.facets.param.autocomplete.MinLengthUtil;
+import org.apache.isis.core.metamodel.facets.propcoll.accessor.PropertyOrCollectionAccessorFacet;
 import org.apache.isis.core.metamodel.facets.properties.autocomplete.PropertyAutoCompleteFacet;
 import org.apache.isis.core.metamodel.facets.properties.choices.PropertyChoicesFacet;
 import org.apache.isis.core.metamodel.facets.properties.defaults.PropertyDefaultFacet;
@@ -56,18 +53,18 @@ import org.apache.isis.core.metamodel.interactions.VisibilityContext;
 import org.apache.isis.core.metamodel.spec.Instance;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 import org.apache.isis.core.metamodel.spec.feature.MutableCurrentHolder;
-import org.apache.isis.core.metamodel.spec.feature.ObjectMemberContext;
+import org.apache.isis.core.metamodel.spec.feature.ObjectMemberDependencies;
 import org.apache.isis.core.metamodel.spec.feature.OneToOneAssociation;
-import org.apache.isis.core.metamodel.facets.param.autocomplete.MinLengthUtil;
 
 public class OneToOneAssociationImpl extends ObjectAssociationAbstract implements OneToOneAssociation {
 
-    public OneToOneAssociationImpl(final FacetedMethod facetedMethod, final ObjectMemberContext objectMemberContext) {
-        this(facetedMethod, getSpecification(objectMemberContext.getSpecificationLoader(), facetedMethod.getType()), objectMemberContext);
+    public OneToOneAssociationImpl(final FacetedMethod facetedMethod, final ObjectMemberDependencies objectMemberDependencies) {
+        this(facetedMethod, getSpecification(objectMemberDependencies.getSpecificationLoader(), facetedMethod.getType()),
+                objectMemberDependencies);
     }
     
-    protected OneToOneAssociationImpl(final FacetedMethod facetedMethod, final ObjectSpecification objectSpec, final ObjectMemberContext objectMemberContext) {
-        super(facetedMethod, FeatureType.PROPERTY, objectSpec, objectMemberContext);
+    protected OneToOneAssociationImpl(final FacetedMethod facetedMethod, final ObjectSpecification objectSpec, final ObjectMemberDependencies objectMemberDependencies) {
+        super(facetedMethod, FeatureType.PROPERTY, objectSpec, objectMemberDependencies);
     }
 
     // /////////////////////////////////////////////////////////////
@@ -280,30 +277,16 @@ public class OneToOneAssociationImpl extends ObjectAssociationAbstract implement
         if (propertyChoicesFacet == null) {
             return null;
         }
-        final AuthenticationSession authenticationSession = getAuthenticationSession();
-        final DeploymentCategory deploymentCategory = getDeploymentCategory();
         final Object[] pojoOptions = propertyChoicesFacet.getChoices(
                 ownerAdapter,
-                getSpecificationLoader(), authenticationSession, deploymentCategory,
+                getSpecificationLoader(),
                 interactionInitiatedBy);
         List<ObjectAdapter> adapters = Lists.transform(
                 Lists.newArrayList(pojoOptions), ObjectAdapter.Functions.adapterForUsing(getAdapterManager()));
         return adapters.toArray(new ObjectAdapter[]{});
     }
 
-    // seems to be UNUSED?
-    private <T> ObjectAdapter[] options() {
-        final Query<T> query = new QueryFindAllInstances<T>(getSpecification().getFullIdentifier());
-        final List<ObjectAdapter> allInstancesAdapter = getQuerySubmitter().allMatchingQuery(query);
-        final ObjectAdapter[] options = new ObjectAdapter[allInstancesAdapter.size()];
-        int j = 0;
-        for (final ObjectAdapter adapter : allInstancesAdapter) {
-            options[j++] = adapter;
-        }
-        return options;
-    }
 
-    
     @Override
     public boolean hasAutoComplete() {
         final PropertyAutoCompleteFacet propertyAutoCompleteFacet = getFacet(PropertyAutoCompleteFacet.class);
@@ -314,11 +297,7 @@ public class OneToOneAssociationImpl extends ObjectAssociationAbstract implement
     public ObjectAdapter[] getAutoComplete(
             final ObjectAdapter ownerAdapter,
             final String searchArg,
-            final AuthenticationSession authenticationSession,
-            final DeploymentCategory deploymentCategory1,
             final InteractionInitiatedBy interactionInitiatedBy) {
-        final DeploymentCategory deploymentCategory = getDeploymentCategory();
-        final AuthenticationSession session = getAuthenticationSession();
         final PropertyAutoCompleteFacet propertyAutoCompleteFacet = getFacet(PropertyAutoCompleteFacet.class);
         final Object[] pojoOptions = propertyAutoCompleteFacet.autoComplete(ownerAdapter, searchArg,
                 interactionInitiatedBy);

http://git-wip-us.apache.org/repos/asf/isis/blob/69450a33/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/dflt/ObjectSpecificationDefault.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/dflt/ObjectSpecificationDefault.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/dflt/ObjectSpecificationDefault.java
index e5f9b9c..395497a 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/dflt/ObjectSpecificationDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/dflt/ObjectSpecificationDefault.java
@@ -59,12 +59,12 @@ import org.apache.isis.core.metamodel.spec.ActionType;
 import org.apache.isis.core.metamodel.spec.ObjectInstantiationException;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 import org.apache.isis.core.metamodel.spec.ObjectSpecificationException;
-import org.apache.isis.core.metamodel.spec.SpecificationContext;
+import org.apache.isis.core.metamodel.spec.ObjectSpecificationDependencies;
 import org.apache.isis.core.metamodel.spec.feature.Contributed;
 import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
 import org.apache.isis.core.metamodel.spec.feature.ObjectAssociation;
 import org.apache.isis.core.metamodel.spec.feature.ObjectMember;
-import org.apache.isis.core.metamodel.spec.feature.ObjectMemberContext;
+import org.apache.isis.core.metamodel.spec.feature.ObjectMemberDependencies;
 import org.apache.isis.core.metamodel.specloader.classsubstitutor.ClassSubstitutor;
 import org.apache.isis.core.metamodel.specloader.specimpl.CreateObjectContext;
 import org.apache.isis.core.metamodel.specloader.specimpl.FacetedMethodsBuilder;
@@ -108,10 +108,10 @@ public class ObjectSpecificationDefault extends ObjectSpecificationAbstract impl
     public ObjectSpecificationDefault(
             final Class<?> correspondingClass,
             final FacetedMethodsBuilderContext facetedMethodsBuilderContext,
-            final SpecificationContext specContext,
-            final ObjectMemberContext objectMemberContext,
+            final ObjectSpecificationDependencies specContext,
+            final ObjectMemberDependencies objectMemberDependencies,
             final CreateObjectContext createObjectContext) {
-        super(correspondingClass, determineShortName(correspondingClass), specContext, objectMemberContext);
+        super(correspondingClass, determineShortName(correspondingClass), specContext, objectMemberDependencies);
 
         this.facetedMethodsBuilder = new FacetedMethodsBuilder(this, facetedMethodsBuilderContext);
         this.createObjectContext = createObjectContext;
@@ -231,9 +231,9 @@ public class ObjectSpecificationDefault extends ObjectSpecificationAbstract impl
 
     private ObjectAssociation createAssociation(final FacetedMethod facetMethod) {
         if (facetMethod.getFeatureType().isCollection()) {
-            return new OneToManyAssociationImpl(facetMethod, objectMemberContext);
+            return new OneToManyAssociationImpl(facetMethod, objectMemberDependencies);
         } else if (facetMethod.getFeatureType().isProperty()) {
-            return new OneToOneAssociationImpl(facetMethod, objectMemberContext);
+            return new OneToOneAssociationImpl(facetMethod, objectMemberDependencies);
         } else {
             return null;
         }
@@ -254,7 +254,7 @@ public class ObjectSpecificationDefault extends ObjectSpecificationAbstract impl
 
     private ObjectAction createAction(final FacetedMethod facetedMethod) {
         if (facetedMethod.getFeatureType().isAction()) {
-            return new ObjectActionImpl(facetedMethod, objectMemberContext);
+            return new ObjectActionImpl(facetedMethod, objectMemberDependencies);
         } else {
             return null;
         }

http://git-wip-us.apache.org/repos/asf/isis/blob/69450a33/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/standalonelist/ObjectSpecificationOnStandaloneList.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/standalonelist/ObjectSpecificationOnStandaloneList.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/standalonelist/ObjectSpecificationOnStandaloneList.java
index e5c631f..c2ba620 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/standalonelist/ObjectSpecificationOnStandaloneList.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/standalonelist/ObjectSpecificationOnStandaloneList.java
@@ -29,10 +29,10 @@ import org.apache.isis.core.metamodel.facets.actcoll.typeof.TypeOfFacetDefaultTo
 import org.apache.isis.core.metamodel.spec.ActionType;
 import org.apache.isis.core.metamodel.spec.FreeStandingList;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
-import org.apache.isis.core.metamodel.spec.SpecificationContext;
+import org.apache.isis.core.metamodel.spec.ObjectSpecificationDependencies;
 import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
 import org.apache.isis.core.metamodel.spec.feature.ObjectAssociation;
-import org.apache.isis.core.metamodel.spec.feature.ObjectMemberContext;
+import org.apache.isis.core.metamodel.spec.feature.ObjectMemberDependencies;
 import org.apache.isis.core.metamodel.specloader.specimpl.ObjectSpecificationAbstract;
 
 /**
@@ -50,9 +50,9 @@ public class ObjectSpecificationOnStandaloneList extends ObjectSpecificationAbst
     private static final String ICON_NAME = "instances";
 
     public ObjectSpecificationOnStandaloneList(
-            final SpecificationContext specificationContext,
-            final ObjectMemberContext objectMemberContext) {
-        super(FreeStandingList.class, NAME, specificationContext, objectMemberContext);
+            final ObjectSpecificationDependencies objectSpecificationDependencies,
+            final ObjectMemberDependencies objectMemberDependencies) {
+        super(FreeStandingList.class, NAME, objectSpecificationDependencies, objectMemberDependencies);
     }
 
     // /////////////////////////////////////////////////////////

http://git-wip-us.apache.org/repos/asf/isis/blob/69450a33/core/metamodel/src/test/java/org/apache/isis/core/metamodel/spec/feature/ObjectAssociationFiltersTests.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/spec/feature/ObjectAssociationFiltersTests.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/spec/feature/ObjectAssociationFiltersTests.java
deleted file mode 100644
index 5754d1c..0000000
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/spec/feature/ObjectAssociationFiltersTests.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License.
- */
-
-package org.apache.isis.core.metamodel.spec.feature;
-
-import org.jmock.Expectations;
-import org.jmock.auto.Mock;
-import org.junit.Rule;
-import org.junit.Test;
-
-import org.apache.isis.applib.annotation.Where;
-import org.apache.isis.applib.filter.Filter;
-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.facets.all.hide.HiddenFacet;
-import org.apache.isis.core.unittestsupport.jmocking.JUnitRuleMockery2;
-import org.apache.isis.core.unittestsupport.jmocking.JUnitRuleMockery2.Mode;
-
-import static org.hamcrest.CoreMatchers.equalTo;
-
-public class ObjectAssociationFiltersTests {
-
-    @Rule
-    public JUnitRuleMockery2 context = JUnitRuleMockery2.createFor(Mode.INTERFACES_AND_CLASSES);
-
-    @Mock
-    private AuthenticationSession mockSession;
-    @Mock
-    private ObjectAdapter mockTarget;
-    @Mock
-    private ObjectAssociation mockAssociation;
-
-    @Test
-    public void shouldNotJustCheckIfAssociationContainsHiddenFacet() {
-        context.checking(new Expectations() {
-            {
-                never(mockAssociation).containsFacet(HiddenFacet.class);
-                allowing(mockAssociation).isVisible(with(any(ObjectAdapter.class)), InteractionInitiatedBy.USER, with(equalTo(Where.ANYWHERE)));
-            }
-        });
-        final Filter<ObjectAssociation> filter = ObjectAssociation.Filters.dynamicallyVisible(mockTarget,
-                InteractionInitiatedBy.USER, Where.ANYWHERE
-        );
-        filter.accept(mockAssociation);
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/isis/blob/69450a33/core/metamodel/src/test/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectAssociationAbstractTest.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectAssociationAbstractTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectAssociationAbstractTest.java
index f81b1bc..a99fb4d 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectAssociationAbstractTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectAssociationAbstractTest.java
@@ -29,10 +29,8 @@ import org.junit.Rule;
 import org.junit.Test;
 
 import org.apache.isis.applib.annotation.Where;
-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.facetapi.FeatureType;
 import org.apache.isis.core.metamodel.facets.FacetedMethod;
@@ -43,7 +41,7 @@ import org.apache.isis.core.metamodel.interactions.UsabilityContext;
 import org.apache.isis.core.metamodel.interactions.VisibilityContext;
 import org.apache.isis.core.metamodel.spec.Instance;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
-import org.apache.isis.core.metamodel.spec.feature.ObjectMemberContext;
+import org.apache.isis.core.metamodel.spec.feature.ObjectMemberDependencies;
 import org.apache.isis.core.unittestsupport.jmocking.JUnitRuleMockery2;
 import org.apache.isis.core.unittestsupport.jmocking.JUnitRuleMockery2.Mode;
 
@@ -73,7 +71,8 @@ public class ObjectAssociationAbstractTest {
     public void setup() {
         facetedMethod = FacetedMethod.createForProperty(Customer.class, "firstName");
         
-        objectAssociation = new ObjectAssociationAbstract(facetedMethod, FeatureType.PROPERTY, objectSpecification, new ObjectMemberContext(DeploymentCategory.PRODUCTION, null, null, null, null, null)) {
+        objectAssociation = new ObjectAssociationAbstract(facetedMethod, FeatureType.PROPERTY, objectSpecification, new ObjectMemberDependencies(
+                null, null, null, null)) {
 
             @Override
             public ObjectAdapter get(
@@ -141,8 +140,6 @@ public class ObjectAssociationAbstractTest {
             public ObjectAdapter[] getAutoComplete(
                     ObjectAdapter object,
                     String searchArg,
-                    final AuthenticationSession authenticationSession,
-                    final DeploymentCategory deploymentCategory,
                     final InteractionInitiatedBy interactionInitiatedBy) {
                 return null;
             }

http://git-wip-us.apache.org/repos/asf/isis/blob/69450a33/core/metamodel/src/test/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectAssociationAbstractTest_alwaysHidden.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectAssociationAbstractTest_alwaysHidden.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectAssociationAbstractTest_alwaysHidden.java
index 34df7b2..a979e46 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectAssociationAbstractTest_alwaysHidden.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectAssociationAbstractTest_alwaysHidden.java
@@ -25,10 +25,8 @@ 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.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.facetapi.FacetUtil;
 import org.apache.isis.core.metamodel.facetapi.FeatureType;
@@ -39,7 +37,7 @@ import org.apache.isis.core.metamodel.interactions.UsabilityContext;
 import org.apache.isis.core.metamodel.interactions.VisibilityContext;
 import org.apache.isis.core.metamodel.spec.Instance;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
-import org.apache.isis.core.metamodel.spec.feature.ObjectMemberContext;
+import org.apache.isis.core.metamodel.spec.feature.ObjectMemberDependencies;
 import org.apache.isis.core.unittestsupport.jmocking.JUnitRuleMockery2;
 import org.apache.isis.core.unittestsupport.jmocking.JUnitRuleMockery2.Mode;
 
@@ -69,7 +67,7 @@ public class ObjectAssociationAbstractTest_alwaysHidden {
         
         objectAssociation = new ObjectAssociationAbstract(
                 facetedMethod, FeatureType.PROPERTY, mockObjectSpecification,
-                new ObjectMemberContext(DeploymentCategory.PRODUCTION, null, null, null, null, null)) {
+                new ObjectMemberDependencies(null, null, null, null)) {
 
             @Override
             public ObjectAdapter get(
@@ -137,8 +135,7 @@ public class ObjectAssociationAbstractTest_alwaysHidden {
             public ObjectAdapter[] getAutoComplete(
                     final ObjectAdapter object,
                     final String searchArg,
-                    final AuthenticationSession authenticationSession,
-                    final DeploymentCategory deploymentCategory, final InteractionInitiatedBy interactionInitiatedBy) {
+                    final InteractionInitiatedBy interactionInitiatedBy) {
                 return null;
             }
             @Override

http://git-wip-us.apache.org/repos/asf/isis/blob/69450a33/core/runtime/src/main/java/org/apache/isis/core/runtime/memento/Memento.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/memento/Memento.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/memento/Memento.java
index dcc2e7b..e30c3b0 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/memento/Memento.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/memento/Memento.java
@@ -19,7 +19,6 @@
 
 package org.apache.isis.core.runtime.memento;
 
-import java.io.IOException;
 import java.io.Serializable;
 import java.util.List;
 
@@ -29,8 +28,6 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import org.apache.isis.core.commons.debug.DebugBuilder;
-import org.apache.isis.core.commons.encoding.DataInputStreamExtended;
-import org.apache.isis.core.commons.encoding.DataOutputStreamExtended;
 import org.apache.isis.core.commons.ensure.Assert;
 import org.apache.isis.core.commons.exceptions.IsisException;
 import org.apache.isis.core.commons.exceptions.UnknownTypeException;
@@ -411,25 +408,6 @@ public class Memento implements Serializable {
         }
     }
     
-    ////////////////////////////////////////////////
-    // encode, restore
-    ////////////////////////////////////////////////
-
-    // UNUSED?
-    public void encodedData(final DataOutputStreamExtended outputImpl) throws IOException {
-        outputImpl.writeEncodable(data);
-    }
-    
-    public void restore(final DataInputStreamExtended input) throws IOException {
-        data = input.readEncodable(Data.class);
-    }
-
-
-    public static Memento recreateFrom(DataInputStreamExtended input) throws IOException {
-        final Memento memento = new Memento(null);
-        memento.restore(input);
-        return memento;
-    }
 
 
     // ///////////////////////////////////////////////////////////////

http://git-wip-us.apache.org/repos/asf/isis/blob/69450a33/core/runtime/src/main/java/org/apache/isis/core/runtime/transaction/facets/ActionInvocationFacetWrapTransaction.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/transaction/facets/ActionInvocationFacetWrapTransaction.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/transaction/facets/ActionInvocationFacetWrapTransaction.java
index 2d66ed4..4daeeac 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/transaction/facets/ActionInvocationFacetWrapTransaction.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/transaction/facets/ActionInvocationFacetWrapTransaction.java
@@ -22,10 +22,8 @@ package org.apache.isis.core.runtime.transaction.facets;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-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.DecoratingFacet;
 import org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionInvocationFacet;
 import org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionInvocationFacetAbstract;
@@ -68,22 +66,6 @@ public class ActionInvocationFacetWrapTransaction extends ActionInvocationFacetA
         return result;
     }
 
-    @Override
-    public ObjectAdapter invoke(
-            final ObjectAdapter targetAdapter,
-            final ObjectAdapter[] argumentAdapters,
-            final AuthenticationSession authenticationSession,
-            final DeploymentCategory deploymentCategory,
-            final InteractionInitiatedBy interactionInitiatedBy) {
-        final ObjectAdapter result = getTransactionManager().executeWithinTransaction(new TransactionalClosureWithReturnAbstract<ObjectAdapter>() {
-            @Override
-            public ObjectAdapter execute() {
-                return underlyingFacet.invoke(targetAdapter, argumentAdapters, authenticationSession,
-                        deploymentCategory, interactionInitiatedBy);
-            }
-        });
-        return result;
-    }
 
     @Override
     public ObjectSpecification getReturnType() {

http://git-wip-us.apache.org/repos/asf/isis/blob/69450a33/core/runtime/src/test/java/org/apache/isis/core/runtime/system/ObjectActionImplTest.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/test/java/org/apache/isis/core/runtime/system/ObjectActionImplTest.java b/core/runtime/src/test/java/org/apache/isis/core/runtime/system/ObjectActionImplTest.java
index 31b93b6..a3ff26c 100644
--- a/core/runtime/src/test/java/org/apache/isis/core/runtime/system/ObjectActionImplTest.java
+++ b/core/runtime/src/test/java/org/apache/isis/core/runtime/system/ObjectActionImplTest.java
@@ -35,13 +35,11 @@ import org.apache.isis.core.commons.authentication.AuthenticationSessionProvider
 import org.apache.isis.core.metamodel.adapter.QuerySubmitter;
 import org.apache.isis.core.metamodel.adapter.ServicesProvider;
 import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager;
-import org.apache.isis.core.metamodel.deployment.DeploymentCategory;
 import org.apache.isis.core.metamodel.facets.FacetedMethod;
 import org.apache.isis.core.metamodel.facets.all.named.NamedFacet;
 import org.apache.isis.core.metamodel.facets.all.named.NamedFacetAbstract;
 import org.apache.isis.core.metamodel.spec.SpecificationLoader;
-import org.apache.isis.core.metamodel.spec.feature.ObjectMemberContext;
-import org.apache.isis.core.metamodel.specloader.collectiontyperegistry.CollectionTypeRegistry;
+import org.apache.isis.core.metamodel.spec.feature.ObjectMemberDependencies;
 import org.apache.isis.core.metamodel.specloader.specimpl.ObjectActionImpl;
 import org.apache.isis.core.unittestsupport.jmocking.JUnitRuleMockery2;
 import org.apache.isis.core.unittestsupport.jmocking.JUnitRuleMockery2.Mode;
@@ -78,7 +76,8 @@ public class ObjectActionImplTest {
             }
         });
 
-        action = new ObjectActionImpl(mockFacetedMethod, new ObjectMemberContext(DeploymentCategory.PRODUCTION, mockAuthenticationSessionProvider, mockSpecificationLookup, mockAdapterManager, mockQuerySubmitter, mockServicesProvider));
+        action = new ObjectActionImpl(mockFacetedMethod, new ObjectMemberDependencies(
+                mockSpecificationLookup, mockAdapterManager, mockQuerySubmitter, mockServicesProvider));
     }
 
 

http://git-wip-us.apache.org/repos/asf/isis/blob/69450a33/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 9a7be61..e4446d4 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
@@ -31,7 +31,6 @@ 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;
-import org.apache.isis.core.metamodel.deployment.DeploymentCategory;
 import org.apache.isis.core.metamodel.facetapi.FeatureType;
 import org.apache.isis.core.metamodel.facets.FacetedMethod;
 import org.apache.isis.core.metamodel.facets.all.describedas.DescribedAsFacetAbstract;
@@ -48,7 +47,7 @@ import org.apache.isis.core.metamodel.interactions.UsabilityContext;
 import org.apache.isis.core.metamodel.interactions.VisibilityContext;
 import org.apache.isis.core.metamodel.spec.Instance;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
-import org.apache.isis.core.metamodel.spec.feature.ObjectMemberContext;
+import org.apache.isis.core.metamodel.spec.feature.ObjectMemberDependencies;
 import org.apache.isis.core.metamodel.specloader.specimpl.ObjectMemberAbstract;
 import org.apache.isis.core.runtime.persistence.objectstore.transaction.PojoAdapterBuilder;
 import org.apache.isis.core.runtime.persistence.objectstore.transaction.PojoAdapterBuilder.Persistence;
@@ -211,7 +210,8 @@ class ObjectMemberAbstractImpl extends ObjectMemberAbstract {
     }
 
     protected ObjectMemberAbstractImpl(final String id) {
-        super(FacetedMethod.createForProperty(Customer.class, "firstName"), FeatureType.PROPERTY, new ObjectMemberContext(DeploymentCategory.PRODUCTION, null, null, null, null, null));
+        super(FacetedMethod.createForProperty(Customer.class, "firstName"), FeatureType.PROPERTY, new ObjectMemberDependencies(
+                null, null, null, null));
     }
 
     @Override
@@ -232,7 +232,6 @@ class ObjectMemberAbstractImpl extends ObjectMemberAbstract {
     public UsabilityContext<?> createUsableInteractionContext(
             final ObjectAdapter target, final InteractionInitiatedBy interactionInitiatedBy,
             Where where) {
-        final AuthenticationSession session = getAuthenticationSession();
         return new PropertyUsabilityContext(target, getIdentifier(), interactionInitiatedBy, where);
     }
 
@@ -240,7 +239,6 @@ class ObjectMemberAbstractImpl extends ObjectMemberAbstract {
     public VisibilityContext<?> createVisibleInteractionContext(
             final ObjectAdapter targetObjectAdapter, final InteractionInitiatedBy interactionInitiatedBy,
             Where where) {
-        final AuthenticationSession session = getAuthenticationSession();
         return new PropertyVisibilityContext(targetObjectAdapter, getIdentifier(), interactionInitiatedBy,
                 where);
     }

http://git-wip-us.apache.org/repos/asf/isis/blob/69450a33/core/runtime/src/test/java/org/apache/isis/core/runtime/system/OneToManyAssociationImplTest.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/test/java/org/apache/isis/core/runtime/system/OneToManyAssociationImplTest.java b/core/runtime/src/test/java/org/apache/isis/core/runtime/system/OneToManyAssociationImplTest.java
index 61f2b92..37e19df 100644
--- a/core/runtime/src/test/java/org/apache/isis/core/runtime/system/OneToManyAssociationImplTest.java
+++ b/core/runtime/src/test/java/org/apache/isis/core/runtime/system/OneToManyAssociationImplTest.java
@@ -31,14 +31,13 @@ import org.apache.isis.core.metamodel.adapter.QuerySubmitter;
 import org.apache.isis.core.metamodel.adapter.ServicesProvider;
 import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager;
 import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
-import org.apache.isis.core.metamodel.deployment.DeploymentCategory;
 import org.apache.isis.core.metamodel.facets.FacetedMethod;
 import org.apache.isis.core.metamodel.facets.all.named.NamedFacet;
 import org.apache.isis.core.metamodel.facets.collections.modify.CollectionAddToFacet;
 import org.apache.isis.core.metamodel.facets.propcoll.notpersisted.NotPersistedFacet;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 import org.apache.isis.core.metamodel.spec.SpecificationLoader;
-import org.apache.isis.core.metamodel.spec.feature.ObjectMemberContext;
+import org.apache.isis.core.metamodel.spec.feature.ObjectMemberDependencies;
 import org.apache.isis.core.metamodel.spec.feature.OneToManyAssociation;
 import org.apache.isis.core.metamodel.specloader.specimpl.OneToManyAssociationImpl;
 import org.apache.isis.core.unittestsupport.jmocking.JUnitRuleMockery2;
@@ -91,7 +90,8 @@ public class OneToManyAssociationImplTest {
         allowingPeerToReturnCollectionType();
         allowingPeerToReturnIdentifier();
         allowingSpecLoaderToReturnSpecs();
-        association = new OneToManyAssociationImpl(mockPeer, new ObjectMemberContext(DeploymentCategory.PRODUCTION, mockAuthenticationSessionProvider, mockSpecificationLookup, mockAdapterManager, mockQuerySubmitter, mockServicesProvider));
+        association = new OneToManyAssociationImpl(mockPeer, new ObjectMemberDependencies(
+                mockSpecificationLookup, mockAdapterManager, mockQuerySubmitter, mockServicesProvider));
     }
 
     private void allowingSpecLoaderToReturnSpecs() {

http://git-wip-us.apache.org/repos/asf/isis/blob/69450a33/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/ActionModel.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/ActionModel.java b/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/ActionModel.java
index 80e64d6..6851989 100644
--- a/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/ActionModel.java
+++ b/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/ActionModel.java
@@ -467,7 +467,7 @@ public class ActionModel extends BookmarkableModel<ObjectAdapter> {
         final AuthenticationSession session = getAuthenticationSession();
         final ObjectAdapter resultAdapter =
                 action.executeWithRuleChecking(
-                        targetAdapter, arguments, session,
+                        targetAdapter, arguments,
                         InteractionInitiatedBy.USER,
                         WHERE_FOR_ACTION_INVOCATION);
         return resultAdapter;

http://git-wip-us.apache.org/repos/asf/isis/blob/69450a33/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/ScalarModel.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/ScalarModel.java b/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/ScalarModel.java
index c44d749..f902357 100644
--- a/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/ScalarModel.java
+++ b/core/viewer-wicket-model/src/main/java/org/apache/isis/viewer/wicket/model/models/ScalarModel.java
@@ -23,7 +23,6 @@ import java.math.BigDecimal;
 import java.util.Arrays;
 import java.util.Collections;
 import java.util.List;
-import java.util.concurrent.Callable;
 
 import com.google.common.collect.Lists;
 
@@ -46,7 +45,6 @@ import org.apache.isis.core.metamodel.facets.objectvalue.mandatory.MandatoryFace
 import org.apache.isis.core.metamodel.facets.objectvalue.typicallen.TypicalLengthFacet;
 import org.apache.isis.core.metamodel.facets.value.bigdecimal.BigDecimalValueFacet;
 import org.apache.isis.core.metamodel.facets.value.string.StringValueSemanticsProvider;
-import org.apache.isis.core.metamodel.interactions.InteractionUtils;
 import org.apache.isis.core.metamodel.spec.ObjectSpecId;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 import org.apache.isis.core.metamodel.spec.feature.ObjectActionParameter;
@@ -204,7 +202,7 @@ public class ScalarModel extends EntityModel implements LinksProvider {
                 final ObjectAdapter[] choices =
                         property.getAutoComplete(
                                 parentAdapter, searchArg,
-                                authenticationSession, deploymentCategory, InteractionInitiatedBy.USER);
+                                InteractionInitiatedBy.USER);
                 return choicesAsList(choices);
             }
 

http://git-wip-us.apache.org/repos/asf/isis/blob/69450a33/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collection/bulk/BulkActionsLinkFactory.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collection/bulk/BulkActionsLinkFactory.java b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collection/bulk/BulkActionsLinkFactory.java
index 1929b5d..d5aebc7 100644
--- a/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collection/bulk/BulkActionsLinkFactory.java
+++ b/core/viewer-wicket-ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collection/bulk/BulkActionsLinkFactory.java
@@ -128,7 +128,7 @@ public final class BulkActionsLinkFactory implements ActionLinkFactory {
                             bulkInteractionContext.setIndex(i++);
                         }
 
-                        lastReturnedAdapter = objectAction.executeWithRuleChecking(adapter, new ObjectAdapter[]{}, getAuthenticationSession(),
+                        lastReturnedAdapter = objectAction.executeWithRuleChecking(adapter, new ObjectAdapter[]{},
                                 InteractionInitiatedBy.USER, ActionModel.WHERE_FOR_ACTION_INVOCATION
                         );
                     }

http://git-wip-us.apache.org/repos/asf/isis/blob/69450a33/core/viewer-wicket-ui/src/test/java/org/apache/isis/viewer/wicket/ui/fixtures/ActionFixtures.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/test/java/org/apache/isis/viewer/wicket/ui/fixtures/ActionFixtures.java b/core/viewer-wicket-ui/src/test/java/org/apache/isis/viewer/wicket/ui/fixtures/ActionFixtures.java
deleted file mode 100644
index 6ec561f..0000000
--- a/core/viewer-wicket-ui/src/test/java/org/apache/isis/viewer/wicket/ui/fixtures/ActionFixtures.java
+++ /dev/null
@@ -1,117 +0,0 @@
-/*
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License.
- */
-
-package org.apache.isis.viewer.wicket.ui.fixtures;
-
-import org.jmock.Expectations;
-import org.jmock.Mockery;
-
-import org.apache.isis.applib.Identifier;
-import org.apache.isis.applib.annotation.Where;
-import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.core.metamodel.consent.ConsentAbstract;
-import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
-import org.apache.isis.core.metamodel.facetapi.Facet;
-import org.apache.isis.core.metamodel.spec.ActionType;
-import org.apache.isis.core.metamodel.spec.ObjectSpecification;
-import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
-
-// UNUSED?
-public final class ActionFixtures {
-
-    private final Mockery context;
-
-    public ActionFixtures(final Mockery context) {
-        this.context = context;
-    }
-
-    public <T extends Facet> void getFacet(final ObjectAction mockAction, final Class<T> facetClass, final T returns) {
-        context.checking(new Expectations() {
-            {
-                allowing(mockAction).getFacet(with(facetClass));
-                will(returnValue(returns));
-            }
-        });
-    }
-
-    public void getName(final ObjectAction mockAction, final String returns) {
-        context.checking(new Expectations() {
-            {
-                allowing(mockAction).getName();
-                will(returnValue(returns));
-            }
-        });
-    }
-
-    public <T extends Facet> void getParameterCount(final ObjectAction mockAction, final int returns) {
-        context.checking(new Expectations() {
-            {
-                allowing(mockAction).getParameterCount();
-                will(returnValue(returns));
-            }
-        });
-    }
-
-    public void getType(final ObjectAction mockAction, final ActionType returns) {
-        context.checking(new Expectations() {
-            {
-                allowing(mockAction).getType();
-                will(returnValue(returns));
-            }
-        });
-    }
-
-    public void getIdentifier(final Mockery context, final ObjectAction mockAction, final Identifier returns) {
-        context.checking(new Expectations() {
-            {
-                allowing(mockAction).getIdentifier();
-                will(returnValue(returns));
-            }
-        });
-    }
-
-    public void getOnType(final ObjectAction mockAction, final ObjectSpecification returns) {
-        context.checking(new Expectations() {
-            {
-                allowing(mockAction).getOnType();
-                will(returnValue(returns));
-            }
-        });
-    }
-
-    public void isVisible(final ObjectAction mockAction, final boolean returns) {
-        context.checking(new Expectations() {
-            {
-                allowing(mockAction).isVisible(with(any(ObjectAdapter.class)), InteractionInitiatedBy.USER, Where.ANYWHERE);
-                will(returnValue(ConsentAbstract.allowIf(returns)));
-            }
-        });
-    }
-
-    public void isUsable(final ObjectAction mockAction, final boolean returns) {
-        context.checking(new Expectations() {
-            {
-                allowing(mockAction).isUsable(with(any(ObjectAdapter.class)), InteractionInitiatedBy.USER, Where.ANYWHERE
-                );
-                will(returnValue(ConsentAbstract.allowIf(returns)));
-            }
-        });
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/isis/blob/69450a33/core/viewer-wicket-ui/src/test/java/org/apache/isis/viewer/wicket/ui/fixtures/AdapterFixtures.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/test/java/org/apache/isis/viewer/wicket/ui/fixtures/AdapterFixtures.java b/core/viewer-wicket-ui/src/test/java/org/apache/isis/viewer/wicket/ui/fixtures/AdapterFixtures.java
deleted file mode 100644
index 4d1252b..0000000
--- a/core/viewer-wicket-ui/src/test/java/org/apache/isis/viewer/wicket/ui/fixtures/AdapterFixtures.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License.
- */
-
-package org.apache.isis.viewer.wicket.ui.fixtures;
-
-import org.jmock.Expectations;
-import org.jmock.Mockery;
-
-import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
-
-public final class AdapterFixtures {
-
-    private final Mockery context;
-
-    public AdapterFixtures(final Mockery context) {
-        this.context = context;
-    }
-
-    public void getOid(final ObjectAdapter mockAdapter, final Object returns) {
-        context.checking(new Expectations() {
-            {
-                allowing(mockAdapter).getOid();
-                will(returnValue(returns));
-            }
-        });
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/isis/blob/69450a33/core/viewer-wicket-ui/src/test/java/org/apache/isis/viewer/wicket/ui/fixtures/SpecFixtures.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket-ui/src/test/java/org/apache/isis/viewer/wicket/ui/fixtures/SpecFixtures.java b/core/viewer-wicket-ui/src/test/java/org/apache/isis/viewer/wicket/ui/fixtures/SpecFixtures.java
deleted file mode 100644
index 996ac61..0000000
--- a/core/viewer-wicket-ui/src/test/java/org/apache/isis/viewer/wicket/ui/fixtures/SpecFixtures.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License.
- */
-
-package org.apache.isis.viewer.wicket.ui.fixtures;
-
-import org.jmock.Expectations;
-import org.jmock.Mockery;
-
-import org.apache.isis.core.metamodel.spec.ObjectSpecification;
-
-public final class SpecFixtures {
-
-    private final Mockery context;
-
-    public SpecFixtures(final Mockery context) {
-        this.context = context;
-    }
-
-    public void getFullName(final ObjectSpecification mockNoSpec, final String returns) {
-        context.checking(new Expectations() {
-            {
-                allowing(mockNoSpec).getFullIdentifier();
-                will(returnValue(returns));
-            }
-        });
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/isis/blob/69450a33/core/wrapper/src/main/java/org/apache/isis/core/wrapper/handlers/DomainObjectInvocationHandler.java
----------------------------------------------------------------------
diff --git a/core/wrapper/src/main/java/org/apache/isis/core/wrapper/handlers/DomainObjectInvocationHandler.java b/core/wrapper/src/main/java/org/apache/isis/core/wrapper/handlers/DomainObjectInvocationHandler.java
index e62ec6c..cb1b1b8 100644
--- a/core/wrapper/src/main/java/org/apache/isis/core/wrapper/handlers/DomainObjectInvocationHandler.java
+++ b/core/wrapper/src/main/java/org/apache/isis/core/wrapper/handlers/DomainObjectInvocationHandler.java
@@ -711,20 +711,6 @@ public class DomainObjectInvocationHandler<T> extends DelegatingInvocationHandle
         }
     }
 
-    // UNUSED?
-    private String decode(final ObjectMember objectMember) {
-        if (objectMember instanceof OneToOneAssociation) {
-            return "a property";
-        }
-        if (objectMember instanceof OneToManyAssociation) {
-            return "a collection";
-        }
-        if (objectMember instanceof ObjectAction) {
-            return "an action";
-        }
-        return "an UNKNOWN member type";
-    }
-
     /**
      * Wraps a {@link InteractionEvent#isVeto() vetoing}
      * {@link InteractionEvent} in a corresponding {@link InteractionException},

http://git-wip-us.apache.org/repos/asf/isis/blob/69450a33/core/wrapper/src/test/java/org/apache/isis/progmodel/wrapper/WrapperFactoryDefaultTest_wrappedObject.java
----------------------------------------------------------------------
diff --git a/core/wrapper/src/test/java/org/apache/isis/progmodel/wrapper/WrapperFactoryDefaultTest_wrappedObject.java b/core/wrapper/src/test/java/org/apache/isis/progmodel/wrapper/WrapperFactoryDefaultTest_wrappedObject.java
index 5f20570..ee79be5 100644
--- a/core/wrapper/src/test/java/org/apache/isis/progmodel/wrapper/WrapperFactoryDefaultTest_wrappedObject.java
+++ b/core/wrapper/src/test/java/org/apache/isis/progmodel/wrapper/WrapperFactoryDefaultTest_wrappedObject.java
@@ -48,7 +48,7 @@ import org.apache.isis.core.metamodel.facets.properties.update.modify.PropertySe
 import org.apache.isis.core.metamodel.facets.properties.validating.method.PropertyValidateFacetViaMethod;
 import org.apache.isis.core.metamodel.spec.SpecificationLoader;
 import org.apache.isis.core.metamodel.spec.feature.ObjectMember;
-import org.apache.isis.core.metamodel.spec.feature.ObjectMemberContext;
+import org.apache.isis.core.metamodel.spec.feature.ObjectMemberDependencies;
 import org.apache.isis.core.metamodel.specloader.specimpl.OneToOneAssociationImpl;
 import org.apache.isis.core.metamodel.specloader.specimpl.dflt.ObjectSpecificationDefault;
 import org.apache.isis.core.runtime.authentication.standard.SimpleSession;
@@ -88,7 +88,7 @@ public class WrapperFactoryDefaultTest_wrappedObject {
     @Mock
     private IsisConfiguration mockConfiguration;
 
-    private ObjectMemberContext objectMemberContext;
+    private ObjectMemberDependencies objectMemberDependencies;
 
     @Mock
     private ObjectSpecificationDefault mockEmployeeSpec;
@@ -118,7 +118,7 @@ public class WrapperFactoryDefaultTest_wrappedObject {
     @Before
     public void setUp() {
 
-        objectMemberContext = new ObjectMemberContext(DeploymentCategory.PRODUCTION, mockAuthenticationSessionProvider,
+        objectMemberDependencies = new ObjectMemberDependencies(
                 mockSpecificationLoader, mockAdapterManager, mockQuerySubmitter, mockServicesProvider);
         
         employeeRepository = new EmployeeRepositoryImpl();
@@ -153,7 +153,8 @@ public class WrapperFactoryDefaultTest_wrappedObject {
         final Method employeeClearNameMethod = methodOf(Employee.class, "clearName");
         employeeNameMember = new OneToOneAssociationImpl(
                 facetedMethodForProperty(
-                        employeeSetNameMethod, employeeGetNameMethod, employeeModifyNameMethod, employeeClearNameMethod, employeeHideNameMethod, employeeDisableNameMethod, employeeValidateNameMethod), objectMemberContext);
+                        employeeSetNameMethod, employeeGetNameMethod, employeeModifyNameMethod, employeeClearNameMethod, employeeHideNameMethod, employeeDisableNameMethod, employeeValidateNameMethod),
+                objectMemberDependencies);
         
         context.checking(new Expectations() {
             {


[5/5] isis git commit: ISIS-1194 (and also ISIS-1044): removing unused code.

Posted by da...@apache.org.
ISIS-1194 (and also ISIS-1044): removing unused code.

- ActionFacet#invoke(...)
- Memento#encodedData, recreateFrom
- unused parameters (DeploymentCategory and AuthenticationSessionProvider) in ObjectFeature (members and parameters) class hierarchy
- removed DeploymentCategory and AuthenticationSessionProvider fields for SpecificationContext and ObjectMemberContext
- removed ObjectAssociationFilters static class, no longer used

Also:
- renamed SpecificationContext to ObjectSpecificationDependencies
- renamed ObjectMemberContext to ObjectMemberDependencies


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

Branch: refs/heads/master
Commit: 69450a333e250d07700464a4743a3c6d47285e71
Parents: dd162be
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Thu Sep 3 15:22:38 2015 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Thu Sep 3 15:22:38 2015 +0100

----------------------------------------------------------------------
 .../invocation/ActionInvocationFacet.java       |  10 --
 ...onInvocationFacetForDomainEventAbstract.java |  12 +-
 .../CollectionAccessorFacetViaAccessor.java     |   2 -
 ...creatableObjectFacetDeclarativeAbstract.java |   6 +-
 .../choices/PropertyChoicesFacet.java           |   5 +-
 ...ertyChoicesFacetDerivedFromChoicesFacet.java |   6 +-
 .../method/PropertyChoicesFacetViaMethod.java   |   4 -
 .../spec/ObjectSpecificationDependencies.java   |  63 ++++++++++
 .../metamodel/spec/SpecificationContext.java    |  71 -----------
 .../metamodel/spec/feature/ObjectAction.java    |  12 +-
 .../spec/feature/ObjectActionParameter.java     |  13 +--
 .../spec/feature/ObjectAssociation.java         |  12 +-
 .../spec/feature/ObjectAssociationFilters.java  | 108 -----------------
 .../spec/feature/ObjectMemberContext.java       |  75 ------------
 .../spec/feature/ObjectMemberDependencies.java  |  59 ++++++++++
 .../specloader/ObjectReflectorDefault.java      |  12 +-
 .../specimpl/ObjectActionContributee.java       |  15 +--
 .../specloader/specimpl/ObjectActionImpl.java   |  12 +-
 .../specimpl/ObjectActionParameterAbstract.java |  26 +----
 ...jectActionParameterParseableContributee.java |   2 -
 .../specimpl/ObjectAssociationAbstract.java     |  10 +-
 .../specimpl/ObjectMemberAbstract.java          |  52 +++------
 .../specimpl/ObjectSpecificationAbstract.java   |  86 +++++++-------
 .../OneToManyAssociationContributee.java        |  17 +--
 .../specimpl/OneToManyAssociationImpl.java      |  15 +--
 .../OneToOneActionParameterContributee.java     |   4 -
 .../OneToOneAssociationContributee.java         |   6 +-
 .../specimpl/OneToOneAssociationImpl.java       |  39 ++-----
 .../dflt/ObjectSpecificationDefault.java        |  16 +--
 .../ObjectSpecificationOnStandaloneList.java    |  10 +-
 .../feature/ObjectAssociationFiltersTests.java  |  64 ----------
 .../specimpl/ObjectAssociationAbstractTest.java |   9 +-
 ...ectAssociationAbstractTest_alwaysHidden.java |   9 +-
 .../isis/core/runtime/memento/Memento.java      |  22 ----
 .../ActionInvocationFacetWrapTransaction.java   |  18 ---
 .../runtime/system/ObjectActionImplTest.java    |   7 +-
 .../system/ObjectMemberAbstractTest.java        |   8 +-
 .../system/OneToManyAssociationImplTest.java    |   6 +-
 .../viewer/wicket/model/models/ActionModel.java |   2 +-
 .../viewer/wicket/model/models/ScalarModel.java |   4 +-
 .../collection/bulk/BulkActionsLinkFactory.java |   2 +-
 .../wicket/ui/fixtures/ActionFixtures.java      | 117 -------------------
 .../wicket/ui/fixtures/AdapterFixtures.java     |  44 -------
 .../viewer/wicket/ui/fixtures/SpecFixtures.java |  44 -------
 .../handlers/DomainObjectInvocationHandler.java |  14 ---
 ...WrapperFactoryDefaultTest_wrappedObject.java |   9 +-
 46 files changed, 289 insertions(+), 870 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/69450a33/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 1ce0b61..eb33902 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
@@ -24,10 +24,8 @@ import java.util.List;
 
 import org.apache.isis.applib.services.command.Command;
 import org.apache.isis.applib.services.command.CommandContext;
-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.facetapi.IdentifiedHolder;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
@@ -43,14 +41,6 @@ import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
  */
 public interface ActionInvocationFacet extends Facet {
 
-    @Deprecated
-    public ObjectAdapter invoke(
-            ObjectAdapter targetAdapter,
-            ObjectAdapter[] argumentAdapters,
-            final AuthenticationSession authenticationSession,
-            final DeploymentCategory deploymentCategory,
-            final InteractionInitiatedBy interactionInitiatedBy);
-
     public ObjectAdapter invoke(
             ObjectAction owningAction,
             ObjectAdapter targetAdapter,

http://git-wip-us.apache.org/repos/asf/isis/blob/69450a33/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 acf8074..fa8dc68 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
@@ -150,7 +150,7 @@ public abstract class ActionInvocationFacetForDomainEventAbstract
 
     /**
      * Introduced to disambiguate the meaning of <tt>null</tt> as a return value of
-     * {@link ActionInvocationFacet#invoke(ObjectAdapter, ObjectAdapter[], AuthenticationSession, DeploymentCategory, InteractionInitiatedBy)}
+     * {@link ActionInvocationFacet#invoke(ObjectAdapter, ObjectAdapter[], InteractionInitiatedBy)}
      */
     public static class InvocationResult {
 
@@ -188,16 +188,6 @@ public abstract class ActionInvocationFacetForDomainEventAbstract
 
     @Override
     public ObjectAdapter invoke(
-            final ObjectAdapter targetAdapter,
-            final ObjectAdapter[] argumentAdapters,
-            final AuthenticationSession authenticationSession,
-            final DeploymentCategory deploymentCategory, final InteractionInitiatedBy interactionInitiatedBy) {
-        return invoke(null, targetAdapter, argumentAdapters,
-                interactionInitiatedBy);
-    }
-
-    @Override
-    public ObjectAdapter invoke(
             final ObjectAction owningAction,
             final ObjectAdapter targetAdapter,
             final ObjectAdapter[] arguments,

http://git-wip-us.apache.org/repos/asf/isis/blob/69450a33/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 13c0610..6e2893f 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
@@ -80,8 +80,6 @@ public class CollectionAccessorFacetViaAccessor
 
         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/69450a33/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/recreatable/RecreatableObjectFacetDeclarativeAbstract.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/recreatable/RecreatableObjectFacetDeclarativeAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/recreatable/RecreatableObjectFacetDeclarativeAbstract.java
index 551f3f0..16bbe25 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/recreatable/RecreatableObjectFacetDeclarativeAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/recreatable/RecreatableObjectFacetDeclarativeAbstract.java
@@ -135,7 +135,11 @@ public abstract class RecreatableObjectFacetDeclarativeAbstract extends Recreata
                 }
 
                 // otherwise, include
-                final ObjectAdapter propertyValueAdapter = property.get(adapterManager.adapterFor(viewModelPojo),
+
+                // REVIEW: this look to be the same as viewModelAdapter, above?
+                final ObjectAdapter ownerAdapter = adapterManager.adapterFor(viewModelPojo);
+
+                final ObjectAdapter propertyValueAdapter = property.get(ownerAdapter,
                         InteractionInitiatedBy.FRAMEWORK);
                 if(propertyValueAdapter != null) {
                     final Object propertyValue = propertyValueAdapter.getObject();

http://git-wip-us.apache.org/repos/asf/isis/blob/69450a33/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/choices/PropertyChoicesFacet.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/choices/PropertyChoicesFacet.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/choices/PropertyChoicesFacet.java
index 809fd2e..a1bdb5c 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/choices/PropertyChoicesFacet.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/choices/PropertyChoicesFacet.java
@@ -19,10 +19,8 @@
 
 package org.apache.isis.core.metamodel.facets.properties.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.SpecificationLoader;
 
@@ -50,6 +48,5 @@ public interface PropertyChoicesFacet extends Facet {
     public Object[] getChoices(
             final ObjectAdapter adapter,
             final SpecificationLoader specificationLookup,
-            final AuthenticationSession authenticationSession,
-            final DeploymentCategory deploymentCategory, final InteractionInitiatedBy interactionInitiatedBy);
+            final InteractionInitiatedBy interactionInitiatedBy);
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/69450a33/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/choices/enums/PropertyChoicesFacetDerivedFromChoicesFacet.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/choices/enums/PropertyChoicesFacetDerivedFromChoicesFacet.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/choices/enums/PropertyChoicesFacetDerivedFromChoicesFacet.java
index 55d6d18..5ba5ac8 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/choices/enums/PropertyChoicesFacetDerivedFromChoicesFacet.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/choices/enums/PropertyChoicesFacetDerivedFromChoicesFacet.java
@@ -19,10 +19,8 @@
 
 package org.apache.isis.core.metamodel.facets.properties.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.FacetedMethod;
 import org.apache.isis.core.metamodel.facets.objectvalue.choices.ChoicesFacet;
@@ -39,9 +37,7 @@ public class PropertyChoicesFacetDerivedFromChoicesFacet extends PropertyChoices
     @Override
     public Object[] getChoices(
             final ObjectAdapter adapter,
-            final SpecificationLoader specificationLookupUNUSED,
-            final AuthenticationSession authenticationSession,
-            final DeploymentCategory deploymentCategory,
+            final SpecificationLoader specificationLoader,
             final InteractionInitiatedBy interactionInitiatedBy) {
 
         final FacetHolder facetHolder = getFacetHolder();

http://git-wip-us.apache.org/repos/asf/isis/blob/69450a33/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/choices/method/PropertyChoicesFacetViaMethod.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/choices/method/PropertyChoicesFacetViaMethod.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/choices/method/PropertyChoicesFacetViaMethod.java
index 411c7dd..fface56 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/choices/method/PropertyChoicesFacetViaMethod.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/choices/method/PropertyChoicesFacetViaMethod.java
@@ -23,12 +23,10 @@ import java.lang.reflect.Method;
 import java.util.Collections;
 import java.util.List;
 
-import org.apache.isis.core.commons.authentication.AuthenticationSession;
 import org.apache.isis.core.commons.lang.ObjectExtensions;
 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;
-import org.apache.isis.core.metamodel.deployment.DeploymentCategory;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facets.ImperativeFacet;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
@@ -68,8 +66,6 @@ public class PropertyChoicesFacetViaMethod extends PropertyChoicesFacetAbstract
     public Object[] getChoices(
             final ObjectAdapter owningAdapter,
             final SpecificationLoader specificationLookup,
-            final AuthenticationSession authenticationSession,
-            final DeploymentCategory deploymentCategory,
             final InteractionInitiatedBy interactionInitiatedBy) {
         final Object options = ObjectAdapter.InvokeUtils.invoke(method, owningAdapter);
         if (options == null) {

http://git-wip-us.apache.org/repos/asf/isis/blob/69450a33/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ObjectSpecificationDependencies.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ObjectSpecificationDependencies.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ObjectSpecificationDependencies.java
new file mode 100644
index 0000000..4240d69
--- /dev/null
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ObjectSpecificationDependencies.java
@@ -0,0 +1,63 @@
+/**
+ *  Licensed to the Apache Software Foundation (ASF) under one or more
+ *  contributor license agreements.  See the NOTICE file distributed with
+ *  this work for additional information regarding copyright ownership.
+ *  The ASF licenses this file to You under the Apache License, Version 2.0
+ *  (the "License"); you may not use this file except in compliance with
+ *  the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */
+package org.apache.isis.core.metamodel.spec;
+
+import org.apache.isis.core.metamodel.adapter.ServicesProvider;
+import org.apache.isis.core.metamodel.deployment.DeploymentCategory;
+import org.apache.isis.core.metamodel.specloader.facetprocessor.FacetProcessor;
+
+public class ObjectSpecificationDependencies {
+
+    private final DeploymentCategory deploymentCategory;
+    private final ServicesProvider servicesProvider;
+    private final ObjectInstantiator objectInstantiator;
+    private final SpecificationLoader specificationLoader;
+    private final FacetProcessor facetProcessor;
+
+    public ObjectSpecificationDependencies(
+            final DeploymentCategory deploymentCategory,
+            final ServicesProvider servicesProvider,
+            final ObjectInstantiator objectInstantiator,
+            final SpecificationLoader specificationLoader,
+            final FacetProcessor facetProcessor) {
+        this.deploymentCategory = deploymentCategory;
+        this.servicesProvider = servicesProvider;
+        this.objectInstantiator = objectInstantiator;
+        this.specificationLoader = specificationLoader;
+        this.facetProcessor = facetProcessor;
+    }
+
+    public DeploymentCategory getDeploymentCategory() {
+        return deploymentCategory;
+    }
+    
+    public ServicesProvider getServicesProvider() {
+        return servicesProvider;
+    }
+
+    public ObjectInstantiator getObjectInstantiator() {
+        return objectInstantiator;
+    }
+
+    public SpecificationLoader getSpecificationLoader() {
+        return specificationLoader;
+    }
+
+    public FacetProcessor getFacetProcessor() {
+        return facetProcessor;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/isis/blob/69450a33/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/SpecificationContext.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/SpecificationContext.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/SpecificationContext.java
deleted file mode 100644
index 30fd6f3..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/SpecificationContext.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/**
- *  Licensed to the Apache Software Foundation (ASF) under one or more
- *  contributor license agreements.  See the NOTICE file distributed with
- *  this work for additional information regarding copyright ownership.
- *  The ASF licenses this file to You under the Apache License, Version 2.0
- *  (the "License"); you may not use this file except in compliance with
- *  the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing, software
- *  distributed under the License is distributed on an "AS IS" BASIS,
- *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *  See the License for the specific language governing permissions and
- *  limitations under the License.
- */
-package org.apache.isis.core.metamodel.spec;
-
-import org.apache.isis.core.commons.authentication.AuthenticationSessionProvider;
-import org.apache.isis.core.metamodel.adapter.ServicesProvider;
-import org.apache.isis.core.metamodel.deployment.DeploymentCategory;
-import org.apache.isis.core.metamodel.specloader.facetprocessor.FacetProcessor;
-
-public class SpecificationContext {
-
-    private final DeploymentCategory deploymentCategory;
-    private final AuthenticationSessionProvider authenticationSessionProvider;
-    private final ServicesProvider servicesProvider;
-    private final ObjectInstantiator objectInstantiator;
-    private final SpecificationLoader specificationLoader;
-    private final FacetProcessor facetProcessor;
-
-    public SpecificationContext(
-            final DeploymentCategory deploymentCategory, 
-            final AuthenticationSessionProvider authenticationSessionProvider, 
-            final ServicesProvider servicesProvider, 
-            final ObjectInstantiator objectInstantiator, 
-            final SpecificationLoader specificationLoader,
-            final FacetProcessor facetProcessor) {
-        this.deploymentCategory = deploymentCategory;
-        this.authenticationSessionProvider = authenticationSessionProvider;
-        this.servicesProvider = servicesProvider;
-        this.objectInstantiator = objectInstantiator;
-        this.specificationLoader = specificationLoader;
-        this.facetProcessor = facetProcessor;
-    }
-
-    public DeploymentCategory getDeploymentCategory() {
-        return deploymentCategory;
-    }
-    
-    public AuthenticationSessionProvider getAuthenticationSessionProvider() {
-        return authenticationSessionProvider;
-    }
-
-    public ServicesProvider getServicesProvider() {
-        return servicesProvider;
-    }
-
-    public ObjectInstantiator getObjectInstantiator() {
-        return objectInstantiator;
-    }
-
-    public SpecificationLoader getSpecificationLoader() {
-        return specificationLoader;
-    }
-
-    public FacetProcessor getFacetProcessor() {
-        return facetProcessor;
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/isis/blob/69450a33/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectAction.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectAction.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectAction.java
index 7e0fbae..65f0115 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectAction.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectAction.java
@@ -32,12 +32,10 @@ import org.apache.isis.applib.annotation.Where;
 import org.apache.isis.applib.filter.Filter;
 import org.apache.isis.applib.value.Blob;
 import org.apache.isis.applib.value.Clob;
-import org.apache.isis.core.commons.authentication.AuthenticationSession;
 import org.apache.isis.core.commons.lang.StringFunctions;
 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.deployment.DeploymentCategory;
 import org.apache.isis.core.metamodel.facetapi.Facet;
 import org.apache.isis.core.metamodel.facetapi.FacetFilters;
 import org.apache.isis.core.metamodel.facets.actions.bulk.BulkFacet;
@@ -103,7 +101,6 @@ public interface ObjectAction extends ObjectMember {
     ObjectAdapter executeWithRuleChecking(
             final ObjectAdapter target,
             final ObjectAdapter[] parameters,
-            final AuthenticationSession authenticationSession,
             final InteractionInitiatedBy interactionInitiatedBy,
             final Where where) throws AuthorizationException;
 
@@ -185,9 +182,8 @@ public interface ObjectAction extends ObjectMember {
      * the user can choose from.
      */
     ObjectAdapter[][] getChoices(
-            ObjectAdapter target,
-            final AuthenticationSession authenticationSession,
-            final DeploymentCategory deploymentCategory, final InteractionInitiatedBy interactionInitiatedBy);
+            final ObjectAdapter target,
+            final InteractionInitiatedBy interactionInitiatedBy);
 
     // //////////////////////////////////////////////////////
     // Utils
@@ -270,7 +266,6 @@ public interface ObjectAction extends ObjectMember {
         private Predicates() {
         }
 
-        // UNUSED?
         public static Predicate<ObjectAction> dynamicallyVisible(
                 final ObjectAdapter target,
                 final InteractionInitiatedBy interactionInitiatedBy,
@@ -279,12 +274,10 @@ public interface ObjectAction extends ObjectMember {
                     .asPredicate(Filters.dynamicallyVisible(target, interactionInitiatedBy, where));
         }
 
-        // UNUSED?
         public static Predicate<ObjectAction> withId(final String actionId) {
             return org.apache.isis.applib.filter.Filters.asPredicate(Filters.withId(actionId));
         }
 
-        // UNUSED?
         public static Predicate<ObjectAction> withNoValidationRules() {
             return org.apache.isis.applib.filter.Filters.asPredicate(Filters.withNoValidationRules());
         }
@@ -302,7 +295,6 @@ public interface ObjectAction extends ObjectMember {
             return org.apache.isis.applib.filter.Filters.asPredicate(Filters.notBulkOnly());
         }
 
-        // UNUSED?
         public static Predicate<ObjectAction> memberOrderOf(ObjectAssociation association) {
             return org.apache.isis.applib.filter.Filters.asPredicate(Filters.memberOrderOf(association));
         }

http://git-wip-us.apache.org/repos/asf/isis/blob/69450a33/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectActionParameter.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectActionParameter.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectActionParameter.java
index 6503304..a99967d 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectActionParameter.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectActionParameter.java
@@ -23,10 +23,8 @@ import com.google.common.base.Function;
 
 import org.apache.isis.applib.filter.Filter;
 import org.apache.isis.applib.profiles.Localization;
-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.facets.all.named.NamedFacet;
 import org.apache.isis.core.metamodel.interactions.ActionArgumentContext;
 
@@ -40,9 +38,7 @@ public interface ObjectActionParameter extends ObjectFeature, CurrentHolder {
      * 
      * <p>
      * Either this or {@link #isCollection()} will be true.
-     *
-     * <p>
-     * Design note: modelled after {@link ObjectAssociation#isNotCollection()}
+     * </p>
      */
     boolean isObject();
 
@@ -142,9 +138,10 @@ public interface ObjectActionParameter extends ObjectFeature, CurrentHolder {
      * @return
      */
     String isValid(
-            ObjectAdapter adapter,
-            Object proposedValue,
-            final InteractionInitiatedBy interactionInitiatedBy, Localization localization);
+            final ObjectAdapter adapter,
+            final Object proposedValue,
+            final InteractionInitiatedBy interactionInitiatedBy,
+            final Localization localization);
  
 
     

http://git-wip-us.apache.org/repos/asf/isis/blob/69450a33/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectAssociation.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectAssociation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectAssociation.java
index 7e76770..8e32a1d 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectAssociation.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectAssociation.java
@@ -31,11 +31,9 @@ import com.google.common.collect.Maps;
 import org.apache.isis.applib.annotation.When;
 import org.apache.isis.applib.annotation.Where;
 import org.apache.isis.applib.filter.Filter;
-import org.apache.isis.core.commons.authentication.AuthenticationSession;
 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.deployment.DeploymentCategory;
 import org.apache.isis.core.metamodel.facets.all.hide.HiddenFacet;
 import org.apache.isis.core.metamodel.facets.members.order.MemberOrderFacet;
 import org.apache.isis.core.metamodel.facets.object.value.ValueFacet;
@@ -97,8 +95,7 @@ public interface ObjectAssociation extends ObjectMember, CurrentHolder {
     public ObjectAdapter[] getAutoComplete(
             final ObjectAdapter object,
             final String searchArg,
-            final AuthenticationSession authenticationSession,
-            final DeploymentCategory deploymentCategory, final InteractionInitiatedBy interactionInitiatedBy);
+            final InteractionInitiatedBy interactionInitiatedBy);
 
     int getAutoCompleteMinLength();
 
@@ -173,35 +170,30 @@ public interface ObjectAssociation extends ObjectMember, CurrentHolder {
         /**
          * Only fields that are for reference properties (ie 1:1 associations)
          */
-        // UNUSED ?
         public final static Predicate<ObjectAssociation> REFERENCE_PROPERTIES =
                 org.apache.isis.applib.filter.Filters.asPredicate(Filters.REFERENCE_PROPERTIES);
 
         /**
          * Only fields that are for properties (ie 1:1 associations)
          */
-        // UNUSED ?
         public final static Predicate<ObjectAssociation> WHERE_VISIBLE_IN_COLLECTION_TABLE =
                 org.apache.isis.applib.filter.Filters.asPredicate(Filters.WHERE_VISIBLE_IN_COLLECTION_TABLE);
 
         /**
          * Only fields that are for properties (ie 1:1 associations)
          */
-        // UNUSED ?
         public final static Predicate<ObjectAssociation> WHERE_VISIBLE_IN_STANDALONE_TABLE =
                 org.apache.isis.applib.filter.Filters.asPredicate(Filters.WHERE_VISIBLE_IN_STANDALONE_TABLE);
 
         /**
          * All fields (that is, excludes out nothing).
          */
-        // UNUSED ?
         public final static Predicate<ObjectAssociation> ALL =
                 org.apache.isis.applib.filter.Filters.asPredicate(Filters.ALL);
 
         /**
          * Only fields that are for collections (ie 1:m associations)
          */
-        // UNUSED ?
         public final static Predicate<ObjectAssociation> COLLECTIONS =
                 org.apache.isis.applib.filter.Filters.asPredicate(Filters.COLLECTIONS);
 
@@ -212,12 +204,10 @@ public interface ObjectAssociation extends ObjectMember, CurrentHolder {
         public static final Predicate<ObjectAssociation> VISIBLE_AT_LEAST_SOMETIMES =
                 org.apache.isis.applib.filter.Filters.asPredicate(Filters.VISIBLE_AT_LEAST_SOMETIMES);
 
-        // UNUSED ?
         public static final Predicate<ObjectAssociation> staticallyVisible(final Where context) {
             return org.apache.isis.applib.filter.Filters.asPredicate(Filters.staticallyVisible(context));
         }
 
-        // UNUSED ?
         public static final Predicate<ObjectAssociation> dynamicallyVisible(
                 final ObjectAdapter target,
                 final InteractionInitiatedBy interactionInitiatedBy,

http://git-wip-us.apache.org/repos/asf/isis/blob/69450a33/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectAssociationFilters.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectAssociationFilters.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectAssociationFilters.java
deleted file mode 100644
index a0e0b5d..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectAssociationFilters.java
+++ /dev/null
@@ -1,108 +0,0 @@
-/**
- *  Licensed to the Apache Software Foundation (ASF) under one or more
- *  contributor license agreements.  See the NOTICE file distributed with
- *  this work for additional information regarding copyright ownership.
- *  The ASF licenses this file to You under the Apache License, Version 2.0
- *  (the "License"); you may not use this file except in compliance with
- *  the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing, software
- *  distributed under the License is distributed on an "AS IS" BASIS,
- *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *  See the License for the specific language governing permissions and
- *  limitations under the License.
- */
-package org.apache.isis.core.metamodel.spec.feature;
-
-import org.apache.isis.applib.annotation.Where;
-import org.apache.isis.applib.filter.Filter;
-import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
-
-@Deprecated
-public class ObjectAssociationFilters {
-
-    /**
-     * @deprecated - use {@link ObjectAssociation.Filters#PROPERTIES}
-     */
-    @Deprecated
-    // UNUSED?
-    public final static Filter<ObjectAssociation> PROPERTIES = ObjectAssociation.Filters.PROPERTIES;
-
-    /**
-     * @deprecated - use {@link ObjectAssociation.Filters#REFERENCE_PROPERTIES}
-     */
-    @Deprecated
-    // UNUSED?
-    public final static Filter<ObjectAssociation> REFERENCE_PROPERTIES = ObjectAssociation.Filters.REFERENCE_PROPERTIES;
-
-    /**
-     * @deprecated - use {@link ObjectAssociation.Filters#WHERE_VISIBLE_IN_COLLECTION_TABLE}
-     */
-    @Deprecated
-    // UNUSED?
-    public final static Filter<ObjectAssociation> WHERE_VISIBLE_IN_COLLECTION_TABLE = ObjectAssociation.Filters.WHERE_VISIBLE_IN_COLLECTION_TABLE;
-
-    /**
-     * @deprecated - use {@link ObjectAssociation.Filters#WHERE_VISIBLE_IN_STANDALONE_TABLE}
-     */
-    @Deprecated
-    // UNUSED?
-    public final static Filter<ObjectAssociation> WHERE_VISIBLE_IN_STANDALONE_TABLE = ObjectAssociation.Filters.WHERE_VISIBLE_IN_STANDALONE_TABLE;
-
-    /**
-     * @deprecated
-     */
-    @Deprecated
-    // UNUSED ?
-    public final static Filter<ObjectAssociation> ALL = ObjectAssociation.Filters.ALL;
-
-    /**
-     * @deprecated
-     */
-    @Deprecated
-    // UNUSED ?
-    public final static Filter<ObjectAssociation> COLLECTIONS = ObjectAssociation.Filters.COLLECTIONS;
-
-    /**
-     * @deprecated
-     */
-    @Deprecated
-    // UNUSED ?
-    public static final Filter<ObjectAssociation> VISIBLE_AT_LEAST_SOMETIMES = ObjectAssociation.Filters.VISIBLE_AT_LEAST_SOMETIMES;
-
-    /**
-     * @deprecated
-     */
-    @Deprecated
-    // UNUSED ?
-    public static final Filter<ObjectAssociation> staticallyVisible(final Where context) {
-        return ObjectAssociation.Filters.staticallyVisible(context);
-    }
-    
-    /**
-     * @deprecated
-     */
-    // UNUSED ?
-    @Deprecated
-    public static Filter<ObjectAssociation> dynamicallyVisible(
-            final ObjectAdapter target,
-            final InteractionInitiatedBy interactionInitiatedBy,
-            final Where where) {
-        return ObjectAssociation.Filters.dynamicallyVisible(target, interactionInitiatedBy, where);
-    }
-
-    /**
-     * @deprecated
-     */
-    @Deprecated
-    public static Filter<ObjectAssociation> enabled(
-            final ObjectAdapter adapter,
-            final InteractionInitiatedBy interactionInitiatedBy,
-            final Where where) {
-        return ObjectAssociation.Filters.enabled(adapter, interactionInitiatedBy, where);
-    }
-    
-}

http://git-wip-us.apache.org/repos/asf/isis/blob/69450a33/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectMemberContext.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectMemberContext.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectMemberContext.java
deleted file mode 100644
index 076c6b6..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectMemberContext.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/**
- *  Licensed to the Apache Software Foundation (ASF) under one or more
- *  contributor license agreements.  See the NOTICE file distributed with
- *  this work for additional information regarding copyright ownership.
- *  The ASF licenses this file to You under the Apache License, Version 2.0
- *  (the "License"); you may not use this file except in compliance with
- *  the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing, software
- *  distributed under the License is distributed on an "AS IS" BASIS,
- *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *  See the License for the specific language governing permissions and
- *  limitations under the License.
- */
-package org.apache.isis.core.metamodel.spec.feature;
-
-import org.apache.isis.core.commons.authentication.AuthenticationSessionProvider;
-import org.apache.isis.core.metamodel.adapter.QuerySubmitter;
-import org.apache.isis.core.metamodel.adapter.ServicesProvider;
-import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager;
-import org.apache.isis.core.metamodel.deployment.DeploymentCategory;
-import org.apache.isis.core.metamodel.spec.SpecificationLoader;
-
-public class ObjectMemberContext {
-
-    private final DeploymentCategory deploymentCategory;
-    private final AuthenticationSessionProvider authenticationSessionProvider;
-    private final SpecificationLoader specificationLoader;
-    private final AdapterManager adapterManager;
-    private final QuerySubmitter querySubmitter;
-    private final ServicesProvider servicesProvider;
-
-    public ObjectMemberContext(
-            final DeploymentCategory deploymentCategory,
-            final AuthenticationSessionProvider authenticationSessionProvider,
-            final SpecificationLoader specificationLoader,
-            final AdapterManager adapterManager,
-            final QuerySubmitter querySubmitter,
-            final ServicesProvider servicesProvider) {
-
-        this.deploymentCategory = deploymentCategory;
-        this.authenticationSessionProvider = authenticationSessionProvider;
-        this.specificationLoader = specificationLoader;
-        this.adapterManager = adapterManager;
-        this.querySubmitter = querySubmitter;
-
-        this.servicesProvider = servicesProvider;
-    }
-
-    public DeploymentCategory getDeploymentCategory() {
-        return deploymentCategory;
-    }
-    
-    public AuthenticationSessionProvider getAuthenticationSessionProvider() {
-        return authenticationSessionProvider;
-    }
-
-    public SpecificationLoader getSpecificationLoader() {
-        return specificationLoader;
-    }
-
-    public AdapterManager getAdapterManager() {
-        return adapterManager;
-    }
-
-    public ServicesProvider getServicesProvider() {
-        return servicesProvider;
-    }
-    
-    public QuerySubmitter getQuerySubmitter() {
-        return querySubmitter;
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/isis/blob/69450a33/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectMemberDependencies.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectMemberDependencies.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectMemberDependencies.java
new file mode 100644
index 0000000..a323828
--- /dev/null
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/feature/ObjectMemberDependencies.java
@@ -0,0 +1,59 @@
+/**
+ *  Licensed to the Apache Software Foundation (ASF) under one or more
+ *  contributor license agreements.  See the NOTICE file distributed with
+ *  this work for additional information regarding copyright ownership.
+ *  The ASF licenses this file to You under the Apache License, Version 2.0
+ *  (the "License"); you may not use this file except in compliance with
+ *  the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */
+package org.apache.isis.core.metamodel.spec.feature;
+
+import org.apache.isis.core.metamodel.adapter.QuerySubmitter;
+import org.apache.isis.core.metamodel.adapter.ServicesProvider;
+import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager;
+import org.apache.isis.core.metamodel.spec.SpecificationLoader;
+
+public class ObjectMemberDependencies {
+
+    private final SpecificationLoader specificationLoader;
+    private final AdapterManager adapterManager;
+    private final QuerySubmitter querySubmitter;
+    private final ServicesProvider servicesProvider;
+
+    public ObjectMemberDependencies(
+            final SpecificationLoader specificationLoader,
+            final AdapterManager adapterManager,
+            final QuerySubmitter querySubmitter,
+            final ServicesProvider servicesProvider) {
+
+        this.specificationLoader = specificationLoader;
+        this.adapterManager = adapterManager;
+        this.querySubmitter = querySubmitter;
+
+        this.servicesProvider = servicesProvider;
+    }
+
+    public SpecificationLoader getSpecificationLoader() {
+        return specificationLoader;
+    }
+
+    public AdapterManager getAdapterManager() {
+        return adapterManager;
+    }
+
+    public ServicesProvider getServicesProvider() {
+        return servicesProvider;
+    }
+    
+    public QuerySubmitter getQuerySubmitter() {
+        return querySubmitter;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/isis/blob/69450a33/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/ObjectReflectorDefault.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/ObjectReflectorDefault.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/ObjectReflectorDefault.java
index 77158b3..198a2f7 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/ObjectReflectorDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/ObjectReflectorDefault.java
@@ -52,7 +52,7 @@ import org.apache.isis.core.metamodel.runtimecontext.ServicesInjectorAware;
 import org.apache.isis.core.metamodel.runtimecontext.noruntime.RuntimeContextNoRuntime;
 import org.apache.isis.core.metamodel.services.ServicesInjectorSpi;
 import org.apache.isis.core.metamodel.spec.*;
-import org.apache.isis.core.metamodel.spec.feature.ObjectMemberContext;
+import org.apache.isis.core.metamodel.spec.feature.ObjectMemberDependencies;
 import org.apache.isis.core.metamodel.specloader.classsubstitutor.ClassSubstitutor;
 import org.apache.isis.core.metamodel.specloader.facetprocessor.FacetProcessor;
 import org.apache.isis.core.metamodel.specloader.specimpl.CreateObjectContext;
@@ -439,20 +439,22 @@ public final class ObjectReflectorDefault implements SpecificationLoaderSpi, App
         final ObjectInstantiator objectInstantiator = getRuntimeContext().getObjectInstantiator();
 
         // create contexts as inputs ...
-        final SpecificationContext specContext = new SpecificationContext(getDeploymentCategory(), authenticationSessionProvider, servicesProvider, objectInstantiator, specificationLookup, facetProcessor);
+        final ObjectSpecificationDependencies specContext = new ObjectSpecificationDependencies(getDeploymentCategory(), servicesProvider, objectInstantiator, specificationLookup, facetProcessor);
 
         final AdapterManager adapterMap = getRuntimeContext().getAdapterManager();
-        final ObjectMemberContext objectMemberContext = new ObjectMemberContext(getDeploymentCategory(), authenticationSessionProvider, specificationLookup, adapterMap, getRuntimeContext().getQuerySubmitter(), servicesProvider);
+        final ObjectMemberDependencies objectMemberDependencies = new ObjectMemberDependencies(
+                specificationLookup, adapterMap, getRuntimeContext().getQuerySubmitter(), servicesProvider);
 
         // ... and create the specs
         if (FreeStandingList.class.isAssignableFrom(cls)) {
-            return new ObjectSpecificationOnStandaloneList(specContext, objectMemberContext);
+            return new ObjectSpecificationOnStandaloneList(specContext, objectMemberDependencies);
         } else {
             final SpecificationLoaderSpi specificationLoader = this;
             final ServicesInjector dependencyInjector = getRuntimeContext().getServicesInjector();
             final CreateObjectContext createObjectContext = new CreateObjectContext(adapterMap, dependencyInjector);
             final FacetedMethodsBuilderContext facetedMethodsBuilderContext = new FacetedMethodsBuilderContext(specificationLoader, facetProcessor, layoutMetadataReaders);
-            return new ObjectSpecificationDefault(cls, facetedMethodsBuilderContext, specContext, objectMemberContext, createObjectContext);
+            return new ObjectSpecificationDefault(cls, facetedMethodsBuilderContext, specContext,
+                    objectMemberDependencies, createObjectContext);
         }
     }
 

http://git-wip-us.apache.org/repos/asf/isis/blob/69450a33/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionContributee.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionContributee.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionContributee.java
index fc2c9cc..895886f 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionContributee.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionContributee.java
@@ -30,12 +30,10 @@ import org.apache.isis.applib.services.bookmark.Bookmark;
 import org.apache.isis.applib.services.command.Command;
 import org.apache.isis.applib.services.command.Command.Executor;
 import org.apache.isis.applib.services.command.CommandContext;
-import org.apache.isis.core.commons.authentication.AuthenticationSession;
 import org.apache.isis.core.commons.lang.ObjectExtensions;
 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.deployment.DeploymentCategory;
 import org.apache.isis.core.metamodel.facetapi.Facet;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facetapi.FacetHolderImpl;
@@ -49,7 +47,7 @@ import org.apache.isis.core.metamodel.interactions.VisibilityContext;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
 import org.apache.isis.core.metamodel.spec.feature.ObjectActionParameter;
-import org.apache.isis.core.metamodel.spec.feature.ObjectMemberContext;
+import org.apache.isis.core.metamodel.spec.feature.ObjectMemberDependencies;
 
 public class ObjectActionContributee extends ObjectActionImpl implements ContributeeMember {
 
@@ -80,8 +78,8 @@ public class ObjectActionContributee extends ObjectActionImpl implements Contrib
             final ObjectActionImpl serviceAction,
             final int contributeeParam,
             final ObjectSpecification contributeeType,
-            final ObjectMemberContext objectMemberContext) {
-        super(serviceAction.getFacetedMethod(), objectMemberContext);
+            final ObjectMemberDependencies objectMemberDependencies) {
+        super(serviceAction.getFacetedMethod(), objectMemberDependencies);
         
         this.serviceAdapter = serviceAdapter;
         this.serviceAction = serviceAction;
@@ -189,10 +187,9 @@ public class ObjectActionContributee extends ObjectActionImpl implements Contrib
     @Override
     public ObjectAdapter[][] getChoices(
             final ObjectAdapter target,
-            final AuthenticationSession authenticationSession,
-            final DeploymentCategory deploymentCategory, final InteractionInitiatedBy interactionInitiatedBy) {
-        final ObjectAdapter[][] serviceChoices = serviceAction.getChoices(serviceAdapter, authenticationSession,
-                deploymentCategory, interactionInitiatedBy);
+            final InteractionInitiatedBy interactionInitiatedBy) {
+        final ObjectAdapter[][] serviceChoices = serviceAction.getChoices(serviceAdapter,
+                interactionInitiatedBy);
         return removeElementFromArray(serviceChoices, contributeeParam, new ObjectAdapter[][]{});
     }
         

http://git-wip-us.apache.org/repos/asf/isis/blob/69450a33/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 4d40f3d..098584f 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
@@ -31,14 +31,12 @@ import org.apache.isis.applib.RecoverableException;
 import org.apache.isis.applib.annotation.ActionSemantics;
 import org.apache.isis.applib.annotation.Where;
 import org.apache.isis.applib.filter.Filter;
-import org.apache.isis.core.commons.authentication.AuthenticationSession;
 import org.apache.isis.core.commons.debug.DebugString;
 import org.apache.isis.core.commons.exceptions.UnknownTypeException;
 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.InteractionResultSet;
-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.facetapi.FeatureType;
@@ -67,7 +65,7 @@ import org.apache.isis.core.metamodel.spec.Instance;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
 import org.apache.isis.core.metamodel.spec.feature.ObjectActionParameter;
-import org.apache.isis.core.metamodel.spec.feature.ObjectMemberContext;
+import org.apache.isis.core.metamodel.spec.feature.ObjectMemberDependencies;
 
 public class ObjectActionImpl extends ObjectMemberAbstract implements ObjectAction {
     private final static Logger LOG = LoggerFactory.getLogger(ObjectActionImpl.class);
@@ -91,8 +89,8 @@ public class ObjectActionImpl extends ObjectMemberAbstract implements ObjectActi
     // Constructors
     // //////////////////////////////////////////////////////////////////
 
-    public ObjectActionImpl(final FacetedMethod facetedMethod, final ObjectMemberContext objectMemberContext) {
-        super(facetedMethod, FeatureType.ACTION, objectMemberContext);
+    public ObjectActionImpl(final FacetedMethod facetedMethod, final ObjectMemberDependencies objectMemberDependencies) {
+        super(facetedMethod, FeatureType.ACTION, objectMemberDependencies);
     }
 
     // //////////////////////////////////////////////////////////////////
@@ -351,7 +349,6 @@ public class ObjectActionImpl extends ObjectMemberAbstract implements ObjectActi
     public ObjectAdapter executeWithRuleChecking(
             final ObjectAdapter target,
             final ObjectAdapter[] arguments,
-            final AuthenticationSession authenticationSession,
             final InteractionInitiatedBy interactionInitiatedBy,
             final Where where) {
 
@@ -457,11 +454,8 @@ public class ObjectActionImpl extends ObjectMemberAbstract implements ObjectActi
     @Override
     public ObjectAdapter[][] getChoices(
             final ObjectAdapter target,
-            final AuthenticationSession authenticationSessionUNUSED,
-            final DeploymentCategory deploymentCategory,
             final InteractionInitiatedBy interactionInitiatedBy) {
 
-        final AuthenticationSession session = getAuthenticationSession();
         final int parameterCount = getParameterCount();
         Object[][] parameterChoicesPojos;
 

http://git-wip-us.apache.org/repos/asf/isis/blob/69450a33/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 d5688ba..38ed345 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
@@ -28,8 +28,6 @@ import org.apache.isis.applib.filter.Filter;
 import org.apache.isis.applib.profiles.Localization;
 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.commons.lang.ClassExtensions;
 import org.apache.isis.core.commons.lang.ListExtensions;
 import org.apache.isis.core.commons.lang.StringExtensions;
@@ -40,14 +38,15 @@ import org.apache.isis.core.metamodel.consent.Allow;
 import org.apache.isis.core.metamodel.consent.Consent;
 import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
 import org.apache.isis.core.metamodel.consent.InteractionResultSet;
-import org.apache.isis.core.metamodel.deployment.DeploymentCategory;
 import org.apache.isis.core.metamodel.facetapi.Facet;
 import org.apache.isis.core.metamodel.facetapi.MultiTypedFacet;
 import org.apache.isis.core.metamodel.facets.TypedHolder;
 import org.apache.isis.core.metamodel.facets.all.describedas.DescribedAsFacet;
-import org.apache.isis.core.metamodel.facets.objectvalue.mandatory.MandatoryFacet;
 import org.apache.isis.core.metamodel.facets.all.named.NamedFacet;
+import org.apache.isis.core.metamodel.facets.object.choices.ChoicesFacetFromBoundedAbstract;
+import org.apache.isis.core.metamodel.facets.objectvalue.mandatory.MandatoryFacet;
 import org.apache.isis.core.metamodel.facets.param.autocomplete.ActionParameterAutoCompleteFacet;
+import org.apache.isis.core.metamodel.facets.param.autocomplete.MinLengthUtil;
 import org.apache.isis.core.metamodel.facets.param.choices.ActionParameterChoicesFacet;
 import org.apache.isis.core.metamodel.facets.param.defaults.ActionParameterDefaultsFacet;
 import org.apache.isis.core.metamodel.interactions.ActionArgumentContext;
@@ -58,8 +57,6 @@ import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 import org.apache.isis.core.metamodel.spec.SpecificationLoader;
 import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
 import org.apache.isis.core.metamodel.spec.feature.ObjectActionParameter;
-import org.apache.isis.core.metamodel.facets.object.choices.ChoicesFacetFromBoundedAbstract;
-import org.apache.isis.core.metamodel.facets.param.autocomplete.MinLengthUtil;
 
 public abstract class ObjectActionParameterAbstract implements ObjectActionParameter {
 
@@ -263,9 +260,6 @@ public abstract class ObjectActionParameterAbstract implements ObjectActionParam
             final String searchArg,
             final InteractionInitiatedBy interactionInitiatedBy) {
 
-        final AuthenticationSession authenticationSession = getAuthenticationSession();
-        final DeploymentCategory deploymentCategory = getDeploymentCategory();
-
         final List<ObjectAdapter> adapters = Lists.newArrayList();
         final ActionParameterAutoCompleteFacet facet = getFacet(ActionParameterAutoCompleteFacet.class);
 
@@ -320,8 +314,6 @@ public abstract class ObjectActionParameterAbstract implements ObjectActionParam
             final ObjectAdapter target,
             final List<ObjectAdapter> args,
             final InteractionInitiatedBy interactionInitiatedBy) {
-        final AuthenticationSession session = getAuthenticationSession();
-        final DeploymentCategory deploymentCategory = getDeploymentCategory();
         final List<ObjectAdapter> adapters = Lists.newArrayList();
         final ActionParameterChoicesFacet facet = getFacet(ActionParameterChoicesFacet.class);
 
@@ -516,18 +508,10 @@ public abstract class ObjectActionParameterAbstract implements ObjectActionParam
     // Dependencies (from parent)
     // /////////////////////////////////////////////////////////////
 
-    private DeploymentCategory getDeploymentCategory() {
-        return parentAction.getDeploymentCategory();
-    }
-
     protected SpecificationLoader getSpecificationLoader() {
         return parentAction.getSpecificationLoader();
     }
 
-    protected AuthenticationSessionProvider getAuthenticationSessionProvider() {
-        return parentAction.getAuthenticationSessionProvider();
-    }
-
     protected AdapterManager getAdapterMap() {
         return parentAction.getAdapterManager();
     }
@@ -536,8 +520,4 @@ public abstract class ObjectActionParameterAbstract implements ObjectActionParam
         return parentAction.getQuerySubmitter();
     }
 
-    protected AuthenticationSession getAuthenticationSession() {
-        return getAuthenticationSessionProvider().getAuthenticationSession();
-    }
-
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/69450a33/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionParameterParseableContributee.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionParameterParseableContributee.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionParameterParseableContributee.java
index 5e282f2..d70de92 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionParameterParseableContributee.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectActionParameterParseableContributee.java
@@ -64,8 +64,6 @@ public class ObjectActionParameterParseableContributee extends ObjectActionParam
             final ObjectAdapter adapter,
             final String searchArg,
             final InteractionInitiatedBy interactionInitiatedBy) {
-        final AuthenticationSession authenticationSession = getAuthenticationSession();
-        final DeploymentCategory deploymentCategory = serviceAction.getDeploymentCategory();
         return serviceActionParameter.getAutoComplete(serviceAdapter, searchArg,
                 interactionInitiatedBy);
     }

http://git-wip-us.apache.org/repos/asf/isis/blob/69450a33/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectAssociationAbstract.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectAssociationAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectAssociationAbstract.java
index 03a81e9..fd738bf 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectAssociationAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectAssociationAbstract.java
@@ -29,15 +29,19 @@ import org.apache.isis.core.metamodel.facets.propcoll.notpersisted.NotPersistedF
 import org.apache.isis.core.metamodel.facets.properties.choices.PropertyChoicesFacet;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 import org.apache.isis.core.metamodel.spec.feature.ObjectAssociation;
-import org.apache.isis.core.metamodel.spec.feature.ObjectMemberContext;
+import org.apache.isis.core.metamodel.spec.feature.ObjectMemberDependencies;
 
 // TODO need to pull up the common methods. like getName(), from subclasses
 public abstract class ObjectAssociationAbstract extends ObjectMemberAbstract implements ObjectAssociation {
 
     private final ObjectSpecification specification;
 
-    public ObjectAssociationAbstract(final FacetedMethod facetedMethod, final FeatureType featureType, final ObjectSpecification specification, final ObjectMemberContext parameterObject) {
-        super(facetedMethod, featureType, parameterObject);
+    public ObjectAssociationAbstract(
+            final FacetedMethod facetedMethod,
+            final FeatureType featureType,
+            final ObjectSpecification specification,
+            final ObjectMemberDependencies dependencies) {
+        super(facetedMethod, featureType, dependencies);
         if (specification == null) {
             throw new IllegalArgumentException("field type for '" + getId() + "' must exist");
         }

http://git-wip-us.apache.org/repos/asf/isis/blob/69450a33/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectMemberAbstract.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectMemberAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectMemberAbstract.java
index d7d53d3..3edcbbf 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectMemberAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectMemberAbstract.java
@@ -20,12 +20,11 @@
 package org.apache.isis.core.metamodel.specloader.specimpl;
 
 import java.util.List;
+
 import org.apache.isis.applib.Identifier;
 import org.apache.isis.applib.annotation.When;
 import org.apache.isis.applib.annotation.Where;
 import org.apache.isis.applib.filter.Filter;
-import org.apache.isis.core.commons.authentication.AuthenticationSession;
-import org.apache.isis.core.commons.authentication.AuthenticationSessionProvider;
 import org.apache.isis.core.commons.lang.StringExtensions;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.core.metamodel.adapter.QuerySubmitter;
@@ -34,7 +33,6 @@ import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager;
 import org.apache.isis.core.metamodel.consent.Consent;
 import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
 import org.apache.isis.core.metamodel.consent.InteractionResult;
-import org.apache.isis.core.metamodel.deployment.DeploymentCategory;
 import org.apache.isis.core.metamodel.facetapi.Facet;
 import org.apache.isis.core.metamodel.facetapi.FeatureType;
 import org.apache.isis.core.metamodel.facetapi.MultiTypedFacet;
@@ -43,11 +41,17 @@ import org.apache.isis.core.metamodel.facets.all.describedas.DescribedAsFacet;
 import org.apache.isis.core.metamodel.facets.all.help.HelpFacet;
 import org.apache.isis.core.metamodel.facets.all.hide.HiddenFacet;
 import org.apache.isis.core.metamodel.facets.all.named.NamedFacet;
-import org.apache.isis.core.metamodel.interactions.*;
+import org.apache.isis.core.metamodel.interactions.AccessContext;
+import org.apache.isis.core.metamodel.interactions.DisablingInteractionAdvisor;
+import org.apache.isis.core.metamodel.interactions.HidingInteractionAdvisor;
+import org.apache.isis.core.metamodel.interactions.InteractionContext;
+import org.apache.isis.core.metamodel.interactions.InteractionUtils;
+import org.apache.isis.core.metamodel.interactions.UsabilityContext;
+import org.apache.isis.core.metamodel.interactions.VisibilityContext;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 import org.apache.isis.core.metamodel.spec.SpecificationLoader;
 import org.apache.isis.core.metamodel.spec.feature.ObjectMember;
-import org.apache.isis.core.metamodel.spec.feature.ObjectMemberContext;
+import org.apache.isis.core.metamodel.spec.feature.ObjectMemberDependencies;
 import org.apache.isis.core.metamodel.specloader.collectiontyperegistry.CollectionTypeRegistry;
 
 public abstract class ObjectMemberAbstract implements ObjectMember {
@@ -62,14 +66,15 @@ public abstract class ObjectMemberAbstract implements ObjectMember {
     private final String id;
     private final FacetedMethod facetedMethod;
     private final FeatureType featureType;
-    private final AuthenticationSessionProvider authenticationSessionProvider;
     private final SpecificationLoader specificationLookup;
     private final AdapterManager adapterManager;
     private final ServicesProvider servicesProvider;
     private final QuerySubmitter querySubmitter;
-    private final DeploymentCategory deploymentCategory;
 
-    protected ObjectMemberAbstract(final FacetedMethod facetedMethod, final FeatureType featureType, final ObjectMemberContext objectMemberContext) {
+    protected ObjectMemberAbstract(
+            final FacetedMethod facetedMethod,
+            final FeatureType featureType,
+            final ObjectMemberDependencies objectMemberDependencies) {
         final String id = facetedMethod.getIdentifier().getMemberName();
         if (id == null) {
             throw new IllegalArgumentException("Name must always be set");
@@ -79,22 +84,13 @@ public abstract class ObjectMemberAbstract implements ObjectMember {
         this.id = id;
         this.defaultName = StringExtensions.asNaturalName2(this.id);
 
-        this.deploymentCategory = objectMemberContext.getDeploymentCategory();
-        this.authenticationSessionProvider = objectMemberContext.getAuthenticationSessionProvider();
-        this.specificationLookup = objectMemberContext.getSpecificationLoader();
-        this.adapterManager = objectMemberContext.getAdapterManager();
-        this.servicesProvider = objectMemberContext.getServicesProvider();
-        this.querySubmitter = objectMemberContext.getQuerySubmitter();
+        this.specificationLookup = objectMemberDependencies.getSpecificationLoader();
+        this.adapterManager = objectMemberDependencies.getAdapterManager();
+        this.servicesProvider = objectMemberDependencies.getServicesProvider();
+        this.querySubmitter = objectMemberDependencies.getQuerySubmitter();
     }
 
-    // /////////////////////////////////////////////////////////////
-    // from context
-    // /////////////////////////////////////////////////////////////
 
-    public DeploymentCategory getDeploymentCategory() {
-        return deploymentCategory;
-    }
-    
     // /////////////////////////////////////////////////////////////
     // Identifiers
     // /////////////////////////////////////////////////////////////
@@ -320,17 +316,6 @@ public abstract class ObjectMemberAbstract implements ObjectMember {
         return featureType.isProperty();
     }
 
-    // //////////////////////////////////////////////////////////////////
-    // Convenience
-    // //////////////////////////////////////////////////////////////////
-
-    /**
-     * The current {@link AuthenticationSession} (can change over time so do not
-     * cache).
-     */
-    protected AuthenticationSession getAuthenticationSession() {
-        return authenticationSessionProvider.getAuthenticationSession();
-    }
 
     // //////////////////////////////////////////////////////////////////
     // toString
@@ -345,9 +330,6 @@ public abstract class ObjectMemberAbstract implements ObjectMember {
     // Dependencies
     // //////////////////////////////////////////////////////////////////
 
-    public AuthenticationSessionProvider getAuthenticationSessionProvider() {
-        return authenticationSessionProvider;
-    }
 
     public SpecificationLoader getSpecificationLoader() {
         return specificationLookup;

http://git-wip-us.apache.org/repos/asf/isis/blob/69450a33/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 ad7c6d5..c6aa040 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
@@ -19,14 +19,21 @@
 
 package org.apache.isis.core.metamodel.specloader.specimpl;
 
-import java.util.*;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+import java.util.Map;
+import java.util.Properties;
+
 import com.google.common.base.Function;
 import com.google.common.collect.Collections2;
 import com.google.common.collect.Iterables;
 import com.google.common.collect.Lists;
 import com.google.common.collect.Maps;
+
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+
 import org.apache.isis.applib.Identifier;
 import org.apache.isis.applib.annotation.NotPersistable;
 import org.apache.isis.applib.annotation.When;
@@ -35,7 +42,6 @@ import org.apache.isis.applib.filter.Filter;
 import org.apache.isis.applib.filter.Filters;
 import org.apache.isis.applib.profiles.Localization;
 import org.apache.isis.core.commons.authentication.AuthenticationSession;
-import org.apache.isis.core.commons.authentication.AuthenticationSessionProvider;
 import org.apache.isis.core.commons.exceptions.UnknownTypeException;
 import org.apache.isis.core.commons.lang.ClassExtensions;
 import org.apache.isis.core.commons.util.ToString;
@@ -49,13 +55,14 @@ import org.apache.isis.core.metamodel.facetapi.Facet;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facetapi.FacetHolderImpl;
 import org.apache.isis.core.metamodel.facetapi.FeatureType;
-import org.apache.isis.core.metamodel.facets.collections.modify.CollectionFacet;
+import org.apache.isis.core.metamodel.facets.actcoll.typeof.TypeOfFacet;
+import org.apache.isis.core.metamodel.facets.actions.notcontributed.NotContributedFacet;
 import org.apache.isis.core.metamodel.facets.all.describedas.DescribedAsFacet;
 import org.apache.isis.core.metamodel.facets.all.help.HelpFacet;
 import org.apache.isis.core.metamodel.facets.all.hide.HiddenFacet;
-import org.apache.isis.core.metamodel.facets.members.cssclass.CssClassFacet;
 import org.apache.isis.core.metamodel.facets.all.named.NamedFacet;
-import org.apache.isis.core.metamodel.facets.object.parented.ParentedFacet;
+import org.apache.isis.core.metamodel.facets.collections.modify.CollectionFacet;
+import org.apache.isis.core.metamodel.facets.members.cssclass.CssClassFacet;
 import org.apache.isis.core.metamodel.facets.object.dirty.ClearDirtyObjectFacet;
 import org.apache.isis.core.metamodel.facets.object.dirty.IsDirtyObjectFacet;
 import org.apache.isis.core.metamodel.facets.object.dirty.MarkDirtyObjectFacet;
@@ -65,20 +72,33 @@ import org.apache.isis.core.metamodel.facets.object.immutable.ImmutableFacet;
 import org.apache.isis.core.metamodel.facets.object.membergroups.MemberGroupLayoutFacet;
 import org.apache.isis.core.metamodel.facets.object.notpersistable.NotPersistableFacet;
 import org.apache.isis.core.metamodel.facets.object.objectspecid.ObjectSpecIdFacet;
+import org.apache.isis.core.metamodel.facets.object.parented.ParentedFacet;
 import org.apache.isis.core.metamodel.facets.object.parseable.ParseableFacet;
 import org.apache.isis.core.metamodel.facets.object.plural.PluralFacet;
 import org.apache.isis.core.metamodel.facets.object.title.TitleFacet;
 import org.apache.isis.core.metamodel.facets.object.value.ValueFacet;
-import org.apache.isis.core.metamodel.facets.actcoll.typeof.TypeOfFacet;
 import org.apache.isis.core.metamodel.interactions.InteractionContext;
 import org.apache.isis.core.metamodel.interactions.InteractionUtils;
 import org.apache.isis.core.metamodel.interactions.ObjectTitleContext;
 import org.apache.isis.core.metamodel.interactions.ObjectValidityContext;
 import org.apache.isis.core.metamodel.layout.DeweyOrderSet;
-import org.apache.isis.core.metamodel.spec.*;
-import org.apache.isis.core.metamodel.spec.feature.*;
+import org.apache.isis.core.metamodel.spec.ActionType;
+import org.apache.isis.core.metamodel.spec.Instance;
+import org.apache.isis.core.metamodel.spec.ObjectInstantiator;
+import org.apache.isis.core.metamodel.spec.ObjectSpecId;
+import org.apache.isis.core.metamodel.spec.ObjectSpecification;
+import org.apache.isis.core.metamodel.spec.ObjectSpecificationDependencies;
+import org.apache.isis.core.metamodel.spec.ObjectSpecificationException;
+import org.apache.isis.core.metamodel.spec.Persistability;
+import org.apache.isis.core.metamodel.spec.SpecificationLoader;
+import org.apache.isis.core.metamodel.spec.feature.Contributed;
+import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
+import org.apache.isis.core.metamodel.spec.feature.ObjectActionParameter;
+import org.apache.isis.core.metamodel.spec.feature.ObjectAssociation;
+import org.apache.isis.core.metamodel.spec.feature.ObjectMemberDependencies;
+import org.apache.isis.core.metamodel.spec.feature.OneToManyAssociation;
+import org.apache.isis.core.metamodel.spec.feature.OneToOneAssociation;
 import org.apache.isis.core.metamodel.specloader.facetprocessor.FacetProcessor;
-import org.apache.isis.core.metamodel.facets.actions.notcontributed.NotContributedFacet;
 
 public abstract class ObjectSpecificationAbstract extends FacetHolderImpl implements ObjectSpecification {
 
@@ -104,7 +124,6 @@ public abstract class ObjectSpecificationAbstract extends FacetHolderImpl implem
     }
 
     private final DeploymentCategory deploymentCategory;
-    private final AuthenticationSessionProvider authenticationSessionProvider;
     private final ServicesProvider servicesProvider;
     private final ObjectInstantiator objectInstantiator;
     private final SpecificationLoader specificationLoader;
@@ -116,7 +135,7 @@ public abstract class ObjectSpecificationAbstract extends FacetHolderImpl implem
      */
     protected Properties metadataProperties;
 
-    protected final ObjectMemberContext objectMemberContext;
+    protected final ObjectMemberDependencies objectMemberDependencies;
 
 
     private final List<ObjectAssociation> associations = Lists.newArrayList();
@@ -168,8 +187,8 @@ public abstract class ObjectSpecificationAbstract extends FacetHolderImpl implem
     public ObjectSpecificationAbstract(
             final Class<?> introspectedClass, 
             final String shortName,
-            final SpecificationContext specificationContext, 
-            final ObjectMemberContext objectMemberContext) {
+            final ObjectSpecificationDependencies objectSpecificationDependencies,
+            final ObjectMemberDependencies objectMemberDependencies) {
 
         this.correspondingClass = introspectedClass;
         this.fullName = introspectedClass.getName();
@@ -178,14 +197,13 @@ public abstract class ObjectSpecificationAbstract extends FacetHolderImpl implem
         this.isAbstract = ClassExtensions.isAbstract(introspectedClass);
         this.identifier = Identifier.classIdentifier(introspectedClass);
 
-        this.deploymentCategory = specificationContext.getDeploymentCategory();
-        this.authenticationSessionProvider = specificationContext.getAuthenticationSessionProvider();
-        this.servicesProvider = specificationContext.getServicesProvider();
-        this.objectInstantiator = specificationContext.getObjectInstantiator();
-        this.specificationLoader = specificationContext.getSpecificationLoader();
-        this.facetProcessor = specificationContext.getFacetProcessor();
+        this.deploymentCategory = objectSpecificationDependencies.getDeploymentCategory();
+        this.servicesProvider = objectSpecificationDependencies.getServicesProvider();
+        this.objectInstantiator = objectSpecificationDependencies.getObjectInstantiator();
+        this.specificationLoader = objectSpecificationDependencies.getSpecificationLoader();
+        this.facetProcessor = objectSpecificationDependencies.getFacetProcessor();
         
-        this.objectMemberContext = objectMemberContext;
+        this.objectMemberDependencies = objectMemberDependencies;
     }
 
     
@@ -218,7 +236,7 @@ public abstract class ObjectSpecificationAbstract extends FacetHolderImpl implem
     
     /**
      * As provided explicitly within the
-     * {@link #ObjectSpecificationAbstract(Class, String, org.apache.isis.core.metamodel.spec.SpecificationContext, org.apache.isis.core.metamodel.spec.feature.ObjectMemberContext)}
+     * {@link #ObjectSpecificationAbstract(Class, String, ObjectSpecificationDependencies, ObjectMemberDependencies)}
      * constructor}.
      * 
      * <p>
@@ -994,8 +1012,10 @@ public abstract class ObjectSpecificationAbstract extends FacetHolderImpl implem
             public ObjectAssociation apply(ObjectActionImpl input) {
                 final ObjectSpecification returnType = input.getReturnType();
                 final ObjectAssociationAbstract association = returnType.isNotCollection() 
-                        ? new OneToOneAssociationContributee(serviceAdapter, input, contributeeType, objectMemberContext) 
-                        : new OneToManyAssociationContributee(serviceAdapter, input, contributeeType, objectMemberContext);
+                        ? new OneToOneAssociationContributee(serviceAdapter, input, contributeeType,
+                        objectMemberDependencies)
+                        : new OneToManyAssociationContributee(serviceAdapter, input, contributeeType,
+                        objectMemberDependencies);
                 facetProcessor.processMemberOrder(metadataProperties, association);
                 return association;
             }
@@ -1053,7 +1073,8 @@ public abstract class ObjectSpecificationAbstract extends FacetHolderImpl implem
             final int contributeeParam = contributeeParameterMatchOf(contributedAction);
             if (contributeeParam != -1) {
                 ObjectActionContributee contributeeAction = 
-                        new ObjectActionContributee(serviceAdapter, contributedAction, contributeeParam, this, objectMemberContext);
+                        new ObjectActionContributee(serviceAdapter, contributedAction, contributeeParam, this,
+                                objectMemberDependencies);
                 facetProcessor.processMemberOrder(metadataProperties, contributeeAction);
                 contributeeActions.add(contributeeAction);
             }
@@ -1185,26 +1206,9 @@ public abstract class ObjectSpecificationAbstract extends FacetHolderImpl implem
     }
 
     // //////////////////////////////////////////////////////////////////////
-    // Convenience
-    // //////////////////////////////////////////////////////////////////////
-
-    /**
-     * convenience method to return the current {@link AuthenticationSession}
-     * from the {@link #getAuthenticationSessionProvider() injected}
-     * {@link AuthenticationSessionProvider}.
-     */
-    protected final AuthenticationSession getAuthenticationSession() {
-        return getAuthenticationSessionProvider().getAuthenticationSession();
-    }
-
-    // //////////////////////////////////////////////////////////////////////
     // Dependencies (injected in constructor)
     // //////////////////////////////////////////////////////////////////////
 
-    protected AuthenticationSessionProvider getAuthenticationSessionProvider() {
-        return authenticationSessionProvider;
-    }
-
     public ServicesProvider getServicesProvider() {
         return servicesProvider;
     }

http://git-wip-us.apache.org/repos/asf/isis/blob/69450a33/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToManyAssociationContributee.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToManyAssociationContributee.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToManyAssociationContributee.java
index 9d15ced..6e21a37 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToManyAssociationContributee.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToManyAssociationContributee.java
@@ -17,11 +17,11 @@
 package org.apache.isis.core.metamodel.specloader.specimpl;
 
 import java.util.List;
+
 import org.apache.isis.applib.Identifier;
 import org.apache.isis.applib.annotation.When;
 import org.apache.isis.applib.annotation.Where;
 import org.apache.isis.applib.filter.Filter;
-import org.apache.isis.core.commons.authentication.AuthenticationSession;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.core.metamodel.consent.Consent;
 import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
@@ -42,7 +42,7 @@ import org.apache.isis.core.metamodel.interactions.VisibilityContext;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 import org.apache.isis.core.metamodel.spec.SpecificationLoader;
 import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
-import org.apache.isis.core.metamodel.spec.feature.ObjectMemberContext;
+import org.apache.isis.core.metamodel.spec.feature.ObjectMemberDependencies;
 
 public class OneToManyAssociationContributee extends OneToManyAssociationImpl implements ContributeeMember {
 
@@ -58,9 +58,9 @@ public class OneToManyAssociationContributee extends OneToManyAssociationImpl im
     
     private final Identifier identifier;
 
-    private static ObjectSpecification typeOfSpec(final ObjectActionImpl objectAction, ObjectMemberContext objectMemberContext) {
+    private static ObjectSpecification typeOfSpec(final ObjectActionImpl objectAction, ObjectMemberDependencies objectMemberDependencies) {
         final TypeOfFacet actionTypeOfFacet = objectAction.getFacet(TypeOfFacet.class);
-        SpecificationLoader specificationLookup = objectMemberContext.getSpecificationLoader();
+        SpecificationLoader specificationLookup = objectMemberDependencies.getSpecificationLoader();
         // TODO: a bit of a hack; ought really to set up a fallback TypeOfFacetDefault which ensures that there is always
         // a TypeOfFacet for any contributee associations created from contributed actions.
         Class<? extends Object> cls = actionTypeOfFacet != null? actionTypeOfFacet.value(): Object.class;
@@ -71,8 +71,9 @@ public class OneToManyAssociationContributee extends OneToManyAssociationImpl im
             final ObjectAdapter serviceAdapter, 
             final ObjectActionImpl serviceAction,
             final ObjectSpecification contributeeType,
-            final ObjectMemberContext objectMemberContext) {
-        super(serviceAction.getFacetedMethod(), typeOfSpec(serviceAction, objectMemberContext), objectMemberContext);
+            final ObjectMemberDependencies objectMemberDependencies) {
+        super(serviceAction.getFacetedMethod(), typeOfSpec(serviceAction, objectMemberDependencies),
+                objectMemberDependencies);
         this.serviceAdapter = serviceAdapter;
         this.serviceAction = serviceAction;
 
@@ -81,7 +82,8 @@ public class OneToManyAssociationContributee extends OneToManyAssociationImpl im
         //
         final NotPersistedFacet notPersistedFacet = new NotPersistedFacetAbstract(this) {};
         final DisabledFacet disabledFacet = disabledFacet();
-        final TypeOfFacet typeOfFacet = new TypeOfFacetAbstract(getSpecification().getCorrespondingClass(), this, objectMemberContext.getSpecificationLoader()) {};
+        final TypeOfFacet typeOfFacet = new TypeOfFacetAbstract(getSpecification().getCorrespondingClass(), this, objectMemberDependencies
+                .getSpecificationLoader()) {};
 
         FacetUtil.addFacet(notPersistedFacet);
         FacetUtil.addFacet(disabledFacet);
@@ -142,7 +144,6 @@ public class OneToManyAssociationContributee extends OneToManyAssociationImpl im
             final ObjectAdapter contributee,
             final InteractionInitiatedBy interactionInitiatedBy,
             Where where) {
-        final AuthenticationSession session = getAuthenticationSession();
         final VisibilityContext<?> ic = ((ObjectMemberAbstract)serviceAction).createVisibleInteractionContext(
                 serviceAdapter, interactionInitiatedBy, where);
         ic.putContributee(0, contributee); // by definition, the contributee will be the first arg of the service action