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 ae094307a3 ISIS-3123: migrate Markdown
ae094307a3 is described below

commit ae094307a3d771b43714e7b4cabd3ea969d52014
Author: Andi Huber <[email protected]>
AuthorDate: Thu Sep 29 12:55:24 2022 +0200

    ISIS-3123: migrate Markdown
---
 examples/demo/domain/pom.xml                       |  4 ++
 .../isisext/markdowns/IsisMarkdowns-common.adoc    |  7 +++-
 .../markdowns/IsisMarkdowns-description.adoc       | 10 ++---
 .../dom/types/isisext/markdowns/IsisMarkdowns.java | 13 +++---
 .../isisext/markdowns/IsisMarkdowns.layout.xml     |  2 +
 .../markdowns/holder/IsisMarkdownHolder.java       | 19 ++++-----
 .../markdowns/holder/IsisMarkdownHolder2.java      | 14 +++----
 .../holder/IsisMarkdownHolder_actionReturning.java |  5 +--
 ...isMarkdownHolder_actionReturningCollection.java | 10 ++---
 .../holder/IsisMarkdownHolder_mixinProperty.java   |  5 +--
 ...kdownHolder_updateReadOnlyOptionalProperty.java |  6 +--
 ...updateReadOnlyOptionalPropertyWithChoices.java} | 28 +++++++++----
 .../IsisMarkdownHolder_updateReadOnlyProperty.java |  6 +--
 ...wnHolder_updateReadOnlyPropertyWithChoices.java | 17 ++++----
 .../markdowns/jdo/IsisMarkdownJdo-description.adoc |  6 ++-
 .../isisext/markdowns/jdo/IsisMarkdownJdo.java     | 41 +++++++-----------
 .../markdowns/jdo/IsisMarkdownJdoEntities.java     |  9 ++--
 .../markdowns/jpa/IsisMarkdownJpa-description.adoc | 15 +++----
 .../isisext/markdowns/jpa/IsisMarkdownJpa.java     | 49 ++++++++--------------
 .../markdowns/jpa/IsisMarkdownJpaEntities.java     |  9 ++--
 .../markdowns/persistence/IsisMarkdownEntity.java  |  6 +--
 .../persistence/IsisMarkdownEntity.layout.xml      |  2 +
 .../markdowns/persistence/IsisMarkdownSeeding.java |  7 ++--
 .../markdowns/samples/IsisMarkdownSamples.java     | 18 +++-----
 .../markdowns/vm/IsisMarkdownVm-description.adoc   |  8 ++--
 .../types/isisext/markdowns/vm/IsisMarkdownVm.java | 26 +++++-------
 .../isisext/markdowns/vm/IsisMarkdownVm.layout.xml |  2 +
 .../demoshowcases/value/ValueShowCase.java         |  5 +++
 28 files changed, 171 insertions(+), 178 deletions(-)

diff --git a/examples/demo/domain/pom.xml b/examples/demo/domain/pom.xml
index 92c3d0fbad..7e0440caef 100644
--- a/examples/demo/domain/pom.xml
+++ b/examples/demo/domain/pom.xml
@@ -88,6 +88,10 @@
                        <groupId>org.apache.isis.valuetypes</groupId>
                        
<artifactId>isis-valuetypes-asciidoc-metamodel</artifactId>
                </dependency>
+               <dependency>
+                       <groupId>org.apache.isis.valuetypes</groupId>
+                       
<artifactId>isis-valuetypes-markdown-metamodel</artifactId>
+               </dependency>
 
 
                <!-- JDO specific -->
diff --git 
a/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/markdowns/IsisMarkdowns-common.adoc
 
b/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/markdowns/IsisMarkdowns-common.adoc
index 95a55216b0..d835cf93fa 100644
--- 
a/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/markdowns/IsisMarkdowns-common.adoc
+++ 
b/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/markdowns/IsisMarkdowns-common.adoc
@@ -1,8 +1,10 @@
 :Notice: 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 ag [...]
 
+// // This file was GENERATED by the showcase generator (tooling). Do NOT edit!
+
 == Mixin actions
 
-A number of mixin actions contribute through the `IsisMarkdownHolder` 
interface, demonstrate the use of `Markdown` as a parameter and as a return 
type.
+A number of mixin actions contribute through the `IsisMarkdownHolder` 
interface, demonstrate the use of 
`org.apache.isis.valuetypes.markdown.applib.value.Markdown` as a parameter and 
as a return type.
 For example:
 
 * the `updateReadOnlyProperty` action is:
@@ -48,7 +50,7 @@ 
include::holder/IsisMarkdownHolder_mixinProperty.java[tags=class]
 
 == @PropertyLayout(labelPosition=...)
 
-There is also an extended interface, `IsisMarkdownHolder2`, with default 
methods demonstrating the use of label positions:
+To demonstrate support for label positions using 
`@PropertyLayout(labelPosition=...)`, the entity and view model objects both 
implement the extended `IsisMarkdownHolder2` interface:
 
 [source,java]
 ----
@@ -63,3 +65,4 @@ include::holder/IsisMarkdownHolder2.java[tags=class]
 +
 CAUTION: currently not supported
 <.> Hide the label completely.
+
diff --git 
a/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/markdowns/IsisMarkdowns-description.adoc
 
b/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/markdowns/IsisMarkdowns-description.adoc
index 53034a612b..dbdaae27e6 100644
--- 
a/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/markdowns/IsisMarkdowns-description.adoc
+++ 
b/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/markdowns/IsisMarkdowns-description.adoc
@@ -1,13 +1,13 @@
 :Notice: 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 ag [...]
 
-The framework has built-in support for rendering HTML written using Markdown, 
using the `Markdown` data type.
+// // This file was GENERATED by the showcase generator (tooling). Do NOT edit!
 
-NOTE: This is an Apache Isis specific data type.
+The framework has built-in support for the 
`org.apache.isis.valuetypes.markdown.applib.value.Markdown` data type.
 
 From here you can:
 
-* navigate to an entity that uses the `Markdown` datatype
-* open a view model that uses the `Markdown` datatype
+* navigate to an entity that uses the 
`org.apache.isis.valuetypes.markdown.applib.value.Markdown` datatype
+* open a view model that uses the 
`org.apache.isis.valuetypes.markdown.applib.value.Markdown` datatype
 
 Some properties on these domain objects are mandatory, some optional.
 
@@ -28,4 +28,4 @@ include::holder/IsisMarkdownHolder.java[tags=class]
 
 The `IsisMarkdownHolder2` interface is used to demonstrate support for label 
positions using `@PropertyLayout(labelPosition=...)`.
 
-Further details, along with the effect of this annotation, can be seen on the 
entity and view model object pages.
\ No newline at end of file
+Further details, along with the effect of this annotation, can be seen on the 
entity and view model object pages.
diff --git 
a/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/markdowns/IsisMarkdowns.java
 
b/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/markdowns/IsisMarkdowns.java
index 1f5605635c..370ce29fbc 100644
--- 
a/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/markdowns/IsisMarkdowns.java
+++ 
b/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/markdowns/IsisMarkdowns.java
@@ -38,7 +38,6 @@ import org.apache.isis.applib.annotation.Nature;
 import org.apache.isis.applib.annotation.ObjectSupport;
 import org.apache.isis.applib.annotation.PromptStyle;
 import org.apache.isis.applib.annotation.SemanticsOf;
-import org.apache.isis.valuetypes.markdown.applib.value.Markdown;
 
 import demoapp.dom._infra.asciidocdesc.HasAsciiDocDescription;
 import demoapp.dom._infra.values.ValueHolderRepository;
@@ -46,6 +45,7 @@ import demoapp.dom.types.Samples;
 import demoapp.dom.types.isisext.markdowns.persistence.IsisMarkdownEntity;
 import demoapp.dom.types.isisext.markdowns.vm.IsisMarkdownVm;
 
+/* This file was GENERATED by the showcase generator (tooling). Do NOT edit! */
 @XmlRootElement(name = "Demo")
 @XmlType
 @XmlAccessorType(XmlAccessType.FIELD)
@@ -55,16 +55,15 @@ import 
demoapp.dom.types.isisext.markdowns.vm.IsisMarkdownVm;
 public class IsisMarkdowns implements HasAsciiDocDescription {
 
     @ObjectSupport public String title() {
-        return "Markdown data type";
+        return "org.apache.isis.valuetypes.markdown.applib.value.Markdown data 
type";
     }
 
     @Action(semantics = SemanticsOf.SAFE)
     @ActionLayout(promptStyle = PromptStyle.DIALOG_MODAL)
-    public IsisMarkdownVm openViewModel(final Markdown initialValue) {
+    public IsisMarkdownVm openViewModel(final 
org.apache.isis.valuetypes.markdown.applib.value.Markdown initialValue) {
         return new IsisMarkdownVm(initialValue);
     }
-
-    @MemberSupport public Markdown default0OpenViewModel() {
+    @MemberSupport public 
org.apache.isis.valuetypes.markdown.applib.value.Markdown 
default0OpenViewModel() {
         return samples.single();
     }
 
@@ -75,10 +74,10 @@ public class IsisMarkdowns implements 
HasAsciiDocDescription {
 
     @Inject
     @XmlTransient
-    ValueHolderRepository<Markdown, ? extends IsisMarkdownEntity> entities;
+    
ValueHolderRepository<org.apache.isis.valuetypes.markdown.applib.value.Markdown,
 ? extends IsisMarkdownEntity> entities;
 
     @Inject
     @XmlTransient
-    Samples<Markdown> samples;
+    Samples<org.apache.isis.valuetypes.markdown.applib.value.Markdown> samples;
 
 }
diff --git 
a/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/markdowns/IsisMarkdowns.layout.xml
 
b/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/markdowns/IsisMarkdowns.layout.xml
index 74e0160a87..247ed17506 100644
--- 
a/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/markdowns/IsisMarkdowns.layout.xml
+++ 
b/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/markdowns/IsisMarkdowns.layout.xml
@@ -15,6 +15,8 @@
         xmlns:cpt="http://isis.apache.org/applib/layout/component";
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";>
 
+       <!-- This file was GENERATED by the showcase generator (tooling). Do 
NOT edit! -->
+
        <bs3:row>
                <bs3:col span="10" unreferencedActions="true">
                        <cpt:domainObject />
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 5b9b2dcafd..19ff9de0e5 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
@@ -20,23 +20,22 @@ package demoapp.dom.types.isisext.markdowns.holder;
 
 import javax.inject.Named;
 
-import org.apache.isis.valuetypes.markdown.applib.value.Markdown;
-
+/* This file was GENERATED by the showcase generator (tooling). Do NOT edit! */
 @Named("demo.IsisMarkdownHolder")
 //tag::class[]
 public interface IsisMarkdownHolder {
 
-    Markdown getReadOnlyProperty();
-    void setReadOnlyProperty(Markdown c);
+    org.apache.isis.valuetypes.markdown.applib.value.Markdown 
getReadOnlyProperty();
+    void 
setReadOnlyProperty(org.apache.isis.valuetypes.markdown.applib.value.Markdown 
c);
 
-    Markdown getReadWriteProperty();
-    void setReadWriteProperty(Markdown c);
+    org.apache.isis.valuetypes.markdown.applib.value.Markdown 
getReadWriteProperty();
+    void 
setReadWriteProperty(org.apache.isis.valuetypes.markdown.applib.value.Markdown 
c);
 
-    Markdown getReadOnlyOptionalProperty();
-    void setReadOnlyOptionalProperty(Markdown c);
+    org.apache.isis.valuetypes.markdown.applib.value.Markdown 
getReadOnlyOptionalProperty();
+    void 
setReadOnlyOptionalProperty(org.apache.isis.valuetypes.markdown.applib.value.Markdown
 c);
 
-    Markdown getReadWriteOptionalProperty();
-    void setReadWriteOptionalProperty(Markdown c);
+    org.apache.isis.valuetypes.markdown.applib.value.Markdown 
getReadWriteOptionalProperty();
+    void 
setReadWriteOptionalProperty(org.apache.isis.valuetypes.markdown.applib.value.Markdown
 c);
 
 }
 //end::class[]
diff --git 
a/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/markdowns/holder/IsisMarkdownHolder2.java
 
b/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/markdowns/holder/IsisMarkdownHolder2.java
index d68960336f..bef08c9ab1 100644
--- 
a/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/markdowns/holder/IsisMarkdownHolder2.java
+++ 
b/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/markdowns/holder/IsisMarkdownHolder2.java
@@ -22,10 +22,10 @@ import org.apache.isis.applib.annotation.LabelPosition;
 import org.apache.isis.applib.annotation.Property;
 import org.apache.isis.applib.annotation.PropertyLayout;
 import org.apache.isis.applib.annotation.Where;
-import org.apache.isis.valuetypes.markdown.applib.value.Markdown;
 
+/* This file was GENERATED by the showcase generator (tooling). Do NOT edit! */
 //tag::class[]
-public interface IsisMarkdownHolder2 extends 
demoapp.dom.types.isisext.markdowns.holder.IsisMarkdownHolder {
+public interface IsisMarkdownHolder2 extends IsisMarkdownHolder {
 
     @Property                                               // <.>
     @PropertyLayout(
@@ -33,8 +33,8 @@ public interface IsisMarkdownHolder2 extends 
demoapp.dom.types.isisext.markdowns
         describedAs =
             "@PropertyLayout(labelPosition=LEFT)",
         hidden = Where.ALL_TABLES,
-        fieldSetId = "label-positions", sequence = "1")  // <.>
-    default Markdown getReadOnlyPropertyDerivedLabelPositionLeft() {
+        fieldSetId = "label-positions", sequence = "1")     // <.>
+    default org.apache.isis.valuetypes.markdown.applib.value.Markdown 
getReadOnlyPropertyDerivedLabelPositionLeft() {
         return getReadOnlyProperty();
     }
 
@@ -45,7 +45,7 @@ public interface IsisMarkdownHolder2 extends 
demoapp.dom.types.isisext.markdowns
             "@PropertyLayout(labelPosition=TOP)",
         hidden = Where.ALL_TABLES,
         fieldSetId = "label-positions", sequence = "2")
-    default Markdown getReadOnlyPropertyDerivedLabelPositionTop() {
+    default org.apache.isis.valuetypes.markdown.applib.value.Markdown 
getReadOnlyPropertyDerivedLabelPositionTop() {
         return getReadOnlyProperty();
     }
 
@@ -56,7 +56,7 @@ public interface IsisMarkdownHolder2 extends 
demoapp.dom.types.isisext.markdowns
             "@PropertyLayout(labelPosition=RIGHT)",
         hidden = Where.ALL_TABLES,
         fieldSetId = "label-positions", sequence = "3")
-    default Markdown getReadOnlyPropertyDerivedLabelPositionRight() {
+    default org.apache.isis.valuetypes.markdown.applib.value.Markdown 
getReadOnlyPropertyDerivedLabelPositionRight() {
         return getReadOnlyProperty();
     }
 
@@ -67,7 +67,7 @@ public interface IsisMarkdownHolder2 extends 
demoapp.dom.types.isisext.markdowns
             "@PropertyLayout(labelPosition=NONE)",
         hidden = Where.ALL_TABLES,
         fieldSetId = "label-positions", sequence = "4")
-    default Markdown getReadOnlyPropertyDerivedLabelPositionNone() {
+    default org.apache.isis.valuetypes.markdown.applib.value.Markdown 
getReadOnlyPropertyDerivedLabelPositionNone() {
         return getReadOnlyProperty();
     }
 
diff --git 
a/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/markdowns/holder/IsisMarkdownHolder_actionReturning.java
 
b/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/markdowns/holder/IsisMarkdownHolder_actionReturning.java
index c207351964..b8591db1f5 100644
--- 
a/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/markdowns/holder/IsisMarkdownHolder_actionReturning.java
+++ 
b/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/markdowns/holder/IsisMarkdownHolder_actionReturning.java
@@ -20,11 +20,10 @@ package demoapp.dom.types.isisext.markdowns.holder;
 
 import org.apache.isis.applib.annotation.Action;
 import org.apache.isis.applib.annotation.SemanticsOf;
-import org.apache.isis.valuetypes.markdown.applib.value.Markdown;
 
 import lombok.RequiredArgsConstructor;
 
-
+/* This file was GENERATED by the showcase generator (tooling). Do NOT edit! */
 //tag::class[]
 @Action(semantics = SemanticsOf.SAFE)
 @RequiredArgsConstructor
@@ -32,7 +31,7 @@ public class IsisMarkdownHolder_actionReturning {
 
     private final IsisMarkdownHolder holder;
 
-    public Markdown act() {
+    public org.apache.isis.valuetypes.markdown.applib.value.Markdown act() {
         return holder.getReadOnlyProperty();
     }
 
diff --git 
a/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/markdowns/holder/IsisMarkdownHolder_actionReturningCollection.java
 
b/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/markdowns/holder/IsisMarkdownHolder_actionReturningCollection.java
index 005c4fc40b..7002e89de2 100644
--- 
a/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/markdowns/holder/IsisMarkdownHolder_actionReturningCollection.java
+++ 
b/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/markdowns/holder/IsisMarkdownHolder_actionReturningCollection.java
@@ -25,13 +25,11 @@ import javax.inject.Inject;
 
 import org.apache.isis.applib.annotation.Action;
 import org.apache.isis.applib.annotation.SemanticsOf;
-import org.apache.isis.valuetypes.markdown.applib.value.Markdown;
-
-import lombok.RequiredArgsConstructor;
 
 import demoapp.dom.types.Samples;
+import lombok.RequiredArgsConstructor;
 
-
+/* This file was GENERATED by the showcase generator (tooling). Do NOT edit! */
 //tag::class[]
 @Action(semantics = SemanticsOf.SAFE)
 @RequiredArgsConstructor
@@ -39,13 +37,13 @@ public class IsisMarkdownHolder_actionReturningCollection {
 
     private final IsisMarkdownHolder holder;
 
-    public Collection<Markdown> act() {
+    public 
Collection<org.apache.isis.valuetypes.markdown.applib.value.Markdown> act() {
         return samples.stream()
                 .collect(Collectors.toList());
     }
 
     @Inject
-    Samples<Markdown> samples;
+    Samples<org.apache.isis.valuetypes.markdown.applib.value.Markdown> samples;
 
 }
 //end::class[]
diff --git 
a/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/markdowns/holder/IsisMarkdownHolder_mixinProperty.java
 
b/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/markdowns/holder/IsisMarkdownHolder_mixinProperty.java
index dbe46257c0..be05d2301b 100644
--- 
a/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/markdowns/holder/IsisMarkdownHolder_mixinProperty.java
+++ 
b/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/markdowns/holder/IsisMarkdownHolder_mixinProperty.java
@@ -21,11 +21,10 @@ package demoapp.dom.types.isisext.markdowns.holder;
 import org.apache.isis.applib.annotation.Property;
 import org.apache.isis.applib.annotation.PropertyLayout;
 import org.apache.isis.applib.annotation.Where;
-import org.apache.isis.valuetypes.markdown.applib.value.Markdown;
 
 import lombok.RequiredArgsConstructor;
 
-
+/* This file was GENERATED by the showcase generator (tooling). Do NOT edit! */
 //tag::class[]
 @Property()
 @PropertyLayout(hidden = Where.ALL_TABLES, fieldSetId = "contributed", 
sequence = "1")
@@ -34,7 +33,7 @@ public class IsisMarkdownHolder_mixinProperty {
 
     private final IsisMarkdownHolder holder;
 
-    public Markdown prop() {
+    public org.apache.isis.valuetypes.markdown.applib.value.Markdown prop() {
         return holder.getReadOnlyProperty();
     }
 
diff --git 
a/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/markdowns/holder/IsisMarkdownHolder_updateReadOnlyOptionalProperty.java
 
b/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/markdowns/holder/IsisMarkdownHolder_updateReadOnlyOptionalProperty.java
index 85e159f96f..600d10bd71 100644
--- 
a/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/markdowns/holder/IsisMarkdownHolder_updateReadOnlyOptionalProperty.java
+++ 
b/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/markdowns/holder/IsisMarkdownHolder_updateReadOnlyOptionalProperty.java
@@ -25,10 +25,10 @@ import org.apache.isis.applib.annotation.Optionality;
 import org.apache.isis.applib.annotation.Parameter;
 import org.apache.isis.applib.annotation.PromptStyle;
 import org.apache.isis.applib.annotation.SemanticsOf;
-import org.apache.isis.valuetypes.markdown.applib.value.Markdown;
 
 import lombok.RequiredArgsConstructor;
 
+/* This file was GENERATED by the showcase generator (tooling). Do NOT edit! */
 //tag::class[]
 @Action(
         semantics = SemanticsOf.IDEMPOTENT
@@ -45,13 +45,13 @@ public class 
IsisMarkdownHolder_updateReadOnlyOptionalProperty {
 
     @MemberSupport public IsisMarkdownHolder act(
             @Parameter(optionality = Optionality.OPTIONAL)              // <.>
-            final Markdown newValue
+            final org.apache.isis.valuetypes.markdown.applib.value.Markdown 
newValue
     ) {
         holder.setReadOnlyOptionalProperty(newValue);
         return holder;
     }
 
-    @MemberSupport public Markdown default0Act() {
+    @MemberSupport public 
org.apache.isis.valuetypes.markdown.applib.value.Markdown default0Act() {
         return holder.getReadOnlyOptionalProperty();
     }
 
diff --git 
a/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/markdowns/holder/IsisMarkdownHolder_updateReadOnlyOptionalProperty.java
 
b/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/markdowns/holder/IsisMarkdownHolder_updateReadOnlyOptionalPropertyWithChoices.java
similarity index 66%
copy from 
examples/demo/domain/src/main/java/demoapp/dom/types/isisext/markdowns/holder/IsisMarkdownHolder_updateReadOnlyOptionalProperty.java
copy to 
examples/demo/domain/src/main/java/demoapp/dom/types/isisext/markdowns/holder/IsisMarkdownHolder_updateReadOnlyOptionalPropertyWithChoices.java
index 85e159f96f..84c646adc1 100644
--- 
a/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/markdowns/holder/IsisMarkdownHolder_updateReadOnlyOptionalProperty.java
+++ 
b/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/markdowns/holder/IsisMarkdownHolder_updateReadOnlyOptionalPropertyWithChoices.java
@@ -18,6 +18,11 @@
  */
 package demoapp.dom.types.isisext.markdowns.holder;
 
+import java.util.List;
+import java.util.stream.Collectors;
+
+import javax.inject.Inject;
+
 import org.apache.isis.applib.annotation.Action;
 import org.apache.isis.applib.annotation.ActionLayout;
 import org.apache.isis.applib.annotation.MemberSupport;
@@ -25,35 +30,42 @@ import org.apache.isis.applib.annotation.Optionality;
 import org.apache.isis.applib.annotation.Parameter;
 import org.apache.isis.applib.annotation.PromptStyle;
 import org.apache.isis.applib.annotation.SemanticsOf;
-import org.apache.isis.valuetypes.markdown.applib.value.Markdown;
 
+import demoapp.dom.types.Samples;
 import lombok.RequiredArgsConstructor;
 
+/* This file was GENERATED by the showcase generator (tooling). Do NOT edit! */
 //tag::class[]
 @Action(
         semantics = SemanticsOf.IDEMPOTENT
 )
 @ActionLayout(
         promptStyle = PromptStyle.INLINE
-        , named = "Update"
+        , named = "Update with choices"
         , associateWith = "readOnlyOptionalProperty"
-        , sequence = "1")
+        , sequence = "2")
 @RequiredArgsConstructor
-public class IsisMarkdownHolder_updateReadOnlyOptionalProperty {
+public class IsisMarkdownHolder_updateReadOnlyOptionalPropertyWithChoices {
 
     private final IsisMarkdownHolder holder;
 
     @MemberSupport public IsisMarkdownHolder act(
-            @Parameter(optionality = Optionality.OPTIONAL)              // <.>
-            final Markdown newValue
-    ) {
+            @Parameter(optionality = Optionality.OPTIONAL)
+            final org.apache.isis.valuetypes.markdown.applib.value.Markdown 
newValue) {
         holder.setReadOnlyOptionalProperty(newValue);
         return holder;
     }
 
-    @MemberSupport public Markdown default0Act() {
+    @MemberSupport public 
org.apache.isis.valuetypes.markdown.applib.value.Markdown default0Act() {
         return holder.getReadOnlyOptionalProperty();
     }
 
+    @MemberSupport public 
List<org.apache.isis.valuetypes.markdown.applib.value.Markdown> choices0Act() {
+        return samples.stream()
+                .collect(Collectors.toList());
+    }
+
+    @Inject
+    Samples<org.apache.isis.valuetypes.markdown.applib.value.Markdown> samples;
 }
 //end::class[]
diff --git 
a/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/markdowns/holder/IsisMarkdownHolder_updateReadOnlyProperty.java
 
b/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/markdowns/holder/IsisMarkdownHolder_updateReadOnlyProperty.java
index 3cbd22eb5b..3dca588b7d 100644
--- 
a/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/markdowns/holder/IsisMarkdownHolder_updateReadOnlyProperty.java
+++ 
b/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/markdowns/holder/IsisMarkdownHolder_updateReadOnlyProperty.java
@@ -23,10 +23,10 @@ import org.apache.isis.applib.annotation.ActionLayout;
 import org.apache.isis.applib.annotation.MemberSupport;
 import org.apache.isis.applib.annotation.PromptStyle;
 import org.apache.isis.applib.annotation.SemanticsOf;
-import org.apache.isis.valuetypes.markdown.applib.value.Markdown;
 
 import lombok.RequiredArgsConstructor;
 
+/* This file was GENERATED by the showcase generator (tooling). Do NOT edit! */
 //tag::class[]
 @Action(
         semantics = SemanticsOf.IDEMPOTENT
@@ -41,12 +41,12 @@ public class IsisMarkdownHolder_updateReadOnlyProperty {
 
     private final IsisMarkdownHolder holder;
 
-    @MemberSupport public IsisMarkdownHolder act(final Markdown newValue) {
+    @MemberSupport public IsisMarkdownHolder act(final 
org.apache.isis.valuetypes.markdown.applib.value.Markdown newValue) {
         holder.setReadOnlyProperty(newValue);
         return holder;
     }
 
-    @MemberSupport public Markdown default0Act() {
+    @MemberSupport public 
org.apache.isis.valuetypes.markdown.applib.value.Markdown default0Act() {
         return holder.getReadOnlyProperty();
     }
 
diff --git 
a/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/markdowns/holder/IsisMarkdownHolder_updateReadOnlyPropertyWithChoices.java
 
b/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/markdowns/holder/IsisMarkdownHolder_updateReadOnlyPropertyWithChoices.java
index e6674e67ce..1a874b6655 100644
--- 
a/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/markdowns/holder/IsisMarkdownHolder_updateReadOnlyPropertyWithChoices.java
+++ 
b/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/markdowns/holder/IsisMarkdownHolder_updateReadOnlyPropertyWithChoices.java
@@ -21,17 +21,18 @@ package demoapp.dom.types.isisext.markdowns.holder;
 import java.util.List;
 import java.util.stream.Collectors;
 
+import javax.inject.Inject;
+
 import org.apache.isis.applib.annotation.Action;
 import org.apache.isis.applib.annotation.ActionLayout;
 import org.apache.isis.applib.annotation.MemberSupport;
 import org.apache.isis.applib.annotation.PromptStyle;
 import org.apache.isis.applib.annotation.SemanticsOf;
-import org.apache.isis.valuetypes.markdown.applib.value.Markdown;
-
-import lombok.RequiredArgsConstructor;
 
 import demoapp.dom.types.Samples;
+import lombok.RequiredArgsConstructor;
 
+/* This file was GENERATED by the showcase generator (tooling). Do NOT edit! */
 //tag::class[]
 @Action(
         semantics = SemanticsOf.IDEMPOTENT
@@ -46,20 +47,22 @@ public class 
IsisMarkdownHolder_updateReadOnlyPropertyWithChoices {
 
     private final IsisMarkdownHolder holder;
 
-    @MemberSupport public IsisMarkdownHolder act(final Markdown newValue) {
+    @MemberSupport public IsisMarkdownHolder act(final 
org.apache.isis.valuetypes.markdown.applib.value.Markdown newValue) {
         holder.setReadOnlyProperty(newValue);
         return holder;
     }
 
-    @MemberSupport public Markdown default0Act() {
+    @MemberSupport public 
org.apache.isis.valuetypes.markdown.applib.value.Markdown default0Act() {
         return holder.getReadOnlyProperty();
     }
 
-    @MemberSupport public List<Markdown> choices0Act() {
+    @MemberSupport public 
List<org.apache.isis.valuetypes.markdown.applib.value.Markdown> choices0Act() {
         return samples.stream()
                 .collect(Collectors.toList());
     }
 
-    Samples<Markdown> samples;
+    @Inject
+    Samples<org.apache.isis.valuetypes.markdown.applib.value.Markdown> samples;
+
 }
 //end::class[]
diff --git 
a/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/markdowns/jdo/IsisMarkdownJdo-description.adoc
 
b/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/markdowns/jdo/IsisMarkdownJdo-description.adoc
index 770a0bec57..4159dc8c9b 100644
--- 
a/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/markdowns/jdo/IsisMarkdownJdo-description.adoc
+++ 
b/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/markdowns/jdo/IsisMarkdownJdo-description.adoc
@@ -1,6 +1,8 @@
 :Notice: 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 ag [...]
 
-JDO supports `Markdown` out-of-the-box, so no special annotations are required.
+// // This file was GENERATED by the showcase generator (tooling). Do NOT edit!
+
+JDO supports `org.apache.isis.valuetypes.markdown.applib.value.Markdown` 
out-of-the-box, so no special annotations are required.
 
 [source,java]
 ----
@@ -15,4 +17,4 @@ Apache Isis assumes properties are mandatory, so no 
additional annotation is req
 <.> optional property as defined to JDO/DataNucleus
 
 
-include::../IsisMarkdowns-common.adoc[]
\ No newline at end of file
+include::../IsisMarkdowns-common.adoc[]
diff --git 
a/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/markdowns/jdo/IsisMarkdownJdo.java
 
b/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/markdowns/jdo/IsisMarkdownJdo.java
index 3b772ba0b7..e8bcd03e64 100644
--- 
a/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/markdowns/jdo/IsisMarkdownJdo.java
+++ 
b/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/markdowns/jdo/IsisMarkdownJdo.java
@@ -18,7 +18,6 @@
  */
 package demoapp.dom.types.isisext.markdowns.jdo;
 
-import javax.inject.Inject;
 import javax.inject.Named;
 import javax.jdo.annotations.Column;
 import javax.jdo.annotations.DatastoreIdentity;
@@ -30,19 +29,17 @@ import org.springframework.context.annotation.Profile;
 
 import org.apache.isis.applib.annotation.DomainObject;
 import org.apache.isis.applib.annotation.Editing;
-import org.apache.isis.applib.annotation.ObjectSupport;
 import org.apache.isis.applib.annotation.Optionality;
 import org.apache.isis.applib.annotation.Property;
 import org.apache.isis.applib.annotation.PropertyLayout;
-import org.apache.isis.applib.annotation.Where;
-import org.apache.isis.applib.services.bookmark.BookmarkService;
-import org.apache.isis.valuetypes.markdown.applib.value.Markdown;
+import org.apache.isis.applib.annotation.Title;
 
 import lombok.Getter;
 import lombok.Setter;
 
 import demoapp.dom.types.isisext.markdowns.persistence.IsisMarkdownEntity;
 
+/* This file was GENERATED by the showcase generator (tooling). Do NOT edit! */
 @Profile("demo-jdo")
 //tag::class[]
 @PersistenceCapable(identityType = IdentityType.DATASTORE, schema = "demo")
@@ -53,41 +50,35 @@ public class IsisMarkdownJdo                                
          // <.>
         extends IsisMarkdownEntity {
 
 //end::class[]
-    public IsisMarkdownJdo(final Markdown initialValue) {
+    public IsisMarkdownJdo(final 
org.apache.isis.valuetypes.markdown.applib.value.Markdown initialValue) {
         this.readOnlyProperty = initialValue;
         this.readWriteProperty = initialValue;
     }
 
 //tag::class[]
-    @ObjectSupport public String title() {
-        return "Markdown JDO entity: " +
-            bookmarkService.bookmarkForElseFail(this).getIdentifier();
-}
-
+    @Title(prepend = 
"org.apache.isis.valuetypes.markdown.applib.value.Markdown JDO entity: ")
     @PropertyLayout(fieldSetId = "read-only-properties", sequence = "1")
-    @Column(allowsNull = "false", jdbcType = "CLOB")                // <.>
+    @Column(allowsNull = "false")                                              
 // <.>
     @Getter @Setter
-    private Markdown readOnlyProperty;
+    private org.apache.isis.valuetypes.markdown.applib.value.Markdown 
readOnlyProperty;
 
-    @Property(editing = Editing.ENABLED)                            // <.>
-    @PropertyLayout(hidden = Where.ALL_TABLES, fieldSetId = 
"editable-properties", sequence = "1")
-    @Column(allowsNull = "false", jdbcType = "CLOB")
+    @Property(editing = Editing.ENABLED)                                       
 // <.>
+    @PropertyLayout(fieldSetId = "editable-properties", sequence = "1")
+    @Column(allowsNull = "false")
     @Getter @Setter
-    private Markdown readWriteProperty;
+    private org.apache.isis.valuetypes.markdown.applib.value.Markdown 
readWriteProperty;
 
-    @Property(optionality = Optionality.OPTIONAL)                   // <.>
-    @PropertyLayout(hidden = Where.ALL_TABLES, fieldSetId = 
"optional-properties", sequence = "1")
-    @Column(allowsNull = "true")                                    // <.>
+    @Property(optionality = Optionality.OPTIONAL)                              
 // <.>
+    @PropertyLayout(fieldSetId = "optional-properties", sequence = "1")
+    @Column(allowsNull = "true")                                               
 // <.>
     @Getter @Setter
-    private Markdown readOnlyOptionalProperty;
+    private org.apache.isis.valuetypes.markdown.applib.value.Markdown 
readOnlyOptionalProperty;
 
     @Property(editing = Editing.ENABLED, optionality = Optionality.OPTIONAL)
-    @PropertyLayout(hidden = Where.ALL_TABLES, fieldSetId = 
"optional-properties", sequence = "2")
+    @PropertyLayout(fieldSetId = "optional-properties", sequence = "2")
     @Column(allowsNull = "true")
     @Getter @Setter
-    private Markdown readWriteOptionalProperty;
+    private org.apache.isis.valuetypes.markdown.applib.value.Markdown 
readWriteOptionalProperty;
 
-    @Inject
-    private transient BookmarkService bookmarkService;
 }
 //end::class[]
diff --git 
a/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/markdowns/jdo/IsisMarkdownJdoEntities.java
 
b/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/markdowns/jdo/IsisMarkdownJdoEntities.java
index b4eb8ac1b7..5cbd91e0dc 100644
--- 
a/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/markdowns/jdo/IsisMarkdownJdoEntities.java
+++ 
b/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/markdowns/jdo/IsisMarkdownJdoEntities.java
@@ -21,22 +21,21 @@ package demoapp.dom.types.isisext.markdowns.jdo;
 import org.springframework.context.annotation.Profile;
 import org.springframework.stereotype.Service;
 
-import org.apache.isis.valuetypes.markdown.applib.value.Markdown;
-
 import demoapp.dom._infra.values.ValueHolderRepository;
 
+/* This file was GENERATED by the showcase generator (tooling). Do NOT edit! */
 @Profile("demo-jdo")
 @Service
 public class IsisMarkdownJdoEntities
-extends ValueHolderRepository<Markdown, IsisMarkdownJdo> {
+extends 
ValueHolderRepository<org.apache.isis.valuetypes.markdown.applib.value.Markdown,
 IsisMarkdownJdo> {
 
     protected IsisMarkdownJdoEntities() {
         super(IsisMarkdownJdo.class);
     }
 
     @Override
-    protected IsisMarkdownJdo newDetachedEntity(Markdown value) {
+    protected IsisMarkdownJdo 
newDetachedEntity(org.apache.isis.valuetypes.markdown.applib.value.Markdown 
value) {
         return new IsisMarkdownJdo(value);
     }
 
-}
\ No newline at end of file
+}
diff --git 
a/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/markdowns/jpa/IsisMarkdownJpa-description.adoc
 
b/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/markdowns/jpa/IsisMarkdownJpa-description.adoc
index e2035ecfaf..50f1693376 100644
--- 
a/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/markdowns/jpa/IsisMarkdownJpa-description.adoc
+++ 
b/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/markdowns/jpa/IsisMarkdownJpa-description.adoc
@@ -1,23 +1,20 @@
 :Notice: 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 ag [...]
 
-[WARNING]
-==== 
-TODO this yet is just a copy from JDO
-====
+// // This file was GENERATED by the showcase generator (tooling). Do NOT edit!
 
-JDO supports `Markdown` out-of-the-box, so no special annotations are required.
+JPA supports `org.apache.isis.valuetypes.markdown.applib.value.Markdown` 
out-of-the-box, so no special annotations are required.
 
 [source,java]
 ----
 include::IsisMarkdownJpa.java[tags=class]
 ----
-<.> a no-arg constructor is introduced by JDO enhancer
-<.> required property as defined to JDO/DataNucleus.
+<.> a no-arg constructor for convenience
+<.> required property as defined to JPA.
 +
 Apache Isis assumes properties are mandatory, so no additional annotation is 
required.
 <.> directly editable property as defined to Apache Isis
 <.> optional property as defined to Apache Isis
-<.> optional property as defined to JDO/DataNucleus
+<.> optional property as defined to JPA
 
 
-include::../IsisMarkdowns-common.adoc[]
\ No newline at end of file
+include::../IsisMarkdowns-common.adoc[]
diff --git 
a/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/markdowns/jpa/IsisMarkdownJpa.java
 
b/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/markdowns/jpa/IsisMarkdownJpa.java
index bbbf110bbc..31bfc6b41e 100644
--- 
a/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/markdowns/jpa/IsisMarkdownJpa.java
+++ 
b/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/markdowns/jpa/IsisMarkdownJpa.java
@@ -18,31 +18,23 @@
  */
 package demoapp.dom.types.isisext.markdowns.jpa;
 
-import javax.inject.Inject;
 import javax.inject.Named;
-import javax.persistence.Basic;
 import javax.persistence.Column;
 import javax.persistence.Entity;
 import javax.persistence.EntityListeners;
-import javax.persistence.FetchType;
 import javax.persistence.GeneratedValue;
 import javax.persistence.Id;
-import javax.persistence.Lob;
 import javax.persistence.Table;
-import javax.persistence.Transient;
 
 import org.springframework.context.annotation.Profile;
 
 import org.apache.isis.applib.annotation.DomainObject;
 import org.apache.isis.applib.annotation.Editing;
-import org.apache.isis.applib.annotation.ObjectSupport;
 import org.apache.isis.applib.annotation.Optionality;
 import org.apache.isis.applib.annotation.Property;
 import org.apache.isis.applib.annotation.PropertyLayout;
-import org.apache.isis.applib.annotation.Where;
-import org.apache.isis.applib.services.bookmark.BookmarkService;
+import org.apache.isis.applib.annotation.Title;
 import org.apache.isis.persistence.jpa.applib.integration.IsisEntityListener;
-import org.apache.isis.valuetypes.markdown.applib.value.Markdown;
 
 import lombok.Getter;
 import lombok.NoArgsConstructor;
@@ -50,6 +42,7 @@ import lombok.Setter;
 
 import demoapp.dom.types.isisext.markdowns.persistence.IsisMarkdownEntity;
 
+/* This file was GENERATED by the showcase generator (tooling). Do NOT edit! */
 @Profile("demo-jpa")
 //tag::class[]
 @Entity
@@ -60,12 +53,12 @@ import 
demoapp.dom.types.isisext.markdowns.persistence.IsisMarkdownEntity;
 @EntityListeners(IsisEntityListener.class)
 @Named("demo.IsisMarkdownEntity")
 @DomainObject
-@NoArgsConstructor
+@NoArgsConstructor                                                             
// <.>
 public class IsisMarkdownJpa
         extends IsisMarkdownEntity {
 
 //end::class[]
-    public IsisMarkdownJpa(final Markdown initialValue) {
+    public IsisMarkdownJpa(final 
org.apache.isis.valuetypes.markdown.applib.value.Markdown initialValue) {
         this.readOnlyProperty = initialValue;
         this.readWriteProperty = initialValue;
     }
@@ -75,35 +68,29 @@ public class IsisMarkdownJpa
     @GeneratedValue
     private Long id;
 
-    @ObjectSupport public String title() {
-        return "Markdown JPA entity: " +
-            bookmarkService.bookmarkForElseFail(this).getIdentifier();
-    }
-
+    @Title(prepend = 
"org.apache.isis.valuetypes.markdown.applib.value.Markdown JPA entity: ")
     @PropertyLayout(fieldSetId = "read-only-properties", sequence = "1")
-    @Column(nullable = false) @Lob @Basic(fetch=FetchType.LAZY)     // <.>
+    @Column(nullable = false)                                                  
 // <.>
     @Getter @Setter
-    private Markdown readOnlyProperty;
+    private org.apache.isis.valuetypes.markdown.applib.value.Markdown 
readOnlyProperty;
 
-    @Property(editing = Editing.ENABLED)                            // <.>
-    @PropertyLayout(hidden = Where.ALL_TABLES, fieldSetId = 
"editable-properties", sequence = "1")
-    @Column(nullable = false) @Lob @Basic(fetch=FetchType.LAZY)
+    @Property(editing = Editing.ENABLED)                                       
 // <.>
+    @PropertyLayout(fieldSetId = "editable-properties", sequence = "1")
+    @Column(nullable = false)
     @Getter @Setter
-    private Markdown readWriteProperty;
+    private org.apache.isis.valuetypes.markdown.applib.value.Markdown 
readWriteProperty;
 
-    @Property(optionality = Optionality.OPTIONAL)                   // <.>
-    @PropertyLayout(hidden = Where.ALL_TABLES, fieldSetId = 
"optional-properties", sequence = "1")
-    @Column(nullable = true) @Lob @Basic(fetch=FetchType.LAZY)      // <.>
+    @Property(optionality = Optionality.OPTIONAL)                              
 // <.>
+    @PropertyLayout(fieldSetId = "optional-properties", sequence = "1")
+    @Column(nullable = true)                                                   
 // <.>
     @Getter @Setter
-    private Markdown readOnlyOptionalProperty;
+    private org.apache.isis.valuetypes.markdown.applib.value.Markdown 
readOnlyOptionalProperty;
 
     @Property(editing = Editing.ENABLED, optionality = Optionality.OPTIONAL)
-    @PropertyLayout(hidden = Where.ALL_TABLES, fieldSetId = 
"optional-properties", sequence = "2")
-    @Column(nullable = true) @Lob @Basic(fetch=FetchType.LAZY)
+    @PropertyLayout(fieldSetId = "optional-properties", sequence = "2")
+    @Column(nullable = true)
     @Getter @Setter
-    private Markdown readWriteOptionalProperty;
+    private org.apache.isis.valuetypes.markdown.applib.value.Markdown 
readWriteOptionalProperty;
 
-    @Inject @Transient
-    private transient BookmarkService bookmarkService;
 }
 //end::class[]
diff --git 
a/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/markdowns/jpa/IsisMarkdownJpaEntities.java
 
b/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/markdowns/jpa/IsisMarkdownJpaEntities.java
index 878b693a4d..983843e11d 100644
--- 
a/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/markdowns/jpa/IsisMarkdownJpaEntities.java
+++ 
b/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/markdowns/jpa/IsisMarkdownJpaEntities.java
@@ -21,22 +21,21 @@ package demoapp.dom.types.isisext.markdowns.jpa;
 import org.springframework.context.annotation.Profile;
 import org.springframework.stereotype.Service;
 
-import org.apache.isis.valuetypes.markdown.applib.value.Markdown;
-
 import demoapp.dom._infra.values.ValueHolderRepository;
 
+/* This file was GENERATED by the showcase generator (tooling). Do NOT edit! */
 @Profile("demo-jpa")
 @Service
 public class IsisMarkdownJpaEntities
-extends ValueHolderRepository<Markdown, IsisMarkdownJpa> {
+extends 
ValueHolderRepository<org.apache.isis.valuetypes.markdown.applib.value.Markdown,
 IsisMarkdownJpa> {
 
     protected IsisMarkdownJpaEntities() {
         super(IsisMarkdownJpa.class);
     }
 
     @Override
-    protected IsisMarkdownJpa newDetachedEntity(Markdown value) {
+    protected IsisMarkdownJpa 
newDetachedEntity(org.apache.isis.valuetypes.markdown.applib.value.Markdown 
value) {
         return new IsisMarkdownJpa(value);
     }
 
-}
\ No newline at end of file
+}
diff --git 
a/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/markdowns/persistence/IsisMarkdownEntity.java
 
b/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/markdowns/persistence/IsisMarkdownEntity.java
index 55f354e05b..70d922ad8b 100644
--- 
a/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/markdowns/persistence/IsisMarkdownEntity.java
+++ 
b/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/markdowns/persistence/IsisMarkdownEntity.java
@@ -21,22 +21,22 @@ package demoapp.dom.types.isisext.markdowns.persistence;
 import javax.inject.Named;
 
 import org.apache.isis.applib.annotation.DomainObject;
-import org.apache.isis.valuetypes.markdown.applib.value.Markdown;
 
 import demoapp.dom._infra.asciidocdesc.HasAsciiDocDescription;
 import demoapp.dom._infra.values.ValueHolder;
 import demoapp.dom.types.isisext.markdowns.holder.IsisMarkdownHolder2;
 
+/* This file was GENERATED by the showcase generator (tooling). Do NOT edit! */
 @Named("demo.IsisMarkdownEntity") // shared permissions with concrete sub class
 @DomainObject
 public abstract class IsisMarkdownEntity
 implements
     HasAsciiDocDescription,
     IsisMarkdownHolder2,
-    ValueHolder<Markdown> {
+    ValueHolder<org.apache.isis.valuetypes.markdown.applib.value.Markdown> {
 
     @Override
-    public Markdown value() {
+    public org.apache.isis.valuetypes.markdown.applib.value.Markdown value() {
         return getReadOnlyProperty();
     }
 
diff --git 
a/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/markdowns/persistence/IsisMarkdownEntity.layout.xml
 
b/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/markdowns/persistence/IsisMarkdownEntity.layout.xml
index fe9ce77481..c58ffa61a0 100644
--- 
a/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/markdowns/persistence/IsisMarkdownEntity.layout.xml
+++ 
b/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/markdowns/persistence/IsisMarkdownEntity.layout.xml
@@ -15,6 +15,8 @@
         xmlns:cpt="http://isis.apache.org/applib/layout/component";
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";>
 
+       <!-- This file was GENERATED by the showcase generator (tooling). Do 
NOT edit! -->
+
        <bs3:row>
                <bs3:col span="10" unreferencedActions="true">
                        <cpt:domainObject />
diff --git 
a/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/markdowns/persistence/IsisMarkdownSeeding.java
 
b/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/markdowns/persistence/IsisMarkdownSeeding.java
index 1c1ae49ae1..7edba673d4 100644
--- 
a/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/markdowns/persistence/IsisMarkdownSeeding.java
+++ 
b/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/markdowns/persistence/IsisMarkdownSeeding.java
@@ -22,18 +22,17 @@ import javax.inject.Inject;
 
 import org.springframework.stereotype.Service;
 
-import org.apache.isis.valuetypes.markdown.applib.value.Markdown;
-
 import demoapp.dom._infra.seed.SeedServiceAbstract;
 import demoapp.dom._infra.values.ValueHolderRepository;
 
+/* This file was GENERATED by the showcase generator (tooling). Do NOT edit! */
 @Service
 public class IsisMarkdownSeeding
 extends SeedServiceAbstract {
 
     @Inject
-    public IsisMarkdownSeeding(ValueHolderRepository<Markdown, ? extends 
IsisMarkdownEntity> entities) {
+    public 
IsisMarkdownSeeding(ValueHolderRepository<org.apache.isis.valuetypes.markdown.applib.value.Markdown,
 ? extends IsisMarkdownEntity> entities) {
         super(entities);
     }
 
-}
\ No newline at end of file
+}
diff --git 
a/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/markdowns/samples/IsisMarkdownSamples.java
 
b/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/markdowns/samples/IsisMarkdownSamples.java
index 0d2481ebaf..2021872f2e 100644
--- 
a/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/markdowns/samples/IsisMarkdownSamples.java
+++ 
b/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/markdowns/samples/IsisMarkdownSamples.java
@@ -20,25 +20,19 @@ package demoapp.dom.types.isisext.markdowns.samples;
 
 import java.util.stream.Stream;
 
-import javax.inject.Inject;
-
 import org.springframework.stereotype.Service;
 
-import org.apache.isis.valuetypes.markdown.applib.value.Markdown;
-
-import demoapp.dom._infra.resources.MarkdownReaderService;
 import demoapp.dom.types.Samples;
 
+/* This file was GENERATED by the showcase generator (tooling). Do NOT edit! */
 @Service
-public class IsisMarkdownSamples implements Samples<Markdown> {
+public class IsisMarkdownSamples implements 
Samples<org.apache.isis.valuetypes.markdown.applib.value.Markdown> {
 
     @Override
-    public Stream<Markdown> stream() {
-        return Stream.of(1,2,3,4,5,6,7)
-                .map(x -> markdownReaderService.readFor(getClass(), "sample" + 
x));
+    public Stream<org.apache.isis.valuetypes.markdown.applib.value.Markdown> 
stream() {
+        return new 
org.apache.isis.valuetypes.markdown.metamodel.semantics.MarkdownValueSemantics()
+                .getExamples()
+                .stream();
     }
 
-    @Inject
-    MarkdownReaderService markdownReaderService;
-
 }
diff --git 
a/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/markdowns/vm/IsisMarkdownVm-description.adoc
 
b/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/markdowns/vm/IsisMarkdownVm-description.adoc
index f9f7ea9c46..3c65c59e45 100644
--- 
a/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/markdowns/vm/IsisMarkdownVm-description.adoc
+++ 
b/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/markdowns/vm/IsisMarkdownVm-description.adoc
@@ -1,6 +1,8 @@
 :Notice: 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 ag [...]
 
-JAXB supports `Markdown` out-of-the-box, so no special annotations are 
required.
+// // This file was GENERATED by the showcase generator (tooling). Do NOT edit!
+
+JAXB supports `org.apache.isis.valuetypes.markdown.applib.value.Markdown` 
out-of-the-box, so no special annotations are required.
 
 [source,java]
 ----
@@ -8,10 +10,10 @@ include::IsisMarkdownVm.java[tags=class]
 ----
 <.> a no-arg constructor is required by JAXB
 <.> required property as defined to JAXB
-//TODO: fix, <.> directly editable property as defined to Apache Isis
+<.> directly editable property as defined to Apache Isis
 <.> optional property as defined to Apache Isis.
 +
 This is the default for JAXB so no additional annotation required.
 
 
-include::../IsisMarkdowns-common.adoc[]
\ No newline at end of file
+include::../IsisMarkdowns-common.adoc[]
diff --git 
a/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/markdowns/vm/IsisMarkdownVm.java
 
b/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/markdowns/vm/IsisMarkdownVm.java
index 360c1c7345..6016ec5ed7 100644
--- 
a/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/markdowns/vm/IsisMarkdownVm.java
+++ 
b/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/markdowns/vm/IsisMarkdownVm.java
@@ -28,12 +28,10 @@ import javax.xml.bind.annotation.XmlType;
 import org.apache.isis.applib.annotation.DomainObject;
 import org.apache.isis.applib.annotation.Editing;
 import org.apache.isis.applib.annotation.Nature;
-import org.apache.isis.applib.annotation.ObjectSupport;
 import org.apache.isis.applib.annotation.Optionality;
 import org.apache.isis.applib.annotation.Property;
 import org.apache.isis.applib.annotation.PropertyLayout;
-import org.apache.isis.applib.annotation.Where;
-import org.apache.isis.valuetypes.markdown.applib.value.Markdown;
+import org.apache.isis.applib.annotation.Title;
 
 import lombok.Getter;
 import lombok.Setter;
@@ -41,6 +39,7 @@ import lombok.Setter;
 import demoapp.dom._infra.asciidocdesc.HasAsciiDocDescription;
 import demoapp.dom.types.isisext.markdowns.holder.IsisMarkdownHolder2;
 
+/* This file was GENERATED by the showcase generator (tooling). Do NOT edit! */
 //tag::class[]
 @XmlRootElement(name = "root")
 @XmlType
@@ -53,36 +52,33 @@ public class IsisMarkdownVm
         implements HasAsciiDocDescription, IsisMarkdownHolder2 {
 
 //end::class[]
-    public IsisMarkdownVm(final Markdown initialValue) {
+    public IsisMarkdownVm(final 
org.apache.isis.valuetypes.markdown.applib.value.Markdown initialValue) {
         this.readOnlyProperty = initialValue;
         this.readWriteProperty = initialValue;
     }
 
 //tag::class[]
-    @ObjectSupport public String title() {
-        return "Markdown view model";
-    }
-
+    @Title(prepend = 
"org.apache.isis.valuetypes.markdown.applib.value.Markdown view model: ")
     @PropertyLayout(fieldSetId = "read-only-properties", sequence = "1")
     @XmlElement(required = true)                                               
 // <.>
     @Getter @Setter
-    private Markdown readOnlyProperty;
+    private org.apache.isis.valuetypes.markdown.applib.value.Markdown 
readOnlyProperty;
 
     @Property(editing = Editing.ENABLED)                                       
 // <.>
-    @PropertyLayout(hidden = Where.EVERYWHERE, fieldSetId = 
"editable-properties", sequence = "1")
+    @PropertyLayout(fieldSetId = "editable-properties", sequence = "1")
     @XmlElement(required = true)
     @Getter @Setter
-    private Markdown readWriteProperty;
+    private org.apache.isis.valuetypes.markdown.applib.value.Markdown 
readWriteProperty;
 
     @Property(optionality = Optionality.OPTIONAL)                              
 // <.>
-    @PropertyLayout(hidden = Where.ALL_TABLES, fieldSetId = 
"optional-properties", sequence = "1")
+    @PropertyLayout(fieldSetId = "optional-properties", sequence = "1")
     @Getter @Setter
-    private Markdown readOnlyOptionalProperty;
+    private org.apache.isis.valuetypes.markdown.applib.value.Markdown 
readOnlyOptionalProperty;
 
     @Property(editing = Editing.ENABLED, optionality = Optionality.OPTIONAL)
-    @PropertyLayout(hidden = Where.ALL_TABLES, fieldSetId = 
"optional-properties", sequence = "2")
+    @PropertyLayout(fieldSetId = "optional-properties", sequence = "2")
     @Getter @Setter
-    private Markdown readWriteOptionalProperty;
+    private org.apache.isis.valuetypes.markdown.applib.value.Markdown 
readWriteOptionalProperty;
 
 }
 //end::class[]
diff --git 
a/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/markdowns/vm/IsisMarkdownVm.layout.xml
 
b/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/markdowns/vm/IsisMarkdownVm.layout.xml
index fe9ce77481..c58ffa61a0 100644
--- 
a/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/markdowns/vm/IsisMarkdownVm.layout.xml
+++ 
b/examples/demo/domain/src/main/java/demoapp/dom/types/isisext/markdowns/vm/IsisMarkdownVm.layout.xml
@@ -15,6 +15,8 @@
         xmlns:cpt="http://isis.apache.org/applib/layout/component";
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";>
 
+       <!-- This file was GENERATED by the showcase generator (tooling). Do 
NOT edit! -->
+
        <bs3:row>
                <bs3:col span="10" unreferencedActions="true">
                        <cpt:domainObject />
diff --git 
a/tooling/metaprog/src/main/java/org/apache/isis/tooling/metaprog/demoshowcases/value/ValueShowCase.java
 
b/tooling/metaprog/src/main/java/org/apache/isis/tooling/metaprog/demoshowcases/value/ValueShowCase.java
index 1f9b9a7a4b..d6d2b53ffb 100644
--- 
a/tooling/metaprog/src/main/java/org/apache/isis/tooling/metaprog/demoshowcases/value/ValueShowCase.java
+++ 
b/tooling/metaprog/src/main/java/org/apache/isis/tooling/metaprog/demoshowcases/value/ValueShowCase.java
@@ -35,6 +35,11 @@ public enum ValueShowCase {
             .javaPackage("demoapp.dom.types.isis.markups")
             .showcaseValueType("org.apache.isis.applib.value.Markup")
             
.showcaseValueSemantics("org.apache.isis.core.metamodel.valuesemantics.MarkupValueSemantics")),
+    MARKDOWN(Config.builder()
+            .showcaseName("IsisMarkdown")
+            .javaPackage("demoapp.dom.types.isisext.markdowns")
+            
.showcaseValueType("org.apache.isis.valuetypes.markdown.applib.value.Markdown")
+            
.showcaseValueSemantics("org.apache.isis.valuetypes.markdown.metamodel.semantics.MarkdownValueSemantics")),
     UUID(Config.builder()
             .showcaseName("JavaUtilUuid")
             .javaPackage("demoapp.dom.types.javautil.uuids")

Reply via email to