blob: 92c2fb3a7aeecca385eed3f55195a21af8ee8262 [file]
<?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>4.0.0-SNAPSHOT</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.12</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-10-08T16:48:14Z</project.build.outputTimestamp>
<delombok.output>${project.build.directory}/delombok</delombok.output>
<!-- PLUGINS -->
<maven-compiler-plugin.version>3.15.0</maven-compiler-plugin.version>
<ethlo-eclipselink-maven-plugin.version>3.0.2</ethlo-eclipselink-maven-plugin.version>
<maven-release-plugin.version>3.3.1</maven-release-plugin.version>
<maven-source-plugin.version>3.4.0</maven-source-plugin.version>
<maven-surefire-plugin.version>3.5.5</maven-surefire-plugin.version>
<maven-surefire-report-plugin.version>3.5.5</maven-surefire-report-plugin.version>
<!-- for surefire, failsafe and surefire-report -->
<maven.plugin.tools.version>3.15.2</maven.plugin.tools.version>
<maven.jar.phase>package</maven.jar.phase> <!-- override with 'none' for
artifacts that need to skip the maven-jar-plugin-->
<!-- config migrated here from core POM -->
<git-plugin.gitDir>${project.basedir}/.git</git-plugin.gitDir>
<dependency.locations.enabled>false</dependency.locations.enabled>
<testsToExclude>**/*IntegrationTest.java</testsToExclude>
<checkstyle.configLocation>
${project.basedir}/core/codequality/checkstyle.xml</checkstyle.configLocation>
<pmd.ruleset>${project.basedir}/core/codequality/pmd.xml</pmd.ruleset>
</properties>
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>false</filtering>
<includes>
<include>**</include>
</includes>
</resource>
<resource>
<directory>src/main/java</directory>
<filtering>false</filtering>
<includes>
<include>**</include>
</includes>
<excludes>
<exclude>**/*.java</exclude>
</excludes>
</resource>
</resources>
<testResources>
<testResource>
<directory>src/test/resources</directory>
<filtering>false</filtering>
</testResource>
<testResource>
<directory>src/test/java</directory>
<filtering>false</filtering>
<includes>
<include>**</include>
</includes>
<excludes>
<exclude>**/*.java</exclude>
</excludes>
</testResource>
</testResources>
<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.2.0</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>3.8.0</version> <!--bumped-->
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-clean-plugin</artifactId>
<version>3.5.0</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 -->
<dependencies>
<dependency>
<groupId>org.ow2.asm</groupId>
<artifactId>asm</artifactId>
<version>9.9.1</version>
</dependency>
</dependencies>
</plugin>
<plugin>
<groupId>com.ethlo.persistence.tools</groupId>
<artifactId>eclipselink-maven-plugin</artifactId>
<version>${ethlo-eclipselink-maven-plugin.version}</version>
<executions>
<execution>
<phase>process-classes</phase>
<goals>
<goal>weave</goal>
</goals>
</execution>
</executions>
</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.10.0</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.4.0</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<version>3.6.2</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-gpg-plugin</artifactId>
<version>3.2.8</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.1</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.5.0</version>
<executions>
<execution>
<id>default-jar</id>
<phase>${maven.jar.phase}</phase>
</execution>
</executions>
<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.12.0</version>
<configuration>
<notimestamp>true</notimestamp>
<!-- avoid noise for svn/gitpubsub -->
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugin-tools</groupId>
<artifactId>maven-plugin-annotations</artifactId>
<version>${maven.plugin.tools.version}</version>
</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.5.0</version> <!--bumped-->
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-scm-plugin</artifactId>
<version>2.2.1</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.2</version>
</plugin>
<plugin>
<groupId>org.apache.rat</groupId>
<artifactId>apache-rat-plugin</artifactId>
<version>0.18</version>
<configuration>
<reportFile>target/rat.xml</reportFile>
<consoleOutput>true</consoleOutput>
<reportStyle>xml</reportStyle>
<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>
<plugin>
<groupId>pl.project13.maven</groupId>
<artifactId>git-commit-id-plugin</artifactId>
<version>${git-commit-id-plugin.version}</version>
<executions>
<execution>
<id>get-the-git-infos</id>
<goals>
<goal>revision</goal>
</goals>
<phase>validate</phase>
</execution>
</executions>
<configuration>
<verbose>false</verbose>
<useNativeGit>true</useNativeGit>
<dotGitDirectory>${git-plugin.gitDir}</dotGitDirectory>
<dateFormat>yyyy-MM-dd'T'HH:mm:ssZ</dateFormat>
<dateFormatTimeZone>${user.timezone}</dateFormatTimeZone>
<failOnNoGitDirectory>true</failOnNoGitDirectory>
<injectAllReactorProjects>true</injectAllReactorProjects>
<generateGitPropertiesFile>true</generateGitPropertiesFile>
<generateGitPropertiesFilename>
${project.build.outputDirectory}/${git-plugin.propertiesDir}/git.properties</generateGitPropertiesFilename>
<abbrevLength>7</abbrevLength>
</configuration>
</plugin>
</plugins>
</pluginManagement>
<outputDirectory>${project.build.directory}/classes</outputDirectory>
<testOutputDirectory>${project.build.directory}/test-classes</testOutputDirectory>
<plugins>
<!-- build plugins; apply to all inheriting modules. Note that some
plugins
also come from the "super-POM" for the default bindings. For example, in
the 'default' lifecycle, the resources, compiler, surefire, jar, install
and deploy plugins are automatically included because they provide the default
bindings. For the 'site' lifecycle, the site plugin is automatically included. -->
<!-- run using: mvn org.apache.rat:apache-rat-plugin:check -->
<plugin>
<groupId>org.apache.rat</groupId>
<artifactId>apache-rat-plugin</artifactId>
<inherited>true</inherited>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<inherited>true</inherited>
</plugin>
<!-- 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>
<distributionManagement>
<repository>
<id>apache.releases.https</id>
<name>Apache Release Distribution Repository</name>
<url>
https://repository.apache.org/service/local/staging/deploy/maven2</url>
</repository>
<snapshotRepository>
<id>apache.snapshots.https</id>
<name>${distMgmtSnapshotsName}</name>
<url>${distMgmtSnapshotsUrl}</url>
</snapshotRepository>
</distributionManagement>
<build>
<plugins>
<plugin>
<groupId>dev.pcms</groupId>
<artifactId>lombok-maven-plugin</artifactId>
<version>1.18.42.1</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>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-toolchains-plugin</artifactId>
<version>3.2.0</version>
<executions>
<execution>
<goals>
<goal>toolchain</goal>
</goals>
</execution>
</executions>
<configuration>
<toolchains>
<jdk>
<version>17</version>
<vendor>openjdk</vendor>
</jdk>
</toolchains>
</configuration>
</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-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>jpa-weave</id>
<activation>
<!-- all conditions need to be met-->
<file><exists>${basedir}/.build-jpa-enhance</exists></file>
<property><name>enhanceEclipselink</name></property>
</activation>
<build>
<plugins>
<plugin>
<groupId>com.ethlo.persistence.tools</groupId>
<artifactId>eclipselink-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>src</id>
<activation>
<property>
<name>!skip.src</name>
</property>
</activation>
<build>
<plugins>
<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>
</plugins>
</build>
</profile>
<profile>
<id>owasp</id>
<activation>
<property>
<name>owasp</name>
</property>
</activation>
<build>
<plugins>
<plugin>
<groupId>org.owasp</groupId>
<artifactId>dependency-check-maven</artifactId>
<version>12.2.1</version>
<executions>
<execution>
<id>owasp-aggregate</id>
<goals>
<goal>aggregate</goal>
</goals>
<configuration>
<skipProvidedScope>true</skipProvidedScope>
<skipRuntimeScope>true</skipRuntimeScope>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>jdeps</id>
<activation>
<property>
<name>jdeps</name>
</property>
</activation>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jdeps-plugin</artifactId>
<version>3.2.0</version>
<executions>
<execution>
<id>jdeps-jdkinternals</id>
<goals>
<goal>jdkinternals</goal>
<goal>test-jdkinternals</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>git</id>
<activation>
<property>
<name>git</name>
</property>
</activation>
<build>
<plugins>
<plugin>
<groupId>pl.project13.maven</groupId>
<artifactId>git-commit-id-plugin</artifactId>
</plugin>
</plugins>
</build>
</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>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.14</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.55.0-alpha</version>
<extensions>true</extensions>
</plugin>
</plugins>
</build>
</profile>
</profiles>
</project>