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

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


The following commit(s) were added to refs/heads/master by this push:
     new ee1690cdb1 ISIS-3069: fixes deprecated naming strategy on 
DomainService annotation
ee1690cdb1 is described below

commit ee1690cdb1c540308e9cf503a6acc552c952b15f
Author: andi-huber <ahu...@apache.org>
AuthorDate: Tue Jun 7 10:57:58 2022 +0200

    ISIS-3069: fixes deprecated naming strategy on DomainService annotation
---
 .../isis/core/config/beans/IsisBeanMetaData.java   | 31 +++++++++++++++++++---
 .../beans/IsisBeanTypeClassifierDefault.java       |  7 +++--
 .../beans/IsisComponentScanInterceptorImpl.java    |  3 +--
 .../services/registry/ServiceRegistryDefault.java  | 12 ++++-----
 4 files changed, 37 insertions(+), 16 deletions(-)

diff --git 
a/core/config/src/main/java/org/apache/isis/core/config/beans/IsisBeanMetaData.java
 
b/core/config/src/main/java/org/apache/isis/core/config/beans/IsisBeanMetaData.java
index 4a66bab965..547e38a847 100644
--- 
a/core/config/src/main/java/org/apache/isis/core/config/beans/IsisBeanMetaData.java
+++ 
b/core/config/src/main/java/org/apache/isis/core/config/beans/IsisBeanMetaData.java
@@ -29,11 +29,18 @@ public class IsisBeanMetaData {
 
     public enum ManagedBy {
         UNSPECIFIED,
+        ISIS,
         SPRING,
-        ISIS;
-        public boolean isUnspecified() {return this == ManagedBy.UNSPECIFIED; }
-        public boolean isSpring() {return this == ManagedBy.SPRING; }
-        public boolean isIsis() {return this == ManagedBy.ISIS; }
+        /** @deprecated in support of deprecated {@code 
@DomainService(logicalTypeName=...)}*/
+        @Deprecated
+        SPRING_NAMED_BY_ISIS,
+        ;
+        public boolean isUnspecified() {return this == UNSPECIFIED; }
+        public boolean isIsis() { return this == ISIS; }
+        public boolean isSpring() {
+            return this == SPRING
+                || this == SPRING_NAMED_BY_ISIS;
+        }
         /**
          * Whether Spring should make that underlying bean injectable.
          * @implNote if not managed by Isis, let ultimately Spring decide
@@ -41,6 +48,14 @@ public class IsisBeanMetaData {
         public boolean isInjectable() {
             return !isIsis();
         }
+
+        /**
+         * Whether we interfere with Spring's naming strategy.
+         */
+        public boolean isBeanNameOverride() {
+            return this == ISIS
+                    || this == SPRING_NAMED_BY_ISIS;
+        }
     }
 
     private final @NonNull BeanSort beanSort;
@@ -63,6 +78,14 @@ public class IsisBeanMetaData {
         return of(beanSort, logicalType, ManagedBy.SPRING);
     }
 
+    /** @deprecated in support of deprecated {@code 
@DomainService(logicalTypeName=...)}*/
+    @Deprecated
+    public static IsisBeanMetaData injectableNamedByIsis(
+            final @NonNull BeanSort beanSort,
+            final @NonNull LogicalType logicalType) {
+        return of(beanSort, logicalType, ManagedBy.SPRING_NAMED_BY_ISIS);
+    }
+
     /**
      * Let <i>Spring</i> decide.
      */
diff --git 
a/core/config/src/main/java/org/apache/isis/core/config/beans/IsisBeanTypeClassifierDefault.java
 
b/core/config/src/main/java/org/apache/isis/core/config/beans/IsisBeanTypeClassifierDefault.java
index e4304eff80..daded0f1c4 100644
--- 
a/core/config/src/main/java/org/apache/isis/core/config/beans/IsisBeanTypeClassifierDefault.java
+++ 
b/core/config/src/main/java/org/apache/isis/core/config/beans/IsisBeanTypeClassifierDefault.java
@@ -105,7 +105,7 @@ implements IsisBeanTypeClassifier {
             val logicalType = LogicalType.infer(type);
             // overrides Spring naming strategy
             return IsisBeanMetaData
-                        .injectable(BeanSort.MANAGED_BEAN_CONTRIBUTING, 
logicalType);
+                        
.injectableNamedByIsis(BeanSort.MANAGED_BEAN_CONTRIBUTING, logicalType);
         }
 
         // allow ServiceLoader plugins to have a say, eg. when classifying 
entity types
@@ -130,9 +130,8 @@ implements IsisBeanTypeClassifier {
             switch (aDomainObject.nature()) {
             case BEAN:
                 val logicalType = LogicalType.infer(type);
-                return IsisBeanMetaData.injectable(
-                        BeanSort.MANAGED_BEAN_CONTRIBUTING,
-                        logicalType);
+                return IsisBeanMetaData
+                        
.injectableNamedByIsis(BeanSort.MANAGED_BEAN_CONTRIBUTING, logicalType);
             case MIXIN:
                 return IsisBeanMetaData.isisManaged(BeanSort.MIXIN, type);
             case ENTITY:
diff --git 
a/core/config/src/main/java/org/apache/isis/core/config/beans/IsisComponentScanInterceptorImpl.java
 
b/core/config/src/main/java/org/apache/isis/core/config/beans/IsisComponentScanInterceptorImpl.java
index 88270cf300..8ab9564075 100644
--- 
a/core/config/src/main/java/org/apache/isis/core/config/beans/IsisComponentScanInterceptorImpl.java
+++ 
b/core/config/src/main/java/org/apache/isis/core/config/beans/IsisComponentScanInterceptorImpl.java
@@ -81,8 +81,7 @@ implements IsisComponentScanInterceptor {
         val typeMeta = isisBeanTypeClassifier.classify(correspondingClass);
 
         scanMeta.setInjectable(typeMeta.getManagedBy().isInjectable());
-        if(typeMeta.getManagedBy().isIsis()) {
-            // otherwise we don't interfere with naming strategies
+        if(typeMeta.getManagedBy().isBeanNameOverride()) {
             
scanMeta.setBeanNameOverride(typeMeta.getLogicalType().getLogicalTypeName());
         }
 
diff --git 
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/registry/ServiceRegistryDefault.java
 
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/registry/ServiceRegistryDefault.java
index 9f6df53526..0d9bffaaac 100644
--- 
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/registry/ServiceRegistryDefault.java
+++ 
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/registry/ServiceRegistryDefault.java
@@ -54,7 +54,7 @@ public final class ServiceRegistryDefault implements 
ServiceRegistry {
 
     @Override
     public Optional<_ManagedBeanAdapter> lookupRegisteredBeanById(final String 
id) {
-        return Optional.ofNullable(managedBeansById.get().get(id));
+        return 
Optional.ofNullable(contributingDomainServicesById.get().get(id));
     }
 
     @Override
@@ -64,7 +64,7 @@ public final class ServiceRegistryDefault implements 
ServiceRegistry {
 
     @Override
     public Stream<_ManagedBeanAdapter> streamRegisteredBeans() {
-        return managedBeansById.get().values().stream();
+        return contributingDomainServicesById.get().values().stream();
     }
 
     @Override
@@ -75,15 +75,15 @@ public final class ServiceRegistryDefault implements 
ServiceRegistry {
 
     @Override
     public void clearRegisteredBeans() {
-        managedBeansById.clear();
+        contributingDomainServicesById.clear();
     }
 
     // -- HELPER
 
-    private final _Lazy<Map<String, _ManagedBeanAdapter>> managedBeansById =
-            _Lazy.threadSafe(this::enumerateManagedBeans);
+    private final _Lazy<Map<String, _ManagedBeanAdapter>> 
contributingDomainServicesById =
+            _Lazy.threadSafe(this::enumerateContributingDomainServices);
 
-    private Map<String, _ManagedBeanAdapter> enumerateManagedBeans() {
+    private Map<String, _ManagedBeanAdapter> 
enumerateContributingDomainServices() {
         val managedBeanAdapterByName = _Maps.<String, 
_ManagedBeanAdapter>newHashMap();
         val managedBeansContributing = 
isisBeanTypeRegistry.getManagedBeansContributing().keySet();
 

Reply via email to