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

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

commit ab4af890a6b1592c65bf61e5ddcff394dcc7a7c4
Author: danhaywood <[email protected]>
AuthorDate: Thu May 18 07:20:39 2023 +0100

    CAUSEWAY-2485 : updates templates
---
 .../org/apache/causeway/commons/io/FileUtils.java  | 17 ++++++
 .../demoshowcases/value/ValueShowCase.java         | 13 ++++-
 .../demoshowcases/value/ValueTypeGenTemplate.java  | 60 ++++++++++++++++++++--
 .../src/main/resources/$Templates-common.adoc      |  2 -
 .../resources/$Templates-common~primitive.adoc     |  2 -
 .../src/main/resources/$Templates-description.adoc |  8 ++-
 .../$Templates-description~primitive.adoc          |  2 -
 .../metaprog/src/main/resources/$Templates.java    |  1 -
 .../src/main/resources/$Templates.layout.xml       |  2 -
 .../{$Templates.java => $Templates~primitive.java} |  3 --
 .../src/main/resources/holder/$TemplateHolder.java |  1 -
 .../main/resources/holder/$TemplateHolder2.java    | 17 +++---
 ...older2.java => $TemplateHolder2~primitive.java} | 18 +++----
 .../holder/$TemplateHolder_actionReturning.java    |  3 +-
 .../$TemplateHolder_actionReturningArray.java      |  1 -
 ...lateHolder_actionReturningArray~primitive.java} |  3 --
 .../$TemplateHolder_actionReturningCollection.java |  1 -
 ...older_actionReturningCollection~primitive.java} |  3 --
 ...$TemplateHolder_actionReturning~primitive.java} |  5 +-
 .../holder/$TemplateHolder_mixinProperty.java      |  3 +-
 ...> $TemplateHolder_mixinProperty~primitive.java} |  5 +-
 ...plateHolder_updateReadOnlyOptionalProperty.java |  1 -
 ..._updateReadOnlyOptionalPropertyWithChoices.java |  1 -
 .../$TemplateHolder_updateReadOnlyProperty.java    |  3 +-
 ...teHolder_updateReadOnlyPropertyWithChoices.java |  3 +-
 ...dateReadOnlyPropertyWithChoices~primitive.java} |  5 +-
 ...teHolder_updateReadOnlyProperty~primitive.java} |  5 +-
 .../holder/$TemplateHolder~primitive.java          |  7 +--
 .../resources/jdo/$TemplateJdo-description.adoc    |  4 +-
 .../jdo/$TemplateJdo-description~primitive.adoc    |  4 +-
 .../src/main/resources/jdo/$TemplateJdo.java       |  1 -
 .../main/resources/jdo/$TemplateJdoEntities.java   |  1 -
 ...es.java => $TemplateJdoEntities~primitive.java} |  3 --
 .../src/main/resources/jdo/$TemplateJdo~lob.java   |  1 -
 .../main/resources/jdo/$TemplateJdo~primitive.java |  3 --
 .../resources/jpa/$TemplateJpa-description.adoc    |  4 +-
 .../jpa/$TemplateJpa-description~primitive.adoc    |  4 +-
 .../src/main/resources/jpa/$TemplateJpa.java       |  1 -
 .../main/resources/jpa/$TemplateJpaEntities.java   |  1 -
 ...es.java => $TemplateJpaEntities~primitive.java} |  3 --
 .../src/main/resources/jpa/$TemplateJpa~lob.java   |  1 -
 .../main/resources/jpa/$TemplateJpa~primitive.java |  3 --
 .../resources/persistence/$TemplateEntity.java     |  3 +-
 .../persistence/$TemplateEntity.layout.xml         |  2 -
 ...eEntity.java => $TemplateEntity~primitive.java} |  5 +-
 .../$TemplateEntity~primitive.layout.xml           |  2 -
 .../resources/persistence/$TemplateSeeding.java    |  1 -
 ...eeding.java => $TemplateSeeding~primitive.java} |  3 --
 .../main/resources/samples/$TemplateSamples.java   |  1 -
 ...amples.java => $TemplateSamples~primitive.java} |  3 --
 .../main/resources/vm/$TemplateVm-description.adoc |  4 +-
 .../vm/$TemplateVm-description~primitive.adoc      |  4 +-
 .../src/main/resources/vm/$TemplateVm.java         |  1 -
 .../src/main/resources/vm/$TemplateVm.layout.xml   |  2 -
 .../main/resources/vm/$TemplateVm~primitive.java   |  3 --
 .../resources/vm/$TemplateVm~primitive.layout.xml  |  2 -
 .../value/ValueTypeGenTemplateTest.java            |  6 ++-
 57 files changed, 125 insertions(+), 146 deletions(-)

diff --git 
a/commons/src/main/java/org/apache/causeway/commons/io/FileUtils.java 
b/commons/src/main/java/org/apache/causeway/commons/io/FileUtils.java
index 89f345661c..f4f21f84d7 100644
--- a/commons/src/main/java/org/apache/causeway/commons/io/FileUtils.java
+++ b/commons/src/main/java/org/apache/causeway/commons/io/FileUtils.java
@@ -18,8 +18,12 @@
  */
 package org.apache.causeway.commons.io;
 
+import java.io.BufferedReader;
+import java.io.BufferedWriter;
 import java.io.File;
 import java.io.FileInputStream;
+import java.io.FileReader;
+import java.io.FileWriter;
 import java.io.IOException;
 import java.io.InputStream;
 import java.nio.file.DirectoryStream;
@@ -305,4 +309,17 @@ public class FileUtils {
         Files.copy(from.toPath(), to.toPath(), 
StandardCopyOption.REPLACE_EXISTING);
     }
 
+    @SneakyThrows
+    public void copyWithCrlf(final @NonNull File from, final @NonNull File to) 
{
+        try (final BufferedReader reader = new BufferedReader(new 
FileReader(from));
+             final BufferedWriter writer = new BufferedWriter(new 
FileWriter(to))) {
+
+            String line;
+            while ((line = reader.readLine()) != null) {
+                // Append CRLF line endings to each line
+                writer.write(line + "\r\n");
+            }
+        }
+    }
+
 }
diff --git 
a/tooling/metaprog/src/main/java/org/apache/causeway/tooling/metaprog/demoshowcases/value/ValueShowCase.java
 
b/tooling/metaprog/src/main/java/org/apache/causeway/tooling/metaprog/demoshowcases/value/ValueShowCase.java
index f942e1d1e5..dfd9a63d62 100644
--- 
a/tooling/metaprog/src/main/java/org/apache/causeway/tooling/metaprog/demoshowcases/value/ValueShowCase.java
+++ 
b/tooling/metaprog/src/main/java/org/apache/causeway/tooling/metaprog/demoshowcases/value/ValueShowCase.java
@@ -35,12 +35,18 @@ public enum ValueShowCase {
             .javaPackage("demoapp.dom.types.causeway.blobs")
             
.showcaseValueFullyQualifiedType("org.apache.causeway.applib.value.Blob")
             
.showcaseValueSemantics("org.apache.causeway.core.metamodel.valuesemantics.BlobValueSemantics")
+            .description("binary large objects")
+            .causewaySpecific(true)
+            .excludeJdoJpa(true)
             .templateVariant(TemplateVariant.LOB)),
     CLOB(Config.builder()
             .showcaseName("CausewayClob")
             .javaPackage("demoapp.dom.types.causeway.clobs")
             
.showcaseValueFullyQualifiedType("org.apache.causeway.applib.value.Clob")
             
.showcaseValueSemantics("org.apache.causeway.core.metamodel.valuesemantics.ClobValueSemantics")
+            .description("character large objects")
+            .causewaySpecific(true)
+            .excludeJdoJpa(true)
             .templateVariant(TemplateVariant.LOB)),
     LOCALRESOURCEPATH(Config.builder()
             .showcaseName("CausewayLocalResourcePath")
@@ -53,6 +59,9 @@ public enum ValueShowCase {
             .javaPackage("demoapp.dom.types.causeway.passwords")
             
.showcaseValueFullyQualifiedType("org.apache.causeway.applib.value.Password")
             
.showcaseValueSemantics("org.apache.causeway.core.metamodel.valuesemantics.PasswordValueSemantics")
+            .description("strings that are automatically masked as passwords")
+            .causewaySpecific(true)
+            .excludeJaxb(true)
             .templateVariant(TemplateVariant.DEFAULT)),
     TREENODE(Config.builder()
             .showcaseName("CausewayTreeNode")
@@ -69,7 +78,7 @@ public enum ValueShowCase {
     JAVAAWTBUFFEREDIMAGE(Config.builder()
             .showcaseName("BufferedImage")
             .javaPackage("demoapp.dom.types.javaawt.images")
-            .showcaseValueFullyQualifiedType("java.awt.BufferedImage")
+            .showcaseValueFullyQualifiedType("java.awt.image.BufferedImage")
             
.showcaseValueSemantics("org.apache.causeway.core.metamodel.valuesemantics.BufferedImageValueSemantics")
             .templateVariant(TemplateVariant.DEFAULT)),
     JAVAMATHBIGDECIMAL(Config.builder()
@@ -142,7 +151,7 @@ public enum ValueShowCase {
             .showcaseName("JavaUtilDate")
             .javaPackage("demoapp.dom.types.javautil.javautildate")
             .showcaseValueFullyQualifiedType("java.util.Date")
-            
.showcaseValueSemantics("org.apache.causeway.extensions.fullcalendar.applib.value.CalendarEventSemantics")
+            
.showcaseValueSemantics("org.apache.causeway.core.metamodel.valuesemantics.temporal.legacy.JavaUtilDateValueSemantics")
             .templateVariant(TemplateVariant.DEFAULT)),
     JODADATETIME(Config.builder()
             .showcaseName("JodaDateTime")
diff --git 
a/tooling/metaprog/src/main/java/org/apache/causeway/tooling/metaprog/demoshowcases/value/ValueTypeGenTemplate.java
 
b/tooling/metaprog/src/main/java/org/apache/causeway/tooling/metaprog/demoshowcases/value/ValueTypeGenTemplate.java
index a522433ef8..035add04f2 100644
--- 
a/tooling/metaprog/src/main/java/org/apache/causeway/tooling/metaprog/demoshowcases/value/ValueTypeGenTemplate.java
+++ 
b/tooling/metaprog/src/main/java/org/apache/causeway/tooling/metaprog/demoshowcases/value/ValueTypeGenTemplate.java
@@ -39,6 +39,7 @@ import lombok.Builder;
 import lombok.Getter;
 import lombok.RequiredArgsConstructor;
 import lombok.Singular;
+import lombok.SneakyThrows;
 import lombok.Value;
 import lombok.val;
 
@@ -49,17 +50,56 @@ public class ValueTypeGenTemplate {
     public static class Config {
         final File outputRootDir;
         final String showcaseName;
+        /**
+         * If set, then the template files in the `jdo` and `jpa` packages are 
NOT generated.
+         * This is to accommodate data types such as Blob and Clob that need 
custom treatment.
+         */
+        final boolean excludeJdoJpa;
+        /**
+         * If set, then the template files in the `jaxb` package is NOT 
generated.
+         * This is to accommodate data types such as Password that need custom 
treatment.
+         */
+        final boolean excludeJaxb;
+        /**
+         * If present, is used within the first sentence.
+         */
+        final String description;
+        /**
+         * If present, adds a NOTE: ...  and also changes what {@link 
#getJdoTypeSupportNotice()}, {@link #getJpaTypeSupportNotice()} and {@link 
#getJaxbTypeSupportNotice()} returns.
+         */
+        final boolean causewaySpecific;
         final String showcaseValueFullyQualifiedType;
         final String showcaseValueSemantics;
         @Builder.Default
         final String jdoTypeSupportNotice =
             "JDO supports `#{showcase-simple-type}` out-of-the-box, so no 
special annotations are required.";
+
+        public String getJdoTypeSupportNotice() {
+            return causewaySpecific
+                        ? "Apache Causeway provides its own implementation of 
the relevant JDO extension points for the `" + getShowcaseValueSimpleType() + 
"` value type, meaning that JDO can persist properties of this value type 
without further configuration."
+                        : jdoTypeSupportNotice;
+        }
+
         @Builder.Default
         final String jpaTypeSupportNotice =
             "JPA supports `#{showcase-simple-type}` out-of-the-box, so no 
special annotations are required.";
+
+        public String getJpaTypeSupportNotice() {
+            return causewaySpecific
+                        ? "Apache Causeway provides its own implementation of 
the relevant JPA extension points for the `" + getShowcaseValueSimpleType() + 
"` value type, meaning that JPA can persist properties of this value type 
without further configuration."
+                        : jpaTypeSupportNotice;
+        }
+
         @Builder.Default
         final String jaxbTypeSupportNotice =
             "JAXB supports `#{showcase-simple-type}` out-of-the-box, so no 
special annotations are required.";
+
+        public String getJaxbTypeSupportNotice() {
+            return causewaySpecific
+                    ? "Apache Causeway provides its own implementation of 
`@XmlJavaTypeAdapter` for the `" + getShowcaseValueSimpleType() + "` value 
type, meaning that JAXB can serialize properties of this value type without 
further configuration."
+                    : jaxbTypeSupportNotice;
+        }
+
         final String javaPackage;
         @Builder.Default
         final String fileNamePlaceholderForShowcaseName = "$Template";
@@ -215,11 +255,21 @@ public class ValueTypeGenTemplate {
 
     final Config config;
 
+    @SneakyThrows
     public void generate(final Consumer<File> onSourceGenerated) {
 
         for(var template: config.getTemplates()) {
 
             val templateFile = template.templateFile(config);
+            String templateFilePath = templateFile.getCanonicalPath();
+            if (config.isExcludeJdoJpa() &&
+               (templateFilePath.contains("jdo") || 
templateFilePath.contains("jpa"))) {
+                continue;
+            }
+            if (config.isExcludeJaxb() &&
+                templateFilePath.contains("jaxb")) {
+                continue;
+            }
 
             val genTarget = template.outputFile(config);
 
@@ -227,13 +277,15 @@ public class ValueTypeGenTemplate {
             templateVars.putAll(config.templateVariables);
             templateVars.put("java-package", template.javaPackage(config));
             templateVars.put("showcase-name", config.showcaseName);
+            templateVars.put("showcase-description", (config.getDescription() 
!= null ? config.getDescription() + ", using" : ""));
+            templateVars.put("showcase-note-if-causeway-specific", 
(config.isCausewaySpecific() ? "NOTE: This is an Apache Causeway specific data 
type.\n\n": ""));
             templateVars.put("showcase-simple-type", 
config.getShowcaseValueSimpleType());
             templateVars.put("showcase-fully-qualified-type", 
config.showcaseValueFullyQualifiedType);
             templateVars.put("showcase-simple-type-boxed",
                     
Optional.ofNullable(ClassUtils.resolvePrimitiveClassName(config.showcaseValueFullyQualifiedType))
                     .map(ClassUtils::resolvePrimitiveIfNecessary)
                     .map(Class::getName)
-                    .orElse(config.showcaseValueFullyQualifiedType));
+                    .orElse(config.getShowcaseValueSimpleType()));
 
             templateVars.put("showcase-simple-type-getter-prefix",
                     
Optional.ofNullable(ClassUtils.resolvePrimitiveClassName(config.showcaseValueFullyQualifiedType))
@@ -244,9 +296,9 @@ public class ValueTypeGenTemplate {
             templateVars.put("showcase-value-semantics-provider", 
config.showcaseValueSemantics);
             templateVars.put("generated-file-notice", 
template.generator.formatAsComment(config.generatedFileNotice));
 
-            templateVars.put("jdo-type-support-notice", 
config.jdoTypeSupportNotice);
-            templateVars.put("jpa-type-support-notice", 
config.jpaTypeSupportNotice);
-            templateVars.put("jaxb-type-support-notice", 
config.jaxbTypeSupportNotice);
+            templateVars.put("jdo-type-support-notice", 
config.getJdoTypeSupportNotice());
+            templateVars.put("jpa-type-support-notice", 
config.getJpaTypeSupportNotice());
+            templateVars.put("jaxb-type-support-notice", 
config.getJaxbTypeSupportNotice());
 
 
             // allow for ADOC IDE tools, to properly resolve include 
statements,
diff --git a/tooling/metaprog/src/main/resources/$Templates-common.adoc 
b/tooling/metaprog/src/main/resources/$Templates-common.adoc
index b62f77449c..438571b6ff 100644
--- a/tooling/metaprog/src/main/resources/$Templates-common.adoc
+++ b/tooling/metaprog/src/main/resources/$Templates-common.adoc
@@ -1,7 +1,5 @@
 :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 [...]
 
-//#{generated-file-notice}
-
 == Mixin actions
 
 A number of mixin actions contribute through the `#{showcase-name}Holder` 
interface, demonstrate the use of `#{showcase-simple-type}` as a parameter and 
as a return type.
diff --git 
a/tooling/metaprog/src/main/resources/$Templates-common~primitive.adoc 
b/tooling/metaprog/src/main/resources/$Templates-common~primitive.adoc
index 3fd411afd2..e7b1173085 100644
--- a/tooling/metaprog/src/main/resources/$Templates-common~primitive.adoc
+++ b/tooling/metaprog/src/main/resources/$Templates-common~primitive.adoc
@@ -1,7 +1,5 @@
 :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 [...]
 
-//#{generated-file-notice}
-
 == Mixin actions
 
 A number of mixin actions contribute through the `#{showcase-name}Holder` 
interface, demonstrate the use of `#{showcase-simple-type}` as a parameter and 
as a return type.
diff --git a/tooling/metaprog/src/main/resources/$Templates-description.adoc 
b/tooling/metaprog/src/main/resources/$Templates-description.adoc
index c8ce1f963a..756564d374 100644
--- a/tooling/metaprog/src/main/resources/$Templates-description.adoc
+++ b/tooling/metaprog/src/main/resources/$Templates-description.adoc
@@ -1,11 +1,9 @@
 :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 [...]
 
-//#{generated-file-notice}
-
-The framework has built-in support for the `#{showcase-simple-type}` data type.
+The framework has built-in support for #{showcase-description} the 
`#{showcase-simple-type}` data type.
 These can be used either in entities or view models.
 
-== How this demo works
+#{showcase-note-if-causeway-specific}== How this demo works
 
 On the left hand side is a collection of entities that uses the 
`#{showcase-simple-type}` datatype.
 There is also an action that opens a view model; this view model also uses the 
`#{showcase-simple-type}` datatype.
@@ -25,4 +23,4 @@ include::holder/#{showcase-name}Holder.java[tags=class]
 
 * The `#{showcase-name}Holder2` 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.
diff --git 
a/tooling/metaprog/src/main/resources/$Templates-description~primitive.adoc 
b/tooling/metaprog/src/main/resources/$Templates-description~primitive.adoc
index 05068f3cd7..406ce0524b 100644
--- a/tooling/metaprog/src/main/resources/$Templates-description~primitive.adoc
+++ b/tooling/metaprog/src/main/resources/$Templates-description~primitive.adoc
@@ -1,7 +1,5 @@
 :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 [...]
 
-//#{generated-file-notice}
-
 
 The framework has built-in support for the (primitive) 
`#{showcase-simple-type}` data type.
 These can be used either in entities or view models.
diff --git a/tooling/metaprog/src/main/resources/$Templates.java 
b/tooling/metaprog/src/main/resources/$Templates.java
index 4829d3ec86..3a7cf00483 100644
--- a/tooling/metaprog/src/main/resources/$Templates.java
+++ b/tooling/metaprog/src/main/resources/$Templates.java
@@ -47,7 +47,6 @@ import demoapp.dom.types.Samples;
 import /*${showcase-java-package}*/.persistence./*${showcase-name}*/Entity;
 import /*${showcase-java-package}*/.vm./*${showcase-name}*/Vm;
 
-/*${generated-file-notice}*/
 @XmlRootElement(name = "Demo")
 @XmlType
 @XmlAccessorType(XmlAccessType.FIELD)
diff --git a/tooling/metaprog/src/main/resources/$Templates.layout.xml 
b/tooling/metaprog/src/main/resources/$Templates.layout.xml
index 234efaca1c..671874816c 100644
--- a/tooling/metaprog/src/main/resources/$Templates.layout.xml
+++ b/tooling/metaprog/src/main/resources/$Templates.layout.xml
@@ -15,8 +15,6 @@
         xmlns:cpt="https://causeway.apache.org/applib/layout/component";
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";>
 
-       <!--${generated-file-notice}-->
-
        <bs3:row>
                <bs3:col span="10" unreferencedActions="true">
                        <cpt:domainObject />
diff --git a/tooling/metaprog/src/main/resources/$Templates.java 
b/tooling/metaprog/src/main/resources/$Templates~primitive.java
similarity index 97%
copy from tooling/metaprog/src/main/resources/$Templates.java
copy to tooling/metaprog/src/main/resources/$Templates~primitive.java
index 4829d3ec86..4281037226 100644
--- a/tooling/metaprog/src/main/resources/$Templates.java
+++ b/tooling/metaprog/src/main/resources/$Templates~primitive.java
@@ -39,15 +39,12 @@ import org.apache.causeway.applib.annotation.ObjectSupport;
 import org.apache.causeway.applib.annotation.PromptStyle;
 import org.apache.causeway.applib.annotation.SemanticsOf;
 
-import /*${showcase-fully-qualified-type}*/;
-
 import demoapp.dom._infra.asciidocdesc.HasAsciiDocDescription;
 import demoapp.dom._infra.values.ValueHolderRepository;
 import demoapp.dom.types.Samples;
 import /*${showcase-java-package}*/.persistence./*${showcase-name}*/Entity;
 import /*${showcase-java-package}*/.vm./*${showcase-name}*/Vm;
 
-/*${generated-file-notice}*/
 @XmlRootElement(name = "Demo")
 @XmlType
 @XmlAccessorType(XmlAccessType.FIELD)
diff --git a/tooling/metaprog/src/main/resources/holder/$TemplateHolder.java 
b/tooling/metaprog/src/main/resources/holder/$TemplateHolder.java
index c00b4263ab..b5ea49fcef 100644
--- a/tooling/metaprog/src/main/resources/holder/$TemplateHolder.java
+++ b/tooling/metaprog/src/main/resources/holder/$TemplateHolder.java
@@ -22,7 +22,6 @@ import javax.inject.Named;
 
 import /*${showcase-fully-qualified-type}*/;
 
-/*${generated-file-notice}*/
 @Named("demo./*${showcase-name}*/Holder")
 //tag::class[]
 public interface /*${showcase-name}*/Holder {
diff --git a/tooling/metaprog/src/main/resources/holder/$TemplateHolder2.java 
b/tooling/metaprog/src/main/resources/holder/$TemplateHolder2.java
index 63eba1b856..162e691b78 100644
--- a/tooling/metaprog/src/main/resources/holder/$TemplateHolder2.java
+++ b/tooling/metaprog/src/main/resources/holder/$TemplateHolder2.java
@@ -24,7 +24,6 @@ import org.apache.causeway.applib.annotation.PropertyLayout;
 import org.apache.causeway.applib.annotation.Where;
 import /*${showcase-fully-qualified-type}*/;
 
-/*${generated-file-notice}*/
 //tag::class[]
 public interface /*${showcase-name}*/Holder2 extends 
/*${showcase-name}*/Holder {
 
@@ -35,8 +34,8 @@ public interface /*${showcase-name}*/Holder2 extends 
/*${showcase-name}*/Holder
             "@PropertyLayout(labelPosition=LEFT)",
         hidden = Where.ALL_TABLES,
         fieldSetId = "label-positions", sequence = "1")     // <.>
-    default /*${showcase-simple-type}*/ 
/*${showcase-type-getter-prefix}*/ReadOnlyPropertyDerivedLabelPositionLeft() {
-        return /*${showcase-type-getter-prefix}*/ReadOnlyProperty();
+    default /*${showcase-simple-type}*/ 
/*${showcase-simple-type-getter-prefix}*/ReadOnlyPropertyDerivedLabelPositionLeft()
 {
+        return /*${showcase-simple-type-getter-prefix}*/ReadOnlyProperty();
     }
 
     @Property
@@ -46,8 +45,8 @@ public interface /*${showcase-name}*/Holder2 extends 
/*${showcase-name}*/Holder
             "@PropertyLayout(labelPosition=TOP)",
         hidden = Where.ALL_TABLES,
         fieldSetId = "label-positions", sequence = "2")
-    default /*${showcase-simple-type}*/ 
/*${showcase-type-getter-prefix}*/ReadOnlyPropertyDerivedLabelPositionTop() {
-        return /*${showcase-type-getter-prefix}*/ReadOnlyProperty();
+    default /*${showcase-simple-type}*/ 
/*${showcase-simple-type-getter-prefix}*/ReadOnlyPropertyDerivedLabelPositionTop()
 {
+        return /*${showcase-simple-type-getter-prefix}*/ReadOnlyProperty();
     }
 
     @Property
@@ -57,8 +56,8 @@ public interface /*${showcase-name}*/Holder2 extends 
/*${showcase-name}*/Holder
             "@PropertyLayout(labelPosition=RIGHT)",
         hidden = Where.ALL_TABLES,
         fieldSetId = "label-positions", sequence = "3")
-    default /*${showcase-simple-type}*/ 
/*${showcase-type-getter-prefix}*/ReadOnlyPropertyDerivedLabelPositionRight() {
-        return /*${showcase-type-getter-prefix}*/ReadOnlyProperty();
+    default /*${showcase-simple-type}*/ 
/*${showcase-simple-type-getter-prefix}*/ReadOnlyPropertyDerivedLabelPositionRight()
 {
+        return /*${showcase-simple-type-getter-prefix}*/ReadOnlyProperty();
     }
 
     @Property
@@ -68,8 +67,8 @@ public interface /*${showcase-name}*/Holder2 extends 
/*${showcase-name}*/Holder
             "@PropertyLayout(labelPosition=NONE)",
         hidden = Where.ALL_TABLES,
         fieldSetId = "label-positions", sequence = "4")
-    default /*${showcase-simple-type}*/ 
/*${showcase-type-getter-prefix}*/ReadOnlyPropertyDerivedLabelPositionNone() {
-        return /*${showcase-type-getter-prefix}*/ReadOnlyProperty();
+    default /*${showcase-simple-type}*/ 
/*${showcase-simple-type-getter-prefix}*/ReadOnlyPropertyDerivedLabelPositionNone()
 {
+        return /*${showcase-simple-type-getter-prefix}*/ReadOnlyProperty();
     }
 
 }
diff --git a/tooling/metaprog/src/main/resources/holder/$TemplateHolder2.java 
b/tooling/metaprog/src/main/resources/holder/$TemplateHolder2~primitive.java
similarity index 74%
copy from tooling/metaprog/src/main/resources/holder/$TemplateHolder2.java
copy to 
tooling/metaprog/src/main/resources/holder/$TemplateHolder2~primitive.java
index 63eba1b856..1b0ab383b6 100644
--- a/tooling/metaprog/src/main/resources/holder/$TemplateHolder2.java
+++ b/tooling/metaprog/src/main/resources/holder/$TemplateHolder2~primitive.java
@@ -22,9 +22,7 @@ import org.apache.causeway.applib.annotation.LabelPosition;
 import org.apache.causeway.applib.annotation.Property;
 import org.apache.causeway.applib.annotation.PropertyLayout;
 import org.apache.causeway.applib.annotation.Where;
-import /*${showcase-fully-qualified-type}*/;
 
-/*${generated-file-notice}*/
 //tag::class[]
 public interface /*${showcase-name}*/Holder2 extends 
/*${showcase-name}*/Holder {
 
@@ -35,8 +33,8 @@ public interface /*${showcase-name}*/Holder2 extends 
/*${showcase-name}*/Holder
             "@PropertyLayout(labelPosition=LEFT)",
         hidden = Where.ALL_TABLES,
         fieldSetId = "label-positions", sequence = "1")     // <.>
-    default /*${showcase-simple-type}*/ 
/*${showcase-type-getter-prefix}*/ReadOnlyPropertyDerivedLabelPositionLeft() {
-        return /*${showcase-type-getter-prefix}*/ReadOnlyProperty();
+    default /*${showcase-simple-type}*/ 
/*${showcase-simple-type-getter-prefix}*/ReadOnlyPropertyDerivedLabelPositionLeft()
 {
+        return /*${showcase-simple-type-getter-prefix}*/ReadOnlyProperty();
     }
 
     @Property
@@ -46,8 +44,8 @@ public interface /*${showcase-name}*/Holder2 extends 
/*${showcase-name}*/Holder
             "@PropertyLayout(labelPosition=TOP)",
         hidden = Where.ALL_TABLES,
         fieldSetId = "label-positions", sequence = "2")
-    default /*${showcase-simple-type}*/ 
/*${showcase-type-getter-prefix}*/ReadOnlyPropertyDerivedLabelPositionTop() {
-        return /*${showcase-type-getter-prefix}*/ReadOnlyProperty();
+    default /*${showcase-simple-type}*/ 
/*${showcase-simple-type-getter-prefix}*/ReadOnlyPropertyDerivedLabelPositionTop()
 {
+        return /*${showcase-simple-type-getter-prefix}*/ReadOnlyProperty();
     }
 
     @Property
@@ -57,8 +55,8 @@ public interface /*${showcase-name}*/Holder2 extends 
/*${showcase-name}*/Holder
             "@PropertyLayout(labelPosition=RIGHT)",
         hidden = Where.ALL_TABLES,
         fieldSetId = "label-positions", sequence = "3")
-    default /*${showcase-simple-type}*/ 
/*${showcase-type-getter-prefix}*/ReadOnlyPropertyDerivedLabelPositionRight() {
-        return /*${showcase-type-getter-prefix}*/ReadOnlyProperty();
+    default /*${showcase-simple-type}*/ 
/*${showcase-simple-type-getter-prefix}*/ReadOnlyPropertyDerivedLabelPositionRight()
 {
+        return /*${showcase-simple-type-getter-prefix}*/ReadOnlyProperty();
     }
 
     @Property
@@ -68,8 +66,8 @@ public interface /*${showcase-name}*/Holder2 extends 
/*${showcase-name}*/Holder
             "@PropertyLayout(labelPosition=NONE)",
         hidden = Where.ALL_TABLES,
         fieldSetId = "label-positions", sequence = "4")
-    default /*${showcase-simple-type}*/ 
/*${showcase-type-getter-prefix}*/ReadOnlyPropertyDerivedLabelPositionNone() {
-        return /*${showcase-type-getter-prefix}*/ReadOnlyProperty();
+    default /*${showcase-simple-type}*/ 
/*${showcase-simple-type-getter-prefix}*/ReadOnlyPropertyDerivedLabelPositionNone()
 {
+        return /*${showcase-simple-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 bce9d846fb..42d7882910 100644
--- 
a/tooling/metaprog/src/main/resources/holder/$TemplateHolder_actionReturning.java
+++ 
b/tooling/metaprog/src/main/resources/holder/$TemplateHolder_actionReturning.java
@@ -25,7 +25,6 @@ import /*${showcase-fully-qualified-type}*/;
 
 import lombok.RequiredArgsConstructor;
 
-/*${generated-file-notice}*/
 //tag::class[]
 @Action(semantics = SemanticsOf.SAFE)
 @RequiredArgsConstructor
@@ -34,7 +33,7 @@ public class /*${showcase-name}*/Holder_actionReturning {
     private final /*${showcase-name}*/Holder holder;
 
     public /*${showcase-simple-type}*/ act() {
-        return holder./*${showcase-type-getter-prefix}*/ReadOnlyProperty();
+        return 
holder./*${showcase-simple-type-getter-prefix}*/ReadOnlyProperty();
     }
 
 }
diff --git 
a/tooling/metaprog/src/main/resources/holder/$TemplateHolder_actionReturningArray.java
 
b/tooling/metaprog/src/main/resources/holder/$TemplateHolder_actionReturningArray.java
index c95af4779c..5d7079f953 100644
--- 
a/tooling/metaprog/src/main/resources/holder/$TemplateHolder_actionReturningArray.java
+++ 
b/tooling/metaprog/src/main/resources/holder/$TemplateHolder_actionReturningArray.java
@@ -31,7 +31,6 @@ import lombok.val;
 
 import demoapp.dom.types.Samples;
 
-/*${generated-file-notice}*/
 //tag::class[]
 @Action(semantics = SemanticsOf.SAFE)
 @RequiredArgsConstructor
diff --git 
a/tooling/metaprog/src/main/resources/holder/$TemplateHolder_actionReturningArray.java
 
b/tooling/metaprog/src/main/resources/holder/$TemplateHolder_actionReturningArray~primitive.java
similarity index 95%
copy from 
tooling/metaprog/src/main/resources/holder/$TemplateHolder_actionReturningArray.java
copy to 
tooling/metaprog/src/main/resources/holder/$TemplateHolder_actionReturningArray~primitive.java
index c95af4779c..511ac2e384 100644
--- 
a/tooling/metaprog/src/main/resources/holder/$TemplateHolder_actionReturningArray.java
+++ 
b/tooling/metaprog/src/main/resources/holder/$TemplateHolder_actionReturningArray~primitive.java
@@ -24,14 +24,11 @@ import org.apache.causeway.applib.annotation.Action;
 import org.apache.causeway.applib.annotation.SemanticsOf;
 import org.apache.causeway.commons.functional.IndexedConsumer;
 
-import /*${showcase-fully-qualified-type}*/;
-
 import lombok.RequiredArgsConstructor;
 import lombok.val;
 
 import demoapp.dom.types.Samples;
 
-/*${generated-file-notice}*/
 //tag::class[]
 @Action(semantics = SemanticsOf.SAFE)
 @RequiredArgsConstructor
diff --git 
a/tooling/metaprog/src/main/resources/holder/$TemplateHolder_actionReturningCollection.java
 
b/tooling/metaprog/src/main/resources/holder/$TemplateHolder_actionReturningCollection.java
index 6072ba6309..2f3de074aa 100644
--- 
a/tooling/metaprog/src/main/resources/holder/$TemplateHolder_actionReturningCollection.java
+++ 
b/tooling/metaprog/src/main/resources/holder/$TemplateHolder_actionReturningCollection.java
@@ -32,7 +32,6 @@ import lombok.RequiredArgsConstructor;
 
 import demoapp.dom.types.Samples;
 
-/*${generated-file-notice}*/
 //tag::class[]
 @Action(semantics = SemanticsOf.SAFE)
 @RequiredArgsConstructor
diff --git 
a/tooling/metaprog/src/main/resources/holder/$TemplateHolder_actionReturningCollection.java
 
b/tooling/metaprog/src/main/resources/holder/$TemplateHolder_actionReturningCollection~primitive.java
similarity index 95%
copy from 
tooling/metaprog/src/main/resources/holder/$TemplateHolder_actionReturningCollection.java
copy to 
tooling/metaprog/src/main/resources/holder/$TemplateHolder_actionReturningCollection~primitive.java
index 6072ba6309..c373a7646a 100644
--- 
a/tooling/metaprog/src/main/resources/holder/$TemplateHolder_actionReturningCollection.java
+++ 
b/tooling/metaprog/src/main/resources/holder/$TemplateHolder_actionReturningCollection~primitive.java
@@ -26,13 +26,10 @@ import javax.inject.Inject;
 import org.apache.causeway.applib.annotation.Action;
 import org.apache.causeway.applib.annotation.SemanticsOf;
 
-import /*${showcase-fully-qualified-type}*/;
-
 import lombok.RequiredArgsConstructor;
 
 import demoapp.dom.types.Samples;
 
-/*${generated-file-notice}*/
 //tag::class[]
 @Action(semantics = SemanticsOf.SAFE)
 @RequiredArgsConstructor
diff --git 
a/tooling/metaprog/src/main/resources/holder/$TemplateHolder_actionReturning.java
 
b/tooling/metaprog/src/main/resources/holder/$TemplateHolder_actionReturning~primitive.java
similarity index 89%
copy from 
tooling/metaprog/src/main/resources/holder/$TemplateHolder_actionReturning.java
copy to 
tooling/metaprog/src/main/resources/holder/$TemplateHolder_actionReturning~primitive.java
index bce9d846fb..00f048bf50 100644
--- 
a/tooling/metaprog/src/main/resources/holder/$TemplateHolder_actionReturning.java
+++ 
b/tooling/metaprog/src/main/resources/holder/$TemplateHolder_actionReturning~primitive.java
@@ -21,11 +21,8 @@ package /*${java-package}*/;
 import org.apache.causeway.applib.annotation.Action;
 import org.apache.causeway.applib.annotation.SemanticsOf;
 
-import /*${showcase-fully-qualified-type}*/;
-
 import lombok.RequiredArgsConstructor;
 
-/*${generated-file-notice}*/
 //tag::class[]
 @Action(semantics = SemanticsOf.SAFE)
 @RequiredArgsConstructor
@@ -34,7 +31,7 @@ public class /*${showcase-name}*/Holder_actionReturning {
     private final /*${showcase-name}*/Holder holder;
 
     public /*${showcase-simple-type}*/ act() {
-        return holder./*${showcase-type-getter-prefix}*/ReadOnlyProperty();
+        return 
holder./*${showcase-simple-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 b4dd9cf126..9cfe46725f 100644
--- 
a/tooling/metaprog/src/main/resources/holder/$TemplateHolder_mixinProperty.java
+++ 
b/tooling/metaprog/src/main/resources/holder/$TemplateHolder_mixinProperty.java
@@ -26,7 +26,6 @@ import /*${showcase-fully-qualified-type}*/;
 
 import lombok.RequiredArgsConstructor;
 
-/*${generated-file-notice}*/
 //tag::class[]
 @Property()
 @PropertyLayout(hidden = Where.ALL_TABLES, fieldSetId = "contributed", 
sequence = "1")
@@ -36,7 +35,7 @@ public class /*${showcase-name}*/Holder_mixinProperty {
     private final /*${showcase-name}*/Holder holder;
 
     public /*${showcase-simple-type}*/ prop() {
-        return holder./*${showcase-type-getter-prefix}*/ReadOnlyProperty();
+        return 
holder./*${showcase-simple-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~primitive.java
similarity index 90%
copy from 
tooling/metaprog/src/main/resources/holder/$TemplateHolder_mixinProperty.java
copy to 
tooling/metaprog/src/main/resources/holder/$TemplateHolder_mixinProperty~primitive.java
index b4dd9cf126..5679a4c848 100644
--- 
a/tooling/metaprog/src/main/resources/holder/$TemplateHolder_mixinProperty.java
+++ 
b/tooling/metaprog/src/main/resources/holder/$TemplateHolder_mixinProperty~primitive.java
@@ -22,11 +22,8 @@ import org.apache.causeway.applib.annotation.Property;
 import org.apache.causeway.applib.annotation.PropertyLayout;
 import org.apache.causeway.applib.annotation.Where;
 
-import /*${showcase-fully-qualified-type}*/;
-
 import lombok.RequiredArgsConstructor;
 
-/*${generated-file-notice}*/
 //tag::class[]
 @Property()
 @PropertyLayout(hidden = Where.ALL_TABLES, fieldSetId = "contributed", 
sequence = "1")
@@ -36,7 +33,7 @@ public class /*${showcase-name}*/Holder_mixinProperty {
     private final /*${showcase-name}*/Holder holder;
 
     public /*${showcase-simple-type}*/ prop() {
-        return holder./*${showcase-type-getter-prefix}*/ReadOnlyProperty();
+        return 
holder./*${showcase-simple-type-getter-prefix}*/ReadOnlyProperty();
     }
 
 }
diff --git 
a/tooling/metaprog/src/main/resources/holder/$TemplateHolder_updateReadOnlyOptionalProperty.java
 
b/tooling/metaprog/src/main/resources/holder/$TemplateHolder_updateReadOnlyOptionalProperty.java
index 8f521d4538..642a42ddb1 100644
--- 
a/tooling/metaprog/src/main/resources/holder/$TemplateHolder_updateReadOnlyOptionalProperty.java
+++ 
b/tooling/metaprog/src/main/resources/holder/$TemplateHolder_updateReadOnlyOptionalProperty.java
@@ -30,7 +30,6 @@ import /*${showcase-fully-qualified-type}*/;
 
 import lombok.RequiredArgsConstructor;
 
-/*${generated-file-notice}*/
 //tag::class[]
 @Action(
         semantics = SemanticsOf.IDEMPOTENT
diff --git 
a/tooling/metaprog/src/main/resources/holder/$TemplateHolder_updateReadOnlyOptionalPropertyWithChoices.java
 
b/tooling/metaprog/src/main/resources/holder/$TemplateHolder_updateReadOnlyOptionalPropertyWithChoices.java
index 1d60f133fd..a2f17c110b 100644
--- 
a/tooling/metaprog/src/main/resources/holder/$TemplateHolder_updateReadOnlyOptionalPropertyWithChoices.java
+++ 
b/tooling/metaprog/src/main/resources/holder/$TemplateHolder_updateReadOnlyOptionalPropertyWithChoices.java
@@ -37,7 +37,6 @@ import lombok.RequiredArgsConstructor;
 
 import demoapp.dom.types.Samples;
 
-/*${generated-file-notice}*/
 //tag::class[]
 @Action(
         semantics = SemanticsOf.IDEMPOTENT
diff --git 
a/tooling/metaprog/src/main/resources/holder/$TemplateHolder_updateReadOnlyProperty.java
 
b/tooling/metaprog/src/main/resources/holder/$TemplateHolder_updateReadOnlyProperty.java
index 225ea9fadb..6002eebbc6 100644
--- 
a/tooling/metaprog/src/main/resources/holder/$TemplateHolder_updateReadOnlyProperty.java
+++ 
b/tooling/metaprog/src/main/resources/holder/$TemplateHolder_updateReadOnlyProperty.java
@@ -28,7 +28,6 @@ import /*${showcase-fully-qualified-type}*/;
 
 import lombok.RequiredArgsConstructor;
 
-/*${generated-file-notice}*/
 //tag::class[]
 @Action(
         semantics = SemanticsOf.IDEMPOTENT
@@ -49,7 +48,7 @@ public class 
/*${showcase-name}*/Holder_updateReadOnlyProperty {
     }
 
     @MemberSupport public /*${showcase-simple-type}*/ default0Act() {
-        return holder./*${showcase-type-getter-prefix}*/ReadOnlyProperty();
+        return 
holder./*${showcase-simple-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 387c2e2cea..76bcf8b001 100644
--- 
a/tooling/metaprog/src/main/resources/holder/$TemplateHolder_updateReadOnlyPropertyWithChoices.java
+++ 
b/tooling/metaprog/src/main/resources/holder/$TemplateHolder_updateReadOnlyPropertyWithChoices.java
@@ -35,7 +35,6 @@ import lombok.RequiredArgsConstructor;
 
 import demoapp.dom.types.Samples;
 
-/*${generated-file-notice}*/
 //tag::class[]
 @Action(
         semantics = SemanticsOf.IDEMPOTENT
@@ -56,7 +55,7 @@ public class 
/*${showcase-name}*/Holder_updateReadOnlyPropertyWithChoices {
     }
 
     @MemberSupport public /*${showcase-simple-type}*/ default0Act() {
-        return holder./*${showcase-type-getter-prefix}*/ReadOnlyProperty();
+        return 
holder./*${showcase-simple-type-getter-prefix}*/ReadOnlyProperty();
     }
 
     @MemberSupport public List</*${showcase-simple-type-boxed}*/> 
choices0Act() {
diff --git 
a/tooling/metaprog/src/main/resources/holder/$TemplateHolder_updateReadOnlyPropertyWithChoices.java
 
b/tooling/metaprog/src/main/resources/holder/$TemplateHolder_updateReadOnlyPropertyWithChoices~primitive.java
similarity index 93%
copy from 
tooling/metaprog/src/main/resources/holder/$TemplateHolder_updateReadOnlyPropertyWithChoices.java
copy to 
tooling/metaprog/src/main/resources/holder/$TemplateHolder_updateReadOnlyPropertyWithChoices~primitive.java
index 387c2e2cea..88951fe435 100644
--- 
a/tooling/metaprog/src/main/resources/holder/$TemplateHolder_updateReadOnlyPropertyWithChoices.java
+++ 
b/tooling/metaprog/src/main/resources/holder/$TemplateHolder_updateReadOnlyPropertyWithChoices~primitive.java
@@ -29,13 +29,10 @@ import org.apache.causeway.applib.annotation.MemberSupport;
 import org.apache.causeway.applib.annotation.PromptStyle;
 import org.apache.causeway.applib.annotation.SemanticsOf;
 
-import /*${showcase-fully-qualified-type}*/;
-
 import lombok.RequiredArgsConstructor;
 
 import demoapp.dom.types.Samples;
 
-/*${generated-file-notice}*/
 //tag::class[]
 @Action(
         semantics = SemanticsOf.IDEMPOTENT
@@ -56,7 +53,7 @@ public class 
/*${showcase-name}*/Holder_updateReadOnlyPropertyWithChoices {
     }
 
     @MemberSupport public /*${showcase-simple-type}*/ default0Act() {
-        return holder./*${showcase-type-getter-prefix}*/ReadOnlyProperty();
+        return 
holder./*${showcase-simple-type-getter-prefix}*/ReadOnlyProperty();
     }
 
     @MemberSupport public List</*${showcase-simple-type-boxed}*/> 
choices0Act() {
diff --git 
a/tooling/metaprog/src/main/resources/holder/$TemplateHolder_updateReadOnlyProperty.java
 
b/tooling/metaprog/src/main/resources/holder/$TemplateHolder_updateReadOnlyProperty~primitive.java
similarity index 92%
copy from 
tooling/metaprog/src/main/resources/holder/$TemplateHolder_updateReadOnlyProperty.java
copy to 
tooling/metaprog/src/main/resources/holder/$TemplateHolder_updateReadOnlyProperty~primitive.java
index 225ea9fadb..ec9e1bb752 100644
--- 
a/tooling/metaprog/src/main/resources/holder/$TemplateHolder_updateReadOnlyProperty.java
+++ 
b/tooling/metaprog/src/main/resources/holder/$TemplateHolder_updateReadOnlyProperty~primitive.java
@@ -24,11 +24,8 @@ import org.apache.causeway.applib.annotation.MemberSupport;
 import org.apache.causeway.applib.annotation.PromptStyle;
 import org.apache.causeway.applib.annotation.SemanticsOf;
 
-import /*${showcase-fully-qualified-type}*/;
-
 import lombok.RequiredArgsConstructor;
 
-/*${generated-file-notice}*/
 //tag::class[]
 @Action(
         semantics = SemanticsOf.IDEMPOTENT
@@ -49,7 +46,7 @@ public class 
/*${showcase-name}*/Holder_updateReadOnlyProperty {
     }
 
     @MemberSupport public /*${showcase-simple-type}*/ default0Act() {
-        return holder./*${showcase-type-getter-prefix}*/ReadOnlyProperty();
+        return 
holder./*${showcase-simple-type-getter-prefix}*/ReadOnlyProperty();
     }
 
 }
diff --git 
a/tooling/metaprog/src/main/resources/holder/$TemplateHolder~primitive.java 
b/tooling/metaprog/src/main/resources/holder/$TemplateHolder~primitive.java
index eda920eadb..3baf1f301d 100644
--- a/tooling/metaprog/src/main/resources/holder/$TemplateHolder~primitive.java
+++ b/tooling/metaprog/src/main/resources/holder/$TemplateHolder~primitive.java
@@ -20,17 +20,14 @@ package /*${java-package}*/;
 
 import javax.inject.Named;
 
-import /*${showcase-fully-qualified-type}*/;
-
-/*${generated-file-notice}*/
 @Named("demo./*${showcase-name}*/Holder")
 //tag::class[]
 public interface /*${showcase-name}*/Holder {
 
-    /*${showcase-simple-type}*/ 
/*${showcase-type-getter-prefix}*/ReadOnlyProperty();
+    /*${showcase-simple-type}*/ 
/*${showcase-simple-type-getter-prefix}*/ReadOnlyProperty();
     void setReadOnlyProperty(/*${showcase-simple-type}*/ c);
 
-    /*${showcase-simple-type}*/ 
/*${showcase-type-getter-prefix}*/ReadWriteProperty();
+    /*${showcase-simple-type}*/ 
/*${showcase-simple-type-getter-prefix}*/ReadWriteProperty();
     void setReadWriteProperty(/*${showcase-simple-type}*/ c);
 
 }
diff --git 
a/tooling/metaprog/src/main/resources/jdo/$TemplateJdo-description.adoc 
b/tooling/metaprog/src/main/resources/jdo/$TemplateJdo-description.adoc
index 2e13e63845..fd39a55b84 100644
--- a/tooling/metaprog/src/main/resources/jdo/$TemplateJdo-description.adoc
+++ b/tooling/metaprog/src/main/resources/jdo/$TemplateJdo-description.adoc
@@ -1,7 +1,5 @@
 :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 [...]
 
-//#{generated-file-notice}
-
 #{jdo-type-support-notice}
 
 [source,java]
@@ -17,4 +15,4 @@ Apache Causeway assumes properties are mandatory, so no 
additional annotation is
 <.> optional property as defined to JDO/DataNucleus
 
 
-include::../$Templates-common.adoc[]
\ No newline at end of file
+include::../$Templates-common.adoc[]
diff --git 
a/tooling/metaprog/src/main/resources/jdo/$TemplateJdo-description~primitive.adoc
 
b/tooling/metaprog/src/main/resources/jdo/$TemplateJdo-description~primitive.adoc
index 25a4dc18f6..d740e6a69c 100644
--- 
a/tooling/metaprog/src/main/resources/jdo/$TemplateJdo-description~primitive.adoc
+++ 
b/tooling/metaprog/src/main/resources/jdo/$TemplateJdo-description~primitive.adoc
@@ -1,7 +1,5 @@
 :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 [...]
 
-//#{generated-file-notice}
-
 #{jdo-type-support-notice}
 
 [source,java]
@@ -12,4 +10,4 @@ include::$TemplateJdo~primitive.java[tags=class]
 <.> no additional JDO annotations required.
 
 
-include::../$Templates-common.adoc[]
\ No newline at end of file
+include::../$Templates-common.adoc[]
diff --git a/tooling/metaprog/src/main/resources/jdo/$TemplateJdo.java 
b/tooling/metaprog/src/main/resources/jdo/$TemplateJdo.java
index 85e16edb91..5c0f9b9133 100644
--- a/tooling/metaprog/src/main/resources/jdo/$TemplateJdo.java
+++ b/tooling/metaprog/src/main/resources/jdo/$TemplateJdo.java
@@ -41,7 +41,6 @@ import lombok.Setter;
 
 import /*${showcase-java-package}*/.persistence./*${showcase-name}*/Entity;
 
-/*${generated-file-notice}*/
 @Profile("demo-jdo")
 //tag::class[]
 @PersistenceCapable(identityType = IdentityType.DATASTORE, schema = "demo")
diff --git a/tooling/metaprog/src/main/resources/jdo/$TemplateJdoEntities.java 
b/tooling/metaprog/src/main/resources/jdo/$TemplateJdoEntities.java
index cf8126be4b..6712cedbe0 100644
--- a/tooling/metaprog/src/main/resources/jdo/$TemplateJdoEntities.java
+++ b/tooling/metaprog/src/main/resources/jdo/$TemplateJdoEntities.java
@@ -25,7 +25,6 @@ import /*${showcase-fully-qualified-type}*/;
 
 import demoapp.dom._infra.values.ValueHolderRepository;
 
-/*${generated-file-notice}*/
 @Profile("demo-jdo")
 @Service
 public class /*${showcase-name}*/JdoEntities
diff --git a/tooling/metaprog/src/main/resources/jdo/$TemplateJdoEntities.java 
b/tooling/metaprog/src/main/resources/jdo/$TemplateJdoEntities~primitive.java
similarity index 95%
copy from tooling/metaprog/src/main/resources/jdo/$TemplateJdoEntities.java
copy to 
tooling/metaprog/src/main/resources/jdo/$TemplateJdoEntities~primitive.java
index cf8126be4b..edd3dd4d61 100644
--- a/tooling/metaprog/src/main/resources/jdo/$TemplateJdoEntities.java
+++ 
b/tooling/metaprog/src/main/resources/jdo/$TemplateJdoEntities~primitive.java
@@ -21,11 +21,8 @@ package /*${java-package}*/;
 import org.springframework.context.annotation.Profile;
 import org.springframework.stereotype.Service;
 
-import /*${showcase-fully-qualified-type}*/;
-
 import demoapp.dom._infra.values.ValueHolderRepository;
 
-/*${generated-file-notice}*/
 @Profile("demo-jdo")
 @Service
 public class /*${showcase-name}*/JdoEntities
diff --git a/tooling/metaprog/src/main/resources/jdo/$TemplateJdo~lob.java 
b/tooling/metaprog/src/main/resources/jdo/$TemplateJdo~lob.java
index b0d74b0195..12d3e85ace 100644
--- a/tooling/metaprog/src/main/resources/jdo/$TemplateJdo~lob.java
+++ b/tooling/metaprog/src/main/resources/jdo/$TemplateJdo~lob.java
@@ -42,7 +42,6 @@ import lombok.Setter;
 
 import /*${showcase-java-package}*/.persistence./*${showcase-name}*/Entity;
 
-/*${generated-file-notice}*/
 @Profile("demo-jdo")
 //tag::class[]
 @PersistenceCapable(identityType = IdentityType.DATASTORE, schema = "demo")
diff --git 
a/tooling/metaprog/src/main/resources/jdo/$TemplateJdo~primitive.java 
b/tooling/metaprog/src/main/resources/jdo/$TemplateJdo~primitive.java
index 46f3d13e3b..f17dc4ae63 100644
--- a/tooling/metaprog/src/main/resources/jdo/$TemplateJdo~primitive.java
+++ b/tooling/metaprog/src/main/resources/jdo/$TemplateJdo~primitive.java
@@ -32,14 +32,11 @@ import org.apache.causeway.applib.annotation.Property;
 import org.apache.causeway.applib.annotation.PropertyLayout;
 import org.apache.causeway.applib.annotation.Title;
 
-import /*${showcase-fully-qualified-type}*/;
-
 import lombok.Getter;
 import lombok.Setter;
 
 import /*${showcase-java-package}*/.persistence./*${showcase-name}*/Entity;
 
-/*${generated-file-notice}*/
 @Profile("demo-jdo")
 //tag::class[]
 @PersistenceCapable(identityType = IdentityType.DATASTORE, schema = "demo")
diff --git 
a/tooling/metaprog/src/main/resources/jpa/$TemplateJpa-description.adoc 
b/tooling/metaprog/src/main/resources/jpa/$TemplateJpa-description.adoc
index 4b00558197..d8ca526bad 100644
--- a/tooling/metaprog/src/main/resources/jpa/$TemplateJpa-description.adoc
+++ b/tooling/metaprog/src/main/resources/jpa/$TemplateJpa-description.adoc
@@ -1,7 +1,5 @@
 :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 [...]
 
-//#{generated-file-notice}
-
 #{jpa-type-support-notice}
 
 [source,java]
@@ -17,4 +15,4 @@ Apache Causeway assumes properties are mandatory, so no 
additional annotation is
 <.> optional property as defined to JPA
 
 
-include::../$Templates-common.adoc[]
\ No newline at end of file
+include::../$Templates-common.adoc[]
diff --git 
a/tooling/metaprog/src/main/resources/jpa/$TemplateJpa-description~primitive.adoc
 
b/tooling/metaprog/src/main/resources/jpa/$TemplateJpa-description~primitive.adoc
index 8a83592a5d..9e2df76b0e 100644
--- 
a/tooling/metaprog/src/main/resources/jpa/$TemplateJpa-description~primitive.adoc
+++ 
b/tooling/metaprog/src/main/resources/jpa/$TemplateJpa-description~primitive.adoc
@@ -1,7 +1,5 @@
 :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 [...]
 
-//#{generated-file-notice}
-
 #{jpa-type-support-notice}
 
 [source,java]
@@ -12,4 +10,4 @@ include::$TemplateJpa~primitive.java[tags=class]
 <.> no additional JPA annotations required.
 
 
-include::../$Templates-common.adoc[]
\ No newline at end of file
+include::../$Templates-common.adoc[]
diff --git a/tooling/metaprog/src/main/resources/jpa/$TemplateJpa.java 
b/tooling/metaprog/src/main/resources/jpa/$TemplateJpa.java
index 06b2a412f2..1b2658f7d3 100644
--- a/tooling/metaprog/src/main/resources/jpa/$TemplateJpa.java
+++ b/tooling/metaprog/src/main/resources/jpa/$TemplateJpa.java
@@ -44,7 +44,6 @@ import lombok.Setter;
 
 import /*${showcase-java-package}*/.persistence./*${showcase-name}*/Entity;
 
-/*${generated-file-notice}*/
 @Profile("demo-jpa")
 //tag::class[]
 @Entity
diff --git a/tooling/metaprog/src/main/resources/jpa/$TemplateJpaEntities.java 
b/tooling/metaprog/src/main/resources/jpa/$TemplateJpaEntities.java
index f5ab4514f3..b33f9597c0 100644
--- a/tooling/metaprog/src/main/resources/jpa/$TemplateJpaEntities.java
+++ b/tooling/metaprog/src/main/resources/jpa/$TemplateJpaEntities.java
@@ -25,7 +25,6 @@ import /*${showcase-fully-qualified-type}*/;
 
 import demoapp.dom._infra.values.ValueHolderRepository;
 
-/*${generated-file-notice}*/
 @Profile("demo-jpa")
 @Service
 public class /*${showcase-name}*/JpaEntities
diff --git a/tooling/metaprog/src/main/resources/jpa/$TemplateJpaEntities.java 
b/tooling/metaprog/src/main/resources/jpa/$TemplateJpaEntities~primitive.java
similarity index 95%
copy from tooling/metaprog/src/main/resources/jpa/$TemplateJpaEntities.java
copy to 
tooling/metaprog/src/main/resources/jpa/$TemplateJpaEntities~primitive.java
index f5ab4514f3..016b69edcf 100644
--- a/tooling/metaprog/src/main/resources/jpa/$TemplateJpaEntities.java
+++ 
b/tooling/metaprog/src/main/resources/jpa/$TemplateJpaEntities~primitive.java
@@ -21,11 +21,8 @@ package /*${java-package}*/;
 import org.springframework.context.annotation.Profile;
 import org.springframework.stereotype.Service;
 
-import /*${showcase-fully-qualified-type}*/;
-
 import demoapp.dom._infra.values.ValueHolderRepository;
 
-/*${generated-file-notice}*/
 @Profile("demo-jpa")
 @Service
 public class /*${showcase-name}*/JpaEntities
diff --git a/tooling/metaprog/src/main/resources/jpa/$TemplateJpa~lob.java 
b/tooling/metaprog/src/main/resources/jpa/$TemplateJpa~lob.java
index 37ffe85f5f..9662d75c4f 100644
--- a/tooling/metaprog/src/main/resources/jpa/$TemplateJpa~lob.java
+++ b/tooling/metaprog/src/main/resources/jpa/$TemplateJpa~lob.java
@@ -48,7 +48,6 @@ import lombok.Setter;
 
 import /*${showcase-java-package}*/.persistence./*${showcase-name}*/Entity;
 
-/*${generated-file-notice}*/
 @Profile("demo-jpa")
 //tag::class[]
 @Entity
diff --git 
a/tooling/metaprog/src/main/resources/jpa/$TemplateJpa~primitive.java 
b/tooling/metaprog/src/main/resources/jpa/$TemplateJpa~primitive.java
index 261c864bcf..e5b28c2fd6 100644
--- a/tooling/metaprog/src/main/resources/jpa/$TemplateJpa~primitive.java
+++ b/tooling/metaprog/src/main/resources/jpa/$TemplateJpa~primitive.java
@@ -34,15 +34,12 @@ import org.apache.causeway.applib.annotation.PropertyLayout;
 import org.apache.causeway.applib.annotation.Title;
 import 
org.apache.causeway.persistence.jpa.applib.integration.CausewayEntityListener;
 
-import /*${showcase-fully-qualified-type}*/;
-
 import lombok.Getter;
 import lombok.NoArgsConstructor;
 import lombok.Setter;
 
 import /*${showcase-java-package}*/.persistence./*${showcase-name}*/Entity;
 
-/*${generated-file-notice}*/
 @Profile("demo-jpa")
 //tag::class[]
 @Entity
diff --git 
a/tooling/metaprog/src/main/resources/persistence/$TemplateEntity.java 
b/tooling/metaprog/src/main/resources/persistence/$TemplateEntity.java
index a717016aaa..7ed967766b 100644
--- a/tooling/metaprog/src/main/resources/persistence/$TemplateEntity.java
+++ b/tooling/metaprog/src/main/resources/persistence/$TemplateEntity.java
@@ -28,7 +28,6 @@ import 
/*${showcase-java-package}*/.holder./*${showcase-name}*/Holder2;
 
 import /*${showcase-fully-qualified-type}*/;
 
-/*${generated-file-notice}*/
 @Named("demo./*${showcase-name}*/Entity") // shared permissions with concrete 
sub class
 @DomainObject
 public abstract class /*${showcase-name}*/Entity
@@ -39,7 +38,7 @@ implements
 
     @Override
     public /*${showcase-simple-type-boxed}*/ value() {
-        return /*${showcase-type-getter-prefix}*/ReadOnlyProperty();
+        return /*${showcase-simple-type-getter-prefix}*/ReadOnlyProperty();
     }
 
 }
diff --git 
a/tooling/metaprog/src/main/resources/persistence/$TemplateEntity.layout.xml 
b/tooling/metaprog/src/main/resources/persistence/$TemplateEntity.layout.xml
index b25e69307f..e126ed4493 100644
--- a/tooling/metaprog/src/main/resources/persistence/$TemplateEntity.layout.xml
+++ b/tooling/metaprog/src/main/resources/persistence/$TemplateEntity.layout.xml
@@ -15,8 +15,6 @@
         xmlns:cpt="https://causeway.apache.org/applib/layout/component";
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";>
 
-       <!--${generated-file-notice}-->
-
        <bs3:row>
                <bs3:col span="10" unreferencedActions="true">
                        <cpt:domainObject />
diff --git 
a/tooling/metaprog/src/main/resources/persistence/$TemplateEntity.java 
b/tooling/metaprog/src/main/resources/persistence/$TemplateEntity~primitive.java
similarity index 91%
copy from tooling/metaprog/src/main/resources/persistence/$TemplateEntity.java
copy to 
tooling/metaprog/src/main/resources/persistence/$TemplateEntity~primitive.java
index a717016aaa..01e35f5a08 100644
--- a/tooling/metaprog/src/main/resources/persistence/$TemplateEntity.java
+++ 
b/tooling/metaprog/src/main/resources/persistence/$TemplateEntity~primitive.java
@@ -26,9 +26,6 @@ import demoapp.dom._infra.asciidocdesc.HasAsciiDocDescription;
 import demoapp.dom._infra.values.ValueHolder;
 import /*${showcase-java-package}*/.holder./*${showcase-name}*/Holder2;
 
-import /*${showcase-fully-qualified-type}*/;
-
-/*${generated-file-notice}*/
 @Named("demo./*${showcase-name}*/Entity") // shared permissions with concrete 
sub class
 @DomainObject
 public abstract class /*${showcase-name}*/Entity
@@ -39,7 +36,7 @@ implements
 
     @Override
     public /*${showcase-simple-type-boxed}*/ value() {
-        return /*${showcase-type-getter-prefix}*/ReadOnlyProperty();
+        return /*${showcase-simple-type-getter-prefix}*/ReadOnlyProperty();
     }
 
 }
diff --git 
a/tooling/metaprog/src/main/resources/persistence/$TemplateEntity~primitive.layout.xml
 
b/tooling/metaprog/src/main/resources/persistence/$TemplateEntity~primitive.layout.xml
index d1cda9ed42..1bd3525158 100644
--- 
a/tooling/metaprog/src/main/resources/persistence/$TemplateEntity~primitive.layout.xml
+++ 
b/tooling/metaprog/src/main/resources/persistence/$TemplateEntity~primitive.layout.xml
@@ -15,8 +15,6 @@
         xmlns:cpt="https://causeway.apache.org/applib/layout/component";
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";>
 
-       <!--${generated-file-notice}-->
-
        <bs3:row>
                <bs3:col span="10" unreferencedActions="true">
                        <cpt:domainObject />
diff --git 
a/tooling/metaprog/src/main/resources/persistence/$TemplateSeeding.java 
b/tooling/metaprog/src/main/resources/persistence/$TemplateSeeding.java
index 6d125e8f76..34fc13a999 100644
--- a/tooling/metaprog/src/main/resources/persistence/$TemplateSeeding.java
+++ b/tooling/metaprog/src/main/resources/persistence/$TemplateSeeding.java
@@ -27,7 +27,6 @@ import /*${showcase-fully-qualified-type}*/;
 import demoapp.dom._infra.seed.SeedServiceAbstract;
 import demoapp.dom._infra.values.ValueHolderRepository;
 
-/*${generated-file-notice}*/
 @Service
 public class /*${showcase-name}*/Seeding
 extends SeedServiceAbstract {
diff --git 
a/tooling/metaprog/src/main/resources/persistence/$TemplateSeeding.java 
b/tooling/metaprog/src/main/resources/persistence/$TemplateSeeding~primitive.java
similarity index 94%
copy from tooling/metaprog/src/main/resources/persistence/$TemplateSeeding.java
copy to 
tooling/metaprog/src/main/resources/persistence/$TemplateSeeding~primitive.java
index 6d125e8f76..a45e427e4b 100644
--- a/tooling/metaprog/src/main/resources/persistence/$TemplateSeeding.java
+++ 
b/tooling/metaprog/src/main/resources/persistence/$TemplateSeeding~primitive.java
@@ -22,12 +22,9 @@ import javax.inject.Inject;
 
 import org.springframework.stereotype.Service;
 
-import /*${showcase-fully-qualified-type}*/;
-
 import demoapp.dom._infra.seed.SeedServiceAbstract;
 import demoapp.dom._infra.values.ValueHolderRepository;
 
-/*${generated-file-notice}*/
 @Service
 public class /*${showcase-name}*/Seeding
 extends SeedServiceAbstract {
diff --git a/tooling/metaprog/src/main/resources/samples/$TemplateSamples.java 
b/tooling/metaprog/src/main/resources/samples/$TemplateSamples.java
index 406d066904..d8db1ce0b0 100644
--- a/tooling/metaprog/src/main/resources/samples/$TemplateSamples.java
+++ b/tooling/metaprog/src/main/resources/samples/$TemplateSamples.java
@@ -26,7 +26,6 @@ import /*${showcase-fully-qualified-type}*/;
 
 import demoapp.dom.types.Samples;
 
-/*${generated-file-notice}*/
 @Service
 public class /*${showcase-name}*/Samples implements 
Samples</*${showcase-simple-type}*/> {
 
diff --git a/tooling/metaprog/src/main/resources/samples/$TemplateSamples.java 
b/tooling/metaprog/src/main/resources/samples/$TemplateSamples~primitive.java
similarity index 94%
copy from tooling/metaprog/src/main/resources/samples/$TemplateSamples.java
copy to 
tooling/metaprog/src/main/resources/samples/$TemplateSamples~primitive.java
index 406d066904..c20ae9c940 100644
--- a/tooling/metaprog/src/main/resources/samples/$TemplateSamples.java
+++ 
b/tooling/metaprog/src/main/resources/samples/$TemplateSamples~primitive.java
@@ -22,11 +22,8 @@ import java.util.stream.Stream;
 
 import org.springframework.stereotype.Service;
 
-import /*${showcase-fully-qualified-type}*/;
-
 import demoapp.dom.types.Samples;
 
-/*${generated-file-notice}*/
 @Service
 public class /*${showcase-name}*/Samples implements 
Samples</*${showcase-simple-type}*/> {
 
diff --git 
a/tooling/metaprog/src/main/resources/vm/$TemplateVm-description.adoc 
b/tooling/metaprog/src/main/resources/vm/$TemplateVm-description.adoc
index b93737d8a4..e9ade36ee1 100644
--- a/tooling/metaprog/src/main/resources/vm/$TemplateVm-description.adoc
+++ b/tooling/metaprog/src/main/resources/vm/$TemplateVm-description.adoc
@@ -1,7 +1,5 @@
 :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 [...]
 
-//#{generated-file-notice}
-
 #{jaxb-type-support-notice}
 
 [source,java]
@@ -16,4 +14,4 @@ include::$TemplateVm.java[tags=class]
 This is the default for JAXB so no additional annotation required.
 
 
-include::../$Templates-common.adoc[]
\ No newline at end of file
+include::../$Templates-common.adoc[]
diff --git 
a/tooling/metaprog/src/main/resources/vm/$TemplateVm-description~primitive.adoc 
b/tooling/metaprog/src/main/resources/vm/$TemplateVm-description~primitive.adoc
index 3734e06350..c5f3c2e74f 100644
--- 
a/tooling/metaprog/src/main/resources/vm/$TemplateVm-description~primitive.adoc
+++ 
b/tooling/metaprog/src/main/resources/vm/$TemplateVm-description~primitive.adoc
@@ -1,7 +1,5 @@
 :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 [...]
 
-//#{generated-file-notice}
-
 #{jaxb-type-support-notice}
 
 [source,java]
@@ -11,4 +9,4 @@ include::$TemplateVm~primitive.java[tags=class]
 <.> a no-arg constructor is required by JAXB
 <.> no additional JAXB annotations required.
 
-include::../$Templates-common.adoc[]
\ No newline at end of file
+include::../$Templates-common.adoc[]
diff --git a/tooling/metaprog/src/main/resources/vm/$TemplateVm.java 
b/tooling/metaprog/src/main/resources/vm/$TemplateVm.java
index 85d53aa0ab..be220ad1b7 100644
--- a/tooling/metaprog/src/main/resources/vm/$TemplateVm.java
+++ b/tooling/metaprog/src/main/resources/vm/$TemplateVm.java
@@ -41,7 +41,6 @@ import lombok.Setter;
 import demoapp.dom._infra.asciidocdesc.HasAsciiDocDescription;
 import /*${showcase-java-package}*/.holder./*${showcase-name}*/Holder2;
 
-/*${generated-file-notice}*/
 //tag::class[]
 @XmlRootElement(name = "root")
 @XmlType
diff --git a/tooling/metaprog/src/main/resources/vm/$TemplateVm.layout.xml 
b/tooling/metaprog/src/main/resources/vm/$TemplateVm.layout.xml
index 0215d651c2..1df6c2e346 100644
--- a/tooling/metaprog/src/main/resources/vm/$TemplateVm.layout.xml
+++ b/tooling/metaprog/src/main/resources/vm/$TemplateVm.layout.xml
@@ -15,8 +15,6 @@
         xmlns:cpt="https://causeway.apache.org/applib/layout/component";
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";>
 
-       <!--${generated-file-notice}-->
-
        <bs3:row>
                <bs3:col span="10" unreferencedActions="true">
                        <cpt:domainObject />
diff --git a/tooling/metaprog/src/main/resources/vm/$TemplateVm~primitive.java 
b/tooling/metaprog/src/main/resources/vm/$TemplateVm~primitive.java
index 134c73676b..71190ce0c5 100644
--- a/tooling/metaprog/src/main/resources/vm/$TemplateVm~primitive.java
+++ b/tooling/metaprog/src/main/resources/vm/$TemplateVm~primitive.java
@@ -31,15 +31,12 @@ import org.apache.causeway.applib.annotation.Property;
 import org.apache.causeway.applib.annotation.PropertyLayout;
 import org.apache.causeway.applib.annotation.Title;
 
-import /*${showcase-fully-qualified-type}*/;
-
 import lombok.Getter;
 import lombok.Setter;
 
 import demoapp.dom._infra.asciidocdesc.HasAsciiDocDescription;
 import /*${showcase-java-package}*/.holder./*${showcase-name}*/Holder2;
 
-/*${generated-file-notice}*/
 //tag::class[]
 @XmlRootElement(name = "root")
 @XmlType
diff --git 
a/tooling/metaprog/src/main/resources/vm/$TemplateVm~primitive.layout.xml 
b/tooling/metaprog/src/main/resources/vm/$TemplateVm~primitive.layout.xml
index d1cda9ed42..1bd3525158 100644
--- a/tooling/metaprog/src/main/resources/vm/$TemplateVm~primitive.layout.xml
+++ b/tooling/metaprog/src/main/resources/vm/$TemplateVm~primitive.layout.xml
@@ -15,8 +15,6 @@
         xmlns:cpt="https://causeway.apache.org/applib/layout/component";
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";>
 
-       <!--${generated-file-notice}-->
-
        <bs3:row>
                <bs3:col span="10" unreferencedActions="true">
                        <cpt:domainObject />
diff --git 
a/tooling/metaprog/src/test/java/org/apache/causeway/tooling/metaprog/demoshowcases/value/ValueTypeGenTemplateTest.java
 
b/tooling/metaprog/src/test/java/org/apache/causeway/tooling/metaprog/demoshowcases/value/ValueTypeGenTemplateTest.java
index e68178f117..9f23c540bb 100644
--- 
a/tooling/metaprog/src/test/java/org/apache/causeway/tooling/metaprog/demoshowcases/value/ValueTypeGenTemplateTest.java
+++ 
b/tooling/metaprog/src/test/java/org/apache/causeway/tooling/metaprog/demoshowcases/value/ValueTypeGenTemplateTest.java
@@ -124,7 +124,8 @@ class ValueTypeGenTemplateTest {
         generatedFiles.forEach(src->{
             val dest = new File(destinationRoot, 
FileUtils.realtiveFileName(sourceRoot, src));
             FileUtils.makeDir(dest.getParentFile());
-            FileUtils.copy(src, dest);
+            FileUtils.copyWithCrlf(src, dest);
+//            FileUtils.copy(src, dest);
         });
     }
 
@@ -134,7 +135,8 @@ class ValueTypeGenTemplateTest {
             val dest = new File(destinationRoot, 
FileUtils.realtiveFileName(sourceRoot, src));
             if(!dest.exists()) {
                 FileUtils.makeDir(dest.getParentFile());
-                FileUtils.copy(src, dest);
+                FileUtils.copyWithCrlf(src, dest);
+//                FileUtils.copy(src, dest);
             }
         });
     }

Reply via email to