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 da27640972 ISIS-3123: support template placeholder for adoc includes
da27640972 is described below

commit da27640972eb307acbe463f9d06a7222678030c0
Author: andi-huber <[email protected]>
AuthorDate: Tue Aug 16 15:15:47 2022 +0200

    ISIS-3123: support template placeholder for adoc includes
---
 .../demoshowcases/value/ValueTypeGenTemplate.java  | 26 +++++++++++++++++-----
 ...emplates-common.adoc => $Templates-common.adoc} | 12 +++++-----
 ...escription.adoc => $Templates-description.adoc} |  2 +-
 .../resources/{Templates.java => $Templates.java}  |  0
 ...{Templates.layout.xml => $Templates.layout.xml} |  0
 .../{TemplateHolder.java => $TemplateHolder.java}  |  0
 ...{TemplateHolder2.java => $TemplateHolder2.java} |  0
 ...g.java => $TemplateHolder_actionReturning.java} |  0
 ...$TemplateHolder_actionReturningCollection.java} |  0
 ...rty.java => $TemplateHolder_mixinProperty.java} |  0
 ...lateHolder_updateReadOnlyOptionalProperty.java} |  0
 ...=> $TemplateHolder_updateReadOnlyProperty.java} |  0
 ...eHolder_updateReadOnlyPropertyWithChoices.java} |  0
 ...cription.adoc => $TemplateJdo-description.adoc} |  4 ++--
 .../jdo/{TemplateJdo.java => $TemplateJdo.java}    |  0
 ...eJdoEntities.java => $TemplateJdoEntities.java} |  0
 ...cription.adoc => $TemplateJpa-description.adoc} |  4 ++--
 .../jpa/{TemplateJpa.java => $TemplateJpa.java}    |  0
 ...eJpaEntities.java => $TemplateJpaEntities.java} |  0
 .../{TemplateEntity.java => $TemplateEntity.java}  |  0
 ...ntity.layout.xml => $TemplateEntity.layout.xml} |  0
 ...{TemplateSeeding.java => $TemplateSeeding.java} |  0
 ...{TemplateSamples.java => $TemplateSamples.java} |  0
 ...scription.adoc => $TemplateVm-description.adoc} |  4 ++--
 .../vm/{TemplateVm.java => $TemplateVm.java}       |  0
 ...emplateVm.layout.xml => $TemplateVm.layout.xml} |  0
 .../value/ValueTypeGenTemplateTest.java            |  3 ++-
 27 files changed, 35 insertions(+), 20 deletions(-)

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 33be5d8987..21449f8360 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
@@ -48,6 +48,8 @@ public class ValueTypeGenTemplate {
         final String javaPackage;
         final boolean suppressGeneratedFileNotice;
         @Builder.Default
+        final String fileNamePlaceholderForShowcaseName = "$Template";
+        @Builder.Default
         final String generatedFileNotice = "This file was generated by the 
showcase generator (tooling). Do NOT edit!";
         @Singular
         final Map<String, String> templateVariables = new HashMap<>();
@@ -73,6 +75,9 @@ public class ValueTypeGenTemplate {
             @Override String formatAsTemplateVar(final String text) {
                 return "<!--${" + text + "}-->"; }
         };
+        boolean isDoc() { return this == DOC; }
+        boolean isJava() { return this == JAVA; }
+        boolean isLayout() { return this == LAYOUT; }
         final String fileSuffix;
         abstract String formatAsComment(String text);
         abstract String formatAsTemplateVar(String key);
@@ -117,9 +122,9 @@ public class ValueTypeGenTemplate {
                     + generator.fileSuffix)
                     .getAbsoluteFile();
         }
-        private final File template() {
+        private final File template(final Config config) {
             return new File("src/main/resources",
-                    String.format(pathTemplate, "Template")
+                    String.format(pathTemplate, 
config.fileNamePlaceholderForShowcaseName)
                     + generator.fileSuffix)
                     .getAbsoluteFile();
         }
@@ -143,6 +148,9 @@ public class ValueTypeGenTemplate {
         public void putAll(final Map<? extends String, ? extends String> 
other) {
             other.forEach((key, value)->put(key, value));
         }
+        public void putRaw(final String key, final String value) {
+            super.put(key, value);
+        }
     }
 
     final Config config;
@@ -150,7 +158,7 @@ public class ValueTypeGenTemplate {
     public void generate(final Consumer<File> onSourceGenerated) {
 
         for(var source: Sources.values()) {
-            val template = source.template();
+            val template = source.template(config);
 
             _Assert.assertTrue(template.exists(), ()->String.format("template 
%s not found", template));
 
@@ -163,9 +171,15 @@ public class ValueTypeGenTemplate {
             templateVars.put("showcase-type", config.showcaseValueType);
             templateVars.put("showcase-value-semantics-provider", 
config.showcaseValueSemantics);
 
-            templateVars.put("before-class-declaration", 
config.suppressGeneratedFileNotice
-                    ? ""
-                    : 
source.generator.formatAsComment(config.generatedFileNotice));
+            if(source.generator.isJava()) {
+                templateVars.put("before-class-declaration", 
config.suppressGeneratedFileNotice
+                        ? ""
+                        : 
source.generator.formatAsComment(config.generatedFileNotice));
+            }
+
+            if(source.generator.isDoc()) {
+                templateVars.putRaw("$Template", config.showcaseName);
+            }
 
             generateFromTemplate(templateVars, template, genTarget);
             onSourceGenerated.accept(genTarget);
diff --git a/tooling/metaprog/src/main/resources/Templates-common.adoc 
b/tooling/metaprog/src/main/resources/$Templates-common.adoc
similarity index 82%
rename from tooling/metaprog/src/main/resources/Templates-common.adoc
rename to tooling/metaprog/src/main/resources/$Templates-common.adoc
index d249090d37..326e6b9eed 100644
--- a/tooling/metaprog/src/main/resources/Templates-common.adoc
+++ b/tooling/metaprog/src/main/resources/$Templates-common.adoc
@@ -9,21 +9,21 @@ For example:
 +
 [source,java]
 ----
-include::holder/JavaUtilUuidHolder_updateReadOnlyProperty.java[tags=class]
+include::holder/$TemplateHolder_updateReadOnlyProperty.java[tags=class]
 ----
 
 * the `updateReadOnlyOptionalProperty` action is:
 +
 [source,java]
 ----
-include::holder/JavaUtilUuidHolder_updateReadOnlyOptionalProperty.java[tags=class]
+include::holder/$TemplateHolder_updateReadOnlyOptionalProperty.java[tags=class]
 ----
 
 * the `actionReturning` action is:
 +
 [source,java]
 ----
-include::holder/JavaUtilUuidHolder_actionReturning.java[tags=class]
+include::holder/$TemplateHolder_actionReturning.java[tags=class]
 ----
 
 
@@ -31,7 +31,7 @@ 
include::holder/JavaUtilUuidHolder_actionReturning.java[tags=class]
 +
 [source,java]
 ----
-include::holder/JavaUtilUuidHolder_actionReturningCollection.java[tags=class]
+include::holder/$TemplateHolder_actionReturningCollection.java[tags=class]
 ----
 
 == Mixin properties
@@ -42,7 +42,7 @@ We also use the interface to contribute a mixin property:
 +
 [source,java]
 ----
-include::holder/JavaUtilUuidHolder_mixinProperty.java[tags=class]
+include::holder/$TemplateHolder_mixinProperty.java[tags=class]
 ----
 
 
@@ -52,7 +52,7 @@ To demonstrate support for label positions using 
`@PropertyLayout(labelPosition=
 
 [source,java]
 ----
-include::holder/JavaUtilUuidHolder2.java[tags=class]
+include::holder/$TemplateHolder2.java[tags=class]
 ----
 
 <.> The default methods have annotations that are automatically inherited.
diff --git a/tooling/metaprog/src/main/resources/Templates-description.adoc 
b/tooling/metaprog/src/main/resources/$Templates-description.adoc
similarity index 93%
rename from tooling/metaprog/src/main/resources/Templates-description.adoc
rename to tooling/metaprog/src/main/resources/$Templates-description.adoc
index 5444fb2369..1497c75794 100644
--- a/tooling/metaprog/src/main/resources/Templates-description.adoc
+++ b/tooling/metaprog/src/main/resources/$Templates-description.adoc
@@ -19,7 +19,7 @@ The `JavaUtilUuidHolder` interface is used to contribute a 
number of mixins to b
 
 [source,java]
 ----
-include::holder/JavaUtilUuidHolder.java[tags=class]
+include::holder/$TemplateHolder.java[tags=class]
 ----
 
 === JavaUtilUuidHolder2
diff --git a/tooling/metaprog/src/main/resources/Templates.java 
b/tooling/metaprog/src/main/resources/$Templates.java
similarity index 100%
rename from tooling/metaprog/src/main/resources/Templates.java
rename to tooling/metaprog/src/main/resources/$Templates.java
diff --git a/tooling/metaprog/src/main/resources/Templates.layout.xml 
b/tooling/metaprog/src/main/resources/$Templates.layout.xml
similarity index 100%
rename from tooling/metaprog/src/main/resources/Templates.layout.xml
rename to tooling/metaprog/src/main/resources/$Templates.layout.xml
diff --git a/tooling/metaprog/src/main/resources/holder/TemplateHolder.java 
b/tooling/metaprog/src/main/resources/holder/$TemplateHolder.java
similarity index 100%
rename from tooling/metaprog/src/main/resources/holder/TemplateHolder.java
rename to tooling/metaprog/src/main/resources/holder/$TemplateHolder.java
diff --git a/tooling/metaprog/src/main/resources/holder/TemplateHolder2.java 
b/tooling/metaprog/src/main/resources/holder/$TemplateHolder2.java
similarity index 100%
rename from tooling/metaprog/src/main/resources/holder/TemplateHolder2.java
rename to tooling/metaprog/src/main/resources/holder/$TemplateHolder2.java
diff --git 
a/tooling/metaprog/src/main/resources/holder/TemplateHolder_actionReturning.java
 
b/tooling/metaprog/src/main/resources/holder/$TemplateHolder_actionReturning.java
similarity index 100%
rename from 
tooling/metaprog/src/main/resources/holder/TemplateHolder_actionReturning.java
rename to 
tooling/metaprog/src/main/resources/holder/$TemplateHolder_actionReturning.java
diff --git 
a/tooling/metaprog/src/main/resources/holder/TemplateHolder_actionReturningCollection.java
 
b/tooling/metaprog/src/main/resources/holder/$TemplateHolder_actionReturningCollection.java
similarity index 100%
rename from 
tooling/metaprog/src/main/resources/holder/TemplateHolder_actionReturningCollection.java
rename to 
tooling/metaprog/src/main/resources/holder/$TemplateHolder_actionReturningCollection.java
diff --git 
a/tooling/metaprog/src/main/resources/holder/TemplateHolder_mixinProperty.java 
b/tooling/metaprog/src/main/resources/holder/$TemplateHolder_mixinProperty.java
similarity index 100%
rename from 
tooling/metaprog/src/main/resources/holder/TemplateHolder_mixinProperty.java
rename to 
tooling/metaprog/src/main/resources/holder/$TemplateHolder_mixinProperty.java
diff --git 
a/tooling/metaprog/src/main/resources/holder/TemplateHolder_updateReadOnlyOptionalProperty.java
 
b/tooling/metaprog/src/main/resources/holder/$TemplateHolder_updateReadOnlyOptionalProperty.java
similarity index 100%
rename from 
tooling/metaprog/src/main/resources/holder/TemplateHolder_updateReadOnlyOptionalProperty.java
rename to 
tooling/metaprog/src/main/resources/holder/$TemplateHolder_updateReadOnlyOptionalProperty.java
diff --git 
a/tooling/metaprog/src/main/resources/holder/TemplateHolder_updateReadOnlyProperty.java
 
b/tooling/metaprog/src/main/resources/holder/$TemplateHolder_updateReadOnlyProperty.java
similarity index 100%
rename from 
tooling/metaprog/src/main/resources/holder/TemplateHolder_updateReadOnlyProperty.java
rename to 
tooling/metaprog/src/main/resources/holder/$TemplateHolder_updateReadOnlyProperty.java
diff --git 
a/tooling/metaprog/src/main/resources/holder/TemplateHolder_updateReadOnlyPropertyWithChoices.java
 
b/tooling/metaprog/src/main/resources/holder/$TemplateHolder_updateReadOnlyPropertyWithChoices.java
similarity index 100%
rename from 
tooling/metaprog/src/main/resources/holder/TemplateHolder_updateReadOnlyPropertyWithChoices.java
rename to 
tooling/metaprog/src/main/resources/holder/$TemplateHolder_updateReadOnlyPropertyWithChoices.java
diff --git 
a/tooling/metaprog/src/main/resources/jdo/TemplateJdo-description.adoc 
b/tooling/metaprog/src/main/resources/jdo/$TemplateJdo-description.adoc
similarity index 93%
rename from tooling/metaprog/src/main/resources/jdo/TemplateJdo-description.adoc
rename to tooling/metaprog/src/main/resources/jdo/$TemplateJdo-description.adoc
index d4840f05e7..9e9229e9c1 100644
--- a/tooling/metaprog/src/main/resources/jdo/TemplateJdo-description.adoc
+++ b/tooling/metaprog/src/main/resources/jdo/$TemplateJdo-description.adoc
@@ -4,7 +4,7 @@ JDO supports `java.util.UUID` out-of-the-box, so no special 
annotations are requ
 
 [source,java]
 ----
-include::JavaUtilUuidJdo.java[tags=class]
+include::$TemplateJdo.java[tags=class]
 ----
 <.> a no-arg constructor is introduced by JDO enhancer
 <.> required property as defined to JDO/DataNucleus.
@@ -15,4 +15,4 @@ Apache Isis assumes properties are mandatory, so no 
additional annotation is req
 <.> optional property as defined to JDO/DataNucleus
 
 
-include::../JavaUtilUuids-common.adoc[]
\ No newline at end of file
+include::../$Templates-common.adoc[]
\ No newline at end of file
diff --git a/tooling/metaprog/src/main/resources/jdo/TemplateJdo.java 
b/tooling/metaprog/src/main/resources/jdo/$TemplateJdo.java
similarity index 100%
rename from tooling/metaprog/src/main/resources/jdo/TemplateJdo.java
rename to tooling/metaprog/src/main/resources/jdo/$TemplateJdo.java
diff --git a/tooling/metaprog/src/main/resources/jdo/TemplateJdoEntities.java 
b/tooling/metaprog/src/main/resources/jdo/$TemplateJdoEntities.java
similarity index 100%
rename from tooling/metaprog/src/main/resources/jdo/TemplateJdoEntities.java
rename to tooling/metaprog/src/main/resources/jdo/$TemplateJdoEntities.java
diff --git 
a/tooling/metaprog/src/main/resources/jpa/TemplateJpa-description.adoc 
b/tooling/metaprog/src/main/resources/jpa/$TemplateJpa-description.adoc
similarity index 94%
rename from tooling/metaprog/src/main/resources/jpa/TemplateJpa-description.adoc
rename to tooling/metaprog/src/main/resources/jpa/$TemplateJpa-description.adoc
index 98812cef37..d34e536add 100644
--- a/tooling/metaprog/src/main/resources/jpa/TemplateJpa-description.adoc
+++ b/tooling/metaprog/src/main/resources/jpa/$TemplateJpa-description.adoc
@@ -9,7 +9,7 @@ JDO supports `java.util.UUID` out-of-the-box, so no special 
annotations are requ
 
 [source,java]
 ----
-include::JavaUtilUuidJpa.java[tags=class]
+include::$TemplateJpa.java[tags=class]
 ----
 <.> a no-arg constructor is introduced by JDO enhancer
 <.> required property as defined to JDO/DataNucleus.
@@ -20,4 +20,4 @@ Apache Isis assumes properties are mandatory, so no 
additional annotation is req
 <.> optional property as defined to JDO/DataNucleus
 
 
-include::../JavaUtilUuids-common.adoc[]
\ No newline at end of file
+include::../$Templates-common.adoc[]
\ No newline at end of file
diff --git a/tooling/metaprog/src/main/resources/jpa/TemplateJpa.java 
b/tooling/metaprog/src/main/resources/jpa/$TemplateJpa.java
similarity index 100%
rename from tooling/metaprog/src/main/resources/jpa/TemplateJpa.java
rename to tooling/metaprog/src/main/resources/jpa/$TemplateJpa.java
diff --git a/tooling/metaprog/src/main/resources/jpa/TemplateJpaEntities.java 
b/tooling/metaprog/src/main/resources/jpa/$TemplateJpaEntities.java
similarity index 100%
rename from tooling/metaprog/src/main/resources/jpa/TemplateJpaEntities.java
rename to tooling/metaprog/src/main/resources/jpa/$TemplateJpaEntities.java
diff --git 
a/tooling/metaprog/src/main/resources/persistence/TemplateEntity.java 
b/tooling/metaprog/src/main/resources/persistence/$TemplateEntity.java
similarity index 100%
rename from tooling/metaprog/src/main/resources/persistence/TemplateEntity.java
rename to tooling/metaprog/src/main/resources/persistence/$TemplateEntity.java
diff --git 
a/tooling/metaprog/src/main/resources/persistence/TemplateEntity.layout.xml 
b/tooling/metaprog/src/main/resources/persistence/$TemplateEntity.layout.xml
similarity index 100%
rename from 
tooling/metaprog/src/main/resources/persistence/TemplateEntity.layout.xml
rename to 
tooling/metaprog/src/main/resources/persistence/$TemplateEntity.layout.xml
diff --git 
a/tooling/metaprog/src/main/resources/persistence/TemplateSeeding.java 
b/tooling/metaprog/src/main/resources/persistence/$TemplateSeeding.java
similarity index 100%
rename from tooling/metaprog/src/main/resources/persistence/TemplateSeeding.java
rename to tooling/metaprog/src/main/resources/persistence/$TemplateSeeding.java
diff --git a/tooling/metaprog/src/main/resources/samples/TemplateSamples.java 
b/tooling/metaprog/src/main/resources/samples/$TemplateSamples.java
similarity index 100%
rename from tooling/metaprog/src/main/resources/samples/TemplateSamples.java
rename to tooling/metaprog/src/main/resources/samples/$TemplateSamples.java
diff --git a/tooling/metaprog/src/main/resources/vm/TemplateVm-description.adoc 
b/tooling/metaprog/src/main/resources/vm/$TemplateVm-description.adoc
similarity index 93%
rename from tooling/metaprog/src/main/resources/vm/TemplateVm-description.adoc
rename to tooling/metaprog/src/main/resources/vm/$TemplateVm-description.adoc
index 36e0749ced..3763d2c948 100644
--- a/tooling/metaprog/src/main/resources/vm/TemplateVm-description.adoc
+++ b/tooling/metaprog/src/main/resources/vm/$TemplateVm-description.adoc
@@ -4,7 +4,7 @@ JAXB supports `java.util.UUID` out-of-the-box, so no special 
annotations are req
 
 [source,java]
 ----
-include::JavaUtilUuidVm.java[tags=class]
+include::$TemplateVm.java[tags=class]
 ----
 <.> a no-arg constructor is required by JAXB
 <.> required property as defined to JAXB
@@ -14,4 +14,4 @@ include::JavaUtilUuidVm.java[tags=class]
 This is the default for JAXB so no additional annotation required.
 
 
-include::../JavaUtilUuids-common.adoc[]
\ No newline at end of file
+include::../$Templates-common.adoc[]
\ No newline at end of file
diff --git a/tooling/metaprog/src/main/resources/vm/TemplateVm.java 
b/tooling/metaprog/src/main/resources/vm/$TemplateVm.java
similarity index 100%
rename from tooling/metaprog/src/main/resources/vm/TemplateVm.java
rename to tooling/metaprog/src/main/resources/vm/$TemplateVm.java
diff --git a/tooling/metaprog/src/main/resources/vm/TemplateVm.layout.xml 
b/tooling/metaprog/src/main/resources/vm/$TemplateVm.layout.xml
similarity index 100%
rename from tooling/metaprog/src/main/resources/vm/TemplateVm.layout.xml
rename to tooling/metaprog/src/main/resources/vm/$TemplateVm.layout.xml
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 f9536aa0c3..c3651af704 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
@@ -40,7 +40,8 @@ class ValueTypeGenTemplateTest {
                   || file.getName().endsWith(".adoc")
               );
 
-        val outputRootDir = _Files.tempDir("isis-tooling-showcases");
+        val outputRootDir = new File("D:/tmp");
+                //_Files.tempDir("isis-tooling-showcases");
         log.info("tmp dir created in {}", outputRootDir);
 
         val generator = new ValueTypeGenTemplate(Config.builder()

Reply via email to