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 89b3c04e4b3424a39ecbb5efff35b00645f91fa0
Author: Andi Huber <[email protected]>
AuthorDate: Wed May 28 15:38:34 2025 +0200

    CAUSEWAY-3892: introduces a parent POM to gather build config
    
    - moving all build specifics from BOM to parent
---
 bom/pom.xml             | 1121 +---------------------------------------------
 core/pom.xml            |   19 +-
 parent/pom.xml          | 1136 +++++++++++++++++++++++++++++++++++++++++++++++
 pom.xml                 |    1 +
 regressiontests/pom.xml |    4 +-
 5 files changed, 1145 insertions(+), 1136 deletions(-)

diff --git a/bom/pom.xml b/bom/pom.xml
index d399750d3f1..029f2fdba3d 100644
--- a/bom/pom.xml
+++ b/bom/pom.xml
@@ -51,42 +51,12 @@ identified
     <name>Apache Causeway</name>
     <description>
         Apache Causeway Bill of Material (BOM).
-        Also the parent POM for the core framework and extensions.
+        All the build configuration goes into the parent POM,
+        which inherits from this BOM and is the parent for the core framework 
and extensions.
     </description>
 
     <properties>
-        <revision>4.0.0-SNAPSHOT</revision> <!-- can be overidden like mvn
-        -Drevision=2.7.8 -->
-
-        <!-- BUILD SPECIFICA -->
-
-        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-        
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
-        
<sourceReleaseAssemblyDescriptor>source-release</sourceReleaseAssemblyDescriptor>
-        <gpg.useagent>true</gpg.useagent>
-        <minimalMavenBuildVersion>3.9.9</minimalMavenBuildVersion> <!-- latest
-        from github actions/setup-java@v3 -->
-        <minimalJavaBuildVersion>17</minimalJavaBuildVersion>
-        <maven.compiler.release>17</maven.compiler.release>
-
-        <!--  for m-plugin-p and maven-plugin-annotations  -->
-        <assembly.tarLongFileMode>posix</assembly.tarLongFileMode>
-        <causeway.skipTests>false</causeway.skipTests>
-        <maven.test.skip>${causeway.skipTests}</maven.test.skip>
-
-        
<project.build.outputTimestamp>2025-04-04T07:43:19Z</project.build.outputTimestamp>
-
-        <delombok.output>${project.build.directory}/delombok</delombok.output>
-
-        <!-- PLUGINS -->
-
-        <maven-compiler-plugin.version>3.14.0</maven-compiler-plugin.version>
-        <maven-release-plugin.version>3.1.1</maven-release-plugin.version>
-        <maven-source-plugin.version>3.3.1</maven-source-plugin.version>
-        <maven-surefire-plugin.version>3.5.3</maven-surefire-plugin.version>
-        
<maven-surefire-report-plugin.version>3.5.3</maven-surefire-report-plugin.version>
-        <!--  for surefire, failsafe and surefire-report  -->
-        <maven.plugin.tools.version>3.15.1</maven.plugin.tools.version>
+        <revision>4.0.0-SNAPSHOT</revision> <!-- can be overidden like mvn 
-Drevision=2.7.8 -->
 
         <!-- LIBRARY DEPENDENCIES -->
 
@@ -2021,6 +1991,7 @@ identified
 
         </dependencies>
     </dependencyManagement>
+    
     <repositories>
         <repository>
             <id>central</id>
@@ -2069,1090 +2040,6 @@ identified
             <url>${distMgmtSnapshotsUrl}</url>
         </snapshotRepository>
     </distributionManagement>
-    <build>
-        <pluginManagement>
-            <plugins>
-                <!--  set versions of common plugins for reproducibility, 
ordered
-                alphabetically  -->
-                <plugin>
-                    <groupId>org.apache.maven.plugins</groupId>
-                    <artifactId>maven-antrun-plugin</artifactId>
-                    <version>3.1.0</version>
-                </plugin>
-                <plugin>
-                    <groupId>org.apache.maven.plugins</groupId>
-                    <artifactId>maven-assembly-plugin</artifactId>
-                    <version>3.7.1</version>    <!--bumped-->
-                </plugin>
-                <plugin>
-                    <groupId>org.apache.maven.plugins</groupId>
-                    <artifactId>maven-clean-plugin</artifactId>
-                    <version>3.4.1</version>
-                </plugin>
-                <plugin>
-                    <groupId>org.apache.maven.plugins</groupId>
-                    <artifactId>maven-compiler-plugin</artifactId>
-                    <version>${maven-compiler-plugin.version}</version>
-                    <configuration>
-                        <showDeprecation>true</showDeprecation>
-                        <showWarnings>true</showWarnings>
-                        <parameters>true</parameters>
-                        <!-- Java compliance level, to be overridden with 
option
-                        maven.compiler.release -->
-                    </configuration>
-                    <!-- goal:compile binds to phase:compile -->
-                    <!-- goal:testCompile binds to phase:test-compile -->
-                </plugin>
-                <plugin>
-                    <groupId>org.jvnet.jaxb2.maven2</groupId>
-                    <artifactId>maven-jaxb2-plugin</artifactId>
-                    <version>0.15.3</version>
-                    <configuration>
-                        <removeOldOutput>true</removeOldOutput>
-                        <episode>true</episode>
-                    </configuration>
-                </plugin>
-                <plugin>
-                    <groupId>org.apache.maven.plugins</groupId>
-                    <artifactId>maven-dependency-plugin</artifactId>
-                    <version>3.8.1</version>
-                </plugin>
-                <plugin>
-                    <groupId>org.apache.maven.plugins</groupId>
-                    <artifactId>maven-deploy-plugin</artifactId>
-                    <version>3.1.4</version>    <!--bumped-->
-                </plugin>
-                <plugin>
-                    <groupId>org.apache.maven.plugins</groupId>
-                    <artifactId>maven-ear-plugin</artifactId>
-                    <version>3.3.0</version>
-                </plugin>
-                <plugin>
-                    <groupId>org.apache.maven.plugins</groupId>
-                    <artifactId>maven-enforcer-plugin</artifactId>
-                    <version>3.5.0</version>
-                </plugin>
-                <plugin>
-                    <groupId>org.apache.maven.plugins</groupId>
-                    <artifactId>maven-gpg-plugin</artifactId>
-                    <version>3.2.7</version>
-                    <configuration>
-                        <gpgArguments>
-                            <arg>--digest-algo=SHA512</arg>
-                        </gpgArguments>
-                    </configuration>
-                </plugin>
-                <plugin>
-                    <groupId>org.apache.maven.plugins</groupId>
-                    <artifactId>maven-help-plugin</artifactId>
-                    <version>3.5.1</version>    <!--bumped-->
-                </plugin>
-                <plugin>
-                    <groupId>org.apache.maven.plugins</groupId>
-                    <artifactId>maven-install-plugin</artifactId>
-                    <version>3.1.4</version>    <!--bumped-->
-                </plugin>
-                <plugin>
-                    <groupId>org.apache.maven.plugins</groupId>
-                    <artifactId>maven-invoker-plugin</artifactId>
-                    <version>3.9.0</version>
-                </plugin>
-                <plugin>
-                    <groupId>org.apache.maven.plugins</groupId>
-                    <artifactId>maven-jar-plugin</artifactId>
-                    <version>3.4.2</version>
-                    <configuration>
-                        <skipIfEmpty>true</skipIfEmpty>
-                        <archive>
-                            <manifest>
-                                
<addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
-                                
<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
-                            </manifest>
-                            <manifestEntries>
-                                <Automatic-Module-Name>
-                                    
${jar-plugin.automaticModuleName}</Automatic-Module-Name>
-                                
<Implementation-Vendor-Id>org.apache.causeway</Implementation-Vendor-Id>
-                                <Implementation-Vendor>Apache Causeway™ 
Project</Implementation-Vendor>
-                                <Bundle-SymbolicName>
-                                    
${jar-plugin.automaticModuleName}</Bundle-SymbolicName>
-                                
<SCM-Revision>${git.commit.id.abbrev}</SCM-Revision>
-                                <!-- required for DN plugin.xml loading -->
-                                <Bundle-SymbolicName>
-                                    
${jar-plugin.automaticModuleName}</Bundle-SymbolicName>
-                                <!-- no requirement as of yet.
-                                
<Bundle-ManifestVersion>2</Bundle-ManifestVersion>
-                                                                       
<Bundle-Name>${jar-plugin.automaticModuleName}</Bundle-Name>
-                                <Bundle-Version>3.4.0-SNAPSHOT</Bundle-Version>
-                                                                       
<Bundle-Vendor>Apache Causeway™ Project</Bundle-Vendor> -->
-                            </manifestEntries>
-                        </archive>
-                    </configuration>
-                </plugin>
-                <plugin>
-                    <groupId>org.apache.maven.plugins</groupId>
-                    <artifactId>maven-javadoc-plugin</artifactId>
-                    <version>3.11.2</version>
-                    <configuration>
-                        <notimestamp>true</notimestamp>
-                        <!--  avoid noise for svn/gitpubsub  -->
-                    </configuration>
-                </plugin>
-                <plugin>
-                    <groupId>org.apache.maven.plugins</groupId>
-                    <artifactId>maven-plugin-plugin</artifactId>
-                    <version>${maven.plugin.tools.version}</version>
-                </plugin>
-                <plugin>
-                    <groupId>org.apache.maven.plugins</groupId>
-                    <artifactId>maven-project-info-reports-plugin</artifactId>
-                    <version>3.9.0</version>    <!--bumped-->
-                    <configuration>
-                        <pluginManagementExcludes>
-                            
<exclude>org.eclipse.m2e:lifecycle-mapping</exclude>
-                        </pluginManagementExcludes>
-                    </configuration>
-                </plugin>
-                <plugin>
-                    <groupId>org.apache.maven.plugins</groupId>
-                    <artifactId>maven-release-plugin</artifactId>
-                    <version>${maven-release-plugin.version}</version>
-                    <configuration>
-                        <useReleaseProfile>false</useReleaseProfile>
-                        <goals>deploy</goals>
-                        <releaseProfiles>apache-release</releaseProfiles>
-                        <!-- overrides the default ('clean verify') -->
-                        <preparationGoals>clean install</preparationGoals>
-                        <autoVersionSubmodules>true</autoVersionSubmodules>
-                        <localCheckout>true</localCheckout>
-                        <pushChanges>false</pushChanges>
-                        <waitBeforeTagging>1</waitBeforeTagging>
-                        <!-- goal:clean (for aggregator modules) has no
-                        bindings; cleans up
-                                                       release.properties and 
any backup POM files -->
-                        <!-- goal:prepare (for aggregator modules) has no
-                        bindings; prepares
-                                                       for release in SCM 
(modifying x.x-SNAPSHOT to x.x) -->
-                        <!-- goal:update-versions (for aggregator modules) has
-                        no bindings;
-                                                       updates versions eg to 
SNAPSHOT -->
-                        <!-- etc; none of the goals has a binding. -->
-                    </configuration>
-                </plugin>
-                <plugin>
-                    <groupId>org.apache.maven.plugins</groupId>
-                    <artifactId>maven-remote-resources-plugin</artifactId>
-                    <version>3.3.0</version>    <!--bumped-->
-                </plugin>
-                <plugin>
-                    <groupId>org.apache.maven.plugins</groupId>
-                    <artifactId>maven-resources-plugin</artifactId>
-                    <version>3.3.1</version>    <!--bumped-->
-                </plugin>
-                <plugin>
-                    <groupId>org.apache.maven.plugins</groupId>
-                    <artifactId>maven-scm-plugin</artifactId>
-                    <version>2.1.0</version>
-                </plugin>
-                <plugin>
-                    <groupId>org.apache.maven.plugins</groupId>
-                    <artifactId>maven-scm-publish-plugin</artifactId>
-                    <version>3.3.0</version>
-                </plugin>
-                <plugin>
-                    <groupId>org.apache.maven.plugins</groupId>
-                    <artifactId>maven-site-plugin</artifactId>
-                    <version>3.21.0</version>    <!--bumped-->
-                </plugin>
-                <plugin>
-                    <!-- Packaging: source jars of main and test code -->
-                    <groupId>org.apache.maven.plugins</groupId>
-                    <artifactId>maven-source-plugin</artifactId>
-                    <version>${maven-source-plugin.version}</version>
-                    <configuration>
-                        <includePom>true</includePom>
-                    </configuration>
-                    <!-- goal:aggregate (for aggregator modules) binds to
-                    phase:package -->
-                    <!-- goal:jar and goal:test-jar are meant to bind to
-                    phase:package,
-                                               but doesn't seem to so bound 
explicitly -->
-                    <!-- failing since maven-source-plugin 3.3.0 (as duplicated
-                    runs
-                                                       are no longer alloed; 
there is a clash with built-in goal 'jar-no-fork')
-                                       <executions>
-                                               <execution>
-                                                       <id>package-jars</id>
-                                                       <phase>package</phase>
-                                                       <goals>
-                                                               <goal>jar</goal>
-                                                               
<goal>test-jar</goal>
-                                                       </goals>
-                                               </execution>
-                                       </executions>
-                                       -->
-                </plugin>
-                <plugin>
-                    <groupId>org.apache.maven.plugins</groupId>
-                    <artifactId>maven-surefire-plugin</artifactId>
-                    <version>${maven-surefire-plugin.version}</version>
-                    <configuration>
-                        <!-- override defaults and include everything unless
-                        explicitly excluded -->
-                        <includes>
-                            <include>**/*.java</include>
-                        </includes>
-                        <excludes>
-                            <exclude>${testsToExclude}</exclude>
-                        </excludes>
-                        <printSummary>false</printSummary>
-                        <argLine>${surefire-plugin.argLine}</argLine>
-                        <forkCount>1C</forkCount>
-                        <reuseForks>true</reuseForks>
-                        <systemPropertyVariables>
-                            <!-- allows tests to reduce verbosity, or
-                            conditionally disable
-                                 when run with surefire; e.g.:
-                                 @DisabledIfSystemProperty(named = 
"isRunningWithSurefire", matches = "true")
-                                 -->
-                            <isRunningWithSurefire>true</isRunningWithSurefire>
-                        </systemPropertyVariables>
-                    </configuration>
-                </plugin>
-                <plugin>
-                    <!-- Test Reporting -->
-                    <groupId>org.apache.maven.plugins</groupId>
-                    <artifactId>maven-surefire-report-plugin</artifactId>
-                    <version>${maven-surefire-report-plugin.version}</version>
-                    <!-- goal:report is a report so is configured in the
-                    reporting section;
-                                               invokes phase:test before 
running itself -->
-                </plugin>
-                <plugin>
-                    <groupId>org.apache.maven.plugins</groupId>
-                    <artifactId>maven-shade-plugin</artifactId>
-                    <version>3.6.0</version>
-                </plugin>
-                <plugin>
-                    <groupId>org.apache.rat</groupId>
-                    <artifactId>apache-rat-plugin</artifactId>
-                    <version>0.16.1</version>
-                    <configuration>
-                        
<addDefaultLicenseMatchers>true</addDefaultLicenseMatchers>
-                        <excludeSubProjects>true</excludeSubProjects>
-                        <excludes>
-                            <exclude>**/target/**</exclude>
-                            <exclude>**/target-ide/**</exclude>
-
-                            <exclude>**/node_modules/**</exclude>
-                            <exclude>**/node/npm</exclude>
-                            <exclude>**/node/npm.cmd</exclude>
-
-                            <exclude>**/*.project</exclude>
-                            <exclude>**/.classpath</exclude>
-                            <exclude>**/.settings/**</exclude>
-                            <exclude>**/*.launch</exclude>
-                            <exclude>**/schema.gql</exclude>
-                            <exclude>**/*._.gql</exclude>
-                            <exclude>**/.gitkeep</exclude>
-
-                            <exclude>**/*.iml</exclude>
-                            <exclude>**/intellij/launch/*.xml</exclude>
-
-                            
<exclude>**/gradle/wrapper/gradle-wrapper.properties</exclude>
-                            <exclude>**/gradlew</exclude>
-                            <exclude>**/gradlew.bat</exclude>
-                            <exclude>**/rebel.xml</exclude>
-                            <exclude>**/translations**.po</exclude>
-                            <exclude>**/translations.pot</exclude>
-
-                            <exclude>**/META-INF/spring.factories</exclude>
-                            <exclude>**/MANIFEST.MF</exclude>
-                            <exclude>**/META-INF/services/**</exclude>
-
-                            <exclude>
-                                
**/src/main/resources/supplemental-models.xml</exclude>
-
-                            <exclude>**/webpack.config.js</exclude>
-                            <exclude>**/webpack.generated.js</exclude>
-                            <exclude>**/pnpm-lock.yaml</exclude>
-                            <exclude>**/pnpmfile.js</exclude>
-                            <exclude>**/*.min.js</exclude>
-
-                            <exclude>**/*.pdn</exclude>
-                            <exclude>**/*.svg</exclude>
-                            <exclude>**/*.rtf</exclude>
-                            <exclude>**/*.drawio.svg</exclude>
-                            <exclude>**/*.json</exclude>
-                            <exclude>**/.gitkeep</exclude>
-                            <exclude>**/*.min.js</exclude>
-                            
<exclude>**/fakedata/applib/services/clobs/*.dtd</exclude>
-                            
<exclude>**/fakedata/applib/services/clobs/*.dcl</exclude>
-                            
<exclude>**/fakedata/applib/services/clobs/*.soc</exclude>
-                            
<exclude>**/fakedata/applib/services/clobs/vs</exclude>
-                            
<exclude>**/fakedata/applib/services/clobs/vx</exclude>
-                            <exclude>**/*.columnOrder.txt</exclude>
-                            <exclude>**/*.drawio.svg</exclude>
-                            <exclude>**/META-INF/spring.factories</exclude>
-
-                            <exclude>
-                                
**/incubator/clients/kroviz/package.json.d/project.info</exclude>
-                            <exclude>**/supplemental-ui/**</exclude>
-                            <exclude>**/_nav.adoc</exclude>
-                            <exclude>**/module-nav.adoc</exclude>
-                            <exclude>**/component-nav.adoc</exclude>
-                            <exclude>**/partials/extensions.adoc</exclude>
-
-                            <exclude>
-                                
**/causeway/valuetypes/asciidoc/builder/src/test/resources/**</exclude>
-
-                            <exclude>**/MANIFEST.MF</exclude>
-                            <exclude>**/*.ucd</exclude>
-                            <exclude>**/*.ucls</exclude>
-                            <exclude>**/*.puml</exclude>
-                            <exclude>**/antora/supplemental-ui/**</exclude>
-
-                            <exclude>**/xml/objects/**</exclude>
-                            <exclude>**/test.data</exclude>
-                            <exclude>**/fixture-data/**</exclude>
-                            <exclude>**/partials/module-nav.adoc</exclude>
-                            <exclude>**/partials/extensions.adoc</exclude>
-                            <exclude>**/partials/component-nav.adoc</exclude>
-                            <exclude>**/_nav.adoc</exclude>
-                            <exclude>**/_overview/nav.adoc</exclude>
-
-                            <exclude>**/application.js</exclude>
-                            
<exclude>**/bootstrap-datetimepicker.min.css</exclude>
-                            <exclude>**/bootstrap-datetimepicker.css</exclude>
-
-                            <exclude>**/jquery.zclip.js</exclude>
-                            <exclude>**/simple-sidebar.css</exclude>
-                            <exclude>**/causeway-bootstrap-growl.js</exclude>
-                            <exclude>**/moment.js</exclude>
-                            <exclude>**/prism*.js</exclude>
-                            <exclude>**/prism*.css</exclude>
-                            <exclude>**/kroviz/webpack.config.d/**</exclude>
-
-                            
<exclude>**/viewer/wicket/ui/components/**/*.css</exclude>
-                            
<exclude>**/viewer/wicket/ui/components/**/*.js</exclude>
-                            
<exclude>**/bootstrap-datetimepicker.min.css</exclude>
-                            <exclude>**/bootstrap-datetimepicker.css</exclude>
-                            <exclude>**/select2-bootstrap.css</exclude>
-
-                            <exclude>**/wicket-xhtml1.4-strict.dtd</exclude>
-
-                            <exclude>
-                                
**/src/main/resources/supplemental-models.xml</exclude>
-                            
<exclude>**/gradle/wrapper/gradle-wrapper.properties</exclude>
-                            <exclude>**/gradlew</exclude>
-                            <exclude>**/gradlew.bat</exclude>
-                            <exclude>**/rebel.xml</exclude>
-                            <exclude>**/translations**.po</exclude>
-                            <exclude>**/translations.pot</exclude>
-                            <exclude>**/vega*.js</exclude>
-
-                            <exclude>**/css/home/scss-files.txt</exclude>
-                            <exclude>**/css/home/styles.css</exclude>
-                            <exclude>**/css/site-custom.css</exclude>
-
-                            <exclude>**/swagger-ui/**</exclude>
-
-                            <exclude>**/META-INF/services/**</exclude>
-                            <exclude>**/select2-bootstrap.css</exclude>
-
-                            <exclude>**/wicket-xhtml1.4-strict.dtd</exclude>
-
-                            <exclude>**/application.js</exclude>
-
-                            <exclude>**/xml/objects/**</exclude>
-                            <exclude>**/test.data</exclude>
-                            <exclude>**/fixture-data/**</exclude>
-                            <exclude>**/*.approved.*</exclude>
-                            <exclude>**/*.approved.xml</exclude>
-                            <exclude>**/*.approved.txt</exclude>
-                            <exclude>**/approved/*.adoc</exclude>
-                            <exclude>**/secman-permissions.yml</exclude>
-
-                            
<exclude>**/fakedata/applib/services/clobs/*.dtd</exclude>
-                            
<exclude>**/fakedata/applib/services/clobs/*.dcl</exclude>
-                            
<exclude>**/fakedata/applib/services/clobs/*.soc</exclude>
-                            
<exclude>**/fakedata/applib/services/clobs/vs</exclude>
-                            
<exclude>**/fakedata/applib/services/clobs/vx</exclude>
-
-                            
<exclude>**/viewer/wicket/ui/components/**/*.css</exclude>
-                            
<exclude>**/viewer/wicket/ui/components/**/*.js</exclude>
-
-                            <exclude>
-                                
**/causeway/valuetypes/asciidoc/builder/src/test/resources/**</exclude>
-
-                            <exclude>
-                                
**/incubator/clients/kroviz/package.json.d/project.info</exclude>
-                            <exclude>**/kroviz/webpack.config.d/**</exclude>
-                        </excludes>
-                        <licenses>
-                            <license
-                                
implementation="org.apache.rat.analysis.license.SimplePatternBasedLicense">
-                                <licenseFamilyCategory>AL2 
</licenseFamilyCategory>
-                                <licenseFamilyName>Apache License 
2.0</licenseFamilyName>
-                                <notes />
-                                <patterns>
-                                    <pattern>Licensed to the Apache Software
-                                        Foundation (ASF) under
-                                        one</pattern>
-                                </patterns>
-                            </license>
-                            <license
-                                
implementation="org.apache.rat.analysis.license.SimplePatternBasedLicense">
-                                
<licenseFamilyCategory>BSD3</licenseFamilyCategory>
-                                <licenseFamilyName>BSD 
3-Clause</licenseFamilyName>
-                                <patterns>
-                                    <pattern>BSD-3-Clause license</pattern>
-                                </patterns>
-                            </license>
-                            <license
-                                
implementation="org.apache.rat.analysis.license.SimplePatternBasedLicense">
-                                
<licenseFamilyCategory>MIT</licenseFamilyCategory>
-                                <licenseFamilyName>MIT 
Licensed</licenseFamilyName>
-                                <notes />
-                                <patterns>
-                                    <pattern>The MIT License (MIT)</pattern>
-                                    <pattern>Dual licensed under the 
MIT</pattern>
-                                    
<pattern>http://prismjs.com/download.html</pattern>
-                                </patterns>
-                            </license>
-                            <license
-                                
implementation="org.apache.rat.analysis.license.SimplePatternBasedLicense">
-                                
<licenseFamilyCategory>CC3</licenseFamilyCategory>
-                                <licenseFamilyName>Creative Commons 
3.0</licenseFamilyName>
-                                <notes />
-                                <patterns>
-                                    <pattern>ASCII text placed in the public
-                                        domain by Moby Lexical Tools, 
1992.</pattern>
-                                </patterns>
-                            </license>
-                            <license
-                                
implementation="org.apache.rat.analysis.license.SimplePatternBasedLicense">
-                                
<licenseFamilyCategory>JMOCK</licenseFamilyCategory>
-                                <licenseFamilyName>JMock</licenseFamilyName>
-                                <notes />
-                                <patterns>
-                                    <pattern>Copyright (c) 2000-2007, 
jMock.org</pattern>
-                                </patterns>
-                            </license>
-                            <license
-                                
implementation="org.apache.rat.analysis.license.SimplePatternBasedLicense">
-                                
<licenseFamilyCategory>JMOCK</licenseFamilyCategory>
-                                <licenseFamilyName>JMock</licenseFamilyName>
-                                <notes />
-                                <patterns>
-                                    <pattern>Copyright (c) 2000-2007, 
jMock.org</pattern>
-                                </patterns>
-                            </license>
-                        </licenses>
-                        <licenseFamilies>
-                            <licenseFamily
-                                
implementation="org.apache.rat.license.SimpleLicenseFamily">
-                                <familyName>Apache License 2.0</familyName>
-                            </licenseFamily>
-                            <licenseFamily
-                                
implementation="org.apache.rat.license.SimpleLicenseFamily">
-                                <familyName>BSD 3-Clause</familyName>
-                            </licenseFamily>
-                            <licenseFamily
-                                
implementation="org.apache.rat.license.SimpleLicenseFamily">
-                                <familyName>MIT</familyName>
-                            </licenseFamily>
-                            <licenseFamily
-                                
implementation="org.apache.rat.license.SimpleLicenseFamily">
-                                <familyName>JMock</familyName>
-                            </licenseFamily>
-                            <licenseFamily
-                                
implementation="org.apache.rat.license.SimpleLicenseFamily">
-                                <familyName>XHTML</familyName>
-                            </licenseFamily>
-                        </licenseFamilies>
-                    </configuration>
-                </plugin>
-                <plugin>
-                    <groupId>net.alchim31.maven</groupId>
-                    <artifactId>yuicompressor-maven-plugin</artifactId>
-                    <version>1.5.1</version>
-                    <configuration>
-                        <statistics>true</statistics>
-                        <jswarn>false</jswarn>
-                        <suffix>.min</suffix>
-                        <excludes>
-                            <!-- -->
-                            <exclude>**/*.nocompress.js</exclude>
-                            <!-- select 2 -->
-                            <exclude>**/i18n/*.js</exclude>
-                            <exclude>**/select2*.js</exclude>
-                            <!-- datetime picker -->
-                            <exclude>**/moment-with-locales.js</exclude>
-                            <exclude>**/moment-with-locales.min.js</exclude>
-                            <exclude>**/tempusdominus-bootstrap-4.js</exclude>
-                            
<exclude>**/tempusdominus-bootstrap-4.min.js</exclude>
-                            <!-- boostrap growl -->
-                            <exclude>**/bootstrap-growl.js</exclude>
-                            <exclude>**/bootstrap-growl.min.js</exclude>
-                        </excludes>
-                    </configuration>
-                    <executions>
-                        <execution>
-                            <goals>
-                                <goal>compress</goal>
-                            </goals>
-                        </execution>
-                    </executions>
-                </plugin>
-                <plugin>
-                    <groupId>org.apache.maven.plugins</groupId>
-                    <artifactId>maven-docck-plugin</artifactId>
-                    <version>1.2</version>
-                </plugin>
-                <plugin>
-                    <groupId>org.codehaus.mojo</groupId>
-                    <artifactId>clirr-maven-plugin</artifactId>
-                    <version>2.8</version>
-                </plugin>
-            </plugins>
-        </pluginManagement>
-        <plugins>
-            <!--  We want to package up license resources in the JARs produced 
 -->
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-remote-resources-plugin</artifactId>
-                <executions>
-                    <execution>
-                        <id>process-resource-bundles</id>
-                        <goals>
-                            <goal>process</goal>
-                        </goals>
-                        <configuration>
-                            <resourceBundles>
-                                <resourceBundle>
-                                    
org.apache:apache-jar-resource-bundle:1.4</resourceBundle>
-                            </resourceBundles>
-
-                            <!-- Reference the supplemental-model artifact from
-                            module supplemental-model -->
-                            <supplementalModelArtifacts>
-                                <supplementalModelArtifact>
-                                    
org.apache.causeway:supplemental-model:1.0</supplementalModelArtifact>
-                            </supplementalModelArtifacts>
-
-                            <!-- Specify the path, relative to the JAR root,
-                            where the supplemental model file is located -->
-                            <supplementalModels>
-                                
<supplementalModel>supplemental-models.xml</supplementalModel>
-                            </supplementalModels>
-                            <properties>
-                                <projectTimespan>2010~2022</projectTimespan>
-                                <postDepListText>
-                                    The above (auto-generated) list aggregates
-                                    the dependencies (either directly or
-                                    transitively) of all the modules that make
-                                    up ${project.name}. You can use
-                                    mvn dependency:list or mvn dependency:tree
-                                    to view dependencies by submodule.
-                                    ${license.additional-notes}
-                                </postDepListText>
-                            </properties>
-                            <!-- APACHE CAUSEWAY customisation 12/21: end -->
-                        </configuration>
-                    </execution>
-                </executions>
-            </plugin>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-enforcer-plugin</artifactId>
-                <configuration>
-                    <rules>
-                        <requireMavenVersion>
-                            <version>[3.8.8,)</version>
-                        </requireMavenVersion>
-                        <requireJavaVersion>
-                            <version>[17,)</version>
-                        </requireJavaVersion>
-                        <!-- seemingly not compatible with use of 
3.4.0-SNAPSHOT
-                        placeholders
-                            <requirePluginVersions> <message>All plugin 
versions must be defined!</message>
-                            <banLatest>true</banLatest> 
<banRelease>true</banRelease>
-                        </requirePluginVersions> -->
-                        <DependencyConvergence />
-                    </rules>
-                </configuration>
-                <executions>
-                    <!-- goal:enforce supposedly binds to phase:validate, but
-                    explicit binding seems to be required -->
-                    <execution>
-                        <id>validate-enforce</id>
-                        <phase>validate</phase>
-                        <goals>
-                            <goal>enforce</goal>
-                        </goals>
-                    </execution>
-                    <execution>
-                        <id>enforce-maven-version</id>
-                        <goals>
-                            <goal>enforce</goal>
-                        </goals>
-                        <configuration>
-                            <rules>
-                                <requireMavenVersion>
-                                    
<version>${minimalMavenBuildVersion}</version>
-                                </requireMavenVersion>
-                            </rules>
-                        </configuration>
-                    </execution>
-                    <execution>
-                        <id>enforce-java-version</id>
-                        <goals>
-                            <goal>enforce</goal>
-                        </goals>
-                        <configuration>
-                            <rules>
-                                <requireJavaVersion>
-                                    
<version>${minimalJavaBuildVersion}</version>
-                                </requireJavaVersion>
-                            </rules>
-                        </configuration>
-                    </execution>
-                </executions>
-            </plugin>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-site-plugin</artifactId>
-                <executions>
-                    <execution>
-                        <id>attach-descriptor</id>
-                        <goals>
-                            <goal>attach-descriptor</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
-        </plugins>
-        <extensions>
-            <!-- scp and sftp support for deployments. -->
-            <extension>
-                <groupId>org.apache.maven.wagon</groupId>
-                <artifactId>wagon-ssh</artifactId>
-                <version>3.5.3</version>
-            </extension>
-            <!-- ftp support for deployments. -->
-            <extension>
-                <groupId>org.apache.maven.wagon</groupId>
-                <artifactId>wagon-ftp</artifactId>
-                <version>3.5.3</version>
-            </extension>
-        </extensions>
-    </build>
-    <profiles>
-        <!--  START SNIPPET: release-profile  -->
-        <profile>
-            <id>apache-release</id>
-            <activation>
-                <property>
-                    <name>apache-release</name>
-                </property>
-            </activation>
-            <properties>
-                <skipTests>true</skipTests>
-            </properties>
-            <build>
-                <plugins>
-                    <plugin>
-                        <groupId>dev.pcms</groupId>
-                        <artifactId>lombok-maven-plugin</artifactId>
-                        <version>1.18.36.2</version>
-                        <configuration>
-                            
<sourceDirectory>${project.basedir}/src/main/java</sourceDirectory>
-                            
<outputDirectory>${delombok.output}</outputDirectory>
-                            <addOutputDirectory>false</addOutputDirectory>
-                        </configuration>
-                        <executions>
-                            <execution>
-                                <phase>generate-sources</phase>
-                                <goals>
-                                    <goal>delombok</goal>
-                                </goals>
-                            </execution>
-                        </executions>
-                    </plugin>
-                    <!--  Create a source-release artifact that contains the
-                    fully buildable
-                                   project directory source structure. This is 
the artifact which is
-                                   the official subject of any release vote.  
-->
-                    <plugin>
-                        <groupId>org.apache.maven.plugins</groupId>
-                        <artifactId>maven-assembly-plugin</artifactId>
-                        <dependencies>
-                            <dependency>
-                                <groupId>org.apache.apache.resources</groupId>
-                                <artifactId>
-                                    
apache-source-release-assembly-descriptor</artifactId>
-                                <version>1.7</version>
-                            </dependency>
-                        </dependencies>
-                        <executions>
-                            <execution>
-                                <id>source-release-assembly</id>
-                                <phase>package</phase>
-                                <goals>
-                                    <goal>single</goal>
-                                </goals>
-                                <configuration>
-                                    
<archiveBaseDirectory>..</archiveBaseDirectory>
-                                    
<runOnlyAtExecutionRoot>true</runOnlyAtExecutionRoot>
-                                    <descriptorRefs>
-                                        <descriptorRef>
-                                            
${sourceReleaseAssemblyDescriptor}</descriptorRef>
-                                    </descriptorRefs>
-                                    <tarLongFileMode>posix</tarLongFileMode>
-                                </configuration>
-                            </execution>
-                        </executions>
-                    </plugin>
-                    <!--  We want to deploy the artifact to a staging location
-                    for perusal  -->
-                    <plugin>
-                        <inherited>true</inherited>
-                        <groupId>org.apache.maven.plugins</groupId>
-                        <artifactId>maven-deploy-plugin</artifactId>
-                        <configuration>
-                            <!-- invalid config
-                            <updateReleaseInfo>true</updateReleaseInfo> -->
-                        </configuration>
-                    </plugin>
-                    <plugin>
-                        <groupId>org.apache.maven.plugins</groupId>
-                        <artifactId>maven-source-plugin</artifactId>
-                        <executions>
-                            <execution>
-                                <id>attach-sources</id>
-                                <goals>
-                                    <goal>jar-no-fork</goal>
-                                </goals>
-                            </execution>
-                        </executions>
-                    </plugin>
-                    <plugin>
-                        <groupId>org.apache.maven.plugins</groupId>
-                        <artifactId>maven-javadoc-plugin</artifactId>
-                        <executions>
-                            <execution>
-                                <id>attach-javadocs</id>
-                                <goals>
-                                    <goal>jar</goal>
-                                </goals>
-                                <configuration>
-                                    <notimestamp>true</notimestamp>
-                                    <sourcepath>${delombok.output}</sourcepath>
-                                    <doclint>none</doclint>
-                                    <failOnError>false</failOnError>
-
-                                    <debug>true</debug>
-                                    <minmemory>128m</minmemory>
-                                    <maxmemory>1024m</maxmemory>
-                                    <quiet>true</quiet>
-                                    <doctitle>${project.name} 
${project.version}</doctitle>
-                                    <windowtitle>${project.name}
-                                        ${project.version}</windowtitle>
-                                    <splitindex>true</splitindex>
-                                    
<encoding>${project.build.sourceEncoding}</encoding>
-                                    <links>
-                                        <link>
-                                            
https://docs.oracle.com/en/java/javase/17/docs/api/</link>
-                                    </links>
-                                    <linksource>true</linksource>
-                                    
<detectOfflineLinks>false</detectOfflineLinks>
-                                </configuration>
-                            </execution>
-                        </executions>
-                    </plugin>
-                    <!--  calculate checksums of source release for Apache dist
-                    area  -->
-                    <plugin>
-                        <groupId>net.nicoulaj.maven.plugins</groupId>
-                        <artifactId>checksum-maven-plugin</artifactId>
-                        <version>1.11</version>
-                        <executions>
-                            <execution>
-                                <id>source-release-checksum</id>
-                                <goals>
-                                    <goal>artifacts</goal>
-                                </goals>
-                                <!--  execute prior to maven-gpg-plugin:sign 
due
-                                to
-                                
https://github.com/nicoulaj/checksum-maven-plugin/issues/112  -->
-                                <phase>post-integration-test</phase>
-                                <configuration>
-                                    <algorithms>
-                                        <algorithm>SHA-512</algorithm>
-                                    </algorithms>
-                                    <!--
-                                    
https://maven.apache.org/apache-resource-bundles/#source-release-assembly-descriptor
  -->
-                                    
<includeClassifiers>source-release</includeClassifiers>
-                                    
<excludeMainArtifact>true</excludeMainArtifact>
-                                    <csvSummary>false</csvSummary>
-                                    <!--  attach SHA-512 checksum as well to
-                                    upload to Maven Staging Repo,
-                                                           as this eases 
uploading from stage to dist and doesn't do harm in Maven Central  -->
-                                    <attachChecksums>true</attachChecksums>
-                                </configuration>
-                            </execution>
-                        </executions>
-                    </plugin>
-                    <!--  We want to sign the artifact, the POM, and all 
attached
-                    artifacts (except for SHA-512 checksum)  -->
-                    <plugin>
-                        <groupId>org.apache.maven.plugins</groupId>
-                        <artifactId>maven-gpg-plugin</artifactId>
-                        <executions>
-                            <execution>
-                                <id>sign-release-artifacts</id>
-                                <goals>
-                                    <goal>sign</goal>
-                                </goals>
-                            </execution>
-                        </executions>
-                    </plugin>
-
-                </plugins>
-            </build>
-            <modules>
-                <module>../core</module>
-                <module>../extensions</module>
-                <module>../mavendeps</module>
-                <module>../starters</module>
-                <module>../testing</module>
-                <module>../valuetypes</module>
-            </modules>
-        </profile>
-        <!--  END SNIPPET: release-profile  -->
-
-        <profile>
-            <id>causeway-lombok-workaround</id>
-            <activation>
-                <file>
-                    <missing>${basedir}/logging-dn-enhance.properties</missing>
-                </file>
-            </activation>
-            <build>
-                <plugins>
-                    <plugin>
-                        <groupId>org.apache.maven.plugins</groupId>
-                        <artifactId>maven-compiler-plugin</artifactId>
-                        <configuration>
-                            <showDeprecation>true</showDeprecation>
-                            <showWarnings>true</showWarnings>
-                            <parameters>true</parameters>
-                            <annotationProcessorPaths>
-                                <!-- this is a workaround
-
-                                                               Details: The 
maven compiler plugin ought to pick up all available processors on
-                                the classpath.
-                                                               In effect 
Lombok's annotation processor should be picked up implicitly, but yet
-                                is not
-
-                                                               Presence of 
file 'logging-dn-enhance.properties' decativates this profile and
-                                                               the 
maven-compiler-plugin runs all annotation processors as picked up from the
-                                class-path.
-                                                               -->
-                                <annotationProcessorPath>
-                                    <groupId>org.projectlombok</groupId>
-                                    <artifactId>lombok</artifactId>
-                                    <version>${lombok.version}</version>
-                                </annotationProcessorPath>
-                            </annotationProcessorPaths>
-                        </configuration>
-                    </plugin>
-                </plugins>
-            </build>
-        </profile>
-        <profile>
-            <id>enforce-output-timestamp-property</id>
-            <activation>
-                <!-- multiple profile activation conditions have AND logic ... 
-->
-                <property>
-                    <name>apache-release</name>
-                </property>
-                <file>
-                    <missing>${basedir}/.maven-apache-parent.marker</missing>
-                </file>
-            </activation>
-            <build>
-                <plugins>
-                    <plugin>
-                        <groupId>org.apache.maven.plugins</groupId>
-                        <artifactId>maven-enforcer-plugin</artifactId>
-                        <executions>
-                            <execution>
-                                <id>enforce-output-timestamp-property</id>
-                                <goals>
-                                    <goal>enforce</goal>
-                                </goals>
-                                <configuration>
-                                    <rules>
-                                        <requireProperty>
-                                            <property>
-                                                
project.build.outputTimestamp</property>
-                                            <message>
-                                                The property
-                                                "project.build.outputTimestamp"
-                                                must be set on the reactor's
-                                                root pom.xml to make the build
-                                                reproducible. Further
-                                                information at
-                                                
"https://maven.apache.org/guides/mini/guide-reproducible-builds.html";.</message>
-                                        </requireProperty>
-                                    </rules>
-                                </configuration>
-                            </execution>
-                        </executions>
-                    </plugin>
-                </plugins>
-            </build>
-        </profile>
-        <profile>
-            <id>sources</id>
-            <activation>
-                <property>
-                    <name>sources</name>
-                </property>
-            </activation>
-            <build>
-                <plugins>
-                    <plugin>
-                        <groupId>org.apache.maven.plugins</groupId>
-                        <artifactId>maven-source-plugin</artifactId>
-                        <executions>
-                            <execution>
-                                <id>attach-sources</id>
-                                <phase>deploy</phase>
-                                <goals>
-                                    <goal>jar-no-fork</goal>
-                                </goals>
-                            </execution>
-                        </executions>
-                    </plugin>
-                </plugins>
-            </build>
-        </profile>
-        <profile>
-            <id>github</id>
-            <activation>
-                <property>
-                    <name>github</name>
-                </property>
-            </activation>
-            <properties>
-                <enforcer.failFast>true</enforcer.failFast>
-                <jacoco.skip>true</jacoco.skip>
-            </properties>
-            <modules>
-                <module>../core</module>
-                <module>../extensions</module>
-                <module>../mavendeps</module>
-                <module>../starters</module>
-                <module>../testing</module>
-                <module>../valuetypes</module>
-            </modules>
-            <distributionManagement>
-                <repository>
-                    <id>github</id>
-                    <name>Github Releases</name>
-                    <url>https://maven.pkg.github.com/apache/causeway</url>
-                </repository>
-            </distributionManagement>
-        </profile>
-        <profile>
-            <id>nightly-localfs-repo</id>
-            <activation>
-                <property>
-                    <name>nightly-localfs-repo</name>
-                </property>
-            </activation>
-            <distributionManagement>
-                <repository>
-                    <id>nightly-localfs-repo</id>
-                    <name>Temporary Local Filesystem Staging Repository</name>
-                    <url>file://${MVN_SNAPSHOTS_PATH}</url>
-                </repository>
-            </distributionManagement>
-            <build>
-                <plugins>
-                    <plugin>
-                        <artifactId>maven-deploy-plugin</artifactId>
-                        <version>3.1.4</version>
-                        <configuration>
-                            <altDeploymentRepository>
-                                
nightly-localfs-repo::file://${MVN_SNAPSHOTS_PATH}
-                            </altDeploymentRepository>
-                        </configuration>
-                    </plugin>
-                </plugins>
-            </build>
-        </profile>
-        <profile>
-            <id>jacoco-report-xml</id>
-            <activation>
-                <property>
-                    <name>jacoco-report-xml</name>
-                </property>
-            </activation>
-            <properties>
-                <surefire-plugin.argLine>
-                    @{argLine}
-                    -Xmx384m
-                </surefire-plugin.argLine>
-            </properties>
-            <build>
-                <plugins>
-                    <plugin>
-                        <groupId>org.jacoco</groupId>
-                        <artifactId>jacoco-maven-plugin</artifactId>
-                        <version>0.8.13</version>
-                        <executions>
-                            <execution>
-                                <goals>
-                                    <goal>prepare-agent</goal>
-                                </goals>
-                            </execution>
-                            <execution>
-                                <id>report</id>
-                                <phase>prepare-package</phase>
-                                <goals>
-                                    <goal>report</goal>
-                                </goals>
-                                <configuration>
-                                    <formats>XML</formats>
-                                </configuration>
-                            </execution>
-                        </executions>
-                    </plugin>
-                </plugins>
-            </build>
-        </profile>
-        <profile>
-            <id>telemetry</id>
-            <activation>
-                <property>
-                    <name>telemetry</name>
-                </property>
-            </activation>
-            <build>
-                <plugins>
-                    <plugin>
-                        <groupId>io.opentelemetry.contrib</groupId>
-                        <artifactId>opentelemetry-maven-extension</artifactId>
-                        <version>1.46.0-alpha</version>
-                        <extensions>true</extensions>
-                    </plugin>
-                </plugins>
-            </build>
-        </profile>
-    </profiles>
 
     <!-- META DATA -->
 
diff --git a/core/pom.xml b/core/pom.xml
index 54c20df152a..fa2a9c7eb62 100644
--- a/core/pom.xml
+++ b/core/pom.xml
@@ -24,9 +24,9 @@
 
     <parent>
         <groupId>org.apache.causeway</groupId>
-        <artifactId>causeway-bom</artifactId>
+        <artifactId>causeway-parent</artifactId>
         <version>${revision}</version>
-        <relativePath>../bom/pom.xml</relativePath>
+        <relativePath>../parent/pom.xml</relativePath>
     </parent>
 
     <groupId>org.apache.causeway.core</groupId>
@@ -58,12 +58,6 @@
 
     </properties>
 
-    <pluginRepositories>
-    </pluginRepositories>
-
-    <repositories>
-    </repositories>
-
     <build>
         <outputDirectory>${project.build.directory}/classes</outputDirectory>
         
<testOutputDirectory>${project.build.directory}/test-classes</testOutputDirectory>
@@ -128,15 +122,6 @@
         </plugins>
     </build>
 
-
-    <dependencies>
-        <dependency>
-            <groupId>org.projectlombok</groupId>
-            <artifactId>lombok</artifactId>
-            <scope>provided</scope>
-        </dependency>
-    </dependencies>
-
     <profiles>
         <profile>
             <id>apache-release</id>
diff --git a/parent/pom.xml b/parent/pom.xml
new file mode 100644
index 00000000000..7963cf337e6
--- /dev/null
+++ b/parent/pom.xml
@@ -0,0 +1,1136 @@
+<?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</groupId>
+        <artifactId>causeway-bom</artifactId>
+        <version>${revision}</version>
+        <relativePath>../bom/pom.xml</relativePath>
+    </parent>
+
+    <artifactId>causeway-parent</artifactId>
+
+    <packaging>pom</packaging>
+    <name>Apache Causeway Parent</name>
+    <url>https://causeway.apache.org</url>
+    <description>
+        Gathers all the framework build configuration, such that the BOM can 
be free of that.
+    </description>
+
+    
+    <properties>
+        <!-- BUILD SPECIFICA -->
+
+        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+        
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
+        
<sourceReleaseAssemblyDescriptor>source-release</sourceReleaseAssemblyDescriptor>
+        <gpg.useagent>true</gpg.useagent>
+        <minimalMavenBuildVersion>3.9.9</minimalMavenBuildVersion> <!-- latest
+        from github actions/setup-java@v3 -->
+        <minimalJavaBuildVersion>17</minimalJavaBuildVersion>
+        <maven.compiler.release>17</maven.compiler.release>
+
+        <!--  for m-plugin-p and maven-plugin-annotations  -->
+        <assembly.tarLongFileMode>posix</assembly.tarLongFileMode>
+        <causeway.skipTests>false</causeway.skipTests>
+        <maven.test.skip>${causeway.skipTests}</maven.test.skip>
+
+        
<project.build.outputTimestamp>2025-05-28T05:00:00Z</project.build.outputTimestamp>
+
+        <delombok.output>${project.build.directory}/delombok</delombok.output>
+
+        <!-- PLUGINS -->
+
+        <maven-compiler-plugin.version>3.14.0</maven-compiler-plugin.version>
+        <maven-release-plugin.version>3.1.1</maven-release-plugin.version>
+        <maven-source-plugin.version>3.3.1</maven-source-plugin.version>
+        <maven-surefire-plugin.version>3.5.3</maven-surefire-plugin.version>
+        
<maven-surefire-report-plugin.version>3.5.3</maven-surefire-report-plugin.version>
+        <!--  for surefire, failsafe and surefire-report  -->
+        <maven.plugin.tools.version>3.15.1</maven.plugin.tools.version>
+    </properties>
+    
+    <build>
+        <pluginManagement>
+            <plugins>
+                <!--  set versions of common plugins for reproducibility, 
ordered
+                alphabetically  -->
+                <plugin>
+                    <groupId>org.apache.maven.plugins</groupId>
+                    <artifactId>maven-antrun-plugin</artifactId>
+                    <version>3.1.0</version>
+                </plugin>
+                <plugin>
+                    <groupId>org.apache.maven.plugins</groupId>
+                    <artifactId>maven-assembly-plugin</artifactId>
+                    <version>3.7.1</version>    <!--bumped-->
+                </plugin>
+                <plugin>
+                    <groupId>org.apache.maven.plugins</groupId>
+                    <artifactId>maven-clean-plugin</artifactId>
+                    <version>3.4.1</version>
+                </plugin>
+                <plugin>
+                    <groupId>org.apache.maven.plugins</groupId>
+                    <artifactId>maven-compiler-plugin</artifactId>
+                    <version>${maven-compiler-plugin.version}</version>
+                    <configuration>
+                        <showDeprecation>true</showDeprecation>
+                        <showWarnings>true</showWarnings>
+                        <parameters>true</parameters>
+                        <!-- Java compliance level, to be overridden with 
option
+                        maven.compiler.release -->
+                    </configuration>
+                    <!-- goal:compile binds to phase:compile -->
+                    <!-- goal:testCompile binds to phase:test-compile -->
+                </plugin>
+                <plugin>
+                    <groupId>org.jvnet.jaxb2.maven2</groupId>
+                    <artifactId>maven-jaxb2-plugin</artifactId>
+                    <version>0.15.3</version>
+                    <configuration>
+                        <removeOldOutput>true</removeOldOutput>
+                        <episode>true</episode>
+                    </configuration>
+                </plugin>
+                <plugin>
+                    <groupId>org.apache.maven.plugins</groupId>
+                    <artifactId>maven-dependency-plugin</artifactId>
+                    <version>3.8.1</version>
+                </plugin>
+                <plugin>
+                    <groupId>org.apache.maven.plugins</groupId>
+                    <artifactId>maven-deploy-plugin</artifactId>
+                    <version>3.1.4</version>    <!--bumped-->
+                </plugin>
+                <plugin>
+                    <groupId>org.apache.maven.plugins</groupId>
+                    <artifactId>maven-ear-plugin</artifactId>
+                    <version>3.3.0</version>
+                </plugin>
+                <plugin>
+                    <groupId>org.apache.maven.plugins</groupId>
+                    <artifactId>maven-enforcer-plugin</artifactId>
+                    <version>3.5.0</version>
+                </plugin>
+                <plugin>
+                    <groupId>org.apache.maven.plugins</groupId>
+                    <artifactId>maven-gpg-plugin</artifactId>
+                    <version>3.2.7</version>
+                    <configuration>
+                        <gpgArguments>
+                            <arg>--digest-algo=SHA512</arg>
+                        </gpgArguments>
+                    </configuration>
+                </plugin>
+                <plugin>
+                    <groupId>org.apache.maven.plugins</groupId>
+                    <artifactId>maven-help-plugin</artifactId>
+                    <version>3.5.1</version>    <!--bumped-->
+                </plugin>
+                <plugin>
+                    <groupId>org.apache.maven.plugins</groupId>
+                    <artifactId>maven-install-plugin</artifactId>
+                    <version>3.1.4</version>    <!--bumped-->
+                </plugin>
+                <plugin>
+                    <groupId>org.apache.maven.plugins</groupId>
+                    <artifactId>maven-invoker-plugin</artifactId>
+                    <version>3.9.0</version>
+                </plugin>
+                <plugin>
+                    <groupId>org.apache.maven.plugins</groupId>
+                    <artifactId>maven-jar-plugin</artifactId>
+                    <version>3.4.2</version>
+                    <configuration>
+                        <skipIfEmpty>true</skipIfEmpty>
+                        <archive>
+                            <manifest>
+                                
<addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
+                                
<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
+                            </manifest>
+                            <manifestEntries>
+                                <Automatic-Module-Name>
+                                    
${jar-plugin.automaticModuleName}</Automatic-Module-Name>
+                                
<Implementation-Vendor-Id>org.apache.causeway</Implementation-Vendor-Id>
+                                <Implementation-Vendor>Apache Causeway™ 
Project</Implementation-Vendor>
+                                <Bundle-SymbolicName>
+                                    
${jar-plugin.automaticModuleName}</Bundle-SymbolicName>
+                                
<SCM-Revision>${git.commit.id.abbrev}</SCM-Revision>
+                                <!-- required for DN plugin.xml loading -->
+                                <Bundle-SymbolicName>
+                                    
${jar-plugin.automaticModuleName}</Bundle-SymbolicName>
+                                <!-- no requirement as of yet.
+                                
<Bundle-ManifestVersion>2</Bundle-ManifestVersion>
+                                    
<Bundle-Name>${jar-plugin.automaticModuleName}</Bundle-Name>
+                                <Bundle-Version>3.4.0-SNAPSHOT</Bundle-Version>
+                                    <Bundle-Vendor>Apache Causeway™ 
Project</Bundle-Vendor> -->
+                            </manifestEntries>
+                        </archive>
+                    </configuration>
+                </plugin>
+                <plugin>
+                    <groupId>org.apache.maven.plugins</groupId>
+                    <artifactId>maven-javadoc-plugin</artifactId>
+                    <version>3.11.2</version>
+                    <configuration>
+                        <notimestamp>true</notimestamp>
+                        <!--  avoid noise for svn/gitpubsub  -->
+                    </configuration>
+                </plugin>
+                <plugin>
+                    <groupId>org.apache.maven.plugins</groupId>
+                    <artifactId>maven-plugin-plugin</artifactId>
+                    <version>${maven.plugin.tools.version}</version>
+                </plugin>
+                <plugin>
+                    <groupId>org.apache.maven.plugins</groupId>
+                    <artifactId>maven-project-info-reports-plugin</artifactId>
+                    <version>3.9.0</version>    <!--bumped-->
+                    <configuration>
+                        <pluginManagementExcludes>
+                            
<exclude>org.eclipse.m2e:lifecycle-mapping</exclude>
+                        </pluginManagementExcludes>
+                    </configuration>
+                </plugin>
+                <plugin>
+                    <groupId>org.apache.maven.plugins</groupId>
+                    <artifactId>maven-release-plugin</artifactId>
+                    <version>${maven-release-plugin.version}</version>
+                    <configuration>
+                        <useReleaseProfile>false</useReleaseProfile>
+                        <goals>deploy</goals>
+                        <releaseProfiles>apache-release</releaseProfiles>
+                        <!-- overrides the default ('clean verify') -->
+                        <preparationGoals>clean install</preparationGoals>
+                        <autoVersionSubmodules>true</autoVersionSubmodules>
+                        <localCheckout>true</localCheckout>
+                        <pushChanges>false</pushChanges>
+                        <waitBeforeTagging>1</waitBeforeTagging>
+                        <!-- goal:clean (for aggregator modules) has no
+                        bindings; cleans up
+                            release.properties and any backup POM files -->
+                        <!-- goal:prepare (for aggregator modules) has no
+                        bindings; prepares
+                            for release in SCM (modifying x.x-SNAPSHOT to x.x) 
-->
+                        <!-- goal:update-versions (for aggregator modules) has
+                        no bindings;
+                            updates versions eg to SNAPSHOT -->
+                        <!-- etc; none of the goals has a binding. -->
+                    </configuration>
+                </plugin>
+                <plugin>
+                    <groupId>org.apache.maven.plugins</groupId>
+                    <artifactId>maven-remote-resources-plugin</artifactId>
+                    <version>3.3.0</version>    <!--bumped-->
+                </plugin>
+                <plugin>
+                    <groupId>org.apache.maven.plugins</groupId>
+                    <artifactId>maven-resources-plugin</artifactId>
+                    <version>3.3.1</version>    <!--bumped-->
+                </plugin>
+                <plugin>
+                    <groupId>org.apache.maven.plugins</groupId>
+                    <artifactId>maven-scm-plugin</artifactId>
+                    <version>2.1.0</version>
+                </plugin>
+                <plugin>
+                    <groupId>org.apache.maven.plugins</groupId>
+                    <artifactId>maven-scm-publish-plugin</artifactId>
+                    <version>3.3.0</version>
+                </plugin>
+                <plugin>
+                    <groupId>org.apache.maven.plugins</groupId>
+                    <artifactId>maven-site-plugin</artifactId>
+                    <version>3.21.0</version>    <!--bumped-->
+                </plugin>
+                <plugin>
+                    <!-- Packaging: source jars of main and test code -->
+                    <groupId>org.apache.maven.plugins</groupId>
+                    <artifactId>maven-source-plugin</artifactId>
+                    <version>${maven-source-plugin.version}</version>
+                    <configuration>
+                        <includePom>true</includePom>
+                    </configuration>
+                    <!-- goal:aggregate (for aggregator modules) binds to
+                    phase:package -->
+                    <!-- goal:jar and goal:test-jar are meant to bind to
+                    phase:package,
+                        but doesn't seem to so bound explicitly -->
+                    <!-- failing since maven-source-plugin 3.3.0 (as duplicated
+                    runs
+                            are no longer alloed; there is a clash with 
built-in goal 'jar-no-fork')
+                    <executions>
+                        <execution>
+                            <id>package-jars</id>
+                            <phase>package</phase>
+                            <goals>
+                                <goal>jar</goal>
+                                <goal>test-jar</goal>
+                            </goals>
+                        </execution>
+                    </executions>
+                    -->
+                </plugin>
+                <plugin>
+                    <groupId>org.apache.maven.plugins</groupId>
+                    <artifactId>maven-surefire-plugin</artifactId>
+                    <version>${maven-surefire-plugin.version}</version>
+                    <configuration>
+                        <!-- override defaults and include everything unless
+                        explicitly excluded -->
+                        <includes>
+                            <include>**/*.java</include>
+                        </includes>
+                        <excludes>
+                            <exclude>${testsToExclude}</exclude>
+                        </excludes>
+                        <printSummary>false</printSummary>
+                        <argLine>${surefire-plugin.argLine}</argLine>
+                        <forkCount>1C</forkCount>
+                        <reuseForks>true</reuseForks>
+                        <systemPropertyVariables>
+                            <!-- allows tests to reduce verbosity, or
+                            conditionally disable
+                                 when run with surefire; e.g.:
+                                 @DisabledIfSystemProperty(named = 
"isRunningWithSurefire", matches = "true")
+                                 -->
+                            <isRunningWithSurefire>true</isRunningWithSurefire>
+                        </systemPropertyVariables>
+                    </configuration>
+                </plugin>
+                <plugin>
+                    <!-- Test Reporting -->
+                    <groupId>org.apache.maven.plugins</groupId>
+                    <artifactId>maven-surefire-report-plugin</artifactId>
+                    <version>${maven-surefire-report-plugin.version}</version>
+                    <!-- goal:report is a report so is configured in the
+                    reporting section;
+                        invokes phase:test before running itself -->
+                </plugin>
+                <plugin>
+                    <groupId>org.apache.maven.plugins</groupId>
+                    <artifactId>maven-shade-plugin</artifactId>
+                    <version>3.6.0</version>
+                </plugin>
+                <plugin>
+                    <groupId>org.apache.rat</groupId>
+                    <artifactId>apache-rat-plugin</artifactId>
+                    <version>0.16.1</version>
+                    <configuration>
+                        
<addDefaultLicenseMatchers>true</addDefaultLicenseMatchers>
+                        <excludeSubProjects>true</excludeSubProjects>
+                        <excludes>
+                            <exclude>**/target/**</exclude>
+                            <exclude>**/target-ide/**</exclude>
+
+                            <exclude>**/node_modules/**</exclude>
+                            <exclude>**/node/npm</exclude>
+                            <exclude>**/node/npm.cmd</exclude>
+
+                            <exclude>**/*.project</exclude>
+                            <exclude>**/.classpath</exclude>
+                            <exclude>**/.settings/**</exclude>
+                            <exclude>**/*.launch</exclude>
+                            <exclude>**/schema.gql</exclude>
+                            <exclude>**/*._.gql</exclude>
+                            <exclude>**/.gitkeep</exclude>
+
+                            <exclude>**/*.iml</exclude>
+                            <exclude>**/intellij/launch/*.xml</exclude>
+
+                            
<exclude>**/gradle/wrapper/gradle-wrapper.properties</exclude>
+                            <exclude>**/gradlew</exclude>
+                            <exclude>**/gradlew.bat</exclude>
+                            <exclude>**/rebel.xml</exclude>
+                            <exclude>**/translations**.po</exclude>
+                            <exclude>**/translations.pot</exclude>
+
+                            <exclude>**/META-INF/spring.factories</exclude>
+                            <exclude>**/MANIFEST.MF</exclude>
+                            <exclude>**/META-INF/services/**</exclude>
+
+                            <exclude>
+                                
**/src/main/resources/supplemental-models.xml</exclude>
+
+                            <exclude>**/webpack.config.js</exclude>
+                            <exclude>**/webpack.generated.js</exclude>
+                            <exclude>**/pnpm-lock.yaml</exclude>
+                            <exclude>**/pnpmfile.js</exclude>
+                            <exclude>**/*.min.js</exclude>
+
+                            <exclude>**/*.pdn</exclude>
+                            <exclude>**/*.svg</exclude>
+                            <exclude>**/*.rtf</exclude>
+                            <exclude>**/*.drawio.svg</exclude>
+                            <exclude>**/*.json</exclude>
+                            <exclude>**/.gitkeep</exclude>
+                            <exclude>**/*.min.js</exclude>
+                            
<exclude>**/fakedata/applib/services/clobs/*.dtd</exclude>
+                            
<exclude>**/fakedata/applib/services/clobs/*.dcl</exclude>
+                            
<exclude>**/fakedata/applib/services/clobs/*.soc</exclude>
+                            
<exclude>**/fakedata/applib/services/clobs/vs</exclude>
+                            
<exclude>**/fakedata/applib/services/clobs/vx</exclude>
+                            <exclude>**/*.columnOrder.txt</exclude>
+                            <exclude>**/*.drawio.svg</exclude>
+                            <exclude>**/META-INF/spring.factories</exclude>
+
+                            <exclude>
+                                
**/incubator/clients/kroviz/package.json.d/project.info</exclude>
+                            <exclude>**/supplemental-ui/**</exclude>
+                            <exclude>**/_nav.adoc</exclude>
+                            <exclude>**/module-nav.adoc</exclude>
+                            <exclude>**/component-nav.adoc</exclude>
+                            <exclude>**/partials/extensions.adoc</exclude>
+
+                            <exclude>
+                                
**/causeway/valuetypes/asciidoc/builder/src/test/resources/**</exclude>
+
+                            <exclude>**/MANIFEST.MF</exclude>
+                            <exclude>**/*.ucd</exclude>
+                            <exclude>**/*.ucls</exclude>
+                            <exclude>**/*.puml</exclude>
+                            <exclude>**/antora/supplemental-ui/**</exclude>
+
+                            <exclude>**/xml/objects/**</exclude>
+                            <exclude>**/test.data</exclude>
+                            <exclude>**/fixture-data/**</exclude>
+                            <exclude>**/partials/module-nav.adoc</exclude>
+                            <exclude>**/partials/extensions.adoc</exclude>
+                            <exclude>**/partials/component-nav.adoc</exclude>
+                            <exclude>**/_nav.adoc</exclude>
+                            <exclude>**/_overview/nav.adoc</exclude>
+
+                            <exclude>**/application.js</exclude>
+                            
<exclude>**/bootstrap-datetimepicker.min.css</exclude>
+                            <exclude>**/bootstrap-datetimepicker.css</exclude>
+
+                            <exclude>**/jquery.zclip.js</exclude>
+                            <exclude>**/simple-sidebar.css</exclude>
+                            <exclude>**/causeway-bootstrap-growl.js</exclude>
+                            <exclude>**/moment.js</exclude>
+                            <exclude>**/prism*.js</exclude>
+                            <exclude>**/prism*.css</exclude>
+                            <exclude>**/kroviz/webpack.config.d/**</exclude>
+
+                            
<exclude>**/viewer/wicket/ui/components/**/*.css</exclude>
+                            
<exclude>**/viewer/wicket/ui/components/**/*.js</exclude>
+                            
<exclude>**/bootstrap-datetimepicker.min.css</exclude>
+                            <exclude>**/bootstrap-datetimepicker.css</exclude>
+                            <exclude>**/select2-bootstrap.css</exclude>
+
+                            <exclude>**/wicket-xhtml1.4-strict.dtd</exclude>
+
+                            <exclude>
+                                
**/src/main/resources/supplemental-models.xml</exclude>
+                            
<exclude>**/gradle/wrapper/gradle-wrapper.properties</exclude>
+                            <exclude>**/gradlew</exclude>
+                            <exclude>**/gradlew.bat</exclude>
+                            <exclude>**/rebel.xml</exclude>
+                            <exclude>**/translations**.po</exclude>
+                            <exclude>**/translations.pot</exclude>
+                            <exclude>**/vega*.js</exclude>
+
+                            <exclude>**/css/home/scss-files.txt</exclude>
+                            <exclude>**/css/home/styles.css</exclude>
+                            <exclude>**/css/site-custom.css</exclude>
+
+                            <exclude>**/swagger-ui/**</exclude>
+
+                            <exclude>**/META-INF/services/**</exclude>
+                            <exclude>**/select2-bootstrap.css</exclude>
+
+                            <exclude>**/wicket-xhtml1.4-strict.dtd</exclude>
+
+                            <exclude>**/application.js</exclude>
+
+                            <exclude>**/xml/objects/**</exclude>
+                            <exclude>**/test.data</exclude>
+                            <exclude>**/fixture-data/**</exclude>
+                            <exclude>**/*.approved.*</exclude>
+                            <exclude>**/*.approved.xml</exclude>
+                            <exclude>**/*.approved.txt</exclude>
+                            <exclude>**/approved/*.adoc</exclude>
+                            <exclude>**/secman-permissions.yml</exclude>
+
+                            
<exclude>**/fakedata/applib/services/clobs/*.dtd</exclude>
+                            
<exclude>**/fakedata/applib/services/clobs/*.dcl</exclude>
+                            
<exclude>**/fakedata/applib/services/clobs/*.soc</exclude>
+                            
<exclude>**/fakedata/applib/services/clobs/vs</exclude>
+                            
<exclude>**/fakedata/applib/services/clobs/vx</exclude>
+
+                            
<exclude>**/viewer/wicket/ui/components/**/*.css</exclude>
+                            
<exclude>**/viewer/wicket/ui/components/**/*.js</exclude>
+
+                            <exclude>
+                                
**/causeway/valuetypes/asciidoc/builder/src/test/resources/**</exclude>
+
+                            <exclude>
+                                
**/incubator/clients/kroviz/package.json.d/project.info</exclude>
+                            <exclude>**/kroviz/webpack.config.d/**</exclude>
+                        </excludes>
+                        <licenses>
+                            <license
+                                
implementation="org.apache.rat.analysis.license.SimplePatternBasedLicense">
+                                <licenseFamilyCategory>AL2 
</licenseFamilyCategory>
+                                <licenseFamilyName>Apache License 
2.0</licenseFamilyName>
+                                <notes />
+                                <patterns>
+                                    <pattern>Licensed to the Apache Software
+                                        Foundation (ASF) under
+                                        one</pattern>
+                                </patterns>
+                            </license>
+                            <license
+                                
implementation="org.apache.rat.analysis.license.SimplePatternBasedLicense">
+                                
<licenseFamilyCategory>BSD3</licenseFamilyCategory>
+                                <licenseFamilyName>BSD 
3-Clause</licenseFamilyName>
+                                <patterns>
+                                    <pattern>BSD-3-Clause license</pattern>
+                                </patterns>
+                            </license>
+                            <license
+                                
implementation="org.apache.rat.analysis.license.SimplePatternBasedLicense">
+                                
<licenseFamilyCategory>MIT</licenseFamilyCategory>
+                                <licenseFamilyName>MIT 
Licensed</licenseFamilyName>
+                                <notes />
+                                <patterns>
+                                    <pattern>The MIT License (MIT)</pattern>
+                                    <pattern>Dual licensed under the 
MIT</pattern>
+                                    
<pattern>http://prismjs.com/download.html</pattern>
+                                </patterns>
+                            </license>
+                            <license
+                                
implementation="org.apache.rat.analysis.license.SimplePatternBasedLicense">
+                                
<licenseFamilyCategory>CC3</licenseFamilyCategory>
+                                <licenseFamilyName>Creative Commons 
3.0</licenseFamilyName>
+                                <notes />
+                                <patterns>
+                                    <pattern>ASCII text placed in the public
+                                        domain by Moby Lexical Tools, 
1992.</pattern>
+                                </patterns>
+                            </license>
+                            <license
+                                
implementation="org.apache.rat.analysis.license.SimplePatternBasedLicense">
+                                
<licenseFamilyCategory>JMOCK</licenseFamilyCategory>
+                                <licenseFamilyName>JMock</licenseFamilyName>
+                                <notes />
+                                <patterns>
+                                    <pattern>Copyright (c) 2000-2007, 
jMock.org</pattern>
+                                </patterns>
+                            </license>
+                            <license
+                                
implementation="org.apache.rat.analysis.license.SimplePatternBasedLicense">
+                                
<licenseFamilyCategory>JMOCK</licenseFamilyCategory>
+                                <licenseFamilyName>JMock</licenseFamilyName>
+                                <notes />
+                                <patterns>
+                                    <pattern>Copyright (c) 2000-2007, 
jMock.org</pattern>
+                                </patterns>
+                            </license>
+                        </licenses>
+                        <licenseFamilies>
+                            <licenseFamily
+                                
implementation="org.apache.rat.license.SimpleLicenseFamily">
+                                <familyName>Apache License 2.0</familyName>
+                            </licenseFamily>
+                            <licenseFamily
+                                
implementation="org.apache.rat.license.SimpleLicenseFamily">
+                                <familyName>BSD 3-Clause</familyName>
+                            </licenseFamily>
+                            <licenseFamily
+                                
implementation="org.apache.rat.license.SimpleLicenseFamily">
+                                <familyName>MIT</familyName>
+                            </licenseFamily>
+                            <licenseFamily
+                                
implementation="org.apache.rat.license.SimpleLicenseFamily">
+                                <familyName>JMock</familyName>
+                            </licenseFamily>
+                            <licenseFamily
+                                
implementation="org.apache.rat.license.SimpleLicenseFamily">
+                                <familyName>XHTML</familyName>
+                            </licenseFamily>
+                        </licenseFamilies>
+                    </configuration>
+                </plugin>
+                <plugin>
+                    <groupId>net.alchim31.maven</groupId>
+                    <artifactId>yuicompressor-maven-plugin</artifactId>
+                    <version>1.5.1</version>
+                    <configuration>
+                        <statistics>true</statistics>
+                        <jswarn>false</jswarn>
+                        <suffix>.min</suffix>
+                        <excludes>
+                            <!-- -->
+                            <exclude>**/*.nocompress.js</exclude>
+                            <!-- select 2 -->
+                            <exclude>**/i18n/*.js</exclude>
+                            <exclude>**/select2*.js</exclude>
+                            <!-- datetime picker -->
+                            <exclude>**/moment-with-locales.js</exclude>
+                            <exclude>**/moment-with-locales.min.js</exclude>
+                            <exclude>**/tempusdominus-bootstrap-4.js</exclude>
+                            
<exclude>**/tempusdominus-bootstrap-4.min.js</exclude>
+                            <!-- boostrap growl -->
+                            <exclude>**/bootstrap-growl.js</exclude>
+                            <exclude>**/bootstrap-growl.min.js</exclude>
+                        </excludes>
+                    </configuration>
+                    <executions>
+                        <execution>
+                            <goals>
+                                <goal>compress</goal>
+                            </goals>
+                        </execution>
+                    </executions>
+                </plugin>
+                <plugin>
+                    <groupId>org.apache.maven.plugins</groupId>
+                    <artifactId>maven-docck-plugin</artifactId>
+                    <version>1.2</version>
+                </plugin>
+                <plugin>
+                    <groupId>org.codehaus.mojo</groupId>
+                    <artifactId>clirr-maven-plugin</artifactId>
+                    <version>2.8</version>
+                </plugin>
+            </plugins>
+        </pluginManagement>
+        <plugins>
+            <!--  We want to package up license resources in the JARs produced 
 -->
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-remote-resources-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <id>process-resource-bundles</id>
+                        <goals>
+                            <goal>process</goal>
+                        </goals>
+                        <configuration>
+                            <resourceBundles>
+                                <resourceBundle>
+                                    
org.apache:apache-jar-resource-bundle:1.4</resourceBundle>
+                            </resourceBundles>
+
+                            <!-- Reference the supplemental-model artifact from
+                            module supplemental-model -->
+                            <supplementalModelArtifacts>
+                                <supplementalModelArtifact>
+                                    
org.apache.causeway:supplemental-model:1.0</supplementalModelArtifact>
+                            </supplementalModelArtifacts>
+
+                            <!-- Specify the path, relative to the JAR root,
+                            where the supplemental model file is located -->
+                            <supplementalModels>
+                                
<supplementalModel>supplemental-models.xml</supplementalModel>
+                            </supplementalModels>
+                            <properties>
+                                <projectTimespan>2010~2022</projectTimespan>
+                                <postDepListText>
+                                    The above (auto-generated) list aggregates
+                                    the dependencies (either directly or
+                                    transitively) of all the modules that make
+                                    up ${project.name}. You can use
+                                    mvn dependency:list or mvn dependency:tree
+                                    to view dependencies by submodule.
+                                    ${license.additional-notes}
+                                </postDepListText>
+                            </properties>
+                            <!-- APACHE CAUSEWAY customisation 12/21: end -->
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-enforcer-plugin</artifactId>
+                <configuration>
+                    <rules>
+                        <requireMavenVersion>
+                            <version>[3.9.9,)</version>
+                        </requireMavenVersion>
+                        <requireJavaVersion>
+                            <version>[17,)</version>
+                        </requireJavaVersion>
+                        <!-- seemingly not compatible with use of 
3.4.0-SNAPSHOT
+                        placeholders
+                            <requirePluginVersions> <message>All plugin 
versions must be defined!</message>
+                            <banLatest>true</banLatest> 
<banRelease>true</banRelease>
+                        </requirePluginVersions> -->
+                        <DependencyConvergence />
+                    </rules>
+                </configuration>
+                <executions>
+                    <!-- goal:enforce supposedly binds to phase:validate, but
+                    explicit binding seems to be required -->
+                    <execution>
+                        <id>validate-enforce</id>
+                        <phase>validate</phase>
+                        <goals>
+                            <goal>enforce</goal>
+                        </goals>
+                    </execution>
+                    <execution>
+                        <id>enforce-maven-version</id>
+                        <goals>
+                            <goal>enforce</goal>
+                        </goals>
+                        <configuration>
+                            <rules>
+                                <requireMavenVersion>
+                                    
<version>${minimalMavenBuildVersion}</version>
+                                </requireMavenVersion>
+                            </rules>
+                        </configuration>
+                    </execution>
+                    <execution>
+                        <id>enforce-java-version</id>
+                        <goals>
+                            <goal>enforce</goal>
+                        </goals>
+                        <configuration>
+                            <rules>
+                                <requireJavaVersion>
+                                    
<version>${minimalJavaBuildVersion}</version>
+                                </requireJavaVersion>
+                            </rules>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-site-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <id>attach-descriptor</id>
+                        <goals>
+                            <goal>attach-descriptor</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+        <extensions>
+            <!-- scp and sftp support for deployments. -->
+            <extension>
+                <groupId>org.apache.maven.wagon</groupId>
+                <artifactId>wagon-ssh</artifactId>
+                <version>3.5.3</version>
+            </extension>
+            <!-- ftp support for deployments. -->
+            <extension>
+                <groupId>org.apache.maven.wagon</groupId>
+                <artifactId>wagon-ftp</artifactId>
+                <version>3.5.3</version>
+            </extension>
+        </extensions>
+    </build>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.projectlombok</groupId>
+            <artifactId>lombok</artifactId>
+            <scope>provided</scope>
+        </dependency>
+    </dependencies>
+
+    <profiles>
+        <!--  START SNIPPET: release-profile  -->
+        <profile>
+            <id>apache-release</id>
+            <activation>
+                <property>
+                    <name>apache-release</name>
+                </property>
+            </activation>
+            <properties>
+                <skipTests>true</skipTests>
+            </properties>
+            <build>
+                <plugins>
+                    <plugin>
+                        <groupId>dev.pcms</groupId>
+                        <artifactId>lombok-maven-plugin</artifactId>
+                        <version>1.18.36.2</version>
+                        <configuration>
+                            
<sourceDirectory>${project.basedir}/src/main/java</sourceDirectory>
+                            
<outputDirectory>${delombok.output}</outputDirectory>
+                            <addOutputDirectory>false</addOutputDirectory>
+                        </configuration>
+                        <executions>
+                            <execution>
+                                <phase>generate-sources</phase>
+                                <goals>
+                                    <goal>delombok</goal>
+                                </goals>
+                            </execution>
+                        </executions>
+                    </plugin>
+                    <!--  Create a source-release artifact that contains the
+                    fully buildable
+                                   project directory source structure. This is 
the artifact which is
+                                   the official subject of any release vote.  
-->
+                    <plugin>
+                        <groupId>org.apache.maven.plugins</groupId>
+                        <artifactId>maven-assembly-plugin</artifactId>
+                        <dependencies>
+                            <dependency>
+                                <groupId>org.apache.apache.resources</groupId>
+                                <artifactId>
+                                    
apache-source-release-assembly-descriptor</artifactId>
+                                <version>1.7</version>
+                            </dependency>
+                        </dependencies>
+                        <executions>
+                            <execution>
+                                <id>source-release-assembly</id>
+                                <phase>package</phase>
+                                <goals>
+                                    <goal>single</goal>
+                                </goals>
+                                <configuration>
+                                    
<archiveBaseDirectory>..</archiveBaseDirectory>
+                                    
<runOnlyAtExecutionRoot>true</runOnlyAtExecutionRoot>
+                                    <descriptorRefs>
+                                        <descriptorRef>
+                                            
${sourceReleaseAssemblyDescriptor}</descriptorRef>
+                                    </descriptorRefs>
+                                    <tarLongFileMode>posix</tarLongFileMode>
+                                </configuration>
+                            </execution>
+                        </executions>
+                    </plugin>
+                    <!--  We want to deploy the artifact to a staging location
+                    for perusal  -->
+                    <plugin>
+                        <inherited>true</inherited>
+                        <groupId>org.apache.maven.plugins</groupId>
+                        <artifactId>maven-deploy-plugin</artifactId>
+                        <configuration>
+                            <!-- invalid config
+                            <updateReleaseInfo>true</updateReleaseInfo> -->
+                        </configuration>
+                    </plugin>
+                    <plugin>
+                        <groupId>org.apache.maven.plugins</groupId>
+                        <artifactId>maven-source-plugin</artifactId>
+                        <executions>
+                            <execution>
+                                <id>attach-sources</id>
+                                <goals>
+                                    <goal>jar-no-fork</goal>
+                                </goals>
+                            </execution>
+                        </executions>
+                    </plugin>
+                    <plugin>
+                        <groupId>org.apache.maven.plugins</groupId>
+                        <artifactId>maven-javadoc-plugin</artifactId>
+                        <executions>
+                            <execution>
+                                <id>attach-javadocs</id>
+                                <goals>
+                                    <goal>jar</goal>
+                                </goals>
+                                <configuration>
+                                    <notimestamp>true</notimestamp>
+                                    <sourcepath>${delombok.output}</sourcepath>
+                                    <doclint>none</doclint>
+                                    <failOnError>false</failOnError>
+
+                                    <debug>true</debug>
+                                    <minmemory>128m</minmemory>
+                                    <maxmemory>1024m</maxmemory>
+                                    <quiet>true</quiet>
+                                    <doctitle>${project.name} 
${project.version}</doctitle>
+                                    <windowtitle>${project.name}
+                                        ${project.version}</windowtitle>
+                                    <splitindex>true</splitindex>
+                                    
<encoding>${project.build.sourceEncoding}</encoding>
+                                    <links>
+                                        <link>
+                                            
https://docs.oracle.com/en/java/javase/17/docs/api/</link>
+                                    </links>
+                                    <linksource>true</linksource>
+                                    
<detectOfflineLinks>false</detectOfflineLinks>
+                                </configuration>
+                            </execution>
+                        </executions>
+                    </plugin>
+                    <!--  calculate checksums of source release for Apache dist
+                    area  -->
+                    <plugin>
+                        <groupId>net.nicoulaj.maven.plugins</groupId>
+                        <artifactId>checksum-maven-plugin</artifactId>
+                        <version>1.11</version>
+                        <executions>
+                            <execution>
+                                <id>source-release-checksum</id>
+                                <goals>
+                                    <goal>artifacts</goal>
+                                </goals>
+                                <!--  execute prior to maven-gpg-plugin:sign 
due
+                                to
+                                
https://github.com/nicoulaj/checksum-maven-plugin/issues/112  -->
+                                <phase>post-integration-test</phase>
+                                <configuration>
+                                    <algorithms>
+                                        <algorithm>SHA-512</algorithm>
+                                    </algorithms>
+                                    <!--
+                                    
https://maven.apache.org/apache-resource-bundles/#source-release-assembly-descriptor
  -->
+                                    
<includeClassifiers>source-release</includeClassifiers>
+                                    
<excludeMainArtifact>true</excludeMainArtifact>
+                                    <csvSummary>false</csvSummary>
+                                    <!--  attach SHA-512 checksum as well to
+                                    upload to Maven Staging Repo,
+                                                           as this eases 
uploading from stage to dist and doesn't do harm in Maven Central  -->
+                                    <attachChecksums>true</attachChecksums>
+                                </configuration>
+                            </execution>
+                        </executions>
+                    </plugin>
+                    <!--  We want to sign the artifact, the POM, and all 
attached
+                    artifacts (except for SHA-512 checksum)  -->
+                    <plugin>
+                        <groupId>org.apache.maven.plugins</groupId>
+                        <artifactId>maven-gpg-plugin</artifactId>
+                        <executions>
+                            <execution>
+                                <id>sign-release-artifacts</id>
+                                <goals>
+                                    <goal>sign</goal>
+                                </goals>
+                            </execution>
+                        </executions>
+                    </plugin>
+
+                </plugins>
+            </build>
+
+        </profile>
+        <!--  END SNIPPET: release-profile  -->
+
+        <profile>
+            <id>causeway-lombok-workaround</id>
+            <activation>
+                <file>
+                    <missing>${basedir}/logging-dn-enhance.properties</missing>
+                </file>
+            </activation>
+            <build>
+                <plugins>
+                    <plugin>
+                        <groupId>org.apache.maven.plugins</groupId>
+                        <artifactId>maven-compiler-plugin</artifactId>
+                        <configuration>
+                            <showDeprecation>true</showDeprecation>
+                            <showWarnings>true</showWarnings>
+                            <parameters>true</parameters>
+                            <annotationProcessorPaths>
+                                <!-- this is a workaround
+
+                                Details: The maven compiler plugin ought to 
pick up all available processors on
+                                the classpath.
+                                In effect Lombok's annotation processor should 
be picked up implicitly, but yet
+                                is not
+
+                                Presence of file 
'logging-dn-enhance.properties' decativates this profile and
+                                the maven-compiler-plugin runs all annotation 
processors as picked up from the
+                                class-path.
+                                -->
+                                <annotationProcessorPath>
+                                    <groupId>org.projectlombok</groupId>
+                                    <artifactId>lombok</artifactId>
+                                    <version>${lombok.version}</version>
+                                </annotationProcessorPath>
+                            </annotationProcessorPaths>
+                        </configuration>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+        <profile>
+            <id>enforce-output-timestamp-property</id>
+            <activation>
+                <!-- multiple profile activation conditions have AND logic ... 
-->
+                <property>
+                    <name>apache-release</name>
+                </property>
+                <file>
+                    <missing>${basedir}/.maven-apache-parent.marker</missing>
+                </file>
+            </activation>
+            <build>
+                <plugins>
+                    <plugin>
+                        <groupId>org.apache.maven.plugins</groupId>
+                        <artifactId>maven-enforcer-plugin</artifactId>
+                        <executions>
+                            <execution>
+                                <id>enforce-output-timestamp-property</id>
+                                <goals>
+                                    <goal>enforce</goal>
+                                </goals>
+                                <configuration>
+                                    <rules>
+                                        <requireProperty>
+                                            <property>
+                                                
project.build.outputTimestamp</property>
+                                            <message>
+                                                The property
+                                                "project.build.outputTimestamp"
+                                                must be set on the reactor's
+                                                root pom.xml to make the build
+                                                reproducible. Further
+                                                information at
+                                                
"https://maven.apache.org/guides/mini/guide-reproducible-builds.html";.</message>
+                                        </requireProperty>
+                                    </rules>
+                                </configuration>
+                            </execution>
+                        </executions>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+        <profile>
+            <id>sources</id>
+            <activation>
+                <property>
+                    <name>sources</name>
+                </property>
+            </activation>
+            <build>
+                <plugins>
+                    <plugin>
+                        <groupId>org.apache.maven.plugins</groupId>
+                        <artifactId>maven-source-plugin</artifactId>
+                        <executions>
+                            <execution>
+                                <id>attach-sources</id>
+                                <phase>deploy</phase>
+                                <goals>
+                                    <goal>jar-no-fork</goal>
+                                </goals>
+                            </execution>
+                        </executions>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+        <profile>
+            <id>nightly-localfs-repo</id>
+            <activation>
+                <property>
+                    <name>nightly-localfs-repo</name>
+                </property>
+            </activation>
+            <distributionManagement>
+                <repository>
+                    <id>nightly-localfs-repo</id>
+                    <name>Temporary Local Filesystem Staging Repository</name>
+                    <url>file://${MVN_SNAPSHOTS_PATH}</url>
+                </repository>
+            </distributionManagement>
+            <build>
+                <plugins>
+                    <plugin>
+                        <artifactId>maven-deploy-plugin</artifactId>
+                        <version>3.1.4</version>
+                        <configuration>
+                            <altDeploymentRepository>
+                                
nightly-localfs-repo::file://${MVN_SNAPSHOTS_PATH}
+                            </altDeploymentRepository>
+                        </configuration>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+        <profile>
+            <id>jacoco-report-xml</id>
+            <activation>
+                <property>
+                    <name>jacoco-report-xml</name>
+                </property>
+            </activation>
+            <properties>
+                <surefire-plugin.argLine>
+                    @{argLine}
+                    -Xmx384m
+                </surefire-plugin.argLine>
+            </properties>
+            <build>
+                <plugins>
+                    <plugin>
+                        <groupId>org.jacoco</groupId>
+                        <artifactId>jacoco-maven-plugin</artifactId>
+                        <version>0.8.13</version>
+                        <executions>
+                            <execution>
+                                <goals>
+                                    <goal>prepare-agent</goal>
+                                </goals>
+                            </execution>
+                            <execution>
+                                <id>report</id>
+                                <phase>prepare-package</phase>
+                                <goals>
+                                    <goal>report</goal>
+                                </goals>
+                                <configuration>
+                                    <formats>XML</formats>
+                                </configuration>
+                            </execution>
+                        </executions>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+        <profile>
+            <id>telemetry</id>
+            <activation>
+                <property>
+                    <name>telemetry</name>
+                </property>
+            </activation>
+            <build>
+                <plugins>
+                    <plugin>
+                        <groupId>io.opentelemetry.contrib</groupId>
+                        <artifactId>opentelemetry-maven-extension</artifactId>
+                        <version>1.46.0-alpha</version>
+                        <extensions>true</extensions>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+    </profiles>
+
+</project>
+
+
diff --git a/pom.xml b/pom.xml
index 60d655cfbde..14c6379e742 100644
--- a/pom.xml
+++ b/pom.xml
@@ -86,6 +86,7 @@
             -->
             <modules>
                 <module>bom</module>
+                <module>parent</module>
                 <module>core</module>
                 <module>extensions</module>
                 <module>mavendeps</module>
diff --git a/regressiontests/pom.xml b/regressiontests/pom.xml
index 4f7be12795c..37f82de7aa4 100644
--- a/regressiontests/pom.xml
+++ b/regressiontests/pom.xml
@@ -24,9 +24,9 @@
 
     <parent>
         <groupId>org.apache.causeway</groupId>
-        <artifactId>causeway-bom</artifactId>
+        <artifactId>causeway-parent</artifactId>
         <version>${revision}</version>
-        <relativePath>../bom/pom.xml</relativePath>
+        <relativePath>../parent/pom.xml</relativePath>
     </parent>
 
     <groupId>org.apache.causeway.regressiontests</groupId>

Reply via email to