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/08/16 11:41:17 UTC

[isis] branch master updated: ISIS-3123: further work on templates

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 2fad8bc7f9 ISIS-3123: further work on templates
2fad8bc7f9 is described below

commit 2fad8bc7f9622e79009e2f649a9cae42aecf981e
Author: andi-huber <ah...@apache.org>
AuthorDate: Tue Aug 16 13:41:08 2022 +0200

    ISIS-3123: further work on templates
---
 ...vaUtilUuidHolder_actionReturningCollection.java |  6 ++----
 ...idHolder_updateReadOnlyPropertyWithChoices.java |  6 ++----
 .../uuids/samples/JavaUtilUuidSamples.java         |  5 ++---
 tooling/metaprog/src/main/resources/Templates.java | 24 ++++++++++-----------
 .../src/main/resources/holder/TemplateHolder.java  | 22 +++++++++----------
 .../src/main/resources/holder/TemplateHolder2.java | 12 +++++------
 .../TemplateHolder_actionReturningCollection.java  | 14 ++++++------
 .../holder/TemplateHolder_mixinProperty.java       |  8 +++----
 ...plateHolder_updateReadOnlyOptionalProperty.java | 12 +++++------
 .../TemplateHolder_updateReadOnlyProperty.java     | 10 ++++-----
 ...teHolder_updateReadOnlyPropertyWithChoices.java | 18 +++++++---------
 .../src/main/resources/jdo/TemplateJdo.java        | 22 +++++++++----------
 .../main/resources/jdo/TemplateJdoEntities.java    | 14 ++++++------
 .../src/main/resources/jpa/TemplateJpa.java        | 24 ++++++++++-----------
 .../main/resources/jpa/TemplateJpaEntities.java    | 14 ++++++------
 .../main/resources/persistence/TemplateEntity.java | 14 ++++++------
 .../resources/persistence/TemplateSeeding.java     |  6 +++---
 .../main/resources/samples/TemplateSamples.java    |  5 ++---
 .../metaprog/src/main/resources/vm/TemplateVm.java | 22 +++++++++----------
 .../value/ValueTypeGenTemplateTest.java            | 25 ++++++++++++----------
 20 files changed, 138 insertions(+), 145 deletions(-)

diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/javautil/uuids/holder/JavaUtilUuidHolder_actionReturningCollection.java b/examples/demo/domain/src/main/java/demoapp/dom/types/javautil/uuids/holder/JavaUtilUuidHolder_actionReturningCollection.java
index 0713a737c4..34b31d7243 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/javautil/uuids/holder/JavaUtilUuidHolder_actionReturningCollection.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/javautil/uuids/holder/JavaUtilUuidHolder_actionReturningCollection.java
@@ -19,7 +19,6 @@
 package demoapp.dom.types.javautil.uuids.holder;
 
 import java.util.Collection;
-import java.util.UUID;
 import java.util.stream.Collectors;
 
 import javax.inject.Inject;
@@ -27,9 +26,8 @@ import javax.inject.Inject;
 import org.apache.isis.applib.annotation.Action;
 import org.apache.isis.applib.annotation.SemanticsOf;
 
-import lombok.RequiredArgsConstructor;
-
 import demoapp.dom.types.Samples;
+import lombok.RequiredArgsConstructor;
 
 
 //tag::class[]
@@ -45,7 +43,7 @@ public class JavaUtilUuidHolder_actionReturningCollection {
     }
 
     @Inject
-    Samples<UUID> samples;
+    Samples<java.util.UUID> samples;
 
 }
 //end::class[]
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/javautil/uuids/holder/JavaUtilUuidHolder_updateReadOnlyPropertyWithChoices.java b/examples/demo/domain/src/main/java/demoapp/dom/types/javautil/uuids/holder/JavaUtilUuidHolder_updateReadOnlyPropertyWithChoices.java
index 8ad9907970..efec5d7c9f 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/javautil/uuids/holder/JavaUtilUuidHolder_updateReadOnlyPropertyWithChoices.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/javautil/uuids/holder/JavaUtilUuidHolder_updateReadOnlyPropertyWithChoices.java
@@ -19,7 +19,6 @@
 package demoapp.dom.types.javautil.uuids.holder;
 
 import java.util.List;
-import java.util.UUID;
 import java.util.stream.Collectors;
 
 import javax.inject.Inject;
@@ -30,9 +29,8 @@ import org.apache.isis.applib.annotation.MemberSupport;
 import org.apache.isis.applib.annotation.PromptStyle;
 import org.apache.isis.applib.annotation.SemanticsOf;
 
-import lombok.RequiredArgsConstructor;
-
 import demoapp.dom.types.Samples;
+import lombok.RequiredArgsConstructor;
 
 //tag::class[]
 @Action(
@@ -63,7 +61,7 @@ public class JavaUtilUuidHolder_updateReadOnlyPropertyWithChoices {
     }
 
     @Inject
-    Samples<UUID> samples;
+    Samples<java.util.UUID> samples;
 
 }
 //end::class[]
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/javautil/uuids/samples/JavaUtilUuidSamples.java b/examples/demo/domain/src/main/java/demoapp/dom/types/javautil/uuids/samples/JavaUtilUuidSamples.java
index 884066dc63..059fab197a 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/javautil/uuids/samples/JavaUtilUuidSamples.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/javautil/uuids/samples/JavaUtilUuidSamples.java
@@ -18,7 +18,6 @@
  */
 package demoapp.dom.types.javautil.uuids.samples;
 
-import java.util.UUID;
 import java.util.stream.Stream;
 
 import org.springframework.stereotype.Service;
@@ -28,10 +27,10 @@ import org.apache.isis.core.metamodel.valuesemantics.UUIDValueSemantics;
 import demoapp.dom.types.Samples;
 
 @Service
-public class JavaUtilUuidSamples implements Samples<UUID> {
+public class JavaUtilUuidSamples implements Samples<java.util.UUID> {
 
     @Override
-    public Stream<UUID> stream() {
+    public Stream<java.util.UUID> stream() {
         return new UUIDValueSemantics()
                 .getExamples()
                 .stream();
diff --git a/tooling/metaprog/src/main/resources/Templates.java b/tooling/metaprog/src/main/resources/Templates.java
index ffb0f42e2a..54103e0347 100644
--- a/tooling/metaprog/src/main/resources/Templates.java
+++ b/tooling/metaprog/src/main/resources/Templates.java
@@ -16,7 +16,7 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package demoapp.dom.types.javautil.uuids;
+package /*${java-package}*/;
 
 import java.util.List;
 
@@ -42,41 +42,41 @@ import org.apache.isis.applib.annotation.SemanticsOf;
 import demoapp.dom._infra.asciidocdesc.HasAsciiDocDescription;
 import demoapp.dom._infra.values.ValueHolderRepository;
 import demoapp.dom.types.Samples;
-import demoapp.dom.types.javautil.uuids.persistence.JavaUtilUuidEntity;
-import demoapp.dom.types.javautil.uuids.vm.JavaUtilUuidVm;
+import demoapp.dom.types.javautil.uuids.persistence./*${showcase-name}*/Entity;
+import demoapp.dom.types.javautil.uuids.vm./*${showcase-name}*/Vm;
 
 @XmlRootElement(name = "Demo")
 @XmlType
 @XmlAccessorType(XmlAccessType.FIELD)
-@Named("demo.JavaUtilUuids")
+@Named("demo./*${showcase-name}*/s")
 @DomainObject(nature=Nature.VIEW_MODEL, editing=Editing.ENABLED)
 //@Log4j2
-public class JavaUtilUuids implements HasAsciiDocDescription {
+public class /*${showcase-name}*/s implements HasAsciiDocDescription {
 
     @ObjectSupport public String title() {
-        return "java.util.UUID data type";
+        return "/*${showcase-type}*/ data type";
     }
 
     @Action(semantics = SemanticsOf.SAFE)
     @ActionLayout(promptStyle = PromptStyle.DIALOG_MODAL)
-    public JavaUtilUuidVm openViewModel(final java.util.UUID initialValue) {
-        return new JavaUtilUuidVm(initialValue);
+    public /*${showcase-name}*/Vm openViewModel(final /*${showcase-type}*/ initialValue) {
+        return new /*${showcase-name}*/Vm(initialValue);
     }
-    @MemberSupport public java.util.UUID default0OpenViewModel() {
+    @MemberSupport public /*${showcase-type}*/ default0OpenViewModel() {
         return samples.single();
     }
 
     @Collection
-    public List<? extends JavaUtilUuidEntity> getEntities() {
+    public List<? extends /*${showcase-name}*/Entity> getEntities() {
         return entities.all();
     }
 
     @Inject
     @XmlTransient
-    ValueHolderRepository<java.util.UUID, ? extends JavaUtilUuidEntity> entities;
+    ValueHolderRepository</*${showcase-type}*/, ? extends /*${showcase-name}*/Entity> entities;
 
     @Inject
     @XmlTransient
-    Samples<java.util.UUID> samples;
+    Samples</*${showcase-type}*/> samples;
 
 }
diff --git a/tooling/metaprog/src/main/resources/holder/TemplateHolder.java b/tooling/metaprog/src/main/resources/holder/TemplateHolder.java
index 50e2c9a04a..43b39f954e 100644
--- a/tooling/metaprog/src/main/resources/holder/TemplateHolder.java
+++ b/tooling/metaprog/src/main/resources/holder/TemplateHolder.java
@@ -16,25 +16,25 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package demoapp.dom.types.javautil.uuids.holder;
+package /*${java-package}*/;
 
 import javax.inject.Named;
 
-@Named("demo.JavaUtilUuidHolder")
+@Named("demo./*${showcase-name}*/Holder")
 //tag::class[]
-public interface JavaUtilUuidHolder {
+public interface /*${showcase-name}*/Holder {
 
-    java.util.UUID getReadOnlyProperty();
-    void setReadOnlyProperty(java.util.UUID c);
+    /*${showcase-type}*/ getReadOnlyProperty();
+    void setReadOnlyProperty(/*${showcase-type}*/ c);
 
-    java.util.UUID getReadWriteProperty();
-    void setReadWriteProperty(java.util.UUID c);
+    /*${showcase-type}*/ getReadWriteProperty();
+    void setReadWriteProperty(/*${showcase-type}*/ c);
 
-    java.util.UUID getReadOnlyOptionalProperty();
-    void setReadOnlyOptionalProperty(java.util.UUID c);
+    /*${showcase-type}*/ getReadOnlyOptionalProperty();
+    void setReadOnlyOptionalProperty(/*${showcase-type}*/ c);
 
-    java.util.UUID getReadWriteOptionalProperty();
-    void setReadWriteOptionalProperty(java.util.UUID c);
+    /*${showcase-type}*/ getReadWriteOptionalProperty();
+    void setReadWriteOptionalProperty(/*${showcase-type}*/ c);
 
 }
 //end::class[]
diff --git a/tooling/metaprog/src/main/resources/holder/TemplateHolder2.java b/tooling/metaprog/src/main/resources/holder/TemplateHolder2.java
index cb72e2dcd5..067f4b8951 100644
--- a/tooling/metaprog/src/main/resources/holder/TemplateHolder2.java
+++ b/tooling/metaprog/src/main/resources/holder/TemplateHolder2.java
@@ -16,7 +16,7 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package demoapp.dom.types.javautil.uuids.holder;
+package /*${java-package}*/;
 
 import org.apache.isis.applib.annotation.LabelPosition;
 import org.apache.isis.applib.annotation.Property;
@@ -24,7 +24,7 @@ import org.apache.isis.applib.annotation.PropertyLayout;
 import org.apache.isis.applib.annotation.Where;
 
 //tag::class[]
-public interface JavaUtilUuidHolder2 extends JavaUtilUuidHolder {
+public interface /*${showcase-name}*/Holder2 extends /*${showcase-name}*/Holder {
 
     @Property                                               // <.>
     @PropertyLayout(
@@ -33,7 +33,7 @@ public interface JavaUtilUuidHolder2 extends JavaUtilUuidHolder {
             "@PropertyLayout(labelPosition=LEFT)",
         hidden = Where.ALL_TABLES,
         fieldSetId = "label-positions", sequence = "1")     // <.>
-    default java.util.UUID getReadOnlyPropertyDerivedLabelPositionLeft() {
+    default /*${showcase-type}*/ getReadOnlyPropertyDerivedLabelPositionLeft() {
         return getReadOnlyProperty();
     }
 
@@ -44,7 +44,7 @@ public interface JavaUtilUuidHolder2 extends JavaUtilUuidHolder {
             "@PropertyLayout(labelPosition=TOP)",
         hidden = Where.ALL_TABLES,
         fieldSetId = "label-positions", sequence = "2")
-    default java.util.UUID getReadOnlyPropertyDerivedLabelPositionTop() {
+    default /*${showcase-type}*/ getReadOnlyPropertyDerivedLabelPositionTop() {
         return getReadOnlyProperty();
     }
 
@@ -55,7 +55,7 @@ public interface JavaUtilUuidHolder2 extends JavaUtilUuidHolder {
             "@PropertyLayout(labelPosition=RIGHT)",
         hidden = Where.ALL_TABLES,
         fieldSetId = "label-positions", sequence = "3")
-    default java.util.UUID getReadOnlyPropertyDerivedLabelPositionRight() {
+    default /*${showcase-type}*/ getReadOnlyPropertyDerivedLabelPositionRight() {
         return getReadOnlyProperty();
     }
 
@@ -66,7 +66,7 @@ public interface JavaUtilUuidHolder2 extends JavaUtilUuidHolder {
             "@PropertyLayout(labelPosition=NONE)",
         hidden = Where.ALL_TABLES,
         fieldSetId = "label-positions", sequence = "4")
-    default java.util.UUID getReadOnlyPropertyDerivedLabelPositionNone() {
+    default /*${showcase-type}*/ getReadOnlyPropertyDerivedLabelPositionNone() {
         return getReadOnlyProperty();
     }
 
diff --git a/tooling/metaprog/src/main/resources/holder/TemplateHolder_actionReturningCollection.java b/tooling/metaprog/src/main/resources/holder/TemplateHolder_actionReturningCollection.java
index 0713a737c4..2c76bde3d9 100644
--- a/tooling/metaprog/src/main/resources/holder/TemplateHolder_actionReturningCollection.java
+++ b/tooling/metaprog/src/main/resources/holder/TemplateHolder_actionReturningCollection.java
@@ -16,10 +16,9 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package demoapp.dom.types.javautil.uuids.holder;
+package /*${java-package}*/;
 
 import java.util.Collection;
-import java.util.UUID;
 import java.util.stream.Collectors;
 
 import javax.inject.Inject;
@@ -27,25 +26,24 @@ import javax.inject.Inject;
 import org.apache.isis.applib.annotation.Action;
 import org.apache.isis.applib.annotation.SemanticsOf;
 
-import lombok.RequiredArgsConstructor;
-
 import demoapp.dom.types.Samples;
+import lombok.RequiredArgsConstructor;
 
 
 //tag::class[]
 @Action(semantics = SemanticsOf.SAFE)
 @RequiredArgsConstructor
-public class JavaUtilUuidHolder_actionReturningCollection {
+public class /*${showcase-name}*/Holder_actionReturningCollection {
 
-    private final JavaUtilUuidHolder holder;
+    private final /*${showcase-name}*/Holder holder;
 
-    public Collection<java.util.UUID> act() {
+    public Collection</*${showcase-type}*/> act() {
         return samples.stream()
                 .collect(Collectors.toList());
     }
 
     @Inject
-    Samples<UUID> samples;
+    Samples</*${showcase-type}*/> samples;
 
 }
 //end::class[]
diff --git a/tooling/metaprog/src/main/resources/holder/TemplateHolder_mixinProperty.java b/tooling/metaprog/src/main/resources/holder/TemplateHolder_mixinProperty.java
index 4ae1b46a67..4f0accfcec 100644
--- a/tooling/metaprog/src/main/resources/holder/TemplateHolder_mixinProperty.java
+++ b/tooling/metaprog/src/main/resources/holder/TemplateHolder_mixinProperty.java
@@ -16,7 +16,7 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package demoapp.dom.types.javautil.uuids.holder;
+package /*${java-package}*/;
 
 import org.apache.isis.applib.annotation.Property;
 import org.apache.isis.applib.annotation.PropertyLayout;
@@ -29,11 +29,11 @@ import lombok.RequiredArgsConstructor;
 @Property()
 @PropertyLayout(hidden = Where.ALL_TABLES, fieldSetId = "contributed", sequence = "1")
 @RequiredArgsConstructor
-public class JavaUtilUuidHolder_mixinProperty {
+public class /*${showcase-name}*/Holder_mixinProperty {
 
-    private final JavaUtilUuidHolder holder;
+    private final /*${showcase-name}*/Holder holder;
 
-    public java.util.UUID prop() {
+    public /*${showcase-type}*/ prop() {
         return holder.getReadOnlyProperty();
     }
 
diff --git a/tooling/metaprog/src/main/resources/holder/TemplateHolder_updateReadOnlyOptionalProperty.java b/tooling/metaprog/src/main/resources/holder/TemplateHolder_updateReadOnlyOptionalProperty.java
index 6e6a9df3a3..03501c85e3 100644
--- a/tooling/metaprog/src/main/resources/holder/TemplateHolder_updateReadOnlyOptionalProperty.java
+++ b/tooling/metaprog/src/main/resources/holder/TemplateHolder_updateReadOnlyOptionalProperty.java
@@ -16,7 +16,7 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package demoapp.dom.types.javautil.uuids.holder;
+package /*${java-package}*/;
 
 import org.apache.isis.applib.annotation.Action;
 import org.apache.isis.applib.annotation.ActionLayout;
@@ -38,19 +38,19 @@ import lombok.RequiredArgsConstructor;
         , associateWith = "readOnlyOptionalProperty"
         , sequence = "1")
 @RequiredArgsConstructor
-public class JavaUtilUuidHolder_updateReadOnlyOptionalProperty {
+public class /*${showcase-name}*/Holder_updateReadOnlyOptionalProperty {
 
-    private final JavaUtilUuidHolder holder;
+    private final /*${showcase-name}*/Holder holder;
 
-    @MemberSupport public JavaUtilUuidHolder act(
+    @MemberSupport public /*${showcase-name}*/Holder act(
             @Parameter(optionality = Optionality.OPTIONAL)              // <.>
-            final java.util.UUID newValue
+            final /*${showcase-type}*/ newValue
     ) {
         holder.setReadOnlyOptionalProperty(newValue);
         return holder;
     }
 
-    @MemberSupport public java.util.UUID default0Act() {
+    @MemberSupport public /*${showcase-type}*/ default0Act() {
         return holder.getReadOnlyOptionalProperty();
     }
 
diff --git a/tooling/metaprog/src/main/resources/holder/TemplateHolder_updateReadOnlyProperty.java b/tooling/metaprog/src/main/resources/holder/TemplateHolder_updateReadOnlyProperty.java
index 5c3eaf2ad8..e356ec28fa 100644
--- a/tooling/metaprog/src/main/resources/holder/TemplateHolder_updateReadOnlyProperty.java
+++ b/tooling/metaprog/src/main/resources/holder/TemplateHolder_updateReadOnlyProperty.java
@@ -16,7 +16,7 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package demoapp.dom.types.javautil.uuids.holder;
+package /*${java-package}*/;
 
 import org.apache.isis.applib.annotation.Action;
 import org.apache.isis.applib.annotation.ActionLayout;
@@ -36,16 +36,16 @@ import lombok.RequiredArgsConstructor;
         , associateWith = "readOnlyProperty"
         , sequence = "1")
 @RequiredArgsConstructor
-public class JavaUtilUuidHolder_updateReadOnlyProperty {
+public class /*${showcase-name}*/Holder_updateReadOnlyProperty {
 
-    private final JavaUtilUuidHolder holder;
+    private final /*${showcase-name}*/Holder holder;
 
-    @MemberSupport public JavaUtilUuidHolder act(final java.util.UUID newValue) {
+    @MemberSupport public /*${showcase-name}*/Holder act(final /*${showcase-type}*/ newValue) {
         holder.setReadOnlyProperty(newValue);
         return holder;
     }
 
-    @MemberSupport public java.util.UUID default0Act() {
+    @MemberSupport public /*${showcase-type}*/ default0Act() {
         return holder.getReadOnlyProperty();
     }
 
diff --git a/tooling/metaprog/src/main/resources/holder/TemplateHolder_updateReadOnlyPropertyWithChoices.java b/tooling/metaprog/src/main/resources/holder/TemplateHolder_updateReadOnlyPropertyWithChoices.java
index 8ad9907970..1fb93e843c 100644
--- a/tooling/metaprog/src/main/resources/holder/TemplateHolder_updateReadOnlyPropertyWithChoices.java
+++ b/tooling/metaprog/src/main/resources/holder/TemplateHolder_updateReadOnlyPropertyWithChoices.java
@@ -16,10 +16,9 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package demoapp.dom.types.javautil.uuids.holder;
+package /*${java-package}*/;
 
 import java.util.List;
-import java.util.UUID;
 import java.util.stream.Collectors;
 
 import javax.inject.Inject;
@@ -30,9 +29,8 @@ import org.apache.isis.applib.annotation.MemberSupport;
 import org.apache.isis.applib.annotation.PromptStyle;
 import org.apache.isis.applib.annotation.SemanticsOf;
 
-import lombok.RequiredArgsConstructor;
-
 import demoapp.dom.types.Samples;
+import lombok.RequiredArgsConstructor;
 
 //tag::class[]
 @Action(
@@ -44,26 +42,26 @@ import demoapp.dom.types.Samples;
         , associateWith = "readOnlyProperty"
         , sequence = "2")
 @RequiredArgsConstructor
-public class JavaUtilUuidHolder_updateReadOnlyPropertyWithChoices {
+public class /*${showcase-name}*/Holder_updateReadOnlyPropertyWithChoices {
 
-    private final JavaUtilUuidHolder holder;
+    private final /*${showcase-name}*/Holder holder;
 
-    @MemberSupport public JavaUtilUuidHolder act(final java.util.UUID newValue) {
+    @MemberSupport public /*${showcase-name}*/Holder act(final /*${showcase-type}*/ newValue) {
         holder.setReadOnlyProperty(newValue);
         return holder;
     }
 
-    @MemberSupport public java.util.UUID default0Act() {
+    @MemberSupport public /*${showcase-type}*/ default0Act() {
         return holder.getReadOnlyProperty();
     }
 
-    @MemberSupport public List<java.util.UUID> choices0Act() {
+    @MemberSupport public List</*${showcase-type}*/> choices0Act() {
         return samples.stream()
                 .collect(Collectors.toList());
     }
 
     @Inject
-    Samples<UUID> samples;
+    Samples</*${showcase-type}*/> samples;
 
 }
 //end::class[]
diff --git a/tooling/metaprog/src/main/resources/jdo/TemplateJdo.java b/tooling/metaprog/src/main/resources/jdo/TemplateJdo.java
index a471ff8481..1ef187ebc8 100644
--- a/tooling/metaprog/src/main/resources/jdo/TemplateJdo.java
+++ b/tooling/metaprog/src/main/resources/jdo/TemplateJdo.java
@@ -16,7 +16,7 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package demoapp.dom.types.javautil.uuids.jdo;
+package /*${java-package}*/;
 
 import javax.inject.Named;
 import javax.jdo.annotations.Column;
@@ -37,47 +37,47 @@ import org.apache.isis.applib.annotation.Title;
 import lombok.Getter;
 import lombok.Setter;
 
-import demoapp.dom.types.javautil.uuids.persistence.JavaUtilUuidEntity;
+import demoapp.dom.types.javautil.uuids.persistence./*${showcase-name}*/Entity;
 
 @Profile("demo-jdo")
 //tag::class[]
 @PersistenceCapable(identityType = IdentityType.DATASTORE, schema = "demo")
 @DatastoreIdentity(strategy = IdGeneratorStrategy.IDENTITY, column = "id")
-@Named("demo.JavaUtilUuidEntity")
+@Named("demo./*${showcase-name}*/Entity")
 @DomainObject
-public class JavaUtilUuidJdo                                          // <.>
-        extends JavaUtilUuidEntity {
+public class /*${showcase-name}*/Jdo                                          // <.>
+        extends /*${showcase-name}*/Entity {
 
 //end::class[]
-    public JavaUtilUuidJdo(final java.util.UUID initialValue) {
+    public /*${showcase-name}*/Jdo(final /*${showcase-type}*/ initialValue) {
         this.readOnlyProperty = initialValue;
         this.readWriteProperty = initialValue;
     }
 
 //tag::class[]
-    @Title(prepend = "java.util.UUID JDO entity: ")
+    @Title(prepend = "/*${showcase-type}*/ JDO entity: ")
     @PropertyLayout(fieldSetId = "read-only-properties", sequence = "1")
     @Column(allowsNull = "false")                                               // <.>
     @Getter @Setter
-    private java.util.UUID readOnlyProperty;
+    private /*${showcase-type}*/ readOnlyProperty;
 
     @Property(editing = Editing.ENABLED)                                        // <.>
     @PropertyLayout(fieldSetId = "editable-properties", sequence = "1")
     @Column(allowsNull = "false")
     @Getter @Setter
-    private java.util.UUID readWriteProperty;
+    private /*${showcase-type}*/ readWriteProperty;
 
     @Property(optionality = Optionality.OPTIONAL)                               // <.>
     @PropertyLayout(fieldSetId = "optional-properties", sequence = "1")
     @Column(allowsNull = "true")                                                // <.>
     @Getter @Setter
-    private java.util.UUID readOnlyOptionalProperty;
+    private /*${showcase-type}*/ readOnlyOptionalProperty;
 
     @Property(editing = Editing.ENABLED, optionality = Optionality.OPTIONAL)
     @PropertyLayout(fieldSetId = "optional-properties", sequence = "2")
     @Column(allowsNull = "true")
     @Getter @Setter
-    private java.util.UUID readWriteOptionalProperty;
+    private /*${showcase-type}*/ readWriteOptionalProperty;
 
 }
 //end::class[]
diff --git a/tooling/metaprog/src/main/resources/jdo/TemplateJdoEntities.java b/tooling/metaprog/src/main/resources/jdo/TemplateJdoEntities.java
index 7016edae0b..f5124655a6 100644
--- a/tooling/metaprog/src/main/resources/jdo/TemplateJdoEntities.java
+++ b/tooling/metaprog/src/main/resources/jdo/TemplateJdoEntities.java
@@ -16,7 +16,7 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package demoapp.dom.types.javautil.uuids.jdo;
+package /*${java-package}*/;
 
 import org.springframework.context.annotation.Profile;
 import org.springframework.stereotype.Service;
@@ -25,16 +25,16 @@ import demoapp.dom._infra.values.ValueHolderRepository;
 
 @Profile("demo-jdo")
 @Service
-public class JavaUtilUuidJdoEntities
-extends ValueHolderRepository<java.util.UUID, JavaUtilUuidJdo> {
+public class /*${showcase-name}*/JdoEntities
+extends ValueHolderRepository</*${showcase-type}*/, /*${showcase-name}*/Jdo> {
 
-    protected JavaUtilUuidJdoEntities() {
-        super(JavaUtilUuidJdo.class);
+    protected /*${showcase-name}*/JdoEntities() {
+        super(/*${showcase-name}*/Jdo.class);
     }
 
     @Override
-    protected JavaUtilUuidJdo newDetachedEntity(java.util.UUID value) {
-        return new JavaUtilUuidJdo(value);
+    protected /*${showcase-name}*/Jdo newDetachedEntity(/*${showcase-type}*/ value) {
+        return new /*${showcase-name}*/Jdo(value);
     }
 
 }
\ No newline at end of file
diff --git a/tooling/metaprog/src/main/resources/jpa/TemplateJpa.java b/tooling/metaprog/src/main/resources/jpa/TemplateJpa.java
index 4a6a9324a4..d1c079d1b5 100644
--- a/tooling/metaprog/src/main/resources/jpa/TemplateJpa.java
+++ b/tooling/metaprog/src/main/resources/jpa/TemplateJpa.java
@@ -16,7 +16,7 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package demoapp.dom.types.javautil.uuids.jpa;
+package /*${java-package}*/;
 
 import javax.inject.Named;
 import javax.persistence.Column;
@@ -40,24 +40,24 @@ import lombok.Getter;
 import lombok.NoArgsConstructor;
 import lombok.Setter;
 
-import demoapp.dom.types.javautil.uuids.persistence.JavaUtilUuidEntity;
+import demoapp.dom.types.javautil.uuids.persistence./*${showcase-name}*/Entity;
 
 @Profile("demo-jpa")
 //tag::class[]
 @Entity
 @Table(
       schema = "demo",
-      name = "JavaUtilUuidJpa"
+      name = "/*${showcase-name}*/Jpa"
 )
 @EntityListeners(IsisEntityListener.class)
-@Named("demo.JavaUtilUuidEntity")
+@Named("demo./*${showcase-name}*/Entity")
 @DomainObject
 @NoArgsConstructor
-public class JavaUtilUuidJpa
-        extends JavaUtilUuidEntity {
+public class /*${showcase-name}*/Jpa
+        extends /*${showcase-name}*/Entity {
 
 //end::class[]
-    public JavaUtilUuidJpa(final java.util.UUID initialValue) {
+    public /*${showcase-name}*/Jpa(final /*${showcase-type}*/ initialValue) {
         this.readOnlyProperty = initialValue;
         this.readWriteProperty = initialValue;
     }
@@ -67,29 +67,29 @@ public class JavaUtilUuidJpa
     @GeneratedValue
     private Long id;
 
-    @Title(prepend = "java.util.UUID JPA entity: ")
+    @Title(prepend = "/*${showcase-type}*/ JPA entity: ")
     @PropertyLayout(fieldSetId = "read-only-properties", sequence = "1")
     @Column(nullable = false)                                                   // <.>
     @Getter @Setter
-    private java.util.UUID readOnlyProperty;
+    private /*${showcase-type}*/ readOnlyProperty;
 
     @Property(editing = Editing.ENABLED)                                        // <.>
     @PropertyLayout(fieldSetId = "editable-properties", sequence = "1")
     @Column(nullable = false)
     @Getter @Setter
-    private java.util.UUID readWriteProperty;
+    private /*${showcase-type}*/ readWriteProperty;
 
     @Property(optionality = Optionality.OPTIONAL)                               // <.>
     @PropertyLayout(fieldSetId = "optional-properties", sequence = "1")
     @Column(nullable = true)                                                    // <.>
     @Getter @Setter
-    private java.util.UUID readOnlyOptionalProperty;
+    private /*${showcase-type}*/ readOnlyOptionalProperty;
 
     @Property(editing = Editing.ENABLED, optionality = Optionality.OPTIONAL)
     @PropertyLayout(fieldSetId = "optional-properties", sequence = "2")
     @Column(nullable = true)
     @Getter @Setter
-    private java.util.UUID readWriteOptionalProperty;
+    private /*${showcase-type}*/ readWriteOptionalProperty;
 
 }
 //end::class[]
diff --git a/tooling/metaprog/src/main/resources/jpa/TemplateJpaEntities.java b/tooling/metaprog/src/main/resources/jpa/TemplateJpaEntities.java
index a126d7ca6c..a49020496c 100644
--- a/tooling/metaprog/src/main/resources/jpa/TemplateJpaEntities.java
+++ b/tooling/metaprog/src/main/resources/jpa/TemplateJpaEntities.java
@@ -16,7 +16,7 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package demoapp.dom.types.javautil.uuids.jpa;
+package /*${java-package}*/;
 
 import org.springframework.context.annotation.Profile;
 import org.springframework.stereotype.Service;
@@ -25,16 +25,16 @@ import demoapp.dom._infra.values.ValueHolderRepository;
 
 @Profile("demo-jpa")
 @Service
-public class JavaUtilUuidJpaEntities
-extends ValueHolderRepository<java.util.UUID, JavaUtilUuidJpa> {
+public class /*${showcase-name}*/JpaEntities
+extends ValueHolderRepository</*${showcase-type}*/, /*${showcase-name}*/Jpa> {
 
-    protected JavaUtilUuidJpaEntities() {
-        super(JavaUtilUuidJpa.class);
+    protected /*${showcase-name}*/JpaEntities() {
+        super(/*${showcase-name}*/Jpa.class);
     }
 
     @Override
-    protected JavaUtilUuidJpa newDetachedEntity(java.util.UUID value) {
-        return new JavaUtilUuidJpa(value);
+    protected /*${showcase-name}*/Jpa newDetachedEntity(/*${showcase-type}*/ value) {
+        return new /*${showcase-name}*/Jpa(value);
     }
 
 }
\ No newline at end of file
diff --git a/tooling/metaprog/src/main/resources/persistence/TemplateEntity.java b/tooling/metaprog/src/main/resources/persistence/TemplateEntity.java
index 445e9754f1..aa3c175a47 100644
--- a/tooling/metaprog/src/main/resources/persistence/TemplateEntity.java
+++ b/tooling/metaprog/src/main/resources/persistence/TemplateEntity.java
@@ -16,7 +16,7 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package demoapp.dom.types.javautil.uuids.persistence;
+package /*${java-package}*/;
 
 import javax.inject.Named;
 
@@ -24,18 +24,18 @@ import org.apache.isis.applib.annotation.DomainObject;
 
 import demoapp.dom._infra.asciidocdesc.HasAsciiDocDescription;
 import demoapp.dom._infra.values.ValueHolder;
-import demoapp.dom.types.javautil.uuids.holder.JavaUtilUuidHolder2;
+import demoapp.dom.types.javautil.uuids.holder./*${showcase-name}*/Holder2;
 
-@Named("demo.JavaUtilUuidEntity") // shared permissions with concrete sub class
+@Named("demo./*${showcase-name}*/Entity") // shared permissions with concrete sub class
 @DomainObject
-public abstract class JavaUtilUuidEntity
+public abstract class /*${showcase-name}*/Entity
 implements
     HasAsciiDocDescription,
-    JavaUtilUuidHolder2,
-    ValueHolder<java.util.UUID> {
+    /*${showcase-name}*/Holder2,
+    ValueHolder</*${showcase-type}*/> {
 
     @Override
-    public java.util.UUID value() {
+    public /*${showcase-type}*/ value() {
         return getReadOnlyProperty();
     }
 
diff --git a/tooling/metaprog/src/main/resources/persistence/TemplateSeeding.java b/tooling/metaprog/src/main/resources/persistence/TemplateSeeding.java
index 1712bbcb94..a278021e18 100644
--- a/tooling/metaprog/src/main/resources/persistence/TemplateSeeding.java
+++ b/tooling/metaprog/src/main/resources/persistence/TemplateSeeding.java
@@ -16,7 +16,7 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package demoapp.dom.types.javautil.uuids.persistence;
+package /*${java-package}*/;
 
 import javax.inject.Inject;
 
@@ -26,11 +26,11 @@ import demoapp.dom._infra.seed.SeedServiceAbstract;
 import demoapp.dom._infra.values.ValueHolderRepository;
 
 @Service
-public class JavaUtilUuidSeeding
+public class /*${showcase-name}*/Seeding
 extends SeedServiceAbstract {
 
     @Inject
-    public JavaUtilUuidSeeding(ValueHolderRepository<java.util.UUID, ? extends JavaUtilUuidEntity> entities) {
+    public /*${showcase-name}*/Seeding(ValueHolderRepository</*${showcase-type}*/, ? extends /*${showcase-name}*/Entity> entities) {
         super(entities);
     }
 
diff --git a/tooling/metaprog/src/main/resources/samples/TemplateSamples.java b/tooling/metaprog/src/main/resources/samples/TemplateSamples.java
index 884066dc63..66a89e226c 100644
--- a/tooling/metaprog/src/main/resources/samples/TemplateSamples.java
+++ b/tooling/metaprog/src/main/resources/samples/TemplateSamples.java
@@ -18,7 +18,6 @@
  */
 package demoapp.dom.types.javautil.uuids.samples;
 
-import java.util.UUID;
 import java.util.stream.Stream;
 
 import org.springframework.stereotype.Service;
@@ -28,10 +27,10 @@ import org.apache.isis.core.metamodel.valuesemantics.UUIDValueSemantics;
 import demoapp.dom.types.Samples;
 
 @Service
-public class JavaUtilUuidSamples implements Samples<UUID> {
+public class /*${showcase-name}*/Samples implements Samples</*${showcase-type}*/> {
 
     @Override
-    public Stream<UUID> stream() {
+    public Stream</*${showcase-type}*/> stream() {
         return new UUIDValueSemantics()
                 .getExamples()
                 .stream();
diff --git a/tooling/metaprog/src/main/resources/vm/TemplateVm.java b/tooling/metaprog/src/main/resources/vm/TemplateVm.java
index 91f93d8e1f..fa151a3f71 100644
--- a/tooling/metaprog/src/main/resources/vm/TemplateVm.java
+++ b/tooling/metaprog/src/main/resources/vm/TemplateVm.java
@@ -16,7 +16,7 @@
  *  specific language governing permissions and limitations
  *  under the License.
  */
-package demoapp.dom.types.javautil.uuids.vm;
+package /*${java-package}*/;
 
 import javax.inject.Named;
 import javax.xml.bind.annotation.XmlAccessType;
@@ -37,47 +37,47 @@ import lombok.Getter;
 import lombok.Setter;
 
 import demoapp.dom._infra.asciidocdesc.HasAsciiDocDescription;
-import demoapp.dom.types.javautil.uuids.holder.JavaUtilUuidHolder2;
+import demoapp.dom.types.javautil.uuids.holder./*${showcase-name}*/Holder2;
 
 //tag::class[]
 @XmlRootElement(name = "root")
 @XmlType
 @XmlAccessorType(XmlAccessType.FIELD)
-@Named("demo.JavaUtilUuidVm")
+@Named("demo./*${showcase-name}*/Vm")
 @DomainObject(
         nature=Nature.VIEW_MODEL)
 @lombok.NoArgsConstructor                                                       // <.>
-public class JavaUtilUuidVm
-        implements HasAsciiDocDescription, JavaUtilUuidHolder2 {
+public class /*${showcase-name}*/Vm
+        implements HasAsciiDocDescription, /*${showcase-name}*/Holder2 {
 
 //end::class[]
-    public JavaUtilUuidVm(final java.util.UUID initialValue) {
+    public /*${showcase-name}*/Vm(final /*${showcase-type}*/ initialValue) {
         this.readOnlyProperty = initialValue;
         this.readWriteProperty = initialValue;
     }
 
 //tag::class[]
-    @Title(prepend = "java.util.UUID view model: ")
+    @Title(prepend = "/*${showcase-type}*/ view model: ")
     @PropertyLayout(fieldSetId = "read-only-properties", sequence = "1")
     @XmlElement(required = true)                                                // <.>
     @Getter @Setter
-    private java.util.UUID readOnlyProperty;
+    private /*${showcase-type}*/ readOnlyProperty;
 
     @Property(editing = Editing.ENABLED)                                        // <.>
     @PropertyLayout(fieldSetId = "editable-properties", sequence = "1")
     @XmlElement(required = true)
     @Getter @Setter
-    private java.util.UUID readWriteProperty;
+    private /*${showcase-type}*/ readWriteProperty;
 
     @Property(optionality = Optionality.OPTIONAL)                               // <.>
     @PropertyLayout(fieldSetId = "optional-properties", sequence = "1")
     @Getter @Setter
-    private java.util.UUID readOnlyOptionalProperty;
+    private /*${showcase-type}*/ readOnlyOptionalProperty;
 
     @Property(editing = Editing.ENABLED, optionality = Optionality.OPTIONAL)
     @PropertyLayout(fieldSetId = "optional-properties", sequence = "2")
     @Getter @Setter
-    private java.util.UUID readWriteOptionalProperty;
+    private /*${showcase-type}*/ readWriteOptionalProperty;
 
 }
 //end::class[]
diff --git a/tooling/metaprog/src/test/java/org/apache/isis/tooling/metaprog/demoshowcases/value/ValueTypeGenTemplateTest.java b/tooling/metaprog/src/test/java/org/apache/isis/tooling/metaprog/demoshowcases/value/ValueTypeGenTemplateTest.java
index e6a914f7d8..a9b2a55302 100644
--- a/tooling/metaprog/src/test/java/org/apache/isis/tooling/metaprog/demoshowcases/value/ValueTypeGenTemplateTest.java
+++ b/tooling/metaprog/src/test/java/org/apache/isis/tooling/metaprog/demoshowcases/value/ValueTypeGenTemplateTest.java
@@ -77,21 +77,24 @@ class ValueTypeGenTemplateTest {
         val sortedA = Can.ofCollection(filesA).sorted(Comparator.naturalOrder());
         val sortedB = Can.ofCollection(filesB).sorted(Comparator.naturalOrder());
 
-        val equalsVector = sortedA.zipMap(sortedB, (a, b)->{
-
-            return Objects.equals(
-                    _Text.readLinesFromFile(a, StandardCharsets.UTF_8),
-                    _Text.readLinesFromFile(b, StandardCharsets.UTF_8)
-                    );
+        val failedFiles = sortedA
+                .zipMap(sortedB, (a, b)->
+                     Objects.equals(
+                            _Text.readLinesFromFile(a, StandardCharsets.UTF_8),
+                            _Text.readLinesFromFile(b, StandardCharsets.UTF_8))
+                            ? null
+                            : b)
+                .map(failedFile->failedFile.getName());
+
+
+        failedFiles.forEach(failedFile->{
+            System.err.printf("failed comparision: %s%n", failedFile);
         });
 
-        for(var flag: equalsVector) {
-            if(!flag) {
-                fail(String.format("some file contents are not equal %s", equalsVector));
-            }
+        if(failedFiles.isNotEmpty()) {
+            fail(String.format("some file contents are not equal %s", failedFiles));
         }
 
-
     }
 
 }