You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@causeway.apache.org by ah...@apache.org on 2023/03/06 07:13:12 UTC

[causeway] branch spring6 updated (d59172a4cc -> 5327823128)

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

ahuber pushed a change to branch spring6
in repository https://gitbox.apache.org/repos/asf/causeway.git


    from d59172a4cc Bump Wicket Jitpack build from 28-Nov'22 to today's
     add 29d6b9c668 CAUSEWAY-3312: [Demo] Object Annotation: add missing VMs (just stubs)
     add 8cc07805df CAUSEWAY-3311: [Demo] Collection Layout Annotation - adding all VMs (stubs)
     add b466a14cd0 improves build.sh, serve up timeline
     add 743b346a22 CAUSEWAY-3366: wip, adding in onReady and onStarted callbacks
     add 5047dfae33 CAUSEWAY-3366: simplifies CommandSubscriberForCommandLog impl
     add 0362d49288 CAUSEWAY-3366: fixes commandlog integ test
     add 6f25e1b318 CAUSEWAY-3366: improves docs/website for Command in refguide, is all.
     add 144924de60 CAUSEWAY-3366: improves javadoc for Interaction, is all.
     add 1e0ee3db04 CAUSEWAY-3366: fixes mis-spelling in EntityState, is all.
     add 577260ff59 CAUSEWAY-3366: makes AsyncCallable also implement Callable
     add 848cee3f7f CAUSEWAY-3366: improves docs of cmd-2.0.xsd, is all.
     add 0413633c07 CAUSEWAY-3366: makes InteractionIdGenerator into an interface, with ..
     add 1ce7983fe5 CAUSEWAY-3366: improves internal comment in CommandSubscriberForCommandLog, is all.
     add 6042ddaabe CAUSEWAY-3366: removes unnecessary getter of ServiceRegistry service in CausewayIntegrationTestAbstract, is all.
     add 02849974e0 CAUSEWAY-3366: improves docs for execution outbox is all (outbox idiom)
     add c9ceccae2c CAUSEWAY-3366: fixes bug in WrapperFactoryDefault, the uuid of the child command should be ...
     add 564e9a9d15 CAUSEWAY-3366: simplifies API of CommandExecutorService ...
     add 830c301ce6 CAUSEWAY-3366: adds docs on interactions, commands and executions
     add cd1fd8be51 CAUSEWAY-3366: allows the Command's interactionId to be replaced by CommandExecutorService
     add 671362972e CAUSEWAY-3366: fixes regression tests for new behaviour of cmdlog
     add b8ae15036b Merge pull request #1475 from apache/CAUSEWAY-3366
     new 5327823128 Merge remote-tracking branch 'origin/master' into spring6

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../causeway/applib/services/command/Command.java  |  72 +++++--
 .../services/command/CommandExecutorService.java   |  29 +--
 .../applib/services/iactn/Interaction.java         |   5 +-
 .../services/publishing/log/CommandLogger.java     |  17 +-
 .../services/publishing/spi/CommandSubscriber.java |  29 ++-
 .../applib/services/repository/EntityState.java    |   7 +-
 .../services/wrapper/callable/AsyncCallable.java   |   3 +-
 .../src/main/resources/schema/cmd/cmd-2.0.xsd      |   7 +-
 build.sh                                           |  27 +--
 .../interactions-commands-and-executions.adoc      | 230 +++++++++++++++++++++
 .../modules/interaction/partials/module-nav.adoc   |   1 +
 .../interaction/session/CausewayInteraction.java   |  19 +-
 .../metamodel/execution/InteractionInternal.java   |   3 +
 .../publish/command/CommandPublishingFacet.java    |  17 --
 .../core/metamodel/object/MmEntityUtil.java        |   4 +-
 .../object/_ManagedObjectEntityBookmarked.java     |   4 +-
 .../services/publishing/CommandPublisher.java      |  16 +-
 .../CausewayModuleCoreRuntimeServices.java         |   3 +-
 .../command/CommandExecutorServiceDefault.java     | 156 ++++++--------
 .../executor/MemberExecutorServiceDefault.java     |  40 +++-
 .../publish/CommandPublisherDefault.java           |  42 +++-
 .../core/runtimeservices/publish/_Xray.java        |  32 ++-
 .../session/InteractionIdGenerator.java            |   9 +-
 ...tor.java => InteractionIdGeneratorDefault.java} |  20 +-
 .../session/InteractionServiceDefault.java         |   6 +-
 .../wrapper/WrapperFactoryDefault.java             |  34 +--
 .../demoapp/dom/domain/_entities/DemoEntity.java   |  20 +-
 .../CollectionLayout/CollectionLayoutMenu.java     | 102 +++++----
 .../collections/CollectionLayout/cssClass/.gitkeep |   0
 .../CollectionLayoutCssClassVm-description.adoc}   |   8 +-
 .../cssClass/CollectionLayoutCssClassVm.java}      |  51 ++---
 .../CollectionLayoutCssClassVm.layout.xml}         |   0
 .../CollectionLayout/defaultView/.gitkeep          |   0
 ...CollectionLayoutDefaultViewVm-description.adoc} |   9 +-
 .../CollectionLayoutDefaultViewVm.java}            |  51 ++---
 .../CollectionLayoutDefaultViewVm.layout.xml}      |   0
 .../CollectionLayout/describedAs/.gitkeep          |   0
 ...CollectionLayoutDescribedAsVm-description.adoc} |   4 +-
 .../CollectionLayoutDescribedAsVm.java}            |  51 ++---
 .../CollectionLayoutDescribedAsVm.layout.xml}      |   0
 .../collections/CollectionLayout/hidden/.gitkeep   |   0
 .../CollectionLayoutHiddenVm-description.adoc}     |   8 +-
 .../hidden/CollectionLayoutHiddenVm.java}          |  52 ++---
 .../hidden/CollectionLayoutHiddenVm.layout.xml}    |   0
 .../collections/CollectionLayout/named/.gitkeep    |   0
 .../CollectionLayoutNamedVm-description.adoc}      |   5 +-
 .../named/CollectionLayoutNamedVm.java}            |  52 ++---
 .../named/CollectionLayoutNamedVm.layout.xml}      |   0
 .../collections/CollectionLayout/paged/.gitkeep    |   0
 .../CollectionLayoutPagedVm-description.adoc}      |   8 +-
 .../paged/CollectionLayoutPagedVm.java}            |  51 ++---
 .../paged/CollectionLayoutPagedVm.layout.xml}      |   0
 .../CollectionLayoutSequenceVm-description.adoc}   |   8 +-
 .../sequence/CollectionLayoutSequenceVm.java}      |  51 ++---
 .../CollectionLayoutSequenceVm.layout.xml}         |   0
 .../collections/CollectionLayout/sortedBy/.gitkeep |   0
 .../CollectionLayoutSortedByComparator.java        |  29 +--
 .../CollectionLayoutSortedByVm-description.adoc    |  10 +
 .../sortedBy/CollectionLayoutSortedByVm.java}      |  51 ++---
 .../CollectionLayoutSortedByVm.layout.xml}         |   0
 ...lectionLayoutTableDecoratorVm-description.adoc} |   8 +-
 .../CollectionLayoutTableDecoratorVm.java}         |  50 ++---
 .../CollectionLayoutTableDecoratorVm.layout.xml}   |   0
 .../objects/DomainObject/DomainObjectMenu.java     |  83 +++-----
 .../DomainObjectAliasedVm-description.adoc}        |  10 +-
 .../aliased/DomainObjectAliasedVm.java             |  46 +++++
 .../aliased/DomainObjectAliasedVm.layout.xml}      |   0
 .../objects/DomainObject/autoComplete/.gitkeep     |   0
 .../DomainObjectAutoCompleteRepository.java        |  21 +-
 .../DomainObjectAutoCompleteVm-description.adoc}   |  15 +-
 .../autoComplete/DomainObjectAutoCompleteVm.java   |  54 +++++
 .../DomainObjectAutoCompleteVm.layout.xml}         |   0
 .../domain/objects/DomainObject/bounded/.gitkeep   |   0
 .../DomainObjectBoundingVm-description.adoc}       |  10 +-
 .../bounded/DomainObjectBoundingVm.java            |  53 +++++
 .../bounded/DomainObjectBoundingVm.layout.xml}     |   0
 .../domain/objects/DomainObject/editing/.gitkeep   |   0
 .../DomainObjectEditingVm-description.adoc}        |  15 +-
 .../editing/DomainObjectEditingVm.java             |  47 +++++
 .../editing/DomainObjectEditingVm.layout.xml}      |   0
 .../DomainObjectIntrospectionVm-description.adoc}  |   8 +-
 .../introspection/DomainObjectIntrospectionVm.java |  47 +++++
 .../DomainObjectIntrospectionVm.layout.xml}        |   0
 .../objects/DomainObject/mixinMethod/.gitkeep      |   0
 .../DomainObjectMixinMethodVm-description.adoc     |  11 +
 .../mixinMethod/DomainObjectMixinMethodVm.java     |  39 ++--
 .../DomainObjectMixinMethodVm.layout.xml}          |   0
 .../objects/DomainObject/objectType/.gitkeep       |   0
 .../objects/DomainObject/xxxDomainEvent/.gitkeep   |   0
 .../DomainObjectDomainEventsVm-description.adoc    |  46 +++++
 .../xxxDomainEvent/DomainObjectDomainEventsVm.java |  47 +++++
 .../DomainObjectDomainEventsVm.layout.xml}         |   0
 .../DomainObject/xxxLifecycleEvent/.gitkeep        |   0
 .../DomainObjectLifecyleEventsVm-description.adoc  |  62 ++++++
 .../DomainObjectLifecyleEventsVm.java              |  47 +++++
 .../DomainObjectLifecyleEventsVm.layout.xml}       |   0
 ...omainObjectLayoutDescribedAsVm-description.adoc |   2 +-
 .../DomainObjectLayoutNamedVm-description.adoc     |   2 +-
 .../DomainObjectLayoutPagedVm-description.adoc     |   2 +-
 .../DomainObjectLayoutTableDecoratorVm.java        |   3 +-
 ...DomainObjectLayoutXxxUiEventVm-description.adoc |   2 +-
 .../src/main/java/demoapp/dom/menubars.layout.xml  |  10 +-
 .../commandlog/applib/dom/BackgroundService.java   |   1 -
 .../commandlog/applib/dom/CommandLogEntry.java     |  29 +--
 .../applib/dom/CommandLogEntryRepository.java      |   4 +-
 .../applib/job/RunBackgroundCommandsJob.java       |   2 +-
 .../subscriber/CommandSubscriberForCommandLog.java |  45 +++-
 .../BackgroundService_IntegTestAbstract.java       |  20 +-
 .../adoc/modules/executionoutbox/pages/about.adoc  |  72 ++++++-
 .../jobcallables/ReplicateAndRunCommands.java      |   2 +-
 .../CmdExecAuditSessLog_IntegTestAbstract.java     |  95 ++++++---
 .../subscriber/CommandSubscriberForTesting.java    |  27 ++-
 .../applib/CausewayIntegrationTestAbstract.java    |   5 +-
 .../testing/integtestsupport/applib/_Helper.java   |   2 +-
 114 files changed, 1649 insertions(+), 848 deletions(-)
 create mode 100644 core/interaction/src/main/adoc/modules/interaction/pages/interactions-commands-and-executions.adoc
 copy core/runtimeservices/src/main/java/org/apache/causeway/core/runtimeservices/session/{InteractionIdGenerator.java => InteractionIdGeneratorDefault.java} (61%)
 copy core/metamodel/src/main/java/org/apache/causeway/core/metamodel/services/publishing/CommandPublisher.java => examples/demo/domain/src/main/java/demoapp/dom/domain/_entities/DemoEntity.java (59%)
 delete mode 100644 examples/demo/domain/src/main/java/demoapp/dom/domain/collections/CollectionLayout/cssClass/.gitkeep
 copy examples/demo/domain/src/main/java/demoapp/dom/domain/{objects/DomainObjectLayout/named/DomainObjectLayoutNamedVm-description.adoc => collections/CollectionLayout/cssClass/CollectionLayoutCssClassVm-description.adoc} (76%)
 copy examples/demo/domain/src/main/java/demoapp/dom/domain/{objects/DomainObjectLayout/tabledec/DomainObjectLayoutTableDecoratorVm.java => collections/CollectionLayout/cssClass/CollectionLayoutCssClassVm.java} (53%)
 copy examples/demo/domain/src/main/java/demoapp/dom/domain/{objects/DomainObjectLayout/bookmarking/DomainObjectLayoutBookmarkingVm.layout.xml => collections/CollectionLayout/cssClass/CollectionLayoutCssClassVm.layout.xml} (100%)
 delete mode 100644 examples/demo/domain/src/main/java/demoapp/dom/domain/collections/CollectionLayout/defaultView/.gitkeep
 copy examples/demo/domain/src/main/java/demoapp/dom/domain/{objects/DomainObjectLayout/named/DomainObjectLayoutNamedVm-description.adoc => collections/CollectionLayout/defaultView/CollectionLayoutDefaultViewVm-description.adoc} (69%)
 copy examples/demo/domain/src/main/java/demoapp/dom/domain/{objects/DomainObjectLayout/tabledec/DomainObjectLayoutTableDecoratorVm.java => collections/CollectionLayout/defaultView/CollectionLayoutDefaultViewVm.java} (53%)
 copy examples/demo/domain/src/main/java/demoapp/dom/domain/{objects/DomainObjectLayout/bookmarking/DomainObjectLayoutBookmarkingVm.layout.xml => collections/CollectionLayout/defaultView/CollectionLayoutDefaultViewVm.layout.xml} (100%)
 delete mode 100644 examples/demo/domain/src/main/java/demoapp/dom/domain/collections/CollectionLayout/describedAs/.gitkeep
 copy examples/demo/domain/src/main/java/demoapp/dom/domain/{objects/DomainObjectLayout/describedAs/DomainObjectLayoutDescribedAsVm-description.adoc => collections/CollectionLayout/describedAs/CollectionLayoutDescribedAsVm-description.adoc} (89%)
 copy examples/demo/domain/src/main/java/demoapp/dom/domain/{objects/DomainObjectLayout/tabledec/DomainObjectLayoutTableDecoratorVm.java => collections/CollectionLayout/describedAs/CollectionLayoutDescribedAsVm.java} (53%)
 copy examples/demo/domain/src/main/java/demoapp/dom/domain/{objects/DomainObjectLayout/bookmarking/DomainObjectLayoutBookmarkingVm.layout.xml => collections/CollectionLayout/describedAs/CollectionLayoutDescribedAsVm.layout.xml} (100%)
 delete mode 100644 examples/demo/domain/src/main/java/demoapp/dom/domain/collections/CollectionLayout/hidden/.gitkeep
 copy examples/demo/domain/src/main/java/demoapp/dom/domain/{objects/DomainObjectLayout/named/DomainObjectLayoutNamedVm-description.adoc => collections/CollectionLayout/hidden/CollectionLayoutHiddenVm-description.adoc} (76%)
 copy examples/demo/domain/src/main/java/demoapp/dom/domain/{objects/DomainObjectLayout/tabledec/DomainObjectLayoutTableDecoratorVm.java => collections/CollectionLayout/hidden/CollectionLayoutHiddenVm.java} (53%)
 copy examples/demo/domain/src/main/java/demoapp/dom/domain/{objects/DomainObjectLayout/bookmarking/DomainObjectLayoutBookmarkingVm.layout.xml => collections/CollectionLayout/hidden/CollectionLayoutHiddenVm.layout.xml} (100%)
 delete mode 100644 examples/demo/domain/src/main/java/demoapp/dom/domain/collections/CollectionLayout/named/.gitkeep
 copy examples/demo/domain/src/main/java/demoapp/dom/domain/{objects/DomainObjectLayout/named/DomainObjectLayoutNamedVm-description.adoc => collections/CollectionLayout/named/CollectionLayoutNamedVm-description.adoc} (79%)
 copy examples/demo/domain/src/main/java/demoapp/dom/domain/{objects/DomainObjectLayout/tabledec/DomainObjectLayoutTableDecoratorVm.java => collections/CollectionLayout/named/CollectionLayoutNamedVm.java} (53%)
 copy examples/demo/domain/src/main/java/demoapp/dom/domain/{objects/DomainObjectLayout/bookmarking/DomainObjectLayoutBookmarkingVm.layout.xml => collections/CollectionLayout/named/CollectionLayoutNamedVm.layout.xml} (100%)
 delete mode 100644 examples/demo/domain/src/main/java/demoapp/dom/domain/collections/CollectionLayout/paged/.gitkeep
 copy examples/demo/domain/src/main/java/demoapp/dom/domain/{objects/DomainObjectLayout/paged/DomainObjectLayoutPagedVm-description.adoc => collections/CollectionLayout/paged/CollectionLayoutPagedVm-description.adoc} (70%)
 copy examples/demo/domain/src/main/java/demoapp/dom/domain/{objects/DomainObjectLayout/tabledec/DomainObjectLayoutTableDecoratorVm.java => collections/CollectionLayout/paged/CollectionLayoutPagedVm.java} (53%)
 copy examples/demo/domain/src/main/java/demoapp/dom/domain/{objects/DomainObjectLayout/bookmarking/DomainObjectLayoutBookmarkingVm.layout.xml => collections/CollectionLayout/paged/CollectionLayoutPagedVm.layout.xml} (100%)
 copy examples/demo/domain/src/main/java/demoapp/dom/domain/{objects/DomainObjectLayout/named/DomainObjectLayoutNamedVm-description.adoc => collections/CollectionLayout/sequence/CollectionLayoutSequenceVm-description.adoc} (74%)
 copy examples/demo/domain/src/main/java/demoapp/dom/domain/{objects/DomainObjectLayout/tabledec/DomainObjectLayoutTableDecoratorVm.java => collections/CollectionLayout/sequence/CollectionLayoutSequenceVm.java} (53%)
 copy examples/demo/domain/src/main/java/demoapp/dom/domain/{objects/DomainObjectLayout/bookmarking/DomainObjectLayoutBookmarkingVm.layout.xml => collections/CollectionLayout/sequence/CollectionLayoutSequenceVm.layout.xml} (100%)
 delete mode 100644 examples/demo/domain/src/main/java/demoapp/dom/domain/collections/CollectionLayout/sortedBy/.gitkeep
 copy core/metamodel/src/main/java/org/apache/causeway/core/metamodel/services/publishing/CommandPublisher.java => examples/demo/domain/src/main/java/demoapp/dom/domain/collections/CollectionLayout/sortedBy/CollectionLayoutSortedByComparator.java (58%)
 create mode 100644 examples/demo/domain/src/main/java/demoapp/dom/domain/collections/CollectionLayout/sortedBy/CollectionLayoutSortedByVm-description.adoc
 copy examples/demo/domain/src/main/java/demoapp/dom/domain/{objects/DomainObjectLayout/tabledec/DomainObjectLayoutTableDecoratorVm.java => collections/CollectionLayout/sortedBy/CollectionLayoutSortedByVm.java} (53%)
 copy examples/demo/domain/src/main/java/demoapp/dom/domain/{objects/DomainObjectLayout/bookmarking/DomainObjectLayoutBookmarkingVm.layout.xml => collections/CollectionLayout/sortedBy/CollectionLayoutSortedByVm.layout.xml} (100%)
 copy examples/demo/domain/src/main/java/demoapp/dom/domain/{objects/DomainObjectLayout/named/DomainObjectLayoutNamedVm-description.adoc => collections/CollectionLayout/tableDecorator/CollectionLayoutTableDecoratorVm-description.adoc} (75%)
 copy examples/demo/domain/src/main/java/demoapp/dom/domain/{objects/DomainObjectLayout/tabledec/DomainObjectLayoutTableDecoratorVm.java => collections/CollectionLayout/tableDecorator/CollectionLayoutTableDecoratorVm.java} (55%)
 copy examples/demo/domain/src/main/java/demoapp/dom/domain/{objects/DomainObjectLayout/bookmarking/DomainObjectLayoutBookmarkingVm.layout.xml => collections/CollectionLayout/tableDecorator/CollectionLayoutTableDecoratorVm.layout.xml} (100%)
 copy examples/demo/domain/src/main/java/demoapp/dom/domain/objects/{DomainObjectLayout/named/DomainObjectLayoutNamedVm-description.adoc => DomainObject/aliased/DomainObjectAliasedVm-description.adoc} (82%)
 create mode 100644 examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/aliased/DomainObjectAliasedVm.java
 copy examples/demo/domain/src/main/java/demoapp/dom/domain/objects/{DomainObjectLayout/bookmarking/DomainObjectLayoutBookmarkingVm.layout.xml => DomainObject/aliased/DomainObjectAliasedVm.layout.xml} (100%)
 delete mode 100644 examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/autoComplete/.gitkeep
 copy core/metamodel/src/main/java/org/apache/causeway/core/metamodel/services/publishing/CommandPublisher.java => examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/autoComplete/DomainObjectAutoCompleteRepository.java (59%)
 copy examples/demo/domain/src/main/java/demoapp/dom/domain/objects/{DomainObjectLayout/named/DomainObjectLayoutNamedVm-description.adoc => DomainObject/autoComplete/DomainObjectAutoCompleteVm-description.adoc} (60%)
 create mode 100644 examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/autoComplete/DomainObjectAutoCompleteVm.java
 copy examples/demo/domain/src/main/java/demoapp/dom/domain/objects/{DomainObjectLayout/bookmarking/DomainObjectLayoutBookmarkingVm.layout.xml => DomainObject/autoComplete/DomainObjectAutoCompleteVm.layout.xml} (100%)
 delete mode 100644 examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/bounded/.gitkeep
 copy examples/demo/domain/src/main/java/demoapp/dom/domain/objects/{DomainObjectLayout/named/DomainObjectLayoutNamedVm-description.adoc => DomainObject/bounded/DomainObjectBoundingVm-description.adoc} (77%)
 create mode 100644 examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/bounded/DomainObjectBoundingVm.java
 copy examples/demo/domain/src/main/java/demoapp/dom/domain/objects/{DomainObjectLayout/bookmarking/DomainObjectLayoutBookmarkingVm.layout.xml => DomainObject/bounded/DomainObjectBoundingVm.layout.xml} (100%)
 delete mode 100644 examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/editing/.gitkeep
 copy examples/demo/domain/src/main/java/demoapp/dom/domain/objects/{DomainObjectLayout/named/DomainObjectLayoutNamedVm-description.adoc => DomainObject/editing/DomainObjectEditingVm-description.adoc} (61%)
 create mode 100644 examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/editing/DomainObjectEditingVm.java
 copy examples/demo/domain/src/main/java/demoapp/dom/domain/objects/{DomainObjectLayout/bookmarking/DomainObjectLayoutBookmarkingVm.layout.xml => DomainObject/editing/DomainObjectEditingVm.layout.xml} (100%)
 copy examples/demo/domain/src/main/java/demoapp/dom/domain/objects/{DomainObjectLayout/named/DomainObjectLayoutNamedVm-description.adoc => DomainObject/introspection/DomainObjectIntrospectionVm-description.adoc} (79%)
 create mode 100644 examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/introspection/DomainObjectIntrospectionVm.java
 copy examples/demo/domain/src/main/java/demoapp/dom/domain/objects/{DomainObjectLayout/bookmarking/DomainObjectLayoutBookmarkingVm.layout.xml => DomainObject/introspection/DomainObjectIntrospectionVm.layout.xml} (100%)
 delete mode 100644 examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/mixinMethod/.gitkeep
 create mode 100644 examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/mixinMethod/DomainObjectMixinMethodVm-description.adoc
 copy core/metamodel/src/main/java/org/apache/causeway/core/metamodel/services/publishing/CommandPublisher.java => examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/mixinMethod/DomainObjectMixinMethodVm.java (50%)
 copy examples/demo/domain/src/main/java/demoapp/dom/domain/objects/{DomainObjectLayout/bookmarking/DomainObjectLayoutBookmarkingVm.layout.xml => DomainObject/mixinMethod/DomainObjectMixinMethodVm.layout.xml} (100%)
 delete mode 100644 examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/objectType/.gitkeep
 delete mode 100644 examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/xxxDomainEvent/.gitkeep
 create mode 100644 examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/xxxDomainEvent/DomainObjectDomainEventsVm-description.adoc
 create mode 100644 examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/xxxDomainEvent/DomainObjectDomainEventsVm.java
 copy examples/demo/domain/src/main/java/demoapp/dom/domain/objects/{DomainObjectLayout/bookmarking/DomainObjectLayoutBookmarkingVm.layout.xml => DomainObject/xxxDomainEvent/DomainObjectDomainEventsVm.layout.xml} (100%)
 delete mode 100644 examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/xxxLifecycleEvent/.gitkeep
 create mode 100644 examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/xxxLifecycleEvent/DomainObjectLifecyleEventsVm-description.adoc
 create mode 100644 examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/xxxLifecycleEvent/DomainObjectLifecyleEventsVm.java
 copy examples/demo/domain/src/main/java/demoapp/dom/domain/objects/{DomainObjectLayout/bookmarking/DomainObjectLayoutBookmarkingVm.layout.xml => DomainObject/xxxLifecycleEvent/DomainObjectLifecyleEventsVm.layout.xml} (100%)


[causeway] 01/01: Merge remote-tracking branch 'origin/master' into spring6

Posted by ah...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit 5327823128eea0ad1570aee318273e98fc980dff
Merge: d59172a4cc b8ae15036b
Author: Andi Huber <ah...@apache.org>
AuthorDate: Mon Mar 6 08:13:03 2023 +0100

    Merge remote-tracking branch 'origin/master' into spring6

 .../causeway/applib/services/command/Command.java  |  72 +++++--
 .../services/command/CommandExecutorService.java   |  29 +--
 .../applib/services/iactn/Interaction.java         |   5 +-
 .../services/publishing/log/CommandLogger.java     |  17 +-
 .../services/publishing/spi/CommandSubscriber.java |  29 ++-
 .../applib/services/repository/EntityState.java    |   7 +-
 .../services/wrapper/callable/AsyncCallable.java   |   3 +-
 .../src/main/resources/schema/cmd/cmd-2.0.xsd      |   7 +-
 build.sh                                           |  27 +--
 .../interactions-commands-and-executions.adoc      | 230 +++++++++++++++++++++
 .../modules/interaction/partials/module-nav.adoc   |   1 +
 .../interaction/session/CausewayInteraction.java   |  19 +-
 .../metamodel/execution/InteractionInternal.java   |   3 +
 .../publish/command/CommandPublishingFacet.java    |  17 --
 .../core/metamodel/object/MmEntityUtil.java        |   4 +-
 .../object/_ManagedObjectEntityBookmarked.java     |   4 +-
 .../services/publishing/CommandPublisher.java      |  16 +-
 .../CausewayModuleCoreRuntimeServices.java         |   3 +-
 .../command/CommandExecutorServiceDefault.java     | 156 ++++++--------
 .../executor/MemberExecutorServiceDefault.java     |  40 +++-
 .../publish/CommandPublisherDefault.java           |  42 +++-
 .../core/runtimeservices/publish/_Xray.java        |  32 ++-
 .../session/InteractionIdGenerator.java            |   9 +-
 ...tor.java => InteractionIdGeneratorDefault.java} |  20 +-
 .../session/InteractionServiceDefault.java         |   6 +-
 .../wrapper/WrapperFactoryDefault.java             |  34 +--
 .../demoapp/dom/domain/_entities/DemoEntity.java   |  20 +-
 .../CollectionLayout/CollectionLayoutMenu.java     | 102 +++++----
 .../collections/CollectionLayout/cssClass/.gitkeep |   0
 .../CollectionLayoutCssClassVm-description.adoc}   |   8 +-
 .../cssClass/CollectionLayoutCssClassVm.java}      |  51 ++---
 .../cssClass/CollectionLayoutCssClassVm.layout.xml |  49 +++++
 .../CollectionLayout/defaultView/.gitkeep          |   0
 ...CollectionLayoutDefaultViewVm-description.adoc} |   9 +-
 .../CollectionLayoutDefaultViewVm.java}            |  51 ++---
 .../CollectionLayoutDefaultViewVm.layout.xml       |  49 +++++
 .../CollectionLayout/describedAs/.gitkeep          |   0
 ...CollectionLayoutDescribedAsVm-description.adoc} |   4 +-
 .../CollectionLayoutDescribedAsVm.java}            |  51 ++---
 .../CollectionLayoutDescribedAsVm.layout.xml       |  49 +++++
 .../collections/CollectionLayout/hidden/.gitkeep   |   0
 .../CollectionLayoutHiddenVm-description.adoc}     |   8 +-
 .../hidden/CollectionLayoutHiddenVm.java}          |  52 ++---
 .../hidden/CollectionLayoutHiddenVm.layout.xml     |  49 +++++
 .../collections/CollectionLayout/named/.gitkeep    |   0
 .../CollectionLayoutNamedVm-description.adoc}      |   5 +-
 .../named/CollectionLayoutNamedVm.java}            |  52 ++---
 .../named/CollectionLayoutNamedVm.layout.xml       |  49 +++++
 .../collections/CollectionLayout/paged/.gitkeep    |   0
 .../CollectionLayoutPagedVm-description.adoc}      |   8 +-
 .../paged/CollectionLayoutPagedVm.java}            |  51 ++---
 .../paged/CollectionLayoutPagedVm.layout.xml       |  49 +++++
 .../CollectionLayoutSequenceVm-description.adoc}   |   8 +-
 .../sequence/CollectionLayoutSequenceVm.java}      |  51 ++---
 .../sequence/CollectionLayoutSequenceVm.layout.xml |  49 +++++
 .../collections/CollectionLayout/sortedBy/.gitkeep |   0
 .../CollectionLayoutSortedByComparator.java        |  29 +--
 .../CollectionLayoutSortedByVm-description.adoc    |  10 +
 .../sortedBy/CollectionLayoutSortedByVm.java}      |  51 ++---
 .../sortedBy/CollectionLayoutSortedByVm.layout.xml |  49 +++++
 ...lectionLayoutTableDecoratorVm-description.adoc} |   8 +-
 .../CollectionLayoutTableDecoratorVm.java}         |  50 ++---
 .../CollectionLayoutTableDecoratorVm.layout.xml    |  49 +++++
 .../objects/DomainObject/DomainObjectMenu.java     |  83 +++-----
 .../DomainObjectAliasedVm-description.adoc}        |  10 +-
 .../aliased/DomainObjectAliasedVm.java             |  46 +++++
 .../aliased/DomainObjectAliasedVm.layout.xml       |  49 +++++
 .../objects/DomainObject/autoComplete/.gitkeep     |   0
 .../DomainObjectAutoCompleteRepository.java        |  21 +-
 .../DomainObjectAutoCompleteVm-description.adoc}   |  15 +-
 .../autoComplete/DomainObjectAutoCompleteVm.java   |  54 +++++
 .../DomainObjectAutoCompleteVm.layout.xml          |  49 +++++
 .../domain/objects/DomainObject/bounded/.gitkeep   |   0
 .../DomainObjectBoundingVm-description.adoc}       |  10 +-
 .../bounded/DomainObjectBoundingVm.java            |  53 +++++
 .../bounded/DomainObjectBoundingVm.layout.xml      |  49 +++++
 .../domain/objects/DomainObject/editing/.gitkeep   |   0
 .../DomainObjectEditingVm-description.adoc}        |  15 +-
 .../editing/DomainObjectEditingVm.java             |  47 +++++
 .../editing/DomainObjectEditingVm.layout.xml       |  49 +++++
 .../DomainObjectIntrospectionVm-description.adoc}  |   8 +-
 .../introspection/DomainObjectIntrospectionVm.java |  47 +++++
 .../DomainObjectIntrospectionVm.layout.xml         |  49 +++++
 .../objects/DomainObject/mixinMethod/.gitkeep      |   0
 .../DomainObjectMixinMethodVm-description.adoc     |  11 +
 .../mixinMethod/DomainObjectMixinMethodVm.java     |  39 ++--
 .../DomainObjectMixinMethodVm.layout.xml           |  49 +++++
 .../objects/DomainObject/objectType/.gitkeep       |   0
 .../objects/DomainObject/xxxDomainEvent/.gitkeep   |   0
 .../DomainObjectDomainEventsVm-description.adoc    |  46 +++++
 .../xxxDomainEvent/DomainObjectDomainEventsVm.java |  47 +++++
 .../DomainObjectDomainEventsVm.layout.xml          |  49 +++++
 .../DomainObject/xxxLifecycleEvent/.gitkeep        |   0
 .../DomainObjectLifecyleEventsVm-description.adoc  |  62 ++++++
 .../DomainObjectLifecyleEventsVm.java              |  47 +++++
 .../DomainObjectLifecyleEventsVm.layout.xml        |  49 +++++
 ...omainObjectLayoutDescribedAsVm-description.adoc |   2 +-
 .../DomainObjectLayoutNamedVm-description.adoc     |   2 +-
 .../DomainObjectLayoutPagedVm-description.adoc     |   2 +-
 .../DomainObjectLayoutTableDecoratorVm.java        |   3 +-
 ...DomainObjectLayoutXxxUiEventVm-description.adoc |   2 +-
 .../src/main/java/demoapp/dom/menubars.layout.xml  |  10 +-
 .../commandlog/applib/dom/BackgroundService.java   |   1 -
 .../commandlog/applib/dom/CommandLogEntry.java     |  29 +--
 .../applib/dom/CommandLogEntryRepository.java      |   4 +-
 .../applib/job/RunBackgroundCommandsJob.java       |   2 +-
 .../subscriber/CommandSubscriberForCommandLog.java |  45 +++-
 .../BackgroundService_IntegTestAbstract.java       |  20 +-
 .../adoc/modules/executionoutbox/pages/about.adoc  |  72 ++++++-
 .../jobcallables/ReplicateAndRunCommands.java      |   2 +-
 .../CmdExecAuditSessLog_IntegTestAbstract.java     |  95 ++++++---
 .../subscriber/CommandSubscriberForTesting.java    |  27 ++-
 .../applib/CausewayIntegrationTestAbstract.java    |   5 +-
 .../testing/integtestsupport/applib/_Helper.java   |   2 +-
 114 files changed, 2482 insertions(+), 848 deletions(-)

diff --cc core/runtimeservices/src/main/java/org/apache/causeway/core/runtimeservices/CausewayModuleCoreRuntimeServices.java
index c2628b3c6a,544b14118d..af2c67a9a2
--- a/core/runtimeservices/src/main/java/org/apache/causeway/core/runtimeservices/CausewayModuleCoreRuntimeServices.java
+++ b/core/runtimeservices/src/main/java/org/apache/causeway/core/runtimeservices/CausewayModuleCoreRuntimeServices.java
@@@ -18,8 -18,9 +18,9 @@@
   */
  package org.apache.causeway.core.runtimeservices;
  
 -import javax.inject.Singleton;
 +import jakarta.inject.Singleton;
  
+ import org.apache.causeway.core.runtimeservices.session.InteractionIdGeneratorDefault;
  import org.springframework.context.annotation.Bean;
  import org.springframework.context.annotation.Configuration;
  import org.springframework.context.annotation.Import;
diff --cc core/runtimeservices/src/main/java/org/apache/causeway/core/runtimeservices/command/CommandExecutorServiceDefault.java
index 2c3e96866d,abdd130dc3..8a4d8add2a
--- a/core/runtimeservices/src/main/java/org/apache/causeway/core/runtimeservices/command/CommandExecutorServiceDefault.java
+++ b/core/runtimeservices/src/main/java/org/apache/causeway/core/runtimeservices/command/CommandExecutorServiceDefault.java
@@@ -22,11 -23,13 +23,11 @@@ import java.util.UUID
  import java.util.regex.Pattern;
  import java.util.stream.Stream;
  
 -import javax.annotation.Priority;
 -import javax.inject.Inject;
 -import javax.inject.Named;
 -import javax.inject.Provider;
 +import jakarta.annotation.Priority;
 +import jakarta.inject.Inject;
 +import jakarta.inject.Named;
++import jakarta.inject.Provider;
  
--import org.apache.causeway.commons.functional.Try;
 -import org.apache.causeway.core.metamodel.services.publishing.CommandPublisher;
  import org.springframework.beans.factory.annotation.Qualifier;
  import org.springframework.stereotype.Service;
  
@@@ -44,11 -45,11 +43,13 @@@ import org.apache.causeway.applib.servi
  import org.apache.causeway.applib.util.schema.CommandDtoUtils;
  import org.apache.causeway.commons.collections.Can;
  import org.apache.causeway.commons.functional.IndexedFunction;
++import org.apache.causeway.commons.functional.Try;
  import org.apache.causeway.commons.internal.base._NullSafe;
  import org.apache.causeway.commons.internal.exceptions._Exceptions;
  import org.apache.causeway.core.metamodel.consent.InteractionInitiatedBy;
  import org.apache.causeway.core.metamodel.object.ManagedObject;
  import org.apache.causeway.core.metamodel.object.ManagedObjects;
++import org.apache.causeway.core.metamodel.services.publishing.CommandPublisher;
  import org.apache.causeway.core.metamodel.services.schema.SchemaValueMarshaller;
  import org.apache.causeway.core.metamodel.spec.ObjectSpecification;
  import org.apache.causeway.core.metamodel.spec.feature.ObjectAction;
@@@ -62,6 -63,6 +63,7 @@@ import org.apache.causeway.schema.cmd.v
  import org.apache.causeway.schema.cmd.v2.ParamsDto;
  import org.apache.causeway.schema.cmd.v2.PropertyDto;
  import org.apache.causeway.schema.common.v2.InteractionType;
++
  import lombok.Getter;
  import lombok.RequiredArgsConstructor;
  import lombok.val;
diff --cc core/runtimeservices/src/main/java/org/apache/causeway/core/runtimeservices/executor/MemberExecutorServiceDefault.java
index 71bf573b7e,4f6c575d78..5954aa131f
--- a/core/runtimeservices/src/main/java/org/apache/causeway/core/runtimeservices/executor/MemberExecutorServiceDefault.java
+++ b/core/runtimeservices/src/main/java/org/apache/causeway/core/runtimeservices/executor/MemberExecutorServiceDefault.java
@@@ -18,14 -18,16 +18,16 @@@
   */
  package org.apache.causeway.core.runtimeservices.executor;
  
- import java.lang.reflect.Method;
  import java.util.Optional;
  
 -import javax.annotation.Priority;
 -import javax.inject.Inject;
 -import javax.inject.Named;
 -import javax.inject.Provider;
 +import jakarta.annotation.Priority;
 +import jakarta.inject.Inject;
 +import jakarta.inject.Named;
 +import jakarta.inject.Provider;
  
+ import org.apache.causeway.core.metamodel.facets.actions.action.invocation.IdentifierUtil;
+ import org.apache.causeway.core.metamodel.services.publishing.CommandPublisher;
+ import org.apache.causeway.core.metamodel.spec.feature.ObjectMember;
  import org.springframework.beans.factory.annotation.Qualifier;
  import org.springframework.stereotype.Service;
  
diff --cc core/runtimeservices/src/main/java/org/apache/causeway/core/runtimeservices/session/InteractionIdGenerator.java
index 39f8958537,3f8a59b0a8..f39c3be2f7
--- a/core/runtimeservices/src/main/java/org/apache/causeway/core/runtimeservices/session/InteractionIdGenerator.java
+++ b/core/runtimeservices/src/main/java/org/apache/causeway/core/runtimeservices/session/InteractionIdGenerator.java
@@@ -20,15 -20,21 +20,10 @@@
  
  package org.apache.causeway.core.runtimeservices.session;
  
 -import lombok.extern.log4j.Log4j2;
 -
  import java.util.UUID;
  
 -import javax.annotation.Priority;
 -import javax.inject.Named;
 -
 -import org.apache.causeway.applib.annotation.PriorityPrecedence;
 -import org.apache.causeway.core.runtimeservices.CausewayModuleCoreRuntimeServices;
 -import org.springframework.beans.factory.annotation.Qualifier;
--import org.springframework.stereotype.Component;
 -import org.springframework.stereotype.Service;
 -
+ public interface InteractionIdGenerator {
  
- @Component
- public class InteractionIdGenerator {
- 
-     public UUID interactionId() {
-         return UUID.randomUUID();
-     }
+     UUID interactionId();
  
  }
diff --cc core/runtimeservices/src/main/java/org/apache/causeway/core/runtimeservices/session/InteractionIdGeneratorDefault.java
index 39f8958537,dbeb386b72..d4fd997393
--- a/core/runtimeservices/src/main/java/org/apache/causeway/core/runtimeservices/session/InteractionIdGeneratorDefault.java
+++ b/core/runtimeservices/src/main/java/org/apache/causeway/core/runtimeservices/session/InteractionIdGeneratorDefault.java
@@@ -20,13 -20,25 +20,27 @@@
  
  package org.apache.causeway.core.runtimeservices.session;
  
 -import lombok.extern.log4j.Log4j2;
 -
  import java.util.UUID;
  
- import org.springframework.stereotype.Component;
 -import javax.annotation.Priority;
 -import javax.inject.Named;
++import jakarta.annotation.Priority;
++import jakarta.inject.Named;
  
- @Component
- public class InteractionIdGenerator {
 -import org.apache.causeway.applib.annotation.PriorityPrecedence;
 -import org.apache.causeway.core.runtimeservices.CausewayModuleCoreRuntimeServices;
+ import org.springframework.beans.factory.annotation.Qualifier;
+ import org.springframework.stereotype.Service;
  
++import org.apache.causeway.applib.annotation.PriorityPrecedence;
++import org.apache.causeway.core.runtimeservices.CausewayModuleCoreRuntimeServices;
++
++import lombok.extern.log4j.Log4j2;
++
+ @Service
+ @Named(CausewayModuleCoreRuntimeServices.NAMESPACE + ".InteractionIdGenerator")
+ @Priority(PriorityPrecedence.MIDPOINT)
+ @Qualifier("Default")
+ @Log4j2
+ public class InteractionIdGeneratorDefault implements InteractionIdGenerator {
+ 
++    @Override
      public UUID interactionId() {
          return UUID.randomUUID();
      }
diff --cc core/runtimeservices/src/main/java/org/apache/causeway/core/runtimeservices/session/InteractionServiceDefault.java
index 9a49b872eb,df5ed9e31e..763ee04904
--- a/core/runtimeservices/src/main/java/org/apache/causeway/core/runtimeservices/session/InteractionServiceDefault.java
+++ b/core/runtimeservices/src/main/java/org/apache/causeway/core/runtimeservices/session/InteractionServiceDefault.java
@@@ -27,11 -26,12 +26,12 @@@ import java.util.Stack
  import java.util.UUID;
  import java.util.concurrent.Callable;
  
 -import javax.annotation.Priority;
 -import javax.inject.Inject;
 -import javax.inject.Named;
 -import javax.inject.Provider;
 +import jakarta.annotation.Priority;
 +import jakarta.inject.Inject;
 +import jakarta.inject.Named;
 +import jakarta.inject.Provider;
  
+ import org.apache.causeway.applib.services.command.Command;
  import org.springframework.beans.factory.annotation.Qualifier;
  import org.springframework.beans.factory.config.ConfigurableBeanFactory;
  import org.springframework.context.annotation.Lazy;
diff --cc core/runtimeservices/src/main/java/org/apache/causeway/core/runtimeservices/wrapper/WrapperFactoryDefault.java
index 59ae186769,3fd05b30f3..47b8a5e90d
--- a/core/runtimeservices/src/main/java/org/apache/causeway/core/runtimeservices/wrapper/WrapperFactoryDefault.java
+++ b/core/runtimeservices/src/main/java/org/apache/causeway/core/runtimeservices/wrapper/WrapperFactoryDefault.java
@@@ -30,13 -30,13 +30,13 @@@ import java.util.UUID
  import java.util.concurrent.ExecutorService;
  import java.util.function.BiConsumer;
  
 -import javax.annotation.PostConstruct;
 -import javax.annotation.Priority;
 -import javax.inject.Inject;
 -import javax.inject.Named;
 -import javax.inject.Provider;
 +import jakarta.annotation.PostConstruct;
 +import jakarta.annotation.Priority;
 +import jakarta.inject.Inject;
 +import jakarta.inject.Named;
 +import jakarta.inject.Provider;
  
+ import org.apache.causeway.core.runtimeservices.session.InteractionIdGenerator;
  import org.springframework.beans.factory.annotation.Qualifier;
  import org.springframework.context.annotation.Lazy;
  import org.springframework.stereotype.Service;
diff --cc examples/demo/domain/src/main/java/demoapp/dom/domain/collections/CollectionLayout/cssClass/.gitkeep
index e69de29bb2,e69de29bb2..0000000000
deleted file mode 100644,100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/domain/collections/CollectionLayout/cssClass/.gitkeep
+++ /dev/null
diff --cc examples/demo/domain/src/main/java/demoapp/dom/domain/collections/CollectionLayout/cssClass/CollectionLayoutCssClassVm.java
index 7a7bc53fdf,663ee56de9..07b6fbceaa
--- a/examples/demo/domain/src/main/java/demoapp/dom/domain/collections/CollectionLayout/cssClass/CollectionLayoutCssClassVm.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/domain/collections/CollectionLayout/cssClass/CollectionLayoutCssClassVm.java
@@@ -16,19 -16,18 +16,18 @@@
   *  specific language governing permissions and limitations
   *  under the License.
   */
- package demoapp.dom.domain.objects.DomainObjectLayout.tabledec;
+ package demoapp.dom.domain.collections.CollectionLayout.cssClass;
  
+ import java.util.ArrayList;
  import java.util.List;
- import java.util.UUID;
  
 -import javax.inject.Named;
 -import javax.xml.bind.annotation.XmlAccessType;
 -import javax.xml.bind.annotation.XmlAccessorType;
 -import javax.xml.bind.annotation.XmlRootElement;
 -import javax.xml.bind.annotation.XmlTransient;
 -import javax.xml.bind.annotation.XmlType;
 +import jakarta.inject.Named;
 +import jakarta.xml.bind.annotation.XmlAccessType;
 +import jakarta.xml.bind.annotation.XmlAccessorType;
- import jakarta.xml.bind.annotation.XmlElement;
 +import jakarta.xml.bind.annotation.XmlRootElement;
++import jakarta.xml.bind.annotation.XmlTransient;
 +import jakarta.xml.bind.annotation.XmlType;
  
- import org.apache.causeway.applib.annotation.Action;
  import org.apache.causeway.applib.annotation.Collection;
  import org.apache.causeway.applib.annotation.CollectionLayout;
  import org.apache.causeway.applib.annotation.DomainObject;
diff --cc examples/demo/domain/src/main/java/demoapp/dom/domain/collections/CollectionLayout/defaultView/.gitkeep
index e69de29bb2,e69de29bb2..0000000000
deleted file mode 100644,100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/domain/collections/CollectionLayout/defaultView/.gitkeep
+++ /dev/null
diff --cc examples/demo/domain/src/main/java/demoapp/dom/domain/collections/CollectionLayout/defaultView/CollectionLayoutDefaultViewVm.java
index 7a7bc53fdf,9db6eafd0f..94735d9185
--- a/examples/demo/domain/src/main/java/demoapp/dom/domain/collections/CollectionLayout/defaultView/CollectionLayoutDefaultViewVm.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/domain/collections/CollectionLayout/defaultView/CollectionLayoutDefaultViewVm.java
@@@ -16,19 -16,18 +16,18 @@@
   *  specific language governing permissions and limitations
   *  under the License.
   */
- package demoapp.dom.domain.objects.DomainObjectLayout.tabledec;
+ package demoapp.dom.domain.collections.CollectionLayout.defaultView;
  
+ import java.util.ArrayList;
  import java.util.List;
- import java.util.UUID;
  
 -import javax.inject.Named;
 -import javax.xml.bind.annotation.XmlAccessType;
 -import javax.xml.bind.annotation.XmlAccessorType;
 -import javax.xml.bind.annotation.XmlRootElement;
 -import javax.xml.bind.annotation.XmlTransient;
 -import javax.xml.bind.annotation.XmlType;
 +import jakarta.inject.Named;
 +import jakarta.xml.bind.annotation.XmlAccessType;
 +import jakarta.xml.bind.annotation.XmlAccessorType;
- import jakarta.xml.bind.annotation.XmlElement;
 +import jakarta.xml.bind.annotation.XmlRootElement;
++import jakarta.xml.bind.annotation.XmlTransient;
 +import jakarta.xml.bind.annotation.XmlType;
  
- import org.apache.causeway.applib.annotation.Action;
  import org.apache.causeway.applib.annotation.Collection;
  import org.apache.causeway.applib.annotation.CollectionLayout;
  import org.apache.causeway.applib.annotation.DomainObject;
diff --cc examples/demo/domain/src/main/java/demoapp/dom/domain/collections/CollectionLayout/describedAs/.gitkeep
index e69de29bb2,e69de29bb2..0000000000
deleted file mode 100644,100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/domain/collections/CollectionLayout/describedAs/.gitkeep
+++ /dev/null
diff --cc examples/demo/domain/src/main/java/demoapp/dom/domain/collections/CollectionLayout/describedAs/CollectionLayoutDescribedAsVm.java
index 7a7bc53fdf,631fa3ce7f..16f58ae8e6
--- a/examples/demo/domain/src/main/java/demoapp/dom/domain/collections/CollectionLayout/describedAs/CollectionLayoutDescribedAsVm.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/domain/collections/CollectionLayout/describedAs/CollectionLayoutDescribedAsVm.java
@@@ -16,19 -16,18 +16,18 @@@
   *  specific language governing permissions and limitations
   *  under the License.
   */
- package demoapp.dom.domain.objects.DomainObjectLayout.tabledec;
+ package demoapp.dom.domain.collections.CollectionLayout.describedAs;
  
+ import java.util.ArrayList;
  import java.util.List;
- import java.util.UUID;
  
 -import javax.inject.Named;
 -import javax.xml.bind.annotation.XmlAccessType;
 -import javax.xml.bind.annotation.XmlAccessorType;
 -import javax.xml.bind.annotation.XmlRootElement;
 -import javax.xml.bind.annotation.XmlTransient;
 -import javax.xml.bind.annotation.XmlType;
 +import jakarta.inject.Named;
 +import jakarta.xml.bind.annotation.XmlAccessType;
 +import jakarta.xml.bind.annotation.XmlAccessorType;
- import jakarta.xml.bind.annotation.XmlElement;
 +import jakarta.xml.bind.annotation.XmlRootElement;
++import jakarta.xml.bind.annotation.XmlTransient;
 +import jakarta.xml.bind.annotation.XmlType;
  
- import org.apache.causeway.applib.annotation.Action;
  import org.apache.causeway.applib.annotation.Collection;
  import org.apache.causeway.applib.annotation.CollectionLayout;
  import org.apache.causeway.applib.annotation.DomainObject;
diff --cc examples/demo/domain/src/main/java/demoapp/dom/domain/collections/CollectionLayout/hidden/.gitkeep
index e69de29bb2,e69de29bb2..0000000000
deleted file mode 100644,100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/domain/collections/CollectionLayout/hidden/.gitkeep
+++ /dev/null
diff --cc examples/demo/domain/src/main/java/demoapp/dom/domain/collections/CollectionLayout/hidden/CollectionLayoutHiddenVm.java
index 7a7bc53fdf,4726b9bfc0..f0b1ee5f6d
--- a/examples/demo/domain/src/main/java/demoapp/dom/domain/collections/CollectionLayout/hidden/CollectionLayoutHiddenVm.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/domain/collections/CollectionLayout/hidden/CollectionLayoutHiddenVm.java
@@@ -16,19 -16,18 +16,18 @@@
   *  specific language governing permissions and limitations
   *  under the License.
   */
- package demoapp.dom.domain.objects.DomainObjectLayout.tabledec;
+ package demoapp.dom.domain.collections.CollectionLayout.hidden;
  
+ import java.util.ArrayList;
  import java.util.List;
- import java.util.UUID;
  
 -import javax.inject.Named;
 -import javax.xml.bind.annotation.XmlAccessType;
 -import javax.xml.bind.annotation.XmlAccessorType;
 -import javax.xml.bind.annotation.XmlRootElement;
 -import javax.xml.bind.annotation.XmlTransient;
 -import javax.xml.bind.annotation.XmlType;
 +import jakarta.inject.Named;
 +import jakarta.xml.bind.annotation.XmlAccessType;
 +import jakarta.xml.bind.annotation.XmlAccessorType;
- import jakarta.xml.bind.annotation.XmlElement;
 +import jakarta.xml.bind.annotation.XmlRootElement;
++import jakarta.xml.bind.annotation.XmlTransient;
 +import jakarta.xml.bind.annotation.XmlType;
  
- import org.apache.causeway.applib.annotation.Action;
  import org.apache.causeway.applib.annotation.Collection;
  import org.apache.causeway.applib.annotation.CollectionLayout;
  import org.apache.causeway.applib.annotation.DomainObject;
diff --cc examples/demo/domain/src/main/java/demoapp/dom/domain/collections/CollectionLayout/named/.gitkeep
index e69de29bb2,e69de29bb2..0000000000
deleted file mode 100644,100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/domain/collections/CollectionLayout/named/.gitkeep
+++ /dev/null
diff --cc examples/demo/domain/src/main/java/demoapp/dom/domain/collections/CollectionLayout/named/CollectionLayoutNamedVm.java
index 7a7bc53fdf,bf13f01bc4..4f3d1817a0
--- a/examples/demo/domain/src/main/java/demoapp/dom/domain/collections/CollectionLayout/named/CollectionLayoutNamedVm.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/domain/collections/CollectionLayout/named/CollectionLayoutNamedVm.java
@@@ -16,19 -16,18 +16,18 @@@
   *  specific language governing permissions and limitations
   *  under the License.
   */
- package demoapp.dom.domain.objects.DomainObjectLayout.tabledec;
+ package demoapp.dom.domain.collections.CollectionLayout.named;
  
+ import java.util.ArrayList;
  import java.util.List;
- import java.util.UUID;
  
 -import javax.inject.Named;
 -import javax.xml.bind.annotation.XmlAccessType;
 -import javax.xml.bind.annotation.XmlAccessorType;
 -import javax.xml.bind.annotation.XmlRootElement;
 -import javax.xml.bind.annotation.XmlTransient;
 -import javax.xml.bind.annotation.XmlType;
 +import jakarta.inject.Named;
 +import jakarta.xml.bind.annotation.XmlAccessType;
 +import jakarta.xml.bind.annotation.XmlAccessorType;
- import jakarta.xml.bind.annotation.XmlElement;
 +import jakarta.xml.bind.annotation.XmlRootElement;
++import jakarta.xml.bind.annotation.XmlTransient;
 +import jakarta.xml.bind.annotation.XmlType;
  
- import org.apache.causeway.applib.annotation.Action;
  import org.apache.causeway.applib.annotation.Collection;
  import org.apache.causeway.applib.annotation.CollectionLayout;
  import org.apache.causeway.applib.annotation.DomainObject;
diff --cc examples/demo/domain/src/main/java/demoapp/dom/domain/collections/CollectionLayout/paged/.gitkeep
index e69de29bb2,e69de29bb2..0000000000
deleted file mode 100644,100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/domain/collections/CollectionLayout/paged/.gitkeep
+++ /dev/null
diff --cc examples/demo/domain/src/main/java/demoapp/dom/domain/collections/CollectionLayout/paged/CollectionLayoutPagedVm.java
index 7a7bc53fdf,be8063ce38..9a3beb9c9f
--- a/examples/demo/domain/src/main/java/demoapp/dom/domain/collections/CollectionLayout/paged/CollectionLayoutPagedVm.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/domain/collections/CollectionLayout/paged/CollectionLayoutPagedVm.java
@@@ -16,19 -16,18 +16,18 @@@
   *  specific language governing permissions and limitations
   *  under the License.
   */
- package demoapp.dom.domain.objects.DomainObjectLayout.tabledec;
+ package demoapp.dom.domain.collections.CollectionLayout.paged;
  
+ import java.util.ArrayList;
  import java.util.List;
- import java.util.UUID;
  
 -import javax.inject.Named;
 -import javax.xml.bind.annotation.XmlAccessType;
 -import javax.xml.bind.annotation.XmlAccessorType;
 -import javax.xml.bind.annotation.XmlRootElement;
 -import javax.xml.bind.annotation.XmlTransient;
 -import javax.xml.bind.annotation.XmlType;
 +import jakarta.inject.Named;
 +import jakarta.xml.bind.annotation.XmlAccessType;
 +import jakarta.xml.bind.annotation.XmlAccessorType;
- import jakarta.xml.bind.annotation.XmlElement;
 +import jakarta.xml.bind.annotation.XmlRootElement;
++import jakarta.xml.bind.annotation.XmlTransient;
 +import jakarta.xml.bind.annotation.XmlType;
  
- import org.apache.causeway.applib.annotation.Action;
  import org.apache.causeway.applib.annotation.Collection;
  import org.apache.causeway.applib.annotation.CollectionLayout;
  import org.apache.causeway.applib.annotation.DomainObject;
diff --cc examples/demo/domain/src/main/java/demoapp/dom/domain/collections/CollectionLayout/sequence/CollectionLayoutSequenceVm.java
index 7a7bc53fdf,be41b6378b..1fb7984d03
--- a/examples/demo/domain/src/main/java/demoapp/dom/domain/collections/CollectionLayout/sequence/CollectionLayoutSequenceVm.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/domain/collections/CollectionLayout/sequence/CollectionLayoutSequenceVm.java
@@@ -16,19 -16,18 +16,18 @@@
   *  specific language governing permissions and limitations
   *  under the License.
   */
- package demoapp.dom.domain.objects.DomainObjectLayout.tabledec;
+ package demoapp.dom.domain.collections.CollectionLayout.sequence;
  
+ import java.util.ArrayList;
  import java.util.List;
- import java.util.UUID;
  
 -import javax.inject.Named;
 -import javax.xml.bind.annotation.XmlAccessType;
 -import javax.xml.bind.annotation.XmlAccessorType;
 -import javax.xml.bind.annotation.XmlRootElement;
 -import javax.xml.bind.annotation.XmlTransient;
 -import javax.xml.bind.annotation.XmlType;
 +import jakarta.inject.Named;
 +import jakarta.xml.bind.annotation.XmlAccessType;
 +import jakarta.xml.bind.annotation.XmlAccessorType;
- import jakarta.xml.bind.annotation.XmlElement;
 +import jakarta.xml.bind.annotation.XmlRootElement;
++import jakarta.xml.bind.annotation.XmlTransient;
 +import jakarta.xml.bind.annotation.XmlType;
  
- import org.apache.causeway.applib.annotation.Action;
  import org.apache.causeway.applib.annotation.Collection;
  import org.apache.causeway.applib.annotation.CollectionLayout;
  import org.apache.causeway.applib.annotation.DomainObject;
diff --cc examples/demo/domain/src/main/java/demoapp/dom/domain/collections/CollectionLayout/sortedBy/.gitkeep
index e69de29bb2,e69de29bb2..0000000000
deleted file mode 100644,100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/domain/collections/CollectionLayout/sortedBy/.gitkeep
+++ /dev/null
diff --cc examples/demo/domain/src/main/java/demoapp/dom/domain/collections/CollectionLayout/sortedBy/CollectionLayoutSortedByVm.java
index 7a7bc53fdf,8b5c9768be..29082b5afb
--- a/examples/demo/domain/src/main/java/demoapp/dom/domain/collections/CollectionLayout/sortedBy/CollectionLayoutSortedByVm.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/domain/collections/CollectionLayout/sortedBy/CollectionLayoutSortedByVm.java
@@@ -16,19 -16,18 +16,18 @@@
   *  specific language governing permissions and limitations
   *  under the License.
   */
- package demoapp.dom.domain.objects.DomainObjectLayout.tabledec;
+ package demoapp.dom.domain.collections.CollectionLayout.sortedBy;
  
+ import java.util.ArrayList;
  import java.util.List;
- import java.util.UUID;
  
 -import javax.inject.Named;
 -import javax.xml.bind.annotation.XmlAccessType;
 -import javax.xml.bind.annotation.XmlAccessorType;
 -import javax.xml.bind.annotation.XmlRootElement;
 -import javax.xml.bind.annotation.XmlTransient;
 -import javax.xml.bind.annotation.XmlType;
 +import jakarta.inject.Named;
 +import jakarta.xml.bind.annotation.XmlAccessType;
 +import jakarta.xml.bind.annotation.XmlAccessorType;
- import jakarta.xml.bind.annotation.XmlElement;
 +import jakarta.xml.bind.annotation.XmlRootElement;
++import jakarta.xml.bind.annotation.XmlTransient;
 +import jakarta.xml.bind.annotation.XmlType;
  
- import org.apache.causeway.applib.annotation.Action;
  import org.apache.causeway.applib.annotation.Collection;
  import org.apache.causeway.applib.annotation.CollectionLayout;
  import org.apache.causeway.applib.annotation.DomainObject;
diff --cc examples/demo/domain/src/main/java/demoapp/dom/domain/collections/CollectionLayout/tableDecorator/CollectionLayoutTableDecoratorVm.java
index 7a7bc53fdf,7ad1bd4cb2..99b4445e1f
--- a/examples/demo/domain/src/main/java/demoapp/dom/domain/collections/CollectionLayout/tableDecorator/CollectionLayoutTableDecoratorVm.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/domain/collections/CollectionLayout/tableDecorator/CollectionLayoutTableDecoratorVm.java
@@@ -16,19 -16,18 +16,18 @@@
   *  specific language governing permissions and limitations
   *  under the License.
   */
- package demoapp.dom.domain.objects.DomainObjectLayout.tabledec;
+ package demoapp.dom.domain.collections.CollectionLayout.tableDecorator;
  
+ import java.util.ArrayList;
  import java.util.List;
- import java.util.UUID;
  
 -import javax.inject.Named;
 -import javax.xml.bind.annotation.XmlAccessType;
 -import javax.xml.bind.annotation.XmlAccessorType;
 -import javax.xml.bind.annotation.XmlRootElement;
 -import javax.xml.bind.annotation.XmlTransient;
 -import javax.xml.bind.annotation.XmlType;
 +import jakarta.inject.Named;
 +import jakarta.xml.bind.annotation.XmlAccessType;
 +import jakarta.xml.bind.annotation.XmlAccessorType;
- import jakarta.xml.bind.annotation.XmlElement;
 +import jakarta.xml.bind.annotation.XmlRootElement;
++import jakarta.xml.bind.annotation.XmlTransient;
 +import jakarta.xml.bind.annotation.XmlType;
  
- import org.apache.causeway.applib.annotation.Action;
  import org.apache.causeway.applib.annotation.Collection;
  import org.apache.causeway.applib.annotation.CollectionLayout;
  import org.apache.causeway.applib.annotation.DomainObject;
diff --cc examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/aliased/DomainObjectAliasedVm.java
index 0000000000,4a618d0080..8e38f16710
mode 000000,100644..100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/aliased/DomainObjectAliasedVm.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/aliased/DomainObjectAliasedVm.java
@@@ -1,0 -1,46 +1,46 @@@
+ /*
+  *  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 agreed to in writing,
+  *  software distributed under the License is distributed on an
+  *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  *  KIND, either express or implied.  See the License for the
+  *  specific language governing permissions and limitations
+  *  under the License.
+  */
+ package demoapp.dom.domain.objects.DomainObject.aliased;
+ 
 -import javax.inject.Named;
 -import javax.xml.bind.annotation.XmlAccessType;
 -import javax.xml.bind.annotation.XmlAccessorType;
 -import javax.xml.bind.annotation.XmlRootElement;
 -import javax.xml.bind.annotation.XmlType;
++import jakarta.inject.Named;
++import jakarta.xml.bind.annotation.XmlAccessType;
++import jakarta.xml.bind.annotation.XmlAccessorType;
++import jakarta.xml.bind.annotation.XmlRootElement;
++import jakarta.xml.bind.annotation.XmlType;
+ 
+ import org.apache.causeway.applib.annotation.DomainObject;
+ import org.apache.causeway.applib.annotation.ObjectSupport;
+ 
+ import demoapp.dom._infra.asciidocdesc.HasAsciiDocDescription;
+ 
+ //tag::class[]
+ @XmlRootElement(name = "root")
+ @XmlType
+ @XmlAccessorType(XmlAccessType.FIELD)
+ @Named("demo.DomainObjectAliasedVm")
+ @DomainObject(
+         aliased = {"demo.domain-object.AliasedVm"})
+ public class DomainObjectAliasedVm implements HasAsciiDocDescription {
+ 
+     @ObjectSupport public String title() {
+         return "DomainObject#aliased";
+     }
+ 
+ }
+ //end::class[]
diff --cc examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/autoComplete/.gitkeep
index e69de29bb2,e69de29bb2..0000000000
deleted file mode 100644,100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/autoComplete/.gitkeep
+++ /dev/null
diff --cc examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/autoComplete/DomainObjectAutoCompleteVm.java
index 0000000000,151d22d9e0..29cd7de1af
mode 000000,100644..100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/autoComplete/DomainObjectAutoCompleteVm.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/autoComplete/DomainObjectAutoCompleteVm.java
@@@ -1,0 -1,54 +1,54 @@@
+ /*
+  *  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 agreed to in writing,
+  *  software distributed under the License is distributed on an
+  *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  *  KIND, either express or implied.  See the License for the
+  *  specific language governing permissions and limitations
+  *  under the License.
+  */
+ package demoapp.dom.domain.objects.DomainObject.autoComplete;
+ 
 -import javax.inject.Named;
 -import javax.xml.bind.annotation.XmlAccessType;
 -import javax.xml.bind.annotation.XmlAccessorType;
 -import javax.xml.bind.annotation.XmlRootElement;
 -import javax.xml.bind.annotation.XmlType;
++import jakarta.inject.Named;
++import jakarta.xml.bind.annotation.XmlAccessType;
++import jakarta.xml.bind.annotation.XmlAccessorType;
++import jakarta.xml.bind.annotation.XmlRootElement;
++import jakarta.xml.bind.annotation.XmlType;
+ 
+ import org.apache.causeway.applib.annotation.DomainObject;
+ import org.apache.causeway.applib.annotation.Nature;
+ import org.apache.causeway.applib.annotation.ObjectSupport;
+ 
+ import demoapp.dom._infra.asciidocdesc.HasAsciiDocDescription;
+ 
+ //tag::class[]
+ @XmlRootElement(name = "root")
+ @XmlType
+ @XmlAccessorType(XmlAccessType.FIELD)
+ @Named("demo.DomainObjectAutoCompleteVm")
+ @DomainObject(
+         nature = Nature.VIEW_MODEL)
+ public class DomainObjectAutoCompleteVm implements HasAsciiDocDescription {
+ 
+     @ObjectSupport public String title() {
+         return "DomainObject#autoComplete...";
+     }
+ 
+     /*
+      * TODO on an entity ...
+     @DomainObject(
+         autoCompleteRepository = DomainObjectAutoCompleteRepository.class,
+         autoCompleteMethod = "myAutoComplete")
+     */
+ 
+ }
+ //end::class[]
diff --cc examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/bounded/.gitkeep
index e69de29bb2,e69de29bb2..0000000000
deleted file mode 100644,100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/bounded/.gitkeep
+++ /dev/null
diff --cc examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/bounded/DomainObjectBoundingVm.java
index 0000000000,33c2807fcc..7c046e2421
mode 000000,100644..100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/bounded/DomainObjectBoundingVm.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/bounded/DomainObjectBoundingVm.java
@@@ -1,0 -1,53 +1,53 @@@
+ /*
+  *  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 agreed to in writing,
+  *  software distributed under the License is distributed on an
+  *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  *  KIND, either express or implied.  See the License for the
+  *  specific language governing permissions and limitations
+  *  under the License.
+  */
+ package demoapp.dom.domain.objects.DomainObject.bounded;
+ 
 -import javax.inject.Named;
 -import javax.xml.bind.annotation.XmlAccessType;
 -import javax.xml.bind.annotation.XmlAccessorType;
 -import javax.xml.bind.annotation.XmlRootElement;
 -import javax.xml.bind.annotation.XmlType;
++import jakarta.inject.Named;
++import jakarta.xml.bind.annotation.XmlAccessType;
++import jakarta.xml.bind.annotation.XmlAccessorType;
++import jakarta.xml.bind.annotation.XmlRootElement;
++import jakarta.xml.bind.annotation.XmlType;
+ 
+ import org.apache.causeway.applib.annotation.DomainObject;
+ import org.apache.causeway.applib.annotation.Nature;
+ import org.apache.causeway.applib.annotation.ObjectSupport;
+ 
+ import demoapp.dom._infra.asciidocdesc.HasAsciiDocDescription;
+ 
+ //tag::class[]
+ @XmlRootElement(name = "root")
+ @XmlType
+ @XmlAccessorType(XmlAccessType.FIELD)
+ @Named("demo.DomainObjectBoundingVm")
+ @DomainObject(
+         nature = Nature.VIEW_MODEL)
+ public class DomainObjectBoundingVm implements HasAsciiDocDescription {
+ 
+     @ObjectSupport public String title() {
+         return "DomainObject#bounding";
+     }
+ 
+     /*
+      * TODO on an entity ...
+     @DomainObject(
+             bounding = Bounding.BOUNDED)
+     */
+ 
+ }
+ //end::class[]
diff --cc examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/editing/.gitkeep
index e69de29bb2,e69de29bb2..0000000000
deleted file mode 100644,100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/editing/.gitkeep
+++ /dev/null
diff --cc examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/editing/DomainObjectEditingVm.java
index 0000000000,004aa0fa4f..ddef2a018e
mode 000000,100644..100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/editing/DomainObjectEditingVm.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/editing/DomainObjectEditingVm.java
@@@ -1,0 -1,47 +1,47 @@@
+ /*
+  *  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 agreed to in writing,
+  *  software distributed under the License is distributed on an
+  *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  *  KIND, either express or implied.  See the License for the
+  *  specific language governing permissions and limitations
+  *  under the License.
+  */
+ package demoapp.dom.domain.objects.DomainObject.editing;
+ 
 -import javax.inject.Named;
 -import javax.xml.bind.annotation.XmlAccessType;
 -import javax.xml.bind.annotation.XmlAccessorType;
 -import javax.xml.bind.annotation.XmlRootElement;
 -import javax.xml.bind.annotation.XmlType;
++import jakarta.inject.Named;
++import jakarta.xml.bind.annotation.XmlAccessType;
++import jakarta.xml.bind.annotation.XmlAccessorType;
++import jakarta.xml.bind.annotation.XmlRootElement;
++import jakarta.xml.bind.annotation.XmlType;
+ 
+ import org.apache.causeway.applib.annotation.DomainObject;
+ import org.apache.causeway.applib.annotation.Editing;
+ import org.apache.causeway.applib.annotation.ObjectSupport;
+ 
+ import demoapp.dom._infra.asciidocdesc.HasAsciiDocDescription;
+ 
+ //tag::class[]
+ @XmlRootElement(name = "root")
+ @XmlType
+ @XmlAccessorType(XmlAccessType.FIELD)
+ @Named("demo.DomainObjectEditingVm")
+ @DomainObject(
+         editing = Editing.ENABLED)
+ public class DomainObjectEditingVm implements HasAsciiDocDescription {
+ 
+     @ObjectSupport public String title() {
+         return "DomainObject#editing";
+     }
+ 
+ }
+ //end::class[]
diff --cc examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/introspection/DomainObjectIntrospectionVm.java
index 0000000000,730f1aba42..7a8985dda8
mode 000000,100644..100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/introspection/DomainObjectIntrospectionVm.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/introspection/DomainObjectIntrospectionVm.java
@@@ -1,0 -1,47 +1,47 @@@
+ /*
+  *  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 agreed to in writing,
+  *  software distributed under the License is distributed on an
+  *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  *  KIND, either express or implied.  See the License for the
+  *  specific language governing permissions and limitations
+  *  under the License.
+  */
+ package demoapp.dom.domain.objects.DomainObject.introspection;
+ 
 -import javax.inject.Named;
 -import javax.xml.bind.annotation.XmlAccessType;
 -import javax.xml.bind.annotation.XmlAccessorType;
 -import javax.xml.bind.annotation.XmlRootElement;
 -import javax.xml.bind.annotation.XmlType;
++import jakarta.inject.Named;
++import jakarta.xml.bind.annotation.XmlAccessType;
++import jakarta.xml.bind.annotation.XmlAccessorType;
++import jakarta.xml.bind.annotation.XmlRootElement;
++import jakarta.xml.bind.annotation.XmlType;
+ 
+ import org.apache.causeway.applib.annotation.DomainObject;
+ import org.apache.causeway.applib.annotation.Introspection;
+ import org.apache.causeway.applib.annotation.ObjectSupport;
+ 
+ import demoapp.dom._infra.asciidocdesc.HasAsciiDocDescription;
+ 
+ //tag::class[]
+ @XmlRootElement(name = "root")
+ @XmlType
+ @XmlAccessorType(XmlAccessType.FIELD)
+ @Named("demo.DomainObjectIntrospectionVm")
+ @DomainObject(
+         introspection = Introspection.ENCAPSULATION_ENABLED)
+ public class DomainObjectIntrospectionVm implements HasAsciiDocDescription {
+ 
+     @ObjectSupport public String title() {
+         return "DomainObject#introspection";
+     }
+ 
+ }
+ //end::class[]
diff --cc examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/mixinMethod/.gitkeep
index e69de29bb2,e69de29bb2..0000000000
deleted file mode 100644,100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/mixinMethod/.gitkeep
+++ /dev/null
diff --cc examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/mixinMethod/DomainObjectMixinMethodVm.java
index d8fd9e2bf8,a66d9e47fa..344415fe39
--- a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/mixinMethod/DomainObjectMixinMethodVm.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/mixinMethod/DomainObjectMixinMethodVm.java
@@@ -16,23 -16,34 +16,34 @@@
   *  specific language governing permissions and limitations
   *  under the License.
   */
- package org.apache.causeway.core.metamodel.services.publishing;
+ package demoapp.dom.domain.objects.DomainObject.mixinMethod;
  
- import org.apache.causeway.applib.services.command.Command;
- import org.apache.causeway.applib.services.publishing.spi.CommandSubscriber;
 -import javax.inject.Named;
 -import javax.xml.bind.annotation.XmlAccessType;
 -import javax.xml.bind.annotation.XmlAccessorType;
 -import javax.xml.bind.annotation.XmlRootElement;
 -import javax.xml.bind.annotation.XmlType;
++import jakarta.inject.Named;
++import jakarta.xml.bind.annotation.XmlAccessType;
++import jakarta.xml.bind.annotation.XmlAccessorType;
++import jakarta.xml.bind.annotation.XmlRootElement;
++import jakarta.xml.bind.annotation.XmlType;
  
- import lombok.NonNull;
+ import org.apache.causeway.applib.annotation.ObjectSupport;
  
- /**
-  * Notifies {@link CommandSubscriber}s.
-  * @since 2.0 {@index}
-  */
- public interface CommandPublisher {
+ import demoapp.dom._infra.asciidocdesc.HasAsciiDocDescription;
+ 
+ //tag::class[]
+ @XmlRootElement(name = "root")
+ @XmlType
+ @XmlAccessorType(XmlAccessType.FIELD)
+ @Named("demo.DomainObjectMixinMethodVm")
+ public class DomainObjectMixinMethodVm implements HasAsciiDocDescription {
+ 
+     @ObjectSupport public String title() {
+         return "DomainObject#mixinMethod";
+     }
  
-     /**
-      * &quot;Completes&quot; the command, meaning that all {@link CommandSubscriber}s
-      * are notified throuhg {@link CommandSubscriber#onCompleted(Command)}.
-      */
-     void complete(@NonNull Command command);
+     /*
+      * TODO on a mixin ...
+     @DomainObject(
+         mixinMethod = "xxx")
+     */
  
  }
+ //end::class[]
diff --cc examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/xxxDomainEvent/.gitkeep
index e69de29bb2,e69de29bb2..0000000000
deleted file mode 100644,100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/xxxDomainEvent/.gitkeep
+++ /dev/null
diff --cc examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/xxxDomainEvent/DomainObjectDomainEventsVm.java
index 0000000000,3691f173d7..52f76f18fb
mode 000000,100644..100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/xxxDomainEvent/DomainObjectDomainEventsVm.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/xxxDomainEvent/DomainObjectDomainEventsVm.java
@@@ -1,0 -1,47 +1,47 @@@
+ /*
+  *  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 agreed to in writing,
+  *  software distributed under the License is distributed on an
+  *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  *  KIND, either express or implied.  See the License for the
+  *  specific language governing permissions and limitations
+  *  under the License.
+  */
+ package demoapp.dom.domain.objects.DomainObject.xxxDomainEvent;
+ 
 -import javax.inject.Named;
 -import javax.xml.bind.annotation.XmlAccessType;
 -import javax.xml.bind.annotation.XmlAccessorType;
 -import javax.xml.bind.annotation.XmlRootElement;
 -import javax.xml.bind.annotation.XmlType;
++import jakarta.inject.Named;
++import jakarta.xml.bind.annotation.XmlAccessType;
++import jakarta.xml.bind.annotation.XmlAccessorType;
++import jakarta.xml.bind.annotation.XmlRootElement;
++import jakarta.xml.bind.annotation.XmlType;
+ 
+ import org.apache.causeway.applib.annotation.DomainObject;
+ import org.apache.causeway.applib.annotation.Nature;
+ import org.apache.causeway.applib.annotation.ObjectSupport;
+ 
+ import demoapp.dom._infra.asciidocdesc.HasAsciiDocDescription;
+ 
+ //tag::class[]
+ @XmlRootElement(name = "root")
+ @XmlType
+ @XmlAccessorType(XmlAccessType.FIELD)
+ @Named("demo.DomainObjectDomainEventsVm")
+ @DomainObject(
+         nature = Nature.VIEW_MODEL)
+ public class DomainObjectDomainEventsVm implements HasAsciiDocDescription {
+ 
+     @ObjectSupport public String title() {
+         return "DomainObject#...DomainEvent";
+     }
+ 
+ }
+ //end::class[]
diff --cc examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/xxxLifecycleEvent/.gitkeep
index e69de29bb2,e69de29bb2..0000000000
deleted file mode 100644,100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/xxxLifecycleEvent/.gitkeep
+++ /dev/null
diff --cc examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/xxxLifecycleEvent/DomainObjectLifecyleEventsVm.java
index 0000000000,46f030c6b0..19754ac066
mode 000000,100644..100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/xxxLifecycleEvent/DomainObjectLifecyleEventsVm.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/domain/objects/DomainObject/xxxLifecycleEvent/DomainObjectLifecyleEventsVm.java
@@@ -1,0 -1,47 +1,47 @@@
+ /*
+  *  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 agreed to in writing,
+  *  software distributed under the License is distributed on an
+  *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  *  KIND, either express or implied.  See the License for the
+  *  specific language governing permissions and limitations
+  *  under the License.
+  */
+ package demoapp.dom.domain.objects.DomainObject.xxxLifecycleEvent;
+ 
 -import javax.inject.Named;
 -import javax.xml.bind.annotation.XmlAccessType;
 -import javax.xml.bind.annotation.XmlAccessorType;
 -import javax.xml.bind.annotation.XmlRootElement;
 -import javax.xml.bind.annotation.XmlType;
++import jakarta.inject.Named;
++import jakarta.xml.bind.annotation.XmlAccessType;
++import jakarta.xml.bind.annotation.XmlAccessorType;
++import jakarta.xml.bind.annotation.XmlRootElement;
++import jakarta.xml.bind.annotation.XmlType;
+ 
+ import org.apache.causeway.applib.annotation.DomainObject;
+ import org.apache.causeway.applib.annotation.Nature;
+ import org.apache.causeway.applib.annotation.ObjectSupport;
+ 
+ import demoapp.dom._infra.asciidocdesc.HasAsciiDocDescription;
+ 
+ //tag::class[]
+ @XmlRootElement(name = "root")
+ @XmlType
+ @XmlAccessorType(XmlAccessType.FIELD)
+ @Named("demo.DomainObjectLifecyleEventsVm")
+ @DomainObject(
+         nature = Nature.VIEW_MODEL)
+ public class DomainObjectLifecyleEventsVm implements HasAsciiDocDescription {
+ 
+     @ObjectSupport public String title() {
+         return "DomainObject#...LifecyleEvent";
+     }
+ 
+ }
+ //end::class[]
diff --cc extensions/core/commandlog/applib/src/main/java/org/apache/causeway/extensions/commandlog/applib/subscriber/CommandSubscriberForCommandLog.java
index 3007008098,574d417f80..f1e1b40c5e
--- a/extensions/core/commandlog/applib/src/main/java/org/apache/causeway/extensions/commandlog/applib/subscriber/CommandSubscriberForCommandLog.java
+++ b/extensions/core/commandlog/applib/src/main/java/org/apache/causeway/extensions/commandlog/applib/subscriber/CommandSubscriberForCommandLog.java
@@@ -18,10 -18,13 +18,13 @@@
   */
  package org.apache.causeway.extensions.commandlog.applib.subscriber;
  
 -import javax.annotation.Priority;
 -import javax.inject.Inject;
 -import javax.inject.Named;
 +import jakarta.annotation.Priority;
 +import jakarta.inject.Inject;
 +import jakarta.inject.Named;
  
+ import org.apache.causeway.applib.services.clock.ClockService;
+ import org.apache.causeway.applib.services.repository.RepositoryService;
+ import org.apache.causeway.schema.cmd.v2.CommandDto;
  import org.springframework.beans.factory.annotation.Qualifier;
  import org.springframework.stereotype.Service;
  
diff --cc extensions/core/commandlog/applib/src/test/java/org/apache/causeway/extensions/commandlog/applib/integtest/BackgroundService_IntegTestAbstract.java
index d9c59670eb,5019356b0c..9e5a49967f
--- a/extensions/core/commandlog/applib/src/test/java/org/apache/causeway/extensions/commandlog/applib/integtest/BackgroundService_IntegTestAbstract.java
+++ b/extensions/core/commandlog/applib/src/test/java/org/apache/causeway/extensions/commandlog/applib/integtest/BackgroundService_IntegTestAbstract.java
@@@ -20,8 -20,9 +20,9 @@@ package org.apache.causeway.extensions.
  
  import java.util.List;
  
 -import javax.inject.Inject;
 +import jakarta.inject.Inject;
  
+ import org.apache.causeway.applib.services.iactnlayer.InteractionService;
  import org.junit.jupiter.api.AfterAll;
  import org.junit.jupiter.api.BeforeAll;
  import org.junit.jupiter.api.BeforeEach;
diff --cc regressiontests/stable/src/main/java/org/apache/causeway/testdomain/publishing/subscriber/CommandSubscriberForTesting.java
index b84dc8b4bc,8940bc1d53..fd0552f13f
--- a/regressiontests/stable/src/main/java/org/apache/causeway/testdomain/publishing/subscriber/CommandSubscriberForTesting.java
+++ b/regressiontests/stable/src/main/java/org/apache/causeway/testdomain/publishing/subscriber/CommandSubscriberForTesting.java
@@@ -53,25 -53,40 +53,40 @@@ implements CommandSubscriber 
          log.info("about to initialize");
      }
  
+     @Override
 -    public void onReady(Command command) {
++    public void onReady(final Command command) {
+         on("readyCommands", command);
+         log.debug("publish ready command {}", ()->command.getCommandDto());
+     }
+ 
+     @Override
 -    public void onStarted(Command command) {
++    public void onStarted(final Command command) {
+         on("startedCommands", command);
+         log.debug("publish started command {}", ()->command.getCommandDto());
+     }
+ 
      @Override
 -    public void onCompleted(Command command) {
 +    public void onCompleted(final Command command) {
+         on("completedCommands", command);
+         log.debug("publish completed command {}", ()->command.getCommandDto());
+     }
+ 
  
 -    private void on(String verb, Command command) {
++    private void on(final String verb, final Command command) {
          @SuppressWarnings("unchecked")
-         val publishedCommands =
-         (List<Command>) kvStore.get(this, "publishedCommands").orElseGet(ArrayList::new);
+         val commands = (List<Command>) kvStore.get(this, verb).orElseGet(ArrayList::new);
  
-         publishedCommands.add(command);
+         commands.add(command);
  
-         kvStore.put(this, "publishedCommands", publishedCommands);
-         log.debug("publish command {}", ()->command.getCommandDto());
+         kvStore.put(this, verb, commands);
      }
  
      // -- UTILITIES
  
      @SuppressWarnings("unchecked")
 -    public static Can<Command> getPublishedCommands(KVStoreForTesting kvStore) {
 +    public static Can<Command> getPublishedCommands(final KVStoreForTesting kvStore) {
          return Can.ofCollection(
-                 (List<Command>) kvStore.get(CommandSubscriberForTesting.class, "publishedCommands")
+                 (List<Command>) kvStore.get(CommandSubscriberForTesting.class, "completedCommands")
                  .orElse(null));
      }