<?xml version="1.0" encoding="UTF-8"?>
<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>

	<groupId>org.frankframework</groupId>
	<artifactId>frankframework-parent</artifactId>
	<version>9.4.3</version>
	<packaging>pom</packaging>

	<name>Frank!Framework parent</name>
	<description>The Frank!Framework is an easy-to-use, stateless integration framework which allows (transactional) messages to be modified and exchanged between different systems.</description>
	<url>https://frankframework.org</url>
	<inceptionYear>2002</inceptionYear>

	<organization>
		<name>Frank!Framework</name>
		<url>https://frankframework.org</url>
	</organization>

	<licenses>
		<license>
			<name>Apache License, Version 2.0</name>
			<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
			<distribution>repo</distribution>
		</license>
	</licenses>

	<developers>
		<developer>
			<name>Niels Meijer</name>
			<email>niels@frankframework.org</email>
			<organization>Frank!Framework</organization>
			<organizationUrl>https://frankframework.org</organizationUrl>
		</developer>
		<developer>
			<name>Tim van der Leeuw</name>
			<email>tim@frankframework.org</email>
			<organization>Frank!Framework</organization>
			<organizationUrl>https://frankframework.org</organizationUrl>
		</developer>
		<developer>
			<name>Erik van Dongen</name>
			<email>erik@frankframework.org</email>
			<organization>Frank!Framework</organization>
			<organizationUrl>https://frankframework.org</organizationUrl>
		</developer>
		<developer>
			<name>Ali Sihab Akcan</name>
			<email>ali@ibissource.org</email>
			<organization>Frank!Framework</organization>
			<organizationUrl>https://frankframework.org</organizationUrl>
		</developer>
		<developer>
			<name>Jaco de Groot</name>
			<email>jaco@ibissource.org</email>
			<organization>Frank!Framework</organization>
			<organizationUrl>https://frankframework.org</organizationUrl>
		</developer>
		<developer>
			<name>Gerrit van Brakel</name>
			<email>gerrit@ibissource.org</email>
			<organization>Frank!Framework</organization>
			<organizationUrl>https://frankframework.org</organizationUrl>
		</developer>
	</developers>

	<scm>
		<connection>scm:git:https://github.com/frankframework/frankframework.git</connection>
		<developerConnection>scm:git:https://github.com/frankframework/frankframework.git</developerConnection>
		<tag>v9.4.3</tag>
		<url>https://github.com/frankframework/frankframework</url>
	</scm>

	<properties>
		<revision>9.4.3</revision>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<maven.compiler.target>17</maven.compiler.target>
		<maven.compiler.source>17</maven.compiler.source>
		<maven.compiler.proc>full</maven.compiler.proc>
		<log4j2.version>2.25.3</log4j2.version>

		<sonar.organization>frank-framework</sonar.organization>
		<sonar.host.url>https://sonarcloud.io</sonar.host.url>

		<junit.excludedTags />
		<junit.includedTags />

		<jackson.version>2.20.1</jackson.version>
		<cxf.version>4.1.4</cxf.version>
		<spring.version>6.2.15</spring.version>
		<spring-security.version>6.5.7</spring-security.version>
		<spring-integration.version>6.5.5</spring-integration.version>
		<spring.boot.version>3.5.9</spring.boot.version>
		<tomcat.version>10.1.54</tomcat.version>
		<bouncycastle.version>1.83</bouncycastle.version>

		<narayana.version>7.3.3.Final</narayana.version>
		<jboss-logging.version>3.6.1.Final</jboss-logging.version>
		<micrometer.version>1.16.1</micrometer.version>
		<argLine />
		<!-- add empty default argLine so Surefire won't fail when JaCoCo isn't present -->
		<!-- property [iaf.rootdir] is available to get the root of the project, because of the [directory-maven-plugin] -->
		<frankdoc.version>4.3.0-SNAPSHOT</frankdoc.version>
		<javadoc-plugin.version>3.12.0</javadoc-plugin.version>

		<!-- DB Driver Versions -->
		<h2.driver.version>2.4.240</h2.driver.version>
		<db2.driver.version>11.5.9.0</db2.driver.version>
		<oracle.driver.version>23.26.0.0.0</oracle.driver.version>
		<oracle.driver.jdkversion>11</oracle.driver.jdkversion>
		<mssql.driver.version>12.10.2.jre11</mssql.driver.version>
		<mysql.driver.version>9.5.0</mysql.driver.version>
		<mariadb.driver.version>3.5.7</mariadb.driver.version>
		<postgresql.driver.version>42.7.8</postgresql.driver.version>
		<mongodb.driver.version>5.6.2</mongodb.driver.version>

		<!-- Other versions for building Docker images and running IAF-Test -->
		<activemq.driver.version>6.2.0</activemq.driver.version>
		<artemis.driver.version>2.44.0</artemis.driver.version>

		<rabbitmq.driver.version>5.28.0</rabbitmq.driver.version>
		<rabbitmq.jms.version>3.5.0</rabbitmq.jms.version>

		<aws.java.sdk.version>2.39.2</aws.java.sdk.version>

		<!-- Some test dependency versions -->
		<mockito.version>5.21.0</mockito.version>
		<junit.version>5.14.1</junit.version>
	</properties>

	<dependencyManagement>
		<dependencies>

			<!-- Import BOM to lock all versions -->
			<dependency>
				<groupId>org.springframework</groupId>
				<artifactId>spring-framework-bom</artifactId>
				<version>${spring.version}</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>

			<dependency>
				<groupId>org.springframework.integration</groupId>
				<artifactId>spring-integration-bom</artifactId>
				<version>${spring-integration.version}</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>

			<dependency>
				<groupId>io.netty</groupId>
				<artifactId>netty-bom</artifactId>
				<version>4.2.9.Final</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>

			<!-- Explicitly define Spring dependencies, to avoid version conflicts with Spring Security (https://www.baeldung.com/spring-security-with-maven) -->
			<dependency>
				<groupId>org.springframework.security</groupId>
				<artifactId>spring-security-bom</artifactId>
				<version>${spring-security.version}</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>

			<dependency>
				<groupId>org.apache.logging.log4j</groupId>
				<artifactId>log4j-bom</artifactId>
				<version>${log4j2.version}</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>

			<dependency>
				<groupId>software.amazon.awssdk</groupId>
				<artifactId>bom</artifactId>
				<version>${aws.java.sdk.version}</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>

			<dependency>
				<groupId>com.fasterxml.jackson</groupId>
				<artifactId>jackson-bom</artifactId>
				<version>${jackson.version}</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>

			<dependency>
				<groupId>org.xmlunit</groupId>
				<artifactId>xmlunit-bom</artifactId>
				<version>2.11.0</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>

			<dependency>
				<groupId>org.testcontainers</groupId>
				<artifactId>testcontainers-bom</artifactId>
				<version>1.21.4</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>

			<!-- Lock transient dependency versions to fix CVE's -->
			<dependency>
				<groupId>org.apache.httpcomponents</groupId>
				<artifactId>httpcore</artifactId>
				<version>4.4.16</version>
			</dependency>
			<dependency>
				<groupId>org.apache.httpcomponents</groupId>
				<artifactId>httpclient</artifactId>
				<version>4.5.14</version>
			</dependency>
			<dependency>
				<groupId>org.apache.httpcomponents</groupId>
				<artifactId>httpmime</artifactId>
				<version>4.5.14</version>
			</dependency>
			<dependency>
				<groupId>commons-beanutils</groupId>
				<artifactId>commons-beanutils</artifactId>
				<version>1.11.0</version>
			</dependency>
			<dependency>
				<groupId>commons-fileupload</groupId>
				<artifactId>commons-fileupload</artifactId>
				<version>1.6.0</version>
			</dependency>
			<dependency>
				<groupId>net.minidev</groupId>
				<artifactId>json-smart</artifactId>
				<version>2.6.0</version>
			</dependency>
			<dependency>
				<groupId>org.jdom</groupId>
				<artifactId>jdom2</artifactId>
				<version>2.0.6.1</version>
			</dependency>
			<dependency>
				<groupId>com.google.protobuf</groupId>
				<artifactId>protobuf-java</artifactId>
				<version>4.33.2</version>
			</dependency>
			<dependency>
				<groupId>com.google.guava</groupId>
				<artifactId>guava</artifactId>
				<version>33.5.0-jre</version>
			</dependency>
			<dependency>
				<!-- needed for io.fabric8:kubernetes-client transitive deps -->
				<groupId>com.squareup.okhttp3</groupId>
				<artifactId>okhttp</artifactId>
				<version>4.12.0</version>
			</dependency>
			<dependency>
				<groupId>com.nimbusds</groupId>
				<artifactId>nimbus-jose-jwt</artifactId>
				<version>10.6</version>
			</dependency>
			<!-- End Lock transient deps -->

			<dependency>
				<groupId>org.frankframework</groupId>
				<artifactId>frankframework-commons</artifactId>
				<version>${project.version}</version>
			</dependency>
			<dependency>
				<groupId>org.frankframework</groupId>
				<artifactId>property-expression-evaluator</artifactId>
				<version>${project.version}</version>
			</dependency>
			<dependency>
				<groupId>org.frankframework</groupId>
				<artifactId>frankframework-security</artifactId>
				<version>${project.version}</version>
			</dependency>
			<dependency>
				<groupId>org.frankframework</groupId>
				<artifactId>frankframework-management-gateway</artifactId>
				<version>${project.version}</version>
			</dependency>
			<dependency>
				<groupId>org.frankframework</groupId>
				<artifactId>frankframework-core</artifactId>
				<version>${project.version}</version>
			</dependency>
			<dependency>
				<groupId>org.frankframework</groupId>
				<artifactId>credentialprovider</artifactId>
				<version>${project.version}</version>
			</dependency>
			<dependency>
				<groupId>org.frankframework</groupId>
				<artifactId>frankframework-tibco</artifactId>
				<version>${project.version}</version>
			</dependency>
			<dependency>
				<groupId>org.frankframework</groupId>
				<artifactId>frankframework-sap</artifactId>
				<version>${project.version}</version>
			</dependency>
			<dependency>
				<groupId>org.frankframework</groupId>
				<artifactId>frankframework-messaging</artifactId>
				<version>${project.version}</version>
			</dependency>
			<dependency>
				<groupId>org.frankframework</groupId>
				<artifactId>frankframework-larva</artifactId>
				<version>${project.version}</version>
			</dependency>
			<dependency>
				<groupId>org.frankframework</groupId>
				<artifactId>frankframework-akamai</artifactId>
				<version>${project.version}</version>
			</dependency>
			<dependency>
				<groupId>org.frankframework</groupId>
				<artifactId>frankframework-cmis</artifactId>
				<version>${project.version}</version>
			</dependency>
			<dependency>
				<groupId>org.frankframework</groupId>
				<artifactId>frankframework-console</artifactId>
				<version>${project.version}</version>
				<type>pom</type>
			</dependency>
			<dependency>
				<groupId>org.frankframework</groupId>
				<artifactId>frankframework-console-frontend</artifactId>
				<version>${project.version}</version>
			</dependency>
			<dependency>
				<groupId>org.frankframework</groupId>
				<artifactId>frankframework-console-backend</artifactId>
				<version>${project.version}</version>
			</dependency>
			<dependency>
				<groupId>org.frankframework</groupId>
				<artifactId>frankframework-console-webapp</artifactId>
				<version>${project.version}</version>
			</dependency>
			<dependency>
				<groupId>org.frankframework</groupId>
				<artifactId>frankframework-webapp</artifactId>
				<version>${project.version}</version>
				<type>war</type>
			</dependency>
			<dependency>
				<groupId>org.frankframework</groupId>
				<artifactId>frankframework-ear</artifactId>
				<version>${project.version}</version>
				<type>ear</type>
			</dependency>
			<dependency>
				<groupId>org.frankframework</groupId>
				<artifactId>frankframework-test</artifactId>
				<version>${project.version}</version>
			</dependency>
			<dependency>
				<groupId>org.frankframework</groupId>
				<artifactId>frankframework-idin</artifactId>
				<version>${project.version}</version>
			</dependency>
			<dependency>
				<groupId>org.frankframework</groupId>
				<artifactId>frankframework-ladybug</artifactId>
				<version>${project.version}</version>
			</dependency>
			<dependency>
				<groupId>org.frankframework</groupId>
				<artifactId>frankframework-ladybug-common</artifactId>
				<version>${project.version}</version>
			</dependency>
			<dependency>
				<groupId>org.frankframework</groupId>
				<artifactId>frankframework-ladybug-rerunner</artifactId>
				<version>${project.version}</version>
			</dependency>
			<dependency>
				<groupId>org.frankframework</groupId>
				<artifactId>frankframework-ladybug-debugger</artifactId>
				<version>${project.version}</version>
			</dependency>
			<dependency>
				<groupId>org.frankframework</groupId>
				<artifactId>frankframework-aspose</artifactId>
				<version>${project.version}</version>
			</dependency>
			<dependency>
				<groupId>org.frankframework</groupId>
				<artifactId>frankframework-aws</artifactId>
				<version>${project.version}</version>
			</dependency>
			<dependency>
				<groupId>org.frankframework</groupId>
				<artifactId>frankframework-dbms</artifactId>
				<version>${project.version}</version>
			</dependency>
			<dependency>
				<groupId>org.frankframework</groupId>
				<artifactId>frankframework-nn-specials</artifactId>
				<version>${project.version}</version>
			</dependency>
			<dependency>
				<groupId>org.frankframework</groupId>
				<artifactId>frankframework-batch</artifactId>
				<version>${project.version}</version>
			</dependency>
			<dependency>
				<groupId>org.frankframework</groupId>
				<artifactId>frankframework-filesystem</artifactId>
				<version>${project.version}</version>
			</dependency>
			<dependency>
				<groupId>org.frankframework</groupId>
				<artifactId>frankframework-kubernetes</artifactId>
				<version>${project.version}</version>
			</dependency>

			<dependency>
				<groupId>org.frankframework</groupId>
				<artifactId>frankframework-bundle-minimal</artifactId>
				<version>${project.version}</version>
				<type>pom</type>
			</dependency>
			<dependency>
				<groupId>org.frankframework</groupId>
				<artifactId>frankframework-bundle-full</artifactId>
				<version>${project.version}</version>
				<type>pom</type>
			</dependency>

			<!-- SPRING to force versions -->
			<dependency>
				<!-- required for CMIS and the IbisTester class -->
				<groupId>org.springframework</groupId>
				<artifactId>spring-test</artifactId>
				<version>${spring.version}</version>
			</dependency>

			<!-- SLF4J Log binding -->
			<dependency>
				<groupId>org.slf4j</groupId>
				<artifactId>slf4j-api</artifactId>
				<version>2.0.17</version>
			</dependency>

			<!-- the bcpg depends on the other two modules, however to ensure we're using the latest version, explicitly define them here, dependabot will take care of the rest -->
			<dependency>
				<groupId>org.bouncycastle</groupId>
				<artifactId>bcprov-jdk18on</artifactId>
				<version>${bouncycastle.version}</version>
			</dependency>
			<dependency>
				<groupId>org.bouncycastle</groupId>
				<artifactId>bcutil-jdk18on</artifactId>
				<version>${bouncycastle.version}</version>
			</dependency>
			<dependency>
				<groupId>org.bouncycastle</groupId>
				<artifactId>bcpg-jdk18on</artifactId>
				<version>${bouncycastle.version}</version>
			</dependency>
			<dependency>
				<groupId>org.bouncycastle</groupId>
				<artifactId>bcpkix-jdk18on</artifactId>
				<version>${bouncycastle.version}</version>
			</dependency>

			<dependency>
				<groupId>org.glassfish.jaxb</groupId>
				<artifactId>jaxb-runtime</artifactId>
				<version>4.0.6</version>
			</dependency>
			<dependency>
				<groupId>org.apache.commons</groupId>
				<artifactId>commons-pool2</artifactId>
				<version>2.13.0</version>
			</dependency>
			<dependency>
				<groupId>org.apache.commons</groupId>
				<artifactId>commons-lang3</artifactId>
				<version>3.20.0</version>
			</dependency>
			<dependency>
				<groupId>org.apache.commons</groupId>
				<artifactId>commons-text</artifactId>
				<version>1.15.0</version>
			</dependency>
			<dependency>
				<groupId>commons-codec</groupId>
				<artifactId>commons-codec</artifactId>
				<version>1.20.0</version>
			</dependency>
			<dependency>
				<groupId>org.apache.commons</groupId>
				<artifactId>commons-collections4</artifactId>
				<version>4.5.0</version>
			</dependency>
			<dependency>
				<groupId>commons-net</groupId>
				<artifactId>commons-net</artifactId>
				<version>3.12.0</version>
			</dependency>
			<dependency>
				<groupId>commons-io</groupId>
				<artifactId>commons-io</artifactId>
				<version>2.21.0</version>
			</dependency>
			<dependency>
				<groupId>jakarta.mail</groupId>
				<artifactId>jakarta.mail-api</artifactId>
				<version>2.1.5</version>
			</dependency>
			<dependency>
				<groupId>org.eclipse.angus</groupId>
				<artifactId>angus-mail</artifactId>
				<version>2.0.5</version>
			</dependency>

			<!-- Spring Boot context loaders -->
			<dependency>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-starter</artifactId>
				<version>${spring.boot.version}</version>
				<exclusions>
					<exclusion>
						<groupId>org.springframework.boot</groupId>
						<artifactId>spring-boot-autoconfigure</artifactId>
					</exclusion>
					<exclusion>
						<groupId>org.springframework.boot</groupId>
						<artifactId>spring-boot-starter-logging</artifactId>
					</exclusion>
					<exclusion>
						<groupId>org.yaml</groupId>
						<artifactId>snakeyaml</artifactId>
					</exclusion>
				</exclusions>
			</dependency>
			<dependency>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-starter-security</artifactId>
				<version>${spring.boot.version}</version>
			</dependency>

			<!-- Define Liquibase once with all exclusions -->
			<dependency>
				<groupId>org.liquibase</groupId>
				<artifactId>liquibase-core</artifactId>
				<version>4.29.2</version>
				<exclusions>
					<exclusion>
						<groupId>javax.activation</groupId>
						<artifactId>javax.activation-api</artifactId>
					</exclusion>
					<exclusion>
						<groupId>javax.xml.bind</groupId>
						<artifactId>jaxb-api</artifactId>
					</exclusion>
				</exclusions>
			</dependency>

			<!-- Upgrade commons-compress because of vulnerability; transitive dep of testcontainers 1.19.x -->
			<dependency>
				<groupId>org.apache.commons</groupId>
				<artifactId>commons-compress</artifactId>
				<version>1.28.0</version>
			</dependency>
			<dependency>
				<groupId>jakarta.annotation</groupId>
				<artifactId>jakarta.annotation-api</artifactId>
				<version>3.0.0</version>
			</dependency>

			<!-- Because we use Spring-JCL we don't want Commons Logging. -->
			<dependency>
				<groupId>commons-logging</groupId>
				<artifactId>commons-logging</artifactId>
				<version>1.3.5</version>
				<scope>provided</scope>
			</dependency>

			<!-- API's are to compile, implementations should be provided by the application server -->
			<dependency>
				<groupId>jakarta.activation</groupId>
				<artifactId>jakarta.activation-api</artifactId>
				<version>2.1.4</version>
				<scope>provided</scope>
			</dependency>
			<dependency>
				<groupId>jakarta.transaction</groupId>
				<artifactId>jakarta.transaction-api</artifactId>
				<version>2.0.1</version>
				<scope>provided</scope>
			</dependency>
			<dependency>
				<groupId>jakarta.servlet</groupId>
				<artifactId>jakarta.servlet-api</artifactId>
				<version>6.1.0</version>
				<scope>provided</scope>
			</dependency>
			<dependency>
				<groupId>jakarta.jms</groupId>
				<artifactId>jakarta.jms-api</artifactId>
				<version>3.1.0</version>
				<scope>provided</scope>
			</dependency>
			<dependency>
				<groupId>org.projectlombok</groupId>
				<artifactId>lombok</artifactId>
				<version>1.18.42</version>
				<scope>provided</scope>
			</dependency>

			<!-- contains Tomcat for executable WAR archives -->
			<dependency>
				<groupId>org.apache.tomcat.embed</groupId>
				<artifactId>tomcat-embed-core</artifactId>
				<version>${tomcat.version}</version>
				<scope>provided</scope>
			</dependency>
			<dependency>
				<groupId>org.apache.tomcat.embed</groupId>
				<artifactId>tomcat-embed-el</artifactId>
				<version>${tomcat.version}</version>
				<scope>provided</scope>
			</dependency>
			<dependency>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-starter-tomcat</artifactId>
				<version>${spring.boot.version}</version>
				<scope>provided</scope>
			</dependency>

			<!-- contains the class and application 'loaders' for executable archives -->
			<dependency>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-loader</artifactId>
				<version>${spring.boot.version}</version>
				<scope>provided</scope>
			</dependency>
			<!-- aggregates all loggers to SLF4J -->
			<dependency>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-starter-logging</artifactId>
				<version>${spring.boot.version}</version>
				<scope>provided</scope>
			</dependency>

			<!-- test scoped dependencies -->
			<dependency>
				<groupId>org.junit.jupiter</groupId>
				<artifactId>junit-jupiter</artifactId>
				<version>${junit.version}</version>
				<scope>test</scope>
			</dependency>
			<dependency>
				<groupId>org.junit.jupiter</groupId>
				<artifactId>junit-jupiter-engine</artifactId>
				<version>${junit.version}</version>
				<scope>test</scope>
			</dependency>
			<dependency>
				<groupId>org.junit.jupiter</groupId>
				<artifactId>junit-jupiter-params</artifactId>
				<version>${junit.version}</version>
				<scope>test</scope>
			</dependency>
			<dependency>
				<groupId>org.mockito</groupId>
				<artifactId>mockito-core</artifactId>
				<version>${mockito.version}</version>
				<scope>test</scope>
			</dependency>
			<dependency>
				<groupId>org.mockito</groupId>
				<artifactId>mockito-junit-jupiter</artifactId>
				<version>${mockito.version}</version>
				<scope>test</scope>
			</dependency>
			<dependency>
				<groupId>org.hamcrest</groupId>
				<artifactId>hamcrest</artifactId>
				<version>2.2</version>
				<scope>test</scope>
			</dependency>
			<dependency>
				<groupId>org.awaitility</groupId>
				<artifactId>awaitility</artifactId>
				<version>4.3.0</version>
				<scope>test</scope>
			</dependency>
			<dependency>
				<groupId>net.oneandone.mockrunner</groupId>
				<artifactId>mockrunner-jms</artifactId>
				<version>3.0.1</version>
				<scope>test</scope>
				<exclusions>
					<exclusion>
						<groupId>ant</groupId>
						<artifactId>ant</artifactId>
					</exclusion>
					<exclusion>
						<groupId>xerces</groupId>
						<artifactId>xercesImpl</artifactId>
					</exclusion>
				</exclusions>
			</dependency>
		</dependencies>
	</dependencyManagement>

	<repositories>
		<repository>
			<snapshots>
				<enabled>false</enabled>
			</snapshots>
			<id>central</id>
			<name>Central Repository</name>
			<url>https://repo.maven.apache.org/maven2/</url>
		</repository>
		<repository>
			<id>frankframework</id>
			<url>https://nexus.frankframework.org/content/groups/public</url>
		</repository>
	</repositories>

	<build>
		<defaultGoal>clean verify spotbugs:check checkstyle:check</defaultGoal>

		<pluginManagement>
			<plugins>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-compiler-plugin</artifactId>
					<version>3.14.1</version>
					<configuration>
						<release>${maven.compiler.target}</release>
						<source>${maven.compiler.source}</source>
						<target>${maven.compiler.target}</target>
						<compilerArgs>
							<arg>-parameters</arg>
						</compilerArgs>
					</configuration>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-resources-plugin</artifactId>
					<version>3.4.0</version>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-jar-plugin</artifactId>
					<version>3.4.2</version>
					<configuration>
						<archive>
							<addMavenDescriptor>true</addMavenDescriptor>
							<manifest>
								<addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
								<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
							</manifest>
							<manifestEntries>
								<groupId>${project.groupId}</groupId>
								<artifactId>${project.artifactId}</artifactId>
							</manifestEntries>
						</archive>
					</configuration>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-surefire-plugin</artifactId>
					<version>3.5.4</version>
					<configuration>
						<redirectTestOutputToFile>true</redirectTestOutputToFile>
						<reuseForks>true</reuseForks>
						<argLine>@{argLine} -Dfile.encoding=CP-1252 --add-opens java.base/java.io=ALL-UNNAMED -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI</argLine>
					</configuration>
					<executions>
						<execution>
							<!-- This ID must be default-test otherwise tests will be executed twice -->
							<id>default-test</id>
							<goals>
								<goal>test</goal>
							</goals>
							<phase>test</phase>
							<configuration>
								<excludedGroups>larva,integration,${junit.excludedTags}</excludedGroups>
								<groups>${junit.includedTags}</groups>
							</configuration>
						</execution>
						<execution>
							<id>integration-tests</id>
							<goals>
								<goal>test</goal>
							</goals>
							<phase>integration-test</phase>
							<configuration>
								<excludedGroups>${junit.excludedTags}</excludedGroups>
								<groups>integration,larva</groups>
							</configuration>
						</execution>
					</executions>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-war-plugin</artifactId>
					<version>3.5.1</version>
					<configuration>
						<packagingExcludes>.gitignore</packagingExcludes>
						<archive>
							<manifest>
								<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
							</manifest>
							<manifestEntries>
								<DisableIBMJAXWSEngine>true</DisableIBMJAXWSEngine>
								<Enable-CDI>false</Enable-CDI>
							</manifestEntries>
						</archive>
					</configuration>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-source-plugin</artifactId>
					<version>3.4.0</version>
					<executions>
						<execution>
							<id>attach-sources</id>
							<goals>
								<goal>jar-no-fork</goal>
							</goals>
							<phase>prepare-package</phase>
						</execution>
					</executions>
				</plugin>
				<plugin>
					<groupId>org.projectlombok</groupId>
					<artifactId>lombok-maven-plugin</artifactId>
					<version>1.18.20.0</version>
					<dependencies>
						<!-- This specified version of Lombok can be removed when the lombok-maven-plugin is updated >= 1.18.30 -->
						<dependency>
							<groupId>org.projectlombok</groupId>
							<artifactId>lombok</artifactId>
							<version>1.18.42</version>
						</dependency>
					</dependencies>
					<executions>
						<execution>
							<goals>
								<goal>delombok</goal>
							</goals>
							<phase>generate-sources</phase>
							<configuration>
								<sourceDirectory>${project.basedir}/src/main/java</sourceDirectory>
								<addOutputDirectory>false</addOutputDirectory>
							</configuration>
						</execution>
					</executions>
				</plugin>
				<plugin>
					<groupId>com.diffplug.spotless</groupId>
					<artifactId>spotless-maven-plugin</artifactId>
					<version>2.46.1</version>
					<configuration>
						<java>
							<removeUnusedImports />
							<endWithNewline />
							<trimTrailingWhitespace />
							<importOrder>
								<file>${iaf.rootdir}/.importorder</file>
							</importOrder>
						</java>
						<pom>
							<sortPom>
								<expandEmptyElements>false</expandEmptyElements>
								<sortDependencies>scope</sortDependencies>
								<sortDependencyExclusions>groupId,artifactId</sortDependencyExclusions>
								<spaceBeforeCloseEmptyElement>true</spaceBeforeCloseEmptyElement>
								<nrOfIndentSpace>-1</nrOfIndentSpace>
							</sortPom>
						</pom>
					</configuration>
					<executions>
						<execution>
							<id>check</id>
							<goals>
								<goal>check</goal>
							</goals>
						</execution>
						<execution>
							<id>auto-apply</id>
							<goals>
								<goal>apply</goal>
							</goals>
							<phase>compile</phase>
						</execution>
					</executions>
				</plugin>
				<plugin>
					<groupId>org.cyclonedx</groupId>
					<artifactId>cyclonedx-maven-plugin</artifactId>
					<version>2.9.1</version>
					<configuration>
						<outputName>${project.artifactId}-${project.version}-bom</outputName>
					</configuration>
					<executions>
						<execution>
							<id>build-sbom-cyclonedx</id>
							<goals>
								<goal>makeAggregateBom</goal>
							</goals>
							<phase>package</phase>
						</execution>
					</executions>
				</plugin>
				<plugin>
					<groupId>org.spdx</groupId>
					<artifactId>spdx-maven-plugin</artifactId>
					<version>1.0.3</version>
					<executions>
						<execution>
							<id>build-sbom-spdx</id>
							<goals>
								<goal>createSPDX</goal>
							</goals>
							<phase>package</phase>
						</execution>
					</executions>
				</plugin>
				<plugin>
					<groupId>org.glassfish.copyright</groupId>
					<artifactId>glassfish-copyright-maven-plugin</artifactId>
					<version>2.4</version>
					<configuration>
						<excludeFile>${iaf.rootdir}/copyrightExcludeFile.txt</excludeFile>
						<exclude>DataSourceXAResourceRecoveryHelper.java,JmsXAResourceRecoveryHelper.java,NarayanaRecoveryManager.java,PasswordHash.java,FrankJ2V8LibraryLoader.java,ReplacingVariablesInputStream.java,ReplacingInputStream.java</exclude>
						<ignoreYear>true</ignoreYear>
						<useDash>true</useDash>
						<templateFile>${iaf.rootdir}/copyrightTemplateFile.txt</templateFile>
					</configuration>
					<executions>
						<execution>
							<id>Check-CopyRight-Notice</id>
							<goals>
								<!-- Checks for Copyright notices -->
								<goal>copyright</goal>
								<!-- Fails the build -->
								<goal>check</goal>
							</goals>
							<phase>process-sources</phase>
						</execution>
					</executions>
				</plugin>
				<plugin>
					<groupId>com.github.hazendaz.maven</groupId>
					<artifactId>directory-maven-plugin</artifactId>
					<version>1.2.2</version>
					<executions>
						<execution>
							<id>find-project-root-directory</id>
							<goals>
								<goal>directory-of</goal>
							</goals>
							<phase>initialize</phase>
							<configuration>
								<property>iaf.rootdir</property>
								<project>
									<groupId>org.frankframework</groupId>
									<artifactId>frankframework-parent</artifactId>
								</project>
							</configuration>
						</execution>
					</executions>
				</plugin>
				<plugin>
					<groupId>org.jacoco</groupId>
					<artifactId>jacoco-maven-plugin</artifactId>
					<version>0.8.14</version>
					<executions>
						<execution>
							<id>prepare-jacoco</id>
							<goals>
								<goal>prepare-agent</goal>
							</goals>
							<phase>initialize</phase>
						</execution>
						<execution>
							<id>generate-jacoco-report</id>
							<goals>
								<goal>report</goal>
							</goals>
							<phase>verify</phase>
						</execution>
					</executions>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-javadoc-plugin</artifactId>
					<version>${javadoc-plugin.version}</version>
					<configuration>
						<source>${maven.compiler.source}</source>
						<doclint>none</doclint>
						<quiet>true</quiet>
						<tags>
							<tag>
								<name>ff.parameters</name>
								<placement>a</placement>
								<head>Parameters</head>
							</tag>
							<!-- The ff.parameter tag can occur multiple times in the same JavaDoc comment.
								 The standard doclet does not properly format JavaDoc tags in this case. This
								 can be solved with a taglet, but we do not want that complexity.
								 We therefore accept that all occurrences of ff.parameter are formatted on the
								 same line.

								 The ff.parameter tag was introduced for the Frank!Doc. The Frank!Doc formats
								 it properly.
							-->
							<tag>
								<name>ff.parameter</name>
								<placement>a</placement>
								<head>Specific parameters</head>
							</tag>
							<tag>
								<name>ff.default</name>
								<placement>a</placement>
								<head>Default value</head>
							</tag>
							<tag>
								<name>ff.defaultElement</name>
								<placement>a</placement>
								<head>Default element</head>
							</tag>
							<tag>
								<name>ff.forward</name>
								<placement>X</placement>
							</tag>
						</tags>
						<useStandardDocletOptions>true</useStandardDocletOptions>
						<failOnError>false</failOnError>
					</configuration>
					<executions>
						<execution>
							<id>create-module-documentation</id>
							<goals>
								<goal>jar</goal>
							</goals>
							<phase>process-sources</phase>
						</execution>
					</executions>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-site-plugin</artifactId>
					<version>3.21.0</version>
					<configuration>
						<generateProjectInfo>false</generateProjectInfo>
					</configuration>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-checkstyle-plugin</artifactId>
					<version>3.6.0</version>
					<configuration>
						<consoleOutput>true</consoleOutput>
						<configLocation>${iaf.rootdir}/checkstyle.xml</configLocation>
						<propertyExpansion>config_loc=${iaf.rootdir}</propertyExpansion>
						<logViolationsToConsole>true</logViolationsToConsole>
						<includeTestSourceDirectory>true</includeTestSourceDirectory>
					</configuration>
					<dependencies>
						<dependency>
							<groupId>com.puppycrawl.tools</groupId>
							<artifactId>checkstyle</artifactId>
							<version>10.26.1</version>
						</dependency>
					</dependencies>
					<executions>
						<execution>
							<id>verify-code-style</id>
							<goals>
								<goal>check</goal>
							</goals>
							<phase>process-classes</phase>
						</execution>
					</executions>
				</plugin>
				<plugin>
					<groupId>org.codehaus.mojo</groupId>
					<artifactId>flatten-maven-plugin</artifactId>
					<version>1.7.3</version>
					<configuration>
						<updatePomFile>true</updatePomFile>
						<flattenMode>resolveCiFriendliesOnly</flattenMode>
					</configuration>
					<executions>
						<execution>
							<id>flatten</id>
							<goals>
								<goal>flatten</goal>
							</goals>
							<phase>initialize</phase>
						</execution>
						<execution>
							<id>clean</id>
							<goals>
								<goal>clean</goal>
							</goals>
							<phase>clean</phase>
						</execution>
					</executions>
				</plugin>
				<!-- Execute org.jasig.maven:notice-maven-plugin:generate in order to (re)generate a NOTICE file -->
				<plugin>
					<groupId>org.jasig.maven</groupId>
					<artifactId>notice-maven-plugin</artifactId>
					<version>2.0.0</version>
					<configuration>
						<excludedModules>
							<excludedModule>frankframework-sap</excludedModule>
							<excludedModule>frankframework-tibco</excludedModule>
							<excludedModule>frankframework-idin</excludedModule>
						</excludedModules>
						<noticeMessage>{0} - using: {1}</noticeMessage>
						<excludeOptional>true</excludeOptional>
						<generateChildNotices>false</generateChildNotices>
						<includeChildDependencies>true</includeChildDependencies>
						<licenseMapping>
							<param>license-mappings.xml</param>
						</licenseMapping>
					</configuration>
				</plugin>

				<!-- This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself -->
				<plugin>
					<groupId>org.eclipse.m2e</groupId>
					<artifactId>lifecycle-mapping</artifactId>
					<version>1.0.0</version>
					<configuration>
						<lifecycleMappingMetadata>
							<pluginExecutions>
								<pluginExecution>
									<pluginExecutionFilter>
										<groupId>org.glassfish.copyright</groupId>
										<artifactId>glassfish-copyright-maven-plugin</artifactId>
										<versionRange>[2.4,)</versionRange>
										<goals>
											<goal>check</goal>
											<goal>copyright</goal>
										</goals>
									</pluginExecutionFilter>
									<action>
										<ignore />
									</action>
								</pluginExecution>
								<pluginExecution>
									<pluginExecutionFilter>
										<groupId>com.github.hazendaz.maven</groupId>
										<artifactId>directory-maven-plugin</artifactId>
										<versionRange>[1,)</versionRange>
										<goals>
											<goal>directory-of</goal>
										</goals>
									</pluginExecutionFilter>
									<action>
										<ignore />
									</action>
								</pluginExecution>
								<pluginExecution>
									<pluginExecutionFilter>
										<groupId>org.apache.maven.plugins</groupId>
										<artifactId>maven-checkstyle-plugin</artifactId>
										<versionRange>[3.1.2,)</versionRange>
										<goals>
											<goal>check</goal>
										</goals>
									</pluginExecutionFilter>
									<action>
										<ignore />
									</action>
								</pluginExecution>
								<pluginExecution>
									<pluginExecutionFilter>
										<groupId>org.apache.maven.plugins</groupId>
										<artifactId>maven-enforcer-plugin</artifactId>
										<versionRange>[3.2.1,)</versionRange>
										<goals>
											<goal>enforce</goal>
										</goals>
									</pluginExecutionFilter>
									<action>
										<ignore />
									</action>
								</pluginExecution>
								<pluginExecution>
									<pluginExecutionFilter>
										<groupId>com.diffplug.spotless</groupId>
										<artifactId>spotless-maven-plugin</artifactId>
										<versionRange>[2.46.1,)</versionRange>
										<goals>
											<goal>check</goal>
											<goal>apply</goal>
										</goals>
									</pluginExecutionFilter>
									<action>
										<ignore />
									</action>
								</pluginExecution>
							</pluginExecutions>
						</lifecycleMappingMetadata>
					</configuration>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-enforcer-plugin</artifactId>
					<version>3.6.2</version>
					<executions>
						<execution>
							<id>enforce-lib-ban</id>
							<goals>
								<goal>enforce</goal>
							</goals>
							<configuration>
								<rules>
									<bannedDependencies>
										<excludes>
											<!-- Java Mail was renamed to the Jakarta Mail -->
											<exclude>com.sun.mail:javax.mail</exclude>
											<!-- Don't use com.sun.mail packages anymore -->
											<exclude>org.eclipse.angus:angus-mail:[1.0.0]</exclude>
											<!-- javax.transaction-api was renamed to the jakarta.transaction-api -->
											<exclude>javax.transaction:javax.transaction-api</exclude>
											<exclude>org.glassfish:javax.json</exclude>
											<exclude>com.google.code.findbugs:jsr305</exclude>
										</excludes>
										<message>use jakarta packages instead</message>
									</bannedDependencies>
									<bannedDependencies>
										<!-- Java Annotations was renamed to the Jakarta Annotations -->
										<excludes>
											<exclude>javax.annotation:javax.annotation-api</exclude>
											<exclude>javax.xml.ws:jaxws-api</exclude>
											<exclude>javax.xml.bind:jaxb-api</exclude>
											<exclude>javax.xml.soap:javax.xml.soap-api</exclude>
										</excludes>
										<message>Prevent the use of both javax and jakarta packages</message>
									</bannedDependencies>
									<bannedDependencies>
										<!-- The jms api now finally officially exists, no need to use geronimo anymore -->
										<!-- Also excludes version 2 which uses the old javax namespaces -->
										<excludes>
											<exclude>jakarta.jms:jakarta.jms-api:[2.0.2],[2.0.3]</exclude>
											<exclude>org.apache.geronimo.specs:geronimo-jms_1.1_spec</exclude>
											<exclude>org.apache.geronimo.specs:geronimo-jms_2.0_spec</exclude>
										</excludes>
										<message>Don't use geronimo anymore, ensure javax namespace is used</message>
									</bannedDependencies>
									<bannedDependencies>
										<excludes>
											<exclude>javax.xml.stream:stax-api</exclude>
											<exclude>xml-apis:xml-apis</exclude>
										</excludes>
										<message>Prevent the use of STAX1, use STAX 2 (org.codehaus.woodstox:stax2-api) instead!</message>
									</bannedDependencies>
									<bannedDependencies>
										<!-- The activation framework was renamed to the jakarta activation framework -->
										<excludes>
											<exclude>javax.activation:javax.activation-api</exclude>
											<exclude>com.sun.activation:javax.activation</exclude>
											<exclude>com.sun.activation:jakarta.activation</exclude>
											<exclude>javax.activation:activation</exclude>
										</excludes>
										<message>Don't touch versions, we should use jakarta.activation-api:2.1.3</message>
									</bannedDependencies>
									<bannedDependencies>
										<excludes>
											<exclude>org.bouncycastle:*-jdk12</exclude>
											<exclude>org.bouncycastle:*-jdk14</exclude>
											<exclude>org.bouncycastle:*-jdk15</exclude>
											<exclude>org.bouncycastle:*-jdk16</exclude>
											<exclude>org.bouncycastle:*-jdk15to18</exclude>
											<exclude>org.bouncycastle:*-ext-jdk15on</exclude>
											<exclude>org.bouncycastle:*-jdk15on</exclude>
											<exclude>bouncycastle:*</exclude>
										</excludes>
										<message>use the newer 'org.bouncycastle:*-jdk18on' version of org.bouncycastle</message>
									</bannedDependencies>
									<bannedDependencies>
										<excludes>
											<exclude>com.sun.xml.bind:jaxb-core</exclude>
											<exclude>com.sun.xml.bind:jaxb-impl</exclude>
										</excludes>
										<message>Don't use com.sun but glassfish instead</message>
									</bannedDependencies>
								</rules>
							</configuration>
						</execution>
						<execution>
							<id>enforce-jdk-version</id>
							<goals>
								<goal>enforce</goal>
							</goals>
							<configuration>
								<rules>
									<requireJavaVersion>
										<version>[17,26)</version>
									</requireJavaVersion>
								</rules>
							</configuration>
						</execution>
						<execution>
							<id>enforce-classpath-lib-ban</id>
							<goals>
								<goal>enforce</goal>
							</goals>
							<configuration>
								<rules>
									<bannedDependencies>
										<excludes>
											<exclude>ant:ant</exclude>
											<!-- Once testcontainers finally starts using junit5 remove this comment.. <exclude>junit:junit</exclude>-->
											<exclude>jakarta.jms:jakarta.jms-api:*:jar:compile</exclude>
											<exclude>org.apache.geronimo.specs:geronimo-jms_1.1_spec:*:jar:compile</exclude>
											<exclude>org.apache.geronimo.specs:geronimo-jms_2.0_spec:*:jar:compile</exclude>
											<exclude>org.apache.geronimo.javamail:geronimo-javamail_1.4_mail:*:jar:compile</exclude>
											<exclude>org.apache.geronimo.specs:geronimo-jta_1.1_spec:*:jar:compile</exclude>
											<exclude>javax.servlet:javax.servlet-api:*:jar:compile</exclude>
											<exclude>jakarta.servlet:jakarta.servlet-api:*:jar:compile</exclude>
											<exclude>jakarta.transaction:jakarta.transaction-api:*:jar:compile</exclude>
										</excludes>
										<message>These dependencies should be provided by the Application Server!</message>
									</bannedDependencies>
								</rules>
							</configuration>
						</execution>
					</executions>
				</plugin>
			</plugins>
		</pluginManagement>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-jar-plugin</artifactId>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-war-plugin</artifactId>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-source-plugin</artifactId>
			</plugin>
			<plugin>
				<groupId>com.github.hazendaz.maven</groupId>
				<artifactId>directory-maven-plugin</artifactId>
			</plugin>
			<plugin>
				<groupId>org.jasig.maven</groupId>
				<artifactId>notice-maven-plugin</artifactId>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-checkstyle-plugin</artifactId>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-enforcer-plugin</artifactId>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-surefire-plugin</artifactId>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-deploy-plugin</artifactId>
				<version>3.1.4</version>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-release-plugin</artifactId>
				<version>3.3.1</version>
				<configuration>
					<goals>deploy</goals>
					<tagNameFormat>v@{project.version}</tagNameFormat>
					<autoVersionSubmodules>true</autoVersionSubmodules>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-site-plugin</artifactId>
			</plugin>
			<plugin>
				<groupId>org.codehaus.mojo</groupId>
				<artifactId>flatten-maven-plugin</artifactId>
			</plugin>
			<plugin>
				<groupId>com.diffplug.spotless</groupId>
				<artifactId>spotless-maven-plugin</artifactId>
			</plugin>
		</plugins>
	</build>

	<reporting>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-project-info-reports-plugin</artifactId>
				<version>3.9.0</version>
				<reportSets>
					<reportSet>
						<reports>
							<report>modules</report>
						</reports>
					</reportSet>
				</reportSets>
			</plugin>
			<!--
				http://maven.apache.org/plugins/maven-javadoc-plugin/usage.html
				Generate Javadocs As Part Of Project Reports
			-->
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-javadoc-plugin</artifactId>
				<version>${javadoc-plugin.version}</version>
				<reportSets>
					<reportSet>
						<id>default</id>
						<reports>
							<report>javadoc</report>
						</reports>
					</reportSet>
					<reportSet>
						<id>javadoc</id>
						<reports>
							<report>aggregate</report>
						</reports>
						<inherited>false</inherited>
					</reportSet>
				</reportSets>
			</plugin>
		</plugins>
	</reporting>

	<profiles>
		<profile>
			<id>ossrh</id>
			<build>
				<plugins>
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-gpg-plugin</artifactId>
						<version>1.6</version>
						<configuration>
							<passphrase>${gpg.passphrase}</passphrase>
							<gpgArguments>
								<!-- This is necessary for gpg to not try to use the pinentry programs -->
								<arg>--batch</arg>
								<arg>--no-tty</arg>
								<arg>--pinentry-mode</arg>
								<arg>loopback</arg>
							</gpgArguments>
						</configuration>
						<executions>
							<execution>
								<id>sign-artifacts</id>
								<goals>
									<goal>sign</goal>
								</goals>
								<phase>verify</phase>
							</execution>
						</executions>
					</plugin>
					<plugin>
						<groupId>org.sonatype.central</groupId>
						<artifactId>central-publishing-maven-plugin</artifactId>
						<version>0.9.0</version>
						<extensions>true</extensions>
						<configuration>
							<!-- Don't release the build directly after it's been published to Central (staging). -->
							<autoPublish>false</autoPublish>
							<!-- Central OSS Server -->
							<publishingServerId>ossrh</publishingServerId>
							<!-- Wait until the deployment bundle has been uploaded and validated. -->
							<waitUntil>validated</waitUntil>
						</configuration>
					</plugin>
				</plugins>
			</build>
		</profile>
		<profile>
			<id>ibissource</id>
			<distributionManagement>
				<repository>
					<id>frankframework</id>
					<url>https://nexus.frankframework.org/content/repositories/releases</url>
				</repository>
				<snapshotRepository>
					<id>frankframework</id>
					<url>https://nexus.frankframework.org/content/repositories/snapshots</url>
				</snapshotRepository>
				<site>
					<id>www.ibissource.org</id>
					<url>file:target/site-deploy</url>
				</site>
			</distributionManagement>
		</profile>
		<profile>
			<!-- Empty here but exists so that IntelliJ will always recognize it exists? -->
			<id>database-drivers</id>
		</profile>
		<profile>
			<!-- Profile defaults to ON, when the property is set it will turn off -->
			<id>default-modules</id>
			<activation>
				<property>
					<name>!no-default-modules</name>
				</property>
			</activation>
			<modules>
				<module>commons</module>
				<module>property-expression-evaluator</module>
				<module>security</module>
				<module>credentialProvider</module>
				<module>management-gateway</module>
				<module>core</module>
				<module>filesystem</module>
				<module>console</module>
				<module>larva</module>
				<module>ladybug</module>
				<module>dbms</module>
				<module>bundle-minimal</module>

				<module>akamai</module>
				<module>aws</module>
				<module>batch</module>
				<module>cmis</module>
				<module>aspose</module>
				<module>nn-specials</module>
				<module>messaging</module>
				<module>kubernetes</module>
				<module>bundle-full</module>

				<module>webapp</module>
				<module>test</module>
				<module>example</module>

				<module>build-templates</module>
			</modules>
		</profile>
		<profile>
			<id>docker</id>
			<activation>
				<property>
					<name>docker</name>
				</property>
			</activation>
			<modules>
				<module>docker</module>
			</modules>
		</profile>
		<profile>
			<id>proprietary</id>
			<activation>
				<property>
					<name>proprietary</name>
				</property>
			</activation>
			<modules>
				<module>sap</module>
				<module>tibco</module>
				<module>idin</module>
			</modules>
			<repositories>
				<repository>
					<snapshots>
						<enabled>false</enabled>
					</snapshots>
					<id>central</id>
					<name>Central Repository</name>
					<url>https://repo.maven.apache.org/maven2/</url>
				</repository>
				<repository>
					<snapshots>
						<enabled>false</enabled>
					</snapshots>
					<id>proprietary</id>
					<url>https://nexus.frankframework.org/content/repositories/private/</url>
				</repository>
			</repositories>
		</profile>
		<profile>
			<id>javadoc</id>
			<activation>
				<activeByDefault>true</activeByDefault>
			</activation>
			<build>
				<plugins>
					<plugin>
						<groupId>org.projectlombok</groupId>
						<artifactId>lombok-maven-plugin</artifactId>
					</plugin>
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-javadoc-plugin</artifactId>
						<configuration>
							<sourcepath>${project.build.directory}/generated-sources/delombok</sourcepath>
						</configuration>
					</plugin>
				</plugins>
			</build>
		</profile>
		<profile>
			<id>attachFrankDoc</id>
			<activation>
				<activeByDefault>true</activeByDefault>
			</activation>
			<pluginRepositories>
				<pluginRepository>
					<snapshots>
						<enabled>true</enabled>
						<updatePolicy>always</updatePolicy>
					</snapshots>
					<id>frankframework</id>
					<url>https://nexus.frankframework.org/content/groups/public</url>
				</pluginRepository>
			</pluginRepositories>
			<build>
				<plugins>
					<plugin>
						<groupId>org.projectlombok</groupId>
						<artifactId>lombok-maven-plugin</artifactId>
					</plugin>
					<plugin>
						<groupId>org.frankframework</groupId>
						<artifactId>frank-doc-plugin</artifactId>
						<version>1.1-20250708.131331-1</version>
						<!-- Inherited is false so it only runs the Frank!Doc once and includes all modules -->
						<inherited>false</inherited>
						<configuration>
							<doclint>none</doclint>
							<quiet>true</quiet>
							<doclet>org.frankframework.frankdoc.doclet.DocletBuilder</doclet>
							<docletArtifact>
								<groupId>org.frankframework</groupId>
								<artifactId>frank-doc-doclet</artifactId>
								<version>${frankdoc.version}</version>
							</docletArtifact>
							<frontendArtifact>
								<groupId>org.frankframework</groupId>
								<artifactId>frank-doc-frontend</artifactId>
								<version>${frankdoc.version}</version>
							</frontendArtifact>
							<additionalJOptions>
								<additionalJOption>-J--add-opens=jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED</additionalJOption>
								<additionalJOption>-J--add-opens=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED</additionalJOption>
							</additionalJOptions>
							<additionalOptions>
								<additionalOption>-outputDirectory</additionalOption>
								<additionalOption>${project.build.directory}/frankdoc</additionalOption>
								<additionalOption>-digesterRulesPath</additionalOption>
								<additionalOption>${project.basedir}/core/src/main/resources/digester-rules.xml</additionalOption>
								<additionalOption>-propertyFilePath</additionalOption>
								<additionalOption>${project.basedir}/core/src/main/resources/AppConstants.properties</additionalOption>
								<additionalOption>-rootClass</additionalOption>
								<additionalOption>org.frankframework.configuration.Configuration</additionalOption>
								<additionalOption>-frankFrameworkVersion</additionalOption>
								<additionalOption>${project.version}</additionalOption>
							</additionalOptions>
							<show>private</show>
							<outputDirectory>${project.build.directory}/frankdoc</outputDirectory>
							<source>${maven.compiler.source}</source>
							<useStandardDocletOptions>false</useStandardDocletOptions>
							<appendTo>frankframework-core</appendTo>
							<finalName>frankframework-parent-${project.version}</finalName>
							<skippedModules>frankframework-test,frankframework-example,frankframework-webapp,frankframework-console-backend,frankframework-console-frontend</skippedModules>
						</configuration>
						<executions>
							<execution>
								<id>attach-frankdoc</id>
								<goals>
									<goal>aggregate-jar</goal>
								</goals>
								<phase>process-sources</phase>
								<configuration>
									<failOnError>true</failOnError>
								</configuration>
							</execution>
						</executions>
					</plugin>
				</plugins>
			</build>
		</profile>
		<profile>
			<id>codecoverage</id>
			<build>
				<plugins>
					<plugin>
						<groupId>org.jacoco</groupId>
						<artifactId>jacoco-maven-plugin</artifactId>
					</plugin>
				</plugins>
			</build>
			<reporting>
				<plugins>
					<plugin>
						<groupId>org.jacoco</groupId>
						<artifactId>jacoco-maven-plugin</artifactId>
						<reportSets>
							<reportSet>
								<reports>
									<report>report</report>
								</reports>
							</reportSet>
						</reportSets>
					</plugin>
				</plugins>
			</reporting>
		</profile>
		<profile>
			<id>ci</id>
			<build>
				<plugins>
					<!-- Niels: The Copyright plugin adds 13 minutes to the build. -->
					<plugin>
						<groupId>org.glassfish.copyright</groupId>
						<artifactId>glassfish-copyright-maven-plugin</artifactId>
					</plugin>
					<plugin>
						<groupId>org.cyclonedx</groupId>
						<artifactId>cyclonedx-maven-plugin</artifactId>
					</plugin>
					<plugin>
						<groupId>org.spdx</groupId>
						<artifactId>spdx-maven-plugin</artifactId>
					</plugin>
				</plugins>
			</build>
		</profile>
		<profile>
			<!-- https://stackoverflow.com/a/12598554/17193564 -->
			<id>alternateBuildDir</id>
			<activation>
				<property>
					<name>build.dir</name>
				</property>
			</activation>
			<build>
				<directory>${build.dir}</directory>
			</build>
		</profile>
	</profiles>
</project>
