<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<groupId>org.atria-soft</groupId>
	<artifactId>archidata</artifactId>
	<name>archidata</name>
	<version>0.47.2</version>
	<description>Wrapper to manage a simple interface for REST project to bind mongoDB.</description>
	<url>https://github.com/kangaroo-and-rabbit/archidata</url>
	<licenses>
		<license>
			<name>Mozilla Public License 2.0</name>
			<url>https://opensource.org/licenses/MPL-2.0</url>
			<distribution>repo</distribution>
		</license>
	</licenses>
	<developers>
		<developer>
			<id>dev1</id>
			<name>Edouard DUPIN</name>
			<email>edouard.dupin@proton.me</email>
			<roles>
				<role>Lead Developer</role>
			</roles>
		</developer>
	</developers>
	<scm>
		<url>https://github.com/kangaroo-and-rabbit/archidata</url>
		<connection>scm:git:git://github.com/kangaroo-and-rabbit/archidata.git</connection>
		<developerConnection>scm:git:ssh:github.com/kangaroo-and-rabbit/archidata.git</developerConnection>
	</scm>
	<dependencyManagement>
		<dependencies>
			<dependency>
				<groupId>org.glassfish.jersey</groupId>
				<artifactId>jersey-bom</artifactId>
				<version>4.0.2</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>
		</dependencies>
	</dependencyManagement>
	<dependencies>
		<!-- Loopback of logger JDK logging API to SLF4J -->
		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>jul-to-slf4j</artifactId>
			<version>2.0.18</version>
		</dependency>
		<!-- generic logger of SLF4J to console (in color) -->
		<dependency>
			<groupId>ch.qos.logback</groupId>
			<artifactId>logback-classic</artifactId>
			<version>1.5.34</version>
		</dependency>
		<!-- Decode webP images -->
		<dependency>
			<groupId>com.twelvemonkeys.imageio</groupId>
			<artifactId>imageio-webp</artifactId>
			<version>3.13.1</version>
		</dependency>
		<!-- Decode JPEG image -->
		<dependency>
			<groupId>com.twelvemonkeys.imageio</groupId>
			<artifactId>imageio-jpeg</artifactId>
			<version>3.13.1</version>
		</dependency>
		<!-- webp-imageio removed: bundled native libwebp vulnerable to CVE-2023-4863.
		     WebP reading is covered by TwelveMonkeys. WebP writing (thumbnails) to be
		     re-added when a safe alternative is available. -->
		<!-- Detect type of a file with mime type -->
		<dependency>
			<groupId>org.apache.tika</groupId>
			<artifactId>tika-core</artifactId>
			<version>3.3.1</version>
		</dependency>
		<!-- https://mvnrepository.com/artifact/org.glassfish.jersey.media/jersey-media-multipart -->
		<dependency>
			<groupId>org.glassfish.jersey.media</groupId>
			<artifactId>jersey-media-multipart</artifactId>
		</dependency>
		<dependency>
			<groupId>org.glassfish.jersey.core</groupId>
			<artifactId>jersey-client</artifactId>
		</dependency>
		<dependency>
			<groupId>org.glassfish.jersey.inject</groupId>
			<artifactId>jersey-hk2</artifactId>
		</dependency>
		<dependency>
			<groupId>org.glassfish.jersey.containers</groupId>
			<artifactId>jersey-container-grizzly2-http</artifactId>
		</dependency>
		<dependency>
			<groupId>org.glassfish.jersey.ext</groupId>
			<artifactId>jersey-bean-validation</artifactId>
		</dependency>
		<dependency>
			<groupId>org.glassfish.jaxb</groupId>
			<artifactId>jaxb-runtime</artifactId>
			<version>4.0.9</version>
		</dependency>
		<dependency>
			<groupId>jakarta.ws.rs</groupId>
			<artifactId>jakarta.ws.rs-api</artifactId>
			<version>4.0.0</version>
		</dependency>
		<!-- Serialize and un-serialize request in JSON-->
		<dependency>
			<groupId>org.glassfish.jersey.media</groupId>
			<artifactId>jersey-media-json-jackson</artifactId>
		</dependency>
		<dependency>
			<groupId>com.fasterxml.jackson.core</groupId>
			<artifactId>jackson-databind</artifactId>
			<version>2.22.0</version>
		</dependency>
		<dependency>
			<groupId>com.fasterxml.jackson.core</groupId>
			<artifactId>jackson-annotations</artifactId>
			<version>2.22</version>
		</dependency>
		<!-- encode output in CSV -->
		<dependency>
			<groupId>com.fasterxml.jackson.dataformat</groupId>
			<artifactId>jackson-dataformat-csv</artifactId>
			<version>2.22.0</version>
		</dependency>
		<dependency>
			<groupId>com.fasterxml.jackson.datatype</groupId>
			<artifactId>jackson-datatype-jsr310</artifactId>
			<version>2.22.0</version>
		</dependency>
		<dependency>
			<groupId>jakarta.servlet</groupId>
			<artifactId>jakarta.servlet-api</artifactId>
			<version>6.1.0</version>
			<scope>provided</scope>
		</dependency>
		<!-- Interface for JWT token -->
		<dependency>
			<groupId>com.nimbusds</groupId>
			<artifactId>nimbus-jose-jwt</artifactId>
			<version>10.9.1</version>
		</dependency>
		<dependency>
			<groupId>jakarta.persistence</groupId>
			<artifactId>jakarta.persistence-api</artifactId>
			<version>3.2.0</version>
		</dependency>
		<!-- Swagger dependencies -->
		<dependency>
			<groupId>io.swagger.core.v3</groupId>
			<artifactId>swagger-jaxrs2-jakarta</artifactId>
			<version>2.2.50</version>
		</dependency>
		<!-- spotbug tooling -->
		<dependency>
			<groupId>com.github.spotbugs</groupId>
			<artifactId>spotbugs-annotations</artifactId>
			<version>4.10.2</version>
			<scope>compile</scope>
		</dependency>
		<!-- MongoDB Java Driver -->
		<dependency>
			<groupId>org.mongodb</groupId>
			<artifactId>mongodb-driver-sync</artifactId>
			<version>5.3.1</version>
		</dependency>
		<!-- Bean Validation (JSR 303 / 380) -->
		<dependency>
			<groupId>org.hibernate.validator</groupId>
			<artifactId>hibernate-validator</artifactId>
			<version>9.1.0.Final</version>
		</dependency>
		<!-- Support of compression in tar.gz for base archive -->
		<dependency>
			<groupId>org.apache.commons</groupId>
			<artifactId>commons-compress</artifactId>
			<version>1.28.0</version>
		</dependency>
		<!--
		************************************************************ 
		** TEST dependency                                        **
		************************************************************
		-->
		<dependency>
			<groupId>org.junit.jupiter</groupId>
			<artifactId>junit-jupiter-api</artifactId>
			<version>6.1.0</version>
			<scope>test</scope>
		</dependency>
		<!-- generic logger of SLF4J to console (in color) -->
		<dependency>
			<groupId>ch.qos.logback</groupId>
			<artifactId>logback-classic</artifactId>
			<version>1.5.34</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>xerces</groupId>
			<artifactId>xercesImpl</artifactId>
			<version>2.12.2</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.codehaus.janino</groupId>
			<artifactId>janino</artifactId>
			<version>3.1.12</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.junit.jupiter</groupId>
			<artifactId>junit-jupiter-engine</artifactId>
			<version>6.1.0</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>net.revelc.code.formatter</groupId>
			<artifactId>formatter-maven-plugin</artifactId>
			<version>2.29.0</version>
		</dependency>
		<dependency>
			<groupId>org.apache.maven.plugins</groupId>
			<artifactId>maven-checkstyle-plugin</artifactId>
			<version>3.6.0</version>
		</dependency>
	</dependencies>
	<build>
		<sourceDirectory>src/main</sourceDirectory>
		<resources>
			<resource>
				<directory>${basedir}/src/resources</directory>
			</resource>
		</resources>
		<testSourceDirectory>src/test</testSourceDirectory>
		<testResources>
			<testResource>
				<directory>${basedir}/src/testResources</directory>
			</testResource>
		</testResources>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
				<version>3.15.0</version>
				<configuration>
					<source>25</source>
					<target>25</target>
				</configuration>
			</plugin>
			<!-- Create the source bundle -->
			<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</goal>
						</goals>
					</execution>
				</executions>
			</plugin>
			<!-- For dependabot plugin -->
			<plugin>
				<groupId>org.apache.servicemix.tooling</groupId>
				<artifactId>depends-maven-plugin</artifactId>
				<version>1.5.0</version>
				<executions>
					<execution>
						<id>generate-depends-file</id>
						<goals>
							<goal>generate-depends-file</goal>
						</goals>
					</execution>
				</executions>
			</plugin>
			<!-- junit results -->
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-surefire-plugin</artifactId>
				<version>3.5.6</version>
				<configuration>
					<!-- Force sequential execution for tests sharing singleton ChangeNotificationManager -->
					<forkCount>1</forkCount>
					<reuseForks>true</reuseForks>
					<runOrder>alphabetical</runOrder>
				</configuration>
			</plugin>
			<plugin>
				<artifactId>maven-assembly-plugin</artifactId>
				<configuration>
					<archive>
						<manifest>
							<mainClass>fully.qualified.MainClass</mainClass>
						</manifest>
					</archive>
					<descriptorRefs>
						<descriptorRef>jar-with-dependencies</descriptorRef>
					</descriptorRefs>
				</configuration>
			</plugin>
			<!-- Java-doc generation for stand-alone site -->
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-javadoc-plugin</artifactId>
				<version>3.12.0</version>
				<configuration>
					<overview>${basedir}/src/main/overview.html</overview>
					<doctitle>Archi-data ${project.version} API</doctitle>
					<windowtitle>Archi-data API</windowtitle>
					<sourcepath>${basedir}/src/main</sourcepath>
					<subpackages>org.atriasoft.archidata</subpackages>
					<encoding>UTF-8</encoding>
					<docencoding>UTF-8</docencoding>
					<charset>UTF-8</charset>
					<doclint>all</doclint>
				</configuration>
				<executions>
					<execution>
						<id>attach-javadocs</id>
						<goals>
							<goal>jar</goal>
						</goals>
					</execution>
				</executions>
			</plugin>
			<!-- Check the style of the code -->
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-checkstyle-plugin</artifactId>
				<version>3.6.0</version>
				<configuration>
					<configLocation>CheckStyle.xml</configLocation>
					<consoleOutput>true</consoleOutput>
					<failOnViolation>true</failOnViolation>
					<failsOnError>true</failsOnError>
					<includeTestSourceDirectory>true</includeTestSourceDirectory>
				</configuration>
			</plugin>
			<plugin>
				<groupId>net.revelc.code.formatter</groupId>
				<artifactId>formatter-maven-plugin</artifactId>
				<version>2.29.0</version>
				<configuration>
					<encoding>UTF-8</encoding>
					<lineEnding>LF</lineEnding>
					<configFile>Formatter.xml</configFile>
					<directories>
						<directory>src/</directory>
						<directory>test/src</directory>
					</directories>
					<includes>
						<include>**/*.java</include>
					</includes>
					<excludes>
						<exclude>module-info.java</exclude>
					</excludes>
				</configuration>
				<executions>
					<execution>
						<goals>
							<goal>validate</goal>
						</goals>
					</execution>
				</executions>
			</plugin>
			<plugin>
				<groupId>com.github.spotbugs</groupId>
				<artifactId>spotbugs-maven-plugin</artifactId>
				<version>4.10.2.0</version>
				<configuration>
					<includeFilterFile>spotbugs-security-include.xml</includeFilterFile>
					<excludeFilterFile>spotbugs-security-exclude.xml</excludeFilterFile>
					<!--<plugins>
						<plugin>
							<groupId>com.h3xstream.findsecbugs</groupId>
							<artifactId>findsecbugs-plugin</artifactId>
							<version>1.12.0</version>
						</plugin>
					</plugins>
					-->
				</configuration>
			</plugin>
			<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>
					</execution>
				</executions>
			</plugin>
			<plugin>
				<groupId>org.sonatype.central</groupId>
				<artifactId>central-publishing-maven-plugin</artifactId>
				<version>0.10.0</version>
				<extensions>true</extensions>
				<configuration>
					<publishingServerId>central</publishingServerId>
				</configuration>
			</plugin>
		</plugins>
	</build>
</project>
