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:33:44 UTC

[09/51] [abbrv] isis git commit: ISIS-1406: lots more refactoring around IsisConfiguration and IsisConfigurationBuilder.

http://git-wip-us.apache.org/repos/asf/isis/blob/74565888/core/metamodel/src/main/java/org/apache/isis/core/commons/resource/ResourceStreamSourceChainOfResponsibility.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/commons/resource/ResourceStreamSourceChainOfResponsibility.java b/core/metamodel/src/main/java/org/apache/isis/core/commons/resource/ResourceStreamSourceChainOfResponsibility.java
index 152cb80..14cd7ee 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/commons/resource/ResourceStreamSourceChainOfResponsibility.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/commons/resource/ResourceStreamSourceChainOfResponsibility.java
@@ -40,6 +40,9 @@ public class ResourceStreamSourceChainOfResponsibility extends ResourceStreamSou
     }
 
     public void addResourceStreamSource(final ResourceStreamSource rss) {
+        if(rss == null) {
+            return;
+        }
         this.resourceStreamSources.add(rss);
     }
 

http://git-wip-us.apache.org/repos/asf/isis/blob/74565888/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/FacetFactoryAbstract.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/FacetFactoryAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/FacetFactoryAbstract.java
index f9811bd..98a63bf 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/FacetFactoryAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/FacetFactoryAbstract.java
@@ -24,9 +24,12 @@ import java.util.List;
 import com.google.common.collect.ImmutableList;
 
 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;
 import org.apache.isis.core.metamodel.facetapi.FeatureType;
+import org.apache.isis.core.metamodel.runtimecontext.ConfigurationServiceInternal;
 import org.apache.isis.core.metamodel.runtimecontext.ServicesInjector;
 import org.apache.isis.core.metamodel.runtimecontext.ServicesInjectorAware;
 import org.apache.isis.core.metamodel.spec.SpecificationLoader;
@@ -80,13 +83,15 @@ public abstract class FacetFactoryAbstract implements FacetFactory, Specificatio
         return servicesInjector.lookupService(AuthenticationSessionProvider.class);
     }
 
-
-
     protected DeploymentCategory getDeploymentCategory() {
         return servicesInjector.lookupService(DeploymentCategoryProvider.class).getDeploymentCategory();
     }
 
-
+    protected IsisConfiguration getConfiguration() {
+        final ConfigurationServiceInternal configurationServiceInternal = servicesInjector
+                .lookupService(ConfigurationServiceInternal.class);
+        return (IsisConfigurationDefault)configurationServiceInternal;
+    }
 
     protected ServicesInjector servicesInjector;
 

http://git-wip-us.apache.org/repos/asf/isis/blob/74565888/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/PropertyOrCollectionIdentifyingFacetFactoryAbstract.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/PropertyOrCollectionIdentifyingFacetFactoryAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/PropertyOrCollectionIdentifyingFacetFactoryAbstract.java
index 879d3eb..ed5580e 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/PropertyOrCollectionIdentifyingFacetFactoryAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/PropertyOrCollectionIdentifyingFacetFactoryAbstract.java
@@ -65,21 +65,7 @@ public abstract class PropertyOrCollectionIdentifyingFacetFactoryAbstract
         this.adapterManager = adapterManager;
     }
 
-    // //////////////////////////////////////
-
-    private IsisConfiguration configuration;
-
-    protected IsisConfiguration getConfiguration() {
-        return configuration;
-    }
 
-    @Override
-    public void setServicesInjector(final ServicesInjector servicesInjector) {
-        super.setServicesInjector(servicesInjector);
-        IsisConfiguration configuration = (IsisConfiguration) servicesInjector
-                .lookupService(ConfigurationServiceInternal.class);
-        this.configuration = configuration;
-    }
 
 
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/74565888/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/ActionAnnotationFacetFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/ActionAnnotationFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/ActionAnnotationFacetFactory.java
index d53a500..6f322da 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/ActionAnnotationFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/action/ActionAnnotationFacetFactory.java
@@ -88,7 +88,6 @@ import org.apache.isis.core.metamodel.facets.actions.publish.PublishedActionFace
 import org.apache.isis.core.metamodel.facets.actions.semantics.ActionSemanticsFacet;
 import org.apache.isis.core.metamodel.facets.all.hide.HiddenFacet;
 import org.apache.isis.core.metamodel.facets.members.disabled.DisabledFacet;
-import org.apache.isis.core.metamodel.runtimecontext.ConfigurationServiceInternal;
 import org.apache.isis.core.metamodel.runtimecontext.ServicesInjector;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 import org.apache.isis.core.metamodel.specloader.collectiontyperegistry.CollectionTypeRegistry;
@@ -115,7 +114,6 @@ public class ActionAnnotationFacetFactory extends FacetFactoryAbstract implement
     private final MetaModelValidatorForDeprecatedAnnotation prototypeValidator = new MetaModelValidatorForDeprecatedAnnotation(Prototype.class);
 
 
-    private IsisConfiguration configuration;
     private AdapterManager adapterManager;
     private TransactionStateProvider transactionStateProvider;
 
@@ -202,7 +200,7 @@ public class ActionAnnotationFacetFactory extends FacetFactoryAbstract implement
                     actionDomainEventFacet.getEventType(),
                     ActionDomainEvent.Noop.class,
                     ActionDomainEvent.Default.class,
-                    "isis.reflector.facet.actionAnnotation.domainEvent.postForDefault", this.configuration)) {
+                    "isis.reflector.facet.actionAnnotation.domainEvent.postForDefault", getConfiguration())) {
                 FacetUtil.addFacet(actionDomainEventFacet);
             }
 
@@ -216,7 +214,7 @@ public class ActionAnnotationFacetFactory extends FacetFactoryAbstract implement
                 actionInvocationFacet = actionInteractionValidator.flagIfPresent(
                         new ActionInvocationFacetForPostsActionInvokedEventAnnotation(
                                 actionInvokedEventType, actionMethod, typeSpec, returnSpec, holder,
-                                getDeploymentCategory(), configuration, servicesInjector,
+                                getDeploymentCategory(), getConfiguration(), servicesInjector,
                                 getAuthenticationSessionProvider(), getAdapterManager(),
                                 transactionStateProvider
                         ), processMethodContext);
@@ -226,7 +224,7 @@ public class ActionAnnotationFacetFactory extends FacetFactoryAbstract implement
                 actionInvocationFacet = actionInteractionValidator.flagIfPresent(
                         new ActionInvocationFacetForDomainEventFromActionInteractionAnnotation(
                                 actionDomainEventType, actionMethod, typeSpec, returnSpec, holder,
-                                getDeploymentCategory(), configuration, servicesInjector,
+                                getDeploymentCategory(), getConfiguration(), servicesInjector,
                                 getAuthenticationSessionProvider(), getAdapterManager(),
                                 transactionStateProvider
                         ), processMethodContext);
@@ -235,7 +233,7 @@ public class ActionAnnotationFacetFactory extends FacetFactoryAbstract implement
             if (action != null) {
                 actionInvocationFacet = new ActionInvocationFacetForDomainEventFromActionAnnotation(
                         actionDomainEventType, actionMethod, typeSpec, returnSpec, holder,
-                        getDeploymentCategory(), configuration, servicesInjector,
+                        getDeploymentCategory(), getConfiguration(), servicesInjector,
                         getAuthenticationSessionProvider(),
                         getAdapterManager(), transactionStateProvider
                 );
@@ -244,7 +242,7 @@ public class ActionAnnotationFacetFactory extends FacetFactoryAbstract implement
             {
                 actionInvocationFacet = new ActionInvocationFacetForDomainEventFromDefault(
                         actionDomainEventType, actionMethod, typeSpec, returnSpec, holder,
-                        getDeploymentCategory(), configuration, servicesInjector, getAuthenticationSessionProvider(),
+                        getDeploymentCategory(), getConfiguration(), servicesInjector, getAuthenticationSessionProvider(),
                         getAdapterManager(), transactionStateProvider
                 );
             }
@@ -390,7 +388,7 @@ public class ActionAnnotationFacetFactory extends FacetFactoryAbstract implement
 
         // else check for @Action(command=...)
         if(commandFacet == null) {
-            commandFacet = CommandFacetForActionAnnotation.create(action, configuration, holder);
+            commandFacet = CommandFacetForActionAnnotation.create(action, getConfiguration(), holder);
         }
 
         FacetUtil.addFacet(commandFacet);
@@ -421,7 +419,7 @@ public class ActionAnnotationFacetFactory extends FacetFactoryAbstract implement
 
         // else check for @Action(publishing=...)
         if(facet == null) {
-            facet = PublishedActionFacetForActionAnnotation.create(action, configuration, holder);
+            facet = PublishedActionFacetForActionAnnotation.create(action, getConfiguration(), holder);
         }
 
         FacetUtil.addFacet(facet);
@@ -547,10 +545,8 @@ public class ActionAnnotationFacetFactory extends FacetFactoryAbstract implement
     @Override
     public void setServicesInjector(final ServicesInjector servicesInjector) {
         super.setServicesInjector(servicesInjector);
-        IsisConfiguration configuration = (IsisConfiguration) servicesInjector
-                .lookupService(ConfigurationServiceInternal.class);
+        final IsisConfiguration configuration = getConfiguration();
 
-        this.configuration = configuration;
         actionSemanticsValidator.setConfiguration(configuration);
         actionInteractionValidator.setConfiguration(configuration);
         postsActionInvokedEventValidator.setConfiguration(configuration);

http://git-wip-us.apache.org/repos/asf/isis/blob/74565888/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/contributing/paged/PagedFacetOnActionFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/contributing/paged/PagedFacetOnActionFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/contributing/paged/PagedFacetOnActionFactory.java
index 4967c7d..96a3d7d 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/contributing/paged/PagedFacetOnActionFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/actions/contributing/paged/PagedFacetOnActionFactory.java
@@ -30,7 +30,6 @@ import org.apache.isis.core.metamodel.facets.Annotations;
 import org.apache.isis.core.metamodel.facets.ContributeeMemberFacetFactory;
 import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract;
 import org.apache.isis.core.metamodel.facets.object.paged.PagedFacet;
-import org.apache.isis.core.metamodel.runtimecontext.ConfigurationServiceInternal;
 import org.apache.isis.core.metamodel.runtimecontext.ServicesInjector;
 import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorComposite;
 import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorForDeprecatedAnnotation;
@@ -46,7 +45,6 @@ public class PagedFacetOnActionFactory extends FacetFactoryAbstract
 
     private final MetaModelValidatorForDeprecatedAnnotation validator = new MetaModelValidatorForDeprecatedAnnotation(Paged.class);
 
-    private IsisConfiguration configuration;
 
     public PagedFacetOnActionFactory() {
         super(FeatureType.ACTIONS_ONLY);
@@ -89,16 +87,10 @@ public class PagedFacetOnActionFactory extends FacetFactoryAbstract
 
     // //////////////////////////////////////
 
-    public IsisConfiguration getConfiguration() {
-        return configuration;
-    }
-
     @Override
     public void setServicesInjector(final ServicesInjector servicesInjector) {
         super.setServicesInjector(servicesInjector);
-        IsisConfiguration configuration = (IsisConfiguration) servicesInjector
-                .lookupService(ConfigurationServiceInternal.class);
-        this.configuration = configuration;
+        final IsisConfiguration configuration = getConfiguration();
         validator.setConfiguration(configuration);
     }
 

http://git-wip-us.apache.org/repos/asf/isis/blob/74565888/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/collection/CollectionAnnotationFacetFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/collection/CollectionAnnotationFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/collection/CollectionAnnotationFacetFactory.java
index da5f805..ab31a47 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/collection/CollectionAnnotationFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/collection/CollectionAnnotationFacetFactory.java
@@ -72,7 +72,6 @@ import org.apache.isis.core.metamodel.facets.collections.modify.CollectionRemove
 import org.apache.isis.core.metamodel.facets.members.disabled.DisabledFacet;
 import org.apache.isis.core.metamodel.facets.propcoll.accessor.PropertyOrCollectionAccessorFacet;
 import org.apache.isis.core.metamodel.facets.propcoll.notpersisted.NotPersistedFacet;
-import org.apache.isis.core.metamodel.runtimecontext.ConfigurationServiceInternal;
 import org.apache.isis.core.metamodel.runtimecontext.ServicesInjector;
 import org.apache.isis.core.metamodel.specloader.collectiontyperegistry.CollectionTypeRegistry;
 import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorComposite;
@@ -91,7 +90,6 @@ public class CollectionAnnotationFacetFactory extends FacetFactoryAbstract imple
 
     private final CollectionTypeRegistry collectionTypeRegistry = new CollectionTypeRegistry();
 
-    private IsisConfiguration configuration;
 
     public CollectionAnnotationFacetFactory() {
         super(FeatureType.COLLECTIONS_AND_ACTIONS);
@@ -174,7 +172,7 @@ public class CollectionAnnotationFacetFactory extends FacetFactoryAbstract imple
                 collectionDomainEventFacet.getEventType(),
                 CollectionDomainEvent.Noop.class,
                 CollectionDomainEvent.Default.class,
-                "isis.reflector.facet.collectionAnnotation.domainEvent.postForDefault", this.configuration)) {
+                "isis.reflector.facet.collectionAnnotation.domainEvent.postForDefault", getConfiguration())) {
             FacetUtil.addFacet(collectionDomainEventFacet);
         }
 
@@ -386,7 +384,8 @@ public class CollectionAnnotationFacetFactory extends FacetFactoryAbstract imple
     @Override
     public void setServicesInjector(final ServicesInjector servicesInjector) {
         super.setServicesInjector(servicesInjector);
-        IsisConfiguration configuration = (IsisConfiguration) servicesInjector.lookupService(ConfigurationServiceInternal.class);
+        final IsisConfiguration configuration = getConfiguration();
+
         postsCollectionAddedToEventValidator.setConfiguration(configuration);
         postsCollectionRemovedFromEventValidator.setConfiguration(configuration);
         collectionInteractionValidator.setConfiguration(configuration);

http://git-wip-us.apache.org/repos/asf/isis/blob/74565888/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/paged/PagedFacetOnCollectionFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/paged/PagedFacetOnCollectionFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/paged/PagedFacetOnCollectionFactory.java
index d3e220f..56d9467 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/paged/PagedFacetOnCollectionFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/collections/paged/PagedFacetOnCollectionFactory.java
@@ -30,7 +30,6 @@ import org.apache.isis.core.metamodel.facets.Annotations;
 import org.apache.isis.core.metamodel.facets.ContributeeMemberFacetFactory;
 import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract;
 import org.apache.isis.core.metamodel.facets.object.paged.PagedFacet;
-import org.apache.isis.core.metamodel.runtimecontext.ConfigurationServiceInternal;
 import org.apache.isis.core.metamodel.runtimecontext.ServicesInjector;
 import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorComposite;
 import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorForDeprecatedAnnotation;
@@ -44,7 +43,6 @@ public class PagedFacetOnCollectionFactory extends FacetFactoryAbstract
 
     private final MetaModelValidatorForDeprecatedAnnotation validator = new MetaModelValidatorForDeprecatedAnnotation(Paged.class);
 
-    private IsisConfiguration configuration;
 
     public PagedFacetOnCollectionFactory() {
         super(FeatureType.COLLECTIONS_ONLY);
@@ -86,17 +84,13 @@ public class PagedFacetOnCollectionFactory extends FacetFactoryAbstract
 
     // //////////////////////////////////////
 
-    public IsisConfiguration getConfiguration() {
-        return configuration;
-    }
 
 
     @Override
     public void setServicesInjector(final ServicesInjector servicesInjector) {
         super.setServicesInjector(servicesInjector);
-        IsisConfiguration configuration = (IsisConfiguration) servicesInjector
-                .lookupService(ConfigurationServiceInternal.class);
-        this.configuration = configuration;
+        final IsisConfiguration configuration = getConfiguration();
+
         validator.setConfiguration(configuration);
     }
 

http://git-wip-us.apache.org/repos/asf/isis/blob/74565888/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/fallback/FallbackFacetFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/fallback/FallbackFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/fallback/FallbackFacetFactory.java
index 4b967b9..dde4d3c 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/fallback/FallbackFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/fallback/FallbackFacetFactory.java
@@ -26,7 +26,6 @@ import java.util.Map;
 import com.google.common.collect.Lists;
 
 import org.apache.isis.applib.annotation.LabelPosition;
-import org.apache.isis.core.commons.config.IsisConfiguration;
 import org.apache.isis.core.commons.lang.StringExtensions;
 import org.apache.isis.core.metamodel.facetapi.Facet;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
@@ -35,8 +34,6 @@ import org.apache.isis.core.metamodel.facetapi.FeatureType;
 import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract;
 import org.apache.isis.core.metamodel.facets.FacetedMethod;
 import org.apache.isis.core.metamodel.facets.TypedHolder;
-import org.apache.isis.core.metamodel.runtimecontext.ConfigurationServiceInternal;
-import org.apache.isis.core.metamodel.runtimecontext.ServicesInjector;
 
 /**
  * Central point for providing some kind of default for any {@link Facet}s
@@ -48,7 +45,6 @@ public class FallbackFacetFactory extends FacetFactoryAbstract {
     public final static int PAGE_SIZE_STANDALONE_DEFAULT = 25;
     public final static int PAGE_SIZE_PARENTED_DEFAULT = 12;
 
-    private IsisConfiguration configuration;
 
     @SuppressWarnings("unused")
     private final static Map<Class<?>, Integer> TYPICAL_LENGTHS_BY_CLASS = new HashMap<Class<?>, Integer>() {
@@ -175,17 +171,5 @@ public class FallbackFacetFactory extends FacetFactoryAbstract {
     }
 
 
-    public IsisConfiguration getConfiguration() {
-        return configuration;
-    }
-
-    @Override
-    public void setServicesInjector(final ServicesInjector servicesInjector) {
-        super.setServicesInjector(servicesInjector);
-        IsisConfiguration configuration = (IsisConfiguration) servicesInjector
-                .lookupService(ConfigurationServiceInternal.class);
-        this.configuration = configuration;
-    }
-
 
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/74565888/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/cssclass/annotprop/CssClassFacetOnActionFromConfiguredRegexFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/cssclass/annotprop/CssClassFacetOnActionFromConfiguredRegexFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/cssclass/annotprop/CssClassFacetOnActionFromConfiguredRegexFactory.java
index 2738067..95baea3 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/cssclass/annotprop/CssClassFacetOnActionFromConfiguredRegexFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/cssclass/annotprop/CssClassFacetOnActionFromConfiguredRegexFactory.java
@@ -29,7 +29,6 @@ import com.google.common.base.Strings;
 import com.google.common.collect.Maps;
 
 import org.apache.isis.core.commons.config.ConfigurationConstants;
-import org.apache.isis.core.commons.config.IsisConfiguration;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facetapi.FacetUtil;
 import org.apache.isis.core.metamodel.facetapi.FeatureType;
@@ -37,8 +36,6 @@ import org.apache.isis.core.metamodel.facets.ContributeeMemberFacetFactory;
 import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract;
 import org.apache.isis.core.metamodel.facets.FacetedMethod;
 import org.apache.isis.core.metamodel.facets.members.cssclass.CssClassFacet;
-import org.apache.isis.core.metamodel.runtimecontext.ConfigurationServiceInternal;
-import org.apache.isis.core.metamodel.runtimecontext.ServicesInjector;
 import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
 import org.apache.isis.core.metamodel.spec.feature.ObjectMember;
 
@@ -123,7 +120,7 @@ public class CssClassFacetOnActionFromConfiguredRegexFactory extends FacetFactor
     private Map<Pattern, String> getCssClassByPattern() {
         if (cssClassByPattern == null) {
             // build lazily
-            final String cssClassPatterns = configuration.getString("isis.reflector.facet.cssClass.patterns");
+            final String cssClassPatterns = getConfiguration().getString("isis.reflector.facet.cssClass.patterns");
             this.cssClassByPattern = buildCssClassByPattern(cssClassPatterns);
         }
         return cssClassByPattern;
@@ -155,19 +152,6 @@ public class CssClassFacetOnActionFromConfiguredRegexFactory extends FacetFactor
     //endregion
 
 
-    //region > injected
-    private IsisConfiguration configuration;
-
-    @Override
-    public void setServicesInjector(final ServicesInjector servicesInjector) {
-        super.setServicesInjector(servicesInjector);
-        IsisConfiguration configuration = (IsisConfiguration) servicesInjector
-                .lookupService(ConfigurationServiceInternal.class);
-        this.configuration = configuration;
-    }
-
-
-    //endregion
 
 }
 

http://git-wip-us.apache.org/repos/asf/isis/blob/74565888/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/cssclass/annotprop/CssClassFacetOnMemberFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/cssclass/annotprop/CssClassFacetOnMemberFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/cssclass/annotprop/CssClassFacetOnMemberFactory.java
index 300c7d7..9cbc9f6 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/cssclass/annotprop/CssClassFacetOnMemberFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/cssclass/annotprop/CssClassFacetOnMemberFactory.java
@@ -31,7 +31,6 @@ import org.apache.isis.core.metamodel.facets.Annotations;
 import org.apache.isis.core.metamodel.facets.ContributeeMemberFacetFactory;
 import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract;
 import org.apache.isis.core.metamodel.facets.members.cssclass.CssClassFacet;
-import org.apache.isis.core.metamodel.runtimecontext.ConfigurationServiceInternal;
 import org.apache.isis.core.metamodel.runtimecontext.ServicesInjector;
 import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorComposite;
 import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorForDeprecatedAnnotation;
@@ -92,15 +91,11 @@ public class CssClassFacetOnMemberFactory extends FacetFactoryAbstract implement
 
 
     //region > injected
-    private IsisConfiguration configuration;
-
 
     @Override
     public void setServicesInjector(final ServicesInjector servicesInjector) {
         super.setServicesInjector(servicesInjector);
-        IsisConfiguration configuration = (IsisConfiguration) servicesInjector
-                .lookupService(ConfigurationServiceInternal.class);
-        this.configuration = configuration;
+        final IsisConfiguration configuration = getConfiguration();
         validator.setConfiguration(configuration);
     }
 

http://git-wip-us.apache.org/repos/asf/isis/blob/74565888/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/cssclassfa/annotprop/CssClassFaFacetOnMemberFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/cssclassfa/annotprop/CssClassFaFacetOnMemberFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/cssclassfa/annotprop/CssClassFaFacetOnMemberFactory.java
index 50c1ddd..049987f 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/cssclassfa/annotprop/CssClassFaFacetOnMemberFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/members/cssclassfa/annotprop/CssClassFaFacetOnMemberFactory.java
@@ -40,7 +40,6 @@ import org.apache.isis.core.metamodel.facets.ContributeeMemberFacetFactory;
 import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract;
 import org.apache.isis.core.metamodel.facets.members.cssclassfa.CssClassFaFacet;
 import org.apache.isis.core.metamodel.facets.members.cssclassfa.CssClassFaPosition;
-import org.apache.isis.core.metamodel.runtimecontext.ConfigurationServiceInternal;
 import org.apache.isis.core.metamodel.runtimecontext.ServicesInjector;
 import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorComposite;
 import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorForDeprecatedAnnotation;
@@ -133,7 +132,7 @@ public class CssClassFaFacetOnMemberFactory extends FacetFactoryAbstract impleme
     private Map<Pattern, String> getFaIconByPattern() {
         if (faIconByPattern == null) {
             // build lazily
-            final String cssClassFaPatterns = configuration.getString("isis.reflector.facet.cssClassFa.patterns");
+            final String cssClassFaPatterns = getConfiguration().getString("isis.reflector.facet.cssClassFa.patterns");
             this.faIconByPattern = buildFaIconByPattern(cssClassFaPatterns);
         }
         return faIconByPattern;
@@ -172,14 +171,11 @@ public class CssClassFaFacetOnMemberFactory extends FacetFactoryAbstract impleme
         metaModelValidator.add(validator);
     }
 
-    private IsisConfiguration configuration;
 
     @Override
     public void setServicesInjector(final ServicesInjector servicesInjector) {
         super.setServicesInjector(servicesInjector);
-        IsisConfiguration configuration = (IsisConfiguration) servicesInjector
-                .lookupService(ConfigurationServiceInternal.class);
-        this.configuration = configuration;
+        final IsisConfiguration configuration = getConfiguration();
         validator.setConfiguration(configuration);
     }
 

http://git-wip-us.apache.org/repos/asf/isis/blob/74565888/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/ViewModelSemanticCheckingFacetFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/ViewModelSemanticCheckingFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/ViewModelSemanticCheckingFacetFactory.java
index 49d86cc..93add31 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/ViewModelSemanticCheckingFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/ViewModelSemanticCheckingFacetFactory.java
@@ -30,15 +30,12 @@ import org.apache.isis.core.metamodel.facetapi.FeatureType;
 import org.apache.isis.core.metamodel.facetapi.MetaModelValidatorRefiner;
 import org.apache.isis.core.metamodel.facets.Annotations;
 import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract;
-import org.apache.isis.core.metamodel.runtimecontext.ConfigurationServiceInternal;
-import org.apache.isis.core.metamodel.runtimecontext.ServicesInjector;
 import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorComposite;
 import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidatorForValidationFailures;
 
 
 public class ViewModelSemanticCheckingFacetFactory extends FacetFactoryAbstract implements MetaModelValidatorRefiner {
 
-    private IsisConfiguration configuration;
 
     public ViewModelSemanticCheckingFacetFactory() {
         super(FeatureType.OBJECTS_ONLY);
@@ -50,7 +47,7 @@ public class ViewModelSemanticCheckingFacetFactory extends FacetFactoryAbstract
     public void process(final ProcessClassContext processClassContext) {
 
         // disable by default
-        final boolean enable = configuration.getBoolean(
+        final boolean enable = getConfiguration().getBoolean(
                                     "isis.reflector.facets.ViewModelSemanticCheckingFacetFactory.enable", false);
         if(!enable) {
             return;
@@ -179,13 +176,4 @@ public class ViewModelSemanticCheckingFacetFactory extends FacetFactoryAbstract
     }
 
 
-    @Override
-    public void setServicesInjector(final ServicesInjector servicesInjector) {
-        super.setServicesInjector(servicesInjector);
-        IsisConfiguration configuration = (IsisConfiguration) servicesInjector
-                .lookupService(ConfigurationServiceInternal.class);
-        this.configuration = configuration;
-    }
-
-
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/74565888/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/defaults/annotcfg/DefaultedFacetAnnotationElseConfigurationFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/defaults/annotcfg/DefaultedFacetAnnotationElseConfigurationFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/defaults/annotcfg/DefaultedFacetAnnotationElseConfigurationFactory.java
index 778388c..ac79324 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/defaults/annotcfg/DefaultedFacetAnnotationElseConfigurationFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/defaults/annotcfg/DefaultedFacetAnnotationElseConfigurationFactory.java
@@ -22,7 +22,6 @@ package org.apache.isis.core.metamodel.facets.object.defaults.annotcfg;
 import com.google.common.base.Strings;
 
 import org.apache.isis.applib.annotation.Defaulted;
-import org.apache.isis.core.commons.config.IsisConfiguration;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facetapi.FacetUtil;
 import org.apache.isis.core.metamodel.facetapi.FeatureType;
@@ -30,12 +29,9 @@ import org.apache.isis.core.metamodel.facets.Annotations;
 import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract;
 import org.apache.isis.core.metamodel.facets.object.defaults.DefaultedFacetAbstract;
 import org.apache.isis.core.metamodel.facets.object.defaults.DefaultsProviderUtil;
-import org.apache.isis.core.metamodel.runtimecontext.ConfigurationServiceInternal;
-import org.apache.isis.core.metamodel.runtimecontext.ServicesInjector;
 
 public class DefaultedFacetAnnotationElseConfigurationFactory extends FacetFactoryAbstract {
 
-    private IsisConfiguration configuration;
 
     public DefaultedFacetAnnotationElseConfigurationFactory() {
         super(FeatureType.OBJECTS_ONLY);
@@ -51,14 +47,14 @@ public class DefaultedFacetAnnotationElseConfigurationFactory extends FacetFacto
 
         // create from annotation, if present
         if (annotation != null) {
-            final DefaultedFacetAbstract facet = new DefaultedFacetAnnotation(cls, getIsisConfiguration(), holder, servicesInjector);
+            final DefaultedFacetAbstract facet = new DefaultedFacetAnnotation(cls, getConfiguration(), holder, servicesInjector);
             if (facet.isValid()) {
                 return facet;
             }
         }
 
         // otherwise, try to create from configuration, if present
-        final String providerName = DefaultsProviderUtil.defaultsProviderNameFromConfiguration(cls, getIsisConfiguration());
+        final String providerName = DefaultsProviderUtil.defaultsProviderNameFromConfiguration(cls, getConfiguration());
         if (!Strings.isNullOrEmpty(providerName)) {
             final DefaultedFacetFromConfiguration facet = new DefaultedFacetFromConfiguration(providerName, holder, servicesInjector);
             if (facet.isValid()) {
@@ -69,23 +65,5 @@ public class DefaultedFacetAnnotationElseConfigurationFactory extends FacetFacto
         return null;
     }
 
-    // ////////////////////////////////////////////////////////////////////
-    // Injected
-    // ////////////////////////////////////////////////////////////////////
-
-    public IsisConfiguration getIsisConfiguration() {
-        return configuration;
-    }
-
-
-    @Override
-    public void setServicesInjector(final ServicesInjector servicesInjector) {
-        super.setServicesInjector(servicesInjector);
-        IsisConfiguration configuration = (IsisConfiguration) servicesInjector
-                .lookupService(ConfigurationServiceInternal.class);
-        this.configuration = configuration;
-    }
-
-
 
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/74565888/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/DomainObjectAnnotationFacetFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/DomainObjectAnnotationFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/DomainObjectAnnotationFacetFactory.java
index ec01a19..3295986 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/DomainObjectAnnotationFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/DomainObjectAnnotationFacetFactory.java
@@ -81,7 +81,6 @@ import org.apache.isis.core.metamodel.facets.object.mixin.MixinFacet;
 import org.apache.isis.core.metamodel.facets.object.mixin.MixinFacetForDomainObjectAnnotation;
 import org.apache.isis.core.metamodel.facets.object.publishedobject.PublishedObjectFacet;
 import org.apache.isis.core.metamodel.facets.object.viewmodel.ViewModelFacet;
-import org.apache.isis.core.metamodel.runtimecontext.ConfigurationServiceInternal;
 import org.apache.isis.core.metamodel.runtimecontext.PersistenceSessionService;
 import org.apache.isis.core.metamodel.runtimecontext.PersistenceSessionServiceAware;
 import org.apache.isis.core.metamodel.runtimecontext.ServicesInjector;
@@ -109,7 +108,6 @@ public class DomainObjectAnnotationFacetFactory extends FacetFactoryAbstract
     private final MetaModelValidatorForDeprecatedAnnotation objectTypeValidator = new MetaModelValidatorForDeprecatedAnnotation(ObjectType.class);
 
 
-    private IsisConfiguration configuration;
     private AdapterManager adapterManager;
     private PersistenceSessionService persistenceSessionService;
 
@@ -157,7 +155,7 @@ public class DomainObjectAnnotationFacetFactory extends FacetFactoryAbstract
 
         // else check for @DomainObject(auditing=....)
         if(auditableFacet == null) {
-            auditableFacet = AuditableFacetForDomainObjectAnnotation.create(domainObject, configuration, holder);
+            auditableFacet = AuditableFacetForDomainObjectAnnotation.create(domainObject, getConfiguration(), holder);
         }
 
         // then add
@@ -190,7 +188,7 @@ public class DomainObjectAnnotationFacetFactory extends FacetFactoryAbstract
         // else check from @DomainObject(publishing=...)
         if(publishedObjectFacet == null) {
             publishedObjectFacet=
-                    PublishedObjectFacetForDomainObjectAnnotation.create(domainObject, configuration, facetHolder);
+                    PublishedObjectFacetForDomainObjectAnnotation.create(domainObject, getConfiguration(), facetHolder);
         }
 
         // then add
@@ -258,7 +256,7 @@ public class DomainObjectAnnotationFacetFactory extends FacetFactoryAbstract
 
         // else check from @DomainObject(editing=...)
         if(facet == null) {
-            facet = ImmutableFacetForDomainObjectAnnotation.create(domainObject, configuration, facetHolder);
+            facet = ImmutableFacetForDomainObjectAnnotation.create(domainObject, getConfiguration(), facetHolder);
         }
 
         // then add
@@ -339,7 +337,7 @@ public class DomainObjectAnnotationFacetFactory extends FacetFactoryAbstract
                 ObjectCreatedEvent.Noop.class,
                 ObjectCreatedEvent.Default.class,
                 "isis.reflector.facet.domainObjectAnnotation.createdLifecycleEvent.postForDefault",
-                this.configuration)) {
+                getConfiguration())) {
             FacetUtil.addFacet(facet);
         }
     }
@@ -356,7 +354,7 @@ public class DomainObjectAnnotationFacetFactory extends FacetFactoryAbstract
                 ObjectLoadedEvent.Noop.class,
                 ObjectLoadedEvent.Default.class,
                 "isis.reflector.facet.domainObjectAnnotation.loadedLifecycleEvent.postForDefault",
-                this.configuration)) {
+                getConfiguration())) {
             FacetUtil.addFacet(facet);
         }
     }
@@ -373,7 +371,7 @@ public class DomainObjectAnnotationFacetFactory extends FacetFactoryAbstract
                 ObjectPersistingEvent.Noop.class,
                 ObjectPersistingEvent.Default.class,
                 "isis.reflector.facet.domainObjectAnnotation.persistingLifecycleEvent.postForDefault",
-                this.configuration)) {
+                getConfiguration())) {
             FacetUtil.addFacet(facet);
         }
     }
@@ -390,7 +388,7 @@ public class DomainObjectAnnotationFacetFactory extends FacetFactoryAbstract
                 ObjectPersistedEvent.Noop.class,
                 ObjectPersistedEvent.Default.class,
                 "isis.reflector.facet.domainObjectAnnotation.persistedLifecycleEvent.postForDefault",
-                this.configuration)) {
+                getConfiguration())) {
             FacetUtil.addFacet(facet);
         }
     }
@@ -407,7 +405,7 @@ public class DomainObjectAnnotationFacetFactory extends FacetFactoryAbstract
                 ObjectRemovingEvent.Noop.class,
                 ObjectRemovingEvent.Default.class,
                 "isis.reflector.facet.domainObjectAnnotation.removingLifecycleEvent.postForDefault",
-                this.configuration)) {
+                getConfiguration())) {
             FacetUtil.addFacet(facet);
         }
     }
@@ -424,7 +422,7 @@ public class DomainObjectAnnotationFacetFactory extends FacetFactoryAbstract
                 ObjectUpdatedEvent.Noop.class,
                 ObjectUpdatedEvent.Default.class,
                 "isis.reflector.facet.domainObjectAnnotation.updatedLifecycleEvent.postForDefault",
-                this.configuration)) {
+                getConfiguration())) {
             FacetUtil.addFacet(facet);
         }
     }
@@ -441,7 +439,7 @@ public class DomainObjectAnnotationFacetFactory extends FacetFactoryAbstract
                 ObjectUpdatingEvent.Noop.class,
                 ObjectUpdatingEvent.Default.class,
                 "isis.reflector.facet.domainObjectAnnotation.updatingLifecycleEvent.postForDefault",
-                this.configuration)) {
+                getConfiguration())) {
             FacetUtil.addFacet(facet);
         }
     }
@@ -496,9 +494,7 @@ public class DomainObjectAnnotationFacetFactory extends FacetFactoryAbstract
     @Override
     public void setServicesInjector(final ServicesInjector servicesInjector) {
         super.setServicesInjector(servicesInjector);
-        IsisConfiguration configuration = (IsisConfiguration) servicesInjector
-                .lookupService(ConfigurationServiceInternal.class);
-        this.configuration = configuration;
+        IsisConfiguration configuration = getConfiguration();
 
         publishedObjectValidator.setConfiguration(configuration);
         auditedValidator.setConfiguration(configuration);

http://git-wip-us.apache.org/repos/asf/isis/blob/74565888/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/DomainObjectLayoutFacetFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/DomainObjectLayoutFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/DomainObjectLayoutFacetFactory.java
index 308a3d7..bbeac06 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/DomainObjectLayoutFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/DomainObjectLayoutFacetFactory.java
@@ -18,14 +18,11 @@ package org.apache.isis.core.metamodel.facets.object.domainobjectlayout;
 
 import org.apache.isis.applib.annotation.DomainObjectLayout;
 import org.apache.isis.applib.annotation.ViewModelLayout;
-import org.apache.isis.core.commons.config.IsisConfiguration;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facetapi.FacetUtil;
 import org.apache.isis.core.metamodel.facetapi.FeatureType;
 import org.apache.isis.core.metamodel.facets.Annotations;
 import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract;
-import org.apache.isis.core.metamodel.runtimecontext.ConfigurationServiceInternal;
-import org.apache.isis.core.metamodel.runtimecontext.ServicesInjector;
 
 public class DomainObjectLayoutFacetFactory extends FacetFactoryAbstract {
 
@@ -45,13 +42,13 @@ public class DomainObjectLayoutFacetFactory extends FacetFactoryAbstract {
 
         FacetUtil.addFacet(
                 TitleFacetViaDomainObjectLayoutAnnotationUsingTitleUiEvent.create(
-                        domainObjectLayout, servicesInjector, configuration, facetHolder));
+                        domainObjectLayout, servicesInjector, getConfiguration(), facetHolder));
         FacetUtil.addFacet(
                 IconFacetViaDomainObjectLayoutAnnotationUsingIconUiEvent.create(
-                        domainObjectLayout, servicesInjector, configuration, facetHolder));
+                        domainObjectLayout, servicesInjector, getConfiguration(), facetHolder));
         FacetUtil.addFacet(
                 CssClassFacetViaDomainObjectLayoutAnnotationUsingCssClassUiEvent.create(
-                        domainObjectLayout, servicesInjector, configuration, facetHolder));
+                        domainObjectLayout, servicesInjector, getConfiguration(), facetHolder));
 
         FacetUtil.addFacet(
                 CssClassFacetForDomainObjectLayoutAnnotation.create(domainObjectLayout, facetHolder));
@@ -92,16 +89,6 @@ public class DomainObjectLayoutFacetFactory extends FacetFactoryAbstract {
     }
 
 
-    private IsisConfiguration configuration;
-
-
-    @Override
-    public void setServicesInjector(final ServicesInjector servicesInjector) {
-        super.setServicesInjector(servicesInjector);
-        IsisConfiguration configuration = (IsisConfiguration) servicesInjector
-                .lookupService(ConfigurationServiceInternal.class);
-        this.configuration = configuration;
-    }
 
 
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/74565888/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/encodeable/annotcfg/EncodableFacetAnnotationElseConfigurationFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/encodeable/annotcfg/EncodableFacetAnnotationElseConfigurationFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/encodeable/annotcfg/EncodableFacetAnnotationElseConfigurationFactory.java
index a05a4ef..3bed123 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/encodeable/annotcfg/EncodableFacetAnnotationElseConfigurationFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/encodeable/annotcfg/EncodableFacetAnnotationElseConfigurationFactory.java
@@ -22,7 +22,6 @@ package org.apache.isis.core.metamodel.facets.object.encodeable.annotcfg;
 import com.google.common.base.Strings;
 
 import org.apache.isis.applib.annotation.Encodable;
-import org.apache.isis.core.commons.config.IsisConfiguration;
 import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager;
 import org.apache.isis.core.metamodel.adapter.mgr.AdapterManagerAware;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
@@ -32,13 +31,9 @@ import org.apache.isis.core.metamodel.facets.Annotations;
 import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract;
 import org.apache.isis.core.metamodel.facets.object.encodeable.EncodableFacet;
 import org.apache.isis.core.metamodel.facets.object.encodeable.EncoderDecoderUtil;
-import org.apache.isis.core.metamodel.runtimecontext.ConfigurationServiceInternal;
-import org.apache.isis.core.metamodel.runtimecontext.ServicesInjector;
 
 public class EncodableFacetAnnotationElseConfigurationFactory extends FacetFactoryAbstract implements AdapterManagerAware {
 
-    private IsisConfiguration configuration;
-
     private AdapterManager adapterManager;
 
     public EncodableFacetAnnotationElseConfigurationFactory() {
@@ -58,14 +53,14 @@ public class EncodableFacetAnnotationElseConfigurationFactory extends FacetFacto
         // create from annotation, if present
         final Encodable annotation = Annotations.getAnnotation(cls, Encodable.class);
         if (annotation != null) {
-            final EncodableFacetAnnotation facet = new EncodableFacetAnnotation(cls, getIsisConfiguration(), holder, adapterManager, servicesInjector);
+            final EncodableFacetAnnotation facet = new EncodableFacetAnnotation(cls, getConfiguration(), holder, adapterManager, servicesInjector);
             if (facet.isValid()) {
                 return facet;
             }
         }
 
         // otherwise, try to create from configuration, if present
-        final String encoderDecoderName = EncoderDecoderUtil.encoderDecoderNameFromConfiguration(cls, getIsisConfiguration());
+        final String encoderDecoderName = EncoderDecoderUtil.encoderDecoderNameFromConfiguration(cls, getConfiguration());
         if (!Strings.isNullOrEmpty(encoderDecoderName)) {
             final EncodableFacetFromConfiguration facet = new EncodableFacetFromConfiguration(encoderDecoderName, holder, adapterManager, servicesInjector);
             if (facet.isValid()) {
@@ -81,17 +76,6 @@ public class EncodableFacetAnnotationElseConfigurationFactory extends FacetFacto
     // Injected
     // ////////////////////////////////////////////////////////////////////
 
-    public IsisConfiguration getIsisConfiguration() {
-        return configuration;
-    }
-
-    @Override
-    public void setServicesInjector(final ServicesInjector servicesInjector) {
-        super.setServicesInjector(servicesInjector);
-        IsisConfiguration configuration = (IsisConfiguration) servicesInjector
-                .lookupService(ConfigurationServiceInternal.class);
-        this.configuration = configuration;
-    }
 
 
     @Override

http://git-wip-us.apache.org/repos/asf/isis/blob/74565888/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/parseable/annotcfg/ParseableFacetAnnotationElseConfigurationFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/parseable/annotcfg/ParseableFacetAnnotationElseConfigurationFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/parseable/annotcfg/ParseableFacetAnnotationElseConfigurationFactory.java
index 4e7b96e..697a1e1 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/parseable/annotcfg/ParseableFacetAnnotationElseConfigurationFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/parseable/annotcfg/ParseableFacetAnnotationElseConfigurationFactory.java
@@ -22,7 +22,6 @@ package org.apache.isis.core.metamodel.facets.object.parseable.annotcfg;
 import com.google.common.base.Strings;
 
 import org.apache.isis.applib.annotation.Parseable;
-import org.apache.isis.core.commons.config.IsisConfiguration;
 import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager;
 import org.apache.isis.core.metamodel.adapter.mgr.AdapterManagerAware;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
@@ -32,12 +31,9 @@ import org.apache.isis.core.metamodel.facets.Annotations;
 import org.apache.isis.core.metamodel.facets.FacetFactoryAbstract;
 import org.apache.isis.core.metamodel.facets.object.parseable.ParseableFacetAbstract;
 import org.apache.isis.core.metamodel.facets.object.parseable.ParserUtil;
-import org.apache.isis.core.metamodel.runtimecontext.ConfigurationServiceInternal;
-import org.apache.isis.core.metamodel.runtimecontext.ServicesInjector;
 
 public class ParseableFacetAnnotationElseConfigurationFactory extends FacetFactoryAbstract implements AdapterManagerAware {
 
-    private IsisConfiguration configuration;
 
     private AdapterManager adapterManager;
 
@@ -55,7 +51,7 @@ public class ParseableFacetAnnotationElseConfigurationFactory extends FacetFacto
 
         // create from annotation, if present
         if (annotation != null) {
-            final ParseableFacetAnnotation facet = new ParseableFacetAnnotation(cls, getIsisConfiguration(), holder,
+            final ParseableFacetAnnotation facet = new ParseableFacetAnnotation(cls, getConfiguration(), holder,
                     adapterManager, servicesInjector);
             if (facet.isValid()) {
                 return facet;
@@ -63,7 +59,7 @@ public class ParseableFacetAnnotationElseConfigurationFactory extends FacetFacto
         }
 
         // otherwise, try to create from configuration, if present
-        final String parserName = ParserUtil.parserNameFromConfiguration(cls, getIsisConfiguration());
+        final String parserName = ParserUtil.parserNameFromConfiguration(cls, getConfiguration());
         if (!Strings.isNullOrEmpty(parserName)) {
             final ParseableFacetFromConfiguration facet = new ParseableFacetFromConfiguration(parserName, holder,
                     servicesInjector, adapterManager);
@@ -75,23 +71,6 @@ public class ParseableFacetAnnotationElseConfigurationFactory extends FacetFacto
         return null;
     }
 
-    // ////////////////////////////////////////////////////////////////////
-    // Dependencies (injected via setters since *Aware)
-    // ////////////////////////////////////////////////////////////////////
-
-
-    public IsisConfiguration getIsisConfiguration() {
-        return configuration;
-    }
-
-    @Override
-    public void setServicesInjector(final ServicesInjector servicesInjector) {
-        super.setServicesInjector(servicesInjector);
-        IsisConfiguration configuration = (IsisConfiguration) servicesInjector
-                .lookupService(ConfigurationServiceInternal.class);
-        this.configuration = configuration;
-    }
-
 
     @Override
     public void setAdapterManager(final AdapterManager adapterManager) {

http://git-wip-us.apache.org/repos/asf/isis/blob/74565888/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/value/annotcfg/ValueFacetAnnotationOrConfigurationFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/value/annotcfg/ValueFacetAnnotationOrConfigurationFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/value/annotcfg/ValueFacetAnnotationOrConfigurationFactory.java
index 9a549c0..d6c5646 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/value/annotcfg/ValueFacetAnnotationOrConfigurationFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/value/annotcfg/ValueFacetAnnotationOrConfigurationFactory.java
@@ -24,7 +24,6 @@ import com.google.common.base.Strings;
 import org.apache.isis.applib.adapters.EncoderDecoder;
 import org.apache.isis.applib.adapters.Parser;
 import org.apache.isis.applib.annotation.Value;
-import org.apache.isis.core.commons.config.IsisConfiguration;
 import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager;
 import org.apache.isis.core.metamodel.adapter.mgr.AdapterManagerAware;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
@@ -42,8 +41,6 @@ import org.apache.isis.core.metamodel.facets.object.value.EqualByContentFacet;
 import org.apache.isis.core.metamodel.facets.object.value.ValueFacet;
 import org.apache.isis.core.metamodel.facets.object.value.vsp.ValueSemanticsProviderContext;
 import org.apache.isis.core.metamodel.facets.object.value.vsp.ValueSemanticsProviderUtil;
-import org.apache.isis.core.metamodel.runtimecontext.ConfigurationServiceInternal;
-import org.apache.isis.core.metamodel.runtimecontext.ServicesInjector;
 
 /**
  * Processes the {@link Value} annotation.
@@ -73,7 +70,6 @@ import org.apache.isis.core.metamodel.runtimecontext.ServicesInjector;
  */
 public class ValueFacetAnnotationOrConfigurationFactory extends FacetFactoryAbstract implements AdapterManagerAware {
 
-    private IsisConfiguration configuration;
     private AdapterManager adapterManager;
 
     public ValueFacetAnnotationOrConfigurationFactory() {
@@ -93,16 +89,16 @@ public class ValueFacetAnnotationOrConfigurationFactory extends FacetFactoryAbst
         // create from annotation, if present
         final Value annotation = Annotations.getAnnotation(cls, Value.class);
         if (annotation != null) {
-            final ValueFacetAnnotation facet = new ValueFacetAnnotation(cls, holder, getIsisConfiguration(), createValueSemanticsProviderContext());
+            final ValueFacetAnnotation facet = new ValueFacetAnnotation(cls, holder, getConfiguration(), createValueSemanticsProviderContext());
             if (facet.isValid()) {
                 return facet;
             }
         }
 
         // otherwise, try to create from configuration, if present
-        final String semanticsProviderName = ValueSemanticsProviderUtil.semanticsProviderNameFromConfiguration(cls, configuration);
+        final String semanticsProviderName = ValueSemanticsProviderUtil.semanticsProviderNameFromConfiguration(cls, getConfiguration());
         if (!Strings.isNullOrEmpty(semanticsProviderName)) {
-            final ValueFacetFromConfiguration facet = new ValueFacetFromConfiguration(semanticsProviderName, holder, getIsisConfiguration(), createValueSemanticsProviderContext());
+            final ValueFacetFromConfiguration facet = new ValueFacetFromConfiguration(semanticsProviderName, holder, getConfiguration(), createValueSemanticsProviderContext());
             if (facet.isValid()) {
                 return facet;
             }
@@ -120,20 +116,6 @@ public class ValueFacetAnnotationOrConfigurationFactory extends FacetFactoryAbst
     // Injected
     // ////////////////////////////////////////////////////////////////////
 
-    public IsisConfiguration getIsisConfiguration() {
-        return configuration;
-    }
-
-
-    @Override
-    public void setServicesInjector(final ServicesInjector servicesInjector) {
-        super.setServicesInjector(servicesInjector);
-        IsisConfiguration configuration = (IsisConfiguration) servicesInjector
-                .lookupService(ConfigurationServiceInternal.class);
-        this.configuration = configuration;
-    }
-
-
 
     public AdapterManager getAdapterManager() {
         return adapterManager;

http://git-wip-us.apache.org/repos/asf/isis/blob/74565888/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/value/vsp/ValueFacetUsingSemanticsProviderFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/value/vsp/ValueFacetUsingSemanticsProviderFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/value/vsp/ValueFacetUsingSemanticsProviderFactory.java
index fe130f3..f4ed69a 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/value/vsp/ValueFacetUsingSemanticsProviderFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/value/vsp/ValueFacetUsingSemanticsProviderFactory.java
@@ -31,7 +31,6 @@ import org.apache.isis.core.metamodel.runtimecontext.ServicesInjectorAware;
 
 public abstract class ValueFacetUsingSemanticsProviderFactory<T> extends FacetFactoryAbstract implements AdapterManagerAware, ServicesInjectorAware {
 
-    private IsisConfiguration configuration;
     private AdapterManager adapterManager;
 
     /**
@@ -53,9 +52,6 @@ public abstract class ValueFacetUsingSemanticsProviderFactory<T> extends FacetFa
     // ////////////////////////////////////////////////////
 
 
-    public IsisConfiguration getConfiguration() {
-        return configuration;
-    }
 
     public ValueSemanticsProviderContext getContext() {
         if (context == null) {
@@ -64,16 +60,6 @@ public abstract class ValueFacetUsingSemanticsProviderFactory<T> extends FacetFa
         return context;
     }
 
-
-    @Override
-    public void setServicesInjector(final ServicesInjector servicesInjector) {
-        super.setServicesInjector(servicesInjector);
-        IsisConfiguration configuration = (IsisConfiguration) servicesInjector
-                .lookupService(ConfigurationServiceInternal.class);
-        this.configuration = configuration;
-    }
-
-
     @Override
     public void setAdapterManager(final AdapterManager adapterManager) {
         this.adapterManager = adapterManager;

http://git-wip-us.apache.org/repos/asf/isis/blob/74565888/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/property/PropertyAnnotationFacetFactory.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/property/PropertyAnnotationFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/property/PropertyAnnotationFacetFactory.java
index 531f1ae..6f0282a 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/property/PropertyAnnotationFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/property/PropertyAnnotationFacetFactory.java
@@ -104,8 +104,6 @@ public class PropertyAnnotationFacetFactory extends FacetFactoryAbstract impleme
     private final MetaModelValidatorForDeprecatedAnnotation mustSatisfyValidator = new MetaModelValidatorForDeprecatedAnnotation(MustSatisfy.class);
     private final MetaModelValidatorForDeprecatedAnnotation notPersistedValidator = new MetaModelValidatorForDeprecatedAnnotation(NotPersisted.class);
 
-    private IsisConfiguration configuration;
-
     public PropertyAnnotationFacetFactory() {
         super(FeatureType.PROPERTIES_AND_ACTIONS);
     }
@@ -179,7 +177,7 @@ public class PropertyAnnotationFacetFactory extends FacetFactoryAbstract impleme
                 PropertyDomainEvent.Noop.class,
                 PropertyDomainEvent.Default.class,
                 "isis.reflector.facet.propertyAnnotation.domainEvent.postForDefault",
-                this.configuration)) {
+                getConfiguration())) {
             FacetUtil.addFacet(propertyDomainEventFacet);
         }
 
@@ -302,7 +300,7 @@ public class PropertyAnnotationFacetFactory extends FacetFactoryAbstract impleme
         }
 
         // check for @Property(command=...)
-        final CommandFacet commandFacet = CommandFacetForPropertyAnnotation.create(property, configuration, holder);
+        final CommandFacet commandFacet = CommandFacetForPropertyAnnotation.create(property, getConfiguration(), holder);
 
         FacetUtil.addFacet(commandFacet);
     }
@@ -325,7 +323,7 @@ public class PropertyAnnotationFacetFactory extends FacetFactoryAbstract impleme
 
         // check for @Property(publishing=...)
         final PublishedPropertyFacet facet = PublishedPropertyFacetForPropertyAnnotation
-                .create(property, configuration, holder);
+                .create(property, getConfiguration(), holder);
 
         FacetUtil.addFacet(facet);
     }

http://git-wip-us.apache.org/repos/asf/isis/blob/74565888/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/ConfigurationServiceInternal.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/ConfigurationServiceInternal.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/ConfigurationServiceInternal.java
index b5a3dc2..206b7f3 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/ConfigurationServiceInternal.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/ConfigurationServiceInternal.java
@@ -22,8 +22,6 @@ import org.apache.isis.core.commons.config.IsisConfiguration;
 
 public interface ConfigurationServiceInternal {
 
-    void injectInto(final Object candidate);
-
     /**
      * Provided by {@link RuntimeContextAbstract} itself, cloned properties from
      * {@link IsisConfiguration}.

http://git-wip-us.apache.org/repos/asf/isis/blob/74565888/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 c70a066..2dbd2f0 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
@@ -151,7 +151,6 @@ public class FacetProcessor implements RuntimeContextAware {
      * processing.
      */
     public void injectDependenciesInto(final FacetFactory factory) {
-        getIsisConfiguration().injectInto(factory);
 
         // cascades all the subcomponents also
         getRuntimeContext().injectInto(factory);

http://git-wip-us.apache.org/repos/asf/isis/blob/74565888/core/metamodel/src/main/java/org/apache/isis/core/runtime/authentication/standard/AuthenticationManagerStandardInstallerAbstract.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/runtime/authentication/standard/AuthenticationManagerStandardInstallerAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/runtime/authentication/standard/AuthenticationManagerStandardInstallerAbstract.java
index b62e6f9..6dc4281 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/runtime/authentication/standard/AuthenticationManagerStandardInstallerAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/runtime/authentication/standard/AuthenticationManagerStandardInstallerAbstract.java
@@ -21,21 +21,23 @@ package org.apache.isis.core.runtime.authentication.standard;
 
 import java.util.List;
 
-import org.apache.isis.core.commons.config.InstallerAbstract;
-import org.apache.isis.core.commons.config.IsisConfiguration;
+import org.apache.isis.core.commons.components.InstallerAbstract;
+import org.apache.isis.core.commons.config.IsisConfigurationDefault;
 import org.apache.isis.core.runtime.authentication.AuthenticationManager;
 import org.apache.isis.core.runtime.authentication.AuthenticationManagerInstaller;
 
 public abstract class AuthenticationManagerStandardInstallerAbstract extends InstallerAbstract implements AuthenticationManagerInstaller {
 
-    public AuthenticationManagerStandardInstallerAbstract(final String name) {
-        super(AuthenticationManagerInstaller.TYPE, name);
+    public AuthenticationManagerStandardInstallerAbstract(
+            final String name,
+            final IsisConfigurationDefault isisConfiguration) {
+        super(AuthenticationManagerInstaller.TYPE, name, isisConfiguration);
     }
 
     @Override
     public final AuthenticationManager createAuthenticationManager() {
         final AuthenticationManagerStandard authenticationManager = createAuthenticationManagerStandard();
-        for (final Authenticator authenticator : createAuthenticators(getConfiguration())) {
+        for (final Authenticator authenticator : createAuthenticators()) {
             authenticationManager.addAuthenticator(authenticator);
         }
         return authenticationManager;
@@ -50,7 +52,7 @@ public abstract class AuthenticationManagerStandardInstallerAbstract extends Ins
      * 
      * @return
      */
-    protected abstract List<Authenticator> createAuthenticators(final IsisConfiguration configuration);
+    protected abstract List<Authenticator> createAuthenticators();
 
     @Override
     public List<Class<?>> getTypes() {

http://git-wip-us.apache.org/repos/asf/isis/blob/74565888/core/metamodel/src/main/java/org/apache/isis/core/runtime/authorization/standard/AuthorizationManagerStandardInstallerAbstract.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/runtime/authorization/standard/AuthorizationManagerStandardInstallerAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/runtime/authorization/standard/AuthorizationManagerStandardInstallerAbstract.java
index 47e90f9..020a588 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/runtime/authorization/standard/AuthorizationManagerStandardInstallerAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/runtime/authorization/standard/AuthorizationManagerStandardInstallerAbstract.java
@@ -21,31 +21,33 @@ package org.apache.isis.core.runtime.authorization.standard;
 
 import java.util.List;
 
-import org.apache.isis.core.commons.config.InstallerAbstract;
-import org.apache.isis.core.commons.config.IsisConfiguration;
+import org.apache.isis.core.commons.components.InstallerAbstract;
+import org.apache.isis.core.commons.config.IsisConfigurationDefault;
 import org.apache.isis.core.runtime.authorization.AuthorizationManager;
 import org.apache.isis.core.runtime.authorization.AuthorizationManagerInstaller;
 
-public abstract class AuthorizationManagerStandardInstallerAbstract extends InstallerAbstract implements AuthorizationManagerInstaller {
+public abstract class AuthorizationManagerStandardInstallerAbstract
+        extends InstallerAbstract
+        implements AuthorizationManagerInstaller {
 
-    public AuthorizationManagerStandardInstallerAbstract(final String name) {
-        super(AuthorizationManagerInstaller.TYPE, name);
+    public AuthorizationManagerStandardInstallerAbstract(
+            final String name,
+            final IsisConfigurationDefault isisConfiguration) {
+        super(AuthorizationManagerInstaller.TYPE, name, isisConfiguration);
     }
 
     @Override
     public AuthorizationManager createAuthorizationManager() {
         final AuthorizationManagerStandard authorizationManager = new AuthorizationManagerStandard(getConfiguration());
-        final Authorizor authorizor = createAuthorizor(getConfiguration());
+        final Authorizor authorizor = createAuthorizor();
         authorizationManager.setAuthorizor(authorizor);
         return authorizationManager;
     }
 
     /**
      * Hook method
-     * 
-     * @return
      */
-    protected abstract Authorizor createAuthorizor(final IsisConfiguration configuration);
+    protected abstract Authorizor createAuthorizor();
 
     @Override
     public List<Class<?>> getTypes() {

http://git-wip-us.apache.org/repos/asf/isis/blob/74565888/core/metamodel/src/main/java/org/apache/isis/core/runtime/optionhandler/OptionHandler.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/runtime/optionhandler/OptionHandler.java b/core/metamodel/src/main/java/org/apache/isis/core/runtime/optionhandler/OptionHandler.java
index f39cae5..1419063 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/runtime/optionhandler/OptionHandler.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/runtime/optionhandler/OptionHandler.java
@@ -22,11 +22,14 @@ package org.apache.isis.core.runtime.optionhandler;
 import org.apache.commons.cli.CommandLine;
 import org.apache.commons.cli.Options;
 
-import org.apache.isis.core.commons.config.IsisConfigurationBuilderPrimer;
+import org.apache.isis.core.commons.configbuilder.IsisConfigurationBuilder;
 
-public interface OptionHandler extends IsisConfigurationBuilderPrimer {
+public interface OptionHandler  {
 
-    public void addOption(Options options);
+    void addOption(Options options);
+
+    boolean handle(CommandLine commandLine, BootPrinter bootPrinter, Options options);
+
+    void prime(IsisConfigurationBuilder isisConfigurationBuilder);
 
-    public boolean handle(CommandLine commandLine, BootPrinter bootPrinter, Options options);
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/74565888/core/metamodel/src/main/java/org/apache/isis/core/runtime/runner/opts/OptionValidator.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/runtime/runner/opts/OptionValidator.java b/core/metamodel/src/main/java/org/apache/isis/core/runtime/runner/opts/OptionValidator.java
new file mode 100644
index 0000000..4a8c9e4
--- /dev/null
+++ b/core/metamodel/src/main/java/org/apache/isis/core/runtime/runner/opts/OptionValidator.java
@@ -0,0 +1,28 @@
+/*
+ *  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.runner.opts;
+
+import com.google.common.base.Optional;
+
+import org.apache.isis.core.metamodel.deployment.DeploymentCategory;
+
+public interface OptionValidator {
+    Optional<String> validate(final DeploymentCategory deploymentCategory);
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/isis/blob/74565888/core/metamodel/src/main/java/org/apache/isis/core/webapp/config/IsisConfigurationBuilderForWebapp.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/webapp/config/IsisConfigurationBuilderForWebapp.java b/core/metamodel/src/main/java/org/apache/isis/core/webapp/config/IsisConfigurationBuilderForWebapp.java
deleted file mode 100644
index 772e5b8..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/webapp/config/IsisConfigurationBuilderForWebapp.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License.
- */
-
-package org.apache.isis.core.webapp.config;
-
-import javax.servlet.ServletContext;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import org.apache.isis.core.commons.config.IsisConfigurationBuilder;
-import org.apache.isis.core.commons.config.IsisConfigurationBuilderFileSystem;
-import org.apache.isis.core.commons.config.IsisConfigurationBuilderResourceStreams;
-
-/**
- * Convenience implementation of {@link IsisConfigurationBuilder} that loads
- * configuration resource using the {@link ResourceStreamSourceForWebInf}.
- */
-public class IsisConfigurationBuilderForWebapp extends IsisConfigurationBuilderResourceStreams {
-
-    @SuppressWarnings("unused")
-    private static final Logger LOG = LoggerFactory.getLogger(IsisConfigurationBuilderFileSystem.class);
-
-    public IsisConfigurationBuilderForWebapp(final ServletContext servletContext) {
-        super(new ResourceStreamSourceForWebInf(servletContext));
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/isis/blob/74565888/core/metamodel/src/main/java/org/apache/isis/progmodels/dflt/JavaReflectorInstaller.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/progmodels/dflt/JavaReflectorInstaller.java b/core/metamodel/src/main/java/org/apache/isis/progmodels/dflt/JavaReflectorInstaller.java
index dfa0598..a6018de 100644
--- a/core/metamodel/src/main/java/org/apache/isis/progmodels/dflt/JavaReflectorInstaller.java
+++ b/core/metamodel/src/main/java/org/apache/isis/progmodels/dflt/JavaReflectorInstaller.java
@@ -19,5 +19,10 @@
 
 package org.apache.isis.progmodels.dflt;
 
+import org.apache.isis.core.commons.config.IsisConfigurationDefault;
+
 public class JavaReflectorInstaller extends JavaReflectorInstallerNoDecorators {
+    public JavaReflectorInstaller(final IsisConfigurationDefault isisConfiguration) {
+        super(isisConfiguration);
+    }
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/74565888/core/metamodel/src/main/java/org/apache/isis/progmodels/dflt/JavaReflectorInstallerNoDecorators.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/progmodels/dflt/JavaReflectorInstallerNoDecorators.java b/core/metamodel/src/main/java/org/apache/isis/progmodels/dflt/JavaReflectorInstallerNoDecorators.java
index 3380e2c..b50ba23 100644
--- a/core/metamodel/src/main/java/org/apache/isis/progmodels/dflt/JavaReflectorInstallerNoDecorators.java
+++ b/core/metamodel/src/main/java/org/apache/isis/progmodels/dflt/JavaReflectorInstallerNoDecorators.java
@@ -28,8 +28,9 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import org.apache.isis.core.commons.config.ConfigurationConstants;
-import org.apache.isis.core.commons.config.InstallerAbstract;
+import org.apache.isis.core.commons.components.InstallerAbstract;
 import org.apache.isis.core.commons.config.IsisConfiguration;
+import org.apache.isis.core.commons.config.IsisConfigurationDefault;
 import org.apache.isis.core.commons.factory.InstanceUtil;
 import org.apache.isis.core.metamodel.deployment.DeploymentCategory;
 import org.apache.isis.core.metamodel.facetapi.MetaModelRefiner;
@@ -44,26 +45,27 @@ import org.apache.isis.core.metamodel.specloader.validator.MetaModelValidator;
 
 public class JavaReflectorInstallerNoDecorators extends InstallerAbstract implements ObjectReflectorInstaller {
 
+    //region > constants
+
     private static final Logger LOG = LoggerFactory.getLogger(JavaReflectorInstallerNoDecorators.class);
 
     public static final String PROPERTY_BASE = ConfigurationConstants.ROOT;
 
-    // /////////////////////////////////////////////////////
-    // Constructor
-    // /////////////////////////////////////////////////////
+    //endregion
+
+    //region > constructor
 
-    public JavaReflectorInstallerNoDecorators() {
-        this("java");
+    public JavaReflectorInstallerNoDecorators(final IsisConfigurationDefault isisConfiguration) {
+        this("java", isisConfiguration);
     }
 
-    public JavaReflectorInstallerNoDecorators(final String name) {
-        super(ObjectReflectorInstaller.TYPE, name);
+    public JavaReflectorInstallerNoDecorators(final String name, final IsisConfigurationDefault isisConfiguration) {
+        super(ObjectReflectorInstaller.TYPE, name, isisConfiguration);
         
     }
+    //endregion
 
-    // /////////////////////////////////////////////////////
-    // createReflector, doCreateReflector
-    // /////////////////////////////////////////////////////
+    //region > createReflector, doCreateReflector
 
     @Override
     public SpecificationLoaderSpi createReflector(
@@ -80,6 +82,9 @@ public class JavaReflectorInstallerNoDecorators extends InstallerAbstract implem
                 servicesInjector);
     }
 
+    //endregion
+
+    //region > createProgrammingModel
 
     /**
      * Hook method to allow subclasses to specify a different implementations
@@ -116,6 +121,10 @@ public class JavaReflectorInstallerNoDecorators extends InstallerAbstract implem
         excludeFacetFactories(configuration, programmingModel);
     }
 
+    //endregion
+
+    //region > includeFacetFactories, excludeFacetFactories
+
     /**
      * Factored out of {@link #createProgrammingModel(IsisConfiguration)}
      * so that subclasses that choose to override can still support
@@ -134,7 +143,9 @@ public class JavaReflectorInstallerNoDecorators extends InstallerAbstract implem
         ProgrammingModel.Util.excludeFacetFactories(configuration, programmingModel);
     }
 
+    //endregion
 
+    //region > createMetaModelValidator
 
     /**
      * Hook method to allow subclasses to specify a different implementation of
@@ -150,6 +161,10 @@ public class JavaReflectorInstallerNoDecorators extends InstallerAbstract implem
         return InstanceUtil.createInstance(metaModelValidatorClassName, MetaModelValidator.class);
     }
 
+    //endregion
+
+    //region > createLayoutMetadataReaders
+
     protected List<LayoutMetadataReader> createLayoutMetadataReaders(final IsisConfiguration configuration) {
         final List<LayoutMetadataReader> layoutMetadataReaders = Lists.newArrayList();
         final String[] layoutMetadataReaderClassNames = configuration.getList(ReflectorConstants.LAYOUT_METADATA_READER_LIST, ReflectorConstants.LAYOUT_METADATA_READER_LIST_DEFAULT);
@@ -162,15 +177,15 @@ public class JavaReflectorInstallerNoDecorators extends InstallerAbstract implem
         return layoutMetadataReaders;
     }
 
+    //endregion
 
-
-
-    // /////////////////////////////////////////////////////
-    // Guice
-    // /////////////////////////////////////////////////////
+    //region > getTypes
 
     @Override
     public List<Class<?>> getTypes() {
         return listOf(SpecificationLoaderSpi.class);
     }
+
+    //endregion
+
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/74565888/core/metamodel/src/test/java/org/apache/isis/core/commons/config/ConfigurationBuilderFileSystemTest.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/commons/config/ConfigurationBuilderFileSystemTest.java b/core/metamodel/src/test/java/org/apache/isis/core/commons/config/ConfigurationBuilderFileSystemTest.java
deleted file mode 100644
index 009b1a5..0000000
--- a/core/metamodel/src/test/java/org/apache/isis/core/commons/config/ConfigurationBuilderFileSystemTest.java
+++ /dev/null
@@ -1,76 +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.commons.config;
-
-import junit.framework.TestCase;
-
-import org.apache.isis.core.commons.exceptions.IsisException;
-
-public class ConfigurationBuilderFileSystemTest extends TestCase {
-    IsisConfigurationBuilderFileSystem loader;
-
-    @Override
-    protected void setUp() throws Exception {
-        loader = new IsisConfigurationBuilderFileSystem("src/test/config");
-        loader.addDefaultConfigurationResources();
-    }
-
-    public void testDefaultConfiguration() {
-        final IsisConfiguration configuration = loader.getConfiguration();
-        assertEquals("one", configuration.getString("properties.example"));
-    }
-
-    public void testDefaultConfigurationTrailingWhitespace() {
-        final IsisConfiguration configuration = loader.getConfiguration();
-        assertEquals("in-memory", configuration.getString("properties.trailingWhitespace"));
-    }
-
-    public void testAddConfiguration() {
-        loader.addConfigurationResource("another.properties", NotFoundPolicy.FAIL_FAST);
-        final IsisConfiguration configuration = loader.getConfiguration();
-        assertEquals("added", configuration.getString("additional.example"));
-    }
-
-    public void testAddedConfigurationIsIgnoredWhenEarlierPropertyExists() {
-        loader.addConfigurationResource("another.properties", NotFoundPolicy.FAIL_FAST);
-        final IsisConfiguration configuration = loader.getConfiguration();
-        assertEquals("one", configuration.getString("properties.example"));
-    }
-
-    public void testAddedConfigurationFailsWhenFileNotFound() {
-        try {
-            loader.addConfigurationResource("unfound.properties", NotFoundPolicy.FAIL_FAST);
-            loader.getConfiguration();
-            fail();
-        } catch (final IsisException expected) {
-        }
-    }
-
-    public void testAddedConfigurationIgnoreUnfoundFile() {
-        loader.addConfigurationResource("unfound.properties", NotFoundPolicy.CONTINUE);
-        loader.getConfiguration();
-    }
-
-    public void testAddProperty() throws Exception {
-        loader.add("added.property", "added by code");
-        final IsisConfiguration configuration = loader.getConfiguration();
-        assertEquals("added by code", configuration.getString("added.property"));
-    }
-}