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

[39/51] [abbrv] isis git commit: ISIS-1409: removing the *Aware interfaces for the internal components of RuntimeContext (PersistenceSession, Localization, MessageBroker, TranState), also removing AdapterManagerAware.

http://git-wip-us.apache.org/repos/asf/isis/blob/ce7d41d8/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 f7de429..f6ab040 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
@@ -22,21 +22,14 @@ 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.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;
 
 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) {
@@ -44,61 +37,20 @@ public class RuntimeContext implements ApplicationScopedComponent {
 
         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;
-    }
-
-    @Programmatic
     public PersistenceSessionServiceInternal getPersistenceSessionService() {
         return persistenceSessionServiceInternal;
     }
 
     @Programmatic
-    public MessageBrokerServiceInternal getMessageBrokerService() {
-        return messageBrokerServiceInternal;
-    }
-
-
-    @Programmatic
-    public TransactionStateProviderInternal getTransactionStateProvider() {
-        return transactionStateProvider;
-    }
-
-
-    @Programmatic
     public ServicesInjector getServicesInjector() {
         return servicesInjector;
     }
 
 
-    @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);
-    }
-
-    protected void injectSubcomponentsInto(final Object candidate) {
-        getTransactionStateProvider().injectInto(candidate);
-        getServicesInjector().injectInto(candidate);
-        getLocalizationProvider().injectInto(candidate);
-        getPersistenceSessionService().injectInto(candidate);
-        getMessageBrokerService().injectInto(candidate);
-    }
-
-
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/ce7d41d8/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/container/DomainObjectContainerDefault.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/container/DomainObjectContainerDefault.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/container/DomainObjectContainerDefault.java
index c00ab71..bfa2120 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/container/DomainObjectContainerDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/container/DomainObjectContainerDefault.java
@@ -54,8 +54,6 @@ import org.apache.isis.applib.services.xactn.TransactionService;
 import org.apache.isis.core.commons.ensure.Assert;
 import org.apache.isis.core.commons.exceptions.IsisException;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager;
-import org.apache.isis.core.metamodel.adapter.mgr.AdapterManagerAware;
 import org.apache.isis.core.metamodel.adapter.version.ConcurrencyException;
 import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
 import org.apache.isis.core.metamodel.consent.InteractionResult;
@@ -68,7 +66,7 @@ import org.apache.isis.core.metamodel.specloader.SpecificationLoader;
 
 @DomainService(nature = NatureOfService.DOMAIN)
 public class DomainObjectContainerDefault
-        implements DomainObjectContainer, AdapterManagerAware, ExceptionRecognizer {
+        implements DomainObjectContainer, ExceptionRecognizer {
 
 
     //region > titleOf
@@ -110,7 +108,7 @@ public class DomainObjectContainerDefault
         if (!spec.containsFacet(ViewModelFacet.class)) {
             throw new IsisException("Type must be a ViewModel: " + ofClass);
         }
-        final ObjectAdapter adapter = getPersistenceSessionService().createViewModelInstance(spec, memento);
+        final ObjectAdapter adapter = persistenceSessionServiceInternal.createViewModelInstance(spec, memento);
         if(adapter.getOid().isViewModel()) {
             return (T)adapter.getObject();
         } else {
@@ -173,12 +171,12 @@ public class DomainObjectContainerDefault
         if (persistentObject == null) {
             throw new IllegalArgumentException("Must specify a reference for disposing an object");
         }
-        final ObjectAdapter adapter = getAdapterManager().adapterFor(unwrapped(persistentObject));
+        final ObjectAdapter adapter = persistenceSessionServiceInternal.adapterFor(unwrapped(persistentObject));
         if (!isPersistent(persistentObject)) {
             throw new RepositoryException("Object not persistent: " + adapter);
         }
 
-        getPersistenceSessionService().remove(adapter);
+        persistenceSessionServiceInternal.remove(adapter);
     }
 
     @Programmatic
@@ -240,7 +238,7 @@ public class DomainObjectContainerDefault
     @Deprecated
     @Override
     public void resolve(final Object parent) {
-        getPersistenceSessionService().resolve(unwrapped(parent));
+        persistenceSessionServiceInternal.resolve(unwrapped(parent));
     }
 
     /**
@@ -258,7 +256,7 @@ public class DomainObjectContainerDefault
     @Deprecated
     @Override
     public void resolve(final Object parent, final Object field) {
-        getPersistenceSessionService().resolve(unwrapped(parent), field);
+        persistenceSessionServiceInternal.resolve(unwrapped(parent), field);
     }
 
     /**
@@ -292,7 +290,7 @@ public class DomainObjectContainerDefault
     @Programmatic
     @Override
     public void commit() {
-        getPersistenceSessionService().commit();
+        persistenceSessionServiceInternal.commit();
     }
 
     //endregion
@@ -308,7 +306,7 @@ public class DomainObjectContainerDefault
     @Programmatic
     @Override
     public String validate(final Object domainObject) {
-        final ObjectAdapter adapter = getAdapterManager().adapterFor(unwrapped(domainObject));
+        final ObjectAdapter adapter = persistenceSessionServiceInternal.adapterFor(unwrapped(domainObject));
         final InteractionResult validityResult =
                 adapter.getSpecification().isValidResult(adapter, InteractionInitiatedBy.FRAMEWORK);
         return validityResult.getReason();
@@ -322,7 +320,7 @@ public class DomainObjectContainerDefault
     @Programmatic
     @Override
     public boolean isViewModel(final Object domainObject) {
-        final ObjectAdapter adapter = getAdapterManager().adapterFor(unwrapped(domainObject));
+        final ObjectAdapter adapter = persistenceSessionServiceInternal.adapterFor(unwrapped(domainObject));
         return adapter.getSpecification().isViewModel();
     }
     //endregion
@@ -333,7 +331,7 @@ public class DomainObjectContainerDefault
     @Programmatic
     @Override
     public boolean isPersistent(final Object domainObject) {
-        final ObjectAdapter adapter = getAdapterManager().adapterFor(unwrapped(domainObject));
+        final ObjectAdapter adapter = persistenceSessionServiceInternal.adapterFor(unwrapped(domainObject));
         return adapter.representsPersistent();
     }
 
@@ -343,7 +341,7 @@ public class DomainObjectContainerDefault
     @Programmatic
     @Override
     public void persist(final Object domainObject) {
-        final ObjectAdapter adapter = getAdapterManager().adapterFor(unwrapped(domainObject));
+        final ObjectAdapter adapter = persistenceSessionServiceInternal.adapterFor(unwrapped(domainObject));
 
         if(adapter == null) {
             throw new PersistFailedException("Object not known to framework; instantiate using newTransientInstance(...) rather than simply new'ing up.");
@@ -355,7 +353,7 @@ public class DomainObjectContainerDefault
         if (isPersistent(domainObject)) {
             throw new PersistFailedException("Object already persistent; OID=" + adapter.getOid());
         }
-        getPersistenceSessionService().makePersistent(adapter);
+        persistenceSessionServiceInternal.makePersistent(adapter);
     }
 
     /**
@@ -531,7 +529,7 @@ public class DomainObjectContainerDefault
         // NB: this impl does NOT delegate to RepositoryService, because this implementation incorrectly always performs a flush
         // irrespective of the autoflush setting.  (The RepositoryService corrects that error).
         flush(); // auto-flush any pending changes
-        final ObjectAdapter firstMatching = getPersistenceSessionService().firstMatchingQuery(query);
+        final ObjectAdapter firstMatching = persistenceSessionServiceInternal.firstMatchingQuery(query);
         return (T) ObjectAdapter.Util.unwrap(firstMatching);
     }
 
@@ -646,29 +644,6 @@ public class DomainObjectContainerDefault
     }
     //endregion
 
-    //region > framework dependencies
-
-    private AdapterManager adapterManager;
-
-
-    protected AdapterManager getAdapterManager() {
-        return adapterManager;
-    }
-
-    @Programmatic
-    @Override
-    public void setAdapterManager(final AdapterManager adapterManager) {
-        this.adapterManager = adapterManager;
-    }
-
-    protected PersistenceSessionServiceInternal getPersistenceSessionService() {
-        return persistenceSessionServiceInternal;
-    }
-
-
-
-
-    //endregion
 
     //region > service dependencies
 

http://git-wip-us.apache.org/repos/asf/isis/blob/ce7d41d8/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/l10n/LocalizationProviderAware.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/l10n/LocalizationProviderAware.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/l10n/LocalizationProviderAware.java
deleted file mode 100644
index 1282f1f..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/l10n/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.services.l10n;
-
-public interface LocalizationProviderAware {
-
-    void setLocalizationProvider(LocalizationProviderInternal localizationProviderInternal);
-
-}

http://git-wip-us.apache.org/repos/asf/isis/blob/ce7d41d8/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/l10n/LocalizationProviderInternal.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/l10n/LocalizationProviderInternal.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/l10n/LocalizationProviderInternal.java
index d841bd5..f35632e 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/l10n/LocalizationProviderInternal.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/l10n/LocalizationProviderInternal.java
@@ -25,9 +25,6 @@ import org.apache.isis.applib.profiles.Localization;
 public interface LocalizationProviderInternal {
 
     @Programmatic
-    void injectInto(final Object candidate);
-
-    @Programmatic
     Localization getLocalization();
 
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/ce7d41d8/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/l10n/LocalizationProviderInternalAbstract.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/l10n/LocalizationProviderInternalAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/l10n/LocalizationProviderInternalAbstract.java
deleted file mode 100644
index 470e13f..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/l10n/LocalizationProviderInternalAbstract.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.services.l10n;
-
-public abstract class LocalizationProviderInternalAbstract implements LocalizationProviderInternal {
-
-    @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/ce7d41d8/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/l10n/LocalizationProviderInternalNoop.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/l10n/LocalizationProviderInternalNoop.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/l10n/LocalizationProviderInternalNoop.java
index bc5b0a4..39e5c69 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/l10n/LocalizationProviderInternalNoop.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/l10n/LocalizationProviderInternalNoop.java
@@ -5,7 +5,7 @@ import org.apache.isis.applib.annotation.NatureOfService;
 import org.apache.isis.applib.profiles.Localization;
 
 @DomainService(nature = NatureOfService.DOMAIN)
-public class LocalizationProviderInternalNoop extends LocalizationProviderInternalAbstract {
+public class LocalizationProviderInternalNoop implements LocalizationProviderInternal {
 
     private final Localization defaultLocalization = new LocalizationDefault();
 

http://git-wip-us.apache.org/repos/asf/isis/blob/ce7d41d8/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/message/MessageServiceDefault.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/message/MessageServiceDefault.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/message/MessageServiceDefault.java
deleted file mode 100644
index 7b14c3d..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/message/MessageServiceDefault.java
+++ /dev/null
@@ -1,87 +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.services.message;
-
-import org.apache.isis.applib.annotation.DomainService;
-import org.apache.isis.applib.annotation.NatureOfService;
-import org.apache.isis.applib.annotation.Programmatic;
-import org.apache.isis.applib.services.i18n.TranslatableString;
-import org.apache.isis.applib.services.i18n.TranslationService;
-import org.apache.isis.applib.services.message.MessageService;
-import org.apache.isis.core.metamodel.services.msgbroker.MessageBrokerServiceInternal;
-import org.apache.isis.core.metamodel.services.msgbroker.MessageBrokerServiceAware;
-
-@DomainService(
-        nature = NatureOfService.DOMAIN
-)
-public class MessageServiceDefault implements MessageService, MessageBrokerServiceAware{
-
-    @Programmatic
-    @Override
-    public void informUser(final String message) {
-        messageBrokerServiceInternal.informUser(message);
-    }
-
-    @Override
-    public String informUser(final TranslatableString message, final Class<?> contextClass, final String contextMethod) {
-        return message.translate(translationService, context(contextClass, contextMethod));
-    }
-
-    @Programmatic
-    @Override
-    public void warnUser(final String message) {
-        messageBrokerServiceInternal.warnUser(message);
-    }
-
-    @Override
-    public String warnUser(final TranslatableString message, final Class<?> contextClass, final String contextMethod) {
-        return message.translate(translationService, context(contextClass, contextMethod));
-    }
-
-    @Programmatic
-    @Override
-    public void raiseError(final String message) {
-        messageBrokerServiceInternal.raiseError(message);
-    }
-
-    @Override
-    public String raiseError(final TranslatableString message, final Class<?> contextClass, final String contextMethod) {
-        final String translatedMessage = message.translate(translationService, context(contextClass, contextMethod));
-        messageBrokerServiceInternal.raiseError(translatedMessage);
-        return translatedMessage;
-    }
-
-    private static String context(final Class<?> contextClass, final String contextMethod) {
-        return contextClass.getName()+"#"+contextMethod;
-    }
-
-
-
-    private MessageBrokerServiceInternal messageBrokerServiceInternal;
-
-    @Override
-    public void setMessageBrokerService(final MessageBrokerServiceInternal messageBrokerServiceInternal) {
-        this.messageBrokerServiceInternal = messageBrokerServiceInternal;
-    }
-
-    @javax.inject.Inject
-    TranslationService translationService;
-
-}

http://git-wip-us.apache.org/repos/asf/isis/blob/ce7d41d8/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/message/MessageServiceInternalDefault.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/message/MessageServiceInternalDefault.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/message/MessageServiceInternalDefault.java
new file mode 100644
index 0000000..9ffbecf
--- /dev/null
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/message/MessageServiceInternalDefault.java
@@ -0,0 +1,82 @@
+/*
+ *  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.services.message;
+
+import org.apache.isis.applib.annotation.DomainService;
+import org.apache.isis.applib.annotation.NatureOfService;
+import org.apache.isis.applib.annotation.Programmatic;
+import org.apache.isis.applib.services.i18n.TranslatableString;
+import org.apache.isis.applib.services.i18n.TranslationService;
+import org.apache.isis.applib.services.message.MessageService;
+import org.apache.isis.core.metamodel.services.msgbroker.MessageBrokerServiceInternal;
+
+@DomainService(
+        nature = NatureOfService.DOMAIN
+)
+public class MessageServiceInternalDefault implements MessageService {
+
+    @Programmatic
+    @Override
+    public void informUser(final String message) {
+        messageBrokerServiceInternal.informUser(message);
+    }
+
+    @Override
+    public String informUser(final TranslatableString message, final Class<?> contextClass, final String contextMethod) {
+        return message.translate(translationService, context(contextClass, contextMethod));
+    }
+
+    @Programmatic
+    @Override
+    public void warnUser(final String message) {
+        messageBrokerServiceInternal.warnUser(message);
+    }
+
+    @Override
+    public String warnUser(final TranslatableString message, final Class<?> contextClass, final String contextMethod) {
+        return message.translate(translationService, context(contextClass, contextMethod));
+    }
+
+    @Programmatic
+    @Override
+    public void raiseError(final String message) {
+        messageBrokerServiceInternal.raiseError(message);
+    }
+
+    @Override
+    public String raiseError(final TranslatableString message, final Class<?> contextClass, final String contextMethod) {
+        final String translatedMessage = message.translate(translationService, context(contextClass, contextMethod));
+        messageBrokerServiceInternal.raiseError(translatedMessage);
+        return translatedMessage;
+    }
+
+    private static String context(final Class<?> contextClass, final String contextMethod) {
+        return contextClass.getName()+"#"+contextMethod;
+    }
+
+
+
+    @javax.inject.Inject
+    MessageBrokerServiceInternal messageBrokerServiceInternal;
+
+    @javax.inject.Inject
+    TranslationService translationService;
+
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/ce7d41d8/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/msgbroker/MessageBrokerServiceAware.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/msgbroker/MessageBrokerServiceAware.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/msgbroker/MessageBrokerServiceAware.java
deleted file mode 100644
index 2443150..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/msgbroker/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.services.msgbroker;
-
-public interface MessageBrokerServiceAware {
-
-    public void setMessageBrokerService(final MessageBrokerServiceInternal messageBrokerServiceInternal);
-
-}

http://git-wip-us.apache.org/repos/asf/isis/blob/ce7d41d8/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/msgbroker/MessageBrokerServiceInternal.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/msgbroker/MessageBrokerServiceInternal.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/msgbroker/MessageBrokerServiceInternal.java
index c7d2751..ab04107 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/msgbroker/MessageBrokerServiceInternal.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/msgbroker/MessageBrokerServiceInternal.java
@@ -20,9 +20,6 @@ import org.apache.isis.applib.annotation.Programmatic;
 
 public interface MessageBrokerServiceInternal {
 
-    @Programmatic
-    void injectInto(final Object candidate);
-
     /**
      * Provided by <tt>MessageBroker</tt> when used by framework.
      *

http://git-wip-us.apache.org/repos/asf/isis/blob/ce7d41d8/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/msgbroker/MessageBrokerServiceInternalAbstract.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/msgbroker/MessageBrokerServiceInternalAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/msgbroker/MessageBrokerServiceInternalAbstract.java
deleted file mode 100644
index 1f81bfa..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/msgbroker/MessageBrokerServiceInternalAbstract.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.services.msgbroker;
-
-public abstract class MessageBrokerServiceInternalAbstract implements MessageBrokerServiceInternal {
-
-    @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/ce7d41d8/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/msgbroker/MessageBrokerServiceInternalNoop.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/msgbroker/MessageBrokerServiceInternalNoop.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/msgbroker/MessageBrokerServiceInternalNoop.java
index 093e0f3..8b1b902 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/msgbroker/MessageBrokerServiceInternalNoop.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/msgbroker/MessageBrokerServiceInternalNoop.java
@@ -4,7 +4,7 @@ import org.apache.isis.applib.annotation.DomainService;
 import org.apache.isis.applib.annotation.NatureOfService;
 
 @DomainService(nature = NatureOfService.DOMAIN)
-public class MessageBrokerServiceInternalNoop extends MessageBrokerServiceInternalAbstract {
+public class MessageBrokerServiceInternalNoop implements MessageBrokerServiceInternal {
 
     @Override
     public void informUser(final String message) {

http://git-wip-us.apache.org/repos/asf/isis/blob/ce7d41d8/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/persistsession/PersistenceSessionServiceInternal.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/persistsession/PersistenceSessionServiceInternal.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/persistsession/PersistenceSessionServiceInternal.java
index a00d2ee..763e7b1 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/persistsession/PersistenceSessionServiceInternal.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/persistsession/PersistenceSessionServiceInternal.java
@@ -28,9 +28,6 @@ import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 
 public interface PersistenceSessionServiceInternal extends AdapterManager {
 
-    @Programmatic
-    void injectInto(final Object candidate);
-
     //region > instantiate
 
     /**

http://git-wip-us.apache.org/repos/asf/isis/blob/ce7d41d8/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/persistsession/PersistenceSessionServiceInternalAbstract.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/persistsession/PersistenceSessionServiceInternalAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/persistsession/PersistenceSessionServiceInternalAbstract.java
deleted file mode 100644
index f10cc90..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/persistsession/PersistenceSessionServiceInternalAbstract.java
+++ /dev/null
@@ -1,31 +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.services.persistsession;
-
-import org.apache.isis.core.metamodel.adapter.mgr.AdapterManagerAware;
-
-public abstract class PersistenceSessionServiceInternalAbstract implements PersistenceSessionServiceInternal {
-
-    @Override
-    public void injectInto(final Object candidate) {
-        if (AdapterManagerAware.class.isAssignableFrom(candidate.getClass())) {
-            final AdapterManagerAware cast = AdapterManagerAware.class.cast(candidate);
-            cast.setAdapterManager(this);
-        }
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/isis/blob/ce7d41d8/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/persistsession/PersistenceSessionServiceInternalNoop.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/persistsession/PersistenceSessionServiceInternalNoop.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/persistsession/PersistenceSessionServiceInternalNoop.java
index 63792ba..d5ac62e 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/persistsession/PersistenceSessionServiceInternalNoop.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/persistsession/PersistenceSessionServiceInternalNoop.java
@@ -8,21 +8,13 @@ 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.AdapterManagerAware;
 import org.apache.isis.core.metamodel.adapter.oid.Oid;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 import org.apache.isis.core.metamodel.spec.feature.OneToManyAssociation;
 
 @DomainService(nature = NatureOfService.DOMAIN)
-public class PersistenceSessionServiceInternalNoop extends PersistenceSessionServiceInternalAbstract {
+public class PersistenceSessionServiceInternalNoop implements PersistenceSessionServiceInternal {
 
-    @Override
-    public void injectInto(final Object candidate) {
-        if (AdapterManagerAware.class.isAssignableFrom(candidate.getClass())) {
-            final AdapterManagerAware cast = AdapterManagerAware.class.cast(candidate);
-            cast.setAdapterManager(this);
-        }
-    }
 
     @Override
     public ObjectAdapter getAdapterFor(final Object pojo) {

http://git-wip-us.apache.org/repos/asf/isis/blob/ce7d41d8/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/repository/RepositoryServiceInternalDefault.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/repository/RepositoryServiceInternalDefault.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/repository/RepositoryServiceInternalDefault.java
index d8d6521..6313b50 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/repository/RepositoryServiceInternalDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/repository/RepositoryServiceInternalDefault.java
@@ -39,16 +39,12 @@ import org.apache.isis.applib.services.repository.RepositoryService;
 import org.apache.isis.applib.services.wrapper.WrapperFactory;
 import org.apache.isis.applib.services.xactn.TransactionService;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager;
-import org.apache.isis.core.metamodel.adapter.mgr.AdapterManagerAware;
 import org.apache.isis.core.metamodel.services.persistsession.PersistenceSessionServiceInternal;
 
 @DomainService(
         nature = NatureOfService.DOMAIN
 )
-public class RepositoryServiceInternalDefault
-        implements RepositoryService,
-        AdapterManagerAware {
+public class RepositoryServiceInternalDefault implements RepositoryService {
 
 
 
@@ -75,7 +71,7 @@ public class RepositoryServiceInternalDefault
     @Programmatic
     @Override
     public boolean isPersistent(final Object domainObject) {
-        final ObjectAdapter adapter = adapterManager.adapterFor(unwrapped(domainObject));
+        final ObjectAdapter adapter = persistenceSessionServiceInternal.adapterFor(unwrapped(domainObject));
         return adapter.representsPersistent();
     }
 
@@ -85,7 +81,7 @@ public class RepositoryServiceInternalDefault
         if (isPersistent(object)) {
             return;
         }
-        final ObjectAdapter adapter = adapterManager.adapterFor(unwrapped(object));
+        final ObjectAdapter adapter = persistenceSessionServiceInternal.adapterFor(unwrapped(object));
 
         if(adapter == null) {
             throw new PersistFailedException("Object not known to framework; instantiate using newTransientInstance(...) rather than simply new'ing up.");
@@ -120,7 +116,7 @@ public class RepositoryServiceInternalDefault
         if (object == null) {
             throw new IllegalArgumentException("Must specify a reference for disposing an object");
         }
-        final ObjectAdapter adapter = adapterManager.adapterFor(unwrapped(object));
+        final ObjectAdapter adapter = persistenceSessionServiceInternal.adapterFor(unwrapped(object));
         if (!isPersistent(object)) {
             throw new RepositoryException("Object not persistent: " + adapter);
         }
@@ -253,12 +249,6 @@ public class RepositoryServiceInternalDefault
     @javax.inject.Inject
     TransactionService transactionService;
 
-    private AdapterManager adapterManager;
-    @Override
-    public void setAdapterManager(final AdapterManager adapterManager) {
-        this.adapterManager = adapterManager;
-    }
-
     @javax.inject.Inject
     PersistenceSessionServiceInternal persistenceSessionServiceInternal;
 

http://git-wip-us.apache.org/repos/asf/isis/blob/ce7d41d8/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/title/TitleServiceDefault.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/title/TitleServiceDefault.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/title/TitleServiceDefault.java
index bb61ca1..95b58af 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/title/TitleServiceDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/title/TitleServiceDefault.java
@@ -19,22 +19,21 @@
 
 package org.apache.isis.core.metamodel.services.title;
 
+import javax.inject.Inject;
+
 import org.apache.isis.applib.annotation.DomainService;
 import org.apache.isis.applib.annotation.NatureOfService;
 import org.apache.isis.applib.annotation.Programmatic;
 import org.apache.isis.applib.services.title.TitleService;
 import org.apache.isis.applib.services.wrapper.WrapperFactory;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager;
-import org.apache.isis.core.metamodel.adapter.mgr.AdapterManagerAware;
 import org.apache.isis.core.metamodel.services.l10n.LocalizationProviderInternal;
-import org.apache.isis.core.metamodel.services.l10n.LocalizationProviderAware;
+import org.apache.isis.core.metamodel.services.persistsession.PersistenceSessionServiceInternal;
 
 @DomainService(
         nature = NatureOfService.DOMAIN
 )
-public class TitleServiceDefault
-        implements TitleService, AdapterManagerAware, LocalizationProviderAware {
+public class TitleServiceDefault implements TitleService {
 
     @Programmatic
     @Override
@@ -66,24 +65,11 @@ public class TitleServiceDefault
 
     // //////////////////////////////////////
 
-    private AdapterManager adapterManager;
-
-    protected AdapterManager getAdapterManager() {
-        return adapterManager;
-    }
-
-    @Programmatic
-    @Override
-    public void setAdapterManager(final AdapterManager adapterManager) {
-        this.adapterManager = adapterManager;
-    }
-
-    private LocalizationProviderInternal localizationProviderInternal;
-    @Override
-    public void setLocalizationProvider(final LocalizationProviderInternal localizationProviderInternal) {
-        this.localizationProviderInternal = localizationProviderInternal;
-    }
+    @Inject
+    PersistenceSessionServiceInternal adapterManager;
 
+    @javax.inject.Inject
+    LocalizationProviderInternal localizationProviderInternal;
 
     @javax.inject.Inject
     WrapperFactory wrapperFactory;

http://git-wip-us.apache.org/repos/asf/isis/blob/ce7d41d8/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/transtate/TransactionStateProviderInternal.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/transtate/TransactionStateProviderInternal.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/transtate/TransactionStateProviderInternal.java
index a3f88d6..9c6a4a9 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/transtate/TransactionStateProviderInternal.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/transtate/TransactionStateProviderInternal.java
@@ -24,9 +24,6 @@ import org.apache.isis.core.metamodel.transactions.TransactionState;
 
 public interface TransactionStateProviderInternal {
 
-    @Programmatic
-    void injectInto(final Object candidate);
-
     @Programmatic TransactionState getTransactionState();
 
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/ce7d41d8/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/transtate/TransactionStateProviderInternalAbstract.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/transtate/TransactionStateProviderInternalAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/transtate/TransactionStateProviderInternalAbstract.java
deleted file mode 100644
index bd95173..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/transtate/TransactionStateProviderInternalAbstract.java
+++ /dev/null
@@ -1,31 +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.services.transtate;
-
-import org.apache.isis.core.metamodel.transactions.TransactionStateProviderAware;
-
-public abstract class TransactionStateProviderInternalAbstract implements TransactionStateProviderInternal {
-
-    @Override
-    public void injectInto(final Object candidate) {
-        if (TransactionStateProviderAware.class.isAssignableFrom(candidate.getClass())) {
-            final TransactionStateProviderAware cast = TransactionStateProviderAware.class.cast(candidate);
-            cast.setTransactionStateProvider(this);
-        }
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/isis/blob/ce7d41d8/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/transtate/TransactionStateProviderInternalNoop.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/transtate/TransactionStateProviderInternalNoop.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/transtate/TransactionStateProviderInternalNoop.java
index dd09e5e..cc10b0b 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/transtate/TransactionStateProviderInternalNoop.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/transtate/TransactionStateProviderInternalNoop.java
@@ -5,7 +5,8 @@ import org.apache.isis.applib.annotation.NatureOfService;
 import org.apache.isis.core.metamodel.transactions.TransactionState;
 
 @DomainService(nature = NatureOfService.DOMAIN)
-public class TransactionStateProviderInternalNoop extends TransactionStateProviderInternalAbstract {
+public class TransactionStateProviderInternalNoop implements TransactionStateProviderInternal {
+
     @Override
     public TransactionState getTransactionState() {
         throw new UnsupportedOperationException("Not supported by this implementation of RuntimeContext");

http://git-wip-us.apache.org/repos/asf/isis/blob/ce7d41d8/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/SpecificationLoader.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/SpecificationLoader.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/SpecificationLoader.java
index 683f041..b3b38d0 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/SpecificationLoader.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/SpecificationLoader.java
@@ -132,7 +132,7 @@ public class SpecificationLoader implements ApplicationScopedComponent {
 
         this.metaModelValidator = metaModelValidator;
 
-        this.facetProcessor = new FacetProcessor(configuration, programmingModel);
+        this.facetProcessor = new FacetProcessor(programmingModel);
         this.layoutMetadataReaders = layoutMetadataReaders;
     }
 
@@ -169,9 +169,9 @@ public class SpecificationLoader implements ApplicationScopedComponent {
         }
 
         // wire subcomponents into each other
-        this.runtimeContext.injectInto(facetProcessor);
+        facetProcessor.setServicesInjector(servicesInjector);
         for (final LayoutMetadataReader layoutMetadataReader : layoutMetadataReaders) {
-            this.runtimeContext.injectInto(layoutMetadataReader);
+            servicesInjector.injectInto(layoutMetadataReader);
         }
 
         // initialize subcomponents
@@ -424,7 +424,8 @@ public class SpecificationLoader implements ApplicationScopedComponent {
     private ObjectSpecification createSpecification(final Class<?> cls) {
 
         final ServicesInjector servicesInjector = getRuntimeContext().getServicesInjector();
-        final PersistenceSessionServiceInternal persistenceSessionServiceInternal = getRuntimeContext().getPersistenceSessionService();
+        final PersistenceSessionServiceInternal persistenceSessionServiceInternal =
+                servicesInjector.lookupService(PersistenceSessionServiceInternal.class);
 
         final ObjectSpecificationDependencies specContext =
                 new ObjectSpecificationDependencies(deploymentCategory, servicesInjector, this, facetProcessor);

http://git-wip-us.apache.org/repos/asf/isis/blob/ce7d41d8/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/facetprocessor/FacetProcessor.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/facetprocessor/FacetProcessor.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/facetprocessor/FacetProcessor.java
index 4556ffb..394065e 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/facetprocessor/FacetProcessor.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/facetprocessor/FacetProcessor.java
@@ -20,34 +20,43 @@
 package org.apache.isis.core.metamodel.specloader.facetprocessor;
 
 import java.lang.reflect.Method;
-import java.util.*;
+import java.util.Collections;
+import java.util.List;
+import java.util.Map;
+import java.util.Properties;
+import java.util.Set;
+
 import com.google.common.collect.Lists;
 import com.google.common.collect.Maps;
-import org.apache.isis.core.commons.config.IsisConfiguration;
+
 import org.apache.isis.core.commons.lang.ListExtensions;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facetapi.FeatureType;
 import org.apache.isis.core.metamodel.facetapi.MethodRemover;
-import org.apache.isis.core.metamodel.facets.*;
+import org.apache.isis.core.metamodel.facets.ContributeeMemberFacetFactory;
+import org.apache.isis.core.metamodel.facets.FacetFactory;
 import org.apache.isis.core.metamodel.facets.FacetFactory.ProcessClassContext;
 import org.apache.isis.core.metamodel.facets.FacetFactory.ProcessMethodContext;
 import org.apache.isis.core.metamodel.facets.FacetFactory.ProcessParameterContext;
+import org.apache.isis.core.metamodel.facets.FacetedMethod;
+import org.apache.isis.core.metamodel.facets.FacetedMethodParameter;
+import org.apache.isis.core.metamodel.facets.MethodFilteringFacetFactory;
+import org.apache.isis.core.metamodel.facets.MethodPrefixBasedFacetFactory;
+import org.apache.isis.core.metamodel.facets.MethodRemoverConstants;
+import org.apache.isis.core.metamodel.facets.PropertyOrCollectionIdentifyingFacetFactory;
 import org.apache.isis.core.metamodel.progmodel.ProgrammingModel;
-import org.apache.isis.core.metamodel.runtimecontext.RuntimeContext;
-import org.apache.isis.core.metamodel.runtimecontext.RuntimeContextAware;
+import org.apache.isis.core.metamodel.services.ServicesInjector;
+import org.apache.isis.core.metamodel.services.ServicesInjectorAware;
 import org.apache.isis.core.metamodel.spec.feature.ObjectMember;
 
 import static org.apache.isis.core.commons.ensure.Ensure.ensureThatState;
 import static org.hamcrest.CoreMatchers.is;
 import static org.hamcrest.CoreMatchers.notNullValue;
 
-public class FacetProcessor implements RuntimeContextAware {
+public class FacetProcessor implements ServicesInjectorAware {
 
-    private final IsisConfiguration configuration;
     private final ProgrammingModel programmingModel;
 
-    private RuntimeContext runtimeContext;
-
     /**
      * Class<FacetFactory> => FacetFactory
      */
@@ -113,13 +122,9 @@ public class FacetProcessor implements RuntimeContextAware {
      */
     private Map<FeatureType, List<FacetFactory>> factoryListByFeatureType = null;
 
-    public FacetProcessor(
-            final IsisConfiguration configuration,
-            final ProgrammingModel programmingModel) {
-        ensureThatState(configuration, is(notNullValue()));
+    public FacetProcessor(final ProgrammingModel programmingModel) {
         ensureThatState(programmingModel, is(notNullValue()));
 
-        this.configuration = configuration;
         this.programmingModel = programmingModel;
     }
 
@@ -128,7 +133,6 @@ public class FacetProcessor implements RuntimeContextAware {
     // //////////////////////////////////////////////////
 
     public void init() {
-        ensureThatState(runtimeContext, is(notNullValue()));
         final List<FacetFactory> facetFactoryList = programmingModel.getList();
         for (final FacetFactory facetFactory : facetFactoryList) {
             registerFactory(facetFactory);
@@ -151,13 +155,7 @@ public class FacetProcessor implements RuntimeContextAware {
      * processing.
      */
     public void injectDependenciesInto(final FacetFactory factory) {
-
-        // cascades all the subcomponents also
-        getRuntimeContext().injectInto(factory);
-    }
-
-    public FacetFactory getFactoryByFactoryType(final Class<? extends FacetFactory> factoryType) {
-        return factoryByFactoryType.get(factoryType);
+        servicesInjector.injectInto(factory);
     }
 
     /**
@@ -467,18 +465,11 @@ public class FacetProcessor implements RuntimeContextAware {
 
     //region > dependencies
 
-    private RuntimeContext getRuntimeContext() {
-        return runtimeContext;
-    }
+    private ServicesInjector servicesInjector;
 
-    /**
-     * Injected so can propogate to any {@link #registerFactory(FacetFactory)
-     * registered} {@link FacetFactory} s that are also
-     * {@link RuntimeContextAware}.
-     */
     @Override
-    public void setRuntimeContext(final RuntimeContext runtimeContext) {
-        this.runtimeContext = runtimeContext;
+    public void setServicesInjector(final ServicesInjector servicesInjector) {
+        this.servicesInjector = servicesInjector;
     }
 
     //endregion

http://git-wip-us.apache.org/repos/asf/isis/blob/ce7d41d8/core/metamodel/src/main/java/org/apache/isis/core/metamodel/transactions/TransactionStateProviderAware.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/transactions/TransactionStateProviderAware.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/transactions/TransactionStateProviderAware.java
deleted file mode 100644
index 61580d7..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/transactions/TransactionStateProviderAware.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.transactions;
-
-import org.apache.isis.applib.annotation.Programmatic;
-import org.apache.isis.core.metamodel.services.transtate.TransactionStateProviderInternal;
-
-public interface TransactionStateProviderAware {
-
-    @Programmatic
-    public void setTransactionStateProvider(TransactionStateProviderInternal transactionStateProviderInternal);
-
-}

http://git-wip-us.apache.org/repos/asf/isis/blob/ce7d41d8/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/AbstractFacetFactoryJUnit4TestCase.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/AbstractFacetFactoryJUnit4TestCase.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/AbstractFacetFactoryJUnit4TestCase.java
index c9b1e92..cf53416 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/AbstractFacetFactoryJUnit4TestCase.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/AbstractFacetFactoryJUnit4TestCase.java
@@ -32,7 +32,6 @@ import org.apache.isis.applib.Identifier;
 import org.apache.isis.applib.services.i18n.TranslationService;
 import org.apache.isis.core.commons.authentication.AuthenticationSessionProvider;
 import org.apache.isis.core.commons.config.IsisConfigurationDefault;
-import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager;
 import org.apache.isis.core.metamodel.deployment.DeploymentCategory;
 import org.apache.isis.core.metamodel.deployment.DeploymentCategoryProvider;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
@@ -42,11 +41,12 @@ import org.apache.isis.core.metamodel.facetapi.MethodRemover;
 import org.apache.isis.core.metamodel.facets.object.domainobject.autocomplete.AutoCompleteFacetForDomainObjectAnnotation;
 import org.apache.isis.core.metamodel.runtimecontext.ConfigurationServiceInternal;
 import org.apache.isis.core.metamodel.services.ServicesInjector;
+import org.apache.isis.core.metamodel.services.persistsession.PersistenceSessionServiceInternal;
 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.spec.feature.OneToOneActionParameter;
 import org.apache.isis.core.metamodel.spec.feature.OneToOneAssociation;
+import org.apache.isis.core.metamodel.specloader.SpecificationLoader;
 import org.apache.isis.core.unittestsupport.jmocking.JUnitRuleMockery2;
 import org.apache.isis.core.unittestsupport.jmocking.JUnitRuleMockery2.Mode;
 
@@ -58,7 +58,7 @@ public abstract class AbstractFacetFactoryJUnit4TestCase {
     @Mock
     protected SpecificationLoader mockSpecificationLoader;
     @Mock
-    protected AdapterManager mockAdapterManager;
+    protected PersistenceSessionServiceInternal mockAdapterManager;
     @Mock
     protected MethodRemover mockMethodRemover;
     @Mock

http://git-wip-us.apache.org/repos/asf/isis/blob/ce7d41d8/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 5403aa5..418262e 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
@@ -46,6 +46,7 @@ import org.apache.isis.core.metamodel.facets.object.title.annotation.TitleFacetV
 import org.apache.isis.core.metamodel.facets.object.title.annotation.TitleFacetViaTitleAnnotation.TitleComponent;
 import org.apache.isis.core.metamodel.services.l10n.LocalizationDefault;
 import org.apache.isis.core.metamodel.services.l10n.LocalizationProviderInternal;
+import org.apache.isis.core.metamodel.services.persistsession.PersistenceSessionServiceInternal;
 import org.apache.isis.core.metamodel.specloader.SpecificationLoader;
 import org.apache.isis.core.unittestsupport.jmocking.JUnitRuleMockery2.Allowing;
 
@@ -70,7 +71,7 @@ public class TitleAnnotationFacetFactoryTest extends AbstractFacetFactoryJUnit4T
         context.allowing(mockSpecificationLoader);
 
         facetFactory = new TitleAnnotationFacetFactory();
-        facetFactory.setAdapterManager(mockAdapterManager);
+        facetFactory.setServicesInjector(mockServicesInjector);
 
         context.checking(new Expectations() {
             {
@@ -91,6 +92,9 @@ public class TitleAnnotationFacetFactoryTest extends AbstractFacetFactoryJUnit4T
 
                 allowing(mockServicesInjector).lookupService(SpecificationLoader.class);
                 will(returnValue(mockSpecificationLoader));
+
+                allowing(mockServicesInjector).lookupService(PersistenceSessionServiceInternal.class);
+                will(returnValue(mockAdapterManager));
             }
         });
 

http://git-wip-us.apache.org/repos/asf/isis/blob/ce7d41d8/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
index 077bc3d..0900db2 100644
--- 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
@@ -21,14 +21,14 @@ 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.metamodel.services.l10n.LocalizationProviderInternal;
 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 {
+public class LocalizationProviderInternalDefault implements LocalizationProviderInternal {
 
     @Override
     public Localization getLocalization() {

http://git-wip-us.apache.org/repos/asf/isis/blob/ce7d41d8/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
index 4e4e4c7..9fab4c0 100644
--- 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
@@ -22,14 +22,14 @@ 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.metamodel.services.msgbroker.MessageBrokerServiceInternal;
 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 {
+public class MessageBrokerServiceInternalDefault implements MessageBrokerServiceInternal {
 
     @Override
     public void informUser(final String message) {

http://git-wip-us.apache.org/repos/asf/isis/blob/ce7d41d8/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
index 5605b73..eae20d9 100644
--- 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
@@ -27,7 +27,7 @@ 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.services.persistsession.PersistenceSessionServiceInternal;
 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;
@@ -39,7 +39,7 @@ import org.apache.isis.core.runtime.system.transaction.IsisTransactionManager;
         nature = NatureOfService.DOMAIN,
         menuOrder = "" + (Integer.MAX_VALUE - 1)  // ie before the Noop impl in metamodel
 )
-public class PersistenceSessionServiceInternalDefault extends PersistenceSessionServiceInternalAbstract {
+public class PersistenceSessionServiceInternalDefault implements PersistenceSessionServiceInternal {
 
     @Override
     public ObjectAdapter getAdapterFor(Oid oid) {

http://git-wip-us.apache.org/repos/asf/isis/blob/ce7d41d8/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
index 5fbc4b9..c30b8f3 100644
--- 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
@@ -20,8 +20,8 @@ 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.services.transtate.TransactionStateProviderInternal;
 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;
@@ -32,7 +32,7 @@ import org.apache.isis.core.runtime.system.transaction.IsisTransactionManager;
         nature = NatureOfService.DOMAIN,
         menuOrder = "" + (Integer.MAX_VALUE - 1)  // ie before the Noop impl in metamodel
 )
-public class TransactionStateProviderInternalDefault extends TransactionStateProviderInternalAbstract {
+public class TransactionStateProviderInternalDefault implements TransactionStateProviderInternal {
 
     @Override
     public TransactionState getTransactionState() {

http://git-wip-us.apache.org/repos/asf/isis/blob/ce7d41d8/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 5b7fdc2..3a2048c 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
@@ -178,10 +178,9 @@ public class IsisSystem implements ApplicationScopedComponent {
             final RuntimeContext runtimeContext = new RuntimeContext(servicesInjector);
 
             // wire up components and components into services...
-            runtimeContext.injectInto(specificationLoader);
-
             for (Object service : servicesInjector.getRegisteredServices()) {
-                runtimeContext.injectInto(service);
+                // inject itself into each service (if implements ServiceInjectorAware).
+                servicesInjector.injectInto(service);
             }
 
             // instantiate

http://git-wip-us.apache.org/repos/asf/isis/blob/ce7d41d8/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSessionInternal.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSessionInternal.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSessionInternal.java
index df4e535..a1c7088 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSessionInternal.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSessionInternal.java
@@ -59,7 +59,6 @@ import org.apache.isis.core.commons.factory.InstanceUtil;
 import org.apache.isis.core.commons.util.ToString;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager;
-import org.apache.isis.core.metamodel.adapter.mgr.AdapterManagerAware;
 import org.apache.isis.core.metamodel.adapter.oid.Oid;
 import org.apache.isis.core.metamodel.adapter.oid.OidMarshaller;
 import org.apache.isis.core.metamodel.adapter.oid.ParentedCollectionOid;
@@ -91,7 +90,6 @@ import org.apache.isis.core.metamodel.facets.object.viewmodel.ViewModelFacet;
 import org.apache.isis.core.metamodel.facets.propcoll.accessor.PropertyOrCollectionAccessorFacet;
 import org.apache.isis.core.metamodel.services.ServicesInjector;
 import org.apache.isis.core.metamodel.services.container.query.QueryCardinality;
-import org.apache.isis.core.metamodel.services.msgbroker.MessageBrokerServiceAware;
 import org.apache.isis.core.metamodel.services.msgbroker.MessageBrokerServiceInternal;
 import org.apache.isis.core.metamodel.services.persistsession.PersistenceSessionServiceInternal;
 import org.apache.isis.core.metamodel.spec.FreeStandingList;
@@ -393,20 +391,6 @@ public class PersistenceSessionInternal implements
 
     //endregion
 
-    //region > Injectable
-    @Override
-    public void injectInto(final Object candidate) {
-        if (AdapterManagerAware.class.isAssignableFrom(candidate.getClass())) {
-            final AdapterManagerAware cast = AdapterManagerAware.class.cast(candidate);
-            cast.setAdapterManager(this);
-        }
-        if (MessageBrokerServiceAware.class.isAssignableFrom(candidate.getClass())) {
-            final MessageBrokerServiceAware cast = MessageBrokerServiceAware.class.cast(candidate);
-            cast.setMessageBrokerService(this);
-        }
-    }
-    //endregion
-
     //region > QuerySubmitter impl, findInstancesInTransaction
 
     @Override

http://git-wip-us.apache.org/repos/asf/isis/blob/ce7d41d8/core/wrapper/src/main/java/org/apache/isis/core/wrapper/WrapperFactoryDefault.java
----------------------------------------------------------------------
diff --git a/core/wrapper/src/main/java/org/apache/isis/core/wrapper/WrapperFactoryDefault.java b/core/wrapper/src/main/java/org/apache/isis/core/wrapper/WrapperFactoryDefault.java
index 080d7be..449dfdf 100644
--- a/core/wrapper/src/main/java/org/apache/isis/core/wrapper/WrapperFactoryDefault.java
+++ b/core/wrapper/src/main/java/org/apache/isis/core/wrapper/WrapperFactoryDefault.java
@@ -51,8 +51,6 @@ import org.apache.isis.applib.services.wrapper.WrapperFactory;
 import org.apache.isis.applib.services.wrapper.WrappingObject;
 import org.apache.isis.applib.services.wrapper.listeners.InteractionListener;
 import org.apache.isis.core.commons.authentication.AuthenticationSessionProvider;
-import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager;
-import org.apache.isis.core.metamodel.adapter.mgr.AdapterManagerAware;
 import org.apache.isis.core.metamodel.services.persistsession.PersistenceSessionServiceInternal;
 import org.apache.isis.core.metamodel.specloader.SpecificationLoader;
 import org.apache.isis.core.wrapper.dispatchers.InteractionEventDispatcher;
@@ -72,7 +70,7 @@ import org.apache.isis.core.wrapper.proxy.ProxyCreator;
  * configuration is required.
  */
 @DomainService(nature = NatureOfService.DOMAIN)
-public class WrapperFactoryDefault implements WrapperFactory, AdapterManagerAware {
+public class WrapperFactoryDefault implements WrapperFactory {
 
     private final List<InteractionListener> listeners = new ArrayList<InteractionListener>();
     private final Map<Class<? extends InteractionEvent>, InteractionEventDispatcher> dispatchersByEventClass = new HashMap<Class<? extends InteractionEvent>, InteractionEventDispatcher>();
@@ -251,7 +249,8 @@ public class WrapperFactoryDefault implements WrapperFactory, AdapterManagerAwar
     }
 
     protected <T> T createProxy(final T domainObject, final ExecutionMode mode) {
-        return proxyContextHandler.proxy(domainObject, this, mode, authenticationSessionProvider, specificationLoader, getAdapterManager(), persistenceSessionServiceInternal);
+        return proxyContextHandler.proxy(domainObject, this, mode, authenticationSessionProvider, specificationLoader,
+                persistenceSessionServiceInternal);
     }
 
     @Override
@@ -299,20 +298,6 @@ public class WrapperFactoryDefault implements WrapperFactory, AdapterManagerAwar
     }
 
 
-
-    private AdapterManager adapterManager;
-
-    protected AdapterManager getAdapterManager() {
-        return adapterManager;
-    }
-    @Programmatic
-    @Override
-    public void setAdapterManager(final AdapterManager adapterManager) {
-        this.adapterManager = adapterManager;
-    }
-
-
-
     @Inject
     AuthenticationSessionProvider authenticationSessionProvider;
 

http://git-wip-us.apache.org/repos/asf/isis/blob/ce7d41d8/core/wrapper/src/main/java/org/apache/isis/core/wrapper/handlers/DomainObjectInvocationHandler.java
----------------------------------------------------------------------
diff --git a/core/wrapper/src/main/java/org/apache/isis/core/wrapper/handlers/DomainObjectInvocationHandler.java b/core/wrapper/src/main/java/org/apache/isis/core/wrapper/handlers/DomainObjectInvocationHandler.java
index 3e2db21..16f1819 100644
--- a/core/wrapper/src/main/java/org/apache/isis/core/wrapper/handlers/DomainObjectInvocationHandler.java
+++ b/core/wrapper/src/main/java/org/apache/isis/core/wrapper/handlers/DomainObjectInvocationHandler.java
@@ -53,7 +53,6 @@ import org.apache.isis.applib.services.wrapper.WrappingObject;
 import org.apache.isis.core.commons.authentication.AuthenticationSession;
 import org.apache.isis.core.commons.authentication.AuthenticationSessionProvider;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager;
 import org.apache.isis.core.metamodel.consent.Consent;
 import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
 import org.apache.isis.core.metamodel.consent.InteractionResult;
@@ -77,7 +76,6 @@ public class DomainObjectInvocationHandler<T> extends DelegatingInvocationHandle
 
     private final AuthenticationSessionProvider authenticationSessionProvider;
     private final SpecificationLoader specificationLoader;
-    private final AdapterManager adapterManager;
     private final PersistenceSessionServiceInternal persistenceSessionServiceInternal;
 
     private final ProxyContextHandler proxy;
@@ -123,7 +121,6 @@ public class DomainObjectInvocationHandler<T> extends DelegatingInvocationHandle
             final ExecutionMode mode,
             final AuthenticationSessionProvider authenticationSessionProvider,
             final SpecificationLoader specificationLoader,
-            final AdapterManager adapterManager,
             final PersistenceSessionServiceInternal persistenceSessionServiceInternal,
             final ProxyContextHandler proxy) {
         super(delegate, wrapperFactory, mode);
@@ -131,10 +128,10 @@ public class DomainObjectInvocationHandler<T> extends DelegatingInvocationHandle
         this.proxy = proxy;
         this.authenticationSessionProvider = authenticationSessionProvider;
         this.specificationLoader = specificationLoader;
-        this.adapterManager = adapterManager;
         this.persistenceSessionServiceInternal = persistenceSessionServiceInternal;
         this.executionMode = mode;
 
+
         try {
             titleMethod = delegate.getClass().getMethod("title", new Class[]{});
         } catch (final NoSuchMethodException e) {
@@ -651,7 +648,7 @@ public class DomainObjectInvocationHandler<T> extends DelegatingInvocationHandle
     }
 
     private ObjectAdapter adapterFor(final Object obj) {
-        return obj != null ? getAdapterManager().adapterFor(obj) : null;
+        return obj != null ? getPersistenceSessionService().adapterFor(obj) : null;
     }
 
     private Object underlying(final Object arg) {
@@ -793,10 +790,6 @@ public class DomainObjectInvocationHandler<T> extends DelegatingInvocationHandle
         return getAuthenticationSessionProvider().getAuthenticationSession();
     }
 
-    protected AdapterManager getAdapterManager() {
-        return adapterManager;
-    }
-
     protected PersistenceSessionServiceInternal getPersistenceSessionService() {
         return persistenceSessionServiceInternal;
     }

http://git-wip-us.apache.org/repos/asf/isis/blob/ce7d41d8/core/wrapper/src/main/java/org/apache/isis/core/wrapper/handlers/ProxyContextHandler.java
----------------------------------------------------------------------
diff --git a/core/wrapper/src/main/java/org/apache/isis/core/wrapper/handlers/ProxyContextHandler.java b/core/wrapper/src/main/java/org/apache/isis/core/wrapper/handlers/ProxyContextHandler.java
index d85fa45..42caa43 100644
--- a/core/wrapper/src/main/java/org/apache/isis/core/wrapper/handlers/ProxyContextHandler.java
+++ b/core/wrapper/src/main/java/org/apache/isis/core/wrapper/handlers/ProxyContextHandler.java
@@ -27,9 +27,8 @@ import org.apache.isis.applib.services.wrapper.WrapperFactory.ExecutionMode;
 import org.apache.isis.core.commons.authentication.AuthenticationSessionProvider;
 import org.apache.isis.core.commons.ensure.Ensure;
 import org.apache.isis.core.metamodel.services.persistsession.PersistenceSessionServiceInternal;
-import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager;
-import org.apache.isis.core.metamodel.specloader.SpecificationLoader;
 import org.apache.isis.core.metamodel.spec.feature.OneToManyAssociation;
+import org.apache.isis.core.metamodel.specloader.SpecificationLoader;
 import org.apache.isis.core.wrapper.proxy.ProxyCreator;
 
 import static org.hamcrest.CoreMatchers.is;
@@ -50,16 +49,14 @@ public class ProxyContextHandler {
             final ExecutionMode mode,
             final AuthenticationSessionProvider authenticationSessionProvider,
             final SpecificationLoader specificationLookup,
-            final AdapterManager adapterManager,
             final PersistenceSessionServiceInternal persistenceSessionServiceInternal) {
 
         Ensure.ensureThatArg(wrapperFactory, is(not(nullValue())));
         Ensure.ensureThatArg(authenticationSessionProvider, is(not(nullValue())));
         Ensure.ensureThatArg(specificationLookup, is(not(nullValue())));
-        Ensure.ensureThatArg(adapterManager, is(not(nullValue())));
         Ensure.ensureThatArg(persistenceSessionServiceInternal, is(not(nullValue())));
 
-        final DomainObjectInvocationHandler<T> invocationHandler = new DomainObjectInvocationHandler<T>(domainObject, wrapperFactory, mode, authenticationSessionProvider, specificationLookup, adapterManager,
+        final DomainObjectInvocationHandler<T> invocationHandler = new DomainObjectInvocationHandler<T>(domainObject, wrapperFactory, mode, authenticationSessionProvider, specificationLookup,
                 persistenceSessionServiceInternal, this);
 
         return proxyCreator.instantiateProxy(invocationHandler);

http://git-wip-us.apache.org/repos/asf/isis/blob/ce7d41d8/core/wrapper/src/test/java/org/apache/isis/core/wrapper/WrapperFactoryDefaultTest_wrappedObject.java
----------------------------------------------------------------------
diff --git a/core/wrapper/src/test/java/org/apache/isis/core/wrapper/WrapperFactoryDefaultTest_wrappedObject.java b/core/wrapper/src/test/java/org/apache/isis/core/wrapper/WrapperFactoryDefaultTest_wrappedObject.java
index 2b43ea3..2c66f00 100644
--- a/core/wrapper/src/test/java/org/apache/isis/core/wrapper/WrapperFactoryDefaultTest_wrappedObject.java
+++ b/core/wrapper/src/test/java/org/apache/isis/core/wrapper/WrapperFactoryDefaultTest_wrappedObject.java
@@ -205,8 +205,7 @@ public class WrapperFactoryDefaultTest_wrappedObject {
 
 
         wrapperFactory = createWrapperFactory();
-        wrapperFactory.setAdapterManager(mockAdapterManager);
-        wrapperFactory.setPersistenceSessionService(mockPersistenceSessionServiceInternal);
+        wrapperFactory.persistenceSessionServiceInternal = mockPersistenceSessionServiceInternal;
         wrapperFactory.specificationLoader = mockSpecificationLoader;
         wrapperFactory.authenticationSessionProvider = mockAuthenticationSessionProvider;
 

http://git-wip-us.apache.org/repos/asf/isis/blob/ce7d41d8/core/wrapper/src/test/java/org/apache/isis/core/wrapper/WrapperFactoryDefaultTest_wrappedObject_transient.java
----------------------------------------------------------------------
diff --git a/core/wrapper/src/test/java/org/apache/isis/core/wrapper/WrapperFactoryDefaultTest_wrappedObject_transient.java b/core/wrapper/src/test/java/org/apache/isis/core/wrapper/WrapperFactoryDefaultTest_wrappedObject_transient.java
index 05398f1..ffacc15 100644
--- a/core/wrapper/src/test/java/org/apache/isis/core/wrapper/WrapperFactoryDefaultTest_wrappedObject_transient.java
+++ b/core/wrapper/src/test/java/org/apache/isis/core/wrapper/WrapperFactoryDefaultTest_wrappedObject_transient.java
@@ -125,9 +125,8 @@ public class WrapperFactoryDefaultTest_wrappedObject_transient {
         setPasswordMethod = Employee.class.getMethod("setPassword", String.class);
 
         wrapperFactory = createWrapperFactory();
-        wrapperFactory.setAdapterManager(mockAdapterManager);
         wrapperFactory.authenticationSessionProvider = mockAuthenticationSessionProvider;
-        wrapperFactory.setPersistenceSessionService(mockPersistenceSessionServiceInternal);
+        wrapperFactory.persistenceSessionServiceInternal = mockPersistenceSessionServiceInternal;
         wrapperFactory.specificationLoader = mockSpecificationLoader;
 
         context.checking(new Expectations() {