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:34 UTC
[isis] 04/05: ISIS-2216: adds @Qualifier to all services.
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 7d0021e5ea6bcf5a486dfebb0fb38d213466690c
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Sat Dec 7 07:42:38 2019 +0000
ISIS-2216: adds @Qualifier to all services.
Also renames some services:
- AuditingServiceInternal (to AuditerDispatchService)
- PublishingServiceInternal (to PublisherDispatchService)
- AuthenticationManagerStandard (to AuthenticationManagerDefault)
- AuthorizationManagerStandard (to AuthorizationManagerDefault)
---
.../org/apache/isis/applib/IsisModuleApplib.java | 4 +--
.../isis/applib/annotation/OrderPrecedence.java | 2 +-
.../isis/applib/mixins/dto/DtoMappingHelper.java | 6 ++--
.../isis/applib/services/clock/ClockService.java | 4 ++-
.../applib/services/command/CommandContext.java | 5 +--
.../ContentMappingServiceForCommandDto.java | 4 ++-
.../ContentMappingServiceForCommandsDto.java | 2 ++
.../applib/services/iactn/InteractionContext.java | 4 ++-
.../applib/services/jaxb/JaxbServiceDefault.java | 4 ++-
.../services/publish/PublisherServiceLogging.java | 2 ++
...Internal.java => QueryResultsCacheDefault.java} | 4 ++-
.../applib/services/scratchpad/Scratchpad.java | 2 ++
.../services/tablecol/TableColumnOrderService.java | 2 ++
.../UrlEncodingServiceWithCompression.java | 6 ++--
.../environment/IsisSystemEnvironment.java | 2 ++
.../config/viewer/wicket/WebAppConfiguration.java | 4 ++-
...ctionInvocationFacetForDomainEventAbstract.java | 6 ++--
.../autocomplete/AutoCompleteFacetAbstract.java | 8 ++---
...tySetterOrClearFacetForDomainEventAbstract.java | 6 ++--
.../objectmanager/ObjectManagerDefault.java | 2 ++
.../metamodel/services/ServiceInjectorDefault.java | 2 ++
.../appfeat/ApplicationFeatureFactory.java | 4 ++-
.../services/events/MetamodelEventService.java | 5 +--
.../exceprecog/ExceptionRecognizerDocDefault.java | 7 ++--
.../services/grid/GridLoaderServiceDefault.java | 6 ++--
.../services/grid/GridReaderUsingJaxb.java | 4 ++-
.../services/grid/GridServiceDefault.java | 5 +--
.../grid/bootstrap3/GridSystemServiceBS3.java | 5 +--
.../services/layout/LayoutServiceDefault.java | 4 ++-
.../metamodel/MetaModelServiceDefault.java | 4 ++-
...Internal.java => PublisherDispatchService.java} | 2 +-
.../services/registry/ServiceRegistryDefault.java | 9 ++---
.../services/swagger/SwaggerServiceDefault.java | 4 ++-
.../services/title/TitleServiceDefault.java | 4 ++-
.../services/user/UserServiceDefault.java | 10 +++---
.../specloader/InjectorMethodEvaluatorDefault.java | 2 ++
.../specloader/ProgrammingModelServiceDefault.java | 4 ++-
.../specloader/SpecificationLoaderDefault.java | 2 ++
.../specimpl/OneToManyAssociationMixedIn.java | 8 ++---
.../specimpl/OneToOneAssociationMixedIn.java | 8 ++---
.../datanucleus/DataNucleusSettings.java | 2 ++
.../service/JdoPersistenceLifecycleService.java | 4 ++-
...eptionRecognizerCompositeForJdoObjectStore.java | 6 ++--
.../datanucleus5/jdosupport/IsisJdoSupportDN5.java | 4 ++-
.../metrics/MetricsServiceDefault.java | 11 +++---
.../persistence/IsisPersistenceSessionJdoBase.java | 7 ++--
.../IsisPlatformTransactionManagerForJdo.java | 4 +--
.../persistence/IsisTransactionJdo.java | 16 ++++-----
.../persistence/PersistenceSessionFactory5.java | 4 ++-
.../services/IsisModuleRuntimeServices.java | 8 ++---
.../auth/AuthenticationSessionProviderDefault.java | 4 ++-
...ndard.java => AuthorizationManagerDefault.java} | 8 +++--
.../background/CommandExecutorServiceDefault.java | 4 ++-
.../bookmarks/BookmarkServiceInternalDefault.java | 4 ++-
.../command/CommandDtoServiceInternalDefault.java | 6 ++--
.../services/command/CommandServiceDefault.java | 4 ++-
.../confmenu/ConfigurationViewServiceDefault.java | 7 ++--
.../services/email/EmailServiceDefault.java | 6 ++--
.../services/eventbus/EventBusServiceSpring.java | 4 ++-
.../services/factory/FactoryServiceDefault.java | 4 ++-
.../homepage/HomePageResolverServiceDefault.java | 4 ++-
.../services/i18n/po/TranslationServicePo.java | 4 ++-
.../ixn/InteractionDtoServiceInternalDefault.java | 6 ++--
.../menubars/MenuBarsLoaderServiceDefault.java | 4 ++-
.../menubars/bootstrap3/MenuBarsServiceBS3.java | 4 ++-
.../services/message/MessageServiceDefault.java | 4 ++-
...t.java => PublisherDispatchServiceDefault.java} | 17 ++++-----
.../sessmgmt/SessionManagementServiceDefault.java | 4 ++-
.../runtime/services/sudo/SudoServiceDefault.java | 6 ++--
.../userprof/UserProfileServiceDefault.java | 6 ++--
.../userreg/EmailNotificationServiceDefault.java | 6 ++--
.../services/wrapper/WrapperFactoryDefault.java | 4 ++-
.../services/xactn/TransactionServiceSpring.java | 4 ++-
.../xmlsnapshot/XmlSnapshotServiceDefault.java | 4 ++-
.../org/apache/isis/runtime/IsisModuleRuntime.java | 8 ++---
.../context/session/RuntimeEventService.java | 4 ++-
.../events/PersistenceEventService.java | 4 ++-
.../persistence/events/TimestampService.java | 5 +--
.../system/session/IsisSessionFactoryDefault.java | 4 ++-
...ceInternal.java => AuditerDispatchService.java} | 10 +++---
...iceInternal.java => ChangedObjectsService.java} | 6 ++--
.../system/transaction/PreAndPostValues.java | 4 +--
.../isis/security/api/IsisModuleSecurityApi.java | 4 +--
.../api/authentication/AuthenticationSession.java | 4 +--
.../AuthenticationRequestLogonFixture.java | 4 +--
...dard.java => AuthenticationManagerDefault.java} | 16 +++++----
...rdAuthenticationManager_AuthenticationTest.java | 6 ++--
...rdAuthenticationManager_AuthenticatorsTest.java | 8 ++---
.../keycloak/webmodule/WebModuleKeycloak.java | 4 +--
.../security/shiro/webmodule/WebModuleShiro.java | 3 +-
.../rendering/domainobjects/JsonValueEncoder.java | 2 ++
.../RepresentationServiceContentNegotiator.java | 42 +++++++---------------
.../acceptheader/AcceptHeaderServiceForRest.java | 6 ++--
...entNegotiationServiceForRestfulObjectsV1_0.java | 6 ++--
.../ContentNegotiationServiceOrgApacheIsisV1.java | 7 ++--
.../ContentNegotiationServiceXRoDomainType.java | 5 +--
.../viewer/webmodule/WebModuleRestfulObjects.java | 6 ++--
.../themepicker/IsisWicketThemeSupportDefault.java | 4 ++-
.../ComponentFactoryRegistrarDefault.java | 4 ++-
.../ComponentFactoryRegistryDefault.java | 4 ++-
.../registries/pages/PageClassListDefault.java | 4 ++-
.../registries/pages/PageClassRegistryDefault.java | 4 ++-
.../pages/PageNavigationServiceDefault.java | 4 ++-
.../viewer/services/BookmarkUiServiceWicket.java | 3 +-
.../viewer/services/DeepLinkServiceWicket.java | 3 +-
.../services/HintStoreUsingWicketSession.java | 3 +-
.../services/ImageResourceCacheClassPath.java | 4 ++-
.../viewer/services/LocaleProviderWicket.java | 5 +--
.../services/TranslationsResolverWicket.java | 5 +--
.../services/WicketViewerSettingsDefault.java | 4 ++-
.../mementos/ObjectMementoServiceWicket.java | 8 ++---
.../wicket/viewer/webmodule/WebModuleWicket.java | 5 +--
.../logonlog/WebModuleLogOnExceptionLogger.java | 6 ++--
.../templresources/WebModuleTemplateResources.java | 4 ++-
.../isis/testdomain/rest/RestEndpointService.java | 3 +-
.../testdomain/bootstrapping/builtin-IsisBoot.list | 2 +-
.../bootstrapping/builtin-domain-services.list | 2 +-
.../bootstrapping/builtin-requestscoped.list | 2 +-
.../bootstrapping/builtin-singleton.list | 2 +-
.../spring/service/SpringBeansService.java | 5 +++
.../dom/services/calendar/CalendarService.java | 9 +++--
.../isis/extensions/excel/dom/ExcelService.java | 7 ++++
.../fakedata/dom/services/FakeDataService.java | 9 +++--
.../dom/webmodule/WebModuleH2Console.java | 5 ++-
.../PasswordEncryptionServiceUsingJBcrypt.java | 5 +++
.../permission/ApplicationPermissionFactory.java | 8 +++--
.../jdo/dom/role/ApplicationRoleFactory.java | 7 +++-
.../jdo/dom/tenancy/ApplicationTenancyFactory.java | 7 +++-
.../jdo/dom/user/ApplicationUserFactory.java | 7 +++-
.../secman/jdo/seed/SeedSecurityModuleService.java | 6 ++++
.../services/SecurityRealmServiceUsingShiro.java | 5 +++
.../fixtures/FixturesLifecycleService.java | 8 ++++-
.../extensions/fixtures/IsisModuleExtFixtures.java | 4 +--
.../fixturescripts/ExecutionParametersService.java | 7 ++++
...l.java => QueryResultsCacheControlDefault.java} | 11 ++++--
.../modules/ModuleWithFixturesService.java | 7 ++++
.../extensions/sse/services/SseServiceDefault.java | 8 ++++-
.../sse/webmodule/WebModuleServerSentEvents.java | 5 ++-
.../isis/legacy/applib/DomainObjectContainer.java | 9 +++--
139 files changed, 488 insertions(+), 276 deletions(-)
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 6684a08..5f16632 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
@@ -40,7 +40,7 @@ import org.apache.isis.applib.services.jaxb.JaxbServiceDefault;
import org.apache.isis.applib.services.layout.LayoutServiceMenu;
import org.apache.isis.applib.services.metamodel.MetaModelServicesMenu;
import org.apache.isis.applib.services.publish.PublisherServiceLogging;
-import org.apache.isis.applib.services.queryresultscache.QueryResultsCacheInternal;
+import org.apache.isis.applib.services.queryresultscache.QueryResultsCacheDefault;
import org.apache.isis.applib.services.scratchpad.Scratchpad;
import org.apache.isis.applib.services.swagger.SwaggerServiceMenu;
import org.apache.isis.applib.services.tablecol.TableColumnOrderService;
@@ -82,7 +82,7 @@ import org.springframework.context.annotation.Import;
InteractionContext.class,
JaxbServiceDefault.class,
PublisherServiceLogging.class,
- QueryResultsCacheInternal.class,
+ QueryResultsCacheDefault.class,
Scratchpad.class,
TableColumnOrderService.Default.class,
UrlEncodingServiceWithCompression.class,
diff --git a/core/applib/src/main/java/org/apache/isis/applib/annotation/OrderPrecedence.java b/core/applib/src/main/java/org/apache/isis/applib/annotation/OrderPrecedence.java
index c305158..5eeb3a2 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/annotation/OrderPrecedence.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/annotation/OrderPrecedence.java
@@ -49,7 +49,7 @@ public class OrderPrecedence {
/**
* Used by framework services that could be overridden by application code (though not commonly).
*/
- public static final int DEFAULT = 0;
+ public static final int MIDPOINT = 0;
/**
* Used by framework services that are expected to be overridden by application code, or that act as a fallback.
*/
diff --git a/core/applib/src/main/java/org/apache/isis/applib/mixins/dto/DtoMappingHelper.java b/core/applib/src/main/java/org/apache/isis/applib/mixins/dto/DtoMappingHelper.java
index ecdc02f..301502a 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/mixins/dto/DtoMappingHelper.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/mixins/dto/DtoMappingHelper.java
@@ -23,22 +23,22 @@ import lombok.extern.log4j.Log4j2;
import javax.inject.Inject;
import javax.inject.Named;
-import org.apache.isis.applib.annotation.DomainService;
-import org.apache.isis.applib.annotation.NatureOfService;
import org.apache.isis.applib.annotation.OrderPrecedence;
import org.apache.isis.applib.services.bookmark.Bookmark;
import org.apache.isis.applib.services.bookmark.BookmarkService;
import org.apache.isis.commons.internal.exceptions._Exceptions;
import org.apache.isis.schema.common.v1.BookmarkObjectState;
import org.apache.isis.schema.common.v1.OidDto;
+import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Primary;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Service;
@Service
@Named("isisApplib.DtoMappingHelper")
-@Order(OrderPrecedence.DEFAULT)
+@Order(OrderPrecedence.MIDPOINT)
@Primary
+@Qualifier("Default")
@Log4j2
public class DtoMappingHelper {
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/clock/ClockService.java b/core/applib/src/main/java/org/apache/isis/applib/services/clock/ClockService.java
index 62ada44..c15abb9 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/clock/ClockService.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/clock/ClockService.java
@@ -28,6 +28,7 @@ import java.time.OffsetDateTime;
import javax.inject.Named;
import org.apache.isis.applib.annotation.OrderPrecedence;
+import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Primary;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Service;
@@ -42,8 +43,9 @@ import org.apache.isis.applib.clock.Clock;
*/
@Service
@Named("isisApplib.ClockService")
-@Order(OrderPrecedence.DEFAULT)
+@Order(OrderPrecedence.MIDPOINT)
@Primary
+@Qualifier("Default")
@Log4j2
public class ClockService {
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/command/CommandContext.java b/core/applib/src/main/java/org/apache/isis/applib/services/command/CommandContext.java
index 00d2d37..b1c759f 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/command/CommandContext.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/command/CommandContext.java
@@ -24,9 +24,9 @@ import javax.enterprise.context.RequestScoped;
import javax.inject.Named;
import org.apache.isis.applib.annotation.OrderPrecedence;
+import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Primary;
import org.springframework.core.annotation.Order;
-import org.springframework.stereotype.Component;
import org.springframework.stereotype.Service;
/**
@@ -39,8 +39,9 @@ import org.springframework.stereotype.Service;
@Service
@Named("isisApplib.CommandContext")
@RequestScoped
-@Order(OrderPrecedence.DEFAULT)
+@Order(OrderPrecedence.MIDPOINT)
@Primary
+@Qualifier("Default")
@Log4j2
public class CommandContext {
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/conmap/command/ContentMappingServiceForCommandDto.java b/core/applib/src/main/java/org/apache/isis/applib/services/conmap/command/ContentMappingServiceForCommandDto.java
index eae9098..35fcdea 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/conmap/command/ContentMappingServiceForCommandDto.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/conmap/command/ContentMappingServiceForCommandDto.java
@@ -28,6 +28,7 @@ import javax.inject.Named;
import javax.ws.rs.core.MediaType;
import org.apache.isis.applib.annotation.OrderPrecedence;
+import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Primary;
import org.springframework.core.annotation.Order;
@@ -50,6 +51,7 @@ import org.springframework.stereotype.Service;
@Named("isisApplib.ContentMappingServiceForCommandDto")
@Order(OrderPrecedence.HIGH)
@Primary
+@Qualifier("CommandDto")
@Log4j2
public class ContentMappingServiceForCommandDto implements ContentMappingService {
@@ -111,7 +113,7 @@ public class ContentMappingServiceForCommandDto implements ContentMappingService
// specify quite a high priority since custom processors will probably want to run after this one
// (but can choose to run before if they wish)
@Order(OrderPrecedence.HIGH)
- @Primary
+ @Qualifier("Command")
@Log4j2
public static class CopyOverFromCommand implements CommandDtoProcessorService {
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/conmap/command/ContentMappingServiceForCommandsDto.java b/core/applib/src/main/java/org/apache/isis/applib/services/conmap/command/ContentMappingServiceForCommandsDto.java
index af81fe8..88e65e2 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/conmap/command/ContentMappingServiceForCommandsDto.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/conmap/command/ContentMappingServiceForCommandsDto.java
@@ -32,6 +32,7 @@ import org.apache.isis.applib.annotation.OrderPrecedence;
import org.apache.isis.applib.services.conmap.ContentMappingService;
import org.apache.isis.schema.cmd.v1.CommandDto;
import org.apache.isis.schema.cmd.v1.CommandsDto;
+import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Primary;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Service;
@@ -40,6 +41,7 @@ import org.springframework.stereotype.Service;
@Named("isisApplib.ContentMappingServiceForCommandsDto")
@Order(OrderPrecedence.HIGH)
@Primary
+@Qualifier("CommandsDto")
@Log4j2
public class ContentMappingServiceForCommandsDto implements ContentMappingService {
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/iactn/InteractionContext.java b/core/applib/src/main/java/org/apache/isis/applib/services/iactn/InteractionContext.java
index 68e2591..e1bd3e9 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/iactn/InteractionContext.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/iactn/InteractionContext.java
@@ -24,6 +24,7 @@ import javax.enterprise.context.RequestScoped;
import javax.inject.Named;
import org.apache.isis.applib.annotation.OrderPrecedence;
+import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Primary;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Service;
@@ -39,8 +40,9 @@ import org.apache.isis.applib.annotation.DomainService;
*/
@Service
@Named("isisApplib.InteractionContext")
-@Order(OrderPrecedence.DEFAULT)
+@Order(OrderPrecedence.MIDPOINT)
@Primary
+@Qualifier("Default")
@RequestScoped
@Log4j2
public class InteractionContext {
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/jaxb/JaxbServiceDefault.java b/core/applib/src/main/java/org/apache/isis/applib/services/jaxb/JaxbServiceDefault.java
index 55185c7..3c85ad4 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/jaxb/JaxbServiceDefault.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/jaxb/JaxbServiceDefault.java
@@ -31,6 +31,7 @@ import javax.xml.bind.Unmarshaller;
import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
import org.apache.isis.applib.annotation.OrderPrecedence;
+import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Primary;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Service;
@@ -45,8 +46,9 @@ import org.apache.isis.applib.jaxbadapters.PersistentEntityAdapter;
@Service
@Named("isisApplib.JaxbServiceDefault")
-@Order(OrderPrecedence.DEFAULT)
+@Order(OrderPrecedence.MIDPOINT)
@Primary
+@Qualifier("Default")
@Log4j2
public class JaxbServiceDefault extends JaxbService.Simple {
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/publish/PublisherServiceLogging.java b/core/applib/src/main/java/org/apache/isis/applib/services/publish/PublisherServiceLogging.java
index 0fc2d2f..1153b98 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/publish/PublisherServiceLogging.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/publish/PublisherServiceLogging.java
@@ -19,6 +19,7 @@
package org.apache.isis.applib.services.publish;
import org.apache.isis.applib.annotation.OrderPrecedence;
+import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Primary;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Service;
@@ -37,6 +38,7 @@ import javax.inject.Named;
@Named("isisApplib.PublisherServiceLogging")
@Order(OrderPrecedence.LOW)
@Primary
+@Qualifier("Logging")
@Log4j2
public class PublisherServiceLogging implements PublisherService {
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/queryresultscache/QueryResultsCacheInternal.java b/core/applib/src/main/java/org/apache/isis/applib/services/queryresultscache/QueryResultsCacheDefault.java
similarity index 97%
rename from core/applib/src/main/java/org/apache/isis/applib/services/queryresultscache/QueryResultsCacheInternal.java
rename to core/applib/src/main/java/org/apache/isis/applib/services/queryresultscache/QueryResultsCacheDefault.java
index a578c6d..55456e6 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/queryresultscache/QueryResultsCacheInternal.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/queryresultscache/QueryResultsCacheDefault.java
@@ -33,6 +33,7 @@ import org.apache.isis.applib.services.WithTransactionScope;
import org.apache.isis.commons.internal.base._Casts;
import org.apache.isis.commons.internal.base._NullSafe;
import org.apache.isis.commons.internal.collections._Maps;
+import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Primary;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Service;
@@ -54,8 +55,9 @@ import lombok.extern.log4j.Log4j2;
@Order(OrderPrecedence.HIGH)
@Primary
@RequestScoped
+@Qualifier("Default")
@Log4j2
-public class QueryResultsCacheInternal implements QueryResultsCache, WithTransactionScope {
+public class QueryResultsCacheDefault implements QueryResultsCache, WithTransactionScope {
private final Map<Key, Value<?>> cache = _Maps.newHashMap();
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/scratchpad/Scratchpad.java b/core/applib/src/main/java/org/apache/isis/applib/services/scratchpad/Scratchpad.java
index a9ba852..9583093 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/scratchpad/Scratchpad.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/scratchpad/Scratchpad.java
@@ -29,6 +29,7 @@ import org.apache.isis.applib.annotation.DomainService;
import org.apache.isis.applib.annotation.NatureOfService;
import org.apache.isis.applib.annotation.OrderPrecedence;
import org.apache.isis.commons.internal.collections._Maps;
+import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Primary;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Service;
@@ -48,6 +49,7 @@ import org.springframework.stereotype.Service;
@Order(OrderPrecedence.HIGH)
@Primary
@Named("isisApplib.Scratchpad")
+@Qualifier("Default")
@Log4j2
public class Scratchpad {
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/tablecol/TableColumnOrderService.java b/core/applib/src/main/java/org/apache/isis/applib/services/tablecol/TableColumnOrderService.java
index dcf8ac1..f53119b 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/tablecol/TableColumnOrderService.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/tablecol/TableColumnOrderService.java
@@ -27,6 +27,7 @@ import javax.inject.Named;
import org.apache.isis.applib.annotation.DomainService;
import org.apache.isis.applib.annotation.NatureOfService;
import org.apache.isis.applib.annotation.OrderPrecedence;
+import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Primary;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Service;
@@ -50,6 +51,7 @@ public interface TableColumnOrderService {
@Named("isisApplib.TableColumnOrderService.Default")
@Order(OrderPrecedence.LOW)
@Primary
+ @Qualifier("Default")
@Log4j2
public static class Default implements TableColumnOrderService {
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/urlencoding/UrlEncodingServiceWithCompression.java b/core/applib/src/main/java/org/apache/isis/applib/services/urlencoding/UrlEncodingServiceWithCompression.java
index ea498e4..7e3e6fa 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/urlencoding/UrlEncodingServiceWithCompression.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/urlencoding/UrlEncodingServiceWithCompression.java
@@ -24,19 +24,19 @@ import java.nio.charset.StandardCharsets;
import javax.inject.Named;
-import org.apache.isis.applib.annotation.DomainService;
-import org.apache.isis.applib.annotation.NatureOfService;
import org.apache.isis.applib.annotation.OrderPrecedence;
import org.apache.isis.commons.internal.base._Bytes;
import org.apache.isis.commons.internal.base._Strings;
+import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Primary;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Service;
@Service
@Named("isisApplib.UrlEncodingServiceWithCompression")
-@Order(OrderPrecedence.DEFAULT)
+@Order(OrderPrecedence.MIDPOINT)
@Primary
+@Qualifier("Compression")
@Log4j2
public class UrlEncodingServiceWithCompression implements UrlEncodingService {
diff --git a/core/commons/src/main/java/org/apache/isis/commons/internal/environment/IsisSystemEnvironment.java b/core/commons/src/main/java/org/apache/isis/commons/internal/environment/IsisSystemEnvironment.java
index b0ed9c9..0995b42 100644
--- a/core/commons/src/main/java/org/apache/isis/commons/internal/environment/IsisSystemEnvironment.java
+++ b/core/commons/src/main/java/org/apache/isis/commons/internal/environment/IsisSystemEnvironment.java
@@ -24,6 +24,7 @@ import javax.inject.Inject;
import javax.inject.Named;
import javax.inject.Singleton;
+import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.Primary;
import org.springframework.context.event.ContextClosedEvent;
@@ -51,6 +52,7 @@ import lombok.extern.log4j.Log4j2;
@Named("isisCommons.IsisSystemEnvironment")
@Order(-1_073_741_824) // same as OrderedPrecedence#HIGH
@Primary
+@Qualifier("Default")
@Singleton
@Log4j2
public class IsisSystemEnvironment {
diff --git a/core/config/src/main/java/org/apache/isis/config/viewer/wicket/WebAppConfiguration.java b/core/config/src/main/java/org/apache/isis/config/viewer/wicket/WebAppConfiguration.java
index 1a420ba..c39a12f 100644
--- a/core/config/src/main/java/org/apache/isis/config/viewer/wicket/WebAppConfiguration.java
+++ b/core/config/src/main/java/org/apache/isis/config/viewer/wicket/WebAppConfiguration.java
@@ -26,6 +26,7 @@ import javax.inject.Named;
import javax.inject.Singleton;
import org.apache.isis.applib.annotation.OrderPrecedence;
+import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Primary;
import org.springframework.core.annotation.Order;
import org.springframework.core.io.AbstractResource;
@@ -45,8 +46,9 @@ import lombok.val;
@Service
@Singleton
@Named("isisConfig.WebAppConfiguration")
-@Order(OrderPrecedence.DEFAULT)
+@Order(OrderPrecedence.MIDPOINT)
@Primary
+@Qualifier("Default")
@Log4j2
public class WebAppConfiguration {
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/actions/action/invocation/ActionInvocationFacetForDomainEventAbstract.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/actions/action/invocation/ActionInvocationFacetForDomainEventAbstract.java
index 23065af..86d5e28 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/actions/action/invocation/ActionInvocationFacetForDomainEventAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/actions/action/invocation/ActionInvocationFacetForDomainEventAbstract.java
@@ -64,7 +64,7 @@ import org.apache.isis.metamodel.facets.actions.semantics.ActionSemanticsFacet;
import org.apache.isis.metamodel.facets.collections.modify.CollectionFacet;
import org.apache.isis.metamodel.facets.object.viewmodel.ViewModelFacet;
import org.apache.isis.metamodel.services.ixn.InteractionDtoServiceInternal;
-import org.apache.isis.metamodel.services.publishing.PublishingServiceInternal;
+import org.apache.isis.metamodel.services.publishing.PublisherDispatchService;
import org.apache.isis.metamodel.spec.ManagedObject;
import org.apache.isis.metamodel.spec.ObjectSpecification;
import org.apache.isis.metamodel.spec.feature.ObjectAction;
@@ -509,8 +509,8 @@ implements ImperativeFacet {
return serviceRegistry.lookupServiceElseFail(ClockService.class);
}
- private PublishingServiceInternal getPublishingServiceInternal() {
- return serviceRegistry.lookupServiceElseFail(PublishingServiceInternal.class);
+ private PublisherDispatchService getPublishingServiceInternal() {
+ return serviceRegistry.lookupServiceElseFail(PublisherDispatchService.class);
}
private InteractionDtoServiceInternal getInteractionDtoServiceInternal() {
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/autocomplete/AutoCompleteFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/autocomplete/AutoCompleteFacetAbstract.java
index e2355a0..ae585be 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/autocomplete/AutoCompleteFacetAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/autocomplete/AutoCompleteFacetAbstract.java
@@ -32,7 +32,7 @@ import org.apache.isis.metamodel.facetapi.FacetAbstract;
import org.apache.isis.metamodel.facetapi.FacetHolder;
import org.apache.isis.metamodel.facets.collections.modify.CollectionFacet;
import org.apache.isis.metamodel.facets.param.autocomplete.MinLengthUtil;
-import org.apache.isis.metamodel.services.publishing.PublishingServiceInternal;
+import org.apache.isis.metamodel.services.publishing.PublisherDispatchService;
import org.apache.isis.metamodel.spec.ManagedObject;
public abstract class AutoCompleteFacetAbstract
@@ -73,7 +73,7 @@ implements AutoCompleteFacet {
final ManagedObject resultAdapter =
getPublishingServiceInternal().withPublishingSuppressed(
- new PublishingServiceInternal.Block<ManagedObject>() {
+ new PublisherDispatchService.Block<ManagedObject>() {
@Override
public ManagedObject exec() {
final Object list = invoke();
@@ -104,8 +104,8 @@ implements AutoCompleteFacet {
return getServiceRegistry().lookupService(repositoryClass).orElse(null);
}
- private PublishingServiceInternal getPublishingServiceInternal() {
- return getServiceRegistry().lookupServiceElseFail(PublishingServiceInternal.class);
+ private PublisherDispatchService getPublishingServiceInternal() {
+ return getServiceRegistry().lookupServiceElseFail(PublisherDispatchService.class);
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/properties/property/modify/PropertySetterOrClearFacetForDomainEventAbstract.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/properties/property/modify/PropertySetterOrClearFacetForDomainEventAbstract.java
index 4369069..f3ce1e8 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/properties/property/modify/PropertySetterOrClearFacetForDomainEventAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/properties/property/modify/PropertySetterOrClearFacetForDomainEventAbstract.java
@@ -43,7 +43,7 @@ import org.apache.isis.metamodel.facets.properties.publish.PublishedPropertyFace
import org.apache.isis.metamodel.facets.properties.update.clear.PropertyClearFacet;
import org.apache.isis.metamodel.facets.properties.update.modify.PropertySetterFacet;
import org.apache.isis.metamodel.services.ixn.InteractionDtoServiceInternal;
-import org.apache.isis.metamodel.services.publishing.PublishingServiceInternal;
+import org.apache.isis.metamodel.services.publishing.PublisherDispatchService;
import org.apache.isis.metamodel.spec.ManagedObject;
import org.apache.isis.metamodel.spec.feature.OneToOneAssociation;
import org.apache.isis.schema.ixn.v1.PropertyEditDto;
@@ -322,8 +322,8 @@ extends SingleValueFacetAbstract<Class<? extends PropertyDomainEvent<?,?>>> {
return getServiceRegistry().lookupServiceElseFail(ClockService.class);
}
- private PublishingServiceInternal getPublishingServiceInternal() {
- return getServiceRegistry().lookupServiceElseFail(PublishingServiceInternal.class);
+ private PublisherDispatchService getPublishingServiceInternal() {
+ return getServiceRegistry().lookupServiceElseFail(PublisherDispatchService.class);
}
@Override public void appendAttributesTo(final Map<String, Object> attributeMap) {
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/objectmanager/ObjectManagerDefault.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/objectmanager/ObjectManagerDefault.java
index df62b04..cb2fbd0 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/objectmanager/ObjectManagerDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/objectmanager/ObjectManagerDefault.java
@@ -23,6 +23,7 @@ import javax.inject.Inject;
import javax.inject.Named;
import org.apache.isis.applib.annotation.OrderPrecedence;
+import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Primary;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Service;
@@ -46,6 +47,7 @@ import lombok.val;
@Named("isisMetaModel.ObjectManagerDefault")
@Order(OrderPrecedence.HIGH)
@Primary
+@Qualifier("DEFAULT")
@Log4j2
public class ObjectManagerDefault implements ObjectManager {
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/services/ServiceInjectorDefault.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/services/ServiceInjectorDefault.java
index c3f57f0..ec365f2 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/services/ServiceInjectorDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/services/ServiceInjectorDefault.java
@@ -27,6 +27,7 @@ import javax.inject.Named;
import org.apache.isis.applib.annotation.OrderPrecedence;
import org.springframework.beans.factory.InjectionPoint;
+import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.beans.factory.config.AutowireCapableBeanFactory;
import org.springframework.context.annotation.Primary;
import org.springframework.core.annotation.Order;
@@ -43,6 +44,7 @@ import org.apache.isis.applib.services.inject.ServiceInjector;
@Named("isisMetaModel.ServiceInjectorDefault")
@Order(OrderPrecedence.HIGH)
@Primary
+@Qualifier("Default")
@Log4j2
public class ServiceInjectorDefault implements ServiceInjector {
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/services/appfeat/ApplicationFeatureFactory.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/services/appfeat/ApplicationFeatureFactory.java
index fa662e8..a6958f4 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/services/appfeat/ApplicationFeatureFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/services/appfeat/ApplicationFeatureFactory.java
@@ -24,6 +24,7 @@ import javax.inject.Inject;
import javax.inject.Named;
import org.apache.isis.applib.annotation.OrderPrecedence;
+import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Primary;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Service;
@@ -32,8 +33,9 @@ import org.apache.isis.applib.services.factory.FactoryService;
@Service
@Named("isisMetaModel.ApplicationFeatureFactory")
-@Order(OrderPrecedence.DEFAULT)
+@Order(OrderPrecedence.MIDPOINT)
@Primary
+@Qualifier("Default")
@Log4j2
public class ApplicationFeatureFactory {
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/services/events/MetamodelEventService.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/services/events/MetamodelEventService.java
index 69146fa..3f531f3 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/services/events/MetamodelEventService.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/services/events/MetamodelEventService.java
@@ -21,9 +21,9 @@ package org.apache.isis.metamodel.services.events;
import javax.enterprise.event.Event;
import javax.inject.Inject;
import javax.inject.Named;
-import javax.inject.Singleton;
import org.apache.isis.applib.annotation.OrderPrecedence;
+import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Primary;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Service;
@@ -46,8 +46,9 @@ import lombok.extern.log4j.Log4j2;
*/
@Service
@Named("isisMetaModel.MetamodelEventService")
-@Order(OrderPrecedence.DEFAULT)
+@Order(OrderPrecedence.MIDPOINT)
@Primary
+@Qualifier("Default")
@Log4j2
@Builder //for JUnit Test support
public class MetamodelEventService {
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/services/exceprecog/ExceptionRecognizerDocDefault.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/services/exceprecog/ExceptionRecognizerDocDefault.java
index 9d2ff41..78d2951 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/services/exceprecog/ExceptionRecognizerDocDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/services/exceprecog/ExceptionRecognizerDocDefault.java
@@ -27,6 +27,7 @@ import javax.inject.Inject;
import javax.inject.Named;
import org.apache.isis.applib.annotation.OrderPrecedence;
+import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Primary;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Service;
@@ -39,11 +40,11 @@ import org.apache.isis.applib.services.inject.ServiceInjector;
@Service
@Named("isisMetaModel.ExceptionRecognizerDocDefault")
-@Order(OrderPrecedence.DEFAULT)
+@Order(OrderPrecedence.MIDPOINT)
@Primary
+@Qualifier("Default")
@Log4j2
-public class ExceptionRecognizerDocDefault
-implements ExceptionRecognizer {
+public class ExceptionRecognizerDocDefault implements ExceptionRecognizer {
@Inject private ServiceInjector serviceInjector;
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/services/grid/GridLoaderServiceDefault.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/services/grid/GridLoaderServiceDefault.java
index 2712bca..e4782c7 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/services/grid/GridLoaderServiceDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/services/grid/GridLoaderServiceDefault.java
@@ -26,9 +26,9 @@ import java.util.Objects;
import javax.inject.Inject;
import javax.inject.Named;
-import javax.inject.Singleton;
import org.apache.isis.applib.annotation.OrderPrecedence;
+import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Primary;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Service;
@@ -38,7 +38,6 @@ import org.apache.isis.applib.services.grid.GridLoaderService;
import org.apache.isis.applib.services.message.MessageService;
import org.apache.isis.commons.internal.collections._Lists;
import org.apache.isis.commons.internal.collections._Maps;
-import org.apache.isis.commons.internal.context._Context;
import org.apache.isis.commons.internal.environment.IsisSystemEnvironment;
import org.apache.isis.commons.internal.resources._Resources;
@@ -46,8 +45,9 @@ import lombok.extern.log4j.Log4j2;
@Service
@Named("isisMetaModel.GridLoaderServiceDefault")
-@Order(OrderPrecedence.DEFAULT)
+@Order(OrderPrecedence.MIDPOINT)
@Primary
+@Qualifier("Default")
@Log4j2
public class GridLoaderServiceDefault implements GridLoaderService {
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/services/grid/GridReaderUsingJaxb.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/services/grid/GridReaderUsingJaxb.java
index dab5043..055e1b4 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/services/grid/GridReaderUsingJaxb.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/services/grid/GridReaderUsingJaxb.java
@@ -29,6 +29,7 @@ import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import org.apache.isis.applib.annotation.OrderPrecedence;
+import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Primary;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Service;
@@ -46,8 +47,9 @@ import org.apache.isis.commons.internal.collections._Arrays;
*/
@Service
@Named("isisMetaModel.GridReaderUsingJaxb")
-@Order(OrderPrecedence.DEFAULT)
+@Order(OrderPrecedence.MIDPOINT)
@Primary
+@Qualifier("Default")
@Log4j2
public class GridReaderUsingJaxb {
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/services/grid/GridServiceDefault.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/services/grid/GridServiceDefault.java
index 4b05e8a..1afd923 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/services/grid/GridServiceDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/services/grid/GridServiceDefault.java
@@ -25,9 +25,9 @@ import java.util.stream.Collectors;
import javax.inject.Inject;
import javax.inject.Named;
-import javax.inject.Singleton;
import org.apache.isis.applib.annotation.OrderPrecedence;
+import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Primary;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Service;
@@ -42,8 +42,9 @@ import org.apache.isis.commons.internal.collections._Lists;
@Service
@Named("isisMetaModel.GridServiceDefault")
-@Order(OrderPrecedence.DEFAULT)
+@Order(OrderPrecedence.MIDPOINT)
@Primary
+@Qualifier("Default")
@Log4j2
public class GridServiceDefault implements GridService {
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/services/grid/bootstrap3/GridSystemServiceBS3.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/services/grid/bootstrap3/GridSystemServiceBS3.java
index f0d4169..cb1f1d1 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/services/grid/bootstrap3/GridSystemServiceBS3.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/services/grid/bootstrap3/GridSystemServiceBS3.java
@@ -28,9 +28,9 @@ import java.util.stream.Collectors;
import javax.inject.Inject;
import javax.inject.Named;
-import javax.inject.Singleton;
import org.apache.isis.applib.annotation.OrderPrecedence;
+import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Primary;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Service;
@@ -76,8 +76,9 @@ import lombok.val;
@Service
@Named("isisMetaModel.GridSystemServiceBS3")
-@Order(OrderPrecedence.DEFAULT)
+@Order(OrderPrecedence.MIDPOINT)
@Primary
+@Qualifier("BS3")
@Log4j2
public class GridSystemServiceBS3 extends GridSystemServiceAbstract<BS3Grid> {
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/services/layout/LayoutServiceDefault.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/services/layout/LayoutServiceDefault.java
index 9904399..f9d86c7 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/services/layout/LayoutServiceDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/services/layout/LayoutServiceDefault.java
@@ -27,6 +27,7 @@ import javax.inject.Named;
import javax.xml.bind.Marshaller;
import org.apache.isis.applib.annotation.OrderPrecedence;
+import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Primary;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Service;
@@ -49,8 +50,9 @@ import lombok.val;
@Service
@Named("isisMetaModel.LayoutServiceDefault")
-@Order(OrderPrecedence.DEFAULT)
+@Order(OrderPrecedence.MIDPOINT)
@Primary
+@Qualifier("Default")
@Log4j2
public class LayoutServiceDefault implements LayoutService {
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/services/metamodel/MetaModelServiceDefault.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/services/metamodel/MetaModelServiceDefault.java
index f850c90..d7e1101 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/services/metamodel/MetaModelServiceDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/services/metamodel/MetaModelServiceDefault.java
@@ -30,6 +30,7 @@ import javax.inject.Inject;
import javax.inject.Named;
import org.apache.isis.applib.annotation.OrderPrecedence;
+import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Primary;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Service;
@@ -60,8 +61,9 @@ import org.apache.isis.schema.metamodel.v1.MetamodelDto;
@Service
@Named("isisMetaModel.MetaModelServiceDefault")
-@Order(OrderPrecedence.DEFAULT)
+@Order(OrderPrecedence.MIDPOINT)
@Primary
+@Qualifier("Default")
@Log4j2
public class MetaModelServiceDefault implements MetaModelService {
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/services/publishing/PublishingServiceInternal.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/services/publishing/PublisherDispatchService.java
similarity index 97%
rename from core/metamodel/src/main/java/org/apache/isis/metamodel/services/publishing/PublishingServiceInternal.java
rename to core/metamodel/src/main/java/org/apache/isis/metamodel/services/publishing/PublisherDispatchService.java
index bad25b1..9556c7d 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/services/publishing/PublishingServiceInternal.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/services/publishing/PublisherDispatchService.java
@@ -21,7 +21,7 @@ package org.apache.isis.metamodel.services.publishing;
import org.apache.isis.applib.annotation.Programmatic;
import org.apache.isis.applib.services.iactn.Interaction;
-public interface PublishingServiceInternal {
+public interface PublisherDispatchService {
@Programmatic
void publishObjects();
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/services/registry/ServiceRegistryDefault.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/services/registry/ServiceRegistryDefault.java
index 9d9bc94..8d0bdcc 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/services/registry/ServiceRegistryDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/services/registry/ServiceRegistryDefault.java
@@ -27,8 +27,6 @@ import java.util.stream.Stream;
import javax.inject.Inject;
import javax.inject.Named;
-import org.apache.isis.applib.annotation.DomainService;
-import org.apache.isis.applib.annotation.NatureOfService;
import org.apache.isis.applib.annotation.OrderPrecedence;
import org.apache.isis.applib.services.registry.ServiceRegistry;
import org.apache.isis.commons.collections.Can;
@@ -39,6 +37,7 @@ import org.apache.isis.commons.internal.environment.IsisSystemEnvironment;
import org.apache.isis.commons.internal.ioc.ManagedBeanAdapter;
import org.apache.isis.commons.internal.ioc.spring._Spring;
import org.apache.isis.config.beans.IsisBeanTypeRegistryHolder;
+import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Primary;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Service;
@@ -46,13 +45,11 @@ import org.springframework.stereotype.Service;
import lombok.extern.log4j.Log4j2;
import lombok.val;
-/**
- * @since 2.0
- */
@Service
@Named("isisMetaModel.ServiceRegistryDefault")
-@Order(OrderPrecedence.DEFAULT)
+@Order(OrderPrecedence.MIDPOINT)
@Primary
+@Qualifier("Default")
@Log4j2
public final class ServiceRegistryDefault implements ServiceRegistry {
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/services/swagger/SwaggerServiceDefault.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/services/swagger/SwaggerServiceDefault.java
index 1b0d52f..0e350cf 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/services/swagger/SwaggerServiceDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/services/swagger/SwaggerServiceDefault.java
@@ -24,6 +24,7 @@ import javax.inject.Inject;
import javax.inject.Named;
import org.apache.isis.applib.annotation.OrderPrecedence;
+import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Primary;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Service;
@@ -40,8 +41,9 @@ import static org.apache.isis.commons.internal.resources._Resources.prependConte
@Service
@Named("isisMetaModel.swaggerServiceDefault")
-@Order(OrderPrecedence.DEFAULT)
+@Order(OrderPrecedence.MIDPOINT)
@Primary
+@Qualifier("Default")
@Log4j2
public class SwaggerServiceDefault implements SwaggerService {
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/services/title/TitleServiceDefault.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/services/title/TitleServiceDefault.java
index 3837d6f..1ecd5f8 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/services/title/TitleServiceDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/services/title/TitleServiceDefault.java
@@ -23,6 +23,7 @@ import javax.inject.Inject;
import javax.inject.Named;
import org.apache.isis.applib.annotation.OrderPrecedence;
+import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Primary;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Service;
@@ -37,8 +38,9 @@ import lombok.val;
@Service
@Named("isisMetaModel.TitleServiceDefault")
-@Order(OrderPrecedence.DEFAULT)
+@Order(OrderPrecedence.MIDPOINT)
@Primary
+@Qualifier("Default")
@Log4j2
public class TitleServiceDefault implements TitleService {
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/services/user/UserServiceDefault.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/services/user/UserServiceDefault.java
index 346683e..d229184 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/services/user/UserServiceDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/services/user/UserServiceDefault.java
@@ -29,12 +29,11 @@ import javax.inject.Inject;
import javax.inject.Named;
import org.apache.isis.applib.annotation.OrderPrecedence;
+import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Primary;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Service;
-import org.apache.isis.applib.annotation.DomainService;
-import org.apache.isis.applib.annotation.NatureOfService;
import org.apache.isis.applib.security.RoleMemento;
import org.apache.isis.applib.security.UserMemento;
import org.apache.isis.applib.services.sudo.SudoService;
@@ -44,8 +43,9 @@ import org.apache.isis.security.api.authentication.AuthenticationSessionProvider
@Service
@Named("isisMetaModel.UserServiceDefault")
-@Order(OrderPrecedence.DEFAULT)
+@Order(OrderPrecedence.MIDPOINT)
@Primary
+@Qualifier("Default")
@Log4j2
public class UserServiceDefault implements UserService {
@@ -155,8 +155,8 @@ public class UserServiceDefault implements UserService {
@Service
@Named("isisMetaModel.UserServiceDefault.SudoServiceSpi")
- @Order(OrderPrecedence.DEFAULT)
- @Primary
+ @Order(OrderPrecedence.MIDPOINT)
+ @Qualifier("UserServiceDefault")
@Log4j2
public static class SudoServiceSpi implements SudoService.Spi {
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/specloader/InjectorMethodEvaluatorDefault.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/specloader/InjectorMethodEvaluatorDefault.java
index 07c75fe..bd6ac21 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/specloader/InjectorMethodEvaluatorDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/specloader/InjectorMethodEvaluatorDefault.java
@@ -26,6 +26,7 @@ import java.lang.reflect.Method;
import javax.inject.Named;
import org.apache.isis.applib.annotation.OrderPrecedence;
+import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Primary;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Service;
@@ -36,6 +37,7 @@ import org.apache.isis.metamodel.spec.InjectorMethodEvaluator;
@Named("isisMetaModel.InjectorMethodEvaluatorDefault")
@Order(OrderPrecedence.HIGH)
@Primary
+@Qualifier("Default")
@Log4j2
public final class InjectorMethodEvaluatorDefault implements InjectorMethodEvaluator {
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/specloader/ProgrammingModelServiceDefault.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/specloader/ProgrammingModelServiceDefault.java
index 9eb3fa3..b54fced 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/specloader/ProgrammingModelServiceDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/specloader/ProgrammingModelServiceDefault.java
@@ -23,6 +23,7 @@ import javax.inject.Named;
import org.apache.isis.applib.annotation.OrderPrecedence;
import org.apache.isis.applib.services.inject.ServiceInjector;
+import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Primary;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Service;
@@ -41,8 +42,9 @@ import lombok.extern.log4j.Log4j2;
@Service
@Named("isisMetaModel.ProgrammingModelServiceDefault")
-@Order(OrderPrecedence.DEFAULT)
+@Order(OrderPrecedence.MIDPOINT)
@Primary
+@Qualifier("Default")
@Log4j2
public class ProgrammingModelServiceDefault implements ProgrammingModelService {
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/specloader/SpecificationLoaderDefault.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/specloader/SpecificationLoaderDefault.java
index b84df83..51a810e 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/specloader/SpecificationLoaderDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/specloader/SpecificationLoaderDefault.java
@@ -60,6 +60,7 @@ import org.apache.isis.metamodel.specloader.specimpl.standalonelist.ObjectSpecif
import org.apache.isis.metamodel.specloader.validator.MetaModelValidatorAbstract;
import org.apache.isis.metamodel.specloader.validator.ValidationFailures;
import org.apache.isis.applib.util.schema.CommonDtoUtils;
+import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Primary;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Service;
@@ -88,6 +89,7 @@ import static org.apache.isis.commons.internal.base._With.requires;
@Named("isisMetaModel.SpecificationLoaderDefault")
@Order(OrderPrecedence.HIGH)
@Primary
+@Qualifier("Default")
@Log4j2
public class SpecificationLoaderDefault implements SpecificationLoader {
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/specloader/specimpl/OneToManyAssociationMixedIn.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/specloader/specimpl/OneToManyAssociationMixedIn.java
index e30f36a..58e8071 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/specloader/specimpl/OneToManyAssociationMixedIn.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/specloader/specimpl/OneToManyAssociationMixedIn.java
@@ -38,7 +38,7 @@ import org.apache.isis.metamodel.facets.propcoll.notpersisted.NotPersistedFacetA
import org.apache.isis.metamodel.interactions.InteractionUtils;
import org.apache.isis.metamodel.interactions.UsabilityContext;
import org.apache.isis.metamodel.interactions.VisibilityContext;
-import org.apache.isis.metamodel.services.publishing.PublishingServiceInternal;
+import org.apache.isis.metamodel.services.publishing.PublisherDispatchService;
import org.apache.isis.metamodel.spec.ManagedObject;
import org.apache.isis.metamodel.spec.ObjectSpecification;
@@ -150,7 +150,7 @@ public class OneToManyAssociationMixedIn extends OneToManyAssociationDefault imp
final ManagedObject mixinAdapter = mixinAdapterFor(mixinType, mixedInAdapter);
return getPublishingServiceInternal().withPublishingSuppressed(
- new PublishingServiceInternal.Block<ManagedObject>() {
+ new PublisherDispatchService.Block<ManagedObject>() {
@Override public ManagedObject exec() {
return mixinAction.executeInternal(
mixinAdapter, mixedInAdapter, new ManagedObject[0], interactionInitiatedBy);
@@ -210,8 +210,8 @@ public class OneToManyAssociationMixedIn extends OneToManyAssociationDefault imp
return getSpecificationLoader().loadSpecification(mixinType);
}
- private PublishingServiceInternal getPublishingServiceInternal() {
- return getServiceRegistry().lookupServiceElseFail(PublishingServiceInternal.class);
+ private PublisherDispatchService getPublishingServiceInternal() {
+ return getServiceRegistry().lookupServiceElseFail(PublisherDispatchService.class);
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/specloader/specimpl/OneToOneAssociationMixedIn.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/specloader/specimpl/OneToOneAssociationMixedIn.java
index 38b9b56..89cffe5 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/specloader/specimpl/OneToOneAssociationMixedIn.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/specloader/specimpl/OneToOneAssociationMixedIn.java
@@ -36,7 +36,7 @@ import org.apache.isis.metamodel.facets.propcoll.notpersisted.NotPersistedFacetA
import org.apache.isis.metamodel.interactions.InteractionUtils;
import org.apache.isis.metamodel.interactions.UsabilityContext;
import org.apache.isis.metamodel.interactions.VisibilityContext;
-import org.apache.isis.metamodel.services.publishing.PublishingServiceInternal;
+import org.apache.isis.metamodel.services.publishing.PublisherDispatchService;
import org.apache.isis.metamodel.spec.ManagedObject;
import org.apache.isis.metamodel.spec.ObjectSpecification;
@@ -135,7 +135,7 @@ public class OneToOneAssociationMixedIn extends OneToOneAssociationDefault imple
val mixinAdapter = mixinAdapterFor(mixinType, mixedInAdapter);
return getPublishingServiceInternal().withPublishingSuppressed(
- new PublishingServiceInternal.Block<ManagedObject>(){
+ new PublisherDispatchService.Block<ManagedObject>(){
@Override
public ManagedObject exec() {
return mixinAction.executeInternal(
@@ -196,8 +196,8 @@ public class OneToOneAssociationMixedIn extends OneToOneAssociationDefault imple
return getSpecificationLoader().loadSpecification(mixinType);
}
- private PublishingServiceInternal getPublishingServiceInternal() {
- return getServiceRegistry().lookupServiceElseFail(PublishingServiceInternal.class);
+ private PublisherDispatchService getPublishingServiceInternal() {
+ return getServiceRegistry().lookupServiceElseFail(PublisherDispatchService.class);
}
diff --git a/core/persistence/jdo/datanucleus-5/src/main/java/org/apache/isis/persistence/jdo/datanucleus5/datanucleus/DataNucleusSettings.java b/core/persistence/jdo/datanucleus-5/src/main/java/org/apache/isis/persistence/jdo/datanucleus5/datanucleus/DataNucleusSettings.java
index 1d79a05..6ac0a19 100644
--- a/core/persistence/jdo/datanucleus-5/src/main/java/org/apache/isis/persistence/jdo/datanucleus5/datanucleus/DataNucleusSettings.java
+++ b/core/persistence/jdo/datanucleus-5/src/main/java/org/apache/isis/persistence/jdo/datanucleus5/datanucleus/DataNucleusSettings.java
@@ -26,6 +26,7 @@ import javax.inject.Inject;
import javax.inject.Named;
import org.apache.isis.applib.annotation.OrderPrecedence;
+import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Primary;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Service;
@@ -37,6 +38,7 @@ import org.springframework.stereotype.Service;
@Named("isisJdoDn5.DataNucleusSettings")
@Order(OrderPrecedence.HIGH)
@Primary
+@Qualifier("Default")
@Log4j2
public class DataNucleusSettings {
diff --git a/core/persistence/jdo/datanucleus-5/src/main/java/org/apache/isis/persistence/jdo/datanucleus5/datanucleus/service/JdoPersistenceLifecycleService.java b/core/persistence/jdo/datanucleus-5/src/main/java/org/apache/isis/persistence/jdo/datanucleus5/datanucleus/service/JdoPersistenceLifecycleService.java
index 4b6494e..03eb9cc 100644
--- a/core/persistence/jdo/datanucleus-5/src/main/java/org/apache/isis/persistence/jdo/datanucleus5/datanucleus/service/JdoPersistenceLifecycleService.java
+++ b/core/persistence/jdo/datanucleus-5/src/main/java/org/apache/isis/persistence/jdo/datanucleus5/datanucleus/service/JdoPersistenceLifecycleService.java
@@ -23,6 +23,7 @@ import javax.inject.Inject;
import javax.inject.Named;
import org.apache.isis.applib.annotation.OrderPrecedence;
+import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Primary;
import org.springframework.context.event.EventListener;
import org.springframework.core.annotation.Order;
@@ -43,8 +44,9 @@ import lombok.extern.log4j.Log4j2;
@Service
@Named("isisJdoDn5.JdoPersistenceLifecycleService")
-@Order(OrderPrecedence.DEFAULT)
+@Order(OrderPrecedence.MIDPOINT)
@Primary
+@Qualifier("Default")
@Log4j2
public class JdoPersistenceLifecycleService {
diff --git a/core/persistence/jdo/datanucleus-5/src/main/java/org/apache/isis/persistence/jdo/datanucleus5/exceprecog/ExceptionRecognizerCompositeForJdoObjectStore.java b/core/persistence/jdo/datanucleus-5/src/main/java/org/apache/isis/persistence/jdo/datanucleus5/exceprecog/ExceptionRecognizerCompositeForJdoObjectStore.java
index f68e84d..e2b7af2 100644
--- a/core/persistence/jdo/datanucleus-5/src/main/java/org/apache/isis/persistence/jdo/datanucleus5/exceprecog/ExceptionRecognizerCompositeForJdoObjectStore.java
+++ b/core/persistence/jdo/datanucleus-5/src/main/java/org/apache/isis/persistence/jdo/datanucleus5/exceprecog/ExceptionRecognizerCompositeForJdoObjectStore.java
@@ -24,12 +24,11 @@ import javax.annotation.PostConstruct;
import javax.inject.Inject;
import javax.inject.Named;
-import org.apache.isis.applib.annotation.DomainService;
-import org.apache.isis.applib.annotation.NatureOfService;
import org.apache.isis.applib.annotation.OrderPrecedence;
import org.apache.isis.applib.services.exceprecog.ExceptionRecognizer;
import org.apache.isis.applib.services.exceprecog.ExceptionRecognizerComposite;
import org.apache.isis.config.IsisConfiguration;
+import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Primary;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Service;
@@ -47,8 +46,9 @@ import org.springframework.stereotype.Service;
*/
@Service
@Named("isisJdoDn5.ExceptionRecognizerCompositeForJdoObjectStore")
-@Order(OrderPrecedence.DEFAULT)
+@Order(OrderPrecedence.MIDPOINT)
@Primary
+@Qualifier("Default")
@Log4j2
public class ExceptionRecognizerCompositeForJdoObjectStore extends ExceptionRecognizerComposite {
diff --git a/core/persistence/jdo/datanucleus-5/src/main/java/org/apache/isis/persistence/jdo/datanucleus5/jdosupport/IsisJdoSupportDN5.java b/core/persistence/jdo/datanucleus-5/src/main/java/org/apache/isis/persistence/jdo/datanucleus5/jdosupport/IsisJdoSupportDN5.java
index af321ce..09d5da8 100644
--- a/core/persistence/jdo/datanucleus-5/src/main/java/org/apache/isis/persistence/jdo/datanucleus5/jdosupport/IsisJdoSupportDN5.java
+++ b/core/persistence/jdo/datanucleus-5/src/main/java/org/apache/isis/persistence/jdo/datanucleus5/jdosupport/IsisJdoSupportDN5.java
@@ -40,6 +40,7 @@ import javax.jdo.query.BooleanExpression;
import org.apache.isis.applib.annotation.OrderPrecedence;
import org.apache.isis.persistence.jdo.applib.services.IsisJdoSupport_v3_2;
+import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Primary;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Service;
@@ -63,8 +64,9 @@ import static org.apache.isis.commons.internal.base._NullSafe.stream;
*/
@Service
@Named("isisJdoDn5.IsisJdoSupportDN5")
-@Order(OrderPrecedence.DEFAULT)
+@Order(OrderPrecedence.MIDPOINT)
@Primary
+@Qualifier("DN5")
@Log4j2
public class IsisJdoSupportDN5 implements IsisJdoSupport_v3_2 {
diff --git a/core/persistence/jdo/datanucleus-5/src/main/java/org/apache/isis/persistence/jdo/datanucleus5/metrics/MetricsServiceDefault.java b/core/persistence/jdo/datanucleus-5/src/main/java/org/apache/isis/persistence/jdo/datanucleus5/metrics/MetricsServiceDefault.java
index d61fab5..e853bf6 100644
--- a/core/persistence/jdo/datanucleus-5/src/main/java/org/apache/isis/persistence/jdo/datanucleus5/metrics/MetricsServiceDefault.java
+++ b/core/persistence/jdo/datanucleus-5/src/main/java/org/apache/isis/persistence/jdo/datanucleus5/metrics/MetricsServiceDefault.java
@@ -29,20 +29,20 @@ import javax.jdo.listener.InstanceLifecycleEvent;
import javax.jdo.listener.InstanceLifecycleListener;
import javax.jdo.listener.LoadLifecycleListener;
-import org.apache.isis.applib.annotation.DomainService;
-import org.apache.isis.applib.annotation.NatureOfService;
import org.apache.isis.applib.annotation.OrderPrecedence;
import org.apache.isis.applib.services.WithTransactionScope;
import org.apache.isis.applib.services.metrics.MetricsService;
-import org.apache.isis.runtime.system.transaction.ChangedObjectsServiceInternal;
+import org.apache.isis.runtime.system.transaction.ChangedObjectsService;
+import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Primary;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Service;
@Service
@Named("isisJdoDn5.MetricsServiceDefault")
-@Order(OrderPrecedence.DEFAULT)
+@Order(OrderPrecedence.MIDPOINT)
@Primary
+@Qualifier("Default")
@RequestScoped
@Log4j2
public class MetricsServiceDefault implements MetricsService, InstanceLifecycleListener,
@@ -74,6 +74,7 @@ LoadLifecycleListener, WithTransactionScope {
numberLoaded.set(0);
}
- @Inject ChangedObjectsServiceInternal changedObjectsServiceInternal;
+ @Inject
+ ChangedObjectsService changedObjectsServiceInternal;
}
diff --git a/core/persistence/jdo/datanucleus-5/src/main/java/org/apache/isis/persistence/jdo/datanucleus5/persistence/IsisPersistenceSessionJdoBase.java b/core/persistence/jdo/datanucleus-5/src/main/java/org/apache/isis/persistence/jdo/datanucleus5/persistence/IsisPersistenceSessionJdoBase.java
index 796722e..8785780 100644
--- a/core/persistence/jdo/datanucleus-5/src/main/java/org/apache/isis/persistence/jdo/datanucleus5/persistence/IsisPersistenceSessionJdoBase.java
+++ b/core/persistence/jdo/datanucleus-5/src/main/java/org/apache/isis/persistence/jdo/datanucleus5/persistence/IsisPersistenceSessionJdoBase.java
@@ -41,10 +41,9 @@ import org.apache.isis.metamodel.adapter.oid.Oid;
import org.apache.isis.metamodel.commons.ToString;
import org.apache.isis.metamodel.spec.ManagedObject;
import org.apache.isis.metamodel.specloader.SpecificationLoader;
-import org.apache.isis.persistence.jdo.datanucleus5.datanucleus.persistence.queries.PersistenceQueryProcessor;
import org.apache.isis.runtime.persistence.FixturesInstalledStateHolder;
import org.apache.isis.runtime.system.persistence.PersistenceQueryFactory;
-import org.apache.isis.runtime.system.transaction.ChangedObjectsServiceInternal;
+import org.apache.isis.runtime.system.transaction.ChangedObjectsService;
import org.apache.isis.security.api.authentication.AuthenticationSession;
import lombok.Getter;
@@ -70,7 +69,7 @@ abstract class IsisPersistenceSessionJdoBase implements IsisPersistenceSessionJd
protected final CommandService commandService;
protected final InteractionContext interactionContext;
- protected final ChangedObjectsServiceInternal changedObjectsServiceInternal;
+ protected final ChangedObjectsService changedObjectsServiceInternal;
protected final FactoryService factoryService;
protected final MetricsService metricsService;
protected final ClockService clockService;
@@ -129,7 +128,7 @@ abstract class IsisPersistenceSessionJdoBase implements IsisPersistenceSessionJd
this.commandContext = lookupService(CommandContext.class);
this.commandService = lookupService(CommandService.class);
this.interactionContext = lookupService(InteractionContext.class);
- this.changedObjectsServiceInternal = lookupService(ChangedObjectsServiceInternal.class);
+ this.changedObjectsServiceInternal = lookupService(ChangedObjectsService.class);
this.metricsService = lookupService(MetricsService.class);
this.factoryService = lookupService(FactoryService.class);
this.clockService = lookupService(ClockService.class);
diff --git a/core/persistence/jdo/datanucleus-5/src/main/java/org/apache/isis/persistence/jdo/datanucleus5/persistence/IsisPlatformTransactionManagerForJdo.java b/core/persistence/jdo/datanucleus-5/src/main/java/org/apache/isis/persistence/jdo/datanucleus5/persistence/IsisPlatformTransactionManagerForJdo.java
index 65a7d43..487f751 100644
--- a/core/persistence/jdo/datanucleus-5/src/main/java/org/apache/isis/persistence/jdo/datanucleus5/persistence/IsisPlatformTransactionManagerForJdo.java
+++ b/core/persistence/jdo/datanucleus-5/src/main/java/org/apache/isis/persistence/jdo/datanucleus5/persistence/IsisPlatformTransactionManagerForJdo.java
@@ -45,9 +45,9 @@ import lombok.extern.log4j.Log4j2;
@Service
@Named("isisJdoDn5.IsisPlatformTransactionManagerForJdo")
-@Order(OrderPrecedence.DEFAULT)
+@Order(OrderPrecedence.MIDPOINT)
@Primary
-@Qualifier("jdo")
+@Qualifier("JdoDN5")
@Log4j2
public class IsisPlatformTransactionManagerForJdo extends AbstractPlatformTransactionManager {
diff --git a/core/persistence/jdo/datanucleus-5/src/main/java/org/apache/isis/persistence/jdo/datanucleus5/persistence/IsisTransactionJdo.java b/core/persistence/jdo/datanucleus-5/src/main/java/org/apache/isis/persistence/jdo/datanucleus5/persistence/IsisTransactionJdo.java
index 688018a..d943d26 100644
--- a/core/persistence/jdo/datanucleus-5/src/main/java/org/apache/isis/persistence/jdo/datanucleus5/persistence/IsisTransactionJdo.java
+++ b/core/persistence/jdo/datanucleus-5/src/main/java/org/apache/isis/persistence/jdo/datanucleus5/persistence/IsisTransactionJdo.java
@@ -34,13 +34,13 @@ import org.apache.isis.commons.exceptions.IsisException;
import org.apache.isis.commons.internal.collections._Inbox;
import org.apache.isis.commons.internal.components.TransactionScopedComponent;
import org.apache.isis.metamodel.commons.ToString;
-import org.apache.isis.metamodel.services.publishing.PublishingServiceInternal;
+import org.apache.isis.metamodel.services.publishing.PublisherDispatchService;
import org.apache.isis.metamodel.spec.ManagedObject;
import org.apache.isis.runtime.persistence.objectstore.transaction.CreateObjectCommand;
import org.apache.isis.runtime.persistence.objectstore.transaction.DestroyObjectCommand;
import org.apache.isis.runtime.persistence.objectstore.transaction.PersistenceCommand;
import org.apache.isis.runtime.system.persistence.PersistenceSession;
-import org.apache.isis.runtime.system.transaction.AuditingServiceInternal;
+import org.apache.isis.runtime.system.transaction.AuditerDispatchService;
import org.apache.isis.runtime.system.transaction.IsisTransactionFlushException;
import org.apache.isis.runtime.system.transaction.IsisTransactionManagerException;
@@ -154,8 +154,8 @@ public class IsisTransactionJdo implements TransactionScopedComponent, Transacti
private final _Inbox<PersistenceCommand> persistenceCommands = new _Inbox<>();
- private final PublishingServiceInternal publishingServiceInternal;
- private final AuditingServiceInternal auditingServiceInternal;
+ private final PublisherDispatchService publisherDispatchService;
+ private final AuditerDispatchService auditerDispatchService;
private final Iterable<WithTransactionScope> withTransactionScopes;
@@ -170,8 +170,8 @@ public class IsisTransactionJdo implements TransactionScopedComponent, Transacti
// this.authenticationSession = authenticationSession;
// this.messageBroker = authenticationSession.getMessageBroker();
- this.publishingServiceInternal = serviceRegistry.lookupServiceElseFail(PublishingServiceInternal.class);
- this.auditingServiceInternal = serviceRegistry.lookupServiceElseFail(AuditingServiceInternal.class);
+ this.publisherDispatchService = serviceRegistry.lookupServiceElseFail(PublisherDispatchService.class);
+ this.auditerDispatchService = serviceRegistry.lookupServiceElseFail(AuditerDispatchService.class);
this.withTransactionScopes = serviceRegistry.select(WithTransactionScope.class);
@@ -371,9 +371,9 @@ public class IsisTransactionJdo implements TransactionScopedComponent, Transacti
}
try {
- auditingServiceInternal.audit();
+ auditerDispatchService.audit();
- publishingServiceInternal.publishObjects();
+ publisherDispatchService.publishObjects();
doFlush();
} catch (final RuntimeException ex) {
diff --git a/core/persistence/jdo/datanucleus-5/src/main/java/org/apache/isis/persistence/jdo/datanucleus5/persistence/PersistenceSessionFactory5.java b/core/persistence/jdo/datanucleus-5/src/main/java/org/apache/isis/persistence/jdo/datanucleus5/persistence/PersistenceSessionFactory5.java
index 20beeb4..a24bec2 100644
--- a/core/persistence/jdo/datanucleus-5/src/main/java/org/apache/isis/persistence/jdo/datanucleus5/persistence/PersistenceSessionFactory5.java
+++ b/core/persistence/jdo/datanucleus-5/src/main/java/org/apache/isis/persistence/jdo/datanucleus5/persistence/PersistenceSessionFactory5.java
@@ -31,6 +31,7 @@ import javax.jdo.listener.StoreLifecycleListener;
import org.apache.isis.applib.annotation.OrderPrecedence;
import org.datanucleus.PropertyNames;
import org.datanucleus.api.jdo.JDOPersistenceManagerFactory;
+import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Primary;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Service;
@@ -62,8 +63,9 @@ import lombok.extern.log4j.Log4j2;
*/
@Service
@Named("isisJdoDn5.PersistenceSessionFactory5")
-@Order(OrderPrecedence.DEFAULT)
+@Order(OrderPrecedence.MIDPOINT)
@Primary
+@Qualifier("JdoDN5")
@Singleton
@Log4j2
public class PersistenceSessionFactory5
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 f569f15..e5a6025 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
@@ -24,7 +24,7 @@ import org.springframework.context.annotation.Import;
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.auth.AuthorizationManagerDefault;
import org.apache.isis.runtime.services.background.CommandExecutorServiceDefault;
import org.apache.isis.runtime.services.bookmarks.BookmarkServiceInternalDefault;
import org.apache.isis.runtime.services.command.CommandDtoServiceInternalDefault;
@@ -40,7 +40,7 @@ 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.publish.PublisherDispatchServiceDefault;
import org.apache.isis.runtime.services.repository.RepositoryServiceDefault;
import org.apache.isis.runtime.services.routing.RoutingServiceDefault;
import org.apache.isis.runtime.services.sessmgmt.SessionManagementServiceDefault;
@@ -59,7 +59,7 @@ import org.apache.isis.runtime.services.xmlsnapshot.XmlSnapshotServiceDefault;
// @Service's
AuthenticationSessionProviderDefault.class,
- AuthorizationManagerStandard.class,
+ AuthorizationManagerDefault.class,
BookmarkServiceInternalDefault.class,
CommandDtoServiceInternalDefault.class,
CommandExecutorServiceDefault.class,
@@ -75,7 +75,7 @@ import org.apache.isis.runtime.services.xmlsnapshot.XmlSnapshotServiceDefault;
MenuBarsLoaderServiceDefault.class,
MenuBarsServiceBS3.class,
MessageServiceDefault.class,
- PublishingServiceInternalDefault.class,
+ PublisherDispatchServiceDefault.class,
SessionManagementServiceDefault.class,
SudoServiceDefault.class,
TransactionServiceSpring.class,
diff --git a/core/runtime-services/src/main/java/org/apache/isis/runtime/services/auth/AuthenticationSessionProviderDefault.java b/core/runtime-services/src/main/java/org/apache/isis/runtime/services/auth/AuthenticationSessionProviderDefault.java
index f3789bc..011be11 100644
--- a/core/runtime-services/src/main/java/org/apache/isis/runtime/services/auth/AuthenticationSessionProviderDefault.java
+++ b/core/runtime-services/src/main/java/org/apache/isis/runtime/services/auth/AuthenticationSessionProviderDefault.java
@@ -26,6 +26,7 @@ import javax.inject.Inject;
import javax.inject.Named;
import org.apache.isis.applib.annotation.OrderPrecedence;
+import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Primary;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Service;
@@ -39,8 +40,9 @@ import org.apache.isis.security.api.authentication.standard.SimpleSession;
@Service
@Named("isisRuntimeServices.AuthenticationSessionProviderDefault")
-@Order(OrderPrecedence.DEFAULT)
+@Order(OrderPrecedence.MIDPOINT)
@Primary
+@Qualifier("Default")
@Log4j2
public class AuthenticationSessionProviderDefault implements AuthenticationSessionProvider {
diff --git a/core/runtime-services/src/main/java/org/apache/isis/runtime/services/auth/AuthorizationManagerStandard.java b/core/runtime-services/src/main/java/org/apache/isis/runtime/services/auth/AuthorizationManagerDefault.java
similarity index 93%
rename from core/runtime-services/src/main/java/org/apache/isis/runtime/services/auth/AuthorizationManagerStandard.java
rename to core/runtime-services/src/main/java/org/apache/isis/runtime/services/auth/AuthorizationManagerDefault.java
index 5801947..74303e3 100644
--- a/core/runtime-services/src/main/java/org/apache/isis/runtime/services/auth/AuthorizationManagerStandard.java
+++ b/core/runtime-services/src/main/java/org/apache/isis/runtime/services/auth/AuthorizationManagerDefault.java
@@ -25,6 +25,7 @@ import javax.inject.Inject;
import javax.inject.Named;
import org.apache.isis.applib.annotation.OrderPrecedence;
+import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Primary;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Service;
@@ -43,11 +44,12 @@ import lombok.extern.log4j.Log4j2;
import lombok.val;
@Service
-@Named("isisRuntimeServices.AuthorizationManagerStandard")
-@Order(OrderPrecedence.DEFAULT)
+@Named("isisRuntimeServices.AuthorizationManagerDefault")
+@Order(OrderPrecedence.MIDPOINT)
@Primary
+@Qualifier("Default")
@Log4j2
-public class AuthorizationManagerStandard implements AuthorizationManager, MetaModelRefiner {
+public class AuthorizationManagerDefault implements AuthorizationManager, MetaModelRefiner {
@Inject protected Authorizor authorizor;
diff --git a/core/runtime-services/src/main/java/org/apache/isis/runtime/services/background/CommandExecutorServiceDefault.java b/core/runtime-services/src/main/java/org/apache/isis/runtime/services/background/CommandExecutorServiceDefault.java
index e13e55a..a91b6dd 100644
--- a/core/runtime-services/src/main/java/org/apache/isis/runtime/services/background/CommandExecutorServiceDefault.java
+++ b/core/runtime-services/src/main/java/org/apache/isis/runtime/services/background/CommandExecutorServiceDefault.java
@@ -28,6 +28,7 @@ import javax.inject.Inject;
import javax.inject.Named;
import org.apache.isis.applib.annotation.OrderPrecedence;
+import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Primary;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Service;
@@ -75,8 +76,9 @@ import lombok.extern.log4j.Log4j2;
@Service
@Named("isisRuntimeServices.CommandExecutorServiceDefault")
-@Order(OrderPrecedence.DEFAULT)
+@Order(OrderPrecedence.MIDPOINT)
@Primary
+@Qualifier("Default")
@Log4j2
public class CommandExecutorServiceDefault implements CommandExecutorService {
diff --git a/core/runtime-services/src/main/java/org/apache/isis/runtime/services/bookmarks/BookmarkServiceInternalDefault.java b/core/runtime-services/src/main/java/org/apache/isis/runtime/services/bookmarks/BookmarkServiceInternalDefault.java
index af72bf6..66161e8 100644
--- a/core/runtime-services/src/main/java/org/apache/isis/runtime/services/bookmarks/BookmarkServiceInternalDefault.java
+++ b/core/runtime-services/src/main/java/org/apache/isis/runtime/services/bookmarks/BookmarkServiceInternalDefault.java
@@ -43,6 +43,7 @@ import org.apache.isis.metamodel.objectmanager.load.ObjectLoader;
import org.apache.isis.metamodel.spec.ManagedObject;
import org.apache.isis.metamodel.spec.ObjectSpecId;
import org.apache.isis.metamodel.specloader.SpecificationLoader;
+import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Primary;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Service;
@@ -56,8 +57,9 @@ import lombok.val;
*/
@Service
@Named("isisRuntimeServices.BookmarkServiceInternalDefault")
-@Order(OrderPrecedence.DEFAULT)
+@Order(OrderPrecedence.MIDPOINT)
@Primary
+@Qualifier("Default")
@Log4j2
public class BookmarkServiceInternalDefault implements BookmarkService, SerializingAdapter {
diff --git a/core/runtime-services/src/main/java/org/apache/isis/runtime/services/command/CommandDtoServiceInternalDefault.java b/core/runtime-services/src/main/java/org/apache/isis/runtime/services/command/CommandDtoServiceInternalDefault.java
index f74db4f..5845188 100644
--- a/core/runtime-services/src/main/java/org/apache/isis/runtime/services/command/CommandDtoServiceInternalDefault.java
+++ b/core/runtime-services/src/main/java/org/apache/isis/runtime/services/command/CommandDtoServiceInternalDefault.java
@@ -24,8 +24,6 @@ import java.util.UUID;
import javax.inject.Inject;
import javax.inject.Named;
-import org.apache.isis.applib.annotation.DomainService;
-import org.apache.isis.applib.annotation.NatureOfService;
import org.apache.isis.applib.annotation.OrderPrecedence;
import org.apache.isis.applib.services.bookmark.Bookmark;
import org.apache.isis.applib.services.bookmark.BookmarkService;
@@ -49,6 +47,7 @@ import org.apache.isis.schema.common.v1.OidsDto;
import org.apache.isis.schema.common.v1.ValueWithTypeDto;
import org.apache.isis.applib.util.schema.CommandDtoUtils;
import org.apache.isis.applib.util.schema.CommonDtoUtils;
+import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Primary;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Service;
@@ -58,8 +57,9 @@ import lombok.val;
@Service
@Named("isisRuntimeServices.CommandDtoServiceInternalDefault")
-@Order(OrderPrecedence.DEFAULT)
+@Order(OrderPrecedence.MIDPOINT)
@Primary
+@Qualifier("Default")
@Log4j2
public class CommandDtoServiceInternalDefault implements CommandDtoServiceInternal {
diff --git a/core/runtime-services/src/main/java/org/apache/isis/runtime/services/command/CommandServiceDefault.java b/core/runtime-services/src/main/java/org/apache/isis/runtime/services/command/CommandServiceDefault.java
index 62218c9..79fb9de 100644
--- a/core/runtime-services/src/main/java/org/apache/isis/runtime/services/command/CommandServiceDefault.java
+++ b/core/runtime-services/src/main/java/org/apache/isis/runtime/services/command/CommandServiceDefault.java
@@ -23,6 +23,7 @@ import lombok.extern.log4j.Log4j2;
import javax.inject.Named;
import org.apache.isis.applib.annotation.OrderPrecedence;
+import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Primary;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Service;
@@ -33,8 +34,9 @@ import org.apache.isis.applib.services.command.spi.CommandService;
@Service
@Named("isisRuntimeServices.CommandServiceDefault")
-@Order(OrderPrecedence.DEFAULT)
+@Order(OrderPrecedence.MIDPOINT)
@Primary
+@Qualifier("Default")
@Log4j2
public class CommandServiceDefault implements CommandService {
diff --git a/core/runtime-services/src/main/java/org/apache/isis/runtime/services/confmenu/ConfigurationViewServiceDefault.java b/core/runtime-services/src/main/java/org/apache/isis/runtime/services/confmenu/ConfigurationViewServiceDefault.java
index 06bc5c8..cd6a031 100644
--- a/core/runtime-services/src/main/java/org/apache/isis/runtime/services/confmenu/ConfigurationViewServiceDefault.java
+++ b/core/runtime-services/src/main/java/org/apache/isis/runtime/services/confmenu/ConfigurationViewServiceDefault.java
@@ -26,8 +26,6 @@ import javax.annotation.PostConstruct;
import javax.inject.Inject;
import javax.inject.Named;
-import org.apache.isis.applib.annotation.DomainService;
-import org.apache.isis.applib.annotation.NatureOfService;
import org.apache.isis.applib.annotation.OrderPrecedence;
import org.apache.isis.applib.services.confview.ConfigurationProperty;
import org.apache.isis.applib.services.confview.ConfigurationViewService;
@@ -35,9 +33,9 @@ import org.apache.isis.commons.internal.base._Lazy;
import org.apache.isis.commons.internal.base._Strings;
import org.apache.isis.commons.internal.collections._Maps;
import org.apache.isis.commons.internal.environment.IsisSystemEnvironment;
-import org.apache.isis.config.ConfigurationConstants;
import org.apache.isis.config.IsisConfiguration;
import org.apache.isis.config.util.ConfigUtil;
+import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Primary;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Service;
@@ -50,8 +48,9 @@ import lombok.extern.log4j.Log4j2;
*/
@Service
@Named("isisRuntimeServices.ConfigurationViewServiceDefault")
-@Order(OrderPrecedence.DEFAULT)
+@Order(OrderPrecedence.MIDPOINT)
@Primary
+@Qualifier("Default")
@Log4j2
public class ConfigurationViewServiceDefault implements ConfigurationViewService {
diff --git a/core/runtime-services/src/main/java/org/apache/isis/runtime/services/email/EmailServiceDefault.java b/core/runtime-services/src/main/java/org/apache/isis/runtime/services/email/EmailServiceDefault.java
index 50fd4cc..24b5af0 100644
--- a/core/runtime-services/src/main/java/org/apache/isis/runtime/services/email/EmailServiceDefault.java
+++ b/core/runtime-services/src/main/java/org/apache/isis/runtime/services/email/EmailServiceDefault.java
@@ -32,12 +32,11 @@ import org.apache.commons.mail.EmailException;
import org.apache.commons.mail.ImageHtmlEmail;
import org.apache.commons.mail.resolver.DataSourceClassPathResolver;
-import org.apache.isis.applib.annotation.DomainService;
-import org.apache.isis.applib.annotation.NatureOfService;
import org.apache.isis.applib.annotation.OrderPrecedence;
import org.apache.isis.applib.services.email.EmailService;
import org.apache.isis.commons.internal.base._Strings;
import org.apache.isis.config.IsisConfiguration;
+import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Primary;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Service;
@@ -49,8 +48,9 @@ import lombok.extern.log4j.Log4j2;
*/
@Service
@Named("isisRuntimeServices.EmailServiceDefault")
-@Order(OrderPrecedence.DEFAULT)
+@Order(OrderPrecedence.MIDPOINT)
@Primary
+@Qualifier("Default")
@Log4j2
public class EmailServiceDefault implements EmailService {
diff --git a/core/runtime-services/src/main/java/org/apache/isis/runtime/services/eventbus/EventBusServiceSpring.java b/core/runtime-services/src/main/java/org/apache/isis/runtime/services/eventbus/EventBusServiceSpring.java
index 6be08c7..caa56fb 100644
--- a/core/runtime-services/src/main/java/org/apache/isis/runtime/services/eventbus/EventBusServiceSpring.java
+++ b/core/runtime-services/src/main/java/org/apache/isis/runtime/services/eventbus/EventBusServiceSpring.java
@@ -24,6 +24,7 @@ import javax.inject.Inject;
import javax.inject.Named;
import org.apache.isis.applib.annotation.OrderPrecedence;
+import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.ApplicationEventPublisher;
import org.springframework.context.annotation.Primary;
import org.springframework.core.annotation.Order;
@@ -33,8 +34,9 @@ import org.apache.isis.applib.services.eventbus.EventBusService;
@Service
@Named("isisRuntimeServices.EventBusServiceSpring")
-@Order(OrderPrecedence.DEFAULT)
+@Order(OrderPrecedence.MIDPOINT)
@Primary
+@Qualifier("Spring")
@Log4j2
public class EventBusServiceSpring implements EventBusService {
diff --git a/core/runtime-services/src/main/java/org/apache/isis/runtime/services/factory/FactoryServiceDefault.java b/core/runtime-services/src/main/java/org/apache/isis/runtime/services/factory/FactoryServiceDefault.java
index 8ac32d7..d8b5520 100644
--- a/core/runtime-services/src/main/java/org/apache/isis/runtime/services/factory/FactoryServiceDefault.java
+++ b/core/runtime-services/src/main/java/org/apache/isis/runtime/services/factory/FactoryServiceDefault.java
@@ -26,6 +26,7 @@ import javax.inject.Inject;
import javax.inject.Named;
import org.apache.isis.applib.annotation.OrderPrecedence;
+import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Primary;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Service;
@@ -49,8 +50,9 @@ import lombok.val;
@Service
@Named("isisRuntimeServices.FactoryServiceDefault")
-@Order(OrderPrecedence.DEFAULT)
+@Order(OrderPrecedence.MIDPOINT)
@Primary
+@Qualifier("Default")
@Log4j2
public class FactoryServiceDefault implements FactoryService {
diff --git a/core/runtime-services/src/main/java/org/apache/isis/runtime/services/homepage/HomePageResolverServiceDefault.java b/core/runtime-services/src/main/java/org/apache/isis/runtime/services/homepage/HomePageResolverServiceDefault.java
index 02cc17a..3f475a2 100644
--- a/core/runtime-services/src/main/java/org/apache/isis/runtime/services/homepage/HomePageResolverServiceDefault.java
+++ b/core/runtime-services/src/main/java/org/apache/isis/runtime/services/homepage/HomePageResolverServiceDefault.java
@@ -24,6 +24,7 @@ import javax.inject.Named;
import org.apache.isis.applib.annotation.*;
import org.apache.isis.commons.internal.ioc.ManagedBeanAdapter;
+import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Primary;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Service;
@@ -50,8 +51,9 @@ import lombok.val;
@Service
@Named("isisRuntimeServices.HomePageResolverServiceDefault")
-@Order(OrderPrecedence.DEFAULT)
+@Order(OrderPrecedence.MIDPOINT)
@Primary
+@Qualifier("Default")
@Log4j2
public class HomePageResolverServiceDefault implements HomePageResolverService {
diff --git a/core/runtime-services/src/main/java/org/apache/isis/runtime/services/i18n/po/TranslationServicePo.java b/core/runtime-services/src/main/java/org/apache/isis/runtime/services/i18n/po/TranslationServicePo.java
index c1c973a..8de915e 100644
--- a/core/runtime-services/src/main/java/org/apache/isis/runtime/services/i18n/po/TranslationServicePo.java
+++ b/core/runtime-services/src/main/java/org/apache/isis/runtime/services/i18n/po/TranslationServicePo.java
@@ -26,6 +26,7 @@ import javax.inject.Inject;
import javax.inject.Named;
import org.apache.isis.applib.annotation.OrderPrecedence;
+import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Primary;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Service;
@@ -41,8 +42,9 @@ import org.apache.isis.config.IsisConfiguration;
@Service
@Named("isisRuntimeServices.TranslationServicePo")
-@Order(OrderPrecedence.DEFAULT)
+@Order(OrderPrecedence.MIDPOINT)
@Primary
+@Qualifier("Po")
@Log4j2
public class TranslationServicePo implements TranslationService {
diff --git a/core/runtime-services/src/main/java/org/apache/isis/runtime/services/ixn/InteractionDtoServiceInternalDefault.java b/core/runtime-services/src/main/java/org/apache/isis/runtime/services/ixn/InteractionDtoServiceInternalDefault.java
index 887754f..4a27c3f 100644
--- a/core/runtime-services/src/main/java/org/apache/isis/runtime/services/ixn/InteractionDtoServiceInternalDefault.java
+++ b/core/runtime-services/src/main/java/org/apache/isis/runtime/services/ixn/InteractionDtoServiceInternalDefault.java
@@ -26,8 +26,6 @@ import java.util.List;
import javax.inject.Inject;
import javax.inject.Named;
-import org.apache.isis.applib.annotation.DomainService;
-import org.apache.isis.applib.annotation.NatureOfService;
import org.apache.isis.applib.annotation.OrderPrecedence;
import org.apache.isis.applib.services.bookmark.Bookmark;
import org.apache.isis.applib.services.bookmark.BookmarkService;
@@ -48,14 +46,16 @@ import org.apache.isis.schema.ixn.v1.ActionInvocationDto;
import org.apache.isis.schema.ixn.v1.PropertyEditDto;
import org.apache.isis.applib.util.schema.CommandDtoUtils;
import org.apache.isis.applib.util.schema.InteractionDtoUtils;
+import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Primary;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Service;
@Service
@Named("isisRuntimeServices.InteractionDtoServiceInternalDefault")
-@Order(OrderPrecedence.DEFAULT)
+@Order(OrderPrecedence.MIDPOINT)
@Primary
+@Qualifier("Default")
@Log4j2
public class InteractionDtoServiceInternalDefault implements InteractionDtoServiceInternal {
diff --git a/core/runtime-services/src/main/java/org/apache/isis/runtime/services/menubars/MenuBarsLoaderServiceDefault.java b/core/runtime-services/src/main/java/org/apache/isis/runtime/services/menubars/MenuBarsLoaderServiceDefault.java
index bf76682..67b6a47 100644
--- a/core/runtime-services/src/main/java/org/apache/isis/runtime/services/menubars/MenuBarsLoaderServiceDefault.java
+++ b/core/runtime-services/src/main/java/org/apache/isis/runtime/services/menubars/MenuBarsLoaderServiceDefault.java
@@ -26,6 +26,7 @@ import javax.inject.Named;
import org.apache.isis.applib.annotation.OrderPrecedence;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Primary;
import org.springframework.core.annotation.Order;
import org.springframework.core.io.AbstractResource;
@@ -43,8 +44,9 @@ import lombok.extern.log4j.Log4j2;
@Service
@Named("isisRuntimeServices.MenuBarsLoaderServiceDefault")
-@Order(OrderPrecedence.DEFAULT)
+@Order(OrderPrecedence.MIDPOINT)
@Primary
+@Qualifier("Default")
@Log4j2
public class MenuBarsLoaderServiceDefault implements MenuBarsLoaderService {
diff --git a/core/runtime-services/src/main/java/org/apache/isis/runtime/services/menubars/bootstrap3/MenuBarsServiceBS3.java b/core/runtime-services/src/main/java/org/apache/isis/runtime/services/menubars/bootstrap3/MenuBarsServiceBS3.java
index 25d5381..b0d1db1 100644
--- a/core/runtime-services/src/main/java/org/apache/isis/runtime/services/menubars/bootstrap3/MenuBarsServiceBS3.java
+++ b/core/runtime-services/src/main/java/org/apache/isis/runtime/services/menubars/bootstrap3/MenuBarsServiceBS3.java
@@ -29,6 +29,7 @@ import javax.inject.Inject;
import javax.inject.Named;
import org.apache.isis.applib.annotation.OrderPrecedence;
+import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Primary;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Service;
@@ -68,8 +69,9 @@ import lombok.extern.log4j.Log4j2;
@Service
@Named("isisRuntimeServices.MenuBarsServiceBS3")
-@Order(OrderPrecedence.DEFAULT)
+@Order(OrderPrecedence.MIDPOINT)
@Primary
+@Qualifier("BS3")
@Log4j2
public class MenuBarsServiceBS3 implements MenuBarsService {
diff --git a/core/runtime-services/src/main/java/org/apache/isis/runtime/services/message/MessageServiceDefault.java b/core/runtime-services/src/main/java/org/apache/isis/runtime/services/message/MessageServiceDefault.java
index 7118f60..3628d69 100644
--- a/core/runtime-services/src/main/java/org/apache/isis/runtime/services/message/MessageServiceDefault.java
+++ b/core/runtime-services/src/main/java/org/apache/isis/runtime/services/message/MessageServiceDefault.java
@@ -24,6 +24,7 @@ import javax.inject.Inject;
import javax.inject.Named;
import org.apache.isis.applib.annotation.OrderPrecedence;
+import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Primary;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Service;
@@ -37,8 +38,9 @@ import org.apache.isis.security.api.authentication.MessageBroker;
@Service
@Named("isisRuntimeServices.MessageServiceDefault")
-@Order(OrderPrecedence.DEFAULT)
+@Order(OrderPrecedence.MIDPOINT)
@Primary
+@Qualifier("Default")
@Log4j2
public class MessageServiceDefault implements MessageService {
diff --git a/core/runtime-services/src/main/java/org/apache/isis/runtime/services/publish/PublishingServiceInternalDefault.java b/core/runtime-services/src/main/java/org/apache/isis/runtime/services/publish/PublisherDispatchServiceDefault.java
similarity index 93%
rename from core/runtime-services/src/main/java/org/apache/isis/runtime/services/publish/PublishingServiceInternalDefault.java
rename to core/runtime-services/src/main/java/org/apache/isis/runtime/services/publish/PublisherDispatchServiceDefault.java
index 425f38d..8671c59 100644
--- a/core/runtime-services/src/main/java/org/apache/isis/runtime/services/publish/PublishingServiceInternalDefault.java
+++ b/core/runtime-services/src/main/java/org/apache/isis/runtime/services/publish/PublisherDispatchServiceDefault.java
@@ -32,8 +32,6 @@ import javax.enterprise.context.RequestScoped;
import javax.inject.Inject;
import javax.inject.Named;
-import org.apache.isis.applib.annotation.DomainService;
-import org.apache.isis.applib.annotation.NatureOfService;
import org.apache.isis.applib.annotation.OrderPrecedence;
import org.apache.isis.applib.annotation.PublishingChangeKind;
import org.apache.isis.applib.services.clock.ClockService;
@@ -48,8 +46,9 @@ import org.apache.isis.applib.services.user.UserService;
import org.apache.isis.commons.internal.collections._Maps;
import org.apache.isis.metamodel.adapter.ObjectAdapter;
import org.apache.isis.metamodel.facets.object.publishedobject.PublishedObjectFacet;
-import org.apache.isis.metamodel.services.publishing.PublishingServiceInternal;
-import org.apache.isis.runtime.system.transaction.ChangedObjectsServiceInternal;
+import org.apache.isis.metamodel.services.publishing.PublisherDispatchService;
+import org.apache.isis.runtime.system.transaction.ChangedObjectsService;
+import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Primary;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Service;
@@ -58,12 +57,13 @@ import org.springframework.stereotype.Service;
* Wrapper around {@link PublisherService}. Is a no-op if there is no injected service.
*/
@Service
-@Named("isisRuntimeServices.PublishingServiceInternalDefault")
-@Order(OrderPrecedence.DEFAULT)
+@Named("isisRuntimeServices.PublisherDispatchServiceDefault")
+@Order(OrderPrecedence.MIDPOINT)
@Primary
@RequestScoped
+@Qualifier("Default")
@Log4j2
-public class PublishingServiceInternalDefault implements PublishingServiceInternal {
+public class PublisherDispatchServiceDefault implements PublisherDispatchService {
@Override
@@ -176,7 +176,8 @@ public class PublishingServiceInternalDefault implements PublishingServiceIntern
// -- injected services
@Inject List<PublisherService> publisherServices;
- @Inject ChangedObjectsServiceInternal changedObjectsServiceInternal;
+ @Inject
+ ChangedObjectsService changedObjectsServiceInternal;
@Inject CommandContext commandContext;
@Inject InteractionContext interactionContext;
@Inject ClockService clockService;
diff --git a/core/runtime-services/src/main/java/org/apache/isis/runtime/services/sessmgmt/SessionManagementServiceDefault.java b/core/runtime-services/src/main/java/org/apache/isis/runtime/services/sessmgmt/SessionManagementServiceDefault.java
index d815307..a5096e0 100644
--- a/core/runtime-services/src/main/java/org/apache/isis/runtime/services/sessmgmt/SessionManagementServiceDefault.java
+++ b/core/runtime-services/src/main/java/org/apache/isis/runtime/services/sessmgmt/SessionManagementServiceDefault.java
@@ -23,6 +23,7 @@ import javax.inject.Inject;
import javax.inject.Named;
import org.apache.isis.applib.annotation.OrderPrecedence;
+import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Primary;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Service;
@@ -36,8 +37,9 @@ import lombok.val;
@Service
@Named("isisRuntimeServices.SessionManagementServiceDefault")
-@Order(OrderPrecedence.DEFAULT)
+@Order(OrderPrecedence.MIDPOINT)
@Primary
+@Qualifier("Default")
@Log4j2
public class SessionManagementServiceDefault implements SessionManagementService {
diff --git a/core/runtime-services/src/main/java/org/apache/isis/runtime/services/sudo/SudoServiceDefault.java b/core/runtime-services/src/main/java/org/apache/isis/runtime/services/sudo/SudoServiceDefault.java
index 0168093..4cf0e44 100644
--- a/core/runtime-services/src/main/java/org/apache/isis/runtime/services/sudo/SudoServiceDefault.java
+++ b/core/runtime-services/src/main/java/org/apache/isis/runtime/services/sudo/SudoServiceDefault.java
@@ -27,18 +27,18 @@ import java.util.concurrent.Callable;
import javax.inject.Inject;
import javax.inject.Named;
-import org.apache.isis.applib.annotation.DomainService;
-import org.apache.isis.applib.annotation.NatureOfService;
import org.apache.isis.applib.annotation.OrderPrecedence;
import org.apache.isis.applib.services.sudo.SudoService;
+import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Primary;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Service;
@Service
@Named("isisRuntimeServices.SudoServiceDefault")
-@Order(OrderPrecedence.DEFAULT)
+@Order(OrderPrecedence.MIDPOINT)
@Primary
+@Qualifier("Default")
@Log4j2
public class SudoServiceDefault implements SudoService {
diff --git a/core/runtime-services/src/main/java/org/apache/isis/runtime/services/userprof/UserProfileServiceDefault.java b/core/runtime-services/src/main/java/org/apache/isis/runtime/services/userprof/UserProfileServiceDefault.java
index 9aa19f7..990c8e1 100644
--- a/core/runtime-services/src/main/java/org/apache/isis/runtime/services/userprof/UserProfileServiceDefault.java
+++ b/core/runtime-services/src/main/java/org/apache/isis/runtime/services/userprof/UserProfileServiceDefault.java
@@ -23,20 +23,20 @@ import lombok.extern.log4j.Log4j2;
import javax.inject.Inject;
import javax.inject.Named;
-import org.apache.isis.applib.annotation.DomainService;
-import org.apache.isis.applib.annotation.NatureOfService;
import org.apache.isis.applib.annotation.OrderPrecedence;
import org.apache.isis.applib.annotation.Programmatic;
import org.apache.isis.applib.services.userprof.UserProfileService;
import org.apache.isis.security.api.authentication.AuthenticationSessionProvider;
+import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Primary;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Service;
@Service
@Named("isisRuntimeServices.UserProfileServiceDefault")
-@Order(OrderPrecedence.DEFAULT)
+@Order(OrderPrecedence.MIDPOINT)
@Primary
+@Qualifier("Default")
@Log4j2
public class UserProfileServiceDefault implements UserProfileService {
diff --git a/core/runtime-services/src/main/java/org/apache/isis/runtime/services/userreg/EmailNotificationServiceDefault.java b/core/runtime-services/src/main/java/org/apache/isis/runtime/services/userreg/EmailNotificationServiceDefault.java
index 22d678f..5d74176 100644
--- a/core/runtime-services/src/main/java/org/apache/isis/runtime/services/userreg/EmailNotificationServiceDefault.java
+++ b/core/runtime-services/src/main/java/org/apache/isis/runtime/services/userreg/EmailNotificationServiceDefault.java
@@ -30,8 +30,6 @@ import javax.annotation.PostConstruct;
import javax.inject.Inject;
import javax.inject.Named;
-import org.apache.isis.applib.annotation.DomainService;
-import org.apache.isis.applib.annotation.NatureOfService;
import org.apache.isis.applib.annotation.OrderPrecedence;
import org.apache.isis.applib.services.email.EmailService;
import org.apache.isis.applib.services.userreg.EmailNotificationService;
@@ -39,6 +37,7 @@ import org.apache.isis.applib.services.userreg.events.EmailEventAbstract;
import org.apache.isis.applib.services.userreg.events.EmailRegistrationEvent;
import org.apache.isis.applib.services.userreg.events.PasswordResetEvent;
import org.apache.isis.commons.internal.resources._Resources;
+import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Primary;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Service;
@@ -51,8 +50,9 @@ import static java.util.regex.Pattern.quote;
*/
@Service
@Named("isisRuntimeServices.EmailNotificationServiceDefault")
-@Order(OrderPrecedence.DEFAULT)
+@Order(OrderPrecedence.MIDPOINT)
@Primary
+@Qualifier("Default")
@Log4j2
public class EmailNotificationServiceDefault implements EmailNotificationService {
diff --git a/core/runtime-services/src/main/java/org/apache/isis/runtime/services/wrapper/WrapperFactoryDefault.java b/core/runtime-services/src/main/java/org/apache/isis/runtime/services/wrapper/WrapperFactoryDefault.java
index 8d78a9d..38d60ea 100644
--- a/core/runtime-services/src/main/java/org/apache/isis/runtime/services/wrapper/WrapperFactoryDefault.java
+++ b/core/runtime-services/src/main/java/org/apache/isis/runtime/services/wrapper/WrapperFactoryDefault.java
@@ -33,6 +33,7 @@ import javax.inject.Inject;
import javax.inject.Named;
import org.apache.isis.applib.annotation.OrderPrecedence;
+import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Primary;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Service;
@@ -80,8 +81,9 @@ import lombok.extern.log4j.Log4j2;
*/
@Service
@Named("isisRuntimeServices.WrapperFactoryDefault")
-@Order(OrderPrecedence.DEFAULT)
+@Order(OrderPrecedence.MIDPOINT)
@Primary
+@Qualifier("Default")
@Log4j2
public class WrapperFactoryDefault implements WrapperFactory {
diff --git a/core/runtime-services/src/main/java/org/apache/isis/runtime/services/xactn/TransactionServiceSpring.java b/core/runtime-services/src/main/java/org/apache/isis/runtime/services/xactn/TransactionServiceSpring.java
index 4c00bf4..9eb0ef8 100644
--- a/core/runtime-services/src/main/java/org/apache/isis/runtime/services/xactn/TransactionServiceSpring.java
+++ b/core/runtime-services/src/main/java/org/apache/isis/runtime/services/xactn/TransactionServiceSpring.java
@@ -25,6 +25,7 @@ import javax.annotation.Nonnull;
import javax.inject.Named;
import org.apache.isis.applib.annotation.OrderPrecedence;
+import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Primary;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Service;
@@ -46,8 +47,9 @@ import lombok.extern.log4j.Log4j2;
@Service
@Named("isisRuntimeServices.TransactionServiceSpring")
-@Order(OrderPrecedence.DEFAULT)
+@Order(OrderPrecedence.MIDPOINT)
@Primary
+@Qualifier("Spring")
@Log4j2
public class TransactionServiceSpring implements TransactionService {
diff --git a/core/runtime-services/src/main/java/org/apache/isis/runtime/services/xmlsnapshot/XmlSnapshotServiceDefault.java b/core/runtime-services/src/main/java/org/apache/isis/runtime/services/xmlsnapshot/XmlSnapshotServiceDefault.java
index 07579fe..0940b8a 100644
--- a/core/runtime-services/src/main/java/org/apache/isis/runtime/services/xmlsnapshot/XmlSnapshotServiceDefault.java
+++ b/core/runtime-services/src/main/java/org/apache/isis/runtime/services/xmlsnapshot/XmlSnapshotServiceDefault.java
@@ -24,6 +24,7 @@ import javax.inject.Inject;
import javax.inject.Named;
import org.apache.isis.applib.annotation.OrderPrecedence;
+import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Primary;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Service;
@@ -45,8 +46,9 @@ import org.apache.isis.metamodel.util.snapshot.XmlSnapshot;
*/
@Service
@Named("isisRuntimeServices.XmlSnapshotServiceDefault")
-@Order(OrderPrecedence.DEFAULT)
+@Order(OrderPrecedence.MIDPOINT)
@Primary
+@Qualifier("Default")
@Log4j2
public class XmlSnapshotServiceDefault extends XmlSnapshotServiceAbstract {
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 389ab00..f859396 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
@@ -28,8 +28,8 @@ 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.apache.isis.runtime.system.transaction.AuditerDispatchService;
+import org.apache.isis.runtime.system.transaction.ChangedObjectsService;
@Configuration
@Import({
@@ -41,8 +41,8 @@ import org.apache.isis.runtime.system.transaction.ChangedObjectsServiceInternal;
PersistenceEventService.class,
TimestampService.class,
IsisSessionFactoryDefault.class,
- AuditingServiceInternal.class,
- ChangedObjectsServiceInternal.class,
+ AuditerDispatchService.class,
+ ChangedObjectsService.class,
// @Configuration's
RuntimeEventSupport_Spring.class,
diff --git a/core/runtime/src/main/java/org/apache/isis/runtime/system/context/session/RuntimeEventService.java b/core/runtime/src/main/java/org/apache/isis/runtime/system/context/session/RuntimeEventService.java
index a934ad2..fa5ea6f 100644
--- a/core/runtime/src/main/java/org/apache/isis/runtime/system/context/session/RuntimeEventService.java
+++ b/core/runtime/src/main/java/org/apache/isis/runtime/system/context/session/RuntimeEventService.java
@@ -24,6 +24,7 @@ import javax.inject.Inject;
import javax.inject.Named;
import org.apache.isis.applib.annotation.OrderPrecedence;
+import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Primary;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Service;
@@ -39,8 +40,9 @@ import org.apache.isis.runtime.system.session.IsisSession;
*/
@Service
@Named("isisRuntime.RuntimeEventService")
-@Order(OrderPrecedence.DEFAULT)
+@Order(OrderPrecedence.MIDPOINT)
@Primary
+@Qualifier("Default")
@Log4j2
public class RuntimeEventService {
diff --git a/core/runtime/src/main/java/org/apache/isis/runtime/system/persistence/events/PersistenceEventService.java b/core/runtime/src/main/java/org/apache/isis/runtime/system/persistence/events/PersistenceEventService.java
index b840bab..8bde4d5 100644
--- a/core/runtime/src/main/java/org/apache/isis/runtime/system/persistence/events/PersistenceEventService.java
+++ b/core/runtime/src/main/java/org/apache/isis/runtime/system/persistence/events/PersistenceEventService.java
@@ -25,6 +25,7 @@ import javax.inject.Inject;
import javax.inject.Named;
import org.apache.isis.applib.annotation.OrderPrecedence;
+import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Primary;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Service;
@@ -36,8 +37,9 @@ import org.springframework.stereotype.Service;
*/
@Service
@Named("isisRuntime.PersistenceEventService")
-@Order(OrderPrecedence.DEFAULT)
+@Order(OrderPrecedence.MIDPOINT)
@Primary
+@Qualifier("Default")
@Log4j2
public class PersistenceEventService {
diff --git a/core/runtime/src/main/java/org/apache/isis/runtime/system/persistence/events/TimestampService.java b/core/runtime/src/main/java/org/apache/isis/runtime/system/persistence/events/TimestampService.java
index 78c36cc..1d60bcf 100644
--- a/core/runtime/src/main/java/org/apache/isis/runtime/system/persistence/events/TimestampService.java
+++ b/core/runtime/src/main/java/org/apache/isis/runtime/system/persistence/events/TimestampService.java
@@ -22,6 +22,7 @@ import javax.inject.Inject;
import javax.inject.Named;
import org.apache.isis.applib.annotation.OrderPrecedence;
+import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Primary;
import org.springframework.context.event.EventListener;
import org.springframework.core.annotation.Order;
@@ -32,14 +33,14 @@ import org.apache.isis.applib.mixins.timestamp.HoldsUpdatedBy;
import org.apache.isis.applib.services.clock.ClockService;
import org.apache.isis.applib.services.user.UserService;
-import lombok.extern.java.Log;
import lombok.extern.log4j.Log4j2;
import lombok.val;
@Service
@Named("isisRuntime.TimestampService")
-@Order(OrderPrecedence.DEFAULT)
+@Order(OrderPrecedence.MIDPOINT)
@Primary
+@Qualifier("Default")
@Log4j2
public class TimestampService {
diff --git a/core/runtime/src/main/java/org/apache/isis/runtime/system/session/IsisSessionFactoryDefault.java b/core/runtime/src/main/java/org/apache/isis/runtime/system/session/IsisSessionFactoryDefault.java
index ee9df7b..bdd018c 100644
--- a/core/runtime/src/main/java/org/apache/isis/runtime/system/session/IsisSessionFactoryDefault.java
+++ b/core/runtime/src/main/java/org/apache/isis/runtime/system/session/IsisSessionFactoryDefault.java
@@ -28,6 +28,7 @@ import javax.inject.Inject;
import javax.inject.Named;
import org.apache.isis.applib.annotation.OrderPrecedence;
+import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Primary;
import org.springframework.context.event.ContextRefreshedEvent;
import org.springframework.context.event.EventListener;
@@ -68,8 +69,9 @@ import lombok.extern.log4j.Log4j2;
*/
@Service
@Named("isisRuntime.IsisSessionFactoryDefault")
-@Order(OrderPrecedence.DEFAULT)
+@Order(OrderPrecedence.MIDPOINT)
@Primary
+@Qualifier("Default")
@Log4j2
public class IsisSessionFactoryDefault implements IsisSessionFactory {
diff --git a/core/runtime/src/main/java/org/apache/isis/runtime/system/transaction/AuditingServiceInternal.java b/core/runtime/src/main/java/org/apache/isis/runtime/system/transaction/AuditerDispatchService.java
similarity index 93%
rename from core/runtime/src/main/java/org/apache/isis/runtime/system/transaction/AuditingServiceInternal.java
rename to core/runtime/src/main/java/org/apache/isis/runtime/system/transaction/AuditerDispatchService.java
index ce43ea1..f53a331 100644
--- a/core/runtime/src/main/java/org/apache/isis/runtime/system/transaction/AuditingServiceInternal.java
+++ b/core/runtime/src/main/java/org/apache/isis/runtime/system/transaction/AuditerDispatchService.java
@@ -27,6 +27,7 @@ import javax.inject.Inject;
import javax.inject.Named;
import org.apache.isis.applib.annotation.OrderPrecedence;
+import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Primary;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Service;
@@ -47,14 +48,15 @@ import lombok.val;
* Wrapper around {@link org.apache.isis.applib.services.audit.AuditerService}.
*/
@Service
-@Named("isisRuntime.AuditingServiceInternal")
+@Named("isisRuntime.AuditerDispatchService")
@Order(OrderPrecedence.HIGH)
@Primary
+@Qualifier("Default")
@Log4j2
-public class AuditingServiceInternal {
+public class AuditerDispatchService {
@Inject private List<AuditerService> auditerServices;
- @Inject private ChangedObjectsServiceInternal changedObjectsServiceInternal;
+ @Inject private ChangedObjectsService changedObjectsService;
@Inject private UserService userService;
@Inject private ClockService clockService;
@Inject private TransactionService transactionService;
@@ -82,7 +84,7 @@ public class AuditingServiceInternal {
return;
}
final Set<Map.Entry<AdapterAndProperty, PreAndPostValues>> changedObjectProperties =
- changedObjectsServiceInternal.getChangedObjectProperties();
+ changedObjectsService.getChangedObjectProperties();
final String currentUser = userService.getUser().getName();
final java.sql.Timestamp currentTime = clockService.nowAsJavaSqlTimestamp();
diff --git a/core/runtime/src/main/java/org/apache/isis/runtime/system/transaction/ChangedObjectsServiceInternal.java b/core/runtime/src/main/java/org/apache/isis/runtime/system/transaction/ChangedObjectsService.java
similarity index 98%
rename from core/runtime/src/main/java/org/apache/isis/runtime/system/transaction/ChangedObjectsServiceInternal.java
rename to core/runtime/src/main/java/org/apache/isis/runtime/system/transaction/ChangedObjectsService.java
index 88e3ca6..243dd31 100644
--- a/core/runtime/src/main/java/org/apache/isis/runtime/system/transaction/ChangedObjectsServiceInternal.java
+++ b/core/runtime/src/main/java/org/apache/isis/runtime/system/transaction/ChangedObjectsService.java
@@ -29,6 +29,7 @@ import javax.enterprise.context.RequestScoped;
import javax.inject.Named;
import org.apache.isis.applib.annotation.OrderPrecedence;
+import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Primary;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Service;
@@ -48,12 +49,13 @@ import lombok.extern.log4j.Log4j2;
import lombok.val;
@Service
-@Named("isisRuntime.ChangedObjectsServiceInternal")
+@Named("isisRuntime.ChangedObjectsService")
@Order(OrderPrecedence.HIGH)
@Primary
+@Qualifier("Default")
@RequestScoped
@Log4j2
-public class ChangedObjectsServiceInternal implements WithTransactionScope {
+public class ChangedObjectsService implements WithTransactionScope {
/**
* Used for auditing: this contains the pre- values of every property of every object enlisted.
diff --git a/core/runtime/src/main/java/org/apache/isis/runtime/system/transaction/PreAndPostValues.java b/core/runtime/src/main/java/org/apache/isis/runtime/system/transaction/PreAndPostValues.java
index f8a49c4..9ffbe14 100644
--- a/core/runtime/src/main/java/org/apache/isis/runtime/system/transaction/PreAndPostValues.java
+++ b/core/runtime/src/main/java/org/apache/isis/runtime/system/transaction/PreAndPostValues.java
@@ -54,7 +54,7 @@ public class PreAndPostValues {
private PreAndPostValues(Object pre, Object post) {
this.pre = pre;
this.post = post;
- this.preString = ChangedObjectsServiceInternal.asString(pre);
+ this.preString = ChangedObjectsService.asString(pre);
}
/**
@@ -82,7 +82,7 @@ public class PreAndPostValues {
public void setPost(Object post) {
this.post = post;
- this.postString = ChangedObjectsServiceInternal.asString(post);
+ this.postString = ChangedObjectsService.asString(post);
}
@Override
diff --git a/core/security/api/src/main/java/org/apache/isis/security/api/IsisModuleSecurityApi.java b/core/security/api/src/main/java/org/apache/isis/security/api/IsisModuleSecurityApi.java
index 85cc6d2..fbe7609 100644
--- a/core/security/api/src/main/java/org/apache/isis/security/api/IsisModuleSecurityApi.java
+++ b/core/security/api/src/main/java/org/apache/isis/security/api/IsisModuleSecurityApi.java
@@ -18,14 +18,14 @@
*/
package org.apache.isis.security.api;
-import org.apache.isis.security.api.authentication.standard.AuthenticationManagerStandard;
+import org.apache.isis.security.api.authentication.standard.AuthenticationManagerDefault;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
@Configuration
@Import({
// @Service's
- AuthenticationManagerStandard.class
+ AuthenticationManagerDefault.class
})
public class IsisModuleSecurityApi {
}
diff --git a/core/security/api/src/main/java/org/apache/isis/security/api/authentication/AuthenticationSession.java b/core/security/api/src/main/java/org/apache/isis/security/api/authentication/AuthenticationSession.java
index c6ee9f9..14fc5e6 100644
--- a/core/security/api/src/main/java/org/apache/isis/security/api/authentication/AuthenticationSession.java
+++ b/core/security/api/src/main/java/org/apache/isis/security/api/authentication/AuthenticationSession.java
@@ -27,7 +27,7 @@ import java.util.stream.Stream;
import org.apache.isis.applib.security.UserMemento;
import org.apache.isis.commons.internal.encoding.Encodable;
import org.apache.isis.security.api.authentication.manager.AuthenticationManager;
-import org.apache.isis.security.api.authentication.standard.AuthenticationManagerStandard;
+import org.apache.isis.security.api.authentication.standard.AuthenticationManagerDefault;
/**
* The representation within the system of an authenticated user.
@@ -102,7 +102,7 @@ public interface AuthenticationSession extends Encodable, Serializable {
public enum Type {
DEFAULT,
/**
- * Instructs the {@link AuthenticationManagerStandard} to not cache this session in its internal map of
+ * Instructs the {@link AuthenticationManagerDefault} to not cache this session in its internal map of
* sessions by validation code, and therefore to ignore this aspect when considering if an
* {@link AuthenticationSession} is
* {@link AuthenticationManager#isSessionValid(AuthenticationSession) valid} or not.
diff --git a/core/security/api/src/main/java/org/apache/isis/security/api/authentication/fixtures/AuthenticationRequestLogonFixture.java b/core/security/api/src/main/java/org/apache/isis/security/api/authentication/fixtures/AuthenticationRequestLogonFixture.java
index ba95b49..3d62f58 100644
--- a/core/security/api/src/main/java/org/apache/isis/security/api/authentication/fixtures/AuthenticationRequestLogonFixture.java
+++ b/core/security/api/src/main/java/org/apache/isis/security/api/authentication/fixtures/AuthenticationRequestLogonFixture.java
@@ -24,13 +24,13 @@ import java.util.Collections;
import org.apache.isis.commons.internal.collections._Lists;
import org.apache.isis.security.api.authentication.AuthenticationRequestAbstract;
-import org.apache.isis.security.api.authentication.standard.AuthenticationManagerStandard;
+import org.apache.isis.security.api.authentication.standard.AuthenticationManagerDefault;
/**
* For testing purposes, request corresponding to a {@link LogonFixture}.
*
* <p>
- * Understood directly by {@link AuthenticationManagerStandard}.
+ * Understood directly by {@link AuthenticationManagerDefault}.
*/
public class AuthenticationRequestLogonFixture extends AuthenticationRequestAbstract {
diff --git a/core/security/api/src/main/java/org/apache/isis/security/api/authentication/standard/AuthenticationManagerStandard.java b/core/security/api/src/main/java/org/apache/isis/security/api/authentication/standard/AuthenticationManagerDefault.java
similarity index 92%
rename from core/security/api/src/main/java/org/apache/isis/security/api/authentication/standard/AuthenticationManagerStandard.java
rename to core/security/api/src/main/java/org/apache/isis/security/api/authentication/standard/AuthenticationManagerDefault.java
index 3d0ae67..59a7f42 100644
--- a/core/security/api/src/main/java/org/apache/isis/security/api/authentication/standard/AuthenticationManagerStandard.java
+++ b/core/security/api/src/main/java/org/apache/isis/security/api/authentication/standard/AuthenticationManagerDefault.java
@@ -39,6 +39,7 @@ import org.apache.isis.security.api.authentication.AuthenticationRequest;
import org.apache.isis.security.api.authentication.AuthenticationSession;
import org.apache.isis.security.api.authentication.manager.AuthenticationManager;
import org.apache.isis.security.api.authentication.manager.RegistrationDetails;
+import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Primary;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Service;
@@ -50,11 +51,12 @@ import lombok.extern.log4j.Log4j2;
import lombok.val;
@Service
-@Named("isisSecurityApi.AuthenticationManagerStandard")
-@Order(OrderPrecedence.DEFAULT)
+@Named("isisSecurityApi.AuthenticationManagerDefault")
+@Order(OrderPrecedence.MIDPOINT)
@Primary
+@Qualifier("Default")
@Log4j2
-public class AuthenticationManagerStandard implements AuthenticationManager {
+public class AuthenticationManagerDefault implements AuthenticationManager {
@Inject private ServiceRegistry serviceRegistry;
@@ -178,8 +180,8 @@ public class AuthenticationManagerStandard implements AuthenticationManager {
// -- DEBUGGING
- private final static ToString<AuthenticationManagerStandard> toString =
- ToString.<AuthenticationManagerStandard>toString("class", obj->obj.getClass().getSimpleName())
+ private final static ToString<AuthenticationManagerDefault> toString =
+ ToString.<AuthenticationManagerDefault>toString("class", obj->obj.getClass().getSimpleName())
.thenToString("authenticators", obj->""+obj.authenticators.size())
.thenToString("users", obj->""+obj.userByValidationCode.size());
@@ -194,8 +196,8 @@ public class AuthenticationManagerStandard implements AuthenticationManager {
* @param mockAuthenticator
* @return
*/
- public static AuthenticationManagerStandard instanceForTesting(Authenticator authenticator) {
- val manager = new AuthenticationManagerStandard();
+ public static AuthenticationManagerDefault instanceForTesting(Authenticator authenticator) {
+ val manager = new AuthenticationManagerDefault();
manager.authenticators = Can.ofSingleton(authenticator);
return manager;
}
diff --git a/core/security/api/src/test/java/org/apache/isis/security/authentication/standard/StandardAuthenticationManager_AuthenticationTest.java b/core/security/api/src/test/java/org/apache/isis/security/authentication/standard/StandardAuthenticationManager_AuthenticationTest.java
index 5656222..200d9c0 100644
--- a/core/security/api/src/test/java/org/apache/isis/security/authentication/standard/StandardAuthenticationManager_AuthenticationTest.java
+++ b/core/security/api/src/test/java/org/apache/isis/security/authentication/standard/StandardAuthenticationManager_AuthenticationTest.java
@@ -19,7 +19,7 @@
package org.apache.isis.security.authentication.standard;
-import org.apache.isis.security.api.authentication.standard.AuthenticationManagerStandard;
+import org.apache.isis.security.api.authentication.standard.AuthenticationManagerDefault;
import org.apache.isis.security.api.authentication.standard.Authenticator;
import org.apache.isis.security.api.authentication.standard.RandomCodeGenerator;
import org.hamcrest.Description;
@@ -45,7 +45,7 @@ public class StandardAuthenticationManager_AuthenticationTest {
private final Mockery mockery = new JUnit4Mockery();
- private AuthenticationManagerStandard authenticationManager;
+ private AuthenticationManagerDefault authenticationManager;
private RandomCodeGenerator mockRandomCodeGenerator;
private Authenticator mockAuthenticator;
@@ -57,7 +57,7 @@ public class StandardAuthenticationManager_AuthenticationTest {
mockAuthenticator = mockery.mock(Authenticator.class);
mockAuthSession = mockery.mock(AuthenticationSession.class);
- authenticationManager = AuthenticationManagerStandard.instanceForTesting(mockAuthenticator);
+ authenticationManager = AuthenticationManagerDefault.instanceForTesting(mockAuthenticator);
authenticationManager.setRandomCodeGenerator(mockRandomCodeGenerator);
mockery.checking(new Expectations() {
diff --git a/core/security/api/src/test/java/org/apache/isis/security/authentication/standard/StandardAuthenticationManager_AuthenticatorsTest.java b/core/security/api/src/test/java/org/apache/isis/security/authentication/standard/StandardAuthenticationManager_AuthenticatorsTest.java
index 439daee..b11a1a2 100644
--- a/core/security/api/src/test/java/org/apache/isis/security/authentication/standard/StandardAuthenticationManager_AuthenticatorsTest.java
+++ b/core/security/api/src/test/java/org/apache/isis/security/authentication/standard/StandardAuthenticationManager_AuthenticatorsTest.java
@@ -19,7 +19,7 @@
package org.apache.isis.security.authentication.standard;
-import org.apache.isis.security.api.authentication.standard.AuthenticationManagerStandard;
+import org.apache.isis.security.api.authentication.standard.AuthenticationManagerDefault;
import org.apache.isis.security.api.authentication.standard.Authenticator;
import org.apache.isis.security.api.authentication.standard.NoAuthenticatorException;
import org.jmock.Mockery;
@@ -39,7 +39,7 @@ public class StandardAuthenticationManager_AuthenticatorsTest {
private final Mockery mockery = new JUnit4Mockery();
- private AuthenticationManagerStandard authenticationManager;
+ private AuthenticationManagerDefault authenticationManager;
private Authenticator mockAuthenticator;
@Before
@@ -56,7 +56,7 @@ public class StandardAuthenticationManager_AuthenticatorsTest {
@Test(expected = NoAuthenticatorException.class)
public void shouldNotBeAbleToAuthenticateWithNoAuthenticators() throws Exception {
- authenticationManager = new AuthenticationManagerStandard();
+ authenticationManager = new AuthenticationManagerDefault();
authenticationManager.authenticate(new AuthenticationRequestPassword("foo", "bar"));
}
@@ -64,7 +64,7 @@ public class StandardAuthenticationManager_AuthenticatorsTest {
@Test
public void shouldBeAbleToUseAuthenticators() throws Exception {
- authenticationManager = AuthenticationManagerStandard.instanceForTesting(mockAuthenticator);
+ authenticationManager = AuthenticationManagerDefault.instanceForTesting(mockAuthenticator);
assertThat(authenticationManager.getAuthenticators().size(), is(1));
assertThat(authenticationManager.getAuthenticators().getFirst().get(), is(sameInstance(mockAuthenticator)));
diff --git a/core/security/keycloak/src/main/java/org/apache/isis/security/keycloak/webmodule/WebModuleKeycloak.java b/core/security/keycloak/src/main/java/org/apache/isis/security/keycloak/webmodule/WebModuleKeycloak.java
index 23c515e..1022d35 100644
--- a/core/security/keycloak/src/main/java/org/apache/isis/security/keycloak/webmodule/WebModuleKeycloak.java
+++ b/core/security/keycloak/src/main/java/org/apache/isis/security/keycloak/webmodule/WebModuleKeycloak.java
@@ -30,8 +30,7 @@ import javax.servlet.ServletException;
import org.apache.isis.applib.annotation.OrderPrecedence;
import org.apache.isis.webapp.modules.WebModule;
import org.apache.isis.webapp.modules.WebModuleContext;
-import org.springframework.context.annotation.Primary;
-import org.springframework.core.Ordered;
+import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Service;
@@ -45,6 +44,7 @@ import static org.apache.isis.commons.internal.exceptions._Exceptions.unexpected
@Service
@Named("isisSecKeycloak.WebModuleKeycloak")
@Order(OrderPrecedence.HIGHEST + 100)
+@Qualifier("Keycloak")
@Log4j2
public final class WebModuleKeycloak implements WebModule {
diff --git a/core/security/shiro/src/main/java/org/apache/isis/security/shiro/webmodule/WebModuleShiro.java b/core/security/shiro/src/main/java/org/apache/isis/security/shiro/webmodule/WebModuleShiro.java
index 3faf8c3..610820d 100644
--- a/core/security/shiro/src/main/java/org/apache/isis/security/shiro/webmodule/WebModuleShiro.java
+++ b/core/security/shiro/src/main/java/org/apache/isis/security/shiro/webmodule/WebModuleShiro.java
@@ -36,7 +36,7 @@ import org.apache.shiro.web.env.IniWebEnvironment;
import org.apache.shiro.web.env.WebEnvironment;
import org.apache.shiro.web.filter.mgt.PathMatchingFilterChainResolver;
import org.apache.shiro.web.servlet.ShiroFilter;
-import org.springframework.core.Ordered;
+import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Service;
import org.springframework.util.ReflectionUtils;
@@ -65,6 +65,7 @@ import lombok.val;
@Service
@Named("isisSecKeycloak.WebModuleKeycloak")
@Order(OrderPrecedence.HIGHEST + 200)
+@Qualifier("Shiro")
@Log4j2
public class WebModuleShiro implements WebModule {
diff --git a/core/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/JsonValueEncoder.java b/core/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/JsonValueEncoder.java
index cfca5ff..b028ffe 100644
--- a/core/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/JsonValueEncoder.java
+++ b/core/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/domainobjects/JsonValueEncoder.java
@@ -31,6 +31,7 @@ import javax.inject.Singleton;
import com.fasterxml.jackson.databind.node.NullNode;
import org.apache.isis.applib.annotation.OrderPrecedence;
+import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Primary;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Service;
@@ -59,6 +60,7 @@ import lombok.val;
@Named("isisRoRendering.JsonValueEncoder")
@Order(OrderPrecedence.HIGH)
@Primary
+@Qualifier("Default")
@Singleton
@Log4j2
public class JsonValueEncoder {
diff --git a/core/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/RepresentationServiceContentNegotiator.java b/core/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/RepresentationServiceContentNegotiator.java
index 320c910..8124645 100644
--- a/core/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/RepresentationServiceContentNegotiator.java
+++ b/core/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/RepresentationServiceContentNegotiator.java
@@ -30,6 +30,7 @@ import javax.ws.rs.core.Response;
import javax.ws.rs.core.Response.ResponseBuilder;
import org.apache.isis.applib.annotation.OrderPrecedence;
+import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Primary;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Service;
@@ -49,6 +50,7 @@ import org.apache.isis.viewer.restfulobjects.rendering.service.conneg.ContentNeg
@Named("isisRoRendering.RepresentationServiceContentNegotiator")
@Order(OrderPrecedence.HIGH)
@Primary
+@Qualifier("ContentNegotiator")
@Log4j2
public class RepresentationServiceContentNegotiator implements RepresentationService {
@@ -64,12 +66,8 @@ public class RepresentationServiceContentNegotiator implements RepresentationSer
final IResourceContext renderContext,
final ManagedObject objectAdapter) {
- final ResponseBuilder responseBuilder = buildResponse(new Function<ContentNegotiationService, ResponseBuilder>() {
- @Override
- public ResponseBuilder apply(final ContentNegotiationService connegService) {
- return connegService.buildResponse(renderContext, objectAdapter);
- }
- });
+ final ResponseBuilder responseBuilder = buildResponse(
+ connegService -> connegService.buildResponse(renderContext, objectAdapter));
assertContentNegotiationServiceHandled(responseBuilder);
return buildResponse(responseBuilder);
@@ -81,12 +79,8 @@ public class RepresentationServiceContentNegotiator implements RepresentationSer
final ObjectAndProperty objectAndProperty,
final MemberReprMode memberReprMode) {
- final ResponseBuilder responseBuilder = buildResponse(new Function<ContentNegotiationService, ResponseBuilder>() {
- @Override
- public ResponseBuilder apply(final ContentNegotiationService connegService) {
- return connegService.buildResponse(renderContext, objectAndProperty);
- }
- });
+ final ResponseBuilder responseBuilder = buildResponse(
+ connegService -> connegService.buildResponse(renderContext, objectAndProperty));
assertContentNegotiationServiceHandled(responseBuilder);
return buildResponse(responseBuilder);
@@ -99,12 +93,8 @@ public class RepresentationServiceContentNegotiator implements RepresentationSer
final ObjectAndCollection objectAndCollection,
final MemberReprMode memberReprMode) {
- final ResponseBuilder responseBuilder = buildResponse(new Function<ContentNegotiationService, ResponseBuilder>() {
- @Override
- public ResponseBuilder apply(final ContentNegotiationService connegService) {
- return connegService.buildResponse(renderContext, objectAndCollection);
- }
- });
+ final ResponseBuilder responseBuilder = buildResponse(
+ connegService -> connegService.buildResponse(renderContext, objectAndCollection));
assertContentNegotiationServiceHandled(responseBuilder);
return buildResponse(responseBuilder);
@@ -118,12 +108,8 @@ public class RepresentationServiceContentNegotiator implements RepresentationSer
final IResourceContext renderContext,
final ObjectAndAction objectAndAction) {
- final ResponseBuilder responseBuilder = buildResponse(new Function<ContentNegotiationService, ResponseBuilder>() {
- @Override
- public ResponseBuilder apply(final ContentNegotiationService connegService) {
- return connegService.buildResponse(renderContext, objectAndAction);
- }
- });
+ final ResponseBuilder responseBuilder = buildResponse(
+ connegService -> connegService.buildResponse(renderContext, objectAndAction));
assertContentNegotiationServiceHandled(responseBuilder);
return buildResponse(responseBuilder);
@@ -136,12 +122,8 @@ public class RepresentationServiceContentNegotiator implements RepresentationSer
final ObjectAndActionInvocation objectAndActionInvocation,
final SelfLink selfLink) {
- final ResponseBuilder responseBuilder = buildResponse(new Function<ContentNegotiationService, ResponseBuilder>() {
- @Override
- public ResponseBuilder apply(final ContentNegotiationService connegService) {
- return connegService.buildResponse(renderContext, objectAndActionInvocation);
- }
- });
+ final ResponseBuilder responseBuilder = buildResponse(
+ connegService -> connegService.buildResponse(renderContext, objectAndActionInvocation));
assertContentNegotiationServiceHandled(responseBuilder);
return buildResponse(responseBuilder);
diff --git a/core/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/acceptheader/AcceptHeaderServiceForRest.java b/core/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/acceptheader/AcceptHeaderServiceForRest.java
index 6860b52..75ff0af 100644
--- a/core/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/acceptheader/AcceptHeaderServiceForRest.java
+++ b/core/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/acceptheader/AcceptHeaderServiceForRest.java
@@ -33,11 +33,10 @@ import javax.ws.rs.container.ContainerResponseFilter;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.ext.Provider;
-import org.apache.isis.applib.annotation.DomainService;
-import org.apache.isis.applib.annotation.NatureOfService;
import org.apache.isis.applib.annotation.OrderPrecedence;
import org.apache.isis.applib.services.acceptheader.AcceptHeaderService;
import org.apache.isis.commons.internal.base._NullSafe;
+import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Primary;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Service;
@@ -46,8 +45,9 @@ import static org.apache.isis.commons.internal.base._NullSafe.stream;
@Service
@Named("isisRoRendering.AcceptHeaderServiceForRest")
-@Order(OrderPrecedence.DEFAULT)
+@Order(OrderPrecedence.MIDPOINT)
@Primary
+@Qualifier("ForRest")
@RequestScoped
@Log4j2
public class AcceptHeaderServiceForRest implements AcceptHeaderService {
diff --git a/core/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/conneg/ContentNegotiationServiceForRestfulObjectsV1_0.java b/core/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/conneg/ContentNegotiationServiceForRestfulObjectsV1_0.java
index 7d1f993..1840685 100644
--- a/core/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/conneg/ContentNegotiationServiceForRestfulObjectsV1_0.java
+++ b/core/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/conneg/ContentNegotiationServiceForRestfulObjectsV1_0.java
@@ -30,8 +30,6 @@ import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.Response.ResponseBuilder;
-import org.apache.isis.applib.annotation.DomainService;
-import org.apache.isis.applib.annotation.NatureOfService;
import org.apache.isis.applib.annotation.OrderPrecedence;
import org.apache.isis.applib.domain.DomainObjectList;
import org.apache.isis.config.IsisConfiguration;
@@ -60,6 +58,7 @@ import org.apache.isis.viewer.restfulobjects.rendering.domainobjects.ObjectAndPr
import org.apache.isis.viewer.restfulobjects.rendering.domainobjects.ObjectCollectionReprRenderer;
import org.apache.isis.viewer.restfulobjects.rendering.domainobjects.ObjectPropertyReprRenderer;
import org.apache.isis.viewer.restfulobjects.rendering.service.RepresentationService;
+import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Primary;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Service;
@@ -69,8 +68,9 @@ import lombok.val;
@Service
@Named("isisRoRendering.ContentNegotiationServiceForRestfulObjectsV1_0")
-@Order(OrderPrecedence.DEFAULT)
+@Order(OrderPrecedence.MIDPOINT)
@Primary
+@Qualifier("RestfulObjectsV1_0")
@Log4j2
public class ContentNegotiationServiceForRestfulObjectsV1_0 implements ContentNegotiationService {
diff --git a/core/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/conneg/ContentNegotiationServiceOrgApacheIsisV1.java b/core/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/conneg/ContentNegotiationServiceOrgApacheIsisV1.java
index 1e18248..4065b48 100644
--- a/core/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/conneg/ContentNegotiationServiceOrgApacheIsisV1.java
+++ b/core/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/conneg/ContentNegotiationServiceOrgApacheIsisV1.java
@@ -27,11 +27,9 @@ import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import org.apache.isis.applib.annotation.OrderPrecedence;
-import org.springframework.context.annotation.Primary;
+import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.core.annotation.Order;
-import org.apache.isis.applib.annotation.DomainService;
-import org.apache.isis.applib.annotation.NatureOfService;
import org.apache.isis.applib.annotation.Where;
import org.apache.isis.applib.client.SuppressionType;
import org.apache.isis.metamodel.consent.Consent;
@@ -58,7 +56,8 @@ import lombok.val;
@Service
@Named("isisRoRendering.ContentNegotiationServiceOrgApacheIsisV1")
-@Order(OrderPrecedence.DEFAULT + 200)
+@Order(OrderPrecedence.MIDPOINT + 200)
+@Qualifier("OrgApacheIsisV1")
@Log4j2
public class ContentNegotiationServiceOrgApacheIsisV1 extends ContentNegotiationServiceAbstract {
diff --git a/core/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/conneg/ContentNegotiationServiceXRoDomainType.java b/core/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/conneg/ContentNegotiationServiceXRoDomainType.java
index 4e99b2b..bf97fcb 100644
--- a/core/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/conneg/ContentNegotiationServiceXRoDomainType.java
+++ b/core/viewers/restfulobjects/rendering/src/main/java/org/apache/isis/viewer/restfulobjects/rendering/service/conneg/ContentNegotiationServiceXRoDomainType.java
@@ -28,6 +28,7 @@ import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import org.apache.isis.applib.annotation.OrderPrecedence;
+import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Service;
@@ -38,7 +39,6 @@ import org.apache.isis.viewer.restfulobjects.applib.client.RestfulResponse;
import org.apache.isis.viewer.restfulobjects.rendering.IResourceContext;
import org.apache.isis.viewer.restfulobjects.rendering.RestfulObjectsApplicationException;
import org.apache.isis.viewer.restfulobjects.rendering.domainobjects.ObjectAndActionInvocation;
-import org.apache.isis.viewer.restfulobjects.rendering.service.RepresentationService;
/**
* Handles content negotiation for accept headers requiring <code>application/json</code> or <code>application/xml</code>and specifying an x-ro-domain-type; will delegate to
@@ -56,7 +56,8 @@ import org.apache.isis.viewer.restfulobjects.rendering.service.RepresentationSer
*/
@Service
@Named("isisRoRendering.ContentNegotiationServiceXRoDomainType")
-@Order(OrderPrecedence.DEFAULT + 100)
+@Order(OrderPrecedence.MIDPOINT + 100)
+@Qualifier("XRoDomainType")
@Log4j2
public class ContentNegotiationServiceXRoDomainType extends ContentNegotiationServiceAbstract {
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 9e46a37..80d0b28 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
@@ -27,10 +27,9 @@ import javax.servlet.ServletException;
import org.apache.isis.applib.annotation.OrderPrecedence;
import org.apache.isis.config.IsisConfiguration;
import org.apache.isis.viewer.restfulobjects.viewer.webmodule.auth.AuthenticationSessionStrategyBasicAuth;
+import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.core.annotation.Order;
-import org.apache.isis.applib.annotation.DomainService;
-import org.apache.isis.applib.annotation.NatureOfService;
import org.apache.isis.webapp.modules.WebModule;
import org.apache.isis.webapp.modules.WebModuleContext;
import org.springframework.stereotype.Service;
@@ -53,7 +52,8 @@ import lombok.val;
*/
@Service
@Named("isisRoViewer.WebModuleRestfulObjects")
-@Order(OrderPrecedence.DEFAULT - 80)
+@Order(OrderPrecedence.MIDPOINT - 80)
+@Qualifier("RestfulObjects")
@Log4j2
public final class WebModuleRestfulObjects implements WebModule {
diff --git a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/themepicker/IsisWicketThemeSupportDefault.java b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/themepicker/IsisWicketThemeSupportDefault.java
index d691265..88156bf 100644
--- a/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/themepicker/IsisWicketThemeSupportDefault.java
+++ b/core/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/widgets/themepicker/IsisWicketThemeSupportDefault.java
@@ -26,6 +26,7 @@ import javax.inject.Inject;
import javax.inject.Named;
import org.apache.isis.applib.annotation.OrderPrecedence;
+import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Primary;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Service;
@@ -47,8 +48,9 @@ import lombok.extern.log4j.Log4j2;
*/
@Service
@Named("isisWicketUi.IsisWicketThemeSupportDefault")
-@Order(OrderPrecedence.DEFAULT)
+@Order(OrderPrecedence.MIDPOINT)
@Primary
+@Qualifier("Default")
@Log4j2
public class IsisWicketThemeSupportDefault implements IsisWicketThemeSupport {
diff --git a/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/registries/components/ComponentFactoryRegistrarDefault.java b/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/registries/components/ComponentFactoryRegistrarDefault.java
index f96b2d0..bdce54d 100644
--- a/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/registries/components/ComponentFactoryRegistrarDefault.java
+++ b/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/registries/components/ComponentFactoryRegistrarDefault.java
@@ -26,6 +26,7 @@ import java.util.ServiceLoader;
import javax.inject.Named;
import org.apache.isis.applib.annotation.OrderPrecedence;
+import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Primary;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Service;
@@ -103,8 +104,9 @@ import org.apache.isis.viewer.wicket.ui.components.widgets.entitysimplelink.Enti
*/
@Service
@Named("isisWicketViewer.ComponentFactoryRegistrarDefault")
-@Order(OrderPrecedence.DEFAULT)
+@Order(OrderPrecedence.MIDPOINT)
@Primary
+@Qualifier("Default")
@Log4j2
public class ComponentFactoryRegistrarDefault implements ComponentFactoryRegistrar {
diff --git a/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/registries/components/ComponentFactoryRegistryDefault.java b/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/registries/components/ComponentFactoryRegistryDefault.java
index d1505a5..f9ec480 100644
--- a/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/registries/components/ComponentFactoryRegistryDefault.java
+++ b/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/registries/components/ComponentFactoryRegistryDefault.java
@@ -32,6 +32,7 @@ import org.apache.isis.applib.annotation.OrderPrecedence;
import org.apache.wicket.Component;
import org.apache.wicket.MarkupContainer;
import org.apache.wicket.model.IModel;
+import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Primary;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Service;
@@ -58,8 +59,9 @@ import lombok.val;
*/
@Service
@Named("isisWicketViewer.ComponentFactoryRegistryDefault")
-@Order(OrderPrecedence.DEFAULT)
+@Order(OrderPrecedence.MIDPOINT)
@Primary
+@Qualifier("Default")
@Log4j2
public class ComponentFactoryRegistryDefault implements ComponentFactoryRegistry {
diff --git a/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/registries/pages/PageClassListDefault.java b/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/registries/pages/PageClassListDefault.java
index dd79c1c..4604536 100644
--- a/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/registries/pages/PageClassListDefault.java
+++ b/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/registries/pages/PageClassListDefault.java
@@ -25,6 +25,7 @@ import javax.inject.Named;
import org.apache.isis.applib.annotation.OrderPrecedence;
import org.apache.wicket.Page;
+import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Primary;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Service;
@@ -50,8 +51,9 @@ import org.apache.isis.viewer.wicket.ui.pages.voidreturn.VoidReturnPage;
*/
@Service
@Named("isisWicketViewer.PageClassListDefault")
-@Order(OrderPrecedence.DEFAULT)
+@Order(OrderPrecedence.MIDPOINT)
@Primary
+@Qualifier("Default")
@Log4j2
public class PageClassListDefault implements PageClassList {
diff --git a/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/registries/pages/PageClassRegistryDefault.java b/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/registries/pages/PageClassRegistryDefault.java
index 5853bfc..ca0df2d 100644
--- a/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/registries/pages/PageClassRegistryDefault.java
+++ b/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/registries/pages/PageClassRegistryDefault.java
@@ -29,6 +29,7 @@ import javax.inject.Named;
import org.apache.isis.applib.annotation.OrderPrecedence;
import org.apache.wicket.Page;
+import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Primary;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Service;
@@ -45,8 +46,9 @@ import org.apache.isis.viewer.wicket.ui.pages.PageClassRegistrySpi;
*/
@Service
@Named("isisWicketViewer.PageClassRegistryDefault")
-@Order(OrderPrecedence.DEFAULT)
+@Order(OrderPrecedence.MIDPOINT)
@Primary
+@Qualifier("Default")
@Log4j2
public class PageClassRegistryDefault implements PageClassRegistry, PageClassRegistrySpi {
diff --git a/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/registries/pages/PageNavigationServiceDefault.java b/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/registries/pages/PageNavigationServiceDefault.java
index 1a62e97..ab23439 100644
--- a/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/registries/pages/PageNavigationServiceDefault.java
+++ b/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/registries/pages/PageNavigationServiceDefault.java
@@ -30,6 +30,7 @@ import org.apache.wicket.RestartResponseAtInterceptPageException;
import org.apache.wicket.RestartResponseException;
import org.apache.wicket.request.cycle.RequestCycle;
import org.apache.wicket.request.mapper.parameter.PageParameters;
+import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Primary;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Service;
@@ -43,8 +44,9 @@ import org.apache.isis.viewer.wicket.ui.pages.PageNavigationService;
*/
@Service
@Named("isisWicketViewer.PageNavigationServiceDefault")
-@Order(OrderPrecedence.DEFAULT)
+@Order(OrderPrecedence.MIDPOINT)
@Primary
+@Qualifier("Default")
@Log4j2
public class PageNavigationServiceDefault implements PageNavigationService {
diff --git a/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/services/BookmarkUiServiceWicket.java b/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/services/BookmarkUiServiceWicket.java
index 86d8fa1..62e4c68 100644
--- a/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/services/BookmarkUiServiceWicket.java
+++ b/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/services/BookmarkUiServiceWicket.java
@@ -21,6 +21,7 @@ package org.apache.isis.viewer.wicket.viewer.services;
import javax.inject.Named;
import org.apache.isis.applib.annotation.OrderPrecedence;
+import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Primary;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Service;
@@ -33,7 +34,7 @@ import lombok.extern.log4j.Log4j2;
@Service
@Named("isisWicketViewer.BookmarkUiServiceWicket")
@Order(OrderPrecedence.HIGH)
-@Primary
+@Qualifier("Wicket")
@Log4j2
public class BookmarkUiServiceWicket implements BookmarkUiService {
diff --git a/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/services/DeepLinkServiceWicket.java b/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/services/DeepLinkServiceWicket.java
index 9bd6e93..e1d5fef 100644
--- a/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/services/DeepLinkServiceWicket.java
+++ b/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/services/DeepLinkServiceWicket.java
@@ -31,6 +31,7 @@ import org.apache.wicket.Page;
import org.apache.wicket.request.Url;
import org.apache.wicket.request.cycle.RequestCycle;
import org.apache.wicket.request.mapper.parameter.PageParameters;
+import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Primary;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Service;
@@ -49,7 +50,7 @@ import org.apache.isis.viewer.wicket.ui.pages.PageClassRegistry;
@Service
@Named("isisWicketViewer.DeepLinkServiceWicket")
@Order(OrderPrecedence.HIGH)
-@Primary
+@Qualifier("Wicket")
@Log4j2
public class DeepLinkServiceWicket implements DeepLinkService {
diff --git a/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/services/HintStoreUsingWicketSession.java b/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/services/HintStoreUsingWicketSession.java
index 82f703d..8984da7 100644
--- a/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/services/HintStoreUsingWicketSession.java
+++ b/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/services/HintStoreUsingWicketSession.java
@@ -26,6 +26,7 @@ import javax.inject.Named;
import org.apache.isis.applib.annotation.OrderPrecedence;
import org.apache.wicket.Session;
+import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Primary;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Service;
@@ -39,7 +40,7 @@ import lombok.extern.log4j.Log4j2;
@Service
@Named("isisWicketViewer.HintStoreUsingWicketSession")
@Order(OrderPrecedence.HIGH)
-@Primary
+@Qualifier("Wicket")
@Log4j2
public class HintStoreUsingWicketSession implements HintStore {
diff --git a/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/services/ImageResourceCacheClassPath.java b/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/services/ImageResourceCacheClassPath.java
index 54f393d..f98a782 100644
--- a/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/services/ImageResourceCacheClassPath.java
+++ b/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/services/ImageResourceCacheClassPath.java
@@ -29,6 +29,7 @@ import java.util.Map;
import org.apache.isis.applib.annotation.OrderPrecedence;
import org.apache.wicket.request.resource.PackageResourceReference;
import org.apache.wicket.request.resource.ResourceReference;
+import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Primary;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Service;
@@ -55,8 +56,9 @@ import javax.inject.Named;
*/
@Service
@Named("isisWicketViewer.ImageResourceCacheClassPath")
-@Order(OrderPrecedence.DEFAULT)
+@Order(OrderPrecedence.MIDPOINT)
@Primary
+@Qualifier("ClassPath")
@Log4j2
public class ImageResourceCacheClassPath implements ImageResourceCache {
diff --git a/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/services/LocaleProviderWicket.java b/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/services/LocaleProviderWicket.java
index 86813f02..5fc9a23 100644
--- a/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/services/LocaleProviderWicket.java
+++ b/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/services/LocaleProviderWicket.java
@@ -28,6 +28,7 @@ import org.apache.isis.applib.annotation.OrderPrecedence;
import org.apache.wicket.Application;
import org.apache.wicket.Session;
import org.apache.wicket.request.cycle.RequestCycle;
+import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Primary;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Service;
@@ -40,8 +41,8 @@ import org.apache.isis.applib.services.i18n.LocaleProvider;
*/
@Service
@Named("isisWicketViewer.LocaleProviderWicket")
-@Order(OrderPrecedence.DEFAULT)
-@Primary
+@Order(OrderPrecedence.MIDPOINT)
+@Qualifier("Wicket")
@Log4j2
public class LocaleProviderWicket implements LocaleProvider {
diff --git a/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/services/TranslationsResolverWicket.java b/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/services/TranslationsResolverWicket.java
index 132c4cd..2bd1d87 100644
--- a/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/services/TranslationsResolverWicket.java
+++ b/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/services/TranslationsResolverWicket.java
@@ -33,6 +33,7 @@ import javax.inject.Named;
import javax.servlet.ServletContext;
import org.apache.isis.applib.annotation.OrderPrecedence;
+import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Primary;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Service;
@@ -50,8 +51,8 @@ import lombok.extern.log4j.Log4j2;
*/
@Service
@Named("isisWicketViewer.TranslationsResolverWicket")
-@Order(OrderPrecedence.DEFAULT)
-@Primary
+@Order(OrderPrecedence.MIDPOINT)
+@Qualifier("Wicket")
@Log4j2
public class TranslationsResolverWicket implements TranslationsResolver {
diff --git a/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/services/WicketViewerSettingsDefault.java b/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/services/WicketViewerSettingsDefault.java
index 0295da3..caabe8c 100644
--- a/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/services/WicketViewerSettingsDefault.java
+++ b/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/services/WicketViewerSettingsDefault.java
@@ -23,6 +23,7 @@ import javax.inject.Inject;
import javax.inject.Named;
import org.apache.isis.applib.annotation.OrderPrecedence;
+import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Primary;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Service;
@@ -36,8 +37,9 @@ import lombok.extern.log4j.Log4j2;
@Service
@Named("isisWicketViewer.WicketViewerSettingsDefault")
-@Order(OrderPrecedence.DEFAULT)
+@Order(OrderPrecedence.MIDPOINT)
@Primary
+@Qualifier("Default")
@Log4j2
public class WicketViewerSettingsDefault implements WicketViewerSettings {
diff --git a/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/services/mementos/ObjectMementoServiceWicket.java b/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/services/mementos/ObjectMementoServiceWicket.java
index ff840c2..9d10693 100644
--- a/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/services/mementos/ObjectMementoServiceWicket.java
+++ b/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/services/mementos/ObjectMementoServiceWicket.java
@@ -26,6 +26,7 @@ import javax.inject.Named;
import javax.inject.Singleton;
import org.apache.isis.applib.annotation.OrderPrecedence;
+import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Primary;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Service;
@@ -53,11 +54,10 @@ import lombok.val;
*/
@Service
@Named("isisWicketViewer.ObjectMementoServiceWicket")
-@Order(OrderPrecedence.DEFAULT)
-@Primary
+@Order(OrderPrecedence.MIDPOINT)
+@Qualifier("Wicket")
@Singleton
-public class ObjectMementoServiceWicket
-implements ObjectMementoService {
+public class ObjectMementoServiceWicket implements ObjectMementoService {
@Inject @Getter private SpecificationLoader specificationLoader;
@Inject private ObjectManager objectManager;
diff --git a/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/webmodule/WebModuleWicket.java b/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/webmodule/WebModuleWicket.java
index b5cb7cb..468ec6a 100644
--- a/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/webmodule/WebModuleWicket.java
+++ b/core/viewers/wicket/viewer/src/main/java/org/apache/isis/viewer/wicket/viewer/webmodule/WebModuleWicket.java
@@ -30,6 +30,7 @@ import javax.servlet.ServletException;
import org.apache.isis.applib.annotation.OrderPrecedence;
import org.apache.wicket.protocol.http.WicketFilter;
+import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Primary;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Service;
@@ -52,8 +53,8 @@ import static org.apache.isis.commons.internal.exceptions._Exceptions.unexpected
*/
@Service
@Named("isisWicketViewer.WebModuleWicket")
-@Order(OrderPrecedence.DEFAULT - 80)
-@Primary
+@Order(OrderPrecedence.MIDPOINT - 80)
+@Qualifier("Wicket")
@Log4j2
public final class WebModuleWicket implements WebModule {
diff --git a/core/webapp/src/main/java/org/apache/isis/webapp/modules/logonlog/WebModuleLogOnExceptionLogger.java b/core/webapp/src/main/java/org/apache/isis/webapp/modules/logonlog/WebModuleLogOnExceptionLogger.java
index 1088e18..e3b7efe 100644
--- a/core/webapp/src/main/java/org/apache/isis/webapp/modules/logonlog/WebModuleLogOnExceptionLogger.java
+++ b/core/webapp/src/main/java/org/apache/isis/webapp/modules/logonlog/WebModuleLogOnExceptionLogger.java
@@ -27,8 +27,9 @@ import javax.servlet.ServletContext;
import javax.servlet.ServletContextListener;
import javax.servlet.ServletException;
+import org.apache.isis.applib.annotation.OrderPrecedence;
import org.apache.isis.webapp.diagnostics.IsisLogOnExceptionFilter;
-import org.springframework.core.Ordered;
+import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Service;
@@ -47,7 +48,8 @@ import static org.apache.isis.commons.internal.exceptions._Exceptions.unexpected
*/
@Service
@Named("isisWebapp.WebModuleLogOnExceptionLogger")
-@Order(Ordered.LOWEST_PRECEDENCE) // TODO: should this not be the highest precedence, ie first in stack?
+@Order(OrderPrecedence.LOWEST) // TODO: should this not be the highest precedence, ie first in stack?
+@Qualifier("LogOnExceptionLogger")
@Log4j2
public final class WebModuleLogOnExceptionLogger implements WebModule {
diff --git a/core/webapp/src/main/java/org/apache/isis/webapp/modules/templresources/WebModuleTemplateResources.java b/core/webapp/src/main/java/org/apache/isis/webapp/modules/templresources/WebModuleTemplateResources.java
index 316fce4..48b7617 100644
--- a/core/webapp/src/main/java/org/apache/isis/webapp/modules/templresources/WebModuleTemplateResources.java
+++ b/core/webapp/src/main/java/org/apache/isis/webapp/modules/templresources/WebModuleTemplateResources.java
@@ -27,6 +27,7 @@ import javax.servlet.ServletContextListener;
import javax.servlet.ServletException;
import org.apache.isis.applib.annotation.OrderPrecedence;
+import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Service;
@@ -40,7 +41,8 @@ import org.apache.isis.webapp.modules.WebModuleContext;
*/
@Service
@Named("isisWebapp.WebModuleTemplateResources")
-@Order(OrderPrecedence.DEFAULT - 100)
+@Order(OrderPrecedence.MIDPOINT - 100)
+@Qualifier("TemplateResources")
@Log4j2
public final class WebModuleTemplateResources implements WebModule {
diff --git a/examples/smoketests/src/main/java/org/apache/isis/testdomain/rest/RestEndpointService.java b/examples/smoketests/src/main/java/org/apache/isis/testdomain/rest/RestEndpointService.java
index 5dfe449..85e3769 100644
--- a/examples/smoketests/src/main/java/org/apache/isis/testdomain/rest/RestEndpointService.java
+++ b/examples/smoketests/src/main/java/org/apache/isis/testdomain/rest/RestEndpointService.java
@@ -36,7 +36,8 @@ import org.apache.isis.testdomain.ldap.LdapConstants;
import lombok.val;
import lombok.extern.log4j.Log4j2;
-@Service @Log4j2
+@Service
+@Log4j2
public class RestEndpointService {
@Inject private Environment environment;
diff --git a/examples/smoketests/src/test/resources/org/apache/isis/testdomain/bootstrapping/builtin-IsisBoot.list b/examples/smoketests/src/test/resources/org/apache/isis/testdomain/bootstrapping/builtin-IsisBoot.list
index 855dc9d..6f2f0d3 100644
--- a/examples/smoketests/src/test/resources/org/apache/isis/testdomain/bootstrapping/builtin-IsisBoot.list
+++ b/examples/smoketests/src/test/resources/org/apache/isis/testdomain/bootstrapping/builtin-IsisBoot.list
@@ -65,7 +65,7 @@ org.apache.isis.runtime.services.menubars.MenuBarsLoaderServiceDefault
org.apache.isis.runtime.services.menubars.bootstrap3.MenuBarsServiceBS3
org.apache.isis.runtime.services.message.MessageServiceDefault
org.apache.isis.runtime.services.persist.ObjectAdapterServiceDefault
-org.apache.isis.runtime.services.publish.PublishingServiceInternalDefault
+PublisherDispatchServiceDefault
org.apache.isis.runtime.services.routing.RoutingServiceDefault
org.apache.isis.runtime.services.sessmgmt.SessionManagementServiceDefault
org.apache.isis.runtime.services.sse.EventStreamServiceDefault
diff --git a/examples/smoketests/src/test/resources/org/apache/isis/testdomain/bootstrapping/builtin-domain-services.list b/examples/smoketests/src/test/resources/org/apache/isis/testdomain/bootstrapping/builtin-domain-services.list
index e4a0e0b..dd5ffdc 100644
--- a/examples/smoketests/src/test/resources/org/apache/isis/testdomain/bootstrapping/builtin-domain-services.list
+++ b/examples/smoketests/src/test/resources/org/apache/isis/testdomain/bootstrapping/builtin-domain-services.list
@@ -19,7 +19,7 @@ org.apache.isis.runtime.services.confmenu.ConfigurationViewServiceDefault
org.apache.isis.runtime.services.email.EmailServiceDefault
org.apache.isis.runtime.services.i18n.po.TranslationServicePoMenu
org.apache.isis.runtime.services.ixn.InteractionDtoServiceInternalDefault
-org.apache.isis.runtime.services.publish.PublishingServiceInternalDefault
+PublisherDispatchServiceDefault
org.apache.isis.runtime.services.sudo.SudoServiceDefault
org.apache.isis.runtime.services.userprof.UserProfileServiceDefault
org.apache.isis.runtime.services.userreg.EmailNotificationServiceDefault
diff --git a/examples/smoketests/src/test/resources/org/apache/isis/testdomain/bootstrapping/builtin-requestscoped.list b/examples/smoketests/src/test/resources/org/apache/isis/testdomain/bootstrapping/builtin-requestscoped.list
index 13a4d7e..5dfef67 100644
--- a/examples/smoketests/src/test/resources/org/apache/isis/testdomain/bootstrapping/builtin-requestscoped.list
+++ b/examples/smoketests/src/test/resources/org/apache/isis/testdomain/bootstrapping/builtin-requestscoped.list
@@ -4,5 +4,5 @@ org.apache.isis.applib.services.queryresultscache.QueryResultsCacheInternal
org.apache.isis.applib.services.scratchpad.Scratchpad
org.apache.isis.runtime.services.changes.ChangedObjectsServiceInternal
org.apache.isis.runtime.services.metrics.MetricsServiceDefault
-org.apache.isis.runtime.services.publish.PublishingServiceInternalDefault
+PublisherDispatchServiceDefault
org.apache.isis.objectstore.jdo.datanucleus.service.support.TimestampService
\ No newline at end of file
diff --git a/examples/smoketests/src/test/resources/org/apache/isis/testdomain/bootstrapping/builtin-singleton.list b/examples/smoketests/src/test/resources/org/apache/isis/testdomain/bootstrapping/builtin-singleton.list
index 5b4041f..1102cbb 100644
--- a/examples/smoketests/src/test/resources/org/apache/isis/testdomain/bootstrapping/builtin-singleton.list
+++ b/examples/smoketests/src/test/resources/org/apache/isis/testdomain/bootstrapping/builtin-singleton.list
@@ -66,7 +66,7 @@ org.apache.isis.runtime.services.menubars.MenuBarsLoaderServiceDefault
org.apache.isis.runtime.services.menubars.bootstrap3.MenuBarsServiceBS3
org.apache.isis.runtime.services.message.MessageServiceDefault
org.apache.isis.runtime.services.persist.ObjectAdapterServiceDefault
-org.apache.isis.runtime.services.publish.PublishingServiceInternalDefault
+PublisherDispatchServiceDefault
org.apache.isis.runtime.services.routing.RoutingServiceDefault
org.apache.isis.runtime.services.sessmgmt.SessionManagementServiceDefault
org.apache.isis.runtime.services.sudo.SudoServiceDefault
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 532014e..a04f60f 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
@@ -25,8 +25,11 @@ import java.util.*;
import javax.inject.Named;
+import org.apache.isis.applib.annotation.OrderPrecedence;
+import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ConfigurableApplicationContext;
+import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Service;
/**
@@ -34,6 +37,8 @@ import org.springframework.stereotype.Service;
*/
@Service
@Named("isisExtSpring.SpringBeansService")
+@Order(OrderPrecedence.MIDPOINT)
+@Qualifier("Default")
@Log4j2
public class SpringBeansService {
diff --git a/extensions/lib/base/impl/src/main/java/org/apache/isis/extensions/base/dom/services/calendar/CalendarService.java b/extensions/lib/base/impl/src/main/java/org/apache/isis/extensions/base/dom/services/calendar/CalendarService.java
index 79f3ad4..74c1a0e 100644
--- a/extensions/lib/base/impl/src/main/java/org/apache/isis/extensions/base/dom/services/calendar/CalendarService.java
+++ b/extensions/lib/base/impl/src/main/java/org/apache/isis/extensions/base/dom/services/calendar/CalendarService.java
@@ -7,13 +7,18 @@ import java.time.LocalDate;
import javax.inject.Inject;
import javax.inject.Named;
-import org.apache.isis.applib.annotation.DomainService;
-import org.apache.isis.applib.annotation.NatureOfService;
+import org.apache.isis.applib.annotation.OrderPrecedence;
import org.apache.isis.applib.annotation.Programmatic;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.context.annotation.Primary;
+import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Service;
@Service
@Named("isisExtBase.calendarService")
+@Order(OrderPrecedence.MIDPOINT)
+@Primary
+@Qualifier("Default")
@Log4j2
public class CalendarService {
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 237e20c..e94fc53 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
@@ -11,6 +11,7 @@ import javax.annotation.PostConstruct;
import javax.inject.Inject;
import javax.inject.Named;
+import org.apache.isis.applib.annotation.OrderPrecedence;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
@@ -23,10 +24,16 @@ import org.apache.isis.applib.value.Blob;
import org.apache.isis.commons.internal.collections._Lists;
import org.apache.isis.extensions.excel.dom.util.ExcelServiceImpl;
import org.apache.isis.extensions.excel.dom.util.Mode;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.context.annotation.Primary;
+import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Service;
@Service
@Named("isisExtExcel.ExcelService")
+@Order(OrderPrecedence.MIDPOINT)
+@Primary
+@Qualifier("Default")
@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 37fc981..b38b5ab 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
@@ -12,14 +12,19 @@ import com.github.javafaker.Faker;
import com.github.javafaker.service.FakeValuesService;
import com.github.javafaker.service.RandomService;
-import org.apache.isis.applib.annotation.DomainService;
-import org.apache.isis.applib.annotation.NatureOfService;
+import org.apache.isis.applib.annotation.OrderPrecedence;
import org.apache.isis.applib.services.clock.ClockService;
import org.apache.isis.applib.services.repository.RepositoryService;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.context.annotation.Primary;
+import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Service;
@Service
@Named("isisExtFakeData.FakeDataService")
+@Order(OrderPrecedence.MIDPOINT)
+@Primary
+@Qualifier("Default")
@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 9d0132a..aa4cb89 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
@@ -24,6 +24,8 @@ import javax.servlet.ServletContext;
import javax.servlet.ServletContextListener;
import javax.servlet.ServletException;
+import org.apache.isis.applib.annotation.OrderPrecedence;
+import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Service;
@@ -41,7 +43,8 @@ import lombok.val;
@Service
@Named("isisExtH2Console.WebModuleH2Console")
-@Order(0)
+@Order(OrderPrecedence.MIDPOINT)
+@Qualifier("H2Console")
@Log4j2
public class WebModuleH2Console implements WebModule {
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 754afc2..80e61dd 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
@@ -22,13 +22,18 @@ import lombok.extern.log4j.Log4j2;
import javax.inject.Named;
+import org.apache.isis.applib.annotation.OrderPrecedence;
import org.mindrot.jbcrypt.BCrypt;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Service;
import org.apache.isis.extensions.secman.api.encryption.PasswordEncryptionService;
@Service
@Named("isisExtSecman.PasswordEncryptionServiceUsingJBcrypt")
+@Order(OrderPrecedence.MIDPOINT)
+@Qualifier("JBCrypt")
@Log4j2
public class PasswordEncryptionServiceUsingJBcrypt implements PasswordEncryptionService {
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 cef4df4..dee0308 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
@@ -24,7 +24,9 @@ import lombok.extern.log4j.Log4j2;
import javax.inject.Inject;
import javax.inject.Named;
-import org.springframework.core.Ordered;
+import org.apache.isis.applib.annotation.OrderPrecedence;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.context.annotation.Primary;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Service;
@@ -61,7 +63,9 @@ public interface ApplicationPermissionFactory {
@Service
@Named("isisExtSecman.ApplicationPermissionFactory.Default")
- @Order(Ordered.LOWEST_PRECEDENCE)
+ @Order(OrderPrecedence.MIDPOINT)
+ @Primary
+ @Qualifier("Default")
@Log4j2
public static class Default implements ApplicationPermissionFactory {
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 230d4e4..21674fe 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
@@ -23,6 +23,9 @@ import lombok.extern.log4j.Log4j2;
import javax.inject.Inject;
import javax.inject.Named;
+import org.apache.isis.applib.annotation.OrderPrecedence;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.context.annotation.Primary;
import org.springframework.core.Ordered;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Service;
@@ -60,7 +63,9 @@ public interface ApplicationRoleFactory {
@Service
@Named("isisExtSecman.ApplicationRoleFactory.Default")
- @Order(Ordered.LOWEST_PRECEDENCE)
+ @Order(OrderPrecedence.MIDPOINT)
+ @Primary
+ @Qualifier("Default")
@Log4j2
public static class Default implements ApplicationRoleFactory {
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 9e7759c..1043349 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
@@ -23,6 +23,9 @@ import lombok.extern.log4j.Log4j2;
import javax.inject.Inject;
import javax.inject.Named;
+import org.apache.isis.applib.annotation.OrderPrecedence;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.context.annotation.Primary;
import org.springframework.core.Ordered;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Service;
@@ -60,7 +63,9 @@ public interface ApplicationTenancyFactory {
@Service
@Named("isisExtSecman.ApplicationTenancyFactory.Default")
- @Order(Ordered.LOWEST_PRECEDENCE)
+ @Order(OrderPrecedence.MIDPOINT)
+ @Primary
+ @Qualifier("Default")
@Log4j2
public static class Default implements ApplicationTenancyFactory {
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 fcb3121..591bb26 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
@@ -23,6 +23,9 @@ import lombok.extern.log4j.Log4j2;
import javax.inject.Inject;
import javax.inject.Named;
+import org.apache.isis.applib.annotation.OrderPrecedence;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.context.annotation.Primary;
import org.springframework.core.Ordered;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Service;
@@ -60,7 +63,9 @@ public interface ApplicationUserFactory {
@Service
@Named("isisExtSecman.ApplicationUserFactory.Default")
- @Order(Ordered.LOWEST_PRECEDENCE)
+ @Order(OrderPrecedence.MIDPOINT)
+ @Primary
+ @Qualifier("Default")
@Log4j2
public static class Default implements ApplicationUserFactory {
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 a542e92..86d9522 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
@@ -21,7 +21,11 @@ package org.apache.isis.extensions.secman.jdo.seed;
import javax.inject.Inject;
import javax.inject.Named;
+import org.apache.isis.applib.annotation.OrderPrecedence;
+import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.event.EventListener;
+import org.springframework.core.Ordered;
+import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Service;
import org.apache.isis.commons.internal.exceptions._Exceptions;
@@ -33,6 +37,8 @@ import lombok.extern.log4j.Log4j2;
@Service
@Named("isisExtSecman.SeedSecurityModuleService")
+@Order(OrderPrecedence.MIDPOINT)
+@Qualifier("Default")
@Log4j2
public class SeedSecurityModuleService {
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 a7605d2..029350c 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
@@ -21,7 +21,10 @@ package org.apache.isis.extensions.secman.shiro.services;
import javax.inject.Inject;
import javax.inject.Named;
+import org.apache.isis.applib.annotation.OrderPrecedence;
import org.apache.isis.extensions.secman.shiro.util.ShiroUtils;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Service;
import org.apache.isis.applib.services.inject.ServiceInjector;
@@ -33,6 +36,8 @@ import lombok.val;
@Service
@Named("isisExtSecman.SecurityRealmServiceUsingShiro")
+@Order(OrderPrecedence.MIDPOINT)
+@Qualifier("Shiro")
@Log4j2
public class SecurityRealmServiceUsingShiro implements SecurityRealmService {
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 2bf8292..52a6bc0 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
@@ -25,16 +25,22 @@ import javax.annotation.PreDestroy;
import javax.inject.Inject;
import javax.inject.Named;
+import org.apache.isis.applib.annotation.OrderPrecedence;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.context.annotation.Primary;
+import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Service;
import org.apache.isis.applib.clock.Clock;
-import org.apache.isis.commons.internal.context._Context;
import org.apache.isis.commons.internal.environment.IsisSystemEnvironment;
import org.apache.isis.extensions.fixtures.legacy.FixtureClock;
import org.apache.isis.runtime.system.session.IsisSessionFactory;
@Service
@Named("isisExtFixtures.FixturesLifecycleService")
+@Order(OrderPrecedence.MIDPOINT)
+@Primary
+@Qualifier("Default")
@Log4j2
public class FixturesLifecycleService {
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 ab0a011..eb9bd5f 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
@@ -20,7 +20,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.legacy.queryresultscache.QueryResultsCacheControlDefault;
import org.apache.isis.extensions.fixtures.modules.ModuleWithFixturesService;
import org.apache.isis.extensions.spring.IsisModuleExtSpring;
import org.springframework.context.annotation.Configuration;
@@ -35,7 +35,7 @@ import org.springframework.context.annotation.Import;
FixturesLifecycleService.class,
ExecutionParametersService.class,
ModuleWithFixturesService.class,
- QueryResultsCacheControlInternal.class,
+ QueryResultsCacheControlDefault.class,
// @DomainService's
FixtureScripts.class,
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 05f92f3..49255cb 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
@@ -22,6 +22,10 @@ import lombok.extern.log4j.Log4j2;
import javax.inject.Named;
+import org.apache.isis.applib.annotation.OrderPrecedence;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.context.annotation.Primary;
+import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Service;
@@ -37,6 +41,9 @@ import org.springframework.stereotype.Service;
*/
@Service
@Named("isisExtFixtures.ExecutionParametersService")
+@Order(OrderPrecedence.MIDPOINT)
+@Primary
+@Qualifier("Default")
@Log4j2
public class ExecutionParametersService {
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/QueryResultsCacheControlDefault.java
similarity index 81%
rename from extensions/testing/fixtures/src/main/java/org/apache/isis/extensions/fixtures/legacy/queryresultscache/QueryResultsCacheControlInternal.java
rename to extensions/testing/fixtures/src/main/java/org/apache/isis/extensions/fixtures/legacy/queryresultscache/QueryResultsCacheControlDefault.java
index b2dd303..4009ef9 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/QueryResultsCacheControlDefault.java
@@ -22,7 +22,11 @@ import lombok.extern.log4j.Log4j2;
import javax.inject.Named;
+import org.apache.isis.applib.annotation.OrderPrecedence;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.context.annotation.Primary;
import org.springframework.context.event.EventListener;
+import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Service;
import org.apache.isis.applib.services.queryresultscache.QueryResultCacheControl;
@@ -35,9 +39,12 @@ import org.apache.isis.extensions.fixtures.events.FixturesInstallingEvent;
* In separate class because {@link QueryResultsCache} itself is request-scoped
*/
@Service
-@Named("isisExtFixtures.QueryResultsCacheControlInternal")
+@Named("isisExtFixtures.QueryResultsCacheControlDefault")
+@Order(OrderPrecedence.MIDPOINT)
+@Primary
+@Qualifier("Default")
@Log4j2
-public class QueryResultsCacheControlInternal implements QueryResultCacheControl {
+public class QueryResultsCacheControlDefault implements QueryResultCacheControl {
@EventListener(FixturesInstallingEvent.class)
public void onFixturesInstallingEvent(FixturesInstallingEvent ev) {
diff --git a/extensions/testing/fixtures/src/main/java/org/apache/isis/extensions/fixtures/modules/ModuleWithFixturesService.java b/extensions/testing/fixtures/src/main/java/org/apache/isis/extensions/fixtures/modules/ModuleWithFixturesService.java
index 5a674c0..0c3f9d9 100644
--- a/extensions/testing/fixtures/src/main/java/org/apache/isis/extensions/fixtures/modules/ModuleWithFixturesService.java
+++ b/extensions/testing/fixtures/src/main/java/org/apache/isis/extensions/fixtures/modules/ModuleWithFixturesService.java
@@ -26,12 +26,16 @@ import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
+import org.apache.isis.applib.annotation.OrderPrecedence;
import org.apache.isis.extensions.fixtures.fixturescripts.FixtureScript;
+import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
+import org.springframework.context.annotation.Primary;
import org.springframework.context.event.ContextRefreshedEvent;
import org.springframework.context.event.EventListener;
+import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Service;
import org.apache.isis.extensions.spring.service.BeanDescriptor;
@@ -47,6 +51,9 @@ import javax.inject.Named;
@Service
@Named("isisExtFixtures.ModuleService")
+@Order(OrderPrecedence.MIDPOINT)
+@Primary
+@Qualifier("Default")
@Log4j2
public class ModuleWithFixturesService {
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 201221f..42a8da0 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
@@ -34,6 +34,10 @@ import java.util.function.Predicate;
import javax.inject.Inject;
import javax.inject.Named;
+import org.apache.isis.applib.annotation.OrderPrecedence;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.context.annotation.Primary;
+import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Service;
import org.apache.isis.applib.services.xactn.TransactionService;
@@ -41,7 +45,6 @@ import org.apache.isis.commons.internal.collections._Lists;
import org.apache.isis.extensions.sse.api.SseChannel;
import org.apache.isis.extensions.sse.api.SseService;
import org.apache.isis.extensions.sse.api.SseSource;
-import org.apache.isis.runtime.system.context.IsisContext;
import org.apache.isis.runtime.system.session.IsisSessionFactory;
import org.apache.isis.runtime.system.transaction.IsisTransactionAspectSupport;
@@ -61,6 +64,9 @@ import lombok.extern.log4j.Log4j2;
*/
@Service
@Named("isisExtSse.SseServiceDefault")
+@Order(OrderPrecedence.MIDPOINT)
+@Primary
+@Qualifier("Default")
@Log4j2
public class SseServiceDefault implements SseService {
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 7e5d26b..2de8068 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
@@ -23,6 +23,8 @@ import javax.servlet.ServletContext;
import javax.servlet.ServletContextListener;
import javax.servlet.ServletException;
+import org.apache.isis.applib.annotation.OrderPrecedence;
+import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Service;
@@ -39,7 +41,8 @@ import lombok.val;
*/
@Service
@Named("isisExtSse.WebModuleServerSentEvents")
-@Order(-99)
+@Qualifier("ServerSentEvents")
+@Order(OrderPrecedence.MIDPOINT-99)
@Log4j2
public final class WebModuleServerSentEvents implements WebModule {
diff --git a/legacy/core/applib/src/main/java/org/apache/isis/legacy/applib/DomainObjectContainer.java b/legacy/core/applib/src/main/java/org/apache/isis/legacy/applib/DomainObjectContainer.java
index 3818c81..f65103f 100644
--- a/legacy/core/applib/src/main/java/org/apache/isis/legacy/applib/DomainObjectContainer.java
+++ b/legacy/core/applib/src/main/java/org/apache/isis/legacy/applib/DomainObjectContainer.java
@@ -25,8 +25,7 @@ import javax.inject.Inject;
import javax.inject.Named;
import org.apache.isis.applib.ViewModel;
-import org.apache.isis.applib.annotation.DomainService;
-import org.apache.isis.applib.annotation.NatureOfService;
+import org.apache.isis.applib.annotation.OrderPrecedence;
import org.apache.isis.applib.annotation.Programmatic;
import org.apache.isis.legacy.applib.filter.Filter;
import org.apache.isis.applib.query.Query;
@@ -44,12 +43,18 @@ import org.apache.isis.applib.services.user.UserService;
import org.apache.isis.applib.services.xactn.TransactionService;
import org.apache.isis.commons.internal.exceptions._Exceptions;
import org.apache.isis.config.IsisConfiguration;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.context.annotation.Primary;
+import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Service;
import com.google.common.base.Predicate;
@Service
@Named("isisLegacyApplib.domainObjectContainer")
+@Order(OrderPrecedence.MIDPOINT)
+@Primary
+@Qualifier("Default")
@Deprecated
public class DomainObjectContainer {