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 2025/05/27 11:38:41 UTC

(causeway) branch v4 created (now b5cd2db9d7d)

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

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


      at b5cd2db9d7d CAUSEWAY-3866: several removals for v4

This branch includes the following new commits:

     new b5cd2db9d7d CAUSEWAY-3866: several removals for v4

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.



(causeway) 01/01: CAUSEWAY-3866: several removals for v4

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

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

commit b5cd2db9d7d855479f66ac29d16fbc988001d101
Author: Andi Huber <ah...@apache.org>
AuthorDate: Tue May 27 13:38:32 2025 +0200

    CAUSEWAY-3866: several removals for v4
    
    - JDO
    - Shiro
    - incubators
    
    also switching to CI friendly POMs
    https://maven.apache.org/guides/mini/guide-maven-ci-friendly.html
---
 antora/pom.xml                                     |    2 +-
 api/applib/pom.xml                                 |    2 +-
 api/schema/pom.xml                                 |    2 +-
 bom/pom.xml                                        |  586 ++---
 build-gradle.7z                                    |  Bin 13535 -> 0 bytes
 commons/pom.xml                                    |    2 +-
 core/codegen-bytebuddy/pom.xml                     |    2 +-
 core/config/pom.xml                                |    2 +-
 .../core/config/presets/CausewayPresets.java       |    3 -
 .../DatanucleusAutocreateNoValidate.properties     |   28 -
 .../DatanucleusEagerlyCreateTables.properties      |   19 -
 core/interaction/pom.xml                           |    2 +-
 core/internaltestsupport/pom.xml                   |   13 +-
 core/metamodel/pom.xml                             |    2 +-
 core/pom.xml                                       |    6 +-
 core/runtime/pom.xml                               |    2 +-
 core/runtimeservices/pom.xml                       |    2 +-
 core/security/pom.xml                              |    2 +-
 core/transaction/pom.xml                           |    2 +-
 core/webapp/pom.xml                                |    2 +-
 extensions/core/commandlog/applib/pom.xml          |    2 +-
 .../commandlog/persistence-jdo/log4j2-test.xml     |   78 -
 .../persistence-jdo/logging-dn-enhance.properties  |   48 -
 extensions/core/commandlog/persistence-jdo/pom.xml |   94 -
 .../CausewayModuleExtCommandLogPersistenceJdo.java |   65 -
 .../commandlog/jdo/dom/CommandLogEntry.java        |  318 ---
 .../jdo/dom/CommandLogEntryRepository.java         |   58 -
 .../commandlog/jdo/integtests/AppManifest.java     |   47 -
 .../integtests/BackgroundService_IntegTest.java    |   38 -
 .../jdo/integtests/CommandLog_IntegTest.java       |   37 -
 .../commandlog/jdo/integtests/model/Counter.java   |   64 -
 .../jdo/integtests/model/CounterRepository.java    |   32 -
 .../src/test/resources/application-test.yml        |   26 -
 extensions/core/commandlog/persistence-jpa/pom.xml |    8 +-
 extensions/core/commandlog/pom.xml                 |   35 +-
 extensions/core/docgen/help/pom.xml                |    2 +-
 extensions/core/docgen/pom.xml                     |    2 +-
 extensions/core/excel/applib/pom.xml               |    2 +-
 extensions/core/excel/fixture/pom.xml              |   24 +-
 .../BulkUpdateLineItemForDemoToDoItem.java         |    3 +-
 .../bulkupdate/BulkUpdateMenuForDemoToDoItem.java  |    4 +-
 .../ExcelPivotByCategoryAndSubcategoryMenu.java    |    4 +-
 .../ExcelUploadServiceForDemoToDoItem.java         |    4 +-
 .../demoapp/todomodule/dom/ExcelDemoToDoItem.java  |  144 +-
 .../todomodule/dom/ExcelDemoToDoItemMenu.java      |    4 +-
 .../fixturescripts/ExcelDemoToDoItem_tearDown.java |    4 +-
 .../ExcelDemoToDoItem_tearDown2.java               |   33 +-
 extensions/core/excel/integtests/pom.xml           |    6 +-
 .../integtests/ExcelModuleIntegTestAbstract.java   |    5 +-
 .../ExcelModuleDemoMetaDataEnabled_IntegTest.java  |    5 +-
 .../ExcelModuleDemoUploadService_IntegTest.java    |    5 +-
 extensions/core/excel/pom.xml                      |   10 +-
 extensions/core/excel/testing/pom.xml              |    2 +-
 extensions/core/executionlog/applib/pom.xml        |    2 +-
 .../persistence-jdo/logging-dn-enhance.properties  |   48 -
 .../core/executionlog/persistence-jdo/pom.xml      |   95 -
 ...ausewayModuleExtExecutionLogPersistenceJdo.java |   66 -
 .../executionlog/jdo/dom/ExecutionLogEntry.java    |  213 --
 .../executionlog/jdo/dom/ExecutionLogEntryPK.java  |   78 -
 .../jdo/dom/ExecutionLogEntryRepository.java       |   59 -
 .../jdo/integtests/ExecutionLog_IntegTest.java     |   63 -
 .../executionlog/jdo/integtests/model/Counter.java |   64 -
 .../jdo/integtests/model/CounterRepository.java    |   32 -
 .../src/test/resources/application-test.yml        |   26 -
 .../core/executionlog/persistence-jpa/pom.xml      |    2 +-
 extensions/core/executionlog/pom.xml               |   29 +-
 extensions/core/executionoutbox/applib/pom.xml     |    2 +-
 .../persistence-jdo/logging-dn-enhance.properties  |   48 -
 .../core/executionoutbox/persistence-jdo/pom.xml   |   95 -
 ...ewayModuleExtExecutionOutboxPersistenceJdo.java |   67 -
 .../jdo/dom/ExecutionOutboxEntry.java              |  141 --
 .../jdo/dom/ExecutionOutboxEntryPK.java            |   87 -
 .../jdo/dom/ExecutionOutboxEntryRepository.java    |   61 -
 .../jdo/integtests/ExecutionOutbox_IntegTest.java  |   62 -
 .../jdo/integtests/model/Counter.java              |   64 -
 .../jdo/integtests/model/CounterRepository.java    |   32 -
 .../src/test/resources/application-test.yml        |   26 -
 .../core/executionoutbox/persistence-jpa/pom.xml   |    2 +-
 extensions/core/executionoutbox/pom.xml            |   41 +-
 extensions/core/executionoutbox/restclient/pom.xml |    2 +-
 .../core/executionrepublisher/applib/pom.xml       |    2 +-
 extensions/core/executionrepublisher/pom.xml       |    8 +-
 extensions/core/flyway/impl/pom.xml                |    2 +-
 extensions/core/flyway/pom.xml                     |    4 +-
 extensions/core/layoutloaders/github/pom.xml       |    2 +-
 extensions/core/layoutloaders/pom.xml              |    2 +-
 extensions/core/titlecache/applib/pom.xml          |    2 +-
 extensions/core/titlecache/caffeine/pom.xml        |    2 +-
 extensions/core/titlecache/pom.xml                 |    4 +-
 extensions/pom.xml                                 |    2 +-
 extensions/security/audittrail/applib/pom.xml      |    2 +-
 .../audittrail/persistence-jdo/log4j2-test.xml     |   78 -
 .../persistence-jdo/logging-dn-enhance.properties  |   41 -
 .../security/audittrail/persistence-jdo/pom.xml    |   78 -
 .../CausewayModuleExtAuditTrailPersistenceJdo.java |   63 -
 .../audittrail/jdo/dom/AuditTrailEntry.java        |  273 --
 .../jdo/dom/AuditTrailEntryRepository.java         |   32 -
 .../jdo/integtests/AuditTrail_IntegTest.java       |   64 -
 .../audittrail/jdo/integtests/model/Counter.java   |   65 -
 .../jdo/integtests/model/CounterRepository.java    |   32 -
 .../src/test/resources/application-test.yml        |   26 -
 .../security/audittrail/persistence-jpa/pom.xml    |    8 +-
 extensions/security/audittrail/pom.xml             |   31 +-
 extensions/security/secman/applib/pom.xml          |    9 +-
 .../security/secman/delegated-springoauth2/pom.xml |    2 +-
 .../security/secman/encryption-jbcrypt/pom.xml     |    2 +-
 .../security/secman/encryption-spring/pom.xml      |    2 +-
 extensions/security/secman/integration/pom.xml     |    2 +-
 .../secman/persistence-jdo/log4j2-test.xml         |   78 -
 .../persistence-jdo/logging-dn-enhance.properties  |   41 -
 extensions/security/secman/persistence-jdo/pom.xml |   76 -
 .../jdo/CausewayModuleExtSecmanPersistenceJdo.java |   80 -
 .../secman/jdo/package.jdo~breaks-mvn-build        |   37 -
 .../jdo/permission/dom/ApplicationPermission.java  |  141 --
 .../dom/ApplicationPermissionRepository.java       |   36 -
 .../secman/jdo/role/dom/ApplicationRole.java       |  113 -
 .../jdo/role/dom/ApplicationRoleRepository.java    |   37 -
 .../secman/jdo/tenancy/dom/ApplicationTenancy.java |  130 -
 .../tenancy/dom/ApplicationTenancyRepository.java  |   37 -
 .../secman/jdo/user/dom/ApplicationUser.java       |  189 --
 .../jdo/user/dom/ApplicationUserRepository.java    |   37 -
 .../extensions/secman/jdo/util/RegexReplacer.java  |   38 -
 .../ApplicationPermissionRepository_IntegTest.java |   57 -
 .../src/test/resources/application-test.yml        |   45 -
 extensions/security/secman/persistence-jpa/pom.xml |    9 +-
 extensions/security/secman/pom.xml                 |   48 +-
 extensions/security/sessionlog/applib/pom.xml      |    2 +-
 .../sessionlog/persistence-jdo/log4j2-test.xml     |   78 -
 .../persistence-jdo/logging-dn-enhance.properties  |   41 -
 .../security/sessionlog/persistence-jdo/pom.xml    |   76 -
 .../CausewayModuleExtSessionLogPersistenceJdo.java |   63 -
 .../sessionlog/jdo/dom/SessionLogEntry.java        |  190 --
 .../jdo/dom/SessionLogEntryRepository.java         |   33 -
 .../jdo/integtests/SessionLog_IntegTest.java       |   54 -
 .../src/test/resources/application-test.yml        |   26 -
 .../security/sessionlog/persistence-jpa/pom.xml    |    8 +-
 extensions/security/sessionlog/pom.xml             |   31 +-
 extensions/security/spring-oauth2/pom.xml          |    2 +-
 extensions/vro/cors/impl/pom.xml                   |    2 +-
 extensions/vro/cors/pom.xml                        |    2 +-
 extensions/vw/fullcalendar/applib/pom.xml          |    2 +-
 extensions/vw/fullcalendar/pom.xml                 |   10 +-
 .../vw/fullcalendar/wicket/integration/pom.xml     |    2 +-
 extensions/vw/fullcalendar/wicket/pom.xml          |    2 +-
 extensions/vw/fullcalendar/wicket/ui/pom.xml       |    2 +-
 extensions/vw/pdfjs/applib/pom.xml                 |    2 +-
 extensions/vw/pdfjs/fixtures/pom.xml               |    2 +-
 extensions/vw/pdfjs/metamodel/pom.xml              |    2 +-
 extensions/vw/pdfjs/pom.xml                        |   14 +-
 extensions/vw/pdfjs/wicket/integration/pom.xml     |    2 +-
 extensions/vw/pdfjs/wicket/pom.xml                 |    2 +-
 extensions/vw/pdfjs/wicket/ui/pom.xml              |    2 +-
 extensions/vw/sse/applib/pom.xml                   |    2 +-
 extensions/vw/sse/metamodel/pom.xml                |    2 +-
 extensions/vw/sse/pom.xml                          |    8 +-
 extensions/vw/sse/wicket/pom.xml                   |    2 +-
 extensions/vw/tabular/applib/pom.xml               |    2 +-
 extensions/vw/tabular/excel/pom.xml                |    2 +-
 extensions/vw/tabular/pdf/pom.xml                  |    2 +-
 extensions/vw/tabular/pom.xml                      |    2 +-
 incubator/clients/kroviz/.gitignore                |   13 -
 incubator/clients/kroviz/.npmrc                    |    1 -
 incubator/clients/kroviz/LICENSE                   |  201 --
 incubator/clients/kroviz/README.md                 |   62 -
 incubator/clients/kroviz/TODO.adoc                 |   11 -
 incubator/clients/kroviz/adoc/antora.yml           |   19 -
 .../kroviz/adoc/modules/kroviz/images/Connect1.png |  Bin 3520 -> 0 bytes
 .../kroviz/adoc/modules/kroviz/images/Connect2.png |  Bin 13491 -> 0 bytes
 .../adoc/modules/kroviz/images/Crow_2_(PSF).png    |  Bin 309116 -> 0 bytes
 .../adoc/modules/kroviz/images/DemoPrimitives.png  |  Bin 33016 -> 0 bytes
 .../kroviz/adoc/modules/kroviz/images/DemoText.png |  Bin 18443 -> 0 bytes
 .../kroviz/adoc/modules/kroviz/images/DemoTree.png |  Bin 17584 -> 0 bytes
 .../modules/kroviz/images/Extinction_Symbol.svg    |   39 -
 .../kroviz/adoc/modules/kroviz/images/ListAll1.png |  Bin 28186 -> 0 bytes
 .../kroviz/adoc/modules/kroviz/images/ListAll2.png |  Bin 26797 -> 0 bytes
 .../adoc/modules/kroviz/images/LogEntries1.png     |  Bin 63686 -> 0 bytes
 .../adoc/modules/kroviz/images/LogEntries2.png     |  Bin 21257 -> 0 bytes
 .../adoc/modules/kroviz/images/Meuble_corbeau.png  |  Bin 9463 -> 0 bytes
 .../modules/kroviz/images/RunFixtureScript1.png    |  Bin 20294 -> 0 bytes
 .../modules/kroviz/images/RunFixtureScript2.png    |  Bin 14751 -> 0 bytes
 .../modules/kroviz/images/RunFixtureScript3.png    |  Bin 57851 -> 0 bytes
 .../modules/kroviz/images/RunFixtureScript4.png    |  Bin 25002 -> 0 bytes
 .../modules/kroviz/images/WheatFieldWithCrows.jpg  |  Bin 264883 -> 0 bytes
 .../modules/kroviz/images/WheatFieldWithCrows.png  |  Bin 282527 -> 0 bytes
 .../adoc/modules/kroviz/images/causeway_clut.png   |  Bin 214 -> 0 bytes
 .../adoc/modules/kroviz/images/demo_preview.gif    |  Bin 28473347 -> 0 bytes
 .../adoc/modules/kroviz/images/kroviz-logo.svg     |   56 -
 .../images/kroviz_Run_Debug_Configuration.png      |  Bin 76837 -> 0 bytes
 .../clients/kroviz/adoc/modules/kroviz/nav.adoc    |    4 -
 .../modules/kroviz/pages/DevelopmentGuide.adoc     |  422 ----
 .../adoc/modules/kroviz/pages/UsersGuide.adoc      |   83 -
 .../kroviz/adoc/modules/kroviz/pages/about.adoc    |   11 -
 .../kroviz/adoc/modules/kroviz/pages/credits.adoc  |   57 -
 .../adoc/modules/kroviz/pages/regression-test.adoc |   83 -
 .../kroviz/partials/design/arc-overview.adoc       |   36 -
 .../kroviz/partials/design/arc-overview.png        |  Bin 162284 -> 0 bytes
 .../partials/design/class-diagram_aggregator.adoc  |  170 --
 .../partials/design/class-diagram_layout.adoc      |  101 -
 .../design/class-diagram_transferobject.adoc       |   91 -
 .../design/collection_layout_aggregation.adoc      |   34 -
 .../collection_layout_aggregation_diagram.adoc     |  129 -
 .../kroviz/partials/design/dev-mindmap.adoc        |   59 -
 .../kroviz/partials/design/dev-overview.adoc       |   67 -
 .../kroviz/partials/design/dev-overview.png        |  Bin 88949 -> 0 bytes
 .../kroviz/partials/design/sample_plantuml.adoc    |   53 -
 .../kroviz/partials/design/sample_plantuml.png     |  Bin 243905 -> 0 bytes
 .../kroviz/partials/design/seq-aggregator.adoc     |   62 -
 .../kroviz/partials/design/seq-aggregator.png      |  Bin 306746 -> 0 bytes
 .../kroviz/partials/design/uml-handler.adoc        |   36 -
 .../modules/kroviz/partials/design/uml-handler.png |  Bin 189492 -> 0 bytes
 .../kroviz/partials/design/uml-overview.adoc       |   96 -
 .../kroviz/partials/design/uml-overview.png        |  Bin 114246 -> 0 bytes
 .../kroviz/partials/design/uml-renderer.adoc       |   63 -
 .../kroviz/partials/design/uml-renderer.png        |  Bin 167447 -> 0 bytes
 .../adoc/modules/kroviz/partials/module-nav.adoc   |    6 -
 incubator/clients/kroviz/build.gradle.kts          |  146 --
 incubator/clients/kroviz/gradle.properties         |   29 -
 .../kroviz/gradle/wrapper/gradle-wrapper.jar       |  Bin 59536 -> 0 bytes
 .../gradle/wrapper/gradle-wrapper.properties       |    5 -
 incubator/clients/kroviz/gradlew.bat               |   89 -
 incubator/clients/kroviz/gradlew.sh                |  183 --
 incubator/clients/kroviz/karma.config.d/proxy.js   |   32 -
 .../clients/kroviz/package.json.d/project.info     |    3 -
 incubator/clients/kroviz/pom.xml                   |  156 --
 incubator/clients/kroviz/settings.gradle.kts       |   35 -
 .../org/apache/causeway/client/kroviz/App.kt       |   75 -
 .../apache/causeway/client/kroviz/core/Session.kt  |   47 -
 .../kroviz/core/aggregator/ActionDispatcher.kt     |   79 -
 .../kroviz/core/aggregator/AggregatorWithLayout.kt |   53 -
 .../kroviz/core/aggregator/BaseAggregator.kt       |   98 -
 .../kroviz/core/aggregator/CollectionAggregator.kt |  194 --
 .../core/aggregator/DomainTypesAggregator.kt       |  114 -
 .../kroviz/core/aggregator/DownloadDispatcher.kt   |   30 -
 .../kroviz/core/aggregator/ErrorDispatcher.kt      |   38 -
 .../kroviz/core/aggregator/NavigationDispatcher.kt |   33 -
 .../kroviz/core/aggregator/ObjectAggregator.kt     |  135 -
 .../kroviz/core/aggregator/RestfulDispatcher.kt    |   52 -
 .../client/kroviz/core/aggregator/SvgDispatcher.kt |   37 -
 .../kroviz/core/aggregator/SystemAggregator.kt     |   72 -
 .../kroviz/core/aggregator/UndefinedDispatcher.kt  |   30 -
 .../kroviz/core/event/EventLogStatisctics.kt       |   77 -
 .../client/kroviz/core/event/EventStore.kt         |  240 --
 .../causeway/client/kroviz/core/event/LogEntry.kt  |  311 ---
 .../client/kroviz/core/event/LogEntryComparison.kt |   89 -
 .../client/kroviz/core/event/ReplayController.kt   |  131 -
 .../client/kroviz/core/event/ReplayEvent.kt        |   32 -
 .../client/kroviz/core/event/ResourceProxy.kt      |  128 -
 .../kroviz/core/event/ResourceSpecification.kt     |   67 -
 .../client/kroviz/core/event/RoXmlHttpRequest.kt   |  154 --
 .../causeway/client/kroviz/core/event/StatusPo.kt  |   26 -
 .../client/kroviz/core/model/BaseDisplayModel.kt   |   43 -
 .../client/kroviz/core/model/BaseLayout.kt         |   25 -
 .../client/kroviz/core/model/CollectionDM.kt       |   86 -
 .../client/kroviz/core/model/CollectionLayout.kt   |   53 -
 .../causeway/client/kroviz/core/model/DiagramDM.kt |   55 -
 .../kroviz/core/model/DisplayModelWithLayout.kt    |   36 -
 .../causeway/client/kroviz/core/model/Exposer.kt   |   68 -
 .../causeway/client/kroviz/core/model/ObjectDM.kt  |  131 -
 .../client/kroviz/core/model/ObjectLayout.kt       |   66 -
 .../client/kroviz/core/model/PropertyDetails.kt    |   72 -
 .../causeway/client/kroviz/core/model/SystemDM.kt  |   52 -
 .../client/kroviz/core/model/meta/MetaAction.kt    |   23 -
 .../client/kroviz/core/model/meta/MetaClass.kt     |   49 -
 .../client/kroviz/core/model/meta/MetaPackage.kt   |   23 -
 .../client/kroviz/core/model/meta/MetaProperty.kt  |   23 -
 .../client/kroviz/handler/ActionHandler.kt         |   43 -
 .../causeway/client/kroviz/handler/BaseHandler.kt  |   84 -
 .../client/kroviz/handler/CollectionHandler.kt     |   37 -
 .../client/kroviz/handler/DefaultHandler.kt        |   31 -
 .../client/kroviz/handler/DiagramHandler.kt        |   29 -
 .../client/kroviz/handler/DomainTypesHandler.kt    |   43 -
 .../client/kroviz/handler/Http401ErrorHandler.kt   |   37 -
 .../client/kroviz/handler/HttpErrorHandler.kt      |   38 -
 .../causeway/client/kroviz/handler/IconHandler.kt  |   43 -
 .../client/kroviz/handler/LayoutXmlHandler.kt      |   42 -
 .../client/kroviz/handler/PlainHandlers.kt         |   78 -
 .../client/kroviz/handler/ResponseHandler.kt       |   83 -
 .../client/kroviz/handler/RestfulHandler.kt        |   38 -
 .../client/kroviz/handler/ResultListHandler.kt     |   39 -
 .../client/kroviz/handler/ResultObjectHandler.kt   |   38 -
 .../client/kroviz/handler/ResultValueHandler.kt    |   38 -
 .../client/kroviz/handler/TObjectHandler.kt        |   41 -
 .../org/apache/causeway/client/kroviz/to/Action.kt |   46 -
 .../apache/causeway/client/kroviz/to/Argument.kt   |   38 -
 .../apache/causeway/client/kroviz/to/Collection.kt |   45 -
 .../apache/causeway/client/kroviz/to/DomainType.kt |   31 -
 .../apache/causeway/client/kroviz/to/Extensions.kt |   55 -
 .../org/apache/causeway/client/kroviz/to/Icon.kt   |    8 -
 .../org/apache/causeway/client/kroviz/to/Link.kt   |  178 --
 .../org/apache/causeway/client/kroviz/to/Member.kt |   64 -
 .../apache/causeway/client/kroviz/to/Parameter.kt  |   68 -
 .../client/kroviz/to/PlainTransferObjects.kt       |  208 --
 .../apache/causeway/client/kroviz/to/Property.kt   |   92 -
 .../apache/causeway/client/kroviz/to/TObject.kt    |   69 -
 .../causeway/client/kroviz/to/TransferObject.kt    |   23 -
 .../apache/causeway/client/kroviz/to/TypeMapper.kt |   99 -
 .../org/apache/causeway/client/kroviz/to/Value.kt  |   89 -
 .../apache/causeway/client/kroviz/to/WithLinks.kt  |   28 -
 .../causeway/client/kroviz/to/WithMembers.kt       |   28 -
 .../causeway/client/kroviz/to/bs/ActionBs.kt       |   66 -
 .../apache/causeway/client/kroviz/to/bs/ColBs.kt   |  101 -
 .../causeway/client/kroviz/to/bs/CollectionBs.kt   |   82 -
 .../causeway/client/kroviz/to/bs/DomainObjectBs.kt |   45 -
 .../causeway/client/kroviz/to/bs/FieldSetBs.kt     |   54 -
 .../apache/causeway/client/kroviz/to/bs/GridBs.kt  |   65 -
 .../apache/causeway/client/kroviz/to/bs/LinkBs.kt  |   67 -
 .../causeway/client/kroviz/to/bs/PropertyBs.kt     |   66 -
 .../apache/causeway/client/kroviz/to/bs/RowBs.kt   |   50 -
 .../apache/causeway/client/kroviz/to/bs/TabBs.kt   |   49 -
 .../causeway/client/kroviz/to/bs/TabGroupBs.kt     |   47 -
 .../causeway/client/kroviz/to/bs/XmlLayout.kt      |   26 -
 .../apache/causeway/client/kroviz/to/mb/Menu.kt    |   29 -
 .../causeway/client/kroviz/to/mb/MenuEntry.kt      |   27 -
 .../causeway/client/kroviz/to/mb/Menubars.kt       |   29 -
 .../apache/causeway/client/kroviz/to/mb/Section.kt |   28 -
 .../causeway/client/kroviz/to/mb/ServiceAction.kt  |   37 -
 .../client/kroviz/ui/builder/ColBuilder.kt         |  161 --
 .../client/kroviz/ui/builder/FieldSetBuilder.kt    |   71 -
 .../client/kroviz/ui/builder/LayoutBuilder.kt      |   37 -
 .../causeway/client/kroviz/ui/builder/RoDisplay.kt |   62 -
 .../client/kroviz/ui/builder/RowBuilder.kt         |   51 -
 .../client/kroviz/ui/builder/TabBuilder.kt         |   41 -
 .../client/kroviz/ui/builder/TabGroupBuilder.kt    |   39 -
 .../causeway/client/kroviz/ui/builder/UiBuilder.kt |   14 -
 .../client/kroviz/ui/core/ColumnFactory.kt         |  136 -
 .../causeway/client/kroviz/ui/core/Constants.kt    |   48 -
 .../causeway/client/kroviz/ui/core/Displayable.kt  |   26 -
 .../causeway/client/kroviz/ui/core/FormItem.kt     |   52 -
 .../client/kroviz/ui/core/FormPanelFactory.kt      |  252 --
 .../apache/causeway/client/kroviz/ui/core/RoApp.kt |   47 -
 .../causeway/client/kroviz/ui/core/RoDialog.kt     |  173 --
 .../causeway/client/kroviz/ui/core/RoIconBar.kt    |  157 --
 .../causeway/client/kroviz/ui/core/RoMenuBar.kt    |  249 --
 .../causeway/client/kroviz/ui/core/RoStatusBar.kt  |  191 --
 .../causeway/client/kroviz/ui/core/RoTable.kt      |  107 -
 .../causeway/client/kroviz/ui/core/RoView.kt       |   92 -
 .../client/kroviz/ui/core/SessionManager.kt        |   84 -
 .../causeway/client/kroviz/ui/core/ViewManager.kt  |  247 --
 .../client/kroviz/ui/diagram/ClassDiagram.kt       |  103 -
 .../client/kroviz/ui/diagram/JsonDiagram.kt        |    9 -
 .../client/kroviz/ui/diagram/LayoutDiagram.kt      |   61 -
 .../client/kroviz/ui/diagram/LinkTreeDiagram.kt    |  104 -
 .../causeway/client/kroviz/ui/diagram/PumlCode.kt  |   97 -
 .../causeway/client/kroviz/ui/diagram/Tree.kt      |   56 -
 .../causeway/client/kroviz/ui/dialog/About.kt      |   52 -
 .../client/kroviz/ui/dialog/ActionPrompt.kt        |  111 -
 .../client/kroviz/ui/dialog/BrowserWindow.kt       |   51 -
 .../causeway/client/kroviz/ui/dialog/Controller.kt |   41 -
 .../client/kroviz/ui/dialog/DiagramDialog.kt       |  117 -
 .../client/kroviz/ui/dialog/DownloadDialog.kt      |   41 -
 .../client/kroviz/ui/dialog/ErrorDialog.kt         |   57 -
 .../client/kroviz/ui/dialog/EventCompareDialog.kt  |   64 -
 .../client/kroviz/ui/dialog/EventDialog.kt         |   97 -
 .../client/kroviz/ui/dialog/EventExportDialog.kt   |  163 --
 .../client/kroviz/ui/dialog/EventImportDialog.kt   |  163 --
 .../client/kroviz/ui/dialog/EventLogDetail.kt      |  152 --
 .../client/kroviz/ui/dialog/EventReplayDialog.kt   |  105 -
 .../causeway/client/kroviz/ui/dialog/FileDialog.kt |   44 -
 .../client/kroviz/ui/dialog/LoginPrompt.kt         |   88 -
 .../client/kroviz/ui/dialog/NotificationDialog.kt  |   45 -
 .../kroviz/ui/dialog/ResponseComparisonDialog.kt   |   62 -
 .../client/kroviz/ui/dialog/ShellWindow.kt         |   62 -
 .../causeway/client/kroviz/ui/dialog/SvgInline.kt  |   52 -
 .../client/kroviz/ui/dialog/UndefinedDialog.kt     |   49 -
 .../kroviz/ui/kv/override/RoManagerBootstrap.kt    |   56 -
 .../causeway/client/kroviz/ui/kv/override/RoTab.kt |  194 --
 .../client/kroviz/ui/kv/override/RoTabPanel.kt     |  379 ---
 .../client/kroviz/ui/kv/override/RoWindow.kt       |  474 ----
 .../client/kroviz/ui/menu/ContextMenuBuilder.kt    |  152 --
 .../client/kroviz/ui/menu/DropDownMenuBuilder.kt   |  239 --
 .../client/kroviz/ui/menu/DynamicMenuBuilder.kt    |   95 -
 .../causeway/client/kroviz/ui/menu/MenuBuilder.kt  |   28 -
 .../client/kroviz/ui/panel/DropdownSearch.kt       |   70 -
 .../client/kroviz/ui/panel/EventBubbleChart.kt     |  280 ---
 .../client/kroviz/ui/panel/EventComparisonTable.kt |  117 -
 .../client/kroviz/ui/panel/EventLogTable.kt        |  167 --
 .../causeway/client/kroviz/ui/panel/GeoMap.kt      |   97 -
 .../causeway/client/kroviz/ui/panel/ImageSample.kt |   55 -
 .../client/kroviz/ui/panel/PlantumlPanel.kt        |   74 -
 .../causeway/client/kroviz/ui/panel/SvgMap.kt      |  460 ----
 .../causeway/client/kroviz/ui/panel/SvgPanel.kt    |   53 -
 .../causeway/client/kroviz/utils/DateHelper.kt     |   55 -
 .../apache/causeway/client/kroviz/utils/DomUtil.kt |   81 -
 .../causeway/client/kroviz/utils/FileHelper.kt     |   33 -
 .../causeway/client/kroviz/utils/IconManager.kt    |  196 --
 .../causeway/client/kroviz/utils/ImageUtils.kt     |   42 -
 .../apache/causeway/client/kroviz/utils/Point.kt   |   21 -
 .../client/kroviz/utils/ScalableVectorGraphic.kt   |  103 -
 .../causeway/client/kroviz/utils/StringUtils.kt    |  256 --
 .../causeway/client/kroviz/utils/TestUtils.kt      |   33 -
 .../apache/causeway/client/kroviz/utils/UUID.kt    |   51 -
 .../causeway/client/kroviz/utils/UmlUtils.kt       |   50 -
 .../causeway/client/kroviz/utils/UrlUtils.kt       |   48 -
 .../causeway/client/kroviz/utils/XmlHelper.kt      |   73 -
 .../causeway/client/kroviz/utils/js/AsciiDoctor.kt |   30 -
 .../apache/causeway/client/kroviz/utils/js/Diff.kt |   30 -
 .../causeway/client/kroviz/utils/js/Diff2Html.kt   |   27 -
 .../causeway/client/kroviz/utils/js/Flatted.kt     |   25 -
 .../causeway/client/kroviz/utils/js/PdfJs.kt       |   67 -
 .../causeway/client/kroviz/utils/js/XmlBeautify.kt |   25 -
 .../causeway/client/kroviz/utils/js/XmlToJson.kt   |   25 -
 .../causeway/client/kroviz/utils/js/Xterm.kt       |   29 -
 .../kroviz/src/main/resources/bootstrap3.xsd       |  167 --
 .../src/main/resources/component/component.xsd     |  189 --
 .../kroviz/src/main/resources/css/kroviz.css       |  252 --
 .../kroviz/src/main/resources/fonts/ChicagoFLF.ttf |  Bin 31256 -> 0 bytes
 .../kroviz/src/main/resources/hbs/template1.en.hbs |    2 -
 .../kroviz/src/main/resources/hbs/template1.pl.hbs |    2 -
 .../resources/img/2-2-clapperboard-png-thumb.png   |  Bin 4213 -> 0 bytes
 .../main/resources/img/Vector-based_example.svg    |   80 -
 .../src/main/resources/img/WheatFieldWithCrows.png |  Bin 282527 -> 0 bytes
 .../kroviz/src/main/resources/img/claever.svg      |  183 --
 .../kroviz/src/main/resources/img/favicon.ico      |  Bin 32038 -> 0 bytes
 .../kroviz/src/main/resources/img/favicon.svg      |  222 --
 .../src/main/resources/img/incode_we_share.jpg     |  Bin 214773 -> 0 bytes
 .../kroviz/src/main/resources/img/kroviz-logo.svg  |   56 -
 .../kroviz/src/main/resources/links/links.xsd      |   26 -
 incubator/clients/kroviz/src/main/web/index.html   |   39 -
 .../org/apache/causeway/client/kroviz/AppSpec.kt   |   32 -
 .../causeway/client/kroviz/IntegrationTest.kt      |   93 -
 .../org/apache/causeway/client/kroviz/TestUtil.kt  |   49 -
 .../causeway/client/kroviz/core/UtilsTest.kt       |  120 -
 .../kroviz/core/aggregator/ActionDispatcherTest.kt |   48 -
 .../core/aggregator/CollectionAggregatorTest.kt    |   91 -
 .../kroviz/core/aggregator/DispatchInterceptor.kt  |   19 -
 .../kroviz/core/aggregator/ObjectAggregatorTest.kt |   65 -
 .../client/kroviz/core/event/EventStoreTest.kt     |  298 ---
 .../kroviz/core/event/LogEntryDecoratorTest.kt     |   23 -
 .../client/kroviz/core/event/LogEntryTest.kt       |   52 -
 .../client/kroviz/core/model/CollectionDMTest.kt   |   81 -
 .../client/kroviz/core/model/ExposerTest.kt        |   87 -
 .../client/kroviz/core/model/FixtureResultTest.kt  |   69 -
 .../client/kroviz/handler/ActionHandlerTest.kt     |   49 -
 .../client/kroviz/handler/IconHandlerTest.kt       |   93 -
 .../client/kroviz/handler/PropertyHandlerTest.kt   |   35 -
 .../client/kroviz/handler/ResponseHandlerTest.kt   |   42 -
 .../client/kroviz/handler/RestfulHandlerTest.kt    |   39 -
 .../causeway/client/kroviz/snapshots/LAYOUT.puml   |  376 ---
 .../causeway/client/kroviz/snapshots/LAYOUT.svg    |  389 ---
 .../causeway/client/kroviz/snapshots/Response.kt   |   24 -
 .../kroviz/snapshots/ResponseRegressionTest.kt     |   79 -
 .../client/kroviz/snapshots/TestRequest.kt         |   35 -
 .../kroviz/snapshots/demo2_0_0/ACTIONS_STRINGS.kt  |   59 -
 .../snapshots/demo2_0_0/ACTIONS_STRINGS_INVOKE.kt  |  157 --
 .../snapshots/demo2_0_0/ACTIONS_TEXT_INVOKE.kt     |  168 --
 .../demo2_0_0/ACTIONS_WHEREINTHEWORLD_INVOKE.kt    |  198 --
 .../demo2_0_0/CAUSEWAY_SECURITY_ME_SERVICE.kt      |  449 ----
 .../snapshots/demo2_0_0/COLLECTION_DESCRIPTION.kt  |   52 -
 .../snapshots/demo2_0_0/DOMAIN_TYPES_PROPERTY.kt   |   50 -
 .../client/kroviz/snapshots/demo2_0_0/FILE_NODE.kt |  189 --
 .../kroviz/snapshots/demo2_0_0/HTTP_ERROR_401.kt   |   31 -
 .../kroviz/snapshots/demo2_0_0/HTTP_ERROR_403.kt   |  129 -
 .../kroviz/snapshots/demo2_0_0/HTTP_ERROR_405.kt   |  143 --
 .../kroviz/snapshots/demo2_0_0/HTTP_ERROR_500.kt   |  664 -----
 .../snapshots/demo2_0_0/JAVA_LANG_STRING_ENTITY.kt |  262 --
 .../snapshots/demo2_0_0/JAVA_LANG_STRING_JDO.kt    |  393 ---
 .../client/kroviz/snapshots/demo2_0_0/MENUBARS.kt  | 2642 --------------------
 .../snapshots/demo2_0_0/OBJECT_COLLECTION.kt       |   72 -
 .../snapshots/demo2_0_0/OBJECT_COLLECTION2.kt      |   53 -
 .../kroviz/snapshots/demo2_0_0/OBJECT_ICON.kt      |   37 -
 .../kroviz/snapshots/demo2_0_0/PRIMITIVES.kt       |  580 -----
 .../client/kroviz/snapshots/demo2_0_0/PROPERTY.kt  |   69 -
 .../snapshots/demo2_0_0/PROPERTY_DESCRIPTION.kt    |   56 -
 .../client/kroviz/snapshots/demo2_0_0/RESTFUL.kt   |   53 -
 .../snapshots/demo2_0_0/RESTFUL_DOMAIN_TYPES.kt    | 1079 --------
 .../kroviz/snapshots/demo2_0_0/Response2Handler.kt |   45 -
 .../snapshots/demo2_0_0/STRINGS_LAYOUT_XML.kt      |  217 --
 .../kroviz/snapshots/demo2_0_0/TAB_LAYOUT_XML.kt   |  188 --
 .../client/kroviz/snapshots/demo2_0_0/TEMPORALS.kt |  204 --
 .../kroviz/snapshots/knife/HTTP_ERROR_500.kt       |  154 --
 .../causeway/client/kroviz/snapshots/sample.json   |  135 -
 .../causeway/client/kroviz/snapshots/sample.xml    |  211 --
 .../causeway/client/kroviz/snapshots/sample2.json  |   82 -
 .../snapshots/simpleapp1_16_0/ACTIONS_CREATE.kt    |   73 -
 .../snapshots/simpleapp1_16_0/ACTIONS_DELETE.kt    |   62 -
 .../simpleapp1_16_0/ACTIONS_DOWNLOAD_LAYOUTS.kt    |   71 -
 .../ACTIONS_DOWNLOAD_MENUBARS_LAYOUT.kt            |   80 -
 .../simpleapp1_16_0/ACTIONS_DOWNLOAD_META_MODEL.kt |   71 -
 .../ACTIONS_DOWNLOAD_SWAGGER_SCHEMA_DEFINITION.kt  |   91 -
 .../ACTIONS_DOWNLOAD_TRANSLATIONS.kt               |   77 -
 .../simpleapp1_16_0/ACTIONS_DOWNLOAD_VALUE.kt      |   50 -
 .../simpleapp1_16_0/ACTIONS_FIND_BY_NAME.kt        |   73 -
 .../simpleapp1_16_0/ACTIONS_OPEN_SWAGGER_UI.kt     |   49 -
 .../simpleapp1_16_0/ACTIONS_RUN_FIXTURE_SCRIPT.kt  |   98 -
 .../snapshots/simpleapp1_16_0/ACTION_SO_CREATE.kt  |  172 --
 .../kroviz/snapshots/simpleapp1_16_0/CFG_1.kt      |  138 -
 .../snapshots/simpleapp1_16_0/CFG_LAYOUT_XML.kt    |  115 -
 .../kroviz/snapshots/simpleapp1_16_0/FR_OBJECT.kt  |  179 --
 .../snapshots/simpleapp1_16_0/FR_OBJECT_BAZ.kt     |  185 --
 .../snapshots/simpleapp1_16_0/FR_OBJECT_LAYOUT.kt  |  112 -
 .../simpleapp1_16_0/FR_OBJECT_PROPERTY.kt          |   55 -
 .../simpleapp1_16_0/FR_OBJECT_PROPERTY_.kt         |   58 -
 .../simpleapp1_16_0/FR_PROPERTY_DESCRIPTION.kt     |   53 -
 .../kroviz/snapshots/simpleapp1_16_0/HTTP_ERROR.kt |  106 -
 .../snapshots/simpleapp1_16_0/HTTP_ERROR_404.kt    |   31 -
 .../snapshots/simpleapp1_16_0/HTTP_ERROR_405.kt    |   99 -
 .../HTTP_ERROR_500_UNIQUE_CONSTRAINT_VIOLATION.kt  |  326 ---
 .../kroviz/snapshots/simpleapp1_16_0/PUML_SVG.kt   |   92 -
 .../kroviz/snapshots/simpleapp1_16_0/RESTFUL.kt    |   59 -
 .../simpleapp1_16_0/RESTFUL_DOMAIN_TYPES.kt        | 1312 ----------
 .../snapshots/simpleapp1_16_0/RESTFUL_MENUBARS.kt  |  404 ---
 .../snapshots/simpleapp1_16_0/RESTFUL_SERVICES.kt  |  101 -
 .../snapshots/simpleapp1_16_0/RESTFUL_USER.kt      |   46 -
 .../snapshots/simpleapp1_16_0/RESTFUL_VERSION.kt   |   49 -
 .../kroviz/snapshots/simpleapp1_16_0/SO_0.kt       |  206 --
 .../kroviz/snapshots/simpleapp1_16_0/SO_1.kt       |  219 --
 .../snapshots/simpleapp1_16_0/SO_LAYOUT_XML.kt     |  100 -
 .../snapshots/simpleapp1_16_0/SO_LIST_ALL.kt       |   63 -
 .../simpleapp1_16_0/SO_LIST_ALL_INVOKE.kt          |  120 -
 .../kroviz/snapshots/simpleapp1_16_0/SO_MENU.kt    |  100 -
 .../snapshots/simpleapp1_16_0/SO_PROPERTY.kt       |   63 -
 .../apache/causeway/client/kroviz/to/ActionTest.kt |  249 --
 .../causeway/client/kroviz/to/CollectionTest.kt    |   68 -
 .../causeway/client/kroviz/to/DomainTypeTest.kt    |   61 -
 .../causeway/client/kroviz/to/DomainTypesTest.kt   |   92 -
 .../causeway/client/kroviz/to/FeaturedTypesTest.kt |   90 -
 .../causeway/client/kroviz/to/HttpErrorTest.kt     |  148 --
 .../apache/causeway/client/kroviz/to/LinkTest.kt   |  118 -
 .../apache/causeway/client/kroviz/to/MemberTest.kt |  100 -
 .../causeway/client/kroviz/to/PropertyTest.kt      |   92 -
 .../causeway/client/kroviz/to/ResultListTest.kt    |   37 -
 .../causeway/client/kroviz/to/ResultObjectTest.kt  |   44 -
 .../causeway/client/kroviz/to/ResultValueTest.kt   |   60 -
 .../causeway/client/kroviz/to/ServiceTest.kt       |   56 -
 .../causeway/client/kroviz/to/TObjectTest.kt       |  126 -
 .../org/apache/causeway/client/kroviz/to/ToTest.kt |   29 -
 .../apache/causeway/client/kroviz/to/UserTest.kt   |   34 -
 .../causeway/client/kroviz/to/VersionTest.kt       |   35 -
 .../causeway/client/kroviz/to/bs/LayoutXmlTest.kt  |  156 --
 .../causeway/client/kroviz/to/mb/MenubarsTest.kt   |   89 -
 .../causeway/client/kroviz/ui/ClassDiagramTest.kt  |   65 -
 .../causeway/client/kroviz/ui/IconManagerTest.kt   |   38 -
 .../causeway/client/kroviz/ui/diagram/TreeTest.kt  |   56 -
 .../client/kroviz/ui/table/LinkTreeDiagramTest.kt  |   73 -
 .../client/kroviz/ui/table/TableFactoryTest.kt     |   65 -
 .../kroviz/util/ScalableVectorGraphicTest.kt       |   61 -
 .../causeway/client/kroviz/util/StringUtilsTest.kt |   41 -
 .../causeway/client/kroviz/util/XmlHelperTest.kt   |   53 -
 .../test/resources/object-layout_collection.xml    |  337 ---
 .../clients/kroviz/src/test/resources/sample.svg   |   98 -
 incubator/clients/kroviz/src/test/setup.js         |    1 -
 .../clients/kroviz/translation/messages-de.po      |   44 -
 .../clients/kroviz/translation/messages-en.po      |   44 -
 .../clients/kroviz/translation/messages-es.po      |   44 -
 incubator/clients/kroviz/translation/messages.pot  |   43 -
 .../clients/kroviz/webpack.config.d/bootstrap.js   |    3 -
 incubator/clients/kroviz/webpack.config.d/css.js   |    1 -
 incubator/clients/kroviz/webpack.config.d/file.js  |    6 -
 .../clients/kroviz/webpack.config.d/handlebars.js  |    6 -
 .../clients/kroviz/webpack.config.d/jquery.js      |    9 -
 .../clients/kroviz/webpack.config.d/moment.js      |   15 -
 .../clients/kroviz/webpack.config.d/webpack.js     |   15 -
 incubator/core/jsr303/README.adoc                  |    7 -
 incubator/core/jsr303/pom.xml                      |   75 -
 .../examples/facets/jsr303/Jsr303FacetFactory.java |   52 -
 .../facets/jsr303/Jsr303ProgModelFacets.java       |   41 -
 .../jsr303/Jsr303PropertyValidationFacet.java      |  101 -
 .../examples/facets/jsr303/CustomPattern.java      |   46 -
 .../facets/jsr303/CustomPatternValidator.java      |   41 -
 .../examples/facets/jsr303/CustomPatterns.java     |   35 -
 .../facets/jsr303/DomainObjectVanilla.java         |   38 -
 .../jsr303/DomainObjectWithBuiltInValidation.java  |   39 -
 .../jsr303/DomainObjectWithCustomValidation.java   |   36 -
 .../facets/jsr303/Jsr303FacetFacetHolder.java      |   66 -
 .../jsr303/Jsr303FacetFactoryFeatureTypes.java     |   65 -
 .../jsr303/Jsr303FacetFactoryInstantiation.java    |   33 -
 .../jsr303/Jsr303FacetFactoryProcessObject.java    |   75 -
 .../jsr303/Jsr303FacetFactoryProcessProperty.java  |   82 -
 .../facets/jsr303/Jsr303FacetInstantiation.java    |   48 -
 .../jsr303/Jsr303FacetValidatingInteraction.java   |  161 --
 incubator/extensions/core/commandreplay/pom.xml    |   12 +-
 .../extensions/core/commandreplay/primary/pom.xml  |    2 +-
 .../core/commandreplay/secondary/pom.xml           |    2 +-
 incubator/pom.xml                                  |   10 +-
 mavendeps/pom.xml                                  |    2 +-
 mavendeps/webapp/pom.xml                           |   13 +-
 persistence/commons/pom.xml                        |    2 +-
 persistence/jdbc/pom.xml                           |    2 +-
 persistence/jdo/adoc/antora.yml                    |   23 -
 .../images/hints-n-tips/diagnosing-n-plus-1.png    |  Bin 143232 -> 0 bytes
 .../party-agreementrole-agreement.png              |  Bin 10310 -> 0 bytes
 persistence/jdo/adoc/modules/ROOT/nav.adoc         |    4 -
 persistence/jdo/adoc/modules/ROOT/pages/about.adoc |   15 -
 .../disabling-persistence-by-reachability.adoc     |   91 -
 .../jdo/adoc/modules/ROOT/pages/db-schemas.adoc    |   47 -
 .../modules/ROOT/pages/dependency-injection.adoc   |   24 -
 .../jdo/adoc/modules/ROOT/pages/enhancer.adoc      |   36 -
 .../adoc/modules/ROOT/pages/hints-and-tips.adoc    |   14 -
 .../jdo/adoc/modules/ROOT/pages/mapping-guide.adoc |   18 -
 .../ROOT/pages/setup-and-configuration.adoc        |  185 --
 persistence/jdo/adoc/modules/ROOT/pages/spis.adoc  |    8 -
 .../adoc/modules/ROOT/partials/component-nav.adoc  |    2 -
 .../hints-and-tips/diagnosing-n-plus-1.adoc        |   15 -
 .../hints-and-tips/jdoql-and-timestamps.adoc       |   75 -
 .../hints-and-tips/overriding-jdo-annotations.adoc |   82 -
 .../subtype-entity-not-fully-populated.adoc        |   59 -
 .../hints-and-tips/tracing-sql-statements.adoc     |   74 -
 .../typesafe-queries-and-fetchgroups.adoc          |  110 -
 .../partials/mapping-guide/custom-value-types.adoc |  164 --
 .../mandatory-properties-in-subtypes.adoc          |   45 -
 .../partials/mapping-guide/mapping-to-a-view.adoc  |   17 -
 .../one-to-m-bidirectional-relationships.adoc      |  320 ---
 .../jdo/adoc/modules/ROOT/partials/module-nav.adoc |   15 -
 .../partials/spis/JdoEntityDiscoveryListener.adoc  |   69 -
 persistence/jdo/applib/pom.xml                     |  103 -
 .../jdo/applib/src/main/java/module-info.java      |   31 -
 .../applib/CausewayModulePersistenceJdoApplib.java |   28 -
 .../jdo/applib/services/JdoSupportService.java     |  180 --
 .../persistence/jdo/applib/types/AddressLine.java  |   72 -
 .../persistence/jdo/applib/types/Description.java  |   81 -
 .../persistence/jdo/applib/types/Email.java        |   95 -
 .../persistence/jdo/applib/types/Fqcn.java         |   73 -
 .../jdo/applib/types/LogicalTypeName.java          |   81 -
 .../persistence/jdo/applib/types/Money.java        |   79 -
 .../persistence/jdo/applib/types/Name.java         |   73 -
 .../persistence/jdo/applib/types/Notes.java        |   81 -
 .../jdo/applib/types/ObjectIdentifier.java         |   80 -
 .../persistence/jdo/applib/types/Percentage.java   |   79 -
 .../persistence/jdo/applib/types/PhoneNumber.java  |   89 -
 .../persistence/jdo/applib/types/PostalCode.java   |   73 -
 .../persistence/jdo/applib/types/ProperName.java   |   73 -
 .../persistence/jdo/applib/types/Reference.java    |   89 -
 .../persistence/jdo/applib/types/Title.java        |   73 -
 .../persistence/jdo/applib/types/UrlTemplate.java  |   73 -
 .../persistence/jdo/applib/types/Username.java     |   73 -
 persistence/jdo/datanucleus/pom.xml                |  107 -
 .../CausewayModulePersistenceJdoDatanucleus.java   |  316 ---
 ...sewayModulePersistenceJdoDatanucleusMixins.java |   50 -
 .../NonEnhancedClassesFailureAnalyzer.java         |   70 -
 .../changetracking/JdoLifecycleListener.adoc       |   66 -
 .../changetracking/JdoLifecycleListener.java       |  234 --
 .../PreAndPostValueEvaluatorServiceJdo.java        |   99 -
 .../jdo/datanucleus/changetracking/_Utils.java     |   76 -
 .../datanucleus/config/DatanucleusSettings.java    |  142 --
 .../jdo/datanucleus/dialect/DnJdoDialect.java      |   81 -
 .../entities/DnEntityStateProvider.java            |  105 -
 .../entities/DnOidStoreAndRecoverHelper.java       |   62 -
 .../entities/DnStateManagerForCauseway.java        |  314 ---
 .../entities/DnStateManagerForHollow.java          |  285 ---
 .../exrecog/JdoObjectNotFoundRecognizer.java       |   53 -
 .../jdosupport/JdoSupportServiceDefault.java       |  220 --
 .../metamodel/facets/entity/JdoEntityFacet.java    |  435 ----
 .../metamodel/facets/entity/_MetadataUtil.java     |  113 -
 .../mixins/Persistable_datanucleusVersionLong.java |   73 -
 .../Persistable_datanucleusVersionTimestamp.java   |   73 -
 .../mixins/Persistable_downloadJdoMetadata.java    |   95 -
 .../applib/CausewayBookmarkConverter.java          |   50 -
 .../applib/CausewayLocalResourcePathConverter.java |   46 -
 .../applib/CausewayMarkupConverter.java            |   46 -
 .../applib/CausewayPasswordConverter.java          |   46 -
 .../JavaAwtBufferedImageByteArrayConverter.java    |   61 -
 .../schema/v2/CausewayChangesDtoConverter.java     |   43 -
 .../schema/v2/CausewayCommandDtoConverter.java     |   43 -
 .../schema/v2/CausewayInteractionDtoConverter.java |   43 -
 .../schema/v2/CausewayOidDtoConverter.java         |   49 -
 .../time/OffsetDateTimeConverterForJdo.java        |   44 -
 .../time/OffsetTimeConverterForJdo.java            |   44 -
 .../time/ZonedDateTimeConverterForJdo.java         |   44 -
 .../valuemappings/ByteArrayBlobRdbmsMapping.java   |   51 -
 .../valuemappings/CausewayBlobMapping.java         |  132 -
 .../valuemappings/CausewayClobMapping.java         |  120 -
 .../valuetypes/DnByteIdValueSemantics.java         |   70 -
 .../valuetypes/DnCharIdValueSemantics.java         |   92 -
 .../DnDatastoreIdImplValueSemantics.java           |   85 -
 .../DnDatastoreUniqueLongIdValueSemantics.java     |   49 -
 .../valuetypes/DnIntIdValueSemantics.java          |   71 -
 .../valuetypes/DnLongIdValueSemantics.java         |   71 -
 .../valuetypes/DnObjectIdValueSemantics.java       |  113 -
 .../valuetypes/DnScoidValueSemantics.java          |   58 -
 .../valuetypes/DnShortIdValueSemantics.java        |   71 -
 .../valuetypes/DnStringIdValueSemantics.java       |   91 -
 .../valuetypes/JdoByteIdentityValueSemantics.java  |   69 -
 .../valuetypes/JdoCharIdentityValueSemantics.java  |   91 -
 .../valuetypes/JdoDatastoreIdValueSemantics.java   |   95 -
 .../valuetypes/JdoIntIdentityValueSemantics.java   |   70 -
 .../valuetypes/JdoLongIdentityValueSemantics.java  |   70 -
 .../JdoObjectIdentityValueSemantics.java           |  112 -
 .../valuetypes/JdoShortIdentityValueSemantics.java |   70 -
 .../JdoStringIdentityValueSemantics.java           |   90 -
 .../src/main/resources/META-INF/MANIFEST.MF        |    6 -
 .../src/main/resources/META-INF/spring.factories   |    2 -
 .../jdo/datanucleus/src/main/resources/plugin.xml  |  247 --
 .../oid/IdStringifierForByteIdentity_Test.java     |   70 -
 .../oid/IdStringifierForCharIdentity_Test.java     |   83 -
 ...erForDatastoreId_DatastoreIdImpl_long_Test.java |   71 -
 ...atastoreId_DatastoreUniqueLongId_long_Test.java |   70 -
 ...DatastoreId_DatastoreUniqueLongId_str_Test.java |   70 -
 .../oid/IdStringifierForIntId_Test.java            |   68 -
 .../oid/IdStringifierForIntIdentity_Test.java      |   69 -
 .../oid/IdStringifierForLongId_Test.java           |   68 -
 .../oid/IdStringifierForLongIdentity_Test.java     |   69 -
 .../oid/IdStringifierForObjectIdentity_Test.java   |   69 -
 .../oid/IdStringifierForShortIdentity_Test.java    |   69 -
 .../oid/IdStringifierForStringIdentity_Test.java   |   76 -
 .../datanucleus/test/ConfigurationExample1.java    |   49 -
 .../datanucleus/test/ConfigurationExample2.java    |   58 -
 .../datanucleus/test/ConfigurationExample3.java    |   93 -
 .../jdo/datanucleus/test/ConfigurationTest1.java   |   52 -
 .../jdo/datanucleus/test/ConfigurationTest2.java   |   43 -
 .../jdo/datanucleus/test/ConfigurationTest3.java   |   63 -
 .../jdo/datanucleus/test/JdoSettingsBean.java      |   66 -
 persistence/jdo/integration/pom.xml                |   90 -
 .../jdo/integration/src/main/java/module-info.java |   34 -
 .../CausewayModulePersistenceJdoIntegration.java   |   40 -
 .../metamodel/JdoPrimaryKeyPropertyPredicate.java  |   47 -
 .../integration/metamodel/JdoPropertyUtils.java    |   79 -
 persistence/jdo/metamodel/pom.xml                  |   75 -
 .../jdo/metamodel/src/main/java/module-info.java   |   36 -
 .../CausewayModulePersistenceJdoMetamodel.java     |   45 -
 .../jdo/metamodel/JdoProgrammingModel.java         |  144 --
 ...JdoDatastoreIdentityAnnotationFacetFactory.java |   61 -
 .../JdoDatastoreIdentityFacetAbstract.java         |   57 -
 .../JdoDatastoreIdentityFacetAnnotation.java       |   47 -
 .../object/datastoreidentity/package-info.java     |   17 -
 .../JdoPersistenceCapableFacetFactory.java         |  117 -
 .../JdoPersistenceCapableFacetFromAnnotation.java  |  147 --
 .../object/query/JdoQueriesFacetAnnotation.java    |   36 -
 .../query/JdoQueryAnnotationFacetFactory.java      |  107 -
 .../facets/object/query/JdoQueryFacetAbstract.java |   63 -
 .../object/query/JdoQueryFacetAnnotation.java      |   37 -
 .../query/MetaModelValidatorForJdoqlAbstract.java  |   98 -
 .../MetaModelValidatorForJdoqlFromClause.java      |   91 -
 .../MetaModelValidatorForJdoqlVariablesClause.java |   73 -
 .../version/JdoVersionAnnotationFacetFactory.java  |   90 -
 .../version/JdoVersionFacetFromAnnotation.java     |   45 -
 .../facets/object/version/package-info.java        |   17 -
 ...DecimalFromJdoColumnAnnotationFacetFactory.java |   91 -
 ...atoryFacetFromAbsenceOfJdoColumnAnnotation.java |   35 -
 .../MandatoryFacetFromJdoColumnAnnotation.java     |   35 -
 ...ndatoryFromJdoColumnAnnotationFacetFactory.java |  143 --
 ...actionalDigitsFacetFromJdoColumnAnnotation.java |   46 -
 .../MaxLengthFacetFromJdoColumnAnnotation.java     |   48 -
 ...xLengthFromJdoColumnAnnotationFacetFactory.java |   87 -
 ...MaxTotalDigitsFacetFromJdoColumnAnnotation.java |   47 -
 ...actionalDigitsFacetFromJdoColumnAnnotation.java |   46 -
 .../JdoNotPersistentAnnotationFacetFactory.java    |   90 -
 .../JdoNotPersistentFacetAbstract.java             |   37 -
 .../JdoNotPersistentFacetFromAnnotation.java       |   29 -
 .../DisabledFacetFromJdoPrimaryKeyAnnotation.java  |   36 -
 .../JdoPrimaryKeyAnnotationFacetFactory.java       |   66 -
 .../primarykey/JdoPrimaryKeyFacetAbstract.java     |   37 -
 .../primarykey/JdoPrimaryKeyFacetAnnotation.java   |   29 -
 .../prop/primarykey/JdoPrimaryKeyFacetImpl.java    |   29 -
 .../MandatoryFacetFromJdoPrimaryKeyAnnotation.java |   43 -
 .../facets/prop/primarykey/package-info.java       |   22 -
 .../jdo/metamodel/menu/JdoMetamodelMenu.java       |  112 -
 ...atastoreIdentityAnnotationFacetFactoryTest.java |  123 -
 ...GivenJdoPersistenceCapableFacetFactoryTest.java |  156 --
 .../query/JdoQueryAnnotationFacetFactoryTest.java  |  101 -
 .../JdoVersionAnnotationFacetFactoryTest.java      |   96 -
 ...VersionAnnotationFacetFactoryTest_validate.java |  152 --
 .../object/version/TypeIdentifierTestFactory.java  |   31 -
 ...malFromJdoColumnAnnotationFacetFactoryTest.java |  123 -
 ...oryFromJdoColumnAnnotationFacetFactoryTest.java |  149 --
 ...impleObjectWithBigDecimalColumnAnnotations.java |   89 -
 ...impleObjectWithColumnAllowsNullAnnotations.java |   95 -
 ...JdoNotPersistentAnnotationFacetFactoryTest.java |  120 -
 .../SimpleObjectWithNotPersistentColumn.java       |   35 -
 ...venJdoPrimaryKeyAnnotationFacetFactoryTest.java |  145 --
 .../primarykey/SimpleObjectWithPrimaryKey.java     |   35 -
 .../ObjectReflectorDefaultTest_object.java         |   85 -
 .../SpecificationLoaderTestAbstract.java           |  100 -
 .../testing/AbstractFacetFactoryTest.java          |  151 --
 .../persistence/jdo/metamodel/testing/Utils.java   |   54 -
 persistence/jdo/pom.xml                            |   44 -
 persistence/jdo/provider/pom.xml                   |   54 -
 .../jdo/provider/src/main/java/module-info.java    |   37 -
 .../config/JdoEntityDiscoveryListener.java         |   53 -
 .../jdo/provider/entities/JdoFacetContext.java     |   38 -
 .../JdoDatastoreIdentityFacet.java                 |   32 -
 .../JdoPersistenceCapableFacet.java                |   43 -
 .../facets/object/query/JdoNamedQuery.java         |   65 -
 .../facets/object/query/JdoQueryFacet.java         |   57 -
 .../facets/object/version/JdoVersionFacet.java     |   25 -
 .../prop/notpersistent/JdoNotPersistentFacet.java  |   34 -
 .../facets/prop/primarykey/JdoPrimaryKeyFacet.java |   34 -
 .../persistence/HasPersistenceManager.java         |   98 -
 persistence/jdo/spring/README.adoc                 |  501 ----
 persistence/jdo/spring/pom.xml                     |  113 -
 .../jdo/spring/src/main/java/module-info.java      |   42 -
 .../spring/CausewayModulePersistenceJdoSpring.java |   48 -
 .../JdoObjectRetrievalFailureException.java        |   42 -
 .../JdoOptimisticLockingFailureException.java      |   42 -
 .../exceptions/JdoResourceFailureException.java    |   45 -
 .../jdo/spring/exceptions/JdoSystemException.java  |   41 -
 .../jdo/spring/exceptions/JdoUsageException.java   |   45 -
 .../ObjectOptimisticLockingFailureException.java   |  152 --
 .../ObjectRetrievalFailureException.java           |  127 -
 .../jdo/spring/exceptions/package-info.java        |   23 -
 .../jdo/spring/integration/DefaultJdoDialect.java  |  269 --
 .../jdo/spring/integration/JdoDialect.java         |  169 --
 .../spring/integration/JdoTransactionManager.java  |  620 -----
 .../LocalPersistenceManagerFactoryBean.java        |  324 ---
 .../PersistenceManagerFactoryUtils.java            |  338 ---
 .../integration/PersistenceManagerHolder.java      |   65 -
 ...sactionAwarePersistenceManagerFactoryProxy.java |  229 --
 .../jdo/spring/integration/package-info.java       |   24 -
 .../OpenPersistenceManagerInViewFilter.java        |  162 --
 .../OpenPersistenceManagerInViewInterceptor.java   |  141 --
 .../support/SpringPersistenceManagerProxyBean.java |  229 --
 .../StandardPersistenceManagerProxyBean.java       |   71 -
 .../jdo/spring/support/package-info.java           |   23 -
 .../java/javax/transaction/Synchronization.java    |   27 -
 .../integration/JdoTransactionManagerTests.java    |  729 ------
 .../LocalPersistenceManagerFactoryTests.java       |  164 --
 .../test/integration/MockJtaTransaction.java       |   66 -
 .../support/OpenPersistenceManagerInViewTests.java |  153 --
 .../jdo/spring/src/test/resources/test.properties  |   19 -
 persistence/jpa/applib/pom.xml                     |    2 +-
 persistence/jpa/eclipselink/pom.xml                |    2 +-
 persistence/jpa/integration/pom.xml                |    2 +-
 persistence/jpa/metamodel/pom.xml                  |    2 +-
 persistence/jpa/pom.xml                            |    2 +-
 persistence/querydsl/applib/pom.xml                |    8 +-
 persistence/querydsl/integration/pom.xml           |    2 +-
 persistence/querydsl/jdo/pom.xml                   |   96 -
 .../querydsl/jdo/src/main/java/module-info.java    |   30 -
 .../jdo/CausewayModulePersistenceQueryDslJdo.java  |   43 -
 .../querydsl/jdo/query/DslQueryJdo.java            |  328 ---
 .../services/support/DetachedQueryFactoryJdo.java  |   47 -
 .../jdo/services/support/QueryDslSupportJdo.java   |  122 -
 persistence/querydsl/jpa/pom.xml                   |    2 +-
 persistence/querydsl/metamodel/pom.xml             |    2 +-
 persistence/querydsl/pom.xml                       |    4 +-
 persistence/querydsl/testsupport/pom.xml           |    2 +-
 pom.xml                                            |    3 +-
 .../base-jdo/logging-dn-enhance.properties         |   41 -
 regressiontests/base-jdo/pom.xml                   |   76 -
 .../testdomain/jdo/HasPersistenceStandardJdo.java  |   32 -
 .../causeway/testdomain/jdo/JdoBookView.java       |   61 -
 .../causeway/testdomain/jdo/JdoInventoryDao.java   |   53 -
 .../testdomain/jdo/JdoInventoryJaxbVm.java         |  193 --
 .../testdomain/jdo/JdoInventoryJaxbVm.layout.xml   |   78 -
 .../jdo/JdoInventoryJaxbVm_selectBooksForSale.java |   60 -
 .../testdomain/jdo/JdoInventoryManager.java        |   64 -
 .../testdomain/jdo/JdoInventoryResource.java       |  173 --
 .../testdomain/jdo/JdoTestApplication.java         |   27 -
 .../testdomain/jdo/JdoTestDomainModule.java        |   31 -
 .../testdomain/jdo/JdoTestDomainPersona.java       |  120 -
 .../causeway/testdomain/jdo/JdoTestFixtures.java   |   95 -
 .../jdo/RegressionTestWithJdoFixtures.java         |   47 -
 .../jdo/annotation/EntityWithIdAndVersion.java     |   51 -
 .../jdo/conf/Configuration_usingJdo.java           |   55 -
 .../causeway/testdomain/jdo/entities/JdoBook.java  |  177 --
 .../testdomain/jdo/entities/JdoBook_delete.java    |   53 -
 .../jdo/entities/JdoEntityMetaAnnotated.java       |   26 -
 .../testdomain/jdo/entities/JdoInventory.java      |   75 -
 .../testdomain/jdo/entities/JdoProduct.java        |  105 -
 .../testdomain/jdo/entities/JdoProductComment.java |   57 -
 .../LifecycleEventSubscriberJdoForTesting.java     |  104 -
 .../jdo/publishing/PublishingTestFactoryJdo.java   |  408 ---
 .../jdo/rest/JdoRestEndpointService.java           |  270 --
 regressiontests/base-jpa/pom.xml                   |    2 +-
 regressiontests/base/pom.xml                       |    8 +-
 .../testdomain/wrapperfactory/Counter.java         |   29 +-
 .../wrapperfactory/WrapperTestFixtures.java        |    4 +-
 regressiontests/bootstrapping/pom.xml              |    2 +-
 regressiontests/cmdexecauditsess/generic/pom.xml   |    2 +-
 .../persistence-jdo/log4j2-test.xml                |   78 -
 .../persistence-jdo/logging-dn-enhance.properties  |   48 -
 .../cmdexecauditsess/persistence-jdo/pom.xml       |   94 -
 .../integtests/CmdExecAuditSessLog_IntegTest.java  |   86 -
 .../jdo/integtests/model/Counter.java              |   65 -
 .../jdo/integtests/model/CounterRepository.java    |   32 -
 .../src/test/resources/application-test.yml        |   31 -
 .../cmdexecauditsess/persistence-jpa/pom.xml       |    2 +-
 regressiontests/cmdexecauditsess/pom.xml           |   24 +-
 regressiontests/config/pom.xml                     |    2 +-
 regressiontests/core-wrapperfactory/pom.xml        |    4 +-
 .../CoreWrapperFactory_IntegTestAbstract.java      |    8 +-
 .../integtests/WrapperFactory_async_IntegTest.java |    3 -
 regressiontests/cucumber/pom.xml                   |    2 +-
 regressiontests/domainmodel/pom.xml                |    2 +-
 regressiontests/eventhandling/pom.xml              |    2 +-
 regressiontests/factory/pom.xml                    |    2 +-
 regressiontests/interact/pom.xml                   |    2 +-
 regressiontests/layouts/pom.xml                    |    2 +-
 .../persistence-jdo/log4j2-debug-persistence.xml   |   75 -
 regressiontests/persistence-jdo/log4j2-test.xml    |   78 -
 regressiontests/persistence-jdo/pom.xml            |   59 -
 .../domainmodel/jdo/DomainModelTest.java           |  114 -
 .../injecting/jdo/JdoEntityInjectingTest.java      |  151 --
 .../persistence/jdo/JdoBootstrappingTest.java      |  113 -
 .../jdo/JdoExceptionTranslationTest.java           |  102 -
 ...xceptionTranslationTest_usingTransactional.java |  144 --
 .../testdomain/persistence/jdo/JdoJaxbTest.java    |   68 -
 .../testdomain/persistence/jdo/JdoQueryTest.java   |  162 --
 .../persistence/jdo/_JdoExceptionTranslator.java   |   70 -
 .../timestamping/jdo/JdoTimestampingTest.java      |   78 -
 ...actionRollbackTest_usingTransactionService.java |  107 -
 ...TransactionRollbackTest_usingTransactional.java |  121 -
 .../testdomain/wrapper/jdo/JdoWrapperSyncTest.java |   92 -
 .../datanucleus/enhancer/EnhancementHelper.java    |  311 ---
 .../resources/application-config-test.properties   |   25 -
 .../src/test/resources/junit-platform.properties   |   37 -
 regressiontests/persistence-jpa/pom.xml            |    2 +-
 regressiontests/pom.xml                            |   75 +-
 regressiontests/publishing-jpa/pom.xml             |    2 +-
 .../rest-jdo/log4j2-debug-persistence.xml          |   75 -
 regressiontests/rest-jdo/log4j2-test.xml           |   78 -
 regressiontests/rest-jdo/pom.xml                   |   78 -
 .../testdomain/rest/jdo/JsonValueEncoderTest.java  |  448 ----
 .../testdomain/rest/jdo/RestServiceStressTest.java |  116 -
 .../testdomain/rest/jdo/RestServiceTest.java       |  198 --
 .../src/test/resources/junit-platform.properties   |   37 -
 .../bootstrapping/builtin-domain-services.list     |   40 -
 .../bootstrapping/builtin-requestscoped.list       |   25 -
 .../testdomain/cucumber/is_it_friday_yet.feature   |    8 -
 regressiontests/rest-jpa/pom.xml                   |    2 +-
 regressiontests/value/pom.xml                      |    2 +-
 regressiontests/viewers-common/pom.xml             |    2 +-
 regressiontests/viewers-jdo/log4j2-test.xml        |   56 -
 regressiontests/viewers-jdo/pom.xml                |   66 -
 .../testdomain/viewers/jdo/wkt/TestAppJdoWkt.java  |  107 -
 .../viewers/jdo/wkt/InteractionTestJdoWkt.java     |  336 ---
 .../src/test/resources/junit-platform.properties   |   37 -
 regressiontests/viewers-jpa/pom.xml                |    2 +-
 enhance.sh => retired/enhance.sh                   |    0
 .../extensions/secman/delegated-shiro/pom.xml      |   63 -
 .../CausewayModuleExtSecmanDelegatedShiro.java     |   36 -
 .../shiro/realm/AuthInfoForApplicationUser.java    |   86 -
 .../realm/AuthenticationStrategyForSecMan.java     |   57 -
 .../realm/CausewayModuleExtSecmanShiroRealm.java   |  303 ---
 .../delegated/shiro/realm/PermissionForMember.java |   80 -
 ...rmissionResolverForCausewayShiroAuthorizor.java |   34 -
 ...lCollectionForApplicationUserOnSingleRealm.java |  100 -
 ...inglePrincipalForApplicationUserInAnyRealm.java |   55 -
 .../shiro/realm/PrincipalForApplicationUser.java   |  138 -
 .../secman/delegated/shiro/util/ShiroUtils.java    |   70 -
 retired/shiro/security/shiro/pom.xml               |  107 -
 .../shiro/security/shiro/src/main/adoc/antora.yml  |   19 -
 .../ini/configure-shiro-to-use-ini-realm.png       |  Bin 37054 -> 0 bytes
 .../shiro/images/ini/shiro-ini-realm.drawio.svg    |    1 -
 .../modules/shiro/images/shiro-design.drawio.svg   |    1 -
 .../shiro/src/main/adoc/modules/shiro/nav.adoc     |    4 -
 .../src/main/adoc/modules/shiro/pages/about.adoc   |  370 ---
 .../adoc/modules/shiro/partials/module-nav.adoc    |    4 -
 .../shiro/CausewayModuleSecurityShiro.java         |   47 -
 .../shiro/authentication/AuthenticatorShiro.java   |  229 --
 .../shiro/authorization/AuthorizorShiro.java       |  100 -
 .../shiro/authorization/CausewayPermission.java    |  127 -
 .../authorization/CausewayPermissionResolver.java  |   37 -
 .../shiro/context/ShiroSecurityContext.java        |   51 -
 .../permrolemapper/PermissionToRoleMapper.java     |   26 -
 .../PermissionToRoleMapperFromIni.java             |   52 -
 .../PermissionToRoleMapperFromString.java          |   37 -
 .../security/shiro/permrolemapper/Util.java        |   61 -
 .../security/shiro/webmodule/WebModuleShiro.java   |  203 --
 .../shiro/CausewayPermissionTest_setParts.java     |   57 -
 .../shiro/CausewayPermissionTest_typicalUsage.java |  146 --
 ...AuthenticatorOrAuthorizorTest_authenticate.java |  107 -
 ...ticatorOrAuthorizorTest_isVisibleInAnyRole.java |  100 -
 .../security/shiro/TypeIdentifierTestFactory.java  |   36 -
 .../CausewayPermissionTest_equals.java             |   35 -
 .../PermissionToRoleMapperFromIniTest.java         |   45 -
 .../PermissionToRoleMapperFromStringTest.java      |   45 -
 .../shiro/permrolemapper/UtilTest_parse.java       |   57 -
 .../causeway/security/shiro/permrolemapper/my.ini  |   26 -
 .../security/shiro/src/test/resources/shiro.ini    |   68 -
 .../todo-deprecation-list.txt                      |    0
 security/bypass/pom.xml                            |    2 +-
 security/keycloak/pom.xml                          |   13 +-
 security/shiro/src/main/adoc/antora.yml            |   19 -
 .../shiro/src/main/adoc/modules/shiro/nav.adoc     |    4 -
 .../src/main/adoc/modules/shiro/pages/about.adoc   |    9 -
 .../adoc/modules/shiro/partials/module-nav.adoc    |    4 -
 security/simple/pom.xml                            |    2 +-
 security/spring/pom.xml                            |    2 +-
 starters/pom.xml                                   |   76 +-
 testing/archtestsupport/applib/pom.xml             |   15 +-
 .../applib/classrules/ArchitectureJdoRules.java    |  276 --
 .../applib/domain/dom/ChamberOfCommerceCode.java   |    1 -
 .../applib/entity/jdo/JdoEntityArchTests.java      |   76 -
 .../applib/entity/jdo/dom/JdoDomModule.java        |   22 -
 .../applib/entity/jdo/dom/JdoEntity.java           |   55 -
 .../applib/entity/jdo/dom/JdoEntity2.java          |   54 -
 .../applib/entity/jdo/dom/JdoEntitySubtype.java    |   40 -
 .../applib/entity/jdo/dom/JdoService.java          |   22 -
 testing/archtestsupport/pom.xml                    |    2 +-
 testing/fakedata/applib/pom.xml                    |    2 +-
 testing/fakedata/fixtures/pom.xml                  |    4 +-
 .../demomodule/dom/FakeDataDemoObjectWithAll.java  |  104 +-
 .../FakeDataDemoObjectWithAll_tearDown.java        |    4 +-
 testing/fakedata/integtests/pom.xml                |    4 +-
 .../FakeDataModuleIntegTestAbstract.java           |    5 +-
 testing/fakedata/pom.xml                           |    2 +-
 testing/fixtures/applib/pom.xml                    |    9 +-
 .../teardown/jdo/TeardownFixtureJdoAbstract.java   |  181 --
 testing/fixtures/pom.xml                           |    4 +-
 testing/h2console/pom.xml                          |    2 +-
 testing/h2console/ui/pom.xml                       |    2 +-
 testing/hsqldbmgr/pom.xml                          |    2 +-
 testing/hsqldbmgr/ui/pom.xml                       |    2 +-
 testing/integtestsupport/applib/pom.xml            |    2 +-
 testing/integtestsupport/pom.xml                   |    4 +-
 testing/pom.xml                                    |    2 +-
 testing/specsupport/applib/pom.xml                 |    2 +-
 testing/specsupport/pom.xml                        |    2 +-
 testing/unittestsupport/applib/pom.xml             |   13 +-
 .../unittestsupport/applib/util/InjectUtils.java   |   23 +-
 .../applib/dom/sortedsets/SomeDomainObject.java    |    4 +-
 testing/unittestsupport/pom.xml                    |    2 +-
 valuetypes/asciidoc/applib/pom.xml                 |    2 +-
 valuetypes/asciidoc/builder/pom.xml                |    2 +-
 valuetypes/asciidoc/metamodel/pom.xml              |    2 +-
 valuetypes/asciidoc/persistence-jpa/pom.xml        |    2 +-
 valuetypes/asciidoc/pom.xml                        |   21 +-
 valuetypes/asciidoc/ui/pom.xml                     |    2 +-
 valuetypes/asciidoc/ui/wicket/pom.xml              |    2 +-
 valuetypes/jodatime/applib/pom.xml                 |    2 +-
 valuetypes/jodatime/integration/pom.xml            |    2 +-
 valuetypes/jodatime/pom.xml                        |    2 +-
 valuetypes/markdown/applib/pom.xml                 |    2 +-
 valuetypes/markdown/metamodel/pom.xml              |    2 +-
 valuetypes/markdown/persistence-jdo/pom.xml        |   59 -
 .../persistence-jdo/src/main/java/module-info.java |   27 -
 .../CausewayModuleValMarkdownPersistenceJdo.java   |   34 -
 .../jdo/converters/CausewayMarkdownConverter.java  |   46 -
 .../src/main/resources/META-INF/MANIFEST.MF        |    6 -
 .../persistence-jdo/src/main/resources/plugin.xml  |   48 -
 valuetypes/markdown/persistence-jpa/pom.xml        |    2 +-
 valuetypes/markdown/pom.xml                        |   20 +-
 valuetypes/markdown/ui/pom.xml                     |    2 +-
 valuetypes/markdown/ui/wicket/pom.xml              |    2 +-
 valuetypes/pom.xml                                 |    2 +-
 valuetypes/vega/applib/pom.xml                     |    2 +-
 valuetypes/vega/metamodel/pom.xml                  |    2 +-
 valuetypes/vega/persistence-jdo/pom.xml            |   58 -
 .../persistence-jdo/src/main/java/module-info.java |   27 -
 .../dn/CausewayModuleValVegaPersistenceJdo.java    |   34 -
 .../jdo/dn/converters/CausewayVegaConverter.java   |   43 -
 .../src/main/resources/META-INF/MANIFEST.MF        |    6 -
 .../persistence-jdo/src/main/resources/plugin.xml  |   49 -
 valuetypes/vega/persistence-jpa/pom.xml            |    2 +-
 valuetypes/vega/pom.xml                            |   20 +-
 valuetypes/vega/ui/pom.xml                         |    2 +-
 valuetypes/vega/ui/wicket/pom.xml                  |    2 +-
 viewers/commons/applib/pom.xml                     |    2 +-
 viewers/commons/model/pom.xml                      |    2 +-
 viewers/commons/pom.xml                            |    2 +-
 viewers/commons/prism/pom.xml                      |    2 +-
 viewers/commons/services/pom.xml                   |    2 +-
 viewers/graphql/applib/pom.xml                     |    2 +-
 viewers/graphql/model/pom.xml                      |    2 +-
 viewers/graphql/pom.xml                            |    2 +-
 viewers/graphql/test/pom.xml                       |    2 +-
 viewers/graphql/test2/pom.xml                      |    2 +-
 viewers/graphql/testsupport/pom.xml                |    2 +-
 viewers/graphql/viewer/pom.xml                     |    2 +-
 viewers/restfulobjects/applib/pom.xml              |    2 +-
 viewers/restfulobjects/client/pom.xml              |    2 +-
 viewers/restfulobjects/jaxrs-resteasy/pom.xml      |   11 +-
 viewers/restfulobjects/pom.xml                     |    2 +-
 viewers/restfulobjects/rendering/pom.xml           |    2 +-
 viewers/restfulobjects/test/pom.xml                |    2 +-
 viewers/restfulobjects/testing/pom.xml             |    2 +-
 viewers/restfulobjects/viewer/pom.xml              |    2 +-
 viewers/wicket/applib/pom.xml                      |    2 +-
 viewers/wicket/model/pom.xml                       |    2 +-
 viewers/wicket/pom.xml                             |    2 +-
 viewers/wicket/ui-test/pom.xml                     |    2 +-
 viewers/wicket/ui/pom.xml                          |   13 +-
 viewers/wicket/ui/src/main/java/module-info.java   |    1 -
 viewers/wicket/viewer/pom.xml                      |    2 +-
 1064 files changed, 661 insertions(+), 77199 deletions(-)

diff --git a/antora/pom.xml b/antora/pom.xml
index 1e08cb796f7..847b3062b61 100644
--- a/antora/pom.xml
+++ b/antora/pom.xml
@@ -25,7 +25,7 @@
 	<parent>
 		<groupId>org.apache.causeway</groupId>
 		<artifactId>causeway-bom</artifactId>
-		<version>3.4.0-SNAPSHOT</version>
+		<version>${revision}</version>
 		<relativePath>../bom/pom.xml</relativePath>
 	</parent>
 
diff --git a/api/applib/pom.xml b/api/applib/pom.xml
index 5998f6f4014..5a739ca38e7 100644
--- a/api/applib/pom.xml
+++ b/api/applib/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.causeway.core</groupId>
         <artifactId>causeway-core</artifactId>
-        <version>3.4.0-SNAPSHOT</version>
+        <version>${revision}</version>
         <relativePath>../../core/pom.xml</relativePath>
     </parent>
 
diff --git a/api/schema/pom.xml b/api/schema/pom.xml
index 87d9cd3602c..5fda97148bb 100644
--- a/api/schema/pom.xml
+++ b/api/schema/pom.xml
@@ -25,7 +25,7 @@
 	<parent>
 		<groupId>org.apache.causeway.core</groupId>
 		<artifactId>causeway-core</artifactId>
-		<version>3.4.0-SNAPSHOT</version>
+		<version>${revision}</version>
 		<relativePath>../../core/pom.xml</relativePath>
 	</parent>
 
diff --git a/bom/pom.xml b/bom/pom.xml
index 797c1b5dce4..fe70ee2270b 100644
--- a/bom/pom.xml
+++ b/bom/pom.xml
@@ -44,7 +44,7 @@ identified
     </parent>
     <groupId>org.apache.causeway</groupId>
     <artifactId>causeway-bom</artifactId>
-    <version>3.4.0-SNAPSHOT</version>
+    <version>${revision}</version>
 
     <packaging>pom</packaging>
 
@@ -55,6 +55,7 @@ identified
     </description>
 
     <properties>
+        <revision>4.0.0-SNAPSHOT</revision> <!-- can be overidden like mvn -Drevision=2.7.8 -->
 
         <!-- BUILD SPECIFICA -->
 
@@ -108,14 +109,6 @@ identified
 
         <cucumber.version>7.22.2</cucumber.version>
 
-        <datanucleus-api-jdo.version>6.0.5</datanucleus-api-jdo.version>
-        <datanucleus-api-jpa.version>6.0.2</datanucleus-api-jpa.version>
-        <datanucleus-core.version>6.0.11</datanucleus-core.version>
-        <datanucleus-jdo-api.version>3.2.1</datanucleus-jdo-api.version>
-        <datanucleus-jdo-query.version>6.0.1</datanucleus-jdo-query.version>
-        <datanucleus-jodatime.version>6.0.1</datanucleus-jodatime.version>
-        <datanucleus-rdbms.version>6.0.10</datanucleus-rdbms.version>
-
         <datasource-proxy-spring-boot-starter.version>1.11.0</datasource-proxy-spring-boot-starter.version>
 
         <datatables.version>1.13.5</datatables.version> <!-- keep in sync with
@@ -183,7 +176,6 @@ identified
         <resteasy-jaxb-provider.version>6.2.2.Final</resteasy-jaxb-provider.version>
 
         <select2.version>4.0.13</select2.version>
-        <shiro.version>2.0.2</shiro.version>
         <simpleslackapi.version>1.4.0</simpleslackapi.version>
         <slf4j-api.version>2.0.17</slf4j-api.version> <!-- also provided by
         spring-boot-starter-logging, needed to solve convergence issues -->
@@ -244,7 +236,7 @@ identified
             <dependency>
                 <groupId>org.apache.causeway.commons</groupId>
                 <artifactId>causeway-commons</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>jar</type>
                 <scope>compile</scope>
             </dependency>
@@ -255,7 +247,7 @@ identified
             <dependency>
                 <groupId>org.apache.causeway.core</groupId>
                 <artifactId>causeway-core</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>pom</type>
                 <scope>compile</scope>
             </dependency>
@@ -263,14 +255,14 @@ identified
             <dependency>
                 <groupId>org.apache.causeway.core</groupId>
                 <artifactId>causeway-applib</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>jar</type>
                 <scope>compile</scope>
             </dependency>
             <dependency>
                 <groupId>org.apache.causeway.core</groupId>
                 <artifactId>causeway-schema</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>jar</type>
                 <scope>compile</scope>
             </dependency>
@@ -278,70 +270,70 @@ identified
             <dependency>
                 <groupId>org.apache.causeway.core</groupId>
                 <artifactId>causeway-core-codegen-bytebuddy</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>jar</type>
                 <scope>compile</scope>
             </dependency>
             <dependency>
                 <groupId>org.apache.causeway.core</groupId>
                 <artifactId>causeway-core-config</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>jar</type>
                 <scope>compile</scope>
             </dependency>
             <dependency>
                 <groupId>org.apache.causeway.core</groupId>
                 <artifactId>causeway-core-interaction</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>jar</type>
                 <scope>compile</scope>
             </dependency>
             <dependency>
                 <groupId>org.apache.causeway.core</groupId>
                 <artifactId>causeway-core-internaltestsupport</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>jar</type>
                 <scope>compile</scope>
             </dependency>
             <dependency>
                 <groupId>org.apache.causeway.core</groupId>
                 <artifactId>causeway-core-metamodel</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>jar</type>
                 <scope>compile</scope>
             </dependency>
             <dependency>
                 <groupId>org.apache.causeway.core</groupId>
                 <artifactId>causeway-core-runtime</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>jar</type>
                 <scope>compile</scope>
             </dependency>
             <dependency>
                 <groupId>org.apache.causeway.core</groupId>
                 <artifactId>causeway-core-runtimeservices</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>jar</type>
                 <scope>compile</scope>
             </dependency>
             <dependency>
                 <groupId>org.apache.causeway.core</groupId>
                 <artifactId>causeway-core-security</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>jar</type>
                 <scope>compile</scope>
             </dependency>
             <dependency>
                 <groupId>org.apache.causeway.core</groupId>
                 <artifactId>causeway-core-transaction</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>jar</type>
                 <scope>compile</scope>
             </dependency>
             <dependency>
                 <groupId>org.apache.causeway.core</groupId>
                 <artifactId>causeway-core-webapp</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>jar</type>
                 <scope>compile</scope>
             </dependency>
@@ -352,7 +344,7 @@ identified
             <dependency>
                 <groupId>org.apache.causeway.persistence</groupId>
                 <artifactId>causeway-persistence-commons</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>jar</type>
                 <scope>compile</scope>
             </dependency>
@@ -360,57 +352,7 @@ identified
             <dependency>
                 <groupId>org.apache.causeway.persistence</groupId>
                 <artifactId>causeway-persistence-jdbc</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
-                <type>jar</type>
-                <scope>compile</scope>
-            </dependency>
-
-            <dependency>
-                <groupId>org.apache.causeway.persistence</groupId>
-                <artifactId>causeway-persistence-jdo</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
-                <type>pom</type>
-                <scope>compile</scope>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.causeway.persistence</groupId>
-                <artifactId>causeway-persistence-jdo-applib</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
-                <type>jar</type>
-                <scope>compile</scope>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.causeway.persistence</groupId>
-                <artifactId>causeway-persistence-jdo-provider</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
-                <type>jar</type>
-                <scope>compile</scope>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.causeway.persistence</groupId>
-                <artifactId>causeway-persistence-jdo-integration</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
-                <type>jar</type>
-                <scope>compile</scope>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.causeway.persistence</groupId>
-                <artifactId>causeway-persistence-jdo-metamodel</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
-                <type>jar</type>
-                <scope>compile</scope>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.causeway.persistence</groupId>
-                <artifactId>causeway-persistence-jdo-datanucleus</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
-                <type>jar</type>
-                <scope>compile</scope>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.causeway.persistence</groupId>
-                <artifactId>causeway-persistence-jdo-spring</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>jar</type>
                 <scope>compile</scope>
             </dependency>
@@ -418,84 +360,77 @@ identified
             <dependency>
                 <groupId>org.apache.causeway.persistence</groupId>
                 <artifactId>causeway-persistence-jpa</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>pom</type>
                 <scope>compile</scope>
             </dependency>
             <dependency>
                 <groupId>org.apache.causeway.persistence</groupId>
                 <artifactId>causeway-persistence-jpa-applib</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>jar</type>
                 <scope>compile</scope>
             </dependency>
             <dependency>
                 <groupId>org.apache.causeway.persistence</groupId>
                 <artifactId>causeway-persistence-jpa-metamodel</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>jar</type>
                 <scope>compile</scope>
             </dependency>
             <dependency>
                 <groupId>org.apache.causeway.persistence</groupId>
                 <artifactId>causeway-persistence-jpa-integration</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>jar</type>
                 <scope>compile</scope>
             </dependency>
             <dependency>
                 <groupId>org.apache.causeway.persistence</groupId>
                 <artifactId>causeway-persistence-jpa-eclipselink</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>jar</type>
                 <scope>compile</scope>
             </dependency>
             <dependency>
                 <groupId>org.apache.causeway.persistence</groupId>
                 <artifactId>causeway-persistence-querydsl</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>pom</type>
                 <scope>compile</scope>
             </dependency>
             <dependency>
                 <groupId>org.apache.causeway.persistence</groupId>
                 <artifactId>causeway-persistence-querydsl-applib</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>jar</type>
                 <scope>compile</scope>
             </dependency>
             <dependency>
                 <groupId>org.apache.causeway.persistence</groupId>
                 <artifactId>causeway-persistence-querydsl-integration</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>jar</type>
                 <scope>compile</scope>
             </dependency>
             <dependency>
                 <groupId>org.apache.causeway.persistence</groupId>
                 <artifactId>causeway-persistence-querydsl-metamodel</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
-                <type>jar</type>
-                <scope>compile</scope>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.causeway.persistence</groupId>
-                <artifactId>causeway-persistence-querydsl-jdo</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>jar</type>
                 <scope>compile</scope>
             </dependency>
             <dependency>
                 <groupId>org.apache.causeway.persistence</groupId>
                 <artifactId>causeway-persistence-querydsl-jpa</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>jar</type>
                 <scope>compile</scope>
             </dependency>
             <dependency>
                 <groupId>org.apache.causeway.persistence</groupId>
                 <artifactId>causeway-persistence-querydsl-testsupport</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>jar</type>
                 <scope>compile</scope>
             </dependency>
@@ -505,35 +440,28 @@ identified
             <dependency>
                 <groupId>org.apache.causeway.security</groupId>
                 <artifactId>causeway-security-bypass</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>jar</type>
                 <scope>compile</scope>
             </dependency>
             <dependency>
                 <groupId>org.apache.causeway.security</groupId>
                 <artifactId>causeway-security-keycloak</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
-                <type>jar</type>
-                <scope>compile</scope>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.causeway.security</groupId>
-                <artifactId>causeway-security-shiro</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>jar</type>
                 <scope>compile</scope>
             </dependency>
             <dependency>
                 <groupId>org.apache.causeway.security</groupId>
                 <artifactId>causeway-security-simple</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>jar</type>
                 <scope>compile</scope>
             </dependency>
             <dependency>
                 <groupId>org.apache.causeway.security</groupId>
                 <artifactId>causeway-security-spring</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>jar</type>
                 <scope>compile</scope>
             </dependency>
@@ -544,35 +472,35 @@ identified
             <dependency>
                 <groupId>org.apache.causeway.viewer</groupId>
                 <artifactId>causeway-viewer-commons</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>pom</type>
                 <scope>compile</scope>
             </dependency>
             <dependency>
                 <groupId>org.apache.causeway.viewer</groupId>
                 <artifactId>causeway-viewer-commons-applib</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>jar</type>
                 <scope>compile</scope>
             </dependency>
             <dependency>
                 <groupId>org.apache.causeway.viewer</groupId>
                 <artifactId>causeway-viewer-commons-model</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>jar</type>
                 <scope>compile</scope>
             </dependency>
             <dependency>
                 <groupId>org.apache.causeway.viewer</groupId>
                 <artifactId>causeway-viewer-commons-prism</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>jar</type>
                 <scope>compile</scope>
             </dependency>
             <dependency>
                 <groupId>org.apache.causeway.viewer</groupId>
                 <artifactId>causeway-viewer-commons-services</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>jar</type>
                 <scope>compile</scope>
             </dependency>
@@ -580,87 +508,87 @@ identified
             <dependency>
                 <groupId>org.apache.causeway.viewer</groupId>
                 <artifactId>causeway-viewer-graphql-applib</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
             </dependency>
             <dependency>
                 <groupId>org.apache.causeway.viewer</groupId>
                 <artifactId>causeway-viewer-graphql-model</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
             </dependency>
             <dependency>
                 <groupId>org.apache.causeway.viewer</groupId>
                 <artifactId>causeway-viewer-graphql-testsupport</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
             </dependency>
             <dependency>
                 <groupId>org.apache.causeway.viewer</groupId>
                 <artifactId>causeway-viewer-graphql-test</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
             </dependency>
             <dependency>
                 <groupId>org.apache.causeway.viewer</groupId>
                 <artifactId>causeway-viewer-graphql-test2</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
             </dependency>
             <dependency>
                 <groupId>org.apache.causeway.viewer</groupId>
                 <artifactId>causeway-viewer-graphql-viewer</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
             </dependency>
 
             <dependency>
                 <groupId>org.apache.causeway.viewer</groupId>
                 <artifactId>causeway-viewer-restfulobjects</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>pom</type>
                 <scope>compile</scope>
             </dependency>
             <dependency>
                 <groupId>org.apache.causeway.viewer</groupId>
                 <artifactId>causeway-viewer-restfulobjects-applib</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>jar</type>
                 <scope>compile</scope>
             </dependency>
             <dependency>
                 <groupId>org.apache.causeway.viewer</groupId>
                 <artifactId>causeway-viewer-restfulobjects-client</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>jar</type>
                 <scope>compile</scope>
             </dependency>
             <dependency>
                 <groupId>org.apache.causeway.viewer</groupId>
                 <artifactId>causeway-viewer-restfulobjects-jaxrsresteasy</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>jar</type>
                 <scope>compile</scope>
             </dependency>
             <dependency>
                 <groupId>org.apache.causeway.viewer</groupId>
                 <artifactId>causeway-viewer-restfulobjects-rendering</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>jar</type>
                 <scope>compile</scope>
             </dependency>
             <dependency>
                 <groupId>org.apache.causeway.viewer</groupId>
                 <artifactId>causeway-viewer-restfulobjects-test</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>jar</type>
                 <scope>compile</scope>
             </dependency>
             <dependency>
                 <groupId>org.apache.causeway.viewer</groupId>
                 <artifactId>causeway-viewer-restfulobjects-testing</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>jar</type>
                 <scope>compile</scope>
             </dependency>
             <dependency>
                 <groupId>org.apache.causeway.viewer</groupId>
                 <artifactId>causeway-viewer-restfulobjects-viewer</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>jar</type>
                 <scope>compile</scope>
             </dependency>
@@ -668,35 +596,35 @@ identified
             <dependency>
                 <groupId>org.apache.causeway.viewer</groupId>
                 <artifactId>causeway-viewer-wicket</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>pom</type>
                 <scope>compile</scope>
             </dependency>
             <dependency>
                 <groupId>org.apache.causeway.viewer</groupId>
                 <artifactId>causeway-viewer-wicket-applib</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>jar</type>
                 <scope>compile</scope>
             </dependency>
             <dependency>
                 <groupId>org.apache.causeway.viewer</groupId>
                 <artifactId>causeway-viewer-wicket-model</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>jar</type>
                 <scope>compile</scope>
             </dependency>
             <dependency>
                 <groupId>org.apache.causeway.viewer</groupId>
                 <artifactId>causeway-viewer-wicket-ui</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>jar</type>
                 <scope>compile</scope>
             </dependency>
             <dependency>
                 <groupId>org.apache.causeway.viewer</groupId>
                 <artifactId>causeway-viewer-wicket-viewer</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>jar</type>
                 <scope>compile</scope>
             </dependency>
@@ -707,21 +635,21 @@ identified
             <dependency>
                 <groupId>org.apache.causeway.testing</groupId>
                 <artifactId>causeway-testing</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>pom</type>
                 <scope>test</scope>
             </dependency>
             <dependency>
                 <groupId>org.apache.causeway.testing</groupId>
                 <artifactId>causeway-testing-fixtures</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>pom</type>
                 <scope>compile</scope>
             </dependency>
             <dependency>
                 <groupId>org.apache.causeway.testing</groupId>
                 <artifactId>causeway-testing-fixtures-applib</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>jar</type>
                 <scope>compile</scope>
             </dependency>
@@ -729,14 +657,14 @@ identified
             <dependency>
                 <groupId>org.apache.causeway.testing</groupId>
                 <artifactId>causeway-testing-unittestsupport</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>pom</type>
                 <scope>compile</scope>
             </dependency>
             <dependency>
                 <groupId>org.apache.causeway.testing</groupId>
                 <artifactId>causeway-testing-unittestsupport-applib</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>jar</type>
                 <scope>compile</scope>
             </dependency>
@@ -744,14 +672,14 @@ identified
             <dependency>
                 <groupId>org.apache.causeway.testing</groupId>
                 <artifactId>causeway-testing-integtestsupport</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>pom</type>
                 <scope>compile</scope>
             </dependency>
             <dependency>
                 <groupId>org.apache.causeway.testing</groupId>
                 <artifactId>causeway-testing-integtestsupport-applib</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>jar</type>
                 <scope>compile</scope>
             </dependency>
@@ -759,14 +687,14 @@ identified
             <dependency>
                 <groupId>org.apache.causeway.testing</groupId>
                 <artifactId>causeway-testing-specsupport</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>pom</type>
                 <scope>compile</scope>
             </dependency>
             <dependency>
                 <groupId>org.apache.causeway.testing</groupId>
                 <artifactId>causeway-testing-specsupport-applib</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>jar</type>
                 <scope>compile</scope>
             </dependency>
@@ -774,14 +702,14 @@ identified
             <dependency>
                 <groupId>org.apache.causeway.testing</groupId>
                 <artifactId>causeway-testing-archtestsupport</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>pom</type>
                 <scope>compile</scope>
             </dependency>
             <dependency>
                 <groupId>org.apache.causeway.testing</groupId>
                 <artifactId>causeway-testing-archtestsupport-applib</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>jar</type>
                 <scope>compile</scope>
             </dependency>
@@ -789,28 +717,28 @@ identified
             <dependency>
                 <groupId>org.apache.causeway.testing</groupId>
                 <artifactId>causeway-testing-fakedata</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>pom</type>
                 <scope>compile</scope>
             </dependency>
             <dependency>
                 <groupId>org.apache.causeway.testing</groupId>
                 <artifactId>causeway-testing-fakedata-applib</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>jar</type>
                 <scope>compile</scope>
             </dependency>
             <dependency>
                 <groupId>org.apache.causeway.testing</groupId>
                 <artifactId>causeway-testing-fakedata-fixtures</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>jar</type>
                 <scope>compile</scope>
             </dependency>
             <dependency>
                 <groupId>org.apache.causeway.testing</groupId>
                 <artifactId>causeway-testing-fakedata-integtests</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>jar</type>
                 <scope>compile</scope>
             </dependency>
@@ -818,14 +746,14 @@ identified
             <dependency>
                 <groupId>org.apache.causeway.testing</groupId>
                 <artifactId>causeway-testing-h2console</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>pom</type>
                 <scope>compile</scope>
             </dependency>
             <dependency>
                 <groupId>org.apache.causeway.testing</groupId>
                 <artifactId>causeway-testing-h2console-ui</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>jar</type>
                 <scope>compile</scope>
             </dependency>
@@ -833,14 +761,14 @@ identified
             <dependency>
                 <groupId>org.apache.causeway.testing</groupId>
                 <artifactId>causeway-testing-hsqldbmgr</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>pom</type>
                 <scope>compile</scope>
             </dependency>
             <dependency>
                 <groupId>org.apache.causeway.testing</groupId>
                 <artifactId>causeway-testing-hsqldbmgr-ui</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>jar</type>
                 <scope>compile</scope>
             </dependency>
@@ -850,7 +778,7 @@ identified
             <dependency>
                 <groupId>org.apache.causeway.mavendeps</groupId>
                 <artifactId>causeway-mavendeps-webapp</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>pom</type>
                 <scope>compile</scope>
             </dependency>
@@ -860,35 +788,28 @@ identified
             <dependency>
                 <groupId>org.apache.causeway.extensions</groupId>
                 <artifactId>causeway-extensions-commandlog</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>pom</type>
                 <scope>compile</scope>
             </dependency>
             <dependency>
                 <groupId>org.apache.causeway.extensions</groupId>
                 <artifactId>causeway-extensions-commandlog-applib</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>jar</type>
                 <scope>compile</scope>
             </dependency>
             <dependency>
                 <groupId>org.apache.causeway.extensions</groupId>
                 <artifactId>causeway-extensions-commandlog-applib</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>test-jar</type>
                 <scope>test</scope>
             </dependency>
-            <dependency>
-                <groupId>org.apache.causeway.extensions</groupId>
-                <artifactId>causeway-extensions-commandlog-persistence-jdo</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
-                <type>jar</type>
-                <scope>compile</scope>
-            </dependency>
             <dependency>
                 <groupId>org.apache.causeway.extensions</groupId>
                 <artifactId>causeway-extensions-commandlog-persistence-jpa</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>jar</type>
                 <scope>compile</scope>
             </dependency>
@@ -897,14 +818,14 @@ identified
             <dependency>
                 <groupId>org.apache.causeway.extensions</groupId>
                 <artifactId>causeway-extensions-docgen</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>pom</type>
                 <scope>compile</scope>
             </dependency>
             <dependency>
                 <groupId>org.apache.causeway.extensions</groupId>
                 <artifactId>causeway-extensions-docgen-help</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>jar</type>
                 <scope>compile</scope>
             </dependency>
@@ -913,35 +834,35 @@ identified
             <dependency>
                 <groupId>org.apache.causeway.extensions</groupId>
                 <artifactId>causeway-extensions-excel</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>pom</type>
                 <scope>compile</scope>
             </dependency>
             <dependency>
                 <groupId>org.apache.causeway.extensions</groupId>
                 <artifactId>causeway-extensions-excel-applib</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>jar</type>
                 <scope>compile</scope>
             </dependency>
             <dependency>
                 <groupId>org.apache.causeway.extensions</groupId>
                 <artifactId>causeway-extensions-excel-fixtures</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>jar</type>
                 <scope>compile</scope>
             </dependency>
             <dependency>
                 <groupId>org.apache.causeway.extensions</groupId>
                 <artifactId>causeway-extensions-excel-integtests</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>jar</type>
                 <scope>compile</scope>
             </dependency>
             <dependency>
                 <groupId>org.apache.causeway.extensions</groupId>
                 <artifactId>causeway-extensions-excel-testing</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>jar</type>
                 <scope>compile</scope>
             </dependency>
@@ -950,35 +871,28 @@ identified
             <dependency>
                 <groupId>org.apache.causeway.extensions</groupId>
                 <artifactId>causeway-extensions-executionlog</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>pom</type>
                 <scope>compile</scope>
             </dependency>
             <dependency>
                 <groupId>org.apache.causeway.extensions</groupId>
                 <artifactId>causeway-extensions-executionlog-applib</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>jar</type>
                 <scope>compile</scope>
             </dependency>
             <dependency>
                 <groupId>org.apache.causeway.extensions</groupId>
                 <artifactId>causeway-extensions-executionlog-applib</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>test-jar</type>
                 <scope>test</scope>
             </dependency>
-            <dependency>
-                <groupId>org.apache.causeway.extensions</groupId>
-                <artifactId>causeway-extensions-executionlog-persistence-jdo</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
-                <type>jar</type>
-                <scope>compile</scope>
-            </dependency>
             <dependency>
                 <groupId>org.apache.causeway.extensions</groupId>
                 <artifactId>causeway-extensions-executionlog-persistence-jpa</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>jar</type>
                 <scope>compile</scope>
             </dependency>
@@ -987,35 +901,28 @@ identified
             <dependency>
                 <groupId>org.apache.causeway.extensions</groupId>
                 <artifactId>causeway-extensions-executionoutbox</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>pom</type>
                 <scope>compile</scope>
             </dependency>
             <dependency>
                 <groupId>org.apache.causeway.extensions</groupId>
                 <artifactId>causeway-extensions-executionoutbox-applib</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
-                <type>jar</type>
-                <scope>compile</scope>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.causeway.extensions</groupId>
-                <artifactId>causeway-extensions-executionoutbox-persistence-jdo</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>jar</type>
                 <scope>compile</scope>
             </dependency>
             <dependency>
                 <groupId>org.apache.causeway.extensions</groupId>
                 <artifactId>causeway-extensions-executionoutbox-persistence-jpa</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>jar</type>
                 <scope>compile</scope>
             </dependency>
             <dependency>
                 <groupId>org.apache.causeway.extensions</groupId>
                 <artifactId>causeway-extensions-executionoutbox-restclient</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>jar</type>
                 <scope>compile</scope>
             </dependency>
@@ -1024,14 +931,14 @@ identified
             <dependency>
                 <groupId>org.apache.causeway.extensions</groupId>
                 <artifactId>causeway-extensions-executionrepublisher</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>pom</type>
                 <scope>compile</scope>
             </dependency>
             <dependency>
                 <groupId>org.apache.causeway.extensions</groupId>
                 <artifactId>causeway-extensions-executionoutrepublisher-applib</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>jar</type>
                 <scope>compile</scope>
             </dependency>
@@ -1040,14 +947,14 @@ identified
             <dependency>
                 <groupId>org.apache.causeway.extensions</groupId>
                 <artifactId>causeway-extensions-flyway</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>pom</type>
                 <scope>compile</scope>
             </dependency>
             <dependency>
                 <groupId>org.apache.causeway.extensions</groupId>
                 <artifactId>causeway-extensions-flyway-impl</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>jar</type>
                 <scope>compile</scope>
             </dependency>
@@ -1056,14 +963,14 @@ identified
             <dependency>
                 <groupId>org.apache.causeway.extensions</groupId>
                 <artifactId>causeway-extensions-layoutloaders</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>pom</type>
                 <scope>compile</scope>
             </dependency>
             <dependency>
                 <groupId>org.apache.causeway.extensions</groupId>
                 <artifactId>causeway-extensions-layoutloaders-github</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>jar</type>
                 <scope>compile</scope>
             </dependency>
@@ -1072,21 +979,21 @@ identified
             <dependency>
                 <groupId>org.apache.causeway.extensions</groupId>
                 <artifactId>causeway-extensions-titlecache</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>pom</type>
                 <scope>compile</scope>
             </dependency>
             <dependency>
                 <groupId>org.apache.causeway.extensions</groupId>
                 <artifactId>causeway-extensions-titlecache-applib</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>jar</type>
                 <scope>compile</scope>
             </dependency>
             <dependency>
                 <groupId>org.apache.causeway.extensions</groupId>
                 <artifactId>causeway-extensions-titlecache-caffeine</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>jar</type>
                 <scope>compile</scope>
             </dependency>
@@ -1095,35 +1002,28 @@ identified
             <dependency>
                 <groupId>org.apache.causeway.extensions</groupId>
                 <artifactId>causeway-extensions-audittrail</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>pom</type>
                 <scope>compile</scope>
             </dependency>
             <dependency>
                 <groupId>org.apache.causeway.extensions</groupId>
                 <artifactId>causeway-extensions-audittrail-applib</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>jar</type>
                 <scope>compile</scope>
             </dependency>
             <dependency>
                 <groupId>org.apache.causeway.extensions</groupId>
                 <artifactId>causeway-extensions-audittrail-applib</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <scope>test</scope>
                 <type>test-jar</type>
             </dependency>
             <dependency>
                 <groupId>org.apache.causeway.extensions</groupId>
                 <artifactId>causeway-extensions-audittrail-persistence-jpa</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
-                <type>jar</type>
-                <scope>compile</scope>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.causeway.extensions</groupId>
-                <artifactId>causeway-extensions-audittrail-persistence-jdo</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>jar</type>
                 <scope>compile</scope>
             </dependency>
@@ -1132,70 +1032,56 @@ identified
             <dependency>
                 <groupId>org.apache.causeway.extensions</groupId>
                 <artifactId>causeway-extensions-secman</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>pom</type>
                 <scope>compile</scope>
             </dependency>
             <dependency>
                 <groupId>org.apache.causeway.extensions</groupId>
                 <artifactId>causeway-extensions-secman-applib</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>jar</type>
                 <scope>compile</scope>
             </dependency>
             <dependency>
                 <groupId>org.apache.causeway.extensions</groupId>
                 <artifactId>causeway-extensions-secman-applib</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>test-jar</type>
                 <scope>test</scope>
             </dependency>
-            <dependency>
-                <groupId>org.apache.causeway.extensions</groupId>
-                <artifactId>causeway-extensions-secman-delegated-shiro</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
-                <type>jar</type>
-                <scope>compile</scope>
-            </dependency>
             <dependency>
                 <groupId>org.apache.causeway.extensions</groupId>
                 <artifactId>causeway-extensions-secman-delegated-springoauth2</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>jar</type>
                 <scope>compile</scope>
             </dependency>
             <dependency>
                 <groupId>org.apache.causeway.extensions</groupId>
                 <artifactId>causeway-extensions-secman-encryption-jbcrypt</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>jar</type>
                 <scope>compile</scope>
             </dependency>
             <dependency>
                 <groupId>org.apache.causeway.extensions</groupId>
                 <artifactId>causeway-extensions-secman-encryption-spring</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>jar</type>
                 <scope>compile</scope>
             </dependency>
             <dependency>
                 <groupId>org.apache.causeway.extensions</groupId>
                 <artifactId>causeway-extensions-secman-integration</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
-                <type>jar</type>
-                <scope>compile</scope>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.causeway.extensions</groupId>
-                <artifactId>causeway-extensions-secman-persistence-jdo</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>jar</type>
                 <scope>compile</scope>
             </dependency>
             <dependency>
                 <groupId>org.apache.causeway.extensions</groupId>
                 <artifactId>causeway-extensions-secman-persistence-jpa</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>jar</type>
                 <scope>compile</scope>
             </dependency>
@@ -1204,35 +1090,28 @@ identified
             <dependency>
                 <groupId>org.apache.causeway.extensions</groupId>
                 <artifactId>causeway-extensions-sessionlog</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>pom</type>
                 <scope>compile</scope>
             </dependency>
             <dependency>
                 <groupId>org.apache.causeway.extensions</groupId>
                 <artifactId>causeway-extensions-sessionlog-applib</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>jar</type>
                 <scope>compile</scope>
             </dependency>
             <dependency>
                 <groupId>org.apache.causeway.extensions</groupId>
                 <artifactId>causeway-extensions-sessionlog-applib</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>test-jar</type>
                 <scope>test</scope>
             </dependency>
             <dependency>
                 <groupId>org.apache.causeway.extensions</groupId>
                 <artifactId>causeway-extensions-sessionlog-persistence-jpa</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
-                <type>jar</type>
-                <scope>compile</scope>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.causeway.extensions</groupId>
-                <artifactId>causeway-extensions-sessionlog-persistence-jdo</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>jar</type>
                 <scope>compile</scope>
             </dependency>
@@ -1241,7 +1120,7 @@ identified
             <dependency>
                 <groupId>org.apache.causeway.extensions</groupId>
                 <artifactId>causeway-extensions-spring-security-oauth2</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>jar</type>
                 <scope>compile</scope>
             </dependency>
@@ -1250,14 +1129,14 @@ identified
             <dependency>
                 <groupId>org.apache.causeway.extensions</groupId>
                 <artifactId>causeway-extensions-cors</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>pom</type>
                 <scope>compile</scope>
             </dependency>
             <dependency>
                 <groupId>org.apache.causeway.extensions</groupId>
                 <artifactId>causeway-extensions-cors-impl</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>jar</type>
                 <scope>compile</scope>
             </dependency>
@@ -1266,133 +1145,133 @@ identified
             <dependency>
                 <groupId>org.apache.causeway.extensions</groupId>
                 <artifactId>causeway-extensions-tabular</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>pom</type>
                 <scope>compile</scope>
             </dependency>
             <dependency>
                 <groupId>org.apache.causeway.extensions</groupId>
                 <artifactId>causeway-extensions-tabular-applib</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>jar</type>
                 <scope>compile</scope>
             </dependency>
             <dependency>
                 <groupId>org.apache.causeway.extensions</groupId>
                 <artifactId>causeway-extensions-tabular-excel</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>jar</type>
                 <scope>compile</scope>
             </dependency>
             <dependency>
                 <groupId>org.apache.causeway.extensions</groupId>
                 <artifactId>causeway-extensions-fullcalendar</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>pom</type>
                 <scope>compile</scope>
             </dependency>
             <dependency>
                 <groupId>org.apache.causeway.extensions</groupId>
                 <artifactId>causeway-extensions-fullcalendar-applib</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>jar</type>
                 <scope>compile</scope>
             </dependency>
             <dependency>
                 <groupId>org.apache.causeway.extensions</groupId>
                 <artifactId>causeway-extensions-fullcalendar-wicket</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>pom</type>
                 <scope>compile</scope>
             </dependency>
             <dependency>
                 <groupId>org.apache.causeway.extensions</groupId>
                 <artifactId>causeway-extensions-fullcalendar-wicket-integration</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>jar</type>
                 <scope>compile</scope>
             </dependency>
             <dependency>
                 <groupId>org.apache.causeway.extensions</groupId>
                 <artifactId>causeway-extensions-fullcalendar-wicket-ui</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>jar</type>
                 <scope>compile</scope>
             </dependency>
             <dependency>
                 <groupId>org.apache.causeway.extensions</groupId>
                 <artifactId>causeway-extensions-pdfjs</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>pom</type>
                 <scope>compile</scope>
             </dependency>
             <dependency>
                 <groupId>org.apache.causeway.extensions</groupId>
                 <artifactId>causeway-extensions-pdfjs-applib</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>jar</type>
                 <scope>compile</scope>
             </dependency>
             <dependency>
                 <groupId>org.apache.causeway.extensions</groupId>
                 <artifactId>causeway-extensions-pdfjs-fixtures</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>jar</type>
                 <scope>compile</scope>
             </dependency>
             <dependency>
                 <groupId>org.apache.causeway.extensions</groupId>
                 <artifactId>causeway-extensions-pdfjs-metamodel</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>jar</type>
                 <scope>compile</scope>
             </dependency>
             <dependency>
                 <groupId>org.apache.causeway.extensions</groupId>
                 <artifactId>causeway-extensions-pdfjs-wicket</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>pom</type>
                 <scope>compile</scope>
             </dependency>
             <dependency>
                 <groupId>org.apache.causeway.extensions</groupId>
                 <artifactId>causeway-extensions-pdfjs-wicket-integration</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>jar</type>
                 <scope>compile</scope>
             </dependency>
             <dependency>
                 <groupId>org.apache.causeway.extensions</groupId>
                 <artifactId>causeway-extensions-pdfjs-wicket-ui</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>jar</type>
                 <scope>compile</scope>
             </dependency>
             <dependency>
                 <groupId>org.apache.causeway.extensions</groupId>
                 <artifactId>causeway-extensions-sse</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>pom</type>
                 <scope>compile</scope>
             </dependency>
             <dependency>
                 <groupId>org.apache.causeway.extensions</groupId>
                 <artifactId>causeway-extensions-sse-applib</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>jar</type>
                 <scope>compile</scope>
             </dependency>
             <dependency>
                 <groupId>org.apache.causeway.extensions</groupId>
                 <artifactId>causeway-extensions-sse-metamodel</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>jar</type>
                 <scope>compile</scope>
             </dependency>
             <dependency>
                 <groupId>org.apache.causeway.extensions</groupId>
                 <artifactId>causeway-extensions-sse-wicket</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>jar</type>
                 <scope>compile</scope>
             </dependency>
@@ -1402,21 +1281,21 @@ identified
             <dependency>
                 <groupId>org.apache.causeway.valuetypes</groupId>
                 <artifactId>causeway-valuetypes-jodatime</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>pom</type>
                 <scope>compile</scope>
             </dependency>
             <dependency>
                 <groupId>org.apache.causeway.valuetypes</groupId>
                 <artifactId>causeway-valuetypes-jodatime-applib</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>jar</type>
                 <scope>compile</scope>
             </dependency>
             <dependency>
                 <groupId>org.apache.causeway.valuetypes</groupId>
                 <artifactId>causeway-valuetypes-jodatime-integration</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>jar</type>
                 <scope>compile</scope>
             </dependency>
@@ -1424,56 +1303,49 @@ identified
             <dependency>
                 <groupId>org.apache.causeway.valuetypes</groupId>
                 <artifactId>causeway-valuetypes-asciidoc</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>pom</type>
                 <scope>compile</scope>
             </dependency>
             <dependency>
                 <groupId>org.apache.causeway.valuetypes</groupId>
                 <artifactId>causeway-valuetypes-asciidoc-applib</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>jar</type>
                 <scope>compile</scope>
             </dependency>
             <dependency>
                 <groupId>org.apache.causeway.valuetypes</groupId>
                 <artifactId>causeway-valuetypes-asciidoc-builder</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>jar</type>
                 <scope>compile</scope>
             </dependency>
             <dependency>
                 <groupId>org.apache.causeway.valuetypes</groupId>
                 <artifactId>causeway-valuetypes-asciidoc-metamodel</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>jar</type>
                 <scope>compile</scope>
             </dependency>
             <dependency>
                 <groupId>org.apache.causeway.valuetypes</groupId>
                 <artifactId>causeway-valuetypes-asciidoc-ui-vaa</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>jar</type>
                 <scope>compile</scope>
             </dependency>
             <dependency>
                 <groupId>org.apache.causeway.valuetypes</groupId>
                 <artifactId>causeway-valuetypes-asciidoc-ui-wkt</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
-                <type>jar</type>
-                <scope>compile</scope>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.causeway.valuetypes</groupId>
-                <artifactId>causeway-valuetypes-asciidoc-persistence-jdo</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>jar</type>
                 <scope>compile</scope>
             </dependency>
             <dependency>
                 <groupId>org.apache.causeway.valuetypes</groupId>
                 <artifactId>causeway-valuetypes-asciidoc-persistence-jpa</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>jar</type>
                 <scope>compile</scope>
             </dependency>
@@ -1481,42 +1353,35 @@ identified
             <dependency>
                 <groupId>org.apache.causeway.valuetypes</groupId>
                 <artifactId>causeway-valuetypes-markdown</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>pom</type>
                 <scope>compile</scope>
             </dependency>
             <dependency>
                 <groupId>org.apache.causeway.valuetypes</groupId>
                 <artifactId>causeway-valuetypes-markdown-applib</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>jar</type>
                 <scope>compile</scope>
             </dependency>
             <dependency>
                 <groupId>org.apache.causeway.valuetypes</groupId>
                 <artifactId>causeway-valuetypes-markdown-metamodel</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>jar</type>
                 <scope>compile</scope>
             </dependency>
             <dependency>
                 <groupId>org.apache.causeway.valuetypes</groupId>
                 <artifactId>causeway-valuetypes-markdown-ui-wkt</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
-                <type>jar</type>
-                <scope>compile</scope>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.causeway.valuetypes</groupId>
-                <artifactId>causeway-valuetypes-markdown-persistence-jdo</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>jar</type>
                 <scope>compile</scope>
             </dependency>
             <dependency>
                 <groupId>org.apache.causeway.valuetypes</groupId>
                 <artifactId>causeway-valuetypes-markdown-persistence-jpa</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>jar</type>
                 <scope>compile</scope>
             </dependency>
@@ -1524,49 +1389,42 @@ identified
             <dependency>
                 <groupId>org.apache.causeway.valuetypes</groupId>
                 <artifactId>causeway-valuetypes-vega</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>pom</type>
                 <scope>compile</scope>
             </dependency>
             <dependency>
                 <groupId>org.apache.causeway.valuetypes</groupId>
                 <artifactId>causeway-valuetypes-vega-applib</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>jar</type>
                 <scope>compile</scope>
             </dependency>
             <dependency>
                 <groupId>org.apache.causeway.valuetypes</groupId>
                 <artifactId>causeway-valuetypes-vega-metamodel</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>jar</type>
                 <scope>compile</scope>
             </dependency>
             <dependency>
                 <groupId>org.apache.causeway.valuetypes</groupId>
                 <artifactId>causeway-valuetypes-vega-ui-vaa</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>jar</type>
                 <scope>compile</scope>
             </dependency>
             <dependency>
                 <groupId>org.apache.causeway.valuetypes</groupId>
                 <artifactId>causeway-valuetypes-vega-ui-wkt</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
-                <type>jar</type>
-                <scope>compile</scope>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.causeway.valuetypes</groupId>
-                <artifactId>causeway-valuetypes-vega-persistence-jdo</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>jar</type>
                 <scope>compile</scope>
             </dependency>
             <dependency>
                 <groupId>org.apache.causeway.valuetypes</groupId>
                 <artifactId>causeway-valuetypes-vega-persistence-jpa</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>jar</type>
                 <scope>compile</scope>
             </dependency>
@@ -1576,28 +1434,28 @@ identified
             <dependency>
                 <groupId>org.apache.causeway.incubator.viewer</groupId>
                 <artifactId>causeway-viewer-graphql</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>pom</type>
                 <scope>compile</scope>
             </dependency>
             <dependency>
                 <groupId>org.apache.causeway.incubator.viewer</groupId>
                 <artifactId>causeway-viewer-graphql-applib</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>jar</type>
                 <scope>compile</scope>
             </dependency>
             <dependency>
                 <groupId>org.apache.causeway.incubator.viewer</groupId>
                 <artifactId>causeway-viewer-graphql-model</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>jar</type>
                 <scope>compile</scope>
             </dependency>
             <dependency>
                 <groupId>org.apache.causeway.incubator.viewer</groupId>
                 <artifactId>causeway-viewer-graphql-viewer</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>jar</type>
                 <scope>compile</scope>
             </dependency>
@@ -1771,11 +1629,6 @@ identified
                 <version>${querydsl.version}</version>
                 <scope>provided</scope>
             </dependency>
-            <dependency>
-                <groupId>com.querydsl</groupId>
-                <artifactId>querydsl-jdo</artifactId>
-                <version>${querydsl.version}</version>
-            </dependency>
             <dependency>
                 <groupId>com.querydsl</groupId>
                 <artifactId>querydsl-jpa</artifactId>
@@ -1854,14 +1707,6 @@ identified
                 <version>${jakarta.servlet-api.version}</version>
             </dependency>
 
-            <!-- 3.2 not available yet, instead use org.datanucleus:javax.jdo
-			<dependency>
-				<groupId>javax.jdo</groupId>
-				<artifactId>jdo-api</artifactId>
-				<version>${jdo-api.version}</version>
-			</dependency>
-			-->
-
             <!-- TODO: when used, move exclusions down -->
             <dependency>
                 <groupId>ognl</groupId>
@@ -1916,17 +1761,6 @@ identified
                 <type>pom</type>
             </dependency>
 
-            <dependency>
-                <groupId>org.apache.shiro</groupId>
-                <artifactId>shiro-core</artifactId>
-                <version>${shiro.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.shiro</groupId>
-                <artifactId>shiro-web</artifactId>
-                <version>${shiro.version}</version>
-            </dependency>
-
             <dependency>
                 <groupId>org.jspecify</groupId>
                 <artifactId>jspecify</artifactId>
@@ -2023,42 +1857,6 @@ identified
                 <version>${assertj-guava.version}</version>
             </dependency>
 
-            <dependency>
-                <groupId>org.datanucleus</groupId>
-                <artifactId>datanucleus-api-jdo</artifactId>
-                <version>${datanucleus-api-jdo.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>org.datanucleus</groupId>
-                <artifactId>datanucleus-api-jpa</artifactId>
-                <version>${datanucleus-api-jpa.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>org.datanucleus</groupId>
-                <artifactId>datanucleus-core</artifactId>
-                <version>${datanucleus-core.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>org.datanucleus</groupId>
-                <artifactId>datanucleus-jdo-query</artifactId>
-                <version>${datanucleus-jdo-query.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>org.datanucleus</groupId>
-                <artifactId>datanucleus-jodatime</artifactId>
-                <version>${datanucleus-jodatime.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>org.datanucleus</groupId>
-                <artifactId>datanucleus-rdbms</artifactId>
-                <version>${datanucleus-rdbms.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>org.datanucleus</groupId>
-                <artifactId>javax.jdo</artifactId>
-                <version>${datanucleus-jdo-api.version}</version>
-            </dependency>
-
             <dependency>
                 <groupId>org.docx4j</groupId>
                 <artifactId>docx4j-JAXB-internal</artifactId>
@@ -2842,54 +2640,6 @@ identified
                     <artifactId>clirr-maven-plugin</artifactId>
                     <version>2.8</version>
                 </plugin>
-                <plugin>
-                    <groupId>org.datanucleus</groupId>
-                    <artifactId>datanucleus-maven-plugin</artifactId>
-                    <version>${datanucleus-maven-plugin.version}</version>
-                    <configuration>
-                        <fork>${datanucleus-maven-plugin.fork}</fork>
-                        <log4jConfiguration>
-                            ${datanucleus-maven-plugin.log4jConfiguration}</log4jConfiguration>
-                        <verbose>${datanucleus-maven-plugin.verbose}</verbose>
-                    </configuration>
-                    <executions>
-                        <execution>
-                            <id>process-classes</id>
-                            <phase>process-classes</phase>
-                            <goals>
-                                <goal>enhance</goal>
-                            </goals>
-                        </execution>
-                        <execution>
-                            <id>process-test-classes</id>
-                            <phase>process-test-classes</phase>
-                            <goals>
-                                <goal>test-enhance</goal>
-                            </goals>
-                            <configuration>
-                                <metadataDirectory>
-                                    ${project.build.testOutputDirectory}</metadataDirectory>
-                            </configuration>
-                        </execution>
-                    </executions>
-                    <dependencies>
-                        <dependency>
-                            <groupId>org.datanucleus</groupId>
-                            <artifactId>datanucleus-core</artifactId>
-                            <version>${datanucleus-core.version}</version>
-                        </dependency>
-                        <dependency>
-                            <groupId>org.datanucleus</groupId>
-                            <artifactId>datanucleus-api-jdo</artifactId>
-                            <version>${datanucleus-api-jdo.version}</version>
-                        </dependency>
-                        <dependency>
-                            <groupId>org.datanucleus</groupId>
-                            <artifactId>datanucleus-jodatime</artifactId>
-                            <version>${datanucleus-jodatime.version}</version>
-                        </dependency>
-                    </dependencies>
-                </plugin>
             </plugins>
         </pluginManagement>
         <plugins>
diff --git a/build-gradle.7z b/build-gradle.7z
deleted file mode 100644
index c2899af1d4e..00000000000
Binary files a/build-gradle.7z and /dev/null differ
diff --git a/commons/pom.xml b/commons/pom.xml
index a105040cb3c..09aa960d150 100644
--- a/commons/pom.xml
+++ b/commons/pom.xml
@@ -25,7 +25,7 @@
     <parent>
         <groupId>org.apache.causeway.core</groupId>
         <artifactId>causeway-core</artifactId>
-        <version>3.4.0-SNAPSHOT</version>
+        <version>${revision}</version>
         <relativePath>../core/pom.xml</relativePath>
     </parent>
 
diff --git a/core/codegen-bytebuddy/pom.xml b/core/codegen-bytebuddy/pom.xml
index 86f8ba80a0e..7c3eab853d6 100644
--- a/core/codegen-bytebuddy/pom.xml
+++ b/core/codegen-bytebuddy/pom.xml
@@ -17,7 +17,7 @@
 	<parent>
 		<groupId>org.apache.causeway.core</groupId>
 		<artifactId>causeway-core</artifactId>
-		<version>3.4.0-SNAPSHOT</version>
+		<version>${revision}</version>
 	</parent>
 
 	<artifactId>causeway-core-codegen-bytebuddy</artifactId>
diff --git a/core/config/pom.xml b/core/config/pom.xml
index f20034d3962..8cf663d8f57 100644
--- a/core/config/pom.xml
+++ b/core/config/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.causeway.core</groupId>
         <artifactId>causeway-core</artifactId>
-        <version>3.4.0-SNAPSHOT</version>
+        <version>${revision}</version>
     </parent>
 
     <artifactId>causeway-core-config</artifactId>
diff --git a/core/config/src/main/java/org/apache/causeway/core/config/presets/CausewayPresets.java b/core/config/src/main/java/org/apache/causeway/core/config/presets/CausewayPresets.java
index 764a3abd2e7..1e2321bdbb5 100644
--- a/core/config/src/main/java/org/apache/causeway/core/config/presets/CausewayPresets.java
+++ b/core/config/src/main/java/org/apache/causeway/core/config/presets/CausewayPresets.java
@@ -32,9 +32,6 @@ public final class CausewayPresets  {
     public static final String IntrospectLazily = "classpath:/org/apache/causeway/core/config/presets/IntrospectLazily.properties";
     public static final String IntrospectFully = "classpath:/org/apache/causeway/core/config/presets/IntrospectFully.properties";
 
-    public static final String DatanucleusAutocreateNoValidate = "classpath:/org/apache/causeway/core/config/presets/DatanucleusAutocreateNoValidate.properties";
-    public static final String DatanucleusEagerlyCreateTables = "classpath:/org/apache/causeway/core/config/presets/DatanucleusEagerlyCreateTables.properties";
-
     public static final String DebugPersistence = "classpath:/org/apache/causeway/core/config/presets/DebugPersistence.properties";
     public static final String DebugRequestScopedServices = "classpath:/org/apache/causeway/core/config/presets/DebugRequestScopedServices.properties";
     public static final String DebugTransactionScopedServices = "classpath:/org/apache/causeway/core/config/presets/DebugTransactionScopedServices.properties";
diff --git a/core/config/src/main/java/org/apache/causeway/core/config/presets/DatanucleusAutocreateNoValidate.properties b/core/config/src/main/java/org/apache/causeway/core/config/presets/DatanucleusAutocreateNoValidate.properties
deleted file mode 100644
index f1254062825..00000000000
--- a/core/config/src/main/java/org/apache/causeway/core/config/presets/DatanucleusAutocreateNoValidate.properties
+++ /dev/null
@@ -1,28 +0,0 @@
-#  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.
-
-# don't do validations that consume setup time
-datanucleus.schema.autoCreateAll = true
-datanucleus.schema.validateAll = false
-#datanucleus.schema.validateTables=true
-#datanucleus.schema.validateConstraints=true
-
-datanucleus.persistenceByReachabilityAtCommit = false
-datanucleus.identifier.case = MixedCase
-datanucleus.cache.level2.type = none
-datanucleus.cache.level2.mode = ENABLE_SELECTIVE
-
diff --git a/core/config/src/main/java/org/apache/causeway/core/config/presets/DatanucleusEagerlyCreateTables.properties b/core/config/src/main/java/org/apache/causeway/core/config/presets/DatanucleusEagerlyCreateTables.properties
deleted file mode 100644
index f99430e8ba3..00000000000
--- a/core/config/src/main/java/org/apache/causeway/core/config/presets/DatanucleusEagerlyCreateTables.properties
+++ /dev/null
@@ -1,19 +0,0 @@
-#  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.
-
-# DN 6.x settings for eager table creation 
-datanucleus.schema.generateDatabase.mode=create
diff --git a/core/interaction/pom.xml b/core/interaction/pom.xml
index aa1c8ef30bd..61f5f2bb345 100644
--- a/core/interaction/pom.xml
+++ b/core/interaction/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.causeway.core</groupId>
         <artifactId>causeway-core</artifactId>
-        <version>3.4.0-SNAPSHOT</version>
+        <version>${revision}</version>
     </parent>
 
     <artifactId>causeway-core-interaction</artifactId>
diff --git a/core/internaltestsupport/pom.xml b/core/internaltestsupport/pom.xml
index 9af34715142..da30eaf61c2 100644
--- a/core/internaltestsupport/pom.xml
+++ b/core/internaltestsupport/pom.xml
@@ -17,7 +17,7 @@
 	<parent>
 		<groupId>org.apache.causeway.core</groupId>
 		<artifactId>causeway-core</artifactId>
-		<version>3.4.0-SNAPSHOT</version>
+		<version>${revision}</version>
 	</parent>
 
 	<artifactId>causeway-core-internaltestsupport</artifactId>
@@ -84,17 +84,6 @@
 			<artifactId>byte-buddy-agent</artifactId>
 		</dependency>
 
-		<!-- JDO API (non transient, provided by plugin) -->
-		<dependency>
-			<!-- v3.2 not available yet, use datanucleus staging for now -->
-			<!-- <groupId>javax.jdo</groupId> -->
-			<!-- <artifactId>jdo-api</artifactId> -->
-			<groupId>org.datanucleus</groupId>
-			<artifactId>javax.jdo</artifactId>
-			<!-- provided by plugins -->
-			<scope>provided</scope>
-		</dependency>
-
 		<!-- SPRING -->
 		<dependency>
 			<groupId>org.springframework.boot</groupId>
diff --git a/core/metamodel/pom.xml b/core/metamodel/pom.xml
index 7c7b1a81ae8..93a561db677 100644
--- a/core/metamodel/pom.xml
+++ b/core/metamodel/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.causeway.core</groupId>
         <artifactId>causeway-core</artifactId>
-        <version>3.4.0-SNAPSHOT</version>
+        <version>${revision}</version>
     </parent>
 
     <artifactId>causeway-core-metamodel</artifactId>
diff --git a/core/pom.xml b/core/pom.xml
index 491cc8570f0..f1f7f09eab0 100644
--- a/core/pom.xml
+++ b/core/pom.xml
@@ -25,7 +25,7 @@
     <parent>
         <groupId>org.apache.causeway</groupId>
         <artifactId>causeway-bom</artifactId>
-        <version>3.4.0-SNAPSHOT</version>
+        <version>${revision}</version>
         <relativePath>../bom/pom.xml</relativePath>
     </parent>
 
@@ -313,13 +313,9 @@
 
         <module>../persistence/commons</module>
         <module>../persistence/jdbc</module>
-        <module>../persistence/jdo</module>
         <module>../persistence/jpa</module>
         <module>../persistence/querydsl</module>
 
-        <module>../retired/shiro/security/shiro</module>
-        <module>../retired/shiro/extensions/secman/delegated-shiro</module>
-
     </modules>
 
 </project>
diff --git a/core/runtime/pom.xml b/core/runtime/pom.xml
index de8da4affc8..08e4028ec69 100644
--- a/core/runtime/pom.xml
+++ b/core/runtime/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.causeway.core</groupId>
         <artifactId>causeway-core</artifactId>
-        <version>3.4.0-SNAPSHOT</version>
+        <version>${revision}</version>
     </parent>
 
     <artifactId>causeway-core-runtime</artifactId>
diff --git a/core/runtimeservices/pom.xml b/core/runtimeservices/pom.xml
index c44961e517f..d31e88bb0e0 100644
--- a/core/runtimeservices/pom.xml
+++ b/core/runtimeservices/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.causeway.core</groupId>
         <artifactId>causeway-core</artifactId>
-        <version>3.4.0-SNAPSHOT</version>
+        <version>${revision}</version>
     </parent>
 
     <artifactId>causeway-core-runtimeservices</artifactId>
diff --git a/core/security/pom.xml b/core/security/pom.xml
index 754fa27a29d..bc771ac9ffe 100644
--- a/core/security/pom.xml
+++ b/core/security/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.causeway.core</groupId>
         <artifactId>causeway-core</artifactId>
-        <version>3.4.0-SNAPSHOT</version>
+        <version>${revision}</version>
     </parent>
 
     <artifactId>causeway-core-security</artifactId>
diff --git a/core/transaction/pom.xml b/core/transaction/pom.xml
index 31a119c6200..19a4865617c 100644
--- a/core/transaction/pom.xml
+++ b/core/transaction/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.causeway.core</groupId>
         <artifactId>causeway-core</artifactId>
-        <version>3.4.0-SNAPSHOT</version>
+        <version>${revision}</version>
     </parent>
 
     <artifactId>causeway-core-transaction</artifactId>
diff --git a/core/webapp/pom.xml b/core/webapp/pom.xml
index b172e74468d..25edb6f698d 100644
--- a/core/webapp/pom.xml
+++ b/core/webapp/pom.xml
@@ -17,7 +17,7 @@
 	<parent>
 		<groupId>org.apache.causeway.core</groupId>
 		<artifactId>causeway-core</artifactId>
-		<version>3.4.0-SNAPSHOT</version>
+		<version>${revision}</version>
 	</parent>
 
 	<artifactId>causeway-core-webapp</artifactId>
diff --git a/extensions/core/commandlog/applib/pom.xml b/extensions/core/commandlog/applib/pom.xml
index 97ef3c16980..a6336d913d1 100644
--- a/extensions/core/commandlog/applib/pom.xml
+++ b/extensions/core/commandlog/applib/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.causeway.extensions</groupId>
         <artifactId>causeway-extensions-commandlog</artifactId>
-        <version>3.4.0-SNAPSHOT</version>
+        <version>${revision}</version>
     </parent>
 
     <artifactId>causeway-extensions-commandlog-applib</artifactId>
diff --git a/extensions/core/commandlog/persistence-jdo/log4j2-test.xml b/extensions/core/commandlog/persistence-jdo/log4j2-test.xml
deleted file mode 100644
index 0ed7986e245..00000000000
--- a/extensions/core/commandlog/persistence-jdo/log4j2-test.xml
+++ /dev/null
@@ -1,78 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-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.
--->
-<Configuration status="WARN">
-	<Properties>
-		<Property name="PID">????</Property>
-		<Property name="LOG_EXCEPTION_CONVERSION_WORD">%xwEx</Property>
-		<Property name="LOG_LEVEL_PATTERN">%5p</Property>
-		<Property name="LOG_DATEFORMAT_PATTERN">yyyy-MM-dd HH:mm:ss.SSS</Property>
-		<Property name="CONSOLE_LOG_PATTERN">%clr{%d{${LOG_DATEFORMAT_PATTERN}}}{faint} %clr{${LOG_LEVEL_PATTERN}} %clr{${sys:PID}}{magenta} %clr{---}{faint} %clr{[%15.15t]}{faint} %clr{%-40.40c{1.}}{cyan} %clr{:}{faint} %m%n${sys:LOG_EXCEPTION_CONVERSION_WORD}</Property>
-		<Property name="FILE_LOG_PATTERN">%d{${LOG_DATEFORMAT_PATTERN}} ${LOG_LEVEL_PATTERN} ${sys:PID} --- [%t] %-40.40c{1.} : %m%n${sys:LOG_EXCEPTION_CONVERSION_WORD}</Property>
-	</Properties>
-	<Appenders>
-		<Console name="Console" target="SYSTEM_OUT" follow="true">
-			<PatternLayout pattern="${sys:CONSOLE_LOG_PATTERN}" />
-		</Console>
-	</Appenders>
-	<Loggers>
-		<Logger name="org.apache.catalina.startup.DigesterFactory" level="error" />
-		<Logger name="org.apache.catalina.util.LifecycleBase" level="error" />
-		<Logger name="org.apache.coyote.http11.Http11NioProtocol" level="warn" />
-		<logger name="org.apache.sshd.common.util.SecurityUtils" level="warn"/>
-		<Logger name="org.apache.tomcat.util.net.NioSelectorPool" level="warn" />
-		<Logger name="org.eclipse.jetty.util.component.AbstractLifeCycle" level="error" />
-		<Logger name="org.hibernate.validator.internal.util.Version" level="warn" />
-		<logger name="org.springframework.boot.actuate.endpoint.jmx" level="warn"/>
-		
-		<logger name="org.apache.directory" level="warn"/>
-		<logger name="org.apache.directory.api.ldap.model.entry.Value" level="off"/>
-		
-		<logger name="DataNucleus.Persistence" level="info"/>
-		<logger name="DataNucleus.Transaction" level="info"/>
-		<logger name="DataNucleus.Datastore.Schema" level="info"/>
-		<logger name="DataNucleus.Datastore.Native" level="info"/>
-		
-		<Root level="info">
-			<AppenderRef ref="Console" />
-		</Root>
-	</Loggers>
-</Configuration>
-
-<!-- # DataNucleus Logging Categories -->
-<!-- DataNucleus.Persistence - All messages relating to the persistence process -->
-<!-- DataNucleus.Transaction - All messages relating to transactions -->
-<!-- DataNucleus.Connection - All messages relating to Connections. -->
-<!-- DataNucleus.Query - All messages relating to queries -->
-<!-- DataNucleus.Cache - All messages relating to the DataNucleus Cache -->
-<!-- DataNucleus.MetaData - All messages relating to MetaData -->
-<!-- DataNucleus.Datastore - All general datastore messages -->
-<!-- DataNucleus.Datastore.Schema - All schema related datastore log messages -->
-<!-- DataNucleus.Datastore.Persist - All datastore persistence messages -->
-<!-- DataNucleus.Datastore.Retrieve - All datastore retrieval messages -->
-<!-- DataNucleus.Datastore.Native - Log of all 'native' statements sent to the datastore -->
-<!-- DataNucleus.General - All general operational messages -->
-<!-- DataNucleus.Lifecycle - All messages relating to object lifecycle changes -->
-<!-- DataNucleus.ValueGeneration - All messages relating to value generation -->
-<!-- DataNucleus.Enhancer - All messages from the DataNucleus Enhancer. -->
-<!-- DataNucleus.SchemaTool - All messages from DataNucleus SchemaTool -->
-<!-- DataNucleus.JDO - All messages general to JDO -->
-<!-- DataNucleus.JPA - All messages general to JPA -->
-<!-- DataNucleus.JCA - All messages relating to Connector JCA. -->
-<!-- DataNucleus.IDE - Messages from the DataNucleus IDE. -->
\ No newline at end of file
diff --git a/extensions/core/commandlog/persistence-jdo/logging-dn-enhance.properties b/extensions/core/commandlog/persistence-jdo/logging-dn-enhance.properties
deleted file mode 100644
index 515c2a29662..00000000000
--- a/extensions/core/commandlog/persistence-jdo/logging-dn-enhance.properties
+++ /dev/null
@@ -1,48 +0,0 @@
-#
-#  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.
-#
-
-log4j.appender.A1=org.apache.log4j.FileAppender
-log4j.appender.A1.File=datanucleus.log
-log4j.appender.A1.layout=org.apache.log4j.PatternLayout
-log4j.appender.A1.layout.ConversionPattern=%d{HH:mm:ss,SSS} (%t) %-5p [%c] - %m%n
-
-
-# overriding all those below... 
-log4j.category.DataNucleus=ERROR
-
-log4j.category.DataNucleus.Persistence=INFO, A1
-log4j.category.DataNucleus.Transaction=INFO, A1
-log4j.category.DataNucleus.Connection=INFO, A1
-log4j.category.DataNucleus.Query=INFO, A1
-log4j.category.DataNucleus.Cache=INFO, A1
-log4j.category.DataNucleus.MetaData=INFO, A1
-log4j.category.DataNucleus.Datastore=INFO, A1
-log4j.category.DataNucleus.Datastore.Schema=INFO, A1
-log4j.category.DataNucleus.Datastore.Persist=INFO, A1
-log4j.category.DataNucleus.Datastore.Retrieve=INFO, A1
-#Log of all 'native' statements sent to the datastore
-log4j.category.DataNucleus.Datastore.Native=INFO, A1 
-log4j.category.DataNucleus.General=INFO, A1
-#All messages relating to object lifecycle changes
-log4j.category.DataNucleus.Lifecycle=INFO, A1
-log4j.category.DataNucleus.ValueGeneration=INFO, A1
-log4j.category.DataNucleus.Enhancer=INFO, A1
-log4j.category.DataNucleus.SchemaTool=INFO, A1
-log4j.category.DataNucleus.JDO=INFO, A1
- 
\ No newline at end of file
diff --git a/extensions/core/commandlog/persistence-jdo/pom.xml b/extensions/core/commandlog/persistence-jdo/pom.xml
deleted file mode 100644
index 6b4f78daca3..00000000000
--- a/extensions/core/commandlog/persistence-jdo/pom.xml
+++ /dev/null
@@ -1,94 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  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.
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-
-    <parent>
-        <groupId>org.apache.causeway.extensions</groupId>
-        <artifactId>causeway-extensions-commandlog</artifactId>
-        <version>3.4.0-SNAPSHOT</version>
-    </parent>
-
-    <artifactId>causeway-extensions-commandlog-persistence-jdo</artifactId>
-    <name>Apache Causeway Ext - Command Log Implementation (JDO)</name>
-
-    <properties>
-        <jar-plugin.automaticModuleName>org.apache.causeway.extensions.commandlog.persistence.jdo</jar-plugin.automaticModuleName>
-        <git-plugin.propertiesDir>org/apache/causeway/extensions/commandlog/persistence-jdo</git-plugin.propertiesDir>
-    </properties>
-
-    <build>
-        <resources>
-            <resource>
-                <filtering>false</filtering>
-                <directory>src/main/resources</directory>
-            </resource>
-            <resource>
-                <filtering>false</filtering>
-                <directory>src/main/java</directory>
-                <includes>
-                    <include>**</include>
-                </includes>
-                <excludes>
-                    <exclude>**/*.java</exclude>
-                </excludes>
-            </resource>
-        </resources>
-    </build>
-
-    <dependencies>
-
-	    <dependency>
-	        <groupId>org.apache.causeway.extensions</groupId>
-	        <artifactId>causeway-extensions-commandlog-applib</artifactId>
-	    </dependency>
-
-        <!-- PERSISTENCE -->
-
-		<dependency>
-            <groupId>org.apache.causeway.persistence</groupId>
-			<artifactId>causeway-persistence-jdo-datanucleus</artifactId>
-        </dependency>
-
-        <!-- TESTING -->
-
-        <dependency>
-            <groupId>org.apache.causeway.extensions</groupId>
-            <artifactId>causeway-extensions-commandlog-applib</artifactId>
-            <scope>test</scope>
-            <type>test-jar</type>
-        </dependency>
-
-		<dependency>
-			<groupId>org.apache.causeway.testing</groupId>
-			<artifactId>causeway-testing-unittestsupport-applib</artifactId>
-            <scope>test</scope>
-		</dependency>
-
-		<dependency>
-			<groupId>org.apache.causeway.testing</groupId>
-			<artifactId>causeway-testing-integtestsupport-applib</artifactId>
-			<scope>test</scope>
-		</dependency>
-
-    </dependencies>
-
-</project>
diff --git a/extensions/core/commandlog/persistence-jdo/src/main/java/org/apache/causeway/extensions/commandlog/jdo/CausewayModuleExtCommandLogPersistenceJdo.java b/extensions/core/commandlog/persistence-jdo/src/main/java/org/apache/causeway/extensions/commandlog/jdo/CausewayModuleExtCommandLogPersistenceJdo.java
deleted file mode 100644
index 5d0ce7f1fd2..00000000000
--- a/extensions/core/commandlog/persistence-jdo/src/main/java/org/apache/causeway/extensions/commandlog/jdo/CausewayModuleExtCommandLogPersistenceJdo.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- *  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 org.apache.causeway.extensions.commandlog.jdo;
-
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Import;
-
-import org.apache.causeway.extensions.commandlog.applib.CausewayModuleExtCommandLogApplib;
-import org.apache.causeway.extensions.commandlog.jdo.dom.CommandLogEntry;
-import org.apache.causeway.extensions.commandlog.jdo.dom.CommandLogEntryRepository;
-import org.apache.causeway.persistence.jdo.datanucleus.CausewayModulePersistenceJdoDatanucleus;
-import org.apache.causeway.testing.fixtures.applib.fixturescripts.FixtureScript;
-import org.apache.causeway.testing.fixtures.applib.modules.ModuleWithFixtures;
-import org.apache.causeway.testing.fixtures.applib.teardown.jdo.TeardownFixtureJdoAbstract;
-
-/**
- * @since 2.0 {@index}
- */
-@Configuration
-@Import({
-        // modules
-        CausewayModuleExtCommandLogApplib.class,
-        CausewayModulePersistenceJdoDatanucleus.class,
-
-        // @Service's
-        CommandLogEntryRepository.class,
-
-        // entities
-        CommandLogEntry.class
-})
-public class CausewayModuleExtCommandLogPersistenceJdo {
-
-    public static final String NAMESPACE = CausewayModuleExtCommandLogApplib.NAMESPACE;
-    public static final String SCHEMA = CausewayModuleExtCommandLogApplib.SCHEMA;
-
-    /**
-     * Note that this is <i>NOT</i> an implementation of the {@link ModuleWithFixtures#getTeardownFixture()} API;
-     * but is provided to allow manual teardown if required.
-     */
-    public FixtureScript teardownFixture() {
-        return new TeardownFixtureJdoAbstract() {
-            @Override
-            protected void execute(final ExecutionContext executionContext) {
-                deleteFrom(CommandLogEntry.class);
-            }
-        };
-    }
-
-}
diff --git a/extensions/core/commandlog/persistence-jdo/src/main/java/org/apache/causeway/extensions/commandlog/jdo/dom/CommandLogEntry.java b/extensions/core/commandlog/persistence-jdo/src/main/java/org/apache/causeway/extensions/commandlog/jdo/dom/CommandLogEntry.java
deleted file mode 100644
index f21d38c2ed2..00000000000
--- a/extensions/core/commandlog/persistence-jdo/src/main/java/org/apache/causeway/extensions/commandlog/jdo/dom/CommandLogEntry.java
+++ /dev/null
@@ -1,318 +0,0 @@
-/*
- *  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 org.apache.causeway.extensions.commandlog.jdo.dom;
-
-import java.util.UUID;
-
-import javax.jdo.annotations.Column;
-import javax.jdo.annotations.IdentityType;
-import javax.jdo.annotations.Index;
-import javax.jdo.annotations.Indices;
-import javax.jdo.annotations.PersistenceCapable;
-import javax.jdo.annotations.Persistent;
-import javax.jdo.annotations.PrimaryKey;
-import javax.jdo.annotations.Queries;
-import javax.jdo.annotations.Query;
-
-import jakarta.inject.Named;
-import jakarta.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
-
-import org.apache.causeway.applib.annotation.Domain;
-import org.apache.causeway.applib.annotation.DomainObject;
-import org.apache.causeway.applib.annotation.Editing;
-import org.apache.causeway.applib.annotation.Publishing;
-import org.apache.causeway.applib.jaxb.PersistentEntityAdapter;
-import org.apache.causeway.applib.services.bookmark.Bookmark;
-import org.apache.causeway.extensions.commandlog.applib.dom.CommandLogEntry.Nq;
-import org.apache.causeway.schema.cmd.v2.CommandDto;
-
-import lombok.Getter;
-import lombok.NoArgsConstructor;
-import lombok.Setter;
-
-@PersistenceCapable(
-        identityType = IdentityType.APPLICATION,
-        schema = CommandLogEntry.SCHEMA,
-        table = CommandLogEntry.TABLE)
-@Indices({
-        @Index(name = "CommandLogEntry__startedAt_timestamp__IDX", members = { "startedAt", "timestamp" }),
-        @Index(name = "CommandLogEntry__timestamp__IDX", members = { "timestamp" }),
-})
-@Queries( {
-    @Query(
-            name  = Nq.FIND_BY_INTERACTION_ID,
-            value = "SELECT "
-                  + "  FROM " + CommandLogEntry.FQCN + " "
-                  + " WHERE interactionId == :interactionId "),
-    @Query(
-            name  = Nq.FIND_RECENT_BY_TARGET,
-            value = "SELECT "
-                  + "  FROM " + CommandLogEntry.FQCN + " "
-                  + " WHERE target == :target "
-                  + " ORDER BY timestamp DESC "
-                  + " RANGE 0,30"),
-    @Query(
-            name  = Nq.FIND_RECENT_BY_TARGET_OR_RESULT,
-            value = "SELECT "
-                  + "  FROM " + CommandLogEntry.FQCN + " "
-                  + " WHERE target == :targetOrResult "
-                  + "    || result == :targetOrResult "
-                  + " ORDER BY timestamp DESC "
-                  + " RANGE 0,30"),
-    @Query(
-            name  = Nq.FIND_BY_TARGET_AND_TIMESTAMP_BETWEEN,
-            value = "SELECT "
-                  + "  FROM " + CommandLogEntry.FQCN + " "
-                  + " WHERE target == :target "
-                  + "    && timestamp >= :from "
-                  + "    && timestamp <= :to "
-                  + " ORDER BY timestamp DESC"),
-    @Query(
-            name  = Nq.FIND_BY_TARGET_AND_TIMESTAMP_AFTER,
-            value = "SELECT "
-                  + "  FROM " + CommandLogEntry.FQCN + " "
-                  + " WHERE target == :target "
-                  + "    && timestamp >= :from "
-                  + " ORDER BY timestamp DESC"),
-    @Query(
-            name  = Nq.FIND_BY_TARGET_AND_TIMESTAMP_BEFORE,
-            value = "SELECT "
-                  + "  FROM " + CommandLogEntry.FQCN + " "
-                  + " WHERE target == :target "
-                  + "    && timestamp <= :to "
-                  + " ORDER BY timestamp DESC"),
-    @Query(
-            name  = Nq.FIND_BY_TARGET,
-            value = "SELECT "
-                  + "  FROM " + CommandLogEntry.FQCN + " "
-                  + " WHERE target == :target "
-                  + " ORDER BY timestamp DESC"),
-    @Query(
-            name  = Nq.FIND_BY_TIMESTAMP_BETWEEN,
-            value = "SELECT "
-                  + "  FROM " + CommandLogEntry.FQCN + " "
-                  + " WHERE timestamp >= :from "
-                  + "    && timestamp <= :to "
-                  + " ORDER BY timestamp DESC"),
-    @Query(
-            name  = Nq.FIND_BY_TIMESTAMP_AFTER,
-            value = "SELECT "
-                  + "  FROM " + CommandLogEntry.FQCN + " "
-                  + " WHERE timestamp >= :from "
-                  + " ORDER BY timestamp DESC"),
-    @Query(
-            name  = Nq.FIND_BY_TIMESTAMP_BEFORE,
-            value = "SELECT "
-                  + "  FROM " + CommandLogEntry.FQCN + " "
-                  + " WHERE timestamp <= :to "
-                  + " ORDER BY timestamp DESC"),
-    @Query(
-            name  = Nq.FIND,
-            value = "SELECT "
-                  + "  FROM " + CommandLogEntry.FQCN + " "
-                  + " ORDER BY timestamp DESC"),
-    @Query(
-            name = Nq.FIND_MOST_RECENT,
-            value = "SELECT "
-                  + "  FROM " + CommandLogEntry.FQCN + " "
-                  + " ORDER BY timestamp DESC, interactionId DESC"
-                  + " RANGE 0,100"),
-    @Query(
-            name  = Nq.FIND_RECENT_BY_USERNAME,
-            value = "SELECT "
-                  + "  FROM " + CommandLogEntry.FQCN + " "
-                  + " WHERE username == :username "
-                  + " ORDER BY timestamp DESC "
-                  + " RANGE 0,30"),
-    @Query(
-            name  = Nq.FIND_BY_PARENT_INTERACTION_ID,
-            value = "SELECT "
-                    + "  FROM " + CommandLogEntry.FQCN + " "
-                    + " WHERE parentInteractionId == :parentInteractionId "),
-    @Query(
-            name  = Nq.FIND_CURRENT,
-            value = "SELECT "
-                    + "  FROM " + CommandLogEntry.FQCN + " "
-                    + " WHERE completedAt == null "
-                    + " ORDER BY timestamp DESC"),
-    @Query(
-            name  = Nq.FIND_COMPLETED,
-            value = "SELECT "
-                    + "  FROM " + CommandLogEntry.FQCN + " "
-                    + " WHERE completedAt != null "
-                    + " ORDER BY timestamp DESC"),
-    @Query(
-            name  = Nq.FIND_FIRST,
-            value = "SELECT "
-                  + "  FROM " + CommandLogEntry.FQCN + " "
-                  + " WHERE startedAt   != null "
-                  + "    && completedAt != null "
-                  + " ORDER BY timestamp ASC "
-                  + " RANGE 0,2"), // this should be RANGE 0,1 but results in DataNucleus submitting "FETCH NEXT ROW ONLY"
-                                   // which SQL Server doesn't understand.  However, as workaround, SQL Server *does* understand FETCH NEXT 2 ROWS ONLY
-    @Query(
-            name  = Nq.FIND_SINCE,
-            value = "SELECT "
-                  + "FROM " + CommandLogEntry.FQCN + " "
-                  + " WHERE timestamp > :timestamp "
-                  + "   && startedAt != null "
-                  + "   && completedAt != null "
-                  + "ORDER BY timestamp ASC"),
-    @Query(
-            name  = Nq.FIND_BACKGROUND_AND_NOT_YET_STARTED,
-            value = "SELECT "
-                  + "  FROM " + CommandLogEntry.FQCN + " "
-                  + " WHERE executeIn == 'BACKGROUND' "
-                  + "    && startedAt == null "
-                  + " ORDER BY timestamp ASC "),
-    @Query(
-            name  = Nq.FIND_RECENT_BACKGROUND_BY_TARGET,
-            value = "SELECT "
-                    + "  FROM " + CommandLogEntry.FQCN + " "
-                    + " WHERE executeIn == 'BACKGROUND' "
-                    + "    && target    == :target "
-                    + " ORDER BY timestamp DESC"),
-    @Query(
-            name  = Nq.FIND_MOST_RECENT_REPLAYED,
-            value = "SELECT "
-                  + "  FROM " + CommandLogEntry.FQCN + " "
-                  + " WHERE (replayState == 'OK' || replayState == 'FAILED') "
-                  + " ORDER BY timestamp DESC "
-                  + " RANGE 0,2"), // this should be RANGE 0,1 but results in DataNucleus submitting "FETCH NEXT ROW ONLY"
-                                   // which SQL Server doesn't understand.  However, as workaround, SQL Server *does* understand FETCH NEXT 2 ROWS ONLY
-
-    @Query(
-            name  = Nq.FIND_MOST_RECENT_COMPLETED,
-            value = "SELECT "
-                  + "  FROM " + CommandLogEntry.FQCN + " "
-                  + " WHERE startedAt   != null "
-                  + "    && completedAt != null "
-                  + " ORDER BY timestamp DESC "
-                  + " RANGE 0,2"), // this should be RANGE 0,1 but results in DataNucleus submitting "FETCH NEXT ROW ONLY"
-                                   // which SQL Server doesn't understand.  However, as workaround, SQL Server *does* understand FETCH NEXT 2 ROWS ONLY
-    @Query(
-            name  = Nq.FIND_BY_REPLAY_STATE,
-            value = "SELECT "
-                  + "  FROM " + CommandLogEntry.FQCN + " "
-                  + " WHERE replayState == :replayState "
-                  + " ORDER BY timestamp ASC "
-                  + " RANGE 0,10"),    // same as batch size
-})
-@Named(CommandLogEntry.LOGICAL_TYPE_NAME)
-@DomainObject(
-        editing = Editing.DISABLED,
-        entityChangePublishing = Publishing.DISABLED
-)
-@XmlJavaTypeAdapter(PersistentEntityAdapter.class)
-@NoArgsConstructor
-public class CommandLogEntry
-extends org.apache.causeway.extensions.commandlog.applib.dom.CommandLogEntry {
-
-    protected final static String FQCN = "org.apache.causeway.extensions.commandlog.jdo.dom.CommandLogEntry";
-
-    /**
-     * Intended for use on secondary (replay) system.
-     *
-     * @param commandDto - obtained from the primary system as a representation of a command invocation
-     * @param replayState - controls whether this is to be replayed
-     * @param targetIndex - if the command represents a bulk action, then it is flattened out when replayed; this indicates which target to execute against.
-     */
-    public CommandLogEntry(
-            final CommandDto commandDto,
-            final org.apache.causeway.extensions.commandlog.applib.dom.ReplayState replayState,
-            final int targetIndex) {
-        super(commandDto, replayState, targetIndex);
-    }
-
-    @PrimaryKey
-    @Column(allowsNull = InteractionId.ALLOWS_NULL, length = InteractionId.MAX_LENGTH)
-    @InteractionId
-    @Getter @Setter
-    private UUID interactionId;
-
-    @Column(allowsNull = Username.ALLOWS_NULL, length = Username.MAX_LENGTH)
-    @Username
-    @Getter @Setter
-    private String username;
-
-    @Column(allowsNull = Timestamp.ALLOWS_NULL)
-    @Timestamp
-    @Getter @Setter
-    private java.sql.Timestamp timestamp;
-
-    @Persistent
-    @Column(allowsNull = Target.ALLOWS_NULL, length = Target.MAX_LENGTH)
-    @Target
-    @Getter @Setter
-    private Bookmark target;
-
-    @Column(allowsNull = ExecuteIn.ALLOWS_NULL, length = ExecuteIn.MAX_LENGTH)
-    @ExecuteIn
-    @Getter @Setter
-    private org.apache.causeway.extensions.commandlog.applib.dom.ExecuteIn executeIn;
-
-    @Column(allowsNull = Parent.ALLOWS_NULL, length = InteractionId.MAX_LENGTH)
-    @Domain.Exclude
-    @Getter @Setter
-    private UUID parentInteractionId;
-
-    @Column(allowsNull = LogicalMemberIdentifier.ALLOWS_NULL, length = LogicalMemberIdentifier.MAX_LENGTH)
-    @LogicalMemberIdentifier
-    @Getter @Setter
-    private String logicalMemberIdentifier;
-
-    @Persistent
-    @Column(allowsNull = CommandDtoAnnot.ALLOWS_NULL, jdbcType = "CLOB")
-    @CommandDtoAnnot
-    @Getter @Setter
-    private CommandDto commandDto;
-
-    @Column(allowsNull = StartedAt.ALLOWS_NULL)
-    @StartedAt
-    @Getter @Setter
-    private java.sql.Timestamp startedAt;
-
-    @Column(allowsNull = CompletedAt.ALLOWS_NULL)
-    @CompletedAt
-    @Getter @Setter
-    private java.sql.Timestamp completedAt;
-
-    @Persistent
-    @Column(allowsNull = Result.ALLOWS_NULL, length = Result.MAX_LENGTH)
-    @Result
-    @Getter @Setter
-    private Bookmark result;
-
-    @Persistent
-    @Column(allowsNull = Exception.ALLOWS_NULL, jdbcType = "CLOB")
-    @Exception
-    @Getter @Setter
-    private String exception;
-
-    @Column(allowsNull = ReplayState.ALLOWS_NULL, length = ReplayState.MAX_LENGTH)
-    @ReplayState
-    @Getter @Setter
-    private org.apache.causeway.extensions.commandlog.applib.dom.ReplayState replayState;
-
-    @Column(allowsNull = ReplayStateFailureReason.ALLOWS_NULL, length = ReplayStateFailureReason.MAX_LENGTH)
-    @ReplayStateFailureReason
-    @Getter @Setter
-    private String replayStateFailureReason;
-
-}
diff --git a/extensions/core/commandlog/persistence-jdo/src/main/java/org/apache/causeway/extensions/commandlog/jdo/dom/CommandLogEntryRepository.java b/extensions/core/commandlog/persistence-jdo/src/main/java/org/apache/causeway/extensions/commandlog/jdo/dom/CommandLogEntryRepository.java
deleted file mode 100644
index dd842dd714c..00000000000
--- a/extensions/core/commandlog/persistence-jdo/src/main/java/org/apache/causeway/extensions/commandlog/jdo/dom/CommandLogEntryRepository.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- *  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 org.apache.causeway.extensions.commandlog.jdo.dom;
-
-import jakarta.inject.Named;
-
-import org.springframework.beans.factory.annotation.Qualifier;
-import org.springframework.stereotype.Service;
-
-import org.apache.causeway.applib.annotation.PriorityPrecedence;
-import org.apache.causeway.extensions.commandlog.applib.dom.CommandLogEntryRepositoryAbstract;
-import org.apache.causeway.extensions.commandlog.jdo.CausewayModuleExtCommandLogPersistenceJdo;
-
-/**
- * Provides supporting functionality for querying and persisting
- * {@link CommandLogEntry command} entities.
- */
-@Service
-@Named(CommandLogEntryRepository.LOGICAL_TYPE_NAME)
-@jakarta.annotation.Priority(PriorityPrecedence.MIDPOINT)
-@Qualifier("Jdo")
-public class CommandLogEntryRepository
-extends CommandLogEntryRepositoryAbstract<CommandLogEntry> {
-
-    public static final String LOGICAL_TYPE_NAME = CausewayModuleExtCommandLogPersistenceJdo.NAMESPACE + ".CommandLogEntryRepository";
-
-    public CommandLogEntryRepository() {
-        super(CommandLogEntry.class);
-    }
-
-    /**
-     * The DN annotation processor (from artifact {@literal org.datanucleus:datanucleus-jdo-query})
-     * should  generate Q classes under 'target/generated-sources/annotations'.
-     * @see "https://www.datanucleus.org/products/accessplatform_6_0/jdo/query.html#jdoql"
-     */
-    @SuppressWarnings("unused")
-    private void ensureWeHaveQClasses() {
-        // ensures at compile time, that Q classes are generated
-        org.apache.causeway.extensions.commandlog.jdo.dom.QCommandLogEntry q;
-    }
-
-}
diff --git a/extensions/core/commandlog/persistence-jdo/src/test/java/org/apache/causeway/extensions/commandlog/jdo/integtests/AppManifest.java b/extensions/core/commandlog/persistence-jdo/src/test/java/org/apache/causeway/extensions/commandlog/jdo/integtests/AppManifest.java
deleted file mode 100644
index 3019c84c193..00000000000
--- a/extensions/core/commandlog/persistence-jdo/src/test/java/org/apache/causeway/extensions/commandlog/jdo/integtests/AppManifest.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- *  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 org.apache.causeway.extensions.commandlog.jdo.integtests;
-
-import org.springframework.boot.SpringBootConfiguration;
-import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
-import org.springframework.context.annotation.ComponentScan;
-import org.springframework.context.annotation.Import;
-import org.springframework.context.annotation.PropertySource;
-import org.springframework.context.annotation.PropertySources;
-
-import org.apache.causeway.core.config.presets.CausewayPresets;
-import org.apache.causeway.core.runtimeservices.CausewayModuleCoreRuntimeServices;
-import org.apache.causeway.extensions.commandlog.applib.integtest.model.CommandLogTestDomainModel;
-import org.apache.causeway.extensions.commandlog.jdo.CausewayModuleExtCommandLogPersistenceJdo;
-import org.apache.causeway.extensions.commandlog.jdo.integtests.model.CounterRepository;
-import org.apache.causeway.security.bypass.CausewayModuleSecurityBypass;
-
-@SpringBootConfiguration
-@EnableAutoConfiguration
-@Import({
-        CausewayModuleCoreRuntimeServices.class,
-        CausewayModuleSecurityBypass.class,
-        CausewayModuleExtCommandLogPersistenceJdo.class,
-})
-@PropertySources({
-        @PropertySource(CausewayPresets.UseLog4j2Test)
-})
-@ComponentScan(basePackageClasses = {AppManifest.class, CommandLogTestDomainModel.class, CounterRepository.class})
-public class AppManifest {
-}
diff --git a/extensions/core/commandlog/persistence-jdo/src/test/java/org/apache/causeway/extensions/commandlog/jdo/integtests/BackgroundService_IntegTest.java b/extensions/core/commandlog/persistence-jdo/src/test/java/org/apache/causeway/extensions/commandlog/jdo/integtests/BackgroundService_IntegTest.java
deleted file mode 100644
index 3a67bff0859..00000000000
--- a/extensions/core/commandlog/persistence-jdo/src/test/java/org/apache/causeway/extensions/commandlog/jdo/integtests/BackgroundService_IntegTest.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- *  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 org.apache.causeway.extensions.commandlog.jdo.integtests;
-
-import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.test.context.ActiveProfiles;
-
-import org.apache.causeway.extensions.commandlog.applib.integtest.BackgroundService_IntegTestAbstract;
-import org.apache.causeway.extensions.commandlog.jdo.integtests.model.Counter;
-
-@SpringBootTest(
-        classes = AppManifest.class
-)
-@ActiveProfiles("test")
-public class BackgroundService_IntegTest extends BackgroundService_IntegTestAbstract {
-
-    @Override
-    protected org.apache.causeway.extensions.commandlog.applib.integtest.model.Counter newCounter(final String name) {
-        return Counter.builder().name(name).build();
-    }
-
-}
diff --git a/extensions/core/commandlog/persistence-jdo/src/test/java/org/apache/causeway/extensions/commandlog/jdo/integtests/CommandLog_IntegTest.java b/extensions/core/commandlog/persistence-jdo/src/test/java/org/apache/causeway/extensions/commandlog/jdo/integtests/CommandLog_IntegTest.java
deleted file mode 100644
index 4d63bcc78e4..00000000000
--- a/extensions/core/commandlog/persistence-jdo/src/test/java/org/apache/causeway/extensions/commandlog/jdo/integtests/CommandLog_IntegTest.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- *  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 org.apache.causeway.extensions.commandlog.jdo.integtests;
-
-import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.test.context.ActiveProfiles;
-
-import org.apache.causeway.extensions.commandlog.applib.integtest.CommandLog_IntegTestAbstract;
-import org.apache.causeway.extensions.commandlog.jdo.integtests.model.Counter;
-
-@SpringBootTest(
-        classes = AppManifest.class
-)
-@ActiveProfiles("test")
-public class CommandLog_IntegTest extends CommandLog_IntegTestAbstract {
-
-    protected org.apache.causeway.extensions.commandlog.applib.integtest.model.Counter newCounter(String name) {
-        return Counter.builder().name(name).build();
-    }
-
-}
diff --git a/extensions/core/commandlog/persistence-jdo/src/test/java/org/apache/causeway/extensions/commandlog/jdo/integtests/model/Counter.java b/extensions/core/commandlog/persistence-jdo/src/test/java/org/apache/causeway/extensions/commandlog/jdo/integtests/model/Counter.java
deleted file mode 100644
index 46ff2b64ad1..00000000000
--- a/extensions/core/commandlog/persistence-jdo/src/test/java/org/apache/causeway/extensions/commandlog/jdo/integtests/model/Counter.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * 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 org.apache.causeway.extensions.commandlog.jdo.integtests.model;
-
-import javax.jdo.annotations.Column;
-import javax.jdo.annotations.DatastoreIdentity;
-import javax.jdo.annotations.IdGeneratorStrategy;
-import javax.jdo.annotations.PersistenceCapable;
-
-import jakarta.inject.Named;
-
-import org.apache.causeway.applib.annotation.DomainObject;
-import org.apache.causeway.applib.annotation.Nature;
-
-import lombok.AccessLevel;
-import lombok.AllArgsConstructor;
-import lombok.Builder;
-import lombok.Getter;
-import lombok.NoArgsConstructor;
-import lombok.Setter;
-
-@PersistenceCapable(
-        schema = "public",
-        table = "Counter"
-)
-@DatastoreIdentity(strategy = IdGeneratorStrategy.IDENTITY, column = "id")
-@Named("commandlog.test.Counter")
-@DomainObject(nature = Nature.ENTITY)
-@NoArgsConstructor
-@Builder
-@AllArgsConstructor(access = AccessLevel.PRIVATE)
-public class Counter extends org.apache.causeway.extensions.commandlog.applib.integtest.model.Counter {
-
-    @Column(allowsNull = "false")
-    @Getter @Setter
-    private String name;
-
-    @Column(allowsNull = "true")
-    @Getter @Setter
-    private Long num;
-
-    @Column(allowsNull = "true")
-    @Getter @Setter
-    private Long num2;
-
-}
diff --git a/extensions/core/commandlog/persistence-jdo/src/test/java/org/apache/causeway/extensions/commandlog/jdo/integtests/model/CounterRepository.java b/extensions/core/commandlog/persistence-jdo/src/test/java/org/apache/causeway/extensions/commandlog/jdo/integtests/model/CounterRepository.java
deleted file mode 100644
index 4120adfefa0..00000000000
--- a/extensions/core/commandlog/persistence-jdo/src/test/java/org/apache/causeway/extensions/commandlog/jdo/integtests/model/CounterRepository.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * 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 org.apache.causeway.extensions.commandlog.jdo.integtests.model;
-
-import org.springframework.stereotype.Repository;
-
-@Repository
-public class CounterRepository
-        extends org.apache.causeway.extensions.commandlog.applib.integtest.model.CounterRepository<Counter> {
-
-    public CounterRepository() {
-        super(Counter.class);
-    }
-}
diff --git a/extensions/core/commandlog/persistence-jdo/src/test/resources/application-test.yml b/extensions/core/commandlog/persistence-jdo/src/test/resources/application-test.yml
deleted file mode 100644
index 509e02a4aff..00000000000
--- a/extensions/core/commandlog/persistence-jdo/src/test/resources/application-test.yml
+++ /dev/null
@@ -1,26 +0,0 @@
-#  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.
-causeway:
-  persistence:
-    schema:
-      auto-create-schemas: "CAUSEWAYEXTCOMMANDLOG"
-
-
-datanucleus:
-  schema:
-    generate-database:
-      mode: "create"
diff --git a/extensions/core/commandlog/persistence-jpa/pom.xml b/extensions/core/commandlog/persistence-jpa/pom.xml
index b4e2051ab52..cf0c0f81261 100644
--- a/extensions/core/commandlog/persistence-jpa/pom.xml
+++ b/extensions/core/commandlog/persistence-jpa/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.causeway.extensions</groupId>
         <artifactId>causeway-extensions-commandlog</artifactId>
-        <version>3.4.0-SNAPSHOT</version>
+        <version>${revision}</version>
     </parent>
 
     <artifactId>causeway-extensions-commandlog-persistence-jpa</artifactId>
@@ -92,12 +92,6 @@
         <dependency>
             <groupId>org.apache.causeway.testing</groupId>
             <artifactId>causeway-testing-fixtures-applib</artifactId>
-            <exclusions>
-                <exclusion>
-                    <groupId>org.apache.causeway.persistence</groupId>
-                    <artifactId>causeway-persistence-jdo-applib</artifactId>
-                </exclusion>
-            </exclusions>
         </dependency>
 
     </dependencies>
diff --git a/extensions/core/commandlog/pom.xml b/extensions/core/commandlog/pom.xml
index db02612262a..8dc048b440b 100644
--- a/extensions/core/commandlog/pom.xml
+++ b/extensions/core/commandlog/pom.xml
@@ -25,7 +25,7 @@
 	<parent>
 		<groupId>org.apache.causeway.extensions</groupId>
 		<artifactId>causeway-extensions</artifactId>
-		<version>3.4.0-SNAPSHOT</version>
+		<version>${revision}</version>
 		<relativePath>../../pom.xml</relativePath>
 	</parent>
 
@@ -41,65 +41,44 @@
 			<dependency>
 				<groupId>org.apache.causeway.extensions</groupId>
 				<artifactId>causeway-extensions-commandlog</artifactId>
-				<version>3.4.0-SNAPSHOT</version>
+				<version>${project.version}</version>
 				<type>pom</type>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.causeway.extensions</groupId>
 				<artifactId>causeway-extensions-commandlog-applib</artifactId>
-				<version>3.4.0-SNAPSHOT</version>
+				<version>${project.version}</version>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.causeway.extensions</groupId>
 				<artifactId>causeway-extensions-commandlog-applib</artifactId>
-				<version>3.4.0-SNAPSHOT</version>
+				<version>${project.version}</version>
 				<scope>test</scope>
 				<type>test-jar</type>
 			</dependency>
-			<dependency>
-				<groupId>org.apache.causeway.extensions</groupId>
-				<artifactId>causeway-extensions-commandlog-persistence-jdo</artifactId>
-				<version>3.4.0-SNAPSHOT</version>
-			</dependency>
 			<dependency>
 				<groupId>org.apache.causeway.extensions</groupId>
 				<artifactId>causeway-extensions-commandlog-persistence-jpa</artifactId>
-				<version>3.4.0-SNAPSHOT</version>
+				<version>${project.version}</version>
 			</dependency>
 
 			<dependency>
 				<groupId>org.apache.causeway.extensions</groupId>
 				<artifactId>causeway-extensions</artifactId>
-				<version>3.4.0-SNAPSHOT</version>
+				<version>${project.version}</version>
 				<scope>import</scope>
 				<type>pom</type>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.causeway.testing</groupId>
 				<artifactId>causeway-testing</artifactId>
-				<version>3.4.0-SNAPSHOT</version>
+				<version>${project.version}</version>
 				<scope>import</scope>
 				<type>pom</type>
 			</dependency>
 		</dependencies>
 	</dependencyManagement>
 
-    <profiles>
-        <profile>
-            <id>module-jdo</id>
-            <activation>
-                <property>
-                    <name>!skip-module-jdo</name>
-                </property>
-            </activation>
-            <modules>
-                <module>applib</module>
-                <module>persistence-jdo</module>
-                <module>persistence-jpa</module>
-            </modules>
-        </profile>
-    </profiles>
-
 	<modules>
 		<module>applib</module>
 		<module>persistence-jpa</module>
diff --git a/extensions/core/docgen/help/pom.xml b/extensions/core/docgen/help/pom.xml
index 6a4daaf682e..4eb324539e2 100644
--- a/extensions/core/docgen/help/pom.xml
+++ b/extensions/core/docgen/help/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.causeway.extensions</groupId>
         <artifactId>causeway-extensions-docgen</artifactId>
-        <version>3.4.0-SNAPSHOT</version>
+        <version>${revision}</version>
     </parent>
 
     <artifactId>causeway-extensions-docgen-help</artifactId>
diff --git a/extensions/core/docgen/pom.xml b/extensions/core/docgen/pom.xml
index 93915b0cac3..19aa09180e4 100644
--- a/extensions/core/docgen/pom.xml
+++ b/extensions/core/docgen/pom.xml
@@ -25,7 +25,7 @@
     <parent>
         <groupId>org.apache.causeway.extensions</groupId>
         <artifactId>causeway-extensions</artifactId>
-        <version>3.4.0-SNAPSHOT</version>
+        <version>${revision}</version>
         <relativePath>../../pom.xml</relativePath>
     </parent>
 
diff --git a/extensions/core/excel/applib/pom.xml b/extensions/core/excel/applib/pom.xml
index 8fbd1f09a6d..76ad056f9ad 100644
--- a/extensions/core/excel/applib/pom.xml
+++ b/extensions/core/excel/applib/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.causeway.extensions</groupId>
         <artifactId>causeway-extensions-excel</artifactId>
-        <version>3.4.0-SNAPSHOT</version>
+        <version>${revision}</version>
     </parent>
 
     <artifactId>causeway-extensions-excel-applib</artifactId>
diff --git a/extensions/core/excel/fixture/pom.xml b/extensions/core/excel/fixture/pom.xml
index 847e8989316..6890edad029 100644
--- a/extensions/core/excel/fixture/pom.xml
+++ b/extensions/core/excel/fixture/pom.xml
@@ -17,13 +17,15 @@ KIND, either express or implied.  See the License for the
 specific language governing permissions and limitations
 under the License.
 -->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
     <modelVersion>4.0.0</modelVersion>
 
     <parent>
         <groupId>org.apache.causeway.extensions</groupId>
         <artifactId>causeway-extensions</artifactId>
-        <version>3.4.0-SNAPSHOT</version>
+        <version>${revision}</version>
         <relativePath>../../../pom.xml</relativePath>
     </parent>
 
@@ -31,7 +33,8 @@ under the License.
     <name>Apache Causeway Ext - Excel (Fixtures)</name>
 
     <properties>
-    	<jar-plugin.automaticModuleName>org.apache.causeway.extensions.excel.fixture</jar-plugin.automaticModuleName>
+        <jar-plugin.automaticModuleName>
+            org.apache.causeway.extensions.excel.fixture</jar-plugin.automaticModuleName>
         <git-plugin.propertiesDir>org/apache/causeway/extensions/excel/fixture</git-plugin.propertiesDir>
     </properties>
 
@@ -82,21 +85,30 @@ under the License.
             <artifactId>causeway-extensions-excel-testing</artifactId>
         </dependency>
 
+        <dependency>
+            <groupId>org.apache.causeway.commons</groupId>
+            <artifactId>causeway-commons</artifactId>
+        </dependency>
+
         <dependency>
             <groupId>org.apache.causeway.core</groupId>
             <artifactId>causeway-applib</artifactId>
         </dependency>
 
+        <dependency>
+            <groupId>org.jspecify</groupId>
+            <artifactId>jspecify</artifactId>
+        </dependency>
+
         <dependency>
             <groupId>org.apache.causeway.testing</groupId>
             <artifactId>causeway-testing-fixtures-applib</artifactId>
         </dependency>
 
-		<dependency>
+        <dependency>
             <groupId>org.apache.causeway.persistence</groupId>
-			<artifactId>causeway-persistence-jdo-datanucleus</artifactId>
+            <artifactId>causeway-persistence-jpa-applib</artifactId>
         </dependency>
-
     </dependencies>
 
 </project>
diff --git a/extensions/core/excel/fixture/src/main/java/org/apache/causeway/extensions/excel/fixtures/demoapp/demomodule/dom/bulkupdate/BulkUpdateLineItemForDemoToDoItem.java b/extensions/core/excel/fixture/src/main/java/org/apache/causeway/extensions/excel/fixtures/demoapp/demomodule/dom/bulkupdate/BulkUpdateLineItemForDemoToDoItem.java
index 2c3954a3d7f..b07e0a07815 100644
--- a/extensions/core/excel/fixture/src/main/java/org/apache/causeway/extensions/excel/fixtures/demoapp/demomodule/dom/bulkupdate/BulkUpdateLineItemForDemoToDoItem.java
+++ b/extensions/core/excel/fixture/src/main/java/org/apache/causeway/extensions/excel/fixtures/demoapp/demomodule/dom/bulkupdate/BulkUpdateLineItemForDemoToDoItem.java
@@ -21,10 +21,9 @@
 import java.math.BigDecimal;
 import java.time.LocalDate;
 
-import javax.jdo.annotations.Column;
-
 import jakarta.inject.Inject;
 import jakarta.inject.Named;
+import jakarta.persistence.Column;
 import jakarta.xml.bind.annotation.XmlAccessType;
 import jakarta.xml.bind.annotation.XmlAccessorType;
 import jakarta.xml.bind.annotation.XmlRootElement;
diff --git a/extensions/core/excel/fixture/src/main/java/org/apache/causeway/extensions/excel/fixtures/demoapp/demomodule/dom/bulkupdate/BulkUpdateMenuForDemoToDoItem.java b/extensions/core/excel/fixture/src/main/java/org/apache/causeway/extensions/excel/fixtures/demoapp/demomodule/dom/bulkupdate/BulkUpdateMenuForDemoToDoItem.java
index 5b6ab2a3db0..9f6050eff4c 100644
--- a/extensions/core/excel/fixture/src/main/java/org/apache/causeway/extensions/excel/fixtures/demoapp/demomodule/dom/bulkupdate/BulkUpdateMenuForDemoToDoItem.java
+++ b/extensions/core/excel/fixture/src/main/java/org/apache/causeway/extensions/excel/fixtures/demoapp/demomodule/dom/bulkupdate/BulkUpdateMenuForDemoToDoItem.java
@@ -22,6 +22,8 @@
 import jakarta.inject.Named;
 import jakarta.xml.bind.annotation.XmlTransient;
 
+import org.springframework.core.annotation.Order;
+
 import org.apache.causeway.applib.annotation.Action;
 import org.apache.causeway.applib.annotation.ActionLayout;
 import org.apache.causeway.applib.annotation.DomainService;
@@ -41,7 +43,7 @@
 @DomainServiceLayout(
         named = "Excel"
 )
-@jakarta.annotation.Priority(PriorityPrecedence.EARLY)
+@Order(PriorityPrecedence.EARLY)
 public class BulkUpdateMenuForDemoToDoItem {
 
     public BulkUpdateMenuForDemoToDoItem() {
diff --git a/extensions/core/excel/fixture/src/main/java/org/apache/causeway/extensions/excel/fixtures/demoapp/demomodule/dom/pivot/ExcelPivotByCategoryAndSubcategoryMenu.java b/extensions/core/excel/fixture/src/main/java/org/apache/causeway/extensions/excel/fixtures/demoapp/demomodule/dom/pivot/ExcelPivotByCategoryAndSubcategoryMenu.java
index 3c762e5aa5f..12ca4cec19a 100644
--- a/extensions/core/excel/fixture/src/main/java/org/apache/causeway/extensions/excel/fixtures/demoapp/demomodule/dom/pivot/ExcelPivotByCategoryAndSubcategoryMenu.java
+++ b/extensions/core/excel/fixture/src/main/java/org/apache/causeway/extensions/excel/fixtures/demoapp/demomodule/dom/pivot/ExcelPivotByCategoryAndSubcategoryMenu.java
@@ -24,6 +24,8 @@
 import jakarta.inject.Inject;
 import jakarta.inject.Named;
 
+import org.springframework.core.annotation.Order;
+
 import org.apache.causeway.applib.annotation.Action;
 import org.apache.causeway.applib.annotation.DomainService;
 import org.apache.causeway.applib.annotation.DomainServiceLayout;
@@ -39,7 +41,7 @@
 @DomainServiceLayout(
         named = "Excel"
 )
-@jakarta.annotation.Priority(PriorityPrecedence.EARLY)
+@Order(PriorityPrecedence.EARLY)
 public class ExcelPivotByCategoryAndSubcategoryMenu {
 
     @Action(semantics = SemanticsOf.IDEMPOTENT)
diff --git a/extensions/core/excel/fixture/src/main/java/org/apache/causeway/extensions/excel/fixtures/demoapp/demomodule/fixturehandlers/excelupload/ExcelUploadServiceForDemoToDoItem.java b/extensions/core/excel/fixture/src/main/java/org/apache/causeway/extensions/excel/fixtures/demoapp/demomodule/fixturehandlers/excelupload/ExcelUploadServiceForDemoToDoItem.java
index 2451925a44f..480688bd4d9 100644
--- a/extensions/core/excel/fixture/src/main/java/org/apache/causeway/extensions/excel/fixtures/demoapp/demomodule/fixturehandlers/excelupload/ExcelUploadServiceForDemoToDoItem.java
+++ b/extensions/core/excel/fixture/src/main/java/org/apache/causeway/extensions/excel/fixtures/demoapp/demomodule/fixturehandlers/excelupload/ExcelUploadServiceForDemoToDoItem.java
@@ -23,6 +23,8 @@
 import jakarta.inject.Inject;
 import jakarta.inject.Named;
 
+import org.springframework.core.annotation.Order;
+
 import org.apache.causeway.applib.annotation.DomainService;
 import org.apache.causeway.applib.annotation.DomainServiceLayout;
 import org.apache.causeway.applib.annotation.Optionality;
@@ -42,7 +44,7 @@
         menuBar = DomainServiceLayout.MenuBar.SECONDARY,
         named = "Prototyping"
 )
-@jakarta.annotation.Priority(PriorityPrecedence.EARLY)
+@Order(PriorityPrecedence.EARLY)
 public class ExcelUploadServiceForDemoToDoItem {
 
     private final FixtureScripts fixtureScripts;
diff --git a/extensions/core/excel/fixture/src/main/java/org/apache/causeway/extensions/excel/fixtures/demoapp/todomodule/dom/ExcelDemoToDoItem.java b/extensions/core/excel/fixture/src/main/java/org/apache/causeway/extensions/excel/fixtures/demoapp/todomodule/dom/ExcelDemoToDoItem.java
index 15d08a14724..b1f55978a1c 100644
--- a/extensions/core/excel/fixture/src/main/java/org/apache/causeway/extensions/excel/fixtures/demoapp/todomodule/dom/ExcelDemoToDoItem.java
+++ b/extensions/core/excel/fixture/src/main/java/org/apache/causeway/extensions/excel/fixtures/demoapp/todomodule/dom/ExcelDemoToDoItem.java
@@ -28,10 +28,13 @@
 import java.util.TreeSet;
 import java.util.function.Predicate;
 
-import javax.jdo.annotations.IdentityType;
-import javax.jdo.annotations.VersionStrategy;
-
 import jakarta.inject.Inject;
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+import jakarta.persistence.GeneratedValue;
+import jakarta.persistence.GenerationType;
+import jakarta.persistence.Id;
+import jakarta.persistence.Table;
 import jakarta.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
 
 import org.jspecify.annotations.Nullable;
@@ -58,58 +61,57 @@
 import lombok.Setter;
 import lombok.ToString;
 
-@javax.jdo.annotations.PersistenceCapable(
-        identityType=IdentityType.DATASTORE,
+@Entity
+@Table(
+        //identityType=IdentityType.DATASTORE,
         schema = "libExcelFixture"
 )
-@javax.jdo.annotations.DatastoreIdentity(
-        strategy=javax.jdo.annotations.IdGeneratorStrategy.IDENTITY,
-         column="id")
-@javax.jdo.annotations.Version(
-        strategy=VersionStrategy.VERSION_NUMBER,
-        column="version")
-@javax.jdo.annotations.Uniques({
-    @javax.jdo.annotations.Unique(
-            name="ToDoItem_description_must_be_unique",
-            members={"ownedBy","description"})
-})
-@javax.jdo.annotations.Queries( {
-    @javax.jdo.annotations.Query(
-            name = "todo_all", language = "JDOQL",
-            value = "SELECT "
-                    + "FROM " + ExcelDemoToDoItem.FQCN + " "
-                    + "WHERE ownedBy == :ownedBy"),
-    @javax.jdo.annotations.Query(
-            name = "todo_notYetComplete", language = "JDOQL",
-            value = "SELECT "
-                    + "FROM " + ExcelDemoToDoItem.FQCN + " "
-                    + "WHERE ownedBy == :ownedBy "
-                    + "   && complete == false"),
-    @javax.jdo.annotations.Query(
-            name = "findByDescription", language = "JDOQL",
-            value = "SELECT "
-                    + "FROM " + ExcelDemoToDoItem.FQCN + " "
-                    + "WHERE ownedBy == :ownedBy "
-                    + "   && description == :description"),
-    @javax.jdo.annotations.Query(
-            name = "todo_complete", language = "JDOQL",
-            value = "SELECT "
-                    + "FROM " + ExcelDemoToDoItem.FQCN + " "
-                    + "WHERE ownedBy == :ownedBy "
-                    + "&& complete == true"),
-    @javax.jdo.annotations.Query(
-            name = "todo_similarTo", language = "JDOQL",
-            value = "SELECT "
-                    + "FROM " + ExcelDemoToDoItem.FQCN + " "
-                    + "WHERE ownedBy == :ownedBy "
-                    + "&& category == :category"),
-    @javax.jdo.annotations.Query(
-            name = "todo_autoComplete", language = "JDOQL",
-            value = "SELECT "
-                    + "FROM " + ExcelDemoToDoItem.FQCN + " "
-                    + "WHERE ownedBy == :ownedBy && "
-                    + "description.indexOf(:description) >= 0")
-})
+//FIXME
+//@javax.jdo.annotations.Version(
+//        strategy=VersionStrategy.VERSION_NUMBER,
+//        column="version")
+//@javax.jdo.annotations.Uniques({
+//    @javax.jdo.annotations.Unique(
+//            name="ToDoItem_description_must_be_unique",
+//            members={"ownedBy","description"})
+//})
+//@javax.jdo.annotations.Queries( {
+//    @javax.jdo.annotations.Query(
+//            name = "todo_all", language = "JDOQL",
+//            value = "SELECT "
+//                    + "FROM " + ExcelDemoToDoItem.FQCN + " "
+//                    + "WHERE ownedBy == :ownedBy"),
+//    @javax.jdo.annotations.Query(
+//            name = "todo_notYetComplete", language = "JDOQL",
+//            value = "SELECT "
+//                    + "FROM " + ExcelDemoToDoItem.FQCN + " "
+//                    + "WHERE ownedBy == :ownedBy "
+//                    + "   && complete == false"),
+//    @javax.jdo.annotations.Query(
+//            name = "findByDescription", language = "JDOQL",
+//            value = "SELECT "
+//                    + "FROM " + ExcelDemoToDoItem.FQCN + " "
+//                    + "WHERE ownedBy == :ownedBy "
+//                    + "   && description == :description"),
+//    @javax.jdo.annotations.Query(
+//            name = "todo_complete", language = "JDOQL",
+//            value = "SELECT "
+//                    + "FROM " + ExcelDemoToDoItem.FQCN + " "
+//                    + "WHERE ownedBy == :ownedBy "
+//                    + "&& complete == true"),
+//    @javax.jdo.annotations.Query(
+//            name = "todo_similarTo", language = "JDOQL",
+//            value = "SELECT "
+//                    + "FROM " + ExcelDemoToDoItem.FQCN + " "
+//                    + "WHERE ownedBy == :ownedBy "
+//                    + "&& category == :category"),
+//    @javax.jdo.annotations.Query(
+//            name = "todo_autoComplete", language = "JDOQL",
+//            value = "SELECT "
+//                    + "FROM " + ExcelDemoToDoItem.FQCN + " "
+//                    + "WHERE ownedBy == :ownedBy && "
+//                    + "description.indexOf(:description) >= 0")
+//})
 @DomainObject(
         autoCompleteRepository = ExcelDemoToDoItemMenu.class
 )
@@ -134,6 +136,11 @@ public class ExcelDemoToDoItem implements Comparable<ExcelDemoToDoItem> /*, Cale
     @Inject private ExcelDemoToDoItemMenu toDoItems;
     @Inject private ClockService clockService;
 
+    @Id
+    @GeneratedValue(strategy = GenerationType.IDENTITY)
+    @Getter @Setter
+    long id;
+
     //region > title, iconName
 
     @ObjectSupport public String title() {
@@ -155,25 +162,26 @@ public class ExcelDemoToDoItem implements Comparable<ExcelDemoToDoItem> /*, Cale
 
     //endregion
 
-    @javax.jdo.annotations.Column(allowsNull="false", length=100)
+    @Column(nullable=false, length=100)
     @Property(regexPattern = "\\w[@&:\\-\\,\\.\\+ \\w]*")
     @Getter @Setter
     private String description;
 
-    @javax.jdo.annotations.Persistent(defaultFetchGroup="true")
-    @javax.jdo.annotations.Column(allowsNull="true")
+    //FIXME
+    //@javax.jdo.annotations.Persistent(defaultFetchGroup="true")
+    //@javax.jdo.annotations.Column(allowsNull="true")
     @Getter @Setter
     private LocalDate dueBy;
 
-    @javax.jdo.annotations.Column(allowsNull="true")
+    @Column(nullable=true)
     @Getter @Setter
     private Category category;
 
-    @javax.jdo.annotations.Column(allowsNull="true")
+    @Column(nullable=true)
     @Getter @Setter
     private Subcategory subcategory;
 
-    @javax.jdo.annotations.Column(allowsNull="false")
+    @Column(nullable=false)
     @Getter @Setter
     private String ownedBy;
 
@@ -181,14 +189,14 @@ public class ExcelDemoToDoItem implements Comparable<ExcelDemoToDoItem> /*, Cale
     @Getter @Setter
     private boolean complete;
 
-    @javax.jdo.annotations.Column(allowsNull="true", scale=2)
+    @Column(nullable=true, scale=2)
     //XXX breaks build, as of JDOQueryProcessor generated source, that cannot be compiled
     //@jakarta.validation.constraints.Digits(integer=10, fraction=2)
     @Property(editing = Editing.DISABLED, editingDisabledReason = "Update using action")
     @Getter @Setter
     private BigDecimal cost;
 
-    @javax.jdo.annotations.Column(allowsNull="true", scale=2)
+    @Column(nullable=true, scale=2)
     //XXX breaks build, as of JDOQueryProcessor generated source, that cannot be compiled
     //@jakarta.validation.constraints.Digits(integer=10, fraction=2)
     @Property(
@@ -199,20 +207,22 @@ public class ExcelDemoToDoItem implements Comparable<ExcelDemoToDoItem> /*, Cale
     private BigDecimal previousCost;
 
     @Getter @Setter
-    @javax.jdo.annotations.Column(allowsNull="true", length=400)
+    @Column(nullable=true, length=400)
     @Property(editing = Editing.ENABLED)
     // @SummernoteEditor(height = 100, maxHeight = 300)
     private String notes;
 
     @Getter @Setter
-    @javax.jdo.annotations.Persistent(defaultFetchGroup="false")
-    @javax.jdo.annotations.Column(allowsNull="true", jdbcType="BLOB", sqlType="LONGBINARY")
+    //FIXME
+    //@javax.jdo.annotations.Persistent(defaultFetchGroup="false")
+    //@javax.jdo.annotations.Column(allowsNull="true", jdbcType="BLOB", sqlType="LONGBINARY")
     private Blob attachment;
 
     @Getter @Setter
-    @javax.jdo.annotations.Persistent(table="ExcelDemoToDoItemDependencies")
-    @javax.jdo.annotations.Join(column="dependingId")
-    @javax.jdo.annotations.Element(column="dependentId")
+    //FIXME
+//    @javax.jdo.annotations.Persistent(table="ExcelDemoToDoItemDependencies")
+//    @javax.jdo.annotations.Join(column="dependingId")
+//    @javax.jdo.annotations.Element(column="dependentId")
     @CollectionLayout(sortedBy = DependenciesComparator.class)
     private SortedSet<ExcelDemoToDoItem> dependencies = new TreeSet<>();
 
diff --git a/extensions/core/excel/fixture/src/main/java/org/apache/causeway/extensions/excel/fixtures/demoapp/todomodule/dom/ExcelDemoToDoItemMenu.java b/extensions/core/excel/fixture/src/main/java/org/apache/causeway/extensions/excel/fixtures/demoapp/todomodule/dom/ExcelDemoToDoItemMenu.java
index d5bf24a357b..2fee16c33f2 100644
--- a/extensions/core/excel/fixture/src/main/java/org/apache/causeway/extensions/excel/fixtures/demoapp/todomodule/dom/ExcelDemoToDoItemMenu.java
+++ b/extensions/core/excel/fixture/src/main/java/org/apache/causeway/extensions/excel/fixtures/demoapp/todomodule/dom/ExcelDemoToDoItemMenu.java
@@ -29,6 +29,8 @@
 
 import org.jspecify.annotations.Nullable;
 
+import org.springframework.core.annotation.Order;
+
 import org.apache.causeway.applib.annotation.Action;
 import org.apache.causeway.applib.annotation.ActionLayout;
 import org.apache.causeway.applib.annotation.DomainService;
@@ -47,7 +49,7 @@
 
 @DomainService
 @Named("libExcelFixture.ExcelDemoToDoItemMenu")
-@jakarta.annotation.Priority(PriorityPrecedence.EARLY)
+@Order(PriorityPrecedence.EARLY)
 @RequiredArgsConstructor(onConstructor_ = {@Inject})
 public class ExcelDemoToDoItemMenu {
 
diff --git a/extensions/core/excel/fixture/src/main/java/org/apache/causeway/extensions/excel/fixtures/demoapp/todomodule/fixturescripts/ExcelDemoToDoItem_tearDown.java b/extensions/core/excel/fixture/src/main/java/org/apache/causeway/extensions/excel/fixtures/demoapp/todomodule/fixturescripts/ExcelDemoToDoItem_tearDown.java
index 7a8652311ca..c0c0d3827c2 100644
--- a/extensions/core/excel/fixture/src/main/java/org/apache/causeway/extensions/excel/fixtures/demoapp/todomodule/fixturescripts/ExcelDemoToDoItem_tearDown.java
+++ b/extensions/core/excel/fixture/src/main/java/org/apache/causeway/extensions/excel/fixtures/demoapp/todomodule/fixturescripts/ExcelDemoToDoItem_tearDown.java
@@ -19,9 +19,9 @@
 package org.apache.causeway.extensions.excel.fixtures.demoapp.todomodule.fixturescripts;
 
 import org.apache.causeway.extensions.excel.fixtures.demoapp.todomodule.dom.ExcelDemoToDoItem;
-import org.apache.causeway.testing.fixtures.applib.teardown.jdo.TeardownFixtureJdoAbstract;
+import org.apache.causeway.testing.fixtures.applib.teardown.jpa.TeardownFixtureJpaAbstract;
 
-public class ExcelDemoToDoItem_tearDown extends TeardownFixtureJdoAbstract {
+public class ExcelDemoToDoItem_tearDown extends TeardownFixtureJpaAbstract {
 
     @Override
     protected void execute(final ExecutionContext executionContext) {
diff --git a/extensions/core/excel/fixture/src/main/java/org/apache/causeway/extensions/excel/fixtures/demoapp/todomodule/fixturescripts/ExcelDemoToDoItem_tearDown2.java b/extensions/core/excel/fixture/src/main/java/org/apache/causeway/extensions/excel/fixtures/demoapp/todomodule/fixturescripts/ExcelDemoToDoItem_tearDown2.java
index 08414d614e4..99d27f6c7a7 100644
--- a/extensions/core/excel/fixture/src/main/java/org/apache/causeway/extensions/excel/fixtures/demoapp/todomodule/fixturescripts/ExcelDemoToDoItem_tearDown2.java
+++ b/extensions/core/excel/fixture/src/main/java/org/apache/causeway/extensions/excel/fixtures/demoapp/todomodule/fixturescripts/ExcelDemoToDoItem_tearDown2.java
@@ -20,38 +20,43 @@
 
 import jakarta.inject.Inject;
 
-import org.apache.causeway.persistence.jdo.applib.services.JdoSupportService;
+import org.apache.causeway.extensions.excel.testing.ExcelFixture;
+import org.apache.causeway.persistence.jpa.applib.services.JpaSupportService;
 import org.apache.causeway.testing.fixtures.applib.fixturescripts.FixtureScript;
 
 public class ExcelDemoToDoItem_tearDown2 extends FixtureScript {
 
+    @Inject JpaSupportService jpaSupport;
+
     private final String user;
 
     public ExcelDemoToDoItem_tearDown2() {
         this(null);
     }
 
-    public ExcelDemoToDoItem_tearDown2(String ownedBy) {
+    public ExcelDemoToDoItem_tearDown2(final String ownedBy) {
         this.user = ownedBy;
     }
 
     @Override
-    public void execute(ExecutionContext executionContext) {
+    public void execute(final ExecutionContext executionContext) {
 
         final String ownedBy = this.user != null ? this.user : userService.currentUserNameElseNobody();
 
-        jdoSupport.executeUpdate(String.format(
-                "delete "
-                        + "from \"excelFixture\".\"ExcelDemoToDoItemDependencies\" "
-                        + "where \"dependingId\" IN "
-                        + "(select \"id\" from \"excelFixture\".\"ExcelDemoToDoItem\" where \"ownedBy\" = '%s') ",
-                ownedBy));
+        var em = jpaSupport.getEntityManagerElseFail(ExcelFixture.class);
 
-        jdoSupport.executeUpdate(String.format(
-                "delete from \"excelFixture\".\"ExcelDemoToDoItem\" "
-                        + "where \"ownedBy\" = '%s'", ownedBy));
-    }
 
-    @Inject JdoSupportService jdoSupport;
+//FIXME
+//        jdoSupport.executeUpdate(String.format(
+//                "delete "
+//                        + "from \"excelFixture\".\"ExcelDemoToDoItemDependencies\" "
+//                        + "where \"dependingId\" IN "
+//                        + "(select \"id\" from \"excelFixture\".\"ExcelDemoToDoItem\" where \"ownedBy\" = '%s') ",
+//                ownedBy));
+//
+//        jdoSupport.executeUpdate(String.format(
+//                "delete from \"excelFixture\".\"ExcelDemoToDoItem\" "
+//                        + "where \"ownedBy\" = '%s'", ownedBy));
+    }
 
 }
diff --git a/extensions/core/excel/integtests/pom.xml b/extensions/core/excel/integtests/pom.xml
index a9f88714b9c..18233e7e090 100644
--- a/extensions/core/excel/integtests/pom.xml
+++ b/extensions/core/excel/integtests/pom.xml
@@ -24,7 +24,7 @@ under the License.
     <parent>
         <groupId>org.apache.causeway.extensions</groupId>
         <artifactId>causeway-extensions</artifactId>
-        <version>3.4.0-SNAPSHOT</version>
+        <version>${revision}</version>
         <relativePath>../../../pom.xml</relativePath>
     </parent>
 
@@ -76,7 +76,7 @@ under the License.
                 <artifactId>causeway-testing</artifactId>
                 <scope>import</scope>
                 <type>pom</type>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
             </dependency>
         </dependencies>
     </dependencyManagement>
@@ -111,7 +111,7 @@ under the License.
 
         <dependency>
             <groupId>org.apache.causeway.persistence</groupId>
-			<artifactId>causeway-persistence-jdo-datanucleus</artifactId>
+			<artifactId>causeway-persistence-jpa-eclipselink</artifactId>
             <scope>test</scope>
         </dependency>
 
diff --git a/extensions/core/excel/integtests/src/test/java/org/apache/causeway/extensions/excel/integtests/ExcelModuleIntegTestAbstract.java b/extensions/core/excel/integtests/src/test/java/org/apache/causeway/extensions/excel/integtests/ExcelModuleIntegTestAbstract.java
index 87e982459ef..8fb67eb5b51 100644
--- a/extensions/core/excel/integtests/src/test/java/org/apache/causeway/extensions/excel/integtests/ExcelModuleIntegTestAbstract.java
+++ b/extensions/core/excel/integtests/src/test/java/org/apache/causeway/extensions/excel/integtests/ExcelModuleIntegTestAbstract.java
@@ -31,7 +31,7 @@
 import org.apache.causeway.core.runtimeservices.CausewayModuleCoreRuntimeServices;
 import org.apache.causeway.extensions.excel.fixtures.CausewayModuleExtExcelFixtures;
 import org.apache.causeway.persistence.commons.CausewayModulePersistenceCommons;
-import org.apache.causeway.persistence.jdo.applib.CausewayModulePersistenceJdoApplib;
+import org.apache.causeway.persistence.jpa.applib.CausewayModulePersistenceJpaApplib;
 import org.apache.causeway.security.bypass.CausewayModuleSecurityBypass;
 import org.apache.causeway.testing.fixtures.applib.CausewayIntegrationTestAbstractWithFixtures;
 import org.apache.causeway.testing.fixtures.applib.CausewayModuleTestingFixturesApplib;
@@ -49,13 +49,12 @@ public abstract class ExcelModuleIntegTestAbstract extends CausewayIntegrationTe
     @Configuration
     @PropertySources({
             @PropertySource(CausewayPresets.NoTranslations),
-            @PropertySource(CausewayPresets.DatanucleusAutocreateNoValidate),
     })
     @Import({
             CausewayModuleCoreRuntimeServices.class,
             CausewayModulePersistenceCommons.class,
             CausewayModuleSecurityBypass.class,
-            CausewayModulePersistenceJdoApplib.class,
+            CausewayModulePersistenceJpaApplib.class,
             CausewayModuleTestingFixturesApplib.class,
 
             CausewayModuleExtExcelFixtures.class,
diff --git a/extensions/core/excel/integtests/src/test/java/org/apache/causeway/extensions/excel/integtests/tests/ExcelModuleDemoMetaDataEnabled_IntegTest.java b/extensions/core/excel/integtests/src/test/java/org/apache/causeway/extensions/excel/integtests/tests/ExcelModuleDemoMetaDataEnabled_IntegTest.java
index 2c9fe9228a2..6c12683d143 100644
--- a/extensions/core/excel/integtests/src/test/java/org/apache/causeway/extensions/excel/integtests/tests/ExcelModuleDemoMetaDataEnabled_IntegTest.java
+++ b/extensions/core/excel/integtests/src/test/java/org/apache/causeway/extensions/excel/integtests/tests/ExcelModuleDemoMetaDataEnabled_IntegTest.java
@@ -36,7 +36,8 @@
 import org.apache.causeway.testing.fixtures.applib.fixturescripts.FixtureScript;
 import org.apache.causeway.testing.fixtures.applib.fixturescripts.FixtureScripts;
 
-public class ExcelModuleDemoMetaDataEnabled_IntegTest extends ExcelModuleIntegTestAbstract {
+@Disabled("TODO[2033] removal of PlatformTransactionManager")
+class ExcelModuleDemoMetaDataEnabled_IntegTest extends ExcelModuleIntegTestAbstract {
 
     @Inject protected FixtureScripts fixtureScripts;
 
@@ -54,7 +55,7 @@ protected void execute(final FixtureScript.ExecutionContext executionContext) {
         fixtureScripts.runFixtureScript(script, "");
     }
 
-    @Test @Disabled("TODO[2033] removal of PlatformTransactionManager")
+    @Test
     public void testResults() throws Exception{
 
         assertThat(fixtureResults.size()).isEqualTo(8);
diff --git a/extensions/core/excel/integtests/src/test/java/org/apache/causeway/extensions/excel/integtests/tests/ExcelModuleDemoUploadService_IntegTest.java b/extensions/core/excel/integtests/src/test/java/org/apache/causeway/extensions/excel/integtests/tests/ExcelModuleDemoUploadService_IntegTest.java
index 6533c519f6d..994b02538dd 100644
--- a/extensions/core/excel/integtests/src/test/java/org/apache/causeway/extensions/excel/integtests/tests/ExcelModuleDemoUploadService_IntegTest.java
+++ b/extensions/core/excel/integtests/src/test/java/org/apache/causeway/extensions/excel/integtests/tests/ExcelModuleDemoUploadService_IntegTest.java
@@ -37,7 +37,8 @@
 import org.apache.causeway.extensions.excel.fixtures.demoapp.todomodule.fixturescripts.ExcelDemoToDoItem_tearDown;
 import org.apache.causeway.extensions.excel.integtests.ExcelModuleIntegTestAbstract;
 
-public class ExcelModuleDemoUploadService_IntegTest extends ExcelModuleIntegTestAbstract {
+@Disabled
+class ExcelModuleDemoUploadService_IntegTest extends ExcelModuleIntegTestAbstract {
 
     @Inject private ExcelUploadServiceForDemoToDoItem uploadService;
     @Inject private ExcelDemoToDoItemMenu toDoItems;
@@ -47,7 +48,7 @@ public void setUpData() throws Exception {
         fixtureScripts.run(new ExcelDemoToDoItem_tearDown());
     }
 
-    @Test @Disabled
+    @Test
     public void uploadSpreadsheet() throws Exception{
 
         // Given
diff --git a/extensions/core/excel/pom.xml b/extensions/core/excel/pom.xml
index 24b5d14c4f3..4c36925e258 100644
--- a/extensions/core/excel/pom.xml
+++ b/extensions/core/excel/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.causeway.extensions</groupId>
         <artifactId>causeway-extensions</artifactId>
-        <version>3.4.0-SNAPSHOT</version>
+        <version>${revision}</version>
         <relativePath>../../pom.xml</relativePath>
     </parent>
 
@@ -43,22 +43,22 @@
             <dependency>
                 <groupId>org.apache.causeway.extensions</groupId>
                 <artifactId>causeway-extensions-excel-applib</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
             </dependency>
             <dependency>
                 <groupId>org.apache.causeway.extensions</groupId>
                 <artifactId>causeway-extensions-excel-testing</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
             </dependency>
             <dependency>
                 <groupId>org.apache.causeway.extensions</groupId>
                 <artifactId>causeway-extensions-excel-fixtures</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
             </dependency>
             <dependency>
                 <groupId>org.apache.causeway.extensions</groupId>
                 <artifactId>causeway-extensions-excel-integtests</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
             </dependency>
         </dependencies>
     </dependencyManagement>
diff --git a/extensions/core/excel/testing/pom.xml b/extensions/core/excel/testing/pom.xml
index dbdae67c582..fdf8001c822 100644
--- a/extensions/core/excel/testing/pom.xml
+++ b/extensions/core/excel/testing/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.causeway.extensions</groupId>
         <artifactId>causeway-extensions-excel</artifactId>
-        <version>3.4.0-SNAPSHOT</version>
+        <version>${revision}</version>
     </parent>
 
     <artifactId>causeway-extensions-excel-testing</artifactId>
diff --git a/extensions/core/executionlog/applib/pom.xml b/extensions/core/executionlog/applib/pom.xml
index dd63cc3cc13..1506bf21367 100644
--- a/extensions/core/executionlog/applib/pom.xml
+++ b/extensions/core/executionlog/applib/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.causeway.extensions</groupId>
         <artifactId>causeway-extensions-executionlog</artifactId>
-        <version>3.4.0-SNAPSHOT</version>
+        <version>${revision}</version>
     </parent>
 
     <artifactId>causeway-extensions-executionlog-applib</artifactId>
diff --git a/extensions/core/executionlog/persistence-jdo/logging-dn-enhance.properties b/extensions/core/executionlog/persistence-jdo/logging-dn-enhance.properties
deleted file mode 100644
index 515c2a29662..00000000000
--- a/extensions/core/executionlog/persistence-jdo/logging-dn-enhance.properties
+++ /dev/null
@@ -1,48 +0,0 @@
-#
-#  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.
-#
-
-log4j.appender.A1=org.apache.log4j.FileAppender
-log4j.appender.A1.File=datanucleus.log
-log4j.appender.A1.layout=org.apache.log4j.PatternLayout
-log4j.appender.A1.layout.ConversionPattern=%d{HH:mm:ss,SSS} (%t) %-5p [%c] - %m%n
-
-
-# overriding all those below... 
-log4j.category.DataNucleus=ERROR
-
-log4j.category.DataNucleus.Persistence=INFO, A1
-log4j.category.DataNucleus.Transaction=INFO, A1
-log4j.category.DataNucleus.Connection=INFO, A1
-log4j.category.DataNucleus.Query=INFO, A1
-log4j.category.DataNucleus.Cache=INFO, A1
-log4j.category.DataNucleus.MetaData=INFO, A1
-log4j.category.DataNucleus.Datastore=INFO, A1
-log4j.category.DataNucleus.Datastore.Schema=INFO, A1
-log4j.category.DataNucleus.Datastore.Persist=INFO, A1
-log4j.category.DataNucleus.Datastore.Retrieve=INFO, A1
-#Log of all 'native' statements sent to the datastore
-log4j.category.DataNucleus.Datastore.Native=INFO, A1 
-log4j.category.DataNucleus.General=INFO, A1
-#All messages relating to object lifecycle changes
-log4j.category.DataNucleus.Lifecycle=INFO, A1
-log4j.category.DataNucleus.ValueGeneration=INFO, A1
-log4j.category.DataNucleus.Enhancer=INFO, A1
-log4j.category.DataNucleus.SchemaTool=INFO, A1
-log4j.category.DataNucleus.JDO=INFO, A1
- 
\ No newline at end of file
diff --git a/extensions/core/executionlog/persistence-jdo/pom.xml b/extensions/core/executionlog/persistence-jdo/pom.xml
deleted file mode 100644
index b9737330308..00000000000
--- a/extensions/core/executionlog/persistence-jdo/pom.xml
+++ /dev/null
@@ -1,95 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  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.
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-
-    <parent>
-        <groupId>org.apache.causeway.extensions</groupId>
-        <artifactId>causeway-extensions-executionlog</artifactId>
-        <version>3.4.0-SNAPSHOT</version>
-    </parent>
-
-    <artifactId>causeway-extensions-executionlog-persistence-jdo</artifactId>
-    <name>Apache Causeway Ext - Execution Log Implementation (JDO)</name>
-
-    <properties>
-        <jar-plugin.automaticModuleName>org.apache.causeway.extensions.executionlog.persistence.jdo</jar-plugin.automaticModuleName>
-        <git-plugin.propertiesDir>org/apache/causeway/extensions/executionlog/persistence-jdo</git-plugin.propertiesDir>
-    </properties>
-
-    <build>
-        <resources>
-            <resource>
-                <filtering>false</filtering>
-                <directory>src/main/resources</directory>
-            </resource>
-            <resource>
-                <filtering>false</filtering>
-                <directory>src/main/java</directory>
-                <includes>
-                    <include>**</include>
-                </includes>
-                <excludes>
-                    <exclude>**/*.java</exclude>
-                </excludes>
-            </resource>
-        </resources>
-    </build>
-
-    <dependencies>
-
-	    <dependency>
-	        <groupId>org.apache.causeway.extensions</groupId>
-	        <artifactId>causeway-extensions-executionlog-applib</artifactId>
-	    </dependency>
-
-        <!-- PERSISTENCE -->
-
-		<dependency>
-            <groupId>org.apache.causeway.persistence</groupId>
-			<artifactId>causeway-persistence-jdo-datanucleus</artifactId>
-        </dependency>
-
-        <!-- TESTING -->
-
-        <dependency>
-            <groupId>org.apache.causeway.extensions</groupId>
-            <artifactId>causeway-extensions-executionlog-applib</artifactId>
-            <type>test-jar</type>
-            <scope>test</scope>
-        </dependency>
-
-		<dependency>
-			<groupId>org.apache.causeway.testing</groupId>
-			<artifactId>causeway-testing-unittestsupport-applib</artifactId>
-            <scope>test</scope>
-		</dependency>
-
-		<dependency>
-			<groupId>org.apache.causeway.testing</groupId>
-			<artifactId>causeway-testing-integtestsupport-applib</artifactId>
-			<scope>test</scope>
-		</dependency>
-
-
-    </dependencies>
-
-</project>
diff --git a/extensions/core/executionlog/persistence-jdo/src/main/java/org/apache/causeway/extensions/executionlog/jdo/CausewayModuleExtExecutionLogPersistenceJdo.java b/extensions/core/executionlog/persistence-jdo/src/main/java/org/apache/causeway/extensions/executionlog/jdo/CausewayModuleExtExecutionLogPersistenceJdo.java
deleted file mode 100644
index 09ca41bc449..00000000000
--- a/extensions/core/executionlog/persistence-jdo/src/main/java/org/apache/causeway/extensions/executionlog/jdo/CausewayModuleExtExecutionLogPersistenceJdo.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- *  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 org.apache.causeway.extensions.executionlog.jdo;
-
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Import;
-
-import org.apache.causeway.extensions.executionlog.applib.CausewayModuleExtExecutionLogApplib;
-import org.apache.causeway.extensions.executionlog.jdo.dom.ExecutionLogEntry;
-import org.apache.causeway.extensions.executionlog.jdo.dom.ExecutionLogEntryPK;
-import org.apache.causeway.extensions.executionlog.jdo.dom.ExecutionLogEntryRepository;
-import org.apache.causeway.persistence.jdo.datanucleus.CausewayModulePersistenceJdoDatanucleus;
-import org.apache.causeway.testing.fixtures.applib.fixturescripts.FixtureScript;
-import org.apache.causeway.testing.fixtures.applib.teardown.jdo.TeardownFixtureJdoAbstract;
-
-/**
- * @since 2.0 {@index}
- */
-@Configuration
-@Import({
-        // modules
-        CausewayModuleExtExecutionLogApplib.class,
-        CausewayModulePersistenceJdoDatanucleus.class,
-
-        // @Service's
-        ExecutionLogEntryRepository.class,
-        ExecutionLogEntryPK.Semantics.class,
-
-        // entities
-        ExecutionLogEntry.class
-})
-public class CausewayModuleExtExecutionLogPersistenceJdo {
-
-    public static final String NAMESPACE = CausewayModuleExtExecutionLogApplib.NAMESPACE;
-    public static final String SCHEMA = CausewayModuleExtExecutionLogApplib.SCHEMA;
-
-    /**
-     * For tests that need to delete the command table first.
-     * Should be run in the @BeforeEach of the test.
-     */
-    public FixtureScript getTeardownFixtureWillDelete() {
-        return new TeardownFixtureJdoAbstract() {
-            @Override
-            protected void execute(final ExecutionContext executionContext) {
-                deleteFrom(ExecutionLogEntry.class);
-            }
-        };
-    }
-
-}
diff --git a/extensions/core/executionlog/persistence-jdo/src/main/java/org/apache/causeway/extensions/executionlog/jdo/dom/ExecutionLogEntry.java b/extensions/core/executionlog/persistence-jdo/src/main/java/org/apache/causeway/extensions/executionlog/jdo/dom/ExecutionLogEntry.java
deleted file mode 100644
index 5d403af0075..00000000000
--- a/extensions/core/executionlog/persistence-jdo/src/main/java/org/apache/causeway/extensions/executionlog/jdo/dom/ExecutionLogEntry.java
+++ /dev/null
@@ -1,213 +0,0 @@
-/*
- *  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 org.apache.causeway.extensions.executionlog.jdo.dom;
-
-import java.util.UUID;
-
-import javax.jdo.annotations.Column;
-import javax.jdo.annotations.IdentityType;
-import javax.jdo.annotations.Index;
-import javax.jdo.annotations.Indices;
-import javax.jdo.annotations.PersistenceCapable;
-import javax.jdo.annotations.Persistent;
-import javax.jdo.annotations.PrimaryKey;
-import javax.jdo.annotations.Queries;
-import javax.jdo.annotations.Query;
-
-import jakarta.inject.Named;
-import jakarta.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
-
-import org.apache.causeway.applib.annotation.DomainObject;
-import org.apache.causeway.applib.annotation.Editing;
-import org.apache.causeway.applib.annotation.Publishing;
-import org.apache.causeway.applib.jaxb.PersistentEntityAdapter;
-import org.apache.causeway.applib.services.bookmark.Bookmark;
-import org.apache.causeway.extensions.executionlog.applib.dom.ExecutionLogEntry.Nq;
-import org.apache.causeway.extensions.executionlog.applib.dom.ExecutionLogEntryType;
-import org.apache.causeway.schema.ixn.v2.InteractionDto;
-
-import lombok.Getter;
-import lombok.Setter;
-
-@PersistenceCapable(
-        identityType= IdentityType.APPLICATION,
-        schema = ExecutionLogEntry.SCHEMA,
-        table = ExecutionLogEntry.TABLE,
-        objectIdClass= ExecutionLogEntryPK.class)
-@Indices({
-        @Index(name = "ExecutionLogEntry__timestamp__IDX", members = { "timestamp" }),
-        @Index(name = "ExecutionLogEntry__target_timestamp__IDX", members = { "target", "timestamp" }),
-        @Index(name = "ExecutionLogEntry__username_timestamp__IDX", members = { "username", "timestamp" }),
-})
-@Queries( {
-    @Query(
-            name = Nq.FIND_BY_INTERACTION_ID,
-            value = "SELECT "
-                  + "  FROM " + ExecutionLogEntry.FQCN + " "
-                  + " WHERE interactionId == :interactionId "
-                  + " ORDER BY timestamp DESC, sequence DESC"),
-    @Query(
-            name = Nq.FIND_BY_INTERACTION_ID_AND_SEQUENCE,
-            value = "SELECT "
-                  + "  FROM " + ExecutionLogEntry.FQCN + " "
-                  + " WHERE interactionId == :interactionId "
-                  + "    && sequence      == :sequence "),
-    @Query(
-            name = Nq.FIND_BY_TARGET_AND_TIMESTAMP_BETWEEN,
-            value = "SELECT "
-                  + "  FROM " + ExecutionLogEntry.FQCN + " "
-                  + " WHERE target == :target "
-                  + "    && timestamp >= :timestampFrom "
-                  + "    && timestamp <= :timestampTo "
-                  + " ORDER BY timestamp DESC, interactionId DESC, sequence DESC"),
-    @Query(
-            name = Nq.FIND_BY_TARGET_AND_TIMESTAMP_AFTER,
-            value = "SELECT "
-                  + "  FROM " + ExecutionLogEntry.FQCN + " "
-                  + " WHERE target == :target "
-                  + "    && timestamp >= :timestamp "
-                  + " ORDER BY timestamp DESC, interactionId DESC, sequence DESC"),
-    @Query(
-            name = Nq.FIND_BY_TARGET_AND_TIMESTAMP_BEFORE,
-            value = "SELECT "
-                  + "  FROM " + ExecutionLogEntry.FQCN + " "
-                  + " WHERE target == :target "
-                  + "    && timestamp <= :timestamp "
-                  + " ORDER BY timestamp DESC, interactionId DESC, sequence DESC"),
-    @Query(
-            name = Nq.FIND_BY_TARGET,
-            value = "SELECT "
-                  + "  FROM " + ExecutionLogEntry.FQCN + " "
-                  + " WHERE target == :target "
-                  + " ORDER BY timestamp DESC, interactionId DESC, sequence DESC"),
-    @Query(
-            name = Nq.FIND_BY_TIMESTAMP_BETWEEN,
-            value = "SELECT "
-                  + "  FROM " + ExecutionLogEntry.FQCN + " "
-                  + " WHERE timestamp >= :from "
-                  + "    && timestamp <= :to "
-                  + " ORDER BY timestamp DESC, interactionId DESC, sequence DESC"),
-    @Query(
-            name = Nq.FIND_BY_TIMESTAMP_AFTER,
-            value = "SELECT "
-                  + "  FROM " + ExecutionLogEntry.FQCN + " "
-                  + " WHERE timestamp >= :from "
-                  + " ORDER BY timestamp DESC, interactionId DESC, sequence DESC"),
-    @Query(
-            name = Nq.FIND_BY_TIMESTAMP_BEFORE,
-            value = "SELECT "
-                  + "  FROM " + ExecutionLogEntry.FQCN + " "
-                  + " WHERE timestamp <= :to "
-                  + " ORDER BY timestamp DESC, interactionId DESC, sequence DESC"),
-    @Query(
-            name  = Nq.FIND,
-            value = "SELECT "
-                  + "  FROM " + ExecutionLogEntry.FQCN + " "
-                  + " ORDER BY timestamp DESC"),
-    @Query(
-            name = Nq.FIND_MOST_RECENT,
-            value = "SELECT "
-                  + "  FROM " + ExecutionLogEntry.FQCN + " "
-                  + " ORDER BY timestamp DESC, interactionId DESC, sequence DESC"
-                  + " RANGE 0,100"),
-    @Query(
-            name = Nq.FIND_RECENT_BY_USERNAME,
-            value = "SELECT "
-                  + "  FROM " + ExecutionLogEntry.FQCN + " "
-                  + " WHERE username == :username "
-                  + " ORDER BY timestamp DESC, interactionId DESC, sequence DESC "
-                  + " RANGE 0,30"),
-    @Query(
-            name = Nq.FIND_RECENT_BY_TARGET,
-            value = "SELECT "
-                  + "  FROM " + ExecutionLogEntry.FQCN + " "
-                  + " WHERE target == :target "
-                  + " ORDER BY timestamp DESC, interactionId DESC, sequence DESC "
-                  + " RANGE 0,30")
-})
-@Named(ExecutionLogEntry.LOGICAL_TYPE_NAME)
-@DomainObject(
-        editing = Editing.DISABLED,
-        entityChangePublishing = Publishing.DISABLED
-)
-@XmlJavaTypeAdapter(PersistentEntityAdapter.class)
-public class ExecutionLogEntry extends org.apache.causeway.extensions.executionlog.applib.dom.ExecutionLogEntry {
-
-    public static final String FQCN = "org.apache.causeway.extensions.executionlog.jdo.dom.ExecutionLogEntry";
-    @PrimaryKey
-    @InteractionId
-    @Column(allowsNull = InteractionId.ALLOWS_NULL, length=InteractionId.MAX_LENGTH)
-    @Getter @Setter
-    private UUID interactionId;
-
-    @PrimaryKey
-    @Sequence
-    @Column(allowsNull = Sequence.ALLOWS_NULL)
-    @Getter @Setter
-    private int sequence;
-
-    @Column(allowsNull = ExecutionType.ALLOWS_NULL, length = ExecutionType.MAX_LENGTH)
-    @ExecutionType
-    @Getter @Setter
-    private ExecutionLogEntryType executionType;
-
-    @Column(allowsNull = Username.ALLOWS_NULL, length = Username.MAX_LENGTH)
-    @Username
-    @Getter @Setter
-    private String username;
-
-    @Persistent
-    @Column(allowsNull = Timestamp.ALLOWS_NULL)
-    @Timestamp
-    @Getter @Setter
-    private java.sql.Timestamp timestamp;
-
-    @Persistent
-    @Column(allowsNull = Target.ALLOWS_NULL, length = Target.MAX_LENGTH)
-    @Target
-    @Getter @Setter
-    private Bookmark target;
-
-    @Column(allowsNull = LogicalMemberIdentifier.ALLOWS_NULL, length= LogicalMemberIdentifier.MAX_LENGTH)
-    @LogicalMemberIdentifier
-    @Getter
-    private String logicalMemberIdentifier;
-    public void setLogicalMemberIdentifier(final String logicalMemberIdentifier) {
-        this.logicalMemberIdentifier = Util.abbreviated(logicalMemberIdentifier, LogicalMemberIdentifier.MAX_LENGTH);
-    }
-
-    @Persistent
-    @Column(allowsNull = InteractionDtoAnnot.ALLOWS_NULL, jdbcType = "CLOB", sqlType = "LONGVARCHAR")
-    @InteractionDtoAnnot
-    @Getter @Setter
-    private InteractionDto interactionDto;
-
-    @Persistent
-    @Column(allowsNull = StartedAt.ALLOWS_NULL)
-    @StartedAt
-    @Getter @Setter
-    private java.sql.Timestamp startedAt;
-
-    @Persistent
-    @Column(allowsNull = CompletedAt.ALLOWS_NULL)
-    @CompletedAt
-    @Getter @Setter
-    private java.sql.Timestamp completedAt;
-
-}
diff --git a/extensions/core/executionlog/persistence-jdo/src/main/java/org/apache/causeway/extensions/executionlog/jdo/dom/ExecutionLogEntryPK.java b/extensions/core/executionlog/persistence-jdo/src/main/java/org/apache/causeway/extensions/executionlog/jdo/dom/ExecutionLogEntryPK.java
deleted file mode 100644
index c914588ee84..00000000000
--- a/extensions/core/executionlog/persistence-jdo/src/main/java/org/apache/causeway/extensions/executionlog/jdo/dom/ExecutionLogEntryPK.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- *  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 org.apache.causeway.extensions.executionlog.jdo.dom;
-
-import java.io.Serializable;
-import java.util.StringTokenizer;
-import java.util.UUID;
-
-import jakarta.annotation.Priority;
-
-import org.springframework.stereotype.Component;
-
-import org.apache.causeway.applib.annotation.PriorityPrecedence;
-import org.apache.causeway.applib.value.semantics.ValueSemanticsBasedOnIdStringifierEntityAgnostic;
-
-import lombok.EqualsAndHashCode;
-import lombok.Getter;
-import lombok.NoArgsConstructor;
-import org.jspecify.annotations.NonNull;
-import lombok.Setter;
-
-@EqualsAndHashCode(of = {"interactionId", "sequence"})
-@NoArgsConstructor
-public class ExecutionLogEntryPK implements Serializable {
-
-    private static final long serialVersionUID = 1L;
-
-    private static final String SEPARATOR = "_";
-
-    @Getter @Setter
-    public UUID interactionId;
-    @Getter @Setter
-    public int sequence;
-
-    public ExecutionLogEntryPK(final String value) {
-        var token = new StringTokenizer (value, SEPARATOR);
-        this.interactionId = UUID.fromString(token.nextToken());
-        this.sequence = Integer.parseInt(token.nextToken());
-    }
-
-    @Override
-    public String toString() {
-        return interactionId + SEPARATOR + sequence;
-    }
-
-    @Component
-    @Priority(PriorityPrecedence.MIDPOINT)
-    public static class Semantics
-    extends ValueSemanticsBasedOnIdStringifierEntityAgnostic<ExecutionLogEntryPK> {
-
-        public Semantics() {
-            super(ExecutionLogEntryPK.class);
-        }
-
-        @Override
-        public ExecutionLogEntryPK destring(
-                final @NonNull String stringified) {
-            return new ExecutionLogEntryPK(stringified);
-        }
-
-    }
-}
diff --git a/extensions/core/executionlog/persistence-jdo/src/main/java/org/apache/causeway/extensions/executionlog/jdo/dom/ExecutionLogEntryRepository.java b/extensions/core/executionlog/persistence-jdo/src/main/java/org/apache/causeway/extensions/executionlog/jdo/dom/ExecutionLogEntryRepository.java
deleted file mode 100644
index 917f504082d..00000000000
--- a/extensions/core/executionlog/persistence-jdo/src/main/java/org/apache/causeway/extensions/executionlog/jdo/dom/ExecutionLogEntryRepository.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- *  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 org.apache.causeway.extensions.executionlog.jdo.dom;
-
-import jakarta.inject.Named;
-import jakarta.inject.Provider;
-
-import org.springframework.beans.factory.annotation.Qualifier;
-import org.springframework.stereotype.Service;
-
-import org.apache.causeway.applib.annotation.PriorityPrecedence;
-import org.apache.causeway.applib.services.factory.FactoryService;
-import org.apache.causeway.applib.services.repository.RepositoryService;
-import org.apache.causeway.extensions.executionlog.applib.dom.ExecutionLogEntryRepositoryAbstract;
-import org.apache.causeway.extensions.executionlog.jdo.CausewayModuleExtExecutionLogPersistenceJdo;
-
-import lombok.Builder;
-
-@Service
-@Named(ExecutionLogEntryRepository.LOGICAL_TYPE_NAME)
-@jakarta.annotation.Priority(PriorityPrecedence.MIDPOINT)
-@Qualifier("Jdo")
-public class ExecutionLogEntryRepository
-extends ExecutionLogEntryRepositoryAbstract<ExecutionLogEntry> {
-
-    public static final String LOGICAL_TYPE_NAME = CausewayModuleExtExecutionLogPersistenceJdo.NAMESPACE + ".ExecutionLogEntryRepository";
-
-    public ExecutionLogEntryRepository() {
-        super(ExecutionLogEntry.class);
-    }
-
-    /**
-     * for testing only
-     */
-    @Builder
-    ExecutionLogEntryRepository(
-            Class<ExecutionLogEntry> executionLogEntryClass,
-            Provider<RepositoryService> repositoryServiceProvider,
-            FactoryService factoryService) {
-        super(executionLogEntryClass, repositoryServiceProvider, factoryService);
-    }
-
-}
diff --git a/extensions/core/executionlog/persistence-jdo/src/test/java/org/apache/causeway/extensions/executionlog/jdo/integtests/ExecutionLog_IntegTest.java b/extensions/core/executionlog/persistence-jdo/src/test/java/org/apache/causeway/extensions/executionlog/jdo/integtests/ExecutionLog_IntegTest.java
deleted file mode 100644
index a40693fe715..00000000000
--- a/extensions/core/executionlog/persistence-jdo/src/test/java/org/apache/causeway/extensions/executionlog/jdo/integtests/ExecutionLog_IntegTest.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- *  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 org.apache.causeway.extensions.executionlog.jdo.integtests;
-
-import org.springframework.boot.SpringBootConfiguration;
-import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
-import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.context.annotation.ComponentScan;
-import org.springframework.context.annotation.Import;
-import org.springframework.context.annotation.PropertySource;
-import org.springframework.context.annotation.PropertySources;
-import org.springframework.test.context.ActiveProfiles;
-
-import org.apache.causeway.core.config.presets.CausewayPresets;
-import org.apache.causeway.core.runtimeservices.CausewayModuleCoreRuntimeServices;
-import org.apache.causeway.extensions.executionlog.applib.integtest.ExecutionLog_IntegTestAbstract;
-import org.apache.causeway.extensions.executionlog.applib.integtest.model.ExecutionLogTestDomainModel;
-import org.apache.causeway.extensions.executionlog.jdo.CausewayModuleExtExecutionLogPersistenceJdo;
-import org.apache.causeway.extensions.executionlog.jdo.integtests.model.Counter;
-import org.apache.causeway.security.bypass.CausewayModuleSecurityBypass;
-
-@SpringBootTest(
-        classes = ExecutionLog_IntegTest.AppManifest.class
-)
-@ActiveProfiles("test")
-public class ExecutionLog_IntegTest extends ExecutionLog_IntegTestAbstract {
-
-    @SpringBootConfiguration
-    @EnableAutoConfiguration
-    @Import({
-            CausewayModuleCoreRuntimeServices.class,
-            CausewayModuleSecurityBypass.class,
-            CausewayModuleExtExecutionLogPersistenceJdo.class,
-    })
-    @PropertySources({
-            @PropertySource(CausewayPresets.UseLog4j2Test)
-    })
-    @ComponentScan(basePackageClasses = {AppManifest.class, ExecutionLogTestDomainModel.class})
-    public static class AppManifest {
-    }
-
-    @Override
-    protected org.apache.causeway.extensions.executionlog.applib.integtest.model.Counter newCounter(final String name) {
-        return Counter.builder().name(name).build();
-    }
-
-}
diff --git a/extensions/core/executionlog/persistence-jdo/src/test/java/org/apache/causeway/extensions/executionlog/jdo/integtests/model/Counter.java b/extensions/core/executionlog/persistence-jdo/src/test/java/org/apache/causeway/extensions/executionlog/jdo/integtests/model/Counter.java
deleted file mode 100644
index 9b101792999..00000000000
--- a/extensions/core/executionlog/persistence-jdo/src/test/java/org/apache/causeway/extensions/executionlog/jdo/integtests/model/Counter.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * 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 org.apache.causeway.extensions.executionlog.jdo.integtests.model;
-
-import javax.jdo.annotations.Column;
-import javax.jdo.annotations.DatastoreIdentity;
-import javax.jdo.annotations.IdGeneratorStrategy;
-import javax.jdo.annotations.PersistenceCapable;
-
-import jakarta.inject.Named;
-
-import org.apache.causeway.applib.annotation.DomainObject;
-import org.apache.causeway.applib.annotation.Nature;
-
-import lombok.AccessLevel;
-import lombok.AllArgsConstructor;
-import lombok.Builder;
-import lombok.Getter;
-import lombok.NoArgsConstructor;
-import lombok.Setter;
-
-@PersistenceCapable(
-        schema = "public",
-        table = "Counter"
-)
-@DatastoreIdentity(strategy = IdGeneratorStrategy.IDENTITY, column = "id")
-@Named("executionlog.test.Counter")
-@DomainObject(nature = Nature.ENTITY)
-@NoArgsConstructor
-@Builder
-@AllArgsConstructor(access = AccessLevel.PRIVATE)
-public class Counter extends org.apache.causeway.extensions.executionlog.applib.integtest.model.Counter {
-
-    @Column(allowsNull = "false")
-    @Getter @Setter
-    private String name;
-
-    @Column(allowsNull = "true")
-    @Getter @Setter
-    private Long num;
-
-    @Column(allowsNull = "true")
-    @Getter @Setter
-    private Long num2;
-
-}
diff --git a/extensions/core/executionlog/persistence-jdo/src/test/java/org/apache/causeway/extensions/executionlog/jdo/integtests/model/CounterRepository.java b/extensions/core/executionlog/persistence-jdo/src/test/java/org/apache/causeway/extensions/executionlog/jdo/integtests/model/CounterRepository.java
deleted file mode 100644
index 45abc6f4273..00000000000
--- a/extensions/core/executionlog/persistence-jdo/src/test/java/org/apache/causeway/extensions/executionlog/jdo/integtests/model/CounterRepository.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * 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 org.apache.causeway.extensions.executionlog.jdo.integtests.model;
-
-import org.springframework.stereotype.Repository;
-
-@Repository
-public class CounterRepository
-        extends org.apache.causeway.extensions.executionlog.applib.integtest.model.CounterRepository<Counter> {
-
-    public CounterRepository() {
-        super(Counter.class);
-    }
-}
diff --git a/extensions/core/executionlog/persistence-jdo/src/test/resources/application-test.yml b/extensions/core/executionlog/persistence-jdo/src/test/resources/application-test.yml
deleted file mode 100644
index 5ef6c5da861..00000000000
--- a/extensions/core/executionlog/persistence-jdo/src/test/resources/application-test.yml
+++ /dev/null
@@ -1,26 +0,0 @@
-#  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.
-causeway:
-  persistence:
-    schema:
-      auto-create-schemas: "CAUSEWAYEXTEXECUTIONLOG"
-
-
-datanucleus:
-  schema:
-    generate-database:
-      mode: "create"
diff --git a/extensions/core/executionlog/persistence-jpa/pom.xml b/extensions/core/executionlog/persistence-jpa/pom.xml
index 5f772eb628c..cefa66c6bc9 100644
--- a/extensions/core/executionlog/persistence-jpa/pom.xml
+++ b/extensions/core/executionlog/persistence-jpa/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.causeway.extensions</groupId>
         <artifactId>causeway-extensions-executionlog</artifactId>
-        <version>3.4.0-SNAPSHOT</version>
+        <version>${revision}</version>
     </parent>
 
     <artifactId>causeway-extensions-executionlog-persistence-jpa</artifactId>
diff --git a/extensions/core/executionlog/pom.xml b/extensions/core/executionlog/pom.xml
index fcbeec3892b..45a5d49fea8 100644
--- a/extensions/core/executionlog/pom.xml
+++ b/extensions/core/executionlog/pom.xml
@@ -25,7 +25,7 @@
 	<parent>
 		<groupId>org.apache.causeway.extensions</groupId>
 		<artifactId>causeway-extensions</artifactId>
-		<version>3.4.0-SNAPSHOT</version>
+		<version>${revision}</version>
 		<relativePath>../../pom.xml</relativePath>
 	</parent>
 
@@ -40,44 +40,23 @@
 			<dependency>
 				<groupId>org.apache.causeway.extensions</groupId>
 				<artifactId>causeway-extensions-executionlog-applib</artifactId>
-				<version>3.4.0-SNAPSHOT</version>
+				<version>${project.version}</version>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.causeway.extensions</groupId>
 				<artifactId>causeway-extensions-executionlog-applib</artifactId>
 				<scope>test</scope>
 				<type>test-jar</type>
-				<version>3.4.0-SNAPSHOT</version>
-			</dependency>
-			<dependency>
-				<groupId>org.apache.causeway.extensions</groupId>
-				<artifactId>causeway-extensions-executionlog-persistence-jdo</artifactId>
-				<version>3.4.0-SNAPSHOT</version>
+				<version>${project.version}</version>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.causeway.extensions</groupId>
 				<artifactId>causeway-extensions-executionlog-persistence-jpa</artifactId>
-				<version>3.4.0-SNAPSHOT</version>
+				<version>${project.version}</version>
 			</dependency>
 		</dependencies>
 	</dependencyManagement>
 
-    <profiles>
-        <profile>
-            <id>module-jdo</id>
-            <activation>
-                <property>
-                    <name>!skip-module-jdo</name>
-                </property>
-            </activation>
-            <modules>
-                <module>applib</module>
-                <module>persistence-jdo</module>
-                <module>persistence-jpa</module>
-            </modules>
-        </profile>
-    </profiles>
-
 	<modules>
 		<module>applib</module>
 		<module>persistence-jpa</module>
diff --git a/extensions/core/executionoutbox/applib/pom.xml b/extensions/core/executionoutbox/applib/pom.xml
index 6f8f365860b..58193b16163 100644
--- a/extensions/core/executionoutbox/applib/pom.xml
+++ b/extensions/core/executionoutbox/applib/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.causeway.extensions</groupId>
         <artifactId>causeway-extensions-executionoutbox</artifactId>
-        <version>3.4.0-SNAPSHOT</version>
+        <version>${revision}</version>
     </parent>
 
     <artifactId>causeway-extensions-executionoutbox-applib</artifactId>
diff --git a/extensions/core/executionoutbox/persistence-jdo/logging-dn-enhance.properties b/extensions/core/executionoutbox/persistence-jdo/logging-dn-enhance.properties
deleted file mode 100644
index 515c2a29662..00000000000
--- a/extensions/core/executionoutbox/persistence-jdo/logging-dn-enhance.properties
+++ /dev/null
@@ -1,48 +0,0 @@
-#
-#  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.
-#
-
-log4j.appender.A1=org.apache.log4j.FileAppender
-log4j.appender.A1.File=datanucleus.log
-log4j.appender.A1.layout=org.apache.log4j.PatternLayout
-log4j.appender.A1.layout.ConversionPattern=%d{HH:mm:ss,SSS} (%t) %-5p [%c] - %m%n
-
-
-# overriding all those below... 
-log4j.category.DataNucleus=ERROR
-
-log4j.category.DataNucleus.Persistence=INFO, A1
-log4j.category.DataNucleus.Transaction=INFO, A1
-log4j.category.DataNucleus.Connection=INFO, A1
-log4j.category.DataNucleus.Query=INFO, A1
-log4j.category.DataNucleus.Cache=INFO, A1
-log4j.category.DataNucleus.MetaData=INFO, A1
-log4j.category.DataNucleus.Datastore=INFO, A1
-log4j.category.DataNucleus.Datastore.Schema=INFO, A1
-log4j.category.DataNucleus.Datastore.Persist=INFO, A1
-log4j.category.DataNucleus.Datastore.Retrieve=INFO, A1
-#Log of all 'native' statements sent to the datastore
-log4j.category.DataNucleus.Datastore.Native=INFO, A1 
-log4j.category.DataNucleus.General=INFO, A1
-#All messages relating to object lifecycle changes
-log4j.category.DataNucleus.Lifecycle=INFO, A1
-log4j.category.DataNucleus.ValueGeneration=INFO, A1
-log4j.category.DataNucleus.Enhancer=INFO, A1
-log4j.category.DataNucleus.SchemaTool=INFO, A1
-log4j.category.DataNucleus.JDO=INFO, A1
- 
\ No newline at end of file
diff --git a/extensions/core/executionoutbox/persistence-jdo/pom.xml b/extensions/core/executionoutbox/persistence-jdo/pom.xml
deleted file mode 100644
index 3a769162ac5..00000000000
--- a/extensions/core/executionoutbox/persistence-jdo/pom.xml
+++ /dev/null
@@ -1,95 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  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.
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-
-    <parent>
-        <groupId>org.apache.causeway.extensions</groupId>
-        <artifactId>causeway-extensions-executionoutbox</artifactId>
-        <version>3.4.0-SNAPSHOT</version>
-    </parent>
-
-    <artifactId>causeway-extensions-executionoutbox-persistence-jdo</artifactId>
-    <name>Apache Causeway Ext - Execution Outbox Implementation (JDO)</name>
-
-    <properties>
-        <jar-plugin.automaticModuleName>org.apache.causeway.extensions.executionoutbox.persistence.jdo</jar-plugin.automaticModuleName>
-        <git-plugin.propertiesDir>org/apache/causeway/extensions/executionoutbox/persistence-jdo</git-plugin.propertiesDir>
-    </properties>
-
-    <build>
-        <resources>
-            <resource>
-                <filtering>false</filtering>
-                <directory>src/main/resources</directory>
-            </resource>
-            <resource>
-                <filtering>false</filtering>
-                <directory>src/main/java</directory>
-                <includes>
-                    <include>**</include>
-                </includes>
-                <excludes>
-                    <exclude>**/*.java</exclude>
-                </excludes>
-            </resource>
-        </resources>
-    </build>
-
-    <dependencies>
-
-	    <dependency>
-	        <groupId>org.apache.causeway.extensions</groupId>
-	        <artifactId>causeway-extensions-executionoutbox-applib</artifactId>
-	    </dependency>
-
-        <!-- PERSISTENCE -->
-
-		<dependency>
-            <groupId>org.apache.causeway.persistence</groupId>
-			<artifactId>causeway-persistence-jdo-datanucleus</artifactId>
-        </dependency>
-
-        <!-- TESTING -->
-
-        <dependency>
-            <groupId>org.apache.causeway.extensions</groupId>
-            <artifactId>causeway-extensions-executionoutbox-applib</artifactId>
-            <type>test-jar</type>
-            <scope>test</scope>
-        </dependency>
-
-		<dependency>
-			<groupId>org.apache.causeway.testing</groupId>
-			<artifactId>causeway-testing-unittestsupport-applib</artifactId>
-            <scope>test</scope>
-		</dependency>
-
-		<dependency>
-			<groupId>org.apache.causeway.testing</groupId>
-			<artifactId>causeway-testing-integtestsupport-applib</artifactId>
-			<scope>test</scope>
-		</dependency>
-
-
-    </dependencies>
-
-</project>
diff --git a/extensions/core/executionoutbox/persistence-jdo/src/main/java/org/apache/causeway/extensions/executionoutbox/jdo/CausewayModuleExtExecutionOutboxPersistenceJdo.java b/extensions/core/executionoutbox/persistence-jdo/src/main/java/org/apache/causeway/extensions/executionoutbox/jdo/CausewayModuleExtExecutionOutboxPersistenceJdo.java
deleted file mode 100644
index 2ef7deeac5a..00000000000
--- a/extensions/core/executionoutbox/persistence-jdo/src/main/java/org/apache/causeway/extensions/executionoutbox/jdo/CausewayModuleExtExecutionOutboxPersistenceJdo.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- *  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 org.apache.causeway.extensions.executionoutbox.jdo;
-
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Import;
-
-import org.apache.causeway.extensions.executionoutbox.applib.CausewayModuleExtExecutionOutboxApplib;
-import org.apache.causeway.extensions.executionoutbox.jdo.dom.ExecutionOutboxEntry;
-import org.apache.causeway.extensions.executionoutbox.jdo.dom.ExecutionOutboxEntryPK;
-import org.apache.causeway.extensions.executionoutbox.jdo.dom.ExecutionOutboxEntryRepository;
-import org.apache.causeway.persistence.jdo.datanucleus.CausewayModulePersistenceJdoDatanucleus;
-import org.apache.causeway.testing.fixtures.applib.fixturescripts.FixtureScript;
-import org.apache.causeway.testing.fixtures.applib.modules.ModuleWithFixtures;
-import org.apache.causeway.testing.fixtures.applib.teardown.jdo.TeardownFixtureJdoAbstract;
-
-/**
- * @since 2.0 {@index}
- */
-@Configuration
-@Import({
-        // modules
-        CausewayModuleExtExecutionOutboxApplib.class,
-        CausewayModulePersistenceJdoDatanucleus.class,
-
-        // @Service's
-        ExecutionOutboxEntryRepository.class,
-        ExecutionOutboxEntryPK.Semantics.class,
-
-        // entities
-        ExecutionOutboxEntry.class
-})
-public class CausewayModuleExtExecutionOutboxPersistenceJdo {
-
-    public static final String NAMESPACE = CausewayModuleExtExecutionOutboxApplib.NAMESPACE;
-    public static final String SCHEMA = CausewayModuleExtExecutionOutboxApplib.SCHEMA;
-
-    /**
-     * Note that this is <i>NOT</i> an implementation of the {@link ModuleWithFixtures#getTeardownFixture()} API;
-     * but is provided to allow manual teardown if required.
-     */
-    public FixtureScript teardownFixture() {
-        return new TeardownFixtureJdoAbstract() {
-            @Override
-            protected void execute(final ExecutionContext executionContext) {
-                deleteFrom(ExecutionOutboxEntry.class);
-            }
-        };
-    }
-
-}
diff --git a/extensions/core/executionoutbox/persistence-jdo/src/main/java/org/apache/causeway/extensions/executionoutbox/jdo/dom/ExecutionOutboxEntry.java b/extensions/core/executionoutbox/persistence-jdo/src/main/java/org/apache/causeway/extensions/executionoutbox/jdo/dom/ExecutionOutboxEntry.java
deleted file mode 100644
index 42ee7655082..00000000000
--- a/extensions/core/executionoutbox/persistence-jdo/src/main/java/org/apache/causeway/extensions/executionoutbox/jdo/dom/ExecutionOutboxEntry.java
+++ /dev/null
@@ -1,141 +0,0 @@
-/*
- *  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 org.apache.causeway.extensions.executionoutbox.jdo.dom;
-
-import java.util.UUID;
-
-import javax.jdo.annotations.Column;
-import javax.jdo.annotations.IdentityType;
-import javax.jdo.annotations.Index;
-import javax.jdo.annotations.Indices;
-import javax.jdo.annotations.PersistenceCapable;
-import javax.jdo.annotations.Persistent;
-import javax.jdo.annotations.PrimaryKey;
-import javax.jdo.annotations.Queries;
-import javax.jdo.annotations.Query;
-
-import jakarta.inject.Named;
-import jakarta.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
-
-import org.apache.causeway.applib.annotation.DomainObject;
-import org.apache.causeway.applib.annotation.Editing;
-import org.apache.causeway.applib.annotation.Publishing;
-import org.apache.causeway.applib.jaxb.PersistentEntityAdapter;
-import org.apache.causeway.applib.services.bookmark.Bookmark;
-import org.apache.causeway.extensions.executionoutbox.applib.dom.ExecutionOutboxEntry.Nq;
-import org.apache.causeway.extensions.executionoutbox.applib.dom.ExecutionOutboxEntryType;
-import org.apache.causeway.schema.ixn.v2.InteractionDto;
-
-import lombok.Getter;
-import lombok.Setter;
-
-@PersistenceCapable(
-        identityType= IdentityType.APPLICATION,
-        schema = ExecutionOutboxEntry.SCHEMA,
-        table = ExecutionOutboxEntry.TABLE,
-        objectIdClass= ExecutionOutboxEntryPK.class)
-@Indices({
-        @Index(name = "ExecutionOutboxEntry__timestamp__IDX", members = { "timestamp" }),
-        @Index(name = "ExecutionOutboxEntry__target__timestamp__IDX", members = { "target", "timestamp" }),
-        @Index(name = "ExecutionOutboxEntry__username__timestamp__IDX", members = { "username", "timestamp" }),
-})
-@Queries( {
-    @Query(
-            name = Nq.FIND_BY_INTERACTION_ID_AND_SEQUENCE,
-            value = "SELECT "
-                  + "  FROM " + ExecutionOutboxEntry.FQCN + " "
-                  + " WHERE interactionId == :interactionId "
-                  + "    && sequence      == :sequence "),
-    @Query(
-            name = Nq.FIND_OLDEST,
-            value = "SELECT "
-                  + "  FROM " + ExecutionOutboxEntry.FQCN + " "
-                  + " ORDER BY timestamp ASC, interactionId ASC, sequence DESC"
-                    + " RANGE 0,100"),
-})
-@Named(ExecutionOutboxEntry.LOGICAL_TYPE_NAME)
-@DomainObject(
-        editing = Editing.DISABLED,
-        entityChangePublishing = Publishing.DISABLED
-)
-@XmlJavaTypeAdapter(PersistentEntityAdapter.class)
-public class ExecutionOutboxEntry extends org.apache.causeway.extensions.executionoutbox.applib.dom.ExecutionOutboxEntry {
-
-    public static final String FQCN = "org.apache.causeway.extensions.executionlog.jdo.dom.ExecutionLogEntry";
-    @PrimaryKey
-    @InteractionId
-    @Column(allowsNull = InteractionId.ALLOWS_NULL, length=InteractionId.MAX_LENGTH)
-    @Getter @Setter
-    private UUID interactionId;
-
-    @PrimaryKey
-    @Sequence
-    @Column(allowsNull = Sequence.ALLOWS_NULL)
-    @Getter @Setter
-    private int sequence;
-
-    @Column(allowsNull = ExecutionType.ALLOWS_NULL, length = ExecutionType.MAX_LENGTH)
-    @ExecutionType
-    @Getter @Setter
-    private ExecutionOutboxEntryType executionType;
-
-    @Column(allowsNull = Username.ALLOWS_NULL, length = Username.MAX_LENGTH)
-    @Username
-    @Getter @Setter
-    private String username;
-
-    @Persistent
-    @Column(allowsNull = Timestamp.ALLOWS_NULL)
-    @Timestamp
-    @Getter @Setter
-    private java.sql.Timestamp timestamp;
-
-    @Persistent
-    @Column(allowsNull = Target.ALLOWS_NULL, length = Target.MAX_LENGTH)
-    @Target
-    @Getter @Setter
-    private Bookmark target;
-
-    @Column(allowsNull = LogicalMemberIdentifier.ALLOWS_NULL, length= LogicalMemberIdentifier.MAX_LENGTH)
-    @LogicalMemberIdentifier
-    @Getter
-    private String logicalMemberIdentifier;
-    public void setLogicalMemberIdentifier(final String logicalMemberIdentifier) {
-        this.logicalMemberIdentifier = Util.abbreviated(logicalMemberIdentifier, LogicalMemberIdentifier.MAX_LENGTH);
-    }
-
-    @Persistent
-    @Column(allowsNull = InteractionDtoAnnot.ALLOWS_NULL, jdbcType = "CLOB", sqlType = "LONGVARCHAR")
-    @InteractionDtoAnnot
-    @Getter @Setter
-    private InteractionDto interactionDto;
-
-    @Persistent
-    @Column(allowsNull = StartedAt.ALLOWS_NULL)
-    @StartedAt
-    @Getter @Setter
-    private java.sql.Timestamp startedAt;
-
-    @Persistent
-    @Column(allowsNull = CompletedAt.ALLOWS_NULL)
-    @CompletedAt
-    @Getter @Setter
-    private java.sql.Timestamp completedAt;
-
-}
diff --git a/extensions/core/executionoutbox/persistence-jdo/src/main/java/org/apache/causeway/extensions/executionoutbox/jdo/dom/ExecutionOutboxEntryPK.java b/extensions/core/executionoutbox/persistence-jdo/src/main/java/org/apache/causeway/extensions/executionoutbox/jdo/dom/ExecutionOutboxEntryPK.java
deleted file mode 100644
index 30b36b71f5a..00000000000
--- a/extensions/core/executionoutbox/persistence-jdo/src/main/java/org/apache/causeway/extensions/executionoutbox/jdo/dom/ExecutionOutboxEntryPK.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
- *  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 org.apache.causeway.extensions.executionoutbox.jdo.dom;
-
-import java.io.Serializable;
-import java.util.StringTokenizer;
-import java.util.UUID;
-
-import jakarta.annotation.Priority;
-
-import org.springframework.stereotype.Component;
-
-import org.apache.causeway.applib.annotation.PriorityPrecedence;
-import org.apache.causeway.applib.value.semantics.ValueSemanticsBasedOnIdStringifierEntityAgnostic;
-
-import lombok.EqualsAndHashCode;
-import lombok.Getter;
-import lombok.NoArgsConstructor;
-import org.jspecify.annotations.NonNull;
-import lombok.Setter;
-
-@EqualsAndHashCode(of = {"interactionId", "sequence"})
-@NoArgsConstructor
-public class ExecutionOutboxEntryPK implements Serializable {
-
-    private static final long serialVersionUID = 1L;
-
-    private static final String SEPARATOR = "_";
-
-    @Getter @Setter
-    public UUID interactionId;
-    @Getter @Setter
-    public int sequence;
-
-    public ExecutionOutboxEntryPK(final String value) {
-        var token = new StringTokenizer (value, SEPARATOR);
-        this.interactionId = UUID.fromString(token.nextToken());
-        this.sequence = Integer.parseInt(token.nextToken());
-    }
-
-    @Override
-    public String toString() {
-        return interactionId + SEPARATOR + sequence;
-    }
-
-    @Component
-    @Priority(PriorityPrecedence.MIDPOINT)
-    public static class Semantics
-    extends ValueSemanticsBasedOnIdStringifierEntityAgnostic<ExecutionOutboxEntryPK> {
-
-        public Semantics() {
-            super(ExecutionOutboxEntryPK.class);
-        }
-
-        @Override
-        public String enstring(final ExecutionOutboxEntryPK value) {
-            return value.toString();
-        }
-
-        @Override
-        public ExecutionOutboxEntryPK destring(
-                final @NonNull String stringified) {
-            return new ExecutionOutboxEntryPK(stringified);
-        }
-
-        @Override
-        public boolean isValid(final @NonNull ExecutionOutboxEntryPK value) {
-            return value.getInteractionId()!=null;
-        }
-    }
-}
diff --git a/extensions/core/executionoutbox/persistence-jdo/src/main/java/org/apache/causeway/extensions/executionoutbox/jdo/dom/ExecutionOutboxEntryRepository.java b/extensions/core/executionoutbox/persistence-jdo/src/main/java/org/apache/causeway/extensions/executionoutbox/jdo/dom/ExecutionOutboxEntryRepository.java
deleted file mode 100644
index 0622cc210b1..00000000000
--- a/extensions/core/executionoutbox/persistence-jdo/src/main/java/org/apache/causeway/extensions/executionoutbox/jdo/dom/ExecutionOutboxEntryRepository.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- *  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 org.apache.causeway.extensions.executionoutbox.jdo.dom;
-
-import jakarta.inject.Named;
-import jakarta.inject.Provider;
-
-import org.springframework.beans.factory.annotation.Qualifier;
-import org.springframework.stereotype.Service;
-
-import org.apache.causeway.applib.annotation.PriorityPrecedence;
-import org.apache.causeway.applib.services.factory.FactoryService;
-import org.apache.causeway.applib.services.repository.RepositoryService;
-import org.apache.causeway.extensions.executionoutbox.applib.dom.ExecutionOutboxEntryRepositoryAbstract;
-
-import lombok.Builder;
-
-@Service
-@Named(ExecutionOutboxEntryRepositoryAbstract.LOGICAL_TYPE_NAME)
-@jakarta.annotation.Priority(PriorityPrecedence.MIDPOINT)
-@Qualifier("Jdo")
-public class ExecutionOutboxEntryRepository
-extends ExecutionOutboxEntryRepositoryAbstract<ExecutionOutboxEntry> {
-
-    public ExecutionOutboxEntryRepository() {
-        super(ExecutionOutboxEntry.class);
-    }
-
-    /**
-     * for testing only
-     */
-    @Builder
-    ExecutionOutboxEntryRepository(
-            Class<ExecutionOutboxEntry> executionLogEntryClass,
-            Provider<RepositoryService> repositoryServiceProvider,
-            FactoryService factoryService) {
-        super(executionLogEntryClass, repositoryServiceProvider, factoryService);
-    }
-
-    @Override
-    protected ExecutionOutboxEntry newExecutionOutboxEntry() {
-        return null;
-    }
-
-}
diff --git a/extensions/core/executionoutbox/persistence-jdo/src/test/java/org/apache/causeway/extensions/executionoutbox/jdo/integtests/ExecutionOutbox_IntegTest.java b/extensions/core/executionoutbox/persistence-jdo/src/test/java/org/apache/causeway/extensions/executionoutbox/jdo/integtests/ExecutionOutbox_IntegTest.java
deleted file mode 100644
index 4bcc08cb4de..00000000000
--- a/extensions/core/executionoutbox/persistence-jdo/src/test/java/org/apache/causeway/extensions/executionoutbox/jdo/integtests/ExecutionOutbox_IntegTest.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- *  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 org.apache.causeway.extensions.executionoutbox.jdo.integtests;
-
-import org.springframework.boot.SpringBootConfiguration;
-import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
-import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.context.annotation.ComponentScan;
-import org.springframework.context.annotation.Import;
-import org.springframework.context.annotation.PropertySource;
-import org.springframework.context.annotation.PropertySources;
-import org.springframework.test.context.ActiveProfiles;
-
-import org.apache.causeway.core.config.presets.CausewayPresets;
-import org.apache.causeway.core.runtimeservices.CausewayModuleCoreRuntimeServices;
-import org.apache.causeway.extensions.executionoutbox.applib.integtest.ExecutionOutbox_IntegTestAbstract;
-import org.apache.causeway.extensions.executionoutbox.applib.integtest.model.ExecutionOutboxTestDomainModel;
-import org.apache.causeway.extensions.executionoutbox.jdo.CausewayModuleExtExecutionOutboxPersistenceJdo;
-import org.apache.causeway.extensions.executionoutbox.jdo.integtests.model.Counter;
-import org.apache.causeway.security.bypass.CausewayModuleSecurityBypass;
-
-@SpringBootTest(
-        classes = ExecutionOutbox_IntegTest.AppManifest.class
-)
-@ActiveProfiles("test")
-public class ExecutionOutbox_IntegTest extends ExecutionOutbox_IntegTestAbstract {
-
-    @SpringBootConfiguration
-    @EnableAutoConfiguration
-    @Import({
-            CausewayModuleCoreRuntimeServices.class,
-            CausewayModuleSecurityBypass.class,
-            CausewayModuleExtExecutionOutboxPersistenceJdo.class,
-    })
-    @PropertySources({
-            @PropertySource(CausewayPresets.UseLog4j2Test)
-    })
-    @ComponentScan(basePackageClasses = {AppManifest.class, ExecutionOutboxTestDomainModel.class})
-    public static class AppManifest {
-    }
-
-    protected org.apache.causeway.extensions.executionoutbox.applib.integtest.model.Counter newCounter(String name) {
-        return Counter.builder().name(name).build();
-    }
-
-}
diff --git a/extensions/core/executionoutbox/persistence-jdo/src/test/java/org/apache/causeway/extensions/executionoutbox/jdo/integtests/model/Counter.java b/extensions/core/executionoutbox/persistence-jdo/src/test/java/org/apache/causeway/extensions/executionoutbox/jdo/integtests/model/Counter.java
deleted file mode 100644
index baf56271a91..00000000000
--- a/extensions/core/executionoutbox/persistence-jdo/src/test/java/org/apache/causeway/extensions/executionoutbox/jdo/integtests/model/Counter.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * 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 org.apache.causeway.extensions.executionoutbox.jdo.integtests.model;
-
-import javax.jdo.annotations.Column;
-import javax.jdo.annotations.DatastoreIdentity;
-import javax.jdo.annotations.IdGeneratorStrategy;
-import javax.jdo.annotations.PersistenceCapable;
-
-import jakarta.inject.Named;
-
-import org.apache.causeway.applib.annotation.DomainObject;
-import org.apache.causeway.applib.annotation.Nature;
-
-import lombok.AccessLevel;
-import lombok.AllArgsConstructor;
-import lombok.Builder;
-import lombok.Getter;
-import lombok.NoArgsConstructor;
-import lombok.Setter;
-
-@PersistenceCapable(
-        schema = "public",
-        table = "Counter"
-)
-@DatastoreIdentity(strategy = IdGeneratorStrategy.IDENTITY, column = "id")
-@Named("executionoutbox.test.Counter")
-@DomainObject(nature = Nature.ENTITY)
-@NoArgsConstructor
-@Builder
-@AllArgsConstructor(access = AccessLevel.PRIVATE)
-public class Counter extends org.apache.causeway.extensions.executionoutbox.applib.integtest.model.Counter {
-
-    @Column(allowsNull = "false")
-    @Getter @Setter
-    private String name;
-
-    @Column(allowsNull = "true")
-    @Getter @Setter
-    private Long num;
-
-    @Column(allowsNull = "true")
-    @Getter @Setter
-    private Long num2;
-
-}
diff --git a/extensions/core/executionoutbox/persistence-jdo/src/test/java/org/apache/causeway/extensions/executionoutbox/jdo/integtests/model/CounterRepository.java b/extensions/core/executionoutbox/persistence-jdo/src/test/java/org/apache/causeway/extensions/executionoutbox/jdo/integtests/model/CounterRepository.java
deleted file mode 100644
index 799a8a81d17..00000000000
--- a/extensions/core/executionoutbox/persistence-jdo/src/test/java/org/apache/causeway/extensions/executionoutbox/jdo/integtests/model/CounterRepository.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * 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 org.apache.causeway.extensions.executionoutbox.jdo.integtests.model;
-
-import org.springframework.stereotype.Repository;
-
-@Repository
-public class CounterRepository
-        extends org.apache.causeway.extensions.executionoutbox.applib.integtest.model.CounterRepository<Counter> {
-
-    public CounterRepository() {
-        super(Counter.class);
-    }
-}
diff --git a/extensions/core/executionoutbox/persistence-jdo/src/test/resources/application-test.yml b/extensions/core/executionoutbox/persistence-jdo/src/test/resources/application-test.yml
deleted file mode 100644
index 9bfaa9a4f7f..00000000000
--- a/extensions/core/executionoutbox/persistence-jdo/src/test/resources/application-test.yml
+++ /dev/null
@@ -1,26 +0,0 @@
-#  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.
-causeway:
-  persistence:
-    schema:
-      auto-create-schemas: "CAUSEWAYEXTEXECUTIONOUTBOX"
-
-
-datanucleus:
-  schema:
-    generate-database:
-      mode: "create"
diff --git a/extensions/core/executionoutbox/persistence-jpa/pom.xml b/extensions/core/executionoutbox/persistence-jpa/pom.xml
index b81fe4efa0b..19c56049a81 100644
--- a/extensions/core/executionoutbox/persistence-jpa/pom.xml
+++ b/extensions/core/executionoutbox/persistence-jpa/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.causeway.extensions</groupId>
         <artifactId>causeway-extensions-executionoutbox</artifactId>
-        <version>3.4.0-SNAPSHOT</version>
+        <version>${revision}</version>
     </parent>
 
     <artifactId>causeway-extensions-executionoutbox-persistence-jpa</artifactId>
diff --git a/extensions/core/executionoutbox/pom.xml b/extensions/core/executionoutbox/pom.xml
index 67014a0999f..c5d597010bd 100644
--- a/extensions/core/executionoutbox/pom.xml
+++ b/extensions/core/executionoutbox/pom.xml
@@ -25,7 +25,7 @@
 	<parent>
 		<groupId>org.apache.causeway.extensions</groupId>
 		<artifactId>causeway-extensions</artifactId>
-		<version>3.4.0-SNAPSHOT</version>
+		<version>${revision}</version>
 		<relativePath>../../pom.xml</relativePath>
 	</parent>
 
@@ -40,64 +40,35 @@
 			<dependency>
 				<groupId>org.apache.causeway.extensions</groupId>
 				<artifactId>causeway-extensions-executionoutbox-applib</artifactId>
-				<version>3.4.0-SNAPSHOT</version>
+				<version>${project.version}</version>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.causeway.extensions</groupId>
 				<artifactId>causeway-extensions-executionoutbox-applib</artifactId>
 				<type>test-jar</type>
 				<scope>test</scope>
-				<version>3.4.0-SNAPSHOT</version>
-			</dependency>
-			<dependency>
-				<groupId>org.apache.causeway.extensions</groupId>
-				<artifactId>causeway-extensions-executionoutbox-persistence-jdo</artifactId>
-				<version>3.4.0-SNAPSHOT</version>
-			</dependency>
-			<dependency>
-				<groupId>org.apache.causeway.extensions</groupId>
-				<artifactId>causeway-extensions-executionoutbox-persistence-jdo</artifactId>
-				<type>test-jar</type>
-				<scope>test</scope>
-				<version>3.4.0-SNAPSHOT</version>
+				<version>${project.version}</version>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.causeway.extensions</groupId>
 				<artifactId>causeway-extensions-executionoutbox-persistence-jpa</artifactId>
-				<version>3.4.0-SNAPSHOT</version>
+				<version>${project.version}</version>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.causeway.extensions</groupId>
 				<artifactId>causeway-extensions-executionoutbox-persistence-jpa</artifactId>
 				<type>test-jar</type>
 				<scope>test</scope>
-				<version>3.4.0-SNAPSHOT</version>
+				<version>${project.version}</version>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.causeway.extensions</groupId>
 				<artifactId>causeway-extensions-executionoutbox-restclient</artifactId>
-				<version>3.4.0-SNAPSHOT</version>
+				<version>${project.version}</version>
 			</dependency>
 		</dependencies>
 	</dependencyManagement>
 
-    <profiles>
-        <profile>
-            <id>module-jdo</id>
-            <activation>
-                <property>
-                    <name>!skip-module-jdo</name>
-                </property>
-            </activation>
-            <modules>
-                <module>applib</module>
-                <module>persistence-jdo</module>
-                <module>persistence-jpa</module>
-                <module>restclient</module>
-            </modules>
-        </profile>
-    </profiles>
-
 	<modules>
 		<module>applib</module>
 		<module>persistence-jpa</module>
diff --git a/extensions/core/executionoutbox/restclient/pom.xml b/extensions/core/executionoutbox/restclient/pom.xml
index cfab1caee16..aed9a50f9ee 100644
--- a/extensions/core/executionoutbox/restclient/pom.xml
+++ b/extensions/core/executionoutbox/restclient/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.causeway.extensions</groupId>
         <artifactId>causeway-extensions-executionoutbox</artifactId>
-        <version>3.4.0-SNAPSHOT</version>
+        <version>${revision}</version>
     </parent>
 
     <artifactId>causeway-extensions-executionoutbox-restclient</artifactId>
diff --git a/extensions/core/executionrepublisher/applib/pom.xml b/extensions/core/executionrepublisher/applib/pom.xml
index e471f2c82f6..5ead56db5d4 100644
--- a/extensions/core/executionrepublisher/applib/pom.xml
+++ b/extensions/core/executionrepublisher/applib/pom.xml
@@ -24,7 +24,7 @@
     <parent>
         <groupId>org.apache.causeway.extensions</groupId>
         <artifactId>causeway-extensions-executionrepublisher</artifactId>
-        <version>3.4.0-SNAPSHOT</version>
+        <version>${revision}</version>
     </parent>
 
     <artifactId>causeway-extensions-executionrepublisher-applib</artifactId>
diff --git a/extensions/core/executionrepublisher/pom.xml b/extensions/core/executionrepublisher/pom.xml
index dc3d35f05d8..6558531571a 100644
--- a/extensions/core/executionrepublisher/pom.xml
+++ b/extensions/core/executionrepublisher/pom.xml
@@ -25,7 +25,7 @@
 	<parent>
 		<groupId>org.apache.causeway.extensions</groupId>
 		<artifactId>causeway-extensions</artifactId>
-		<version>3.4.0-SNAPSHOT</version>
+		<version>${revision}</version>
 		<relativePath>../../pom.xml</relativePath>
 	</parent>
 
@@ -40,13 +40,13 @@
 			<dependency>
 				<groupId>org.apache.causeway.extensions</groupId>
 				<artifactId>causeway-extensions-executionrepublisher-applib</artifactId>
-				<version>3.4.0-SNAPSHOT</version>
+				<version>${project.version}</version>
 			</dependency>
 
 			<dependency>
 				<groupId>org.apache.causeway.extensions</groupId>
 				<artifactId>causeway-extensions-executionlog</artifactId>
-				<version>3.4.0-SNAPSHOT</version>
+				<version>${project.version}</version>
 				<scope>import</scope>
 				<type>pom</type>
 			</dependency>
@@ -54,7 +54,7 @@
 			<dependency>
 				<groupId>org.apache.causeway.extensions</groupId>
 				<artifactId>causeway-extensions-executionoutbox</artifactId>
-				<version>3.4.0-SNAPSHOT</version>
+				<version>${project.version}</version>
 				<scope>import</scope>
 				<type>pom</type>
 			</dependency>
diff --git a/extensions/core/flyway/impl/pom.xml b/extensions/core/flyway/impl/pom.xml
index 46e22461ca1..6185c0fbc1f 100644
--- a/extensions/core/flyway/impl/pom.xml
+++ b/extensions/core/flyway/impl/pom.xml
@@ -17,7 +17,7 @@
 	<parent>
 		<groupId>org.apache.causeway.extensions</groupId>
 		<artifactId>causeway-extensions-flyway</artifactId>
-		<version>3.4.0-SNAPSHOT</version>
+		<version>${revision}</version>
 	</parent>
 
 	<artifactId>causeway-extensions-flyway-impl</artifactId>
diff --git a/extensions/core/flyway/pom.xml b/extensions/core/flyway/pom.xml
index 8dcc7e3fe26..06dd9688260 100644
--- a/extensions/core/flyway/pom.xml
+++ b/extensions/core/flyway/pom.xml
@@ -25,7 +25,7 @@
 	<parent>
 		<groupId>org.apache.causeway.extensions</groupId>
 		<artifactId>causeway-extensions</artifactId>
-		<version>3.4.0-SNAPSHOT</version>
+		<version>${revision}</version>
 		<relativePath>../../pom.xml</relativePath>
 	</parent>
 
@@ -41,7 +41,7 @@
 			<dependency>
 				<groupId>org.apache.causeway.extensions</groupId>
 				<artifactId>causeway-extensions-flyway-impl</artifactId>
-				<version>3.4.0-SNAPSHOT</version>
+				<version>${project.version}</version>
 			</dependency>
 
 			<dependency>
diff --git a/extensions/core/layoutloaders/github/pom.xml b/extensions/core/layoutloaders/github/pom.xml
index aa9ca438c9a..acfb8e90d39 100644
--- a/extensions/core/layoutloaders/github/pom.xml
+++ b/extensions/core/layoutloaders/github/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.causeway.extensions</groupId>
         <artifactId>causeway-extensions-layoutloaders</artifactId>
-        <version>3.4.0-SNAPSHOT</version>
+        <version>${revision}</version>
     </parent>
 
 
diff --git a/extensions/core/layoutloaders/pom.xml b/extensions/core/layoutloaders/pom.xml
index 981ed6a1e0d..49f10555f1f 100644
--- a/extensions/core/layoutloaders/pom.xml
+++ b/extensions/core/layoutloaders/pom.xml
@@ -25,7 +25,7 @@
     <parent>
         <groupId>org.apache.causeway.extensions</groupId>
         <artifactId>causeway-extensions</artifactId>
-        <version>3.4.0-SNAPSHOT</version>
+        <version>${revision}</version>
         <relativePath>../../pom.xml</relativePath>
     </parent>
 
diff --git a/extensions/core/titlecache/applib/pom.xml b/extensions/core/titlecache/applib/pom.xml
index 741f2c00de2..4dcc25f836c 100644
--- a/extensions/core/titlecache/applib/pom.xml
+++ b/extensions/core/titlecache/applib/pom.xml
@@ -17,7 +17,7 @@
 	<parent>
 		<groupId>org.apache.causeway.extensions</groupId>
 		<artifactId>causeway-extensions-titlecache</artifactId>
-		<version>3.4.0-SNAPSHOT</version>
+		<version>${revision}</version>
 	</parent>
 
 	<artifactId>causeway-extensions-titlecache-applib</artifactId>
diff --git a/extensions/core/titlecache/caffeine/pom.xml b/extensions/core/titlecache/caffeine/pom.xml
index 94909cd5ae4..165a8cc4b85 100644
--- a/extensions/core/titlecache/caffeine/pom.xml
+++ b/extensions/core/titlecache/caffeine/pom.xml
@@ -17,7 +17,7 @@
 	<parent>
 		<groupId>org.apache.causeway.extensions</groupId>
 		<artifactId>causeway-extensions-titlecache</artifactId>
-		<version>3.4.0-SNAPSHOT</version>
+		<version>${revision}</version>
 	</parent>
 
 	<artifactId>causeway-extensions-titlecache-caffeine</artifactId>
diff --git a/extensions/core/titlecache/pom.xml b/extensions/core/titlecache/pom.xml
index b4debb974dc..7d32127162c 100644
--- a/extensions/core/titlecache/pom.xml
+++ b/extensions/core/titlecache/pom.xml
@@ -25,7 +25,7 @@
 	<parent>
 		<groupId>org.apache.causeway.extensions</groupId>
 		<artifactId>causeway-extensions</artifactId>
-		<version>3.4.0-SNAPSHOT</version>
+		<version>${revision}</version>
 		<relativePath>../../pom.xml</relativePath>
 	</parent>
 
@@ -41,7 +41,7 @@
 			<dependency>
 				<groupId>org.apache.causeway.extensions</groupId>
 				<artifactId>causeway-extensions-titlecache-caffeine</artifactId>
-				<version>3.4.0-SNAPSHOT</version>
+				<version>${project.version}</version>
 			</dependency>
 
 		</dependencies>
diff --git a/extensions/pom.xml b/extensions/pom.xml
index 74806811564..8e1045aa602 100644
--- a/extensions/pom.xml
+++ b/extensions/pom.xml
@@ -25,7 +25,7 @@
 	<parent>
 		<groupId>org.apache.causeway.core</groupId>
 		<artifactId>causeway-core</artifactId>
-		<version>3.4.0-SNAPSHOT</version>
+		<version>${revision}</version>
 		<relativePath>../core/pom.xml</relativePath>
 	</parent>
 
diff --git a/extensions/security/audittrail/applib/pom.xml b/extensions/security/audittrail/applib/pom.xml
index 28adb03c4f9..f231dc673f4 100644
--- a/extensions/security/audittrail/applib/pom.xml
+++ b/extensions/security/audittrail/applib/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.causeway.extensions</groupId>
         <artifactId>causeway-extensions-audittrail</artifactId>
-        <version>3.4.0-SNAPSHOT</version>
+        <version>${revision}</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
 
diff --git a/extensions/security/audittrail/persistence-jdo/log4j2-test.xml b/extensions/security/audittrail/persistence-jdo/log4j2-test.xml
deleted file mode 100644
index 0ed7986e245..00000000000
--- a/extensions/security/audittrail/persistence-jdo/log4j2-test.xml
+++ /dev/null
@@ -1,78 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-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.
--->
-<Configuration status="WARN">
-	<Properties>
-		<Property name="PID">????</Property>
-		<Property name="LOG_EXCEPTION_CONVERSION_WORD">%xwEx</Property>
-		<Property name="LOG_LEVEL_PATTERN">%5p</Property>
-		<Property name="LOG_DATEFORMAT_PATTERN">yyyy-MM-dd HH:mm:ss.SSS</Property>
-		<Property name="CONSOLE_LOG_PATTERN">%clr{%d{${LOG_DATEFORMAT_PATTERN}}}{faint} %clr{${LOG_LEVEL_PATTERN}} %clr{${sys:PID}}{magenta} %clr{---}{faint} %clr{[%15.15t]}{faint} %clr{%-40.40c{1.}}{cyan} %clr{:}{faint} %m%n${sys:LOG_EXCEPTION_CONVERSION_WORD}</Property>
-		<Property name="FILE_LOG_PATTERN">%d{${LOG_DATEFORMAT_PATTERN}} ${LOG_LEVEL_PATTERN} ${sys:PID} --- [%t] %-40.40c{1.} : %m%n${sys:LOG_EXCEPTION_CONVERSION_WORD}</Property>
-	</Properties>
-	<Appenders>
-		<Console name="Console" target="SYSTEM_OUT" follow="true">
-			<PatternLayout pattern="${sys:CONSOLE_LOG_PATTERN}" />
-		</Console>
-	</Appenders>
-	<Loggers>
-		<Logger name="org.apache.catalina.startup.DigesterFactory" level="error" />
-		<Logger name="org.apache.catalina.util.LifecycleBase" level="error" />
-		<Logger name="org.apache.coyote.http11.Http11NioProtocol" level="warn" />
-		<logger name="org.apache.sshd.common.util.SecurityUtils" level="warn"/>
-		<Logger name="org.apache.tomcat.util.net.NioSelectorPool" level="warn" />
-		<Logger name="org.eclipse.jetty.util.component.AbstractLifeCycle" level="error" />
-		<Logger name="org.hibernate.validator.internal.util.Version" level="warn" />
-		<logger name="org.springframework.boot.actuate.endpoint.jmx" level="warn"/>
-		
-		<logger name="org.apache.directory" level="warn"/>
-		<logger name="org.apache.directory.api.ldap.model.entry.Value" level="off"/>
-		
-		<logger name="DataNucleus.Persistence" level="info"/>
-		<logger name="DataNucleus.Transaction" level="info"/>
-		<logger name="DataNucleus.Datastore.Schema" level="info"/>
-		<logger name="DataNucleus.Datastore.Native" level="info"/>
-		
-		<Root level="info">
-			<AppenderRef ref="Console" />
-		</Root>
-	</Loggers>
-</Configuration>
-
-<!-- # DataNucleus Logging Categories -->
-<!-- DataNucleus.Persistence - All messages relating to the persistence process -->
-<!-- DataNucleus.Transaction - All messages relating to transactions -->
-<!-- DataNucleus.Connection - All messages relating to Connections. -->
-<!-- DataNucleus.Query - All messages relating to queries -->
-<!-- DataNucleus.Cache - All messages relating to the DataNucleus Cache -->
-<!-- DataNucleus.MetaData - All messages relating to MetaData -->
-<!-- DataNucleus.Datastore - All general datastore messages -->
-<!-- DataNucleus.Datastore.Schema - All schema related datastore log messages -->
-<!-- DataNucleus.Datastore.Persist - All datastore persistence messages -->
-<!-- DataNucleus.Datastore.Retrieve - All datastore retrieval messages -->
-<!-- DataNucleus.Datastore.Native - Log of all 'native' statements sent to the datastore -->
-<!-- DataNucleus.General - All general operational messages -->
-<!-- DataNucleus.Lifecycle - All messages relating to object lifecycle changes -->
-<!-- DataNucleus.ValueGeneration - All messages relating to value generation -->
-<!-- DataNucleus.Enhancer - All messages from the DataNucleus Enhancer. -->
-<!-- DataNucleus.SchemaTool - All messages from DataNucleus SchemaTool -->
-<!-- DataNucleus.JDO - All messages general to JDO -->
-<!-- DataNucleus.JPA - All messages general to JPA -->
-<!-- DataNucleus.JCA - All messages relating to Connector JCA. -->
-<!-- DataNucleus.IDE - Messages from the DataNucleus IDE. -->
\ No newline at end of file
diff --git a/extensions/security/audittrail/persistence-jdo/logging-dn-enhance.properties b/extensions/security/audittrail/persistence-jdo/logging-dn-enhance.properties
deleted file mode 100644
index ca165acc786..00000000000
--- a/extensions/security/audittrail/persistence-jdo/logging-dn-enhance.properties
+++ /dev/null
@@ -1,41 +0,0 @@
-#  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.
-
-# LOG4J Configuration
-# ===================
-
-# Basic logging goes to "datanucleus.log"
-log4j.appender.A1=org.apache.log4j.FileAppender
-log4j.appender.A1.File=datanucleus.log
-log4j.appender.A1.layout=org.apache.log4j.PatternLayout
-log4j.appender.A1.layout.ConversionPattern=%d{HH:mm:ss,SSS} (%t) %-5p [%c] - %m%n
-#log4j.appender.A1.Threshold=INFO
-
-# Categories
-# Each category can be set to a "level", and to direct to an appender
-
-# Default to DEBUG level for all DataNucleus categories
-log4j.logger.DataNucleus = DEBUG, A1
-
-log4j.category.com.mchange.v2.c3p0=INFO, A1
-log4j.category.com.mchange.v2.resourcepool=INFO, A1
-log4j.category.org.logicalcobwebs.proxool=INFO,A1
-
-
-# Hbase libs logging
-log4j.category.org.apache.hadoop=INFO,A1
-log4j.category.org.apache.zookeeper=INFO,A1
\ No newline at end of file
diff --git a/extensions/security/audittrail/persistence-jdo/pom.xml b/extensions/security/audittrail/persistence-jdo/pom.xml
deleted file mode 100644
index 9b7eac9e61d..00000000000
--- a/extensions/security/audittrail/persistence-jdo/pom.xml
+++ /dev/null
@@ -1,78 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  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.
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-
-    <parent>
-        <groupId>org.apache.causeway.extensions</groupId>
-        <artifactId>causeway-extensions-audittrail</artifactId>
-        <version>3.4.0-SNAPSHOT</version>
-        <relativePath>../pom.xml</relativePath>
-    </parent>
-
-    <artifactId>causeway-extensions-audittrail-persistence-jdo</artifactId>
-    <name>Apache Causeway Ext - Audit Trail Persistence (using JDO)</name>
-
-    <properties>
-        <jar-plugin.automaticModuleName>org.apache.causeway.extensions.audittrail.persistence.jdo</jar-plugin.automaticModuleName>
-        <git-plugin.propertiesDir>org/apache/causeway/extensions/audittrail/persistence-jdo</git-plugin.propertiesDir>
-    </properties>
-
-    <dependencies>
-
-        <dependency>
-            <groupId>org.apache.causeway.extensions</groupId>
-            <artifactId>causeway-extensions-audittrail-applib</artifactId>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.causeway.persistence</groupId>
-            <artifactId>causeway-persistence-jdo-datanucleus</artifactId>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.causeway.testing</groupId>
-            <artifactId>causeway-testing-fixtures-applib</artifactId>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.causeway.core</groupId>
-            <artifactId>causeway-core-runtime</artifactId>
-            <scope>provided</scope>
-        </dependency>
-
-        <!-- testing -->
-
-        <dependency>
-            <groupId>org.apache.causeway.extensions</groupId>
-            <artifactId>causeway-extensions-audittrail-applib</artifactId>
-            <scope>test</scope>
-            <type>test-jar</type>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.causeway.testing</groupId>
-            <artifactId>causeway-testing-integtestsupport-applib</artifactId>
-            <scope>test</scope>
-        </dependency>
-
-    </dependencies>
-
-</project>
diff --git a/extensions/security/audittrail/persistence-jdo/src/main/java/org/apache/causeway/extensions/audittrail/jdo/CausewayModuleExtAuditTrailPersistenceJdo.java b/extensions/security/audittrail/persistence-jdo/src/main/java/org/apache/causeway/extensions/audittrail/jdo/CausewayModuleExtAuditTrailPersistenceJdo.java
deleted file mode 100644
index be3b8395b0d..00000000000
--- a/extensions/security/audittrail/persistence-jdo/src/main/java/org/apache/causeway/extensions/audittrail/jdo/CausewayModuleExtAuditTrailPersistenceJdo.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- * 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 org.apache.causeway.extensions.audittrail.jdo;
-
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Import;
-
-import org.apache.causeway.extensions.audittrail.applib.CausewayModuleExtAuditTrailApplib;
-import org.apache.causeway.extensions.audittrail.jdo.dom.AuditTrailEntry;
-import org.apache.causeway.extensions.audittrail.jdo.dom.AuditTrailEntryRepository;
-import org.apache.causeway.persistence.jdo.datanucleus.CausewayModulePersistenceJdoDatanucleus;
-import org.apache.causeway.testing.fixtures.applib.CausewayModuleTestingFixturesApplib;
-import org.apache.causeway.testing.fixtures.applib.fixturescripts.FixtureScript;
-import org.apache.causeway.testing.fixtures.applib.modules.ModuleWithFixtures;
-import org.apache.causeway.testing.fixtures.applib.teardown.jdo.TeardownFixtureJdoAbstract;
-
-@Configuration
-@Import({
-        // modules
-        CausewayModuleTestingFixturesApplib.class,
-        CausewayModuleExtAuditTrailApplib.class,
-        CausewayModulePersistenceJdoDatanucleus.class,
-
-        // services
-        AuditTrailEntryRepository.class,
-
-        // entities, eager meta-model introspection
-        AuditTrailEntry.class,
-})
-public class CausewayModuleExtAuditTrailPersistenceJdo {
-
-    /**
-     * Note that this is <i>NOT</i> an implementation of the {@link ModuleWithFixtures#getTeardownFixture()} API;
-     * but is provided to allow manual teardown if required.
-     */
-    public FixtureScript teardownFixture() {
-        return new TeardownFixtureJdoAbstract() {
-            @Override
-            protected void execute(final ExecutionContext executionContext) {
-                deleteFrom(AuditTrailEntry.class);
-            }
-        };
-    }
-
-}
diff --git a/extensions/security/audittrail/persistence-jdo/src/main/java/org/apache/causeway/extensions/audittrail/jdo/dom/AuditTrailEntry.java b/extensions/security/audittrail/persistence-jdo/src/main/java/org/apache/causeway/extensions/audittrail/jdo/dom/AuditTrailEntry.java
deleted file mode 100644
index c6cebee7221..00000000000
--- a/extensions/security/audittrail/persistence-jdo/src/main/java/org/apache/causeway/extensions/audittrail/jdo/dom/AuditTrailEntry.java
+++ /dev/null
@@ -1,273 +0,0 @@
-/*
- * 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 org.apache.causeway.extensions.audittrail.jdo.dom;
-
-import java.util.UUID;
-
-import javax.jdo.annotations.Column;
-import javax.jdo.annotations.DatastoreIdentity;
-import javax.jdo.annotations.IdGeneratorStrategy;
-import javax.jdo.annotations.IdentityType;
-import javax.jdo.annotations.Index;
-import javax.jdo.annotations.Indices;
-import javax.jdo.annotations.PersistenceCapable;
-import javax.jdo.annotations.Persistent;
-import javax.jdo.annotations.Queries;
-import javax.jdo.annotations.Query;
-import javax.jdo.annotations.Version;
-import javax.jdo.annotations.VersionStrategy;
-
-import jakarta.inject.Named;
-import jakarta.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
-
-import org.apache.causeway.applib.annotation.DomainObject;
-import org.apache.causeway.applib.annotation.Editing;
-import org.apache.causeway.applib.annotation.Publishing;
-import org.apache.causeway.applib.jaxb.PersistentEntityAdapter;
-import org.apache.causeway.applib.services.bookmark.Bookmark;
-import org.apache.causeway.extensions.audittrail.applib.dom.AuditTrailEntry.Nq;
-
-import lombok.Getter;
-import lombok.Setter;
-@PersistenceCapable(
-        identityType = IdentityType.DATASTORE,
-        schema = AuditTrailEntry.SCHEMA,
-        table = AuditTrailEntry.TABLE)
-@Indices({
-        @Index(name = "AuditTrailEntry__target_propertyId_timestamp_IDX", members = { "target", "propertyId", "timestamp" }, unique = "false"),
-        @Index(name = "AuditTrailEntry__target_timestamp_IDX", members = { "target", "timestamp" }, unique = "false"),
-        @Index(name = "AuditTrailEntry__timestamp_IDX", members = { "timestamp" }, unique = "false"),
-        @Index(name = "AuditTrailEntry__interactionId_IDX", members = { "interactionId" }, unique = "false")
-})
-@Queries( {
-    @Query(
-            name = Nq.FIND_BY_INTERACTION_ID,
-            value = "SELECT "
-                  + "  FROM " + AuditTrailEntry.FQCN + " "
-                  + " WHERE interactionId == :interactionId"),
-    @Query(
-            name = Nq.FIND_FIRST_BY_TARGET,
-            value = "SELECT "
-                  + "  FROM " + AuditTrailEntry.FQCN + " "
-                  + " WHERE target == :target "
-                  + " ORDER BY timestamp ASC "
-                  + " RANGE 0,2"),
-    @Query(
-            name = Nq.FIND_RECENT_BY_TARGET,
-            value = "SELECT "
-                  + "  FROM " + AuditTrailEntry.FQCN + " "
-                  + " WHERE target == :target "
-                  + " ORDER BY timestamp DESC "
-                  + " RANGE 0,100"),
-    @Query(
-            name = Nq.FIND_BY_TARGET_AND_TIMESTAMP_BETWEEN,
-            value = "SELECT "
-                  + "  FROM " + AuditTrailEntry.FQCN + " "
-                  + " WHERE target == :target "
-                  + "    && timestamp >= :from "
-                  + "    && timestamp <= :to "
-                  + "ORDER BY timestamp DESC"),
-    @Query(
-            name = Nq.FIND_BY_TARGET_AND_TIMESTAMP_AFTER,
-            value = "SELECT "
-                  + "  FROM " + AuditTrailEntry.FQCN + " "
-                  + " WHERE target == :target "
-                  + "    && timestamp >= :from "
-                  + " ORDER BY timestamp DESC"),
-    @Query(
-            name  = Nq.FIND_BY_TARGET_AND_TIMESTAMP_BEFORE,
-            value = "SELECT "
-                  + "  FROM " + AuditTrailEntry.FQCN + " "
-                  + " WHERE target == :target "
-                  + "    && timestamp <= :to "
-                  + " ORDER BY timestamp DESC"),
-    @Query(
-            name  = Nq.FIND_BY_TARGET,
-            value = "SELECT "
-                  + "  FROM " + AuditTrailEntry.FQCN + " "
-                  + " WHERE target == :target "
-                  + " ORDER BY timestamp DESC"),
-    @Query(
-            name  = Nq.FIND_BY_TIMESTAMP_BETWEEN,
-            value = "SELECT "
-                  + "  FROM " + AuditTrailEntry.FQCN + " "
-                  + " WHERE timestamp >= :from "
-                  + "    && timestamp <= :to "
-                  + " ORDER BY timestamp DESC"),
-    @Query(
-            name  = Nq.FIND_BY_TIMESTAMP_AFTER,
-            value = "SELECT "
-                  + "  FROM " + AuditTrailEntry.FQCN + " "
-                  + " WHERE timestamp >= :from "
-                  + " ORDER BY timestamp DESC"),
-    @Query(
-            name  = Nq.FIND_BY_TIMESTAMP_BEFORE,
-            value = "SELECT "
-                  + "  FROM " + AuditTrailEntry.FQCN + " "
-                  + " WHERE timestamp <= :to "
-                  + " ORDER BY timestamp DESC"),
-    @Query(
-            name  = Nq.FIND,
-            value = "SELECT "
-                  + "  FROM " + AuditTrailEntry.FQCN + " "
-                  + " ORDER BY timestamp DESC"),
-    @Query(
-            name = Nq.FIND_MOST_RECENT,
-            value = "SELECT "
-                  + "  FROM " + AuditTrailEntry.FQCN + " "
-                  + " ORDER BY timestamp DESC, interactionId DESC, sequence DESC"
-                  + " RANGE 0,100"),
-    @Query(
-            name = Nq.FIND_RECENT_BY_TARGET_AND_PROPERTY_ID,
-            value = "SELECT "
-                  + "  FROM " + AuditTrailEntry.FQCN + " "
-                  + " WHERE target == :target "
-                  + "    && propertyId == :propertyId "
-                  + " ORDER BY timestamp DESC "
-                  + " RANGE 0,30"),
-    @Query(
-            name = Nq.FIND_BY_USERNAME_AND_TIMESTAMP_BETWEEN,
-            value = "SELECT "
-                    + "  FROM " + AuditTrailEntry.FQCN + " "
-                    + " WHERE username == :username "
-                    + "    && timestamp >= :from "
-                    + "    && timestamp <= :to "
-                    + "ORDER BY timestamp DESC"),
-    @Query(
-            name = Nq.FIND_BY_USERNAME_AND_TIMESTAMP_AFTER,
-            value = "SELECT "
-                    + "  FROM " + AuditTrailEntry.FQCN + " "
-                    + " WHERE username == :username "
-                    + "    && timestamp >= :from "
-                    + " ORDER BY timestamp DESC"),
-    @Query(
-            name  = Nq.FIND_BY_USERNAME_AND_TIMESTAMP_BEFORE,
-            value = "SELECT "
-                    + "  FROM " + AuditTrailEntry.FQCN + " "
-                    + " WHERE username == :username "
-                    + "    && timestamp <= :to "
-                    + " ORDER BY timestamp DESC"),
-    @Query(
-            name  = Nq.FIND_BY_USERNAME,
-            value = "SELECT "
-                    + "  FROM " + AuditTrailEntry.FQCN + " "
-                    + " WHERE username == :username "
-                    + " ORDER BY timestamp DESC"),
-    @Query(
-            name = Nq.FIND_BY_USERNAME_AND_TARGET_AND_TIMESTAMP_BETWEEN,
-            value = "SELECT "
-                    + "  FROM " + AuditTrailEntry.FQCN + " "
-                    + " WHERE username == :username "
-                    + "    && target == :target "
-                    + "    && timestamp >= :from "
-                    + "    && timestamp <= :to "
-                    + "ORDER BY timestamp DESC"),
-    @Query(
-            name = Nq.FIND_BY_USERNAME_AND_TARGET_AND_TIMESTAMP_AFTER,
-            value = "SELECT "
-                    + "  FROM " + AuditTrailEntry.FQCN + " "
-                    + " WHERE username == :username "
-                    + "    && target == :target "
-                    + "    && timestamp >= :from "
-                    + " ORDER BY timestamp DESC"),
-    @Query(
-            name  = Nq.FIND_BY_USERNAME_AND_TARGET_AND_TIMESTAMP_BEFORE,
-            value = "SELECT "
-                    + "  FROM " + AuditTrailEntry.FQCN + " "
-                    + " WHERE username == :username "
-                    + "    && target == :target "
-                    + "    && timestamp <= :to "
-                    + " ORDER BY timestamp DESC"),
-    @Query(
-            name  = Nq.FIND_BY_USERNAME_AND_TARGET,
-            value = "SELECT "
-                    + "  FROM " + AuditTrailEntry.FQCN + " "
-                    + " WHERE username == :username "
-                    + "    && target == :target "
-                    + " ORDER BY timestamp DESC"),
-    @Query(
-            name = Nq.FIND_RECENT_BY_USERNAME,
-            value = "SELECT "
-                    + "  FROM " + AuditTrailEntry.FQCN + " "
-                    + " WHERE username == :username "
-                    + " ORDER BY timestamp DESC "
-                    + " RANGE 0,100")
-})
-@XmlJavaTypeAdapter(PersistentEntityAdapter.class)
-@DatastoreIdentity(strategy = IdGeneratorStrategy.IDENTITY, column = "id")
-@Version(strategy = VersionStrategy.VERSION_NUMBER, column = "version")
-@Named(AuditTrailEntry.LOGICAL_TYPE_NAME)
-@DomainObject(
-        editing = Editing.DISABLED,
-        entityChangePublishing = Publishing.DISABLED
-)
-public class AuditTrailEntry
-extends org.apache.causeway.extensions.audittrail.applib.dom.AuditTrailEntry {
-
-    static final String FQCN = "org.apache.causeway.extensions.audittrail.jdo.dom.AuditTrailEntry";
-
-    @Column(allowsNull = Username.ALLOWS_NULL, length = Username.MAX_LENGTH)
-    @Username
-    @Getter @Setter
-    private String username;
-
-    @Column(allowsNull = Timestamp.ALLOWS_NULL)
-    @Timestamp
-    @Getter @Setter
-    private java.sql.Timestamp timestamp;
-
-    @Column(allowsNull = InteractionId.ALLOWS_NULL, length = InteractionId.MAX_LENGTH)
-    @InteractionId
-    @Getter @Setter
-    private UUID interactionId;
-
-    @Column(allowsNull = Sequence.ALLOWS_NULL)
-    @Sequence
-    @Getter @Setter
-    private int sequence;
-
-    @Persistent
-    @Column(allowsNull = Target.ALLOWS_NULL, length = Target.MAX_LENGTH)
-    @Target
-    @Getter @Setter
-    private Bookmark target;
-
-    @Column(allowsNull = LogicalMemberIdentifier.ALLOWS_NULL, length = LogicalMemberIdentifier.MAX_LENGTH)
-    @LogicalMemberIdentifier
-    @Getter @Setter
-    private String logicalMemberIdentifier;
-
-    @Column(allowsNull = PropertyId.ALLOWS_NULL, length = PropertyId.MAX_LENGTH)
-    @PropertyId
-    @Getter @Setter
-    private String propertyId;
-
-    @Column(allowsNull = PreValue.ALLOWS_NULL, length = PreValue.MAX_LENGTH)
-    @PreValue
-    @Getter @Setter
-    private String preValue;
-
-    @Column(allowsNull = PostValue.ALLOWS_NULL, length = PostValue.MAX_LENGTH)
-    @PostValue
-    @Getter @Setter
-    private String postValue;
-
-}
diff --git a/extensions/security/audittrail/persistence-jdo/src/main/java/org/apache/causeway/extensions/audittrail/jdo/dom/AuditTrailEntryRepository.java b/extensions/security/audittrail/persistence-jdo/src/main/java/org/apache/causeway/extensions/audittrail/jdo/dom/AuditTrailEntryRepository.java
deleted file mode 100644
index 6367f88c245..00000000000
--- a/extensions/security/audittrail/persistence-jdo/src/main/java/org/apache/causeway/extensions/audittrail/jdo/dom/AuditTrailEntryRepository.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * 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 org.apache.causeway.extensions.audittrail.jdo.dom;
-
-import org.springframework.stereotype.Service;
-
-import org.apache.causeway.extensions.audittrail.applib.dom.AuditTrailEntryRepositoryAbstract;
-
-@Service
-public class AuditTrailEntryRepository extends AuditTrailEntryRepositoryAbstract<AuditTrailEntry> {
-
-    public AuditTrailEntryRepository() {
-        super(AuditTrailEntry.class);
-    }
-}
diff --git a/extensions/security/audittrail/persistence-jdo/src/test/java/org/apache/causeway/extensions/audittrail/jdo/integtests/AuditTrail_IntegTest.java b/extensions/security/audittrail/persistence-jdo/src/test/java/org/apache/causeway/extensions/audittrail/jdo/integtests/AuditTrail_IntegTest.java
deleted file mode 100644
index 5210e853b07..00000000000
--- a/extensions/security/audittrail/persistence-jdo/src/test/java/org/apache/causeway/extensions/audittrail/jdo/integtests/AuditTrail_IntegTest.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- *  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 org.apache.causeway.extensions.audittrail.jdo.integtests;
-
-import org.springframework.boot.SpringBootConfiguration;
-import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
-import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.context.annotation.ComponentScan;
-import org.springframework.context.annotation.Import;
-import org.springframework.context.annotation.PropertySource;
-import org.springframework.context.annotation.PropertySources;
-import org.springframework.test.context.ActiveProfiles;
-
-import org.apache.causeway.core.config.presets.CausewayPresets;
-import org.apache.causeway.core.runtimeservices.CausewayModuleCoreRuntimeServices;
-import org.apache.causeway.extensions.audittrail.applib.integtests.AuditTrail_IntegTestAbstract;
-import org.apache.causeway.extensions.audittrail.applib.integtests.model.AuditTrailTestDomainModel;
-import org.apache.causeway.extensions.audittrail.jdo.CausewayModuleExtAuditTrailPersistenceJdo;
-import org.apache.causeway.extensions.audittrail.jdo.integtests.model.Counter;
-import org.apache.causeway.extensions.audittrail.jdo.integtests.model.CounterRepository;
-import org.apache.causeway.security.bypass.CausewayModuleSecurityBypass;
-
-@SpringBootTest(
-        classes = AuditTrail_IntegTest.AppManifest.class
-)
-@ActiveProfiles("test")
-public class AuditTrail_IntegTest extends AuditTrail_IntegTestAbstract {
-
-    @SpringBootConfiguration
-    @EnableAutoConfiguration
-    @Import({
-            CausewayModuleCoreRuntimeServices.class,
-            CausewayModuleSecurityBypass.class,
-            CausewayModuleExtAuditTrailPersistenceJdo.class,
-    })
-    @PropertySources({
-            @PropertySource(CausewayPresets.UseLog4j2Test),
-    })
-    @ComponentScan(basePackageClasses = {AppManifest.class, AuditTrailTestDomainModel.class, CounterRepository.class})
-    public static class AppManifest {
-    }
-
-    @Override
-    protected org.apache.causeway.extensions.audittrail.applib.integtests.model.Counter newCounter(final String name) {
-        return Counter.builder().name(name).build();
-    }
-
-}
diff --git a/extensions/security/audittrail/persistence-jdo/src/test/java/org/apache/causeway/extensions/audittrail/jdo/integtests/model/Counter.java b/extensions/security/audittrail/persistence-jdo/src/test/java/org/apache/causeway/extensions/audittrail/jdo/integtests/model/Counter.java
deleted file mode 100644
index ec804fbed84..00000000000
--- a/extensions/security/audittrail/persistence-jdo/src/test/java/org/apache/causeway/extensions/audittrail/jdo/integtests/model/Counter.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * 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 org.apache.causeway.extensions.audittrail.jdo.integtests.model;
-
-import javax.jdo.annotations.Column;
-import javax.jdo.annotations.DatastoreIdentity;
-import javax.jdo.annotations.IdGeneratorStrategy;
-import javax.jdo.annotations.PersistenceCapable;
-
-import jakarta.inject.Named;
-
-import org.apache.causeway.applib.annotation.DomainObject;
-import org.apache.causeway.applib.annotation.Nature;
-import org.apache.causeway.applib.annotation.Publishing;
-
-import lombok.AccessLevel;
-import lombok.AllArgsConstructor;
-import lombok.Builder;
-import lombok.Getter;
-import lombok.NoArgsConstructor;
-import lombok.Setter;
-
-@PersistenceCapable(
-        schema = "public",
-        table = "Counter"
-)
-@DatastoreIdentity(strategy = IdGeneratorStrategy.IDENTITY, column = "id")
-@Named("audittrail.test.Counter")
-@DomainObject(nature = Nature.ENTITY, entityChangePublishing = Publishing.ENABLED)
-@NoArgsConstructor
-@Builder
-@AllArgsConstructor(access = AccessLevel.PRIVATE)
-public class Counter extends org.apache.causeway.extensions.audittrail.applib.integtests.model.Counter {
-
-    @Column(allowsNull = "false")
-    @Getter @Setter
-    private String name;
-
-    @Column(allowsNull = "true")
-    @Getter @Setter
-    private Long num;
-
-    @Column(allowsNull = "true")
-    @Getter @Setter
-    private Long num2;
-
-}
diff --git a/extensions/security/audittrail/persistence-jdo/src/test/java/org/apache/causeway/extensions/audittrail/jdo/integtests/model/CounterRepository.java b/extensions/security/audittrail/persistence-jdo/src/test/java/org/apache/causeway/extensions/audittrail/jdo/integtests/model/CounterRepository.java
deleted file mode 100644
index 88bc1ea3d74..00000000000
--- a/extensions/security/audittrail/persistence-jdo/src/test/java/org/apache/causeway/extensions/audittrail/jdo/integtests/model/CounterRepository.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * 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 org.apache.causeway.extensions.audittrail.jdo.integtests.model;
-
-import org.springframework.stereotype.Repository;
-
-@Repository
-public class CounterRepository
-        extends org.apache.causeway.extensions.audittrail.applib.integtests.model.CounterRepository<Counter> {
-
-    public CounterRepository() {
-        super(Counter.class);
-    }
-}
diff --git a/extensions/security/audittrail/persistence-jdo/src/test/resources/application-test.yml b/extensions/security/audittrail/persistence-jdo/src/test/resources/application-test.yml
deleted file mode 100644
index 65c380910fc..00000000000
--- a/extensions/security/audittrail/persistence-jdo/src/test/resources/application-test.yml
+++ /dev/null
@@ -1,26 +0,0 @@
-#  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.
-causeway:
-  persistence:
-    schema:
-      auto-create-schemas: "CAUSEWAYEXTAUDITTRAIL"
-
-
-datanucleus:
-  schema:
-    generate-database:
-      mode: "create"
diff --git a/extensions/security/audittrail/persistence-jpa/pom.xml b/extensions/security/audittrail/persistence-jpa/pom.xml
index dc69a852820..cc48ca0c0c3 100644
--- a/extensions/security/audittrail/persistence-jpa/pom.xml
+++ b/extensions/security/audittrail/persistence-jpa/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.causeway.extensions</groupId>
         <artifactId>causeway-extensions-audittrail</artifactId>
-        <version>3.4.0-SNAPSHOT</version>
+        <version>${revision}</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
 
@@ -50,12 +50,6 @@
         <dependency>
             <groupId>org.apache.causeway.testing</groupId>
             <artifactId>causeway-testing-fixtures-applib</artifactId>
-            <exclusions>
-                <exclusion>
-                    <groupId>org.apache.causeway.persistence</groupId>
-                    <artifactId>causeway-persistence-jdo-applib</artifactId>
-                </exclusion>
-            </exclusions>
         </dependency>
 
         <dependency>
diff --git a/extensions/security/audittrail/pom.xml b/extensions/security/audittrail/pom.xml
index 074658feb82..bc5acaf268f 100644
--- a/extensions/security/audittrail/pom.xml
+++ b/extensions/security/audittrail/pom.xml
@@ -26,7 +26,7 @@
     <parent>
         <groupId>org.apache.causeway.extensions</groupId>
         <artifactId>causeway-extensions</artifactId>
-        <version>3.4.0-SNAPSHOT</version>
+        <version>${revision}</version>
         <relativePath>../../pom.xml</relativePath>
     </parent>
 
@@ -46,30 +46,25 @@
             <dependency>
                 <groupId>org.apache.causeway.extensions</groupId>
                 <artifactId>causeway-extensions-audittrail-applib</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
             </dependency>
             <dependency>
                 <groupId>org.apache.causeway.extensions</groupId>
                 <artifactId>causeway-extensions-audittrail-applib</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <scope>test</scope>
                 <type>test-jar</type>
             </dependency>
             <dependency>
                 <groupId>org.apache.causeway.extensions</groupId>
                 <artifactId>causeway-extensions-audittrail-persistence-jpa</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.causeway.extensions</groupId>
-                <artifactId>causeway-extensions-audittrail-persistence-jdo</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
             </dependency>
 
             <dependency>
                 <groupId>org.apache.causeway.testing</groupId>
                 <artifactId>causeway-testing-integtestsupport</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>pom</type>
                 <scope>import</scope>
             </dependency>
@@ -83,22 +78,6 @@
 			<artifactId>causeway-core-metamodel</artifactId>
 		</dependency>
     </dependencies>
-    
-    <profiles>
-        <profile>
-            <id>module-jdo</id>
-            <activation>
-                <property>
-                    <name>!skip-module-jdo</name>
-                </property>
-            </activation>
-            <modules>
-                <module>applib</module>
-                <module>persistence-jdo</module>
-                <module>persistence-jpa</module>
-            </modules>
-        </profile>
-    </profiles>
 
     <modules>
     	<module>applib</module>
diff --git a/extensions/security/secman/applib/pom.xml b/extensions/security/secman/applib/pom.xml
index 7980f173264..aa31edaef48 100644
--- a/extensions/security/secman/applib/pom.xml
+++ b/extensions/security/secman/applib/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.causeway.extensions</groupId>
         <artifactId>causeway-extensions-secman</artifactId>
-        <version>3.4.0-SNAPSHOT</version>
+        <version>${revision}</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
 
@@ -40,13 +40,6 @@
         <dependency>
             <groupId>org.apache.causeway.testing</groupId>
             <artifactId>causeway-testing-fixtures-applib</artifactId>
-            <exclusions>
-                <!-- exclusion not strictly required, but helps keep JPA and JDO implementations separated -->
-                <exclusion>
-                    <groupId>org.apache.causeway.persistence</groupId>
-                    <artifactId>causeway-persistence-jdo-applib</artifactId>
-                </exclusion>
-            </exclusions>
         </dependency>
 
         <dependency>
diff --git a/extensions/security/secman/delegated-springoauth2/pom.xml b/extensions/security/secman/delegated-springoauth2/pom.xml
index f9980b3f089..ad911752aa3 100644
--- a/extensions/security/secman/delegated-springoauth2/pom.xml
+++ b/extensions/security/secman/delegated-springoauth2/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.causeway.extensions</groupId>
         <artifactId>causeway-extensions-secman</artifactId>
-        <version>3.4.0-SNAPSHOT</version>
+        <version>${revision}</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
 
diff --git a/extensions/security/secman/encryption-jbcrypt/pom.xml b/extensions/security/secman/encryption-jbcrypt/pom.xml
index 605b61625de..92bf6720f88 100644
--- a/extensions/security/secman/encryption-jbcrypt/pom.xml
+++ b/extensions/security/secman/encryption-jbcrypt/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.causeway.extensions</groupId>
         <artifactId>causeway-extensions-secman</artifactId>
-        <version>3.4.0-SNAPSHOT</version>
+        <version>${revision}</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
 
diff --git a/extensions/security/secman/encryption-spring/pom.xml b/extensions/security/secman/encryption-spring/pom.xml
index 60dcae22209..c7cd9bd154e 100644
--- a/extensions/security/secman/encryption-spring/pom.xml
+++ b/extensions/security/secman/encryption-spring/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.causeway.extensions</groupId>
         <artifactId>causeway-extensions-secman</artifactId>
-        <version>3.4.0-SNAPSHOT</version>
+        <version>${revision}</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
 
diff --git a/extensions/security/secman/integration/pom.xml b/extensions/security/secman/integration/pom.xml
index 1b5223bb3d4..8e6e719235e 100644
--- a/extensions/security/secman/integration/pom.xml
+++ b/extensions/security/secman/integration/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.causeway.extensions</groupId>
         <artifactId>causeway-extensions-secman</artifactId>
-        <version>3.4.0-SNAPSHOT</version>
+        <version>${revision}</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
 
diff --git a/extensions/security/secman/persistence-jdo/log4j2-test.xml b/extensions/security/secman/persistence-jdo/log4j2-test.xml
deleted file mode 100644
index 0ed7986e245..00000000000
--- a/extensions/security/secman/persistence-jdo/log4j2-test.xml
+++ /dev/null
@@ -1,78 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-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.
--->
-<Configuration status="WARN">
-	<Properties>
-		<Property name="PID">????</Property>
-		<Property name="LOG_EXCEPTION_CONVERSION_WORD">%xwEx</Property>
-		<Property name="LOG_LEVEL_PATTERN">%5p</Property>
-		<Property name="LOG_DATEFORMAT_PATTERN">yyyy-MM-dd HH:mm:ss.SSS</Property>
-		<Property name="CONSOLE_LOG_PATTERN">%clr{%d{${LOG_DATEFORMAT_PATTERN}}}{faint} %clr{${LOG_LEVEL_PATTERN}} %clr{${sys:PID}}{magenta} %clr{---}{faint} %clr{[%15.15t]}{faint} %clr{%-40.40c{1.}}{cyan} %clr{:}{faint} %m%n${sys:LOG_EXCEPTION_CONVERSION_WORD}</Property>
-		<Property name="FILE_LOG_PATTERN">%d{${LOG_DATEFORMAT_PATTERN}} ${LOG_LEVEL_PATTERN} ${sys:PID} --- [%t] %-40.40c{1.} : %m%n${sys:LOG_EXCEPTION_CONVERSION_WORD}</Property>
-	</Properties>
-	<Appenders>
-		<Console name="Console" target="SYSTEM_OUT" follow="true">
-			<PatternLayout pattern="${sys:CONSOLE_LOG_PATTERN}" />
-		</Console>
-	</Appenders>
-	<Loggers>
-		<Logger name="org.apache.catalina.startup.DigesterFactory" level="error" />
-		<Logger name="org.apache.catalina.util.LifecycleBase" level="error" />
-		<Logger name="org.apache.coyote.http11.Http11NioProtocol" level="warn" />
-		<logger name="org.apache.sshd.common.util.SecurityUtils" level="warn"/>
-		<Logger name="org.apache.tomcat.util.net.NioSelectorPool" level="warn" />
-		<Logger name="org.eclipse.jetty.util.component.AbstractLifeCycle" level="error" />
-		<Logger name="org.hibernate.validator.internal.util.Version" level="warn" />
-		<logger name="org.springframework.boot.actuate.endpoint.jmx" level="warn"/>
-		
-		<logger name="org.apache.directory" level="warn"/>
-		<logger name="org.apache.directory.api.ldap.model.entry.Value" level="off"/>
-		
-		<logger name="DataNucleus.Persistence" level="info"/>
-		<logger name="DataNucleus.Transaction" level="info"/>
-		<logger name="DataNucleus.Datastore.Schema" level="info"/>
-		<logger name="DataNucleus.Datastore.Native" level="info"/>
-		
-		<Root level="info">
-			<AppenderRef ref="Console" />
-		</Root>
-	</Loggers>
-</Configuration>
-
-<!-- # DataNucleus Logging Categories -->
-<!-- DataNucleus.Persistence - All messages relating to the persistence process -->
-<!-- DataNucleus.Transaction - All messages relating to transactions -->
-<!-- DataNucleus.Connection - All messages relating to Connections. -->
-<!-- DataNucleus.Query - All messages relating to queries -->
-<!-- DataNucleus.Cache - All messages relating to the DataNucleus Cache -->
-<!-- DataNucleus.MetaData - All messages relating to MetaData -->
-<!-- DataNucleus.Datastore - All general datastore messages -->
-<!-- DataNucleus.Datastore.Schema - All schema related datastore log messages -->
-<!-- DataNucleus.Datastore.Persist - All datastore persistence messages -->
-<!-- DataNucleus.Datastore.Retrieve - All datastore retrieval messages -->
-<!-- DataNucleus.Datastore.Native - Log of all 'native' statements sent to the datastore -->
-<!-- DataNucleus.General - All general operational messages -->
-<!-- DataNucleus.Lifecycle - All messages relating to object lifecycle changes -->
-<!-- DataNucleus.ValueGeneration - All messages relating to value generation -->
-<!-- DataNucleus.Enhancer - All messages from the DataNucleus Enhancer. -->
-<!-- DataNucleus.SchemaTool - All messages from DataNucleus SchemaTool -->
-<!-- DataNucleus.JDO - All messages general to JDO -->
-<!-- DataNucleus.JPA - All messages general to JPA -->
-<!-- DataNucleus.JCA - All messages relating to Connector JCA. -->
-<!-- DataNucleus.IDE - Messages from the DataNucleus IDE. -->
\ No newline at end of file
diff --git a/extensions/security/secman/persistence-jdo/logging-dn-enhance.properties b/extensions/security/secman/persistence-jdo/logging-dn-enhance.properties
deleted file mode 100644
index ca165acc786..00000000000
--- a/extensions/security/secman/persistence-jdo/logging-dn-enhance.properties
+++ /dev/null
@@ -1,41 +0,0 @@
-#  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.
-
-# LOG4J Configuration
-# ===================
-
-# Basic logging goes to "datanucleus.log"
-log4j.appender.A1=org.apache.log4j.FileAppender
-log4j.appender.A1.File=datanucleus.log
-log4j.appender.A1.layout=org.apache.log4j.PatternLayout
-log4j.appender.A1.layout.ConversionPattern=%d{HH:mm:ss,SSS} (%t) %-5p [%c] - %m%n
-#log4j.appender.A1.Threshold=INFO
-
-# Categories
-# Each category can be set to a "level", and to direct to an appender
-
-# Default to DEBUG level for all DataNucleus categories
-log4j.logger.DataNucleus = DEBUG, A1
-
-log4j.category.com.mchange.v2.c3p0=INFO, A1
-log4j.category.com.mchange.v2.resourcepool=INFO, A1
-log4j.category.org.logicalcobwebs.proxool=INFO,A1
-
-
-# Hbase libs logging
-log4j.category.org.apache.hadoop=INFO,A1
-log4j.category.org.apache.zookeeper=INFO,A1
\ No newline at end of file
diff --git a/extensions/security/secman/persistence-jdo/pom.xml b/extensions/security/secman/persistence-jdo/pom.xml
deleted file mode 100644
index 0e27e20dba8..00000000000
--- a/extensions/security/secman/persistence-jdo/pom.xml
+++ /dev/null
@@ -1,76 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  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.
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-
-    <parent>
-        <groupId>org.apache.causeway.extensions</groupId>
-        <artifactId>causeway-extensions-secman</artifactId>
-        <version>3.4.0-SNAPSHOT</version>
-        <relativePath>../pom.xml</relativePath>
-    </parent>
-
-    <artifactId>causeway-extensions-secman-persistence-jdo</artifactId>
-    <name>Apache Causeway Ext - Sec Man Persistence (Using JDO)</name>
-
-    <properties>
-        <jar-plugin.automaticModuleName>org.apache.causeway.extensions.secman.persistence.jdo</jar-plugin.automaticModuleName>
-        <git-plugin.propertiesDir>org/apache/causeway/extensions/secman/persistence-jdo</git-plugin.propertiesDir>
-    </properties>
-
-    <dependencies>
-
-		<dependency>
-			<groupId>org.apache.causeway.extensions</groupId>
-			<artifactId>causeway-extensions-secman-integration</artifactId>
-		</dependency>
-
-		<dependency>
-			<groupId>org.apache.causeway.persistence</groupId>
-			<artifactId>causeway-persistence-jdo-datanucleus</artifactId>
-		</dependency>
-
-		<dependency>
-			<groupId>org.apache.causeway.testing</groupId>
-			<artifactId>causeway-testing-fixtures-applib</artifactId>
-		</dependency>
-
-		<dependency>
-			<groupId>org.apache.causeway.core</groupId>
-			<artifactId>causeway-core-runtime</artifactId>
-			<scope>provided</scope>
-		</dependency>
-
-		<dependency>
-			<groupId>org.apache.causeway.extensions</groupId>
-			<artifactId>causeway-extensions-secman-applib</artifactId>
-			<scope>test</scope>
-			<type>test-jar</type>
-		</dependency>
-
-		<dependency>
-			<groupId>org.apache.causeway.testing</groupId>
-			<artifactId>causeway-testing-integtestsupport-applib</artifactId>
-			<scope>test</scope>
-		</dependency>
-
-    </dependencies>
-
-</project>
diff --git a/extensions/security/secman/persistence-jdo/src/main/java/org/apache/causeway/extensions/secman/jdo/CausewayModuleExtSecmanPersistenceJdo.java b/extensions/security/secman/persistence-jdo/src/main/java/org/apache/causeway/extensions/secman/jdo/CausewayModuleExtSecmanPersistenceJdo.java
deleted file mode 100644
index 4a11044013c..00000000000
--- a/extensions/security/secman/persistence-jdo/src/main/java/org/apache/causeway/extensions/secman/jdo/CausewayModuleExtSecmanPersistenceJdo.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- *  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 org.apache.causeway.extensions.secman.jdo;
-
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Import;
-
-import org.apache.causeway.extensions.secman.integration.CausewayModuleExtSecmanIntegration;
-import org.apache.causeway.extensions.secman.jdo.permission.dom.ApplicationPermission;
-import org.apache.causeway.extensions.secman.jdo.permission.dom.ApplicationPermissionRepository;
-import org.apache.causeway.extensions.secman.jdo.role.dom.ApplicationRole;
-import org.apache.causeway.extensions.secman.jdo.role.dom.ApplicationRoleRepository;
-import org.apache.causeway.extensions.secman.jdo.tenancy.dom.ApplicationTenancy;
-import org.apache.causeway.extensions.secman.jdo.tenancy.dom.ApplicationTenancyRepository;
-import org.apache.causeway.extensions.secman.jdo.user.dom.ApplicationUser;
-import org.apache.causeway.extensions.secman.jdo.user.dom.ApplicationUserRepository;
-import org.apache.causeway.extensions.secman.jdo.util.RegexReplacer;
-import org.apache.causeway.persistence.jdo.datanucleus.CausewayModulePersistenceJdoDatanucleus;
-import org.apache.causeway.testing.fixtures.applib.fixturescripts.FixtureScript;
-import org.apache.causeway.testing.fixtures.applib.modules.ModuleWithFixtures;
-import org.apache.causeway.testing.fixtures.applib.teardown.jdo.TeardownFixtureJdoAbstract;
-
-/**
- * @since 2.0 {@index}
- */
-@Configuration
-@Import({
-        // Modules
-        CausewayModuleExtSecmanIntegration.class,
-        CausewayModulePersistenceJdoDatanucleus.class,
-
-        // services
-        ApplicationPermissionRepository.class,
-        ApplicationRoleRepository.class,
-        ApplicationTenancyRepository.class,
-        ApplicationUserRepository.class,
-        RegexReplacer.class,
-
-        // entities, eager meta-model inspection
-        ApplicationPermission.class,
-        ApplicationRole.class,
-        ApplicationTenancy.class,
-        ApplicationUser.class,
-
-})
-public class CausewayModuleExtSecmanPersistenceJdo {
-
-    /**
-     * Note that this is <i>NOT</i> an implementation of the {@link ModuleWithFixtures#getTeardownFixture()} API;
-     * but is provided to allow manual teardown if required.
-     */
-    public FixtureScript teardownFixture() {
-        return new TeardownFixtureJdoAbstract() {
-            @Override
-            protected void execute(final ExecutionContext executionContext) {
-                deleteFrom(ApplicationPermission.class);
-                deleteFrom(ApplicationUser.class);
-                deleteFrom(ApplicationRole.class);
-                deleteFrom(ApplicationTenancy.class);
-            }
-        };
-    }
-
-}
diff --git a/extensions/security/secman/persistence-jdo/src/main/java/org/apache/causeway/extensions/secman/jdo/package.jdo~breaks-mvn-build b/extensions/security/secman/persistence-jdo/src/main/java/org/apache/causeway/extensions/secman/jdo/package.jdo~breaks-mvn-build
deleted file mode 100644
index 68e444b2ccb..00000000000
--- a/extensions/security/secman/persistence-jdo/src/main/java/org/apache/causeway/extensions/secman/jdo/package.jdo~breaks-mvn-build
+++ /dev/null
@@ -1,37 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<!-- 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. -->
-<jdo xmlns="http://xmlns.jcp.org/xml/ns/jdo/jdo"
-	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/jdo/jdo http://xmlns.jcp.org/xml/ns/jdo/jdo_3_1.xsd"
-	version="3.1">
-
-	<!-- usually this file helps the DN Eclipse plugin finding the entities, that need enhancing -->
-	
-	<package name="org.apache.isis.extensions.secman.jdo.dom.permission">
-		<class name="ApplicationPermission"/>
-	</package>
-	
-	<package name="org.apache.isis.extensions.secman.jdo.dom.role">
-		<class name="ApplicationRole"/>
-	</package>
-	
-	<package name="org.apache.isis.extensions.secman.jdo.dom.tenancy">
-		<class name="ApplicationTenancy"/>
-	</package>
-	
-	<package name="org.apache.isis.extensions.secman.jdo.dom.user">
-		<class name="ApplicationUser"/>
-	</package>
-	
-
-</jdo>
-
diff --git a/extensions/security/secman/persistence-jdo/src/main/java/org/apache/causeway/extensions/secman/jdo/permission/dom/ApplicationPermission.java b/extensions/security/secman/persistence-jdo/src/main/java/org/apache/causeway/extensions/secman/jdo/permission/dom/ApplicationPermission.java
deleted file mode 100644
index b1ea10d2aca..00000000000
--- a/extensions/security/secman/persistence-jdo/src/main/java/org/apache/causeway/extensions/secman/jdo/permission/dom/ApplicationPermission.java
+++ /dev/null
@@ -1,141 +0,0 @@
-/*
- *  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 org.apache.causeway.extensions.secman.jdo.permission.dom;
-
-import javax.jdo.annotations.Column;
-import javax.jdo.annotations.DatastoreIdentity;
-import javax.jdo.annotations.IdGeneratorStrategy;
-import javax.jdo.annotations.IdentityType;
-import javax.jdo.annotations.Inheritance;
-import javax.jdo.annotations.InheritanceStrategy;
-import javax.jdo.annotations.PersistenceCapable;
-import javax.jdo.annotations.Queries;
-import javax.jdo.annotations.Query;
-import javax.jdo.annotations.Unique;
-import javax.jdo.annotations.Uniques;
-import javax.jdo.annotations.Version;
-import javax.jdo.annotations.VersionStrategy;
-
-import jakarta.inject.Named;
-import jakarta.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
-
-import org.apache.causeway.applib.annotation.BookmarkPolicy;
-import org.apache.causeway.applib.annotation.DomainObject;
-import org.apache.causeway.applib.annotation.DomainObjectLayout;
-import org.apache.causeway.applib.jaxb.PersistentEntityAdapter;
-import org.apache.causeway.applib.services.appfeat.ApplicationFeatureSort;
-import org.apache.causeway.commons.internal.base._Casts;
-import org.apache.causeway.extensions.secman.applib.permission.dom.ApplicationPermission.Nq;
-import org.apache.causeway.extensions.secman.applib.permission.dom.ApplicationPermissionMode;
-import org.apache.causeway.extensions.secman.applib.permission.dom.ApplicationPermissionRule;
-import org.apache.causeway.extensions.secman.applib.role.dom.ApplicationRole;
-
-import lombok.Getter;
-import lombok.Setter;
-
-@PersistenceCapable(
-        identityType = IdentityType.DATASTORE,
-        schema = ApplicationPermission.SCHEMA,
-        table = ApplicationPermission.TABLE)
-@Uniques({
-        @Unique(name = "ApplicationPermission__role_feature_rule__UNQ", members = { "role", "featureSort", "featureFqn", "rule" })
-})
-@Queries( {
-    @Query(
-            name = Nq.FIND_BY_ROLE,
-            value = "SELECT "
-                  + "  FROM " + ApplicationPermission.FQCN
-                  + " WHERE role == :role"),
-    @Query(
-            name = Nq.FIND_BY_USER,
-            value = "SELECT "
-                  + "  FROM " + ApplicationPermission.FQCN
-                  + " WHERE (u.roles.contains(role) && u.username == :username) "
-                  + " VARIABLES org.apache.causeway.extensions.secman.jdo.user.dom.ApplicationUser u"),
-    @Query(
-            name = Nq.FIND_BY_ROLE_NAMES,
-            value = "SELECT "
-                  + "  FROM " + ApplicationPermission.FQCN
-                  + " WHERE :roleNames.contains(role.name) "),
-    @Query(
-            name = Nq.FIND_BY_FEATURE,
-            value = "SELECT "
-                  + "  FROM " + ApplicationPermission.FQCN
-                  + " WHERE featureSort == :featureSort "
-                  + "    && featureFqn == :featureFqn"),
-    @Query(
-            name = Nq.FIND_BY_ROLE_RULE_FEATURE_FQN,
-            value = "SELECT "
-                  + "  FROM " + ApplicationPermission.FQCN
-                  + " WHERE role == :role "
-                  + "    && rule == :rule "
-                  + "    && featureSort == :featureSort "
-                  + "    && featureFqn == :featureFqn "),
-    @Query(
-            name = Nq.FIND_BY_ROLE_RULE_FEATURE,
-            value = "SELECT "
-                  + "  FROM " + ApplicationPermission.FQCN
-                  + " WHERE role == :role "
-                  + "    && rule == :rule "
-                  + "    && featureSort == :featureSort "),
-})
-@Inheritance(strategy = InheritanceStrategy.NEW_TABLE)
-@DatastoreIdentity(strategy = IdGeneratorStrategy.NATIVE, column = "id")
-@Version(strategy = VersionStrategy.VERSION_NUMBER, column = "version")
-@XmlJavaTypeAdapter(PersistentEntityAdapter.class)
-@Named(ApplicationPermission.LOGICAL_TYPE_NAME)
-@DomainObject()
-@DomainObjectLayout(
-        bookmarking = BookmarkPolicy.AS_CHILD
-)
-public class ApplicationPermission
-    extends org.apache.causeway.extensions.secman.applib.permission.dom.ApplicationPermission {
-
-    protected final static String FQCN = "org.apache.causeway.extensions.secman.jdo.permission.dom.ApplicationPermission";
-
-    @Column(name = Role.NAME, allowsNull = Role.ALLOWS_NULL)
-    @Role
-    @Getter
-    private org.apache.causeway.extensions.secman.jdo.role.dom.ApplicationRole role;
-    @Override
-    public void setRole(final ApplicationRole role) {
-        this.role = _Casts.uncheckedCast(role);
-    }
-
-    @Column(allowsNull = Rule.ALLOWS_NULL)
-    @Rule
-    @Getter @Setter
-    private ApplicationPermissionRule rule;
-
-    @Column(allowsNull = Mode.ALLOWS_NULL)
-    @Mode
-    @Getter @Setter
-    private ApplicationPermissionMode mode;
-
-    @Column(allowsNull = FeatureSort.ALLOWS_NULL)
-    @FeatureSort
-    @Getter @Setter
-    private ApplicationFeatureSort featureSort;
-
-    @Column(allowsNull = FeatureFqn.ALLOWS_NULL)
-    @FeatureFqn
-    @Getter @Setter
-    private String featureFqn;
-
-}
diff --git a/extensions/security/secman/persistence-jdo/src/main/java/org/apache/causeway/extensions/secman/jdo/permission/dom/ApplicationPermissionRepository.java b/extensions/security/secman/persistence-jdo/src/main/java/org/apache/causeway/extensions/secman/jdo/permission/dom/ApplicationPermissionRepository.java
deleted file mode 100644
index d804505236e..00000000000
--- a/extensions/security/secman/persistence-jdo/src/main/java/org/apache/causeway/extensions/secman/jdo/permission/dom/ApplicationPermissionRepository.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- *  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 org.apache.causeway.extensions.secman.jdo.permission.dom;
-
-import jakarta.inject.Named;
-
-import org.springframework.stereotype.Repository;
-
-import org.apache.causeway.extensions.secman.applib.CausewayModuleExtSecmanApplib;
-import org.apache.causeway.extensions.secman.applib.permission.dom.ApplicationPermissionRepositoryAbstract;
-
-@Repository
-@Named(CausewayModuleExtSecmanApplib.NAMESPACE + ".ApplicationPermissionRepository")
-public class ApplicationPermissionRepository
-extends ApplicationPermissionRepositoryAbstract<ApplicationPermission> {
-
-    public ApplicationPermissionRepository() {
-        super(ApplicationPermission.class);
-    }
-}
diff --git a/extensions/security/secman/persistence-jdo/src/main/java/org/apache/causeway/extensions/secman/jdo/role/dom/ApplicationRole.java b/extensions/security/secman/persistence-jdo/src/main/java/org/apache/causeway/extensions/secman/jdo/role/dom/ApplicationRole.java
deleted file mode 100644
index 769b6991c1e..00000000000
--- a/extensions/security/secman/persistence-jdo/src/main/java/org/apache/causeway/extensions/secman/jdo/role/dom/ApplicationRole.java
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- *  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 org.apache.causeway.extensions.secman.jdo.role.dom;
-
-import java.util.SortedSet;
-import java.util.TreeSet;
-
-import javax.jdo.annotations.Column;
-import javax.jdo.annotations.DatastoreIdentity;
-import javax.jdo.annotations.IdGeneratorStrategy;
-import javax.jdo.annotations.IdentityType;
-import javax.jdo.annotations.Inheritance;
-import javax.jdo.annotations.InheritanceStrategy;
-import javax.jdo.annotations.PersistenceCapable;
-import javax.jdo.annotations.Persistent;
-import javax.jdo.annotations.Queries;
-import javax.jdo.annotations.Query;
-import javax.jdo.annotations.Unique;
-import javax.jdo.annotations.Uniques;
-import javax.jdo.annotations.Version;
-import javax.jdo.annotations.VersionStrategy;
-
-import jakarta.inject.Named;
-import jakarta.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
-
-import org.apache.causeway.applib.annotation.BookmarkPolicy;
-import org.apache.causeway.applib.annotation.Bounding;
-import org.apache.causeway.applib.annotation.DomainObject;
-import org.apache.causeway.applib.annotation.DomainObjectLayout;
-import org.apache.causeway.applib.jaxb.PersistentEntityAdapter;
-import org.apache.causeway.commons.internal.base._Casts;
-import org.apache.causeway.extensions.secman.applib.role.dom.ApplicationRole.Nq;
-
-import lombok.Getter;
-import lombok.Setter;
-
-@PersistenceCapable(
-        identityType = IdentityType.DATASTORE,
-        schema = ApplicationRole.SCHEMA,
-        table = ApplicationRole.TABLE)
-@Uniques({
-    @Unique(name = "ApplicationRole__name__UNQ", members = { "name" })
-})
-@Queries({
-    @Query(
-            name = Nq.FIND_BY_NAME,
-            value = "SELECT "
-                  + "  FROM " + ApplicationRole.FQCN
-                  + " WHERE name == :name"),
-    @Query(
-            name = Nq.FIND_BY_NAME_CONTAINING,
-            value = "SELECT "
-                  + "  FROM " + ApplicationRole.FQCN
-                  + " WHERE name.matches(:regex) ")
-})
-@Inheritance(
-        strategy = InheritanceStrategy.NEW_TABLE)
-@DatastoreIdentity(strategy = IdGeneratorStrategy.NATIVE, column = "id")
-@Version(strategy = VersionStrategy.VERSION_NUMBER, column = "version")
-@XmlJavaTypeAdapter(PersistentEntityAdapter.class)
-@Named(ApplicationRole.LOGICAL_TYPE_NAME)
-@DomainObject(
-        bounding = Bounding.BOUNDED,
-        autoCompleteRepository = ApplicationRoleRepository.class,
-        autoCompleteMethod = "findMatching"
-        )
-@DomainObjectLayout(
-        bookmarking = BookmarkPolicy.AS_ROOT
-        )
-public class ApplicationRole
-    extends org.apache.causeway.extensions.secman.applib.role.dom.ApplicationRole {
-
-    protected final static String FQCN = "org.apache.causeway.extensions.secman.jdo.role.dom.ApplicationRole";
-
-    @Column(allowsNull = Name.ALLOWS_NULL, length = Name.MAX_LENGTH)
-    @Name
-    @Getter @Setter
-    private String name;
-
-    @Column(allowsNull = Description.ALLOWS_NULL, length = Description.MAX_LENGTH)
-    @Description
-    @Getter @Setter
-    private String description;
-
-    @Persistent(mappedBy = Users.MAPPED_BY)
-    @Users
-    private SortedSet<org.apache.causeway.extensions.secman.jdo.user.dom.ApplicationUser> users = new TreeSet<>();
-    @Override
-    public SortedSet<org.apache.causeway.extensions.secman.applib.user.dom.ApplicationUser> getUsers() {
-        return _Casts.uncheckedCast(users);
-    }
-    // necessary for integration tests
-    public void addToUsers(final org.apache.causeway.extensions.secman.jdo.user.dom.ApplicationUser applicationUser) {
-        getUsers().add(applicationUser);
-    }
-
-}
diff --git a/extensions/security/secman/persistence-jdo/src/main/java/org/apache/causeway/extensions/secman/jdo/role/dom/ApplicationRoleRepository.java b/extensions/security/secman/persistence-jdo/src/main/java/org/apache/causeway/extensions/secman/jdo/role/dom/ApplicationRoleRepository.java
deleted file mode 100644
index 42236a1fda0..00000000000
--- a/extensions/security/secman/persistence-jdo/src/main/java/org/apache/causeway/extensions/secman/jdo/role/dom/ApplicationRoleRepository.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- *  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 org.apache.causeway.extensions.secman.jdo.role.dom;
-
-import jakarta.inject.Named;
-
-import org.springframework.stereotype.Repository;
-
-import org.apache.causeway.extensions.secman.applib.CausewayModuleExtSecmanApplib;
-import org.apache.causeway.extensions.secman.applib.role.dom.ApplicationRoleRepositoryAbstract;
-
-@Repository
-@Named(CausewayModuleExtSecmanApplib.NAMESPACE + ".ApplicationRoleRepository")
-public class ApplicationRoleRepository
-extends ApplicationRoleRepositoryAbstract<ApplicationRole> {
-
-    public ApplicationRoleRepository() {
-        super(ApplicationRole.class);
-    }
-
-}
diff --git a/extensions/security/secman/persistence-jdo/src/main/java/org/apache/causeway/extensions/secman/jdo/tenancy/dom/ApplicationTenancy.java b/extensions/security/secman/persistence-jdo/src/main/java/org/apache/causeway/extensions/secman/jdo/tenancy/dom/ApplicationTenancy.java
deleted file mode 100644
index 5e457475968..00000000000
--- a/extensions/security/secman/persistence-jdo/src/main/java/org/apache/causeway/extensions/secman/jdo/tenancy/dom/ApplicationTenancy.java
+++ /dev/null
@@ -1,130 +0,0 @@
-/*
- *  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 org.apache.causeway.extensions.secman.jdo.tenancy.dom;
-
-import java.util.SortedSet;
-import java.util.TreeSet;
-
-import javax.jdo.annotations.Column;
-import javax.jdo.annotations.DatastoreIdentity;
-import javax.jdo.annotations.IdGeneratorStrategy;
-import javax.jdo.annotations.IdentityType;
-import javax.jdo.annotations.Inheritance;
-import javax.jdo.annotations.InheritanceStrategy;
-import javax.jdo.annotations.PersistenceCapable;
-import javax.jdo.annotations.Persistent;
-import javax.jdo.annotations.PrimaryKey;
-import javax.jdo.annotations.Queries;
-import javax.jdo.annotations.Query;
-import javax.jdo.annotations.Unique;
-import javax.jdo.annotations.Uniques;
-import javax.jdo.annotations.Version;
-import javax.jdo.annotations.VersionStrategy;
-
-import jakarta.inject.Named;
-import jakarta.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
-
-import org.apache.causeway.applib.annotation.BookmarkPolicy;
-import org.apache.causeway.applib.annotation.DomainObject;
-import org.apache.causeway.applib.annotation.DomainObjectLayout;
-import org.apache.causeway.applib.jaxb.PersistentEntityAdapter;
-import org.apache.causeway.commons.internal.base._Casts;
-import org.apache.causeway.extensions.secman.applib.tenancy.dom.ApplicationTenancy.Nq;
-
-import lombok.Getter;
-import lombok.Setter;
-
-@PersistenceCapable(
-        identityType = IdentityType.APPLICATION,
-        schema = ApplicationTenancy.SCHEMA,
-        table = ApplicationTenancy.TABLE)
-@Uniques({
-    @Unique(name = "ApplicationTenancy__name__UNQ", members = { "name" })
-})
-@Queries( {
-    @Query(
-            name = Nq.FIND_BY_PATH,
-            value = "SELECT "
-                  + "  FROM " + ApplicationTenancy.FQCN
-                  + " WHERE path == :path"),
-    @Query(
-            name = Nq.FIND_BY_NAME,
-            value = "SELECT "
-                  + "  FROM " + ApplicationTenancy.FQCN
-                  + " WHERE name == :name"),
-    @Query(
-            name = Nq.FIND_BY_NAME_OR_PATH_MATCHING,
-            value = "SELECT "
-                  + "  FROM " + ApplicationTenancy.FQCN
-                  + " WHERE name.matches(:regex) "
-                  + "    || path.matches(:regex) ")
-})
-@Inheritance(strategy = InheritanceStrategy.NEW_TABLE)
-@DatastoreIdentity(strategy = IdGeneratorStrategy.NATIVE, column = "id")
-@Version(strategy = VersionStrategy.VERSION_NUMBER, column = "version")
-@XmlJavaTypeAdapter(PersistentEntityAdapter.class)
-@Named(ApplicationTenancy.LOGICAL_TYPE_NAME)
-@DomainObject(
-        autoCompleteRepository = ApplicationTenancyRepository.class,
-        autoCompleteMethod = "findMatching"
-)
-@DomainObjectLayout(
-        bookmarking = BookmarkPolicy.AS_ROOT
-        )
-public class ApplicationTenancy
-    extends org.apache.causeway.extensions.secman.applib.tenancy.dom.ApplicationTenancy {
-
-    protected final static String FQCN = "org.apache.causeway.extensions.secman.jdo.tenancy.dom.ApplicationTenancy";
-
-    @Column(allowsNull = Name.ALLOWS_NULL, length = Name.MAX_LENGTH)
-    @Name
-    @Getter @Setter
-    private String name;
-
-    @PrimaryKey
-    @Column(allowsNull = Path.ALLOWS_NULL, length = Path.MAX_LENGTH)
-    @Path
-    @Getter @Setter
-    private String path;
-
-    @Column(name = Parent.NAME, allowsNull = Parent.ALLOWS_NULL)
-    @Parent
-    @Getter
-    private ApplicationTenancy parent;
-    @Override
-    public void setParent(org.apache.causeway.extensions.secman.applib.tenancy.dom.ApplicationTenancy parent) {
-        this.parent = _Casts.uncheckedCast(parent);
-    }
-
-    @Persistent(mappedBy = Children.MAPPED_BY)
-    @Children
-    private SortedSet<ApplicationTenancy> children = new TreeSet<>();
-    @Override
-    public SortedSet<org.apache.causeway.extensions.secman.applib.tenancy.dom.ApplicationTenancy> getChildren() {
-        return _Casts.uncheckedCast(children);
-    }
-    public void setChildren(final SortedSet<org.apache.causeway.extensions.secman.applib.tenancy.dom.ApplicationTenancy> children) {
-        this.children = _Casts.uncheckedCast(children);
-    }
-    // necessary for integration tests
-    public void removeFromChildren(final org.apache.causeway.extensions.secman.applib.tenancy.dom.ApplicationTenancy applicationTenancy) {
-        getChildren().remove(applicationTenancy);
-    }
-
-}
diff --git a/extensions/security/secman/persistence-jdo/src/main/java/org/apache/causeway/extensions/secman/jdo/tenancy/dom/ApplicationTenancyRepository.java b/extensions/security/secman/persistence-jdo/src/main/java/org/apache/causeway/extensions/secman/jdo/tenancy/dom/ApplicationTenancyRepository.java
deleted file mode 100644
index 329c2f05e8e..00000000000
--- a/extensions/security/secman/persistence-jdo/src/main/java/org/apache/causeway/extensions/secman/jdo/tenancy/dom/ApplicationTenancyRepository.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- *  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 org.apache.causeway.extensions.secman.jdo.tenancy.dom;
-
-import jakarta.inject.Named;
-
-import org.springframework.stereotype.Repository;
-
-import org.apache.causeway.extensions.secman.applib.CausewayModuleExtSecmanApplib;
-import org.apache.causeway.extensions.secman.applib.tenancy.dom.ApplicationTenancyRepositoryAbstract;
-
-@Repository
-@Named(CausewayModuleExtSecmanApplib.NAMESPACE + ".ApplicationTenancyRepository")
-public class ApplicationTenancyRepository
-extends ApplicationTenancyRepositoryAbstract<ApplicationTenancy> {
-
-    public ApplicationTenancyRepository() {
-        super(ApplicationTenancy.class);
-    }
-
-}
diff --git a/extensions/security/secman/persistence-jdo/src/main/java/org/apache/causeway/extensions/secman/jdo/user/dom/ApplicationUser.java b/extensions/security/secman/persistence-jdo/src/main/java/org/apache/causeway/extensions/secman/jdo/user/dom/ApplicationUser.java
deleted file mode 100644
index 80b2d4211f0..00000000000
--- a/extensions/security/secman/persistence-jdo/src/main/java/org/apache/causeway/extensions/secman/jdo/user/dom/ApplicationUser.java
+++ /dev/null
@@ -1,189 +0,0 @@
-/*
- *  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 org.apache.causeway.extensions.secman.jdo.user.dom;
-
-import java.util.SortedSet;
-import java.util.TreeSet;
-
-import javax.jdo.annotations.Column;
-import javax.jdo.annotations.DatastoreIdentity;
-import javax.jdo.annotations.Element;
-import javax.jdo.annotations.IdGeneratorStrategy;
-import javax.jdo.annotations.IdentityType;
-import javax.jdo.annotations.Inheritance;
-import javax.jdo.annotations.InheritanceStrategy;
-import javax.jdo.annotations.Join;
-import javax.jdo.annotations.PersistenceCapable;
-import javax.jdo.annotations.Persistent;
-import javax.jdo.annotations.Queries;
-import javax.jdo.annotations.Query;
-import javax.jdo.annotations.Unique;
-import javax.jdo.annotations.Uniques;
-import javax.jdo.annotations.Version;
-import javax.jdo.annotations.VersionStrategy;
-
-import jakarta.inject.Named;
-import jakarta.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
-
-import org.apache.causeway.applib.annotation.BookmarkPolicy;
-import org.apache.causeway.applib.annotation.DomainObject;
-import org.apache.causeway.applib.annotation.DomainObjectLayout;
-import org.apache.causeway.applib.jaxb.PersistentEntityAdapter;
-import org.apache.causeway.commons.internal.base._Casts;
-import org.apache.causeway.extensions.secman.applib.user.dom.ApplicationUser.Nq;
-import org.apache.causeway.extensions.secman.applib.user.dom.ApplicationUserStatus;
-
-import lombok.Getter;
-import lombok.Setter;
-
-@PersistenceCapable(
-        identityType = IdentityType.DATASTORE,
-        schema = ApplicationUser.SCHEMA,
-        table = ApplicationUser.TABLE)
-@Uniques({
-    @Unique(name = "ApplicationUser__username__UNQ", members = { "username" })})
-@Queries( {
-    @Query(
-            name = Nq.FIND_BY_USERNAME,
-            value = "SELECT "
-                  + "  FROM " + ApplicationUser.FQCN
-                  + " WHERE username == :username"),
-    @Query(
-            name = Nq.FIND_BY_EMAIL_ADDRESS,
-            value = "SELECT "
-                  + "  FROM " + ApplicationUser.FQCN
-                  + " WHERE emailAddress == :emailAddress"),
-    @Query(
-            name = Nq.FIND_BY_ATPATH,
-            value = "SELECT "
-                  + "  FROM " + ApplicationUser.FQCN
-                  + " WHERE atPath == :atPath"),
-    @Query(
-            name = Nq.FIND,
-            value = "SELECT "
-                  + "  FROM " + ApplicationUser.FQCN
-                  + " WHERE username.matches(:regex)"
-                  + "    || familyName.matches(:regex)"
-                  + "    || givenName.matches(:regex)"
-                  + "    || knownAs.matches(:regex)"
-                  + "    || emailAddress.matches(:regex)")
-})
-@Inheritance(strategy = InheritanceStrategy.NEW_TABLE)
-@DatastoreIdentity(strategy = IdGeneratorStrategy.NATIVE, column = "id")
-@Version(strategy = VersionStrategy.VERSION_NUMBER, column = "version")
-@XmlJavaTypeAdapter(PersistentEntityAdapter.class)
-@Named(ApplicationUser.LOGICAL_TYPE_NAME)
-@DomainObject(
-        autoCompleteRepository = ApplicationUserRepository.class,
-        autoCompleteMethod = "findMatching"
-        )
-@DomainObjectLayout(
-        bookmarking = BookmarkPolicy.AS_ROOT
-        )
-public class ApplicationUser
-    extends org.apache.causeway.extensions.secman.applib.user.dom.ApplicationUser {
-
-    protected final static String FQCN = "org.apache.causeway.extensions.secman.jdo.user.dom.ApplicationUser";
-
-    @Column(allowsNull = Username.ALLOWS_NULL, length = Username.MAX_LENGTH)
-    @Username
-    @Getter @Setter
-    private String username;
-
-    @Column(allowsNull = FamilyName.ALLOWS_NULL, length = FamilyName.MAX_LENGTH)
-    @FamilyName
-    @Getter @Setter
-    private String familyName;
-
-    @Column(allowsNull = GivenName.ALLOWS_NULL, length = GivenName.MAX_LENGTH)
-    @GivenName
-    @Getter @Setter
-    private String givenName;
-
-    @Column(allowsNull = KnownAs.ALLOWS_NULL, length = KnownAs.MAX_LENGTH)
-    @KnownAs
-    @Getter @Setter
-    private String knownAs;
-
-    @Column(allowsNull = EmailAddress.ALLOWS_NULL, length = EmailAddress.MAX_LENGTH)
-    @EmailAddress
-    @Getter @Setter
-    private String emailAddress;
-
-    @Column(allowsNull = PhoneNumber.ALLOWS_NULL, length = PhoneNumber.MAX_LENGTH)
-    @PhoneNumber
-    @Getter @Setter
-    private String phoneNumber;
-
-    @Column(allowsNull = FaxNumber.ALLOWS_NULL, length = FaxNumber.MAX_LENGTH)
-    @FaxNumber
-    @Getter @Setter
-    private String faxNumber;
-
-    @Column(allowsNull = Language.ALLOWS_NULL)
-    @Language
-    @Getter @Setter
-    private java.util.Locale language;
-
-    @Column(allowsNull = NumberFormat.ALLOWS_NULL)
-    @NumberFormat
-    @Getter @Setter
-    private java.util.Locale numberFormat;
-
-    @Column(allowsNull = TimeFormat.ALLOWS_NULL)
-    @TimeFormat
-    @Getter @Setter
-    private java.util.Locale timeFormat;
-
-    @Column(allowsNull = AtPath.ALLOWS_NULL, length = AtPath.MAX_LENGTH)
-    @AtPath
-    @Getter @Setter
-    private String atPath;
-
-    @Column(allowsNull = AccountType.ALLOWS_NULL)
-    @AccountType
-    @Getter
-    private org.apache.causeway.extensions.secman.applib.user.dom.AccountType accountType;
-    @Override
-    public void setAccountType(final org.apache.causeway.extensions.secman.applib.user.dom.AccountType accountType) {
-        this.accountType = accountType;
-    }
-
-    @Column(allowsNull = Status.ALLOWS_NULL)
-    @Status
-    @Getter @Setter
-    private ApplicationUserStatus status;
-
-    @Column(allowsNull = EncryptedPassword.ALLOWS_NULL, length = EncryptedPassword.MAX_LENGTH)
-    @EncryptedPassword
-    @Getter @Setter
-    private String encryptedPassword;
-
-    // ROLES
-
-    @Persistent(table = Roles.Persistence.TABLE)
-    @Join(column = Roles.Persistence.JOIN_COLUMN)
-    @Element(column = Roles.Persistence.INVERSE_JOIN_COLUMN)
-    @Roles
-    private SortedSet<org.apache.causeway.extensions.secman.jdo.role.dom.ApplicationRole> roles = new TreeSet<>();
-    @Override
-    public SortedSet<org.apache.causeway.extensions.secman.applib.role.dom.ApplicationRole> getRoles() {
-        return _Casts.uncheckedCast(roles);
-    }
-}
diff --git a/extensions/security/secman/persistence-jdo/src/main/java/org/apache/causeway/extensions/secman/jdo/user/dom/ApplicationUserRepository.java b/extensions/security/secman/persistence-jdo/src/main/java/org/apache/causeway/extensions/secman/jdo/user/dom/ApplicationUserRepository.java
deleted file mode 100644
index f60380ae9aa..00000000000
--- a/extensions/security/secman/persistence-jdo/src/main/java/org/apache/causeway/extensions/secman/jdo/user/dom/ApplicationUserRepository.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- *  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 org.apache.causeway.extensions.secman.jdo.user.dom;
-
-import jakarta.inject.Named;
-
-import org.springframework.stereotype.Repository;
-
-import org.apache.causeway.extensions.secman.applib.CausewayModuleExtSecmanApplib;
-import org.apache.causeway.extensions.secman.applib.user.dom.ApplicationUserRepositoryAbstract;
-
-@Repository
-@Named(CausewayModuleExtSecmanApplib.NAMESPACE + ".ApplicationUserRepository")
-public class ApplicationUserRepository
-extends ApplicationUserRepositoryAbstract<ApplicationUser> {
-
-    public ApplicationUserRepository() {
-        super(ApplicationUser.class);
-    }
-
-}
diff --git a/extensions/security/secman/persistence-jdo/src/main/java/org/apache/causeway/extensions/secman/jdo/util/RegexReplacer.java b/extensions/security/secman/persistence-jdo/src/main/java/org/apache/causeway/extensions/secman/jdo/util/RegexReplacer.java
deleted file mode 100644
index b871aa38552..00000000000
--- a/extensions/security/secman/persistence-jdo/src/main/java/org/apache/causeway/extensions/secman/jdo/util/RegexReplacer.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- *  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 org.apache.causeway.extensions.secman.jdo.util;
-
-import jakarta.inject.Named;
-
-import org.springframework.stereotype.Component;
-
-import org.apache.causeway.commons.internal.base._Strings;
-import org.apache.causeway.extensions.secman.applib.CausewayModuleExtSecmanApplib;
-
-@Component
-@Named(CausewayModuleExtSecmanApplib.NAMESPACE + ".RegexReplacer")
-public class RegexReplacer implements org.apache.causeway.extensions.secman.applib.util.RegexReplacer {
-
-    @Override
-    public String asRegex(String str) {
-        var search = _Strings.nullToEmpty(str).replace("*", ".*").replace("?", ".");
-        return String.format("(?i).*%s.*", search);
-    }
-
-}
diff --git a/extensions/security/secman/persistence-jdo/src/test/java/org/apache/causeway/extensions/secman/jdo/permission/dom/ApplicationPermissionRepository_IntegTest.java b/extensions/security/secman/persistence-jdo/src/test/java/org/apache/causeway/extensions/secman/jdo/permission/dom/ApplicationPermissionRepository_IntegTest.java
deleted file mode 100644
index 6e006bbfa5d..00000000000
--- a/extensions/security/secman/persistence-jdo/src/test/java/org/apache/causeway/extensions/secman/jdo/permission/dom/ApplicationPermissionRepository_IntegTest.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- *  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 org.apache.causeway.extensions.secman.jdo.permission.dom;
-
-import org.springframework.boot.SpringBootConfiguration;
-import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
-import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.context.annotation.Import;
-import org.springframework.context.annotation.PropertySource;
-import org.springframework.context.annotation.PropertySources;
-import org.springframework.test.context.ActiveProfiles;
-
-import org.apache.causeway.core.config.presets.CausewayPresets;
-import org.apache.causeway.core.runtimeservices.CausewayModuleCoreRuntimeServices;
-import org.apache.causeway.extensions.secman.applib.ApplicationPermissionRepositoryIntegTestAbstract;
-import org.apache.causeway.extensions.secman.applib.mmm.MmmModule;
-import org.apache.causeway.extensions.secman.jdo.CausewayModuleExtSecmanPersistenceJdo;
-import org.apache.causeway.security.bypass.CausewayModuleSecurityBypass;
-
-@SpringBootTest(
-        classes = ApplicationPermissionRepository_IntegTest.AppManifest.class
-)
-@ActiveProfiles("test")
-class ApplicationPermissionRepository_IntegTest extends ApplicationPermissionRepositoryIntegTestAbstract {
-
-    @SpringBootConfiguration
-    @EnableAutoConfiguration
-    @Import({
-            CausewayModuleCoreRuntimeServices.class,
-            CausewayModuleSecurityBypass.class,
-            CausewayModuleExtSecmanPersistenceJdo.class,
-
-            MmmModule.class,
-    })
-    @PropertySources({
-            @PropertySource(CausewayPresets.UseLog4j2Test),
-    })
-    public static class AppManifest {
-    }
-
-}
diff --git a/extensions/security/secman/persistence-jdo/src/test/resources/application-test.yml b/extensions/security/secman/persistence-jdo/src/test/resources/application-test.yml
deleted file mode 100644
index 4f8150ef96a..00000000000
--- a/extensions/security/secman/persistence-jdo/src/test/resources/application-test.yml
+++ /dev/null
@@ -1,45 +0,0 @@
-#  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.
-causeway:
-  extensions:
-    secman:
-      seed:
-        admin:
-          user-name: "sven"
-          password: "pass"
-          role-name: "causeway-ext-secman-admin"
-          namespace-permissions:
-            sticky: "causeway"
-            additional: "mmm"
-        regular-user:
-          role-name: "causeway-ext-secman-user"
-      permissionsEvaluationPolicy: "ALLOW_BEATS_VETO"
-
-
-  persistence:
-    schema:
-      auto-create-schemas: "CAUSEWAYEXTSECMAN"
-
-
-spring:
-  jpa:
-    show-sql: true
-
-
-datanucleus:
-  schema:
-    autoCreateTables: true
diff --git a/extensions/security/secman/persistence-jpa/pom.xml b/extensions/security/secman/persistence-jpa/pom.xml
index 54647dbbc68..f68f0c4a468 100644
--- a/extensions/security/secman/persistence-jpa/pom.xml
+++ b/extensions/security/secman/persistence-jpa/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.causeway.extensions</groupId>
         <artifactId>causeway-extensions-secman</artifactId>
-        <version>3.4.0-SNAPSHOT</version>
+        <version>${revision}</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
 
@@ -58,13 +58,6 @@
 		<dependency>
 			<groupId>org.apache.causeway.testing</groupId>
 			<artifactId>causeway-testing-fixtures-applib</artifactId>
-			<exclusions>
-				<!-- exclusion not strictly required, but helps keep JPA and JDO implementations separated -->
-				<exclusion>
-					<groupId>org.apache.causeway.persistence</groupId>
-					<artifactId>causeway-persistence-jdo-applib</artifactId>
-				</exclusion>
-			</exclusions>
 		</dependency>
 
 		<dependency>
diff --git a/extensions/security/secman/pom.xml b/extensions/security/secman/pom.xml
index ff9292927b7..25f9cdb0ecc 100644
--- a/extensions/security/secman/pom.xml
+++ b/extensions/security/secman/pom.xml
@@ -25,7 +25,7 @@
     <parent>
         <groupId>org.apache.causeway.extensions</groupId>
         <artifactId>causeway-extensions</artifactId>
-        <version>3.4.0-SNAPSHOT</version>
+        <version>${revision}</version>
         <relativePath>../../pom.xml</relativePath>
     </parent>
 
@@ -45,55 +45,45 @@
             <dependency>
                 <groupId>org.apache.causeway.extensions</groupId>
                 <artifactId>causeway-extensions-secman-applib</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
             </dependency>
             <dependency>
                 <groupId>org.apache.causeway.extensions</groupId>
                 <artifactId>causeway-extensions-secman-applib</artifactId>
                 <scope>test</scope>
                 <type>test-jar</type>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
             </dependency>
             <dependency>
                 <groupId>org.apache.causeway.extensions</groupId>
                 <artifactId>causeway-extensions-secman-integration</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
             </dependency>
             <dependency>
                 <groupId>org.apache.causeway.extensions</groupId>
                 <artifactId>causeway-extensions-secman-encryption-jbcrypt</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
             </dependency>
             <dependency>
                 <groupId>org.apache.causeway.extensions</groupId>
                 <artifactId>causeway-extensions-secman-encryption-spring</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.causeway.extensions</groupId>
-                <artifactId>causeway-extensions-secman-persistence-jdo</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
             </dependency>
             <dependency>
                 <groupId>org.apache.causeway.extensions</groupId>
                 <artifactId>causeway-extensions-secman-persistence-jpa</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.causeway.extensions</groupId>
-                <artifactId>causeway-extensions-secman-delegated-shiro</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
             </dependency>
             <dependency>
                 <groupId>org.apache.causeway.extensions</groupId>
                 <artifactId>causeway-extensions-secman-delegated-springoauth2</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
             </dependency>
 
             <dependency>
                 <groupId>org.apache.causeway.testing</groupId>
                 <artifactId>causeway-testing-integtestsupport</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>pom</type>
                 <scope>import</scope>
             </dependency>
@@ -115,26 +105,6 @@
 
     </dependencies>
 
-    <profiles>
-        <profile>
-            <id>module-jdo</id>
-            <activation>
-                <property>
-                    <name>!skip-module-jdo</name>
-                </property>
-            </activation>
-            <modules>
-                <module>applib</module>
-                <module>integration</module>
-                <module>encryption-jbcrypt</module>
-                <module>encryption-spring</module>
-                <module>persistence-jdo</module>
-                <module>persistence-jpa</module>
-                <module>delegated-springoauth2</module>
-            </modules>
-        </profile>
-    </profiles>
-
     <modules>
         <module>applib</module>
         <module>integration</module>
diff --git a/extensions/security/sessionlog/applib/pom.xml b/extensions/security/sessionlog/applib/pom.xml
index 7551581a003..6e27948ef20 100644
--- a/extensions/security/sessionlog/applib/pom.xml
+++ b/extensions/security/sessionlog/applib/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.causeway.extensions</groupId>
         <artifactId>causeway-extensions-sessionlog</artifactId>
-        <version>3.4.0-SNAPSHOT</version>
+        <version>${revision}</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
 
diff --git a/extensions/security/sessionlog/persistence-jdo/log4j2-test.xml b/extensions/security/sessionlog/persistence-jdo/log4j2-test.xml
deleted file mode 100644
index 0ed7986e245..00000000000
--- a/extensions/security/sessionlog/persistence-jdo/log4j2-test.xml
+++ /dev/null
@@ -1,78 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-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.
--->
-<Configuration status="WARN">
-	<Properties>
-		<Property name="PID">????</Property>
-		<Property name="LOG_EXCEPTION_CONVERSION_WORD">%xwEx</Property>
-		<Property name="LOG_LEVEL_PATTERN">%5p</Property>
-		<Property name="LOG_DATEFORMAT_PATTERN">yyyy-MM-dd HH:mm:ss.SSS</Property>
-		<Property name="CONSOLE_LOG_PATTERN">%clr{%d{${LOG_DATEFORMAT_PATTERN}}}{faint} %clr{${LOG_LEVEL_PATTERN}} %clr{${sys:PID}}{magenta} %clr{---}{faint} %clr{[%15.15t]}{faint} %clr{%-40.40c{1.}}{cyan} %clr{:}{faint} %m%n${sys:LOG_EXCEPTION_CONVERSION_WORD}</Property>
-		<Property name="FILE_LOG_PATTERN">%d{${LOG_DATEFORMAT_PATTERN}} ${LOG_LEVEL_PATTERN} ${sys:PID} --- [%t] %-40.40c{1.} : %m%n${sys:LOG_EXCEPTION_CONVERSION_WORD}</Property>
-	</Properties>
-	<Appenders>
-		<Console name="Console" target="SYSTEM_OUT" follow="true">
-			<PatternLayout pattern="${sys:CONSOLE_LOG_PATTERN}" />
-		</Console>
-	</Appenders>
-	<Loggers>
-		<Logger name="org.apache.catalina.startup.DigesterFactory" level="error" />
-		<Logger name="org.apache.catalina.util.LifecycleBase" level="error" />
-		<Logger name="org.apache.coyote.http11.Http11NioProtocol" level="warn" />
-		<logger name="org.apache.sshd.common.util.SecurityUtils" level="warn"/>
-		<Logger name="org.apache.tomcat.util.net.NioSelectorPool" level="warn" />
-		<Logger name="org.eclipse.jetty.util.component.AbstractLifeCycle" level="error" />
-		<Logger name="org.hibernate.validator.internal.util.Version" level="warn" />
-		<logger name="org.springframework.boot.actuate.endpoint.jmx" level="warn"/>
-		
-		<logger name="org.apache.directory" level="warn"/>
-		<logger name="org.apache.directory.api.ldap.model.entry.Value" level="off"/>
-		
-		<logger name="DataNucleus.Persistence" level="info"/>
-		<logger name="DataNucleus.Transaction" level="info"/>
-		<logger name="DataNucleus.Datastore.Schema" level="info"/>
-		<logger name="DataNucleus.Datastore.Native" level="info"/>
-		
-		<Root level="info">
-			<AppenderRef ref="Console" />
-		</Root>
-	</Loggers>
-</Configuration>
-
-<!-- # DataNucleus Logging Categories -->
-<!-- DataNucleus.Persistence - All messages relating to the persistence process -->
-<!-- DataNucleus.Transaction - All messages relating to transactions -->
-<!-- DataNucleus.Connection - All messages relating to Connections. -->
-<!-- DataNucleus.Query - All messages relating to queries -->
-<!-- DataNucleus.Cache - All messages relating to the DataNucleus Cache -->
-<!-- DataNucleus.MetaData - All messages relating to MetaData -->
-<!-- DataNucleus.Datastore - All general datastore messages -->
-<!-- DataNucleus.Datastore.Schema - All schema related datastore log messages -->
-<!-- DataNucleus.Datastore.Persist - All datastore persistence messages -->
-<!-- DataNucleus.Datastore.Retrieve - All datastore retrieval messages -->
-<!-- DataNucleus.Datastore.Native - Log of all 'native' statements sent to the datastore -->
-<!-- DataNucleus.General - All general operational messages -->
-<!-- DataNucleus.Lifecycle - All messages relating to object lifecycle changes -->
-<!-- DataNucleus.ValueGeneration - All messages relating to value generation -->
-<!-- DataNucleus.Enhancer - All messages from the DataNucleus Enhancer. -->
-<!-- DataNucleus.SchemaTool - All messages from DataNucleus SchemaTool -->
-<!-- DataNucleus.JDO - All messages general to JDO -->
-<!-- DataNucleus.JPA - All messages general to JPA -->
-<!-- DataNucleus.JCA - All messages relating to Connector JCA. -->
-<!-- DataNucleus.IDE - Messages from the DataNucleus IDE. -->
\ No newline at end of file
diff --git a/extensions/security/sessionlog/persistence-jdo/logging-dn-enhance.properties b/extensions/security/sessionlog/persistence-jdo/logging-dn-enhance.properties
deleted file mode 100644
index ca165acc786..00000000000
--- a/extensions/security/sessionlog/persistence-jdo/logging-dn-enhance.properties
+++ /dev/null
@@ -1,41 +0,0 @@
-#  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.
-
-# LOG4J Configuration
-# ===================
-
-# Basic logging goes to "datanucleus.log"
-log4j.appender.A1=org.apache.log4j.FileAppender
-log4j.appender.A1.File=datanucleus.log
-log4j.appender.A1.layout=org.apache.log4j.PatternLayout
-log4j.appender.A1.layout.ConversionPattern=%d{HH:mm:ss,SSS} (%t) %-5p [%c] - %m%n
-#log4j.appender.A1.Threshold=INFO
-
-# Categories
-# Each category can be set to a "level", and to direct to an appender
-
-# Default to DEBUG level for all DataNucleus categories
-log4j.logger.DataNucleus = DEBUG, A1
-
-log4j.category.com.mchange.v2.c3p0=INFO, A1
-log4j.category.com.mchange.v2.resourcepool=INFO, A1
-log4j.category.org.logicalcobwebs.proxool=INFO,A1
-
-
-# Hbase libs logging
-log4j.category.org.apache.hadoop=INFO,A1
-log4j.category.org.apache.zookeeper=INFO,A1
\ No newline at end of file
diff --git a/extensions/security/sessionlog/persistence-jdo/pom.xml b/extensions/security/sessionlog/persistence-jdo/pom.xml
deleted file mode 100644
index 0cc35aec646..00000000000
--- a/extensions/security/sessionlog/persistence-jdo/pom.xml
+++ /dev/null
@@ -1,76 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  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.
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-
-    <parent>
-        <groupId>org.apache.causeway.extensions</groupId>
-        <artifactId>causeway-extensions-sessionlog</artifactId>
-        <version>3.4.0-SNAPSHOT</version>
-        <relativePath>../pom.xml</relativePath>
-    </parent>
-
-    <artifactId>causeway-extensions-sessionlog-persistence-jdo</artifactId>
-    <name>Apache Causeway Ext - Session Log Persistence (using JDO)</name>
-
-    <properties>
-        <jar-plugin.automaticModuleName>org.apache.causeway.extensions.sessionlog.persistence.jdo</jar-plugin.automaticModuleName>
-        <git-plugin.propertiesDir>org/apache/causeway/extensions/sessionlog/persistence-jdo</git-plugin.propertiesDir>
-    </properties>
-
-    <dependencies>
-
-        <dependency>
-            <groupId>org.apache.causeway.extensions</groupId>
-            <artifactId>causeway-extensions-sessionlog-applib</artifactId>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.causeway.persistence</groupId>
-            <artifactId>causeway-persistence-jdo-datanucleus</artifactId>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.causeway.testing</groupId>
-            <artifactId>causeway-testing-fixtures-applib</artifactId>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.causeway.core</groupId>
-            <artifactId>causeway-core-runtime</artifactId>
-            <scope>provided</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.causeway.extensions</groupId>
-            <artifactId>causeway-extensions-sessionlog-applib</artifactId>
-            <scope>test</scope>
-            <type>test-jar</type>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.causeway.testing</groupId>
-            <artifactId>causeway-testing-integtestsupport-applib</artifactId>
-            <scope>test</scope>
-        </dependency>
-
-    </dependencies>
-
-</project>
diff --git a/extensions/security/sessionlog/persistence-jdo/src/main/java/org/apache/causeway/extensions/sessionlog/jdo/CausewayModuleExtSessionLogPersistenceJdo.java b/extensions/security/sessionlog/persistence-jdo/src/main/java/org/apache/causeway/extensions/sessionlog/jdo/CausewayModuleExtSessionLogPersistenceJdo.java
deleted file mode 100644
index 1032072c472..00000000000
--- a/extensions/security/sessionlog/persistence-jdo/src/main/java/org/apache/causeway/extensions/sessionlog/jdo/CausewayModuleExtSessionLogPersistenceJdo.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- * 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 org.apache.causeway.extensions.sessionlog.jdo;
-
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Import;
-
-import org.apache.causeway.extensions.sessionlog.applib.CausewayModuleExtSessionLogApplib;
-import org.apache.causeway.extensions.sessionlog.jdo.dom.SessionLogEntry;
-import org.apache.causeway.extensions.sessionlog.jdo.dom.SessionLogEntryRepository;
-import org.apache.causeway.persistence.jdo.datanucleus.CausewayModulePersistenceJdoDatanucleus;
-import org.apache.causeway.testing.fixtures.applib.CausewayModuleTestingFixturesApplib;
-import org.apache.causeway.testing.fixtures.applib.fixturescripts.FixtureScript;
-import org.apache.causeway.testing.fixtures.applib.modules.ModuleWithFixtures;
-import org.apache.causeway.testing.fixtures.applib.teardown.jdo.TeardownFixtureJdoAbstract;
-
-@Configuration
-@Import({
-        // modules
-        CausewayModuleTestingFixturesApplib.class,
-        CausewayModuleExtSessionLogApplib.class,
-        CausewayModulePersistenceJdoDatanucleus.class,
-
-        // services
-        SessionLogEntryRepository.class,
-
-        // entities, eager meta-model introspection
-        SessionLogEntry.class,
-})
-public class CausewayModuleExtSessionLogPersistenceJdo {
-
-    /**
-     * Note that this is <i>NOT</i> an implementation of the {@link ModuleWithFixtures#getTeardownFixture()} API;
-     * but is provided to allow manual teardown if required.
-     */
-    public FixtureScript teardownFixture() {
-        return new TeardownFixtureJdoAbstract() {
-            @Override
-            protected void execute(final ExecutionContext executionContext) {
-                deleteFrom(SessionLogEntry.class);
-            }
-        };
-    }
-
-}
diff --git a/extensions/security/sessionlog/persistence-jdo/src/main/java/org/apache/causeway/extensions/sessionlog/jdo/dom/SessionLogEntry.java b/extensions/security/sessionlog/persistence-jdo/src/main/java/org/apache/causeway/extensions/sessionlog/jdo/dom/SessionLogEntry.java
deleted file mode 100644
index 4916523b142..00000000000
--- a/extensions/security/sessionlog/persistence-jdo/src/main/java/org/apache/causeway/extensions/sessionlog/jdo/dom/SessionLogEntry.java
+++ /dev/null
@@ -1,190 +0,0 @@
-/*
- * 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 org.apache.causeway.extensions.sessionlog.jdo.dom;
-
-import java.sql.Timestamp;
-import java.util.UUID;
-
-import javax.jdo.annotations.Column;
-import javax.jdo.annotations.IdentityType;
-import javax.jdo.annotations.PersistenceCapable;
-import javax.jdo.annotations.PrimaryKey;
-import javax.jdo.annotations.Queries;
-import javax.jdo.annotations.Query;
-
-import jakarta.inject.Named;
-
-import org.apache.causeway.applib.annotation.DomainObject;
-import org.apache.causeway.applib.annotation.Editing;
-import org.apache.causeway.applib.services.session.SessionSubscriber;
-import org.apache.causeway.extensions.sessionlog.applib.dom.SessionLogEntry.Nq;
-
-import lombok.Getter;
-import lombok.Setter;
-
-@PersistenceCapable(
-        identityType=IdentityType.APPLICATION,
-        schema = SessionLogEntry.SCHEMA,
-        table = SessionLogEntry.TABLE)
-@Queries( {
-        @Query(
-                name  = Nq.FIND_BY_SESSION_GUID,
-                value = "SELECT "
-                      + "  FROM " + SessionLogEntry.FQCN + " "
-                      + " WHERE sessionGuid == :sessionGuid"),
-        @Query(
-                name  = Nq.FIND_BY_HTTP_SESSION_ID,
-                value = "SELECT "
-                      + "  FROM " + SessionLogEntry.FQCN + " "
-                      + " WHERE httpSessionId == :httpSessionId"),
-        @Query(
-                name  = Nq.FIND_BY_USERNAME_AND_TIMESTAMP_BETWEEN,
-                value = "SELECT "
-                      + "  FROM " + SessionLogEntry.FQCN + " "
-                      + "WHERE username == :username "
-                      + "&& loginTimestamp >= :from "
-                      + "&& logoutTimestamp <= :to "
-                      + "ORDER BY loginTimestamp DESC"),
-        @Query(
-                name  = Nq.FIND_BY_USERNAME_AND_TIMESTAMP_AFTER,
-                value = "SELECT "
-                      + "  FROM " + SessionLogEntry.FQCN + " "
-                      + " WHERE username == :username "
-                      + "    && loginTimestamp >= :from "
-                      + " ORDER BY loginTimestamp DESC"),
-        @Query(
-                name  = Nq.FIND_BY_USERNAME_AND_TIMESTAMP_BEFORE,
-                value = "SELECT "
-                      + "  FROM " + SessionLogEntry.FQCN + " "
-                      + " WHERE username == :username "
-                      + "    && loginTimestamp <= :from "
-                      + " ORDER BY loginTimestamp DESC"),
-        @Query(
-                name  = Nq.FIND_BY_USERNAME,
-                value = "SELECT "
-                      + "  FROM " + SessionLogEntry.FQCN + " "
-                      + " WHERE username == :username "
-                      + " ORDER BY loginTimestamp DESC"),
-        @Query(
-                name  = Nq.FIND_BY_TIMESTAMP_BETWEEN,
-                value = "SELECT "
-                      + "  FROM " + SessionLogEntry.FQCN + " "
-                      + " WHERE loginTimestamp >= :from "
-                      + "    && logoutTimestamp <= :to "
-                      + " ORDER BY loginTimestamp DESC"),
-        @Query(
-                name  = Nq.FIND_BY_TIMESTAMP_AFTER,
-                value = "SELECT "
-                      + "  FROM " + SessionLogEntry.FQCN + " "
-                      + " WHERE loginTimestamp >= :from "
-                      + " ORDER BY loginTimestamp DESC"),
-        @Query(
-                name  = Nq.FIND_BY_TIMESTAMP_BEFORE,
-                value = "SELECT "
-                      + "  FROM " + SessionLogEntry.FQCN + " "
-                      + " WHERE loginTimestamp <= :to "
-                      + " ORDER BY loginTimestamp DESC"),
-        @Query(
-                name  = Nq.FIND,
-                value = "SELECT "
-                      + "  FROM " + SessionLogEntry.FQCN + " "
-                      + " ORDER BY loginTimestamp DESC"),
-        @Query(
-                name  = Nq.FIND_BY_USERNAME_AND_TIMESTAMP_STRICTLY_BEFORE,
-                value = "SELECT "
-                      + "  FROM " + SessionLogEntry.FQCN + " "
-                      + " WHERE username == :username "
-                      + "    && loginTimestamp < :from "
-                      + " ORDER BY loginTimestamp DESC"),
-        @Query(
-                name  = Nq.FIND_BY_USERNAME_AND_TIMESTAMP_STRICTLY_AFTER,
-                value = "SELECT "
-                      + "  FROM " + SessionLogEntry.FQCN + " "
-                      + " WHERE username == :username "
-                      + "    && loginTimestamp > :from "
-                      + " ORDER BY loginTimestamp ASC"),
-        @Query(
-                name  = Nq.FIND_ACTIVE_SESSIONS,
-                value = "SELECT "
-                      + "  FROM " + SessionLogEntry.FQCN + " "
-                      + " WHERE logoutTimestamp == null "
-                      + " ORDER BY loginTimestamp ASC"),
-        @Query(
-                name  = Nq.FIND_RECENT_BY_USERNAME,
-                value = "SELECT "
-                      + "  FROM " + SessionLogEntry.FQCN + " "
-                      + " WHERE username == :username "
-                      + " ORDER BY loginTimestamp DESC "
-                      + " RANGE 0,10")
-})
-@Named(SessionLogEntry.LOGICAL_TYPE_NAME)
-@DomainObject(
-        editing = Editing.DISABLED
-)
-public class SessionLogEntry extends org.apache.causeway.extensions.sessionlog.applib.dom.SessionLogEntry {
-
-    public static final String FQCN = "org.apache.causeway.extensions.sessionlog.jdo.dom.SessionLogEntry";
-
-    public SessionLogEntry(
-            final UUID sessionGuid,
-            final String httpSessionId,
-            final String username,
-            final SessionSubscriber.CausedBy causedBy,
-            final Timestamp loginTimestamp) {
-        super(sessionGuid, httpSessionId, username, causedBy, loginTimestamp);
-    }
-
-    public SessionLogEntry() {
-        super(null, null, null, null, null);
-    }
-
-    @PrimaryKey
-    @Column(allowsNull = SessionGuid.ALLOWS_NULL, length = SessionGuid.MAX_LENGTH)
-    @SessionGuid
-    @Getter @Setter
-    private UUID sessionGuid;
-
-    @Column(allowsNull = HttpSessionId.ALLOWS_NULL, length = HttpSessionId.MAX_LENGTH)
-    @HttpSessionId
-    @Getter @Setter
-    private String httpSessionId;
-
-    @Column(allowsNull = Username.ALLOWS_NULL, length = Username.MAX_LENGTH)
-    @Username
-    @Getter @Setter
-    private String username;
-
-    @Column(allowsNull = LoginTimestamp.ALLOWS_NULL)
-    @LoginTimestamp
-    @Getter @Setter
-    private Timestamp loginTimestamp;
-
-    @Column(allowsNull = LogoutTimestamp.ALLOWS_NULL)
-    @LogoutTimestamp
-    @Getter @Setter
-    private Timestamp logoutTimestamp;
-
-    @Column(allowsNull = CausedBy.ALLOWS_NULL)
-    @CausedBy
-    @Getter @Setter
-    private SessionSubscriber.CausedBy causedBy;
-
-}
diff --git a/extensions/security/sessionlog/persistence-jdo/src/main/java/org/apache/causeway/extensions/sessionlog/jdo/dom/SessionLogEntryRepository.java b/extensions/security/sessionlog/persistence-jdo/src/main/java/org/apache/causeway/extensions/sessionlog/jdo/dom/SessionLogEntryRepository.java
deleted file mode 100644
index c6aec5f446e..00000000000
--- a/extensions/security/sessionlog/persistence-jdo/src/main/java/org/apache/causeway/extensions/sessionlog/jdo/dom/SessionLogEntryRepository.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * 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 org.apache.causeway.extensions.sessionlog.jdo.dom;
-
-import org.springframework.stereotype.Service;
-
-import org.apache.causeway.extensions.sessionlog.applib.dom.SessionLogEntryRepositoryAbstract;
-
-@Service
-public class SessionLogEntryRepository extends SessionLogEntryRepositoryAbstract<SessionLogEntry> {
-
-    public SessionLogEntryRepository() {
-        super(SessionLogEntry.class);
-    }
-}
diff --git a/extensions/security/sessionlog/persistence-jdo/src/test/java/org/apache/causeway/extensions/sessionlog/jdo/integtests/SessionLog_IntegTest.java b/extensions/security/sessionlog/persistence-jdo/src/test/java/org/apache/causeway/extensions/sessionlog/jdo/integtests/SessionLog_IntegTest.java
deleted file mode 100644
index 08877a32a74..00000000000
--- a/extensions/security/sessionlog/persistence-jdo/src/test/java/org/apache/causeway/extensions/sessionlog/jdo/integtests/SessionLog_IntegTest.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- *  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 org.apache.causeway.extensions.sessionlog.jdo.integtests;
-
-import org.springframework.boot.SpringBootConfiguration;
-import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
-import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.context.annotation.Import;
-import org.springframework.context.annotation.PropertySource;
-import org.springframework.context.annotation.PropertySources;
-import org.springframework.test.context.ActiveProfiles;
-
-import org.apache.causeway.core.config.presets.CausewayPresets;
-import org.apache.causeway.core.runtimeservices.CausewayModuleCoreRuntimeServices;
-import org.apache.causeway.extensions.sessionlog.applib.integtests.SessionLogIntegTestAbstract;
-import org.apache.causeway.extensions.sessionlog.jdo.CausewayModuleExtSessionLogPersistenceJdo;
-import org.apache.causeway.security.bypass.CausewayModuleSecurityBypass;
-
-@SpringBootTest(
-        classes = SessionLog_IntegTest.AppManifest.class
-)
-@ActiveProfiles("test")
-public class SessionLog_IntegTest extends SessionLogIntegTestAbstract {
-
-    @SpringBootConfiguration
-    @EnableAutoConfiguration
-    @Import({
-            CausewayModuleCoreRuntimeServices.class,
-            CausewayModuleSecurityBypass.class,
-            CausewayModuleExtSessionLogPersistenceJdo.class,
-    })
-    @PropertySources({
-            @PropertySource(CausewayPresets.UseLog4j2Test),
-    })
-    public static class AppManifest {
-    }
-
-}
diff --git a/extensions/security/sessionlog/persistence-jdo/src/test/resources/application-test.yml b/extensions/security/sessionlog/persistence-jdo/src/test/resources/application-test.yml
deleted file mode 100644
index 6147d87615f..00000000000
--- a/extensions/security/sessionlog/persistence-jdo/src/test/resources/application-test.yml
+++ /dev/null
@@ -1,26 +0,0 @@
-#  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.
-causeway:
-  persistence:
-    schema:
-      auto-create-schemas: "CAUSEWAYEXTSESSIONLOG"
-
-
-datanucleus:
-  schema:
-    generate-database:
-      mode: "create"
diff --git a/extensions/security/sessionlog/persistence-jpa/pom.xml b/extensions/security/sessionlog/persistence-jpa/pom.xml
index 3de0a887595..a0ec71b51c8 100644
--- a/extensions/security/sessionlog/persistence-jpa/pom.xml
+++ b/extensions/security/sessionlog/persistence-jpa/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.causeway.extensions</groupId>
         <artifactId>causeway-extensions-sessionlog</artifactId>
-        <version>3.4.0-SNAPSHOT</version>
+        <version>${revision}</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
 
@@ -50,12 +50,6 @@
         <dependency>
             <groupId>org.apache.causeway.testing</groupId>
             <artifactId>causeway-testing-fixtures-applib</artifactId>
-            <exclusions>
-                <exclusion>
-                    <groupId>org.apache.causeway.persistence</groupId>
-                    <artifactId>causeway-persistence-jdo-applib</artifactId>
-                </exclusion>
-            </exclusions>
         </dependency>
 
         <dependency>
diff --git a/extensions/security/sessionlog/pom.xml b/extensions/security/sessionlog/pom.xml
index cbfb5f95cd6..09cc382dbf4 100644
--- a/extensions/security/sessionlog/pom.xml
+++ b/extensions/security/sessionlog/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.causeway.extensions</groupId>
         <artifactId>causeway-extensions</artifactId>
-        <version>3.4.0-SNAPSHOT</version>
+        <version>${revision}</version>
         <relativePath>../../pom.xml</relativePath>
     </parent>
 
@@ -43,30 +43,25 @@
             <dependency>
                 <groupId>org.apache.causeway.extensions</groupId>
                 <artifactId>causeway-extensions-sessionlog-applib</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
             </dependency>
             <dependency>
                 <groupId>org.apache.causeway.extensions</groupId>
                 <artifactId>causeway-extensions-sessionlog-applib</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <scope>test</scope>
                 <type>test-jar</type>
             </dependency>
             <dependency>
                 <groupId>org.apache.causeway.extensions</groupId>
                 <artifactId>causeway-extensions-sessionlog-persistence-jpa</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.causeway.extensions</groupId>
-                <artifactId>causeway-extensions-sessionlog-persistence-jdo</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
             </dependency>
 
             <dependency>
                 <groupId>org.apache.causeway.testing</groupId>
                 <artifactId>causeway-testing-integtestsupport</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>pom</type>
                 <scope>import</scope>
             </dependency>
@@ -82,22 +77,6 @@
 		</dependency>
 
     </dependencies>
-    
-    <profiles>
-        <profile>
-            <id>module-jdo</id>
-            <activation>
-                <property>
-                    <name>!skip-module-jdo</name>
-                </property>
-            </activation>
-            <modules>
-                <module>applib</module>
-                <module>persistence-jdo</module>
-                <module>persistence-jpa</module>
-            </modules>
-        </profile>
-    </profiles>
 
     <modules>
     	<module>applib</module>
diff --git a/extensions/security/spring-oauth2/pom.xml b/extensions/security/spring-oauth2/pom.xml
index 613d3a351b2..a84833dcb13 100644
--- a/extensions/security/spring-oauth2/pom.xml
+++ b/extensions/security/spring-oauth2/pom.xml
@@ -25,7 +25,7 @@
 	<parent>
 		<groupId>org.apache.causeway.extensions</groupId>
 		<artifactId>causeway-extensions</artifactId>
-		<version>3.4.0-SNAPSHOT</version>
+		<version>${revision}</version>
 		<relativePath>../../pom.xml</relativePath>
 	</parent>
 
diff --git a/extensions/vro/cors/impl/pom.xml b/extensions/vro/cors/impl/pom.xml
index 57c7081b7bb..7145113935d 100644
--- a/extensions/vro/cors/impl/pom.xml
+++ b/extensions/vro/cors/impl/pom.xml
@@ -17,7 +17,7 @@
 	<parent>
 		<groupId>org.apache.causeway.extensions</groupId>
 		<artifactId>causeway-extensions-cors</artifactId>
-		<version>3.4.0-SNAPSHOT</version>
+		<version>${revision}</version>
 	</parent>
 
 	<artifactId>causeway-extensions-cors-impl</artifactId>
diff --git a/extensions/vro/cors/pom.xml b/extensions/vro/cors/pom.xml
index 4e26361d9f5..6f31a344452 100644
--- a/extensions/vro/cors/pom.xml
+++ b/extensions/vro/cors/pom.xml
@@ -25,7 +25,7 @@
 	<parent>
 		<groupId>org.apache.causeway.extensions</groupId>
 		<artifactId>causeway-extensions</artifactId>
-		<version>3.4.0-SNAPSHOT</version>
+		<version>${revision}</version>
 		<relativePath>../../pom.xml</relativePath>
 	</parent>
 
diff --git a/extensions/vw/fullcalendar/applib/pom.xml b/extensions/vw/fullcalendar/applib/pom.xml
index c59eccfddb6..6388922da8a 100644
--- a/extensions/vw/fullcalendar/applib/pom.xml
+++ b/extensions/vw/fullcalendar/applib/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.causeway.extensions</groupId>
         <artifactId>causeway-extensions-fullcalendar</artifactId>
-        <version>3.4.0-SNAPSHOT</version>
+        <version>${revision}</version>
     </parent>
 
     <artifactId>causeway-extensions-fullcalendar-applib</artifactId>
diff --git a/extensions/vw/fullcalendar/pom.xml b/extensions/vw/fullcalendar/pom.xml
index 7ddbf59228b..4db5b103cef 100644
--- a/extensions/vw/fullcalendar/pom.xml
+++ b/extensions/vw/fullcalendar/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.causeway.extensions</groupId>
         <artifactId>causeway-extensions</artifactId>
-        <version>3.4.0-SNAPSHOT</version>
+        <version>${revision}</version>
         <relativePath>../../pom.xml</relativePath>
     </parent>
 
@@ -40,23 +40,23 @@
             <dependency>
                 <groupId>org.apache.causeway.extensions</groupId>
                 <artifactId>causeway-extensions-fullcalendar-applib</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
             </dependency>
             <dependency>
                 <groupId>org.apache.causeway.extensions</groupId>
                 <artifactId>causeway-extensions-fullcalendar-wicket</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
                 <type>pom</type>
             </dependency>
             <dependency>
                 <groupId>org.apache.causeway.extensions</groupId>
                 <artifactId>causeway-extensions-fullcalendar-wicket-integration</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
             </dependency>
             <dependency>
                 <groupId>org.apache.causeway.extensions</groupId>
                 <artifactId>causeway-extensions-fullcalendar-wicket-ui</artifactId>
-                <version>3.4.0-SNAPSHOT</version>
+                <version>${project.version}</version>
             </dependency>
         </dependencies>
     </dependencyManagement>
diff --git a/extensions/vw/fullcalendar/wicket/integration/pom.xml b/extensions/vw/fullcalendar/wicket/integration/pom.xml
index 6d2fdd859f3..49e54a1bb63 100644
--- a/extensions/vw/fullcalendar/wicket/integration/pom.xml
+++ b/extensions/vw/fullcalendar/wicket/integration/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.causeway.extensions</groupId>
         <artifactId>causeway-extensions-fullcalendar-wicket</artifactId>
-        <version>3.4.0-SNAPSHOT</version>
+        <version>${revision}</version>
     </parent>
 
 	<artifactId>causeway-extensions-fullcalendar-wicket-integration</artifactId>
diff --git a/extensions/vw/fullcalendar/wicket/pom.xml b/extensions/vw/fullcalendar/wicket/pom.xml
index 4a6030a7799..d575736814b 100644
--- a/extensions/vw/fullcalendar/wicket/pom.xml
+++ b/extensions/vw/fullcalendar/wicket/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.causeway.extensions</groupId>
         <artifactId>causeway-extensions-fullcalendar</artifactId>
-        <version>3.4.0-SNAPSHOT</version>
... 78512 lines suppressed ...