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>
