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 <[email protected]>
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();