blob: 5bf1009f7bf4c48821e2c2b9239b5f656ea613cb [file] [log] [blame]
<?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.
-->
<!--
This pom is the top-level parent, responsible for deploying to ASF using the apache-release, and as defined in org.apache:apache global parent.
At the same time, we want it to inherit from org.springframework.boot:spring-boot-starter-parent.
It is therefore a copy of org.apache:apache, with customisations clearly identified (though some plugins versions have been bumped to more recent versions).
-->
<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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<!-- for more information, see the documentation of this POM: http://maven.apache.org/pom/asf/ -->
<!-- APACHE ISIS customisation 1/21: : start -->
<!--
<groupId>org.apache</groupId>
<artifactId>apache</artifactId>
<version>27</version>
-->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.7.4</version>
<relativePath/>
</parent>
<groupId>org.apache.isis</groupId>
<artifactId>isis-bom</artifactId>
<version>2.0.0-M9</version>
<!-- APACHE ISIS customisation 1/21: end -->
<packaging>pom</packaging>
<!-- APACHE ISIS customisation 2/21: start -->
<!--
<name>The Apache Software Foundation</name>
<description> The Apache Software Foundation provides support for the Apache community of open-source software projects. The Apache projects are characterized by a collaborative, consensus based development process, an open and pragmatic software license, and a desire to create high quality software that leads the way in its field. We consider ourselves not simply a group of projects sharing a server, but rather a community of developers and users. </description>
<url>https://www.apache.org/</url>
-->
<name>Apache Isis</name>
<description>
Apache Isis Bill of Material (BOM).
Also the parent POM for the core framework and extensions.
</description>
<url>https://isis.apache.org</url>
<!-- APACHE ISIS customisation 2/21: end -->
<organization>
<name>The Apache Software Foundation</name>
<url>https://www.apache.org/</url>
</organization>
<licenses>
<license>
<name>Apache License, Version 2.0</name>
<url>https://www.apache.org/licenses/LICENSE-2.0.txt</url>
<distribution>repo</distribution>
</license>
</licenses>
<!-- APACHE ISIS customisation 3/21: start -->
<!--
<mailingLists>
<mailingList>
<name>Apache Announce List</name>
<subscribe>announce-subscribe@apache.org</subscribe>
<unsubscribe>announce-unsubscribe@apache.org</unsubscribe>
<post>announce@apache.org</post>
<archive>https://mail-archives.apache.org/mod_mbox/www-announce/</archive>
</mailingList>
</mailingLists>
<scm>
<connection>scm:git:https://gitbox.apache.org/repos/asf/maven-apache-parent.git</connection>
<developerConnection>scm:git:https://gitbox.apache.org/repos/asf/maven-apache-parent.git</developerConnection>
<url>https://github.com/apache/maven-apache-parent/tree/${project.scm.tag}</url>
<tag>apache-27</tag>
</scm>
-->
<mailingLists>
<mailingList>
<name>developers</name>
<archive>http://mail-archives.apache.org/mod_mbox/isis-dev/</archive>
<post>dev@isis.apache.org</post>
<subscribe>dev-subscribe@isis.apache.org</subscribe>
<unsubscribe>dev-unsubscribe@isis.apache.org</unsubscribe>
</mailingList>
<mailingList>
<name>users</name>
<archive>http://mail-archives.apache.org/mod_mbox/isis-users/</archive>
<post>users@isis.apache.org</post>
<subscribe>users-subscribe@isis.apache.org</subscribe>
<unsubscribe>users-unsubscribe@isis.apache.org</unsubscribe>
</mailingList>
</mailingLists>
<scm>
<connection>scm:git:http://github.com/apache/isis.git</connection>
<developerConnection>scm:git:https://github.com/apache/isis.git</developerConnection>
<url>http://github.com/apache/isis</url>
<tag>HEAD</tag>
</scm>
<!-- APACHE ISIS customisation 3/21: end -->
<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>
<!-- APACHE ISIS customisation 4/21: start -->
<inceptionYear>2010</inceptionYear>
<issueManagement>
<system>Jira</system>
<url>https://issues.apache.org/jira/browse/ISIS</url>
</issueManagement>
<ciManagement>
<system>CI</system>
<url>https://github.com/apache-isis-committers/isis-nightly</url>
</ciManagement>
<developers>
<developer>
<id>ahuber</id>
<name>Andi Huber</name>
<email>ahuber@apache.org</email>
<roles>
<role>pmc</role>
<role>committer</role>
</roles>
<timezone>+1</timezone>
</developer>
<developer>
<id>bibryam</id>
<name>Bilgin Ibryam</name>
<email>bibryam@apache.org</email>
<roles>
<role>pmc</role>
<role>committer</role>
</roles>
<timezone>+0</timezone>
</developer>
<developer>
<id>danhaywood</id>
<name>Dan Haywood</name>
<email>danhaywood@apache.org</email>
<roles>
<role>pmc</role>
<role>committer</role>
</roles>
<timezone>+0</timezone>
</developer>
<developer>
<id>dslaughter</id>
<name>Dave Slaughter</name>
<email>dslaughter@apache.org</email>
<roles>
<role>pmc</role>
<role>committer</role>
</roles>
<timezone>-6</timezone>
</developer>
<developer>
<id>jcvanderwal</id>
<name>Jeroen van der Wal</name>
<email>jcvanderwal@apache.org</email>
<roles>
<role>pmc</role>
<role>committer</role>
</roles>
<timezone>+1</timezone>
</developer>
<developer>
<id>jdoornenbal</id>
<name>Johan Doornenbal</name>
<email>jdoornenbal@apache.org</email>
<roles>
<role>pmc</role>
<role>committer</role>
</roles>
<timezone>+1</timezone>
</developer>
<developer>
<id>joergrade</id>
<name>Joerg Rade</name>
<email>joergrade@apache.org</email>
<roles>
<role>pmc</role>
<role>committer</role>
</roles>
<timezone>+1</timezone>
</developer>
<developer>
<id>kevin</id>
<name>Kevin Meyer</name>
<email>kevin@apache.org</email>
<roles>
<role>pmc chair</role>
<role>pmc</role>
<role>committer</role>
</roles>
<timezone>+2</timezone>
</developer>
<developer>
<id>madytyoo</id>
<name>Maurizio Taverna</name>
<email>madytyoo@apache.org</email>
<roles>
<role>pmc</role>
<role>committer</role>
</roles>
<timezone>+1</timezone>
</developer>
<developer>
<id>mgrigorov</id>
<name>Martin Grigorov</name>
<email>mgrigorov@apache.org</email>
<roles>
<role>pmc</role>
<role>committer</role>
</roles>
<timezone>+2</timezone>
</developer>
<developer>
<id>mnour</id>
<name>Mohammad Nour El-Din</name>
<email>mnour@apache.org</email>
<roles>
<role>pmc</role>
<role>mentor while incubating</role>
</roles>
<timezone>+1</timezone>
</developer>
<developer>
<id>oscarbou</id>
<name>Oscar Bou</name>
<email>oscarbou@apache.org</email>
<roles>
<role>pmc</role>
<role>committer</role>
</roles>
<timezone>+1</timezone>
</developer>
<developer>
<id>rmatthews</id>
<name>Robert Matthews</name>
<email>rmatthews@apache.org</email>
<roles>
<role>pmc</role>
<role>committer</role>
</roles>
<timezone>+0</timezone>
</developer>
<developer>
<id>struberg</id>
<name>Mark Struberg</name>
<email>struberg@apache.org</email>
<roles>
<role>pmc</role>
<role>mentor while incubating</role>
</roles>
<timezone>+1</timezone>
</developer>
<developer>
<id>themalkolm</id>
<name>Alexander Krasnuhkin</name>
<email>themalkolm@apache.org</email>
<roles>
<role>pmc</role>
<role>committer</role>
</roles>
<timezone>+3</timezone>
</developer>
</developers>
<!-- APACHE ISIS customisation 4/21: end -->
<properties>
<distMgmtSnapshotsName>Apache Development Snapshot Repository</distMgmtSnapshotsName>
<distMgmtSnapshotsUrl>https://repository.apache.org/content/repositories/snapshots</distMgmtSnapshotsUrl>
<organization.logo>https://www.apache.org/images/asf_logo_wide_2016.png</organization.logo>
<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.2.5</minimalMavenBuildVersion>
<minimalJavaBuildVersion>1.8</minimalJavaBuildVersion>
<!-- APACHE ISIS customisation 5/21: start -->
<java.version>11</java.version>
<maven.compiler.source>${java.version}</maven.compiler.source>
<maven.compiler.target>${java.version}</maven.compiler.target>
<maven.compiler.release>11</maven.compiler.release>
<surefire.version>3.0.0-M7</surefire.version>
<!-- APACHE ISIS customisation 5/21: end -->
<!-- for surefire, failsafe and surefire-report -->
<maven.plugin.tools.version>3.6.4</maven.plugin.tools.version>
<!-- for m-plugin-p and maven-plugin-annotations -->
<assembly.tarLongFileMode>posix</assembly.tarLongFileMode>
<project.build.outputTimestamp>2022-10-14T08:34:19Z</project.build.outputTimestamp>
<!-- APACHE ISIS customisation 6/21: start -->
<delombok.output>${project.build.directory}/delombok</delombok.output>
<!-- LIBRARY DEPENDENCIES -->
<archunit.version>1.0.0</archunit.version>
<asciidoctorj.version>2.5.6</asciidoctorj.version>
<asm.version>9.4</asm.version> <!-- keep in sync with org.eclipse.persistence:org.eclipse.persistence.asm -->
<approvaltests.version>18.4.0</approvaltests.version>
<assertj-guava.version>3.5.0</assertj-guava.version>
<camel.version>3.14.5</camel.version>
<commons-email.version>1.5</commons-email.version>
<commons-httpclient.version>4.5.12</commons-httpclient.version>
<commons-io.version>2.11.0</commons-io.version>
<cucumber.version>7.8.1</cucumber.version>
<cxf-rt-rs-client.version>3.5.4</cxf-rt-rs-client.version>
<danhaywood-java-assertjext.version>0.1.0</danhaywood-java-assertjext.version>
<danhaywood-java-testsupport.version>1.0.0</danhaywood-java-testsupport.version>
<datanucleus-api-jdo.version>6.0.1</datanucleus-api-jdo.version>
<datanucleus-api-jpa.version>6.0.1</datanucleus-api-jpa.version>
<datanucleus-core.version>6.0.2</datanucleus-core.version>
<datanucleus-jdo-api.version>3.2.1</datanucleus-jdo-api.version>
<datanucleus-jdo-query.version>6.0.1</datanucleus-jdo-query.version>
<datanucleus-jodatime.version>6.0.0-release</datanucleus-jodatime.version>
<datanucleus-maven-plugin.version>6.0.0-release</datanucleus-maven-plugin.version>
<datanucleus-rdbms.version>6.0.2</datanucleus-rdbms.version>
<datatables.version>1.12.1</datatables.version> <!-- keep in sync with DatatablesDotNet -->
<docx4j.version>11.3.2</docx4j.version>
<easymock.version>4.3</easymock.version>
<error_prone_annotations.version>2.16</error_prone_annotations.version>
<git-commit-id-plugin.version>4.9.10</git-commit-id-plugin.version>
<guava.version>31.1-jre</guava.version>
<htmlparser.version>2.1</htmlparser.version>
<jakartaee.version>10.0.0</jakartaee.version>
<javafaker.version>1.0.2</javafaker.version>
<javassist.version>3.29.2-GA</javassist.version>
<javax-servlet.version>4.0.1</javax-servlet.version>
<jaxb-impl.version>2.3.6</jaxb-impl.version>
<jaxws-ri.version>2.3.5</jaxws-ri.version>
<jbcrypt.version>0.4</jbcrypt.version>
<jboss-jaxrs-api_2.1_spec.version>2.0.2.Final</jboss-jaxrs-api_2.1_spec.version>
<!-- v3.2 not available yet, use datanucleus staging for now -->
<!-- <jdo-api.version>3.2</jdo-api.version> -->
<jdom.version>2.0.6.1</jdom.version>
<jmock.version>2.12.0</jmock.version>
<joda-time.version>2.11.2</joda-time.version>
<jopt-simple.version>6.0-alpha-3</jopt-simple.version>
<jquery-ui.version>1.13.2</jquery-ui.version> <!-- org.webjars:jquery-ui -->
<jsr305.version>3.0.2</jsr305.version>
<jsoup.version>1.15.3</jsoup.version>
<junit-jupiter.version>5.9.1</junit-jupiter.version> <!-- overrides spring -->
<junit-platform.version>1.9.1</junit-platform.version>
<log4jdbc-remix.version>0.2.7</log4jdbc-remix.version>
<lombok.version>1.18.24</lombok.version> <!-- overriding Spring -->
<maven-eclipse-plugin.version>2.10</maven-eclipse-plugin.version>
<maven-release-plugin.version>3.0.0-M6</maven-release-plugin.version>
<maven-war-plugin.version>3.3.2</maven-war-plugin.version>
<momentjs.version>2.29.4</momentjs.version> <!-- keep in sync: org.apache.isis.viewer.wicket.ui.components.scalars.datepicker.MomentJsReference -->
<!-- See https://nodejs.org/en/download/ for latest node and npm (lts) versions -->
<node.version>v16.17.0</node.version>
<npm.version>8.15.0</npm.version>
<objenesis.version>3.3</objenesis.version>
<ognl.version>3.3.4</ognl.version>
<picocontainer.version>2.15</picocontainer.version>
<poi.version>5.2.3</poi.version>
<quartz-scheduler.version>2.3.2</quartz-scheduler.version>
<resteasy-spring-boot-starter.version>5.0.0.Final</resteasy-spring-boot-starter.version>
<resteasy.version>5.0.0.Final</resteasy.version> <!-- keep in sync with property defined in resteasy4-spring-boot-starter -->
<select2.version>4.0.13</select2.version>
<shiro.version>1.10.0</shiro.version>
<simpleslackapi.version>1.4.0</simpleslackapi.version>
<slf4j-api.version>2.0.3</slf4j-api.version> <!-- also provided by spring-boot-starter-logging, needed to solve convergence issues -->
<spring-boot.version>2.7.4</spring-boot.version>
<summernote.version>0.8.11</summernote.version>
<surefire-plugin.argLine>-Xmx512m</surefire-plugin.argLine>
<swagger-core.version>1.6.7</swagger-core.version>
<togglz.version>3.2.1</togglz.version>
<vaadin.version>23.2.4</vaadin.version>
<wicket.version>9.11.0</wicket.version> <!-- 9.4.0 is last known good, before wicket put jupiter-api on the module graph -->
<wicket-bootstrap.version>6.0.0-M8</wicket-bootstrap.version> <!-- de.agilecoders.wicket:wicket-bootstrap... -->
<wicket-webjars.version>3.0.4</wicket-webjars.version>
<wicket-viewer-jquery.version>3.6.1</wicket-viewer-jquery.version> <!-- as served by wicket via webjars -->
<wicketstuff.version>${wicket.version}</wicketstuff.version> <!-- org.wicketstuff:wicketstuff-select2 -->
<wicketstuff-gmap3.version>${wicket.version}</wicketstuff-gmap3.version>
<!-- APACHE ISIS customisation 6/21: end -->
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.apache.maven.plugin-tools</groupId>
<artifactId>maven-plugin-annotations</artifactId>
<version>${maven.plugin.tools.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
<repositories>
<!-- APACHE ISIS customisation 7/21: start -->
<!-- breaks dependabot run: timeout due to repo not accessible
<repository>
<id>apache.snapshots</id>
<name>Apache Snapshot Repository</name>
<url>https://repository.apache.org/snapshots</url>
<releases>
<enabled>false</enabled>
</releases>
</repository>
-->
<!-- APACHE ISIS customisation 7/21: end -->
</repositories>
<pluginRepositories>
<!-- APACHE ISIS customisation 8/21: start -->
<!-- breaks dependabot run: timeout due to repo not accessible
<pluginRepository>
<id>apache.snapshots</id>
<name>Apache Snapshot Repository</name>
<url>https://repository.apache.org/snapshots</url>
<releases>
<enabled>false</enabled>
</releases>
</pluginRepository>
-->
<!-- APACHE ISIS customisation 8/21: end -->
</pluginRepositories>
<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.4.2</version> <!--bumped-->
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-clean-plugin</artifactId>
<version>3.2.0</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.10.1</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>3.3.0</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId>
<version>3.0.0</version> <!--bumped-->
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-ear-plugin</artifactId>
<version>3.2.0</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<version>3.1.0</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<version>${surefire.version}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-gpg-plugin</artifactId>
<version>3.0.1</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.3.0</version> <!--bumped-->
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-install-plugin</artifactId>
<version>3.0.1</version> <!--bumped-->
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-invoker-plugin</artifactId>
<version>3.3.0</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.2.2</version>
<configuration>
<archive>
<manifest>
<addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
</manifest>
</archive>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>3.4.1</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.4.1</version> <!--bumped-->
<configuration>
<pluginManagementExcludes>
<exclude>org.eclipse.m2e:lifecycle-mapping</exclude>
</pluginManagementExcludes>
</configuration>
</plugin>
<!-- START SNIPPET: release-plugin-configuration -->
<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>
</configuration>
</plugin>
<!-- END SNIPPET: release-plugin-configuration -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-remote-resources-plugin</artifactId>
<version>3.0.0</version> <!--bumped-->
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>3.3.0</version> <!--bumped-->
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-scm-plugin</artifactId>
<version>1.13.0</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-scm-publish-plugin</artifactId>
<version>3.1.0</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-site-plugin</artifactId>
<version>3.12.1</version> <!--bumped-->
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>3.2.1</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>${surefire.version}</version>
<!-- APACHE ISIS customisation 9/21: start -->
<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>
<!-- APACHE ISIS customisation 9/21: end -->
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-report-plugin</artifactId>
<version>${surefire.version}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.3.2</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.4.0</version>
</plugin>
<plugin>
<groupId>org.apache.rat</groupId>
<artifactId>apache-rat-plugin</artifactId>
<version>0.15</version>
<!-- APACHE ISIS customisation 10/21: start -->
<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>**/*.columnOrder.txt</exclude>
<exclude>**/*.drawio.svg</exclude>
<exclude>**/META-INF/spring.factories</exclude>
<exclude>**/incubator/clients/kroviz/package.json.d/project.info</exclude>
<exclude>**/isis/tooling/model4adoc/src/test/resources/org/apache/isis/tooling/adocmodel/test/**</exclude>
<exclude>**/*.iml</exclude>
<exclude>**/webpack.config.js</exclude>
<exclude>**/webpack.generated.js</exclude>
<exclude>**/pnpm-lock.yaml</exclude>
<exclude>**/pnpmfile.js</exclude>
<exclude>**/*.pdn</exclude>
<exclude>**/*.svg</exclude>
<exclude>**/*.rtf</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>**/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>**/jquery.zclip.js</exclude>
<exclude>**/simple-sidebar.css</exclude>
<exclude>**/isis-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>**/datanucleus.log</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>**/intellij/launch/*.xml</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>
</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>
<!-- APACHE ISIS customisation 10/21: end -->
</plugin>
<!-- APACHE ISIS customisation 11/21: start -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-docck-plugin</artifactId>
<version>1.1</version>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>clirr-maven-plugin</artifactId>
<version>2.8</version>
</plugin>
<!-- APACHE ISIS customisation 11/21: end -->
</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>
<!-- APACHE ISIS customisation 12/21: start -->
<!-- Reference the supplemental-model artifact from module supplemental-model -->
<supplementalModelArtifacts>
<supplementalModelArtifact>org.apache.isis:supplemental-model:1.0</supplementalModelArtifact>
</supplementalModelArtifacts>
<runOnlyAtExecutionRoot>true</runOnlyAtExecutionRoot>
<!-- 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 ISIS customisation 12/21: end -->
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<!-- APACHE ISIS customisation 13/21: start -->
<configuration>
<rules>
<requireMavenVersion>
<version>[3.6,)</version>
</requireMavenVersion>
<requireJavaVersion>
<version>[11,)</version>
</requireJavaVersion>
<!-- seemingly not compatible with use of 2.0.0-SNAPSHOT placeholders
<requirePluginVersions> <message>All plugin versions must be defined!</message>
<banLatest>true</banLatest> <banRelease>true</banRelease> </requirePluginVersions> -->
<DependencyConvergence />
</rules>
</configuration>
<!-- APACHE ISIS customisation 13/21: end -->
<executions>
<!-- APACHE ISIS customisation 14/21: start -->
<!-- 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>
<!-- APACHE ISIS customisation 14/21: end -->
<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>
<!-- APACHE ISIS customisation 15/21: start -->
<extensions>
<!-- scp and sftp support for deployments. -->
<extension>
<groupId>org.apache.maven.wagon</groupId>
<artifactId>wagon-ssh</artifactId>
<version>3.5.2</version>
</extension>
<!-- ftp support for deployments. -->
<extension>
<groupId>org.apache.maven.wagon</groupId>
<artifactId>wagon-ftp</artifactId>
<version>3.5.2</version>
</extension>
</extensions>
<!-- APACHE ISIS customisation 15/21: end -->
</build>
<profiles>
<!-- START SNIPPET: release-profile -->
<profile>
<id>apache-release</id>
<!-- APACHE ISIS customisation 16/21: start -->
<activation>
<property>
<name>apache-release</name>
</property>
</activation>
<properties>
<skipTests>true</skipTests>
</properties>
<!-- APACHE ISIS customisation 16/21: end -->
<build>
<plugins>
<!-- APACHE ISIS customisation 17/21: start -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-gpg-plugin</artifactId>
<executions>
<execution>
<id>sign-release-artifacts</id>
<goals>
<goal>sign</goal>
</goals>
<configuration>
<gpgArguments>
<arg>--pinentry-mode</arg>
<arg>loopback</arg>
</gpgArguments>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.projectlombok</groupId>
<artifactId>lombok-maven-plugin</artifactId>
<version>1.18.20.0</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>
<!-- APACHE ISIS customisation 17/21: end -->
<!-- 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.0.6</version>
</dependency>
</dependencies>
<executions>
<execution>
<id>source-release-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
<configuration>
<!-- APACHE ISIS customisation 18/21: start -->
<archiveBaseDirectory>..</archiveBaseDirectory>
<!-- APACHE ISIS customisation 18/21: end -->
<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>
<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>
<!-- APACHE ISIS customisation 19/21: start -->
<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/11/docs/api/</link>
</links>
<linksource>true</linksource>
<detectOfflineLinks>false</detectOfflineLinks>
</configuration>
<!-- APACHE ISIS customisation 19/21: end -->
</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>
<!-- APACHE ISIS customisation 20/21: start -->
<modules>
<module>../core</module>
<module>../extensions</module>
<module>../mavendeps</module>
<module>../starters</module>
<module>../testing</module>
<module>../valuetypes</module>
</modules>
<!-- APACHE ISIS customisation 20/21: end -->
</profile>
<!-- END SNIPPET: release-profile -->
<profile>
<id>only-eclipse</id>
<activation>
<property>
<name>m2e.version</name>
</property>
</activation>
<build>
<pluginManagement>
<plugins>
<!-- Disable execution of some plugins in m2e (https://www.eclipse.org/m2e/documentation/m2e-execution-not-covered.html) -->
<plugin>
<groupId>org.eclipse.m2e</groupId>
<artifactId>lifecycle-mapping</artifactId>
<version>1.0.0</version>
<!-- as this is an artificial artifact only use in a profile (https://bugs.eclipse.org/bugs/show_bug.cgi?id=367870#c18) -->
<configuration>
<lifecycleMappingMetadata>
<pluginExecutions>
<pluginExecution>
<!-- no native m2e support yet (https://issues.apache.org/jira/browse/MRRESOURCES-85) -->
<pluginExecutionFilter>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-remote-resources-plugin</artifactId>
<versionRange>[0,1.8.0)</versionRange>
<goals>
<goal>process</goal>
</goals>
</pluginExecutionFilter>
<action>
<ignore/>
</action>
</pluginExecution>
</pluginExecutions>
</lifecycleMappingMetadata>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
</profile>
<!-- APACHE ISIS customisation 21/21: start -->
<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/isis</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.0.0</version>
<configuration>
<altDeploymentRepository>
nightly-localfs-repo::default::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} -Xmx512m</surefire-plugin.argLine>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.8.8</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>
<!-- APACHE ISIS customisation 21/21: end -->
</profiles>
</project>