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 07:04:43 UTC

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

http://git-wip-us.apache.org/repos/asf/isis/blob/a2a9f519/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/ident/title/annotation/TitleAnnotationFacetFactoryTest.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/ident/title/annotation/TitleAnnotationFacetFactoryTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/ident/title/annotation/TitleAnnotationFacetFactoryTest.java
index f8e7556..5403aa5 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/ident/title/annotation/TitleAnnotationFacetFactoryTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/ident/title/annotation/TitleAnnotationFacetFactoryTest.java
@@ -44,8 +44,8 @@ import org.apache.isis.core.metamodel.facets.object.title.TitleFacet;
 import org.apache.isis.core.metamodel.facets.object.title.annotation.TitleAnnotationFacetFactory;
 import org.apache.isis.core.metamodel.facets.object.title.annotation.TitleFacetViaTitleAnnotation;
 import org.apache.isis.core.metamodel.facets.object.title.annotation.TitleFacetViaTitleAnnotation.TitleComponent;
-import org.apache.isis.core.metamodel.runtimecontext.LocalizationDefault;
-import org.apache.isis.core.metamodel.runtimecontext.LocalizationProvider;
+import org.apache.isis.core.metamodel.services.l10n.LocalizationDefault;
+import org.apache.isis.core.metamodel.services.l10n.LocalizationProviderInternal;
 import org.apache.isis.core.metamodel.specloader.SpecificationLoader;
 import org.apache.isis.core.unittestsupport.jmocking.JUnitRuleMockery2.Allowing;
 
@@ -60,7 +60,7 @@ public class TitleAnnotationFacetFactoryTest extends AbstractFacetFactoryJUnit4T
     private ObjectAdapter mockObjectAdapter;
     @Allowing
     @Mock
-    private LocalizationProvider mockLocalizationProvider;
+    private LocalizationProviderInternal mockLocalizationProviderInternal;
     @Mock
     private AuthenticationSession mockAuthenticationSession;
 
@@ -80,7 +80,7 @@ public class TitleAnnotationFacetFactoryTest extends AbstractFacetFactoryJUnit4T
                 allowing(mockServicesInjector).lookupService(DeploymentCategoryProvider.class);
                 will(returnValue(mockDeploymentCategoryProvider));
 
-                allowing(mockLocalizationProvider).getLocalization();
+                allowing(mockLocalizationProviderInternal).getLocalization();
                 will(returnValue(new LocalizationDefault()));
 
                 allowing(mockDeploymentCategoryProvider).getDeploymentCategory();
@@ -181,7 +181,7 @@ public class TitleAnnotationFacetFactoryTest extends AbstractFacetFactoryJUnit4T
                 will(returnValue(customer));
             }
         });
-        final String title = titleFacetViaTitleAnnotation.title(mockObjectAdapter, mockLocalizationProvider.getLocalization());
+        final String title = titleFacetViaTitleAnnotation.title(mockObjectAdapter, mockLocalizationProviderInternal.getLocalization());
         assertThat(title, is("titleElement1. titleElement3,titleElement2"));
     }
 
@@ -257,7 +257,7 @@ public class TitleAnnotationFacetFactoryTest extends AbstractFacetFactoryJUnit4T
                 will(returnValue(customer));
             }
         });
-        final String title = titleFacetViaTitleAnnotation.title(mockObjectAdapter, mockLocalizationProvider.getLocalization());
+        final String title = titleFacetViaTitleAnnotation.title(mockObjectAdapter, mockLocalizationProviderInternal.getLocalization());
         assertThat(title, is("titleElement1 titleElement3 titleElement5 3 this needs to be trimmed"));
     }
 

http://git-wip-us.apache.org/repos/asf/isis/blob/a2a9f519/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/ident/title/annotation/TitleFacetViaTitleAnnotationTest.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/ident/title/annotation/TitleFacetViaTitleAnnotationTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/ident/title/annotation/TitleFacetViaTitleAnnotationTest.java
index 6c95e85..9ccd792 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/ident/title/annotation/TitleFacetViaTitleAnnotationTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/ident/title/annotation/TitleFacetViaTitleAnnotationTest.java
@@ -37,7 +37,7 @@ import org.apache.isis.core.metamodel.facets.Annotations;
 import org.apache.isis.core.metamodel.facets.object.title.annotation.TitleAnnotationFacetFactory;
 import org.apache.isis.core.metamodel.facets.object.title.annotation.TitleFacetViaTitleAnnotation;
 import org.apache.isis.core.metamodel.facets.object.title.annotation.TitleFacetViaTitleAnnotation.TitleComponent;
-import org.apache.isis.core.metamodel.runtimecontext.LocalizationProvider;
+import org.apache.isis.core.metamodel.services.l10n.LocalizationProviderInternal;
 import org.apache.isis.core.unittestsupport.jmocking.JUnitRuleMockery2;
 import org.apache.isis.core.unittestsupport.jmocking.JUnitRuleMockery2.Mode;
 
@@ -59,7 +59,7 @@ public class TitleFacetViaTitleAnnotationTest {
     private AdapterManager mockAdapterManager;
     
     @Mock
-    private LocalizationProvider mockLocalizationProvider;
+    private LocalizationProviderInternal mockLocalizationProviderInternal;
 
     protected static class DomainObjectWithProblemInItsAnnotatedTitleMethod {
 

http://git-wip-us.apache.org/repos/asf/isis/blob/a2a9f519/core/metamodel/src/test/java/org/apache/isis/core/metamodel/specloader/SpecificationLoaderTestAbstract.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/specloader/SpecificationLoaderTestAbstract.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/specloader/SpecificationLoaderTestAbstract.java
index 591f9d1..9a92858 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/specloader/SpecificationLoaderTestAbstract.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/specloader/SpecificationLoaderTestAbstract.java
@@ -19,8 +19,6 @@
 
 package org.apache.isis.core.metamodel.specloader;
 
-import java.util.Collections;
-
 import com.google.common.collect.Lists;
 
 import org.jmock.Expectations;
@@ -33,7 +31,6 @@ import org.junit.rules.ExpectedException;
 
 import org.apache.isis.applib.services.grid.GridService;
 import org.apache.isis.core.commons.authentication.AuthenticationSessionProvider;
-import org.apache.isis.core.commons.config.IsisConfiguration;
 import org.apache.isis.core.commons.config.IsisConfigurationDefault;
 import org.apache.isis.core.metamodel.deployment.DeploymentCategory;
 import org.apache.isis.core.metamodel.deployment.DeploymentCategoryProvider;
@@ -48,8 +45,11 @@ import org.apache.isis.core.metamodel.layoutmetadata.json.LayoutMetadataReaderFr
 import org.apache.isis.core.metamodel.metamodelvalidator.dflt.MetaModelValidatorDefault;
 import org.apache.isis.core.metamodel.runtimecontext.ConfigurationServiceInternal;
 import org.apache.isis.core.metamodel.runtimecontext.RuntimeContext;
-import org.apache.isis.core.metamodel.runtimecontext.noruntime.RuntimeContextNoRuntime;
 import org.apache.isis.core.metamodel.services.ServicesInjector;
+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;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 import org.apache.isis.core.unittestsupport.jmocking.JUnitRuleMockery2;
 import org.apache.isis.core.unittestsupport.jmocking.JUnitRuleMockery2.Mode;
@@ -66,7 +66,7 @@ public abstract class SpecificationLoaderTestAbstract {
     private RuntimeContext runtimeContext;
 
     @Mock
-    private IsisConfiguration mockConfiguration;
+    private IsisConfigurationDefault mockConfiguration;
     @Mock
     private DeploymentCategoryProvider mockDeploymentCategoryProvider;
     @Mock
@@ -77,6 +77,14 @@ public abstract class SpecificationLoaderTestAbstract {
     private GridService mockGridService;
     @Mock
     private SpecificationLoader mockSpecificationLoader;
+    @Mock
+    private PersistenceSessionServiceInternal mockPersistenceSessionServiceInternal;
+    @Mock
+    private TransactionStateProviderInternal mockTransactionStateProviderInternal;
+    @Mock
+    private MessageBrokerServiceInternal mockMessageBrokerServiceInternal;
+    @Mock
+    private LocalizationProviderInternal mockLocalizationProviderInternal;
 
     // is loaded by subclasses
     protected ObjectSpecification specification;
@@ -113,6 +121,12 @@ public abstract class SpecificationLoaderTestAbstract {
             ignoring(mockServicesInjector).isRegisteredService(with(any(Class.class)));
 
             ignoring(mockSpecificationLoader).allServiceClasses();
+
+            ignoring(mockPersistenceSessionServiceInternal);
+            ignoring(mockTransactionStateProviderInternal);
+            ignoring(mockMessageBrokerServiceInternal);
+            ignoring(mockLocalizationProviderInternal);
+
         }});
 
         final SpecificationLoader reflector =
@@ -122,9 +136,17 @@ public abstract class SpecificationLoaderTestAbstract {
                         new MetaModelValidatorDefault(),
                         Lists.<LayoutMetadataReader>newArrayList(
                                 new LayoutMetadataReaderFromJson()), mockServicesInjector);
-        runtimeContext =
-                new RuntimeContextNoRuntime(
-                        new ServicesInjector(Collections.emptyList()), reflector);
+        final ServicesInjector servicesInjector =
+                new ServicesInjector(Lists.newArrayList(
+                        mockPersistenceSessionServiceInternal,
+                        mockLocalizationProviderInternal,
+                        mockMessageBrokerServiceInternal,
+                        mockTransactionStateProviderInternal,
+                        mockGridService,
+                        mockConfiguration,
+                        mockSpecificationLoader,
+                        mockDeploymentCategoryProvider));
+        runtimeContext = new RuntimeContext(servicesInjector);
         reflector.init(runtimeContext);
         
         specification = loadSpecification(reflector);

http://git-wip-us.apache.org/repos/asf/isis/blob/a2a9f519/core/metamodel/src/test/java/org/apache/isis/core/metamodel/testspec/ObjectSpecificationStub.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/testspec/ObjectSpecificationStub.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/testspec/ObjectSpecificationStub.java
index 7d15c76..ef42b18 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/testspec/ObjectSpecificationStub.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/testspec/ObjectSpecificationStub.java
@@ -43,7 +43,6 @@ import org.apache.isis.core.metamodel.interactions.ObjectTitleContext;
 import org.apache.isis.core.metamodel.interactions.ObjectValidityContext;
 import org.apache.isis.core.metamodel.runtimecontext.ConfigurationServiceInternal;
 import org.apache.isis.core.metamodel.runtimecontext.RuntimeContext;
-import org.apache.isis.core.metamodel.runtimecontext.noruntime.RuntimeContextNoRuntime;
 import org.apache.isis.core.metamodel.services.ServicesInjector;
 import org.apache.isis.core.metamodel.spec.ActionType;
 import org.apache.isis.core.metamodel.spec.ObjectSpecId;
@@ -70,15 +69,14 @@ public class ObjectSpecificationStub extends FacetHolderImpl implements ObjectSp
     private Persistability persistable;
     private boolean isEncodeable;
 
-    private RuntimeContextNoRuntime runtimeContext;
+    private RuntimeContext runtimeContext;
 
     public ObjectSpecificationStub(final Class<?> type) {
         this(type.getName());
         ServicesInjector servicesInjector = new ServicesInjector(Collections.emptyList());
         servicesInjector.addFallbackIfRequired(
                 ConfigurationServiceInternal.class, new IsisConfigurationDefault(null));
-        runtimeContext = new RuntimeContextNoRuntime(
-                servicesInjector, null);
+        runtimeContext = new RuntimeContext(servicesInjector);
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/isis/blob/a2a9f519/core/runtime/src/main/java/org/apache/isis/core/runtime/fixturedomainservice/ObjectFixtureFilePersistor.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/fixturedomainservice/ObjectFixtureFilePersistor.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/fixturedomainservice/ObjectFixtureFilePersistor.java
index b7d4390..849443d 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/fixturedomainservice/ObjectFixtureFilePersistor.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/fixturedomainservice/ObjectFixtureFilePersistor.java
@@ -47,7 +47,7 @@ import org.apache.isis.core.metamodel.spec.feature.Contributed;
 import org.apache.isis.core.metamodel.spec.feature.ObjectAssociation;
 import org.apache.isis.core.metamodel.spec.feature.OneToOneAssociation;
 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;
 
 public class ObjectFixtureFilePersistor {
 
@@ -179,7 +179,7 @@ public class ObjectFixtureFilePersistor {
 
     
     
-    protected PersistenceSession getPersistenceSession() {
+    protected PersistenceSessionInternal getPersistenceSession() {
         return IsisContext.getPersistenceSession();
     }
 
@@ -216,7 +216,7 @@ class LoadedObjects {
     }
 
     
-    protected PersistenceSession getPersistenceSession() {
+    protected PersistenceSessionInternal getPersistenceSession() {
         return IsisContext.getPersistenceSession();
     }
 

http://git-wip-us.apache.org/repos/asf/isis/blob/a2a9f519/core/runtime/src/main/java/org/apache/isis/core/runtime/fixturedomainservice/ObjectFixtureService.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/fixturedomainservice/ObjectFixtureService.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/fixturedomainservice/ObjectFixtureService.java
index 8ec93fd..6484454 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/fixturedomainservice/ObjectFixtureService.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/fixturedomainservice/ObjectFixtureService.java
@@ -48,7 +48,7 @@ import org.apache.isis.core.metamodel.spec.Persistability;
 import org.apache.isis.core.metamodel.spec.feature.Contributed;
 import org.apache.isis.core.metamodel.spec.feature.ObjectAssociation;
 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;
 
 public class ObjectFixtureService {
 
@@ -231,7 +231,7 @@ public class ObjectFixtureService {
     // from context
     // //////////////////////////////////////////////////////////////////
 
-    protected PersistenceSession getPersistenceSession() {
+    protected PersistenceSessionInternal getPersistenceSession() {
         return IsisContext.getPersistenceSession();
     }
 

http://git-wip-us.apache.org/repos/asf/isis/blob/a2a9f519/core/runtime/src/main/java/org/apache/isis/core/runtime/fixtures/FixturesInstallerDelegate.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/fixtures/FixturesInstallerDelegate.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/fixtures/FixturesInstallerDelegate.java
index c54a01b..cbcf47b 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/fixtures/FixturesInstallerDelegate.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/fixtures/FixturesInstallerDelegate.java
@@ -34,7 +34,7 @@ import org.apache.isis.core.commons.lang.ObjectExtensions;
 import org.apache.isis.core.metamodel.services.ServicesInjector;
 import org.apache.isis.core.runtime.system.DeploymentType;
 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.IsisTransactionManager;
 
 /**
@@ -53,7 +53,7 @@ public class FixturesInstallerDelegate {
     protected final List<Object> fixtures = new ArrayList<Object>();
     private final SwitchUserServiceImpl switchUserService = new SwitchUserServiceImpl();
 
-    private final PersistenceSession persistenceSession;
+    private final PersistenceSessionInternal persistenceSession;
 
     /**
      * The requested {@link LogonFixture}, if any.
@@ -70,7 +70,7 @@ public class FixturesInstallerDelegate {
     // /////////////////////////////////////////////////////////
 
     /**
-     * The {@link PersistenceSession} used will be that from
+     * The {@link PersistenceSessionInternal} used will be that from
      * {@link IsisContext#getPersistenceSession() IsisContext}.
      */
     public FixturesInstallerDelegate() {
@@ -78,12 +78,12 @@ public class FixturesInstallerDelegate {
     }
 
     /**
-     * For testing, supply own {@link PersistenceSession} rather than lookup
+     * For testing, supply own {@link PersistenceSessionInternal} rather than lookup
      * from context.
      * 
      * @param persistenceSession
      */
-    public FixturesInstallerDelegate(final PersistenceSession persistenceSession) {
+    public FixturesInstallerDelegate(final PersistenceSessionInternal persistenceSession) {
         this.persistenceSession = persistenceSession;
     }
     
@@ -148,7 +148,7 @@ public class FixturesInstallerDelegate {
     /**
      * Hook - default does nothing.
      */
-    protected void preInstallFixtures(final PersistenceSession persistenceSession) {
+    protected void preInstallFixtures(final PersistenceSessionInternal persistenceSession) {
     }
 
     // ///////////////////////////////////////
@@ -239,7 +239,7 @@ public class FixturesInstallerDelegate {
     /**
      * Hook - default does nothing.
      */
-    protected void postInstallFixtures(final PersistenceSession persistenceSession) {
+    protected void postInstallFixtures(final PersistenceSessionInternal persistenceSession) {
     }
 
     // /////////////////////////////////////////////////////////
@@ -265,11 +265,11 @@ public class FixturesInstallerDelegate {
      * persistor or the persistor specified in the constructor.
      * 
      * <p>
-     * Note: if a {@link PersistenceSession persistor} was specified via the
+     * Note: if a {@link PersistenceSessionInternal persistor} was specified via the
      * constructor, this is not cached (to do so would cause the usage of tests
      * that use the singleton to break).
      */
-    private PersistenceSession getPersistenceSession() {
+    private PersistenceSessionInternal getPersistenceSession() {
         return persistenceSession != null ? persistenceSession : IsisContext.getPersistenceSession();
     }
 

http://git-wip-us.apache.org/repos/asf/isis/blob/a2a9f519/core/runtime/src/main/java/org/apache/isis/core/runtime/installerregistry/installerapi/PersistenceMechanismInstaller.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/installerregistry/installerapi/PersistenceMechanismInstaller.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/installerregistry/installerapi/PersistenceMechanismInstaller.java
index 47ccb7a..1b18d43 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/installerregistry/installerapi/PersistenceMechanismInstaller.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/installerregistry/installerapi/PersistenceMechanismInstaller.java
@@ -22,11 +22,11 @@ package org.apache.isis.core.runtime.installerregistry.installerapi;
 import org.apache.isis.core.commons.components.Installer;
 import org.apache.isis.core.metamodel.services.ServicesInjector;
 import org.apache.isis.core.runtime.system.DeploymentType;
-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.persistence.PersistenceSessionFactory;
 
 /**
- * Installs a {@link PersistenceSession} during system start up.
+ * Installs a {@link PersistenceSessionInternal} during system start up.
  */
 public interface PersistenceMechanismInstaller extends Installer {
 

http://git-wip-us.apache.org/repos/asf/isis/blob/a2a9f519/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 3ebbb98..a719c9a 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
@@ -47,7 +47,7 @@ import org.apache.isis.core.metamodel.spec.feature.ObjectAssociation;
 import org.apache.isis.core.metamodel.spec.feature.OneToManyAssociation;
 import org.apache.isis.core.metamodel.spec.feature.OneToOneAssociation;
 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;
 
 /**
  * Holds the state for the specified object in serializable form.
@@ -403,7 +403,7 @@ public class Memento implements Serializable {
         return IsisContext.getSpecificationLoader();
     }
 
-    protected PersistenceSession getPersistenceSession() {
+    protected PersistenceSessionInternal getPersistenceSession() {
         return IsisContext.getPersistenceSession();
     }
 

http://git-wip-us.apache.org/repos/asf/isis/blob/a2a9f519/core/runtime/src/main/java/org/apache/isis/core/runtime/memento/StandaloneData.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/memento/StandaloneData.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/memento/StandaloneData.java
index b93074a..037d9ad 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/memento/StandaloneData.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/memento/StandaloneData.java
@@ -30,7 +30,7 @@ import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.core.metamodel.facets.object.encodeable.EncodableFacet;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 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;
 
 public class StandaloneData extends Data {
 
@@ -127,7 +127,7 @@ public class StandaloneData extends Data {
         }
     }
 
-    protected PersistenceSession getPersistenceSession() {
+    protected PersistenceSessionInternal getPersistenceSession() {
         return IsisContext.getPersistenceSession();
     }
 

http://git-wip-us.apache.org/repos/asf/isis/blob/a2a9f519/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/FixturesInstalledFlag.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/FixturesInstalledFlag.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/FixturesInstalledFlag.java
index 8eacc26..b4cc992 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/FixturesInstalledFlag.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/FixturesInstalledFlag.java
@@ -19,11 +19,11 @@
 
 package org.apache.isis.core.runtime.persistence;
 
-import org.apache.isis.core.runtime.system.persistence.PersistenceSession;
+import org.apache.isis.core.runtime.system.persistence.PersistenceSessionInternal;
 
 /**
  * For {@link org.apache.isis.core.runtime.system.persistence.PersistenceSessionFactory} implementations that can cache the
- * {@link PersistenceSession#isFixturesInstalled()} so is only called once per
+ * {@link PersistenceSessionInternal#isFixturesInstalled()} so is only called once per
  * application scope.
  */
 public interface FixturesInstalledFlag {

http://git-wip-us.apache.org/repos/asf/isis/blob/a2a9f519/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/adapter/PojoAdapter.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/adapter/PojoAdapter.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/adapter/PojoAdapter.java
index 89ab049..df03789c 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/adapter/PojoAdapter.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/adapter/PojoAdapter.java
@@ -43,7 +43,7 @@ import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 import org.apache.isis.core.metamodel.spec.Specification;
 import org.apache.isis.core.metamodel.specloader.SpecificationLoader;
 import org.apache.isis.core.metamodel.spec.feature.OneToManyAssociation;
-import org.apache.isis.core.runtime.system.persistence.PersistenceSession;
+import org.apache.isis.core.runtime.system.persistence.PersistenceSessionInternal;
 
 import static org.hamcrest.CoreMatchers.is;
 import static org.hamcrest.CoreMatchers.notNullValue;
@@ -57,7 +57,7 @@ public class PojoAdapter extends InstanceAbstract implements ObjectAdapter {
     private final AuthenticationSession authenticationSession;
     private final SpecificationLoader specificationLoader;
     private final Localization localization;
-    private final PersistenceSession persistenceSession;
+    private final PersistenceSessionInternal persistenceSession;
 
     /**
      * can be {@link #replacePojo(Object) replace}d.
@@ -79,7 +79,7 @@ public class PojoAdapter extends InstanceAbstract implements ObjectAdapter {
             final AuthenticationSession authenticationSession,
             final Localization localization,
             final SpecificationLoader specificationLoader,
-            final PersistenceSession persistenceSession) {
+            final PersistenceSessionInternal persistenceSession) {
 
         this.persistenceSession = persistenceSession;
 
@@ -428,7 +428,7 @@ public class PojoAdapter extends InstanceAbstract implements ObjectAdapter {
      *
      * <p>
      *     Specifically, if an action which has been annotated (is copied by {@link org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionInvocationFacet action invocation facet}), and for a parented collection
-     *     (is copied by the {@link PersistenceSession} when {@link PersistenceSession#adapterFor(Object, ObjectAdapter, OneToManyAssociation) creating} an adapter for a collection.
+     *     (is copied by the {@link PersistenceSessionInternal} when {@link PersistenceSessionInternal#adapterFor(Object, ObjectAdapter, OneToManyAssociation) creating} an adapter for a collection.
      * </p>
      */
     @Override

http://git-wip-us.apache.org/repos/asf/isis/blob/a2a9f519/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/container/DomainObjectContainerResolve.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/container/DomainObjectContainerResolve.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/container/DomainObjectContainerResolve.java
index 7e51973..59d2159 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/container/DomainObjectContainerResolve.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/container/DomainObjectContainerResolve.java
@@ -29,7 +29,7 @@ import org.apache.isis.core.metamodel.services.ServicesInjector;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 import org.apache.isis.core.metamodel.specloader.SpecificationLoader;
 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;
 
 /**
  * Helper class that encapsulates the processing performed by domain object
@@ -38,10 +38,10 @@ import org.apache.isis.core.runtime.system.persistence.PersistenceSession;
  * <p>
  * Implementation note: rather than inject in its dependencies, we instead look
  * up dependencies from the {@link IsisContext}. This is necessary, for the
- * {@link PersistenceSession} at least, because class enhancers may hold a
+ * {@link PersistenceSessionInternal} at least, because class enhancers may hold a
  * reference to the factory as part of the generated bytecode. Since the
- * {@link PersistenceSession} could change over the lifetime of the instance,
- * we must always look the {@link PersistenceSession} from the {@link IsisContext}.
+ * {@link PersistenceSessionInternal} could change over the lifetime of the instance,
+ * we must always look the {@link PersistenceSessionInternal} from the {@link IsisContext}.
  * The same applies to the {@link ServicesInjector}.
  */
 public class DomainObjectContainerResolve {
@@ -107,7 +107,7 @@ public class DomainObjectContainerResolve {
     // Dependencies (looked up from context)
     // /////////////////////////////////////////////////////////////////
 
-    protected PersistenceSession getPersistenceSession() {
+    protected PersistenceSessionInternal getPersistenceSession() {
         return IsisContext.getPersistenceSession();
     }
 

http://git-wip-us.apache.org/repos/asf/isis/blob/a2a9f519/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
deleted file mode 100644
index 785279d..0000000
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/internal/RuntimeContextFromSession.java
+++ /dev/null
@@ -1,263 +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.runtime.persistence.internal;
-
-import java.util.List;
-
-import org.apache.isis.applib.RecoverableException;
-import org.apache.isis.applib.profiles.Localization;
-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.commons.authentication.MessageBroker;
-import org.apache.isis.core.commons.config.IsisConfigurationDefault;
-import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.core.metamodel.adapter.oid.Oid;
-import org.apache.isis.core.metamodel.deployment.DeploymentCategory;
-import org.apache.isis.core.metamodel.runtimecontext.LocalizationProviderAbstract;
-import org.apache.isis.core.metamodel.runtimecontext.MessageBrokerService;
-import org.apache.isis.core.metamodel.runtimecontext.MessageBrokerServiceAbstract;
-import org.apache.isis.core.metamodel.runtimecontext.PersistenceSessionService;
-import org.apache.isis.core.metamodel.runtimecontext.PersistenceSessionServiceAbstract;
-import org.apache.isis.core.metamodel.runtimecontext.RuntimeContextAbstract;
-import org.apache.isis.core.metamodel.services.ServicesInjector;
-import org.apache.isis.core.metamodel.spec.ObjectSpecification;
-import org.apache.isis.core.metamodel.specloader.SpecificationLoader;
-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.DomainObjectContainerResolve;
-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.session.IsisSession;
-import org.apache.isis.core.runtime.system.transaction.IsisTransaction;
-import org.apache.isis.core.runtime.system.transaction.IsisTransactionManager;
-
-/**
- * Provides services to the metamodel based on the currently running
- * {@link IsisSession session} (primarily the {@link PersistenceSession}).
- */
-public class RuntimeContextFromSession extends RuntimeContextAbstract {
-
-    private final PersistenceSessionService persistenceSessionService;
-    private final MessageBrokerService messageBrokerService;
-    private final LocalizationProviderAbstract localizationProvider;
-
-    // //////////////////////////////////////////////////////////////////
-    // Constructor
-    // //////////////////////////////////////////////////////////////////
-
-    public RuntimeContextFromSession(
-            final DeploymentCategory deploymentCategory,
-            final IsisConfigurationDefault configuration,
-            final ServicesInjector servicesInjector,
-            final SpecificationLoader specificationLoader) {
-        super(servicesInjector, specificationLoader);
-
-        this.persistenceSessionService = new PersistenceSessionServiceAbstract() {
-
-
-            @Override
-            public ObjectAdapter getAdapterFor(Oid oid) {
-                return getPersistenceSession().getAdapterFor(oid);
-            }
-
-            @Override
-            public ObjectAdapter getAdapterFor(final Object pojo) {
-                return getPersistenceSession().getAdapterFor(pojo);
-            }
-
-            @Override
-            public ObjectAdapter adapterFor(final Object pojo) {
-                return getPersistenceSession().adapterFor(pojo);
-            }
-
-            @Override
-            public ObjectAdapter adapterFor(final Object pojo, final ObjectAdapter ownerAdapter, final OneToManyAssociation collection) {
-                return getPersistenceSession().adapterFor(pojo, ownerAdapter, collection);
-            }
-
-            @Override
-            public ObjectAdapter mapRecreatedPojo(Oid oid, Object recreatedPojo) {
-                return getPersistenceSession().mapRecreatedPojo(oid, recreatedPojo);
-            }
-
-            @Override
-            public void removeAdapter(ObjectAdapter adapter) {
-                getPersistenceSession().removeAdapter(adapter);
-            }
-
-            @Override
-            public void makePersistent(final ObjectAdapter adapter) {
-                getPersistenceSession().makePersistentInTransaction(adapter);
-            }
-
-            @Override
-            public void remove(final ObjectAdapter adapter) {
-                getPersistenceSession().destroyObjectInTransaction(adapter);
-            }
-
-            @Override
-            public ObjectAdapter createTransientInstance(final ObjectSpecification spec) {
-                return getPersistenceSession().createTransientInstance(spec);
-            }
-
-            @Override
-            public ObjectAdapter createViewModelInstance(ObjectSpecification spec, String memento) {
-                return getPersistenceSession().createViewModelInstance(spec, memento);
-            }
-
-            @Override
-            public Object lookup(
-                    final Bookmark bookmark,
-                    final BookmarkService2.FieldResetPolicy fieldResetPolicy) {
-                return new DomainObjectContainerResolve().lookup(bookmark, fieldResetPolicy);
-            }
-
-
-            @Override
-            public Bookmark bookmarkFor(Object domainObject) {
-                return new DomainObjectContainerResolve().bookmarkFor(domainObject);
-            }
-
-            @Override
-            public Bookmark bookmarkFor(Class<?> cls, String identifier) {
-                return new DomainObjectContainerResolve().bookmarkFor(cls, identifier);
-            }
-
-            @Override
-            public void resolve(final Object parent) {
-                new DomainObjectContainerResolve().resolve(parent);
-            }
-
-            @Override
-            public void resolve(final Object parent, final Object field) {
-                new DomainObjectContainerResolve().resolve(parent, field);
-            }
-
-            @Override
-            public void beginTran() {
-                getTransactionManager().startTransaction();
-            }
-
-            @Override
-            public boolean flush() {
-                return getTransactionManager().flushTransaction();
-            }
-
-            @Override
-            public void commit() {
-                getTransactionManager().endTransaction();
-            }
-
-            @Override
-            public <T> List<ObjectAdapter> allMatchingQuery(final Query<T> query) {
-                return getPersistenceSession().allMatchingQuery(query);
-            }
-
-            @Override
-            public <T> ObjectAdapter firstMatchingQuery(final Query<T> query) {
-                return getPersistenceSession().firstMatchingQuery(query);
-            }
-        };
-
-        this.messageBrokerService = new MessageBrokerServiceAbstract() {
-
-            @Override
-            public void informUser(final String message) {
-                getMessageBroker().addMessage(message);
-            }
-
-            @Override
-            public void warnUser(final String message) {
-                getMessageBroker().addWarning(message);
-            }
-
-            @Override
-            public void raiseError(final String message) {
-                throw new RecoverableException(message);
-            }
-
-
-        };
-        this.localizationProvider = new LocalizationProviderAbstract() {
-
-            @Override
-            public Localization getLocalization() {
-                return IsisContext.getLocalization();
-            }
-        };
-    }
-
-    // //////////////////////////////////////////////////////////////////
-    // Components
-    // //////////////////////////////////////////////////////////////////
-
-    @Override
-    public LocalizationProviderAbstract getLocalizationProvider() {
-        return localizationProvider;
-    }
-
-    @Override
-    public PersistenceSessionService getPersistenceSessionService() {
-        return persistenceSessionService;
-    }
-
-    @Override
-    public MessageBrokerService getMessageBrokerService() {
-        return messageBrokerService;
-    }
-
-    // ///////////////////////////////////////////
-    // Dependencies (from context)
-    // ///////////////////////////////////////////
-
-
-    @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();
-    }
-
-    private static IsisTransactionManager getTransactionManager() {
-        return getPersistenceSession().getTransactionManager();
-    }
-
-    private static MessageBroker getMessageBroker() {
-        return IsisContext.getMessageBroker();
-    }
-
-
-}

http://git-wip-us.apache.org/repos/asf/isis/blob/a2a9f519/core/runtime/src/main/java/org/apache/isis/core/runtime/services/background/BackgroundCommandExecution.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/services/background/BackgroundCommandExecution.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/services/background/BackgroundCommandExecution.java
index 2b3c8cb..4ae9afd 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/services/background/BackgroundCommandExecution.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/services/background/BackgroundCommandExecution.java
@@ -44,7 +44,7 @@ import org.apache.isis.core.metamodel.spec.feature.ObjectAssociation;
 import org.apache.isis.core.metamodel.spec.feature.OneToOneAssociation;
 import org.apache.isis.core.runtime.services.memento.MementoServiceDefault;
 import org.apache.isis.core.runtime.sessiontemplate.AbstractIsisSessionTemplate;
-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.IsisTransactionManager;
 import org.apache.isis.core.runtime.system.transaction.TransactionalClosure;
 import org.apache.isis.schema.cmd.v1.ActionDto;
@@ -80,7 +80,7 @@ public abstract class BackgroundCommandExecution extends AbstractIsisSessionTemp
     
     protected void doExecute(Object context) {
 
-        final PersistenceSession persistenceSession = getPersistenceSession();
+        final PersistenceSessionInternal persistenceSession = getPersistenceSession();
         final IsisTransactionManager transactionManager = getTransactionManager(persistenceSession);
         final List<Command> backgroundCommands = Lists.newArrayList();
         transactionManager.executeWithinTransaction(new TransactionalClosure() {

http://git-wip-us.apache.org/repos/asf/isis/blob/a2a9f519/core/runtime/src/main/java/org/apache/isis/core/runtime/services/homepage/HomePageProviderServiceDefault.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/services/homepage/HomePageProviderServiceDefault.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/services/homepage/HomePageProviderServiceDefault.java
index f712a5b..9018e0e 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/services/homepage/HomePageProviderServiceDefault.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/services/homepage/HomePageProviderServiceDefault.java
@@ -36,7 +36,7 @@ import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 import org.apache.isis.core.metamodel.spec.feature.Contributed;
 import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
 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;
 
 @DomainService(
         nature = NatureOfService.DOMAIN
@@ -105,7 +105,7 @@ public class HomePageProviderServiceDefault implements HomePageProviderService {
     // for any other value for Where
     protected static final Where WHERE_FOR_ACTION_INVOCATION = Where.ANYWHERE;
 
-    protected PersistenceSession getPersistenceSession() {
+    protected PersistenceSessionInternal getPersistenceSession() {
         return IsisContext.getPersistenceSession();
     }
 

http://git-wip-us.apache.org/repos/asf/isis/blob/a2a9f519/core/runtime/src/main/java/org/apache/isis/core/runtime/services/l10n/LocalizationProviderInternalDefault.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/services/l10n/LocalizationProviderInternalDefault.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/services/l10n/LocalizationProviderInternalDefault.java
new file mode 100644
index 0000000..077bc3d
--- /dev/null
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/services/l10n/LocalizationProviderInternalDefault.java
@@ -0,0 +1,37 @@
+/*
+ *  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.runtime.services.l10n;
+
+import org.apache.isis.applib.annotation.DomainService;
+import org.apache.isis.applib.annotation.NatureOfService;
+import org.apache.isis.applib.profiles.Localization;
+import org.apache.isis.core.metamodel.services.l10n.LocalizationProviderInternalAbstract;
+import org.apache.isis.core.runtime.system.context.IsisContext;
+
+@DomainService(
+        nature = NatureOfService.DOMAIN,
+        menuOrder = "" + (Integer.MAX_VALUE - 1)  // ie before the Noop impl in metamodel
+)
+public class LocalizationProviderInternalDefault extends LocalizationProviderInternalAbstract {
+
+    @Override
+    public Localization getLocalization() {
+        return IsisContext.getLocalization();
+    }
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/a2a9f519/core/runtime/src/main/java/org/apache/isis/core/runtime/services/msgbroker/MessageBrokerServiceInternalDefault.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/services/msgbroker/MessageBrokerServiceInternalDefault.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/services/msgbroker/MessageBrokerServiceInternalDefault.java
new file mode 100644
index 0000000..4e4e4c7
--- /dev/null
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/services/msgbroker/MessageBrokerServiceInternalDefault.java
@@ -0,0 +1,53 @@
+/*
+ *  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.runtime.services.msgbroker;
+
+import org.apache.isis.applib.RecoverableException;
+import org.apache.isis.applib.annotation.DomainService;
+import org.apache.isis.applib.annotation.NatureOfService;
+import org.apache.isis.core.commons.authentication.MessageBroker;
+import org.apache.isis.core.metamodel.services.msgbroker.MessageBrokerServiceInternalAbstract;
+import org.apache.isis.core.runtime.system.context.IsisContext;
+
+@DomainService(
+        nature = NatureOfService.DOMAIN,
+        menuOrder = "" + (Integer.MAX_VALUE - 1)  // ie before the Noop impl in metamodel
+)
+public class MessageBrokerServiceInternalDefault extends MessageBrokerServiceInternalAbstract {
+
+    @Override
+    public void informUser(final String message) {
+        getMessageBroker().addMessage(message);
+    }
+
+    @Override
+    public void warnUser(final String message) {
+        getMessageBroker().addWarning(message);
+    }
+
+    @Override
+    public void raiseError(final String message) {
+        throw new RecoverableException(message);
+    }
+
+    private static MessageBroker getMessageBroker() {
+        return IsisContext.getMessageBroker();
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/a2a9f519/core/runtime/src/main/java/org/apache/isis/core/runtime/services/persistsession/PersistenceSessionServiceInternalDefault.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/services/persistsession/PersistenceSessionServiceInternalDefault.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/services/persistsession/PersistenceSessionServiceInternalDefault.java
new file mode 100644
index 0000000..5605b73
--- /dev/null
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/services/persistsession/PersistenceSessionServiceInternalDefault.java
@@ -0,0 +1,157 @@
+/*
+ *  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.runtime.services.persistsession;
+
+import java.util.List;
+
+import org.apache.isis.applib.annotation.DomainService;
+import org.apache.isis.applib.annotation.NatureOfService;
+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.oid.Oid;
+import org.apache.isis.core.metamodel.services.persistsession.PersistenceSessionServiceInternalAbstract;
+import org.apache.isis.core.metamodel.spec.ObjectSpecification;
+import org.apache.isis.core.metamodel.spec.feature.OneToManyAssociation;
+import org.apache.isis.core.runtime.persistence.container.DomainObjectContainerResolve;
+import org.apache.isis.core.runtime.system.context.IsisContext;
+import org.apache.isis.core.runtime.system.persistence.PersistenceSessionInternal;
+import org.apache.isis.core.runtime.system.transaction.IsisTransactionManager;
+
+@DomainService(
+        nature = NatureOfService.DOMAIN,
+        menuOrder = "" + (Integer.MAX_VALUE - 1)  // ie before the Noop impl in metamodel
+)
+public class PersistenceSessionServiceInternalDefault extends PersistenceSessionServiceInternalAbstract {
+
+    @Override
+    public ObjectAdapter getAdapterFor(Oid oid) {
+        return getPersistenceSession().getAdapterFor(oid);
+    }
+
+    @Override
+    public ObjectAdapter getAdapterFor(final Object pojo) {
+        return getPersistenceSession().getAdapterFor(pojo);
+    }
+
+    @Override
+    public ObjectAdapter adapterFor(final Object pojo) {
+        return getPersistenceSession().adapterFor(pojo);
+    }
+
+    @Override
+    public ObjectAdapter adapterFor(
+            final Object pojo,
+            final ObjectAdapter ownerAdapter,
+            final OneToManyAssociation collection) {
+        return getPersistenceSession().adapterFor(pojo, ownerAdapter, collection);
+    }
+
+    @Override
+    public ObjectAdapter mapRecreatedPojo(Oid oid, Object recreatedPojo) {
+        return getPersistenceSession().mapRecreatedPojo(oid, recreatedPojo);
+    }
+
+    @Override
+    public void removeAdapter(ObjectAdapter adapter) {
+        getPersistenceSession().removeAdapter(adapter);
+    }
+
+    @Override
+    public void makePersistent(final ObjectAdapter adapter) {
+        getPersistenceSession().makePersistentInTransaction(adapter);
+    }
+
+    @Override
+    public void remove(final ObjectAdapter adapter) {
+        getPersistenceSession().destroyObjectInTransaction(adapter);
+    }
+
+    @Override
+    public ObjectAdapter createTransientInstance(final ObjectSpecification spec) {
+        return getPersistenceSession().createTransientInstance(spec);
+    }
+
+    @Override
+    public ObjectAdapter createViewModelInstance(ObjectSpecification spec, String memento) {
+        return getPersistenceSession().createViewModelInstance(spec, memento);
+    }
+
+    @Override
+    public Object lookup(
+            final Bookmark bookmark,
+            final BookmarkService2.FieldResetPolicy fieldResetPolicy) {
+        return new DomainObjectContainerResolve().lookup(bookmark, fieldResetPolicy);
+    }
+
+    @Override
+    public Bookmark bookmarkFor(Object domainObject) {
+        return new DomainObjectContainerResolve().bookmarkFor(domainObject);
+    }
+
+    @Override
+    public Bookmark bookmarkFor(Class<?> cls, String identifier) {
+        return new DomainObjectContainerResolve().bookmarkFor(cls, identifier);
+    }
+
+    @Override
+    public void resolve(final Object parent) {
+        new DomainObjectContainerResolve().resolve(parent);
+    }
+
+    @Override
+    public void resolve(final Object parent, final Object field) {
+        new DomainObjectContainerResolve().resolve(parent, field);
+    }
+
+    @Override
+    public void beginTran() {
+        getTransactionManager().startTransaction();
+    }
+
+    @Override
+    public boolean flush() {
+        return getTransactionManager().flushTransaction();
+    }
+
+    @Override
+    public void commit() {
+        getTransactionManager().endTransaction();
+    }
+
+    @Override
+    public <T> List<ObjectAdapter> allMatchingQuery(final Query<T> query) {
+        return getPersistenceSession().allMatchingQuery(query);
+    }
+
+    @Override
+    public <T> ObjectAdapter firstMatchingQuery(final Query<T> query) {
+        return getPersistenceSession().firstMatchingQuery(query);
+    }
+
+    public static PersistenceSessionInternal getPersistenceSession() {
+        return IsisContext.getPersistenceSession();
+    }
+
+    static IsisTransactionManager getTransactionManager() {
+        return getPersistenceSession().getTransactionManager();
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/a2a9f519/core/runtime/src/main/java/org/apache/isis/core/runtime/services/publish/PublishingServiceInternalDefault.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/services/publish/PublishingServiceInternalDefault.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/services/publish/PublishingServiceInternalDefault.java
index dea1dc3..f84f6a3 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/services/publish/PublishingServiceInternalDefault.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/services/publish/PublishingServiceInternalDefault.java
@@ -71,7 +71,7 @@ import org.apache.isis.core.metamodel.services.publishing.PublishingServiceInter
 import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
 import org.apache.isis.core.runtime.services.changes.ChangedObjectsServiceInternal;
 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.IsisTransactionManager;
 
 /**
@@ -98,7 +98,7 @@ public class PublishingServiceInternalDefault implements PublishingServiceIntern
             getPersistenceSession().remapRecreatedPojo(adapter, replacementObject);
             return adapter;
         }
-        protected PersistenceSession getPersistenceSession() {
+        protected PersistenceSessionInternal getPersistenceSession() {
             return IsisContext.getPersistenceSession();
         }
 

http://git-wip-us.apache.org/repos/asf/isis/blob/a2a9f519/core/runtime/src/main/java/org/apache/isis/core/runtime/services/transtate/TransactionStateProviderInternalDefault.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/services/transtate/TransactionStateProviderInternalDefault.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/services/transtate/TransactionStateProviderInternalDefault.java
new file mode 100644
index 0000000..5fbc4b9
--- /dev/null
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/services/transtate/TransactionStateProviderInternalDefault.java
@@ -0,0 +1,55 @@
+/*
+ *  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.runtime.services.transtate;
+
+import org.apache.isis.applib.annotation.DomainService;
+import org.apache.isis.applib.annotation.NatureOfService;
+import org.apache.isis.core.metamodel.transactions.TransactionState;
+import org.apache.isis.core.metamodel.services.transtate.TransactionStateProviderInternalAbstract;
+import org.apache.isis.core.runtime.system.context.IsisContext;
+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.IsisTransactionManager;
+
+
+@DomainService(
+        nature = NatureOfService.DOMAIN,
+        menuOrder = "" + (Integer.MAX_VALUE - 1)  // ie before the Noop impl in metamodel
+)
+public class TransactionStateProviderInternalDefault extends TransactionStateProviderInternalAbstract {
+
+    @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 IsisTransactionManager getTransactionManager() {
+        return getPersistenceSession().getTransactionManager();
+    }
+
+    private static PersistenceSessionInternal getPersistenceSession() {
+        return IsisContext.getPersistenceSession();
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/a2a9f519/core/runtime/src/main/java/org/apache/isis/core/runtime/services/xmlsnapshot/XmlSnapshotServiceDefault.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/services/xmlsnapshot/XmlSnapshotServiceDefault.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/services/xmlsnapshot/XmlSnapshotServiceDefault.java
index e31d155..a2ed146 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/services/xmlsnapshot/XmlSnapshotServiceDefault.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/services/xmlsnapshot/XmlSnapshotServiceDefault.java
@@ -26,7 +26,7 @@ import org.apache.isis.core.metamodel.adapter.oid.OidMarshaller;
 import org.apache.isis.core.runtime.snapshot.XmlSnapshot;
 import org.apache.isis.core.runtime.snapshot.XmlSnapshotBuilder;
 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;
 
 /**
  * This service allows an XML document to be generated capturing the data of a root entity and specified related
@@ -90,7 +90,7 @@ public class XmlSnapshotServiceDefault extends XmlSnapshotServiceAbstract {
     
     // //////////////////////////////////////
 
-    protected PersistenceSession gerPersistenceSession() {
+    protected PersistenceSessionInternal gerPersistenceSession() {
         return IsisContext.getPersistenceSession();
     }
 

http://git-wip-us.apache.org/repos/asf/isis/blob/a2a9f519/core/runtime/src/main/java/org/apache/isis/core/runtime/sessiontemplate/AbstractIsisSessionTemplate.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/sessiontemplate/AbstractIsisSessionTemplate.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/sessiontemplate/AbstractIsisSessionTemplate.java
index 324dd6c..8fa7749 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/sessiontemplate/AbstractIsisSessionTemplate.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/sessiontemplate/AbstractIsisSessionTemplate.java
@@ -22,7 +22,7 @@ import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager;
 import org.apache.isis.core.metamodel.adapter.oid.RootOid;
 import org.apache.isis.core.metamodel.specloader.SpecificationLoader;
 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.session.IsisSession;
 import org.apache.isis.core.runtime.system.transaction.IsisTransactionManager;
 import org.apache.isis.core.runtime.system.transaction.TransactionalClosure;
@@ -35,7 +35,7 @@ public abstract class AbstractIsisSessionTemplate {
     public void execute(final AuthenticationSession authSession, final Object context) {
         try {
             IsisContext.openSession(authSession);
-            PersistenceSession persistenceSession = getPersistenceSession();
+            PersistenceSessionInternal persistenceSession = getPersistenceSession();
             persistenceSession.getServicesInjector().injectServicesInto(this);
             doExecute(context);
         } finally {
@@ -58,7 +58,7 @@ public abstract class AbstractIsisSessionTemplate {
      * transaction handling.
      */
     protected void doExecute(final Object context) {
-        final PersistenceSession persistenceSession = getPersistenceSession();
+        final PersistenceSessionInternal persistenceSession = getPersistenceSession();
         final IsisTransactionManager transactionManager = getTransactionManager(persistenceSession);
         transactionManager.executeWithinTransaction(new TransactionalClosure() {
             @Override
@@ -90,11 +90,11 @@ public abstract class AbstractIsisSessionTemplate {
     
     // //////////////////////////////////////
     
-    protected PersistenceSession getPersistenceSession() {
+    protected PersistenceSessionInternal getPersistenceSession() {
         return IsisContext.getPersistenceSession();
     }
 
-    protected IsisTransactionManager getTransactionManager(PersistenceSession persistenceSession) {
+    protected IsisTransactionManager getTransactionManager(PersistenceSessionInternal persistenceSession) {
         return persistenceSession.getTransactionManager();
     }
 

http://git-wip-us.apache.org/repos/asf/isis/blob/a2a9f519/core/runtime/src/main/java/org/apache/isis/core/runtime/snapshot/XmlSnapshotBuilder.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/snapshot/XmlSnapshotBuilder.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/snapshot/XmlSnapshotBuilder.java
index 6c50c59..2070ddb 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/snapshot/XmlSnapshotBuilder.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/snapshot/XmlSnapshotBuilder.java
@@ -25,7 +25,7 @@ import com.google.common.collect.Lists;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.core.metamodel.adapter.oid.OidMarshaller;
 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;
 
 /**
  * Builds an {@link XmlSnapshot} using a fluent use through a builder:
@@ -93,7 +93,7 @@ public class XmlSnapshotBuilder {
     // Dependencies (from context)
     // ///////////////////////////////////////////////////////
 
-    private static PersistenceSession getPersistenceSession() {
+    private static PersistenceSessionInternal getPersistenceSession() {
         return IsisContext.getPersistenceSession();
     }
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/isis/blob/a2a9f519/core/runtime/src/main/java/org/apache/isis/core/runtime/system/IsisSystem.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/IsisSystem.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/IsisSystem.java
index 6aef396..5b7fdc2 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/IsisSystem.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/IsisSystem.java
@@ -40,6 +40,7 @@ import org.apache.isis.core.commons.config.IsisConfigurationDefault;
 import org.apache.isis.core.commons.lang.ListExtensions;
 import org.apache.isis.core.metamodel.facetapi.MetaModelRefiner;
 import org.apache.isis.core.metamodel.runtimecontext.ConfigurationServiceInternal;
+import org.apache.isis.core.metamodel.runtimecontext.RuntimeContext;
 import org.apache.isis.core.metamodel.services.ServicesInjector;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 import org.apache.isis.core.metamodel.specloader.ServiceInitializer;
@@ -49,14 +50,13 @@ import org.apache.isis.core.runtime.authentication.AuthenticationManager;
 import org.apache.isis.core.runtime.authentication.exploration.ExplorationSession;
 import org.apache.isis.core.runtime.authorization.AuthorizationManager;
 import org.apache.isis.core.runtime.fixtures.FixturesInstaller;
-import org.apache.isis.core.runtime.persistence.internal.RuntimeContextFromSession;
 import org.apache.isis.core.runtime.system.context.IsisContext;
 import org.apache.isis.core.runtime.system.internal.InitialisationSession;
 import org.apache.isis.core.runtime.system.internal.IsisLocaleInitializer;
 import org.apache.isis.core.runtime.system.internal.IsisTimeZoneInitializer;
-import org.apache.isis.core.runtime.system.persistence.PersistenceSession;
 import org.apache.isis.core.runtime.system.persistence.PersistenceSessionFactory;
 import org.apache.isis.core.runtime.system.persistence.PersistenceSessionFactoryMetamodelRefiner;
+import org.apache.isis.core.runtime.system.persistence.PersistenceSessionInternal;
 import org.apache.isis.core.runtime.system.session.IsisSessionFactory;
 import org.apache.isis.core.runtime.system.transaction.IsisTransactionManager;
 import org.apache.isis.core.runtime.system.transaction.IsisTransactionManagerException;
@@ -175,10 +175,7 @@ public class IsisSystem implements ApplicationScopedComponent {
             servicesInjector.addFallbackIfRequired(PersistenceSessionFactory.class, persistenceSessionFactory);
 
             // runtimeContext
-            final RuntimeContextFromSession runtimeContext =
-                    new RuntimeContextFromSession(
-                            deploymentType.getDeploymentCategory(), configuration,
-                            servicesInjector, specificationLoader);
+            final RuntimeContext runtimeContext = new RuntimeContext(servicesInjector);
 
             // wire up components and components into services...
             runtimeContext.injectInto(specificationLoader);
@@ -332,7 +329,7 @@ public class IsisSystem implements ApplicationScopedComponent {
         return getPersistenceSession().getServicesInjector();
     }
 
-    private PersistenceSession getPersistenceSession() {
+    private PersistenceSessionInternal getPersistenceSession() {
         return IsisContext.getPersistenceSession();
     }
 

http://git-wip-us.apache.org/repos/asf/isis/blob/a2a9f519/core/runtime/src/main/java/org/apache/isis/core/runtime/system/context/IsisContext.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/context/IsisContext.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/context/IsisContext.java
index 610df72..729f75c 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/context/IsisContext.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/context/IsisContext.java
@@ -35,13 +35,13 @@ import org.apache.isis.core.commons.config.IsisConfiguration;
 import org.apache.isis.core.commons.config.IsisConfigurationException;
 import org.apache.isis.core.commons.exceptions.IsisException;
 import org.apache.isis.core.metamodel.adapter.oid.OidMarshaller;
-import org.apache.isis.core.metamodel.runtimecontext.LocalizationDefault;
+import org.apache.isis.core.metamodel.services.l10n.LocalizationDefault;
 import org.apache.isis.core.metamodel.specloader.SpecificationLoader;
 import org.apache.isis.core.metamodel.specloader.validator.MetaModelInvalidException;
 import org.apache.isis.core.runtime.authentication.AuthenticationManager;
 import org.apache.isis.core.runtime.system.DeploymentType;
 import org.apache.isis.core.runtime.system.internal.InitialisationSession;
-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.session.IsisSession;
 import org.apache.isis.core.runtime.system.session.IsisSessionFactory;
 import org.apache.isis.core.runtime.system.transaction.IsisTransaction;
@@ -475,7 +475,7 @@ public class IsisContext {
      * 
      * @see IsisSession#getPersistenceSession()
      */
-    public static PersistenceSession getPersistenceSession() {
+    public static PersistenceSessionInternal getPersistenceSession() {
         return getSession().getPersistenceSession();
     }
 
@@ -490,7 +490,7 @@ public class IsisContext {
      * Convenience methods
      * 
      * @see IsisSession#getPersistenceSession()
-     * @see PersistenceSession#getTransactionManager()
+     * @see PersistenceSessionInternal#getTransactionManager()
      */
     public static IsisTransactionManager getTransactionManager() {
         return getPersistenceSession().getTransactionManager();
@@ -514,10 +514,10 @@ public class IsisContext {
      * 
      * <p>
      * Transactions are managed using the {@link IsisTransactionManager}
-     * obtainable from the {@link IsisSession's} {@link PersistenceSession}.
+     * obtainable from the {@link IsisSession's} {@link PersistenceSessionInternal}.
      * 
      * @see IsisSession#getCurrentTransaction()
-     * @see PersistenceSession#getTransactionManager()
+     * @see PersistenceSessionInternal#getTransactionManager()
      */
     public static IsisTransaction getCurrentTransaction() {
         return getSession().getCurrentTransaction();

http://git-wip-us.apache.org/repos/asf/isis/blob/a2a9f519/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/ObjectFactory.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/ObjectFactory.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/ObjectFactory.java
index cb16dec..13ac289 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/ObjectFactory.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/ObjectFactory.java
@@ -26,11 +26,11 @@ import org.apache.isis.core.metamodel.spec.ObjectInstantiationException;
 
 public class ObjectFactory {
 
-    private final PersistenceSession persistenceSession;
+    private final PersistenceSessionInternal persistenceSession;
     private final ServicesInjector servicesInjector;
 
     public ObjectFactory(
-            final PersistenceSession persistenceSession,
+            final PersistenceSessionInternal persistenceSession,
             final ServicesInjector servicesInjector) {
         this.persistenceSession = persistenceSession;
         this.servicesInjector = servicesInjector;