You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@causeway.apache.org by da...@apache.org on 2024/10/10 13:08:25 UTC

(causeway) branch CAUSEWAY-3800 created (now 3a5a62f41c)

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

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


      at 3a5a62f41c CAUSEWAY-3800: recreates refguide adoc

This branch includes the following new commits:

     new 209d82732c Merge branch 'maintenance-branch'
     new 3a5a62f41c CAUSEWAY-3800: recreates refguide adoc

The 2 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.



(causeway) 01/02: Merge branch 'maintenance-branch'

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

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

commit 209d82732caca731abaedb7c1dcc8887b6175bda
Merge: 3c319fdf6e 94acfec23f
Author: Dan Haywood <da...@haywood-associates.co.uk>
AuthorDate: Thu Oct 10 15:01:26 2024 +0200

    Merge branch 'maintenance-branch'

 antora/components/conguide/antora.yml              |   1 -
 .../conguide/modules/agilej/pages/about.adoc       |  56 --
 .../components/docs/modules/ROOT/pages/about.adoc  |   5 +-
 .../ROOT/partials/module-nav/components.adoc       |  10 +-
 .../ROOT/partials/module-nav/extensions.adoc       |   4 +
 .../pages/index/annotation/DomainObject.adoc       |  58 ++
 .../applib/pages/index/annotation/Property.adoc    |  21 +
 .../AcceptHeaderService_010-implementation.adoc    |   2 +-
 .../index/services/appfeat/ApplicationFeature.adoc |   2 +
 ...cationFeatureRepository_010-implementation.adoc |   3 +-
 .../ApplicationFeature_010-implementation.adoc}    |   4 +-
 .../services/ascii/AsciiIdentifierService.adoc     |   1 +
 ...AsciiIdentifierService_010-implementation.adoc} |   2 +-
 .../hooks/BookmarkService_010-implementation.adoc  |   6 +-
 .../BookmarkUiService_010-implementation.adoc      |   2 +-
 .../hooks/ClockService_010-implementation.adoc     |   3 +-
 .../columnorder/ColumnOrderTxtFileService.adoc     |   1 +
 ...umnOrderTxtFileService_010-implementation.adoc} |   4 +-
 .../CommandExecutorService_010-implementation.adoc |   3 +-
 .../conmap/ContentMappingServiceForCommandDto.adoc |   2 +
 .../ContentMappingService_010-implementation.adoc  |   4 +-
 .../hooks/EmailService_010-implementation.adoc     |   2 +-
 .../hooks/EventBusService_010-implementation.adoc  |   2 +-
 .../ExceptionRecognizer_010-implementation.adoc    |   3 +-
 .../hooks/FactoryService_010-implementation.adoc   |   2 +-
 .../GridLoaderService_010-implementation.adoc      |   3 +-
 .../grid/hooks/GridService_010-implementation.adoc |   4 +-
 .../GridSystemService_010-implementation.adoc      |  20 +-
 .../HealthCheckService_010-implementation.adoc     |  28 +-
 .../hooks/HintIdProvider_010-implementation.adoc   |   3 +
 .../hint/hooks/HintStore_010-implementation.adoc   |   3 +-
 ...HomePageResolverService_010-implementation.adoc |   2 +-
 .../index/services/i18n/LanguageProvider.adoc      |   4 +
 .../index/services/i18n/TranslationService.adoc    |  11 -
 .../LanguageProvider_010-implementation.adoc}      |   2 +-
 ...> LanguageProvider_020-examples-and-usage.adoc} |   0
 .../hooks/LocaleProvider_010-implementation.adoc   |  10 -
 .../TranslationService_010-implementation.adoc     |   3 +-
 .../TranslationsResolver_010-implementation.adoc   |   4 +-
 .../InteractionContext_010-implementation.adoc     |   2 +-
 .../iactnlayer/InteractionLayerTracker.adoc        |   2 +
 .../services/iactnlayer/InteractionService.adoc    |   4 +-
 ...nteractionLayerTracker_010-implementation.adoc} |   4 +-
 .../InteractionService_010-implementation.adoc}    |   4 +-
 .../hooks/ServiceInjector_010-implementation.adoc  |   2 +-
 .../jaxb/hooks/JaxbService_010-implementation.adoc |   2 +-
 .../keyvaluestore/KeyValueSessionStore.adoc        |   2 +
 .../KeyValueSessionStore_010-implementation.adoc}  |   4 +-
 .../hooks/LayoutService_010-implementation.adoc    |   2 +-
 .../hooks/DeepLinkService_010-implementation.adoc  |   2 +-
 .../services/locale/LocaleChoiceProvider.adoc      |   1 +
 .../LocaleChoiceProvider_010-implementation.adoc}  |   2 +-
 .../index/services/marshal/MarshallerService.adoc  |   2 +
 .../MarshallerService_010-implementation.adoc}     |  24 +-
 .../MenuBarsLoaderService_010-implementation.adoc  |   8 +-
 .../hooks/MenuBarsService_010-implementation.adoc  |   6 +-
 .../hooks/MessageService_010-implementation.adoc   |   2 +-
 .../MetaModelServiceMenu_010-implementation.adoc   |   2 +
 .../hooks/MetaModelService_010-implementation.adoc |   2 +-
 .../hooks/MetricsService_010-implementation.adoc   |   3 +-
 .../placeholder/PlaceholderRenderService.adoc      |   2 +
 ...aceholderRenderService_010-implementation.adoc} |   2 +-
 .../publishing/spi/PageRenderSubscriber.adoc       |   2 +
 .../CommandSubscriber_010-implementation.adoc      |  14 +-
 ...EntityChangesSubscriber_010-implementation.adoc |  11 +-
 ...ropertyChangeSubscriber_010-implementation.adoc |  14 +-
 ...rtyChangeSubscriber_020-examples-and-usage.adoc |   3 -
 .../ExecutionSubscriber_010-implementation.adoc    |  18 +-
 .../PageRenderSubscriber_010-implementation.adoc}  |  15 +-
 ...ueryResultsCacheControl_010-implementation.adoc |   2 +-
 .../QueryResultsCache_010-implementation.adoc      |   3 +-
 .../hooks/ServiceRegistry_010-implementation.adoc  |   4 +-
 .../RepositoryService_010-implementation.adoc      |   3 +-
 .../hooks/RoutingService_010-implementation.adoc   |   4 +-
 .../hooks/Scratchpad_010-implementation.adoc       |   4 +-
 .../services/search/CollectionSearchService.adoc   |  33 +
 ...ollectionSearchService_010-implementation.adoc} |   2 +-
 .../SessionLoggingService_010-implementation.adoc  |  16 +-
 .../index/services/sitemap/SitemapService.adoc     |   1 +
 .../index/services/sitemap/SitemapServiceMenu.adoc |   1 +
 .../SitemapServiceMenu_010-implementation.adoc}    |   6 +-
 .../hooks/SitemapService_010-implementation.adoc}  |   4 +-
 .../SudoServiceListener_010-implementation.adoc    |   1 +
 .../sudo/hooks/SudoService_010-implementation.adoc |   2 +-
 .../hooks/SwaggerService_010-implementation.adoc   |   2 +-
 ...TableColumnOrderService_010-implementation.adoc |  11 +-
 .../hooks/TitleService_010-implementation.adoc     |   2 +-
 .../UrlEncodingService_010-implementation.adoc     |   3 +-
 .../user/hooks/UserService_010-implementation.adoc |   3 +-
 ...mailNotificationService_010-implementation.adoc |   3 +-
 ...UserRegistrationService_010-implementation.adoc |   4 +-
 .../pages/index/services/userui/UserMenu_me.adoc}  |   8 +-
 .../hooks/WrapperFactory_010-implementation.adoc   |   5 +-
 .../wrapper/listeners/InteractionListener.adoc     |   2 +
 .../InteractionListener_010-implementation.adoc}   |   5 +-
 .../TransactionService_010-implementation.adoc     |   4 +-
 .../TransactionalProcessor_010-implementation.adoc |   3 +-
 .../xml/hooks/XmlService_010-implementation.adoc   |   2 +-
 .../XmlSnapshotService_010-implementation.adoc     |   2 +-
 .../appfeat/ApplicationFeatureDefault.adoc         |  23 +
 .../ApplicationFeatureRepositoryDefault.adoc       |  31 +
 .../ColumnOrderTxtFileServiceDefault.adoc}         |  10 +-
 .../services/command/CommandDtoFactory.adoc        |  66 --
 ...xceptionRecognizerForRecoverableException.adoc} |  10 +-
 .../services/grid/GridLoaderServiceDefault.adoc    |   2 +
 .../services/grid/GridServiceDefault.adoc}         |  34 +-
 .../bootstrap/GridMarshallerServiceBootstrap.adoc} |  13 +-
 .../bootstrap/GridSystemServiceBootstrap.adoc}     |  17 +-
 .../grid/spi/LayoutResourceLoaderDefault.adoc}     |  10 +-
 ...heckServiceForMetaModelValidationFailures.adoc} |  16 +-
 .../services/inject/ServiceInjectorDefault.adoc}   |  13 +-
 .../services/ixn/InteractionDtoFactory.adoc        |  55 --
 .../services/layout/LayoutServiceDefault.adoc}     |  15 +-
 .../metamodel/services/message/MessageBroker.adoc} |  16 +-
 .../metamodel/MetaModelServiceDefault.adoc         |  25 +
 .../objectlifecycle/ObjectLifecyclePublisher.adoc  | 109 +++
 .../services/registry/ServiceRegistryDefault.adoc} |  14 +-
 .../tablecol/TableColumnOrderServiceDefault.adoc   |   2 +-
 .../services/title/TitleServiceDefault.adoc}       |  11 +-
 .../bookmarks/BookmarkServiceDefault.adoc          |   2 +-
 .../command/CommandDtoFactoryDefault.adoc          |  18 -
 .../command/CommandExecutorServiceDefault.adoc     |   2 +
 .../command/SchemaValueMarshallerDefault.adoc      |   2 +
 .../runtimeservices/email/EmailServiceDefault.adoc |   4 +-
 .../eventbus/EventBusServiceSpring.adoc            |   2 +
 .../executor/MemberExecutorServiceDefault.adoc     |   2 +
 .../factory/FactoryServiceDefault.adoc             |   2 +
 .../homepage/HomePageResolverServiceDefault.adoc   |   4 +
 .../i18n/po/TranslationServicePo.adoc              |   2 +
 .../icons/ObjectIconServiceDefault.adoc            |   2 +
 .../runtimeservices/jaxb/JaxbServiceDefault.adoc   |   2 +
 .../locale/LanguageProviderDefault.adoc            |   2 +
 .../locale/LocaleChoiceProviderDefault.adoc        |   2 +
 .../menubars/MenuBarsLoaderServiceDefault.adoc     |   2 +
 .../MenuBarsMarshallerServiceBootstrap.adoc        |   2 +
 .../bootstrap/MenuBarsServiceBootstrap.adoc        |   2 +
 .../message/MessageServiceDefault.adoc             |   2 +
 .../PlaceholderRenderServiceDefault.adoc}          |  12 +-
 .../publish/CommandPublisherDefault.adoc           |   2 +
 .../publish/EntityChangesPublisherDefault.adoc     |   2 +
 .../EntityPropertyChangePublisherDefault.adoc      |   2 +
 .../publish/ExecutionPublisherDefault.adoc         |   2 +
 .../publish/ObjectLifecyclePublisherDefault.adoc   |   2 +
 .../ExceptionRecognizerServiceDefault.adoc}        |  11 +-
 .../routing/RoutingServiceDefault.adoc             |   2 +
 .../scratchpad/ScratchpadDefault.adoc              |   4 +
 .../session/InteractionIdGenerator.adoc            |   2 +
 .../session/InteractionIdGeneratorDefault.adoc     |   2 +
 .../session/InteractionServiceDefault.adoc         |   2 +-
 .../sitemap/SitemapServiceDefault.adoc             |   2 +
 .../transaction/TransactionServiceSpring.adoc      |   2 +
 .../UrlEncodingServiceWithCompression.adoc         |   2 +
 .../user/ImpersonateMenuAdvisorDefault.adoc        |   2 +-
 .../UserCurrentSessionTimeZoneHolderDefault.adoc   |   2 +
 .../userreg/EmailNotificationServiceDefault.adoc   |   2 +
 .../wrapper/WrapperFactoryDefault.adoc             |   2 +
 .../runtimeservices/xml/XmlServiceDefault.adoc     |   2 +
 .../xmlsnapshot/XmlSnapshotServiceDefault.adoc     |   2 +
 .../changetracking/EntityChangeTracker.adoc        |   2 +
 .../EntityPropertyChangePublisher.adoc             |   2 +
 .../EntityChangePublisher_010-implementation.adoc} |   5 +-
 .../EntityChangeTracker_010-implementation.adoc}   |   5 +-
 ...ropertyChangePublisher_010-implementation.adoc} |   5 +-
 .../ExecutionSubscriberForExecutionOutbox.adoc}    |   9 +-
 .../index/titlecache/applib/event/Cached.adoc      |  24 -
 .../repository/RepositoryServiceDefault.adoc       |  36 +
 .../applib/integration/CausewayEntityListener.adoc |   2 +-
 .../CausewayModulePersistenceQueryDslApplib.adoc}  |   6 +-
 .../index/querydsl/applib/query/DslQuery.adoc      |  51 ++
 .../auto/AutoCompleteGeneratedQueryService.adoc    |  60 ++
 .../applib/services/repo/QueryDslRepository.adoc   | 304 ++++++++
 .../services/support/DetachedQueryFactory.adoc     |  73 ++
 .../applib/services/support/QueryDslSupport.adoc   |  96 +++
 .../querydsl/applib/util/CaseSensitivity.adoc}     |  13 +-
 .../index/querydsl/applib/util/DslExpressions.adoc |  47 ++
 .../index/querydsl/applib/util/Wildcards.adoc}     |  13 +-
 ...sewayModulePersistenceQueryDslIntegration.adoc} |   6 +-
 .../jdo/CausewayModulePersistenceQueryDslJdo.adoc} |   6 +-
 .../jpa/CausewayModulePersistenceQueryDslJpa.adoc} |   6 +-
 ...ausewayModulePersistenceQueryDslMetamodel.adoc} |   6 +-
 .../QueryResultsCacheControlForFixtures.adoc}      |  12 +-
 .../services/i8n/TranslationsResolverDefault.adoc} |  13 +-
 .../userprof/UserProfileUiServiceDefault.adoc}     |  10 +-
 .../acceptheader/AcceptHeaderServiceForRest.adoc   |   1 +
 .../service/swagger/SwaggerServiceDefault.adoc}    |  26 +-
 .../viewer/services/BookmarkUiServiceWicket.adoc}  |  13 +-
 .../viewer/services/DeepLinkServiceWicket.adoc}    |  13 +-
 .../services/HintStoreUsingWicketSession.adoc}     |  14 +-
 .../partials/_presentation-layer-api.adoc          |   1 -
 .../modules/applib-svc/partials/module-nav.adoc    |  18 +-
 .../modules/ROOT/pages/2024/2.1.0/relnotes.adoc    |  14 +
 .../2.0.0-M1/mignotes/updated-annotations.adoc     |   5 +-
 antora/playbooks/site.NEXT.yml                     |   7 +-
 antora/playbooks/site.yml                          |   9 +-
 .../causeway/applib/annotation/DomainObject.java   |  89 +++
 .../causeway/applib/annotation/Property.java       |  74 ++
 .../conmap/ContentMappingServiceForCommandDto.java |   3 +-
 .../services/iactnlayer/InteractionService.java    |   2 +-
 .../causeway/applib/services/userui/UserMenu.java  |   3 +
 bom/pom.xml                                        |  80 ++-
 core/adoc/modules/_overview/pages/about.adoc       | 371 ++++++++--
 .../pages/sections/causeway.value-types.adoc       |  58 +-
 core/metamodel/src/main/java/module-info.java      |   3 +-
 .../metamodel/CausewayModuleCoreMetamodel.java     |   2 +-
 .../appfeat/ApplicationFeatureDefault.java         |   2 +
 .../ApplicationFeatureRepositoryDefault.java       |   4 +
 .../classsubstitutor/ClassSubstitutorDefault.java  |   1 +
 .../ColumnOrderTxtFileServiceDefault.java          |   4 +-
 .../services/command/CommandDtoFactory.java        |   3 +-
 .../services/deadlock/DeadlockRecognizer.java      |   3 +
 ...ExceptionRecognizerForRecoverableException.java |   4 +-
 .../services/grid/GridLoaderServiceDefault.java    |   4 +-
 .../services/grid/GridServiceDefault.java          |   5 +
 .../bootstrap/GridMarshallerServiceBootstrap.java  |   5 +-
 .../grid/bootstrap/GridSystemServiceBootstrap.java |   6 +
 .../grid/spi/LayoutResourceLoaderDefault.java      |   4 +-
 .../idstringifier/IdStringifierLookupService.java  |   2 +
 .../{ => inject}/ServiceInjectorDefault.java       |   6 +-
 .../services/ixn/InteractionDtoFactory.java        |   3 +-
 .../services/layout/LayoutServiceDefault.java      |   5 +
 .../metamodel/services/message/MessageBroker.java  |   5 +
 .../services/metamodel/MetaModelExportSupport.java |   2 +-
 .../metamodel/MetaModelServiceDefault.java         |   5 +
 .../objectlifecycle/ObjectLifecyclePublisher.java  |   2 +-
 .../services/publishing/CommandPublisher.java      |   1 +
 .../services/registry/ServiceRegistryDefault.java  |   5 +
 .../tablecol/TableColumnOrderServiceDefault.java   |   6 +-
 .../TableColumnOrderServiceUsingTxtFile.java       |   2 +
 .../services/title/TitleServiceDefault.java        |   5 +
 .../ServiceInjectorDefaultTest_usingFields.java    |   5 +-
 ...InjectorDefaultTest_validateServices_happy.java |   1 +
 core/pom.xml                                       |   1 +
 .../bookmarks/BookmarkServiceDefault.java          |   2 +-
 .../command/CommandDtoFactoryDefault.java          |   6 +-
 .../command/CommandExecutorServiceDefault.java     |   1 +
 .../command/SchemaValueMarshallerDefault.java      |   2 +
 .../runtimeservices/email/EmailServiceDefault.java |   5 +-
 .../eventbus/EventBusServiceSpring.java            |   2 +
 .../executor/MemberExecutorServiceDefault.java     |   2 +
 .../factory/FactoryServiceDefault.java             |   2 +
 .../homepage/HomePageResolverServiceDefault.java   |   8 +
 .../i18n/po/TranslationServicePo.java              |   2 +-
 .../icons/ObjectIconServiceDefault.java            |   2 +-
 .../interaction/InteractionDtoFactoryDefault.java  |   8 +-
 .../runtimeservices/jaxb/JaxbServiceDefault.java   |   4 +-
 .../locale/LanguageProviderDefault.java            |   1 +
 .../locale/LocaleChoiceProviderDefault.java        |   1 +
 .../menubars/MenuBarsLoaderServiceDefault.java     |   1 +
 .../MenuBarsMarshallerServiceBootstrap.java        |   2 +
 .../bootstrap/MenuBarsServiceBootstrap.java        |   2 +
 .../message/MessageServiceDefault.java             |   1 +
 .../PlaceholderRenderServiceDefault.java           |   4 +-
 .../publish/CommandPublisherDefault.java           |   1 +
 .../publish/EntityChangesPublisherDefault.java     |   1 +
 .../EntityPropertyChangePublisherDefault.java      |   1 +
 .../publish/ExecutionPublisherDefault.java         |   1 +
 .../publish/LifecycleCallbackNotifier.java         |   1 +
 .../publish/ObjectLifecyclePublisherDefault.java   |   5 +-
 .../ExceptionRecognizerServiceDefault.java         |   4 +-
 .../routing/RoutingServiceDefault.java             |   4 +
 .../scratchpad/ScratchpadDefault.java              |   5 +
 .../serializing/SerializingAdapterDefault.java     |   2 +
 .../session/InteractionIdGenerator.java            |   4 +
 .../session/InteractionIdGeneratorDefault.java     |   2 +
 .../session/InteractionServiceDefault.java         |   2 +-
 .../sitemap/SitemapServiceDefault.java             |   3 +-
 .../transaction/TransactionServiceSpring.java      |   6 +-
 .../UrlEncodingServiceWithCompression.java         |   3 +
 .../user/ImpersonateMenuAdvisorDefault.java        |   2 +-
 .../UserCurrentSessionTimeZoneHolderDefault.java   |   1 +
 .../userreg/EmailNotificationServiceDefault.java   |   1 +
 .../wrapper/WrapperFactoryDefault.java             |   1 +
 .../runtimeservices/xml/XmlServiceDefault.java     |   2 +-
 .../xmlsnapshot/XmlSnapshotServiceDefault.java     |   1 +
 ...HealthIndicatorUsingHealthCheckServiceTest.java |  18 +
 .../ExecutionSubscriberForExecutionOutbox.java     |   2 -
 .../setup-and-configure-mavendeps-webapp.adoc      |   1 +
 .../deadlock/DeadlockRecognizerDefault.java        |  19 +-
 .../repository/RepositoryServiceDefault.java       |  10 +-
 persistence/jdo/adoc/modules/ROOT/pages/about.adoc |   2 +-
 persistence/jpa/adoc/modules/ROOT/pages/about.adoc |   2 +-
 persistence/jpa/applib/pom.xml                     |  95 ++-
 .../main/{java => java-jigsaw}/module-info.java    |   2 +
 .../jpa/applib/types/BlobJpaEmbeddable.java        |   1 -
 .../jpa/applib/types/QBlobJpaEmbeddable.java       |  73 ++
 .../jpa/applib/types/QClobJpaEmbeddable.java       |  71 ++
 .../querydsl}/adoc/antora.yml                      |   7 +-
 .../querydsl/adoc/modules/ROOT}/nav.adoc           |   2 +-
 .../querydsl/adoc/modules/ROOT/pages/about.adoc    |  35 +
 .../ROOT/pages/autocomplete-annotations.adoc       |  96 +++
 .../adoc/modules/ROOT/pages/example-queries.adoc   | 119 ++++
 .../ROOT/pages/setup-and-configuration.adoc        |  40 ++
 .../adoc/modules/ROOT/partials/component-nav.adoc  |   2 +
 .../adoc/modules/ROOT/partials/module-nav.adoc     |   3 +
 ...nd-configuration-for-persistence-mechanism.adoc | 104 +++
 persistence/{jpa => querydsl}/applib/pom.xml       |  46 +-
 .../applib/src/main/java/module-info.java          |  26 +-
 .../CausewayModulePersistenceQueryDslApplib.java   |   9 +-
 .../querydsl/applib/query/DslQuery.java            |  80 +++
 .../auto/AutoCompleteGeneratedQueryService.java    |  94 +++
 .../applib/services/repo/QueryDslRepository.java   | 767 +++++++++++++++++++++
 .../services/support/DetachedQueryFactory.java     |  94 +++
 .../applib/services/support/QueryDslSupport.java   | 103 +++
 .../querydsl/applib/util/CaseSensitivity.java      |  22 +-
 .../querydsl/applib/util/DslExpressions.java       | 185 +++++
 .../querydsl/applib/util/Wildcards.java            |  81 +++
 .../WildcardRegexUtil_toAnsiSqlWildcard_Test.java  |  52 ++
 .../WildcardRegexUtil_wildcardToRegex_Test.java    |  57 ++
 persistence/querydsl/integration/pom.xml           |  65 ++
 .../integration/src/main/java/module-info.java     |  27 +-
 ...usewayModulePersistenceQueryDslIntegration.java |  30 +-
 .../AutoCompleteGeneratedQueryServiceImpl.java     | 135 ++++
 persistence/{jpa/applib => querydsl/jdo}/pom.xml   |  43 +-
 .../querydsl/jdo/src/main/java/module-info.java    |  32 +-
 .../jdo/CausewayModulePersistenceQueryDslJdo.java  |  34 +-
 .../querydsl/jdo/query/DslQueryJdo.java            | 328 +++++++++
 .../services/support/DetachedQueryFactoryJdo.java  |  26 +-
 .../jdo/services/support/QueryDslSupportJdo.java   | 122 ++++
 persistence/{jpa/applib => querydsl/jpa}/pom.xml   |  40 +-
 .../querydsl/jpa/src/main/java/module-info.java    |  28 +-
 .../jpa/CausewayModulePersistenceQueryDslJpa.java  |  46 ++
 .../services/query/DetachedQueryFactoryJpa.java    |  25 +-
 .../querydsl/jpa/services/support/DslQueryJpa.java | 273 ++++++++
 .../jpa/services/support/QueryDslSupportJpa.java   | 108 +++
 persistence/querydsl/metamodel/pom.xml             |  61 ++
 .../metamodel}/src/main/java/module-info.java      |  21 +-
 ...CausewayModulePersistenceQueryDslMetamodel.java |  31 +-
 .../facets/AutoCompleteGeneratedDslQuery.java      | 205 ++++++
 .../AutoCompleteGeneratedQueryFacetFactory.java    | 149 ++++
 .../facets/AutoCompleteUsingQueryDslFacet.java     | 187 +++++
 ...AutoCompleteGeneratedQueryMetaModelRefiner.java |  22 +-
 persistence/querydsl/pom.xml                       |  43 ++
 persistence/querydsl/testsupport/pom.xml           |  65 ++
 .../querydsl/testsupport/PredicatePrettifier.java  | 265 +++++++
 .../QueryResultsCacheControlForFixtures.java       |   7 +-
 .../services/i8n/TranslationsResolverDefault.java  |   8 +-
 .../userprof/UserProfileUiServiceDefault.java      |   5 +
 viewers/graphql/adoc/modules/ROOT/pages/about.adoc |   2 +-
 ...iiIdentifierServiceSupportingGraphqlViewer.java |   5 +
 viewers/restfulobjects/adoc/antora.yml             |   1 -
 .../adoc/modules/ROOT/pages/about.adoc             |   2 +-
 .../acceptheader/AcceptHeaderServiceForRest.java   |   5 +-
 .../service/swagger/SwaggerServiceDefault.java     |  13 +-
 viewers/wicket/adoc/modules/ROOT/pages/about.adoc  |   2 +-
 .../ROOT/pages/setup-and-configuration.adoc        |  31 +-
 .../viewer/services/BookmarkUiServiceWicket.java   |  16 +-
 .../viewer/services/DeepLinkServiceWicket.java     |   4 +-
 .../services/HintStoreUsingWicketSession.java      |   5 +
 348 files changed, 6966 insertions(+), 920 deletions(-)

diff --cc antora/components/refguide-index/modules/viewer/pages/index/wicket/viewer/services/DeepLinkServiceWicket.adoc
index a6183d3823,bc625d058a..afb48025d2
--- a/antora/components/refguide-index/modules/viewer/pages/index/wicket/viewer/services/DeepLinkServiceWicket.adoc
+++ b/antora/components/refguide-index/modules/viewer/pages/index/wicket/viewer/services/DeepLinkServiceWicket.adoc
@@@ -1,10 -1,15 +1,21 @@@
 -= DeepLinkServiceWicket
 +[[r2.1.0]]
 += 2.1.0
 +
++== DeepLinkServiceWicket
++
  :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 a [...]
 +:page-partial:
  
+ An implementation of xref:refguide:applib:index/services/linking/DeepLinkService.adoc[DeepLinkService] for Wicket Viewer.
+ 
+ == API
  
- v2.1.0 and v3.1.0 are being released at the same time, and are broadly equivalent.
+ [source,java]
+ .DeepLinkServiceWicket.java
+ ----
+ class DeepLinkServiceWicket {
+   URI deepLinkFor(Object domainObject)
+ }
+ ----
  
 +include::partial$2024/2.1.0/_relnotes.adoc[]
diff --cc antora/components/relnotes/modules/ROOT/pages/2024/2.1.0/relnotes.adoc
index a6183d3823,bc625d058a..db105e9173
--- a/antora/components/relnotes/modules/ROOT/pages/2024/2.1.0/relnotes.adoc
+++ b/antora/components/relnotes/modules/ROOT/pages/2024/2.1.0/relnotes.adoc
@@@ -1,10 -1,15 +1,24 @@@
 -= DeepLinkServiceWicket
 +[[r2.1.0]]
 += 2.1.0
 +
++== DeepLinkServiceWicket
++
  :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 a [...]
 +:page-partial:
 +
 +
 +v2.1.0 and v3.1.0 are being released at the same time, and are broadly equivalent.
  
+ An implementation of xref:refguide:applib:index/services/linking/DeepLinkService.adoc[DeepLinkService] for Wicket Viewer.
+ 
+ == API
+ 
+ [source,java]
+ .DeepLinkServiceWicket.java
+ ----
+ class DeepLinkServiceWicket {
+   URI deepLinkFor(Object domainObject)
+ }
+ ----
+ 
 +include::partial$2024/2.1.0/_relnotes.adoc[]
diff --cc antora/playbooks/site.yml
index 5400a05097,e642df27c1..0aaed5fe19
--- a/antora/playbooks/site.yml
+++ b/antora/playbooks/site.yml
@@@ -26,7 -26,7 +26,7 @@@ urls
  content:
    sources:
  
--    # antora
++# antora
      - url: .
        start_path: antora/components/docs # docs
        branches: HEAD
diff --cc bom/pom.xml
index fcc4bd3d9c,dd0ab615cf..0dc7009b5f
--- a/bom/pom.xml
+++ b/bom/pom.xml
@@@ -167,9 -168,10 +168,10 @@@ It is therefore a copy of org.apache:ap
          <ognl.version>3.4.3</ognl.version>
  
          <picocontainer.version>2.15</picocontainer.version>
 -        <poi.version>5.2.5</poi.version>
 +        <poi.version>5.3.0</poi.version>
  
          <quartz-scheduler.version>2.3.2</quartz-scheduler.version>
+         <querydsl.version>5.1.0</querydsl.version>
  
          <resteasy-spring-boot-starter.version>5.0.0.Final</resteasy-spring-boot-starter.version>
          <resteasy.version>5.0.0.Final</resteasy.version> <!-- keep in sync with property defined in resteasy4-spring-boot-starter -->
diff --cc core/adoc/modules/_overview/pages/about.adoc
index b3a342d1e9,86fc2b84d5..66224980e8
--- a/core/adoc/modules/_overview/pages/about.adoc
+++ b/core/adoc/modules/_overview/pages/about.adoc
@@@ -44,7 -44,7 +44,7 @@@ rectangle "App\n<size:10>[Software Syst
  .Projects/Modules (App)
  [cols="3a,5a", options="header"]
  |===
--|Coordinates |Description 
++|Coordinates |Description
  
  |Apache Causeway Starter Parent
  [source,yaml]
@@@ -107,7 -107,7 +107,7 @@@ Mavendeps.ApacheCausewayMavenDeps .[#70
  .Projects/Modules (Mavendeps)
  [cols="3a,5a", options="header"]
  |===
--|Coordinates |Description 
++|Coordinates |Description
  
  |Apache Causeway Maven Deps
  [source,yaml]
@@@ -331,7 -331,7 +331,7 @@@ Testing.ApacheCausewayTstUnitTestSuppor
  .Projects/Modules (Testing)
  [cols="3a,5a", options="header"]
  |===
--|Coordinates |Description 
++|Coordinates |Description
  
  |Apache Causeway Testing
  [source,yaml]
@@@ -733,7 -733,7 +733,7 @@@ Root.ApacheCausewayAggregator .[#707070
  .Projects/Modules (Root)
  [cols="3a,5a", options="header"]
  |===
--|Coordinates |Description 
++|Coordinates |Description
  
  |Apache Causeway (Aggregator)
  [source,yaml]
@@@ -824,7 -824,7 +824,7 @@@ rectangle "Commons\n<size:10>[Software 
  .Projects/Modules (Commons)
  [cols="3a,5a", options="header"]
  |===
--|Coordinates |Description 
++|Coordinates |Description
  
  |Apache Causeway Commons
  [source,yaml]
@@@ -1013,7 -1013,7 +1013,7 @@@ Core.ApacheCausewayCore .[#707070,thick
  .Projects/Modules (Core)
  [cols="3a,5a", options="header"]
  |===
--|Coordinates |Description 
++|Coordinates |Description
  
  |Apache Causeway Core
  [source,yaml]
@@@ -1075,7 -1075,7 +1075,7 @@@ org.apache.causeway.core:causeway-schem
  
  .Document Index Entries
  ****
- xref:refguide:applib:index/CausewayModuleApplib.adoc[CausewayModuleApplib], xref:refguide:applib:index/CausewayModuleApplibChangeAndExecutionLoggers.adoc[CausewayModuleApplibChangeAndExecutionLoggers], xref:refguide:applib:index/CausewayModuleApplibMixins.adoc[CausewayModuleApplibMixins], xref:refguide:applib:index/Identifier.adoc[Identifier], xref:refguide:applib:index/ViewModel.adoc[ViewModel], xref:refguide:applib:index/annotation/Action.adoc[Action], xref:refguide:applib:index/annot [...]
 -xref:refguide:applib:index/CausewayModuleApplib.adoc[CausewayModuleApplib], xref:refguide:applib:index/CausewayModuleApplibChangeAndExecutionLoggers.adoc[CausewayModuleApplibChangeAndExecutionLoggers], xref:refguide:applib:index/CausewayModuleApplibMixins.adoc[CausewayModuleApplibMixins], xref:refguide:applib:index/Identifier.adoc[Identifier], xref:refguide:applib:index/ViewModel.adoc[ViewModel], xref:refguide:applib:index/annotation/Action.adoc[Action], xref:refguide:applib:index/annot [...]
++xref:refguide:applib:index/CausewayModuleApplib.adoc[CausewayModuleApplib], xref:refguide:applib:index/CausewayModuleApplibChangeAndExecutionLoggers.adoc[CausewayModuleApplibChangeAndExecutionLoggers], xref:refguide:applib:index/CausewayModuleApplibMixins.adoc[CausewayModuleApplibMixins], xref:refguide:applib:index/Identifier.adoc[Identifier], xref:refguide:applib:index/ViewModel.adoc[ViewModel], xref:refguide:applib:index/annotation/Action.adoc[Action], xref:refguide:applib:index/annot [...]
  ****
  
  |Apache Causeway Core - Code Gen (ByteBuddy)
@@@ -1490,6 -1491,258 +1491,258 @@@ xref:refguide:schema:index/CausewayModu
  
  == Persistence
  
+ [plantuml,Persistence,svg]
+ ----
+ @startuml
+ set separator none
+ title Persistence - Containers
+ 
+ left to right direction
+ 
+ skinparam {
+   arrowFontSize 10
+   defaultTextAlignment center
+   wrapWidth 200
+   maxMessageSize 100
+ }
+ 
+ hide stereotype
+ 
+ skinparam rectangle<<Persistence.ApacheCausewayPersistenceQueryDSL>> {
+   BackgroundColor #438dd5
+   FontColor #fffffe
+   BorderColor #2e6295
+   shadowing false
+ }
+ skinparam rectangle<<Persistence.ApacheCausewayPersistencequerydslapplib>> {
+   BackgroundColor #438dd5
+   FontColor #fffffe
+   BorderColor #2e6295
+   shadowing false
+ }
+ skinparam rectangle<<Persistence.ApacheCausewayPersistencequerydslintegration>> {
+   BackgroundColor #438dd5
+   FontColor #fffffe
+   BorderColor #2e6295
+   shadowing false
+ }
+ skinparam rectangle<<Persistence.ApacheCausewayPersistencequerydsljdo>> {
+   BackgroundColor #438dd5
+   FontColor #fffffe
+   BorderColor #2e6295
+   shadowing false
+ }
+ skinparam rectangle<<Persistence.ApacheCausewayPersistencequerydsljpa>> {
+   BackgroundColor #438dd5
+   FontColor #fffffe
+   BorderColor #2e6295
+   shadowing false
+ }
+ skinparam rectangle<<Persistence.ApacheCausewayPersistencequerydslmetamodel>> {
+   BackgroundColor #438dd5
+   FontColor #fffffe
+   BorderColor #2e6295
+   shadowing false
+ }
+ skinparam rectangle<<Persistence.ApacheCausewayPersistencequerydsltestsupport>> {
+   BackgroundColor #438dd5
+   FontColor #fffffe
+   BorderColor #2e6295
+   shadowing false
+ }
+ skinparam rectangle<<Persistence>> {
+   BorderColor #9a9a9a
+   FontColor #9a9a9a
+   shadowing false
+ }
+ 
+ rectangle "Persistence\n<size:10>[Software System]</size>" <<Persistence>> {
+   rectangle "==Apache Causeway Persistence - QueryDSL\n<size:10>[Container: packaging: pom]</size>" <<Persistence.ApacheCausewayPersistenceQueryDSL>> as Persistence.ApacheCausewayPersistenceQueryDSL
+   rectangle "==Apache Causeway Persistence - querydsl (applib)\n<size:10>[Container: packaging: jar]</size>" <<Persistence.ApacheCausewayPersistencequerydslapplib>> as Persistence.ApacheCausewayPersistencequerydslapplib
+   rectangle "==Apache Causeway Persistence - querydsl (integration)\n<size:10>[Container: packaging: jar]</size>" <<Persistence.ApacheCausewayPersistencequerydslintegration>> as Persistence.ApacheCausewayPersistencequerydslintegration
+   rectangle "==Apache Causeway Persistence - querydsl (jdo)\n<size:10>[Container: packaging: jar]</size>" <<Persistence.ApacheCausewayPersistencequerydsljdo>> as Persistence.ApacheCausewayPersistencequerydsljdo
+   rectangle "==Apache Causeway Persistence - querydsl (jpa)\n<size:10>[Container: packaging: jar]</size>" <<Persistence.ApacheCausewayPersistencequerydsljpa>> as Persistence.ApacheCausewayPersistencequerydsljpa
+   rectangle "==Apache Causeway Persistence - querydsl (metamodel)\n<size:10>[Container: packaging: jar]</size>" <<Persistence.ApacheCausewayPersistencequerydslmetamodel>> as Persistence.ApacheCausewayPersistencequerydslmetamodel
+   rectangle "==Apache Causeway Persistence - querydsl (testsupport)\n<size:10>[Container: packaging: jar]</size>" <<Persistence.ApacheCausewayPersistencequerydsltestsupport>> as Persistence.ApacheCausewayPersistencequerydsltestsupport
+ }
+ 
+ Persistence.ApacheCausewayPersistenceQueryDSL .[#707070,thickness=2].> Persistence.ApacheCausewayPersistencequerydslintegration : "<color:#707070>"
+ Persistence.ApacheCausewayPersistenceQueryDSL .[#707070,thickness=2].> Persistence.ApacheCausewayPersistencequerydsljdo : "<color:#707070>"
+ Persistence.ApacheCausewayPersistenceQueryDSL .[#707070,thickness=2].> Persistence.ApacheCausewayPersistencequerydsljpa : "<color:#707070>"
+ Persistence.ApacheCausewayPersistenceQueryDSL .[#707070,thickness=2].> Persistence.ApacheCausewayPersistencequerydslmetamodel : "<color:#707070>"
+ Persistence.ApacheCausewayPersistenceQueryDSL .[#707070,thickness=2].> Persistence.ApacheCausewayPersistencequerydsltestsupport : "<color:#707070>"
+ Persistence.ApacheCausewayPersistenceQueryDSL .[#707070,thickness=2].> Persistence.ApacheCausewayPersistencequerydslapplib : "<color:#707070>"
+ @enduml
+ ----
+ 
+ .Projects/Modules (Persistence)
+ [cols="3a,5a", options="header"]
+ |===
 -|Coordinates |Description 
++|Coordinates |Description
+ 
+ |Apache Causeway Persistence - QueryDSL
+ [source,yaml]
+ ----
+ Group: org.apache.causeway.persistence
+ Artifact: causeway-persistence-querydsl
+ Type: pom
+ Directory: /persistence/querydsl
+ ----
+ |Apache Causeway QueryDSL integration
+ 
+ |Apache Causeway Persistence - querydsl (applib)
+ [source,yaml]
+ ----
+ Group: org.apache.causeway.persistence
+ Artifact: causeway-persistence-querydsl-applib
+ Type: jar
+ Directory: /persistence/querydsl/applib
+ ----
+ |Supplementary applib for querydsl support
+ 
+ .Dependencies
+ ****
+ com.querydsl:querydsl-apt:jar:<managed> +
+ com.querydsl:querydsl-core:jar:<managed> +
+ org.apache.causeway.commons:causeway-commons:jar:<managed> +
+ org.apache.causeway.core:causeway-applib:jar:<managed> +
+ org.apache.causeway.core:causeway-core-internaltestsupport:jar:<managed> +
+ org.apache.causeway.core:causeway-core-metamodel:jar:<managed> +
+ org.datanucleus:javax.jdo:jar:<managed> +
+ ****
+ 
+ .Document Index Entries
+ ****
+ xref:refguide:persistence:index/querydsl/applib/CausewayModulePersistenceQueryDslApplib.adoc[CausewayModulePersistenceQueryDslApplib], xref:refguide:persistence:index/querydsl/applib/query/DslQuery.adoc[DslQuery], xref:refguide:persistence:index/querydsl/applib/services/auto/AutoCompleteGeneratedQueryService.adoc[AutoCompleteGeneratedQueryService], xref:refguide:persistence:index/querydsl/applib/services/repo/QueryDslRepository.adoc[QueryDslRepository], xref:refguide:persistence:index/q [...]
+ ****
+ 
+ |Apache Causeway Persistence - querydsl (integration)
+ [source,yaml]
+ ----
+ Group: org.apache.causeway.persistence
+ Artifact: causeway-persistence-querydsl-integration
+ Type: jar
+ Directory: /persistence/querydsl/integration
+ ----
+ |querydsl integration Facets / Programming Model
+ 
+ .Components
+ ****
+ o.a.i.persistence.querydsl.integration.services.AutoCompleteGeneratedQueryServiceImpl +
+ ****
+ 
+ .Dependencies
+ ****
+ org.apache.causeway.core:causeway-core-internaltestsupport:jar:<managed> +
+ org.apache.causeway.persistence:causeway-persistence-querydsl-applib:jar:<managed> +
+ org.apache.causeway.persistence:causeway-persistence-querydsl-metamodel:jar:<managed> +
+ ****
+ 
+ .Document Index Entries
+ ****
+ xref:refguide:persistence:index/querydsl/integration/CausewayModulePersistenceQueryDslIntegration.adoc[CausewayModulePersistenceQueryDslIntegration]
+ ****
+ 
+ |Apache Causeway Persistence - querydsl (jdo)
+ [source,yaml]
+ ----
+ Group: org.apache.causeway.persistence
+ Artifact: causeway-persistence-querydsl-jdo
+ Type: jar
+ Directory: /persistence/querydsl/jdo
+ ----
+ |Supplementary jdo for querydsl support
+ 
+ .Components
+ ****
+ o.a.i.persistence.querydsl.jdo.services.support.DetachedQueryFactoryJdo +
+ o.a.i.persistence.querydsl.jdo.services.support.QueryDslSupportJdo +
+ ****
+ 
+ .Dependencies
+ ****
+ com.querydsl:querydsl-jdo:jar:<managed> +
+ org.apache.causeway.persistence:causeway-persistence-jdo-applib:jar:<managed> +
+ org.apache.causeway.persistence:causeway-persistence-querydsl-integration:jar:<managed> +
+ ****
+ 
+ .Document Index Entries
+ ****
+ xref:refguide:persistence:index/querydsl/jdo/CausewayModulePersistenceQueryDslJdo.adoc[CausewayModulePersistenceQueryDslJdo]
+ ****
+ 
+ |Apache Causeway Persistence - querydsl (jpa)
+ [source,yaml]
+ ----
+ Group: org.apache.causeway.persistence
+ Artifact: causeway-persistence-querydsl-jpa
+ Type: jar
+ Directory: /persistence/querydsl/jpa
+ ----
+ |Supplementary jpa for querydsl support
+ 
+ .Components
+ ****
+ o.a.i.persistence.querydsl.jpa.services.query.DetachedQueryFactoryJpa +
+ o.a.i.persistence.querydsl.jpa.services.support.QueryDslSupportJpa +
+ ****
+ 
+ .Dependencies
+ ****
+ com.querydsl:querydsl-jpa:jar:<managed> +
+ org.apache.causeway.persistence:causeway-persistence-jpa-applib:jar:<managed> +
+ org.apache.causeway.persistence:causeway-persistence-querydsl-integration:jar:<managed> +
+ ****
+ 
+ .Document Index Entries
+ ****
+ xref:refguide:persistence:index/querydsl/jpa/CausewayModulePersistenceQueryDslJpa.adoc[CausewayModulePersistenceQueryDslJpa]
+ ****
+ 
+ |Apache Causeway Persistence - querydsl (metamodel)
+ [source,yaml]
+ ----
+ Group: org.apache.causeway.persistence
+ Artifact: causeway-persistence-querydsl-metamodel
+ Type: jar
+ Directory: /persistence/querydsl/metamodel
+ ----
+ |querydsl Metamodel Facets / Programming Model
+ 
+ .Components
+ ****
+ o.a.i.persistence.querydsl.metamodel.refiner.AutoCompleteGeneratedQueryMetaModelRefiner +
+ ****
+ 
+ .Dependencies
+ ****
+ org.apache.causeway.core:causeway-core-internaltestsupport:jar:<managed> +
+ org.apache.causeway.persistence:causeway-persistence-querydsl-applib:jar:<managed> +
+ ****
+ 
+ .Document Index Entries
+ ****
+ xref:refguide:persistence:index/querydsl/metamodel/CausewayModulePersistenceQueryDslMetamodel.adoc[CausewayModulePersistenceQueryDslMetamodel]
+ ****
+ 
+ |Apache Causeway Persistence - querydsl (testsupport)
+ [source,yaml]
+ ----
+ Group: org.apache.causeway.persistence
+ Artifact: causeway-persistence-querydsl-testsupport
+ Type: jar
+ Directory: /persistence/querydsl/testsupport
+ ----
+ |QueryDSL Test Support
+ 
+ .Dependencies
+ ****
+ com.querydsl:querydsl-apt:jar:<managed> +
+ org.apache.causeway.core:causeway-core-internaltestsupport:jar:<managed> +
+ org.apache.causeway.persistence:causeway-persistence-querydsl-applib:jar:<managed> +
+ ****
+ |===
+ 
  === Persistence Commons
  
  [plantuml,Persistence Commons,svg]
@@@ -1531,7 -1784,7 +1784,7 @@@ rectangle "Persistence Commons\n<size:1
  .Projects/Modules (Persistence Commons)
  [cols="3a,5a", options="header"]
  |===
--|Coordinates |Description 
++|Coordinates |Description
  
  |Apache Causeway Persistence - Commons
  [source,yaml]
@@@ -1656,7 -1909,7 +1909,7 @@@ JDO.ApacheCausewayPersistenceJDO .[#707
  .Projects/Modules (JDO)
  [cols="3a,5a", options="header"]
  |===
--|Coordinates |Description 
++|Coordinates |Description
  
  |Apache Causeway Persistence - JDO
  [source,yaml]
@@@ -1915,7 -2168,7 +2168,7 @@@ JPA.ApacheCausewayPersistenceJPA .[#707
  .Projects/Modules (JPA)
  [cols="3a,5a", options="header"]
  |===
--|Coordinates |Description 
++|Coordinates |Description
  
  |Apache Causeway Persistence - JPA
  [source,yaml]
@@@ -2068,7 -2322,7 +2322,7 @@@ rectangle "Security\n<size:10>[Softwar
  .Projects/Modules (Security)
  [cols="3a,5a", options="header"]
  |===
--|Coordinates |Description 
++|Coordinates |Description
  
  |Apache Causeway Security - Simple
  [source,yaml]
@@@ -2139,7 -2393,7 +2393,7 @@@ rectangle "Bypass\n<size:10>[Software S
  .Projects/Modules (Bypass)
  [cols="3a,5a", options="header"]
  |===
--|Coordinates |Description 
++|Coordinates |Description
  
  |Apache Causeway Security - Bypass
  [source,yaml]
@@@ -2207,7 -2461,7 +2461,7 @@@ rectangle "Keycloak\n<size:10>[Softwar
  .Projects/Modules (Keycloak)
  [cols="3a,5a", options="header"]
  |===
--|Coordinates |Description 
++|Coordinates |Description
  
  |Apache Causeway Security - Keycloak
  [source,yaml]
@@@ -2284,7 -2538,7 +2538,7 @@@ rectangle "Shiro\n<size:10>[Software Sy
  .Projects/Modules (Shiro)
  [cols="3a,5a", options="header"]
  |===
--|Coordinates |Description 
++|Coordinates |Description
  
  |Apache Causeway Security - Shiro
  [source,yaml]
@@@ -2360,7 -2614,7 +2614,7 @@@ rectangle "Spring\n<size:10>[Software S
  .Projects/Modules (Spring)
  [cols="3a,5a", options="header"]
  |===
--|Coordinates |Description 
++|Coordinates |Description
  
  |Apache Causeway Security - Spring
  [source,yaml]
@@@ -2470,7 -2724,7 +2724,7 @@@ ViewerCommons.ApacheCausewayViewerCommo
  .Projects/Modules (Viewer Commons)
  [cols="3a,5a", options="header"]
  |===
--|Coordinates |Description 
++|Coordinates |Description
  
  |Apache Causeway Viewer - Commons
  [source,yaml]
@@@ -2644,7 -2903,7 +2903,7 @@@ GraphQL.ApacheCausewayViewerGraphQL .[#
  .Projects/Modules (GraphQL)
  [cols="3a,5a", options="header"]
  |===
--|Coordinates |Description 
++|Coordinates |Description
  
  |Apache Causeway Viewer - GraphQL
  [source,yaml]
@@@ -2919,7 -3178,7 +3178,7 @@@ RestfulObjects.ApacheCausewayViewerRO .
  .Projects/Modules (Restful Objects)
  [cols="3a,5a", options="header"]
  |===
--|Coordinates |Description 
++|Coordinates |Description
  
  |Apache Causeway Viewer - RO
  [source,yaml]
@@@ -3209,7 -3468,7 +3468,7 @@@ Wicket.ApacheCausewayViewerWicket .[#70
  .Projects/Modules (Wicket)
  [cols="3a,5a", options="header"]
  |===
--|Coordinates |Description 
++|Coordinates |Description
  
  |Apache Causeway Viewer - Wicket
  [source,yaml]
@@@ -3432,7 -3691,7 +3691,7 @@@ Valuetypes.ApacheCausewayValJodaTimepar
  .Projects/Modules (Valuetypes)
  [cols="3a,5a", options="header"]
  |===
--|Coordinates |Description 
++|Coordinates |Description
  
  |Apache Causeway Value types
  [source,yaml]
@@@ -3606,7 -3865,7 +3865,7 @@@ Asciidoc.ApacheCausewayValAsciidoctoru
  .Projects/Modules (Asciidoc)
  [cols="3a,5a", options="header"]
  |===
--|Coordinates |Description 
++|Coordinates |Description
  
  |Apache Causeway Val - Asciidoctor (parent)
  [source,yaml]
@@@ -3864,7 -4123,7 +4123,7 @@@ Markdown.ApacheCausewayValMarkdownparen
  .Projects/Modules (Markdown)
  [cols="3a,5a", options="header"]
  |===
--|Coordinates |Description 
++|Coordinates |Description
  
  |Apache Causeway Val - Markdown (parent)
  [source,yaml]
@@@ -4090,7 -4349,7 +4349,7 @@@ Vega.ApacheCausewayValVegaparent .[#707
  .Projects/Modules (Vega)
  [cols="3a,5a", options="header"]
  |===
--|Coordinates |Description 
++|Coordinates |Description
  
  |Apache Causeway Val - Vega (parent)
  [source,yaml]
@@@ -4585,7 -4844,7 +4844,7 @@@ Extensions.ApacheCausewayExtTitleCache 
  .Projects/Modules (Extensions)
  [cols="3a,5a", options="header"]
  |===
--|Coordinates |Description 
++|Coordinates |Description
  
  |Apache Causeway Extensions
  [source,yaml]
@@@ -5519,7 -5778,7 +5778,7 @@@ ApplibExcel.ApacheCausewayExtExcelparen
  .Projects/Modules (Applib: Excel)
  [cols="3a,5a", options="header"]
  |===
--|Coordinates |Description 
++|Coordinates |Description
  
  |Apache Causeway Ext - Excel (parent)
  [source,yaml]
@@@ -5683,7 -5942,7 +5942,7 @@@ CoreCommandLog.ApacheCausewayExtCommand
  .Projects/Modules (Core: Command Log)
  [cols="3a,5a", options="header"]
  |===
--|Coordinates |Description 
++|Coordinates |Description
  
  |Apache Causeway Ext - Command Log
  [source,yaml]
@@@ -5837,7 -6096,7 +6096,7 @@@ CoreDocGen.ApacheCausewayExtDocgen .[#7
  .Projects/Modules (Core: DocGen)
  [cols="3a,5a", options="header"]
  |===
--|Coordinates |Description 
++|Coordinates |Description
  
  |Apache Causeway Ext - Docgen
  [source,yaml]
@@@ -5946,7 -6205,7 +6205,7 @@@ CoreExecutionLog.ApacheCausewayExtExecu
  .Projects/Modules (Core: Execution Log)
  [cols="3a,5a", options="header"]
  |===
--|Coordinates |Description 
++|Coordinates |Description
  
  |Apache Causeway Ext - Execution Log
  [source,yaml]
@@@ -6117,7 -6376,7 +6376,7 @@@ CoreExecutionOutbox.ApacheCausewayExtEx
  .Projects/Modules (Core: Execution Outbox)
  [cols="3a,5a", options="header"]
  |===
--|Coordinates |Description 
++|Coordinates |Description
  
  |Apache Causeway Ext - Execution Outbox
  [source,yaml]
@@@ -6294,7 -6553,7 +6553,7 @@@ CoreExecutionRepublisher.ApacheCauseway
  .Projects/Modules (Core: Execution Republisher)
  [cols="3a,5a", options="header"]
  |===
--|Coordinates |Description 
++|Coordinates |Description
  
  |Apache Causeway Ext - Execution Republisher
  [source,yaml]
@@@ -6378,7 -6637,7 +6637,7 @@@ CoreFlyway.ApacheCausewayExtFlyway .[#7
  .Projects/Modules (Core: Flyway)
  [cols="3a,5a", options="header"]
  |===
--|Coordinates |Description 
++|Coordinates |Description
  
  |Apache Causeway Ext - Flyway
  [source,yaml]
@@@ -6465,7 -6724,7 +6724,7 @@@ CoreTabular.ApacheCausewayExtTabularpar
  .Projects/Modules (Core: Tabular)
  [cols="3a,5a", options="header"]
  |===
--|Coordinates |Description 
++|Coordinates |Description
  
  |Apache Causeway Ext - Tabular (parent)
  [source,yaml]
@@@ -6750,7 -7009,7 +7009,7 @@@ RegressionTests.ApacheCausewayRegressio
  .Projects/Modules (Regression Tests)
  [cols="3a,5a", options="header"]
  |===
--|Coordinates |Description 
++|Coordinates |Description
  
  |Apache Causeway Regression Tests
  [source,yaml]
@@@ -7166,7 -7449,7 +7449,7 @@@ rectangle "Incubator\n<size:10>[Softwar
  .Projects/Modules (Incubator)
  [cols="3a,5a", options="header"]
  |===
--|Coordinates |Description 
++|Coordinates |Description
  
  |Apache Causeway Incubator
  [source,yaml]
@@@ -7238,7 -7521,7 +7521,7 @@@ CommandReplay.ApacheCausewayIncCoreComm
  .Projects/Modules (Command Replay)
  [cols="3a,5a", options="header"]
  |===
--|Coordinates |Description 
++|Coordinates |Description
  
  |Apache Causeway Inc - Core Command Replay
  [source,yaml]
diff --cc core/runtimeservices/src/main/java/org/apache/causeway/core/runtimeservices/publish/EntityPropertyChangePublisherDefault.java
index bda7605297,1979da989f..2fd9f66504
--- a/core/runtimeservices/src/main/java/org/apache/causeway/core/runtimeservices/publish/EntityPropertyChangePublisherDefault.java
+++ b/core/runtimeservices/src/main/java/org/apache/causeway/core/runtimeservices/publish/EntityPropertyChangePublisherDefault.java
@@@ -49,10 -51,11 +49,11 @@@ import org.apache.causeway.core.transac
  
  import lombok.NonNull;
  import lombok.RequiredArgsConstructor;
 -import lombok.extern.log4j.Log4j2;
  import lombok.val;
 +import lombok.extern.log4j.Log4j2;
  
  /**
+  * Default implementation of {@link EntityPropertyChangePublisher}.
   *
   * @since 2.0 {@index}
   */


(causeway) 02/02: CAUSEWAY-3800: recreates refguide adoc

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

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

commit 3a5a62f41c8fd70012b1960fb73e341fa5b4594b
Author: Dan Haywood <da...@haywood-associates.co.uk>
AuthorDate: Thu Oct 10 15:08:03 2024 +0200

    CAUSEWAY-3800: recreates refguide adoc
---
 .../index/services/i18n/TranslationService.adoc    |  11 ++
 .../services/search/CollectionSearchService.adoc   |  33 ------
 .../commons/pages/index/collections/Can.adoc       | 117 ++++++++++++++++++++-
 .../modules/commons/pages/index/io/DataSource.adoc |  45 ++++++++
 .../tabular/simple/CollectionContentsExporter.adoc |   2 +
 .../applib/services/repo/QueryDslRepository.adoc   |   2 +-
 .../viewer/services/DeepLinkServiceWicket.adoc     |   8 +-
 core/adoc/modules/_overview/pages/about.adoc       |  74 ++++++-------
 .../pages/sections/causeway.prototyping.adoc       |   2 +-
 .../pages/sections/causeway.viewer.wicket.adoc     |   2 +-
 10 files changed, 212 insertions(+), 84 deletions(-)

diff --git a/antora/components/refguide-index/modules/applib/pages/index/services/i18n/TranslationService.adoc b/antora/components/refguide-index/modules/applib/pages/index/services/i18n/TranslationService.adoc
index e153990071..a07feee29e 100644
--- a/antora/components/refguide-index/modules/applib/pages/index/services/i18n/TranslationService.adoc
+++ b/antora/components/refguide-index/modules/applib/pages/index/services/i18n/TranslationService.adoc
@@ -14,6 +14,7 @@ interface TranslationService {
   String translate(TranslationContext context, String text)     // <.>
   String translate(TranslationContext context, String singularText, String pluralText, int num)     // <.>
   Mode getMode()     // <.>
+  TranslationService identity()     // <.>
 }
 ----
 
@@ -32,6 +33,11 @@ Return a translation of either the singular or the plural text, dependent on the
 --
 Whether this implementation is operating in read or in write mode.
 --
+<.> xref:#identity_[identity()]
++
+--
+Can be used as fallback in the absence of a xref:refguide:applib:index/services/i18n/TranslationService.adoc[TranslationService] implementation. Acts as a text pass-through, not translating anything.
+--
 
 == Members
 
@@ -58,6 +64,11 @@ If in read mode, then the translations are expected to be present. In such cases
 
 If in write mode, then the implementation is saving translation keys, and will always return the untranslated translation. In such cases, the _#translate(TranslationContext, String) translate_ _#translate(TranslationContext, String, String, int) method_ s should be _eagerly_ called such that all pathways are exercised..
 
+[#identity_]
+=== identity()
+
+Can be used as fallback in the absence of a xref:refguide:applib:index/services/i18n/TranslationService.adoc[TranslationService] implementation. Acts as a text pass-through, not translating anything.
+
 include::hooks/TranslationService_010-implementation.adoc[]
 
 include::hooks/TranslationService_020-examples-and-usage.adoc[]
diff --git a/antora/components/refguide-index/modules/applib/pages/index/services/search/CollectionSearchService.adoc b/antora/components/refguide-index/modules/applib/pages/index/services/search/CollectionSearchService.adoc
deleted file mode 100644
index 643b1eaa71..0000000000
--- a/antora/components/refguide-index/modules/applib/pages/index/services/search/CollectionSearchService.adoc
+++ /dev/null
@@ -1,33 +0,0 @@
-= CollectionSearchService
-: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 [...]
-
-EXPERIMENTAL/DRAFT
-
-If a xref:refguide:applib:index/services/search/CollectionSearchService.adoc[CollectionSearchService] is registered with Spring's context, viewer implementations (like Wicket Viewer) should show a quick-search prompt, which is rendered on top of the UI table that presents the collection in question.
-
-== API
-
-[source,java]
-.CollectionSearchService.java
-----
-interface CollectionSearchService {
-  Optional<Predicate<T>> searchFilter(Class<T> domainType, String searchString)     // <.>
-}
-----
-
-<.> xref:#searchFilter_Class_String[searchFilter(Class, String)]
-+
---
-Optionally returns a _Predicate_ that filters collections of given _domainType_ by a nullable _searchString_ , based on whether the search is supported.
---
-
-== Members
-
-[#searchFilter_Class_String]
-=== searchFilter(Class, String)
-
-Optionally returns a _Predicate_ that filters collections of given _domainType_ by a nullable _searchString_ , based on whether the search is supported.
-
-For example, the searchString could be parsed into tokens, and then matched against the domain object's title say.
-
-include::hooks/CollectionSearchService_010-implementation.adoc[]
diff --git a/antora/components/refguide-index/modules/commons/pages/index/collections/Can.adoc b/antora/components/refguide-index/modules/commons/pages/index/collections/Can.adoc
index 7437189246..1a56b8fcaf 100644
--- a/antora/components/refguide-index/modules/commons/pages/index/collections/Can.adoc
+++ b/antora/components/refguide-index/modules/commons/pages/index/collections/Can.adoc
@@ -47,6 +47,7 @@ interface Can<T> {
   void forEach(Consumer<? super T> action)
   void zip(Iterable<R> zippedIn, BiConsumer<? super T, ? super R> action)     // <.>
   Can<R> zipMap(Iterable<Z> zippedIn, BiFunction<? super T, ? super Z, R> mapper)     // <.>
+  Stream<R> zipStream(Iterable<Z> zippedIn, BiFunction<? super T, ? super Z, R> mapper)     // <.>
   Can<T> add(T element)
   Can<T> addUnique(T element)     // <.>
   Can<T> addAll(Can<T> other)
@@ -69,6 +70,7 @@ interface Can<T> {
   boolean isCardinalityOne()
   boolean isCardinalityMultiple()
   Collector<T, ?, Can<T>> toCan()
+  Collector<T, ?, M> toMapCollector(Function<? super T, ? extends K> keyExtractor, BinaryOperator<T> mergeFunction, Supplier<M> mapFactory)     // <.>
   List<T> toList()     // <.>
   List<T> toArrayList()     // <.>
   Set<T> toSet()     // <.>
@@ -76,6 +78,13 @@ interface Can<T> {
   C toCollection(Supplier<C> collectionFactory)     // <.>
   T[] toArray(T[] a)     // <.>
   T[] toArray(Class<T> elementType)     // <.>
+  Map<K, T> toMap(Function<? super T, ? extends K> keyExtractor)     // <.>
+  Map<K, T> toUnmodifiableMap(Function<? super T, ? extends K> keyExtractor)     // <.>
+  M toMap(Function<? super T, ? extends K> keyExtractor, BinaryOperator<T> mergeFunction, Supplier<M> mapFactory)     // <.>
+  Map<K, T> toUnmodifiableMap(Function<? super T, ? extends K> keyExtractor, BinaryOperator<T> mergeFunction, Supplier<M> mapFactory)     // <.>
+  R collect(Collector<? super T, A, R> collector)     // <.>
+  String join(String delimiter)     // <.>
+  String join(Function<? super T, String> toStringFunction, String delimiter)     // <.>
 }
 ----
 
@@ -209,12 +218,17 @@ Returns an iterator that skips the first _skip_ elements, then returns a maximum
 <.> xref:#zip_Iterable_BiConsumer[zip(Iterable, BiConsumer)]
 +
 --
-Similar to _#forEach(Consumer)_ , but zipps in _zippedIn_ to iterate through its elements and passes them over as the second argument to the _action_ .
+Similar to _#forEach(Consumer)_ , but zips in _zippedIn_ to iterate through its elements and passes them over as the second argument to the _action_ .
 --
 <.> xref:#zipMap_Iterable_BiFunction[zipMap(Iterable, BiFunction)]
 +
 --
-Similar to _#map(Function)_ , but zipps in _zippedIn_ to iterate through its elements and passes them over as the second argument to the _mapper_ .
+Similar to _#map(Function)_ , but zips in _zippedIn_ to iterate through its elements and passes them over as the second argument to the _mapper_ .
+--
+<.> xref:#zipStream_Iterable_BiFunction[zipStream(Iterable, BiFunction)]
++
+--
+Semantically equivalent to _#zipMap(Iterable, BiFunction)_ .stream().
 --
 <.> xref:#addUnique_T[addUnique(T)]
 +
@@ -277,6 +291,11 @@ Let _n_ be the number of elements in _other_ . Returns whether the first _n_ ele
 --
 Let _n_ be the number of elements in _other_ . Returns whether the last _n_ elements of this _Can_ are element-wise equal to _other_ .
 --
+<.> xref:#toMapCollector_Function_BinaryOperator_Supplier[toMapCollector(Function, BinaryOperator, Supplier)]
++
+--
+Return a _Collector_ , that delegates _Map_ creation to _Collectors#toMap(Function, Function, BinaryOperator, Supplier)_ .
+--
 <.> xref:#toList_[toList()]
 <.> xref:#toArrayList_[toArrayList()]
 <.> xref:#toSet_[toSet()]
@@ -284,6 +303,41 @@ Let _n_ be the number of elements in _other_ . Returns whether the last _n_ elem
 <.> xref:#toCollection_Supplier[toCollection(Supplier)]
 <.> xref:#toArray_T[toArray(T)]
 <.> xref:#toArray_Class[toArray(Class)]
+<.> xref:#toMap_Function[toMap(Function)]
++
+--
+Returns a modifiable (hash) _Map_ , with values from this xref:refguide:commons:index/collections/Can.adoc[Can] , and keys as produced by given _keyExtractor_ .
+--
+<.> xref:#toUnmodifiableMap_Function[toUnmodifiableMap(Function)]
++
+--
+Variant of _#toMap(Function)_ , that protects the resulting _Map_ from modification.
+--
+<.> xref:#toMap_Function_BinaryOperator_Supplier[toMap(Function, BinaryOperator, Supplier)]
++
+--
+Returns a modifiable _Map_ , with values from this xref:refguide:commons:index/collections/Can.adoc[Can] , and keys as produced by given _keyExtractor_ .
+--
+<.> xref:#toUnmodifiableMap_Function_BinaryOperator_Supplier[toUnmodifiableMap(Function, BinaryOperator, Supplier)]
++
+--
+Variant of _#toMap(Function, BinaryOperator, Supplier)_ , that protects the resulting _Map_ from modification.
+--
+<.> xref:#collect_Collector[collect(Collector)]
++
+--
+Semantically equivalent to _#stream()_ . _Stream#collect(Collector) collect(collector)_ .
+--
+<.> xref:#join_String[join(String)]
++
+--
+Semantically equivalent to _#map(Function) map(Object::toString)__.collect(Collectors.joining(delimiter));_
+--
+<.> xref:#join_Function_String[join(Function, String)]
++
+--
+Semantically equivalent to _#map(Function) map(toStringFunction)__.collect(Collectors.joining(delimiter));_
+--
 
 == Members
 
@@ -441,12 +495,19 @@ Returns an iterator that skips the first _skip_ elements, then returns a maximum
 [#zip_Iterable_BiConsumer]
 === zip(Iterable, BiConsumer)
 
-Similar to _#forEach(Consumer)_ , but zipps in _zippedIn_ to iterate through its elements and passes them over as the second argument to the _action_ .
+Similar to _#forEach(Consumer)_ , but zips in _zippedIn_ to iterate through its elements and passes them over as the second argument to the _action_ .
 
 [#zipMap_Iterable_BiFunction]
 === zipMap(Iterable, BiFunction)
 
-Similar to _#map(Function)_ , but zipps in _zippedIn_ to iterate through its elements and passes them over as the second argument to the _mapper_ .
+Similar to _#map(Function)_ , but zips in _zippedIn_ to iterate through its elements and passes them over as the second argument to the _mapper_ .
+
+[#zipStream_Iterable_BiFunction]
+=== zipStream(Iterable, BiFunction)
+
+Semantically equivalent to _#zipMap(Iterable, BiFunction)_ .stream().
+
+(Actual implementations might be optimized.)
 
 [#addUnique_T]
 === addUnique(T)
@@ -532,6 +593,11 @@ Let _n_ be the number of elements in _other_ . Returns whether the first _n_ ele
 
 Let _n_ be the number of elements in _other_ . Returns whether the last _n_ elements of this _Can_ are element-wise equal to _other_ .
 
+[#toMapCollector_Function_BinaryOperator_Supplier]
+=== toMapCollector(Function, BinaryOperator, Supplier)
+
+Return a _Collector_ , that delegates _Map_ creation to _Collectors#toMap(Function, Function, BinaryOperator, Supplier)_ .
+
 [#toList_]
 === toList()
 
@@ -552,3 +618,46 @@ Let _n_ be the number of elements in _other_ . Returns whether the last _n_ elem
 
 [#toArray_Class]
 === toArray(Class)
+
+[#toMap_Function]
+=== toMap(Function)
+
+Returns a modifiable (hash) _Map_ , with values from this xref:refguide:commons:index/collections/Can.adoc[Can] , and keys as produced by given _keyExtractor_ .
+
+On duplicate keys, behavior is unspecified.
+
+[#toUnmodifiableMap_Function]
+=== toUnmodifiableMap(Function)
+
+Variant of _#toMap(Function)_ , that protects the resulting _Map_ from modification.
+
+[#toMap_Function_BinaryOperator_Supplier]
+=== toMap(Function, BinaryOperator, Supplier)
+
+Returns a modifiable _Map_ , with values from this xref:refguide:commons:index/collections/Can.adoc[Can] , and keys as produced by given _keyExtractor_ .
+
+[#toUnmodifiableMap_Function_BinaryOperator_Supplier]
+=== toUnmodifiableMap(Function, BinaryOperator, Supplier)
+
+Variant of _#toMap(Function, BinaryOperator, Supplier)_ , that protects the resulting _Map_ from modification.
+
+[#collect_Collector]
+=== collect(Collector)
+
+Semantically equivalent to _#stream()_ . _Stream#collect(Collector) collect(collector)_ .
+
+(Actual implementations might be optimized.)
+
+[#join_String]
+=== join(String)
+
+Semantically equivalent to _#map(Function) map(Object::toString)__.collect(Collectors.joining(delimiter));_
+
+(Actual implementations might be optimized.)
+
+[#join_Function_String]
+=== join(Function, String)
+
+Semantically equivalent to _#map(Function) map(toStringFunction)__.collect(Collectors.joining(delimiter));_
+
+(Actual implementations might be optimized.)
diff --git a/antora/components/refguide-index/modules/commons/pages/index/io/DataSource.adoc b/antora/components/refguide-index/modules/commons/pages/index/io/DataSource.adoc
index 74e71fe78c..44f8e21d1a 100644
--- a/antora/components/refguide-index/modules/commons/pages/index/io/DataSource.adoc
+++ b/antora/components/refguide-index/modules/commons/pages/index/io/DataSource.adoc
@@ -35,6 +35,19 @@ interface DataSource {
   DataSource ofString(String string, Charset charset)     // <.>
   DataSource ofStringUtf8(String string)     // <.>
   DataSource ofBytes(byte[] bytes)     // <.>
+  Optional<File> getFile()     // <.>
+  void consumeAsFile(ThrowingConsumer<File> fileConsumer)     // <.>
+  String getDescription()     // <.>
+  DataSource ofInputStreamSupplierInternal(String description, ThrowingSupplier<InputStream> inputStreamSupplier)
+  DataSource ofInputStreamSupplierInternal(String description, Optional<File> file, ThrowingSupplier<InputStream> inputStreamSupplier)
+  String descriptionForEmpty()
+  String descriptionForBytes(byte[] bytes)
+  String descriptionForString(String string)
+  String descriptionForResource(Resource springResource)
+  String descriptionForResource(Class<?> cls, String resourcePath)
+  String descriptionForMapped(DataSource ds)
+  String descriptionForFile(File file)
+  Optional<File> fileForResource(Resource springResource)
 }
 ----
 
@@ -143,6 +156,21 @@ Creates a xref:refguide:commons:index/io/DataSource.adoc[DataSource] for given _
 --
 Creates a xref:refguide:commons:index/io/DataSource.adoc[DataSource] for given byte array. If `null` or empty, an 'empty' DataSource is returned.
 --
+<.> xref:#getFile_[getFile()]
++
+--
+Optionally returns the underlying _File_ , based on whether this resource originates from a file.
+--
+<.> xref:#consumeAsFile_ThrowingConsumer[consumeAsFile(ThrowingConsumer)]
++
+--
+The given file-consumer is either passed the underlying _File_ (if this resource originates from a file), or a temporary file.
+--
+<.> xref:#getDescription_[getDescription()]
++
+--
+Return a description for this DataSource, to be used for error output when working with the resource.
+--
 
 == Members
 
@@ -270,3 +298,20 @@ Creates a xref:refguide:commons:index/io/DataSource.adoc[DataSource] for given _
 === ofBytes(byte)
 
 Creates a xref:refguide:commons:index/io/DataSource.adoc[DataSource] for given byte array. If `null` or empty, an 'empty' DataSource is returned.
+
+[#getFile_]
+=== getFile()
+
+Optionally returns the underlying _File_ , based on whether this resource originates from a file.
+
+[#consumeAsFile_ThrowingConsumer]
+=== consumeAsFile(ThrowingConsumer)
+
+The given file-consumer is either passed the underlying _File_ (if this resource originates from a file), or a temporary file.
+
+In the temporary file case, the temporary file is deleted after consumption.
+
+[#getDescription_]
+=== getDescription()
+
+Return a description for this DataSource, to be used for error output when working with the resource.
diff --git a/antora/components/refguide-index/modules/core/pages/index/metamodel/tabular/simple/CollectionContentsExporter.adoc b/antora/components/refguide-index/modules/core/pages/index/metamodel/tabular/simple/CollectionContentsExporter.adoc
index b6f6a65170..91d5f31812 100644
--- a/antora/components/refguide-index/modules/core/pages/index/metamodel/tabular/simple/CollectionContentsExporter.adoc
+++ b/antora/components/refguide-index/modules/core/pages/index/metamodel/tabular/simple/CollectionContentsExporter.adoc
@@ -10,7 +10,9 @@ SPI to provide file export to table views.
 ----
 interface CollectionContentsExporter {
   void createExport(DataTable dataTable, File tempFile)     // <.>
+  void createExport(DataTable dataTable, File tempFile, AccessMode accessMode)
   Blob exportToBlob(DataTable dataTable, String name)     // <.>
+  Blob exportToBlob(DataTable dataTable, String name, AccessMode accessMode)
   CommonMimeType getMimeType()
   String getTitleLabel()     // <.>
   String getCssClass()     // <.>
diff --git a/antora/components/refguide-index/modules/persistence/pages/index/querydsl/applib/services/repo/QueryDslRepository.adoc b/antora/components/refguide-index/modules/persistence/pages/index/querydsl/applib/services/repo/QueryDslRepository.adoc
index 3ccb5e4862..e86801c4f8 100644
--- a/antora/components/refguide-index/modules/persistence/pages/index/querydsl/applib/services/repo/QueryDslRepository.adoc
+++ b/antora/components/refguide-index/modules/persistence/pages/index/querydsl/applib/services/repo/QueryDslRepository.adoc
@@ -34,7 +34,7 @@ class QueryDslRepository<T, Q> {
   Optional<F> findUniqueFields(Function<Q, Expression<F>> projection, Function<Q, Predicate>... predicates)     // <.>
   List<T> find(Function<Q, Predicate>[] predicates, Function<Q, OrderSpecifier<?>>... orderSpecifiers)     // <.>
   List<T> find(Function<Q, Predicate> predicate, Function<Q, OrderSpecifier<?>>... orderSpecifiers)     // <.>
-  List<T> findUsingDefaultOrder(Function<Q, Predicate>[] predicates)     // <.>
+  List<T> findUsingDefaultOrder(Function<Q, Predicate>... predicates)     // <.>
   List<B> findAsBean(Function<Q, Expression<?>>[] projections, Class<? extends B> bean, Function<Q, Predicate>[] predicates, Function<Q, OrderSpecifier<?>>... orderSpecifiers)     // <.>
   List<B> findAsBean(Function<Q, Predicate> predicate, Function<Q, OrderSpecifier<?>> orderSpecifier, Class<? extends B> bean, Function<Q, Expression<?>>... projections)     // <.>
   List<T> newList(T... objs)
diff --git a/antora/components/refguide-index/modules/viewer/pages/index/wicket/viewer/services/DeepLinkServiceWicket.adoc b/antora/components/refguide-index/modules/viewer/pages/index/wicket/viewer/services/DeepLinkServiceWicket.adoc
index afb48025d2..bc625d058a 100644
--- a/antora/components/refguide-index/modules/viewer/pages/index/wicket/viewer/services/DeepLinkServiceWicket.adoc
+++ b/antora/components/refguide-index/modules/viewer/pages/index/wicket/viewer/services/DeepLinkServiceWicket.adoc
@@ -1,10 +1,5 @@
-[[r2.1.0]]
-= 2.1.0
-
-== DeepLinkServiceWicket
-
+= DeepLinkServiceWicket
 :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 [...]
-:page-partial:
 
 An implementation of xref:refguide:applib:index/services/linking/DeepLinkService.adoc[DeepLinkService] for Wicket Viewer.
 
@@ -18,4 +13,3 @@ class DeepLinkServiceWicket {
 }
 ----
 
-include::partial$2024/2.1.0/_relnotes.adoc[]
diff --git a/core/adoc/modules/_overview/pages/about.adoc b/core/adoc/modules/_overview/pages/about.adoc
index 66224980e8..1fee22a3db 100644
--- a/core/adoc/modules/_overview/pages/about.adoc
+++ b/core/adoc/modules/_overview/pages/about.adoc
@@ -44,7 +44,7 @@ rectangle "App\n<size:10>[Software System]</size>" <<App>> {
 .Projects/Modules (App)
 [cols="3a,5a", options="header"]
 |===
-|Coordinates |Description
+|Coordinates |Description 
 
 |Apache Causeway Starter Parent
 [source,yaml]
@@ -107,7 +107,7 @@ Mavendeps.ApacheCausewayMavenDeps .[#707070,thickness=2].> Mavendeps.ApacheCause
 .Projects/Modules (Mavendeps)
 [cols="3a,5a", options="header"]
 |===
-|Coordinates |Description
+|Coordinates |Description 
 
 |Apache Causeway Maven Deps
 [source,yaml]
@@ -331,7 +331,7 @@ Testing.ApacheCausewayTstUnitTestSupportparent .[#707070,thickness=2].> Testing.
 .Projects/Modules (Testing)
 [cols="3a,5a", options="header"]
 |===
-|Coordinates |Description
+|Coordinates |Description 
 
 |Apache Causeway Testing
 [source,yaml]
@@ -615,7 +615,7 @@ Directory: /testing/specsupport/applib
 io.cucumber:cucumber-java:jar:<managed> +
 io.cucumber:cucumber-junit-platform-engine:jar:<managed> +
 io.cucumber:cucumber-spring:jar:<managed> +
-io.cucumber:messages:jar:25.0.1 +
+io.cucumber:messages:jar:26.0.1 +
 org.apache.causeway.testing:causeway-testing-fakedata-applib:jar:<managed> +
 org.apache.causeway.testing:causeway-testing-fixtures-applib:jar:<managed> +
 org.apache.causeway.testing:causeway-testing-integtestsupport-applib:jar:<managed> +
@@ -733,7 +733,7 @@ Root.ApacheCausewayAggregator .[#707070,thickness=2].> Root.ApacheCauseway : "<c
 .Projects/Modules (Root)
 [cols="3a,5a", options="header"]
 |===
-|Coordinates |Description
+|Coordinates |Description 
 
 |Apache Causeway (Aggregator)
 [source,yaml]
@@ -824,7 +824,7 @@ rectangle "Commons\n<size:10>[Software System]</size>" <<Commons>> {
 .Projects/Modules (Commons)
 [cols="3a,5a", options="header"]
 |===
-|Coordinates |Description
+|Coordinates |Description 
 
 |Apache Causeway Commons
 [source,yaml]
@@ -1013,7 +1013,7 @@ Core.ApacheCausewayCore .[#707070,thickness=2].> Core.ApacheCausewayApiSchemas :
 .Projects/Modules (Core)
 [cols="3a,5a", options="header"]
 |===
-|Coordinates |Description
+|Coordinates |Description 
 
 |Apache Causeway Core
 [source,yaml]
@@ -1578,7 +1578,7 @@ Persistence.ApacheCausewayPersistenceQueryDSL .[#707070,thickness=2].> Persisten
 .Projects/Modules (Persistence)
 [cols="3a,5a", options="header"]
 |===
-|Coordinates |Description
+|Coordinates |Description 
 
 |Apache Causeway Persistence - QueryDSL
 [source,yaml]
@@ -1784,7 +1784,7 @@ rectangle "Persistence Commons\n<size:10>[Software System]</size>" <<Persistence
 .Projects/Modules (Persistence Commons)
 [cols="3a,5a", options="header"]
 |===
-|Coordinates |Description
+|Coordinates |Description 
 
 |Apache Causeway Persistence - Commons
 [source,yaml]
@@ -1909,7 +1909,7 @@ JDO.ApacheCausewayPersistenceJDO .[#707070,thickness=2].> JDO.ApacheCausewayPers
 .Projects/Modules (JDO)
 [cols="3a,5a", options="header"]
 |===
-|Coordinates |Description
+|Coordinates |Description 
 
 |Apache Causeway Persistence - JDO
 [source,yaml]
@@ -2168,7 +2168,7 @@ JPA.ApacheCausewayPersistenceJPA .[#707070,thickness=2].> JPA.ApacheCausewayPers
 .Projects/Modules (JPA)
 [cols="3a,5a", options="header"]
 |===
-|Coordinates |Description
+|Coordinates |Description 
 
 |Apache Causeway Persistence - JPA
 [source,yaml]
@@ -2322,7 +2322,7 @@ rectangle "Security\n<size:10>[Software System]</size>" <<Security>> {
 .Projects/Modules (Security)
 [cols="3a,5a", options="header"]
 |===
-|Coordinates |Description
+|Coordinates |Description 
 
 |Apache Causeway Security - Simple
 [source,yaml]
@@ -2393,7 +2393,7 @@ rectangle "Bypass\n<size:10>[Software System]</size>" <<Bypass>> {
 .Projects/Modules (Bypass)
 [cols="3a,5a", options="header"]
 |===
-|Coordinates |Description
+|Coordinates |Description 
 
 |Apache Causeway Security - Bypass
 [source,yaml]
@@ -2461,7 +2461,7 @@ rectangle "Keycloak\n<size:10>[Software System]</size>" <<Keycloak>> {
 .Projects/Modules (Keycloak)
 [cols="3a,5a", options="header"]
 |===
-|Coordinates |Description
+|Coordinates |Description 
 
 |Apache Causeway Security - Keycloak
 [source,yaml]
@@ -2538,7 +2538,7 @@ rectangle "Shiro\n<size:10>[Software System]</size>" <<Shiro>> {
 .Projects/Modules (Shiro)
 [cols="3a,5a", options="header"]
 |===
-|Coordinates |Description
+|Coordinates |Description 
 
 |Apache Causeway Security - Shiro
 [source,yaml]
@@ -2614,7 +2614,7 @@ rectangle "Spring\n<size:10>[Software System]</size>" <<Spring>> {
 .Projects/Modules (Spring)
 [cols="3a,5a", options="header"]
 |===
-|Coordinates |Description
+|Coordinates |Description 
 
 |Apache Causeway Security - Spring
 [source,yaml]
@@ -2724,7 +2724,7 @@ ViewerCommons.ApacheCausewayViewerCommons .[#707070,thickness=2].> ViewerCommons
 .Projects/Modules (Viewer Commons)
 [cols="3a,5a", options="header"]
 |===
-|Coordinates |Description
+|Coordinates |Description 
 
 |Apache Causeway Viewer - Commons
 [source,yaml]
@@ -2903,7 +2903,7 @@ GraphQL.ApacheCausewayViewerGraphQL .[#707070,thickness=2].> GraphQL.ApacheCause
 .Projects/Modules (GraphQL)
 [cols="3a,5a", options="header"]
 |===
-|Coordinates |Description
+|Coordinates |Description 
 
 |Apache Causeway Viewer - GraphQL
 [source,yaml]
@@ -3178,7 +3178,7 @@ RestfulObjects.ApacheCausewayViewerRO .[#707070,thickness=2].> RestfulObjects.Ap
 .Projects/Modules (Restful Objects)
 [cols="3a,5a", options="header"]
 |===
-|Coordinates |Description
+|Coordinates |Description 
 
 |Apache Causeway Viewer - RO
 [source,yaml]
@@ -3468,7 +3468,7 @@ Wicket.ApacheCausewayViewerWicket .[#707070,thickness=2].> Wicket.ApacheCauseway
 .Projects/Modules (Wicket)
 [cols="3a,5a", options="header"]
 |===
-|Coordinates |Description
+|Coordinates |Description 
 
 |Apache Causeway Viewer - Wicket
 [source,yaml]
@@ -3691,7 +3691,7 @@ Valuetypes.ApacheCausewayValJodaTimeparent .[#707070,thickness=2].> Valuetypes.A
 .Projects/Modules (Valuetypes)
 [cols="3a,5a", options="header"]
 |===
-|Coordinates |Description
+|Coordinates |Description 
 
 |Apache Causeway Value types
 [source,yaml]
@@ -3865,7 +3865,7 @@ Asciidoc.ApacheCausewayValAsciidoctorui .[#707070,thickness=2].> Asciidoc.Apache
 .Projects/Modules (Asciidoc)
 [cols="3a,5a", options="header"]
 |===
-|Coordinates |Description
+|Coordinates |Description 
 
 |Apache Causeway Val - Asciidoctor (parent)
 [source,yaml]
@@ -4123,7 +4123,7 @@ Markdown.ApacheCausewayValMarkdownparent .[#707070,thickness=2].> Markdown.Apach
 .Projects/Modules (Markdown)
 [cols="3a,5a", options="header"]
 |===
-|Coordinates |Description
+|Coordinates |Description 
 
 |Apache Causeway Val - Markdown (parent)
 [source,yaml]
@@ -4349,7 +4349,7 @@ Vega.ApacheCausewayValVegaparent .[#707070,thickness=2].> Vega.ApacheCausewayVal
 .Projects/Modules (Vega)
 [cols="3a,5a", options="header"]
 |===
-|Coordinates |Description
+|Coordinates |Description 
 
 |Apache Causeway Val - Vega (parent)
 [source,yaml]
@@ -4844,7 +4844,7 @@ Extensions.ApacheCausewayExtTitleCache .[#707070,thickness=2].> Extensions.Apach
 .Projects/Modules (Extensions)
 [cols="3a,5a", options="header"]
 |===
-|Coordinates |Description
+|Coordinates |Description 
 
 |Apache Causeway Extensions
 [source,yaml]
@@ -5190,7 +5190,7 @@ Directory: /extensions/vw/pdfjs/wicket/integration
 ****
 org.apache.causeway.extensions:causeway-extensions-pdfjs-applib:jar:<managed> +
 org.apache.causeway.viewer:causeway-viewer-wicket-ui:jar:<managed> +
-org.webjars.npm:pdfjs-dist:jar:4.3.136 +
+org.webjars.npm:pdfjs-dist:jar:4.6.82 +
 ****
 
 .Document Index Entries
@@ -5778,7 +5778,7 @@ ApplibExcel.ApacheCausewayExtExcelparent .[#707070,thickness=2].> ApplibExcel.Ap
 .Projects/Modules (Applib: Excel)
 [cols="3a,5a", options="header"]
 |===
-|Coordinates |Description
+|Coordinates |Description 
 
 |Apache Causeway Ext - Excel (parent)
 [source,yaml]
@@ -5942,7 +5942,7 @@ CoreCommandLog.ApacheCausewayExtCommandLog .[#707070,thickness=2].> CoreCommandL
 .Projects/Modules (Core: Command Log)
 [cols="3a,5a", options="header"]
 |===
-|Coordinates |Description
+|Coordinates |Description 
 
 |Apache Causeway Ext - Command Log
 [source,yaml]
@@ -6096,7 +6096,7 @@ CoreDocGen.ApacheCausewayExtDocgen .[#707070,thickness=2].> CoreDocGen.ApacheCau
 .Projects/Modules (Core: DocGen)
 [cols="3a,5a", options="header"]
 |===
-|Coordinates |Description
+|Coordinates |Description 
 
 |Apache Causeway Ext - Docgen
 [source,yaml]
@@ -6205,7 +6205,7 @@ CoreExecutionLog.ApacheCausewayExtExecutionLog .[#707070,thickness=2].> CoreExec
 .Projects/Modules (Core: Execution Log)
 [cols="3a,5a", options="header"]
 |===
-|Coordinates |Description
+|Coordinates |Description 
 
 |Apache Causeway Ext - Execution Log
 [source,yaml]
@@ -6376,7 +6376,7 @@ CoreExecutionOutbox.ApacheCausewayExtExecutionOutbox .[#707070,thickness=2].> Co
 .Projects/Modules (Core: Execution Outbox)
 [cols="3a,5a", options="header"]
 |===
-|Coordinates |Description
+|Coordinates |Description 
 
 |Apache Causeway Ext - Execution Outbox
 [source,yaml]
@@ -6553,7 +6553,7 @@ CoreExecutionRepublisher.ApacheCausewayExtExecutionRepublisher .[#707070,thickne
 .Projects/Modules (Core: Execution Republisher)
 [cols="3a,5a", options="header"]
 |===
-|Coordinates |Description
+|Coordinates |Description 
 
 |Apache Causeway Ext - Execution Republisher
 [source,yaml]
@@ -6637,7 +6637,7 @@ CoreFlyway.ApacheCausewayExtFlyway .[#707070,thickness=2].> CoreFlyway.ApacheCau
 .Projects/Modules (Core: Flyway)
 [cols="3a,5a", options="header"]
 |===
-|Coordinates |Description
+|Coordinates |Description 
 
 |Apache Causeway Ext - Flyway
 [source,yaml]
@@ -6724,7 +6724,7 @@ CoreTabular.ApacheCausewayExtTabularparent .[#707070,thickness=2].> CoreTabular.
 .Projects/Modules (Core: Tabular)
 [cols="3a,5a", options="header"]
 |===
-|Coordinates |Description
+|Coordinates |Description 
 
 |Apache Causeway Ext - Tabular (parent)
 [source,yaml]
@@ -7009,7 +7009,7 @@ RegressionTests.ApacheCausewayRegressionTestsCmdExecAuditSession .[#707070,thick
 .Projects/Modules (Regression Tests)
 [cols="3a,5a", options="header"]
 |===
-|Coordinates |Description
+|Coordinates |Description 
 
 |Apache Causeway Regression Tests
 [source,yaml]
@@ -7449,7 +7449,7 @@ rectangle "Incubator\n<size:10>[Software System]</size>" <<Incubator>> {
 .Projects/Modules (Incubator)
 [cols="3a,5a", options="header"]
 |===
-|Coordinates |Description
+|Coordinates |Description 
 
 |Apache Causeway Incubator
 [source,yaml]
@@ -7521,7 +7521,7 @@ CommandReplay.ApacheCausewayIncCoreCommandReplay .[#707070,thickness=2].> Comman
 .Projects/Modules (Command Replay)
 [cols="3a,5a", options="header"]
 |===
-|Coordinates |Description
+|Coordinates |Description 
 
 |Apache Causeway Inc - Core Command Replay
 [source,yaml]
diff --git a/core/config/src/main/adoc/modules/config/pages/sections/causeway.prototyping.adoc b/core/config/src/main/adoc/modules/config/pages/sections/causeway.prototyping.adoc
index 3e9c0f6e64..a2857b725d 100644
--- a/core/config/src/main/adoc/modules/config/pages/sections/causeway.prototyping.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/sections/causeway.prototyping.adoc
@@ -43,7 +43,7 @@ if-disabled-policy
 | 
 | Whether and how to display any properties, actions and collections whose usability has been vetoed.
 
-By default, such object members are shown as disabled, with the tolipindicating why. Setting the property to SHOW_AS_DISABLED_WITH_DIAGNOSTICS shows additional detail in the tooltip.
+By default, such object members are shown as disabled, with the tooltip indicating why. Setting the property to SHOW_AS_DISABLED_WITH_DIAGNOSTICS shows additional detail in the tooltip.
 
 This config property only applies in prototyping mode.
 
diff --git a/core/config/src/main/adoc/modules/config/pages/sections/causeway.viewer.wicket.adoc b/core/config/src/main/adoc/modules/config/pages/sections/causeway.viewer.wicket.adoc
index 0538582fe2..8debbf8e6d 100644
--- a/core/config/src/main/adoc/modules/config/pages/sections/causeway.viewer.wicket.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/sections/causeway.viewer.wicket.adoc
@@ -198,7 +198,7 @@ disable-reason-explanation-in- +
 prototyping-mode-enabled
 
 |  true
-| In prototyping mode, a text icon is appeneded to any property that is disabled, with its tool-tip explaining why the property is disabled. This configuration property can be used to suppress the icon, even in prototyping mode, if desired.
+| In prototyping mode, a text icon is appended to any property that is disabled, with its tool-tip explaining why the property is disabled. This configuration property can be used to suppress the icon, even in prototyping mode, if desired.
 
 The default is to enable (show) the text icon (if in prototyping mode).