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
