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/18 07:10:40 UTC

[isis] branch master updated: ISIS-3123: converts boolean showcase to generated

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 0e2e912684 ISIS-3123: converts boolean showcase to generated
0e2e912684 is described below

commit 0e2e912684636c4f38e0fbfdfd12ba4cfa1bf804
Author: andi-huber <ah...@apache.org>
AuthorDate: Thu Aug 18 09:10:28 2022 +0200

    ISIS-3123: converts boolean showcase to generated
---
 .../apache/isis/commons/internal/base/_Files.java    |  8 +++++---
 .../primitive/booleans/PrimitiveBooleans-common.adoc | 20 +++++++++++++++++---
 .../booleans/PrimitiveBooleans-description.adoc      |  7 ++++---
 .../types/primitive/booleans/PrimitiveBooleans.java  | 16 +++++++++-------
 .../primitive/booleans/PrimitiveBooleans.layout.xml  |  2 ++
 .../booleans/holder/PrimitiveBooleanHolder.java      | 12 +-----------
 .../booleans/holder/PrimitiveBooleanHolder2.java     |  9 +++++----
 .../PrimitiveBooleanHolder_actionReturning.java      |  2 +-
 .../PrimitiveBooleanHolder_actionReturningArray.java |  7 +++----
 .../holder/PrimitiveBooleanHolder_mixinProperty.java |  2 +-
 ...rimitiveBooleanHolder_updateReadOnlyProperty.java |  1 +
 ...leanHolder_updateReadOnlyPropertyWithChoices.java |  9 +++++----
 .../jdo/PrimitiveBooleanJdo-description.adoc         |  8 +++++---
 .../primitive/booleans/jdo/PrimitiveBooleanJdo.java  |  7 ++++---
 .../booleans/jdo/PrimitiveBooleanJdoEntities.java    |  5 +++--
 .../jpa/PrimitiveBooleanJpa-description.adoc         | 15 ++++++---------
 .../primitive/booleans/jpa/PrimitiveBooleanJpa.java  |  7 ++++---
 .../booleans/jpa/PrimitiveBooleanJpaEntities.java    |  5 +++--
 .../booleans/persistence/PrimitiveBooleanEntity.java |  5 +++--
 .../persistence/PrimitiveBooleanEntity.layout.xml    |  3 +++
 .../persistence/PrimitiveBooleanSeeding.java         |  6 ++++--
 .../booleans/vm/PrimitiveBooleanVm-description.adoc  |  9 +++++----
 .../primitive/booleans/vm/PrimitiveBooleanVm.java    |  9 +++++----
 .../booleans/vm/PrimitiveBooleanVm.layout.xml        |  3 +++
 .../metaprog/demoshowcases/value/ValueShowCase.java  | 17 ++++++++++++-----
 .../demoshowcases/value/ValueTypeGenTemplate.java    |  5 +++++
 .../src/main/resources/holder/$TemplateHolder2.java  |  8 ++++----
 .../holder/$TemplateHolder_actionReturning.java      |  2 +-
 .../holder/$TemplateHolder_mixinProperty.java        |  2 +-
 .../$TemplateHolder_updateReadOnlyProperty.java      |  2 +-
 ...lateHolder_updateReadOnlyPropertyWithChoices.java |  2 +-
 .../resources/holder/$TemplateHolder~primitive.java  |  4 ++--
 .../main/resources/persistence/$TemplateEntity.java  |  2 +-
 .../value/ValueTypeGenTemplateTest.java              |  2 +-
 34 files changed, 131 insertions(+), 92 deletions(-)

diff --git a/commons/src/main/java/org/apache/isis/commons/internal/base/_Files.java b/commons/src/main/java/org/apache/isis/commons/internal/base/_Files.java
index 0e317fe55d..46e7c30605 100644
--- a/commons/src/main/java/org/apache/isis/commons/internal/base/_Files.java
+++ b/commons/src/main/java/org/apache/isis/commons/internal/base/_Files.java
@@ -168,15 +168,16 @@ public class _Files {
     /**
      * Creates the given directory if it does not already exist.
      * If directory is null acts as a no-op.
+     * @return
      * @throws IllegalArgumentException if any pre-existing file is in conflict
      */
-    public static void makeDir(final @Nullable File directory) {
+    public static File makeDir(final @Nullable File directory) {
         if(directory==null) {
-            return; // no-op
+            return directory; // no-op
         }
         if(directory.exists()) {
             if(directory.isDirectory()) {
-                return; // nothing to do
+                return directory; // nothing to do
             }
             throw _Exceptions.illegalArgument(
                     "cannot create directory over pre-existing file of same name %s",
@@ -187,6 +188,7 @@ public class _Files {
                     "failed to create directory %s",
                     directory.getAbsolutePath());
         }
+        return directory;
     }
 
     /**
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/booleans/PrimitiveBooleans-common.adoc b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/booleans/PrimitiveBooleans-common.adoc
index 8bc70a1192..286ca89677 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/booleans/PrimitiveBooleans-common.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/booleans/PrimitiveBooleans-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 `PrimitiveBooleanHolder` interface, demonstrating the use of `boolean` as a parameter and as a return type.
+A number of mixin actions contribute through the `PrimitiveBooleanHolder` interface, demonstrate the use of `boolean` as a parameter and as a return type.
 For example:
 
 * the `updateReadOnlyProperty` action is:
@@ -19,9 +21,17 @@ include::holder/PrimitiveBooleanHolder_updateReadOnlyProperty.java[tags=class]
 include::holder/PrimitiveBooleanHolder_actionReturning.java[tags=class]
 ----
 
+
+* the `actionReturningArray` action is:
++
+[source,java]
+----
+include::holder/PrimitiveBooleanHolder_actionReturningArray.java[tags=class]
+----
+
 == Mixin properties
 
-We also use the `PrimitiveBooleanHolder` interface to contribute a mixin property:
+We also use the interface to contribute a mixin property:
 
 * the `mixinProperty` property:
 +
@@ -30,9 +40,10 @@ We also use the `PrimitiveBooleanHolder` interface to contribute a mixin propert
 include::holder/PrimitiveBooleanHolder_mixinProperty.java[tags=class]
 ----
 
+
 == @PropertyLayout(labelPosition=...)
 
-The `PrimitiveBooleanHolder2` interface is used to demonstrate support for label positions using `@PropertyLayout(labelPosition=...)`:
+To demonstrate support for label positions using `@PropertyLayout(labelPosition=...)`, the entity and view model objects both implement the extended `PrimitiveBooleanHolder2` interface:
 
 [source,java]
 ----
@@ -44,4 +55,7 @@ include::holder/PrimitiveBooleanHolder2.java[tags=class]
 <.> Using `@PropertyLayout(fieldSetId=...)` positions the properties into the appropriate `<field-set>` within the `Xxx.layout.xml` layout file.
 <.> Position label on top
 <.> Position label to the right
++
+CAUTION: currently not supported
 <.> Hide the label completely.
+
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/booleans/PrimitiveBooleans-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/booleans/PrimitiveBooleans-description.adoc
index d8979f5ab8..e9d8851ab1 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/booleans/PrimitiveBooleans-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/booleans/PrimitiveBooleans-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 [...]
 
-The framework has built-in support for all of the primitive data types, including `boolean`.
+// // This file was GENERATED by the showcase generator (tooling). Do NOT edit!
+
+The framework has built-in support for the (primitive) `boolean` data type.
 
 From here you can:
 
@@ -22,9 +24,8 @@ The `PrimitiveBooleanHolder` interface is used to contribute a number of mixins
 include::holder/PrimitiveBooleanHolder.java[tags=class]
 ----
 
-
 === PrimitiveBooleanHolder2
 
 The `PrimitiveBooleanHolder2` 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/primitive/booleans/PrimitiveBooleans.java b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/booleans/PrimitiveBooleans.java
index a1da1e497c..4261e4fc6b 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/booleans/PrimitiveBooleans.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/booleans/PrimitiveBooleans.java
@@ -41,21 +41,21 @@ 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.primitive.booleans.persistence.PrimitiveBooleanEntity;
 import demoapp.dom.types.primitive.booleans.vm.PrimitiveBooleanVm;
 
+/* This file was GENERATED by the showcase generator (tooling). Do NOT edit! */
 @XmlRootElement(name = "Demo")
 @XmlType
 @XmlAccessorType(XmlAccessType.FIELD)
 @Named("demo.PrimitiveBooleans")
-@DomainObject(
-        nature=Nature.VIEW_MODEL,
-        editing=Editing.ENABLED)
+@DomainObject(nature=Nature.VIEW_MODEL, editing=Editing.ENABLED)
 //@Log4j2
 public class PrimitiveBooleans implements HasAsciiDocDescription {
 
     @ObjectSupport public String title() {
-        return "boolean (primitive) data type";
+        return "boolean data type";
     }
 
     @Action(semantics = SemanticsOf.SAFE)
@@ -63,9 +63,8 @@ public class PrimitiveBooleans implements HasAsciiDocDescription {
     public PrimitiveBooleanVm openViewModel(final boolean initialValue) {
         return new PrimitiveBooleanVm(initialValue);
     }
-    // TODO: there is a bug in the UI, requiring the user to explicitly set/unset the value (even though looks like is set)
     @MemberSupport public boolean default0OpenViewModel() {
-        return true;
+        return samples.single();
     }
 
     @Collection
@@ -75,7 +74,10 @@ public class PrimitiveBooleans implements HasAsciiDocDescription {
 
     @Inject
     @XmlTransient
-    ValueHolderRepository<Boolean, ? extends PrimitiveBooleanEntity> entities;
+    ValueHolderRepository<java.lang.Boolean, ? extends PrimitiveBooleanEntity> entities;
 
+    @Inject
+    @XmlTransient
+    Samples<java.lang.Boolean> samples;
 
 }
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/booleans/PrimitiveBooleans.layout.xml b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/booleans/PrimitiveBooleans.layout.xml
index 74e0160a87..247ed17506 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/booleans/PrimitiveBooleans.layout.xml
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/booleans/PrimitiveBooleans.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/primitive/booleans/holder/PrimitiveBooleanHolder.java b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/booleans/holder/PrimitiveBooleanHolder.java
index fff8dee8de..0cb022c5e7 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/booleans/holder/PrimitiveBooleanHolder.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/booleans/holder/PrimitiveBooleanHolder.java
@@ -20,24 +20,14 @@ package demoapp.dom.types.primitive.booleans.holder;
 
 import javax.inject.Named;
 
-import org.apache.isis.applib.annotation.Property;
-import org.apache.isis.applib.annotation.PropertyLayout;
-
+/* This file was GENERATED by the showcase generator (tooling). Do NOT edit! */
 @Named("demo.PrimitiveBooleanHolder")
 //tag::class[]
 public interface PrimitiveBooleanHolder {
 
-//end::class[]
-    @Property
-    @PropertyLayout(fieldSetId = "read-only-properties", sequence = "1") // TODO: doesn't seem to get picked up
-//tag::class[]
     boolean isReadOnlyProperty();
     void setReadOnlyProperty(boolean c);
 
-//end::class[]
-    @Property
-    @PropertyLayout(fieldSetId = "editable-properties", sequence = "1") // TODO: doesn't seem to get picked up
-//tag::class[]
     boolean isReadWriteProperty();
     void setReadWriteProperty(boolean c);
 
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/booleans/holder/PrimitiveBooleanHolder2.java b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/booleans/holder/PrimitiveBooleanHolder2.java
index b534352e07..f072d6ff21 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/booleans/holder/PrimitiveBooleanHolder2.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/booleans/holder/PrimitiveBooleanHolder2.java
@@ -23,6 +23,7 @@ import org.apache.isis.applib.annotation.Property;
 import org.apache.isis.applib.annotation.PropertyLayout;
 import org.apache.isis.applib.annotation.Where;
 
+/* This file was GENERATED by the showcase generator (tooling). Do NOT edit! */
 //tag::class[]
 public interface PrimitiveBooleanHolder2 extends PrimitiveBooleanHolder {
 
@@ -33,7 +34,7 @@ public interface PrimitiveBooleanHolder2 extends PrimitiveBooleanHolder {
             "@PropertyLayout(labelPosition=LEFT)",
         hidden = Where.ALL_TABLES,
         fieldSetId = "label-positions", sequence = "1")     // <.>
-    default boolean isReadOnlyPropertyDerivedLabelPositionLeft() {
+    default boolean getReadOnlyPropertyDerivedLabelPositionLeft() {
         return isReadOnlyProperty();
     }
 
@@ -44,7 +45,7 @@ public interface PrimitiveBooleanHolder2 extends PrimitiveBooleanHolder {
             "@PropertyLayout(labelPosition=TOP)",
         hidden = Where.ALL_TABLES,
         fieldSetId = "label-positions", sequence = "2")
-    default boolean isReadOnlyPropertyDerivedLabelPositionTop() {
+    default boolean getReadOnlyPropertyDerivedLabelPositionTop() {
         return isReadOnlyProperty();
     }
 
@@ -55,7 +56,7 @@ public interface PrimitiveBooleanHolder2 extends PrimitiveBooleanHolder {
             "@PropertyLayout(labelPosition=RIGHT)",
         hidden = Where.ALL_TABLES,
         fieldSetId = "label-positions", sequence = "3")
-    default boolean isReadOnlyPropertyDerivedLabelPositionRight() {
+    default boolean getReadOnlyPropertyDerivedLabelPositionRight() {
         return isReadOnlyProperty();
     }
 
@@ -66,7 +67,7 @@ public interface PrimitiveBooleanHolder2 extends PrimitiveBooleanHolder {
             "@PropertyLayout(labelPosition=NONE)",
         hidden = Where.ALL_TABLES,
         fieldSetId = "label-positions", sequence = "4")
-    default boolean isReadOnlyPropertyDerivedLabelPositionNone() {
+    default boolean getReadOnlyPropertyDerivedLabelPositionNone() {
         return isReadOnlyProperty();
     }
 
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/booleans/holder/PrimitiveBooleanHolder_actionReturning.java b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/booleans/holder/PrimitiveBooleanHolder_actionReturning.java
index ae66363d2d..78c1d3cc26 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/booleans/holder/PrimitiveBooleanHolder_actionReturning.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/booleans/holder/PrimitiveBooleanHolder_actionReturning.java
@@ -23,7 +23,7 @@ import org.apache.isis.applib.annotation.SemanticsOf;
 
 import lombok.RequiredArgsConstructor;
 
-
+/* This file was GENERATED by the showcase generator (tooling). Do NOT edit! */
 //tag::class[]
 @Action(semantics = SemanticsOf.SAFE)
 @RequiredArgsConstructor
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/booleans/holder/PrimitiveBooleanHolder_actionReturningArray.java b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/booleans/holder/PrimitiveBooleanHolder_actionReturningArray.java
index 7082ddf1bb..39122135b7 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/booleans/holder/PrimitiveBooleanHolder_actionReturningArray.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/booleans/holder/PrimitiveBooleanHolder_actionReturningArray.java
@@ -24,12 +24,11 @@ import org.apache.isis.applib.annotation.Action;
 import org.apache.isis.applib.annotation.SemanticsOf;
 import org.apache.isis.commons.functional.IndexedConsumer;
 
+import demoapp.dom.types.Samples;
 import lombok.RequiredArgsConstructor;
 import lombok.val;
 
-import demoapp.dom.types.Samples;
-
-@SuppressWarnings("unused")
+/* This file was GENERATED by the showcase generator (tooling). Do NOT edit! */
 //tag::class[]
 @Action(semantics = SemanticsOf.SAFE)
 @RequiredArgsConstructor
@@ -45,7 +44,7 @@ public class PrimitiveBooleanHolder_actionReturningArray {
     }
 
     @Inject
-    Samples<Boolean> samples;
+    Samples<java.lang.Boolean> samples;
 
 }
 //end::class[]
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/booleans/holder/PrimitiveBooleanHolder_mixinProperty.java b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/booleans/holder/PrimitiveBooleanHolder_mixinProperty.java
index a52e029475..3422ed6bad 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/booleans/holder/PrimitiveBooleanHolder_mixinProperty.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/booleans/holder/PrimitiveBooleanHolder_mixinProperty.java
@@ -24,7 +24,7 @@ import org.apache.isis.applib.annotation.Where;
 
 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")
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/booleans/holder/PrimitiveBooleanHolder_updateReadOnlyProperty.java b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/booleans/holder/PrimitiveBooleanHolder_updateReadOnlyProperty.java
index 52838174ff..25dc4767f3 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/booleans/holder/PrimitiveBooleanHolder_updateReadOnlyProperty.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/booleans/holder/PrimitiveBooleanHolder_updateReadOnlyProperty.java
@@ -26,6 +26,7 @@ import org.apache.isis.applib.annotation.SemanticsOf;
 
 import lombok.RequiredArgsConstructor;
 
+/* This file was GENERATED by the showcase generator (tooling). Do NOT edit! */
 //tag::class[]
 @Action(
         semantics = SemanticsOf.IDEMPOTENT
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/booleans/holder/PrimitiveBooleanHolder_updateReadOnlyPropertyWithChoices.java b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/booleans/holder/PrimitiveBooleanHolder_updateReadOnlyPropertyWithChoices.java
index d8484c2fd2..057aae9ff4 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/booleans/holder/PrimitiveBooleanHolder_updateReadOnlyPropertyWithChoices.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/booleans/holder/PrimitiveBooleanHolder_updateReadOnlyPropertyWithChoices.java
@@ -29,10 +29,10 @@ 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;
 
+/* This file was GENERATED by the showcase generator (tooling). Do NOT edit! */
 //tag::class[]
 @Action(
         semantics = SemanticsOf.IDEMPOTENT
@@ -56,12 +56,13 @@ public class PrimitiveBooleanHolder_updateReadOnlyPropertyWithChoices {
         return holder.isReadOnlyProperty();
     }
 
-    @MemberSupport public List<Boolean> choices0Act() {
+    @MemberSupport public List<java.lang.Boolean> choices0Act() {
         return samples.stream()
                 .collect(Collectors.toList());
     }
 
     @Inject
-    Samples<Boolean> samples;
+    Samples<java.lang.Boolean> samples;
+
 }
 //end::class[]
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/booleans/jdo/PrimitiveBooleanJdo-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/booleans/jdo/PrimitiveBooleanJdo-description.adoc
index fdc823e5b9..0e7fba7a92 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/booleans/jdo/PrimitiveBooleanJdo-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/booleans/jdo/PrimitiveBooleanJdo-description.adoc
@@ -1,13 +1,15 @@
 :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 `boolean` link:http://www.datanucleus.org:15080/products/accessplatform_5_2/jdo/mapping.html#_primitive_and_java_lang_types[out-of-the-box], so no special annotations are required.
+// // This file was GENERATED by the showcase generator (tooling). Do NOT edit!
+
+JDO supports `boolean` out-of-the-box, so no special annotations are required. see link:https://www.datanucleus.org/products/accessplatform_6_0/jdo/mapping.html#_primitive_and_java_lang_types[DataNucleus]
 
 [source,java]
 ----
-include::PrimitiveBooleanJdo.java[tags="class"]
+include::PrimitiveBooleanJdo.java[tags=class]
 ----
 <.> a no-arg constructor is introduced by JDO enhancer
 <.> no additional JDO annotations required.
 
 
-include::../PrimitiveBooleans-common.adoc[]
\ No newline at end of file
+include::../PrimitiveBooleans-common.adoc[]
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/booleans/jdo/PrimitiveBooleanJdo.java b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/booleans/jdo/PrimitiveBooleanJdo.java
index 2a39dd129f..2f5c7319d9 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/booleans/jdo/PrimitiveBooleanJdo.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/booleans/jdo/PrimitiveBooleanJdo.java
@@ -37,13 +37,14 @@ import lombok.Setter;
 
 import demoapp.dom.types.primitive.booleans.persistence.PrimitiveBooleanEntity;
 
+/* This file was GENERATED by the showcase generator (tooling). Do NOT edit! */
 @Profile("demo-jdo")
 //tag::class[]
 @PersistenceCapable(identityType = IdentityType.DATASTORE, schema = "demo")
 @DatastoreIdentity(strategy = IdGeneratorStrategy.IDENTITY, column = "id")
 @Named("demo.PrimitiveBooleanEntity")
 @DomainObject
-public class PrimitiveBooleanJdo                                        // <.>
+public class PrimitiveBooleanJdo                                          // <.>
         extends PrimitiveBooleanEntity {
 
 //end::class[]
@@ -56,9 +57,9 @@ public class PrimitiveBooleanJdo                                        // <.>
     @Title(prepend = "boolean (primitive) JDO entity: ")
     @PropertyLayout(fieldSetId = "read-only-properties", sequence = "1")
     @Getter @Setter
-    private boolean readOnlyProperty;                                   // <.>
+    private boolean readOnlyProperty;                             // <.>
 
-    @Property(editing = Editing.ENABLED)
+    @Property(editing = Editing.ENABLED)                                        
     @PropertyLayout(fieldSetId = "editable-properties", sequence = "1")
     @Getter @Setter
     private boolean readWriteProperty;
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/booleans/jdo/PrimitiveBooleanJdoEntities.java b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/booleans/jdo/PrimitiveBooleanJdoEntities.java
index d72089a5f8..3a78687400 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/booleans/jdo/PrimitiveBooleanJdoEntities.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/booleans/jdo/PrimitiveBooleanJdoEntities.java
@@ -23,17 +23,18 @@ import org.springframework.stereotype.Service;
 
 import demoapp.dom._infra.values.ValueHolderRepository;
 
+/* This file was GENERATED by the showcase generator (tooling). Do NOT edit! */
 @Profile("demo-jdo")
 @Service
 public class PrimitiveBooleanJdoEntities
-extends ValueHolderRepository<Boolean, PrimitiveBooleanJdo> {
+extends ValueHolderRepository<java.lang.Boolean, PrimitiveBooleanJdo> {
 
     protected PrimitiveBooleanJdoEntities() {
         super(PrimitiveBooleanJdo.class);
     }
 
     @Override
-    protected PrimitiveBooleanJdo newDetachedEntity(Boolean value) {
+    protected PrimitiveBooleanJdo newDetachedEntity(java.lang.Boolean value) {
         return new PrimitiveBooleanJdo(value);
     }
 
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/booleans/jpa/PrimitiveBooleanJpa-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/booleans/jpa/PrimitiveBooleanJpa-description.adoc
index b2222bd22f..20323d01a3 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/booleans/jpa/PrimitiveBooleanJpa-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/booleans/jpa/PrimitiveBooleanJpa-description.adoc
@@ -1,18 +1,15 @@
 :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 `boolean` link:http://www.datanucleus.org:15080/products/accessplatform_5_2/jdo/mapping.html#_primitive_and_java_lang_types[out-of-the-box], so no special annotations are required.
+JDO supports `boolean` out-of-the-box, so no special annotations are required. see link:https://www.objectdb.com/java/jpa/entity/types#simple_java_data_types[ObjectDB]
 
 [source,java]
 ----
-include::PrimitiveBooleanJpa.java[tags="class"]
+include::PrimitiveBooleanJpa.java[tags=class]
 ----
-<.> a no-arg constructor is introduced by JDO enhancer
-<.> no additional JDO annotations required.
+<.> a no-arg constructor for convenience
+<.> no additional JPA annotations required.
 
 
-include::../PrimitiveBooleans-common.adoc[]
\ No newline at end of file
+include::../PrimitiveBooleans-common.adoc[]
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/booleans/jpa/PrimitiveBooleanJpa.java b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/booleans/jpa/PrimitiveBooleanJpa.java
index adc5f89302..f3ab96bd21 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/booleans/jpa/PrimitiveBooleanJpa.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/booleans/jpa/PrimitiveBooleanJpa.java
@@ -40,6 +40,7 @@ import lombok.Setter;
 
 import demoapp.dom.types.primitive.booleans.persistence.PrimitiveBooleanEntity;
 
+/* This file was GENERATED by the showcase generator (tooling). Do NOT edit! */
 @Profile("demo-jpa")
 //tag::class[]
 @Entity
@@ -50,7 +51,7 @@ import demoapp.dom.types.primitive.booleans.persistence.PrimitiveBooleanEntity;
 @EntityListeners(IsisEntityListener.class)
 @Named("demo.PrimitiveBooleanEntity")
 @DomainObject
-@NoArgsConstructor
+@NoArgsConstructor                                                             // <.>
 public class PrimitiveBooleanJpa
         extends PrimitiveBooleanEntity {
 
@@ -68,9 +69,9 @@ public class PrimitiveBooleanJpa
     @Title(prepend = "boolean (primitive) JPA entity: ")
     @PropertyLayout(fieldSetId = "read-only-properties", sequence = "1")
     @Getter @Setter
-    private boolean readOnlyProperty;                                   // <.>
+    private boolean readOnlyProperty;                              // <.>
 
-    @Property(editing = Editing.ENABLED)
+    @Property(editing = Editing.ENABLED)                                        
     @PropertyLayout(fieldSetId = "editable-properties", sequence = "1")
     @Getter @Setter
     private boolean readWriteProperty;
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/booleans/jpa/PrimitiveBooleanJpaEntities.java b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/booleans/jpa/PrimitiveBooleanJpaEntities.java
index 7034c80d1f..588befdf11 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/booleans/jpa/PrimitiveBooleanJpaEntities.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/booleans/jpa/PrimitiveBooleanJpaEntities.java
@@ -23,17 +23,18 @@ import org.springframework.stereotype.Service;
 
 import demoapp.dom._infra.values.ValueHolderRepository;
 
+/* This file was GENERATED by the showcase generator (tooling). Do NOT edit! */
 @Profile("demo-jpa")
 @Service
 public class PrimitiveBooleanJpaEntities
-extends ValueHolderRepository<Boolean, PrimitiveBooleanJpa> {
+extends ValueHolderRepository<java.lang.Boolean, PrimitiveBooleanJpa> {
 
     protected PrimitiveBooleanJpaEntities() {
         super(PrimitiveBooleanJpa.class);
     }
 
     @Override
-    protected PrimitiveBooleanJpa newDetachedEntity(Boolean value) {
+    protected PrimitiveBooleanJpa newDetachedEntity(java.lang.Boolean value) {
         return new PrimitiveBooleanJpa(value);
     }
 
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/booleans/persistence/PrimitiveBooleanEntity.java b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/booleans/persistence/PrimitiveBooleanEntity.java
index 10020604d1..ed108f97f8 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/booleans/persistence/PrimitiveBooleanEntity.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/booleans/persistence/PrimitiveBooleanEntity.java
@@ -26,16 +26,17 @@ import demoapp.dom._infra.asciidocdesc.HasAsciiDocDescription;
 import demoapp.dom._infra.values.ValueHolder;
 import demoapp.dom.types.primitive.booleans.holder.PrimitiveBooleanHolder2;
 
+/* This file was GENERATED by the showcase generator (tooling). Do NOT edit! */
 @Named("demo.PrimitiveBooleanEntity") // shared permissions with concrete sub class
 @DomainObject
 public abstract class PrimitiveBooleanEntity
 implements
     HasAsciiDocDescription,
     PrimitiveBooleanHolder2,
-    ValueHolder<Boolean> {
+    ValueHolder<java.lang.Boolean> {
 
     @Override
-    public Boolean value() {
+    public java.lang.Boolean value() {
         return isReadOnlyProperty();
     }
 
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/booleans/persistence/PrimitiveBooleanEntity.layout.xml b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/booleans/persistence/PrimitiveBooleanEntity.layout.xml
index d01899a6f0..bf6c6ddd0c 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/booleans/persistence/PrimitiveBooleanEntity.layout.xml
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/booleans/persistence/PrimitiveBooleanEntity.layout.xml
@@ -15,10 +15,13 @@
         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 />
 			<cpt:action id="actionReturning"/>
+			<cpt:action id="actionReturningArray"/>
 		</bs3:col>
 		<bs3:col span="2">
 			<cpt:fieldSet name="" id="sources" />
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/booleans/persistence/PrimitiveBooleanSeeding.java b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/booleans/persistence/PrimitiveBooleanSeeding.java
index f80d24a680..04776832d1 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/booleans/persistence/PrimitiveBooleanSeeding.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/booleans/persistence/PrimitiveBooleanSeeding.java
@@ -25,11 +25,13 @@ import org.springframework.stereotype.Service;
 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 PrimitiveBooleanSeeding extends SeedServiceAbstract {
+public class PrimitiveBooleanSeeding
+extends SeedServiceAbstract {
 
     @Inject
-    public PrimitiveBooleanSeeding(ValueHolderRepository<Boolean, ? extends PrimitiveBooleanEntity> entities) {
+    public PrimitiveBooleanSeeding(ValueHolderRepository<java.lang.Boolean, ? extends PrimitiveBooleanEntity> entities) {
         super(entities);
     }
 
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/booleans/vm/PrimitiveBooleanVm-description.adoc b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/booleans/vm/PrimitiveBooleanVm-description.adoc
index b4019413dc..15d74223ac 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/booleans/vm/PrimitiveBooleanVm-description.adoc
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/booleans/vm/PrimitiveBooleanVm-description.adoc
@@ -1,13 +1,14 @@
 :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 `boolean` link:https://docs.oracle.com/cd/E12840_01/wls/docs103/webserv/data_types.html#wp223908[out-of-the-box], so no special annotations are required.
+// // This file was GENERATED by the showcase generator (tooling). Do NOT edit!
+
+JAXB supports `boolean` out-of-the-box, so no special annotations are required. see link:https://docs.oracle.com/cd/E12840_01/wls/docs103/webserv/data_types.html#wp223908[Oracle]
 
 [source,java]
 ----
-include::PrimitiveBooleanVm.java[tags="class"]
+include::PrimitiveBooleanVm.java[tags=class]
 ----
 <.> a no-arg constructor is required by JAXB
 <.> no additional JAXB annotations required.
 
-
-include::../PrimitiveBooleans-common.adoc[]
\ No newline at end of file
+include::../PrimitiveBooleans-common.adoc[]
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/booleans/vm/PrimitiveBooleanVm.java b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/booleans/vm/PrimitiveBooleanVm.java
index e203124e71..9472f42c3a 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/booleans/vm/PrimitiveBooleanVm.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/booleans/vm/PrimitiveBooleanVm.java
@@ -37,14 +37,15 @@ import lombok.Setter;
 import demoapp.dom._infra.asciidocdesc.HasAsciiDocDescription;
 import demoapp.dom.types.primitive.booleans.holder.PrimitiveBooleanHolder2;
 
+/* This file was GENERATED by the showcase generator (tooling). Do NOT edit! */
 //tag::class[]
 @XmlRootElement(name = "root")
 @XmlType
 @XmlAccessorType(XmlAccessType.FIELD)
 @Named("demo.PrimitiveBooleanVm")
 @DomainObject(
-        nature= Nature.VIEW_MODEL)
-@lombok.NoArgsConstructor                                               // <.>
+        nature=Nature.VIEW_MODEL)
+@lombok.NoArgsConstructor                                                       // <.>
 public class PrimitiveBooleanVm
         implements HasAsciiDocDescription, PrimitiveBooleanHolder2 {
 
@@ -58,9 +59,9 @@ public class PrimitiveBooleanVm
     @Title(prepend = "boolean (primitive) view model: ")
     @PropertyLayout(fieldSetId = "read-only-properties", sequence = "1")
     @Getter @Setter
-    private boolean readOnlyProperty;                                   // <.>
+    private boolean readOnlyProperty;                              // <.>
 
-    @Property(editing = Editing.ENABLED)
+    @Property(editing = Editing.ENABLED)                                        
     @PropertyLayout(fieldSetId = "editable-properties", sequence = "1")
     @Getter @Setter
     private boolean readWriteProperty;
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/booleans/vm/PrimitiveBooleanVm.layout.xml b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/booleans/vm/PrimitiveBooleanVm.layout.xml
index d01899a6f0..bf6c6ddd0c 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/booleans/vm/PrimitiveBooleanVm.layout.xml
+++ b/examples/demo/domain/src/main/java/demoapp/dom/types/primitive/booleans/vm/PrimitiveBooleanVm.layout.xml
@@ -15,10 +15,13 @@
         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 />
 			<cpt:action id="actionReturning"/>
+			<cpt:action id="actionReturningArray"/>
 		</bs3:col>
 		<bs3:col span="2">
 			<cpt:fieldSet name="" id="sources" />
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 83ff9aed91..ed36e644eb 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
@@ -36,6 +36,13 @@ public enum ValueShowCase {
             .showcaseValueType("java.util.UUID")
             .showcaseValueSemantics("org.apache.isis.core.metamodel.valuesemantics.UUIDValueSemantics")),
 
+    PBOOL(fundamentalTypeSupportNotice()
+            .showcaseName("PrimitiveBoolean")
+            .javaPackage("demoapp.dom.types.primitive.booleans")
+            .showcaseValueType("boolean")
+            .showcaseValueSemantics("org.apache.isis.core.metamodel.valuesemantics.BooleanValueSemantics")
+            .templates(Template.PRIMITIVE_SET)
+            .templateVariant(TemplateVariant.PRIMITIVE)),
     PCHAR(fundamentalTypeSupportNotice()
             .showcaseName("PrimitiveChar")
             .javaPackage("demoapp.dom.types.primitive.chars")
@@ -86,6 +93,11 @@ public enum ValueShowCase {
             .templates(Template.PRIMITIVE_SET)
             .templateVariant(TemplateVariant.PRIMITIVE)),
 
+    WBOOL(fundamentalTypeSupportNotice()
+            .showcaseName("WrapperBoolean")
+            .javaPackage("demoapp.dom.types.javalang.booleans")
+            .showcaseValueType("java.lang.Boolean")
+            .showcaseValueSemantics("org.apache.isis.core.metamodel.valuesemantics.BooleanValueSemantics")),
     WCHAR(fundamentalTypeSupportNotice()
             .showcaseName("WrapperCharacter")
             .javaPackage("demoapp.dom.types.javalang.characters")
@@ -121,11 +133,6 @@ public enum ValueShowCase {
                 .javaPackage("demoapp.dom.types.javalang.floats")
                 .showcaseValueType("java.lang.Float")
                 .showcaseValueSemantics("org.apache.isis.core.metamodel.valuesemantics.FloatValueSemantics")),
-//    WBOOLEAN(fundamentalTypeSupportNotice()
-//                .showcaseName("WrapperBoolean")
-//                .javaPackage("demoapp.dom.types.javalang.booleans")
-//                .showcaseValueType("java.lang.Boolean")
-//                .showcaseValueSemantics("org.apache.isis.core.metamodel.valuesemantics.BooleanValueSemantics")),
     ;
 
     @Getter final ValueTypeGenTemplate.Config.ConfigBuilder configBuilder;
diff --git a/tooling/metaprog/src/main/java/org/apache/isis/tooling/metaprog/demoshowcases/value/ValueTypeGenTemplate.java b/tooling/metaprog/src/main/java/org/apache/isis/tooling/metaprog/demoshowcases/value/ValueTypeGenTemplate.java
index 677d2776b4..1edd1d0ec6 100644
--- a/tooling/metaprog/src/main/java/org/apache/isis/tooling/metaprog/demoshowcases/value/ValueTypeGenTemplate.java
+++ b/tooling/metaprog/src/main/java/org/apache/isis/tooling/metaprog/demoshowcases/value/ValueTypeGenTemplate.java
@@ -220,6 +220,11 @@ public class ValueTypeGenTemplate {
                     .map(Class::getName)
                     .orElse(config.showcaseValueType));
 
+            templateVars.put("showcase-type-getter-prefix",
+                    Optional.ofNullable(ClassUtils.resolvePrimitiveClassName(config.showcaseValueType))
+                    .map(cls->boolean.class.equals(cls) ? "is" : "get")
+                    .orElse("get"));
+
             templateVars.put("showcase-java-package", config.javaPackage);
             templateVars.put("showcase-value-semantics-provider", config.showcaseValueSemantics);
             templateVars.put("generated-file-notice", template.generator.formatAsComment(config.generatedFileNotice));
diff --git a/tooling/metaprog/src/main/resources/holder/$TemplateHolder2.java b/tooling/metaprog/src/main/resources/holder/$TemplateHolder2.java
index 87ae9cccf0..5c5c40f93a 100644
--- a/tooling/metaprog/src/main/resources/holder/$TemplateHolder2.java
+++ b/tooling/metaprog/src/main/resources/holder/$TemplateHolder2.java
@@ -35,7 +35,7 @@ public interface /*${showcase-name}*/Holder2 extends /*${showcase-name}*/Holder
         hidden = Where.ALL_TABLES,
         fieldSetId = "label-positions", sequence = "1")     // <.>
     default /*${showcase-type}*/ getReadOnlyPropertyDerivedLabelPositionLeft() {
-        return getReadOnlyProperty();
+        return /*${showcase-type-getter-prefix}*/ReadOnlyProperty();
     }
 
     @Property
@@ -46,7 +46,7 @@ public interface /*${showcase-name}*/Holder2 extends /*${showcase-name}*/Holder
         hidden = Where.ALL_TABLES,
         fieldSetId = "label-positions", sequence = "2")
     default /*${showcase-type}*/ getReadOnlyPropertyDerivedLabelPositionTop() {
-        return getReadOnlyProperty();
+        return /*${showcase-type-getter-prefix}*/ReadOnlyProperty();
     }
 
     @Property
@@ -57,7 +57,7 @@ public interface /*${showcase-name}*/Holder2 extends /*${showcase-name}*/Holder
         hidden = Where.ALL_TABLES,
         fieldSetId = "label-positions", sequence = "3")
     default /*${showcase-type}*/ getReadOnlyPropertyDerivedLabelPositionRight() {
-        return getReadOnlyProperty();
+        return /*${showcase-type-getter-prefix}*/ReadOnlyProperty();
     }
 
     @Property
@@ -68,7 +68,7 @@ public interface /*${showcase-name}*/Holder2 extends /*${showcase-name}*/Holder
         hidden = Where.ALL_TABLES,
         fieldSetId = "label-positions", sequence = "4")
     default /*${showcase-type}*/ getReadOnlyPropertyDerivedLabelPositionNone() {
-        return getReadOnlyProperty();
+        return /*${showcase-type-getter-prefix}*/ReadOnlyProperty();
     }
 
 }
diff --git a/tooling/metaprog/src/main/resources/holder/$TemplateHolder_actionReturning.java b/tooling/metaprog/src/main/resources/holder/$TemplateHolder_actionReturning.java
index 3bd37396ea..b7f0dba556 100644
--- a/tooling/metaprog/src/main/resources/holder/$TemplateHolder_actionReturning.java
+++ b/tooling/metaprog/src/main/resources/holder/$TemplateHolder_actionReturning.java
@@ -32,7 +32,7 @@ public class /*${showcase-name}*/Holder_actionReturning {
     private final /*${showcase-name}*/Holder holder;
 
     public /*${showcase-type}*/ act() {
-        return holder.getReadOnlyProperty();
+        return holder./*${showcase-type-getter-prefix}*/ReadOnlyProperty();
     }
 
 }
diff --git a/tooling/metaprog/src/main/resources/holder/$TemplateHolder_mixinProperty.java b/tooling/metaprog/src/main/resources/holder/$TemplateHolder_mixinProperty.java
index 0d5d9ed497..655001cdb1 100644
--- a/tooling/metaprog/src/main/resources/holder/$TemplateHolder_mixinProperty.java
+++ b/tooling/metaprog/src/main/resources/holder/$TemplateHolder_mixinProperty.java
@@ -34,7 +34,7 @@ public class /*${showcase-name}*/Holder_mixinProperty {
     private final /*${showcase-name}*/Holder holder;
 
     public /*${showcase-type}*/ prop() {
-        return holder.getReadOnlyProperty();
+        return holder./*${showcase-type-getter-prefix}*/ReadOnlyProperty();
     }
 
 }
diff --git a/tooling/metaprog/src/main/resources/holder/$TemplateHolder_updateReadOnlyProperty.java b/tooling/metaprog/src/main/resources/holder/$TemplateHolder_updateReadOnlyProperty.java
index ef40127235..8c38eac45d 100644
--- a/tooling/metaprog/src/main/resources/holder/$TemplateHolder_updateReadOnlyProperty.java
+++ b/tooling/metaprog/src/main/resources/holder/$TemplateHolder_updateReadOnlyProperty.java
@@ -47,7 +47,7 @@ public class /*${showcase-name}*/Holder_updateReadOnlyProperty {
     }
 
     @MemberSupport public /*${showcase-type}*/ default0Act() {
-        return holder.getReadOnlyProperty();
+        return holder./*${showcase-type-getter-prefix}*/ReadOnlyProperty();
     }
 
 }
diff --git a/tooling/metaprog/src/main/resources/holder/$TemplateHolder_updateReadOnlyPropertyWithChoices.java b/tooling/metaprog/src/main/resources/holder/$TemplateHolder_updateReadOnlyPropertyWithChoices.java
index 425c85ebf3..f9360fabec 100644
--- a/tooling/metaprog/src/main/resources/holder/$TemplateHolder_updateReadOnlyPropertyWithChoices.java
+++ b/tooling/metaprog/src/main/resources/holder/$TemplateHolder_updateReadOnlyPropertyWithChoices.java
@@ -53,7 +53,7 @@ public class /*${showcase-name}*/Holder_updateReadOnlyPropertyWithChoices {
     }
 
     @MemberSupport public /*${showcase-type}*/ default0Act() {
-        return holder.getReadOnlyProperty();
+        return holder./*${showcase-type-getter-prefix}*/ReadOnlyProperty();
     }
 
     @MemberSupport public List</*${showcase-type-boxed}*/> choices0Act() {
diff --git a/tooling/metaprog/src/main/resources/holder/$TemplateHolder~primitive.java b/tooling/metaprog/src/main/resources/holder/$TemplateHolder~primitive.java
index 86f09406a6..944e02eaa8 100644
--- a/tooling/metaprog/src/main/resources/holder/$TemplateHolder~primitive.java
+++ b/tooling/metaprog/src/main/resources/holder/$TemplateHolder~primitive.java
@@ -25,10 +25,10 @@ import javax.inject.Named;
 //tag::class[]
 public interface /*${showcase-name}*/Holder {
 
-    /*${showcase-type}*/ getReadOnlyProperty();
+    /*${showcase-type}*/ /*${showcase-type-getter-prefix}*/ReadOnlyProperty();
     void setReadOnlyProperty(/*${showcase-type}*/ c);
 
-    /*${showcase-type}*/ getReadWriteProperty();
+    /*${showcase-type}*/ /*${showcase-type-getter-prefix}*/ReadWriteProperty();
     void setReadWriteProperty(/*${showcase-type}*/ c);
 
 }
diff --git a/tooling/metaprog/src/main/resources/persistence/$TemplateEntity.java b/tooling/metaprog/src/main/resources/persistence/$TemplateEntity.java
index 1f01474ae3..68f59eadd6 100644
--- a/tooling/metaprog/src/main/resources/persistence/$TemplateEntity.java
+++ b/tooling/metaprog/src/main/resources/persistence/$TemplateEntity.java
@@ -37,7 +37,7 @@ implements
 
     @Override
     public /*${showcase-type-boxed}*/ value() {
-        return getReadOnlyProperty();
+        return /*${showcase-type-getter-prefix}*/ReadOnlyProperty();
     }
 
 }
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 526a753994..5ec3f85e6a 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
@@ -67,7 +67,7 @@ class ValueTypeGenTemplateTest {
     @BeforeAll
     static void setup() {
         outputRootDir = PERSIST
-                ? new File("D:/tmp")
+                ? _Files.makeDir(new File("D:/tmp/valueTypes"))
                 : _Files.tempDir("isis-tooling-showcases");
 
         log.info("tmp dir created in {}", outputRootDir);