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/07 08:02:32 UTC

[isis] 02/05: ISIS-2216: adds @Named for isis extensions

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

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

commit 2f47acc4db334a4deecc95f933fabbb6fb1843f0
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Fri Dec 6 16:17:57 2019 +0000

    ISIS-2216: adds @Named for isis extensions
    
    Also ISIS-2217 : combined ModuleFixtureService and ModuleService, renamed to ModuleWithFixturesService
---
 .../spring/service/SpringBeansService.java         |  3 ++
 .../isis/extensions/excel/dom/ExcelService.java    |  2 +-
 .../fakedata/dom/services/FakeDataService.java     |  2 +-
 .../dom/webmodule/WebModuleH2Console.java          |  7 ++-
 .../PasswordEncryptionServiceUsingJBcrypt.java     |  6 +++
 .../permission/ApplicationPermissionFactory.java   |  8 +++-
 .../jdo/dom/role/ApplicationRoleFactory.java       |  8 +++-
 .../jdo/dom/tenancy/ApplicationTenancyFactory.java |  8 +++-
 .../jdo/dom/user/ApplicationUserFactory.java       |  8 +++-
 .../secman/jdo/seed/SeedSecurityModuleService.java |  5 ++-
 .../services/SecurityRealmServiceUsingShiro.java   |  4 ++
 .../fixtures/FixturesLifecycleService.java         |  5 +++
 .../extensions/fixtures/IsisModuleExtFixtures.java |  6 +--
 .../fixturescripts/ExecutionParametersService.java |  6 +++
 .../QueryResultsCacheControlInternal.java          |  6 +++
 .../fixtures/modules/ModuleFixtureService.java     | 52 ----------------------
 ...Service.java => ModuleWithFixturesService.java} | 36 ++++++++++++++-
 .../extensions/sse/services/SseServiceDefault.java |  5 ++-
 .../sse/webmodule/WebModuleServerSentEvents.java   |  7 ++-
 19 files changed, 116 insertions(+), 68 deletions(-)

diff --git a/extensions/core/spring/src/main/java/org/apache/isis/extensions/spring/service/SpringBeansService.java b/extensions/core/spring/src/main/java/org/apache/isis/extensions/spring/service/SpringBeansService.java
index 284cf16..532014e 100644
--- a/extensions/core/spring/src/main/java/org/apache/isis/extensions/spring/service/SpringBeansService.java
+++ b/extensions/core/spring/src/main/java/org/apache/isis/extensions/spring/service/SpringBeansService.java
@@ -23,6 +23,8 @@ import lombok.extern.log4j.Log4j2;
 
 import java.util.*;
 
+import javax.inject.Named;
+
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.ConfigurableApplicationContext;
 import org.springframework.stereotype.Service;
@@ -31,6 +33,7 @@ import org.springframework.stereotype.Service;
  * Borrowed from BeansEndpoint.
  */
 @Service
+@Named("isisExtSpring.SpringBeansService")
 @Log4j2
 public class SpringBeansService {
 
diff --git a/extensions/lib/excel/impl/src/main/java/org/apache/isis/extensions/excel/dom/ExcelService.java b/extensions/lib/excel/impl/src/main/java/org/apache/isis/extensions/excel/dom/ExcelService.java
index 802bf9f..237e20c 100644
--- a/extensions/lib/excel/impl/src/main/java/org/apache/isis/extensions/excel/dom/ExcelService.java
+++ b/extensions/lib/excel/impl/src/main/java/org/apache/isis/extensions/excel/dom/ExcelService.java
@@ -26,7 +26,7 @@ import org.apache.isis.extensions.excel.dom.util.Mode;
 import org.springframework.stereotype.Service;
 
 @Service
-@Named("isisExtExcel.excelService")
+@Named("isisExtExcel.ExcelService")
 @Log4j2
 public class ExcelService {
 
diff --git a/extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/services/FakeDataService.java b/extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/services/FakeDataService.java
index adefcc0..37fc981 100644
--- a/extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/services/FakeDataService.java
+++ b/extensions/lib/fakedata/impl/src/main/java/org/apache/isis/extensions/fakedata/dom/services/FakeDataService.java
@@ -19,7 +19,7 @@ import org.apache.isis.applib.services.repository.RepositoryService;
 import org.springframework.stereotype.Service;
 
 @Service
-@Named("isisExtFakeData.fakeDataService")
+@Named("isisExtFakeData.FakeDataService")
 @Log4j2
 public class FakeDataService {
 
diff --git a/extensions/persistence/h2console/src/main/java/org/apache/isis/extensions/h2console/dom/webmodule/WebModuleH2Console.java b/extensions/persistence/h2console/src/main/java/org/apache/isis/extensions/h2console/dom/webmodule/WebModuleH2Console.java
index 2ede2ed..9d0132a 100644
--- a/extensions/persistence/h2console/src/main/java/org/apache/isis/extensions/h2console/dom/webmodule/WebModuleH2Console.java
+++ b/extensions/persistence/h2console/src/main/java/org/apache/isis/extensions/h2console/dom/webmodule/WebModuleH2Console.java
@@ -19,6 +19,7 @@
 package org.apache.isis.extensions.h2console.dom.webmodule;
 
 import javax.inject.Inject;
+import javax.inject.Named;
 import javax.servlet.ServletContext;
 import javax.servlet.ServletContextListener;
 import javax.servlet.ServletException;
@@ -35,9 +36,13 @@ import org.apache.isis.webapp.modules.WebModule;
 import org.apache.isis.webapp.modules.WebModuleContext;
 
 import lombok.Getter;
+import lombok.extern.log4j.Log4j2;
 import lombok.val;
 
-@Service @Order(0)
+@Service
+@Named("isisExtH2Console.WebModuleH2Console")
+@Order(0)
+@Log4j2
 public class WebModuleH2Console implements WebModule  {
 
     private final static String SERVLET_NAME = "H2Console";
diff --git a/extensions/security/secman/encryption-jbcrypt/src/main/java/org/apache/isis/extensions/secman/encryption/jbcrypt/services/PasswordEncryptionServiceUsingJBcrypt.java b/extensions/security/secman/encryption-jbcrypt/src/main/java/org/apache/isis/extensions/secman/encryption/jbcrypt/services/PasswordEncryptionServiceUsingJBcrypt.java
index f1f7e1d..754afc2 100644
--- a/extensions/security/secman/encryption-jbcrypt/src/main/java/org/apache/isis/extensions/secman/encryption/jbcrypt/services/PasswordEncryptionServiceUsingJBcrypt.java
+++ b/extensions/security/secman/encryption-jbcrypt/src/main/java/org/apache/isis/extensions/secman/encryption/jbcrypt/services/PasswordEncryptionServiceUsingJBcrypt.java
@@ -18,12 +18,18 @@
  */
 package org.apache.isis.extensions.secman.encryption.jbcrypt.services;
 
+import lombok.extern.log4j.Log4j2;
+
+import javax.inject.Named;
+
 import org.mindrot.jbcrypt.BCrypt;
 import org.springframework.stereotype.Service;
 
 import org.apache.isis.extensions.secman.api.encryption.PasswordEncryptionService;
 
 @Service
+@Named("isisExtSecman.PasswordEncryptionServiceUsingJBcrypt")
+@Log4j2
 public class PasswordEncryptionServiceUsingJBcrypt implements PasswordEncryptionService {
 
     private String salt;
diff --git a/extensions/security/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/dom/permission/ApplicationPermissionFactory.java b/extensions/security/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/dom/permission/ApplicationPermissionFactory.java
index 52293bb..cef4df4 100644
--- a/extensions/security/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/dom/permission/ApplicationPermissionFactory.java
+++ b/extensions/security/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/dom/permission/ApplicationPermissionFactory.java
@@ -19,7 +19,10 @@
 package org.apache.isis.extensions.secman.jdo.dom.permission;
 
 
+import lombok.extern.log4j.Log4j2;
+
 import javax.inject.Inject;
+import javax.inject.Named;
 
 import org.springframework.core.Ordered;
 import org.springframework.core.annotation.Order;
@@ -56,7 +59,10 @@ public interface ApplicationPermissionFactory {
 
     public ApplicationPermission newApplicationPermission();
 
-    @Service @Order(Ordered.LOWEST_PRECEDENCE)
+    @Service
+    @Named("isisExtSecman.ApplicationPermissionFactory.Default")
+    @Order(Ordered.LOWEST_PRECEDENCE)
+    @Log4j2
     public static class Default implements ApplicationPermissionFactory {
 
         @Override
diff --git a/extensions/security/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/dom/role/ApplicationRoleFactory.java b/extensions/security/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/dom/role/ApplicationRoleFactory.java
index 8544c48..230d4e4 100644
--- a/extensions/security/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/dom/role/ApplicationRoleFactory.java
+++ b/extensions/security/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/dom/role/ApplicationRoleFactory.java
@@ -18,7 +18,10 @@
  */
 package org.apache.isis.extensions.secman.jdo.dom.role;
 
+import lombok.extern.log4j.Log4j2;
+
 import javax.inject.Inject;
+import javax.inject.Named;
 
 import org.springframework.core.Ordered;
 import org.springframework.core.annotation.Order;
@@ -55,7 +58,10 @@ public interface ApplicationRoleFactory {
 
     public ApplicationRole newApplicationRole();
 
-    @Service @Order(Ordered.LOWEST_PRECEDENCE)
+    @Service
+    @Named("isisExtSecman.ApplicationRoleFactory.Default")
+    @Order(Ordered.LOWEST_PRECEDENCE)
+    @Log4j2
     public static class Default implements ApplicationRoleFactory {
 
         @Override
diff --git a/extensions/security/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/dom/tenancy/ApplicationTenancyFactory.java b/extensions/security/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/dom/tenancy/ApplicationTenancyFactory.java
index d8be332..9e7759c 100644
--- a/extensions/security/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/dom/tenancy/ApplicationTenancyFactory.java
+++ b/extensions/security/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/dom/tenancy/ApplicationTenancyFactory.java
@@ -18,7 +18,10 @@
  */
 package org.apache.isis.extensions.secman.jdo.dom.tenancy;
 
+import lombok.extern.log4j.Log4j2;
+
 import javax.inject.Inject;
+import javax.inject.Named;
 
 import org.springframework.core.Ordered;
 import org.springframework.core.annotation.Order;
@@ -55,7 +58,10 @@ public interface ApplicationTenancyFactory {
 
     public ApplicationTenancy newApplicationTenancy();
 
-    @Service @Order(Ordered.LOWEST_PRECEDENCE)
+    @Service
+    @Named("isisExtSecman.ApplicationTenancyFactory.Default")
+    @Order(Ordered.LOWEST_PRECEDENCE)
+    @Log4j2
     public static class Default implements ApplicationTenancyFactory {
 
         @Override
diff --git a/extensions/security/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/dom/user/ApplicationUserFactory.java b/extensions/security/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/dom/user/ApplicationUserFactory.java
index 3a9664b..fcb3121 100644
--- a/extensions/security/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/dom/user/ApplicationUserFactory.java
+++ b/extensions/security/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/dom/user/ApplicationUserFactory.java
@@ -18,7 +18,10 @@
  */
 package org.apache.isis.extensions.secman.jdo.dom.user;
 
+import lombok.extern.log4j.Log4j2;
+
 import javax.inject.Inject;
+import javax.inject.Named;
 
 import org.springframework.core.Ordered;
 import org.springframework.core.annotation.Order;
@@ -55,7 +58,10 @@ public interface ApplicationUserFactory {
 
     public ApplicationUser newApplicationUser();
 
-    @Service @Order(Ordered.LOWEST_PRECEDENCE)
+    @Service
+    @Named("isisExtSecman.ApplicationUserFactory.Default")
+    @Order(Ordered.LOWEST_PRECEDENCE)
+    @Log4j2
     public static class Default implements ApplicationUserFactory {
 
         @Override
diff --git a/extensions/security/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/seed/SeedSecurityModuleService.java b/extensions/security/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/seed/SeedSecurityModuleService.java
index 353fddc..a542e92 100644
--- a/extensions/security/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/seed/SeedSecurityModuleService.java
+++ b/extensions/security/secman/persistence-jdo/src/main/java/org/apache/isis/extensions/secman/jdo/seed/SeedSecurityModuleService.java
@@ -19,6 +19,7 @@
 package org.apache.isis.extensions.secman.jdo.seed;
 
 import javax.inject.Inject;
+import javax.inject.Named;
 
 import org.springframework.context.event.EventListener;
 import org.springframework.stereotype.Service;
@@ -30,7 +31,9 @@ import org.apache.isis.runtime.system.context.session.AppLifecycleEvent;
 import lombok.val;
 import lombok.extern.log4j.Log4j2;
 
-@Service @Log4j2
+@Service
+@Named("isisExtSecman.SeedSecurityModuleService")
+@Log4j2
 public class SeedSecurityModuleService {
 
     @Inject private FixtureScripts fixtureScripts;
diff --git a/extensions/security/secman/realm-shiro/src/main/java/org/apache/isis/extensions/secman/shiro/services/SecurityRealmServiceUsingShiro.java b/extensions/security/secman/realm-shiro/src/main/java/org/apache/isis/extensions/secman/shiro/services/SecurityRealmServiceUsingShiro.java
index 02dea6c..a7605d2 100644
--- a/extensions/security/secman/realm-shiro/src/main/java/org/apache/isis/extensions/secman/shiro/services/SecurityRealmServiceUsingShiro.java
+++ b/extensions/security/secman/realm-shiro/src/main/java/org/apache/isis/extensions/secman/shiro/services/SecurityRealmServiceUsingShiro.java
@@ -19,6 +19,7 @@
 package org.apache.isis.extensions.secman.shiro.services;
 
 import javax.inject.Inject;
+import javax.inject.Named;
 
 import org.apache.isis.extensions.secman.shiro.util.ShiroUtils;
 import org.springframework.stereotype.Service;
@@ -27,9 +28,12 @@ import org.apache.isis.applib.services.inject.ServiceInjector;
 import org.apache.isis.extensions.secman.api.SecurityRealm;
 import org.apache.isis.extensions.secman.api.SecurityRealmService;
 
+import lombok.extern.log4j.Log4j2;
 import lombok.val;
 
 @Service
+@Named("isisExtSecman.SecurityRealmServiceUsingShiro")
+@Log4j2
 public class SecurityRealmServiceUsingShiro implements SecurityRealmService {
     
     @Inject private ServiceInjector serviceInjector;
diff --git a/extensions/testing/fixtures/src/main/java/org/apache/isis/extensions/fixtures/FixturesLifecycleService.java b/extensions/testing/fixtures/src/main/java/org/apache/isis/extensions/fixtures/FixturesLifecycleService.java
index 9da92de..2bf8292 100644
--- a/extensions/testing/fixtures/src/main/java/org/apache/isis/extensions/fixtures/FixturesLifecycleService.java
+++ b/extensions/testing/fixtures/src/main/java/org/apache/isis/extensions/fixtures/FixturesLifecycleService.java
@@ -18,9 +18,12 @@
  */
 package org.apache.isis.extensions.fixtures;
 
+import lombok.extern.log4j.Log4j2;
+
 import javax.annotation.PostConstruct;
 import javax.annotation.PreDestroy;
 import javax.inject.Inject;
+import javax.inject.Named;
 
 import org.springframework.stereotype.Service;
 
@@ -31,6 +34,8 @@ import org.apache.isis.extensions.fixtures.legacy.FixtureClock;
 import org.apache.isis.runtime.system.session.IsisSessionFactory;
 
 @Service
+@Named("isisExtFixtures.FixturesLifecycleService")
+@Log4j2
 public class FixturesLifecycleService {
 
     @Inject IsisSessionFactory isisSessionFactory; // depends on  
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 1eb9fb5..ab0a011 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
@@ -21,8 +21,7 @@ package org.apache.isis.extensions.fixtures;
 import org.apache.isis.extensions.fixtures.fixturescripts.ExecutionParametersService;
 import org.apache.isis.extensions.fixtures.fixturescripts.FixtureScripts;
 import org.apache.isis.extensions.fixtures.legacy.queryresultscache.QueryResultsCacheControlInternal;
-import org.apache.isis.extensions.fixtures.modules.ModuleFixtureService;
-import org.apache.isis.extensions.fixtures.modules.ModuleService;
+import org.apache.isis.extensions.fixtures.modules.ModuleWithFixturesService;
 import org.apache.isis.extensions.spring.IsisModuleExtSpring;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.context.annotation.Import;
@@ -35,12 +34,11 @@ import org.springframework.context.annotation.Import;
         // @Service's
         FixturesLifecycleService.class,
         ExecutionParametersService.class,
-        ModuleService.class,
+        ModuleWithFixturesService.class,
         QueryResultsCacheControlInternal.class,
 
         // @DomainService's
         FixtureScripts.class,
-        ModuleFixtureService.class
 })
 public class IsisModuleExtFixtures {
 
diff --git a/extensions/testing/fixtures/src/main/java/org/apache/isis/extensions/fixtures/fixturescripts/ExecutionParametersService.java b/extensions/testing/fixtures/src/main/java/org/apache/isis/extensions/fixtures/fixturescripts/ExecutionParametersService.java
index a6d65b2..05f92f3 100644
--- a/extensions/testing/fixtures/src/main/java/org/apache/isis/extensions/fixtures/fixturescripts/ExecutionParametersService.java
+++ b/extensions/testing/fixtures/src/main/java/org/apache/isis/extensions/fixtures/fixturescripts/ExecutionParametersService.java
@@ -18,6 +18,10 @@
  */
 package org.apache.isis.extensions.fixtures.fixturescripts;
 
+import lombok.extern.log4j.Log4j2;
+
+import javax.inject.Named;
+
 import org.springframework.stereotype.Service;
 
 
@@ -32,6 +36,8 @@ import org.springframework.stereotype.Service;
  * </p>
  */
 @Service
+@Named("isisExtFixtures.ExecutionParametersService")
+@Log4j2
 public class ExecutionParametersService {
 
     public ExecutionParameters newExecutionParameters(final String parameters) {
diff --git a/extensions/testing/fixtures/src/main/java/org/apache/isis/extensions/fixtures/legacy/queryresultscache/QueryResultsCacheControlInternal.java b/extensions/testing/fixtures/src/main/java/org/apache/isis/extensions/fixtures/legacy/queryresultscache/QueryResultsCacheControlInternal.java
index f62fde9..b2dd303 100644
--- a/extensions/testing/fixtures/src/main/java/org/apache/isis/extensions/fixtures/legacy/queryresultscache/QueryResultsCacheControlInternal.java
+++ b/extensions/testing/fixtures/src/main/java/org/apache/isis/extensions/fixtures/legacy/queryresultscache/QueryResultsCacheControlInternal.java
@@ -18,6 +18,10 @@
  */
 package org.apache.isis.extensions.fixtures.legacy.queryresultscache;
 
+import lombok.extern.log4j.Log4j2;
+
+import javax.inject.Named;
+
 import org.springframework.context.event.EventListener;
 import org.springframework.stereotype.Service;
 
@@ -31,6 +35,8 @@ import org.apache.isis.extensions.fixtures.events.FixturesInstallingEvent;
  * In separate class because {@link QueryResultsCache} itself is request-scoped
  */
 @Service
+@Named("isisExtFixtures.QueryResultsCacheControlInternal")
+@Log4j2
 public class QueryResultsCacheControlInternal implements QueryResultCacheControl {
 
     @EventListener(FixturesInstallingEvent.class)
diff --git a/extensions/testing/fixtures/src/main/java/org/apache/isis/extensions/fixtures/modules/ModuleFixtureService.java b/extensions/testing/fixtures/src/main/java/org/apache/isis/extensions/fixtures/modules/ModuleFixtureService.java
deleted file mode 100644
index 24a080f..0000000
--- a/extensions/testing/fixtures/src/main/java/org/apache/isis/extensions/fixtures/modules/ModuleFixtureService.java
+++ /dev/null
@@ -1,52 +0,0 @@
-package org.apache.isis.extensions.fixtures.modules;
-
-import lombok.extern.log4j.Log4j2;
-
-import java.util.Collections;
-import java.util.List;
-
-import javax.inject.Named;
-
-import org.apache.isis.extensions.fixtures.fixturescripts.FixtureScript;
-import org.springframework.stereotype.Service;
-
-@Service
-@Named("isisExtFixtures.moduleFixtureService")
-@Log4j2
-public class ModuleFixtureService {
-
-    private final ModuleService moduleService;
-
-    public ModuleFixtureService(final ModuleService moduleService) {
-        this.moduleService = moduleService;
-    }
-
-    public FixtureScript getRefDataSetupFixture() {
-        return new FixtureScript() {
-            @Override
-            protected void execute(final ExecutionContext executionContext) {
-                final List<ModuleService.ModuleWithFixturesDescriptor> descriptors = moduleService.modules();
-                executionContext.executeChildren(this,
-                        descriptors.stream()
-                        .map(ModuleService.ModuleWithFixturesDescriptor::getModule)
-                        .map(ModuleWithFixtures::getRefDataSetupFixture));
-            }
-        };
-    }
-
-    public FixtureScript getTeardownFixture() {
-        return new FixtureScript() {
-            @Override
-            protected void execute(final ExecutionContext executionContext) {
-                final List<ModuleService.ModuleWithFixturesDescriptor> descriptors = moduleService.modules();
-                Collections.reverse(descriptors);
-                executionContext.executeChildren(this,
-                        descriptors.stream()
-                            .map(ModuleService.ModuleWithFixturesDescriptor::getModule)
-                            .map(ModuleWithFixtures::getTeardownFixture));
-            }
-
-        };
-    }
-
-}
diff --git a/extensions/testing/fixtures/src/main/java/org/apache/isis/extensions/fixtures/modules/ModuleService.java b/extensions/testing/fixtures/src/main/java/org/apache/isis/extensions/fixtures/modules/ModuleWithFixturesService.java
similarity index 79%
rename from extensions/testing/fixtures/src/main/java/org/apache/isis/extensions/fixtures/modules/ModuleService.java
rename to extensions/testing/fixtures/src/main/java/org/apache/isis/extensions/fixtures/modules/ModuleWithFixturesService.java
index 6eb7b6f..5a674c0 100644
--- a/extensions/testing/fixtures/src/main/java/org/apache/isis/extensions/fixtures/modules/ModuleService.java
+++ b/extensions/testing/fixtures/src/main/java/org/apache/isis/extensions/fixtures/modules/ModuleWithFixturesService.java
@@ -26,6 +26,7 @@ import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.Map;
 
+import org.apache.isis.extensions.fixtures.fixturescripts.FixtureScript;
 import org.springframework.context.ConfigurableApplicationContext;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.context.annotation.Import;
@@ -42,16 +43,47 @@ import lombok.Data;
 import lombok.extern.log4j.Log4j2;
 import lombok.val;
 
+import javax.inject.Named;
+
 @Service
+@Named("isisExtFixtures.ModuleService")
 @Log4j2
-public class ModuleService {
+public class ModuleWithFixturesService {
 
     private final SpringBeansService springBeansService;
 
-    public ModuleService(final SpringBeansService springBeansService) {
+    public ModuleWithFixturesService(final SpringBeansService springBeansService) {
         this.springBeansService = springBeansService;
     }
 
+    public FixtureScript getRefDataSetupFixture() {
+        return new FixtureScript() {
+            @Override
+            protected void execute(final ExecutionContext executionContext) {
+                final List<ModuleWithFixturesService.ModuleWithFixturesDescriptor> descriptors = modules();
+                executionContext.executeChildren(this,
+                        descriptors.stream()
+                                .map(ModuleWithFixturesService.ModuleWithFixturesDescriptor::getModule)
+                                .map(ModuleWithFixtures::getRefDataSetupFixture));
+            }
+        };
+    }
+
+    public FixtureScript getTeardownFixture() {
+        return new FixtureScript() {
+            @Override
+            protected void execute(final ExecutionContext executionContext) {
+                final List<ModuleWithFixturesService.ModuleWithFixturesDescriptor> descriptors = modules();
+                Collections.reverse(descriptors);
+                executionContext.executeChildren(this,
+                        descriptors.stream()
+                                .map(ModuleWithFixturesService.ModuleWithFixturesDescriptor::getModule)
+                                .map(ModuleWithFixtures::getTeardownFixture));
+            }
+
+        };
+    }
+
     public List<ModuleWithFixturesDescriptor> modules() {
 
         final List<ModuleWithFixturesDescriptor> descriptors = new ArrayList<>();
diff --git a/extensions/vw/sse/src/main/java/org/apache/isis/extensions/sse/services/SseServiceDefault.java b/extensions/vw/sse/src/main/java/org/apache/isis/extensions/sse/services/SseServiceDefault.java
index b1c556d..201221f 100644
--- a/extensions/vw/sse/src/main/java/org/apache/isis/extensions/sse/services/SseServiceDefault.java
+++ b/extensions/vw/sse/src/main/java/org/apache/isis/extensions/sse/services/SseServiceDefault.java
@@ -32,6 +32,7 @@ import java.util.concurrent.ForkJoinPool;
 import java.util.function.Predicate;
 
 import javax.inject.Inject;
+import javax.inject.Named;
 
 import org.springframework.stereotype.Service;
 
@@ -58,7 +59,9 @@ import lombok.extern.log4j.Log4j2;
  * @since 2.0
  *
  */
-@Service @Log4j2
+@Service
+@Named("isisExtSse.SseServiceDefault")
+@Log4j2
 public class SseServiceDefault implements SseService {
 
     @Inject TransactionService transactionService;
diff --git a/extensions/vw/sse/src/main/java/org/apache/isis/extensions/sse/webmodule/WebModuleServerSentEvents.java b/extensions/vw/sse/src/main/java/org/apache/isis/extensions/sse/webmodule/WebModuleServerSentEvents.java
index c77da4b..7e5d26b 100644
--- a/extensions/vw/sse/src/main/java/org/apache/isis/extensions/sse/webmodule/WebModuleServerSentEvents.java
+++ b/extensions/vw/sse/src/main/java/org/apache/isis/extensions/sse/webmodule/WebModuleServerSentEvents.java
@@ -18,6 +18,7 @@
  */
 package org.apache.isis.extensions.sse.webmodule;
 
+import javax.inject.Named;
 import javax.servlet.ServletContext;
 import javax.servlet.ServletContextListener;
 import javax.servlet.ServletException;
@@ -28,6 +29,7 @@ import org.springframework.stereotype.Service;
 import org.apache.isis.webapp.modules.WebModule;
 import org.apache.isis.webapp.modules.WebModuleContext;
 
+import lombok.extern.log4j.Log4j2;
 import lombok.val;
 
 /**
@@ -35,7 +37,10 @@ import lombok.val;
  * 
  * @since 2.0
  */
-@Service @Order(-99)
+@Service
+@Named("isisExtSse.WebModuleServerSentEvents")
+@Order(-99)
+@Log4j2
 public final class WebModuleServerSentEvents implements WebModule  {
 
     private final static String SERVLET_NAME = "ServerSentEventsServlet";