<?xml version="1.0" encoding="UTF-8"?>
<!--
	Copyright The WildFly Authors
	SPDX-License-Identifier: Apache-2.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>

	<parent>
		<groupId>org.wildfly.clustering</groupId>
		<artifactId>wildfly-clustering-bom</artifactId>
		<version>9.0.2.Final</version>
		<relativePath>bom</relativePath>
	</parent>

	<artifactId>wildfly-clustering</artifactId>
	<packaging>pom</packaging>

	<name>${project.repository.name}: Modules</name>

	<modules>
		<module>parent</module>
		<module>bom</module>
		<module>arquillian</module>
		<module>cache</module>
		<module>context</module>
		<module>function</module>
		<module>marshalling</module>
		<module>server</module>
		<module>session</module>
	</modules>

	<dependencyManagement>
		<dependencies>
			<!-- Specification dependencies -->
			<dependency>
				<groupId>jakarta.transaction</groupId>
				<artifactId>jakarta.transaction-api</artifactId>
				<version>2.0.1</version>
			</dependency>

			<!-- BOM dependencies -->
			<dependency>
				<groupId>io.github.resilience4j</groupId>
				<artifactId>resilience4j-bom</artifactId>
				<version>2.3.0</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>
			<dependency>
				<groupId>org.assertj</groupId>
				<artifactId>assertj-bom</artifactId>
				<version>3.27.6</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>
			<dependency>
				<groupId>org.infinispan</groupId>
				<artifactId>infinispan-bom</artifactId>
				<version>16.0.5</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>
			<dependency>
				<groupId>org.jboss.arquillian</groupId>
				<artifactId>arquillian-bom</artifactId>
				<version>1.10.0.Final</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>
			<dependency>
				<groupId>org.jboss.shrinkwrap</groupId>
				<artifactId>shrinkwrap-bom</artifactId>
				<version>1.2.6</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>
			<dependency>
				<groupId>org.junit</groupId>
				<artifactId>junit-bom</artifactId>
				<version>6.0.2</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>
			<dependency>
				<groupId>org.mockito</groupId>
				<artifactId>mockito-bom</artifactId>
				<version>5.21.0</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>
			<dependency>
				<groupId>org.slf4j</groupId>
				<artifactId>slf4j-bom</artifactId>
				<version>2.0.17</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>
			<dependency>
				<groupId>org.testcontainers</groupId>
				<artifactId>testcontainers-bom</artifactId>
				<version>2.0.3</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>

			<!-- BOM-less dependencies -->
			<dependency>
				<groupId>com.github.ben-manes.caffeine</groupId>
				<artifactId>caffeine</artifactId>
				<version>3.2.3</version>
			</dependency>
			<dependency>
				<groupId>com.h2database</groupId>
				<artifactId>h2</artifactId>
				<version>2.4.240</version>
			</dependency>
			<dependency>
				<groupId>io.undertow</groupId>
				<artifactId>undertow-core</artifactId>
				<version>2.3.20.Final</version>
			</dependency>
			<dependency>
				<groupId>net.jcip</groupId>
				<artifactId>jcip-annotations</artifactId>
				<version>1.0</version>
			</dependency>
			<dependency>
				<groupId>org.apache.tomcat</groupId>
				<artifactId>tomcat-catalina</artifactId>
				<version>11.0.15</version>
			</dependency>
			<dependency>
				<groupId>org.jboss.marshalling</groupId>
				<artifactId>jboss-marshalling</artifactId>
				<version>2.2.3.Final</version>
			</dependency>
			<dependency>
				<groupId>org.jboss.marshalling</groupId>
				<artifactId>jboss-marshalling-river</artifactId>
				<version>2.2.3.Final</version>
			</dependency>
			<dependency>
				<groupId>org.jgroups</groupId>
				<artifactId>jgroups</artifactId>
				<version>5.5.2.Final</version>
			</dependency>
			<dependency>
				<groupId>org.kohsuke.metainf-services</groupId>
				<artifactId>metainf-services</artifactId>
				<version>1.11</version>
			</dependency>
		</dependencies>
	</dependencyManagement>

	<dependencies>
		<dependency>
			<groupId>org.assertj</groupId>
			<artifactId>assertj-core</artifactId>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.junit.jupiter</groupId>
			<artifactId>junit-jupiter</artifactId>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.mockito</groupId>
			<artifactId>mockito-core</artifactId>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.mockito</groupId>
			<artifactId>mockito-junit-jupiter</artifactId>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.mockito</groupId>
			<artifactId>mockito-subclass</artifactId>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>slf4j-jdk14</artifactId>
			<scope>test</scope>
		</dependency>
	</dependencies>

	<build>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
				<configuration>
					<annotationProcessorPaths>
						<annotationProcessorPath>
							<groupId>org.kohsuke.metainf-services</groupId>
							<artifactId>metainf-services</artifactId>
						</annotationProcessorPath>
						<annotationProcessorPath>
							<groupId>org.infinispan</groupId>
							<artifactId>infinispan-component-processor</artifactId>
						</annotationProcessorPath>
						<annotationProcessorPath>
							<groupId>org.infinispan.protostream</groupId>
							<artifactId>protostream-processor</artifactId>
						</annotationProcessorPath>
					</annotationProcessorPaths>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-javadoc-plugin</artifactId>
				<configuration>
					<sourceFileExcludes>
						<sourceFileExclude>**/WildFlyClustering*Impl.java</sourceFileExclude>
						<sourceFileExclude>**/*SerializationContextInitializerImpl.java</sourceFileExclude>
					</sourceFileExcludes>
				</configuration>
				<executions>
					<execution>
						<id>aggregate-javadoc</id>
						<inherited>false</inherited>
						<goals>
							<goal>aggregate-jar</goal>
						</goals>
						<configuration>
							<doclint>none</doclint>
							<failOnWarnings>false</failOnWarnings>
							<skippedModules>wildfly-clustering-session-container-servlet-*</skippedModules>
						</configuration>
					</execution>
				</executions>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-surefire-plugin</artifactId>
				<configuration>
					<argLine>@{argLine} -javaagent:${org.mockito:mockito-core:jar}</argLine>
				</configuration>
			</plugin>
		</plugins>
	</build>
</project>
