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()