<?xml version="1.0"?>
<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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>

	<groupId>com.top-logic</groupId>
	<artifactId>tl-parent-all</artifactId>
	<version>8.0.0-alpha6</version>

	<name>${project.artifactId}</name>
	<description>Aggregator module that builds the complete TopLogic application engine.</description>
	<url>https://github.com/top-logic/tl-engine/</url>

	<organization>
		<name>Business Operation Systems GmbH</name>
		<url>https://www.top-logic.com</url>
	</organization>

	<packaging>pom</packaging>

    <licenses>
        <license>
            <name>BOS-TopLogic-1.0</name>
            <url>https://github.com/top-logic/.github/blob/main/LICENSES/LicenseRef-BOS-TopLogic-1.0.md</url>
        </license>
        <license>
            <name>AGPL-3.0-only</name>
            <url>https://www.gnu.org/licenses/agpl-3.0.txt</url>
        </license>
    </licenses>

	<properties>
		<tl.version>8.0.0-alpha6</tl.version>
		<jetty.version>12.1.11</jetty.version>
		<poi.version>5.5.1</poi.version>
		<kafka.version>3.9.2</kafka.version>
		<zookeeper.version>3.9.5</zookeeper.version>
		<slf4j.version>2.0.18</slf4j.version>
		<log4j.version>2.26.1</log4j.version>
		<fasterxml.version>2.22.1</fasterxml.version>
		<msgbuf.version>1.2.2</msgbuf.version>
		<bouncycastle.version>1.84</bouncycastle.version>
		<batik.version>1.19</batik.version>
		<tl.license.version>7.8.2</tl.license.version>
		
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

		<maven.compiler.source>17</maven.compiler.source>
		<maven.compiler.target>17</maven.compiler.target>

		<skipTests>true</skipTests>
		<skipDependencyCheck>false</skipDependencyCheck>
		<skipNormalizeLayouts>true</skipNormalizeLayouts>
		
		<tl.layoutDir>${basedir}/src/main/webapp/WEB-INF/layouts</tl.layoutDir>
	</properties>

	<developers>
		<developer>
			<name>The TopLogic Developers</name>
			<email>info@top-logic.com</email>
			<organization>Business Operation Systems GmbH</organization>
			<organizationUrl>https://www.top-logic.com</organizationUrl>
		</developer>
	</developers>

	<scm>
		<connection>scm:git:https://github.com/top-logic/tl-engine.git</connection>
		<developerConnection>scm:git:https://git.top-logic.com/TopLogic/tl-engine-7.git</developerConnection>
		<url>https://github.com/top-logic/tl-engine</url>
		<tag>TL_8.0.0-alpha6</tag>
	</scm>
	
	<modules>
		<!-- Archetypes -->
		<module>tl-archetype-app</module>

		<!-- Module parents -->
		<module>tl-parent-app</module>
		<module>tl-parent-core</module>
		<module>tl-parent-build</module>
		<module>tl-parent-gwt</module>
	</modules>

	<profiles>
		<profile>
			<id>full-build</id>
			<activation>
				<activeByDefault>true</activeByDefault>
			</activation>

			<modules>
				<!-- TopLogic aggregator -->
				<module>tl-parent-engine</module>
			</modules>			
		</profile>
		
		<profile>
			<id>maven-central</id>
			
			<distributionManagement>
				<repository>
					<id>tl-ossrh</id>
					<releases>
						<enabled>true</enabled>
					</releases>
					<snapshots>
						<enabled>false</enabled>
					</snapshots>
				</repository>
			</distributionManagement>
	
			<build>
				<plugins>
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-gpg-plugin</artifactId>
						<version>3.2.8</version>
						<executions>
							<execution>
								<id>sign-artifacts</id>
								<phase>verify</phase>
								<goals>
									<goal>sign</goal>
								</goals>
								<configuration>
									<keyname>${tl.keyname}</keyname>
									<passphraseServerId>${tl.keypassid}</passphraseServerId>
								</configuration>
							</execution>
						</executions>
					</plugin>
		
					<plugin>
						<groupId>org.sonatype.central</groupId>
						<artifactId>central-publishing-maven-plugin</artifactId>
						<version>0.11.0</version>
						<extensions>true</extensions>
						<configuration>
							<publishingServerId>tl-ossrh</publishingServerId>
							<autoPublish>true</autoPublish>
							<waitUntil>published</waitUntil>
						</configuration>
					</plugin>
				</plugins>
			</build>
		</profile>

		<profile>
			<id>has-layouts</id>
		    <activation>
		        <file>
		            <exists>${tl.layoutDir}</exists>
		        </file>
    		</activation>
    		
    		<properties>
				<skipNormalizeLayouts>false</skipNormalizeLayouts>
    		</properties>			
		</profile>
	</profiles>

	<dependencyManagement>
		<dependencies>
			<dependency>
				<groupId>com.top-logic</groupId>
				<artifactId>tl-archetype-app</artifactId>
				<version>${tl.version}</version>
			</dependency>

			<!-- Build tooling -->
			<dependency>
				<groupId>com.top-logic</groupId>
				<artifactId>tl-build-doclet</artifactId>
				<version>${tl.version}</version>
			</dependency>
			<dependency>
				<groupId>com.top-logic</groupId>
				<artifactId>tl-build-processor</artifactId>
				<version>${tl.version}</version>
			</dependency>
			<dependency>
				<groupId>com.top-logic</groupId>
				<artifactId>tl-maven-plugin</artifactId>
				<version>${tl.version}</version>
			</dependency>
			<dependency>
				<groupId>com.top-logic</groupId>
				<artifactId>tl-tools-resources</artifactId>
				<version>${tl.version}</version>
			</dependency>

			<!-- JavaScript libraries created with GWT -->
			<dependency>
				<groupId>com.top-logic</groupId>
				<artifactId>tl-ajax-client</artifactId>
				<version>${tl.version}</version>
			</dependency>
			<dependency>
				<groupId>com.top-logic</groupId>
				<artifactId>tl-ajax-client</artifactId>
				<version>${tl.version}</version>
			    <classifier>sources</classifier>
			    <scope>provided</scope>
			</dependency>
			<dependency>
				<groupId>com.top-logic</groupId>
				<artifactId>tl-client-diagramjs</artifactId>
				<version>${tl.version}</version>
			</dependency>
			<dependency>
				<groupId>com.top-logic</groupId>
				<artifactId>tl-client-diagramjs</artifactId>
				<version>${tl.version}</version>
			    <classifier>sources</classifier>
			    <scope>provided</scope>
			</dependency>
			<dependency>
				<groupId>com.top-logic</groupId>
				<artifactId>tl-graph-diagramjs-client</artifactId>
				<version>${tl.version}</version>
			</dependency>
			<dependency>
				<groupId>com.top-logic</groupId>
				<artifactId>tl-graph-diagramjs-client</artifactId>
				<version>${tl.version}</version>
				<classifier>sources</classifier>
				<scope>provided</scope>
			</dependency>
			<dependency>
				<groupId>com.top-logic</groupId>
				<artifactId>tl-graphic-blocks-client</artifactId>
				<version>${tl.version}</version>
			</dependency>
			<dependency>
				<groupId>com.top-logic</groupId>
				<artifactId>tl-graphic-blocks-client</artifactId>
				<version>${tl.version}</version>
				<classifier>sources</classifier>
				<scope>provided</scope>
			</dependency>

			<dependency>
				<groupId>com.top-logic</groupId>
				<artifactId>tl-basic</artifactId>
				<version>${tl.version}</version>
				<type>test-jar</type>
				<scope>test</scope>
			</dependency>
			<dependency>
				<groupId>com.top-logic</groupId>
				<artifactId>tl-dsa</artifactId>
				<version>${tl.version}</version>
				<type>test-jar</type>
				<scope>test</scope>
			</dependency>
			<dependency>
				<groupId>com.top-logic</groupId>
				<artifactId>tl-dob</artifactId>
				<version>${tl.version}</version>
				<type>test-jar</type>
				<scope>test</scope>
			</dependency>
			<dependency>
				<groupId>com.top-logic</groupId>
				<artifactId>tl-basic-db-schema</artifactId>
				<version>${tl.version}</version>
				<type>test-jar</type>
				<scope>test</scope>
			</dependency>
			<dependency>
				<groupId>com.top-logic</groupId>
				<artifactId>tl-core</artifactId>
				<version>${tl.version}</version>
				<type>test-jar</type>
				<scope>test</scope>
			</dependency>
			<dependency>
				<groupId>com.top-logic</groupId>
				<artifactId>tl-element</artifactId>
				<version>${tl.version}</version>
				<type>test-jar</type>
				<scope>test</scope>
			</dependency>
			<dependency>
				<groupId>com.top-logic</groupId>
				<artifactId>tl-layout-scripting-template</artifactId>
				<version>${tl.version}</version>
				<type>test-jar</type>
				<scope>test</scope>
			</dependency>
			<dependency>
				<groupId>com.top-logic</groupId>
				<artifactId>tl-contact</artifactId>
				<version>${tl.version}</version>
				<type>test-jar</type>
				<scope>test</scope>
			</dependency>
			<dependency>
				<groupId>com.top-logic</groupId>
				<artifactId>tl-common-remote</artifactId>
				<version>${tl.version}</version>
				<type>test-jar</type>
				<scope>test</scope>
			</dependency>

			<!-- TopLogic -->
			<dependency>
				<groupId>com.top-logic</groupId>
				<artifactId>tl-core</artifactId>
				<version>${tl.version}</version>
			</dependency>
			<dependency>
				<groupId>com.top-logic</groupId>
				<artifactId>tl-addons-loginmessages</artifactId>
				<version>${tl.version}</version>
			</dependency>
			<dependency>
				<groupId>com.top-logic</groupId>
				<artifactId>tl-ajax-server</artifactId>
				<version>${tl.version}</version>
			</dependency>
			<dependency>
				<groupId>com.top-logic</groupId>
				<artifactId>tl-ajax-shared</artifactId>
				<version>${tl.version}</version>
			</dependency>
			<dependency>
				<groupId>com.top-logic</groupId>
				<artifactId>tl-ajax-shared</artifactId>
				<version>${tl.version}</version>
				<classifier>sources</classifier>
				<scope>provided</scope>
			</dependency>
			<dependency>
				<groupId>com.top-logic</groupId>
				<artifactId>tl-basic</artifactId>
				<version>${tl.version}</version>
			</dependency>
			<dependency>
				<groupId>com.top-logic</groupId>
				<artifactId>tl-basic-core</artifactId>
				<version>${tl.version}</version>
			</dependency>
			<dependency>
				<groupId>com.top-logic</groupId>
				<artifactId>tl-basic-db</artifactId>
				<version>${tl.version}</version>
			</dependency>
			<dependency>
				<groupId>com.top-logic</groupId>
				<artifactId>tl-basic-db-schema</artifactId>
				<version>${tl.version}</version>
			</dependency>
			<dependency>
				<groupId>com.top-logic</groupId>
				<artifactId>tl-basic-logging</artifactId>
				<version>${tl.version}</version>
			</dependency>
			<dependency>
				<groupId>com.top-logic</groupId>
				<artifactId>tl-basic-logging-log4j</artifactId>
				<version>${tl.version}</version>
			</dependency>
			<dependency>
				<groupId>com.top-logic</groupId>
				<artifactId>tl-basic-logging-logback</artifactId>
				<version>${tl.version}</version>
			</dependency>
			<dependency>
				<groupId>com.top-logic</groupId>
				<artifactId>tl-basic-shared</artifactId>
				<version>${tl.version}</version>
			</dependency>
			<dependency>
				<groupId>com.top-logic</groupId>
				<artifactId>tl-basic-shared</artifactId>
				<version>${tl.version}</version>
				<classifier>sources</classifier>
				<scope>provided</scope>
			</dependency>
			<dependency>
				<groupId>com.top-logic</groupId>
				<artifactId>tl-bpe</artifactId>
				<version>${tl.version}</version>
			</dependency>
			<dependency>
				<groupId>com.top-logic</groupId>
				<artifactId>tl-bpe-app</artifactId>
				<version>${tl.version}</version>
			</dependency>
			<dependency>
				<groupId>com.top-logic</groupId>
				<artifactId>tl-bpe-modeler</artifactId>
				<version>${tl.version}</version>
			</dependency>
			<dependency>
				<groupId>com.top-logic</groupId>
				<artifactId>tl-common-json</artifactId>
				<version>${tl.version}</version>
			</dependency>
			<dependency>
				<groupId>com.top-logic</groupId>
				<artifactId>tl-common-json</artifactId>
				<version>${tl.version}</version>
				<classifier>sources</classifier>
				<scope>provided</scope>
			</dependency>
			<dependency>
				<groupId>com.top-logic</groupId>
				<artifactId>tl-chart-chartjs</artifactId>
				<version>${tl.version}</version>
			</dependency>
			<dependency>
				<groupId>com.top-logic</groupId>
				<artifactId>tl-common-remote</artifactId>
				<version>${tl.version}</version>
			</dependency>
			<dependency>
				<groupId>com.top-logic</groupId>
				<artifactId>tl-common-remote</artifactId>
				<version>${tl.version}</version>
				<classifier>sources</classifier>
				<scope>provided</scope>
			</dependency>
			<dependency>
				<groupId>com.top-logic</groupId>
				<artifactId>tl-config-diff</artifactId>
				<version>${tl.version}</version>
			</dependency>
			<dependency>
				<groupId>com.top-logic</groupId>
				<artifactId>tl-config-xdiff</artifactId>
				<version>${tl.version}</version>
			</dependency>
			<dependency>
				<groupId>com.top-logic</groupId>
				<artifactId>tl-contact</artifactId>
				<version>${tl.version}</version>
			</dependency>
			<dependency>
				<groupId>com.top-logic</groupId>
				<artifactId>tl-convert</artifactId>
				<version>${tl.version}</version>
			</dependency>
			<dependency>
				<groupId>com.top-logic</groupId>
				<artifactId>tl-dob</artifactId>
				<version>${tl.version}</version>
			</dependency>
			<dependency>
				<groupId>com.top-logic</groupId>
				<artifactId>tl-doc</artifactId>
				<version>${tl.version}</version>
			</dependency>
			<dependency>
				<groupId>com.top-logic</groupId>
				<artifactId>tl-doc-app</artifactId>
				<version>${tl.version}</version>
			</dependency>
			<dependency>
				<groupId>com.top-logic</groupId>
				<artifactId>tl-dsa</artifactId>
				<version>${tl.version}</version>
			</dependency>
			<dependency>
				<groupId>com.top-logic</groupId>
				<artifactId>tl-element</artifactId>
				<version>${tl.version}</version>
			</dependency>
			<dependency>
				<groupId>com.top-logic</groupId>
				<artifactId>tl-graph-common</artifactId>
				<version>${tl.version}</version>
			</dependency>
			<dependency>
				<groupId>com.top-logic</groupId>
				<artifactId>tl-graph-common</artifactId>
				<version>${tl.version}</version>
				<classifier>sources</classifier>
				<scope>provided</scope>
			</dependency>
			<dependency>
				<groupId>com.top-logic</groupId>
				<artifactId>tl-graph-diagramjs</artifactId>
				<version>${tl.version}</version>
			</dependency>
			<dependency>
				<groupId>com.top-logic</groupId>
				<artifactId>tl-graph-diagramjs</artifactId>
				<version>${tl.version}</version>
				<classifier>sources</classifier>
				<scope>provided</scope>
			</dependency>
			<dependency>
				<groupId>com.top-logic</groupId>
				<artifactId>tl-graph-diagramjs-server</artifactId>
				<version>${tl.version}</version>
			</dependency>
			<dependency>
				<groupId>com.top-logic</groupId>
				<artifactId>tl-graph-layouter</artifactId>
				<version>${tl.version}</version>
			</dependency>
			<dependency>
				<groupId>com.top-logic</groupId>
				<artifactId>tl-graph-server</artifactId>
				<version>${tl.version}</version>
			</dependency>
			<dependency>
				<groupId>com.top-logic</groupId>
				<artifactId>tl-graphic-blocks</artifactId>
				<version>${tl.version}</version>
			</dependency>
			<dependency>
				<groupId>com.top-logic</groupId>
				<artifactId>tl-graphic-blocks</artifactId>
				<version>${tl.version}</version>
				<classifier>sources</classifier>
				<scope>provided</scope>
			</dependency>
			<dependency>
				<groupId>com.top-logic</groupId>
				<artifactId>tl-graphic-blocks-server</artifactId>
				<version>${tl.version}</version>
			</dependency>
			<dependency>
				<groupId>com.top-logic</groupId>
				<artifactId>tl-ide-jetty</artifactId>
				<version>${tl.version}</version>
			</dependency>
			<dependency>
				<groupId>com.top-logic</groupId>
				<artifactId>tl-importer</artifactId>
				<version>${tl.version}</version>
			</dependency>
			<dependency>
				<groupId>com.top-logic</groupId>
				<artifactId>tl-kafka</artifactId>
				<version>${tl.version}</version>
			</dependency>
			<dependency>
				<groupId>com.top-logic</groupId>
				<artifactId>tl-kafka-server</artifactId>
				<version>${tl.version}</version>
			</dependency>
			<dependency>
				<groupId>com.top-logic</groupId>
				<artifactId>tl-kafka-sync</artifactId>
				<version>${tl.version}</version>
			</dependency>
			<dependency>
				<groupId>com.top-logic</groupId>
				<artifactId>tl-layout-codeedit</artifactId>
				<version>${tl.version}</version>
			</dependency>
			<dependency>
				<groupId>com.top-logic</groupId>
				<artifactId>tl-layout-formeditor</artifactId>
				<version>${tl.version}</version>
			</dependency>
			<dependency>
				<groupId>com.top-logic</groupId>
				<artifactId>tl-layout-icons</artifactId>
				<version>${tl.version}</version>
			</dependency>
			<dependency>
				<groupId>com.top-logic</groupId>
				<artifactId>tl-layout-scripting-template</artifactId>
				<version>${tl.version}</version>
			</dependency>
			<dependency>
				<groupId>com.top-logic</groupId>
				<artifactId>tl-layout-themeedit</artifactId>
				<version>${tl.version}</version>
			</dependency>
			<dependency>
				<groupId>com.top-logic</groupId>
				<artifactId>tl-layout-wysiwyg</artifactId>
				<version>${tl.version}</version>
			</dependency>
			<dependency>
				<groupId>com.top-logic</groupId>
				<artifactId>tl-layout-wysiwyg-highlighter</artifactId>
				<version>${tl.version}</version>
			</dependency>
			<dependency>
				<groupId>com.top-logic</groupId>
				<artifactId>tl-layout-wysiwyg-youtube</artifactId>
				<version>${tl.version}</version>
			</dependency>
			<dependency>
				<groupId>com.top-logic</groupId>
				<artifactId>tl-mail</artifactId>
				<version>${tl.version}</version>
			</dependency>
			<dependency>
				<groupId>com.top-logic</groupId>
				<artifactId>tl-mail-smtp</artifactId>
				<version>${tl.version}</version>
			</dependency>
			<dependency>
				<groupId>com.top-logic</groupId>
				<artifactId>tl-model-search</artifactId>
				<version>${tl.version}</version>
			</dependency>
			<dependency>
				<groupId>com.top-logic</groupId>
				<artifactId>tl-model-wysiwyg</artifactId>
				<version>${tl.version}</version>
			</dependency>
			<dependency>
				<groupId>com.top-logic</groupId>
				<artifactId>tl-monitoring</artifactId>
				<version>${tl.version}</version>
			</dependency>
			<dependency>
				<groupId>com.top-logic</groupId>
				<artifactId>tl-office</artifactId>
				<version>${tl.version}</version>
			</dependency>
			<dependency>
				<groupId>com.top-logic</groupId>
				<artifactId>tl-reporting</artifactId>
				<version>${tl.version}</version>
			</dependency>
			<dependency>
				<groupId>com.top-logic</groupId>
				<artifactId>tl-reporting-common</artifactId>
				<version>${tl.version}</version>
			</dependency>
			<dependency>
				<groupId>com.top-logic</groupId>
				<artifactId>tl-reporting-flex</artifactId>
				<version>${tl.version}</version>
			</dependency>
			<dependency>
				<groupId>com.top-logic</groupId>
				<artifactId>tl-reporting-office</artifactId>
				<version>${tl.version}</version>
			</dependency>
			<dependency>
				<groupId>com.top-logic</groupId>
				<artifactId>tl-search-base</artifactId>
				<version>${tl.version}</version>
			</dependency>
			<dependency>
				<groupId>com.top-logic</groupId>
				<artifactId>tl-search-lucene</artifactId>
				<version>${tl.version}</version>
			</dependency>
			<dependency>
				<groupId>com.top-logic</groupId>
				<artifactId>tl-security-auth-pac4j</artifactId>
				<version>${tl.version}</version>
			</dependency>
			<dependency>
				<groupId>com.top-logic</groupId>
				<artifactId>tl-storage-azure</artifactId>
				<version>${tl.version}</version>
			</dependency>
			<dependency>
				<groupId>com.top-logic</groupId>
				<artifactId>tl-template</artifactId>
				<version>${tl.version}</version>
			</dependency>
			<dependency>
				<groupId>com.top-logic</groupId>
				<artifactId>tl-themes-core</artifactId>
				<version>${tl.version}</version>
			</dependency>
			<dependency>
				<groupId>com.top-logic</groupId>
				<artifactId>tl-umljs</artifactId>
				<version>${tl.version}</version>
			</dependency>
			<dependency>
				<groupId>com.top-logic</groupId>
				<artifactId>tl-xio</artifactId>
				<version>${tl.version}</version>
			</dependency>
			<dependency>
				<groupId>com.top-logic</groupId>
				<artifactId>tl-xref</artifactId>
				<version>${tl.version}</version>
			</dependency>
			
			<dependency>
				<groupId>com.top-logic</groupId>
				<artifactId>tl-service-openapi-common</artifactId>
				<version>${tl.version}</version>
			</dependency>
			<dependency>
				<groupId>com.top-logic</groupId>
				<artifactId>tl-service-openapi-client</artifactId>
				<version>${tl.version}</version>
			</dependency>
			<dependency>
				<groupId>com.top-logic</groupId>
				<artifactId>tl-service-openapi-client</artifactId>
				<version>${tl.version}</version>
				<type>test-jar</type>
				<scope>test</scope>
			</dependency>
			<dependency>
				<groupId>com.top-logic</groupId>
				<artifactId>tl-service-openapi-server</artifactId>
				<version>${tl.version}</version>
			</dependency>
			<dependency>
				<groupId>com.top-logic</groupId>
				<artifactId>tl-service-openapi-server</artifactId>
				<version>${tl.version}</version>
				<type>test-jar</type>
				<scope>test</scope>
			</dependency>
			<dependency>
				<groupId>com.top-logic</groupId>
				<artifactId>tl-service-jms</artifactId>
				<version>${tl.version}</version>
			</dependency>
			<dependency>
				<groupId>com.top-logic</groupId>
				<artifactId>tl-service-jms-activemq</artifactId>
				<version>${tl.version}</version>
			</dependency>
			<dependency>
				<groupId>com.top-logic</groupId>
				<artifactId>tl-service-jms-ibmmq</artifactId>
				<version>${tl.version}</version>
			</dependency>
			<dependency>
				<groupId>com.top-logic</groupId>
				<artifactId>tl-security-selfservice</artifactId>
				<version>${tl.version}</version>
			</dependency>

			<!-- License-Tool -->
			<dependency>
			    <groupId>com.top-logic</groupId>
			    <artifactId>tl-license-professional</artifactId>
				<version>${tl.license.version}</version>
			</dependency>

			<!-- Migration utilities -->
			<dependency>
				<groupId>com.top-logic</groupId>
				<artifactId>tl-migrate-tl</artifactId>
				<version>${tl.version}</version>
			</dependency>
			<dependency>
				<groupId>com.top-logic</groupId>
				<artifactId>tl-migrate-tl-580</artifactId>
				<version>${tl.version}</version>
			</dependency>

			<!-- Supported DB drivers -->
			<dependency>
			    <groupId>com.h2database</groupId>
			    <artifactId>h2</artifactId>
			    <version>2.4.240</version>
		  	</dependency>
		  	<dependency>
			    <groupId>com.manticore-projects.tools</groupId>
			    <artifactId>h2migrationtool</artifactId>
			    <version>1.8</version>
			</dependency>
			<dependency>
				<groupId>com.top-logic</groupId>
				<artifactId>ext-com-ibm-db2</artifactId>
				<version>${tl.version}</version>
				<type>pom</type>
			</dependency>
			<dependency>
			    <groupId>com.microsoft.sqlserver</groupId>
			    <artifactId>mssql-jdbc</artifactId>
			    <version>12.10.2.jre11</version><!-- The 'jre11' version works with newer Java versions, too: https://github.com/microsoft/mssql-jdbc/issues/2161 -->
			</dependency>
			<dependency>
			    <groupId>com.mysql</groupId>
			    <artifactId>mysql-connector-j</artifactId>
			    <version>9.7.0</version>
			</dependency>
			<dependency>
			    <groupId>com.oracle.database.jdbc</groupId>
			    <artifactId>ojdbc11</artifactId>
			    <version>23.26.2.0.0</version>
			</dependency>
			<dependency>
			    <groupId>org.postgresql</groupId>
			    <artifactId>postgresql</artifactId>
			    <version>42.7.13</version>
			</dependency>

			<!-- External dependencies -->
			<dependency>
				<groupId>com.networknt</groupId>
				<artifactId>json-schema-validator</artifactId>
				<version>3.0.6</version>
			</dependency>
			<dependency>
				<groupId>jakarta.servlet</groupId>
				<artifactId>jakarta.servlet-api</artifactId>
				<version>6.1.0</version>
			</dependency>
			<dependency>
				<groupId>jakarta.servlet.jsp</groupId>
				<artifactId>jakarta.servlet.jsp-api</artifactId>
				<version>3.1.1</version>
			</dependency>
			<dependency>
				<groupId>com.top-logic</groupId>
				<artifactId>ext-com-bootstrap-icons</artifactId>
				<version>${tl.version}</version>
			</dependency>
			<dependency>
				<groupId>com.top-logic</groupId>
				<artifactId>ext-com-ckeditor</artifactId>
				<version>${tl.version}</version>
			</dependency>
			<dependency>
				<groupId>com.top-logic</groupId>
				<artifactId>ext-com-fontawesome</artifactId>
				<version>${tl.version}</version>
			</dependency>
			<dependency>
				<groupId>com.top-logic</groupId>
				<artifactId>ext-com-google-fonts</artifactId>
				<version>${tl.version}</version>
			</dependency>
			<dependency>
				<groupId>com.top-logic</groupId>
				<artifactId>ext-com-inter-fonts</artifactId>
				<version>${tl.version}</version>
			</dependency>
			<dependency>
			    <groupId>com.google.inject</groupId>
			    <artifactId>guice</artifactId>
			    <version>7.0.0</version>
			</dependency>
			<dependency>
				<groupId>com.google.guava</groupId>
				<artifactId>guava</artifactId>
				<version>32.1.3-jre</version>
			</dependency>
			<dependency>
				<groupId>com.github.librepdf</groupId>
				<artifactId>openpdf</artifactId>
				<version>1.4.2</version>
			</dependency>
			<dependency>
				<groupId>com.top-logic</groupId>
				<artifactId>ext-com-meterware-httpunit</artifactId>
				<version>${tl.version}</version>
			</dependency>
			<dependency>
			    <groupId>com.microsoft.azure</groupId>
			    <artifactId>azure-storage</artifactId>
			    <version>8.6.6</version>
			</dependency>
			<dependency>
				<groupId>com.top-logic</groupId>
				<artifactId>ext-io-bpmn-bpmn-js</artifactId>
				<version>${tl.version}</version>
			</dependency>
			<dependency>
				<groupId>com.top-logic</groupId>
				<artifactId>ext-io-c9-ace</artifactId>
				<version>${tl.version}</version>
			</dependency>
			
			<!-- Only good for compiling against, provides no mail implementations. -->
			<dependency>
			    <groupId>jakarta.mail</groupId>
			    <artifactId>jakarta.mail-api</artifactId>
			    <version>2.1.5</version>
			</dependency>
			
			<!-- The actual mail implementation. Might be already be installed in the container running the application. -->
			<dependency>
				<groupId>org.eclipse.angus</groupId>
				<artifactId>angus-mail</artifactId>
				<version>2.0.5</version>
			</dependency>
			
			<dependency>
			    <groupId>javax.xml</groupId>
			    <artifactId>jaxrpc-api</artifactId>
			    <version>1.1</version>
			</dependency>
			<dependency>
				<groupId>commons-discovery</groupId>
				<artifactId>commons-discovery</artifactId>
				<version>1.0-dev</version>
			</dependency>
			<dependency>
			    <groupId>commons-codec</groupId>
			    <artifactId>commons-codec</artifactId>
			    <version>1.22.0</version>
			</dependency>
			<dependency>
			    <groupId>org.apache.commons</groupId>
			    <artifactId>commons-collections4</artifactId>
			    <version>4.5.0</version>
			</dependency>
			<dependency>
			    <groupId>org.apache.httpcomponents</groupId>
			    <artifactId>httpclient</artifactId>
			    <version>4.5.14</version>
			</dependency>
			<dependency>
			    <groupId>org.apache.httpcomponents.client5</groupId>
			    <artifactId>httpclient5</artifactId>
			    <version>5.2.3</version>
			</dependency>
			<dependency>
			    <groupId>org.apache.commons</groupId>
			    <artifactId>commons-fileupload2-jakarta-servlet6</artifactId>
			    <version>2.0.0-M5</version>
			</dependency>
			<dependency>
			    <groupId>commons-io</groupId>
			    <artifactId>commons-io</artifactId>
			    <version>2.22.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-compress</artifactId>
			    <version>1.28.0</version>
			</dependency>
			<dependency>
			    <groupId>commons-pool</groupId>
			    <artifactId>commons-pool</artifactId>
			    <version>1.6</version>
			</dependency>
			<dependency>
			    <groupId>org.apache.kafka</groupId>
			    <artifactId>kafka_2.13</artifactId>
			    <version>${kafka.version}</version>
			</dependency>
			<dependency>
			    <groupId>org.apache.kafka</groupId>
			    <artifactId>kafka-clients</artifactId>
			    <version>${kafka.version}</version>
			</dependency>
			<dependency>
			    <groupId>org.apache.kafka</groupId>
			    <artifactId>connect-api</artifactId>
			    <version>${kafka.version}</version>
			</dependency>
			<dependency>
			    <groupId>org.apache.kafka</groupId>
			    <artifactId>connect-json</artifactId>
			    <version>${kafka.version}</version>
			</dependency>
			<dependency>
				<groupId>org.apache.zookeeper</groupId>
				<artifactId>zookeeper</artifactId>
				<version>${zookeeper.version}</version>
			</dependency>
			<dependency>
			    <groupId>org.apache.lucene</groupId>
			    <artifactId>lucene-analysis-common</artifactId>
			    <version>9.12.3</version>
			</dependency>
			<dependency>
			    <groupId>org.apache.lucene</groupId>
			    <artifactId>lucene-queryparser</artifactId>
			    <version>9.12.3</version>
			</dependency>
			<dependency>
			    <groupId>org.apache.lucene</groupId>
			    <artifactId>lucene-backward-codecs</artifactId>
			    <version>9.12.3</version>
			</dependency>
			<dependency>
			    <groupId>org.apache.poi</groupId>
			    <artifactId>poi</artifactId>
			    <version>${poi.version}</version>
			</dependency>
			<dependency>
			    <groupId>org.apache.poi</groupId>
			    <artifactId>poi-ooxml</artifactId>
			    <version>${poi.version}</version>
			    
			    <!-- Note: Whenever including this artifact, also include poi-ooxml-full, which is an 
			    	 undeclared dependency. -->
		
			    <!-- Provided by the JDK by default. -->
			    <exclusions>
			    	<!-- This dependency delivers only a part of the required schemas, poi-ooxml-full must 
			    		 be used instead, see above. -->
			    	<exclusion>
					    <groupId>org.apache.poi</groupId>
					    <artifactId>poi-ooxml-lite</artifactId>
			    	</exclusion>
			    	
			    	<exclusion>
			          <groupId>xml-apis</groupId>
			          <artifactId>xml-apis</artifactId>
			        </exclusion>
			    	<exclusion>
			        	<groupId>com.fasterxml.woodstox</groupId>
						<artifactId>woodstox-core</artifactId>
			        </exclusion>
			    	<exclusion>
			          <groupId>xalan</groupId>
			          <artifactId>xalan</artifactId>
			        </exclusion>
			    </exclusions>
			</dependency>
			<dependency>
			    <groupId>org.apache.poi</groupId>
			    <artifactId>poi-ooxml-full</artifactId>
			    <version>${poi.version}</version>
			</dependency>
			<dependency>
			    <groupId>org.apache.poi</groupId>
			    <artifactId>poi-scratchpad</artifactId>
			    <version>${poi.version}</version>
			</dependency>
			<dependency>
			    <groupId>org.apache.xmlrpc</groupId>
			    <artifactId>xmlrpc-client</artifactId>
			    <version>3.1.3</version>
		
			    <!-- Provided by the JDK by default. -->
			    <exclusions>
			    	<exclusion>
			          <groupId>xml-apis</groupId>
			          <artifactId>xml-apis</artifactId>
			        </exclusion>
			    </exclusions>
			</dependency>
			<dependency>
			    <groupId>org.bouncycastle</groupId>
			    <artifactId>bcmail-jdk18on</artifactId>
			    <version>${bouncycastle.version}</version>
			</dependency>
			<dependency>
			    <groupId>org.bouncycastle</groupId>
			    <artifactId>bcprov-jdk18on</artifactId>
			    <version>${bouncycastle.version}</version>
			</dependency>
			<dependency>
				<groupId>com.top-logic</groupId>
				<artifactId>ext-org-chartjs</artifactId>
				<version>${tl.version}</version>
			</dependency>
			<dependency>
			    <groupId>org.docx4j</groupId>
			    <artifactId>docx4j-core</artifactId>
			    <version>11.5.14</version>
				<exclusions>
					<!-- Do not include Log4j 1, because this collides with Log4j 2  -->
					<exclusion>
						<groupId>org.slf4j</groupId>
						<artifactId>slf4j-log4j12</artifactId>
					</exclusion>
			    	<exclusion>
			          <groupId>xalan</groupId>
			          <artifactId>xalan</artifactId>
			        </exclusion>
					<exclusion>
						<!-- Don't include 'com.sun.activation:jakarta.activation', as it collides with 'jakarta.activation:jakarta.activation-api'. -->
						<groupId>com.sun.activation</groupId>
						<artifactId>jakarta.activation</artifactId>
					</exclusion>
				</exclusions>
			</dependency>
			<dependency>
			    <groupId>org.docx4j</groupId>
			    <artifactId>docx4j-JAXB-ReferenceImpl</artifactId>
			    <version>11.5.14</version>
				<exclusions>
					<exclusion>
						<!-- Don't include 'com.sun.activation:jakarta.activation', as it collides with 'jakarta.activation:jakarta.activation-api'. -->
						<groupId>com.sun.activation</groupId>
						<artifactId>jakarta.activation</artifactId>
					</exclusion>
				</exclusions>
			</dependency>
			<dependency>
				<groupId>com.fasterxml.jackson</groupId>
				<artifactId>jackson-bom</artifactId>
				<version>${fasterxml.version}</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>
			<dependency>
			    <groupId>org.yaml</groupId>
			    <artifactId>snakeyaml</artifactId>
			    <version>2.6</version>
			</dependency>
			<dependency>
			    <groupId>org.apache.pdfbox</groupId>
	    		<artifactId>pdfbox</artifactId>
			    <version>3.0.8</version>
			    
			    <exclusions>
			    	<!-- Note: Whenever pdfbox is used, jcl-over-slf4j must be added as well. -->
			    	<exclusion>
					    <groupId>commons-logging</groupId>
					    <artifactId>commons-logging</artifactId>
			    	</exclusion>
   			    </exclusions>
			</dependency>
			<dependency>
			    <groupId>org.slf4j</groupId>
			    <artifactId>jcl-over-slf4j</artifactId>
			    <version>2.0.18</version>
			</dependency>
			<dependency>
			    <groupId>org.apache.pdfbox</groupId>
	    		<artifactId>fontbox</artifactId>
			    <version>3.0.8</version>
			</dependency>
			<dependency>
			    <groupId>org.apache.xmlgraphics</groupId>
			    <artifactId>batik-transcoder</artifactId>
			    <version>${batik.version}</version>
			    
			    <exclusions>
			    	<exclusion>
			          <groupId>xml-apis</groupId>
			          <artifactId>xml-apis</artifactId>
			        </exclusion>
			    	<exclusion>
			        	<groupId>com.fasterxml.woodstox</groupId>
						<artifactId>woodstox-core</artifactId>
			        </exclusion>
			    	<exclusion>
			          <groupId>xalan</groupId>
			          <artifactId>xalan</artifactId>
			        </exclusion>

			    	<!-- Note: Whenever batik-transcoder is used, jcl-over-slf4j must be added as well. -->
			    	<exclusion>
					    <groupId>commons-logging</groupId>
					    <artifactId>commons-logging</artifactId>
			    	</exclusion>
			    </exclusions>
			</dependency>
			<dependency>
			    <groupId>org.apache.xmlgraphics</groupId>
			    <artifactId>batik-codec</artifactId>
			    <version>${batik.version}</version>
			    <exclusions>

			    	<!-- Note: Whenever batik-codec is used, jcl-over-slf4j must be added as well. -->
			    	<exclusion>
					    <groupId>commons-logging</groupId>
					    <artifactId>commons-logging</artifactId>
			    	</exclusion>
			    </exclusions>
			</dependency>
			<dependency>
			    <groupId>org.apache.xmlgraphics</groupId>
			    <artifactId>xmlgraphics-commons</artifactId>
			    <version>2.11</version>
			</dependency>
			<dependency>
				<groupId>org.eclipse.jetty.ee10</groupId>
				<artifactId>jetty-ee10-webapp</artifactId>
				<version>${jetty.version}</version>
			</dependency>
			<dependency>
				<groupId>org.eclipse.jetty.ee10</groupId>
				<artifactId>jetty-ee10-apache-jsp</artifactId>
				<version>${jetty.version}</version>
			</dependency>
			<dependency>
				<groupId>org.eclipse.jetty.ee10</groupId>
				<artifactId>jetty-ee10-servlet</artifactId>
				<version>${jetty.version}</version>
			</dependency>
			<dependency>
			    <groupId>org.xhtmlrenderer</groupId>
			    <artifactId>flying-saucer-pdf</artifactId>
			    <version>9.13.3</version>
			    
		        <exclusions>
		            <exclusion>
		                <groupId>org.bouncycastle</groupId>
		                <artifactId>bcprov-jdk14</artifactId>
		            </exclusion>
		            <exclusion>
		                <groupId>org.bouncycastle</groupId>
		                <artifactId>bcmail-jdk14</artifactId>
		            </exclusion>
		            <exclusion>
		            	<groupId>org.bouncycastle</groupId>
		            	<artifactId>bctsp-jdk14</artifactId>
		            </exclusion>
		        </exclusions>
			</dependency>
			<dependency>
			    <groupId>org.jfree</groupId>
			    <artifactId>jfreechart</artifactId>
			    <version>1.5.6</version>
			</dependency>
			<dependency>
			    <groupId>org.jsoup</groupId>
			    <artifactId>jsoup</artifactId>
			    <version>1.22.2</version>
			</dependency>
			<dependency>
				<groupId>com.top-logic</groupId>
				<artifactId>ext-org-mozilla-pdfjs</artifactId>
				<version>${tl.version}</version>
			</dependency>
			<dependency>
			    <groupId>org.pac4j</groupId>
			    <artifactId>pac4j-oidc</artifactId>
    			<version>6.5.4</version>
			</dependency>
			<dependency>
				<groupId>net.minidev</groupId>
				<artifactId>json-smart</artifactId>
				<version>2.6.0</version>
			</dependency>			
			<dependency>
			    <groupId>org.pac4j</groupId>
			    <artifactId>pac4j-jakartaee</artifactId>
    			<version>6.5.4</version>
			</dependency>
			<dependency>
			    <groupId>org.pac4j</groupId>
			    <artifactId>jakartaee-pac4j</artifactId>
			    <version>8.0.3</version>
			</dependency>
			<dependency>
			    <groupId>org.codelibs</groupId>
			    <artifactId>jcifs</artifactId>
			    <version>2.1.40</version>
			</dependency>
			<dependency>
			    <groupId>de.haumacher.msgbuf</groupId>
			    <artifactId>msgbuf-api</artifactId>
			    <version>${msgbuf.version}</version>
			</dependency>
			<dependency>
			    <groupId>de.haumacher.msgbuf</groupId>
			    <artifactId>msgbuf-api</artifactId>
			    <version>${msgbuf.version}</version>
			    <classifier>sources</classifier>
			    <scope>provided</scope>
			</dependency>

			<dependency>
				<groupId>jakarta.activation</groupId>
				<artifactId>jakarta.activation-api</artifactId>
				<version>2.1.4</version>
			</dependency>
			<dependency>
				<groupId>org.eclipse.angus</groupId>
				<artifactId>angus-activation</artifactId>
				<version>2.0.3</version>
			</dependency>
			
		  	<dependency>
			    <groupId>org.apache.maven</groupId>
				<artifactId>maven-model-builder</artifactId>
				<version>3.9.16</version>
		  	</dependency>
			<dependency>
				<groupId>org.apache.logging.log4j</groupId>
				<artifactId>log4j-api</artifactId>
				<version>${log4j.version}</version>
			</dependency>
			<dependency>
				<groupId>org.apache.logging.log4j</groupId>
				<artifactId>log4j-core</artifactId>
				<version>${log4j.version}</version>
			</dependency>
			<dependency>
			    <groupId>org.apache.logging.log4j</groupId>
			    <artifactId>log4j-slf4j2-impl</artifactId>
			    <version>${log4j.version}</version>
			</dependency>
		    <dependency>
				<groupId>org.slf4j</groupId>
				<artifactId>slf4j-api</artifactId>
				<version>${slf4j.version}</version>
			</dependency>
			<dependency>
			    <groupId>net.sourceforge.jexcelapi</groupId>
			    <artifactId>jxl</artifactId>
			    <version>2.6.12</version>
			    
			    <exclusions>
			    	<exclusion>
			    		<groupId>log4j</groupId>
						<artifactId>log4j</artifactId>
			    	</exclusion>
			    </exclusions>
			</dependency>
			<dependency>
				<groupId>de.haumacher</groupId>
				<artifactId>tm-extractors</artifactId>
				<version>1.2</version>
			</dependency>
    		<dependency>
				<groupId>org.commonmark</groupId>
				<artifactId>commonmark</artifactId>
				<version>0.29.0</version>
			</dependency>
			
			<!-- Test modules -->
			<dependency>
				<groupId>com.top-logic</groupId>
				<artifactId>test-tl-importer</artifactId>
				<version>${tl.version}</version>
				<type>test-jar</type>
				<scope>test</scope>
			</dependency>
			<dependency>
				<groupId>com.top-logic</groupId>
				<artifactId>test-tl-kafka</artifactId>
				<version>${tl.version}</version>
				<type>test-jar</type>
				<scope>test</scope>
			</dependency>
			<dependency>
				<groupId>com.top-logic</groupId>
				<artifactId>test-tl-migrate-tl</artifactId>
				<version>${tl.version}</version>
				<type>test-jar</type>
				<scope>test</scope>
			</dependency>

			<!-- Demos -->
			<dependency>
				<groupId>com.top-logic</groupId>
				<artifactId>tl-demo</artifactId>
				<version>${tl.version}</version>
			</dependency>
			<dependency>
				<groupId>com.top-logic</groupId>
				<artifactId>tl-kafka-demo</artifactId>
				<version>${tl.version}</version>
			</dependency>
			<dependency>
				<groupId>com.top-logic</groupId>
				<artifactId>test-tl-kafka-demo</artifactId>
				<version>${tl.version}</version>
			</dependency>
		</dependencies>
	</dependencyManagement>

	<distributionManagement>
		<repository>
			<id>tl-releases</id>
			<url>https://dev.top-logic.com/nexus/repository/toplogic/</url>
			<releases>
				<enabled>true</enabled>
			</releases>
			<snapshots>
				<enabled>false</enabled>
			</snapshots>
		</repository>

		<snapshotRepository>
			<id>tl-snapshots</id>
			<url>https://dev.top-logic.com/nexus/repository/toplogic-snapshots/</url>
			<releases>
				<enabled>false</enabled>
			</releases>
			<snapshots>
				<enabled>true</enabled>
			</snapshots>
		</snapshotRepository>
	</distributionManagement>

	<dependencies>
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>4.13.2</version>
			<scope>test</scope>
		</dependency>
	  	<dependency>
		    <groupId>org.apache.maven</groupId>
			<artifactId>maven-model-builder</artifactId>
			<scope>test</scope>
	  	</dependency>
	</dependencies>

	<build>
		<testResources>
			<testResource>
				<directory>src/test/resources</directory>
			</testResource>
			<testResource>
				<directory>src/test/java</directory>
				<excludes>
					<exclude>.srcexclude</exclude>
					<exclude>**/*.java</exclude>
				</excludes>
			</testResource>
		</testResources>

		<resources>
			<resource>
				<directory>src/main/resources</directory>
			</resource>
			<resource>
				<directory>src/main/java</directory>
				<excludes>
					<exclude>.srcexclude</exclude>
					<exclude>**/*.java</exclude>
				</excludes>
			</resource>
		</resources>

		<plugins>
	  		<plugin>
	  			<groupId>org.apache.maven.plugins</groupId>
	  			<artifactId>maven-resources-plugin</artifactId>
	  		</plugin>

			<plugin>
				<artifactId>maven-compiler-plugin</artifactId>
				<configuration>
					<parameters>true</parameters>
					<useIncrementalCompilation>false</useIncrementalCompilation>
					<forceJavacCompilerUse>true</forceJavacCompilerUse>
					<compilerArgs>
	                    <arg>-parameters</arg>
	                </compilerArgs>
				</configuration>
			</plugin>

			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-source-plugin</artifactId>
				<version>3.4.0</version>

				<configuration>
					<excludes>**/.srcexclude</excludes>
				</configuration>

				<executions>
					<execution>
						<id>attach-sources</id>
						<phase>verify</phase>
						<goals>
							<goal>jar-no-fork</goal>
							<goal>test-jar-no-fork</goal>
						</goals>
					</execution>
				</executions>
			</plugin>

			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-surefire-plugin</artifactId>
				<configuration>
					<skipTests>${skipTests}</skipTests>
				</configuration>
			</plugin>

			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-release-plugin</artifactId>
				<version>3.3.1</version>
				<configuration>
					<autoVersionSubmodules>true</autoVersionSubmodules>
					<tagNameFormat>TL_@{project.version}</tagNameFormat>
					<preparationGoals>clean install</preparationGoals>
				</configuration>
			</plugin>
			
			<plugin>
		        <groupId>org.codehaus.mojo</groupId>
		        <artifactId>exec-maven-plugin</artifactId>
		        
		        <executions>
					<execution>
						<id>normalize-layouts</id>
						<goals>
							<goal>java</goal>
						</goals>
						
						<configuration>
							<skip>${skipNormalizeLayouts}</skip>
							
							<mainClass>com.top_logic.basic.xml.XMLPrettyPrinter</mainClass>
							<arguments>
								<argument>${tl.layoutDir}</argument>
							</arguments>
							
							<includePluginDependencies>false</includePluginDependencies>
							<includeProjectDependencies>true</includeProjectDependencies>
							<addOutputToClasspath>true</addOutputToClasspath>
							<addResourcesToClasspath>false</addResourcesToClasspath>
						</configuration>
					</execution>

					<!--
						Inlining a templated layout. 
						
						The layout given as the `tl.layout` parameter is loaded, inlined and written back to the file 
						system. The layout must be given as path relative to the parent directory of the current module 
						(where the pom.xml is located).
						
						A valid command line would look as follows given that the module from which the goal is invoked
						is named `my-app` and the layout to inline is `my/path/to/myView.layout.xml`:
						
						mvn exec:java@inline-layout -Dtl.layout="my-app/src/main/webapp/WEB-INF/layouts/my/path/to/myView.layout.xml"
					-->
                    <execution>
						<id>inline-layout</id>
						<goals>
							<goal>java</goal>
						</goals>
						
						<configuration>
							<mainClass>com.top_logic.layout.component.LayoutModelProcessor</mainClass>
							<arguments>
								<argument>-workspace</argument>
								<argument>${project.basedir}/..</argument>
								<argument>-webapp</argument>
								<argument>${project.basedir}/src/main/webapp</argument>
								<argument>-in</argument>
								<argument>${tl.layout}</argument>
								<argument>inline</argument>
							</arguments>

							<!-- Necessary to have servlet classes in the class path. -->							
							<classpathScope>test</classpathScope>

							<includePluginDependencies>false</includePluginDependencies>
							<includeProjectDependencies>true</includeProjectDependencies>
							<addOutputToClasspath>true</addOutputToClasspath>
							<addResourcesToClasspath>false</addResourcesToClasspath>
						</configuration>
                    </execution>
					
					<execution>
						<id>migrate-ticket</id>
						<goals>
							<goal>java</goal>
						</goals>
						
						<configuration>
							<mainClass>${tl.migrationClass}</mainClass>
							
							<includePluginDependencies>false</includePluginDependencies>
							<includeProjectDependencies>true</includeProjectDependencies>
							<addOutputToClasspath>true</addOutputToClasspath>
							<addResourcesToClasspath>false</addResourcesToClasspath>
						</configuration>
					</execution>

					<!-- Run with mvn exec:java@migrate-ticket28336 -->
					<execution>
						<id>migrate-ticket28336</id>
						<goals>
							<goal>java</goal>
						</goals>
						
						<configuration>
							<skip>${skipNormalizeLayouts}</skip>

							<mainClass>com.top_logic.layout.tools.ticket28336.UpgradeConfirmMessages</mainClass>
							<arguments>
								<argument>${tl.layoutDir}</argument>
							</arguments>
						    	
							<includePluginDependencies>false</includePluginDependencies>
							<includeProjectDependencies>true</includeProjectDependencies>
							<addOutputToClasspath>true</addOutputToClasspath>
							<addResourcesToClasspath>true</addResourcesToClasspath>
						</configuration>
					</execution>

					<!-- Run with mvn exec:java@migrate-ticket28305 -->
					<execution>
						<id>migrate-ticket28305</id>
						<goals>
							<goal>java</goal>
						</goals>
						
						<configuration>
							<skip>${skipNormalizeLayouts}</skip>

							<mainClass>com.top_logic.layout.tools.ticket28305.UpgradeDownloadNames</mainClass>
							<arguments>
								<argument>${tl.layoutDir}</argument>
							</arguments>
						    	
							<includePluginDependencies>false</includePluginDependencies>
							<includeProjectDependencies>true</includeProjectDependencies>
							<addOutputToClasspath>true</addOutputToClasspath>
							<addResourcesToClasspath>true</addResourcesToClasspath>
						</configuration>
					</execution>
		        </executions>
			</plugin>

			<!-- Auto-update of dependencies, use: -->
			<!-- mvn versions:use-latest-releases versions:update-properties -DgenerateBackupPoms=false -->
			
			<!-- Check for plugin updates in tl-parent-all: -->
			<!-- mvn -N versions:display-plugin-updates -->
			<plugin>
				<groupId>org.codehaus.mojo</groupId>
				<artifactId>versions-maven-plugin</artifactId>
				
				<executions>
					<execution>
						<goals>
							<goal>use-latest-releases</goal>
							<goal>update-properties</goal>
						</goals>
					</execution>
				</executions>
						
				<configuration>
					<excludes>
					<!-- 
						<exclude>groupId:artifactId:*:*:version</exclude>
					-->
					</excludes>

          			<ruleSet>
						<ignoreVersions>
							<!-- Exclude alpha and milestone builds. -->
							<ignoreVersion>
								<type>regex</type>
								<version>(.+-alpha.*|.+-M\d|.+-RC.*)</version>
							</ignoreVersion>								
						</ignoreVersions>
						
						<rules>
							<rule>
								<groupId>org.apache.maven</groupId>
								
								<!-- Limit to Maven to 3.x -->
								<ignoreVersions>
									<ignoreVersion>
										<type>regex</type>
										<version>(?!3\.).*</version>
									</ignoreVersion>								
								</ignoreVersions>
							</rule>
							<rule>
								<groupId>org.apache.maven</groupId>
								<artifactId>maven-archiver</artifactId>

								<!-- Note: Newer versions have an issue with excessive memory consumption causing builds to fail when creating larger WAR artifacts. -->
								<!-- The issue declared to be fixed, but can still be observed: https://issues.apache.org/jira/browse/MSOURCES-94 -->
								<ignoreVersions>
									<ignoreVersion>
										<type>regex</type>
										<version>(?!3\.0\.0).*</version>
									</ignoreVersion>								
								</ignoreVersions>
							</rule>

							<rule>
								<groupId>org.codehaus.plexus</groupId>
								<artifactId>plexus-archiver</artifactId>
								<ignoreVersions>
									<ignoreVersion>
										<type>regex</type>
										<version>(?!2\.9\.).*</version>
									</ignoreVersion>								
								</ignoreVersions>
							</rule>
							<rule>
								<groupId>org.eclipse.jetty.ee10</groupId>
								
								<!-- Limit to Jetty 10 to avoid updating jakarta.servlet -->
								<ignoreVersions>
									<ignoreVersion>
										<type>regex</type>
										<version>(?!12\.).*</version>
									</ignoreVersion>
								</ignoreVersions>
							</rule>
							<rule>
								<groupId>org.apache.kafka</groupId>
								
								<!-- Limit to Kafka 3.9.x for compatibility -->
								<ignoreVersions>
									<ignoreVersion>
										<type>regex</type>
										<version>(?!3\.9\.).*</version>
									</ignoreVersion>
								</ignoreVersions>
							</rule>
						</rules>
					</ruleSet>					
				</configuration>
			</plugin>

			<!-- Check for well-known vulnerabilities. -->
			<!-- 
				Can be executed with `mvn dependency-check:check` in a certain module, or with 
				`dependency-check:aggregate` from the parent for all modules.
			-->
			<plugin>
			    <groupId>org.owasp</groupId>
			    <artifactId>dependency-check-maven</artifactId>
			    <version>12.2.2</version>
		        <configuration>
	                <format>ALL</format>
	                <skipProvidedScope>true</skipProvidedScope>
	                <suppressionFile>http://tl/trac/wiki/DependencyCheckSuppressions?format=txt</suppressionFile>
	                <suppressionFileServerId>tl-trac</suppressionFileServerId>
					<nvdApiServerId>nvd-api-key</nvdApiServerId>
		        </configuration>
			</plugin>
			
			<plugin>
			    <groupId>org.basepom.maven</groupId>
			    <artifactId>duplicate-finder-maven-plugin</artifactId>
			    <version>1.5.1</version>
			    
			    <configuration>
			    	<skip>${skipDependencyCheck}</skip>
			    	<ignoredResourcePatterns>
			    		<ignoredResourcePattern>about.html</ignoredResourcePattern>
			    	</ignoredResourcePatterns>
			    	<ignoredClassPatterns>
			    		<ignoredClassPattern>com\.sun\.activation\.registries\..*</ignoredClassPattern>
			    	</ignoredClassPatterns>
			    	<checkTestClasspath>false</checkTestClasspath>
			    </configuration>
			    
			    <executions>
			    	<execution>
			    		<id>check-classpath</id>
			    		
			    		<goals>
			    			<goal>check</goal>
			    		</goals>
			    	</execution>
			    </executions>
   			</plugin>
   			
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-enforcer-plugin</artifactId>
				<executions>
					<execution>
						<id>enforce-maven</id>
						<goals>
							<goal>enforce</goal>
						</goals>
						<configuration>
							<rules>
								<requireMavenVersion>
									<version>3.6.0</version>
								</requireMavenVersion>
							</rules>
						</configuration>
					</execution>
				</executions>
			</plugin>
    
	        <plugin>
	            <groupId>org.revapi</groupId>
	            <artifactId>revapi-maven-plugin</artifactId>
	            <version>0.15.1</version>
	            <dependencies>
	                <dependency>
	                    <groupId>org.revapi</groupId>
	                    <artifactId>revapi-java</artifactId>
	                    <version>0.28.4</version>
	                </dependency>
	            </dependencies>
	            
                <configuration>
                	<failBuildOnProblemsFound>false</failBuildOnProblemsFound>

                	<!-- No compare, just consistency checks. -->
                	<oldVersion>${tl.version}</oldVersion>
					
                    <analysisConfiguration>
						<revapi.filter>
							<elements>
								<exclude>
									<item>
										<matcher>java</matcher>
										<match>@com.top_logic.basic.annotation.FrameworkInternal ^*;</match>
									</item>
									<item>
										<matcher>java</matcher>
										<match>
											match %field | %method;

											@com.top_logic.basic.annotation.FrameworkInternal
											type * {
												* %field=*;
												* %method=*(**);
											}
										</match>
									</item>
								</exclude>
							</elements>
						</revapi.filter>                    
                        <revapi.differences>
                            <differences>
                                <item>
                                    <regex>true</regex>
                                    <ignore>true</ignore>
                                    <code>java.class.externalClassExposedInAPI</code>
                                    <newArchive>.*:.*:.*</newArchive>
                                    <justification>
                                        Don't care about exposing external APIs.
                                    </justification>
                                </item>
                                <item>
                                    <regex>true</regex>
                                    <ignore>true</ignore>
                                    <code>java.class.nonPublicPartOfAPI</code>
                                    <newArchive>(?!com\.top-logic).*:.*:.*</newArchive>
                                    <justification>
                                        Don't care about exposing non-public API, if the problem is in an external dependency.
                                    </justification>
                                </item>
                                <item>
                                    <regex>true</regex>
                                    <ignore>true</ignore>
                                    <code>java.class.nonPublicPartOfAPI</code>
                                    <new>.*\.PackageProtected|.*\.Unimplementable</new>
                                    <justification>
                                        Here a non-public type is used explicitly to prevent direct usage from outside.
                                    </justification>
                                </item>
                            </differences>
                        </revapi.differences>
                    </analysisConfiguration>
                </configuration>
	        </plugin>
	        
			<!-- SpotBugs -->
			<plugin>
				<groupId>com.github.spotbugs</groupId>
				<artifactId>spotbugs-maven-plugin</artifactId>
				<version>4.10.3.0</version>
				<!-- overwrite dependency on spotbugs if you want to specify the version of spotbugs -->
				<!-- <dependencies>
					<dependency>
						<groupId>com.github.spotbugs</groupId>
						<artifactId>spotbugs</artifactId>
						<version>4.8.3</version>
					</dependency>
				</dependencies> -->
				
				<!-- To run SpotBugs manually, add 'spotbugs:spotbugs' to a Maven command e.g. 
					'mvn clean verify spotbugs:spotbugs' or 'mvn clean install spotbugs:spotbugs'.
					You can run those commands inside the project you want to check or in 'tl-parent-all' to run it for all projects. -->
				<!-- Uncomment the executions section if you want SpotBugs to run automatically in the maven lifecycle (verify phase). -->
				<!-- <executions>
					<execution>
						<id>spotbugs-integration</id>
						<phase>verify</phase>
						<goals>
							<goal>spotbugs</goal>
						</goals>
					</execution>
				</executions> -->
			</plugin>
		</plugins>
		
		<pluginManagement>
			<plugins>
				<plugin>
					<groupId>com.top-logic</groupId>
					<artifactId>tl-maven-plugin</artifactId>
					<version>${tl.version}</version>
				</plugin>
				<plugin>
					<artifactId>maven-clean-plugin</artifactId>
					<version>3.5.0</version>
				</plugin>
				<!-- see http://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_maven-plugin_packaging -->
				<plugin>
					<artifactId>maven-resources-plugin</artifactId>
					<version>3.5.0</version>
				</plugin>
				<plugin>
					<artifactId>maven-compiler-plugin</artifactId>
					<version>3.15.0</version>
				</plugin>
				<plugin>
					<artifactId>maven-plugin-plugin</artifactId>
					<version>3.15.2</version>
				</plugin>
				<plugin>
					<artifactId>maven-surefire-plugin</artifactId>
					<version>3.5.6</version>
				</plugin>
				<plugin>
					<artifactId>maven-jar-plugin</artifactId>
					<version>3.4.2</version>
				</plugin>
				<plugin>
					<artifactId>maven-install-plugin</artifactId>
					<version>3.1.4</version>
				</plugin>
				<plugin>
					<groupId>org.codehaus.mojo</groupId>
					<artifactId>exec-maven-plugin</artifactId>
					<version>3.6.3</version>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-site-plugin</artifactId>
					<version>3.22.0</version>
				</plugin>
				<plugin>
					<artifactId>maven-deploy-plugin</artifactId>
					<version>3.1.4</version>
				</plugin>
				<plugin>
					<artifactId>maven-invoker-plugin</artifactId>
					<version>3.10.1</version>
				</plugin>
		  		<plugin>
		  			<groupId>org.codehaus.mojo</groupId>
		  			<artifactId>license-maven-plugin</artifactId>
		  			<version>2.7.1</version>
		  		</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-javadoc-plugin</artifactId>
					<version>3.12.0</version>
				</plugin>
		        <plugin>
		            <groupId>org.apache.maven.plugins</groupId>
		            <artifactId>maven-assembly-plugin</artifactId>
		            <version>3.8.0</version>
		        </plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-enforcer-plugin</artifactId>
					<version>3.6.3</version>
				</plugin>
				<plugin>
					<groupId>org.codehaus.mojo</groupId>
					<artifactId>versions-maven-plugin</artifactId>
					<version>2.21.0</version>
				</plugin>
				<plugin>
					<groupId>org.vafer</groupId>
					<artifactId>jdeb</artifactId>
					<version>1.14</version>
				</plugin>
				<plugin>
					<groupId>net.lopht.maven-plugins</groupId>
					<artifactId>upload-maven-plugin</artifactId>
					<version>0.6.0</version>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-war-plugin</artifactId>
					<version>3.5.1</version>
				</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.apache.maven.plugins
										</groupId>
										<artifactId>
											maven-war-plugin
										</artifactId>
										<versionRange>
											[3.3.2,)
										</versionRange>
										<goals>
											<goal>war</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>
											de.haumacher.msgbuf
										</groupId>
										<artifactId>
											msgbuf-generator-maven-plugin
										</artifactId>
										<versionRange>
											[1.1.2,)
										</versionRange>
										<goals>
											<goal>generate</goal>
										</goals>
									</pluginExecutionFilter>
									<action>
										<ignore />
									</action>
								</pluginExecution>
							</pluginExecutions>
						</lifecycleMappingMetadata>
					</configuration>
				</plugin>
			</plugins>
		</pluginManagement>
	</build>
	
	<repositories>
		<repository>
			<id>tl-releases</id>
			<url>https://dev.top-logic.com/nexus/repository/toplogic/</url>
			<releases>
				<enabled>true</enabled>
			</releases>
			<snapshots>
				<enabled>false</enabled>
			</snapshots>
		</repository>

		<repository>
			<id>tl-snapshots</id>
			<url>https://dev.top-logic.com/nexus/repository/toplogic-snapshots/</url>
			<releases>
				<enabled>false</enabled>
			</releases>
			<snapshots>
				<enabled>true</enabled>
			</snapshots>
		</repository>
	</repositories>
	
	<pluginRepositories>
		<pluginRepository>
			<id>tl-releases</id>
			<url>https://dev.top-logic.com/nexus/repository/toplogic/</url>
			<releases>
				<enabled>true</enabled>
			</releases>
			<snapshots>
				<enabled>false</enabled>
			</snapshots>
		</pluginRepository>
		
		<pluginRepository>
			<id>tl-snapshots</id>
			<url>https://dev.top-logic.com/nexus/repository/toplogic-snapshots/</url>
			<releases>
				<enabled>false</enabled>
			</releases>
			<snapshots>
				<enabled>true</enabled>
			</snapshots>
		</pluginRepository>
	</pluginRepositories>
</project>
