You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by ah...@apache.org on 2022/05/24 05:04:21 UTC
[isis] branch master updated: ISIS-3063: adds @Named support on interfaces and abstract types
This is an automated email from the ASF dual-hosted git repository.
ahuber pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/isis.git
The following commit(s) were added to refs/heads/master by this push:
new b1a44a0f62 ISIS-3063: adds @Named support on interfaces and abstract types
b1a44a0f62 is described below
commit b1a44a0f62656e764c77283e5a7b292408015f3c
Author: Andi Huber <ah...@apache.org>
AuthorDate: Tue May 24 07:04:15 2022 +0200
ISIS-3063: adds @Named support on interfaces and abstract types
---
...LogicalTypeFacetForAnnotationFacetFactory.java} | 20 ++++++---
.../LogicalTypeFacetForNamedAnnotation.java | 52 ++++++++++++++++++++++
.../object/logicaltype/LogicalTypeFacet.java | 10 ++---
.../dflt/ProgrammingModelFacetsJava11.java | 4 +-
.../metamodel/specloader/SpecificationLoader.java | 5 ++-
.../demoapp/dom/_infra/values/ValueHolder.java | 4 +-
.../domain/objects/other/mixins/CountHolder.java | 4 +-
.../types/isis/blobs/holder/IsisBlobHolder.java | 5 ++-
.../types/isis/clobs/holder/IsisClobHolder.java | 5 ++-
.../holder/IsisLocalResourcePathHolder.java | 5 ++-
.../isis/markups/holder/IsisMarkupHolder.java | 5 ++-
.../isis/passwords/holder/IsisPasswordHolder.java | 5 ++-
.../asciidocs/holder/IsisAsciiDocHolder.java | 5 ++-
.../cal/holder/IsisCalendarEventHolder.java | 5 ++-
.../markdowns/holder/IsisMarkdownHolder.java | 5 ++-
.../images/holder/JavaAwtBufferedImageHolder.java | 4 +-
.../booleans/holder/WrapperBooleanHolder.java | 4 +-
.../javalang/bytes/holder/WrapperByteHolder.java | 4 +-
.../characters/holder/WrapperCharacterHolder.java | 4 +-
.../doubles/holder/WrapperDoubleHolder.java | 4 +-
.../javalang/floats/holder/WrapperFloatHolder.java | 4 +-
.../integers/holder/WrapperIntegerHolder.java | 4 +-
.../javalang/longs/holder/WrapperLongHolder.java | 4 +-
.../javalang/shorts/holder/WrapperShortHolder.java | 4 +-
.../strings/holder/JavaLangStringHolder.java | 4 +-
.../holder/JavaMathBigDecimalHolder.java | 4 +-
.../holder/JavaMathBigIntegerHolder.java | 4 +-
.../javanet/urls/holder/JavaNetUrlHolder.java | 4 +-
.../javasqldate/holder/JavaSqlDateHolder.java | 4 +-
.../holder/JavaSqlTimestampHolder.java | 4 +-
.../holder/JavaTimeLocalDateHolder.java | 4 +-
.../holder/JavaTimeLocalDateTimeHolder.java | 4 +-
.../holder/JavaTimeLocalTimeHolder.java | 4 +-
.../holder/JavaTimeOffsetDateTimeHolder.java | 4 +-
.../holder/JavaTimeOffsetTimeHolder.java | 4 +-
.../holder/JavaTimeZonedDateTimeHolder.java | 4 +-
.../javautildate/holder/JavaUtilDateHolder.java | 4 +-
.../javautil/uuids/holder/JavaUtilUuidHolder.java | 4 +-
.../jodadatetime/holder/JodaDateTimeHolder.java | 4 +-
.../jodalocaldate/holder/JodaLocalDateHolder.java | 4 +-
.../holder/JodaLocalDateTimeHolder.java | 4 +-
.../jodalocaltime/holder/JodaLocalTimeHolder.java | 4 +-
.../booleans/holder/PrimitiveBooleanHolder.java | 5 ++-
.../bytes/holder/PrimitiveByteHolder.java | 4 +-
.../chars/holder/PrimitiveCharHolder.java | 4 +-
.../doubles/holder/PrimitiveDoubleHolder.java | 4 +-
.../floats/holder/PrimitiveFloatHolder.java | 4 +-
.../primitive/ints/holder/PrimitiveIntHolder.java | 4 +-
.../longs/holder/PrimitiveLongHolder.java | 4 +-
.../shorts/holder/PrimitiveShortHolder.java | 4 +-
.../testdomain/model/good/ProperInterface.java | 5 ++-
.../testdomain/model/good/ProperInterface2.java | 5 ++-
52 files changed, 180 insertions(+), 110 deletions(-)
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/logicaltype/LogicalTypeFacetForLogicalTypeNameAnnotationFacetFactory.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/logicaltype/LogicalTypeFacetForAnnotationFacetFactory.java
similarity index 77%
rename from core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/logicaltype/LogicalTypeFacetForLogicalTypeNameAnnotationFacetFactory.java
rename to core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/logicaltype/LogicalTypeFacetForAnnotationFacetFactory.java
index 3f8929172a..150f630006 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/logicaltype/LogicalTypeFacetForLogicalTypeNameAnnotationFacetFactory.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/logicaltype/LogicalTypeFacetForAnnotationFacetFactory.java
@@ -19,6 +19,7 @@
package org.apache.isis.core.metamodel.facets.object.domainobject.logicaltype;
import javax.inject.Inject;
+import javax.inject.Named;
import org.apache.isis.applib.annotation.LogicalTypeName;
import org.apache.isis.core.metamodel.commons.ClassExtensions;
@@ -30,11 +31,11 @@ import org.apache.isis.core.metamodel.methods.MethodByClassMap;
import lombok.val;
-public class LogicalTypeFacetForLogicalTypeNameAnnotationFacetFactory
+public class LogicalTypeFacetForAnnotationFacetFactory
extends FacetFactoryAbstract {
@Inject
- public LogicalTypeFacetForLogicalTypeNameAnnotationFacetFactory(
+ public LogicalTypeFacetForAnnotationFacetFactory(
final MetaModelContext mmc,
final MethodByClassMap postConstructMethodsCache) {
super(mmc, FeatureType.OBJECTS_ONLY);
@@ -42,20 +43,25 @@ extends FacetFactoryAbstract {
@Override
public void process(final ProcessClassContext processClassContext) {
- val logicalTypeNameIfAny = processClassContext.synthesizeOnType(LogicalTypeName.class);
+
val cls = processClassContext.getCls();
+ val facetHolder = processClassContext.getFacetHolder();
+ // deprecated annotation @LogicalTypeName
if(cls.isInterface()
|| ClassExtensions.isAbstract(cls)) {
-
- val facetHolder = processClassContext.getFacetHolder();
-
+ val logicalTypeNameIfAny = processClassContext.synthesizeOnType(LogicalTypeName.class);
FacetUtil.addFacetIfPresent(
LogicalTypeFacetForLogicalTypeNameAnnotation
.create(logicalTypeNameIfAny, cls, facetHolder));
-
}
+ val namedIfAny = processClassContext.synthesizeOnType(Named.class);
+
+ FacetUtil.addFacetIfPresent(
+ LogicalTypeFacetForNamedAnnotation
+ .create(namedIfAny, cls, facetHolder));
+
}
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/logicaltype/LogicalTypeFacetForNamedAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/logicaltype/LogicalTypeFacetForNamedAnnotation.java
new file mode 100644
index 0000000000..b72c99a315
--- /dev/null
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/domainobject/logicaltype/LogicalTypeFacetForNamedAnnotation.java
@@ -0,0 +1,52 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.isis.core.metamodel.facets.object.domainobject.logicaltype;
+
+import java.util.Optional;
+
+import javax.inject.Named;
+
+import org.apache.isis.applib.id.LogicalType;
+import org.apache.isis.commons.internal.base._Strings;
+import org.apache.isis.core.metamodel.facetapi.FacetHolder;
+import org.apache.isis.core.metamodel.facets.object.logicaltype.LogicalTypeFacet;
+import org.apache.isis.core.metamodel.facets.object.logicaltype.LogicalTypeFacetAbstract;
+
+public class LogicalTypeFacetForNamedAnnotation
+extends LogicalTypeFacetAbstract {
+
+ public static Optional<LogicalTypeFacet> create(
+ final Optional<Named> namedIfAny,
+ final Class<?> correspondingClass,
+ final FacetHolder holder) {
+
+ return namedIfAny
+ .map(annot->annot.value())
+ .filter(_Strings::isNotEmpty)
+ .map(logicalTypeName -> new LogicalTypeFacetForNamedAnnotation(
+ LogicalType.eager(correspondingClass, logicalTypeName),
+ holder));
+ }
+
+ private LogicalTypeFacetForNamedAnnotation(
+ final LogicalType logicalType,
+ final FacetHolder holder) {
+ super(logicalType, holder, Precedence.DEFAULT);
+ }
+}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/logicaltype/LogicalTypeFacet.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/logicaltype/LogicalTypeFacet.java
index 3c615f49c5..e5b7f0827b 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/logicaltype/LogicalTypeFacet.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/logicaltype/LogicalTypeFacet.java
@@ -18,15 +18,15 @@
*/
package org.apache.isis.core.metamodel.facets.object.logicaltype;
-import org.apache.isis.applib.annotation.DomainObject;
-import org.apache.isis.applib.annotation.LogicalTypeName;
+import javax.inject.Named;
+
import org.apache.isis.applib.id.LogicalType;
import org.apache.isis.core.metamodel.facetapi.Facet;
/**
- * Corresponds to the value of {@link DomainObject#logicalTypeName()} or
- * {@link LogicalTypeName#value()}, that specifies the <i>logical type name</i>
- * of a domain object.
+ * Corresponds to the value of {@link Named#value()},
+ * that specifies the <i>logical type name</i>
+ * of a domain object or interface or abstract type.
* <p>
* The <i>logical type name</i> must be unique, among non-abstract classes, but
* is allowed to be shared with interfaces and abstract classes.
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/progmodels/dflt/ProgrammingModelFacetsJava11.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/progmodels/dflt/ProgrammingModelFacetsJava11.java
index a8dc92b7eb..e0fb1088af 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/progmodels/dflt/ProgrammingModelFacetsJava11.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/progmodels/dflt/ProgrammingModelFacetsJava11.java
@@ -45,7 +45,7 @@ import org.apache.isis.core.metamodel.facets.object.bookmarkpolicy.bookmarkable.
import org.apache.isis.core.metamodel.facets.object.callbacks.CallbackFacetFactory;
import org.apache.isis.core.metamodel.facets.object.choices.enums.ChoicesFacetFromEnumFactory;
import org.apache.isis.core.metamodel.facets.object.domainobject.DomainObjectAnnotationFacetFactory;
-import org.apache.isis.core.metamodel.facets.object.domainobject.logicaltype.LogicalTypeFacetForLogicalTypeNameAnnotationFacetFactory;
+import org.apache.isis.core.metamodel.facets.object.domainobject.logicaltype.LogicalTypeFacetForAnnotationFacetFactory;
import org.apache.isis.core.metamodel.facets.object.domainobjectlayout.DomainObjectLayoutFacetFactory;
import org.apache.isis.core.metamodel.facets.object.domainservice.annotation.DomainServiceFacetAnnotationFactory;
import org.apache.isis.core.metamodel.facets.object.domainservicelayout.DomainServiceLayoutFacetFactory;
@@ -191,7 +191,7 @@ extends ProgrammingModelAbstract {
addFactory(FacetProcessingOrder.E1_MEMBER_MODELLING, new ViewModelFacetFactory(mmc, postConstructMethodsCache));
addFactory(FacetProcessingOrder.E1_MEMBER_MODELLING, new JaxbFacetFactory(mmc));
- addFactory(FacetProcessingOrder.E1_MEMBER_MODELLING, new LogicalTypeFacetForLogicalTypeNameAnnotationFacetFactory(mmc, postConstructMethodsCache));
+ addFactory(FacetProcessingOrder.E1_MEMBER_MODELLING, new LogicalTypeFacetForAnnotationFacetFactory(mmc, postConstructMethodsCache));
// must come after RecreatableObjectFacetFactory
addFactory(FacetProcessingOrder.E1_MEMBER_MODELLING, new DomainObjectAnnotationFacetFactory(mmc, postConstructMethodsCache));
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/SpecificationLoader.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/SpecificationLoader.java
index fe2f4c7e9e..78a784d09c 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/SpecificationLoader.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/SpecificationLoader.java
@@ -21,10 +21,11 @@ package org.apache.isis.core.metamodel.specloader;
import java.util.Optional;
import java.util.function.Consumer;
+import javax.inject.Named;
+
import org.springframework.lang.Nullable;
import org.apache.isis.applib.Identifier;
-import org.apache.isis.applib.annotation.LogicalTypeName;
import org.apache.isis.applib.id.LogicalType;
import org.apache.isis.applib.services.bookmark.Bookmark;
import org.apache.isis.commons.collections.Can;
@@ -150,7 +151,7 @@ public interface SpecificationLoader {
/**
* The lookup may also fail (result with null), when there is no concrete or abstract resolvable type,
- * that matches given {@code logicalTypeName}. Eg. when using {@link LogicalTypeName} on an interface,
+ * that matches given {@code logicalTypeName}. Eg. when using {@link Named} on an interface,
* while overriding with a different logical-type-name on the concrete or abstract type.
*/
@Nullable
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/_infra/values/ValueHolder.java b/examples/demo/domain/src/main/java/demoapp/dom/_infra/values/ValueHolder.java
index 78341ec0b4..dfc653ed06 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/_infra/values/ValueHolder.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/_infra/values/ValueHolder.java
@@ -18,9 +18,9 @@
*/
package demoapp.dom._infra.values;
-import org.apache.isis.applib.annotation.LogicalTypeName;
+import javax.inject.Named;
-@LogicalTypeName("demo.ValueHolder")
+@Named("demo.ValueHolder")
public interface ValueHolder<T> {
T value();
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/other/mixins/CountHolder.java b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/other/mixins/CountHolder.java
index 08df39ec6e..19eac8b43d 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/other/mixins/CountHolder.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/other/mixins/CountHolder.java
@@ -18,9 +18,9 @@
*/
package demoapp.dom.domain.objects.other.mixins;
-import org.apache.isis.applib.annotation.LogicalTypeName;
+import javax.inject.Named;
-@LogicalTypeName("demo.CountHolder")
+@Named("demo.CountHolder")
//tag::class[]
public interface CountHolder {
int getCount();
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/blobs/holder/IsisBlobHolder.java b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/blobs/holder/IsisBlobHolder.java
index ede24fa96a..5e530fe2f8 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/blobs/holder/IsisBlobHolder.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/blobs/holder/IsisBlobHolder.java
@@ -18,10 +18,11 @@
*/
package demoapp.dom.types.isis.blobs.holder;
-import org.apache.isis.applib.annotation.LogicalTypeName;
+import javax.inject.Named;
+
import org.apache.isis.applib.value.Blob;
-@LogicalTypeName("demo.IsisBlobHolder")
+@Named("demo.IsisBlobHolder")
//tag::class[]
public interface IsisBlobHolder {
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/clobs/holder/IsisClobHolder.java b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/clobs/holder/IsisClobHolder.java
index f9340a8f97..07051fde2b 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/clobs/holder/IsisClobHolder.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/clobs/holder/IsisClobHolder.java
@@ -18,10 +18,11 @@
*/
package demoapp.dom.types.isis.clobs.holder;
-import org.apache.isis.applib.annotation.LogicalTypeName;
+import javax.inject.Named;
+
import org.apache.isis.applib.value.Clob;
-@LogicalTypeName("demo.IsisClobHolder")
+@Named("demo.IsisClobHolder")
//tag::class[]
public interface IsisClobHolder {
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/localresourcepaths/holder/IsisLocalResourcePathHolder.java b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/localresourcepaths/holder/IsisLocalResourcePathHolder.java
index cece8207d4..292cae0e06 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/localresourcepaths/holder/IsisLocalResourcePathHolder.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/localresourcepaths/holder/IsisLocalResourcePathHolder.java
@@ -18,10 +18,11 @@
*/
package demoapp.dom.types.isis.localresourcepaths.holder;
-import org.apache.isis.applib.annotation.LogicalTypeName;
+import javax.inject.Named;
+
import org.apache.isis.applib.value.LocalResourcePath;
-@LogicalTypeName("demo.IsisLocalResourcePathHolder")
+@Named("demo.IsisLocalResourcePathHolder")
//tag::class[]
public interface IsisLocalResourcePathHolder {
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/markups/holder/IsisMarkupHolder.java b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/markups/holder/IsisMarkupHolder.java
index b1b145665c..f038114da6 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/markups/holder/IsisMarkupHolder.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/markups/holder/IsisMarkupHolder.java
@@ -18,10 +18,11 @@
*/
package demoapp.dom.types.isis.markups.holder;
-import org.apache.isis.applib.annotation.LogicalTypeName;
+import javax.inject.Named;
+
import org.apache.isis.applib.value.Markup;
-@LogicalTypeName("demo.IsisMarkupHolder")
+@Named("demo.IsisMarkupHolder")
//tag::class[]
public interface IsisMarkupHolder {
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/passwords/holder/IsisPasswordHolder.java b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/passwords/holder/IsisPasswordHolder.java
index 37d41cc6ed..f4c6320d4e 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/isis/passwords/holder/IsisPasswordHolder.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/isis/passwords/holder/IsisPasswordHolder.java
@@ -18,10 +18,11 @@
*/
package demoapp.dom.types.isis.passwords.holder;
-import org.apache.isis.applib.annotation.LogicalTypeName;
+import javax.inject.Named;
+
import org.apache.isis.applib.value.Password;
-@LogicalTypeName("demo.IsisPasswordHolder")
+@Named("demo.IsisPasswordHolder")
//tag::class[]
public interface IsisPasswordHolder {
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/asciidocs/holder/IsisAsciiDocHolder.java b/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/asciidocs/holder/IsisAsciiDocHolder.java
index 2b6407a52f..54b926a2fa 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/asciidocs/holder/IsisAsciiDocHolder.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/asciidocs/holder/IsisAsciiDocHolder.java
@@ -18,10 +18,11 @@
*/
package demoapp.dom.types.isisext.asciidocs.holder;
-import org.apache.isis.applib.annotation.LogicalTypeName;
+import javax.inject.Named;
+
import org.apache.isis.valuetypes.asciidoc.applib.value.AsciiDoc;
-@LogicalTypeName("demo.IsisAsciiDocHolder")
+@Named("demo.IsisAsciiDocHolder")
//tag::class[]
public interface IsisAsciiDocHolder {
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/cal/holder/IsisCalendarEventHolder.java b/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/cal/holder/IsisCalendarEventHolder.java
index 8d7c567a80..c32b7284b3 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/cal/holder/IsisCalendarEventHolder.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/cal/holder/IsisCalendarEventHolder.java
@@ -18,10 +18,11 @@
*/
package demoapp.dom.types.isisext.cal.holder;
-import org.apache.isis.applib.annotation.LogicalTypeName;
+import javax.inject.Named;
+
import org.apache.isis.extensions.fullcalendar.applib.value.CalendarEvent;
-@LogicalTypeName("demo.IsisCalendarEventHolder")
+@Named("demo.IsisCalendarEventHolder")
//tag::class[]
public interface IsisCalendarEventHolder {
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/markdowns/holder/IsisMarkdownHolder.java b/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/markdowns/holder/IsisMarkdownHolder.java
index 04415638a4..5b9b2dcafd 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/markdowns/holder/IsisMarkdownHolder.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/markdowns/holder/IsisMarkdownHolder.java
@@ -18,10 +18,11 @@
*/
package demoapp.dom.types.isisext.markdowns.holder;
-import org.apache.isis.applib.annotation.LogicalTypeName;
+import javax.inject.Named;
+
import org.apache.isis.valuetypes.markdown.applib.value.Markdown;
-@LogicalTypeName("demo.IsisMarkdownHolder")
+@Named("demo.IsisMarkdownHolder")
//tag::class[]
public interface IsisMarkdownHolder {
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/javaawt/images/holder/JavaAwtBufferedImageHolder.java b/examples/demo/domain/src/main/java/demoapp/dom/types/javaawt/images/holder/JavaAwtBufferedImageHolder.java
index e3c1a06aca..fabd3adbc0 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/javaawt/images/holder/JavaAwtBufferedImageHolder.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/javaawt/images/holder/JavaAwtBufferedImageHolder.java
@@ -20,9 +20,9 @@ package demoapp.dom.types.javaawt.images.holder;
import java.awt.image.BufferedImage;
-import org.apache.isis.applib.annotation.LogicalTypeName;
+import javax.inject.Named;
-@LogicalTypeName("demo.JavaAwtBufferedImageHolder")
+@Named("demo.JavaAwtBufferedImageHolder")
//tag::class[]
public interface JavaAwtBufferedImageHolder {
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/booleans/holder/WrapperBooleanHolder.java b/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/booleans/holder/WrapperBooleanHolder.java
index b74c13635a..f5bb57d4e6 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/booleans/holder/WrapperBooleanHolder.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/booleans/holder/WrapperBooleanHolder.java
@@ -18,9 +18,9 @@
*/
package demoapp.dom.types.javalang.booleans.holder;
-import org.apache.isis.applib.annotation.LogicalTypeName;
+import javax.inject.Named;
-@LogicalTypeName("demo.WrapperBooleanHolder")
+@Named("demo.WrapperBooleanHolder")
//tag::class[]
public interface WrapperBooleanHolder {
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/bytes/holder/WrapperByteHolder.java b/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/bytes/holder/WrapperByteHolder.java
index c8fc00cba4..e742108e61 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/bytes/holder/WrapperByteHolder.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/bytes/holder/WrapperByteHolder.java
@@ -18,9 +18,9 @@
*/
package demoapp.dom.types.javalang.bytes.holder;
-import org.apache.isis.applib.annotation.LogicalTypeName;
+import javax.inject.Named;
-@LogicalTypeName("demo.WrapperByteHolder")
+@Named("demo.WrapperByteHolder")
//tag::class[]
public interface WrapperByteHolder {
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/characters/holder/WrapperCharacterHolder.java b/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/characters/holder/WrapperCharacterHolder.java
index 6011e7c76b..af7d920df3 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/characters/holder/WrapperCharacterHolder.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/characters/holder/WrapperCharacterHolder.java
@@ -18,9 +18,9 @@
*/
package demoapp.dom.types.javalang.characters.holder;
-import org.apache.isis.applib.annotation.LogicalTypeName;
+import javax.inject.Named;
-@LogicalTypeName("demo.WrapperCharacterHolder")
+@Named("demo.WrapperCharacterHolder")
//tag::class[]
public interface WrapperCharacterHolder {
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/doubles/holder/WrapperDoubleHolder.java b/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/doubles/holder/WrapperDoubleHolder.java
index 53f4a37fbd..8ba13b4e56 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/doubles/holder/WrapperDoubleHolder.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/doubles/holder/WrapperDoubleHolder.java
@@ -18,9 +18,9 @@
*/
package demoapp.dom.types.javalang.doubles.holder;
-import org.apache.isis.applib.annotation.LogicalTypeName;
+import javax.inject.Named;
-@LogicalTypeName("demo.WrapperDoubleHolder")
+@Named("demo.WrapperDoubleHolder")
//tag::class[]
public interface WrapperDoubleHolder {
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/floats/holder/WrapperFloatHolder.java b/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/floats/holder/WrapperFloatHolder.java
index df2734fb1b..14f1c1979a 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/floats/holder/WrapperFloatHolder.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/floats/holder/WrapperFloatHolder.java
@@ -18,9 +18,9 @@
*/
package demoapp.dom.types.javalang.floats.holder;
-import org.apache.isis.applib.annotation.LogicalTypeName;
+import javax.inject.Named;
-@LogicalTypeName("demo.WrapperFloatHolder")
+@Named("demo.WrapperFloatHolder")
//tag::class[]
public interface WrapperFloatHolder {
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/integers/holder/WrapperIntegerHolder.java b/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/integers/holder/WrapperIntegerHolder.java
index 85473ff873..ef121655ce 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/integers/holder/WrapperIntegerHolder.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/integers/holder/WrapperIntegerHolder.java
@@ -18,9 +18,9 @@
*/
package demoapp.dom.types.javalang.integers.holder;
-import org.apache.isis.applib.annotation.LogicalTypeName;
+import javax.inject.Named;
-@LogicalTypeName("demo.WrapperIntegerHolder")
+@Named("demo.WrapperIntegerHolder")
//tag::class[]
public interface WrapperIntegerHolder {
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/longs/holder/WrapperLongHolder.java b/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/longs/holder/WrapperLongHolder.java
index 47255b875e..5ef90747ad 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/longs/holder/WrapperLongHolder.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/longs/holder/WrapperLongHolder.java
@@ -18,9 +18,9 @@
*/
package demoapp.dom.types.javalang.longs.holder;
-import org.apache.isis.applib.annotation.LogicalTypeName;
+import javax.inject.Named;
-@LogicalTypeName("demo.WrapperLongHolder")
+@Named("demo.WrapperLongHolder")
//tag::class[]
public interface WrapperLongHolder {
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/shorts/holder/WrapperShortHolder.java b/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/shorts/holder/WrapperShortHolder.java
index 257c0beb7e..793454d4e9 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/shorts/holder/WrapperShortHolder.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/shorts/holder/WrapperShortHolder.java
@@ -18,9 +18,9 @@
*/
package demoapp.dom.types.javalang.shorts.holder;
-import org.apache.isis.applib.annotation.LogicalTypeName;
+import javax.inject.Named;
-@LogicalTypeName("demo.WrapperShortHolder")
+@Named("demo.WrapperShortHolder")
//tag::class[]
public interface WrapperShortHolder {
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/strings/holder/JavaLangStringHolder.java b/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/strings/holder/JavaLangStringHolder.java
index d5ef0d87b4..9239581fa9 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/strings/holder/JavaLangStringHolder.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/javalang/strings/holder/JavaLangStringHolder.java
@@ -18,9 +18,9 @@
*/
package demoapp.dom.types.javalang.strings.holder;
-import org.apache.isis.applib.annotation.LogicalTypeName;
+import javax.inject.Named;
-@LogicalTypeName("demo.JavaLangStringHolder")
+@Named("demo.JavaLangStringHolder")
//tag::class[]
public interface JavaLangStringHolder {
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/javamath/bigdecimals/holder/JavaMathBigDecimalHolder.java b/examples/demo/domain/src/main/java/demoapp/dom/types/javamath/bigdecimals/holder/JavaMathBigDecimalHolder.java
index 3675cd5aab..8ce1dcc86b 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/javamath/bigdecimals/holder/JavaMathBigDecimalHolder.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/javamath/bigdecimals/holder/JavaMathBigDecimalHolder.java
@@ -18,9 +18,9 @@
*/
package demoapp.dom.types.javamath.bigdecimals.holder;
-import org.apache.isis.applib.annotation.LogicalTypeName;
+import javax.inject.Named;
-@LogicalTypeName("demo.JavaMathBigDecimalHolder")
+@Named("demo.JavaMathBigDecimalHolder")
//tag::class[]
public interface JavaMathBigDecimalHolder {
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/javamath/bigintegers/holder/JavaMathBigIntegerHolder.java b/examples/demo/domain/src/main/java/demoapp/dom/types/javamath/bigintegers/holder/JavaMathBigIntegerHolder.java
index fe385f3909..9d077feff9 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/javamath/bigintegers/holder/JavaMathBigIntegerHolder.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/javamath/bigintegers/holder/JavaMathBigIntegerHolder.java
@@ -18,9 +18,9 @@
*/
package demoapp.dom.types.javamath.bigintegers.holder;
-import org.apache.isis.applib.annotation.LogicalTypeName;
+import javax.inject.Named;
-@LogicalTypeName("demo.JavaMathBigIntegerHolder")
+@Named("demo.JavaMathBigIntegerHolder")
//tag::class[]
public interface JavaMathBigIntegerHolder {
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/javanet/urls/holder/JavaNetUrlHolder.java b/examples/demo/domain/src/main/java/demoapp/dom/types/javanet/urls/holder/JavaNetUrlHolder.java
index a80b71992f..dc5859cc2e 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/javanet/urls/holder/JavaNetUrlHolder.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/javanet/urls/holder/JavaNetUrlHolder.java
@@ -18,9 +18,9 @@
*/
package demoapp.dom.types.javanet.urls.holder;
-import org.apache.isis.applib.annotation.LogicalTypeName;
+import javax.inject.Named;
-@LogicalTypeName("demo.JavaNetUrlHolder")
+@Named("demo.JavaNetUrlHolder")
//tag::class[]
public interface JavaNetUrlHolder {
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/javasql/javasqldate/holder/JavaSqlDateHolder.java b/examples/demo/domain/src/main/java/demoapp/dom/types/javasql/javasqldate/holder/JavaSqlDateHolder.java
index 85fee85d71..a03f707b0b 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/javasql/javasqldate/holder/JavaSqlDateHolder.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/javasql/javasqldate/holder/JavaSqlDateHolder.java
@@ -18,9 +18,9 @@
*/
package demoapp.dom.types.javasql.javasqldate.holder;
-import org.apache.isis.applib.annotation.LogicalTypeName;
+import javax.inject.Named;
-@LogicalTypeName("demo.JavaSqlDateHolder")
+@Named("demo.JavaSqlDateHolder")
//tag::class[]
public interface JavaSqlDateHolder {
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/javasql/javasqltimestamp/holder/JavaSqlTimestampHolder.java b/examples/demo/domain/src/main/java/demoapp/dom/types/javasql/javasqltimestamp/holder/JavaSqlTimestampHolder.java
index 0912ee6b12..1f171f3295 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/javasql/javasqltimestamp/holder/JavaSqlTimestampHolder.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/javasql/javasqltimestamp/holder/JavaSqlTimestampHolder.java
@@ -18,9 +18,9 @@
*/
package demoapp.dom.types.javasql.javasqltimestamp.holder;
-import org.apache.isis.applib.annotation.LogicalTypeName;
+import javax.inject.Named;
-@LogicalTypeName("demo.JavaSqlTimestampHolder")
+@Named("demo.JavaSqlTimestampHolder")
//tag::class[]
public interface JavaSqlTimestampHolder {
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/javatime/javatimelocaldate/holder/JavaTimeLocalDateHolder.java b/examples/demo/domain/src/main/java/demoapp/dom/types/javatime/javatimelocaldate/holder/JavaTimeLocalDateHolder.java
index a5de7716a4..eb568c597f 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/javatime/javatimelocaldate/holder/JavaTimeLocalDateHolder.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/javatime/javatimelocaldate/holder/JavaTimeLocalDateHolder.java
@@ -18,9 +18,9 @@
*/
package demoapp.dom.types.javatime.javatimelocaldate.holder;
-import org.apache.isis.applib.annotation.LogicalTypeName;
+import javax.inject.Named;
-@LogicalTypeName("demo.JavaTimeLocalDateHolder")
+@Named("demo.JavaTimeLocalDateHolder")
//tag::class[]
public interface JavaTimeLocalDateHolder {
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/javatime/javatimelocaldatetime/holder/JavaTimeLocalDateTimeHolder.java b/examples/demo/domain/src/main/java/demoapp/dom/types/javatime/javatimelocaldatetime/holder/JavaTimeLocalDateTimeHolder.java
index 31baf745d3..fa44a50dd3 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/javatime/javatimelocaldatetime/holder/JavaTimeLocalDateTimeHolder.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/javatime/javatimelocaldatetime/holder/JavaTimeLocalDateTimeHolder.java
@@ -18,9 +18,9 @@
*/
package demoapp.dom.types.javatime.javatimelocaldatetime.holder;
-import org.apache.isis.applib.annotation.LogicalTypeName;
+import javax.inject.Named;
-@LogicalTypeName("demo.JavaTimeLocalDateTimeHolder")
+@Named("demo.JavaTimeLocalDateTimeHolder")
//tag::class[]
public interface JavaTimeLocalDateTimeHolder {
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/javatime/javatimelocaltime/holder/JavaTimeLocalTimeHolder.java b/examples/demo/domain/src/main/java/demoapp/dom/types/javatime/javatimelocaltime/holder/JavaTimeLocalTimeHolder.java
index fd922ee0a9..ecef868645 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/javatime/javatimelocaltime/holder/JavaTimeLocalTimeHolder.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/javatime/javatimelocaltime/holder/JavaTimeLocalTimeHolder.java
@@ -18,9 +18,9 @@
*/
package demoapp.dom.types.javatime.javatimelocaltime.holder;
-import org.apache.isis.applib.annotation.LogicalTypeName;
+import javax.inject.Named;
-@LogicalTypeName("demo.JavaTimeLocalTimeHolder")
+@Named("demo.JavaTimeLocalTimeHolder")
//tag::class[]
public interface JavaTimeLocalTimeHolder {
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/javatime/javatimeoffsetdatetime/holder/JavaTimeOffsetDateTimeHolder.java b/examples/demo/domain/src/main/java/demoapp/dom/types/javatime/javatimeoffsetdatetime/holder/JavaTimeOffsetDateTimeHolder.java
index 2503ddcc51..10a5e7abb5 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/javatime/javatimeoffsetdatetime/holder/JavaTimeOffsetDateTimeHolder.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/javatime/javatimeoffsetdatetime/holder/JavaTimeOffsetDateTimeHolder.java
@@ -18,9 +18,9 @@
*/
package demoapp.dom.types.javatime.javatimeoffsetdatetime.holder;
-import org.apache.isis.applib.annotation.LogicalTypeName;
+import javax.inject.Named;
-@LogicalTypeName("demo.JavaTimeOffsetDateTimeHolder")
+@Named("demo.JavaTimeOffsetDateTimeHolder")
//tag::class[]
public interface JavaTimeOffsetDateTimeHolder {
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/javatime/javatimeoffsettime/holder/JavaTimeOffsetTimeHolder.java b/examples/demo/domain/src/main/java/demoapp/dom/types/javatime/javatimeoffsettime/holder/JavaTimeOffsetTimeHolder.java
index 9ba49ea49c..d8a4f0112f 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/javatime/javatimeoffsettime/holder/JavaTimeOffsetTimeHolder.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/javatime/javatimeoffsettime/holder/JavaTimeOffsetTimeHolder.java
@@ -18,9 +18,9 @@
*/
package demoapp.dom.types.javatime.javatimeoffsettime.holder;
-import org.apache.isis.applib.annotation.LogicalTypeName;
+import javax.inject.Named;
-@LogicalTypeName("demo.JavaTimeOffsetTimeHolder")
+@Named("demo.JavaTimeOffsetTimeHolder")
//tag::class[]
public interface JavaTimeOffsetTimeHolder {
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/javatime/javatimezoneddatetime/holder/JavaTimeZonedDateTimeHolder.java b/examples/demo/domain/src/main/java/demoapp/dom/types/javatime/javatimezoneddatetime/holder/JavaTimeZonedDateTimeHolder.java
index 6f3fdd4b7d..42ac354f2c 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/javatime/javatimezoneddatetime/holder/JavaTimeZonedDateTimeHolder.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/javatime/javatimezoneddatetime/holder/JavaTimeZonedDateTimeHolder.java
@@ -18,9 +18,9 @@
*/
package demoapp.dom.types.javatime.javatimezoneddatetime.holder;
-import org.apache.isis.applib.annotation.LogicalTypeName;
+import javax.inject.Named;
-@LogicalTypeName("demo.JavaTimeZonedDateTimeHolder")
+@Named("demo.JavaTimeZonedDateTimeHolder")
//tag::class[]
public interface JavaTimeZonedDateTimeHolder {
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/javautil/javautildate/holder/JavaUtilDateHolder.java b/examples/demo/domain/src/main/java/demoapp/dom/types/javautil/javautildate/holder/JavaUtilDateHolder.java
index 6fc2ac322e..f75dbc505a 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/javautil/javautildate/holder/JavaUtilDateHolder.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/javautil/javautildate/holder/JavaUtilDateHolder.java
@@ -18,9 +18,9 @@
*/
package demoapp.dom.types.javautil.javautildate.holder;
-import org.apache.isis.applib.annotation.LogicalTypeName;
+import javax.inject.Named;
-@LogicalTypeName("demo.JavaUtilDateHolder")
+@Named("demo.JavaUtilDateHolder")
//tag::class[]
public interface JavaUtilDateHolder {
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/javautil/uuids/holder/JavaUtilUuidHolder.java b/examples/demo/domain/src/main/java/demoapp/dom/types/javautil/uuids/holder/JavaUtilUuidHolder.java
index feb616bdfa..50e2c9a04a 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/javautil/uuids/holder/JavaUtilUuidHolder.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/javautil/uuids/holder/JavaUtilUuidHolder.java
@@ -18,9 +18,9 @@
*/
package demoapp.dom.types.javautil.uuids.holder;
-import org.apache.isis.applib.annotation.LogicalTypeName;
+import javax.inject.Named;
-@LogicalTypeName("demo.JavaUtilUuidHolder")
+@Named("demo.JavaUtilUuidHolder")
//tag::class[]
public interface JavaUtilUuidHolder {
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/jodatime/jodadatetime/holder/JodaDateTimeHolder.java b/examples/demo/domain/src/main/java/demoapp/dom/types/jodatime/jodadatetime/holder/JodaDateTimeHolder.java
index 549b213b45..8519a71e58 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/jodatime/jodadatetime/holder/JodaDateTimeHolder.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/jodatime/jodadatetime/holder/JodaDateTimeHolder.java
@@ -18,9 +18,9 @@
*/
package demoapp.dom.types.jodatime.jodadatetime.holder;
-import org.apache.isis.applib.annotation.LogicalTypeName;
+import javax.inject.Named;
-@LogicalTypeName("demo.JodaDateTimeHolder")
+@Named("demo.JodaDateTimeHolder")
//tag::class[]
public interface JodaDateTimeHolder {
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/jodatime/jodalocaldate/holder/JodaLocalDateHolder.java b/examples/demo/domain/src/main/java/demoapp/dom/types/jodatime/jodalocaldate/holder/JodaLocalDateHolder.java
index bde3c85f1f..4a86031be3 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/jodatime/jodalocaldate/holder/JodaLocalDateHolder.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/jodatime/jodalocaldate/holder/JodaLocalDateHolder.java
@@ -18,9 +18,9 @@
*/
package demoapp.dom.types.jodatime.jodalocaldate.holder;
-import org.apache.isis.applib.annotation.LogicalTypeName;
+import javax.inject.Named;
-@LogicalTypeName("demo.JodaLocalDateHolder")
+@Named("demo.JodaLocalDateHolder")
//tag::class[]
public interface JodaLocalDateHolder {
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/jodatime/jodalocaldatetime/holder/JodaLocalDateTimeHolder.java b/examples/demo/domain/src/main/java/demoapp/dom/types/jodatime/jodalocaldatetime/holder/JodaLocalDateTimeHolder.java
index c7741b318e..78dfb413e5 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/jodatime/jodalocaldatetime/holder/JodaLocalDateTimeHolder.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/jodatime/jodalocaldatetime/holder/JodaLocalDateTimeHolder.java
@@ -18,9 +18,9 @@
*/
package demoapp.dom.types.jodatime.jodalocaldatetime.holder;
-import org.apache.isis.applib.annotation.LogicalTypeName;
+import javax.inject.Named;
-@LogicalTypeName("demo.JodaLocalDateTimeHolder")
+@Named("demo.JodaLocalDateTimeHolder")
//tag::class[]
public interface JodaLocalDateTimeHolder {
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/jodatime/jodalocaltime/holder/JodaLocalTimeHolder.java b/examples/demo/domain/src/main/java/demoapp/dom/types/jodatime/jodalocaltime/holder/JodaLocalTimeHolder.java
index bf3ceda63c..627399006e 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/jodatime/jodalocaltime/holder/JodaLocalTimeHolder.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/jodatime/jodalocaltime/holder/JodaLocalTimeHolder.java
@@ -18,9 +18,9 @@
*/
package demoapp.dom.types.jodatime.jodalocaltime.holder;
-import org.apache.isis.applib.annotation.LogicalTypeName;
+import javax.inject.Named;
-@LogicalTypeName("demo.JodaLocalTimeHolder")
+@Named("demo.JodaLocalTimeHolder")
//tag::class[]
public interface JodaLocalTimeHolder {
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/booleans/holder/PrimitiveBooleanHolder.java b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/booleans/holder/PrimitiveBooleanHolder.java
index 28c9609965..fff8dee8de 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/booleans/holder/PrimitiveBooleanHolder.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/booleans/holder/PrimitiveBooleanHolder.java
@@ -18,11 +18,12 @@
*/
package demoapp.dom.types.primitive.booleans.holder;
-import org.apache.isis.applib.annotation.LogicalTypeName;
+import javax.inject.Named;
+
import org.apache.isis.applib.annotation.Property;
import org.apache.isis.applib.annotation.PropertyLayout;
-@LogicalTypeName("demo.PrimitiveBooleanHolder")
+@Named("demo.PrimitiveBooleanHolder")
//tag::class[]
public interface PrimitiveBooleanHolder {
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/bytes/holder/PrimitiveByteHolder.java b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/bytes/holder/PrimitiveByteHolder.java
index 04a922cae6..20065a03d7 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/bytes/holder/PrimitiveByteHolder.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/bytes/holder/PrimitiveByteHolder.java
@@ -18,9 +18,9 @@
*/
package demoapp.dom.types.primitive.bytes.holder;
-import org.apache.isis.applib.annotation.LogicalTypeName;
+import javax.inject.Named;
-@LogicalTypeName("demo.PrimitiveByteHolder")
+@Named("demo.PrimitiveByteHolder")
//tag::class[]
public interface PrimitiveByteHolder {
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/chars/holder/PrimitiveCharHolder.java b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/chars/holder/PrimitiveCharHolder.java
index 692da423f9..64841e76be 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/chars/holder/PrimitiveCharHolder.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/chars/holder/PrimitiveCharHolder.java
@@ -18,9 +18,9 @@
*/
package demoapp.dom.types.primitive.chars.holder;
-import org.apache.isis.applib.annotation.LogicalTypeName;
+import javax.inject.Named;
-@LogicalTypeName("demo.PrimitiveCharHolder")
+@Named("demo.PrimitiveCharHolder")
//tag::class[]
public interface PrimitiveCharHolder {
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/doubles/holder/PrimitiveDoubleHolder.java b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/doubles/holder/PrimitiveDoubleHolder.java
index 2379b50dfe..7de5894403 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/doubles/holder/PrimitiveDoubleHolder.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/doubles/holder/PrimitiveDoubleHolder.java
@@ -18,9 +18,9 @@
*/
package demoapp.dom.types.primitive.doubles.holder;
-import org.apache.isis.applib.annotation.LogicalTypeName;
+import javax.inject.Named;
-@LogicalTypeName("demo.PrimitiveDoubleHolder")
+@Named("demo.PrimitiveDoubleHolder")
//tag::class[]
public interface PrimitiveDoubleHolder {
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/floats/holder/PrimitiveFloatHolder.java b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/floats/holder/PrimitiveFloatHolder.java
index f3a03db281..ee95abcfe8 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/floats/holder/PrimitiveFloatHolder.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/floats/holder/PrimitiveFloatHolder.java
@@ -18,9 +18,9 @@
*/
package demoapp.dom.types.primitive.floats.holder;
-import org.apache.isis.applib.annotation.LogicalTypeName;
+import javax.inject.Named;
-@LogicalTypeName("demo.PrimitiveFloatHolder")
+@Named("demo.PrimitiveFloatHolder")
//tag::class[]
public interface PrimitiveFloatHolder {
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/ints/holder/PrimitiveIntHolder.java b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/ints/holder/PrimitiveIntHolder.java
index f6aad7795c..475ce72575 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/ints/holder/PrimitiveIntHolder.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/ints/holder/PrimitiveIntHolder.java
@@ -18,9 +18,9 @@
*/
package demoapp.dom.types.primitive.ints.holder;
-import org.apache.isis.applib.annotation.LogicalTypeName;
+import javax.inject.Named;
-@LogicalTypeName("demo.PrimitiveIntHolder")
+@Named("demo.PrimitiveIntHolder")
//tag::class[]
public interface PrimitiveIntHolder {
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/longs/holder/PrimitiveLongHolder.java b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/longs/holder/PrimitiveLongHolder.java
index d295627831..2b04da6ae2 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/longs/holder/PrimitiveLongHolder.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/longs/holder/PrimitiveLongHolder.java
@@ -18,9 +18,9 @@
*/
package demoapp.dom.types.primitive.longs.holder;
-import org.apache.isis.applib.annotation.LogicalTypeName;
+import javax.inject.Named;
-@LogicalTypeName("demo.PrimitiveLongHolder")
+@Named("demo.PrimitiveLongHolder")
//tag::class[]
public interface PrimitiveLongHolder {
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/shorts/holder/PrimitiveShortHolder.java b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/shorts/holder/PrimitiveShortHolder.java
index fa3f271175..77fee11203 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/shorts/holder/PrimitiveShortHolder.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/shorts/holder/PrimitiveShortHolder.java
@@ -18,9 +18,9 @@
*/
package demoapp.dom.types.primitive.shorts.holder;
-import org.apache.isis.applib.annotation.LogicalTypeName;
+import javax.inject.Named;
-@LogicalTypeName("demo.PrimitiveShortHolder")
+@Named("demo.PrimitiveShortHolder")
//tag::class[]
public interface PrimitiveShortHolder {
diff --git a/regressiontests/stable/src/main/java/org/apache/isis/testdomain/model/good/ProperInterface.java b/regressiontests/stable/src/main/java/org/apache/isis/testdomain/model/good/ProperInterface.java
index 6e7ebc45cd..e80d14b2b7 100644
--- a/regressiontests/stable/src/main/java/org/apache/isis/testdomain/model/good/ProperInterface.java
+++ b/regressiontests/stable/src/main/java/org/apache/isis/testdomain/model/good/ProperInterface.java
@@ -18,10 +18,11 @@
*/
package org.apache.isis.testdomain.model.good;
-import org.apache.isis.applib.annotation.LogicalTypeName;
+import javax.inject.Named;
+
import org.apache.isis.applib.annotation.Property;
-@LogicalTypeName("isis.testdomain.ProperInterface")
+@Named("isis.testdomain.ProperInterface")
public interface ProperInterface {
// -- read/write exemplar
diff --git a/regressiontests/stable/src/main/java/org/apache/isis/testdomain/model/good/ProperInterface2.java b/regressiontests/stable/src/main/java/org/apache/isis/testdomain/model/good/ProperInterface2.java
index 5d15fd5ce6..d9d03bf0c5 100644
--- a/regressiontests/stable/src/main/java/org/apache/isis/testdomain/model/good/ProperInterface2.java
+++ b/regressiontests/stable/src/main/java/org/apache/isis/testdomain/model/good/ProperInterface2.java
@@ -18,10 +18,11 @@
*/
package org.apache.isis.testdomain.model.good;
-import org.apache.isis.applib.annotation.LogicalTypeName;
+import javax.inject.Named;
+
import org.apache.isis.applib.annotation.Property;
-@LogicalTypeName("isis.testdomain.ProperInterface2")
+@Named("isis.testdomain.ProperInterface2")
public interface ProperInterface2
extends ProperInterface {