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 2019/12/05 20:13:28 UTC

[isis] 10/10: ISIS-2215: removes @ComponentScan throughout core.

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

danhaywood pushed a commit to branch ISIS-2215
in repository https://gitbox.apache.org/repos/asf/isis.git

commit a1374eb34f7c14e4f2686ec4697a5f122d378752
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Thu Dec 5 20:12:39 2019 +0000

    ISIS-2215: removes @ComponentScan throughout core.
---
 .../core/modules/ROOT/partials/component-nav.adoc  |   4 +-
 .../isis-configurations-and-modules.pptx           | Bin 50050 -> 53103 bytes
 core/applib/pom.xml                                |   5 --
 .../org/apache/isis/applib/IsisModuleApplib.java   |   1 -
 .../bytebuddy/IsisModuleCodegenByteBuddy.java      |   6 ++
 .../ServiceInjectorTestUsingCodegenPlugin.java     |   1 +
 .../ServiceInstantiatorTestUsingCodegenPlugin.java |   1 +
 core/metamodel/pom.xml                             |  30 +++++-----
 .../apache/isis/metamodel/IsisModuleMetamodel.java |   2 +
 .../applib/{services => }/IsisModuleJdoApplib.java |   2 +-
 core/persistence/jdo/datanucleus-5/pom.xml         |   2 +-
 .../datanucleus5/IsisModuleJdoDataNucleus5.java    |  41 ++++++++-----
 .../persistence/PersistenceSession5.java           |   9 +--
 core/runtime-services/pom.xml                      |   4 ++
 .../services/IsisModuleRuntimeServices.java        |  66 ++++++++++++++++++++-
 .../isis/runtime/services/ServiceInstantiator.java |   1 +
 .../repository/RepositoryServiceDefault.java       |   3 +-
 .../services/routing/RoutingServiceDefault.java    |   3 +-
 core/runtime/pom.xml                               |  18 ++----
 .../org/apache/isis/runtime/IsisModuleRuntime.java |  25 +++++++-
 .../runtime/scoping}/RequestScopedService.java     |   2 +-
 .../org/apache/isis/schema/IsisModuleSchema.java   |   5 ++
 .../security/bypass/IsisModuleSecurityBypass.java  |   8 ++-
 .../keycloak/IsisModuleSecurityKeycloak.java       |  14 ++++-
 .../security/shiro/IsisModuleSecurityShiro.java    |  15 ++++-
 .../shiro/authentication/ShiroAuthenticator.java   |   2 +-
 .../shiro/authorization/ShiroAuthorizor.java       |   2 +-
 .../shiro/{ => context}/ShiroSecurityContext.java  |   2 +-
 .../{ => realm/ldap}/IsisLdapContextFactory.java   |   2 +-
 .../shiro/{ => realm/ldap}/IsisLdapRealm.java      |   6 +-
 .../shiro/{ => webmodule}/WebModuleShiro.java      |   2 +-
 .../IsisModuleRestfulObjectsJaxrsResteasy4.java    |   6 ++
 core/viewers/restfulobjects/rendering/pom.xml      |   4 --
 .../IsisModuleRestfulObjectsRendering.java         |  25 ++++++++
 .../viewer/IsisModuleRestfulObjectsViewer.java     |  10 +++-
 .../viewer/webmodule/WebModuleRestfulObjects.java  |   2 +-
 .../auth/AuthenticationSessionStrategy.java        |   2 +-
 .../viewer/wicket/model/IsisModuleWicketModel.java |   6 ++
 .../isis/viewer/wicket/ui/IsisModuleWicketUi.java  |  10 ++++
 .../wicket/viewer/IsisModuleWicketViewer.java      |  35 ++++++++++-
 .../src/main/doc/modules/webapp}/_attributes.adoc  |   0
 .../doc/modules/{runtime-web => webapp}/nav.adoc   |   0
 .../doc/modules/webapp/pages}/_attributes.adoc     |   0
 .../{runtime-web => webapp}/pages/about.adoc       |   0
 .../doc/modules/webapp/partials}/_attributes.adoc  |   0
 .../partials/module-nav.adoc                       |   0
 .../org/apache/isis/webapp/IsisModuleWebapp.java   |  21 ++++---
 core/webboot-springboot/pom.xml                    |   5 --
 .../runtime-spring/partials/module-nav.adoc        |   1 -
 .../modules/webboot-springboot}/_attributes.adoc   |   0
 .../nav.adoc                                       |   0
 .../webboot-springboot/pages}/_attributes.adoc     |   0
 .../pages/about.adoc                               |   0
 .../webboot-springboot/partials}/_attributes.adoc  |   0
 .../webboot-springboot/partials/module-nav.adoc    |   1 +
 .../webboot/springboot/IsisModuleSpringBoot.java   |   4 +-
 .../isis/testdomain/shiro/AbstractShiroTest.java   |   2 +-
 .../shiro/ShiroSecmanLdap_restfulStressTest.java   |   2 +-
 .../smoketests/src/test/resources/shiro-ldap.ini   |   4 +-
 .../test/resources/shiro-secman-ldap-cached.ini    |   4 +-
 .../src/test/resources/shiro-secman-ldap.ini       |   4 +-
 .../extensions/fixtures/IsisModuleExtFixtures.java |  19 +++---
 mavendeps/webapp/pom.xml                           |   5 --
 63 files changed, 329 insertions(+), 127 deletions(-)

diff --git a/antora/components/core/modules/ROOT/partials/component-nav.adoc b/antora/components/core/modules/ROOT/partials/component-nav.adoc
index 09035fd..d52c314 100644
--- a/antora/components/core/modules/ROOT/partials/component-nav.adoc
+++ b/antora/components/core/modules/ROOT/partials/component-nav.adoc
@@ -6,7 +6,7 @@ include::core:codegen-bytebuddy:partial$module-nav.adoc[]
 include::core:metamodel:partial$module-nav.adoc[]
 include::core:runtime:partial$module-nav.adoc[]
 include::core:runtime-services:partial$module-nav.adoc[]
-include::core:runtime-spring:partial$module-nav.adoc[]
-include::core:runtime-web:partial$module-nav.adoc[]
+include::core:webboot-springboot:partial$module-nav.adoc[]
+include::core:webapp:partial$module-nav.adoc[]
 include::core:smoketests:partial$module-nav.adoc[]
 
diff --git a/antora/components/core/modules/archdesign/attachments/isis-configurations-and-modules.pptx b/antora/components/core/modules/archdesign/attachments/isis-configurations-and-modules.pptx
index 62b22f3..748724e 100644
Binary files a/antora/components/core/modules/archdesign/attachments/isis-configurations-and-modules.pptx and b/antora/components/core/modules/archdesign/attachments/isis-configurations-and-modules.pptx differ
diff --git a/core/applib/pom.xml b/core/applib/pom.xml
index 3701624..380f390 100644
--- a/core/applib/pom.xml
+++ b/core/applib/pom.xml
@@ -69,11 +69,6 @@
 
     <dependencies>
     
-    	<dependency>
-            <groupId>org.apache.isis.core</groupId>
-            <artifactId>isis-commons</artifactId>
-        </dependency>
-    
         <dependency>
             <groupId>org.apache.isis.core</groupId>
             <artifactId>isis-schema</artifactId>
diff --git a/core/applib/src/main/java/org/apache/isis/applib/IsisModuleApplib.java b/core/applib/src/main/java/org/apache/isis/applib/IsisModuleApplib.java
index fa69121..0ec6fa6 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/IsisModuleApplib.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/IsisModuleApplib.java
@@ -89,7 +89,6 @@ import org.springframework.context.annotation.Import;
         JaxbServiceDefault.class,
         PublisherServiceLogging.class
 
-
 })
 public class IsisModuleApplib {
 
diff --git a/core/codegen-bytebuddy/src/main/java/org/apache/isis/codegen/bytebuddy/IsisModuleCodegenByteBuddy.java b/core/codegen-bytebuddy/src/main/java/org/apache/isis/codegen/bytebuddy/IsisModuleCodegenByteBuddy.java
index b12e8bc..bafbb09 100644
--- a/core/codegen-bytebuddy/src/main/java/org/apache/isis/codegen/bytebuddy/IsisModuleCodegenByteBuddy.java
+++ b/core/codegen-bytebuddy/src/main/java/org/apache/isis/codegen/bytebuddy/IsisModuleCodegenByteBuddy.java
@@ -1,7 +1,13 @@
 package org.apache.isis.codegen.bytebuddy;
 
+import org.apache.isis.commons.IsisModuleCommons;
 import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.Import;
 
 @Configuration
+@Import({
+        // modules
+        IsisModuleCommons.class,
+})
 public class IsisModuleCodegenByteBuddy {
 }
diff --git a/core/detached-tests/src/test/java/org/apache/isis/runtime/services/ServiceInjectorTestUsingCodegenPlugin.java b/core/detached-tests/src/test/java/org/apache/isis/runtime/services/ServiceInjectorTestUsingCodegenPlugin.java
index 820e6a4..fa82903 100644
--- a/core/detached-tests/src/test/java/org/apache/isis/runtime/services/ServiceInjectorTestUsingCodegenPlugin.java
+++ b/core/detached-tests/src/test/java/org/apache/isis/runtime/services/ServiceInjectorTestUsingCodegenPlugin.java
@@ -30,6 +30,7 @@ import java.util.stream.IntStream;
 
 import javax.enterprise.context.RequestScoped;
 
+import org.apache.isis.runtime.scoping.RequestScopedService;
 import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
diff --git a/core/detached-tests/src/test/java/org/apache/isis/runtime/services/ServiceInstantiatorTestUsingCodegenPlugin.java b/core/detached-tests/src/test/java/org/apache/isis/runtime/services/ServiceInstantiatorTestUsingCodegenPlugin.java
index 4af6762..7ec1817 100644
--- a/core/detached-tests/src/test/java/org/apache/isis/runtime/services/ServiceInstantiatorTestUsingCodegenPlugin.java
+++ b/core/detached-tests/src/test/java/org/apache/isis/runtime/services/ServiceInstantiatorTestUsingCodegenPlugin.java
@@ -28,6 +28,7 @@ import java.util.concurrent.TimeUnit;
 
 import javax.enterprise.context.RequestScoped;
 
+import org.apache.isis.runtime.scoping.RequestScopedService;
 import org.jmock.auto.Mock;
 import org.junit.Before;
 import org.junit.Rule;
diff --git a/core/metamodel/pom.xml b/core/metamodel/pom.xml
index 4ef95dd..a7ec125 100644
--- a/core/metamodel/pom.xml
+++ b/core/metamodel/pom.xml
@@ -66,26 +66,14 @@
     
         <dependency>
             <groupId>org.apache.isis.core</groupId>
-            <artifactId>isis-unittestsupport</artifactId>
-            <scope>test</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.isis.core</groupId>
-            <artifactId>isis-applib</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.isis.core</groupId>
             <artifactId>isis-applib</artifactId>
-            <type>test-jar</type>
-            <scope>test</scope>
         </dependency>
-        
+
         <dependency>
             <groupId>org.apache.isis.core</groupId>
             <artifactId>isis-config</artifactId>
         </dependency>
-        
+
         <dependency>
             <groupId>org.apache.isis.core</groupId>
             <artifactId>isis-security-api</artifactId>
@@ -121,6 +109,20 @@
                 </exclusion>
             </exclusions>
         </dependency>
+
+        <dependency>
+            <groupId>org.apache.isis.core</groupId>
+            <artifactId>isis-unittestsupport</artifactId>
+            <scope>test</scope>
+        </dependency>
+
+        <dependency>
+            <groupId>org.apache.isis.core</groupId>
+            <artifactId>isis-applib</artifactId>
+            <type>test-jar</type>
+            <scope>test</scope>
+        </dependency>
+
     </dependencies>
 
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/IsisModuleMetamodel.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/IsisModuleMetamodel.java
index 1e96b1d..eb552b1 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/IsisModuleMetamodel.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/IsisModuleMetamodel.java
@@ -47,6 +47,7 @@ import org.apache.isis.metamodel.services.user.UserServiceDefault;
 import org.apache.isis.metamodel.specloader.InjectorMethodEvaluatorDefault;
 import org.apache.isis.metamodel.specloader.ProgrammingModelServiceDefault;
 import org.apache.isis.metamodel.specloader.SpecificationLoaderDefault;
+import org.apache.isis.security.api.IsisModuleSecurityApi;
 import org.springframework.context.annotation.ComponentScan;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.context.annotation.Import;
@@ -56,6 +57,7 @@ import org.springframework.context.annotation.Import;
         // modules
         IsisModuleApplib.class,
         IsisModuleConfig.class,
+        IsisModuleSecurityApi.class,
 
         // @Configuration's
         MetaModelContexts.class,
diff --git a/core/persistence/jdo/applib/src/main/java/org/apache/isis/persistence/jdo/applib/services/IsisModuleJdoApplib.java b/core/persistence/jdo/applib/src/main/java/org/apache/isis/persistence/jdo/applib/IsisModuleJdoApplib.java
similarity index 94%
rename from core/persistence/jdo/applib/src/main/java/org/apache/isis/persistence/jdo/applib/services/IsisModuleJdoApplib.java
rename to core/persistence/jdo/applib/src/main/java/org/apache/isis/persistence/jdo/applib/IsisModuleJdoApplib.java
index 37c6cca..310ee16 100644
--- a/core/persistence/jdo/applib/src/main/java/org/apache/isis/persistence/jdo/applib/services/IsisModuleJdoApplib.java
+++ b/core/persistence/jdo/applib/src/main/java/org/apache/isis/persistence/jdo/applib/IsisModuleJdoApplib.java
@@ -16,7 +16,7 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.isis.persistence.jdo.applib.services;
+package org.apache.isis.persistence.jdo.applib;
 
 import org.springframework.context.annotation.Configuration;
 
diff --git a/core/persistence/jdo/datanucleus-5/pom.xml b/core/persistence/jdo/datanucleus-5/pom.xml
index 3038a3a..5f046ba 100644
--- a/core/persistence/jdo/datanucleus-5/pom.xml
+++ b/core/persistence/jdo/datanucleus-5/pom.xml
@@ -77,7 +77,7 @@
 
 		<dependency>
 			<groupId>org.apache.isis.core</groupId>
-			<artifactId>isis-runtime-services</artifactId>
+			<artifactId>isis-runtime</artifactId>
 		</dependency>
 
 		<dependency>
diff --git a/core/persistence/jdo/datanucleus-5/src/main/java/org/apache/isis/persistence/jdo/datanucleus5/IsisModuleJdoDataNucleus5.java b/core/persistence/jdo/datanucleus-5/src/main/java/org/apache/isis/persistence/jdo/datanucleus5/IsisModuleJdoDataNucleus5.java
index b569a9f..6c8b651 100644
--- a/core/persistence/jdo/datanucleus-5/src/main/java/org/apache/isis/persistence/jdo/datanucleus5/IsisModuleJdoDataNucleus5.java
+++ b/core/persistence/jdo/datanucleus-5/src/main/java/org/apache/isis/persistence/jdo/datanucleus5/IsisModuleJdoDataNucleus5.java
@@ -22,7 +22,12 @@ import java.util.HashMap;
 import java.util.Map;
 
 import org.apache.isis.metamodel.IsisModuleMetamodel;
-import org.apache.isis.persistence.jdo.applib.services.IsisModuleJdoApplib;
+import org.apache.isis.persistence.jdo.applib.IsisModuleJdoApplib;
+import org.apache.isis.persistence.jdo.datanucleus5.exceprecog.ExceptionRecognizerCompositeForJdoObjectStore;
+import org.apache.isis.persistence.jdo.datanucleus5.jdosupport.mixins.Persistable_datanucleusVersionLong;
+import org.apache.isis.persistence.jdo.datanucleus5.jdosupport.mixins.Persistable_datanucleusVersionTimestamp;
+import org.apache.isis.persistence.jdo.datanucleus5.jdosupport.mixins.Persistable_downloadJdoMetadata;
+import org.apache.isis.runtime.IsisModuleRuntime;
 import org.apache.isis.schema.IsisModuleSchema;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 import org.springframework.context.annotation.Bean;
@@ -42,23 +47,29 @@ import org.apache.isis.persistence.jdo.datanucleus5.persistence.PersistenceSessi
 @Configuration
 @Import({
         // modules
+        IsisModuleRuntime.class,
         IsisModuleJdoApplib.class,
-        IsisModuleMetamodel.class,
-        IsisModuleSchema.class,
 
-    DataNucleusSettings.class, // config bean
-    JdoProgrammingModelPlugin.class, // metamodel extensions
-    JdoPersistenceLifecycleService.class,
-    MetricsServiceDefault.class,
-    IsisJdoSupportDN5.class,
-    IsisPlatformTransactionManagerForJdo.class,
-    PersistenceSessionFactory5.class
+        // @Component's
+        JdoProgrammingModelPlugin.class,
+
+        // @Service's
+        DataNucleusSettings.class,
+        JdoPersistenceLifecycleService.class,
+        IsisJdoSupportDN5.class,
+        IsisPlatformTransactionManagerForJdo.class,
+        PersistenceSessionFactory5.class,
+
+        // @DomainService's
+        MetricsServiceDefault.class,
+        ExceptionRecognizerCompositeForJdoObjectStore.class,
+
+        // @Mixin's
+        Persistable_datanucleusIdLong.class,
+        Persistable_datanucleusVersionLong.class,
+        Persistable_datanucleusVersionTimestamp.class,
+        Persistable_downloadJdoMetadata.class,
 })
-@ComponentScan(
-        basePackageClasses= {
-                // bring in the mixins
-                Persistable_datanucleusIdLong.class,
-        })
 public class IsisModuleJdoDataNucleus5 {
     
     // reserved for datanucleus' own config props
diff --git a/core/persistence/jdo/datanucleus-5/src/main/java/org/apache/isis/persistence/jdo/datanucleus5/persistence/PersistenceSession5.java b/core/persistence/jdo/datanucleus-5/src/main/java/org/apache/isis/persistence/jdo/datanucleus5/persistence/PersistenceSession5.java
index 34ae594..6ee432b 100644
--- a/core/persistence/jdo/datanucleus-5/src/main/java/org/apache/isis/persistence/jdo/datanucleus5/persistence/PersistenceSession5.java
+++ b/core/persistence/jdo/datanucleus-5/src/main/java/org/apache/isis/persistence/jdo/datanucleus5/persistence/PersistenceSession5.java
@@ -81,13 +81,6 @@ import org.apache.isis.metamodel.spec.EntityState;
 import org.apache.isis.metamodel.spec.FreeStandingList;
 import org.apache.isis.metamodel.spec.ManagedObject;
 import org.apache.isis.metamodel.spec.ObjectSpecification;
-import org.apache.isis.persistence.jdo.datanucleus5.datanucleus.persistence.commands.DataNucleusCreateObjectCommand;
-import org.apache.isis.persistence.jdo.datanucleus5.datanucleus.persistence.commands.DataNucleusDeleteObjectCommand;
-import org.apache.isis.persistence.jdo.datanucleus5.datanucleus.persistence.queries.PersistenceQueryFindAllInstancesProcessor;
-import org.apache.isis.persistence.jdo.datanucleus5.datanucleus.persistence.queries.PersistenceQueryFindUsingApplibQueryProcessor;
-import org.apache.isis.persistence.jdo.datanucleus5.datanucleus.persistence.queries.PersistenceQueryProcessor;
-import org.apache.isis.persistence.jdo.datanucleus5.datanucleus.persistence.spi.JdoObjectIdSerializer;
-import org.apache.isis.persistence.jdo.datanucleus5.objectadapter.ObjectAdapterContext;
 import org.apache.isis.runtime.persistence.FixturesInstalledStateHolder;
 import org.apache.isis.runtime.persistence.NotPersistableException;
 import org.apache.isis.runtime.persistence.UnsupportedFindException;
@@ -96,7 +89,7 @@ import org.apache.isis.runtime.persistence.objectstore.transaction.DestroyObject
 import org.apache.isis.runtime.persistence.objectstore.transaction.PersistenceCommand;
 import org.apache.isis.runtime.persistence.query.PersistenceQueryFindAllInstances;
 import org.apache.isis.runtime.persistence.query.PersistenceQueryFindUsingApplibQueryDefault;
-import org.apache.isis.runtime.services.RequestScopedService;
+import org.apache.isis.runtime.scoping.RequestScopedService;
 import org.apache.isis.runtime.system.persistence.PersistenceQuery;
 import org.apache.isis.security.api.authentication.AuthenticationSession;
 
diff --git a/core/runtime-services/pom.xml b/core/runtime-services/pom.xml
index a3bd910..8fcb49f 100644
--- a/core/runtime-services/pom.xml
+++ b/core/runtime-services/pom.xml
@@ -71,6 +71,10 @@
             <groupId>org.apache.isis.core</groupId>
             <artifactId>isis-runtime</artifactId>
         </dependency>
+        <dependency>
+            <groupId>org.apache.isis.core</groupId>
+            <artifactId>isis-codegen-bytebuddy</artifactId>
+        </dependency>
 
         <dependency>
             <groupId>org.apache.isis.core</groupId>
diff --git a/core/runtime-services/src/main/java/org/apache/isis/runtime/services/IsisModuleRuntimeServices.java b/core/runtime-services/src/main/java/org/apache/isis/runtime/services/IsisModuleRuntimeServices.java
index c654f3f..5d4cfa8 100644
--- a/core/runtime-services/src/main/java/org/apache/isis/runtime/services/IsisModuleRuntimeServices.java
+++ b/core/runtime-services/src/main/java/org/apache/isis/runtime/services/IsisModuleRuntimeServices.java
@@ -18,16 +18,80 @@
  */
 package org.apache.isis.runtime.services;
 
+import org.apache.isis.codegen.bytebuddy.IsisModuleCodegenByteBuddy;
 import org.apache.isis.runtime.IsisModuleRuntime;
+import org.apache.isis.runtime.services.auth.AuthenticationSessionProviderDefault;
+import org.apache.isis.runtime.services.auth.AuthorizationManagerStandard;
+import org.apache.isis.runtime.services.background.CommandExecutorServiceDefault;
+import org.apache.isis.runtime.services.bookmarks.BookmarkServiceInternalDefault;
+import org.apache.isis.runtime.services.command.CommandDtoServiceInternalDefault;
+import org.apache.isis.runtime.services.command.CommandServiceDefault;
+import org.apache.isis.runtime.services.confmenu.ConfigurationViewServiceDefault;
+import org.apache.isis.runtime.services.email.EmailServiceDefault;
+import org.apache.isis.runtime.services.eventbus.EventBusServiceSpring;
+import org.apache.isis.runtime.services.factory.FactoryServiceDefault;
+import org.apache.isis.runtime.services.homepage.HomePageResolverServiceDefault;
+import org.apache.isis.runtime.services.i18n.po.TranslationServicePo;
+import org.apache.isis.runtime.services.i18n.po.TranslationServicePoMenu;
+import org.apache.isis.runtime.services.ixn.InteractionDtoServiceInternalDefault;
+import org.apache.isis.runtime.services.menubars.MenuBarsLoaderServiceDefault;
+import org.apache.isis.runtime.services.menubars.bootstrap3.MenuBarsServiceBS3;
+import org.apache.isis.runtime.services.message.MessageServiceDefault;
+import org.apache.isis.runtime.services.publish.PublishingServiceInternalDefault;
+import org.apache.isis.runtime.services.repository.RepositoryServiceDefault;
+import org.apache.isis.runtime.services.routing.RoutingServiceDefault;
+import org.apache.isis.runtime.services.sessmgmt.SessionManagementServiceDefault;
+import org.apache.isis.runtime.services.sudo.SudoServiceDefault;
+import org.apache.isis.runtime.services.userprof.UserProfileServiceDefault;
+import org.apache.isis.runtime.services.userreg.EmailNotificationServiceDefault;
+import org.apache.isis.runtime.services.wrapper.WrapperFactoryDefault;
+import org.apache.isis.runtime.services.xactn.TransactionServiceSpring;
+import org.apache.isis.runtime.services.xmlsnapshot.XmlSnapshotServiceDefault;
 import org.springframework.context.annotation.ComponentScan;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.context.annotation.Import;
 
 @Configuration
 @Import({
+        // modules
         IsisModuleRuntime.class,
+        IsisModuleCodegenByteBuddy.class,
+
+        // @Service's
+        AuthenticationSessionProviderDefault.class,
+        AuthorizationManagerStandard.class,
+        CommandExecutorServiceDefault.class,
+        BookmarkServiceInternalDefault.class,
+        CommandServiceDefault.class,
+        EventBusServiceSpring.class,
+        FactoryServiceDefault.class,
+        HomePageResolverServiceDefault.class,
+        TranslationServicePo.class,
+        MenuBarsLoaderServiceDefault.class,
+        MenuBarsServiceBS3.class,
+        MessageServiceDefault.class,
+        SessionManagementServiceDefault.class,
+        WrapperFactoryDefault.class,
+        TransactionServiceSpring.class,
+        XmlSnapshotServiceDefault.class,
+
+        // @Controller
+        RoutingServiceDefault.class,
+
+        // @Repository's
+        RepositoryServiceDefault.class,
+
+        // @DomainService's
+        CommandDtoServiceInternalDefault.class,
+        ConfigurationViewServiceDefault.class,
+        EmailServiceDefault.class,
+        TranslationServicePoMenu.class,
+        InteractionDtoServiceInternalDefault.class,
+        PublishingServiceInternalDefault.class,
+        SudoServiceDefault.class,
+        UserProfileServiceDefault.class,
+        EmailNotificationServiceDefault.class,
 })
-@ComponentScan
 public class IsisModuleRuntimeServices {
 
 }
diff --git a/core/runtime-services/src/main/java/org/apache/isis/runtime/services/ServiceInstantiator.java b/core/runtime-services/src/main/java/org/apache/isis/runtime/services/ServiceInstantiator.java
index afa694e..7672c27 100644
--- a/core/runtime-services/src/main/java/org/apache/isis/runtime/services/ServiceInstantiator.java
+++ b/core/runtime-services/src/main/java/org/apache/isis/runtime/services/ServiceInstantiator.java
@@ -38,6 +38,7 @@ import org.apache.isis.commons.internal.factory.InstanceCreationException;
 import org.apache.isis.commons.internal.plugins.codegen.ProxyFactory;
 import org.apache.isis.metamodel.commons.MethodExtensions;
 import org.apache.isis.metamodel.specloader.classsubstitutor.ProxyEnhanced;
+import org.apache.isis.runtime.scoping.RequestScopedService;
 
 import lombok.extern.log4j.Log4j2;
 
diff --git a/core/runtime-services/src/main/java/org/apache/isis/runtime/services/repository/RepositoryServiceDefault.java b/core/runtime-services/src/main/java/org/apache/isis/runtime/services/repository/RepositoryServiceDefault.java
index 0b2b813..232ba4c 100644
--- a/core/runtime-services/src/main/java/org/apache/isis/runtime/services/repository/RepositoryServiceDefault.java
+++ b/core/runtime-services/src/main/java/org/apache/isis/runtime/services/repository/RepositoryServiceDefault.java
@@ -28,6 +28,7 @@ import java.util.stream.Collectors;
 import javax.annotation.PostConstruct;
 import javax.inject.Inject;
 
+import org.springframework.stereotype.Repository;
 import org.springframework.stereotype.Service;
 
 import org.apache.isis.applib.NonRecoverableException;
@@ -48,7 +49,7 @@ import org.apache.isis.runtime.system.persistence.PersistenceSession;
 
 import lombok.val;
 
-@Service
+@Repository
 public class RepositoryServiceDefault implements RepositoryService {
 
     @Inject private FactoryService factoryService;
diff --git a/core/runtime-services/src/main/java/org/apache/isis/runtime/services/routing/RoutingServiceDefault.java b/core/runtime-services/src/main/java/org/apache/isis/runtime/services/routing/RoutingServiceDefault.java
index 630f48b..42cefc1 100644
--- a/core/runtime-services/src/main/java/org/apache/isis/runtime/services/routing/RoutingServiceDefault.java
+++ b/core/runtime-services/src/main/java/org/apache/isis/runtime/services/routing/RoutingServiceDefault.java
@@ -20,6 +20,7 @@ package org.apache.isis.runtime.services.routing;
 
 import javax.inject.Inject;
 
+import org.springframework.stereotype.Controller;
 import org.springframework.stereotype.Service;
 
 import org.apache.isis.applib.services.routing.RoutingService;
@@ -27,7 +28,7 @@ import org.apache.isis.metamodel.services.homepage.HomePageResolverService;
 
 import lombok.val;
 
-@Service
+@Controller
 public class RoutingServiceDefault implements RoutingService {
 
     @Override
diff --git a/core/runtime/pom.xml b/core/runtime/pom.xml
index 8731c7e..63154c7 100644
--- a/core/runtime/pom.xml
+++ b/core/runtime/pom.xml
@@ -61,12 +61,10 @@
     </build>
 
     <dependencies>
-	
+
         <dependency>
             <groupId>org.apache.isis.core</groupId>
-            <artifactId>isis-applib</artifactId>
-            <type>test-jar</type>
-            <scope>test</scope>
+            <artifactId>isis-metamodel</artifactId>
         </dependency>
 
         <dependency>
@@ -77,22 +75,18 @@
 
         <dependency>
             <groupId>org.apache.isis.core</groupId>
-            <artifactId>isis-metamodel</artifactId>
-        </dependency>
-        
-        <dependency>
-            <groupId>org.apache.isis.core</groupId>
-            <artifactId>isis-metamodel</artifactId>
+            <artifactId>isis-applib</artifactId>
             <type>test-jar</type>
             <scope>test</scope>
         </dependency>
 
         <dependency>
             <groupId>org.apache.isis.core</groupId>
-            <artifactId>isis-schema</artifactId>
+            <artifactId>isis-metamodel</artifactId>
+            <type>test-jar</type>
+            <scope>test</scope>
         </dependency>
 
-
     </dependencies>
 
     <profiles>
diff --git a/core/runtime/src/main/java/org/apache/isis/runtime/IsisModuleRuntime.java b/core/runtime/src/main/java/org/apache/isis/runtime/IsisModuleRuntime.java
index f53b450..ca151e9 100644
--- a/core/runtime/src/main/java/org/apache/isis/runtime/IsisModuleRuntime.java
+++ b/core/runtime/src/main/java/org/apache/isis/runtime/IsisModuleRuntime.java
@@ -19,15 +19,38 @@
 package org.apache.isis.runtime;
 
 import org.apache.isis.metamodel.IsisModuleMetamodel;
+import org.apache.isis.runtime.memento.ObjectAdapterMementoServiceDefault;
+import org.apache.isis.runtime.system.context.session.RuntimeEventService;
+import org.apache.isis.runtime.system.context.session.RuntimeEventSupport_Spring;
+import org.apache.isis.runtime.system.persistence.events.PersistenceEventService;
+import org.apache.isis.runtime.system.persistence.events.PersistenceEventService_Spring;
+import org.apache.isis.runtime.system.persistence.events.TimestampService;
+import org.apache.isis.runtime.system.session.IsisSessionFactoryDefault;
+import org.apache.isis.runtime.system.transaction.AuditingServiceInternal;
+import org.apache.isis.runtime.system.transaction.ChangedObjectsServiceInternal;
 import org.springframework.context.annotation.ComponentScan;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.context.annotation.Import;
 
 @Configuration
 @Import({
+        // modules
         IsisModuleMetamodel.class,
+
+        // @Service's
+        ObjectAdapterMementoServiceDefault.class,
+        RuntimeEventService.class,
+        PersistenceEventService.class,
+        TimestampService.class,
+        IsisSessionFactoryDefault.class,
+        AuditingServiceInternal.class,
+        ChangedObjectsServiceInternal.class,
+
+        // @Configuration's
+        RuntimeEventSupport_Spring.class,
+        PersistenceEventService_Spring.class,
+
 })
-@ComponentScan
 public class IsisModuleRuntime {
 
 }
diff --git a/core/runtime-services/src/main/java/org/apache/isis/runtime/services/RequestScopedService.java b/core/runtime/src/main/java/org/apache/isis/runtime/scoping/RequestScopedService.java
similarity index 98%
rename from core/runtime-services/src/main/java/org/apache/isis/runtime/services/RequestScopedService.java
rename to core/runtime/src/main/java/org/apache/isis/runtime/scoping/RequestScopedService.java
index e14c0a2..07081a5 100644
--- a/core/runtime-services/src/main/java/org/apache/isis/runtime/services/RequestScopedService.java
+++ b/core/runtime/src/main/java/org/apache/isis/runtime/scoping/RequestScopedService.java
@@ -17,7 +17,7 @@
  *  under the License.
  */
 
-package org.apache.isis.runtime.services;
+package org.apache.isis.runtime.scoping;
 
 import org.apache.isis.applib.annotation.Programmatic;
 import org.apache.isis.applib.services.inject.ServiceInjector;
diff --git a/core/schema/src/main/java/org/apache/isis/schema/IsisModuleSchema.java b/core/schema/src/main/java/org/apache/isis/schema/IsisModuleSchema.java
index 503c95d..2650cb5 100644
--- a/core/schema/src/main/java/org/apache/isis/schema/IsisModuleSchema.java
+++ b/core/schema/src/main/java/org/apache/isis/schema/IsisModuleSchema.java
@@ -18,10 +18,15 @@
  */
 package org.apache.isis.schema;
 
+import org.apache.isis.commons.IsisModuleCommons;
 import org.springframework.context.annotation.ComponentScan;
 import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.Import;
 
 @Configuration
+@Import({
+        IsisModuleCommons.class
+})
 public class IsisModuleSchema {
 
 
diff --git a/core/security/bypass/src/main/java/org/apache/isis/security/bypass/IsisModuleSecurityBypass.java b/core/security/bypass/src/main/java/org/apache/isis/security/bypass/IsisModuleSecurityBypass.java
index 6ba614e..4a56af8 100644
--- a/core/security/bypass/src/main/java/org/apache/isis/security/bypass/IsisModuleSecurityBypass.java
+++ b/core/security/bypass/src/main/java/org/apache/isis/security/bypass/IsisModuleSecurityBypass.java
@@ -20,6 +20,8 @@ package org.apache.isis.security.bypass;
 
 import javax.inject.Singleton;
 
+import org.apache.isis.runtime.services.IsisModuleRuntimeServices;
+import org.apache.isis.security.api.IsisModuleSecurityApi;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.context.annotation.Import;
@@ -38,8 +40,10 @@ import org.apache.isis.security.api.authorization.standard.Authorizor;
  */
 @Configuration
 @Import({
-    AuthorizationManagerStandard.class,
-    AuthenticationManagerStandard.class
+        // modules
+        IsisModuleSecurityApi.class,
+        IsisModuleRuntimeServices.class
+
 })
 public class IsisModuleSecurityBypass {
 
diff --git a/core/security/keycloak/src/main/java/org/apache/isis/security/keycloak/IsisModuleSecurityKeycloak.java b/core/security/keycloak/src/main/java/org/apache/isis/security/keycloak/IsisModuleSecurityKeycloak.java
index da52a6f..db8fff1 100644
--- a/core/security/keycloak/src/main/java/org/apache/isis/security/keycloak/IsisModuleSecurityKeycloak.java
+++ b/core/security/keycloak/src/main/java/org/apache/isis/security/keycloak/IsisModuleSecurityKeycloak.java
@@ -20,10 +20,13 @@ package org.apache.isis.security.keycloak;
 
 import javax.inject.Singleton;
 
+import org.apache.isis.runtime.services.IsisModuleRuntimeServices;
 import org.apache.isis.runtime.services.auth.AuthorizationManagerStandard;
+import org.apache.isis.security.api.IsisModuleSecurityApi;
 import org.apache.isis.security.keycloak.authentication.KeycloakAuthenticator;
 import org.apache.isis.security.keycloak.authorization.KeycloakAuthorizor;
 import org.apache.isis.security.keycloak.webmodule.WebModuleKeycloak;
+import org.apache.isis.webapp.IsisModuleWebapp;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.context.annotation.Import;
@@ -39,9 +42,14 @@ import org.apache.isis.security.api.authorization.standard.Authorizor;
  */
 @Configuration
 @Import({
-    AuthorizationManagerStandard.class,
-    AuthenticationManagerStandard.class,
-    WebModuleKeycloak.class
+        // modules
+        IsisModuleSecurityApi.class,
+        IsisModuleRuntimeServices.class,
+        IsisModuleWebapp.class,
+
+        // @Service's
+        WebModuleKeycloak.class,
+
 })
 public class IsisModuleSecurityKeycloak {
 
diff --git a/core/security/shiro/src/main/java/org/apache/isis/security/shiro/IsisModuleSecurityShiro.java b/core/security/shiro/src/main/java/org/apache/isis/security/shiro/IsisModuleSecurityShiro.java
index 8f0e27a..df89888 100644
--- a/core/security/shiro/src/main/java/org/apache/isis/security/shiro/IsisModuleSecurityShiro.java
+++ b/core/security/shiro/src/main/java/org/apache/isis/security/shiro/IsisModuleSecurityShiro.java
@@ -20,6 +20,10 @@ package org.apache.isis.security.shiro;
 
 import javax.inject.Singleton;
 
+import org.apache.isis.runtime.services.IsisModuleRuntimeServices;
+import org.apache.isis.security.api.IsisModuleSecurityApi;
+import org.apache.isis.security.shiro.webmodule.WebModuleShiro;
+import org.apache.isis.webapp.IsisModuleWebapp;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.context.annotation.Import;
@@ -38,9 +42,14 @@ import org.apache.isis.security.shiro.authorization.ShiroAuthorizor;
  */
 @Configuration
 @Import({
-    AuthorizationManagerStandard.class,
-    AuthenticationManagerStandard.class,
-    WebModuleShiro.class
+        // modules
+        IsisModuleSecurityApi.class,
+        IsisModuleRuntimeServices.class,
+        IsisModuleWebapp.class,
+
+        // @Service's
+        WebModuleShiro.class,
+
 })
 public class IsisModuleSecurityShiro {
 
diff --git a/core/security/shiro/src/main/java/org/apache/isis/security/shiro/authentication/ShiroAuthenticator.java b/core/security/shiro/src/main/java/org/apache/isis/security/shiro/authentication/ShiroAuthenticator.java
index ea7059e..94a63fe 100644
--- a/core/security/shiro/src/main/java/org/apache/isis/security/shiro/authentication/ShiroAuthenticator.java
+++ b/core/security/shiro/src/main/java/org/apache/isis/security/shiro/authentication/ShiroAuthenticator.java
@@ -51,7 +51,7 @@ import org.apache.isis.security.api.authentication.AuthenticationSession;
 import org.apache.isis.security.api.authentication.standard.Authenticator;
 import org.apache.isis.security.api.authentication.standard.SimpleSession;
 import org.apache.isis.security.api.authorization.standard.Authorizor;
-import org.apache.isis.security.shiro.ShiroSecurityContext;
+import org.apache.isis.security.shiro.context.ShiroSecurityContext;
 
 import lombok.NoArgsConstructor;
 import lombok.extern.log4j.Log4j2;
diff --git a/core/security/shiro/src/main/java/org/apache/isis/security/shiro/authorization/ShiroAuthorizor.java b/core/security/shiro/src/main/java/org/apache/isis/security/shiro/authorization/ShiroAuthorizor.java
index 4bb3f82..5bcfa91 100644
--- a/core/security/shiro/src/main/java/org/apache/isis/security/shiro/authorization/ShiroAuthorizor.java
+++ b/core/security/shiro/src/main/java/org/apache/isis/security/shiro/authorization/ShiroAuthorizor.java
@@ -26,7 +26,7 @@ import org.apache.shiro.subject.Subject;
 import org.apache.isis.applib.Identifier;
 import org.apache.isis.security.api.authentication.standard.Authenticator;
 import org.apache.isis.security.api.authorization.standard.Authorizor;
-import org.apache.isis.security.shiro.ShiroSecurityContext;
+import org.apache.isis.security.shiro.context.ShiroSecurityContext;
 
 /**
  * If Shiro is configured for both {@link AuthenticationManagerInstaller authentication} and
diff --git a/core/security/shiro/src/main/java/org/apache/isis/security/shiro/ShiroSecurityContext.java b/core/security/shiro/src/main/java/org/apache/isis/security/shiro/context/ShiroSecurityContext.java
similarity index 97%
rename from core/security/shiro/src/main/java/org/apache/isis/security/shiro/ShiroSecurityContext.java
rename to core/security/shiro/src/main/java/org/apache/isis/security/shiro/context/ShiroSecurityContext.java
index 44894c8..1267ebc 100644
--- a/core/security/shiro/src/main/java/org/apache/isis/security/shiro/ShiroSecurityContext.java
+++ b/core/security/shiro/src/main/java/org/apache/isis/security/shiro/context/ShiroSecurityContext.java
@@ -16,7 +16,7 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.isis.security.shiro;
+package org.apache.isis.security.shiro.context;
 
 import org.apache.shiro.SecurityUtils;
 import org.apache.shiro.UnavailableSecurityManagerException;
diff --git a/core/security/shiro/src/main/java/org/apache/isis/security/shiro/IsisLdapContextFactory.java b/core/security/shiro/src/main/java/org/apache/isis/security/shiro/realm/ldap/IsisLdapContextFactory.java
similarity index 97%
rename from core/security/shiro/src/main/java/org/apache/isis/security/shiro/IsisLdapContextFactory.java
rename to core/security/shiro/src/main/java/org/apache/isis/security/shiro/realm/ldap/IsisLdapContextFactory.java
index 6aa9502..48f317a 100644
--- a/core/security/shiro/src/main/java/org/apache/isis/security/shiro/IsisLdapContextFactory.java
+++ b/core/security/shiro/src/main/java/org/apache/isis/security/shiro/realm/ldap/IsisLdapContextFactory.java
@@ -16,7 +16,7 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.isis.security.shiro;
+package org.apache.isis.security.shiro.realm.ldap;
 
 import java.util.Hashtable;
 
diff --git a/core/security/shiro/src/main/java/org/apache/isis/security/shiro/IsisLdapRealm.java b/core/security/shiro/src/main/java/org/apache/isis/security/shiro/realm/ldap/IsisLdapRealm.java
similarity index 98%
rename from core/security/shiro/src/main/java/org/apache/isis/security/shiro/IsisLdapRealm.java
rename to core/security/shiro/src/main/java/org/apache/isis/security/shiro/realm/ldap/IsisLdapRealm.java
index 14e8b8c..431f22d 100644
--- a/core/security/shiro/src/main/java/org/apache/isis/security/shiro/IsisLdapRealm.java
+++ b/core/security/shiro/src/main/java/org/apache/isis/security/shiro/realm/ldap/IsisLdapRealm.java
@@ -16,7 +16,7 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.isis.security.shiro;
+package org.apache.isis.security.shiro.realm.ldap;
 
 import java.util.Collection;
 import java.util.Collections;
@@ -57,14 +57,14 @@ import static org.apache.isis.commons.internal.base._NullSafe.stream;
  * Sample config for <tt>shiro.ini</tt>:
  * <p/>
  * <pre>
- * contextFactory = org.apache.isis.security.shiro.IsisLdapContextFactory
+ * contextFactory = org.apache.isis.security.shiro.realm.ldap.IsisLdapContextFactory
  * contextFactory.url = ldap://localhost:10389
  * contextFactory.authenticationMechanism = CRAM-MD5
  * contextFactory.systemAuthenticationMechanism = simple
  * contextFactory.systemUsername = uid=admin,ou=system
  * contextFactory.systemPassword = secret
  *
- * ldapRealm = org.apache.isis.security.shiro.IsisLdapRealm
+ * ldapRealm = org.apache.isis.security.shiro.realm.ldap.IsisLdapRealm
  * ldapRealm.contextFactory = $contextFactory
  *
  * ldapRealm.searchBase = ou=groups,o=mojo
diff --git a/core/security/shiro/src/main/java/org/apache/isis/security/shiro/WebModuleShiro.java b/core/security/shiro/src/main/java/org/apache/isis/security/shiro/webmodule/WebModuleShiro.java
similarity index 99%
rename from core/security/shiro/src/main/java/org/apache/isis/security/shiro/WebModuleShiro.java
rename to core/security/shiro/src/main/java/org/apache/isis/security/shiro/webmodule/WebModuleShiro.java
index 245e66d..1705470 100644
--- a/core/security/shiro/src/main/java/org/apache/isis/security/shiro/WebModuleShiro.java
+++ b/core/security/shiro/src/main/java/org/apache/isis/security/shiro/webmodule/WebModuleShiro.java
@@ -16,7 +16,7 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package org.apache.isis.security.shiro;
+package org.apache.isis.security.shiro.webmodule;
 
 import java.util.Collection;
 import java.util.HashMap;
diff --git a/core/viewers/restfulobjects/jaxrs-resteasy-4/src/main/java/org/apache/isis/viewer/restfulobjects/jaxrsresteasy4/IsisModuleRestfulObjectsJaxrsResteasy4.java b/core/viewers/restfulobjects/jaxrs-resteasy-4/src/main/java/org/apache/isis/viewer/restfulobjects/jaxrsresteasy4/IsisModuleRestfulObjectsJaxrsResteasy4.java
index b725360..0cf57d9 100644
--- a/core/viewers/restfulobjects/jaxrs-resteasy-4/src/main/java/org/apache/isis/viewer/restfulobjects/jaxrsresteasy4/IsisModuleRestfulObjectsJaxrsResteasy4.java
+++ b/core/viewers/restfulobjects/jaxrs-resteasy-4/src/main/java/org/apache/isis/viewer/restfulobjects/jaxrsresteasy4/IsisModuleRestfulObjectsJaxrsResteasy4.java
@@ -1,7 +1,13 @@
 package org.apache.isis.viewer.restfulobjects.jaxrsresteasy4;
 
+import org.apache.isis.viewer.restfulobjects.viewer.IsisModuleRestfulObjectsViewer;
 import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.Import;
 
 @Configuration
+@Import({
+        // modules
+        IsisModuleRestfulObjectsViewer.class
+})
 public class IsisModuleRestfulObjectsJaxrsResteasy4 {
 }
diff --git a/core/viewers/restfulobjects/rendering/pom.xml b/core/viewers/restfulobjects/rendering/pom.xml
index f445667..24ec5f1 100644
--- a/core/viewers/restfulobjects/rendering/pom.xml
+++ b/core/viewers/restfulobjects/rendering/pom.xml
@@ -40,10 +40,6 @@
     <dependencies>
         <dependency>
             <groupId>org.apache.isis.core</groupId>
-            <artifactId>isis-metamodel</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.isis.core</groupId>
             <artifactId>isis-runtime</artifactId>
         </dependency>
         <dependency>
diff --git a/core/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/IsisModuleRestfulObjectsRendering.java b/core/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/IsisModuleRestfulObjectsRendering.java
index 568fd75..ea25623 100644
--- a/core/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/IsisModuleRestfulObjectsRendering.java
+++ b/core/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/IsisModuleRestfulObjectsRendering.java
@@ -1,7 +1,32 @@
 package org.apache.isis.viewer.restfulobjects.rendering;
 
+import org.apache.isis.runtime.IsisModuleRuntime;
+import org.apache.isis.viewer.restfulobjects.applib.IsisModuleRestfulObjectsApplib;
+import org.apache.isis.viewer.restfulobjects.rendering.domainobjects.JsonValueEncoder;
+import org.apache.isis.viewer.restfulobjects.rendering.service.RepresentationServiceContentNegotiator;
+import org.apache.isis.viewer.restfulobjects.rendering.service.acceptheader.AcceptHeaderServiceForRest;
+import org.apache.isis.viewer.restfulobjects.rendering.service.conneg.ContentNegotiationServiceForRestfulObjectsV1_0;
+import org.apache.isis.viewer.restfulobjects.rendering.service.conneg.ContentNegotiationServiceOrgApacheIsisV1;
+import org.apache.isis.viewer.restfulobjects.rendering.service.conneg.ContentNegotiationServiceXRoDomainType;
 import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.Import;
 
 @Configuration
+@Import({
+        // modules
+        IsisModuleRestfulObjectsApplib.class,
+        IsisModuleRuntime.class,
+
+        // @Service's
+        JsonValueEncoder.class,
+        RepresentationServiceContentNegotiator.class,
+        ContentNegotiationServiceXRoDomainType.class,
+
+        // @DomainService's
+        AcceptHeaderServiceForRest.class,
+        ContentNegotiationServiceForRestfulObjectsV1_0.class,
+        ContentNegotiationServiceOrgApacheIsisV1.class,
+
+})
 public class IsisModuleRestfulObjectsRendering {
 }
diff --git a/core/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/IsisModuleRestfulObjectsViewer.java b/core/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/IsisModuleRestfulObjectsViewer.java
index 02d8369..fed87ce 100644
--- a/core/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/IsisModuleRestfulObjectsViewer.java
+++ b/core/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/IsisModuleRestfulObjectsViewer.java
@@ -19,6 +19,8 @@
 
 package org.apache.isis.viewer.restfulobjects.viewer;
 
+import org.apache.isis.viewer.restfulobjects.rendering.IsisModuleRestfulObjectsRendering;
+import org.apache.isis.viewer.restfulobjects.viewer.webmodule.WebModuleRestfulObjects;
 import org.springframework.context.annotation.ComponentScan;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.context.annotation.Import;
@@ -31,9 +33,13 @@ import org.apache.isis.webapp.IsisModuleWebapp;
  */
 @Configuration
 @Import({
-    IsisModuleWebapp.class
+        // modules
+        IsisModuleWebapp.class,
+        IsisModuleRestfulObjectsRendering.class,
+
+        // @DomainService's
+        WebModuleRestfulObjects.class,
 })
-@ComponentScan
 public class IsisModuleRestfulObjectsViewer {
 
 }
diff --git a/core/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/webmodule/WebModuleRestfulObjects.java b/core/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/webmodule/WebModuleRestfulObjects.java
index 3b62557..4af29b8 100644
--- a/core/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/webmodule/WebModuleRestfulObjects.java
+++ b/core/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/webmodule/WebModuleRestfulObjects.java
@@ -49,7 +49,7 @@ import lombok.val;
  */
 @DomainService(
         nature = NatureOfService.DOMAIN, 
-        objectType = "webModules.RestfulObjects") // add to meta-model, for swagger-menu to check whether available or not 
+        objectType = "restfulObjectsViewer.WebModule") // add to meta-model, for swagger-menu to check whether available or not
 @Order(-80)
 public final class WebModuleRestfulObjects implements WebModule  {
 
diff --git a/core/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/webmodule/auth/AuthenticationSessionStrategy.java b/core/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/webmodule/auth/AuthenticationSessionStrategy.java
index 5c8b5e2..c30bc83 100644
--- a/core/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/webmodule/auth/AuthenticationSessionStrategy.java
+++ b/core/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/webmodule/auth/AuthenticationSessionStrategy.java
@@ -26,7 +26,7 @@ import org.apache.isis.security.api.authentication.AuthenticationSession;
 import org.apache.isis.security.api.authentication.manager.AuthenticationManager;
 
 /**
- * Decouples the {@link IsisSessionFilter} from the mechanism of obtaining the
+ * Decouples the <code>IsisSessionFilter</code> from the mechanism of obtaining the
  * {@link AuthenticationSession}.
  */
 public interface AuthenticationSessionStrategy {
diff --git a/core/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/IsisModuleWicketModel.java b/core/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/IsisModuleWicketModel.java
index f5fd67d..38aea94 100644
--- a/core/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/IsisModuleWicketModel.java
+++ b/core/viewers/wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/IsisModuleWicketModel.java
@@ -1,7 +1,13 @@
 package org.apache.isis.viewer.wicket.model;
 
+import org.apache.isis.webapp.IsisModuleWebapp;
 import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.Import;
 
 @Configuration
+@Import({
+        // modules
+        IsisModuleWebapp.class,
+})
 public class IsisModuleWicketModel {
 }
diff --git a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/IsisModuleWicketUi.java b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/IsisModuleWicketUi.java
index da821a9..7cf134d 100644
--- a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/IsisModuleWicketUi.java
+++ b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/IsisModuleWicketUi.java
@@ -1,7 +1,17 @@
 package org.apache.isis.viewer.wicket.ui;
 
+import org.apache.isis.viewer.wicket.model.IsisModuleWicketModel;
+import org.apache.isis.viewer.wicket.ui.components.widgets.themepicker.IsisWicketThemeSupportDefault;
 import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.Import;
 
 @Configuration
+@Import({
+        // modules
+        IsisModuleWicketModel.class,
+
+        // @Service's
+        IsisWicketThemeSupportDefault.class,
+})
 public class IsisModuleWicketUi {
 }
diff --git a/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisModuleWicketViewer.java b/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisModuleWicketViewer.java
index 4dd431a..58057c0 100644
--- a/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisModuleWicketViewer.java
+++ b/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/IsisModuleWicketViewer.java
@@ -19,6 +19,15 @@
 
 package org.apache.isis.viewer.wicket.viewer;
 
+import org.apache.isis.viewer.wicket.ui.IsisModuleWicketUi;
+import org.apache.isis.viewer.wicket.viewer.mixins.Object_clearHints;
+import org.apache.isis.viewer.wicket.viewer.registries.components.ComponentFactoryRegistrarDefault;
+import org.apache.isis.viewer.wicket.viewer.registries.components.ComponentFactoryRegistryDefault;
+import org.apache.isis.viewer.wicket.viewer.registries.pages.PageClassListDefault;
+import org.apache.isis.viewer.wicket.viewer.registries.pages.PageClassRegistryDefault;
+import org.apache.isis.viewer.wicket.viewer.registries.pages.PageNavigationServiceDefault;
+import org.apache.isis.viewer.wicket.viewer.services.*;
+import org.apache.isis.viewer.wicket.viewer.webmodule.WebModuleWicket;
 import org.springframework.context.annotation.ComponentScan;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.context.annotation.Import;
@@ -32,10 +41,30 @@ import org.apache.isis.webapp.IsisModuleWebapp;
  */
 @Configuration
 @Import({
-    IsisModuleWebapp.class,
-    IsisWicketThemeSupportDefault.class
+        // modules
+        IsisModuleWicketUi.class,
+
+        // @Service's
+        ComponentFactoryRegistrarDefault.class,
+        ComponentFactoryRegistryDefault.class,
+        PageClassListDefault.class,
+        PageClassRegistryDefault.class,
+        PageNavigationServiceDefault.class,
+        DeepLinkServiceWicket.class,
+        ImageResourceCacheClassPath.class,
+        LocaleProviderWicket.class,
+        TranslationsResolverWicket.class,
+        WicketViewerSettingsDefault.class,
+        WebModuleWicket.class,
+
+        // @DomainService's
+        BookmarkUiServiceWicket.class,
+        HintStoreUsingWicketSession.class,
+
+        // @Mixin's
+        Object_clearHints.class,
+
 })
-@ComponentScan
 public class IsisModuleWicketViewer {
 
 }
diff --git a/core/webboot-springboot/src/main/doc/modules/runtime-spring/_attributes.adoc b/core/webapp/src/main/doc/modules/webapp/_attributes.adoc
similarity index 100%
rename from core/webboot-springboot/src/main/doc/modules/runtime-spring/_attributes.adoc
rename to core/webapp/src/main/doc/modules/webapp/_attributes.adoc
diff --git a/core/webapp/src/main/doc/modules/runtime-web/nav.adoc b/core/webapp/src/main/doc/modules/webapp/nav.adoc
similarity index 100%
rename from core/webapp/src/main/doc/modules/runtime-web/nav.adoc
rename to core/webapp/src/main/doc/modules/webapp/nav.adoc
diff --git a/core/webboot-springboot/src/main/doc/modules/runtime-spring/partials/_attributes.adoc b/core/webapp/src/main/doc/modules/webapp/pages/_attributes.adoc
similarity index 100%
rename from core/webboot-springboot/src/main/doc/modules/runtime-spring/partials/_attributes.adoc
rename to core/webapp/src/main/doc/modules/webapp/pages/_attributes.adoc
diff --git a/core/webapp/src/main/doc/modules/runtime-web/pages/about.adoc b/core/webapp/src/main/doc/modules/webapp/pages/about.adoc
similarity index 100%
rename from core/webapp/src/main/doc/modules/runtime-web/pages/about.adoc
rename to core/webapp/src/main/doc/modules/webapp/pages/about.adoc
diff --git a/core/webboot-springboot/src/main/doc/modules/runtime-spring/pages/_attributes.adoc b/core/webapp/src/main/doc/modules/webapp/partials/_attributes.adoc
similarity index 100%
rename from core/webboot-springboot/src/main/doc/modules/runtime-spring/pages/_attributes.adoc
rename to core/webapp/src/main/doc/modules/webapp/partials/_attributes.adoc
diff --git a/core/webapp/src/main/doc/modules/runtime-web/partials/module-nav.adoc b/core/webapp/src/main/doc/modules/webapp/partials/module-nav.adoc
similarity index 100%
rename from core/webapp/src/main/doc/modules/runtime-web/partials/module-nav.adoc
rename to core/webapp/src/main/doc/modules/webapp/partials/module-nav.adoc
diff --git a/core/webapp/src/main/java/org/apache/isis/webapp/IsisModuleWebapp.java b/core/webapp/src/main/java/org/apache/isis/webapp/IsisModuleWebapp.java
index 05f9a09..dd3745d 100644
--- a/core/webapp/src/main/java/org/apache/isis/webapp/IsisModuleWebapp.java
+++ b/core/webapp/src/main/java/org/apache/isis/webapp/IsisModuleWebapp.java
@@ -18,6 +18,7 @@
  */
 package org.apache.isis.webapp;
 
+import org.apache.isis.runtime.IsisModuleRuntime;
 import org.apache.isis.webapp.webappctx.IsisWebAppContextInitializer;
 import org.apache.isis.webapp.webappctx.IsisWebAppContextListener;
 import org.springframework.context.annotation.Configuration;
@@ -28,14 +29,18 @@ import org.apache.isis.webapp.modules.templresources.WebModuleTemplateResources;
 
 @Configuration
 @Import({
-    IsisWebAppContextListener.class,
-    IsisWebAppContextInitializer.class,
-
-    // default modules
-    WebModuleLogOnExceptionLogger.class,
-    
-    // static html template preprocessing
-    WebModuleTemplateResources.class,
+        // modules
+        IsisModuleRuntime.class,
+
+        // @Configuration's
+        IsisWebAppContextInitializer.class,
+
+        // @Service's
+        WebModuleLogOnExceptionLogger.class,
+        WebModuleTemplateResources.class,
+
+        // (not annotated)
+        IsisWebAppContextListener.class,
 
 })
 public class IsisModuleWebapp {
diff --git a/core/webboot-springboot/pom.xml b/core/webboot-springboot/pom.xml
index e5b0fd8..52ebaa7 100644
--- a/core/webboot-springboot/pom.xml
+++ b/core/webboot-springboot/pom.xml
@@ -63,11 +63,6 @@
 
     <dependencies>
 	
-        <dependency>
-            <groupId>org.apache.isis.core</groupId>
-            <artifactId>isis-runtime</artifactId>
-        </dependency>
-        
 		<dependency>
             <groupId>org.apache.isis.core</groupId>
             <artifactId>isis-runtime-services</artifactId>
diff --git a/core/webboot-springboot/src/main/doc/modules/runtime-spring/partials/module-nav.adoc b/core/webboot-springboot/src/main/doc/modules/runtime-spring/partials/module-nav.adoc
deleted file mode 100644
index 58ba6f9..0000000
--- a/core/webboot-springboot/src/main/doc/modules/runtime-spring/partials/module-nav.adoc
+++ /dev/null
@@ -1 +0,0 @@
-* xref:core:runtime-extensions:about.adoc[Runtime Extensions]
diff --git a/core/webapp/src/main/doc/modules/runtime-web/_attributes.adoc b/core/webboot-springboot/src/main/doc/modules/webboot-springboot/_attributes.adoc
similarity index 100%
rename from core/webapp/src/main/doc/modules/runtime-web/_attributes.adoc
rename to core/webboot-springboot/src/main/doc/modules/webboot-springboot/_attributes.adoc
diff --git a/core/webboot-springboot/src/main/doc/modules/runtime-spring/nav.adoc b/core/webboot-springboot/src/main/doc/modules/webboot-springboot/nav.adoc
similarity index 100%
rename from core/webboot-springboot/src/main/doc/modules/runtime-spring/nav.adoc
rename to core/webboot-springboot/src/main/doc/modules/webboot-springboot/nav.adoc
diff --git a/core/webapp/src/main/doc/modules/runtime-web/partials/_attributes.adoc b/core/webboot-springboot/src/main/doc/modules/webboot-springboot/pages/_attributes.adoc
similarity index 100%
rename from core/webapp/src/main/doc/modules/runtime-web/partials/_attributes.adoc
rename to core/webboot-springboot/src/main/doc/modules/webboot-springboot/pages/_attributes.adoc
diff --git a/core/webboot-springboot/src/main/doc/modules/runtime-spring/pages/about.adoc b/core/webboot-springboot/src/main/doc/modules/webboot-springboot/pages/about.adoc
similarity index 100%
rename from core/webboot-springboot/src/main/doc/modules/runtime-spring/pages/about.adoc
rename to core/webboot-springboot/src/main/doc/modules/webboot-springboot/pages/about.adoc
diff --git a/core/webapp/src/main/doc/modules/runtime-web/pages/_attributes.adoc b/core/webboot-springboot/src/main/doc/modules/webboot-springboot/partials/_attributes.adoc
similarity index 100%
rename from core/webapp/src/main/doc/modules/runtime-web/pages/_attributes.adoc
rename to core/webboot-springboot/src/main/doc/modules/webboot-springboot/partials/_attributes.adoc
diff --git a/core/webboot-springboot/src/main/doc/modules/webboot-springboot/partials/module-nav.adoc b/core/webboot-springboot/src/main/doc/modules/webboot-springboot/partials/module-nav.adoc
new file mode 100644
index 0000000..614006d
--- /dev/null
+++ b/core/webboot-springboot/src/main/doc/modules/webboot-springboot/partials/module-nav.adoc
@@ -0,0 +1 @@
+* xref:core:webboot-springboot:about.adoc[SpringBoot]
diff --git a/core/webboot-springboot/src/main/java/org/apache/isis/webboot/springboot/IsisModuleSpringBoot.java b/core/webboot-springboot/src/main/java/org/apache/isis/webboot/springboot/IsisModuleSpringBoot.java
index d5525b1..c27f0cb 100644
--- a/core/webboot-springboot/src/main/java/org/apache/isis/webboot/springboot/IsisModuleSpringBoot.java
+++ b/core/webboot-springboot/src/main/java/org/apache/isis/webboot/springboot/IsisModuleSpringBoot.java
@@ -33,8 +33,8 @@ import org.springframework.core.annotation.AnnotationAwareOrderComparator;
 
 @Configuration
 @Import({
-    IsisBeanFactoryPostProcessorForSpring.class,
-    IsisModuleRuntimeServices.class,
+        // modules
+        IsisModuleRuntimeServices.class,
 })
 public class IsisModuleSpringBoot implements ApplicationContextAware {
 
diff --git a/examples/smoketests/src/test/java/org/apache/isis/testdomain/shiro/AbstractShiroTest.java b/examples/smoketests/src/test/java/org/apache/isis/testdomain/shiro/AbstractShiroTest.java
index 16ac96b..ad4a547 100644
--- a/examples/smoketests/src/test/java/org/apache/isis/testdomain/shiro/AbstractShiroTest.java
+++ b/examples/smoketests/src/test/java/org/apache/isis/testdomain/shiro/AbstractShiroTest.java
@@ -31,7 +31,7 @@ import org.apache.shiro.util.ThreadState;
 
 import org.apache.isis.applib.services.inject.ServiceInjector;
 import org.apache.isis.commons.internal.assertions._Assert;
-import org.apache.isis.security.shiro.WebModuleShiro.EnvironmentLoaderListenerForIsis;
+import org.apache.isis.security.shiro.webmodule.WebModuleShiro.EnvironmentLoaderListenerForIsis;
 
 import lombok.SneakyThrows;
 import lombok.val;
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 c62e74a..d90e177 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
@@ -38,7 +38,7 @@ import org.apache.isis.extensions.secman.encryption.jbcrypt.IsisModuleSecmanEncr
 import org.apache.isis.extensions.secman.jdo.IsisModuleSecmanPersistenceJdo;
 import org.apache.isis.extensions.secman.model.IsisModuleSecmanModel;
 import org.apache.isis.extensions.secman.shiro.IsisModuleSecmanRealmShiro;
-import org.apache.isis.security.shiro.WebModuleShiro;
+import org.apache.isis.security.shiro.webmodule.WebModuleShiro;
 import org.apache.isis.testdomain.Incubating;
 import org.apache.isis.testdomain.Smoketest;
 import org.apache.isis.testdomain.conf.Configuration_usingJdoAndShiro;
diff --git a/examples/smoketests/src/test/resources/shiro-ldap.ini b/examples/smoketests/src/test/resources/shiro-ldap.ini
index fef9ace..cb74870 100644
--- a/examples/smoketests/src/test/resources/shiro-ldap.ini
+++ b/examples/smoketests/src/test/resources/shiro-ldap.ini
@@ -19,14 +19,14 @@
 
 [main]
 
-contextFactory = org.apache.isis.security.shiro.IsisLdapContextFactory
+contextFactory = org.apache.isis.security.shiro.realm.ldap.IsisLdapContextFactory
 contextFactory.url = ldap://localhost:10389
 contextFactory.authenticationMechanism = simple
 contextFactory.systemAuthenticationMechanism = simple
 contextFactory.systemUsername = uid=admin,ou=system
 contextFactory.systemPassword = secret
 
-ldapRealm = org.apache.isis.security.shiro.IsisLdapRealm   
+ldapRealm = org.apache.isis.security.shiro.realm.ldap.IsisLdapRealm
 ldapRealm.contextFactory = $contextFactory
 
 ldapRealm.searchBase = ou=groups,o=mojo                    
diff --git a/examples/smoketests/src/test/resources/shiro-secman-ldap-cached.ini b/examples/smoketests/src/test/resources/shiro-secman-ldap-cached.ini
index f6ad033..3fa2ca3 100644
--- a/examples/smoketests/src/test/resources/shiro-secman-ldap-cached.ini
+++ b/examples/smoketests/src/test/resources/shiro-secman-ldap-cached.ini
@@ -19,14 +19,14 @@
 
 [main]
 
-contextFactory = org.apache.isis.security.shiro.IsisLdapContextFactory
+contextFactory = org.apache.isis.security.shiro.realm.ldap.IsisLdapContextFactory
 contextFactory.url = ldap://localhost:10389
 contextFactory.authenticationMechanism = simple
 contextFactory.systemAuthenticationMechanism = simple
 contextFactory.systemUsername = uid=admin,ou=system
 contextFactory.systemPassword = secret
 
-ldapRealm = org.apache.isis.security.shiro.IsisLdapRealm   
+ldapRealm = org.apache.isis.security.shiro.realm.ldap.IsisLdapRealm
 ldapRealm.contextFactory = $contextFactory
 ldapRealm.searchBase = ou=groups,o=mojo                    
 ldapRealm.groupObjectClass = groupOfUniqueNames            
diff --git a/examples/smoketests/src/test/resources/shiro-secman-ldap.ini b/examples/smoketests/src/test/resources/shiro-secman-ldap.ini
index 1429f38..77eaf1c 100644
--- a/examples/smoketests/src/test/resources/shiro-secman-ldap.ini
+++ b/examples/smoketests/src/test/resources/shiro-secman-ldap.ini
@@ -19,14 +19,14 @@
 
 [main]
 
-contextFactory = org.apache.isis.security.shiro.IsisLdapContextFactory
+contextFactory = org.apache.isis.security.shiro.realm.ldap.IsisLdapContextFactory
 contextFactory.url = ldap://localhost:10389
 contextFactory.authenticationMechanism = simple
 contextFactory.systemAuthenticationMechanism = simple
 contextFactory.systemUsername = uid=admin,ou=system
 contextFactory.systemPassword = secret
 
-ldapRealm = org.apache.isis.security.shiro.IsisLdapRealm   
+ldapRealm = org.apache.isis.security.shiro.realm.ldap.IsisLdapRealm
 ldapRealm.contextFactory = $contextFactory
 ldapRealm.searchBase = ou=groups,o=mojo                    
 ldapRealm.groupObjectClass = groupOfUniqueNames            
diff --git a/extensions/testing/fixtures/src/main/java/org/apache/isis/extensions/fixtures/IsisModuleExtFixtures.java b/extensions/testing/fixtures/src/main/java/org/apache/isis/extensions/fixtures/IsisModuleExtFixtures.java
index eff8264..1eb9fb5 100644
--- a/extensions/testing/fixtures/src/main/java/org/apache/isis/extensions/fixtures/IsisModuleExtFixtures.java
+++ b/extensions/testing/fixtures/src/main/java/org/apache/isis/extensions/fixtures/IsisModuleExtFixtures.java
@@ -29,13 +29,18 @@ import org.springframework.context.annotation.Import;
 
 @Configuration
 @Import({
-    IsisModuleExtSpring.class,
-    FixturesLifecycleService.class,
-    FixtureScripts.class,
-    ExecutionParametersService.class,
-    QueryResultsCacheControlInternal.class,
-    ModuleService.class,
-    ModuleFixtureService.class
+        // modules
+        IsisModuleExtSpring.class,
+
+        // @Service's
+        FixturesLifecycleService.class,
+        ExecutionParametersService.class,
+        ModuleService.class,
+        QueryResultsCacheControlInternal.class,
+
+        // @DomainService's
+        FixtureScripts.class,
+        ModuleFixtureService.class
 })
 public class IsisModuleExtFixtures {
 
diff --git a/mavendeps/webapp/pom.xml b/mavendeps/webapp/pom.xml
index fb04368..8f28ffd 100644
--- a/mavendeps/webapp/pom.xml
+++ b/mavendeps/webapp/pom.xml
@@ -92,11 +92,6 @@
 
 		<dependency>
 			<groupId>org.apache.isis.core</groupId>
-			<artifactId>isis-codegen-bytebuddy</artifactId>
-		</dependency>
-
-		<dependency>
-			<groupId>org.apache.isis.core</groupId>
 			<artifactId>isis-viewer-wicket-viewer</artifactId>
 		</dependency>