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 2016/05/20 13:34:12 UTC

[37/51] [abbrv] isis git commit: ISIS-1409: internal components of RuntimeContext subclasses are now internal domain services; RuntimeContext hierarchy collapsed into a single class.

ISIS-1409: internal components of RuntimeContext subclasses are now internal domain services; RuntimeContext hierarchy collapsed into a single class.


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

Branch: refs/heads/master
Commit: a2a9f51917c5c61d9fd677f66e2a06b77ea8b092
Parents: 6e3495f
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Thu May 19 23:52:08 2016 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Fri May 20 00:00:29 2016 +0100

----------------------------------------------------------------------
 .../integtestsupport/IsisSystemForTest.java     |    8 +-
 .../metamodel/adapter/mgr/AdapterManager.java   |   10 +-
 .../adapter/mgr/AdapterManagerBase.java         |    3 +
 .../action/ActionAnnotationFacetFactory.java    |   16 +-
 ...onInvocationFacetForDomainEventAbstract.java |   10 +-
 ...FacetForDomainEventFromActionAnnotation.java |    6 +-
 ...ainEventFromActionInteractionAnnotation.java |    6 +-
 ...nvocationFacetForDomainEventFromDefault.java |    6 +-
 ...cetForPostsActionInvokedEventAnnotation.java |    6 +-
 .../ChoicesFacetFromBoundedAbstract.java        |   12 +-
 .../ChoicesFacetFromBoundedMarkerInterface.java |    6 +-
 ...sFacetFromBoundedMarkerInterfaceFactory.java |   13 +-
 .../DomainObjectAnnotationFacetFactory.java     |   14 +-
 .../ChoicesFacetForDomainObjectAnnotation.java  |   10 +-
 .../ChoicesFacetFromBoundedAnnotation.java      |   10 +-
 .../ConfigurationServiceInternal.java           |    4 +-
 .../runtimecontext/LocalizationDefault.java     |   38 -
 .../runtimecontext/LocalizationProvider.java    |   30 -
 .../LocalizationProviderAbstract.java           |   29 -
 .../LocalizationProviderAware.java              |   26 -
 .../runtimecontext/MessageBrokerService.java    |   48 -
 .../MessageBrokerServiceAbstract.java           |   29 -
 .../MessageBrokerServiceAware.java              |   26 -
 .../PersistenceSessionService.java              |  140 --
 .../PersistenceSessionServiceAbstract.java      |   35 -
 .../PersistenceSessionServiceAware.java         |   29 -
 .../runtimecontext/RuntimeContext.java          |   91 +-
 .../runtimecontext/RuntimeContextAbstract.java  |   67 -
 .../noruntime/RuntimeContextNoRuntime.java      |  241 --
 .../bookmarks/BookmarkServiceDefault.java       |   16 +-
 .../container/DomainObjectContainerDefault.java |   14 +-
 .../services/factory/FactoryServiceDefault.java |   12 +-
 .../services/l10n/LocalizationDefault.java      |   38 +
 .../l10n/LocalizationProviderAware.java         |   26 +
 .../l10n/LocalizationProviderInternal.java      |   33 +
 .../LocalizationProviderInternalAbstract.java   |   29 +
 .../l10n/LocalizationProviderInternalNoop.java  |   16 +
 .../services/message/MessageServiceDefault.java |   18 +-
 .../msgbroker/MessageBrokerServiceAware.java    |   26 +
 .../msgbroker/MessageBrokerServiceInternal.java |   54 +
 .../MessageBrokerServiceInternalAbstract.java   |   29 +
 .../MessageBrokerServiceInternalNoop.java       |   24 +
 .../PersistenceSessionServiceAware.java         |   29 +
 .../PersistenceSessionServiceInternal.java      |  160 ++
 ...rsistenceSessionServiceInternalAbstract.java |   35 +
 .../PersistenceSessionServiceInternalNoop.java  |  132 +
 .../repository/RepositoryServiceDefault.java    |   18 +-
 .../services/title/TitleServiceDefault.java     |   12 +-
 .../TransactionStateProviderInternal.java       |   32 +
 ...ransactionStateProviderInternalAbstract.java |   31 +
 .../TransactionStateProviderInternalNoop.java   |   13 +
 .../xactn/TransactionServiceDefault.java        |   16 +-
 .../spec/feature/ObjectMemberDependencies.java  |   12 +-
 .../specloader/SpecificationLoader.java         |   48 +-
 .../facetprocessor/FacetProcessor.java          |    5 -
 .../specimpl/ObjectActionParameterAbstract.java |    4 +-
 .../specimpl/ObjectMemberAbstract.java          |   10 +-
 .../transactions/TransactionStateProvider.java  |   27 -
 .../TransactionStateProviderAbstract.java       |   30 -
 .../TransactionStateProviderAware.java          |    3 +-
 .../TitleAnnotationFacetFactoryTest.java        |   12 +-
 .../TitleFacetViaTitleAnnotationTest.java       |    4 +-
 .../SpecificationLoaderTestAbstract.java        |   38 +-
 .../testspec/ObjectSpecificationStub.java       |    6 +-
 .../ObjectFixtureFilePersistor.java             |    6 +-
 .../ObjectFixtureService.java                   |    4 +-
 .../fixtures/FixturesInstallerDelegate.java     |   18 +-
 .../PersistenceMechanismInstaller.java          |    4 +-
 .../isis/core/runtime/memento/Memento.java      |    4 +-
 .../core/runtime/memento/StandaloneData.java    |    4 +-
 .../persistence/FixturesInstalledFlag.java      |    4 +-
 .../persistence/adapter/PojoAdapter.java        |    8 +-
 .../container/DomainObjectContainerResolve.java |   10 +-
 .../internal/RuntimeContextFromSession.java     |  263 --
 .../background/BackgroundCommandExecution.java  |    4 +-
 .../HomePageProviderServiceDefault.java         |    4 +-
 .../LocalizationProviderInternalDefault.java    |   37 +
 .../MessageBrokerServiceInternalDefault.java    |   53 +
 ...ersistenceSessionServiceInternalDefault.java |  157 ++
 .../PublishingServiceInternalDefault.java       |    4 +-
 ...TransactionStateProviderInternalDefault.java |   55 +
 .../xmlsnapshot/XmlSnapshotServiceDefault.java  |    4 +-
 .../AbstractIsisSessionTemplate.java            |   10 +-
 .../runtime/snapshot/XmlSnapshotBuilder.java    |    4 +-
 .../isis/core/runtime/system/IsisSystem.java    |   11 +-
 .../runtime/system/context/IsisContext.java     |   12 +-
 .../system/persistence/ObjectFactory.java       |    4 +-
 .../system/persistence/PersistenceSession.java  | 2341 ------------------
 .../persistence/PersistenceSessionFactory.java  |    6 +-
 .../persistence/PersistenceSessionInternal.java | 2341 ++++++++++++++++++
 .../runtime/system/session/IsisSession.java     |   12 +-
 .../system/session/IsisSessionFactory.java      |    8 +-
 .../IsisConfigurationForJdoIntegTests.java      |    8 +-
 .../persistence/IsisLifecycleListener.java      |    4 +-
 .../service/support/IsisJdoSupportImpl.java     |    4 +-
 .../adapterfactory/pojo/PojoAdapterTest.java    |    4 +-
 .../transaction/PojoAdapterBuilder.java         |    6 +-
 .../ObjectActionLayoutXmlDefaultTest.java       |   10 +-
 .../system/OneToManyAssociationDefaultTest.java |   10 +-
 .../rendering/RendererContext.java              |    4 +-
 .../domainobjects/JsonValueEncoder.java         |    4 +-
 .../restfulobjects/server/ResourceContext.java  |    8 +-
 .../conneg/RestfulObjectsJaxbWriterForXml.java  |    4 +-
 .../server/resources/DomainResourceHelper.java  |    4 +-
 .../server/resources/ResourceAbstract.java      |    4 +-
 .../server/resources/SwaggerSpecResource.java   |    4 +-
 .../restfulobjects/server/util/OidUtils.java    |    4 +-
 .../wicket/ConverterForObjectAdapter.java       |    4 +-
 .../ConverterForObjectAdapterMemento.java       |    4 +-
 .../integration/wicket/LocalizerForIsis.java    |    4 +-
 .../viewer/services/DeepLinkServiceWicket.java  |    4 +-
 .../model/isis/PersistenceSessionProvider.java  |    4 +-
 .../model/mementos/ObjectAdapterMemento.java    |    4 +-
 .../model/models/EntityCollectionModel.java     |    4 +-
 .../wicket/model/models/ModelAbstract.java      |    4 +-
 .../entityactions/EntityActionLinkFactory.java  |    4 +-
 .../FormComponentPanelAbstract.java             |    4 +-
 .../linkandlabel/ActionLinkFactoryAbstract.java |    4 +-
 .../viewer/wicket/ui/pages/PageAbstract.java    |    4 +-
 .../viewer/wicket/ui/panels/FormAbstract.java   |    4 +-
 .../viewer/wicket/ui/panels/PanelAbstract.java  |    4 +-
 .../core/wrapper/WrapperFactoryDefault.java     |   14 +-
 .../handlers/DomainObjectInvocationHandler.java |   12 +-
 .../wrapper/handlers/ProxyContextHandler.java   |    8 +-
 ...WrapperFactoryDefaultTest_wrappedObject.java |   16 +-
 ...toryDefaultTest_wrappedObject_transient.java |    6 +-
 126 files changed, 3773 insertions(+), 3794 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/a2a9f519/core/integtestsupport/src/main/java/org/apache/isis/core/integtestsupport/IsisSystemForTest.java
----------------------------------------------------------------------
diff --git a/core/integtestsupport/src/main/java/org/apache/isis/core/integtestsupport/IsisSystemForTest.java b/core/integtestsupport/src/main/java/org/apache/isis/core/integtestsupport/IsisSystemForTest.java
index 4c81c29..b9e3f77 100644
--- a/core/integtestsupport/src/main/java/org/apache/isis/core/integtestsupport/IsisSystemForTest.java
+++ b/core/integtestsupport/src/main/java/org/apache/isis/core/integtestsupport/IsisSystemForTest.java
@@ -60,7 +60,7 @@ import org.apache.isis.core.runtime.services.ServicesInstallerFromConfigurationA
 import org.apache.isis.core.runtime.system.DeploymentType;
 import org.apache.isis.core.runtime.system.IsisSystem;
 import org.apache.isis.core.runtime.system.context.IsisContext;
-import org.apache.isis.core.runtime.system.persistence.PersistenceSession;
+import org.apache.isis.core.runtime.system.persistence.PersistenceSessionInternal;
 import org.apache.isis.core.runtime.system.transaction.IsisTransaction;
 import org.apache.isis.core.runtime.system.transaction.IsisTransaction.State;
 import org.apache.isis.core.runtime.system.transaction.IsisTransactionManager;
@@ -606,7 +606,7 @@ public class IsisSystemForTest implements org.junit.rules.TestRule, DomainServic
 
     public ObjectAdapter reload(RootOid oid) {
         ensureSessionInProgress();
-        final PersistenceSession persistenceSession = getPersistenceSession();
+        final PersistenceSessionInternal persistenceSession = getPersistenceSession();
         return persistenceSession.loadObjectInTransaction(oid);
     }
 
@@ -856,7 +856,7 @@ public class IsisSystemForTest implements org.junit.rules.TestRule, DomainServic
         return getPersistenceSession().getTransactionManager();
     }
     
-    public PersistenceSession getPersistor() {
+    public PersistenceSessionInternal getPersistor() {
     	return getPersistenceSession();
     }
 
@@ -864,7 +864,7 @@ public class IsisSystemForTest implements org.junit.rules.TestRule, DomainServic
         return getPersistor();
     }
 
-    protected PersistenceSession getPersistenceSession() {
+    protected PersistenceSessionInternal getPersistenceSession() {
         return IsisContext.getPersistenceSession();
     }
 

http://git-wip-us.apache.org/repos/asf/isis/blob/a2a9f519/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/mgr/AdapterManager.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/mgr/AdapterManager.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/mgr/AdapterManager.java
index ec2aaeb..334eb08 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/mgr/AdapterManager.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/mgr/AdapterManager.java
@@ -22,6 +22,7 @@ package org.apache.isis.core.metamodel.adapter.mgr;
 import java.util.concurrent.Callable;
 
 import org.apache.isis.applib.annotation.ActionSemantics;
+import org.apache.isis.applib.annotation.Programmatic;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.core.metamodel.adapter.oid.Oid;
 import org.apache.isis.core.metamodel.spec.feature.OneToManyAssociation;
@@ -36,14 +37,16 @@ public interface AdapterManager extends AdapterManagerBase {
      *            - must not be <tt>null</tt>
      * @return adapter, or <tt>null</tt> if doesn't exist.
      */
+    @Programmatic
     ObjectAdapter getAdapterFor(Oid oid);
 
 
 
-    public enum ConcurrencyChecking {
+    enum ConcurrencyChecking {
         NO_CHECK,
         CHECK;
 
+        @Programmatic
         public boolean isChecking() {
             return this == CHECK;
         }
@@ -112,7 +115,8 @@ public interface AdapterManager extends AdapterManagerBase {
     /**
      * Looks up or creates a collection adapter.
      */
-    public ObjectAdapter adapterFor(
+    @Programmatic
+    ObjectAdapter adapterFor(
             final Object pojo,
             final ObjectAdapter parentAdapter,
             OneToManyAssociation collection);
@@ -121,11 +125,13 @@ public interface AdapterManager extends AdapterManagerBase {
     /**
      * Enable RecreatableObjectFacet to 'temporarily' map an existing pojo to an oid.
      */
+    @Programmatic
     ObjectAdapter mapRecreatedPojo(Oid oid, Object recreatedPojo);
 
     /**
      * Enable RecreatableObjectFacet to remove a 'temporarily' mapped an adapter for a pojo.
      */
+    @Programmatic
     void removeAdapter(ObjectAdapter adapter);
 
 

http://git-wip-us.apache.org/repos/asf/isis/blob/a2a9f519/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/mgr/AdapterManagerBase.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/mgr/AdapterManagerBase.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/mgr/AdapterManagerBase.java
index 9dc900a..4a53e39 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/mgr/AdapterManagerBase.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/mgr/AdapterManagerBase.java
@@ -19,6 +19,7 @@
 
 package org.apache.isis.core.metamodel.adapter.mgr;
 
+import org.apache.isis.applib.annotation.Programmatic;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 
 public interface AdapterManagerBase {
@@ -34,6 +35,7 @@ public interface AdapterManagerBase {
      *            - must not be <tt>null</tt>
      * @return adapter, or <tt>null</tt> if doesn't exist.
      */
+    @Programmatic
     ObjectAdapter getAdapterFor(Object pojo);
 
 
@@ -41,6 +43,7 @@ public interface AdapterManagerBase {
     /**
      * Looks up or creates a standalone (value) or root adapter.
      */
+    @Programmatic
     ObjectAdapter adapterFor(Object domainObject);
 
 

http://git-wip-us.apache.org/repos/asf/isis/blob/a2a9f519/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 0b37bb5..74d074a 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
@@ -93,7 +93,7 @@ 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.services.transtate.TransactionStateProviderInternal;
 import org.apache.isis.core.metamodel.transactions.TransactionStateProviderAware;
 import org.apache.isis.core.metamodel.util.EventUtil;
 
@@ -115,7 +115,7 @@ public class ActionAnnotationFacetFactory extends FacetFactoryAbstract implement
 
 
     private AdapterManager adapterManager;
-    private TransactionStateProvider transactionStateProvider;
+    private TransactionStateProviderInternal transactionStateProviderInternal;
 
     private final CollectionTypeRegistry collectionTypeRegistry = new CollectionTypeRegistry();
 
@@ -216,7 +216,7 @@ public class ActionAnnotationFacetFactory extends FacetFactoryAbstract implement
                                 actionInvokedEventType, actionMethod, typeSpec, returnSpec, holder,
                                 getDeploymentCategory(), getConfiguration(), servicesInjector,
                                 getAuthenticationSessionProvider(), getAdapterManager(),
-                                transactionStateProvider
+                                transactionStateProviderInternal
                         ), processMethodContext);
             } else
             // deprecated (but more recently)
@@ -226,7 +226,7 @@ public class ActionAnnotationFacetFactory extends FacetFactoryAbstract implement
                                 actionDomainEventType, actionMethod, typeSpec, returnSpec, holder,
                                 getDeploymentCategory(), getConfiguration(), servicesInjector,
                                 getAuthenticationSessionProvider(), getAdapterManager(),
-                                transactionStateProvider
+                                transactionStateProviderInternal
                         ), processMethodContext);
             } else
             // current
@@ -235,7 +235,7 @@ public class ActionAnnotationFacetFactory extends FacetFactoryAbstract implement
                         actionDomainEventType, actionMethod, typeSpec, returnSpec, holder,
                         getDeploymentCategory(), getConfiguration(), servicesInjector,
                         getAuthenticationSessionProvider(),
-                        getAdapterManager(), transactionStateProvider
+                        getAdapterManager(), transactionStateProviderInternal
                 );
             } else
             // default
@@ -243,7 +243,7 @@ public class ActionAnnotationFacetFactory extends FacetFactoryAbstract implement
                 actionInvocationFacet = new ActionInvocationFacetForDomainEventFromDefault(
                         actionDomainEventType, actionMethod, typeSpec, returnSpec, holder,
                         getDeploymentCategory(), getConfiguration(), servicesInjector, getAuthenticationSessionProvider(),
-                        getAdapterManager(), transactionStateProvider
+                        getAdapterManager(), transactionStateProviderInternal
                 );
             }
             FacetUtil.addFacet(actionInvocationFacet);
@@ -572,7 +572,7 @@ public class ActionAnnotationFacetFactory extends FacetFactoryAbstract implement
     }
 
     @Override
-    public void setTransactionStateProvider(final TransactionStateProvider transactionStateProvider) {
-        this.transactionStateProvider = transactionStateProvider;
+    public void setTransactionStateProvider(final TransactionStateProviderInternal transactionStateProviderInternal) {
+        this.transactionStateProviderInternal = transactionStateProviderInternal;
     }
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/a2a9f519/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 985a23a..8a4198c 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
@@ -78,7 +78,7 @@ 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;
+import org.apache.isis.core.metamodel.services.transtate.TransactionStateProviderInternal;
 import org.apache.isis.schema.ixn.v1.ActionInvocationDto;
 
 public abstract class ActionInvocationFacetForDomainEventAbstract
@@ -97,7 +97,7 @@ public abstract class ActionInvocationFacetForDomainEventAbstract
 
     private final ServicesInjector servicesInjector;
     private final IsisConfiguration configuration;
-    private final TransactionStateProvider transactionStateProvider;
+    private final TransactionStateProviderInternal transactionStateProviderInternal;
     private final Class<? extends ActionDomainEvent<?>> eventType;
     private final DomainEventHelper domainEventHelper;
 
@@ -112,7 +112,7 @@ public abstract class ActionInvocationFacetForDomainEventAbstract
             final ServicesInjector servicesInjector,
             final AuthenticationSessionProvider authenticationSessionProvider,
             final AdapterManager adapterManager,
-            final TransactionStateProvider transactionStateProvider) {
+            final TransactionStateProviderInternal transactionStateProviderInternal) {
         super(holder);
         this.eventType = eventType;
         this.method = method;
@@ -123,7 +123,7 @@ public abstract class ActionInvocationFacetForDomainEventAbstract
         this.adapterManager = adapterManager;
         this.servicesInjector = servicesInjector;
         this.configuration = configuration;
-        this.transactionStateProvider = transactionStateProvider;
+        this.transactionStateProviderInternal = transactionStateProviderInternal;
         this.domainEventHelper = new DomainEventHelper(this.servicesInjector);
 
     }
@@ -593,6 +593,6 @@ public abstract class ActionInvocationFacetForDomainEventAbstract
     }
 
     public TransactionState getTransactionState() {
-        return transactionStateProvider.getTransactionState();
+        return transactionStateProviderInternal.getTransactionState();
     }
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/a2a9f519/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 9aa7b6c..edf4e0b 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
@@ -29,7 +29,7 @@ import org.apache.isis.core.metamodel.deployment.DeploymentCategory;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.services.ServicesInjector;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
-import org.apache.isis.core.metamodel.transactions.TransactionStateProvider;
+import org.apache.isis.core.metamodel.services.transtate.TransactionStateProviderInternal;
 
 public class ActionInvocationFacetForDomainEventFromActionAnnotation
         extends ActionInvocationFacetForDomainEventAbstract {
@@ -45,8 +45,8 @@ public class ActionInvocationFacetForDomainEventFromActionAnnotation
             final ServicesInjector servicesInjector,
             final AuthenticationSessionProvider authenticationSessionProvider,
             final AdapterManager adapterManager,
-            final TransactionStateProvider transactionStateProvider) {
+            final TransactionStateProviderInternal transactionStateProviderInternal) {
         super(eventType, method, onType, returnType, holder, deploymentCategory, isisConfiguration, servicesInjector, authenticationSessionProvider, adapterManager,
-                transactionStateProvider);
+                transactionStateProviderInternal);
     }
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/a2a9f519/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 8b6ea18..4ec448d 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
@@ -29,7 +29,7 @@ import org.apache.isis.core.metamodel.deployment.DeploymentCategory;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.services.ServicesInjector;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
-import org.apache.isis.core.metamodel.transactions.TransactionStateProvider;
+import org.apache.isis.core.metamodel.services.transtate.TransactionStateProviderInternal;
 
 /**
  * @deprecated
@@ -49,8 +49,8 @@ public class ActionInvocationFacetForDomainEventFromActionInteractionAnnotation
             final ServicesInjector servicesInjector,
             final AuthenticationSessionProvider authenticationSessionProvider,
             final AdapterManager adapterManager,
-            final TransactionStateProvider transactionStateProvider) {
+            final TransactionStateProviderInternal transactionStateProviderInternal) {
         super(eventType, method, onType, returnType, holder, deploymentCategory, isisConfiguration, servicesInjector, authenticationSessionProvider, adapterManager,
-                transactionStateProvider);
+                transactionStateProviderInternal);
     }
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/a2a9f519/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 04c3262..bccb50d 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
@@ -29,7 +29,7 @@ import org.apache.isis.core.metamodel.deployment.DeploymentCategory;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.services.ServicesInjector;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
-import org.apache.isis.core.metamodel.transactions.TransactionStateProvider;
+import org.apache.isis.core.metamodel.services.transtate.TransactionStateProviderInternal;
 
 public class ActionInvocationFacetForDomainEventFromDefault
         extends ActionInvocationFacetForDomainEventAbstract {
@@ -45,9 +45,9 @@ public class ActionInvocationFacetForDomainEventFromDefault
             final ServicesInjector servicesInjector,
             final AuthenticationSessionProvider authenticationSessionProvider,
             final AdapterManager adapterManager,
-            final TransactionStateProvider transactionStateProvider) {
+            final TransactionStateProviderInternal transactionStateProviderInternal) {
         super(eventType, method, onType, returnType, holder,
                 deploymentCategory, isisConfiguration, servicesInjector, authenticationSessionProvider, adapterManager,
-                transactionStateProvider);
+                transactionStateProviderInternal);
     }
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/a2a9f519/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 5f04a10..59beec5 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
@@ -29,7 +29,7 @@ import org.apache.isis.core.metamodel.deployment.DeploymentCategory;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.services.ServicesInjector;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
-import org.apache.isis.core.metamodel.transactions.TransactionStateProvider;
+import org.apache.isis.core.metamodel.services.transtate.TransactionStateProviderInternal;
 
 /**
  * @deprecated
@@ -49,10 +49,10 @@ public class ActionInvocationFacetForPostsActionInvokedEventAnnotation
             final ServicesInjector servicesInjector,
             final AuthenticationSessionProvider authenticationSessionProvider,
             final AdapterManager adapterManager,
-            final TransactionStateProvider transactionStateProvider) {
+            final TransactionStateProviderInternal transactionStateProviderInternal) {
         super(eventType, method, onType, returnType, holder,
                 deploymentCategory, isisConfiguration, servicesInjector, authenticationSessionProvider, adapterManager,
-                transactionStateProvider);
+                transactionStateProviderInternal);
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/isis/blob/a2a9f519/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/choices/ChoicesFacetFromBoundedAbstract.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/choices/ChoicesFacetFromBoundedAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/choices/ChoicesFacetFromBoundedAbstract.java
index dc9c04e..99a605b 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/choices/ChoicesFacetFromBoundedAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/choices/ChoicesFacetFromBoundedAbstract.java
@@ -42,7 +42,7 @@ import org.apache.isis.core.metamodel.interactions.ObjectValidityContext;
 import org.apache.isis.core.metamodel.interactions.UsabilityContext;
 import org.apache.isis.core.metamodel.interactions.ValidatingInteractionAdvisor;
 import org.apache.isis.core.metamodel.interactions.ValidityContext;
-import org.apache.isis.core.metamodel.runtimecontext.PersistenceSessionService;
+import org.apache.isis.core.metamodel.services.persistsession.PersistenceSessionServiceInternal;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 
 /**
@@ -67,21 +67,21 @@ public abstract class ChoicesFacetFromBoundedAbstract
 
     private final DeploymentCategory deploymentCategory;
     private final AuthenticationSessionProvider authenticationSessionProvider;
-    private final PersistenceSessionService persistenceSessionService;
+    private final PersistenceSessionServiceInternal persistenceSessionServiceInternal;
 
     public ChoicesFacetFromBoundedAbstract(
             final FacetHolder holder,
             final DeploymentCategory deploymentCategory,
             final AuthenticationSessionProvider authenticationSessionProvider,
-            final PersistenceSessionService persistenceSessionService) {
+            final PersistenceSessionServiceInternal persistenceSessionServiceInternal) {
         super(type(), holder, Derivation.NOT_DERIVED);
         this.deploymentCategory = deploymentCategory;
         this.authenticationSessionProvider = authenticationSessionProvider;
-        this.persistenceSessionService = persistenceSessionService;
+        this.persistenceSessionServiceInternal = persistenceSessionServiceInternal;
     }
 
-    public PersistenceSessionService getPersistenceSessionService() {
-        return persistenceSessionService;
+    public PersistenceSessionServiceInternal getPersistenceSessionService() {
+        return persistenceSessionServiceInternal;
     }
 
     @Override

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

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

http://git-wip-us.apache.org/repos/asf/isis/blob/a2a9f519/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/DomainObjectAnnotationFacetFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/DomainObjectAnnotationFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/DomainObjectAnnotationFacetFactory.java
index 855cee5..ea97b8d 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/DomainObjectAnnotationFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/DomainObjectAnnotationFacetFactory.java
@@ -81,8 +81,8 @@ import org.apache.isis.core.metamodel.facets.object.mixin.MixinFacet;
 import org.apache.isis.core.metamodel.facets.object.mixin.MixinFacetForDomainObjectAnnotation;
 import org.apache.isis.core.metamodel.facets.object.publishedobject.PublishedObjectFacet;
 import org.apache.isis.core.metamodel.facets.object.viewmodel.ViewModelFacet;
-import org.apache.isis.core.metamodel.runtimecontext.PersistenceSessionService;
-import org.apache.isis.core.metamodel.runtimecontext.PersistenceSessionServiceAware;
+import org.apache.isis.core.metamodel.services.persistsession.PersistenceSessionServiceInternal;
+import org.apache.isis.core.metamodel.services.persistsession.PersistenceSessionServiceAware;
 import org.apache.isis.core.metamodel.services.ServicesInjector;
 import org.apache.isis.core.metamodel.spec.ObjectSpecId;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
@@ -108,7 +108,7 @@ public class DomainObjectAnnotationFacetFactory extends FacetFactoryAbstract
 
 
     private AdapterManager adapterManager;
-    private PersistenceSessionService persistenceSessionService;
+    private PersistenceSessionServiceInternal persistenceSessionServiceInternal;
 
     public DomainObjectAnnotationFacetFactory() {
         super(FeatureType.OBJECTS_ONLY);
@@ -231,12 +231,12 @@ public class DomainObjectAnnotationFacetFactory extends FacetFactoryAbstract
             ChoicesFacetFromBoundedAnnotation.create(annotation, processClassContext.getFacetHolder(),
                     getDeploymentCategory(),
                     getAuthenticationSessionProvider(),
-                    persistenceSessionService));
+                    persistenceSessionServiceInternal));
 
         // else check from @DomainObject(bounded=...)
         if(facet == null) {
             facet = ChoicesFacetForDomainObjectAnnotation.create(domainObject, facetHolder, getDeploymentCategory(),
-                    getAuthenticationSessionProvider(), persistenceSessionService);
+                    getAuthenticationSessionProvider(), persistenceSessionServiceInternal);
         }
 
         // then add
@@ -510,8 +510,8 @@ public class DomainObjectAnnotationFacetFactory extends FacetFactoryAbstract
     }
 
     @Override
-    public void setPersistenceSessionService(final PersistenceSessionService persistenceSessionService) {
-        this.persistenceSessionService = persistenceSessionService;
+    public void setPersistenceSessionService(final PersistenceSessionServiceInternal persistenceSessionServiceInternal) {
+        this.persistenceSessionServiceInternal = persistenceSessionServiceInternal;
     }
 
 

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

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

http://git-wip-us.apache.org/repos/asf/isis/blob/a2a9f519/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/ConfigurationServiceInternal.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/ConfigurationServiceInternal.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/ConfigurationServiceInternal.java
index 206b7f3..f30d221 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/ConfigurationServiceInternal.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/ConfigurationServiceInternal.java
@@ -23,7 +23,7 @@ import org.apache.isis.core.commons.config.IsisConfiguration;
 public interface ConfigurationServiceInternal {
 
     /**
-     * Provided by {@link RuntimeContextAbstract} itself, cloned properties from
+     * Provided by {@link RuntimeContextDefault} itself, cloned properties from
      * {@link IsisConfiguration}.
      * 
      * <p>
@@ -32,7 +32,7 @@ public interface ConfigurationServiceInternal {
     String getProperty(String name);
 
     /**
-     * Provided by {@link RuntimeContextAbstract} itself, cloned properties from
+     * Provided by {@link RuntimeContextDefault} itself, cloned properties from
      * {@link IsisConfiguration}.
      * 
      * <p>

http://git-wip-us.apache.org/repos/asf/isis/blob/a2a9f519/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/LocalizationDefault.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/LocalizationDefault.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/LocalizationDefault.java
deleted file mode 100644
index ac6b75d..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/LocalizationDefault.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License.
- */
-
-package org.apache.isis.core.metamodel.runtimecontext;
-
-import java.util.Locale;
-import java.util.TimeZone;
-
-import org.apache.isis.applib.profiles.Localization;
-
-public final class LocalizationDefault implements Localization {
-
-    @Override
-    public Locale getLocale() {
-        return Locale.getDefault();
-    }
-
-    @Override
-    public TimeZone getTimeZone() {
-        return TimeZone.getDefault();
-    }
-}

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

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

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

http://git-wip-us.apache.org/repos/asf/isis/blob/a2a9f519/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/MessageBrokerService.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/MessageBrokerService.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/MessageBrokerService.java
deleted file mode 100644
index d33e327..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/MessageBrokerService.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/**
- *  Licensed to the Apache Software Foundation (ASF) under one or more
- *  contributor license agreements.  See the NOTICE file distributed with
- *  this work for additional information regarding copyright ownership.
- *  The ASF licenses this file to You under the Apache License, Version 2.0
- *  (the "License"); you may not use this file except in compliance with
- *  the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing, software
- *  distributed under the License is distributed on an "AS IS" BASIS,
- *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *  See the License for the specific language governing permissions and
- *  limitations under the License.
- */
-package org.apache.isis.core.metamodel.runtimecontext;
-
-public interface MessageBrokerService {
-
-    void injectInto(final Object candidate);
-
-    /**
-     * Provided by <tt>MessageBroker</tt> when used by framework.
-     *
-     * <p>
-     * Called by <tt>DomainObjectContainerDefault</tt>.
-     */
-    void informUser(String message);
-
-    /**
-     * Provided by <tt>MessageBroker</tt> when used by framework.
-     *
-     * <p>
-     * Called by <tt>DomainObjectContainerDefault</tt>.
-     */
-    void warnUser(String message);
-
-    /**
-     * Provided by <tt>MessageBroker</tt> when used by framework.
-     *
-     * <p>
-     * Called by <tt>DomainObjectContainerDefault</tt>.
-     */
-    void raiseError(String message);
-
-
-}

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

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

http://git-wip-us.apache.org/repos/asf/isis/blob/a2a9f519/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/PersistenceSessionService.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/PersistenceSessionService.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/PersistenceSessionService.java
deleted file mode 100644
index d2db00a..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/PersistenceSessionService.java
+++ /dev/null
@@ -1,140 +0,0 @@
-/**
- *  Licensed to the Apache Software Foundation (ASF) under one or more
- *  contributor license agreements.  See the NOTICE file distributed with
- *  this work for additional information regarding copyright ownership.
- *  The ASF licenses this file to You under the Apache License, Version 2.0
- *  (the "License"); you may not use this file except in compliance with
- *  the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing, software
- *  distributed under the License is distributed on an "AS IS" BASIS,
- *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *  See the License for the specific language governing permissions and
- *  limitations under the License.
- */
-package org.apache.isis.core.metamodel.runtimecontext;
-
-import java.util.List;
-
-import org.apache.isis.applib.query.Query;
-import org.apache.isis.applib.services.bookmark.Bookmark;
-import org.apache.isis.applib.services.bookmark.BookmarkService2;
-import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager;
-import org.apache.isis.core.metamodel.spec.ObjectSpecification;
-
-public interface PersistenceSessionService extends AdapterManager {
-
-    void injectInto(final Object candidate);
-
-    // ///////////////////////////////////////////
-    // Instantiate
-    // ///////////////////////////////////////////
-
-    /**
-     * Provided by the <tt>PersistenceSession</tt> when used by framework.
-     *
-     * <p>
-     * Called by <tt>DomainObjectContainerDefault</tt>.
-     */
-    ObjectAdapter createTransientInstance(ObjectSpecification spec);
-
-    ObjectAdapter createViewModelInstance(ObjectSpecification spec, String memento);
-
-
-    // ///////////////////////////////////////////
-    // retrieve
-    // ///////////////////////////////////////////
-
-    /**
-     * Provided by <tt>PersistenceSession</tt> when used by framework.
-     *
-     * <p>
-     * Called by <tt>DomainObjectContainerDefault</tt>.
-     */
-    void resolve(Object parent);
-
-    /**
-     * Provided by <tt>PersistenceSession</tt> when used by framework.
-     *
-     * <p>
-     * Called by <tt>DomainObjectContainerDefault</tt>.
-     */
-    void resolve(Object parent, Object field);
-
-    /**
-     * Provided by <tt>PersistenceSession</tt> when used by framework.
-     *
-     * <p>
-     * Called by <tt>BookmarkServicesDefault</tt>.
-     * @return
-     */
-    Object lookup(Bookmark bookmark, final BookmarkService2.FieldResetPolicy fieldResetPolicy);
-
-    Bookmark bookmarkFor(Object domainObject);
-
-    Bookmark bookmarkFor(Class<?> cls, String identifier);
-
-
-    // ///////////////////////////////////////////
-    // beginTran, flush, commit
-    // ///////////////////////////////////////////
-
-    void beginTran();
-
-    /**
-     * Provided by <tt>TransactionManager</tt> when used by framework.
-     *
-     * <p>
-     * Called by <tt>DomainObjectContainerDefault</tt>.
-     */
-    boolean flush();
-
-    /**
-     * Provided by <tt>TransactionManager</tt> when used by framework.
-     *
-     * <p>
-     * Called by <tt>DomainObjectContainerDefault</tt>.
-     */
-    void commit();
-
-
-    /**
-     * Provided by the <tt>PersistenceSession</tt> when used by framework.
-     * 
-     * <p>
-     * Called by <tt>DomainObjectContainerDefault</tt> and also by
-     * <tt>DomainObjectInvocationHandler#handleSaveMethod()</tt>.
-     */
-    void makePersistent(ObjectAdapter adapter);
-
-    /**
-     * Provided by <tt>UpdateNotifier</tt> and <tt>PersistenceSession</tt> when
-     * used by framework.
-     * 
-     * <p>
-     * Called by <tt>DomainObjectContainerDefault</tt>.
-     */
-    void remove(ObjectAdapter adapter);
-
-
-    /**
-     * Provided by <tt>PersistenceSession</tt> when used by framework.
-     *
-     * <p>
-     * Called by <tt>DomainObjectContainerDefault</tt> and also by the choices
-     * facets.
-     */
-    <T> List<ObjectAdapter> allMatchingQuery(Query<T> query);
-
-    /**
-     * Provided by <tt>PersistenceSession</tt> when used by framework.
-     *
-     * <p>
-     * Called by <tt>DomainObjectContainerDefault</tt>.
-     */
-    <T> ObjectAdapter firstMatchingQuery(Query<T> query);
-
-}

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

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

http://git-wip-us.apache.org/repos/asf/isis/blob/a2a9f519/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 0c63162..f7de429 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
@@ -19,41 +19,86 @@
 
 package org.apache.isis.core.metamodel.runtimecontext;
 
+import org.apache.isis.applib.annotation.Programmatic;
 import org.apache.isis.core.commons.components.ApplicationScopedComponent;
 import org.apache.isis.core.metamodel.services.ServicesInjector;
-import org.apache.isis.core.metamodel.specloader.SpecificationLoader;
-import org.apache.isis.core.metamodel.transactions.TransactionStateProvider;
+import org.apache.isis.core.metamodel.services.l10n.LocalizationProviderInternal;
+import org.apache.isis.core.metamodel.services.msgbroker.MessageBrokerServiceInternal;
+import org.apache.isis.core.metamodel.services.persistsession.PersistenceSessionServiceInternal;
+import org.apache.isis.core.metamodel.services.transtate.TransactionStateProviderInternal;
 
-/**
- * Decouples the metamodel from a runtime.
- * 
- */
-public interface RuntimeContext extends ApplicationScopedComponent {
+public class RuntimeContext implements ApplicationScopedComponent {
+
+
+    //region > constructor, fields
+
+    private final ServicesInjector servicesInjector;
+    private final PersistenceSessionServiceInternal persistenceSessionServiceInternal;
+    private final MessageBrokerServiceInternal messageBrokerServiceInternal;
+    private final LocalizationProviderInternal localizationProvider;
+    private final TransactionStateProviderInternal transactionStateProvider;
+
+    public RuntimeContext(
+            final ServicesInjector servicesInjector) {
+        this.servicesInjector = servicesInjector;
+
+        this.persistenceSessionServiceInternal =
+                servicesInjector.lookupService(PersistenceSessionServiceInternal.class);
+        this.messageBrokerServiceInternal =
+                servicesInjector.lookupService(MessageBrokerServiceInternal.class);
+        this.localizationProvider =
+                servicesInjector.lookupService(LocalizationProviderInternal.class);
+        this.transactionStateProvider =
+                servicesInjector.lookupService(TransactionStateProviderInternal.class);
+
+    }
+
+    //endregion
+
+    @Programmatic
+    public LocalizationProviderInternal getLocalizationProvider() {
+        return localizationProvider;
+    }
 
-    void injectInto(Object candidate);
+    @Programmatic
+    public PersistenceSessionServiceInternal getPersistenceSessionService() {
+        return persistenceSessionServiceInternal;
+    }
 
-    // //////////////////////////////////////
-    // application-scoped
-    // //////////////////////////////////////
+    @Programmatic
+    public MessageBrokerServiceInternal getMessageBrokerService() {
+        return messageBrokerServiceInternal;
+    }
 
-    public ServicesInjector getServicesInjector();
 
-    public SpecificationLoader getSpecificationLoader();
+    @Programmatic
+    public TransactionStateProviderInternal getTransactionStateProvider() {
+        return transactionStateProvider;
+    }
 
-    // //////////////////////////////////////
-    // session-scoped
-    // //////////////////////////////////////
 
-    public LocalizationProvider getLocalizationProvider();
+    @Programmatic
+    public ServicesInjector getServicesInjector() {
+        return servicesInjector;
+    }
 
-    public MessageBrokerService getMessageBrokerService();
 
-    // //////////////////////////////////////
-    // request-scoped
-    // //////////////////////////////////////
+    @Programmatic
+    public void injectInto(final Object candidate) {
+        if (RuntimeContextAware.class.isAssignableFrom(candidate.getClass())) {
+            final RuntimeContextAware cast = RuntimeContextAware.class.cast(candidate);
+            cast.setRuntimeContext(this);
+        }
+        injectSubcomponentsInto(candidate);
+    }
 
-    public PersistenceSessionService getPersistenceSessionService();
+    protected void injectSubcomponentsInto(final Object candidate) {
+        getTransactionStateProvider().injectInto(candidate);
+        getServicesInjector().injectInto(candidate);
+        getLocalizationProvider().injectInto(candidate);
+        getPersistenceSessionService().injectInto(candidate);
+        getMessageBrokerService().injectInto(candidate);
+    }
 
-    public TransactionStateProvider getTransactionStateProvider();
 
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/a2a9f519/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
deleted file mode 100644
index d4a18ed..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/RuntimeContextAbstract.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License.
- */
-
-package org.apache.isis.core.metamodel.runtimecontext;
-
-import org.apache.isis.core.metamodel.services.ServicesInjector;
-import org.apache.isis.core.metamodel.specloader.SpecificationLoader;
-
-public abstract class RuntimeContextAbstract implements RuntimeContext {
-
-    private final ServicesInjector servicesInjector;
-    private final SpecificationLoader specificationLoader;
-
-    public RuntimeContextAbstract(
-            final ServicesInjector servicesInjector,
-            final SpecificationLoader specificationLoader) {
-        this.servicesInjector = servicesInjector;
-        this.specificationLoader = specificationLoader;
-    }
-
-
-    @Override
-    public ServicesInjector getServicesInjector() {
-        return servicesInjector;
-    }
-
-    @Override
-    public SpecificationLoader getSpecificationLoader() {
-        return specificationLoader;
-    }
-
-
-    //@Override
-    public void injectInto(final Object candidate) {
-        if (RuntimeContextAware.class.isAssignableFrom(candidate.getClass())) {
-            final RuntimeContextAware cast = RuntimeContextAware.class.cast(candidate);
-            cast.setRuntimeContext(this);
-        }
-        injectSubcomponentsInto(candidate);
-    }
-
-    protected void injectSubcomponentsInto(final Object candidate) {
-        getTransactionStateProvider().injectInto(candidate);
-        getServicesInjector().injectInto(candidate);
-        getLocalizationProvider().injectInto(candidate);
-        getPersistenceSessionService().injectInto(candidate);
-        getMessageBrokerService().injectInto(candidate);
-        getSpecificationLoader().injectInto(candidate);
-    }
-
-}