You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by ah...@apache.org on 2019/09/29 16:54:57 UTC

[isis] branch v2 updated: ISIS-2158: fixes all but 5 mm tests after latest merge

This is an automated email from the ASF dual-hosted git repository.

ahuber pushed a commit to branch v2
in repository https://gitbox.apache.org/repos/asf/isis.git


The following commit(s) were added to refs/heads/v2 by this push:
     new 3db0aa8  ISIS-2158: fixes all but 5 mm tests after latest merge
3db0aa8 is described below

commit 3db0aa829b9738ac96f93b38a4e6d012d68c042f
Author: Andi Huber <ah...@apache.org>
AuthorDate: Sun Sep 29 18:54:49 2019 +0200

    ISIS-2158: fixes all but 5 mm tests after latest merge
---
 .../org/apache/isis/config/IsisConfiguration.java  |   1 -
 .../editing/EditingObjectsConfiguration.java       |   4 -
 .../publishing/PublishObjectsConfiguration.java    |   2 -
 .../isis/metamodel/ServiceInjector_forTesting.java |   2 +-
 .../auditing/AuditObjectsConfiguration.java        |   3 -
 .../AuditableFacetForDomainObjectAnnotation.java   |  25 +++--
 .../metamodel/services/ServiceInjectorDefault.java |  14 ++-
 .../specloader/SpecificationLoaderDefault.java     |  10 +-
 .../DomainObjectAnnotationFacetFactoryTest.java    | 111 ++++++++++++++-------
 .../services/ServiceInjectorDefaultTest.java       |   9 ++
 .../ServiceInjectorDefaultTest_usingFields.java    |   2 +
 ...InjectorDefaultTest_validateServices_happy.java |   2 +
 .../SpecificationLoaderTestAbstract.java           |   5 +-
 13 files changed, 118 insertions(+), 72 deletions(-)

diff --git a/core/config/src/main/java/org/apache/isis/config/IsisConfiguration.java b/core/config/src/main/java/org/apache/isis/config/IsisConfiguration.java
index 621ba17..a50bb8f 100644
--- a/core/config/src/main/java/org/apache/isis/config/IsisConfiguration.java
+++ b/core/config/src/main/java/org/apache/isis/config/IsisConfiguration.java
@@ -29,7 +29,6 @@ import java.util.regex.Pattern;
 import org.apache.isis.applib.annotation.LabelPosition;
 import org.apache.isis.applib.annotation.PromptStyle;
 import org.apache.isis.applib.services.i18n.TranslationService;
-import org.apache.isis.applib.services.publish.PublishedObjects;
 import org.apache.isis.commons.internal.base._Strings;
 import org.apache.isis.commons.internal.collections._Maps;
 import org.apache.isis.metamodel.facets.actions.action.command.CommandActionsConfiguration;
diff --git a/core/config/src/main/java/org/apache/isis/metamodel/facets/object/domainobject/editing/EditingObjectsConfiguration.java b/core/config/src/main/java/org/apache/isis/metamodel/facets/object/domainobject/editing/EditingObjectsConfiguration.java
index 2b0708e3..e67a62e 100644
--- a/core/config/src/main/java/org/apache/isis/metamodel/facets/object/domainobject/editing/EditingObjectsConfiguration.java
+++ b/core/config/src/main/java/org/apache/isis/metamodel/facets/object/domainobject/editing/EditingObjectsConfiguration.java
@@ -18,10 +18,6 @@
  */
 package org.apache.isis.metamodel.facets.object.domainobject.editing;
 
-import org.apache.isis.config.IsisConfiguration;
-import org.apache.isis.config.IsisConfigurationLegacy;
-import org.apache.isis.metamodel.facets.object.domainobject.Util;
-
 public enum EditingObjectsConfiguration {
     TRUE,
     FALSE;
diff --git a/core/config/src/main/java/org/apache/isis/metamodel/facets/object/domainobject/publishing/PublishObjectsConfiguration.java b/core/config/src/main/java/org/apache/isis/metamodel/facets/object/domainobject/publishing/PublishObjectsConfiguration.java
index fc50421..5f3cbf5 100644
--- a/core/config/src/main/java/org/apache/isis/metamodel/facets/object/domainobject/publishing/PublishObjectsConfiguration.java
+++ b/core/config/src/main/java/org/apache/isis/metamodel/facets/object/domainobject/publishing/PublishObjectsConfiguration.java
@@ -19,8 +19,6 @@
 package org.apache.isis.metamodel.facets.object.domainobject.publishing;
 
 import org.apache.isis.config.IsisConfiguration;
-import org.apache.isis.config.IsisConfigurationLegacy;
-import org.apache.isis.metamodel.facets.object.domainobject.Util;
 
 public enum PublishObjectsConfiguration {
     ALL,
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/ServiceInjector_forTesting.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/ServiceInjector_forTesting.java
index 285f926..a361087 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/ServiceInjector_forTesting.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/ServiceInjector_forTesting.java
@@ -47,7 +47,7 @@ class ServiceInjector_forTesting implements ServiceInjector {
 
             val mmcb = (MetaModelContext_forTesting) mmc;
 
-            val configuration = requireNonNull(mmcb.getConfigurationLegacy());
+            val configuration = requireNonNull(mmcb.getConfiguration());
             val serviceRegistry = requireNonNull(mmcb.getServiceRegistry());
             val injectorMethodEvaluator = new InjectorMethodEvaluatorDefault();
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/domainobject/auditing/AuditObjectsConfiguration.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/domainobject/auditing/AuditObjectsConfiguration.java
index 67ebdbf..cdb4ba8 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/domainobject/auditing/AuditObjectsConfiguration.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/domainobject/auditing/AuditObjectsConfiguration.java
@@ -21,9 +21,6 @@ package org.apache.isis.metamodel.facets.object.domainobject.auditing;
 import org.apache.isis.config.IsisConfigurationLegacy;
 import org.apache.isis.metamodel.facets.object.domainobject.Util;
 
-// TODO: v2: why is this enum no longer referenced?
-//  compare AuditableFacetForDomainObjectAnnotation vs PublishedObjectFacetForDomainObjectAnnotation
-//  the latter does read from the configuration, but the former does not.
 public enum AuditObjectsConfiguration {
     ALL,
     NONE;
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/domainobject/auditing/AuditableFacetForDomainObjectAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/domainobject/auditing/AuditableFacetForDomainObjectAnnotation.java
index eb1a31a..21778b4 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/domainobject/auditing/AuditableFacetForDomainObjectAnnotation.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/domainobject/auditing/AuditableFacetForDomainObjectAnnotation.java
@@ -21,6 +21,7 @@ package org.apache.isis.metamodel.facets.object.domainobject.auditing;
 
 import java.util.List;
 
+import javax.annotation.Nullable;
 import javax.validation.constraints.NotNull;
 
 import org.apache.isis.applib.annotation.Auditing;
@@ -37,9 +38,9 @@ import lombok.val;
 public class AuditableFacetForDomainObjectAnnotation extends AuditableFacetAbstract {
 
     public static AuditableFacet create(
-            final List<DomainObject> domainObjectAnnotations,
-            final IsisConfigurationLegacy configuration,
-            final FacetHolder holder) {
+            List<DomainObject> domainObjectAnnotations,
+            IsisConfigurationLegacy configuration,
+            FacetHolder holder) {
 
         val domainObjectAnnotation = domainObjectAnnotations.stream()
                 .filter(doAnnot -> doAnnot.auditing() != Auditing.NOT_SPECIFIED)
@@ -51,18 +52,19 @@ public class AuditableFacetForDomainObjectAnnotation extends AuditableFacetAbstr
 
     @NotNull
     private static AuditableFacet create(
-            final DomainObject domainObjectAnnotation,
-            final IsisConfigurationLegacy configuration,
-            final FacetHolder holder) {
+            @Nullable DomainObject domainObjectAnnotation,
+            IsisConfigurationLegacy configuration,
+            FacetHolder holder) {
 
-        final Auditing auditing = domainObjectAnnotation != null 
+        val auditing = domainObjectAnnotation != null 
                 ? domainObjectAnnotation.auditing() 
                         : Auditing.AS_CONFIGURED;
+                
         switch (auditing) {
         case AS_CONFIGURED:
 
-            val setting = AuditObjectsConfiguration.parse(configuration);
-            switch (setting) {
+            val auditObjects = AuditObjectsConfiguration.parse(configuration);
+            switch (auditObjects) {
             case NONE:
                 return null;
             default:
@@ -83,8 +85,9 @@ public class AuditableFacetForDomainObjectAnnotation extends AuditableFacetAbstr
     }
 
     protected AuditableFacetForDomainObjectAnnotation(
-            final Enablement enablement,
-            final FacetHolder holder) {
+            Enablement enablement,
+            FacetHolder holder) {
+        
         super(holder, enablement);
     }
 }
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/services/ServiceInjectorDefault.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/services/ServiceInjectorDefault.java
index 5321c31..9902d6b 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/services/ServiceInjectorDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/services/ServiceInjectorDefault.java
@@ -29,7 +29,6 @@ import java.util.function.Predicate;
 import javax.annotation.PostConstruct;
 import javax.inject.Inject;
 
-import org.apache.isis.config.IsisConfiguration;
 import org.springframework.beans.factory.InjectionPoint;
 import org.springframework.core.MethodParameter;
 import org.springframework.stereotype.Service;
@@ -39,7 +38,7 @@ import org.apache.isis.applib.services.registry.ServiceRegistry;
 import org.apache.isis.commons.internal.base._NullSafe;
 import org.apache.isis.commons.internal.collections._Collections;
 import org.apache.isis.commons.internal.collections._Maps;
-import org.apache.isis.config.IsisConfigurationLegacy;
+import org.apache.isis.config.IsisConfiguration;
 import org.apache.isis.metamodel.commons.ToString;
 import org.apache.isis.metamodel.exceptions.MetaModelException;
 import org.apache.isis.metamodel.spec.InjectorMethodEvaluator;
@@ -50,10 +49,9 @@ import lombok.extern.log4j.Log4j2;
 @Service @Log4j2
 public class ServiceInjectorDefault implements ServiceInjector {
 
-    @Inject IsisConfigurationLegacy configurationLegacy;
-    @Inject IsisConfiguration configuration;
-    @Inject ServiceRegistry serviceRegistry;
-    @Inject InjectorMethodEvaluator injectorMethodEvaluator;
+    @Inject private IsisConfiguration configuration;
+    @Inject private ServiceRegistry serviceRegistry;
+    @Inject private InjectorMethodEvaluator injectorMethodEvaluator;
 
     private final Map<Class<?>, Method[]> methodsByClassCache = _Maps.newHashMap();
     private final Map<Class<?>, Field[]> fieldsByClassCache = _Maps.newHashMap();
@@ -245,12 +243,12 @@ public class ServiceInjectorDefault implements ServiceInjector {
      * JUnit Test support. 
      */
     public static ServiceInjectorDefault getInstanceAndInit(
-            IsisConfigurationLegacy configuration,
+            IsisConfiguration configuration,
             ServiceRegistry serviceRegistry,
             InjectorMethodEvaluator injectorMethodEvaluator) {
         val instance = new ServiceInjectorDefault();
 
-        instance.configurationLegacy = configuration;
+        instance.configuration = configuration;
         instance.serviceRegistry = serviceRegistry;
         instance.injectorMethodEvaluator = injectorMethodEvaluator;
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/specloader/SpecificationLoaderDefault.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/specloader/SpecificationLoaderDefault.java
index fbacbdd..aea88bc 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/specloader/SpecificationLoaderDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/specloader/SpecificationLoaderDefault.java
@@ -86,9 +86,6 @@ public class SpecificationLoaderDefault implements SpecificationLoader {
     private final SpecificationCacheDefault cache = new SpecificationCacheDefault();
     private PostProcessor postProcessor;
 
-    @Inject
-    private IsisConfiguration configuration;
-
     @PostConstruct
     public void preInit() {
         this.programmingModel = programmingModelService.get();
@@ -100,11 +97,13 @@ public class SpecificationLoaderDefault implements SpecificationLoader {
 
     /** JUnit Test Support */
     public static SpecificationLoaderDefault getInstance (
+            final IsisConfiguration configuration,
             final ProgrammingModel programmingModel,
             final MetaModelValidator metaModelValidator) {
 
         val instance = new SpecificationLoaderDefault(); 
 
+        instance.configuration = configuration;
         instance.programmingModel = programmingModel;
         instance.metaModelValidator = metaModelValidator;
 
@@ -475,8 +474,9 @@ public class SpecificationLoaderDefault implements SpecificationLoader {
 
     // -- DEPS
 
-    private @Inject ProgrammingModelService programmingModelService;
-    private @Inject MetaModelValidatorService metaModelValidatorService; 
+    @Inject private ProgrammingModelService programmingModelService;
+    @Inject private MetaModelValidatorService metaModelValidatorService; 
+    @Inject private IsisConfiguration configuration;
 
     // -- DEPRECATED
 
diff --git a/core/metamodel/src/test/java/org/apache/isis/metamodel/facets/object/domainobject/DomainObjectAnnotationFacetFactoryTest.java b/core/metamodel/src/test/java/org/apache/isis/metamodel/facets/object/domainobject/DomainObjectAnnotationFacetFactoryTest.java
index 2fc3238..2666719 100644
--- a/core/metamodel/src/test/java/org/apache/isis/metamodel/facets/object/domainobject/DomainObjectAnnotationFacetFactoryTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/metamodel/facets/object/domainobject/DomainObjectAnnotationFacetFactoryTest.java
@@ -30,13 +30,16 @@ import org.junit.Test;
 import org.apache.isis.applib.annotation.Bounding;
 import org.apache.isis.applib.annotation.DomainObject;
 import org.apache.isis.applib.services.HasUniqueId;
+import org.apache.isis.config.IsisConfiguration;
 import org.apache.isis.config.internal._Config;
+import org.apache.isis.metamodel.MetaModelContext;
 import org.apache.isis.metamodel.facetapi.Facet;
 import org.apache.isis.metamodel.facets.AbstractFacetFactoryJUnit4TestCase;
 import org.apache.isis.metamodel.facets.FacetFactory.ProcessClassContext;
 import org.apache.isis.metamodel.facets.ObjectSpecIdFacetFactory.ProcessObjectSpecIdContext;
 import org.apache.isis.metamodel.facets.object.audit.AuditableFacet;
 import org.apache.isis.metamodel.facets.object.autocomplete.AutoCompleteFacet;
+import org.apache.isis.metamodel.facets.object.domainobject.auditing.AuditObjectsConfiguration;
 import org.apache.isis.metamodel.facets.object.domainobject.auditing.AuditableFacetForDomainObjectAnnotation;
 import org.apache.isis.metamodel.facets.object.domainobject.auditing.AuditableFacetForDomainObjectAnnotationAsConfigured;
 import org.apache.isis.metamodel.facets.object.domainobject.auditing.AuditableFacetFromConfiguration;
@@ -46,6 +49,7 @@ import org.apache.isis.metamodel.facets.object.domainobject.editing.EditingObjec
 import org.apache.isis.metamodel.facets.object.domainobject.editing.ImmutableFacetForDomainObjectAnnotation;
 import org.apache.isis.metamodel.facets.object.domainobject.editing.ImmutableFacetFromConfiguration;
 import org.apache.isis.metamodel.facets.object.domainobject.objectspecid.ObjectSpecIdFacetForDomainObjectAnnotation;
+import org.apache.isis.metamodel.facets.object.domainobject.publishing.PublishObjectsConfiguration;
 import org.apache.isis.metamodel.facets.object.domainobject.publishing.PublishedObjectFacetForDomainObjectAnnotation;
 import org.apache.isis.metamodel.facets.object.domainobject.publishing.PublishedObjectFacetFromConfiguration;
 import org.apache.isis.metamodel.facets.object.domainobject.recreatable.RecreatableObjectFacetForDomainObjectAnnotation;
@@ -60,6 +64,8 @@ import static org.hamcrest.CoreMatchers.is;
 import static org.hamcrest.CoreMatchers.notNullValue;
 import static org.junit.Assert.assertThat;
 
+import lombok.val;
+
 public class DomainObjectAnnotationFacetFactoryTest extends AbstractFacetFactoryJUnit4TestCase {
 
     DomainObjectAnnotationFacetFactory facetFactory;
@@ -88,10 +94,44 @@ public class DomainObjectAnnotationFacetFactoryTest extends AbstractFacetFactory
         }
 
     }
-
-    protected void allowingConfigurationToReturn(final String name, final String value) {
-        _Config.put(name, value);
+    
+    void allowingAuditObjectsToReturn(AuditObjectsConfiguration value) {
+        
+//        val config = new IsisConfiguration();
+        
+        if(value!=null) {
+          //TODO[2086] config.getServices().getAudit().setObjects(value);
+            _Config.put("isis.services.audit.objects", value.name().toLowerCase());
+        }
+        
+//        MetaModelContext.preset(MetaModelContext.builder()
+//                .configuration(config)
+//                .build());
+    }
+    
+    void allowingPublishObjectsToReturn(PublishObjectsConfiguration value) {
+        val config = new IsisConfiguration();
+        if(value!=null) {
+            config.getServices().getPublish().setObjects(value);
+        }
+        MetaModelContext.preset(MetaModelContext.builder()
+                .configuration(config)
+                .build());
     }
+    
+    void allowingObjectsEditingToReturn(EditingObjectsConfiguration value) {
+        
+        val config = new IsisConfiguration();
+
+        if(value!=null) {
+            config.getObjects().setEditing(value);
+        }
+        
+        MetaModelContext.preset(MetaModelContext.builder()
+                .configuration(config)
+                .build());
+    }
+
 
     protected void ignoringConfiguration() {
 
@@ -114,7 +154,7 @@ public class DomainObjectAnnotationFacetFactoryTest extends AbstractFacetFactory
         @Test
         public void ignoreHasTransactionId() {
 
-            allowingConfigurationToReturn("isis.services.audit.objects", "all");
+            allowingAuditObjectsToReturn(AuditObjectsConfiguration.ALL);
 
             facetFactory.processAuditing(new ProcessClassContext(HasUniqueId.class, mockMethodRemover, facetHolder));
 
@@ -128,7 +168,7 @@ public class DomainObjectAnnotationFacetFactoryTest extends AbstractFacetFactory
 
             @Test
             public void configured_value_set_to_all() {
-                allowingConfigurationToReturn("isis.services.audit.objects", "all");
+                allowingAuditObjectsToReturn(AuditObjectsConfiguration.ALL);
 
                 facetFactory.processAuditing(new ProcessClassContext(DomainObjectAnnotationFacetFactoryTest.Customer.class, mockMethodRemover, facetHolder));
 
@@ -141,7 +181,7 @@ public class DomainObjectAnnotationFacetFactoryTest extends AbstractFacetFactory
 
             @Test
             public void configured_value_set_to_none() {
-                allowingConfigurationToReturn("isis.services.audit.objects", "none");
+                allowingAuditObjectsToReturn(AuditObjectsConfiguration.NONE);
 
                 facetFactory.process(new ProcessClassContext(DomainObjectAnnotationFacetFactoryTest.Customer.class, mockMethodRemover, facetHolder));
 
@@ -153,8 +193,8 @@ public class DomainObjectAnnotationFacetFactoryTest extends AbstractFacetFactory
             }
 
             @Test
-            public void configured_value_set_to_not_recognized() {
-                allowingConfigurationToReturn("isis.services.audit.objects", "foobar");
+            public void configured_value_set_to_default() {
+                allowingAuditObjectsToReturn(null);
 
                 facetFactory.process(new ProcessClassContext(DomainObjectAnnotationFacetFactoryTest.Customer.class, mockMethodRemover, facetHolder));
 
@@ -170,7 +210,7 @@ public class DomainObjectAnnotationFacetFactoryTest extends AbstractFacetFactory
 
             @Test
             public void configured_value_set_to_all() {
-                allowingConfigurationToReturn("isis.services.audit.objects", "all");
+                allowingAuditObjectsToReturn(AuditObjectsConfiguration.ALL);
 
                 facetFactory.process(new ProcessClassContext(CustomerWithDomainObjectAndAuditingSetToAsConfigured.class, mockMethodRemover, facetHolder));
 
@@ -183,7 +223,7 @@ public class DomainObjectAnnotationFacetFactoryTest extends AbstractFacetFactory
 
             @Test
             public void configured_value_set_to_none() {
-                allowingConfigurationToReturn("isis.services.audit.objects", "none");
+                allowingAuditObjectsToReturn(AuditObjectsConfiguration.NONE);
 
                 facetFactory.process(new ProcessClassContext(CustomerWithDomainObjectAndAuditingSetToAsConfigured.class, mockMethodRemover, facetHolder));
 
@@ -195,8 +235,8 @@ public class DomainObjectAnnotationFacetFactoryTest extends AbstractFacetFactory
             }
 
             @Test
-            public void configured_value_set_to_not_recognized() {
-                allowingConfigurationToReturn("isis.services.audit.objects", "foobar");
+            public void configured_value_set_to_default() {
+                allowingAuditObjectsToReturn(null);
 
                 facetFactory.process(new ProcessClassContext(CustomerWithDomainObjectAndAuditingSetToAsConfigured.class, mockMethodRemover, facetHolder));
 
@@ -212,7 +252,7 @@ public class DomainObjectAnnotationFacetFactoryTest extends AbstractFacetFactory
 
             @Test
             public void irrespective_of_configured_value() {
-                allowingConfigurationToReturn("isis.services.audit.objects", null);
+                allowingAuditObjectsToReturn(null);
 
                 facetFactory.process(new ProcessClassContext(CustomerWithDomainObjectAndAuditingSetToEnabled.class, mockMethodRemover, facetHolder));
 
@@ -229,7 +269,7 @@ public class DomainObjectAnnotationFacetFactoryTest extends AbstractFacetFactory
 
             @Test
             public void irrespective_of_configured_value() {
-                allowingConfigurationToReturn("isis.services.audit.objects", "all");
+                allowingAuditObjectsToReturn(AuditObjectsConfiguration.ALL);
 
                 facetFactory.process(new ProcessClassContext(CustomerWithDomainObjectAndAuditingSetToDisabled.class, mockMethodRemover, facetHolder));
 
@@ -265,7 +305,7 @@ public class DomainObjectAnnotationFacetFactoryTest extends AbstractFacetFactory
         @Test
         public void ignoreHasTransactionId() {
 
-            allowingConfigurationToReturn("isis.services.publish.objects", "all");
+            allowingPublishObjectsToReturn(PublishObjectsConfiguration.ALL);
 
             facetFactory.process(new ProcessClassContext(HasUniqueId.class, mockMethodRemover, facetHolder));
 
@@ -279,7 +319,7 @@ public class DomainObjectAnnotationFacetFactoryTest extends AbstractFacetFactory
 
             @Test
             public void configured_value_set_to_all() {
-                allowingConfigurationToReturn("isis.services.publish.objects", "all");
+                allowingPublishObjectsToReturn(PublishObjectsConfiguration.ALL);
 
                 facetFactory.process(new ProcessClassContext(DomainObjectAnnotationFacetFactoryTest.Customer.class, mockMethodRemover, facetHolder));
 
@@ -292,7 +332,7 @@ public class DomainObjectAnnotationFacetFactoryTest extends AbstractFacetFactory
 
             @Test
             public void configured_value_set_to_none() {
-                allowingConfigurationToReturn("isis.services.publish.objects", "none");
+                allowingPublishObjectsToReturn(PublishObjectsConfiguration.NONE);
 
                 facetFactory.process(new ProcessClassContext(DomainObjectAnnotationFacetFactoryTest.Customer.class, mockMethodRemover, facetHolder));
 
@@ -303,8 +343,8 @@ public class DomainObjectAnnotationFacetFactoryTest extends AbstractFacetFactory
             }
 
             @Test
-            public void configured_value_set_to_not_recognized() {
-                allowingConfigurationToReturn("isis.services.publish.objects", "foobar");
+            public void configured_value_set_to_default() {
+                allowingPublishObjectsToReturn(null);
 
                 facetFactory.process(new ProcessClassContext(DomainObjectAnnotationFacetFactoryTest.Customer.class, mockMethodRemover, facetHolder));
 
@@ -320,7 +360,8 @@ public class DomainObjectAnnotationFacetFactoryTest extends AbstractFacetFactory
 
             @Test
             public void configured_value_set_to_all() {
-                allowingConfigurationToReturn("isis.services.publish.objects", "all");
+                
+                allowingPublishObjectsToReturn(PublishObjectsConfiguration.ALL);
 
                 facetFactory.process(new ProcessClassContext(
                         CustomerWithDomainObjectAndPublishingSetToAsConfigured.class, mockMethodRemover, facetHolder));
@@ -333,7 +374,7 @@ public class DomainObjectAnnotationFacetFactoryTest extends AbstractFacetFactory
 
             @Test
             public void configured_value_set_to_none() {
-                allowingConfigurationToReturn("isis.services.publish.objects", "none");
+                allowingPublishObjectsToReturn(PublishObjectsConfiguration.NONE);
 
                 facetFactory.process(new ProcessClassContext(
                         CustomerWithDomainObjectAndPublishingSetToAsConfigured.class, mockMethodRemover, facetHolder));
@@ -345,8 +386,8 @@ public class DomainObjectAnnotationFacetFactoryTest extends AbstractFacetFactory
             }
 
             @Test
-            public void configured_value_set_to_not_recognized() {
-                allowingConfigurationToReturn("isis.services.publish.objects", "foobar");
+            public void configured_value_set_to_default() {
+                allowingPublishObjectsToReturn(null);
 
                 facetFactory.process(new ProcessClassContext(
                         CustomerWithDomainObjectAndPublishingSetToAsConfigured.class, mockMethodRemover, facetHolder));
@@ -363,7 +404,7 @@ public class DomainObjectAnnotationFacetFactoryTest extends AbstractFacetFactory
 
             @Test
             public void irrespective_of_configured_value() {
-                allowingConfigurationToReturn("isis.services.publish.objects", null);
+                allowingPublishObjectsToReturn(null);
 
                 facetFactory.process(new ProcessClassContext(CustomerWithDomainObjectAndPublishingSetToEnabled.class, mockMethodRemover, facetHolder));
 
@@ -380,7 +421,7 @@ public class DomainObjectAnnotationFacetFactoryTest extends AbstractFacetFactory
 
             @Test
             public void irrespective_of_configured_value() {
-                allowingConfigurationToReturn("isis.services.publish.objects", "all");
+                allowingPublishObjectsToReturn(PublishObjectsConfiguration.ALL);
 
                 facetFactory.process(new ProcessClassContext(CustomerWithDomainObjectAndPublishingSetToDisabled.class, mockMethodRemover, facetHolder));
 
@@ -583,7 +624,7 @@ public class DomainObjectAnnotationFacetFactoryTest extends AbstractFacetFactory
 
             @Test
             public void configured_value_set_to_true() {
-                allowingConfigurationToReturn("isis.objects.editing", "true");
+                allowingObjectsEditingToReturn(EditingObjectsConfiguration.TRUE);
 
                 facetFactory.process(new ProcessClassContext(DomainObjectAnnotationFacetFactoryTest.Customer.class, mockMethodRemover, facetHolder));
 
@@ -595,7 +636,7 @@ public class DomainObjectAnnotationFacetFactoryTest extends AbstractFacetFactory
 
             @Test
             public void configured_value_set_to_false() {
-                allowingConfigurationToReturn("isis.objects.editing", "false");
+                allowingObjectsEditingToReturn(EditingObjectsConfiguration.FALSE);
 
                 facetFactory.process(new ProcessClassContext(DomainObjectAnnotationFacetFactoryTest.Customer.class, mockMethodRemover, facetHolder));
 
@@ -607,8 +648,8 @@ public class DomainObjectAnnotationFacetFactoryTest extends AbstractFacetFactory
             }
 
             @Test
-            public void configured_value_set_to_not_recognized() {
-                allowingConfigurationToReturn("isis.objects.editing", "foobar");
+            public void configured_value_set_to_defaults() {
+                //allowingConfigurationToReturn("isis.objects.editing", "foobar");
 
                 facetFactory.process(new ProcessClassContext(DomainObjectAnnotationFacetFactoryTest.Customer.class, mockMethodRemover, facetHolder));
 
@@ -624,7 +665,7 @@ public class DomainObjectAnnotationFacetFactoryTest extends AbstractFacetFactory
 
             @Test
             public void configured_value_set_to_true() {
-                allowingConfigurationToReturn("isis.objects.editing", "true");
+                allowingObjectsEditingToReturn(EditingObjectsConfiguration.TRUE);
 
                 facetFactory.process(new ProcessClassContext(CustomerWithDomainObjectAndEditingSetToAsConfigured.class, mockMethodRemover, facetHolder));
 
@@ -636,7 +677,7 @@ public class DomainObjectAnnotationFacetFactoryTest extends AbstractFacetFactory
 
             @Test
             public void configured_value_set_to_false() {
-                allowingConfigurationToReturn("isis.objects.editing", "false");
+                allowingObjectsEditingToReturn(EditingObjectsConfiguration.FALSE);
 
                 facetFactory.process(new ProcessClassContext(CustomerWithDomainObjectAndEditingSetToAsConfigured.class, mockMethodRemover, facetHolder));
 
@@ -648,8 +689,8 @@ public class DomainObjectAnnotationFacetFactoryTest extends AbstractFacetFactory
             }
 
             @Test
-            public void configured_value_set_to_not_recognized() {
-                allowingConfigurationToReturn("isis.objects.editing", "foobar");
+            public void configured_value_set_to_defaults() {
+                //allowingConfigurationToReturn("isis.objects.editing", "foobar");
 
                 facetFactory.process(new ProcessClassContext(CustomerWithDomainObjectAndEditingSetToAsConfigured.class, mockMethodRemover, facetHolder));
 
@@ -664,7 +705,7 @@ public class DomainObjectAnnotationFacetFactoryTest extends AbstractFacetFactory
 
             @Test
             public void irrespective_of_configured_value() {
-                allowingConfigurationToReturn("isis.objects.editing", "false");
+                allowingObjectsEditingToReturn(EditingObjectsConfiguration.FALSE);
 
                 facetFactory.process(new ProcessClassContext(
                         CustomerWithDomainObjectAndEditingSetToEnabled.class, mockMethodRemover, facetHolder));
@@ -681,7 +722,7 @@ public class DomainObjectAnnotationFacetFactoryTest extends AbstractFacetFactory
 
             @Test
             public void irrespective_of_configured_value() {
-                allowingConfigurationToReturn("isis.objects.editing", "true");
+                allowingObjectsEditingToReturn(EditingObjectsConfiguration.TRUE);
 
                 facetFactory.process(new ProcessClassContext(
                         CustomerWithDomainObjectAndEditingSetToDisabled.class, mockMethodRemover, facetHolder));
diff --git a/core/metamodel/src/test/java/org/apache/isis/metamodel/services/ServiceInjectorDefaultTest.java b/core/metamodel/src/test/java/org/apache/isis/metamodel/services/ServiceInjectorDefaultTest.java
index 6bce010..888a7e7 100644
--- a/core/metamodel/src/test/java/org/apache/isis/metamodel/services/ServiceInjectorDefaultTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/metamodel/services/ServiceInjectorDefaultTest.java
@@ -35,6 +35,8 @@ import org.apache.isis.applib.services.inject.ServiceInjector;
 import org.apache.isis.applib.services.registry.ServiceRegistry;
 import org.apache.isis.applib.services.repository.RepositoryService;
 import org.apache.isis.commons.internal.ioc.spring._Spring;
+import org.apache.isis.config.IsisConfigModule;
+import org.apache.isis.config.IsisConfiguration;
 import org.apache.isis.metamodel.services.registry.ServiceRegistryDefault;
 import org.apache.isis.metamodel.spec.InjectorMethodEvaluator;
 import org.apache.isis.metamodel.specloader.InjectorMethodEvaluatorDefault;
@@ -48,6 +50,7 @@ import lombok.val;
 
 @ActiveProfiles("test")
 @SpringBootTest(classes = {
+        IsisConfigModule.class,
         ServiceInjectorDefault.class,
         ServiceRegistryDefault.class,
         ServiceInjectorDefaultTest.Producers.class,
@@ -122,6 +125,7 @@ class ServiceInjectorDefaultTest {
     @Inject private ServiceInjector injector;
     @Inject private ServiceRegistry registry;
     @Inject private ApplicationContext applicationContext;
+    @Inject private IsisConfiguration isisConfiguration;
 
     @BeforeEach
     void setup() {
@@ -129,6 +133,11 @@ class ServiceInjectorDefaultTest {
             _Spring.init(applicationContext);    
         }
     }
+    
+    @Test
+    void configInjector_shouldSetPrefix() {
+        assertTrue(isisConfiguration.getServices().getInjector().isSetPrefix());
+    }
 
     @Test
     void shouldInject_RepositoryService() {
diff --git a/core/metamodel/src/test/java/org/apache/isis/metamodel/services/ServiceInjectorDefaultTest_usingFields.java b/core/metamodel/src/test/java/org/apache/isis/metamodel/services/ServiceInjectorDefaultTest_usingFields.java
index bbf1128..aa1b922 100644
--- a/core/metamodel/src/test/java/org/apache/isis/metamodel/services/ServiceInjectorDefaultTest_usingFields.java
+++ b/core/metamodel/src/test/java/org/apache/isis/metamodel/services/ServiceInjectorDefaultTest_usingFields.java
@@ -32,6 +32,7 @@ import org.springframework.test.context.ActiveProfiles;
 
 import org.apache.isis.applib.services.inject.ServiceInjector;
 import org.apache.isis.applib.services.repository.RepositoryService;
+import org.apache.isis.config.IsisConfigModule;
 import org.apache.isis.metamodel.services.registry.ServiceRegistryDefault;
 
 import static org.hamcrest.Matchers.any;
@@ -41,6 +42,7 @@ import lombok.Getter;
 
 @ActiveProfiles("test")
 @SpringBootTest(classes = {
+        IsisConfigModule.class,
         ServiceInjectorDefault.class,
         ServiceRegistryDefault.class,
         ServiceInjectorDefaultTest.Producers.class,
diff --git a/core/metamodel/src/test/java/org/apache/isis/metamodel/services/ServiceInjectorDefaultTest_validateServices_happy.java b/core/metamodel/src/test/java/org/apache/isis/metamodel/services/ServiceInjectorDefaultTest_validateServices_happy.java
index d7ce03b..2e999de 100644
--- a/core/metamodel/src/test/java/org/apache/isis/metamodel/services/ServiceInjectorDefaultTest_validateServices_happy.java
+++ b/core/metamodel/src/test/java/org/apache/isis/metamodel/services/ServiceInjectorDefaultTest_validateServices_happy.java
@@ -30,12 +30,14 @@ import org.springframework.test.context.ActiveProfiles;
 
 import org.apache.isis.applib.annotation.DomainService;
 import org.apache.isis.applib.services.registry.ServiceRegistry;
+import org.apache.isis.config.IsisConfigModule;
 import org.apache.isis.metamodel.services.registry.ServiceRegistryDefault;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
 
 @ActiveProfiles("test")
 @SpringBootTest(classes = {
+        IsisConfigModule.class,
         ServiceInjectorDefault.class,
         ServiceRegistryDefault.class,
         ServiceInjectorDefaultTest.Producers.class,
diff --git a/core/metamodel/src/test/java/org/apache/isis/metamodel/specloader/SpecificationLoaderTestAbstract.java b/core/metamodel/src/test/java/org/apache/isis/metamodel/specloader/SpecificationLoaderTestAbstract.java
index b80db03..27be31b 100644
--- a/core/metamodel/src/test/java/org/apache/isis/metamodel/specloader/SpecificationLoaderTestAbstract.java
+++ b/core/metamodel/src/test/java/org/apache/isis/metamodel/specloader/SpecificationLoaderTestAbstract.java
@@ -88,8 +88,9 @@ abstract class SpecificationLoaderTestAbstract {
         }
 
         //@Produces
-        SpecificationLoader getSpecificationLoader() {
+        SpecificationLoader getSpecificationLoader(IsisConfiguration configuration) {
             return SpecificationLoaderDefault.getInstance(
+                    configuration,
                     new ProgrammingModelFacetsJava8(ProgrammingModelAbstract.DeprecatedPolicy.HONOUR),
                     new MetaModelValidatorDefault());
         }
@@ -118,7 +119,7 @@ abstract class SpecificationLoaderTestAbstract {
 
         MetaModelContext.preset(MetaModelContext.builder()
                 .configuration(isisConfiguration = producers.newConfiguration())
-                .specificationLoader(specificationLoader = producers.getSpecificationLoader())
+                .specificationLoader(specificationLoader = producers.getSpecificationLoader(isisConfiguration))
                 .translationService(producers.mockTranslationService())
                 .objectAdapterProvider(mockPersistenceSessionServiceInternal = producers.mockPersistenceSessionServiceInternal())
                 .authenticationSessionProvider(mockAuthenticationSessionProvider = producers.mockAuthenticationSessionProvider())