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

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

commit e3e98f02ef332fe61267524608c0ac22154f49a2
Author: danhaywood <[email protected]>
AuthorDate: Fri May 19 06:53:21 2023 +0100

    CAUSEWAY-2485: cleans up words for ErrorReportingService
---
 .../ActionDomainEventControlStrategy.java          | 28 ++++----
 .../ActionDomainEventControlSubscriber.java        |  4 +-
 .../CollectionDomainEventControlStrategy.java      | 12 ++--
 .../CollectionDomainEventControlSubscriber.java    |  4 +-
 .../DomainObjectXxxDomainEventControlStrategy.java | 28 ++++----
 ...omainObjectXxxDomainEventControlSubscriber.java |  4 +-
 .../DomainObjectXxxLifecycleEventSubscriber.java   |  4 +-
 .../progmodel/compositevalues/ComplexNumber.java   |  4 +-
 .../ComplexNumberValueSemantics.java               | 20 +++---
 .../compositevalues/ComplexNumber_default.java     |  4 +-
 .../compositevalues/CompositeValueTypePage.java    |  8 +--
 .../CompositeValueTypePage_addComplexNumber.java   |  4 +-
 ...mpositeValueTypePage_subtractComplexNumber.java |  4 +-
 .../progmodel/customvalues/EmailAddress.java       |  4 +-
 .../customvalues/EmailAddressValueSemantics.java   | 28 ++++----
 .../objects/progmodel/customvalues/Percentage.java |  4 +-
 .../customvalues/ScalarValueTypePage.java          |  8 +--
 .../embeddedvalues/jdo/ComplexNumberJdo.java       |  4 +-
 .../jdo/ComplexNumberJdoValueSemantics.java        | 16 ++---
 .../embeddedvalues/jdo/EmbeddedTypePageJdo.java    |  8 +--
 .../embeddedvalues/jpa/ComplexNumberJpa.java       |  4 +-
 .../jpa/ComplexNumberJpaValueSemantics.java        | 16 ++---
 .../embeddedvalues/jpa/EmbeddedTypePageJpa.java    |  8 +--
 .../mixins/CountHolder_fibonacciSequence.java      |  8 +--
 .../PropertyDomainEventControlStrategy.java        | 28 ++++----
 .../PropertyDomainEventControlSubscriber.java      |  4 +-
 .../core/errorreportingservice/EmailTicket.java    | 77 ++++++++++------------
 .../ErrorReportingServiceDemoVm-description.adoc   | 70 ++++++++++----------
 ....xml => ErrorReportingServiceDemoVm.layout.xml} |  0
 ...tion.java => ErrorReportingServiceForDemo.java} | 15 +++--
 .../integration/examples/misc.spec.js              |  2 +-
 31 files changed, 215 insertions(+), 217 deletions(-)

diff --git 
a/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/Action/domainEvent/ActionDomainEventControlStrategy.java
 
b/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/Action/domainEvent/ActionDomainEventControlStrategy.java
index 83031ff691..92443beae8 100644
--- 
a/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/Action/domainEvent/ActionDomainEventControlStrategy.java
+++ 
b/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/Action/domainEvent/ActionDomainEventControlStrategy.java
@@ -24,7 +24,7 @@ import 
org.apache.causeway.applib.events.domain.ActionDomainEvent;
 import org.apache.causeway.applib.services.message.MessageService;
 import org.apache.causeway.applib.services.registry.ServiceRegistry;
 
-// tag::class[]
+//tag::class[]
 enum ActionDomainEventControlStrategy {
 
     DO_NOTHING{
@@ -33,9 +33,9 @@ enum ActionDomainEventControlStrategy {
         }
     },
     // ...
-// end::class[]
+//end::class[]
 
-// tag::hide[]
+//tag::hide[]
     HIDE {
         @Override
         void on(ActionDomainEvent<?> ev, ServiceRegistry serviceRegistry) {
@@ -46,8 +46,8 @@ enum ActionDomainEventControlStrategy {
             }
         }
     },
-// end::hide[]
-// tag::disable[]
+//end::hide[]
+//tag::disable[]
     DISABLE {
         @Override
         void on(ActionDomainEvent<?> ev, ServiceRegistry serviceRegistry) {
@@ -58,8 +58,8 @@ enum ActionDomainEventControlStrategy {
             }
         }
     },
-// end::disable[]
-// tag::validate[]
+//end::disable[]
+//tag::validate[]
     VALIDATE_MUST_BE_UPPER_CASE{
         @Override
         void on(ActionDomainEvent<?> ev, ServiceRegistry serviceRegistry) {
@@ -73,8 +73,8 @@ enum ActionDomainEventControlStrategy {
             }
         }
     },
-// end::validate[]
-// tag::executing[]
+//end::validate[]
+//tag::executing[]
     EXECUTING_FORCE_UPPER_CASE{
         @Override
         void on(ActionDomainEvent<?> ev, ServiceRegistry serviceRegistry) {
@@ -87,8 +87,8 @@ enum ActionDomainEventControlStrategy {
             }
         }
     },
-// end::executing[]
-// tag::executed[]
+//end::executing[]
+//tag::executed[]
     EXECUTED_ANNOUNCE{
         @Override
         void on(ActionDomainEvent<?> ev, ServiceRegistry serviceRegistry) {
@@ -103,10 +103,10 @@ enum ActionDomainEventControlStrategy {
             }
         }
     }
-// end::executed[]
+//end::executed[]
 
-// tag::class[]
+//tag::class[]
     ;
     abstract void on(ActionDomainEvent<?> ev, ServiceRegistry serviceRegistry);
 }
-// end::class[]
+//end::class[]
diff --git 
a/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/Action/domainEvent/ActionDomainEventControlSubscriber.java
 
b/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/Action/domainEvent/ActionDomainEventControlSubscriber.java
index c77eacb246..15cd2318a4 100644
--- 
a/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/Action/domainEvent/ActionDomainEventControlSubscriber.java
+++ 
b/examples/demo/domain/src/main/java/demoapp/dom/domain/actions/Action/domainEvent/ActionDomainEventControlSubscriber.java
@@ -27,7 +27,7 @@ import 
org.apache.causeway.applib.services.registry.ServiceRegistry;
 
 import lombok.RequiredArgsConstructor;
 
-// tag::class[]
+//tag::class[]
 @Service
 @RequiredArgsConstructor(onConstructor_ = {@Inject})
 class ActionDomainEventControlSubscriber {
@@ -42,4 +42,4 @@ class ActionDomainEventControlSubscriber {
         controlStrategy.on(ev, serviceRegistry);                            // 
<.>
     }
 }
-// end::class[]
+//end::class[]
diff --git 
a/examples/demo/domain/src/main/java/demoapp/dom/domain/collections/Collection/domainEvent/CollectionDomainEventControlStrategy.java
 
b/examples/demo/domain/src/main/java/demoapp/dom/domain/collections/Collection/domainEvent/CollectionDomainEventControlStrategy.java
index 3ee29e3764..17adb5d324 100644
--- 
a/examples/demo/domain/src/main/java/demoapp/dom/domain/collections/Collection/domainEvent/CollectionDomainEventControlStrategy.java
+++ 
b/examples/demo/domain/src/main/java/demoapp/dom/domain/collections/Collection/domainEvent/CollectionDomainEventControlStrategy.java
@@ -21,7 +21,7 @@ package demoapp.dom.domain.collections.Collection.domainEvent;
 import org.apache.causeway.applib.services.registry.ServiceRegistry;
 
 @SuppressWarnings("SwitchStatementWithTooFewBranches")
-// tag::class[]
+//tag::class[]
 enum CollectionDomainEventControlStrategy {
 
     DO_NOTHING{
@@ -30,9 +30,9 @@ enum CollectionDomainEventControlStrategy {
         }
     },
     // ...
-// end::class[]
+//end::class[]
 
-// tag::hide[]
+//tag::hide[]
     HIDE {
         @Override
         void on(CollectionDomainEventPage.ChildrenDomainEvent ev, 
ServiceRegistry serviceRegistry) {
@@ -43,10 +43,10 @@ enum CollectionDomainEventControlStrategy {
             }
         }
     },
-// end::hide[]
+//end::hide[]
 
-// tag::class[]
+//tag::class[]
     ;
     abstract void on(CollectionDomainEventPage.ChildrenDomainEvent ev, 
ServiceRegistry serviceRegistry);
 }
-// end::class[]
+//end::class[]
diff --git 
a/examples/demo/domain/src/main/java/demoapp/dom/domain/collections/Collection/domainEvent/CollectionDomainEventControlSubscriber.java
 
b/examples/demo/domain/src/main/java/demoapp/dom/domain/collections/Collection/domainEvent/CollectionDomainEventControlSubscriber.java
index 2ab143720f..d4a7761f7f 100644
--- 
a/examples/demo/domain/src/main/java/demoapp/dom/domain/collections/Collection/domainEvent/CollectionDomainEventControlSubscriber.java
+++ 
b/examples/demo/domain/src/main/java/demoapp/dom/domain/collections/Collection/domainEvent/CollectionDomainEventControlSubscriber.java
@@ -27,7 +27,7 @@ import 
org.apache.causeway.applib.services.registry.ServiceRegistry;
 
 import lombok.RequiredArgsConstructor;
 
-// tag::class[]
+//tag::class[]
 @Service
 @RequiredArgsConstructor(onConstructor_ = { @Inject })
 class CollectionDomainEventControlSubscriber {
@@ -42,4 +42,4 @@ class CollectionDomainEventControlSubscriber {
         controlStrategy.on(ev, serviceRegistry);                            // 
<.>
     }
 }
-// end::class[]
+//end::class[]
diff --git 
a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/xxxDomainEvent/DomainObjectXxxDomainEventControlStrategy.java
 
b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/xxxDomainEvent/DomainObjectXxxDomainEventControlStrategy.java
index ecc81a14a4..e5bd1cf4a6 100644
--- 
a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/xxxDomainEvent/DomainObjectXxxDomainEventControlStrategy.java
+++ 
b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/xxxDomainEvent/DomainObjectXxxDomainEventControlStrategy.java
@@ -26,7 +26,7 @@ import 
org.apache.causeway.applib.services.registry.ServiceRegistry;
 
 import lombok.val;
 
-// tag::class[]
+//tag::class[]
 enum DomainObjectXxxDomainEventControlStrategy {
 
     DO_NOTHING{
@@ -35,9 +35,9 @@ enum DomainObjectXxxDomainEventControlStrategy {
         }
     },
     // ...
-// end::class[]
+//end::class[]
 
-// tag::hide[]
+//tag::hide[]
     HIDE {
         @Override
         void on(DomainObjectXxxDomainEventPage.DomainEventMarker ev, 
ServiceRegistry serviceRegistry) {
@@ -51,8 +51,8 @@ enum DomainObjectXxxDomainEventControlStrategy {
             }
         }
     },
-// end::hide[]
-// tag::disable[]
+//end::hide[]
+//tag::disable[]
     DISABLE {
         @Override
         void on(DomainObjectXxxDomainEventPage.DomainEventMarker ev, 
ServiceRegistry serviceRegistry) {
@@ -66,8 +66,8 @@ enum DomainObjectXxxDomainEventControlStrategy {
             }
         }
     },
-// end::disable[]
-// tag::validate[]
+//end::disable[]
+//tag::validate[]
     VALIDATE_MUST_BE_UPPER_CASE{
         @Override
         void on(DomainObjectXxxDomainEventPage.DomainEventMarker ev, 
ServiceRegistry serviceRegistry) {
@@ -95,8 +95,8 @@ enum DomainObjectXxxDomainEventControlStrategy {
             }
         }
     },
-// end::validate[]
-// tag::executing[]
+//end::validate[]
+//tag::executing[]
     EXECUTING_FORCE_UPPER_CASE{
         @Override
         void on(DomainObjectXxxDomainEventPage.DomainEventMarker ev, 
ServiceRegistry serviceRegistry) {
@@ -121,8 +121,8 @@ enum DomainObjectXxxDomainEventControlStrategy {
             }
         }
     },
-// end::executing[]
-// tag::executed[]
+//end::executing[]
+//tag::executed[]
     EXECUTED_ANNOUNCE{
         @Override
         void on(DomainObjectXxxDomainEventPage.DomainEventMarker ev, 
ServiceRegistry serviceRegistry) {
@@ -156,10 +156,10 @@ enum DomainObjectXxxDomainEventControlStrategy {
             }
         }
     }
-// end::executed[]
+//end::executed[]
 
-// tag::class[]
+//tag::class[]
     ;
     abstract void on(DomainObjectXxxDomainEventPage.DomainEventMarker ev, 
ServiceRegistry serviceRegistry);
 }
-// end::class[]
+//end::class[]
diff --git 
a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/xxxDomainEvent/DomainObjectXxxDomainEventControlSubscriber.java
 
b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/xxxDomainEvent/DomainObjectXxxDomainEventControlSubscriber.java
index 37d7a9b54c..667b731891 100644
--- 
a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/xxxDomainEvent/DomainObjectXxxDomainEventControlSubscriber.java
+++ 
b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/xxxDomainEvent/DomainObjectXxxDomainEventControlSubscriber.java
@@ -27,7 +27,7 @@ import 
org.apache.causeway.applib.services.registry.ServiceRegistry;
 
 import lombok.RequiredArgsConstructor;
 
-// tag::class[]
+//tag::class[]
 @Service
 @RequiredArgsConstructor(onConstructor_ = {@Inject})
 class DomainObjectXxxDomainEventControlSubscriber {
@@ -42,4 +42,4 @@ class DomainObjectXxxDomainEventControlSubscriber {
         controlStrategy.on(ev, serviceRegistry);                            // 
<.>
     }
 }
-// end::class[]
+//end::class[]
diff --git 
a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/xxxLifecycleEvent/DomainObjectXxxLifecycleEventSubscriber.java
 
b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/xxxLifecycleEvent/DomainObjectXxxLifecycleEventSubscriber.java
index 6b174fbac5..a098428f80 100644
--- 
a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/xxxLifecycleEvent/DomainObjectXxxLifecycleEventSubscriber.java
+++ 
b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/xxxLifecycleEvent/DomainObjectXxxLifecycleEventSubscriber.java
@@ -32,7 +32,7 @@ import 
org.apache.causeway.applib.services.bookmark.BookmarkService;
 import lombok.RequiredArgsConstructor;
 import lombok.val;
 
-// tag::class[]
+//tag::class[]
 @Service
 @RequiredArgsConstructor(onConstructor_ = {@Inject})
 class DomainObjectXxxLifecycleEventSubscriber {
@@ -51,4 +51,4 @@ class DomainObjectXxxLifecycleEventSubscriber {
     List<DomainObjectLifecycleEventVm> events = new LinkedList<>();
 
 }
-// end::class[]
+//end::class[]
diff --git 
a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/progmodel/compositevalues/ComplexNumber.java
 
b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/progmodel/compositevalues/ComplexNumber.java
index 9afe3f7266..2d90460356 100644
--- 
a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/progmodel/compositevalues/ComplexNumber.java
+++ 
b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/progmodel/compositevalues/ComplexNumber.java
@@ -19,7 +19,7 @@
 package demoapp.dom.domain.objects.progmodel.compositevalues;
 
 
-// tag::class[]
+//tag::class[]
 @org.apache.causeway.applib.annotation.Value                // <.>
 @lombok.Value                                               // <.>
 @lombok.AllArgsConstructor(staticName = "of")
@@ -35,4 +35,4 @@ public class ComplexNumber {
         return ComplexNumber.of(re - other.re, im - other.im);
     }
 }
-// end::class[]
+//end::class[]
diff --git 
a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/progmodel/compositevalues/ComplexNumberValueSemantics.java
 
b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/progmodel/compositevalues/ComplexNumberValueSemantics.java
index 3d61644b25..f84cf5271b 100644
--- 
a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/progmodel/compositevalues/ComplexNumberValueSemantics.java
+++ 
b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/progmodel/compositevalues/ComplexNumberValueSemantics.java
@@ -30,7 +30,7 @@ import 
org.apache.causeway.applib.value.semantics.ValueDecomposition;
 import org.apache.causeway.applib.value.semantics.ValueSemanticsAbstract;
 import org.apache.causeway.schema.common.v2.ValueType;
 
-// tag::class[]
+//tag::class[]
 @Named("demo.ComplexNumberValueSemantics")
 @Component
 @Import({
@@ -38,7 +38,7 @@ import org.apache.causeway.schema.common.v2.ValueType;
 })
 public class ComplexNumberValueSemantics
         extends ValueSemanticsAbstract<ComplexNumber> {     // <.>
-// end::class[]
+//end::class[]
 
     @Override
     public Class<ComplexNumber> getCorrespondingClass() {
@@ -50,7 +50,7 @@ public class ComplexNumberValueSemantics
         return ValueType.COMPOSITE;
     }
 
-// tag::compose[]
+//tag::compose[]
     @Override
     public ValueDecomposition decompose(final ComplexNumber value) {
         return CommonDtoUtils.typedTupleBuilder(value)
@@ -68,16 +68,16 @@ public class ComplexNumberValueSemantics
                         (Double)map.get("im")))
                 .orElse(null);
     }
-// end::compose[]
+//end::compose[]
 
-// tag::getDefaultsProvider[]
+//tag::getDefaultsProvider[]
     @Override
     public DefaultsProvider<ComplexNumber> getDefaultsProvider() {
         return ()-> ComplexNumber.of(0, 0);
     }
-// end::getDefaultsProvider[]
+//end::getDefaultsProvider[]
 
-// tag::getRenderer[]
+//tag::getRenderer[]
     @Override
     public Renderer<ComplexNumber> getRenderer() {
         return new Renderer<>() {
@@ -92,8 +92,8 @@ public class ComplexNumberValueSemantics
             }
         };
     }
-// end::getRenderer[]
+//end::getRenderer[]
 
-// tag::class[]
+//tag::class[]
 }
-// end::class[]
+//end::class[]
diff --git 
a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/progmodel/compositevalues/ComplexNumber_default.java
 
b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/progmodel/compositevalues/ComplexNumber_default.java
index 2ccb6160e9..1a6ac85c17 100644
--- 
a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/progmodel/compositevalues/ComplexNumber_default.java
+++ 
b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/progmodel/compositevalues/ComplexNumber_default.java
@@ -8,7 +8,7 @@ import org.apache.causeway.applib.annotation.SemanticsOf;
 
 import lombok.RequiredArgsConstructor;
 
-// tag::default-mixin[]
+//tag::default-mixin[]
 @Action(semantics = SemanticsOf.SAFE)
 @ActionLayout(promptStyle = PromptStyle.INLINE_AS_IF_EDIT)  // <.>
 @RequiredArgsConstructor
@@ -29,4 +29,4 @@ public class ComplexNumber_default {
         return mixee.getIm();
     }
 }
-// end::default-mixin[]
+//end::default-mixin[]
diff --git 
a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/progmodel/compositevalues/CompositeValueTypePage.java
 
b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/progmodel/compositevalues/CompositeValueTypePage.java
index f93b2915a4..7277fc30d2 100644
--- 
a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/progmodel/compositevalues/CompositeValueTypePage.java
+++ 
b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/progmodel/compositevalues/CompositeValueTypePage.java
@@ -31,20 +31,20 @@ import org.apache.causeway.applib.annotation.ObjectSupport;
 import org.apache.causeway.applib.annotation.Property;
 import org.apache.causeway.applib.annotation.PropertyLayout;
 
-// tag::class[]
+//tag::class[]
 @Named("demo.CompositeValuesPage")
 @DomainObject(nature=Nature.VIEW_MODEL)
 public class CompositeValueTypePage implements HasAsciiDocDescription {
     // ...
-// end::class[]
+//end::class[]
     @ObjectSupport public String title() {
         return "Composite Value Types";
     }
 
 
-// tag::class[]
+//tag::class[]
     @Property
     @Getter @Setter
     private ComplexNumber complexNumber;
 }
-// end::class[]
+//end::class[]
diff --git 
a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/progmodel/compositevalues/CompositeValueTypePage_addComplexNumber.java
 
b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/progmodel/compositevalues/CompositeValueTypePage_addComplexNumber.java
index 3b5c27abec..34d2b70cad 100644
--- 
a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/progmodel/compositevalues/CompositeValueTypePage_addComplexNumber.java
+++ 
b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/progmodel/compositevalues/CompositeValueTypePage_addComplexNumber.java
@@ -4,7 +4,7 @@ import lombok.RequiredArgsConstructor;
 
 import org.apache.causeway.applib.annotation.*;
 
-// tag::class[]
+//tag::class[]
 @Action(semantics = SemanticsOf.NON_IDEMPOTENT)
 @ActionLayout(
         associateWith = "complexNumber",
@@ -34,4 +34,4 @@ public class CompositeValueTypePage_addComplexNumber {
         return ComplexNumber.of(0,0);
     }
 }
-// end::class[]
+//end::class[]
diff --git 
a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/progmodel/compositevalues/CompositeValueTypePage_subtractComplexNumber.java
 
b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/progmodel/compositevalues/CompositeValueTypePage_subtractComplexNumber.java
index 470737be02..3546b64360 100644
--- 
a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/progmodel/compositevalues/CompositeValueTypePage_subtractComplexNumber.java
+++ 
b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/progmodel/compositevalues/CompositeValueTypePage_subtractComplexNumber.java
@@ -4,7 +4,7 @@ import lombok.RequiredArgsConstructor;
 
 import org.apache.causeway.applib.annotation.*;
 
-// tag::class[]
+//tag::class[]
 @Action(semantics = SemanticsOf.NON_IDEMPOTENT)
 @ActionLayout(
         associateWith = "complexNumber",
@@ -34,4 +34,4 @@ public class CompositeValueTypePage_subtractComplexNumber {
         return ComplexNumber.of(0,0);
     }
 }
-// end::class[]
+//end::class[]
diff --git 
a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/progmodel/customvalues/EmailAddress.java
 
b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/progmodel/customvalues/EmailAddress.java
index f67333b673..bc2785dd5c 100644
--- 
a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/progmodel/customvalues/EmailAddress.java
+++ 
b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/progmodel/customvalues/EmailAddress.java
@@ -19,11 +19,11 @@
 package demoapp.dom.domain.objects.progmodel.customvalues;
 
 
-// tag::class[]
+//tag::class[]
 @org.apache.causeway.applib.annotation.Value        // <.>
 @lombok.Value                                       // <.>
 @lombok.AllArgsConstructor(staticName = "of")
 public class EmailAddress {
     String emailAddress;                            // <.>
 }
-// end::class[]
+//end::class[]
diff --git 
a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/progmodel/customvalues/EmailAddressValueSemantics.java
 
b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/progmodel/customvalues/EmailAddressValueSemantics.java
index 1e639613b3..92d9cd9d9f 100644
--- 
a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/progmodel/customvalues/EmailAddressValueSemantics.java
+++ 
b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/progmodel/customvalues/EmailAddressValueSemantics.java
@@ -37,13 +37,13 @@ import 
org.apache.causeway.applib.value.semantics.ValueDecomposition;
 import org.apache.causeway.applib.value.semantics.ValueSemanticsAbstract;
 import org.apache.causeway.schema.common.v2.ValueType;
 
-// tag::class[]
+//tag::class[]
 @Named("demo.EmailAddressValueSemantics")
 @Component
 public class EmailAddressValueSemantics
         extends ValueSemanticsAbstract<EmailAddress> {   // <.>
     // ...
-// end::class[]
+//end::class[]
 
     @Override
     public Class<EmailAddress> getCorrespondingClass() {
@@ -55,7 +55,7 @@ public class EmailAddressValueSemantics
         return ValueType.STRING;
     }
 
-// tag::compose[]
+//tag::compose[]
     @Override
     public ValueDecomposition decompose(final EmailAddress value) {
         return decomposeAsNullable(value, EmailAddress::getEmailAddress, 
()->null);
@@ -66,9 +66,9 @@ public class EmailAddressValueSemantics
         return composeFromNullable(
                 decomposition, ValueWithTypeDto::getString, EmailAddress::of, 
()->null);
     }
-// end::compose[]
+//end::compose[]
 
-// tag::getDefaultsProvider[]
+//tag::getDefaultsProvider[]
     @Override
     public DefaultsProvider<EmailAddress> getDefaultsProvider() {
         return new DefaultsProvider<EmailAddress>() {
@@ -78,9 +78,9 @@ public class EmailAddressValueSemantics
             }
         };
     }
-// end::getDefaultsProvider[]
+//end::getDefaultsProvider[]
 
-// tag::getRenderer[]
+//tag::getRenderer[]
     @Override
     public Renderer<EmailAddress> getRenderer() {
         return new Renderer<>() {
@@ -91,9 +91,9 @@ public class EmailAddressValueSemantics
         };
     }
 
-// end::getRenderer[]
+//end::getRenderer[]
 
-// tag::getParser[]
+//tag::getParser[]
     @Override
     public Parser<EmailAddress> getParser() {
         return new Parser<>() {
@@ -125,9 +125,9 @@ public class EmailAddressValueSemantics
             }
         };
     }
-// end::getParser[]
+//end::getParser[]
 
-// tag::getIdStringifier[]
+//tag::getIdStringifier[]
     @Override
     public IdStringifier<EmailAddress> getIdStringifier() {
         return new IdStringifier.EntityAgnostic<>() {
@@ -147,8 +147,8 @@ public class EmailAddressValueSemantics
             }
         };
     }
-// end::getIdStringifier[]
+//end::getIdStringifier[]
 
-// tag::class[]
+//tag::class[]
 }
-// end::class[]
+//end::class[]
diff --git 
a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/progmodel/customvalues/Percentage.java
 
b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/progmodel/customvalues/Percentage.java
index 883bf94322..65086dad29 100644
--- 
a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/progmodel/customvalues/Percentage.java
+++ 
b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/progmodel/customvalues/Percentage.java
@@ -19,11 +19,11 @@
 package demoapp.dom.domain.objects.progmodel.customvalues;
 
 
-// tag::class[]
+//tag::class[]
 @org.apache.causeway.applib.annotation.Value        // <.>
 @lombok.Value                                       // <.>
 @lombok.AllArgsConstructor(staticName = "of")
 public class Percentage {
     int percentage;                                 // <.>
 }
-// end::class[]
+//end::class[]
diff --git 
a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/progmodel/customvalues/ScalarValueTypePage.java
 
b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/progmodel/customvalues/ScalarValueTypePage.java
index 9b44327cf2..fb2c17b070 100644
--- 
a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/progmodel/customvalues/ScalarValueTypePage.java
+++ 
b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/progmodel/customvalues/ScalarValueTypePage.java
@@ -31,20 +31,20 @@ import lombok.Setter;
 
 import demoapp.dom._infra.asciidocdesc.HasAsciiDocDescription;
 
-// tag::class[]
+//tag::class[]
 @Named("demo.ScalarValueTypePage")
 @DomainObject(nature=Nature.VIEW_MODEL)
 public class ScalarValueTypePage implements HasAsciiDocDescription {
     // ...
-// end::class[]
+//end::class[]
     @ObjectSupport public String title() {
         return "Scalar Value Types";
     }
 
 
-// tag::class[]
+//tag::class[]
     @Property(editing = Editing.ENABLED)
     @Getter @Setter
     private EmailAddress emailAddress;
 }
-// end::class[]
+//end::class[]
diff --git 
a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/progmodel/embeddedvalues/jdo/ComplexNumberJdo.java
 
b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/progmodel/embeddedvalues/jdo/ComplexNumberJdo.java
index dfc073118b..4f87cc28d4 100644
--- 
a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/progmodel/embeddedvalues/jdo/ComplexNumberJdo.java
+++ 
b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/progmodel/embeddedvalues/jdo/ComplexNumberJdo.java
@@ -24,7 +24,7 @@ import lombok.AccessLevel;
 
 import demoapp.dom.domain.objects.progmodel.embeddedvalues.ComplexNumber;
 
-// tag::class[]
+//tag::class[]
 @javax.jdo.annotations.PersistenceCapable
 @javax.jdo.annotations.EmbeddedOnly                                 // <.>
 @Value                                                              // <.>
@@ -41,4 +41,4 @@ public class ComplexNumberJdo
     @javax.jdo.annotations.Column(allowsNull = "false")
     private double im;                                              // <5>
 }
-// end::class[]
+//end::class[]
diff --git 
a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/progmodel/embeddedvalues/jdo/ComplexNumberJdoValueSemantics.java
 
b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/progmodel/embeddedvalues/jdo/ComplexNumberJdoValueSemantics.java
index bcb5e7d0bd..16ba12d9b7 100644
--- 
a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/progmodel/embeddedvalues/jdo/ComplexNumberJdoValueSemantics.java
+++ 
b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/progmodel/embeddedvalues/jdo/ComplexNumberJdoValueSemantics.java
@@ -30,13 +30,13 @@ import 
org.apache.causeway.applib.value.semantics.ValueSemanticsAbstract;
 import org.apache.causeway.schema.common.v2.ValueType;
 
 @Profile("demo-jdo")
-// tag::class[]
+//tag::class[]
 @Named("demo.ComplexNumberJdoValueSemantics")
 @Component
 public class ComplexNumberJdoValueSemantics
         extends ValueSemanticsAbstract<ComplexNumberJdo>{
     // ...
- // end::class[]
+ //end::class[]
 
     @Override
     public Class<ComplexNumberJdo> getCorrespondingClass() {
@@ -48,7 +48,7 @@ public class ComplexNumberJdoValueSemantics
         return ValueType.COMPOSITE;
     }
 
-// tag::compose[]
+//tag::compose[]
     @Override
     public ValueDecomposition decompose(final ComplexNumberJdo value) {
         return CommonDtoUtils.typedTupleBuilder(value)
@@ -66,9 +66,9 @@ public class ComplexNumberJdoValueSemantics
                         (Double)map.get("im")))
                 .orElse(null);
     }
-// end::compose[]
+//end::compose[]
 
-// tag::getRenderer[]
+//tag::getRenderer[]
      @Override
     public Renderer<ComplexNumberJdo> getRenderer() {
         return (context, object) -> title(object, "NaN");
@@ -82,7 +82,7 @@ public class ComplexNumberJdoValueSemantics
                         : (" - " + (-complexNumber.getIm())))
                 + "i";
      }
-// end::getRenderer[]
-// tag::class[]
+//end::getRenderer[]
+//tag::class[]
 }
-// end::class[]
+//end::class[]
diff --git 
a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/progmodel/embeddedvalues/jdo/EmbeddedTypePageJdo.java
 
b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/progmodel/embeddedvalues/jdo/EmbeddedTypePageJdo.java
index 9e2d0b04df..cd9d949605 100644
--- 
a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/progmodel/embeddedvalues/jdo/EmbeddedTypePageJdo.java
+++ 
b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/progmodel/embeddedvalues/jdo/EmbeddedTypePageJdo.java
@@ -33,23 +33,23 @@ import demoapp.dom._infra.values.ValueHolderRepository;
 import demoapp.dom.domain.objects.progmodel.embeddedvalues.ComplexNumber;
 import 
demoapp.dom.domain.objects.progmodel.embeddedvalues.NumberConstantEntity;
 
-// tag::class[]
+//tag::class[]
 @Named("demo.EmbeddedTypePageJdo")
 @DomainObject(nature=Nature.VIEW_MODEL)
 public class EmbeddedTypePageJdo implements HasAsciiDocDescription {
 
     // ...
-// end::class[]
+//end::class[]
     @Inject private ValueHolderRepository<ComplexNumber, ? extends 
NumberConstantEntity> numberConstantRepo;
 
     @ObjectSupport public String title() {
         return "Embedded Types";
     }
 
-// tag::class[]
+//tag::class[]
     @Collection
     public List<? extends NumberConstantEntity> getAllConstants(){
         return numberConstantRepo.all();
     }
 }
-// end::class[]
+//end::class[]
diff --git 
a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/progmodel/embeddedvalues/jpa/ComplexNumberJpa.java
 
b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/progmodel/embeddedvalues/jpa/ComplexNumberJpa.java
index 50aa33cd26..f5269d5b95 100644
--- 
a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/progmodel/embeddedvalues/jpa/ComplexNumberJpa.java
+++ 
b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/progmodel/embeddedvalues/jpa/ComplexNumberJpa.java
@@ -24,7 +24,7 @@ import lombok.AccessLevel;
 
 import demoapp.dom.domain.objects.progmodel.embeddedvalues.ComplexNumber;
 
-// tag::class[]
+//tag::class[]
 @javax.persistence.Embeddable                                       // <.>
 @Value                                                              // <.>
 @lombok.Getter                                                      // <.>
@@ -40,4 +40,4 @@ public class ComplexNumberJpa
     @javax.persistence.Column(nullable = false)
     private double im;                                              // <5>
 }
-// end::class[]
+//end::class[]
diff --git 
a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/progmodel/embeddedvalues/jpa/ComplexNumberJpaValueSemantics.java
 
b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/progmodel/embeddedvalues/jpa/ComplexNumberJpaValueSemantics.java
index f63c3b192e..9a2273a43a 100644
--- 
a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/progmodel/embeddedvalues/jpa/ComplexNumberJpaValueSemantics.java
+++ 
b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/progmodel/embeddedvalues/jpa/ComplexNumberJpaValueSemantics.java
@@ -30,13 +30,13 @@ import 
org.apache.causeway.applib.value.semantics.ValueSemanticsAbstract;
 import org.apache.causeway.schema.common.v2.ValueType;
 
 @Profile("demo-jpa")
-// tag::class[]
+//tag::class[]
 @Named("demo.ComplexNumberJpaValueSemantics")
 @Component
 public class ComplexNumberJpaValueSemantics
         extends ValueSemanticsAbstract<ComplexNumberJpa> {
     // ...
-// end::class[]
+//end::class[]
 
     @Override
     public Class<ComplexNumberJpa> getCorrespondingClass() {
@@ -48,7 +48,7 @@ public class ComplexNumberJpaValueSemantics
         return ValueType.COMPOSITE;
     }
 
-// tag::compose[]
+//tag::compose[]
     @Override
     public ValueDecomposition decompose(final ComplexNumberJpa value) {
         return CommonDtoUtils.typedTupleBuilder(value)
@@ -66,9 +66,9 @@ public class ComplexNumberJpaValueSemantics
                         (Double)map.get("im")))
                 .orElse(null);
     }
-// end::compose[]
+//end::compose[]
 
-// tag::getRenderer[]
+//tag::getRenderer[]
     @Override
     public Renderer<ComplexNumberJpa> getRenderer() {
         return (context, object) -> title(object, "NaN");
@@ -82,8 +82,8 @@ public class ComplexNumberJpaValueSemantics
                         : (" - " + (-complexNumber.getIm())))
                 + "i";
     }
-// end::getRenderer[]
+//end::getRenderer[]
 
-// tag::class[]
+//tag::class[]
 }
-// end::class[]
+//end::class[]
diff --git 
a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/progmodel/embeddedvalues/jpa/EmbeddedTypePageJpa.java
 
b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/progmodel/embeddedvalues/jpa/EmbeddedTypePageJpa.java
index 212f44b490..90c1392fb9 100644
--- 
a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/progmodel/embeddedvalues/jpa/EmbeddedTypePageJpa.java
+++ 
b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/progmodel/embeddedvalues/jpa/EmbeddedTypePageJpa.java
@@ -33,23 +33,23 @@ import demoapp.dom._infra.values.ValueHolderRepository;
 import demoapp.dom.domain.objects.progmodel.embeddedvalues.ComplexNumber;
 import 
demoapp.dom.domain.objects.progmodel.embeddedvalues.NumberConstantEntity;
 
-// tag::class[]
+//tag::class[]
 @Named("demo.EmbeddedTypePageJpa")
 @DomainObject(nature=Nature.VIEW_MODEL)
 public class EmbeddedTypePageJpa implements HasAsciiDocDescription {
 
     // ...
-// end::class[]
+//end::class[]
     @Inject private ValueHolderRepository<ComplexNumber, ? extends 
NumberConstantEntity> numberConstantRepo;
 
     @ObjectSupport public String title() {
         return "Embedded Types";
     }
 
-// tag::class[]
+//tag::class[]
     @Collection
     public List<? extends NumberConstantEntity> getAllConstants(){
         return numberConstantRepo.all();
     }
 }
-// end::class[]
+//end::class[]
diff --git 
a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/progmodel/mixins/CountHolder_fibonacciSequence.java
 
b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/progmodel/mixins/CountHolder_fibonacciSequence.java
index 4b72b3566f..bfb7d7981f 100644
--- 
a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/progmodel/mixins/CountHolder_fibonacciSequence.java
+++ 
b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/progmodel/mixins/CountHolder_fibonacciSequence.java
@@ -27,7 +27,7 @@ import org.apache.causeway.applib.annotation.CollectionLayout;
 import lombok.RequiredArgsConstructor;
 import lombok.val;
 
-// tag::class[]
+//tag::class[]
 @Collection                                 // <.>
 @CollectionLayout(paged = 10)
 @RequiredArgsConstructor                    // <.>
@@ -48,7 +48,7 @@ public class CountHolder_fibonacciSequence {
     }
     private static int fibonacciFor(int n) {
         // ...
-// end::class[]
+//end::class[]
         if(n <= 1) {
             return n;
         }
@@ -61,7 +61,7 @@ public class CountHolder_fibonacciSequence {
             prevFib = temp;
         }
         return fib;
-// tag::class[]
+//tag::class[]
     }
 }
-// end::class[]
+//end::class[]
diff --git 
a/examples/demo/domain/src/main/java/demoapp/dom/domain/properties/Property/domainEvent/PropertyDomainEventControlStrategy.java
 
b/examples/demo/domain/src/main/java/demoapp/dom/domain/properties/Property/domainEvent/PropertyDomainEventControlStrategy.java
index eb3ab7b83f..5217925abe 100644
--- 
a/examples/demo/domain/src/main/java/demoapp/dom/domain/properties/Property/domainEvent/PropertyDomainEventControlStrategy.java
+++ 
b/examples/demo/domain/src/main/java/demoapp/dom/domain/properties/Property/domainEvent/PropertyDomainEventControlStrategy.java
@@ -21,7 +21,7 @@ package demoapp.dom.domain.properties.Property.domainEvent;
 import org.apache.causeway.applib.services.message.MessageService;
 import org.apache.causeway.applib.services.registry.ServiceRegistry;
 
-// tag::class[]
+//tag::class[]
 enum PropertyDomainEventControlStrategy {
 
     DO_NOTHING{
@@ -30,9 +30,9 @@ enum PropertyDomainEventControlStrategy {
         }
     },
     // ...
-// end::class[]
+//end::class[]
 
-// tag::hide[]
+//tag::hide[]
     HIDE {
         @Override
         void on(PropertyDomainEventPage.TextDomainEvent ev, ServiceRegistry 
serviceRegistry) {
@@ -43,8 +43,8 @@ enum PropertyDomainEventControlStrategy {
             }
         }
     },
-// end::hide[]
-// tag::disable[]
+//end::hide[]
+//tag::disable[]
     DISABLE{
         @Override
         void on(PropertyDomainEventPage.TextDomainEvent ev, ServiceRegistry 
serviceRegistry) {
@@ -56,8 +56,8 @@ enum PropertyDomainEventControlStrategy {
 
         }
     },
-// end::disable[]
-// tag::validate[]
+//end::disable[]
+//tag::validate[]
     VALIDATE_MUST_BE_UPPER_CASE{
         @Override
         void on(PropertyDomainEventPage.TextDomainEvent ev, ServiceRegistry 
serviceRegistry) {
@@ -72,8 +72,8 @@ enum PropertyDomainEventControlStrategy {
 
         }
     },
-// end::validate[]
-// tag::executing[]
+//end::validate[]
+//tag::executing[]
     EXECUTING_FORCE_UPPER_CASE{
         @Override
         void on(PropertyDomainEventPage.TextDomainEvent ev, ServiceRegistry 
serviceRegistry) {
@@ -86,8 +86,8 @@ enum PropertyDomainEventControlStrategy {
             }
         }
     },
-// end::executing[]
-// tag::executed[]
+//end::executing[]
+//tag::executed[]
     EXECUTED_ANNOUNCE{
         @Override
         void on(PropertyDomainEventPage.TextDomainEvent ev, ServiceRegistry 
serviceRegistry) {
@@ -105,10 +105,10 @@ enum PropertyDomainEventControlStrategy {
             }
         }
     }
-// end::executed[]
+//end::executed[]
 
-// tag::class[]
+//tag::class[]
     ;
     abstract void on(PropertyDomainEventPage.TextDomainEvent ev, 
ServiceRegistry serviceRegistry);
 }
-// end::class[]
+//end::class[]
diff --git 
a/examples/demo/domain/src/main/java/demoapp/dom/domain/properties/Property/domainEvent/PropertyDomainEventControlSubscriber.java
 
b/examples/demo/domain/src/main/java/demoapp/dom/domain/properties/Property/domainEvent/PropertyDomainEventControlSubscriber.java
index c427f3cba6..4d709ae450 100644
--- 
a/examples/demo/domain/src/main/java/demoapp/dom/domain/properties/Property/domainEvent/PropertyDomainEventControlSubscriber.java
+++ 
b/examples/demo/domain/src/main/java/demoapp/dom/domain/properties/Property/domainEvent/PropertyDomainEventControlSubscriber.java
@@ -27,7 +27,7 @@ import 
org.apache.causeway.applib.services.registry.ServiceRegistry;
 
 import lombok.RequiredArgsConstructor;
 
-// tag::class[]
+//tag::class[]
 @Service
 @RequiredArgsConstructor(onConstructor_ = { @Inject })
 class PropertyDomainEventControlSubscriber {
@@ -42,4 +42,4 @@ class PropertyDomainEventControlSubscriber {
         controlStrategy.on(ev, serviceRegistry);                        // <.>
     }
 }
-// end::class[]
+//end::class[]
diff --git 
a/examples/demo/domain/src/main/java/demoapp/dom/services/core/errorreportingservice/EmailTicket.java
 
b/examples/demo/domain/src/main/java/demoapp/dom/services/core/errorreportingservice/EmailTicket.java
index 82e34f5955..8da77b3927 100644
--- 
a/examples/demo/domain/src/main/java/demoapp/dom/services/core/errorreportingservice/EmailTicket.java
+++ 
b/examples/demo/domain/src/main/java/demoapp/dom/services/core/errorreportingservice/EmailTicket.java
@@ -47,46 +47,40 @@ import lombok.val;
  *     </ul>
  * </p>
  */
+//tag::class[]
 public class EmailTicket extends SimpleTicket {
+    // ...
+//end::class[]
 
-    // -- MAILTO VALUE TYPE
-
+//tag::mailTo[]
     @Builder
     public static class MailTo implements Serializable {
+    // ...
+//end::mailTo[]
 
         private static final long serialVersionUID = -817872853109724987L;
 
-        @Builder.Default
-        private String linkName = "Email";
-        @Builder.Default
-        private String receiver = "no-one@nowhere";
-        @Builder.Default
-        private String subject = "[Module-Name] Unexpected Error (#ref)";
-        @Builder.Default
-        private String body = "empty body";
+        @Builder.Default private String linkName = "Email";
+        @Builder.Default private String receiver = "no-one@nowhere";
+        @Builder.Default private String subject = "[Module-Name] Unexpected 
Error (#ref)";
+        @Builder.Default private String body = "empty body";
 
-        /**
-         * @implNote this is just a demo;
-         *      the body message is truncated at the 1000th character
-         *      due to potential browser limitations
-         */
+//tag::mailTo[]
         public String toHtmlLink() {
-
             val messageProperties = Map.<String, Object>of(
-                    "receiver", receiver,
-                    "subject", htmlEscape(subject),
-                    "body", htmlEscape(_Strings.ellipsifyAtEnd(body, 1000, 
"... truncated")),
-                    "linkName", linkName);
-
-            return _Strings.format("<a href=\"mailto:${receiver}";
-                    + "?subject=${subject}"
-                    + "&body=${body}\">${linkName}</a>",
+                "receiver", receiver,
+                "subject",  htmlEscape(subject),
+                "body",     htmlEscape(
+                            _Strings.ellipsifyAtEnd(body, 1000, "... 
truncated")),  // <.>
+                "linkName", linkName);
+
+            return _Strings.format(
+                    "<a 
href=\"mailto:${receiver}?subject=${subject}&body=${body}\";>${linkName}</a>",
                     messageProperties);
         }
+//end::mailTo[]
 
-        // -- STACKTRACE FORMATTING
-
-        public static String mailBodyOf(final ErrorDetails errorDetails) {
+        static String mailBodyOf(final ErrorDetails errorDetails) {
             return "Stacktrace:%0D%0A=================%0D%0A" +
                     stream(errorDetails.getStackTraceDetailPerCause())
             .map(MailTo::causeToString)
@@ -101,41 +95,38 @@ public class EmailTicket extends SimpleTicket {
             .collect(Collectors.joining("%0D%0A"))
             ;
         }
-
-
+//tag::mailTo[]
     }
-
-    // TICKET IMPL
+//end::mailTo[]
 
     private static final long serialVersionUID = -748973805361941912L;
     private MailTo mailTo;
 
+//tag::class[]
     public EmailTicket(
             final MailTo mailTo,
             final String reference,
             final String userMessage,
             final String details,
             final StackTracePolicy stackTracePolicy,
-            final String kittenUrl) {
+            final String kittenUrl) {                   // <.>
         super(reference, userMessage, details, stackTracePolicy, kittenUrl);
         this.mailTo = mailTo;
     }
+//end::class[]
 
+//tag::markup[]
     @Override
     public String getMarkup() {
-
         val messageProperties = Map.<String, Object>of(
-                "title", ifPresentMap(getDetails(),
-                        details->"<h3>" + htmlEscape(details) + "</h3>"),
-                "kittenImg", ifPresentMap(getKittenUrl(),
-                        kittenUrl->"<img src=\"" + kittenUrl + "\"></img>"),
-                "mailToParagraph", "<p><h4>Please report this error: <span>"
-                                        + mailTo.toHtmlLink()
-                                        + "</span></h4></p>");
+            "title", ifPresentMap(getDetails(), details-> 
String.format("<h3>%s</h3>", htmlEscape(details))),
+            "img",   ifPresentMap(getKittenUrl(), kittenUrl-> 
String.format("<img src=\"%s\"></img>", kittenUrl)),
+            "para",  String.format("<p><h4>Please report this error: 
<span>%s</span></h4></p>", mailTo.toHtmlLink()));
         return _Strings.format(
-                "<p>${title}${kittenImg}</p>"
-                + "${mailToParagraph}",
+                "<p>${title}${img}</p>${para}",
                 messageProperties);
     }
-
+//end::markup[]
+//tag::class[]
 }
+//end::class[]
diff --git 
a/examples/demo/domain/src/main/java/demoapp/dom/services/core/errorreportingservice/ErrorReportingServiceDemoVm-description.adoc
 
b/examples/demo/domain/src/main/java/demoapp/dom/services/core/errorreportingservice/ErrorReportingServiceDemoVm-description.adoc
index 42105bbdd4..de7590aeea 100644
--- 
a/examples/demo/domain/src/main/java/demoapp/dom/services/core/errorreportingservice/ErrorReportingServiceDemoVm-description.adoc
+++ 
b/examples/demo/domain/src/main/java/demoapp/dom/services/core/errorreportingservice/ErrorReportingServiceDemoVm-description.adoc
@@ -1,46 +1,50 @@
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more 
contributor license agreements. See the NOTICE file distributed with this work 
for additional information regarding copyright ownership. The ASF licenses this 
file to you under the Apache License, Version 2.0 (the "License"); you may not 
use this file except in compliance with the License. You may obtain a copy of 
the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by 
applicable law or ag [...]
 
-The `ErrorReportingService` is an SPI to customise the actions taken by the 
framework if an unexpected exception is raised.
+Errors happen.
 
+The framework does provide a default error handling implementation.
+However, by implementing the 
link:https://causeway.apache.org/refguide/2.0.0-RC1/applib/index/services/error/ErrorReportingService.html[ErrorReportingService]
 SPI you may provide a more user-friendly experience:
 
+== How this demo works
 
-Hit the 'Trigger An Error' button an see what happens!
+Hit the 'Trigger An Error' action to see what happens!
 
-The framework does provide a default error handling implementation.
-However, by implementing a custom `ErrorReportingService` you may
-provide a more user-friendly experience:
+In terms of code:
 
+* the SPI service is:
++
 [source,java]
+.ErrorReportingServiceForDemo.java
 ----
-import org.springframework.stereotype.Service;
-
-@Service
-public class DemoErrorReportingService implements ErrorReportingService {
-
-    @Override
-    public Ticket reportError(ErrorDetails errorDetails) {
-
-        String reference = "#0";
-        String userMessage = errorDetails.getMainMessage();
-        String details = "Apologies!";
-
-        val mailTo = MailTo.builder()
-        .receiver("[email protected]")
-        .subject("[Simple-Module] Unexpected Error ("+reference+")")
-        .body(MailTo.mailBodyOf(errorDetails))
-        .build();
-
-        StackTracePolicy policy = StackTracePolicy.SHOW;
-        val ticket = new EmailTicket(mailTo, reference, userMessage, details,
-               policy,
-               "http://www.randomkittengenerator.com/cats/rotator.php";);
-
-        return ticket;
-    }
+include::ErrorReportingServiceForDemo.java[tags=class]
+----
+<.> in a real-world system, this could be a lookup from an external system 
such as Jira, or might be an internally-generated identifier
+<.> returns an implementation of 
link:https://causeway.apache.org/refguide/2.0.0-RC1/applib/index/services/error/Ticket.html[Ticket],
 containing the details to be rendered to the end-user.
+In this case we render a link to allow the end-user to create a mail using 
their mail client, if they so wish.
 
+* the `EmailTicket` is:
++
+[source,java]
+.EmailTicket.java
+----
+include::EmailTicket.java[tags=class]
+----
+<.> If specified, is the external URL of an image to display to the end user.
+(It doesn't have to be a kitten!)
 
-}
+* where `MailTo` captures the detail of where to mail to:
++
+[source,java,indent=0]
+.EmailTicket.java
 ----
+include::EmailTicket.java[tags=mailTo]
+----
+<.> the body message is truncated at the 1000th character in case of browser 
truncation
 
-See the ErrorReportingService implemented for this demo here:
-link:${SOURCES_DEMO}/demoapp/dom/error/service[sources].
+* and where on this occasion it also overrides `getMarkup()`, the actual HTML 
rendered:
++
+[source,java,indent=0]
+.EmailTicket.java
+----
+include::EmailTicket.java[tags=markup]
+----
diff --git 
a/examples/demo/domain/src/main/java/demoapp/dom/services/core/errorreportingservice/ErrorReportingServiceDemoVm.xml
 
b/examples/demo/domain/src/main/java/demoapp/dom/services/core/errorreportingservice/ErrorReportingServiceDemoVm.layout.xml
similarity index 100%
rename from 
examples/demo/domain/src/main/java/demoapp/dom/services/core/errorreportingservice/ErrorReportingServiceDemoVm.xml
rename to 
examples/demo/domain/src/main/java/demoapp/dom/services/core/errorreportingservice/ErrorReportingServiceDemoVm.layout.xml
diff --git 
a/examples/demo/domain/src/main/java/demoapp/dom/services/core/errorreportingservice/ErrorReportingServiceDemoImplementation.java
 
b/examples/demo/domain/src/main/java/demoapp/dom/services/core/errorreportingservice/ErrorReportingServiceForDemo.java
similarity index 84%
rename from 
examples/demo/domain/src/main/java/demoapp/dom/services/core/errorreportingservice/ErrorReportingServiceDemoImplementation.java
rename to 
examples/demo/domain/src/main/java/demoapp/dom/services/core/errorreportingservice/ErrorReportingServiceForDemo.java
index 96913dbf00..8836c2090a 100644
--- 
a/examples/demo/domain/src/main/java/demoapp/dom/services/core/errorreportingservice/ErrorReportingServiceDemoImplementation.java
+++ 
b/examples/demo/domain/src/main/java/demoapp/dom/services/core/errorreportingservice/ErrorReportingServiceForDemo.java
@@ -30,16 +30,16 @@ import 
org.apache.causeway.applib.services.error.Ticket.StackTracePolicy;
 
 import lombok.val;
 
-// tag::class[]
+//tag::class[]
 @Service
 @Named("demo.ErrorReportingServiceDemoImplementation")
 @Qualifier("demo")
-public class ErrorReportingServiceDemoImplementation implements 
ErrorReportingService {
+public class ErrorReportingServiceForDemo implements ErrorReportingService {
 
     @Override
     public Ticket reportError(final ErrorDetails errorDetails) {
 
-        val reference = "#0";
+        val reference = "#0";                               // <.>
         val userMessage = errorDetails.getMainMessage();
         val details = "Apologies!";
 
@@ -49,10 +49,13 @@ public class ErrorReportingServiceDemoImplementation 
implements ErrorReportingSe
                 .body(EmailTicket.MailTo.mailBodyOf(errorDetails))
                 .build();
 
-        return new EmailTicket(
-                mailTo, reference, userMessage, details,
+        return new EmailTicket(                             // <.>
+                mailTo,
+                reference,
+                userMessage,
+                details,
                 StackTracePolicy.SHOW,
                 "http://www.randomkittengenerator.com/cats/rotator.php";);
     }
 }
-// end::class[]
+//end::class[]
diff --git 
a/examples/demo/wicket/jdo/src/test/e2e/cypress-scaffolding/integration/examples/misc.spec.js
 
b/examples/demo/wicket/jdo/src/test/e2e/cypress-scaffolding/integration/examples/misc.spec.js
index dcd059574c..b41a3d9084 100644
--- 
a/examples/demo/wicket/jdo/src/test/e2e/cypress-scaffolding/integration/examples/misc.spec.js
+++ 
b/examples/demo/wicket/jdo/src/test/e2e/cypress-scaffolding/integration/examples/misc.spec.js
@@ -11,7 +11,7 @@ context('Misc', () => {
     // cy.end is useful when you want to end a chain of commands
     // and force Cypress to re-query from the root element
     cy.get('.misc-table').within(() => {
-      // ends the current chain and yields null
+      //ends the current chain and yields null
       cy.contains('Cheryl').click().end()
 
       // queries the entire table again

Reply via email to