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();