<?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>
	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>3.3.2</version>
		<relativePath/> <!-- lookup parent from repository -->
	</parent>

	<groupId>de.accso</groupId>
	<artifactId>flexinale</artifactId>
	<version>2024.3.0</version>
	<name>Flexinale</name>
	<description>Flexinale - FLEX case study &quot;film festival&quot;</description>

	<packaging>pom</packaging>

	<modules>
		<module>flexinale-monolith</module>
		<module>flexinale-modulith-1-onion</module>
		<module>flexinale-modulith-2-components</module>
		<module>flexinale-distributed</module>

		<module>infrastructure</module>
	</modules>

	<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<maven.build.timestamp.format>yyyy-MM-dd'T'HH-mm-ss'Z'</maven.build.timestamp.format>

		<java.version>21</java.version>
		<maven.compiler.source>21</maven.compiler.source>
		<maven.compiler.target>21</maven.compiler.target>
		<maven.compiler.release>21</maven.compiler.release>

		<versions-maven-plugin.version>2.16.2</versions-maven-plugin.version>
		<findsecbugs-maven-plugin.version>1.12.0</findsecbugs-maven-plugin.version>
		<spotbugs-maven-plugin.version>4.8.5.0</spotbugs-maven-plugin.version>
		<spotbugs.version>4.8.6</spotbugs.version>

		<org-postgres.version>42.7.3</org-postgres.version>
		<jackson.version>2.17.2</jackson.version>
		<apache-poi.version>5.3.0</apache-poi.version>

		<archunit.version>1.3.0</archunit.version>
		<junit.version>5.10.3</junit.version>
		<assertj.version>3.26.3</assertj.version>
		<awaitility.version>4.2.2</awaitility.version>
	</properties>

	<repositories>
		<repository>
			<id>spring-milestones</id>
			<name>Spring Milestones</name>
			<url>https://repo.spring.io/milestone</url>
			<snapshots>
				<enabled>false</enabled>
			</snapshots>
		</repository>
		<repository>
			<id>spring-snapshots</id>
			<name>Spring Snapshots</name>
			<url>https://repo.spring.io/snapshot</url>
			<releases>
				<enabled>false</enabled>
			</releases>
		</repository>
		<repository>
			<id>mojohaus-releases</id>
			<name>mojohaus</name>
			<url>https://repo.maven.apache.org/maven2/org/codehaus/mojo/</url>
			<releases>
				<enabled>false</enabled>
			</releases>
		</repository>
	</repositories>
	<pluginRepositories>
		<pluginRepository>
			<id>spring-milestones</id>
			<name>Spring Milestones</name>
			<url>https://repo.spring.io/milestone</url>
			<snapshots>
				<enabled>false</enabled>
			</snapshots>
		</pluginRepository>
		<pluginRepository>
			<id>spring-snapshots</id>
			<name>Spring Snapshots</name>
			<url>https://repo.spring.io/snapshot</url>
			<releases>
				<enabled>false</enabled>
			</releases>
		</pluginRepository>
		<pluginRepository>
			<id>mojohaus-releases</id>
			<name>mojohaus</name>
			<url>https://repo.maven.apache.org/maven2/org/codehaus/mojo/</url>
			<releases>
				<enabled>false</enabled>
			</releases>
		</pluginRepository>
	</pluginRepositories>

	<dependencies>
		<!-- Test -->
		<dependency>
			<groupId>org.assertj</groupId>
			<artifactId>assertj-core</artifactId>
			<version>${assertj.version}</version>
			<scope>test</scope>
		</dependency>
		<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>com.tngtech.archunit</groupId>
			<artifactId>archunit</artifactId>
			<version>${archunit.version}</version>
			<scope>test</scope>
		</dependency>
	</dependencies>

	<profiles>
		<profile>
			<id>check-dependencies</id>
			<build>
				<plugins>
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-enforcer-plugin</artifactId>
						<version>3.5.0</version>
						<executions>
							<execution>
								<id>enforce-maven</id>
								<goals>
									<goal>enforce</goal>
								</goals>
								<configuration>
									<rules>
										<requireMavenVersion>
											<version>3.9.9</version>
										</requireMavenVersion>
									</rules>
								</configuration>
							</execution>
						</executions>
					</plugin>

					<plugin>
						<groupId>org.codehaus.mojo</groupId>
						<artifactId>versions-maven-plugin</artifactId>
						<version>${versions-maven-plugin.version}</version>
						<executions>
							<execution>
								<id>default</id>
								<phase>verify</phase>
								<goals>
									<goal>display-dependency-updates</goal>
									<goal>display-parent-updates</goal>
									<goal>display-plugin-updates</goal>
									<goal>display-property-updates</goal>
								</goals>
							</execution>
						</executions>
					</plugin>
				</plugins>
			</build>
		</profile>
	</profiles>
</project>
