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/15 13:09:29 UTC

[isis] branch v2 updated: ISIS-2158: simplify application configuration

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 786839f  ISIS-2158: simplify application configuration
786839f is described below

commit 786839fefd68d7f2d245363b0af198db1169234f
Author: Andi Huber <ah...@apache.org>
AuthorDate: Sun Sep 15 15:09:18 2019 +0200

    ISIS-2158: simplify application configuration
    
    in case there are multiple configurations to pick from when
    bootstrapping with Spring, picking one configuration class works just
    fine if the other are not auto-discovered by Spring's package scanning;
    so the solution is to move any Spring configuration beans out of the
    scanned package hierarchy
    
    this commit does this for 'smoketests' and 'simpleapp' by moving the
    config beans into xxx.conf packages that are out of scanning scope
---
 .../applib/services/wrapper/WrapperFactory.java    |  4 +-
 .../SimpleAppConfiguration.java}                   |  9 ++--
 .../SimpleAppConfigurationForTesting.java}         |  9 ++--
 .../manifest => conf}/isis-non-changing.properties |  0
 .../manifest => conf}/menubars.layout.xml          |  0
 .../integtests/SpringIntegrationTest.java          |  6 +--
 .../integtests/mml/MetaModelService_IntegTest.java |  6 +--
 .../integtests/smoke/Smoke_IntegTest.java          |  6 +--
 .../main/java/domainapp/application/SimpleApp.java |  4 +-
 .../Configuration_usingJdo.java}                   | 12 ++---
 .../Configuration_usingJdoAndShiro.java}           | 14 +++---
 .../isis/testdomain/jdo/JdoTestDomainModule.java   | 54 +++-------------------
 .../testdomain/auditing/AuditerServiceTest.java    |  8 ++--
 .../bootstrapping/JdoBootstrappingTest.java        | 10 ++--
 .../JdoBootstrappingTest_usingFixtures.java        | 10 ++--
 .../SpringServiceProvisioningTest.java             | 12 ++---
 .../commandexecution/BackgroundExecutionTest.java  | 10 ++--
 .../testdomain/commandexecution/WrapperTest.java   |  4 +-
 .../eventhandling/SpringEventPublishingTest.java   |  4 +-
 .../testdomain/ldap/LdapEmbeddedServerTest.java    |  6 +--
 .../publishing/PublisherServiceTest.java           |  8 ++--
 .../isis/testdomain/rest/RestServiceTest.java      | 14 +++---
 .../isis/testdomain/shiro/ShiroLdapTest.java       | 15 +++---
 .../isis/testdomain/shiro/ShiroSecmanLdapTest.java | 18 ++++----
 .../shiro/ShiroSecmanLdap_restfulStressTest.java   | 17 ++++---
 .../isis/testdomain/shiro/ShiroSecmanTest.java     | 15 +++---
 .../isis/testdomain/shiro/ShiroSimpleTest.java     |  8 ++--
 .../transactions/TransactionRollbackTest.java      | 10 ++--
 .../TransactionRollbackTest_withTransactional.java |  8 ++--
 .../fixturescripts/BuilderScriptWithoutResult.java |  4 +-
 30 files changed, 124 insertions(+), 181 deletions(-)

diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/wrapper/WrapperFactory.java b/core/applib/src/main/java/org/apache/isis/applib/services/wrapper/WrapperFactory.java
index 3b4dfc2..6c84d58 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/wrapper/WrapperFactory.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/wrapper/WrapperFactory.java
@@ -31,11 +31,11 @@ import lombok.RequiredArgsConstructor;
 
 /**
  * Provides the ability to &quot;wrap&quot; of a domain object such that it can
- * be interacted with while enforcing the hide/disable/validate rules implies by
+ * be interacted with while enforcing the hide/disable/validate rules implied by
  * the Isis programming model.
  *
  * <p>
- * The &quot;wrap&quot; is a CGLib proxy that wraps the underlying domain
+ * The 'wrap' is a runtime-code-generated proxy that wraps the underlying domain
  * object. The wrapper can then be interacted with as follows:
  * <ul>
  * <li>a <tt>get</tt> method for properties or collections</li>
diff --git a/examples/apps/simpleapp/application/src/main/java/domainapp/application/manifest/SimpleAppManifest.java b/examples/apps/simpleapp/application/src/main/java/domainapp/conf/SimpleAppConfiguration.java
similarity index 88%
rename from examples/apps/simpleapp/application/src/main/java/domainapp/application/manifest/SimpleAppManifest.java
rename to examples/apps/simpleapp/application/src/main/java/domainapp/conf/SimpleAppConfiguration.java
index 2450890..cdd2be0 100644
--- a/examples/apps/simpleapp/application/src/main/java/domainapp/application/manifest/SimpleAppManifest.java
+++ b/examples/apps/simpleapp/application/src/main/java/domainapp/conf/SimpleAppConfiguration.java
@@ -16,11 +16,10 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package domainapp.application.manifest;
+package domainapp.conf;
 
 import javax.inject.Singleton;
 
-import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.ComponentScan;
 import org.springframework.context.annotation.ComponentScan.Filter;
@@ -50,7 +49,7 @@ import domainapp.modules.simple.SimpleModule;
  */
 @Configuration
 @PropertySources({
-    @PropertySource("classpath:/domainapp/application/manifest/isis-non-changing.properties"),
+    @PropertySource("classpath:/domainapp/conf/isis-non-changing.properties"),
     @PropertySource(IsisPresets.H2InMemory),
     //@PropertySource(IsisPresets.NoTranslations),
     @PropertySource(IsisPresets.DataNucleusAutoCreate),
@@ -73,9 +72,7 @@ import domainapp.modules.simple.SimpleModule;
         includeFilters= {
                 @Filter(type = FilterType.CUSTOM, classes= {IsisBeanScanInterceptorForSpring.class})
         })
-//enable this default config to be picked up by Spring (when property NOT set: integtest=true)
-@ConditionalOnProperty(value = "integtest", havingValue = "false", matchIfMissing = true)
-public class SimpleAppManifest {
+public class SimpleAppConfiguration {
 
     @Bean @Singleton
     public WebAppConfigBean webAppConfigBean() {
diff --git a/examples/apps/simpleapp/application/src/main/java/domainapp/application/manifest/SimpleAppManifestForTesting.java b/examples/apps/simpleapp/application/src/main/java/domainapp/conf/SimpleAppConfigurationForTesting.java
similarity index 83%
rename from examples/apps/simpleapp/application/src/main/java/domainapp/application/manifest/SimpleAppManifestForTesting.java
rename to examples/apps/simpleapp/application/src/main/java/domainapp/conf/SimpleAppConfigurationForTesting.java
index de786c0..e1f79cc 100644
--- a/examples/apps/simpleapp/application/src/main/java/domainapp/application/manifest/SimpleAppManifestForTesting.java
+++ b/examples/apps/simpleapp/application/src/main/java/domainapp/conf/SimpleAppConfigurationForTesting.java
@@ -16,9 +16,8 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package domainapp.application.manifest;
+package domainapp.conf;
 
-import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
 import org.springframework.context.annotation.ComponentScan;
 import org.springframework.context.annotation.ComponentScan.Filter;
 import org.springframework.context.annotation.Configuration;
@@ -41,7 +40,7 @@ import domainapp.modules.simple.SimpleModule;
  */
 @Configuration
 @PropertySources({
-    @PropertySource("classpath:/domainapp/application/manifest/isis-non-changing.properties"),
+    @PropertySource("classpath:/domainapp/conf/isis-non-changing.properties"),
     @PropertySource(IsisPresets.H2InMemory),
     @PropertySource(IsisPresets.NoTranslations),
     @PropertySource(IsisPresets.DataNucleusAutoCreate),
@@ -59,8 +58,6 @@ import domainapp.modules.simple.SimpleModule;
         includeFilters= {
                 @Filter(type = FilterType.CUSTOM, classes= {IsisBeanScanInterceptorForSpring.class})
         })
-//enable integtest specific config to be picked up by Spring (when property set: integtest=true)
-@ConditionalOnProperty(value = "integtest", havingValue = "true", matchIfMissing = false)
-public class SimpleAppManifestForTesting {
+public class SimpleAppConfigurationForTesting {
 
 }
diff --git a/examples/apps/simpleapp/application/src/main/java/domainapp/application/manifest/isis-non-changing.properties b/examples/apps/simpleapp/application/src/main/java/domainapp/conf/isis-non-changing.properties
similarity index 100%
rename from examples/apps/simpleapp/application/src/main/java/domainapp/application/manifest/isis-non-changing.properties
rename to examples/apps/simpleapp/application/src/main/java/domainapp/conf/isis-non-changing.properties
diff --git a/examples/apps/simpleapp/application/src/main/java/domainapp/application/manifest/menubars.layout.xml b/examples/apps/simpleapp/application/src/main/java/domainapp/conf/menubars.layout.xml
similarity index 100%
rename from examples/apps/simpleapp/application/src/main/java/domainapp/application/manifest/menubars.layout.xml
rename to examples/apps/simpleapp/application/src/main/java/domainapp/conf/menubars.layout.xml
diff --git a/examples/apps/simpleapp/application/src/test/java/domainapp/application/integtests/SpringIntegrationTest.java b/examples/apps/simpleapp/application/src/test/java/domainapp/application/integtests/SpringIntegrationTest.java
index 78a8f81..dc04837 100644
--- a/examples/apps/simpleapp/application/src/test/java/domainapp/application/integtests/SpringIntegrationTest.java
+++ b/examples/apps/simpleapp/application/src/test/java/domainapp/application/integtests/SpringIntegrationTest.java
@@ -25,12 +25,12 @@ import org.springframework.test.context.ContextConfiguration;
 
 import org.apache.isis.applib.services.wrapper.WrapperFactory;
 
-import domainapp.application.manifest.SimpleAppManifestForTesting;
+import domainapp.conf.SimpleAppConfigurationForTesting;
 
 @SpringBootTest(
-        classes = SimpleAppManifestForTesting.class,
+        classes = SimpleAppConfigurationForTesting.class,
         properties = {
-                "integtest=true", // enable testing specific config to be picked up by Spring
+         
         })
 @ContextConfiguration
 public abstract class SpringIntegrationTest {
diff --git a/examples/apps/simpleapp/application/src/test/java/domainapp/application/integtests/mml/MetaModelService_IntegTest.java b/examples/apps/simpleapp/application/src/test/java/domainapp/application/integtests/mml/MetaModelService_IntegTest.java
index 9be8bab..1a3de82 100644
--- a/examples/apps/simpleapp/application/src/test/java/domainapp/application/integtests/mml/MetaModelService_IntegTest.java
+++ b/examples/apps/simpleapp/application/src/test/java/domainapp/application/integtests/mml/MetaModelService_IntegTest.java
@@ -36,15 +36,15 @@ import org.apache.isis.applib.services.metamodel.MetaModelService;
 import org.apache.isis.schema.metamodel.v1.DomainClassDto;
 import org.apache.isis.schema.metamodel.v1.MetamodelDto;
 
+import domainapp.conf.SimpleAppConfiguration;
+
 import static org.approvaltests.Approvals.getReporter;
 import static org.approvaltests.Approvals.verify;
 import static org.hamcrest.CoreMatchers.is;
 import static org.hamcrest.CoreMatchers.notNullValue;
 import static org.junit.Assume.assumeThat;
 
-import domainapp.application.manifest.SimpleAppManifest;
-
-@SpringBootTest(classes = SimpleAppManifest.class)
+@SpringBootTest(classes = SimpleAppConfiguration.class)
 public class MetaModelService_IntegTest {
 
     @Inject MetaModelService metaModelService;
diff --git a/examples/apps/simpleapp/application/src/test/java/domainapp/application/integtests/smoke/Smoke_IntegTest.java b/examples/apps/simpleapp/application/src/test/java/domainapp/application/integtests/smoke/Smoke_IntegTest.java
index 47a9fb9..615eace 100644
--- a/examples/apps/simpleapp/application/src/test/java/domainapp/application/integtests/smoke/Smoke_IntegTest.java
+++ b/examples/apps/simpleapp/application/src/test/java/domainapp/application/integtests/smoke/Smoke_IntegTest.java
@@ -31,14 +31,14 @@ import org.apache.isis.applib.services.xactn.TransactionService;
 
 import static org.assertj.core.api.Assertions.assertThat;
 
-import domainapp.application.manifest.SimpleAppManifestForTesting;
+import domainapp.conf.SimpleAppConfigurationForTesting;
 import domainapp.modules.simple.dom.impl.SimpleObject;
 import domainapp.modules.simple.dom.impl.SimpleObjects;
 
 @SpringBootTest(
-        classes = SimpleAppManifestForTesting.class,
+        classes = SimpleAppConfigurationForTesting.class,
         properties = {
-                "integtest=true", // enable testing specific config to be picked up by Spring
+
         })
 @Transactional
 class Smoke_IntegTest {
diff --git a/examples/apps/simpleapp/webapp/src/main/java/domainapp/application/SimpleApp.java b/examples/apps/simpleapp/webapp/src/main/java/domainapp/application/SimpleApp.java
index 4c2ae24..254cc30 100644
--- a/examples/apps/simpleapp/webapp/src/main/java/domainapp/application/SimpleApp.java
+++ b/examples/apps/simpleapp/webapp/src/main/java/domainapp/application/SimpleApp.java
@@ -25,14 +25,14 @@ import org.springframework.context.annotation.Import;
 
 import org.apache.isis.config.IsisPresets;
 
-import domainapp.application.manifest.SimpleAppManifest;
+import domainapp.conf.SimpleAppConfiguration;
 
 /**
  * Bootstrap the application.
  */
 @SpringBootApplication
 @Import({
-    SimpleAppManifest.class,
+    SimpleAppConfiguration.class,
 })
 public class SimpleApp extends SpringBootServletInitializer {
 
diff --git a/examples/smoketests/src/main/java/org/apache/isis/testdomain/jdo/JdoTestDomainModule.java b/examples/smoketests/src/main/java/org/apache/isis/testdomain/conf/Configuration_usingJdo.java
similarity index 87%
copy from examples/smoketests/src/main/java/org/apache/isis/testdomain/jdo/JdoTestDomainModule.java
copy to examples/smoketests/src/main/java/org/apache/isis/testdomain/conf/Configuration_usingJdo.java
index 979a1ae..a4eaa86 100644
--- a/examples/smoketests/src/main/java/org/apache/isis/testdomain/jdo/JdoTestDomainModule.java
+++ b/examples/smoketests/src/main/java/org/apache/isis/testdomain/conf/Configuration_usingJdo.java
@@ -16,11 +16,10 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.isis.testdomain.jdo;
+package org.apache.isis.testdomain.conf;
 
 import javax.inject.Singleton;
 
-import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.ComponentScan;
 import org.springframework.context.annotation.ComponentScan.Filter;
@@ -37,6 +36,7 @@ import org.apache.isis.extensions.fixtures.IsisBootFixtures;
 import org.apache.isis.jdo.IsisBootDataNucleus;
 import org.apache.isis.runtime.spring.IsisBoot;
 import org.apache.isis.security.IsisBootSecurityBypass;
+import org.apache.isis.testdomain.jdo.JdoTestDomainModule;
 
 @Configuration
 @Import({
@@ -46,7 +46,7 @@ import org.apache.isis.security.IsisBootSecurityBypass;
     IsisBootFixtures.class
 })
 @ComponentScan(
-        basePackageClasses= {        		
+        basePackageClasses= {               
                 JdoTestDomainModule.class
         },
         includeFilters= {
@@ -57,9 +57,7 @@ import org.apache.isis.security.IsisBootSecurityBypass;
     @PropertySource(IsisPresets.H2InMemory),
     @PropertySource(IsisPresets.NoTranslations),
 })
-//by default disable shiro specific config to be picked up by Spring 
-@ConditionalOnProperty(value = "smoketest.withShiro", havingValue = "false", matchIfMissing = true)
-public class JdoTestDomainModule {
+public class Configuration_usingJdo {
 
     @Bean @Singleton
     public WebAppConfigBean webAppConfigBean() {
@@ -68,4 +66,4 @@ public class JdoTestDomainModule {
                 .build();
     }
 
-}
+}
\ No newline at end of file
diff --git a/examples/smoketests/src/main/java/org/apache/isis/testdomain/jdo/JdoTestDomainModule_withShiro.java b/examples/smoketests/src/main/java/org/apache/isis/testdomain/conf/Configuration_usingJdoAndShiro.java
similarity index 87%
rename from examples/smoketests/src/main/java/org/apache/isis/testdomain/jdo/JdoTestDomainModule_withShiro.java
rename to examples/smoketests/src/main/java/org/apache/isis/testdomain/conf/Configuration_usingJdoAndShiro.java
index 8006aee..09a7b09 100644
--- a/examples/smoketests/src/main/java/org/apache/isis/testdomain/jdo/JdoTestDomainModule_withShiro.java
+++ b/examples/smoketests/src/main/java/org/apache/isis/testdomain/conf/Configuration_usingJdoAndShiro.java
@@ -16,11 +16,10 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.isis.testdomain.jdo;
+package org.apache.isis.testdomain.conf;
 
 import javax.inject.Singleton;
 
-import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.ComponentScan;
 import org.springframework.context.annotation.ComponentScan.Filter;
@@ -40,6 +39,7 @@ import org.apache.isis.extensions.secman.api.permission.PermissionsEvaluationSer
 import org.apache.isis.jdo.IsisBootDataNucleus;
 import org.apache.isis.runtime.spring.IsisBoot;
 import org.apache.isis.security.shiro.IsisBootSecurityShiro;
+import org.apache.isis.testdomain.jdo.JdoTestDomainModule;
 
 @Configuration
 @Import({
@@ -51,8 +51,8 @@ import org.apache.isis.security.shiro.IsisBootSecurityShiro;
     IsisBootFixtures.class
 })
 @ComponentScan(
-        basePackageClasses= {        		
-                JdoTestDomainModule_withShiro.class
+        basePackageClasses= {               
+                JdoTestDomainModule.class
         },
         includeFilters= {
                 @Filter(type = FilterType.CUSTOM, classes= {IsisBeanScanInterceptorForSpring.class})
@@ -62,9 +62,7 @@ import org.apache.isis.security.shiro.IsisBootSecurityShiro;
     @PropertySource(IsisPresets.H2InMemory),
     @PropertySource(IsisPresets.NoTranslations),
 })
-// enable shiro specific config to be picked up by Spring
-@ConditionalOnProperty(value = "smoketest.withShiro", havingValue = "true", matchIfMissing = false)
-public class JdoTestDomainModule_withShiro {
+public class Configuration_usingJdoAndShiro {
 
     @Bean @Singleton
     public WebAppConfigBean webAppConfigBean() {
@@ -84,4 +82,4 @@ public class JdoTestDomainModule_withShiro {
         return new PermissionsEvaluationServiceAllowBeatsVeto();
     }
 
-}
+}
\ No newline at end of file
diff --git a/examples/smoketests/src/main/java/org/apache/isis/testdomain/jdo/JdoTestDomainModule.java b/examples/smoketests/src/main/java/org/apache/isis/testdomain/jdo/JdoTestDomainModule.java
index 979a1ae..49e9b5e 100644
--- a/examples/smoketests/src/main/java/org/apache/isis/testdomain/jdo/JdoTestDomainModule.java
+++ b/examples/smoketests/src/main/java/org/apache/isis/testdomain/jdo/JdoTestDomainModule.java
@@ -18,54 +18,14 @@
  */
 package org.apache.isis.testdomain.jdo;
 
-import javax.inject.Singleton;
+import lombok.AccessLevel;
+import lombok.NoArgsConstructor;
 
-import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.ComponentScan;
-import org.springframework.context.annotation.ComponentScan.Filter;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.FilterType;
-import org.springframework.context.annotation.Import;
-import org.springframework.context.annotation.PropertySource;
-import org.springframework.context.annotation.PropertySources;
-
-import org.apache.isis.config.IsisPresets;
-import org.apache.isis.config.beans.IsisBeanScanInterceptorForSpring;
-import org.apache.isis.config.beans.WebAppConfigBean;
-import org.apache.isis.extensions.fixtures.IsisBootFixtures;
-import org.apache.isis.jdo.IsisBootDataNucleus;
-import org.apache.isis.runtime.spring.IsisBoot;
-import org.apache.isis.security.IsisBootSecurityBypass;
-
-@Configuration
-@Import({
-    IsisBoot.class,
-    IsisBootSecurityBypass.class,
-    IsisBootDataNucleus.class,
-    IsisBootFixtures.class
-})
-@ComponentScan(
-        basePackageClasses= {        		
-                JdoTestDomainModule.class
-        },
-        includeFilters= {
-                @Filter(type = FilterType.CUSTOM, classes= {IsisBeanScanInterceptorForSpring.class})}
-        )
-@PropertySources({
-    @PropertySource("classpath:/org/apache/isis/testdomain/jdo/isis-non-changing.properties"),
-    @PropertySource(IsisPresets.H2InMemory),
-    @PropertySource(IsisPresets.NoTranslations),
-})
-//by default disable shiro specific config to be picked up by Spring 
-@ConditionalOnProperty(value = "smoketest.withShiro", havingValue = "false", matchIfMissing = true)
-public class JdoTestDomainModule {
+/**
+ * Just an entry-point to initialize class-path scanning. 
+ */
+@NoArgsConstructor(access = AccessLevel.PRIVATE)
+public final class JdoTestDomainModule {
 
-    @Bean @Singleton
-    public WebAppConfigBean webAppConfigBean() {
-        return WebAppConfigBean.builder()
-                //.menubarsLayoutXml(new ClassPathResource(path, clazz))
-                .build();
-    }
 
 }
diff --git a/examples/smoketests/src/test/java/org/apache/isis/testdomain/auditing/AuditerServiceTest.java b/examples/smoketests/src/test/java/org/apache/isis/testdomain/auditing/AuditerServiceTest.java
index cd7ec7e..7841656 100644
--- a/examples/smoketests/src/test/java/org/apache/isis/testdomain/auditing/AuditerServiceTest.java
+++ b/examples/smoketests/src/test/java/org/apache/isis/testdomain/auditing/AuditerServiceTest.java
@@ -18,6 +18,8 @@
  */
 package org.apache.isis.testdomain.auditing;
 
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
 import java.sql.Timestamp;
 import java.util.UUID;
 
@@ -34,12 +36,10 @@ import org.apache.isis.applib.services.bookmark.Bookmark;
 import org.apache.isis.applib.services.repository.RepositoryService;
 import org.apache.isis.extensions.fixtures.fixturescripts.FixtureScripts;
 import org.apache.isis.runtime.system.context.IsisContext;
+import org.apache.isis.testdomain.conf.Configuration_usingJdo;
 import org.apache.isis.testdomain.jdo.Book;
-import org.apache.isis.testdomain.jdo.JdoTestDomainModule;
 import org.apache.isis.testdomain.jdo.JdoTestDomainPersona;
 
-import static org.junit.jupiter.api.Assertions.assertEquals;
-
 import lombok.val;
 import lombok.extern.log4j.Log4j2;
 
@@ -48,7 +48,7 @@ import lombok.extern.log4j.Log4j2;
  */
 @SpringBootTest(
         classes = { 
-                JdoTestDomainModule.class, 
+                Configuration_usingJdo.class, 
                 AuditerServiceTest.AuditerServiceProbe.class
         }, 
         properties = {
diff --git a/examples/smoketests/src/test/java/org/apache/isis/testdomain/bootstrapping/JdoBootstrappingTest.java b/examples/smoketests/src/test/java/org/apache/isis/testdomain/bootstrapping/JdoBootstrappingTest.java
index db561d5..40076c0 100644
--- a/examples/smoketests/src/test/java/org/apache/isis/testdomain/bootstrapping/JdoBootstrappingTest.java
+++ b/examples/smoketests/src/test/java/org/apache/isis/testdomain/bootstrapping/JdoBootstrappingTest.java
@@ -18,6 +18,9 @@
  */
 package org.apache.isis.testdomain.bootstrapping;
 
+import static org.junit.Assert.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
 import java.sql.SQLException;
 import java.util.HashSet;
 import java.util.Set;
@@ -36,19 +39,16 @@ import org.springframework.transaction.annotation.Transactional;
 
 import org.apache.isis.applib.services.repository.RepositoryService;
 import org.apache.isis.config.IsisPresets;
+import org.apache.isis.testdomain.conf.Configuration_usingJdo;
 import org.apache.isis.testdomain.jdo.Book;
 import org.apache.isis.testdomain.jdo.Inventory;
-import org.apache.isis.testdomain.jdo.JdoTestDomainModule;
 import org.apache.isis.testdomain.jdo.Product;
 
-import static org.junit.Assert.assertNotNull;
-import static org.junit.jupiter.api.Assertions.assertEquals;
-
 import lombok.val;
 
 @SpringBootTest(
         classes = { 
-                JdoTestDomainModule.class,
+                Configuration_usingJdo.class,
         }, 
         properties = {
                 "logging.config=log4j2-test.xml",
diff --git a/examples/smoketests/src/test/java/org/apache/isis/testdomain/bootstrapping/JdoBootstrappingTest_usingFixtures.java b/examples/smoketests/src/test/java/org/apache/isis/testdomain/bootstrapping/JdoBootstrappingTest_usingFixtures.java
index 62775ef..228c93f 100644
--- a/examples/smoketests/src/test/java/org/apache/isis/testdomain/bootstrapping/JdoBootstrappingTest_usingFixtures.java
+++ b/examples/smoketests/src/test/java/org/apache/isis/testdomain/bootstrapping/JdoBootstrappingTest_usingFixtures.java
@@ -18,6 +18,9 @@
  */
 package org.apache.isis.testdomain.bootstrapping;
 
+import static org.junit.Assert.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
 import javax.inject.Inject;
 
 import org.junit.jupiter.api.BeforeEach;
@@ -28,18 +31,15 @@ import org.springframework.transaction.annotation.Transactional;
 import org.apache.isis.applib.services.repository.RepositoryService;
 import org.apache.isis.config.IsisPresets;
 import org.apache.isis.extensions.fixtures.fixturescripts.FixtureScripts;
+import org.apache.isis.testdomain.conf.Configuration_usingJdo;
 import org.apache.isis.testdomain.jdo.Inventory;
-import org.apache.isis.testdomain.jdo.JdoTestDomainModule;
 import org.apache.isis.testdomain.jdo.JdoTestDomainPersona;
 
-import static org.junit.Assert.assertNotNull;
-import static org.junit.jupiter.api.Assertions.assertEquals;
-
 import lombok.val;
 
 @SpringBootTest(
         classes = { 
-                JdoTestDomainModule.class, 
+                Configuration_usingJdo.class, 
         }, 
         properties = {
                 "logging.config=log4j2-debug-persistence.xml",
diff --git a/examples/smoketests/src/test/java/org/apache/isis/testdomain/bootstrapping/SpringServiceProvisioningTest.java b/examples/smoketests/src/test/java/org/apache/isis/testdomain/bootstrapping/SpringServiceProvisioningTest.java
index 853eed3..534a25f 100644
--- a/examples/smoketests/src/test/java/org/apache/isis/testdomain/bootstrapping/SpringServiceProvisioningTest.java
+++ b/examples/smoketests/src/test/java/org/apache/isis/testdomain/bootstrapping/SpringServiceProvisioningTest.java
@@ -18,6 +18,10 @@
  */
 package org.apache.isis.testdomain.bootstrapping;
 
+import static org.apache.isis.commons.internal.collections._Collections.toStringJoiningNewLine;
+import static org.apache.isis.commons.internal.collections._Sets.intersectSorted;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
 import java.io.IOException;
 import java.nio.charset.StandardCharsets;
 import java.util.TreeSet;
@@ -32,17 +36,13 @@ import org.apache.isis.commons.internal.ioc.BeanAdapter;
 import org.apache.isis.commons.internal.resources._Json;
 import org.apache.isis.commons.internal.resources._Resources;
 import org.apache.isis.runtime.system.context.IsisContext;
-import org.apache.isis.testdomain.jdo.JdoTestDomainModule;
-
-import static org.apache.isis.commons.internal.collections._Collections.toStringJoiningNewLine;
-import static org.apache.isis.commons.internal.collections._Sets.intersectSorted;
-import static org.junit.jupiter.api.Assertions.assertEquals;
+import org.apache.isis.testdomain.conf.Configuration_usingJdo;
 
 import lombok.val;
 
 @SpringBootTest(
         classes = { 
-                JdoTestDomainModule.class, 
+                Configuration_usingJdo.class, 
         },
         properties = {
                 "logging.config=log4j2-test.xml",
diff --git a/examples/smoketests/src/test/java/org/apache/isis/testdomain/commandexecution/BackgroundExecutionTest.java b/examples/smoketests/src/test/java/org/apache/isis/testdomain/commandexecution/BackgroundExecutionTest.java
index 92813a2..f18bd22 100644
--- a/examples/smoketests/src/test/java/org/apache/isis/testdomain/commandexecution/BackgroundExecutionTest.java
+++ b/examples/smoketests/src/test/java/org/apache/isis/testdomain/commandexecution/BackgroundExecutionTest.java
@@ -18,6 +18,9 @@
  */
 package org.apache.isis.testdomain.commandexecution;
 
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
 import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.ExecutionException;
 import java.util.concurrent.TimeUnit;
@@ -37,20 +40,17 @@ import org.apache.isis.applib.services.factory.FactoryService;
 import org.apache.isis.applib.services.repository.RepositoryService;
 import org.apache.isis.applib.services.wrapper.WrapperFactory;
 import org.apache.isis.extensions.fixtures.fixturescripts.FixtureScripts;
+import org.apache.isis.testdomain.conf.Configuration_usingJdo;
 import org.apache.isis.testdomain.jdo.InventoryManager;
-import org.apache.isis.testdomain.jdo.JdoTestDomainModule;
 import org.apache.isis.testdomain.jdo.JdoTestDomainPersona;
 import org.apache.isis.testdomain.jdo.Product;
 
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertTrue;
-
 import lombok.Getter;
 import lombok.val;
 
 @SpringBootTest(
         classes = { 
-                JdoTestDomainModule.class,
+                Configuration_usingJdo.class,
                 BackgroundExecutionTest.ActionDomainEventListener.class
         }, 
         properties = {
diff --git a/examples/smoketests/src/test/java/org/apache/isis/testdomain/commandexecution/WrapperTest.java b/examples/smoketests/src/test/java/org/apache/isis/testdomain/commandexecution/WrapperTest.java
index 4bfc787..3d90d88 100644
--- a/examples/smoketests/src/test/java/org/apache/isis/testdomain/commandexecution/WrapperTest.java
+++ b/examples/smoketests/src/test/java/org/apache/isis/testdomain/commandexecution/WrapperTest.java
@@ -40,8 +40,8 @@ import org.apache.isis.applib.services.repository.RepositoryService;
 import org.apache.isis.applib.services.wrapper.WrapperFactory;
 import org.apache.isis.applib.services.wrapper.WrapperFactory.ExecutionMode;
 import org.apache.isis.extensions.fixtures.fixturescripts.FixtureScripts;
+import org.apache.isis.testdomain.conf.Configuration_usingJdo;
 import org.apache.isis.testdomain.jdo.InventoryManager;
-import org.apache.isis.testdomain.jdo.JdoTestDomainModule;
 import org.apache.isis.testdomain.jdo.JdoTestDomainPersona;
 import org.apache.isis.testdomain.jdo.Product;
 
@@ -50,7 +50,7 @@ import lombok.val;
 
 @SpringBootTest(
         classes = { 
-                JdoTestDomainModule.class,
+                Configuration_usingJdo.class,
                 WrapperTest.ActionDomainEventListener.class
         }, 
         properties = {
diff --git a/examples/smoketests/src/test/java/org/apache/isis/testdomain/eventhandling/SpringEventPublishingTest.java b/examples/smoketests/src/test/java/org/apache/isis/testdomain/eventhandling/SpringEventPublishingTest.java
index 0835aa2..b0c7f28 100644
--- a/examples/smoketests/src/test/java/org/apache/isis/testdomain/eventhandling/SpringEventPublishingTest.java
+++ b/examples/smoketests/src/test/java/org/apache/isis/testdomain/eventhandling/SpringEventPublishingTest.java
@@ -18,6 +18,8 @@
  */
 package org.apache.isis.testdomain.eventhandling;
 
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
 import javax.enterprise.event.Event;
 import javax.enterprise.event.Observes;
 import javax.inject.Inject;
@@ -32,8 +34,6 @@ import org.springframework.context.event.EventListener;
 
 import org.apache.isis.commons.internal.ioc.spring._Spring;
 
-import static org.junit.jupiter.api.Assertions.assertEquals;
-
 import lombok.Getter;
 import lombok.Value;
 import lombok.val;
diff --git a/examples/smoketests/src/test/java/org/apache/isis/testdomain/ldap/LdapEmbeddedServerTest.java b/examples/smoketests/src/test/java/org/apache/isis/testdomain/ldap/LdapEmbeddedServerTest.java
index b2be97a..95de528 100644
--- a/examples/smoketests/src/test/java/org/apache/isis/testdomain/ldap/LdapEmbeddedServerTest.java
+++ b/examples/smoketests/src/test/java/org/apache/isis/testdomain/ldap/LdapEmbeddedServerTest.java
@@ -18,6 +18,9 @@
  */
 package org.apache.isis.testdomain.ldap;
 
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.fail;
+
 import java.util.Hashtable;
 
 import javax.inject.Inject;
@@ -29,9 +32,6 @@ import org.junit.jupiter.api.Test;
 import org.junit.runners.model.InitializationError;
 import org.springframework.boot.test.context.SpringBootTest;
 
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.fail;
-
 import lombok.val;
 
 @SpringBootTest(
diff --git a/examples/smoketests/src/test/java/org/apache/isis/testdomain/publishing/PublisherServiceTest.java b/examples/smoketests/src/test/java/org/apache/isis/testdomain/publishing/PublisherServiceTest.java
index 041d975..54709ac 100644
--- a/examples/smoketests/src/test/java/org/apache/isis/testdomain/publishing/PublisherServiceTest.java
+++ b/examples/smoketests/src/test/java/org/apache/isis/testdomain/publishing/PublisherServiceTest.java
@@ -18,6 +18,8 @@
  */
 package org.apache.isis.testdomain.publishing;
 
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
 import javax.inject.Inject;
 import javax.inject.Singleton;
 
@@ -35,12 +37,10 @@ import org.apache.isis.applib.services.publish.PublisherService;
 import org.apache.isis.applib.services.repository.RepositoryService;
 import org.apache.isis.extensions.fixtures.fixturescripts.FixtureScripts;
 import org.apache.isis.runtime.system.context.IsisContext;
+import org.apache.isis.testdomain.conf.Configuration_usingJdo;
 import org.apache.isis.testdomain.jdo.Book;
-import org.apache.isis.testdomain.jdo.JdoTestDomainModule;
 import org.apache.isis.testdomain.jdo.JdoTestDomainPersona;
 
-import static org.junit.jupiter.api.Assertions.assertEquals;
-
 import lombok.val;
 
 /**
@@ -48,7 +48,7 @@ import lombok.val;
  */
 @SpringBootTest(
         classes = { 
-                JdoTestDomainModule.class, 
+                Configuration_usingJdo.class, 
                 PublisherServiceTest.PublisherServiceProbe.class
         }, 
         properties = {
diff --git a/examples/smoketests/src/test/java/org/apache/isis/testdomain/rest/RestServiceTest.java b/examples/smoketests/src/test/java/org/apache/isis/testdomain/rest/RestServiceTest.java
index d82c45b..bd90535 100644
--- a/examples/smoketests/src/test/java/org/apache/isis/testdomain/rest/RestServiceTest.java
+++ b/examples/smoketests/src/test/java/org/apache/isis/testdomain/rest/RestServiceTest.java
@@ -18,6 +18,11 @@
  */
 package org.apache.isis.testdomain.rest;
 
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+import static org.junit.jupiter.api.Assertions.fail;
+
 import javax.inject.Inject;
 
 import org.junit.jupiter.api.Test;
@@ -25,14 +30,9 @@ import org.springframework.boot.test.context.SpringBootTest;
 import org.springframework.boot.web.server.LocalServerPort;
 import org.springframework.context.annotation.Import;
 
-import org.apache.isis.testdomain.jdo.JdoTestDomainModule;
+import org.apache.isis.testdomain.conf.Configuration_usingJdo;
 import org.apache.isis.viewer.restfulobjects.IsisBootWebRestfulObjects;
 
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertNotNull;
-import static org.junit.jupiter.api.Assertions.assertTrue;
-import static org.junit.jupiter.api.Assertions.fail;
-
 import lombok.val;
 
 @SpringBootTest(
@@ -42,7 +42,7 @@ import lombok.val;
         },
         webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
 @Import({
-    JdoTestDomainModule.class,
+    Configuration_usingJdo.class,
     IsisBootWebRestfulObjects.class
 })
 class RestServiceTest {
diff --git a/examples/smoketests/src/test/java/org/apache/isis/testdomain/shiro/ShiroLdapTest.java b/examples/smoketests/src/test/java/org/apache/isis/testdomain/shiro/ShiroLdapTest.java
index 3deef90..6e9c66d 100644
--- a/examples/smoketests/src/test/java/org/apache/isis/testdomain/shiro/ShiroLdapTest.java
+++ b/examples/smoketests/src/test/java/org/apache/isis/testdomain/shiro/ShiroLdapTest.java
@@ -18,6 +18,11 @@
  */
 package org.apache.isis.testdomain.shiro;
 
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+import static org.junit.jupiter.api.Assertions.assertThrows;
+
 import javax.inject.Inject;
 
 import org.apache.shiro.SecurityUtils;
@@ -31,25 +36,19 @@ import org.springframework.boot.test.context.SpringBootTest;
 import org.springframework.context.annotation.Import;
 
 import org.apache.isis.config.IsisPresets;
-import org.apache.isis.testdomain.jdo.JdoTestDomainModule_withShiro;
+import org.apache.isis.testdomain.conf.Configuration_usingJdoAndShiro;
 import org.apache.isis.testdomain.ldap.LdapConstants;
 import org.apache.isis.testdomain.ldap.LdapServerService;
 
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-import static org.junit.jupiter.api.Assertions.assertThrows;
-
 import lombok.val;
 import lombok.extern.log4j.Log4j2;
 
 @SpringBootTest(
         classes = { 
-                JdoTestDomainModule_withShiro.class, 
+                Configuration_usingJdoAndShiro.class, 
         }, 
         properties = {
                 "logging.config=log4j2-test.xml",
-                "smoketest.withShiro=true", // enable shiro specific config to be picked up by Spring
                 IsisPresets.DebugPersistence,
         })
 @Import({
diff --git a/examples/smoketests/src/test/java/org/apache/isis/testdomain/shiro/ShiroSecmanLdapTest.java b/examples/smoketests/src/test/java/org/apache/isis/testdomain/shiro/ShiroSecmanLdapTest.java
index 0568a22..b7924dc 100644
--- a/examples/smoketests/src/test/java/org/apache/isis/testdomain/shiro/ShiroSecmanLdapTest.java
+++ b/examples/smoketests/src/test/java/org/apache/isis/testdomain/shiro/ShiroSecmanLdapTest.java
@@ -18,6 +18,12 @@
  */
 package org.apache.isis.testdomain.shiro;
 
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+import static org.junit.jupiter.api.Assertions.assertNull;
+import static org.junit.jupiter.api.Assertions.assertThrows;
+
 import javax.inject.Inject;
 
 import org.apache.shiro.SecurityUtils;
@@ -39,30 +45,22 @@ import org.apache.isis.extensions.secman.api.role.ApplicationRoleRepository;
 import org.apache.isis.extensions.secman.api.user.ApplicationUserRepository;
 import org.apache.isis.extensions.secman.encryption.jbcrypt.IsisBootSecmanEncryptionJbcrypt;
 import org.apache.isis.extensions.secman.jdo.IsisBootSecmanPersistenceJdo;
-import org.apache.isis.extensions.secman.jdo.seed.SeedSecurityModuleService;
 import org.apache.isis.extensions.secman.model.IsisBootSecmanModel;
 import org.apache.isis.extensions.secman.shiro.IsisBootSecmanRealmShiro;
-import org.apache.isis.testdomain.jdo.JdoTestDomainModule_withShiro;
+import org.apache.isis.testdomain.conf.Configuration_usingJdoAndShiro;
 import org.apache.isis.testdomain.jdo.JdoTestDomainPersona;
 import org.apache.isis.testdomain.ldap.LdapConstants;
 import org.apache.isis.testdomain.ldap.LdapServerService;
 
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-import static org.junit.jupiter.api.Assertions.assertNull;
-import static org.junit.jupiter.api.Assertions.assertThrows;
-
 import lombok.val;
 
 @SpringBootTest(
         classes = { 
-                JdoTestDomainModule_withShiro.class, 
+                Configuration_usingJdoAndShiro.class, 
         }, 
         properties = {
                 //"logging.config=log4j2-test.xml",
                 "logging.config=log4j2-debug-persistence.xml",
-                "smoketest.withShiro=true", // enable shiro specific config to be picked up by Spring
                 IsisPresets.DebugPersistence,
                 "isis.persistor.datanucleus.impl.datanucleus.schema.autoCreateDatabase=true",
         })
diff --git a/examples/smoketests/src/test/java/org/apache/isis/testdomain/shiro/ShiroSecmanLdap_restfulStressTest.java b/examples/smoketests/src/test/java/org/apache/isis/testdomain/shiro/ShiroSecmanLdap_restfulStressTest.java
index be95cdf..86fa5b0 100644
--- a/examples/smoketests/src/test/java/org/apache/isis/testdomain/shiro/ShiroSecmanLdap_restfulStressTest.java
+++ b/examples/smoketests/src/test/java/org/apache/isis/testdomain/shiro/ShiroSecmanLdap_restfulStressTest.java
@@ -18,6 +18,12 @@
  */
 package org.apache.isis.testdomain.shiro;
 
+import static java.time.Duration.ofMillis;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertTimeout;
+import static org.junit.jupiter.api.Assertions.fail;
+
 import javax.inject.Inject;
 
 import org.junit.jupiter.api.AfterAll;
@@ -37,28 +43,21 @@ import org.apache.isis.extensions.secman.jdo.IsisBootSecmanPersistenceJdo;
 import org.apache.isis.extensions.secman.model.IsisBootSecmanModel;
 import org.apache.isis.extensions.secman.shiro.IsisBootSecmanRealmShiro;
 import org.apache.isis.security.shiro.WebModuleShiro;
-import org.apache.isis.testdomain.jdo.JdoTestDomainModule_withShiro;
+import org.apache.isis.testdomain.conf.Configuration_usingJdoAndShiro;
 import org.apache.isis.testdomain.jdo.JdoTestDomainPersona;
 import org.apache.isis.testdomain.ldap.LdapServerService;
 import org.apache.isis.testdomain.rest.RestService;
 import org.apache.isis.viewer.restfulobjects.IsisBootWebRestfulObjects;
 
-import static java.time.Duration.ofMillis;
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertNotNull;
-import static org.junit.jupiter.api.Assertions.assertTimeout;
-import static org.junit.jupiter.api.Assertions.fail;
-
 import lombok.val;
 
 @SpringBootTest(
         classes = { 
-                JdoTestDomainModule_withShiro.class
+                Configuration_usingJdoAndShiro.class
         }, 
         properties = {
                 //"logging.config=log4j2-test.xml",
                 "logging.config=log4j2-debug-persistence.xml",
-                "smoketest.withShiro=true", // enable shiro specific config to be picked up by Spring
                 IsisPresets.DataNucleusAutoCreate,
                 "datanucleus.schema.autoCreateDatabase=true",
                 "server.servlet.session.persistent=false", // defaults to false
diff --git a/examples/smoketests/src/test/java/org/apache/isis/testdomain/shiro/ShiroSecmanTest.java b/examples/smoketests/src/test/java/org/apache/isis/testdomain/shiro/ShiroSecmanTest.java
index 235296e..e58cabd 100644
--- a/examples/smoketests/src/test/java/org/apache/isis/testdomain/shiro/ShiroSecmanTest.java
+++ b/examples/smoketests/src/test/java/org/apache/isis/testdomain/shiro/ShiroSecmanTest.java
@@ -18,6 +18,11 @@
  */
 package org.apache.isis.testdomain.shiro;
 
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+import static org.junit.jupiter.api.Assertions.assertThrows;
+
 import javax.inject.Inject;
 
 import org.apache.shiro.SecurityUtils;
@@ -35,22 +40,16 @@ import org.apache.isis.extensions.secman.encryption.jbcrypt.IsisBootSecmanEncryp
 import org.apache.isis.extensions.secman.jdo.IsisBootSecmanPersistenceJdo;
 import org.apache.isis.extensions.secman.model.IsisBootSecmanModel;
 import org.apache.isis.extensions.secman.shiro.IsisBootSecmanRealmShiro;
-import org.apache.isis.testdomain.jdo.JdoTestDomainModule_withShiro;
-
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-import static org.junit.jupiter.api.Assertions.assertThrows;
+import org.apache.isis.testdomain.conf.Configuration_usingJdoAndShiro;
 
 import lombok.val;
 
 @SpringBootTest(
         classes = { 
-                JdoTestDomainModule_withShiro.class, 
+                Configuration_usingJdoAndShiro.class, 
         }, 
         properties = {
                 "logging.config=log4j2-test.xml",
-                "smoketest.withShiro=true", // enable shiro specific config to be picked up by Spring 
         })
 @Import({
     // Security Manager Extension (secman)
diff --git a/examples/smoketests/src/test/java/org/apache/isis/testdomain/shiro/ShiroSimpleTest.java b/examples/smoketests/src/test/java/org/apache/isis/testdomain/shiro/ShiroSimpleTest.java
index 498b4fb..baaf21f 100644
--- a/examples/smoketests/src/test/java/org/apache/isis/testdomain/shiro/ShiroSimpleTest.java
+++ b/examples/smoketests/src/test/java/org/apache/isis/testdomain/shiro/ShiroSimpleTest.java
@@ -18,6 +18,10 @@
  */
 package org.apache.isis.testdomain.shiro;
 
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+
 import org.apache.shiro.SecurityUtils;
 import org.apache.shiro.authc.AuthenticationToken;
 import org.apache.shiro.authc.UsernamePasswordToken;
@@ -28,10 +32,6 @@ import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-
 import lombok.val;
 
 class ShiroSimpleTest extends AbstractShiroTest {
diff --git a/examples/smoketests/src/test/java/org/apache/isis/testdomain/transactions/TransactionRollbackTest.java b/examples/smoketests/src/test/java/org/apache/isis/testdomain/transactions/TransactionRollbackTest.java
index 0733d2a..1a9d451 100644
--- a/examples/smoketests/src/test/java/org/apache/isis/testdomain/transactions/TransactionRollbackTest.java
+++ b/examples/smoketests/src/test/java/org/apache/isis/testdomain/transactions/TransactionRollbackTest.java
@@ -18,6 +18,9 @@
  */
 package org.apache.isis.testdomain.transactions;
 
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertThrows;
+
 import javax.inject.Inject;
 
 import org.junit.jupiter.api.BeforeEach;
@@ -29,16 +32,13 @@ import org.apache.isis.applib.services.xactn.TransactionService;
 import org.apache.isis.commons.internal.exceptions._Exceptions;
 import org.apache.isis.config.IsisPresets;
 import org.apache.isis.extensions.fixtures.fixturescripts.FixtureScripts;
+import org.apache.isis.testdomain.conf.Configuration_usingJdo;
 import org.apache.isis.testdomain.jdo.Book;
-import org.apache.isis.testdomain.jdo.JdoTestDomainModule;
 import org.apache.isis.testdomain.jdo.JdoTestDomainPersona;
 
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertThrows;
-
 @SpringBootTest(
         classes = { 
-                JdoTestDomainModule.class,
+                Configuration_usingJdo.class,
         }, 
         properties = {
                 "logging.config=log4j2-test.xml",
diff --git a/examples/smoketests/src/test/java/org/apache/isis/testdomain/transactions/TransactionRollbackTest_withTransactional.java b/examples/smoketests/src/test/java/org/apache/isis/testdomain/transactions/TransactionRollbackTest_withTransactional.java
index 8df6b91..5fe95aa 100644
--- a/examples/smoketests/src/test/java/org/apache/isis/testdomain/transactions/TransactionRollbackTest_withTransactional.java
+++ b/examples/smoketests/src/test/java/org/apache/isis/testdomain/transactions/TransactionRollbackTest_withTransactional.java
@@ -18,6 +18,8 @@
  */
 package org.apache.isis.testdomain.transactions;
 
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
 import javax.inject.Inject;
 
 import org.junit.jupiter.api.MethodOrderer;
@@ -31,12 +33,10 @@ import org.apache.isis.applib.services.repository.RepositoryService;
 import org.apache.isis.applib.services.xactn.TransactionService;
 import org.apache.isis.config.IsisPresets;
 import org.apache.isis.extensions.fixtures.fixturescripts.FixtureScripts;
+import org.apache.isis.testdomain.conf.Configuration_usingJdo;
 import org.apache.isis.testdomain.jdo.Book;
-import org.apache.isis.testdomain.jdo.JdoTestDomainModule;
 import org.apache.isis.testdomain.jdo.JdoTestDomainPersona;
 
-import static org.junit.jupiter.api.Assertions.assertEquals;
-
 /**
  * These tests use the {@code @Transactional} annotation as provided by Spring.
  * <p> 
@@ -44,7 +44,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals;
  */
 @SpringBootTest(
         classes = { 
-                JdoTestDomainModule.class,
+                Configuration_usingJdo.class,
         }, 
         properties = {
                 "logging.config=log4j2-test.xml",
diff --git a/extensions/fixtures/src/main/java/org/apache/isis/extensions/fixtures/fixturescripts/BuilderScriptWithoutResult.java b/extensions/fixtures/src/main/java/org/apache/isis/extensions/fixtures/fixturescripts/BuilderScriptWithoutResult.java
index a17fd23..3bb0ff8 100644
--- a/extensions/fixtures/src/main/java/org/apache/isis/extensions/fixtures/fixturescripts/BuilderScriptWithoutResult.java
+++ b/extensions/fixtures/src/main/java/org/apache/isis/extensions/fixtures/fixturescripts/BuilderScriptWithoutResult.java
@@ -18,8 +18,6 @@
  */
 package org.apache.isis.extensions.fixtures.fixturescripts;
 
-import org.apache.isis.commons.internal.exceptions._Exceptions;
-
 /**
  * 
  * @since 2.0
@@ -30,7 +28,7 @@ public abstract class BuilderScriptWithoutResult extends BuilderScriptAbstract<O
 
     @Override
     public Object getObject() {
-        throw _Exceptions.unsupportedOperation();
+        return null;
     }
     
 }