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

danhaywood pushed a commit to branch CAUSEWAY-3719
in repository https://gitbox.apache.org/repos/asf/causeway.git

commit 9057c7d1581df79b7a0600a69511584b00dc4529
Author: danhaywood <[email protected]>
AuthorDate: Tue Apr 16 11:44:38 2024 +0100

    Revert "CAUSEWAY-3719: adds AutoConfiguration for all value semantics"
    
    This reverts commit c7ce6018363839d4511ab8b7dc0d497b5acdee90.
---
 .../metamodel/CausewayModuleCoreMetamodel.java     | 74 +++++++++++-----------
 .../ApplicationFeatureIdValueSemantics.java        | 15 +----
 .../valuesemantics/BigDecimalValueSemantics.java   | 15 +----
 .../valuesemantics/BigIntegerValueSemantics.java   | 15 +----
 .../valuesemantics/BookmarkValueSemantics.java     | 15 +----
 .../valuesemantics/BooleanValueSemantics.java      | 16 +----
 .../BufferedImageValueSemantics.java               | 15 +----
 .../valuesemantics/ByteValueSemantics.java         | 15 +----
 .../valuesemantics/ChangesDtoValueSemantics.java   | 15 +----
 .../valuesemantics/CharacterValueSemantics.java    | 16 +----
 .../valuesemantics/ClobValueSemantics.java         | 15 +----
 .../valuesemantics/CommandDtoValueSemantics.java   | 15 +----
 .../valuesemantics/DoubleValueSemantics.java       | 15 +----
 .../valuesemantics/FloatValueSemantics.java        | 15 +----
 .../valuesemantics/IntValueSemantics.java          | 15 +----
 .../InteractionDtoValueSemantics.java              | 15 +----
 .../LocalResourcePathValueSemantics.java           | 15 +----
 .../valuesemantics/LocaleValueSemantics.java       | 15 +----
 .../valuesemantics/LongValueSemantics.java         | 15 +----
 .../valuesemantics/MarkupValueSemantics.java       | 15 +----
 .../valuesemantics/OidDtoValueSemantics.java       | 15 +----
 .../valuesemantics/PasswordValueSemantics.java     | 15 +----
 .../valuesemantics/ShortValueSemantics.java        | 15 +----
 .../valuesemantics/StringValueSemantics.java       | 15 +----
 .../valuesemantics/TreeNodeValueSemantics.java     | 15 +----
 .../valuesemantics/TreePathValueSemantics.java     | 21 ++----
 .../valuesemantics/URLValueSemantics.java          | 15 +----
 .../valuesemantics/UUIDValueSemantics.java         | 15 +----
 .../temporal/LocalDateTimeValueSemantics.java      | 15 +----
 .../temporal/LocalDateValueSemantics.java          | 15 +----
 .../temporal/LocalTimeValueSemantics.java          | 15 +----
 .../temporal/OffsetDateTimeValueSemantics.java     | 15 +----
 .../temporal/OffsetTimeValueSemantics.java         | 15 +----
 .../temporal/ZonedDateTimeValueSemantics.java      | 15 +----
 .../temporal/legacy/JavaSqlDateValueSemantics.java | 15 +----
 .../legacy/JavaSqlTimeStampValueSemantics.java     | 15 +----
 .../temporal/legacy/JavaSqlTimeValueSemantics.java | 15 +----
 .../legacy/JavaUtilDateValueSemantics.java         | 15 +----
 .../commandlog/jpa/dom/CommandLogEntryPK.java      | 16 +----
 .../executionlog/jdo/dom/ExecutionLogEntryPK.java  | 16 +----
 .../executionlog/jpa/dom/ExecutionLogEntryPK.java  | 16 +----
 .../jdo/dom/ExecutionOutboxEntryPK.java            | 16 +----
 .../jpa/dom/ExecutionOutboxEntryPK.java            | 16 +----
 .../sessionlog/jpa/dom/SessionLogEntryPK.java      | 16 +----
 .../applib/value/CalendarEventSemantics.java       | 25 ++------
 .../CausewayModulePersistenceJdoDatanucleus.java   | 36 +++++------
 .../valuetypes/DnByteIdValueSemantics.java         | 16 +----
 .../valuetypes/DnCharIdValueSemantics.java         | 15 +----
 .../DnDatastoreIdImplValueSemantics.java           | 15 +----
 .../DnDatastoreUniqueLongIdValueSemantics.java     | 16 +----
 .../valuetypes/DnIntIdValueSemantics.java          | 15 +----
 .../valuetypes/DnLongIdValueSemantics.java         | 15 +----
 .../valuetypes/DnObjectIdValueSemantics.java       | 15 +----
 .../valuetypes/DnScoidValueSemantics.java          | 16 +----
 .../valuetypes/DnShortIdValueSemantics.java        | 16 +----
 .../valuetypes/DnStringIdValueSemantics.java       | 16 +----
 .../valuetypes/JdoByteIdentityValueSemantics.java  | 16 +----
 .../valuetypes/JdoCharIdentityValueSemantics.java  | 16 +----
 .../valuetypes/JdoDatastoreIdValueSemantics.java   | 16 +----
 .../valuetypes/JdoIntIdentityValueSemantics.java   | 16 +----
 .../valuetypes/JdoLongIdentityValueSemantics.java  | 16 +----
 .../JdoObjectIdentityValueSemantics.java           | 16 +----
 .../valuetypes/JdoShortIdentityValueSemantics.java | 16 +----
 .../JdoStringIdentityValueSemantics.java           | 16 +----
 .../metamodel/src/main/java/module-info.java       |  1 -
 .../CausewayModuleValAsciidocMetaModel.java        |  2 +-
 .../semantics/AsciiDocValueSemantics.java          | 15 +----
 .../integration/src/main/java/module-info.java     |  1 -
 .../CausewayModuleValJodatimeIntegration.java      |  8 +--
 .../valuesemantics/JodaDateTimeValueSemantics.java | 15 +----
 .../JodaLocalDateTimeValueSemantics.java           | 15 +----
 .../JodaLocalDateValueSemantics.java               | 15 +----
 .../JodaLocalTimeValueSemantics.java               | 15 +----
 .../metamodel/src/main/java/module-info.java       |  1 -
 .../CausewayModuleValMarkdownMetaModel.java        |  2 +-
 .../semantics/MarkdownValueSemantics.java          | 15 +----
 .../vega/metamodel/src/main/java/module-info.java  |  1 -
 .../metamodel/CausewayModuleValVegaMetaModel.java  |  2 +-
 .../metamodel/semantics/VegaValueSemantics.java    | 14 ----
 79 files changed, 206 insertions(+), 993 deletions(-)

diff --git 
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/CausewayModuleCoreMetamodel.java
 
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/CausewayModuleCoreMetamodel.java
index ad766a0cd2..9d95c92868 100644
--- 
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/CausewayModuleCoreMetamodel.java
+++ 
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/CausewayModuleCoreMetamodel.java
@@ -135,47 +135,47 @@ import lombok.NonNull;
         ValueSemanticsResolverDefault.class,
 
         // Value Semantics (built-in defaults)
-        BooleanValueSemantics.AutoConfiguration.class,
-        ByteValueSemantics.AutoConfiguration.class,
-        ShortValueSemantics.AutoConfiguration.class,
-        IntValueSemantics.AutoConfiguration.class,
-        LongValueSemantics.AutoConfiguration.class,
-        DoubleValueSemantics.AutoConfiguration.class,
-        FloatValueSemantics.AutoConfiguration.class,
-        BigDecimalValueSemantics.AutoConfiguration.class,
-        BigIntegerValueSemantics.AutoConfiguration.class,
-        CharacterValueSemantics.AutoConfiguration.class,
-        StringValueSemantics.AutoConfiguration.class,
-        PasswordValueSemantics.AutoConfiguration.class,
-        BufferedImageValueSemantics.AutoConfiguration.class,
+        BooleanValueSemantics.class,
+        ByteValueSemantics.class,
+        ShortValueSemantics.class,
+        IntValueSemantics.class,
+        LongValueSemantics.class,
+        DoubleValueSemantics.class,
+        FloatValueSemantics.class,
+        BigDecimalValueSemantics.class,
+        BigIntegerValueSemantics.class,
+        CharacterValueSemantics.class,
+        StringValueSemantics.class,
+        PasswordValueSemantics.class,
+        BufferedImageValueSemantics.class,
         BlobValueSemantics.class,
-        ClobValueSemantics.AutoConfiguration.class,
-        MarkupValueSemantics.AutoConfiguration.class,
-        URLValueSemantics.AutoConfiguration.class,
-        LocalResourcePathValueSemantics.AutoConfiguration.class,
-        BookmarkValueSemantics.AutoConfiguration.class,
-        OidDtoValueSemantics.AutoConfiguration.class,
-        UUIDValueSemantics.AutoConfiguration.class,
-        LocaleValueSemantics.AutoConfiguration.class,
-        TreePathValueSemantics.AutoConfiguration.class,
-        TreeNodeValueSemantics.AutoConfiguration.class,
-        ChangesDtoValueSemantics.AutoConfiguration.class,
-        CommandDtoValueSemantics.AutoConfiguration.class,
-        InteractionDtoValueSemantics.AutoConfiguration.class,
+        ClobValueSemantics.class,
+        MarkupValueSemantics.class,
+        URLValueSemantics.class,
+        LocalResourcePathValueSemantics.class,
+        BookmarkValueSemantics.class,
+        OidDtoValueSemantics.class,
+        UUIDValueSemantics.class,
+        LocaleValueSemantics.class,
+        TreePathValueSemantics.class,
+        TreeNodeValueSemantics.class,
+        ChangesDtoValueSemantics.class,
+        CommandDtoValueSemantics.class,
+        InteractionDtoValueSemantics.class,
         // Value Semantics (temporal)
-        LocalDateTimeValueSemantics.AutoConfiguration.class,
-        LocalDateValueSemantics.AutoConfiguration.class,
-        LocalTimeValueSemantics.AutoConfiguration.class,
-        OffsetDateTimeValueSemantics.AutoConfiguration.class,
-        OffsetTimeValueSemantics.AutoConfiguration.class,
-        ZonedDateTimeValueSemantics.AutoConfiguration.class,
+        LocalDateTimeValueSemantics.class,
+        LocalDateValueSemantics.class,
+        LocalTimeValueSemantics.class,
+        OffsetDateTimeValueSemantics.class,
+        OffsetTimeValueSemantics.class,
+        ZonedDateTimeValueSemantics.class,
         // Value Semantics (temporal legacy)
-        JavaSqlDateValueSemantics.AutoConfiguration.class,
-        JavaSqlTimeValueSemantics.AutoConfiguration.class,
-        JavaSqlTimeStampValueSemantics.AutoConfiguration.class,
-        JavaUtilDateValueSemantics.AutoConfiguration.class,
+        JavaSqlDateValueSemantics.class,
+        JavaSqlTimeValueSemantics.class,
+        JavaSqlTimeStampValueSemantics.class,
+        JavaUtilDateValueSemantics.class,
         // Value Semantics (meta-model)
-        ApplicationFeatureIdValueSemantics.AutoConfiguration.class,
+        ApplicationFeatureIdValueSemantics.class,
         // fallback IdStringifier
         IdStringifierForSerializable.class,
 
diff --git 
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/ApplicationFeatureIdValueSemantics.java
 
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/ApplicationFeatureIdValueSemantics.java
index c3785ba963..0ace27a19f 100644
--- 
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/ApplicationFeatureIdValueSemantics.java
+++ 
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/ApplicationFeatureIdValueSemantics.java
@@ -21,9 +21,7 @@ package org.apache.causeway.core.metamodel.valuesemantics;
 import javax.annotation.Priority;
 import javax.inject.Named;
 
-import 
org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
+import org.springframework.stereotype.Component;
 
 import org.apache.causeway.applib.annotation.PriorityPrecedence;
 import org.apache.causeway.applib.services.appfeat.ApplicationFeatureId;
@@ -38,6 +36,7 @@ import org.apache.causeway.schema.common.v2.ValueType;
 
 import lombok.val;
 
+@Component
 @Named("causeway.metamodel.value.ApplicationFeatureIdValueSemantics")
 @Priority(PriorityPrecedence.LATE)
 public class ApplicationFeatureIdValueSemantics
@@ -46,16 +45,6 @@ implements
     Parser<ApplicationFeatureId>,
     Renderer<ApplicationFeatureId> {
 
-    @Configuration
-    public static class AutoConfiguration {
-
-        @Bean
-        @ConditionalOnMissingBean(ApplicationFeatureIdValueSemantics.class)
-        public ApplicationFeatureIdValueSemantics 
defaultApplicationFeatureIdValueSemantics() {
-            return new ApplicationFeatureIdValueSemantics();
-        }
-    }
-
     @Override
     public Class<ApplicationFeatureId> getCorrespondingClass() {
         return ApplicationFeatureId.class;
diff --git 
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/BigDecimalValueSemantics.java
 
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/BigDecimalValueSemantics.java
index 508359d682..0df8eade1e 100644
--- 
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/BigDecimalValueSemantics.java
+++ 
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/BigDecimalValueSemantics.java
@@ -28,9 +28,7 @@ import javax.annotation.Priority;
 import javax.inject.Inject;
 import javax.inject.Named;
 
-import 
org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
+import org.springframework.stereotype.Component;
 
 import org.apache.causeway.applib.annotation.PriorityPrecedence;
 import org.apache.causeway.applib.services.bookmark.IdStringifier;
@@ -51,6 +49,7 @@ import lombok.NonNull;
 import lombok.Setter;
 import lombok.val;
 
+@Component
 @Named("causeway.metamodel.value.BigDecimalValueSemantics")
 @Priority(PriorityPrecedence.LATE)
 public class BigDecimalValueSemantics
@@ -61,16 +60,6 @@ implements
     Renderer<BigDecimal>,
     IdStringifier.EntityAgnostic<BigDecimal> {
 
-    @Configuration
-    public static class AutoConfiguration {
-
-        @Bean
-        @ConditionalOnMissingBean(BigDecimalValueSemantics.class)
-        public BigDecimalValueSemantics defaultBigDecimalValueSemantics() {
-            return new BigDecimalValueSemantics();
-        }
-    }
-
     @Setter @Inject
     private SpecificationLoader specificationLoader;
     @Setter @Inject
diff --git 
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/BigIntegerValueSemantics.java
 
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/BigIntegerValueSemantics.java
index 16998f8d7d..bbea83b61b 100644
--- 
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/BigIntegerValueSemantics.java
+++ 
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/BigIntegerValueSemantics.java
@@ -24,9 +24,7 @@ import java.util.function.UnaryOperator;
 import javax.annotation.Priority;
 import javax.inject.Named;
 
-import 
org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
+import org.springframework.stereotype.Component;
 
 import org.apache.causeway.applib.annotation.PriorityPrecedence;
 import org.apache.causeway.applib.services.bookmark.IdStringifier;
@@ -41,6 +39,7 @@ import org.apache.causeway.schema.common.v2.ValueWithTypeDto;
 
 import lombok.NonNull;
 
+@Component
 @Named("causeway.metamodel.value.BigIntegerValueSemantics")
 @Priority(PriorityPrecedence.LATE)
 public class BigIntegerValueSemantics
@@ -51,16 +50,6 @@ implements
     Renderer<BigInteger>,
     IdStringifier.EntityAgnostic<BigInteger> {
 
-    @Configuration
-    public static class AutoConfiguration {
-
-        @Bean
-        @ConditionalOnMissingBean(BigIntegerValueSemantics.class)
-        public BigIntegerValueSemantics defaultBigIntegerValueSemantics() {
-            return new BigIntegerValueSemantics();
-        }
-    }
-
     @Override
     public Class<BigInteger> getCorrespondingClass() {
         return BigInteger.class;
diff --git 
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/BookmarkValueSemantics.java
 
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/BookmarkValueSemantics.java
index 6fe5986672..c550f0e835 100644
--- 
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/BookmarkValueSemantics.java
+++ 
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/BookmarkValueSemantics.java
@@ -21,9 +21,7 @@ package org.apache.causeway.core.metamodel.valuesemantics;
 import javax.annotation.Priority;
 import javax.inject.Named;
 
-import 
org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
+import org.springframework.stereotype.Component;
 
 import org.apache.causeway.applib.annotation.PriorityPrecedence;
 import org.apache.causeway.applib.services.bookmark.Bookmark;
@@ -39,6 +37,7 @@ import org.apache.causeway.schema.common.v2.ValueType;
 
 import lombok.val;
 
+@Component
 @Named("causeway.metamodel.value.BookmarkValueSemantics")
 @Priority(PriorityPrecedence.LATE)
 public class BookmarkValueSemantics
@@ -48,16 +47,6 @@ implements
     Parser<Bookmark>,
     Renderer<Bookmark> {
 
-    @Configuration
-    public static class AutoConfiguration {
-
-        @Bean
-        @ConditionalOnMissingBean(BookmarkValueSemantics.class)
-        public BookmarkValueSemantics defaultBookmarkValueSemantics() {
-            return new BookmarkValueSemantics();
-        }
-    }
-
     @Override
     public Class<Bookmark> getCorrespondingClass() {
         return Bookmark.class;
diff --git 
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/BooleanValueSemantics.java
 
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/BooleanValueSemantics.java
index 319d00c3ed..edc8aac0d3 100644
--- 
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/BooleanValueSemantics.java
+++ 
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/BooleanValueSemantics.java
@@ -23,9 +23,7 @@ import java.util.function.UnaryOperator;
 import javax.annotation.Priority;
 import javax.inject.Named;
 
-import 
org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
+import org.springframework.stereotype.Component;
 
 import org.apache.causeway.applib.annotation.PriorityPrecedence;
 import 
org.apache.causeway.applib.exceptions.recoverable.TextEntryParseException;
@@ -45,6 +43,7 @@ import lombok.val;
 /**
  * due to auto-boxing also handles the primitive variant
  */
+@Component
 @Named("causeway.metamodel.value.BooleanValueSemantics")
 @Priority(PriorityPrecedence.LATE)
 public class BooleanValueSemantics
@@ -54,17 +53,6 @@ implements
     Parser<Boolean>,
     Renderer<Boolean> {
 
-    @Configuration
-    public static class AutoConfiguration {
-
-        @Bean
-        @ConditionalOnMissingBean(BooleanValueSemantics.class)
-        public BooleanValueSemantics defaultBooleanValueSemantics() {
-            return new BooleanValueSemantics();
-        }
-    }
-
-
     @Override
     public Class<Boolean> getCorrespondingClass() {
         return Boolean.class;
diff --git 
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/BufferedImageValueSemantics.java
 
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/BufferedImageValueSemantics.java
index 3afa33d75c..7bdfc017c2 100644
--- 
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/BufferedImageValueSemantics.java
+++ 
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/BufferedImageValueSemantics.java
@@ -24,10 +24,8 @@ import java.util.Optional;
 import javax.annotation.Priority;
 import javax.inject.Named;
 
-import 
org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
 import org.springframework.lang.Nullable;
+import org.springframework.stereotype.Component;
 
 import org.apache.causeway.applib.annotation.PriorityPrecedence;
 import org.apache.causeway.applib.value.Blob;
@@ -43,6 +41,7 @@ import org.apache.causeway.schema.common.v2.BlobDto;
 import org.apache.causeway.schema.common.v2.ValueType;
 import org.apache.causeway.schema.common.v2.ValueWithTypeDto;
 
+@Component
 @Named("causeway.metamodel.value.BufferedImageValueSemantics")
 @Priority(PriorityPrecedence.LATE)
 public class BufferedImageValueSemantics
@@ -51,16 +50,6 @@ implements
     ImageValueSemantics,
     OrderRelation<BufferedImage, Void> {
 
-    @Configuration
-    public static class AutoConfiguration {
-
-        @Bean
-        @ConditionalOnMissingBean(BufferedImageValueSemantics.class)
-        public BufferedImageValueSemantics 
defaultBufferedImageValueSemantics() {
-            return new BufferedImageValueSemantics();
-        }
-    }
-
     @Override
     public Class<BufferedImage> getCorrespondingClass() {
         return BufferedImage.class;
diff --git 
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/ByteValueSemantics.java
 
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/ByteValueSemantics.java
index ebdfd2f3b3..40f9b4346b 100644
--- 
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/ByteValueSemantics.java
+++ 
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/ByteValueSemantics.java
@@ -24,9 +24,7 @@ import java.util.function.UnaryOperator;
 import javax.annotation.Priority;
 import javax.inject.Named;
 
-import 
org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
+import org.springframework.stereotype.Component;
 
 import org.apache.causeway.applib.annotation.PriorityPrecedence;
 import 
org.apache.causeway.applib.exceptions.recoverable.TextEntryParseException;
@@ -47,6 +45,7 @@ import lombok.val;
 /**
  * due to auto-boxing also handles the primitive variant
  */
+@Component
 @Named("causeway.metamodel.value.ByteValueSemantics")
 @Priority(PriorityPrecedence.LATE)
 public class ByteValueSemantics
@@ -57,16 +56,6 @@ implements
     Renderer<Byte>,
     IdStringifier.EntityAgnostic<Byte> {
 
-    @Configuration
-    public static class AutoConfiguration {
-
-        @Bean
-        @ConditionalOnMissingBean(ByteValueSemantics.class)
-        public ByteValueSemantics defaultByteValueSemantics() {
-            return new ByteValueSemantics();
-        }
-    }
-
     @Override
     public Class<Byte> getCorrespondingClass() {
         return Byte.class;
diff --git 
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/ChangesDtoValueSemantics.java
 
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/ChangesDtoValueSemantics.java
index f95fb2c98b..85cfa4c38b 100644
--- 
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/ChangesDtoValueSemantics.java
+++ 
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/ChangesDtoValueSemantics.java
@@ -21,30 +21,19 @@ package org.apache.causeway.core.metamodel.valuesemantics;
 import javax.annotation.Priority;
 import javax.inject.Named;
 
-import 
org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
+import org.springframework.stereotype.Component;
 
 import org.apache.causeway.applib.annotation.PriorityPrecedence;
 import org.apache.causeway.applib.util.schema.ChangesDtoUtils;
 import org.apache.causeway.commons.collections.Can;
 import org.apache.causeway.schema.chg.v2.ChangesDto;
 
+@Component
 @Named("causeway.metamodel.value.ChangesDtoValueSemantics")
 @Priority(PriorityPrecedence.LATE)
 public class ChangesDtoValueSemantics
 extends XmlValueSemanticsAbstract<ChangesDto> {
 
-    @Configuration
-    public static class AutoConfiguration {
-
-        @Bean
-        @ConditionalOnMissingBean(ChangesDtoValueSemantics.class)
-        public ChangesDtoValueSemantics defaultChangesDtoValueSemantics() {
-            return new ChangesDtoValueSemantics();
-        }
-    }
-
     @Override
     public final Class<ChangesDto> getCorrespondingClass() {
         return ChangesDto.class;
diff --git 
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/CharacterValueSemantics.java
 
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/CharacterValueSemantics.java
index 5fcadb3793..f2be09b592 100644
--- 
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/CharacterValueSemantics.java
+++ 
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/CharacterValueSemantics.java
@@ -26,9 +26,7 @@ import java.util.stream.Collectors;
 import javax.annotation.Priority;
 import javax.inject.Named;
 
-import 
org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
+import org.springframework.stereotype.Component;
 
 import org.apache.causeway.applib.annotation.PriorityPrecedence;
 import org.apache.causeway.applib.exceptions.recoverable.InvalidEntryException;
@@ -49,6 +47,7 @@ import lombok.val;
 /**
  * due to auto-boxing also handles the primitive variant
  */
+@Component
 @Named("causeway.metamodel.value.CharacterValueSemantics")
 @Priority(PriorityPrecedence.LATE)
 public class CharacterValueSemantics
@@ -59,17 +58,6 @@ implements
     Renderer<Character>,
     IdStringifier.EntityAgnostic<Character> {
 
-    @Configuration
-    public static class AutoConfiguration {
-
-        @Bean
-        @ConditionalOnMissingBean(CharacterValueSemantics.class)
-        public CharacterValueSemantics defaultCharacterValueSemantics() {
-            return new CharacterValueSemantics();
-        }
-    }
-
-
     @Override
     public Class<Character> getCorrespondingClass() {
         return Character.class;
diff --git 
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/ClobValueSemantics.java
 
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/ClobValueSemantics.java
index 3b9c5c59db..5dc3795146 100644
--- 
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/ClobValueSemantics.java
+++ 
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/ClobValueSemantics.java
@@ -23,9 +23,7 @@ import java.util.function.UnaryOperator;
 import javax.annotation.Priority;
 import javax.inject.Named;
 
-import 
org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
+import org.springframework.stereotype.Component;
 
 import org.apache.causeway.applib.annotation.PriorityPrecedence;
 import org.apache.causeway.applib.util.schema.CommonDtoUtils;
@@ -38,6 +36,7 @@ import 
org.apache.causeway.applib.value.semantics.ValueSemanticsProvider;
 import org.apache.causeway.commons.collections.Can;
 import org.apache.causeway.schema.common.v2.ValueType;
 
+@Component
 @Named("causeway.metamodel.value.ClobValueSemantics")
 @Priority(PriorityPrecedence.LATE)
 public class ClobValueSemantics
@@ -45,16 +44,6 @@ extends ValueSemanticsAbstract<Clob>
 implements
     Renderer<Clob> {
 
-    @Configuration
-    public static class AutoConfiguration {
-
-        @Bean
-        @ConditionalOnMissingBean(ClobValueSemantics.class)
-        public ClobValueSemantics defaultClobValueSemantics() {
-            return new ClobValueSemantics();
-        }
-    }
-
     @Override
     public Class<Clob> getCorrespondingClass() {
         return Clob.class;
diff --git 
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/CommandDtoValueSemantics.java
 
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/CommandDtoValueSemantics.java
index edd34ef54b..b16d69e391 100644
--- 
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/CommandDtoValueSemantics.java
+++ 
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/CommandDtoValueSemantics.java
@@ -21,30 +21,19 @@ package org.apache.causeway.core.metamodel.valuesemantics;
 import javax.annotation.Priority;
 import javax.inject.Named;
 
-import 
org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
+import org.springframework.stereotype.Component;
 
 import org.apache.causeway.applib.annotation.PriorityPrecedence;
 import org.apache.causeway.applib.util.schema.CommandDtoUtils;
 import org.apache.causeway.commons.collections.Can;
 import org.apache.causeway.schema.cmd.v2.CommandDto;
 
+@Component
 @Named("causeway.metamodel.value.CommandDtoValueSemantics")
 @Priority(PriorityPrecedence.LATE)
 public class CommandDtoValueSemantics
 extends XmlValueSemanticsAbstract<CommandDto> {
 
-    @Configuration
-    public static class AutoConfiguration {
-
-        @Bean
-        @ConditionalOnMissingBean(CommandDtoValueSemantics.class)
-        public CommandDtoValueSemantics defaultCommandDtoValueSemantics() {
-            return new CommandDtoValueSemantics();
-        }
-    }
-
     @Override
     public final Class<CommandDto> getCorrespondingClass() {
         return CommandDto.class;
diff --git 
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/DoubleValueSemantics.java
 
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/DoubleValueSemantics.java
index 48514bb5e0..97253eafd7 100644
--- 
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/DoubleValueSemantics.java
+++ 
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/DoubleValueSemantics.java
@@ -23,9 +23,7 @@ import java.util.function.UnaryOperator;
 import javax.annotation.Priority;
 import javax.inject.Named;
 
-import 
org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
+import org.springframework.stereotype.Component;
 
 import org.apache.causeway.applib.annotation.PriorityPrecedence;
 import org.apache.causeway.applib.value.semantics.DefaultsProvider;
@@ -41,6 +39,7 @@ import org.apache.causeway.schema.common.v2.ValueWithTypeDto;
 /**
  * due to auto-boxing also handles the primitive variant
  */
+@Component
 @Named("causeway.metamodel.value.DoubleValueSemantics")
 @Priority(PriorityPrecedence.LATE)
 public class DoubleValueSemantics
@@ -50,16 +49,6 @@ implements
     Parser<Double>,
     Renderer<Double> {
 
-    @Configuration
-    public static class AutoConfiguration {
-
-        @Bean
-        @ConditionalOnMissingBean(DoubleValueSemantics.class)
-        public DoubleValueSemantics defaultDoubleValueSemantics() {
-            return new DoubleValueSemantics();
-        }
-    }
-
     @Override
     public Class<Double> getCorrespondingClass() {
         return Double.class;
diff --git 
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/FloatValueSemantics.java
 
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/FloatValueSemantics.java
index da5fd0c459..93b44fdf04 100644
--- 
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/FloatValueSemantics.java
+++ 
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/FloatValueSemantics.java
@@ -23,9 +23,7 @@ import java.util.function.UnaryOperator;
 import javax.annotation.Priority;
 import javax.inject.Named;
 
-import 
org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
+import org.springframework.stereotype.Component;
 
 import org.apache.causeway.applib.annotation.PriorityPrecedence;
 import org.apache.causeway.applib.value.semantics.DefaultsProvider;
@@ -41,6 +39,7 @@ import org.apache.causeway.schema.common.v2.ValueWithTypeDto;
 /**
  * due to auto-boxing also handles the primitive variant
  */
+@Component
 @Named("causeway.metamodel.value.FloatValueSemantics")
 @Priority(PriorityPrecedence.LATE)
 public class FloatValueSemantics
@@ -50,16 +49,6 @@ implements
     Parser<Float>,
     Renderer<Float> {
 
-    @Configuration
-    public static class AutoConfiguration {
-
-        @Bean
-        @ConditionalOnMissingBean(FloatValueSemantics.class)
-        public FloatValueSemantics defaultFloatValueSemantics() {
-            return new FloatValueSemantics();
-        }
-    }
-
     @Override
     public Class<Float> getCorrespondingClass() {
         return Float.class;
diff --git 
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/IntValueSemantics.java
 
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/IntValueSemantics.java
index 0d119de7eb..0b1edc0dce 100644
--- 
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/IntValueSemantics.java
+++ 
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/IntValueSemantics.java
@@ -24,9 +24,7 @@ import java.util.function.UnaryOperator;
 import javax.annotation.Priority;
 import javax.inject.Named;
 
-import 
org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
+import org.springframework.stereotype.Component;
 
 import org.apache.causeway.applib.annotation.PriorityPrecedence;
 import 
org.apache.causeway.applib.exceptions.recoverable.TextEntryParseException;
@@ -47,6 +45,7 @@ import lombok.val;
 /**
  * due to auto-boxing also handles the primitive variant
  */
+@Component
 @Named("causeway.metamodel.value.IntValueSemantics")
 @Priority(PriorityPrecedence.LATE)
 public class IntValueSemantics
@@ -57,16 +56,6 @@ implements
     Renderer<Integer>,
     IdStringifier.EntityAgnostic<Integer>{
 
-    @Configuration
-    public static class AutoConfiguration {
-
-        @Bean
-        @ConditionalOnMissingBean(IntValueSemantics.class)
-        public IntValueSemantics defaultIntValueSemantics() {
-            return new IntValueSemantics();
-        }
-    }
-
     @Override
     public Class<Integer> getCorrespondingClass() {
         return Integer.class;
diff --git 
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/InteractionDtoValueSemantics.java
 
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/InteractionDtoValueSemantics.java
index cf40e1fbc2..e8978b1c63 100644
--- 
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/InteractionDtoValueSemantics.java
+++ 
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/InteractionDtoValueSemantics.java
@@ -21,30 +21,19 @@ package org.apache.causeway.core.metamodel.valuesemantics;
 import javax.annotation.Priority;
 import javax.inject.Named;
 
-import 
org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
+import org.springframework.stereotype.Component;
 
 import org.apache.causeway.applib.annotation.PriorityPrecedence;
 import org.apache.causeway.applib.util.schema.InteractionDtoUtils;
 import org.apache.causeway.commons.collections.Can;
 import org.apache.causeway.schema.ixn.v2.InteractionDto;
 
+@Component
 @Named("causeway.metamodel.value.InteractionDtoValueSemantics")
 @Priority(PriorityPrecedence.LATE)
 public class InteractionDtoValueSemantics
 extends XmlValueSemanticsAbstract<InteractionDto> {
 
-    @Configuration
-    public static class AutoConfiguration {
-
-        @Bean
-        @ConditionalOnMissingBean(InteractionDtoValueSemantics.class)
-        public InteractionDtoValueSemantics 
defaultInteractionDtoValueSemantics() {
-            return new InteractionDtoValueSemantics();
-        }
-    }
-
     @Override
     public final Class<InteractionDto> getCorrespondingClass() {
         return InteractionDto.class;
diff --git 
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/LocalResourcePathValueSemantics.java
 
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/LocalResourcePathValueSemantics.java
index 0071fbf0ba..ac5bb45f24 100644
--- 
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/LocalResourcePathValueSemantics.java
+++ 
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/LocalResourcePathValueSemantics.java
@@ -23,9 +23,7 @@ import java.nio.file.InvalidPathException;
 import javax.annotation.Priority;
 import javax.inject.Named;
 
-import 
org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
+import org.springframework.stereotype.Component;
 
 import org.apache.causeway.applib.annotation.PriorityPrecedence;
 import org.apache.causeway.applib.value.LocalResourcePath;
@@ -39,6 +37,7 @@ import org.apache.causeway.schema.common.v2.ValueType;
 
 import lombok.val;
 
+@Component
 @Named("causeway.metamodel.value.LocalResourcePathValueSemantics")
 @Priority(PriorityPrecedence.LATE)
 public class LocalResourcePathValueSemantics
@@ -47,16 +46,6 @@ implements
     Parser<LocalResourcePath>,
     Renderer<LocalResourcePath> {
 
-    @Configuration
-    public static class AutoConfiguration {
-
-        @Bean
-        @ConditionalOnMissingBean(LocalResourcePathValueSemantics.class)
-        public LocalResourcePathValueSemantics 
defaultLocalResourcePathValueSemantics() {
-            return new LocalResourcePathValueSemantics();
-        }
-    }
-
     @Override
     public Class<LocalResourcePath> getCorrespondingClass() {
         return LocalResourcePath.class;
diff --git 
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/LocaleValueSemantics.java
 
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/LocaleValueSemantics.java
index 24f79edfbe..bdd33fbd8f 100644
--- 
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/LocaleValueSemantics.java
+++ 
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/LocaleValueSemantics.java
@@ -23,10 +23,8 @@ import java.util.Locale;
 import javax.annotation.Priority;
 import javax.inject.Named;
 
-import 
org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
 import org.springframework.lang.Nullable;
+import org.springframework.stereotype.Component;
 
 import org.apache.causeway.applib.annotation.PriorityPrecedence;
 import org.apache.causeway.applib.value.semantics.Parser;
@@ -40,6 +38,7 @@ import org.apache.causeway.schema.common.v2.ValueType;
 
 import lombok.val;
 
+@Component
 @Named("causeway.metamodel.value.LocaleValueSemantics")
 @Priority(PriorityPrecedence.LATE)
 public class LocaleValueSemantics
@@ -48,16 +47,6 @@ implements
     Parser<Locale>,
     Renderer<Locale> {
 
-    @Configuration
-    public static class AutoConfiguration {
-
-        @Bean
-        @ConditionalOnMissingBean(LocaleValueSemantics.class)
-        public LocaleValueSemantics defaultLocaleValueSemantics() {
-            return new LocaleValueSemantics();
-        }
-    }
-
     @Override
     public Class<Locale> getCorrespondingClass() {
         return Locale.class;
diff --git 
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/LongValueSemantics.java
 
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/LongValueSemantics.java
index e61d112e66..fcf82e0428 100644
--- 
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/LongValueSemantics.java
+++ 
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/LongValueSemantics.java
@@ -24,9 +24,7 @@ import java.util.function.UnaryOperator;
 import javax.annotation.Priority;
 import javax.inject.Named;
 
-import 
org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
+import org.springframework.stereotype.Component;
 
 import org.apache.causeway.applib.annotation.PriorityPrecedence;
 import 
org.apache.causeway.applib.exceptions.recoverable.TextEntryParseException;
@@ -47,6 +45,7 @@ import lombok.val;
 /**
  * due to auto-boxing also handles the primitive variant
  */
+@Component
 @Named("causeway.metamodel.value.LongValueSemantics")
 @Priority(PriorityPrecedence.LATE)
 public class LongValueSemantics
@@ -57,16 +56,6 @@ implements
     Renderer<Long>,
     IdStringifier.EntityAgnostic<Long>{
 
-    @Configuration
-    public static class AutoConfiguration {
-
-        @Bean
-        @ConditionalOnMissingBean(LongValueSemantics.class)
-        public LongValueSemantics defaultLongValueSemantics() {
-            return new LongValueSemantics();
-        }
-    }
-
     @Override
     public Class<Long> getCorrespondingClass() {
         return Long.class;
diff --git 
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/MarkupValueSemantics.java
 
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/MarkupValueSemantics.java
index e11208a89e..482387eba5 100644
--- 
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/MarkupValueSemantics.java
+++ 
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/MarkupValueSemantics.java
@@ -21,9 +21,7 @@ package org.apache.causeway.core.metamodel.valuesemantics;
 import javax.annotation.Priority;
 import javax.inject.Named;
 
-import 
org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
+import org.springframework.stereotype.Component;
 
 import org.apache.causeway.applib.annotation.PriorityPrecedence;
 import org.apache.causeway.applib.value.Markup;
@@ -36,6 +34,7 @@ import org.apache.causeway.commons.collections.Can;
 import org.apache.causeway.commons.internal.hardening._Hardening;
 import org.apache.causeway.schema.common.v2.ValueType;
 
+@Component
 @Named("causeway.metamodel.value.MarkupValueSemantics")
 @Priority(PriorityPrecedence.LATE)
 public class MarkupValueSemantics
@@ -44,16 +43,6 @@ implements
     Parser<Markup>,
     Renderer<Markup> {
 
-    @Configuration
-    public static class AutoConfiguration {
-
-        @Bean
-        @ConditionalOnMissingBean(MarkupValueSemantics.class)
-        public MarkupValueSemantics defaultMarkupValueSemantics() {
-            return new MarkupValueSemantics();
-        }
-    }
-
     @Override
     public Class<Markup> getCorrespondingClass() {
         return Markup.class;
diff --git 
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/OidDtoValueSemantics.java
 
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/OidDtoValueSemantics.java
index 9bdbeb0d76..d57aec6ca5 100644
--- 
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/OidDtoValueSemantics.java
+++ 
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/OidDtoValueSemantics.java
@@ -22,9 +22,7 @@ import javax.annotation.Priority;
 import javax.inject.Inject;
 import javax.inject.Named;
 
-import 
org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
+import org.springframework.stereotype.Component;
 
 import org.apache.causeway.applib.annotation.PriorityPrecedence;
 import org.apache.causeway.applib.services.bookmark.Bookmark;
@@ -34,6 +32,7 @@ import 
org.apache.causeway.core.metamodel.CausewayModuleCoreMetamodel;
 import org.apache.causeway.core.metamodel.valuetypes.ValueSemanticsAdapter;
 import org.apache.causeway.schema.common.v2.OidDto;
 
+@Component
 @Named(OidDtoValueSemantics.LOGICAL_TYPE_NAME)
 @Priority(PriorityPrecedence.LATE)
 public class OidDtoValueSemantics
@@ -41,16 +40,6 @@ extends ValueSemanticsAdapter<OidDto, Bookmark, Void> {
 
     public static final String LOGICAL_TYPE_NAME = 
CausewayModuleCoreMetamodel.NAMESPACE_VALUE + ".OidDtoValueSemantics";
 
-    @Configuration
-    public static class AutoConfiguration {
-
-        @Bean
-        @ConditionalOnMissingBean(OidDtoValueSemantics.class)
-        public OidDtoValueSemantics defaultOidDtoValueSemantics() {
-            return new OidDtoValueSemantics();
-        }
-    }
-
     @Inject BookmarkValueSemantics bookmarkValueSemantics;
 
     @Override
diff --git 
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/PasswordValueSemantics.java
 
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/PasswordValueSemantics.java
index 236bf63b30..bb34371e79 100644
--- 
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/PasswordValueSemantics.java
+++ 
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/PasswordValueSemantics.java
@@ -21,9 +21,7 @@ package org.apache.causeway.core.metamodel.valuesemantics;
 import javax.annotation.Priority;
 import javax.inject.Named;
 
-import 
org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
+import org.springframework.stereotype.Component;
 
 import org.apache.causeway.applib.annotation.PriorityPrecedence;
 import 
org.apache.causeway.applib.services.placeholder.PlaceholderRenderService.PlaceholderLiteral;
@@ -37,6 +35,7 @@ import org.apache.causeway.commons.internal.base._Strings;
 import org.apache.causeway.schema.common.v2.ValueType;
 import org.apache.causeway.schema.common.v2.ValueWithTypeDto;
 
+@Component
 @Named("causeway.metamodel.value.PasswordValueSemantics")
 @Priority(PriorityPrecedence.LATE)
 public class PasswordValueSemantics
@@ -45,16 +44,6 @@ implements
     Parser<Password>,
     Renderer<Password> {
 
-    @Configuration
-    public static class AutoConfiguration {
-
-        @Bean
-        @ConditionalOnMissingBean(PasswordValueSemantics.class)
-        public PasswordValueSemantics defaultPasswordValueSemantics() {
-            return new PasswordValueSemantics();
-        }
-    }
-
     @Override
     public Class<Password> getCorrespondingClass() {
         return Password.class;
diff --git 
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/ShortValueSemantics.java
 
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/ShortValueSemantics.java
index 4918245b9f..b29f4d641d 100644
--- 
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/ShortValueSemantics.java
+++ 
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/ShortValueSemantics.java
@@ -24,9 +24,7 @@ import java.util.function.UnaryOperator;
 import javax.annotation.Priority;
 import javax.inject.Named;
 
-import 
org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
+import org.springframework.stereotype.Component;
 
 import org.apache.causeway.applib.annotation.PriorityPrecedence;
 import 
org.apache.causeway.applib.exceptions.recoverable.TextEntryParseException;
@@ -47,6 +45,7 @@ import lombok.val;
 /**
  * due to auto-boxing also handles the primitive variant
  */
+@Component
 @Named("causeway.metamodel.value.ShortValueSemantics")
 @Priority(PriorityPrecedence.LATE)
 public class ShortValueSemantics
@@ -57,16 +56,6 @@ implements
     Renderer<Short>,
     IdStringifier.EntityAgnostic<Short> {
 
-    @Configuration
-    public static class AutoConfiguration {
-
-        @Bean
-        @ConditionalOnMissingBean(ShortValueSemantics.class)
-        public ShortValueSemantics defaultShortValueSemantics() {
-            return new ShortValueSemantics();
-        }
-    }
-
     @Override
     public Class<Short> getCorrespondingClass() {
         return Short.class;
diff --git 
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/StringValueSemantics.java
 
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/StringValueSemantics.java
index 367ab90ed1..e2d1afe459 100644
--- 
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/StringValueSemantics.java
+++ 
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/StringValueSemantics.java
@@ -25,9 +25,7 @@ import java.util.function.UnaryOperator;
 import javax.annotation.Priority;
 import javax.inject.Named;
 
-import 
org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
+import org.springframework.stereotype.Component;
 
 import org.apache.causeway.applib.annotation.PriorityPrecedence;
 import org.apache.causeway.applib.services.bookmark.IdStringifier;
@@ -41,6 +39,7 @@ import org.apache.causeway.schema.common.v2.ValueType;
 
 import lombok.NonNull;
 
+@Component
 @Named("causeway.metamodel.value.StringValueSemantics")
 @Priority(PriorityPrecedence.LATE)
 public class StringValueSemantics
@@ -50,16 +49,6 @@ implements
     Renderer<String>,
     IdStringifier.EntityAgnostic<String> {
 
-    @Configuration
-    public static class AutoConfiguration {
-
-        @Bean
-        @ConditionalOnMissingBean(StringValueSemantics.class)
-        public StringValueSemantics defaultStringValueSemantics() {
-            return new StringValueSemantics();
-        }
-    }
-
     @Override
     public Class<String> getCorrespondingClass() {
         return String.class;
diff --git 
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/TreeNodeValueSemantics.java
 
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/TreeNodeValueSemantics.java
index aad974dddb..1dff074f2d 100644
--- 
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/TreeNodeValueSemantics.java
+++ 
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/TreeNodeValueSemantics.java
@@ -24,9 +24,7 @@ import javax.annotation.Priority;
 import javax.inject.Inject;
 import javax.inject.Named;
 
-import 
org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
+import org.springframework.stereotype.Component;
 
 import org.apache.causeway.applib.annotation.PriorityPrecedence;
 import org.apache.causeway.applib.graph.tree.TreeAdapter;
@@ -45,6 +43,7 @@ import 
org.apache.causeway.commons.internal.memento._Mementos.Memento;
 import 
org.apache.causeway.commons.internal.memento._Mementos.SerializingAdapter;
 import org.apache.causeway.schema.common.v2.ValueType;
 
+@Component
 @Named("causeway.metamodel.value.TreeNodeValueSemantics")
 @Priority(PriorityPrecedence.LATE)
 public class TreeNodeValueSemantics
@@ -52,16 +51,6 @@ extends ValueSemanticsAbstract<TreeNode<?>>
 implements
     Renderer<TreeNode<?>> {
 
-    @Configuration
-    public static class AutoConfiguration {
-
-        @Bean
-        @ConditionalOnMissingBean(TreeNodeValueSemantics.class)
-        public TreeNodeValueSemantics defaultTreeNodeValueSemantics() {
-            return new TreeNodeValueSemantics();
-        }
-    }
-
     @Inject UrlEncodingService urlEncodingService;
     @Inject SerializingAdapter serializingAdapter;
     @Inject FactoryService factoryService;
diff --git 
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/TreePathValueSemantics.java
 
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/TreePathValueSemantics.java
index a6c20e3053..a9ae584914 100644
--- 
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/TreePathValueSemantics.java
+++ 
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/TreePathValueSemantics.java
@@ -21,10 +21,8 @@ package org.apache.causeway.core.metamodel.valuesemantics;
 import javax.annotation.Priority;
 import javax.inject.Named;
 
-import 
org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
 import org.springframework.lang.Nullable;
+import org.springframework.stereotype.Component;
 
 import org.apache.causeway.applib.annotation.PriorityPrecedence;
 import org.apache.causeway.applib.graph.tree.TreePath;
@@ -41,6 +39,7 @@ import org.apache.causeway.schema.common.v2.ValueType;
 import lombok.NonNull;
 import lombok.val;
 
+@Component
 @Named("causeway.metamodel.value.TreePathValueSemantics")
 @Priority(PriorityPrecedence.LATE)
 public class TreePathValueSemantics
@@ -50,16 +49,6 @@ implements
     Renderer<TreePath>,
     IdStringifier.EntityAgnostic<TreePath> {
 
-    @Configuration
-    public static class AutoConfiguration {
-
-        @Bean
-        @ConditionalOnMissingBean(TreePathValueSemantics.class)
-        public TreePathValueSemantics defaultTreePathValueSemantics() {
-            return new TreePathValueSemantics();
-        }
-    }
-
     @Override
     public Class<TreePath> getCorrespondingClass() {
         return TreePath.class;
@@ -132,17 +121,17 @@ implements
     }
 
     // -- HELPER
-
+    
     private static String canonicalStringify(@Nullable TreePath treePath) {
         return treePath!=null
                 ? treePath.stringify("/")
                 : null;
     }
-
+    
     private static TreePath canonicalDestringify(@Nullable String input) {
         return input!=null
                 ? TreePath.parse(input, "/")
                 : null;
     }
-
+    
 }
diff --git 
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/URLValueSemantics.java
 
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/URLValueSemantics.java
index f5ec8a5dab..ac3e2f2965 100644
--- 
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/URLValueSemantics.java
+++ 
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/URLValueSemantics.java
@@ -23,9 +23,7 @@ import java.net.URL;
 import javax.annotation.Priority;
 import javax.inject.Named;
 
-import 
org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
+import org.springframework.stereotype.Component;
 
 import org.apache.causeway.applib.annotation.PriorityPrecedence;
 import org.apache.causeway.applib.value.semantics.Parser;
@@ -40,6 +38,7 @@ import org.apache.causeway.schema.common.v2.ValueType;
 
 import lombok.SneakyThrows;
 
+@Component
 @Named("causeway.metamodel.value.URLValueSemantics")
 @Priority(PriorityPrecedence.LATE)
 public class URLValueSemantics
@@ -48,16 +47,6 @@ implements
     Parser<java.net.URL>,
     Renderer<java.net.URL> {
 
-    @Configuration
-    public static class AutoConfiguration {
-
-        @Bean
-        @ConditionalOnMissingBean(URLValueSemantics.class)
-        public URLValueSemantics defaultUrlValueSemantics() {
-            return new URLValueSemantics();
-        }
-    }
-
     @Override
     public Class<java.net.URL> getCorrespondingClass() {
         return java.net.URL.class;
diff --git 
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/UUIDValueSemantics.java
 
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/UUIDValueSemantics.java
index 58c9b5247a..a3854cc896 100644
--- 
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/UUIDValueSemantics.java
+++ 
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/UUIDValueSemantics.java
@@ -23,9 +23,7 @@ import java.util.UUID;
 import javax.annotation.Priority;
 import javax.inject.Named;
 
-import 
org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
+import org.springframework.stereotype.Component;
 
 import org.apache.causeway.applib.annotation.PriorityPrecedence;
 import org.apache.causeway.applib.services.bookmark.IdStringifier;
@@ -41,6 +39,7 @@ import org.apache.causeway.schema.common.v2.ValueType;
 import lombok.NonNull;
 import lombok.val;
 
+@Component
 @Named("causeway.metamodel.value.UUIDValueSemantics")
 @Priority(PriorityPrecedence.LATE)
 public class UUIDValueSemantics
@@ -50,16 +49,6 @@ implements
     Renderer<UUID>,
     IdStringifier.EntityAgnostic<UUID> {
 
-    @Configuration
-    public static class AutoConfiguration {
-
-        @Bean
-        @ConditionalOnMissingBean(UUIDValueSemantics.class)
-        public UUIDValueSemantics defaultUUIDValueSemantics() {
-            return new UUIDValueSemantics();
-        }
-    }
-
     @Override
     public Class<UUID> getCorrespondingClass() {
         return UUID.class;
diff --git 
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/temporal/LocalDateTimeValueSemantics.java
 
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/temporal/LocalDateTimeValueSemantics.java
index 67b4c09ea0..995f146977 100644
--- 
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/temporal/LocalDateTimeValueSemantics.java
+++ 
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/temporal/LocalDateTimeValueSemantics.java
@@ -24,16 +24,15 @@ import java.util.Optional;
 
 import javax.inject.Named;
 
-import 
org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
 import org.springframework.lang.Nullable;
+import org.springframework.stereotype.Component;
 
 import org.apache.causeway.applib.value.semantics.OrderRelation;
 import org.apache.causeway.commons.collections.Can;
 import org.apache.causeway.commons.internal.base._Temporals;
 import org.apache.causeway.schema.common.v2.ValueType;
 
+@Component
 @Named("causeway.metamodel.value.LocalDateTimeValueSemantics")
 //@Log4j2
 public class LocalDateTimeValueSemantics
@@ -43,16 +42,6 @@ implements OrderRelation<LocalDateTime, Duration> {
     public static final int MAX_LENGTH = 36;
     public static final int TYPICAL_LENGTH = 22;
 
-    @Configuration
-    public static class AutoConfiguration {
-
-        @Bean
-        @ConditionalOnMissingBean(LocalDateTimeValueSemantics.class)
-        public LocalDateTimeValueSemantics 
defaultLocalDateTimeValueSemantics() {
-            return new LocalDateTimeValueSemantics();
-        }
-    }
-
     @Override
     public Class<LocalDateTime> getCorrespondingClass() {
         return LocalDateTime.class;
diff --git 
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/temporal/LocalDateValueSemantics.java
 
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/temporal/LocalDateValueSemantics.java
index 1687e7955d..f2d8051159 100644
--- 
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/temporal/LocalDateValueSemantics.java
+++ 
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/temporal/LocalDateValueSemantics.java
@@ -24,16 +24,15 @@ import java.util.Optional;
 
 import javax.inject.Named;
 
-import 
org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
 import org.springframework.lang.Nullable;
+import org.springframework.stereotype.Component;
 
 import org.apache.causeway.applib.value.semantics.OrderRelation;
 import org.apache.causeway.commons.collections.Can;
 import org.apache.causeway.commons.internal.base._Temporals;
 import org.apache.causeway.schema.common.v2.ValueType;
 
+@Component
 @Named("causeway.metamodel.value.LocalDateValueSemantics")
 //@Log4j2
 public class LocalDateValueSemantics
@@ -43,16 +42,6 @@ implements OrderRelation<LocalDate, Duration> {
     public static final int MAX_LENGTH = 12;
     public static final int TYPICAL_LENGTH = MAX_LENGTH;
 
-    @Configuration
-    public static class AutoConfiguration {
-
-        @Bean
-        @ConditionalOnMissingBean(LocalDateValueSemantics.class)
-        public LocalDateValueSemantics defaultLocalDateValueSemantics() {
-            return new LocalDateValueSemantics();
-        }
-    }
-
     @Override
     public Class<LocalDate> getCorrespondingClass() {
         return LocalDate.class;
diff --git 
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/temporal/LocalTimeValueSemantics.java
 
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/temporal/LocalTimeValueSemantics.java
index 3dc962980f..ca1b7d3728 100644
--- 
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/temporal/LocalTimeValueSemantics.java
+++ 
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/temporal/LocalTimeValueSemantics.java
@@ -24,15 +24,14 @@ import java.util.Optional;
 
 import javax.inject.Named;
 
-import 
org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
 import org.springframework.lang.Nullable;
+import org.springframework.stereotype.Component;
 
 import org.apache.causeway.commons.collections.Can;
 import org.apache.causeway.commons.internal.base._Temporals;
 import org.apache.causeway.schema.common.v2.ValueType;
 
+@Component
 @Named("causeway.metamodel.value.LocalTimeValueSemantics")
 //@Log4j2
 public class LocalTimeValueSemantics
@@ -41,16 +40,6 @@ extends TemporalValueSemanticsProvider<LocalTime> {
     public static final int MAX_LENGTH = 12;
     public static final int TYPICAL_LENGTH = MAX_LENGTH;
 
-    @Configuration
-    public static class AutoConfiguration {
-
-        @Bean
-        @ConditionalOnMissingBean(LocalTimeValueSemantics.class)
-        public LocalTimeValueSemantics defaultLocalTimeValueSemantics() {
-            return new LocalTimeValueSemantics();
-        }
-    }
-
     @Override
     public Class<LocalTime> getCorrespondingClass() {
         return LocalTime.class;
diff --git 
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/temporal/OffsetDateTimeValueSemantics.java
 
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/temporal/OffsetDateTimeValueSemantics.java
index 7d943b01bb..cf4e83d689 100644
--- 
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/temporal/OffsetDateTimeValueSemantics.java
+++ 
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/temporal/OffsetDateTimeValueSemantics.java
@@ -24,16 +24,15 @@ import java.util.Optional;
 
 import javax.inject.Named;
 
-import 
org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
 import org.springframework.lang.Nullable;
+import org.springframework.stereotype.Component;
 
 import org.apache.causeway.commons.collections.Can;
 import org.apache.causeway.commons.functional.Either;
 import org.apache.causeway.commons.internal.base._Temporals;
 import org.apache.causeway.schema.common.v2.ValueType;
 
+@Component
 @Named("causeway.metamodel.value.OffsetDateTimeValueSemantics")
 //@Log4j2
 public class OffsetDateTimeValueSemantics
@@ -42,16 +41,6 @@ extends TemporalValueSemanticsProvider<OffsetDateTime> {
     public static final int MAX_LENGTH = 36;
     public static final int TYPICAL_LENGTH = 22;
 
-    @Configuration
-    public static class AutoConfiguration {
-
-        @Bean
-        @ConditionalOnMissingBean(OffsetDateTimeValueSemantics.class)
-        public OffsetDateTimeValueSemantics 
defaultOffsetDateTimeValueSemantics() {
-            return new OffsetDateTimeValueSemantics();
-        }
-    }
-
     @Override
     public Class<OffsetDateTime> getCorrespondingClass() {
         return OffsetDateTime.class;
diff --git 
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/temporal/OffsetTimeValueSemantics.java
 
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/temporal/OffsetTimeValueSemantics.java
index b427de24e5..0b4593fe72 100644
--- 
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/temporal/OffsetTimeValueSemantics.java
+++ 
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/temporal/OffsetTimeValueSemantics.java
@@ -24,16 +24,15 @@ import java.util.Optional;
 
 import javax.inject.Named;
 
-import 
org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
 import org.springframework.lang.Nullable;
+import org.springframework.stereotype.Component;
 
 import org.apache.causeway.commons.collections.Can;
 import org.apache.causeway.commons.functional.Either;
 import org.apache.causeway.commons.internal.base._Temporals;
 import org.apache.causeway.schema.common.v2.ValueType;
 
+@Component
 @Named("causeway.metamodel.value.OffsetTimeValueSemantics")
 //@Log4j2
 public class OffsetTimeValueSemantics
@@ -42,16 +41,6 @@ extends TemporalValueSemanticsProvider<OffsetTime> {
     public static final int MAX_LENGTH = 12;
     public static final int TYPICAL_LENGTH = MAX_LENGTH;
 
-    @Configuration
-    public static class AutoConfiguration {
-
-        @Bean
-        @ConditionalOnMissingBean(OffsetTimeValueSemantics.class)
-        public OffsetTimeValueSemantics defaultOffsetTimeValueSemantics() {
-            return new OffsetTimeValueSemantics();
-        }
-    }
-
     @Override
     public Class<OffsetTime> getCorrespondingClass() {
         return OffsetTime.class;
diff --git 
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/temporal/ZonedDateTimeValueSemantics.java
 
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/temporal/ZonedDateTimeValueSemantics.java
index 784da0aa36..fdbd616400 100644
--- 
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/temporal/ZonedDateTimeValueSemantics.java
+++ 
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/temporal/ZonedDateTimeValueSemantics.java
@@ -24,16 +24,15 @@ import java.util.Optional;
 
 import javax.inject.Named;
 
-import 
org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
 import org.springframework.lang.Nullable;
+import org.springframework.stereotype.Component;
 
 import org.apache.causeway.commons.collections.Can;
 import org.apache.causeway.commons.functional.Either;
 import org.apache.causeway.commons.internal.base._Temporals;
 import org.apache.causeway.schema.common.v2.ValueType;
 
+@Component
 @Named("causeway.metamodel.value.ZonedDateTimeValueSemantics")
 //@Log4j2
 public class ZonedDateTimeValueSemantics
@@ -42,16 +41,6 @@ extends TemporalValueSemanticsProvider<ZonedDateTime> {
     public static final int MAX_LENGTH = 36;
     public static final int TYPICAL_LENGTH = 22;
 
-    @Configuration
-    public static class AutoConfiguration {
-
-        @Bean
-        @ConditionalOnMissingBean(ZonedDateTimeValueSemantics.class)
-        public ZonedDateTimeValueSemantics 
defaultZonedDateTimeValueSemantics() {
-            return new ZonedDateTimeValueSemantics();
-        }
-    }
-
     @Override
     public Class<ZonedDateTime> getCorrespondingClass() {
         return ZonedDateTime.class;
diff --git 
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/temporal/legacy/JavaSqlDateValueSemantics.java
 
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/temporal/legacy/JavaSqlDateValueSemantics.java
index c123197682..7e391b64ad 100644
--- 
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/temporal/legacy/JavaSqlDateValueSemantics.java
+++ 
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/temporal/legacy/JavaSqlDateValueSemantics.java
@@ -24,9 +24,7 @@ import java.time.LocalDate;
 import javax.inject.Inject;
 import javax.inject.Named;
 
-import 
org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
+import org.springframework.stereotype.Component;
 
 import org.apache.causeway.applib.value.semantics.ValueSemanticsAbstract;
 import org.apache.causeway.commons.collections.Can;
@@ -39,20 +37,11 @@ import 
org.apache.causeway.core.metamodel.valuetypes.TemporalSemanticsAdapter;
  * @see JavaUtilDateValueSemantics
  * @see JavaSqlTimeValueSemantics
  */
+@Component
 @Named("causeway.metamodel.value.JavaSqlDateValueSemantics")
 public class JavaSqlDateValueSemantics
 extends TemporalSemanticsAdapter<Date, LocalDate> {
 
-    @Configuration
-    public static class AutoConfiguration {
-
-        @Bean
-        @ConditionalOnMissingBean(JavaSqlDateValueSemantics.class)
-        public JavaSqlDateValueSemantics defaultJavaSqlDateValueSemantics() {
-            return new JavaSqlDateValueSemantics();
-        }
-    }
-
     @Inject LocalDateValueSemantics localDateValueSemantics;
 
     @Override
diff --git 
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/temporal/legacy/JavaSqlTimeStampValueSemantics.java
 
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/temporal/legacy/JavaSqlTimeStampValueSemantics.java
index fa3558c3a3..bad63ca76f 100644
--- 
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/temporal/legacy/JavaSqlTimeStampValueSemantics.java
+++ 
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/temporal/legacy/JavaSqlTimeStampValueSemantics.java
@@ -24,29 +24,18 @@ import java.time.LocalDateTime;
 import javax.inject.Inject;
 import javax.inject.Named;
 
-import 
org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
+import org.springframework.stereotype.Component;
 
 import org.apache.causeway.applib.value.semantics.ValueSemanticsAbstract;
 import org.apache.causeway.commons.collections.Can;
 import 
org.apache.causeway.core.metamodel.valuesemantics.temporal.LocalDateTimeValueSemantics;
 import org.apache.causeway.core.metamodel.valuetypes.TemporalSemanticsAdapter;
 
+@Component
 @Named("causeway.metamodel.value.JavaSqlTimeStampValueSemantics")
 public class JavaSqlTimeStampValueSemantics
 extends TemporalSemanticsAdapter<Timestamp, LocalDateTime> {
 
-    @Configuration
-    public static class AutoConfiguration {
-
-        @Bean
-        @ConditionalOnMissingBean(JavaSqlTimeStampValueSemantics.class)
-        public JavaSqlTimeStampValueSemantics 
defaultJavaSqlTimeStampValueSemantics() {
-            return new JavaSqlTimeStampValueSemantics();
-        }
-    }
-
     @Inject LocalDateTimeValueSemantics localDateTimeValueSemantics;
 
     @Override
diff --git 
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/temporal/legacy/JavaSqlTimeValueSemantics.java
 
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/temporal/legacy/JavaSqlTimeValueSemantics.java
index 636e368475..b156ad2df8 100644
--- 
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/temporal/legacy/JavaSqlTimeValueSemantics.java
+++ 
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/temporal/legacy/JavaSqlTimeValueSemantics.java
@@ -24,9 +24,7 @@ import java.time.LocalTime;
 import javax.inject.Inject;
 import javax.inject.Named;
 
-import 
org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
+import org.springframework.stereotype.Component;
 
 import org.apache.causeway.applib.value.semantics.ValueSemanticsAbstract;
 import org.apache.causeway.commons.collections.Can;
@@ -37,20 +35,11 @@ import 
org.apache.causeway.core.metamodel.valuetypes.TemporalSemanticsAdapter;
  * Treats {@link java.sql.Time} as a time-only value type.
  *
  */
+@Component
 @Named("causeway.metamodel.value.JavaSqlTimeValueSemantics")
 public class JavaSqlTimeValueSemantics
 extends TemporalSemanticsAdapter<Time, LocalTime>  {
 
-    @Configuration
-    public static class AutoConfiguration {
-
-        @Bean
-        @ConditionalOnMissingBean(JavaSqlTimeValueSemantics.class)
-        public JavaSqlTimeValueSemantics defaultJavaSqlTimeValueSemantics() {
-            return new JavaSqlTimeValueSemantics();
-        }
-    }
-
     @Inject LocalTimeValueSemantics localTimeValueSemantics;
 
     @Override
diff --git 
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/temporal/legacy/JavaUtilDateValueSemantics.java
 
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/temporal/legacy/JavaUtilDateValueSemantics.java
index cc9c70a789..dce7b4e182 100644
--- 
a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/temporal/legacy/JavaUtilDateValueSemantics.java
+++ 
b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/valuesemantics/temporal/legacy/JavaUtilDateValueSemantics.java
@@ -25,9 +25,7 @@ import java.util.Date;
 import javax.inject.Inject;
 import javax.inject.Named;
 
-import 
org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
+import org.springframework.stereotype.Component;
 
 import org.apache.causeway.applib.value.semantics.ValueSemanticsAbstract;
 import org.apache.causeway.commons.collections.Can;
@@ -41,20 +39,11 @@ import 
org.apache.causeway.core.metamodel.valuetypes.TemporalSemanticsAdapter;
  * @see JavaSqlDateValueSemantics
  * @see JavaSqlTimeValueSemantics
  */
+@Component
 @Named("causeway.metamodel.value.JavaUtilDateValueSemantics")
 public class JavaUtilDateValueSemantics
 extends TemporalSemanticsAdapter<java.util.Date, LocalDateTime>  {
 
-    @Configuration
-    public static class AutoConfiguration {
-
-        @Bean
-        @ConditionalOnMissingBean(JavaUtilDateValueSemantics.class)
-        public JavaUtilDateValueSemantics defaultJavaUtilDateValueSemantics() {
-            return new JavaUtilDateValueSemantics();
-        }
-    }
-
     @Inject LocalDateTimeValueSemantics localDateTimeValueSemantics;
 
     @Override
diff --git 
a/extensions/core/commandlog/persistence-jpa/src/main/java/org/apache/causeway/extensions/commandlog/jpa/dom/CommandLogEntryPK.java
 
b/extensions/core/commandlog/persistence-jpa/src/main/java/org/apache/causeway/extensions/commandlog/jpa/dom/CommandLogEntryPK.java
index fb13d13876..4c9525f36f 100644
--- 
a/extensions/core/commandlog/persistence-jpa/src/main/java/org/apache/causeway/extensions/commandlog/jpa/dom/CommandLogEntryPK.java
+++ 
b/extensions/core/commandlog/persistence-jpa/src/main/java/org/apache/causeway/extensions/commandlog/jpa/dom/CommandLogEntryPK.java
@@ -27,9 +27,7 @@ import javax.persistence.Column;
 import javax.persistence.Convert;
 import javax.persistence.Embeddable;
 
-import 
org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
+import org.springframework.stereotype.Component;
 
 import org.apache.causeway.applib.annotation.PriorityPrecedence;
 import 
org.apache.causeway.applib.value.semantics.ValueSemanticsBasedOnIdStringifierEntityAgnostic;
@@ -64,21 +62,11 @@ public class CommandLogEntryPK implements Serializable {
         return interactionId != null ? interactionId.toString() : null;
     }
 
+    @Component
     @Priority(PriorityPrecedence.MIDPOINT)
     public static class Semantics
     extends 
ValueSemanticsBasedOnIdStringifierEntityAgnostic<CommandLogEntryPK> {
 
-        @Configuration
-        public static class AutoConfiguration {
-
-            @Bean
-            @ConditionalOnMissingBean(Semantics.class)
-            public Semantics defaultCommandLogEntryPKSemantics() {
-                return new Semantics();
-            }
-        }
-
-
         public Semantics() {
             super(CommandLogEntryPK.class);
         }
diff --git 
a/extensions/core/executionlog/persistence-jdo/src/main/java/org/apache/causeway/extensions/executionlog/jdo/dom/ExecutionLogEntryPK.java
 
b/extensions/core/executionlog/persistence-jdo/src/main/java/org/apache/causeway/extensions/executionlog/jdo/dom/ExecutionLogEntryPK.java
index de9c9223d5..02fb85187e 100644
--- 
a/extensions/core/executionlog/persistence-jdo/src/main/java/org/apache/causeway/extensions/executionlog/jdo/dom/ExecutionLogEntryPK.java
+++ 
b/extensions/core/executionlog/persistence-jdo/src/main/java/org/apache/causeway/extensions/executionlog/jdo/dom/ExecutionLogEntryPK.java
@@ -24,9 +24,7 @@ import java.util.UUID;
 
 import javax.annotation.Priority;
 
-import 
org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
+import org.springframework.stereotype.Component;
 
 import org.apache.causeway.applib.annotation.PriorityPrecedence;
 import 
org.apache.causeway.applib.value.semantics.ValueSemanticsBasedOnIdStringifierEntityAgnostic;
@@ -62,21 +60,11 @@ public class ExecutionLogEntryPK implements Serializable {
         return interactionId + SEPARATOR + sequence;
     }
 
+    @Component
     @Priority(PriorityPrecedence.MIDPOINT)
     public static class Semantics
     extends 
ValueSemanticsBasedOnIdStringifierEntityAgnostic<ExecutionLogEntryPK> {
 
-        @Configuration
-        public static class AutoConfiguration {
-
-            @Bean
-            @ConditionalOnMissingBean(Semantics.class)
-            public Semantics defaultExecutionLogEntryPKSemantics() {
-                return new Semantics();
-            }
-        }
-
-
         public Semantics() {
             super(ExecutionLogEntryPK.class);
         }
diff --git 
a/extensions/core/executionlog/persistence-jpa/src/main/java/org/apache/causeway/extensions/executionlog/jpa/dom/ExecutionLogEntryPK.java
 
b/extensions/core/executionlog/persistence-jpa/src/main/java/org/apache/causeway/extensions/executionlog/jpa/dom/ExecutionLogEntryPK.java
index 1ad733c6fd..0f925c7314 100644
--- 
a/extensions/core/executionlog/persistence-jpa/src/main/java/org/apache/causeway/extensions/executionlog/jpa/dom/ExecutionLogEntryPK.java
+++ 
b/extensions/core/executionlog/persistence-jpa/src/main/java/org/apache/causeway/extensions/executionlog/jpa/dom/ExecutionLogEntryPK.java
@@ -27,9 +27,7 @@ import javax.persistence.Column;
 import javax.persistence.Convert;
 import javax.persistence.Embeddable;
 
-import 
org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
+import org.springframework.stereotype.Component;
 
 import org.apache.causeway.applib.annotation.PriorityPrecedence;
 import 
org.apache.causeway.applib.value.semantics.ValueSemanticsBasedOnIdStringifierEntityAgnostic;
@@ -75,21 +73,11 @@ public class ExecutionLogEntryPK implements Serializable {
         return interactionId + SEPARATOR + sequence;
     }
 
+    @Component
     @Priority(PriorityPrecedence.MIDPOINT)
     public static class Semantics
     extends 
ValueSemanticsBasedOnIdStringifierEntityAgnostic<ExecutionLogEntryPK> {
 
-        @Configuration
-        public static class AutoConfiguration {
-
-            @Bean
-            @ConditionalOnMissingBean(Semantics.class)
-            public Semantics defaultExecutionLogEntryPKSemantics() {
-                return new Semantics();
-            }
-        }
-
-
         public Semantics() {
             super(ExecutionLogEntryPK.class);
         }
diff --git 
a/extensions/core/executionoutbox/persistence-jdo/src/main/java/org/apache/causeway/extensions/executionoutbox/jdo/dom/ExecutionOutboxEntryPK.java
 
b/extensions/core/executionoutbox/persistence-jdo/src/main/java/org/apache/causeway/extensions/executionoutbox/jdo/dom/ExecutionOutboxEntryPK.java
index 2da0d6c6c6..702cce8396 100644
--- 
a/extensions/core/executionoutbox/persistence-jdo/src/main/java/org/apache/causeway/extensions/executionoutbox/jdo/dom/ExecutionOutboxEntryPK.java
+++ 
b/extensions/core/executionoutbox/persistence-jdo/src/main/java/org/apache/causeway/extensions/executionoutbox/jdo/dom/ExecutionOutboxEntryPK.java
@@ -24,9 +24,7 @@ import java.util.UUID;
 
 import javax.annotation.Priority;
 
-import 
org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
+import org.springframework.stereotype.Component;
 
 import org.apache.causeway.applib.annotation.PriorityPrecedence;
 import 
org.apache.causeway.applib.value.semantics.ValueSemanticsBasedOnIdStringifierEntityAgnostic;
@@ -62,21 +60,11 @@ public class ExecutionOutboxEntryPK implements Serializable 
{
         return interactionId + SEPARATOR + sequence;
     }
 
+    @Component
     @Priority(PriorityPrecedence.MIDPOINT)
     public static class Semantics
     extends 
ValueSemanticsBasedOnIdStringifierEntityAgnostic<ExecutionOutboxEntryPK> {
 
-        @Configuration
-        public static class AutoConfiguration {
-
-            @Bean
-            @ConditionalOnMissingBean(Semantics.class)
-            public Semantics defaultExecutionLogEntryPKSemantics() {
-                return new Semantics();
-            }
-        }
-
-
         public Semantics() {
             super(ExecutionOutboxEntryPK.class);
         }
diff --git 
a/extensions/core/executionoutbox/persistence-jpa/src/main/java/org/apache/causeway/extensions/executionoutbox/jpa/dom/ExecutionOutboxEntryPK.java
 
b/extensions/core/executionoutbox/persistence-jpa/src/main/java/org/apache/causeway/extensions/executionoutbox/jpa/dom/ExecutionOutboxEntryPK.java
index 5dc48ff958..ad78df5d0e 100644
--- 
a/extensions/core/executionoutbox/persistence-jpa/src/main/java/org/apache/causeway/extensions/executionoutbox/jpa/dom/ExecutionOutboxEntryPK.java
+++ 
b/extensions/core/executionoutbox/persistence-jpa/src/main/java/org/apache/causeway/extensions/executionoutbox/jpa/dom/ExecutionOutboxEntryPK.java
@@ -27,9 +27,7 @@ import javax.persistence.Column;
 import javax.persistence.Convert;
 import javax.persistence.Embeddable;
 
-import 
org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
+import org.springframework.stereotype.Component;
 
 import org.apache.causeway.applib.annotation.PriorityPrecedence;
 import 
org.apache.causeway.applib.value.semantics.ValueSemanticsBasedOnIdStringifierEntityAgnostic;
@@ -73,21 +71,11 @@ public class ExecutionOutboxEntryPK implements Serializable 
{
         return interactionId + SEPARATOR + sequence;
     }
 
+    @Component
     @Priority(PriorityPrecedence.MIDPOINT)
     public static class Semantics
     extends 
ValueSemanticsBasedOnIdStringifierEntityAgnostic<ExecutionOutboxEntryPK> {
 
-        @Configuration
-        public static class AutoConfiguration {
-
-            @Bean
-            @ConditionalOnMissingBean(Semantics.class)
-            public Semantics defaultExecutionLogEntryPKSemantics() {
-                return new Semantics();
-            }
-        }
-
-
         public Semantics() {
             super(ExecutionOutboxEntryPK.class);
         }
diff --git 
a/extensions/security/sessionlog/persistence-jpa/src/main/java/org/apache/causeway/extensions/sessionlog/jpa/dom/SessionLogEntryPK.java
 
b/extensions/security/sessionlog/persistence-jpa/src/main/java/org/apache/causeway/extensions/sessionlog/jpa/dom/SessionLogEntryPK.java
index edb2d6ba61..44d88882dc 100644
--- 
a/extensions/security/sessionlog/persistence-jpa/src/main/java/org/apache/causeway/extensions/sessionlog/jpa/dom/SessionLogEntryPK.java
+++ 
b/extensions/security/sessionlog/persistence-jpa/src/main/java/org/apache/causeway/extensions/sessionlog/jpa/dom/SessionLogEntryPK.java
@@ -28,9 +28,7 @@ import javax.persistence.Column;
 import javax.persistence.Convert;
 import javax.persistence.Embeddable;
 
-import 
org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
+import org.springframework.stereotype.Component;
 
 import org.apache.causeway.applib.annotation.PriorityPrecedence;
 import 
org.apache.causeway.applib.value.semantics.ValueSemanticsBasedOnIdStringifierEntityAgnostic;
@@ -66,21 +64,11 @@ public class SessionLogEntryPK implements Serializable {
                 : null;
     }
 
+    @Component
     @Priority(PriorityPrecedence.MIDPOINT)
     public static class Semantics
     extends 
ValueSemanticsBasedOnIdStringifierEntityAgnostic<SessionLogEntryPK> {
 
-        @Configuration
-        public static class AutoConfiguration {
-
-            @Bean
-            @ConditionalOnMissingBean(Semantics.class)
-            public Semantics defaultSessionLogEntryPKSemantics() {
-                return new Semantics();
-            }
-        }
-
-
         public Semantics() {
             super(SessionLogEntryPK.class);
         }
diff --git 
a/extensions/vw/fullcalendar/applib/src/main/java/org/apache/causeway/extensions/fullcalendar/applib/value/CalendarEventSemantics.java
 
b/extensions/vw/fullcalendar/applib/src/main/java/org/apache/causeway/extensions/fullcalendar/applib/value/CalendarEventSemantics.java
index 351100f9cc..4adde41059 100644
--- 
a/extensions/vw/fullcalendar/applib/src/main/java/org/apache/causeway/extensions/fullcalendar/applib/value/CalendarEventSemantics.java
+++ 
b/extensions/vw/fullcalendar/applib/src/main/java/org/apache/causeway/extensions/fullcalendar/applib/value/CalendarEventSemantics.java
@@ -29,18 +29,16 @@ import java.util.stream.Collectors;
 
 import javax.inject.Inject;
 
-import 
org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
 import org.springframework.context.annotation.Import;
+import org.springframework.stereotype.Component;
 
 import org.apache.causeway.applib.annotation.Action;
 import org.apache.causeway.applib.annotation.ActionLayout;
+import org.apache.causeway.applib.annotation.PrecedingParamsPolicy;
 import org.apache.causeway.applib.annotation.MemberSupport;
 import org.apache.causeway.applib.annotation.Optionality;
 import org.apache.causeway.applib.annotation.Parameter;
 import org.apache.causeway.applib.annotation.ParameterLayout;
-import org.apache.causeway.applib.annotation.PrecedingParamsPolicy;
 import org.apache.causeway.applib.annotation.PromptStyle;
 import org.apache.causeway.applib.annotation.Publishing;
 import org.apache.causeway.applib.annotation.SemanticsOf;
@@ -63,26 +61,17 @@ import lombok.Value;
 import lombok.val;
 import lombok.experimental.Accessors;
 
+@Component
+@Import({
+    // mixins
+    CalendarEventSemantics.CalendarEvent_default.class
+})
 public class CalendarEventSemantics
 extends ValueSemanticsAbstract<CalendarEvent>
 implements
     DefaultsProvider<CalendarEvent>,
     Renderer<CalendarEvent> {
 
-    @Import({
-        // mixins
-        CalendarEventSemantics.CalendarEvent_default.class
-    })
-    @Configuration
-    public static class AutoConfiguration {
-
-        @Bean
-        @ConditionalOnMissingBean(CalendarEventSemantics.class)
-        public CalendarEventSemantics defaultCalendarEventSemantics() {
-            return new CalendarEventSemantics();
-        }
-    }
-
     @Inject private TemporalValueSemantics<ZonedDateTime> 
zonedDateTimeValueSemantics;
 
     @Override
diff --git 
a/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/CausewayModulePersistenceJdoDatanucleus.java
 
b/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/CausewayModulePersistenceJdoDatanucleus.java
index 92c6c17994..faa4da52c1 100644
--- 
a/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/CausewayModulePersistenceJdoDatanucleus.java
+++ 
b/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/CausewayModulePersistenceJdoDatanucleus.java
@@ -91,24 +91,24 @@ import lombok.extern.log4j.Log4j2;
     // @Component's
     DnEntityStateProvider.class,
 
-    DnDatastoreIdImplValueSemantics.AutoConfiguration.class, // datastore 
identity
-    DnDatastoreUniqueLongIdValueSemantics.AutoConfiguration.class,
-    JdoDatastoreIdValueSemantics.AutoConfiguration.class,
-    JdoShortIdentityValueSemantics.AutoConfiguration.class, // 
application-defined PK, javax.jdo.identity
-    JdoLongIdentityValueSemantics.AutoConfiguration.class,
-    JdoIntIdentityValueSemantics.AutoConfiguration.class,
-    JdoByteIdentityValueSemantics.AutoConfiguration.class,
-    JdoCharIdentityValueSemantics.AutoConfiguration.class,
-    JdoStringIdentityValueSemantics.AutoConfiguration.class,
-    JdoObjectIdentityValueSemantics.AutoConfiguration.class,
-    DnShortIdValueSemantics.AutoConfiguration.class,  // application-defined 
PK, org.datanucleus.identity
-    DnLongIdValueSemantics.AutoConfiguration.class,
-    DnIntIdValueSemantics.AutoConfiguration.class,
-    DnByteIdValueSemantics.AutoConfiguration.class,
-    DnCharIdValueSemantics.AutoConfiguration.class,
-    DnStringIdValueSemantics.AutoConfiguration.class,
-    DnObjectIdValueSemantics.AutoConfiguration.class,
-    DnScoidValueSemantics.AutoConfiguration.class, // in support of 
@PersistenceCapable(identityType=IdentityType.NONDURABLE)
+    DnDatastoreIdImplValueSemantics.class, // datastore identity
+    DnDatastoreUniqueLongIdValueSemantics.class,
+    JdoDatastoreIdValueSemantics.class,
+    JdoShortIdentityValueSemantics.class, // application-defined PK, 
javax.jdo.identity
+    JdoLongIdentityValueSemantics.class,
+    JdoIntIdentityValueSemantics.class,
+    JdoByteIdentityValueSemantics.class,
+    JdoCharIdentityValueSemantics.class,
+    JdoStringIdentityValueSemantics.class,
+    JdoObjectIdentityValueSemantics.class,
+    DnShortIdValueSemantics.class,  // application-defined PK, 
org.datanucleus.identity
+    DnLongIdValueSemantics.class,
+    DnIntIdValueSemantics.class,
+    DnByteIdValueSemantics.class,
+    DnCharIdValueSemantics.class,
+    DnStringIdValueSemantics.class,
+    DnObjectIdValueSemantics.class,
+    DnScoidValueSemantics.class, // in support of 
@PersistenceCapable(identityType=IdentityType.NONDURABLE)
 
     // @Service's
     JdoSupportServiceDefault.class,
diff --git 
a/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/valuetypes/DnByteIdValueSemantics.java
 
b/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/valuetypes/DnByteIdValueSemantics.java
index 10157f7618..10a11d377b 100644
--- 
a/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/valuetypes/DnByteIdValueSemantics.java
+++ 
b/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/valuetypes/DnByteIdValueSemantics.java
@@ -22,9 +22,7 @@ import javax.annotation.Priority;
 
 import org.datanucleus.identity.ByteId;
 
-import 
org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
+import org.springframework.stereotype.Component;
 
 import org.apache.causeway.applib.annotation.PriorityPrecedence;
 import org.apache.causeway.applib.util.schema.CommonDtoUtils;
@@ -36,25 +34,15 @@ import org.apache.causeway.schema.common.v2.ValueType;
 import lombok.NonNull;
 import lombok.val;
 
+@Component
 @Priority(PriorityPrecedence.LATE)
 public class DnByteIdValueSemantics
 extends ValueSemanticsBasedOnIdStringifier<ByteId> {
 
-    @Configuration
-    public static class AutoConfiguration {
-
-        @Bean
-        @ConditionalOnMissingBean(DnByteIdValueSemantics.class)
-        public DnByteIdValueSemantics defaultDnByteIdValueSemantics() {
-            return new DnByteIdValueSemantics();
-        }
-    }
-
     public DnByteIdValueSemantics() {
         super(ByteId.class);
     }
 
-
     // -- COMPOSER
 
     @Override
diff --git 
a/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/valuetypes/DnCharIdValueSemantics.java
 
b/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/valuetypes/DnCharIdValueSemantics.java
index 72b6d611b8..145156b126 100644
--- 
a/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/valuetypes/DnCharIdValueSemantics.java
+++ 
b/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/valuetypes/DnCharIdValueSemantics.java
@@ -23,9 +23,7 @@ import javax.inject.Inject;
 
 import org.datanucleus.identity.CharId;
 
-import 
org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
+import org.springframework.stereotype.Component;
 
 import org.apache.causeway.applib.annotation.PriorityPrecedence;
 import org.apache.causeway.applib.services.bookmark.IdStringifier;
@@ -39,20 +37,11 @@ import lombok.Builder;
 import lombok.NonNull;
 import lombok.val;
 
+@Component
 @Priority(PriorityPrecedence.LATE)
 public class DnCharIdValueSemantics
 extends ValueSemanticsBasedOnIdStringifier<CharId> {
 
-    @Configuration
-    public static class AutoConfiguration {
-
-        @Bean
-        @ConditionalOnMissingBean(DnCharIdValueSemantics.class)
-        public DnCharIdValueSemantics defaultDnCharIdValueSemantics() {
-            return new DnCharIdValueSemantics();
-        }
-    }
-
     @Inject IdStringifier<Character> idStringifierForCharacter;
 
     public DnCharIdValueSemantics() {
diff --git 
a/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/valuetypes/DnDatastoreIdImplValueSemantics.java
 
b/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/valuetypes/DnDatastoreIdImplValueSemantics.java
index 918f39356c..d1fe779831 100644
--- 
a/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/valuetypes/DnDatastoreIdImplValueSemantics.java
+++ 
b/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/valuetypes/DnDatastoreIdImplValueSemantics.java
@@ -22,9 +22,7 @@ import javax.annotation.Priority;
 
 import org.datanucleus.identity.DatastoreIdImpl;
 
-import 
org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
+import org.springframework.stereotype.Component;
 
 import org.apache.causeway.applib.annotation.PriorityPrecedence;
 import org.apache.causeway.applib.util.schema.CommonDtoUtils;
@@ -37,22 +35,13 @@ import lombok.NonNull;
 import lombok.SneakyThrows;
 import lombok.val;
 
+@Component
 @Priority(PriorityPrecedence.LATE)
 public class DnDatastoreIdImplValueSemantics
 extends ValueSemanticsBasedOnIdStringifier<DatastoreIdImpl> {
 
     public static final String STRING_DELIMITER = "[OID]"; // as
 
-    @Configuration
-    public static class AutoConfiguration {
-
-        @Bean
-        @ConditionalOnMissingBean(DnDatastoreIdImplValueSemantics.class)
-        public DnDatastoreIdImplValueSemantics 
defaultDnDatastoreIdImplValueSemantics() {
-            return new DnDatastoreIdImplValueSemantics();
-        }
-    }
-
     public DnDatastoreIdImplValueSemantics() {
         super(DatastoreIdImpl.class);
     }
diff --git 
a/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/valuetypes/DnDatastoreUniqueLongIdValueSemantics.java
 
b/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/valuetypes/DnDatastoreUniqueLongIdValueSemantics.java
index e8ba6950c8..a26bc64782 100644
--- 
a/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/valuetypes/DnDatastoreUniqueLongIdValueSemantics.java
+++ 
b/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/valuetypes/DnDatastoreUniqueLongIdValueSemantics.java
@@ -22,9 +22,7 @@ import javax.annotation.Priority;
 
 import org.datanucleus.identity.DatastoreUniqueLongId;
 
-import 
org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
+import org.springframework.stereotype.Component;
 
 import org.apache.causeway.applib.annotation.PriorityPrecedence;
 import 
org.apache.causeway.applib.value.semantics.ValueSemanticsBasedOnIdStringifierEntityAgnostic;
@@ -34,21 +32,11 @@ import lombok.NonNull;
 /**
  * @implNote has no targetEntityClass support
  */
+@Component
 @Priority(PriorityPrecedence.LATE)
 public class DnDatastoreUniqueLongIdValueSemantics
 extends 
ValueSemanticsBasedOnIdStringifierEntityAgnostic<DatastoreUniqueLongId> {
 
-    @Configuration
-    public static class AutoConfiguration {
-
-        @Bean
-        @ConditionalOnMissingBean(DnDatastoreUniqueLongIdValueSemantics.class)
-        public DnDatastoreUniqueLongIdValueSemantics 
defaultDnDatastoreUniqueLongIdValueSemantics() {
-            return new DnDatastoreUniqueLongIdValueSemantics();
-        }
-    }
-
-
     public DnDatastoreUniqueLongIdValueSemantics() {
         super(DatastoreUniqueLongId.class);
     }
diff --git 
a/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/valuetypes/DnIntIdValueSemantics.java
 
b/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/valuetypes/DnIntIdValueSemantics.java
index 5468ea9d63..cb8d6cca8d 100644
--- 
a/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/valuetypes/DnIntIdValueSemantics.java
+++ 
b/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/valuetypes/DnIntIdValueSemantics.java
@@ -22,9 +22,7 @@ import javax.annotation.Priority;
 
 import org.datanucleus.identity.IntId;
 
-import 
org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
+import org.springframework.stereotype.Component;
 
 import org.apache.causeway.applib.annotation.PriorityPrecedence;
 import org.apache.causeway.applib.util.schema.CommonDtoUtils;
@@ -36,6 +34,7 @@ import org.apache.causeway.schema.common.v2.ValueType;
 import lombok.NonNull;
 import lombok.val;
 
+@Component
 @Priority(PriorityPrecedence.LATE)
 public class DnIntIdValueSemantics
 extends ValueSemanticsBasedOnIdStringifier<IntId> {
@@ -44,16 +43,6 @@ extends ValueSemanticsBasedOnIdStringifier<IntId> {
         super(IntId.class);
     }
 
-    @Configuration
-    public static class AutoConfiguration {
-
-        @Bean
-        @ConditionalOnMissingBean(DnIntIdValueSemantics.class)
-        public DnIntIdValueSemantics defaultDnIntIdValueSemantics() {
-            return new DnIntIdValueSemantics();
-        }
-    }
-
     // -- COMPOSER
 
     @Override
diff --git 
a/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/valuetypes/DnLongIdValueSemantics.java
 
b/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/valuetypes/DnLongIdValueSemantics.java
index 183fefab5a..0c008ca907 100644
--- 
a/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/valuetypes/DnLongIdValueSemantics.java
+++ 
b/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/valuetypes/DnLongIdValueSemantics.java
@@ -22,9 +22,7 @@ import javax.annotation.Priority;
 
 import org.datanucleus.identity.LongId;
 
-import 
org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
+import org.springframework.stereotype.Component;
 
 import org.apache.causeway.applib.annotation.PriorityPrecedence;
 import org.apache.causeway.applib.util.schema.CommonDtoUtils;
@@ -36,6 +34,7 @@ import org.apache.causeway.schema.common.v2.ValueType;
 import lombok.NonNull;
 import lombok.val;
 
+@Component
 @Priority(PriorityPrecedence.LATE)
 public class DnLongIdValueSemantics
 extends ValueSemanticsBasedOnIdStringifier<LongId> {
@@ -44,16 +43,6 @@ extends ValueSemanticsBasedOnIdStringifier<LongId> {
         super(LongId.class);
     }
 
-    @Configuration
-    public static class AutoConfiguration {
-
-        @Bean
-        @ConditionalOnMissingBean(DnLongIdValueSemantics.class)
-        public DnLongIdValueSemantics defaultDnLongIdValueSemantics() {
-            return new DnLongIdValueSemantics();
-        }
-    }
-
     // -- COMPOSER
 
     @Override
diff --git 
a/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/valuetypes/DnObjectIdValueSemantics.java
 
b/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/valuetypes/DnObjectIdValueSemantics.java
index 22326eb320..b32198b909 100644
--- 
a/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/valuetypes/DnObjectIdValueSemantics.java
+++ 
b/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/valuetypes/DnObjectIdValueSemantics.java
@@ -24,9 +24,7 @@ import javax.annotation.Priority;
 
 import org.datanucleus.identity.ObjectId;
 
-import 
org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
+import org.springframework.stereotype.Component;
 
 import org.apache.causeway.applib.annotation.PriorityPrecedence;
 import org.apache.causeway.applib.util.schema.CommonDtoUtils;
@@ -47,6 +45,7 @@ import lombok.val;
  *     of type int, long or UUID: rather than encode the fully qualified 
classname, instead uses a simpler prefix.
  * </p>
  */
+@Component
 @Priority(PriorityPrecedence.LATE)
 @Builder
 public class DnObjectIdValueSemantics
@@ -56,16 +55,6 @@ extends ValueSemanticsBasedOnIdStringifier<ObjectId> {
     private static final String PREFIX_LONG = "l_";
     private static final String PREFIX_INT = "i_";
 
-    @Configuration
-    public static class AutoConfiguration {
-
-        @Bean
-        @ConditionalOnMissingBean(DnObjectIdValueSemantics.class)
-        public DnObjectIdValueSemantics defaultDnObjectIdValueSemantics() {
-            return new DnObjectIdValueSemantics();
-        }
-    }
-
     public DnObjectIdValueSemantics() {
         super(ObjectId.class);
     }
diff --git 
a/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/valuetypes/DnScoidValueSemantics.java
 
b/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/valuetypes/DnScoidValueSemantics.java
index 4facd02a8b..b6abf98084 100644
--- 
a/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/valuetypes/DnScoidValueSemantics.java
+++ 
b/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/valuetypes/DnScoidValueSemantics.java
@@ -22,9 +22,7 @@ import javax.annotation.Priority;
 
 import org.datanucleus.identity.SCOID;
 
-import 
org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
+import org.springframework.stereotype.Component;
 
 import org.apache.causeway.applib.annotation.PriorityPrecedence;
 import 
org.apache.causeway.applib.value.semantics.ValueSemanticsBasedOnIdStringifierEntityAgnostic;
@@ -36,21 +34,11 @@ import lombok.NonNull;
  *
  * @see SCOID
  */
+@Component
 @Priority(PriorityPrecedence.LATE + 100) // after the implementations of 
DatastoreId; for a custom impl.
 public class DnScoidValueSemantics
 extends ValueSemanticsBasedOnIdStringifierEntityAgnostic<SCOID> {
 
-    @Configuration
-    public static class AutoConfiguration {
-
-        @Bean
-        @ConditionalOnMissingBean(DnScoidValueSemantics.class)
-        public DnScoidValueSemantics defaultDnScoidValueSemantics() {
-            return new DnScoidValueSemantics();
-        }
-    }
-
-
     public DnScoidValueSemantics() {
         super(SCOID.class);
     }
diff --git 
a/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/valuetypes/DnShortIdValueSemantics.java
 
b/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/valuetypes/DnShortIdValueSemantics.java
index dfb8a6e432..91b8f46808 100644
--- 
a/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/valuetypes/DnShortIdValueSemantics.java
+++ 
b/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/valuetypes/DnShortIdValueSemantics.java
@@ -22,9 +22,7 @@ import javax.annotation.Priority;
 
 import org.datanucleus.identity.ShortId;
 
-import 
org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
+import org.springframework.stereotype.Component;
 
 import org.apache.causeway.applib.annotation.PriorityPrecedence;
 import org.apache.causeway.applib.util.schema.CommonDtoUtils;
@@ -36,21 +34,11 @@ import org.apache.causeway.schema.common.v2.ValueType;
 import lombok.NonNull;
 import lombok.val;
 
+@Component
 @Priority(PriorityPrecedence.LATE)
 public class DnShortIdValueSemantics
 extends ValueSemanticsBasedOnIdStringifier<ShortId> {
 
-    @Configuration
-    public static class AutoConfiguration {
-
-        @Bean
-        @ConditionalOnMissingBean(DnShortIdValueSemantics.class)
-        public DnShortIdValueSemantics defaultDnShortIdValueSemantics() {
-            return new DnShortIdValueSemantics();
-        }
-    }
-
-
     public DnShortIdValueSemantics() {
         super(ShortId.class);
     }
diff --git 
a/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/valuetypes/DnStringIdValueSemantics.java
 
b/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/valuetypes/DnStringIdValueSemantics.java
index 7cd861acbf..3246ce1e34 100644
--- 
a/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/valuetypes/DnStringIdValueSemantics.java
+++ 
b/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/valuetypes/DnStringIdValueSemantics.java
@@ -23,9 +23,7 @@ import javax.inject.Inject;
 
 import org.datanucleus.identity.StringId;
 
-import 
org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
+import org.springframework.stereotype.Component;
 
 import org.apache.causeway.applib.annotation.PriorityPrecedence;
 import org.apache.causeway.applib.services.bookmark.IdStringifier;
@@ -39,21 +37,11 @@ import lombok.Builder;
 import lombok.NonNull;
 import lombok.val;
 
+@Component
 @Priority(PriorityPrecedence.LATE)
 public class DnStringIdValueSemantics
 extends ValueSemanticsBasedOnIdStringifier<StringId> {
 
-    @Configuration
-    public static class AutoConfiguration {
-
-        @Bean
-        @ConditionalOnMissingBean(DnStringIdValueSemantics.class)
-        public DnStringIdValueSemantics defaultDnStringIdValueSemantics() {
-            return new DnStringIdValueSemantics();
-        }
-    }
-
-
     @Inject IdStringifier<String> idStringifierForString;
 
     public DnStringIdValueSemantics() {
diff --git 
a/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/valuetypes/JdoByteIdentityValueSemantics.java
 
b/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/valuetypes/JdoByteIdentityValueSemantics.java
index d0aff7b9af..da2dbc369b 100644
--- 
a/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/valuetypes/JdoByteIdentityValueSemantics.java
+++ 
b/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/valuetypes/JdoByteIdentityValueSemantics.java
@@ -21,9 +21,7 @@ package 
org.apache.causeway.persistence.jdo.datanucleus.valuetypes;
 import javax.annotation.Priority;
 import javax.jdo.identity.ByteIdentity;
 
-import 
org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
+import org.springframework.stereotype.Component;
 
 import org.apache.causeway.applib.annotation.PriorityPrecedence;
 import org.apache.causeway.applib.util.schema.CommonDtoUtils;
@@ -35,21 +33,11 @@ import org.apache.causeway.schema.common.v2.ValueType;
 import lombok.NonNull;
 import lombok.val;
 
+@Component
 @Priority(PriorityPrecedence.LATE)
 public class JdoByteIdentityValueSemantics
 extends ValueSemanticsBasedOnIdStringifier<ByteIdentity> {
 
-    @Configuration
-    public static class AutoConfiguration {
-
-        @Bean
-        @ConditionalOnMissingBean(JdoByteIdentityValueSemantics.class)
-        public JdoByteIdentityValueSemantics 
defaultJdoByteIdentityValueSemantics() {
-            return new JdoByteIdentityValueSemantics();
-        }
-    }
-
-
     public JdoByteIdentityValueSemantics() {
         super(ByteIdentity.class);
     }
diff --git 
a/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/valuetypes/JdoCharIdentityValueSemantics.java
 
b/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/valuetypes/JdoCharIdentityValueSemantics.java
index 34e40568d1..5e92374065 100644
--- 
a/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/valuetypes/JdoCharIdentityValueSemantics.java
+++ 
b/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/valuetypes/JdoCharIdentityValueSemantics.java
@@ -22,9 +22,7 @@ import javax.annotation.Priority;
 import javax.inject.Inject;
 import javax.jdo.identity.CharIdentity;
 
-import 
org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
+import org.springframework.stereotype.Component;
 
 import org.apache.causeway.applib.annotation.PriorityPrecedence;
 import org.apache.causeway.applib.services.bookmark.IdStringifier;
@@ -38,21 +36,11 @@ import lombok.Builder;
 import lombok.NonNull;
 import lombok.val;
 
+@Component
 @Priority(PriorityPrecedence.LATE)
 public class JdoCharIdentityValueSemantics
 extends ValueSemanticsBasedOnIdStringifier<CharIdentity> {
 
-    @Configuration
-    public static class AutoConfiguration {
-
-        @Bean
-        @ConditionalOnMissingBean(JdoCharIdentityValueSemantics.class)
-        public JdoCharIdentityValueSemantics 
defaultJdoCharIdentityValueSemantics() {
-            return new JdoCharIdentityValueSemantics();
-        }
-    }
-
-
     @Inject IdStringifier<Character> idStringifierForCharacter;
 
     public JdoCharIdentityValueSemantics() {
diff --git 
a/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/valuetypes/JdoDatastoreIdValueSemantics.java
 
b/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/valuetypes/JdoDatastoreIdValueSemantics.java
index 4792fab33f..abe9fc6832 100644
--- 
a/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/valuetypes/JdoDatastoreIdValueSemantics.java
+++ 
b/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/valuetypes/JdoDatastoreIdValueSemantics.java
@@ -24,9 +24,7 @@ import javax.annotation.Priority;
 
 import org.datanucleus.identity.DatastoreId;
 
-import 
org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
+import org.springframework.stereotype.Component;
 
 import org.apache.causeway.applib.annotation.PriorityPrecedence;
 import org.apache.causeway.applib.services.bookmark.IdStringifier;
@@ -42,21 +40,11 @@ import lombok.NonNull;
 import lombok.SneakyThrows;
 import lombok.val;
 
+@Component
 @Priority(PriorityPrecedence.LATE + 100) // after the implementations of 
DatastoreId; for a custom impl.
 public class JdoDatastoreIdValueSemantics
 extends ValueSemanticsBasedOnIdStringifier<DatastoreId> {
 
-    @Configuration
-    public static class AutoConfiguration {
-
-        @Bean
-        @ConditionalOnMissingBean(JdoDatastoreIdValueSemantics.class)
-        public JdoDatastoreIdValueSemantics 
defaultJdoDatastoreIdValueSemantics() {
-            return new JdoDatastoreIdValueSemantics();
-        }
-    }
-
-
     public JdoDatastoreIdValueSemantics() {
         super(DatastoreId.class);
     }
diff --git 
a/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/valuetypes/JdoIntIdentityValueSemantics.java
 
b/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/valuetypes/JdoIntIdentityValueSemantics.java
index 3c6bea9108..8689d6aa4a 100644
--- 
a/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/valuetypes/JdoIntIdentityValueSemantics.java
+++ 
b/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/valuetypes/JdoIntIdentityValueSemantics.java
@@ -21,9 +21,7 @@ package 
org.apache.causeway.persistence.jdo.datanucleus.valuetypes;
 import javax.annotation.Priority;
 import javax.jdo.identity.IntIdentity;
 
-import 
org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
+import org.springframework.stereotype.Component;
 
 import org.apache.causeway.applib.annotation.PriorityPrecedence;
 import org.apache.causeway.applib.util.schema.CommonDtoUtils;
@@ -35,21 +33,11 @@ import org.apache.causeway.schema.common.v2.ValueType;
 import lombok.NonNull;
 import lombok.val;
 
+@Component
 @Priority(PriorityPrecedence.LATE)
 public class JdoIntIdentityValueSemantics
 extends ValueSemanticsBasedOnIdStringifier<IntIdentity> {
 
-    @Configuration
-    public static class AutoConfiguration {
-
-        @Bean
-        @ConditionalOnMissingBean(JdoIntIdentityValueSemantics.class)
-        public JdoIntIdentityValueSemantics 
defaultJdoIntIdentityValueSemantics() {
-            return new JdoIntIdentityValueSemantics();
-        }
-    }
-
-
     public JdoIntIdentityValueSemantics() {
         super(IntIdentity.class);
     }
diff --git 
a/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/valuetypes/JdoLongIdentityValueSemantics.java
 
b/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/valuetypes/JdoLongIdentityValueSemantics.java
index 5167a77b87..bd9db134f2 100644
--- 
a/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/valuetypes/JdoLongIdentityValueSemantics.java
+++ 
b/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/valuetypes/JdoLongIdentityValueSemantics.java
@@ -21,9 +21,7 @@ package 
org.apache.causeway.persistence.jdo.datanucleus.valuetypes;
 import javax.annotation.Priority;
 import javax.jdo.identity.LongIdentity;
 
-import 
org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
+import org.springframework.stereotype.Component;
 
 import org.apache.causeway.applib.annotation.PriorityPrecedence;
 import org.apache.causeway.applib.util.schema.CommonDtoUtils;
@@ -35,21 +33,11 @@ import org.apache.causeway.schema.common.v2.ValueType;
 import lombok.NonNull;
 import lombok.val;
 
+@Component
 @Priority(PriorityPrecedence.LATE)
 public class JdoLongIdentityValueSemantics
 extends ValueSemanticsBasedOnIdStringifier<LongIdentity> {
 
-    @Configuration
-    public static class AutoConfiguration {
-
-        @Bean
-        @ConditionalOnMissingBean(JdoLongIdentityValueSemantics.class)
-        public JdoLongIdentityValueSemantics 
defaultJdoLongIdentityValueSemantics() {
-            return new JdoLongIdentityValueSemantics();
-        }
-    }
-
-
     public JdoLongIdentityValueSemantics() {
         super(LongIdentity.class);
     }
diff --git 
a/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/valuetypes/JdoObjectIdentityValueSemantics.java
 
b/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/valuetypes/JdoObjectIdentityValueSemantics.java
index 92bd03e577..f1784f0d3f 100644
--- 
a/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/valuetypes/JdoObjectIdentityValueSemantics.java
+++ 
b/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/valuetypes/JdoObjectIdentityValueSemantics.java
@@ -23,9 +23,7 @@ import java.util.UUID;
 import javax.annotation.Priority;
 import javax.jdo.identity.ObjectIdentity;
 
-import 
org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
+import org.springframework.stereotype.Component;
 
 import org.apache.causeway.applib.annotation.PriorityPrecedence;
 import org.apache.causeway.applib.util.schema.CommonDtoUtils;
@@ -46,6 +44,7 @@ import lombok.val;
  *     of type int, long or UUID: rather than encode the fully qualified 
classname, instead uses a simpler prefix.
  * </p>
  */
+@Component
 @Priority(PriorityPrecedence.LATE)
 @Builder
 public class JdoObjectIdentityValueSemantics
@@ -55,17 +54,6 @@ extends ValueSemanticsBasedOnIdStringifier<ObjectIdentity> {
     private static final String PREFIX_LONG = "l_";
     private static final String PREFIX_INT = "i_";
 
-    @Configuration
-    public static class AutoConfiguration {
-
-        @Bean
-        @ConditionalOnMissingBean(JdoObjectIdentityValueSemantics.class)
-        public JdoObjectIdentityValueSemantics 
defaultJdoObjectIdentityValueSemantics() {
-            return new JdoObjectIdentityValueSemantics();
-        }
-    }
-
-
     public JdoObjectIdentityValueSemantics() {
         super(ObjectIdentity.class);
     }
diff --git 
a/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/valuetypes/JdoShortIdentityValueSemantics.java
 
b/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/valuetypes/JdoShortIdentityValueSemantics.java
index 28b769bda7..c3f014089a 100644
--- 
a/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/valuetypes/JdoShortIdentityValueSemantics.java
+++ 
b/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/valuetypes/JdoShortIdentityValueSemantics.java
@@ -21,9 +21,7 @@ package 
org.apache.causeway.persistence.jdo.datanucleus.valuetypes;
 import javax.annotation.Priority;
 import javax.jdo.identity.ShortIdentity;
 
-import 
org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
+import org.springframework.stereotype.Component;
 
 import org.apache.causeway.applib.annotation.PriorityPrecedence;
 import org.apache.causeway.applib.util.schema.CommonDtoUtils;
@@ -35,21 +33,11 @@ import org.apache.causeway.schema.common.v2.ValueType;
 import lombok.NonNull;
 import lombok.val;
 
+@Component
 @Priority(PriorityPrecedence.LATE)
 public class JdoShortIdentityValueSemantics
 extends ValueSemanticsBasedOnIdStringifier<ShortIdentity> {
 
-    @Configuration
-    public static class AutoConfiguration {
-
-        @Bean
-        @ConditionalOnMissingBean(JdoShortIdentityValueSemantics.class)
-        public JdoShortIdentityValueSemantics 
defaultJdoShortIdentityValueSemantics() {
-            return new JdoShortIdentityValueSemantics();
-        }
-    }
-
-
     public JdoShortIdentityValueSemantics() {
         super(ShortIdentity.class);
     }
diff --git 
a/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/valuetypes/JdoStringIdentityValueSemantics.java
 
b/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/valuetypes/JdoStringIdentityValueSemantics.java
index 7f2708a0b1..03e21ed42e 100644
--- 
a/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/valuetypes/JdoStringIdentityValueSemantics.java
+++ 
b/persistence/jdo/datanucleus/src/main/java/org/apache/causeway/persistence/jdo/datanucleus/valuetypes/JdoStringIdentityValueSemantics.java
@@ -22,9 +22,7 @@ import javax.annotation.Priority;
 import javax.inject.Inject;
 import javax.jdo.identity.StringIdentity;
 
-import 
org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
+import org.springframework.stereotype.Component;
 
 import org.apache.causeway.applib.annotation.PriorityPrecedence;
 import org.apache.causeway.applib.services.bookmark.IdStringifier;
@@ -38,21 +36,11 @@ import lombok.Builder;
 import lombok.NonNull;
 import lombok.val;
 
+@Component
 @Priority(PriorityPrecedence.LATE)
 public class JdoStringIdentityValueSemantics
 extends ValueSemanticsBasedOnIdStringifier<StringIdentity> {
 
-    @Configuration
-    public static class AutoConfiguration {
-
-        @Bean
-        @ConditionalOnMissingBean(JdoStringIdentityValueSemantics.class)
-        public JdoStringIdentityValueSemantics 
defaultJdoStringIdentityValueSemantics() {
-            return new JdoStringIdentityValueSemantics();
-        }
-    }
-
-
     @Inject IdStringifier<String> idStringifierForString;
 
     public JdoStringIdentityValueSemantics() {
diff --git a/valuetypes/asciidoc/metamodel/src/main/java/module-info.java 
b/valuetypes/asciidoc/metamodel/src/main/java/module-info.java
index dcbaa6f4ac..5ef7d274ad 100644
--- a/valuetypes/asciidoc/metamodel/src/main/java/module-info.java
+++ b/valuetypes/asciidoc/metamodel/src/main/java/module-info.java
@@ -31,5 +31,4 @@ module org.apache.causeway.valuetypes.asciidoc.metamodel {
     requires spring.beans;
     requires spring.context;
     requires spring.core;
-    requires spring.boot.autoconfigure;
 }
\ No newline at end of file
diff --git 
a/valuetypes/asciidoc/metamodel/src/main/java/org/apache/causeway/valuetypes/asciidoc/metamodel/CausewayModuleValAsciidocMetaModel.java
 
b/valuetypes/asciidoc/metamodel/src/main/java/org/apache/causeway/valuetypes/asciidoc/metamodel/CausewayModuleValAsciidocMetaModel.java
index dffe122d01..e1b3fba276 100644
--- 
a/valuetypes/asciidoc/metamodel/src/main/java/org/apache/causeway/valuetypes/asciidoc/metamodel/CausewayModuleValAsciidocMetaModel.java
+++ 
b/valuetypes/asciidoc/metamodel/src/main/java/org/apache/causeway/valuetypes/asciidoc/metamodel/CausewayModuleValAsciidocMetaModel.java
@@ -31,7 +31,7 @@ import 
org.apache.causeway.valuetypes.asciidoc.metamodel.semantics.InteractionDt
  */
 @Configuration
 @Import({
-        AsciiDocValueSemantics.AutoConfiguration.class,
+        AsciiDocValueSemantics.class,
         ChangesDtoValueSemanticsPrettyRender.class,
         CommandDtoValueSemanticsPrettyRender.class,
         InteractionDtoValueSemanticsPrettyRender.class,
diff --git 
a/valuetypes/asciidoc/metamodel/src/main/java/org/apache/causeway/valuetypes/asciidoc/metamodel/semantics/AsciiDocValueSemantics.java
 
b/valuetypes/asciidoc/metamodel/src/main/java/org/apache/causeway/valuetypes/asciidoc/metamodel/semantics/AsciiDocValueSemantics.java
index 2a9ce6bf9d..58a09c46ea 100644
--- 
a/valuetypes/asciidoc/metamodel/src/main/java/org/apache/causeway/valuetypes/asciidoc/metamodel/semantics/AsciiDocValueSemantics.java
+++ 
b/valuetypes/asciidoc/metamodel/src/main/java/org/apache/causeway/valuetypes/asciidoc/metamodel/semantics/AsciiDocValueSemantics.java
@@ -20,9 +20,7 @@ package 
org.apache.causeway.valuetypes.asciidoc.metamodel.semantics;
 
 import javax.inject.Named;
 
-import 
org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
+import org.springframework.stereotype.Component;
 
 import org.apache.causeway.applib.value.semantics.Parser;
 import org.apache.causeway.applib.value.semantics.Renderer;
@@ -34,6 +32,7 @@ import org.apache.causeway.schema.common.v2.ValueType;
 import 
org.apache.causeway.valuetypes.asciidoc.applib.CausewayModuleValAsciidocApplib;
 import org.apache.causeway.valuetypes.asciidoc.applib.value.AsciiDoc;
 
+@Component
 @Named(CausewayModuleValAsciidocApplib.NAMESPACE + ".AsciiDocValueSemantics")
 public class AsciiDocValueSemantics
 extends ValueSemanticsAbstract<AsciiDoc>
@@ -41,16 +40,6 @@ implements
     Renderer<AsciiDoc>,
     Parser<AsciiDoc> {
 
-    @Configuration
-    public static class AutoConfiguration {
-
-        @Bean
-        @ConditionalOnMissingBean(AsciiDocValueSemantics.class)
-        public AsciiDocValueSemantics defaultAsciiDocValueSemantics() {
-            return new AsciiDocValueSemantics();
-        }
-    }
-
     @Override
     public Class<AsciiDoc> getCorrespondingClass() {
         return AsciiDoc.class;
diff --git a/valuetypes/jodatime/integration/src/main/java/module-info.java 
b/valuetypes/jodatime/integration/src/main/java/module-info.java
index 2a88f1b255..49ebe0438b 100644
--- a/valuetypes/jodatime/integration/src/main/java/module-info.java
+++ b/valuetypes/jodatime/integration/src/main/java/module-info.java
@@ -30,7 +30,6 @@ module org.apache.causeway.valuetypes.jodatime.integration {
     requires org.apache.causeway.valuetypes.jodatime.applib;
     requires org.joda.time;
     requires spring.context;
-    requires spring.boot.autoconfigure;
 
     opens org.apache.causeway.valuetypes.jodatime.integration.valuesemantics 
to org.apache.causeway.commons;
 }
\ No newline at end of file
diff --git 
a/valuetypes/jodatime/integration/src/main/java/org/apache/causeway/valuetypes/jodatime/integration/CausewayModuleValJodatimeIntegration.java
 
b/valuetypes/jodatime/integration/src/main/java/org/apache/causeway/valuetypes/jodatime/integration/CausewayModuleValJodatimeIntegration.java
index 279c5cb129..4857550637 100644
--- 
a/valuetypes/jodatime/integration/src/main/java/org/apache/causeway/valuetypes/jodatime/integration/CausewayModuleValJodatimeIntegration.java
+++ 
b/valuetypes/jodatime/integration/src/main/java/org/apache/causeway/valuetypes/jodatime/integration/CausewayModuleValJodatimeIntegration.java
@@ -31,10 +31,10 @@ import 
org.apache.causeway.valuetypes.jodatime.integration.valuesemantics.JodaLo
  */
 @Configuration
 @Import({
-    JodaLocalTimeValueSemantics.AutoConfiguration.class,
-    JodaLocalDateTimeValueSemantics.AutoConfiguration.class,
-    JodaLocalDateValueSemantics.AutoConfiguration.class,
-    JodaDateTimeValueSemantics.AutoConfiguration.class,
+    JodaLocalTimeValueSemantics.class,
+    JodaLocalDateTimeValueSemantics.class,
+    JodaLocalDateValueSemantics.class,
+    JodaDateTimeValueSemantics.class,
 })
 public class CausewayModuleValJodatimeIntegration {
 
diff --git 
a/valuetypes/jodatime/integration/src/main/java/org/apache/causeway/valuetypes/jodatime/integration/valuesemantics/JodaDateTimeValueSemantics.java
 
b/valuetypes/jodatime/integration/src/main/java/org/apache/causeway/valuetypes/jodatime/integration/valuesemantics/JodaDateTimeValueSemantics.java
index 21dbc013f2..55a1156668 100644
--- 
a/valuetypes/jodatime/integration/src/main/java/org/apache/causeway/valuetypes/jodatime/integration/valuesemantics/JodaDateTimeValueSemantics.java
+++ 
b/valuetypes/jodatime/integration/src/main/java/org/apache/causeway/valuetypes/jodatime/integration/valuesemantics/JodaDateTimeValueSemantics.java
@@ -25,9 +25,7 @@ import javax.inject.Named;
 
 import org.joda.time.DateTime;
 
-import 
org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
+import org.springframework.stereotype.Component;
 
 import org.apache.causeway.applib.value.semantics.ValueSemanticsAbstract;
 import org.apache.causeway.commons.collections.Can;
@@ -36,22 +34,13 @@ import 
org.apache.causeway.core.metamodel.valuetypes.TemporalSemanticsAdapter;
 import org.apache.causeway.valuetypes.jodatime.applib.value.JodaTimeConverters;
 import 
org.apache.causeway.valuetypes.jodatime.integration.CausewayModuleValJodatimeIntegration;
 
+@Component
 @Named(JodaDateTimeValueSemantics.LOGICAL_TYPE_NAME)
 public class JodaDateTimeValueSemantics
 extends TemporalSemanticsAdapter<org.joda.time.DateTime, ZonedDateTime>  {
 
     public static final String LOGICAL_TYPE_NAME = 
CausewayModuleValJodatimeIntegration.NAMESPACE + ".JodaDateTimeValueSemantics";
 
-    @Configuration
-    public static class AutoConfiguration {
-
-        @Bean
-        @ConditionalOnMissingBean(JodaDateTimeValueSemantics.class)
-        public JodaDateTimeValueSemantics defaultJodaDateTimeValueSemantics() {
-            return new JodaDateTimeValueSemantics();
-        }
-    }
-
     @Inject ZonedDateTimeValueSemantics zonedDateTimeValueSemantics;
 
     @Override
diff --git 
a/valuetypes/jodatime/integration/src/main/java/org/apache/causeway/valuetypes/jodatime/integration/valuesemantics/JodaLocalDateTimeValueSemantics.java
 
b/valuetypes/jodatime/integration/src/main/java/org/apache/causeway/valuetypes/jodatime/integration/valuesemantics/JodaLocalDateTimeValueSemantics.java
index 1446abb60c..3a7835fc5c 100644
--- 
a/valuetypes/jodatime/integration/src/main/java/org/apache/causeway/valuetypes/jodatime/integration/valuesemantics/JodaLocalDateTimeValueSemantics.java
+++ 
b/valuetypes/jodatime/integration/src/main/java/org/apache/causeway/valuetypes/jodatime/integration/valuesemantics/JodaLocalDateTimeValueSemantics.java
@@ -23,9 +23,7 @@ import javax.inject.Named;
 
 import org.joda.time.LocalDateTime;
 
-import 
org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
+import org.springframework.stereotype.Component;
 
 import org.apache.causeway.applib.value.semantics.ValueSemanticsAbstract;
 import org.apache.causeway.commons.collections.Can;
@@ -34,22 +32,13 @@ import 
org.apache.causeway.core.metamodel.valuetypes.TemporalSemanticsAdapter;
 import org.apache.causeway.valuetypes.jodatime.applib.value.JodaTimeConverters;
 import 
org.apache.causeway.valuetypes.jodatime.integration.CausewayModuleValJodatimeIntegration;
 
+@Component
 @Named(JodaLocalDateTimeValueSemantics.LOGICAL_TYPE_NAME)
 public class JodaLocalDateTimeValueSemantics
 extends TemporalSemanticsAdapter<org.joda.time.LocalDateTime, 
java.time.LocalDateTime>  {
 
     public static final String LOGICAL_TYPE_NAME = 
CausewayModuleValJodatimeIntegration.NAMESPACE + 
".JodaLocalDateTimeValueSemantics";
 
-    @Configuration
-    public static class AutoConfiguration {
-
-        @Bean
-        @ConditionalOnMissingBean(JodaLocalDateTimeValueSemantics.class)
-        public JodaLocalDateTimeValueSemantics 
defaultJodaLocalDateTimeValueSemantics() {
-            return new JodaLocalDateTimeValueSemantics();
-        }
-    }
-
     @Inject LocalDateTimeValueSemantics localDateTimeValueSemantics;
 
     @Override
diff --git 
a/valuetypes/jodatime/integration/src/main/java/org/apache/causeway/valuetypes/jodatime/integration/valuesemantics/JodaLocalDateValueSemantics.java
 
b/valuetypes/jodatime/integration/src/main/java/org/apache/causeway/valuetypes/jodatime/integration/valuesemantics/JodaLocalDateValueSemantics.java
index da0d1414c7..842b8ed909 100644
--- 
a/valuetypes/jodatime/integration/src/main/java/org/apache/causeway/valuetypes/jodatime/integration/valuesemantics/JodaLocalDateValueSemantics.java
+++ 
b/valuetypes/jodatime/integration/src/main/java/org/apache/causeway/valuetypes/jodatime/integration/valuesemantics/JodaLocalDateValueSemantics.java
@@ -23,9 +23,7 @@ import javax.inject.Named;
 
 import org.joda.time.LocalDate;
 
-import 
org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
+import org.springframework.stereotype.Component;
 
 import org.apache.causeway.applib.value.semantics.ValueSemanticsAbstract;
 import org.apache.causeway.commons.collections.Can;
@@ -34,22 +32,13 @@ import 
org.apache.causeway.core.metamodel.valuetypes.TemporalSemanticsAdapter;
 import org.apache.causeway.valuetypes.jodatime.applib.value.JodaTimeConverters;
 import 
org.apache.causeway.valuetypes.jodatime.integration.CausewayModuleValJodatimeIntegration;
 
+@Component
 @Named(JodaLocalDateValueSemantics.LOGICAL_TYPE_NAME)
 public class JodaLocalDateValueSemantics
 extends TemporalSemanticsAdapter<org.joda.time.LocalDate, java.time.LocalDate> 
 {
 
     public static final String LOGICAL_TYPE_NAME = 
CausewayModuleValJodatimeIntegration.NAMESPACE + ".JodaLocalDateValueSemantics";
 
-    @Configuration
-    public static class AutoConfiguration {
-
-        @Bean
-        @ConditionalOnMissingBean(JodaLocalDateValueSemantics.class)
-        public JodaLocalDateValueSemantics 
defaultJodaLocalDateValueSemantics() {
-            return new JodaLocalDateValueSemantics();
-        }
-    }
-
     @Inject LocalDateValueSemantics localDateValueSemantics;
 
     @Override
diff --git 
a/valuetypes/jodatime/integration/src/main/java/org/apache/causeway/valuetypes/jodatime/integration/valuesemantics/JodaLocalTimeValueSemantics.java
 
b/valuetypes/jodatime/integration/src/main/java/org/apache/causeway/valuetypes/jodatime/integration/valuesemantics/JodaLocalTimeValueSemantics.java
index 08b5323043..07ce4b1e23 100644
--- 
a/valuetypes/jodatime/integration/src/main/java/org/apache/causeway/valuetypes/jodatime/integration/valuesemantics/JodaLocalTimeValueSemantics.java
+++ 
b/valuetypes/jodatime/integration/src/main/java/org/apache/causeway/valuetypes/jodatime/integration/valuesemantics/JodaLocalTimeValueSemantics.java
@@ -23,9 +23,7 @@ import javax.inject.Named;
 
 import org.joda.time.LocalTime;
 
-import 
org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
+import org.springframework.stereotype.Component;
 
 import org.apache.causeway.applib.value.semantics.ValueSemanticsAbstract;
 import org.apache.causeway.commons.collections.Can;
@@ -34,22 +32,13 @@ import 
org.apache.causeway.core.metamodel.valuetypes.TemporalSemanticsAdapter;
 import org.apache.causeway.valuetypes.jodatime.applib.value.JodaTimeConverters;
 import 
org.apache.causeway.valuetypes.jodatime.integration.CausewayModuleValJodatimeIntegration;
 
+@Component
 @Named(JodaLocalTimeValueSemantics.LOGICAL_TYPE_NAME)
 public class JodaLocalTimeValueSemantics
 extends TemporalSemanticsAdapter<org.joda.time.LocalTime, java.time.LocalTime> 
 {
 
     public static final String LOGICAL_TYPE_NAME = 
CausewayModuleValJodatimeIntegration.NAMESPACE + ".JodaLocalTimeValueSemantics";
 
-    @Configuration
-    public static class AutoConfiguration {
-
-        @Bean
-        @ConditionalOnMissingBean(JodaLocalTimeValueSemantics.class)
-        public JodaLocalTimeValueSemantics 
defaultJodaLocalTimeValueSemantics() {
-            return new JodaLocalTimeValueSemantics();
-        }
-    }
-
     @Inject LocalTimeValueSemantics localTimeValueSemantics;
 
     @Override
diff --git a/valuetypes/markdown/metamodel/src/main/java/module-info.java 
b/valuetypes/markdown/metamodel/src/main/java/module-info.java
index 8175e8234f..9fc413b7c3 100644
--- a/valuetypes/markdown/metamodel/src/main/java/module-info.java
+++ b/valuetypes/markdown/metamodel/src/main/java/module-info.java
@@ -27,5 +27,4 @@ module org.apache.causeway.valuetypes.markdown.metamodel {
     requires org.apache.causeway.schema;
     requires org.apache.causeway.valuetypes.markdown.applib;
     requires spring.context;
-    requires spring.boot.autoconfigure;
 }
\ No newline at end of file
diff --git 
a/valuetypes/markdown/metamodel/src/main/java/org/apache/causeway/valuetypes/markdown/metamodel/CausewayModuleValMarkdownMetaModel.java
 
b/valuetypes/markdown/metamodel/src/main/java/org/apache/causeway/valuetypes/markdown/metamodel/CausewayModuleValMarkdownMetaModel.java
index 474f065f3a..91e32ee82f 100644
--- 
a/valuetypes/markdown/metamodel/src/main/java/org/apache/causeway/valuetypes/markdown/metamodel/CausewayModuleValMarkdownMetaModel.java
+++ 
b/valuetypes/markdown/metamodel/src/main/java/org/apache/causeway/valuetypes/markdown/metamodel/CausewayModuleValMarkdownMetaModel.java
@@ -28,7 +28,7 @@ import 
org.apache.causeway.valuetypes.markdown.metamodel.semantics.MarkdownValue
  */
 @Configuration
 @Import({
-        MarkdownValueSemantics.AutoConfiguration.class,
+        MarkdownValueSemantics.class,
 })
 public class CausewayModuleValMarkdownMetaModel {
 
diff --git 
a/valuetypes/markdown/metamodel/src/main/java/org/apache/causeway/valuetypes/markdown/metamodel/semantics/MarkdownValueSemantics.java
 
b/valuetypes/markdown/metamodel/src/main/java/org/apache/causeway/valuetypes/markdown/metamodel/semantics/MarkdownValueSemantics.java
index fa7978959c..f56f496074 100644
--- 
a/valuetypes/markdown/metamodel/src/main/java/org/apache/causeway/valuetypes/markdown/metamodel/semantics/MarkdownValueSemantics.java
+++ 
b/valuetypes/markdown/metamodel/src/main/java/org/apache/causeway/valuetypes/markdown/metamodel/semantics/MarkdownValueSemantics.java
@@ -20,9 +20,7 @@ package 
org.apache.causeway.valuetypes.markdown.metamodel.semantics;
 
 import javax.inject.Named;
 
-import 
org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
+import org.springframework.stereotype.Component;
 
 import org.apache.causeway.applib.value.semantics.Parser;
 import org.apache.causeway.applib.value.semantics.Renderer;
@@ -34,6 +32,7 @@ import org.apache.causeway.schema.common.v2.ValueType;
 import 
org.apache.causeway.valuetypes.markdown.applib.CausewayModuleValMarkdownApplib;
 import org.apache.causeway.valuetypes.markdown.applib.value.Markdown;
 
+@Component
 @Named(CausewayModuleValMarkdownApplib.NAMESPACE + ".MarkdownValueSemantics")
 public class MarkdownValueSemantics
 extends ValueSemanticsAbstract<Markdown>
@@ -41,16 +40,6 @@ implements
     Parser<Markdown>,
     Renderer<Markdown> {
 
-    @Configuration
-    public static class AutoConfiguration {
-
-        @Bean
-        @ConditionalOnMissingBean(MarkdownValueSemantics.class)
-        public MarkdownValueSemantics defaultCalendarEventSemantics() {
-            return new MarkdownValueSemantics();
-        }
-    }
-
     @Override
     public Class<Markdown> getCorrespondingClass() {
         return Markdown.class;
diff --git a/valuetypes/vega/metamodel/src/main/java/module-info.java 
b/valuetypes/vega/metamodel/src/main/java/module-info.java
index 70f281ea6d..59290ae2e4 100644
--- a/valuetypes/vega/metamodel/src/main/java/module-info.java
+++ b/valuetypes/vega/metamodel/src/main/java/module-info.java
@@ -31,5 +31,4 @@ module org.apache.causeway.valuetypes.vega.metamodel {
     requires spring.beans;
     requires spring.context;
     requires spring.core;
-    requires spring.boot.autoconfigure;
 }
\ No newline at end of file
diff --git 
a/valuetypes/vega/metamodel/src/main/java/org/apache/causeway/valuetypes/vega/metamodel/CausewayModuleValVegaMetaModel.java
 
b/valuetypes/vega/metamodel/src/main/java/org/apache/causeway/valuetypes/vega/metamodel/CausewayModuleValVegaMetaModel.java
index bc0433b659..776c5a70e5 100644
--- 
a/valuetypes/vega/metamodel/src/main/java/org/apache/causeway/valuetypes/vega/metamodel/CausewayModuleValVegaMetaModel.java
+++ 
b/valuetypes/vega/metamodel/src/main/java/org/apache/causeway/valuetypes/vega/metamodel/CausewayModuleValVegaMetaModel.java
@@ -28,7 +28,7 @@ import 
org.apache.causeway.valuetypes.vega.metamodel.semantics.VegaValueSemantic
  */
 @Configuration
 @Import({
-        VegaValueSemantics.AutoConfiguration.class,
+        VegaValueSemantics.class,
 })
 public class CausewayModuleValVegaMetaModel {
 
diff --git 
a/valuetypes/vega/metamodel/src/main/java/org/apache/causeway/valuetypes/vega/metamodel/semantics/VegaValueSemantics.java
 
b/valuetypes/vega/metamodel/src/main/java/org/apache/causeway/valuetypes/vega/metamodel/semantics/VegaValueSemantics.java
index c35d672a07..fdbd317893 100644
--- 
a/valuetypes/vega/metamodel/src/main/java/org/apache/causeway/valuetypes/vega/metamodel/semantics/VegaValueSemantics.java
+++ 
b/valuetypes/vega/metamodel/src/main/java/org/apache/causeway/valuetypes/vega/metamodel/semantics/VegaValueSemantics.java
@@ -22,9 +22,6 @@ import java.util.UUID;
 
 import javax.inject.Named;
 
-import 
org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
 import org.springframework.stereotype.Component;
 
 import org.apache.causeway.applib.value.semantics.DefaultsProvider;
@@ -50,17 +47,6 @@ implements
     Renderer<Vega>,
     Parser<Vega> {
 
-    @Configuration
-    public static class AutoConfiguration {
-
-        @Bean
-        @ConditionalOnMissingBean(VegaValueSemantics.class)
-        public VegaValueSemantics defaultVegaValueSemantics() {
-            return new VegaValueSemantics();
-        }
-    }
-
-
     @Override
     public Class<Vega> getCorrespondingClass() {
         return Vega.class;


Reply via email to