<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>marketing.heyday.maven</groupId>
		<artifactId>parentpom</artifactId>
		<version>16</version>
	</parent>
	<groupId>marketing.heyday.hartmann.fotodocumentation</groupId>
	<artifactId>hartmann-foto-documentation</artifactId>
	<packaging>pom</packaging>
	<version>1.0.2</version>
	<name>hartmann-foto-documentation</name>
	<scm>
		<connection>scm:git:git@git.heyday.marketing:heyday-marketing-gmbh/hartmann-foto_documentation.git</connection>
		<url>https://git.heyday.marketing/?p=heyday-marketing-gmbh/hartmann-foto_documentation.git</url>
		<tag>HEAD</tag>
	</scm>
	<build>
		<defaultGoal>install</defaultGoal>
		<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.0</version>
								</requireMavenVersion>
							</rules>
						</configuration>
					</execution>
				</executions>
			</plugin>
			<plugin>
				<artifactId>maven-site-plugin</artifactId>
				<configuration>
					<skip>true</skip>
					<skipDeploy>true</skipDeploy>
				</configuration>
			</plugin>

			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-war-plugin</artifactId>
				<version>3.2.2</version>
				<configuration>
					<archive>
						<manifest>
							<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
						</manifest>
						<manifestEntries>
							<Implementation-Build>${buildNumber}</Implementation-Build>
						</manifestEntries>
					</archive>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
				<version>3.8.0</version>
				<configuration>
					<release>21</release>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-surefire-plugin</artifactId>
				<version>3.0.0-M1</version>
				<configuration>
					<argLine>${surefireArgLine}
						--add-opens java.base/java.lang=ALL-UNNAMED
						--add-opens java.base/java.lang.reflect=ALL-UNNAMED
						--add-opens java.base/java.util.concurrent=ALL-UNNAMED
						--add-opens java.base/java.util=ALL-UNNAMED
					</argLine>
					<testFailureIgnore>true</testFailureIgnore>
					<excludes>
						<!-- exclude test helper classes -->
						<exclude>**/test/helper/*.*</exclude>
						<exclude>**/AllTest.*</exclude>
					</excludes>
					<forkCount>1</forkCount>
					<includes>
						<include>**/*Test.java</include>
						<include>**/*IT.java</include>
					</includes>
					<properties>
						<property>
							<name>listener</name>
							<value>org.sonar.java.jacoco.JUnitListener</value>
						</property>
					</properties>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.jacoco</groupId>
				<artifactId>jacoco-maven-plugin</artifactId>
				<configuration>
					<includes>
						<include>marketing/heyday/hartmann/fotodocumentation/**/*</include>
					</includes>
				</configuration>
				<executions>
					<execution>
						<id>test</id>
						<phase>initialize</phase>
						<goals>
							<goal>prepare-agent</goal>
						</goals>
					</execution>

					<!-- Prepares the property pointing to the JaCoCo runtime
					agent which is passed as VM argument when Maven the Surefire
					plugin is executed. -->
					<execution>
						<id>pre-unit-test</id>
						<goals>
							<goal>prepare-agent</goal>
						</goals>
						<configuration>
							<!-- Sets the name of the property containing the
							settings for JaCoCo runtime agent. -->
							<propertyName>surefireArgLine</propertyName>
						</configuration>
					</execution>
					<!-- Ensures that the code coverage report for unit tests is
					created after unit tests have been run. -->
					<execution>
						<id>post-unit-test</id>
						<phase>verify</phase>
						<goals>
							<goal>report</goal>
						</goals>
					</execution>

					<!-- Prepares the property pointing to the JaCoCo runtime
					agent which is passed as VM argument when Maven the Failsafe
					plugin is executed. -->
					<execution>
						<id>pre-integration-test</id>
						<phase>pre-integration-test</phase>
						<goals>
							<goal>prepare-agent-integration</goal>
						</goals>
						<configuration>
							<dumpOnExit>true</dumpOnExit>
							<!-- Sets the name of the property containing the
							settings for JaCoCo runtime agent. -->
							<propertyName>failsafeArgLine</propertyName>
						</configuration>
					</execution>
					<!-- Ensures that the code coverage report for integration
					tests after integration tests have been run. -->
					<execution>
						<id>post-integration-test</id>
						<!-- must be after tomcat shutdown -->
						<phase>verify</phase>
						<goals>
							<goal>report</goal>
							<goal>report-aggregate</goal>
						</goals>
						<configuration>
							<formats>
								<format>XML</format>
								<format>CSV</format>
							</formats>
							<dataFileIncludes>
								<dataFileInclude>**/jacoco.exec</dataFileInclude>
								<dataFileInclude>**/jacoco-it.exec</dataFileInclude>
							</dataFileIncludes>
							<outputDirectory>
								${project.reporting.outputDirectory}/jacoco-aggregate</outputDirectory>
						</configuration>
					</execution>
				</executions>
			</plugin>
		</plugins>
		<pluginManagement>
			<plugins>
				<plugin>
					<groupId>org.jacoco</groupId>
					<artifactId>jacoco-maven-plugin</artifactId>
					<version>${version.jacoco}</version>
				</plugin>

				<plugin>
					<groupId>org.codehaus.mojo</groupId>
					<artifactId>buildnumber-maven-plugin</artifactId>
					<version>3.0.0</version>
					<executions>
						<execution>
							<phase>validate</phase>
							<goals>
								<goal>create</goal>
							</goals>
						</execution>
					</executions>
					<configuration>
						<doCheck>false</doCheck>
						<doUpdate>false</doUpdate>
						<shortRevisionLength>7</shortRevisionLength>
						<revisionOnScmFailure>true</revisionOnScmFailure>
					</configuration>
				</plugin>
			</plugins>
		</pluginManagement>
	</build>
	<properties>

		<maven.javadoc.skip>true</maven.javadoc.skip>

		<!-- Sonar -->
		<sonar.core.codeCoveragePlugin>jacoco</sonar.core.codeCoveragePlugin>
		<sonar.dynamicAnalysis>reuseReports</sonar.dynamicAnalysis>
		<!--<sonar.language>java</sonar.language>-->
		<sonar.coverage.jacoco.xmlReportPaths>
			${project.basedir}/target/site/jacoco-aggregate/jacoco.xml</sonar.coverage.jacoco.xmlReportPaths>

		<jacoco-maven-plugin.version>0.8.12</jacoco-maven-plugin.version>

		<version.jacoco>0.8.12</version.jacoco>
		<version.arquillian>1.1.11.Final</version.arquillian>
		<version.org.jboss.ejb3.ext-api>2.2.0.Final</version.org.jboss.ejb3.ext-api>
		<version.org.jboss.resteasy>6.2.5.Final</version.org.jboss.resteasy>

		<subethamail.version>1.2</subethamail.version>
		<version.commons-io>2.7</version.commons-io>
		<version.commons-lang>2.6</version.commons-lang>
		<version.commons-lang3>3.5</version.commons-lang3>
		<version.commons-logging>1.2</version.commons-logging>
		<version.commons-fileupload>1.3</version.commons-fileupload>
		<version.javaslang>2.0.2</version.javaslang>

		<version.omnifaces>4.3</version.omnifaces>
		<version.primefaces>13.0.3</version.primefaces>
		<version.primefaces.ext>13.0.3</version.primefaces.ext>
		
		<version.jsonwebtoken>0.12.5</version.jsonwebtoken>

		<swagger-version>2.2.19</swagger-version>
	</properties>

	<dependencyManagement>
		<dependencies>

			<dependency>
				<groupId>org.wildfly.bom</groupId>
				<artifactId>wildfly</artifactId>
				<version>26.1.3.Final</version>
				<type>pom</type>
			</dependency>

			<dependency>
				<groupId>jakarta.platform</groupId>
				<artifactId>jakarta.jakartaee-api</artifactId>
				<version>10.0.0</version>
				<scope>provided</scope>
			</dependency>

			<dependency>
				<groupId>org.hibernate.orm</groupId>
				<artifactId>hibernate-core</artifactId>
				<version>6.2.13.Final</version>
				<scope>provided</scope>
			</dependency>

			<!-- json -->
			<dependency>
				<groupId>org.eclipse.parsson</groupId>
				<artifactId>parsson</artifactId>
				<version>1.1.5</version>
				<scope>provided</scope>
			</dependency>

			<dependency>
				<groupId>jakarta.json</groupId>
				<artifactId>jakarta.json-api</artifactId>
				<version>2.1.2</version>
				<scope>provided</scope>
			</dependency>

			<!-- Apache POI -->
			<dependency>
				<groupId>org.apache.poi</groupId>
				<artifactId>poi</artifactId>
				<version>5.1.0</version>
			</dependency>
			<dependency>
				<groupId>org.apache.poi</groupId>
				<artifactId>poi-ooxml</artifactId>
				<version>5.1.0</version>
				<exclusions>
					<exclusion>
						<groupId>dom4j</groupId>
						<artifactId>dom4j</artifactId>
					</exclusion>
					<exclusion>
						<groupId>stax</groupId>
						<artifactId>stax-api</artifactId>
					</exclusion>
				</exclusions>
			</dependency>


			<!-- swagger -->


			<dependency>
				<groupId>io.swagger.core.v3</groupId>
				<artifactId>swagger-jaxrs2-jakarta</artifactId>
				<scope>compile</scope>
				<version>${swagger-version}</version>
				<exclusions>
					<exclusion>
						<groupId>java.xml.bind</groupId>
						<artifactId>jaxb-api</artifactId>
					</exclusion>
					<exclusion>
						<groupId>com.fasterxml.jackson.jaxrs</groupId>
						<artifactId>jackson-jaxrs-json-provider</artifactId>
					</exclusion>
					<!-- <exclusion>
					<groupId>com.fasterxml.jackson.dataformat</groupId>
					<artifactId>jackson-dataformat-yaml</artifactId>
					</exclusion> -->
					<exclusion>
						<groupId>com.fasterxml.jackson.core</groupId>
						<artifactId>jackson-dataformat</artifactId>
					</exclusion>
					<exclusion>
						<groupId>com.fasterxml.jackson.core</groupId>
						<artifactId>jackson-annotations</artifactId>
					</exclusion>
					<exclusion>
						<groupId>com.fasterxml.jackson.core</groupId>
						<artifactId>jackson-databind</artifactId>
					</exclusion>
					<exclusion>
						<groupId>com.fasterxml.jackson.core</groupId>
						<artifactId>jackson-core</artifactId>
					</exclusion>
				</exclusions>
			</dependency>
			<dependency>
				<groupId>io.swagger.core.v3</groupId>
				<artifactId>swagger-jaxrs2-servlet-initializer-jakarta</artifactId>
				<version>${swagger-version}</version>
			</dependency>

			<!-- end swagger -->

			<dependency>
				<groupId>org.apache.logging.log4j</groupId>
				<artifactId>log4j-api</artifactId>
				<version>2.15.0</version>
			</dependency>
			<dependency>
				<groupId>org.apache.logging.log4j</groupId>
				<artifactId>log4j-core</artifactId>
				<version>2.15.0</version>
			</dependency>

			<!-- Resteasy -->

			<dependency>
				<groupId>org.jboss.resteasy</groupId>
				<artifactId>resteasy-core</artifactId>
				<version>${version.org.jboss.resteasy}</version>
			</dependency>

			<dependency>
				<groupId>org.jboss.resteasy</groupId>
				<artifactId>resteasy-core-spi</artifactId>
				<version>${version.org.jboss.resteasy}</version>
			</dependency>

			<dependency>
				<groupId>org.jboss.resteasy</groupId>
				<artifactId>resteasy-multipart-provider</artifactId>
				<version>${version.org.jboss.resteasy}</version>
			</dependency>

			<dependency>
				<groupId>org.jboss.resteasy</groupId>
				<artifactId>resteasy-jackson2-provider</artifactId>
				<version>${version.org.jboss.resteasy}</version>
				<scope>provided</scope>
			</dependency>
			
			<!-- JWT Library -->
		<dependency>
	    	<groupId>io.jsonwebtoken</groupId>
	    	<artifactId>jjwt-api</artifactId>
	    	<version>${version.jsonwebtoken}</version>
		</dependency>
		<dependency>
		    <groupId>io.jsonwebtoken</groupId>
		    <artifactId>jjwt-impl</artifactId>
		    <version>${version.jsonwebtoken}</version>
		    <scope>runtime</scope>
		</dependency>
		<dependency>
		    <groupId>io.jsonwebtoken</groupId>
		    <artifactId>jjwt-jackson</artifactId>
		    <version>${version.jsonwebtoken}</version>
		    <scope>runtime</scope>
		</dependency>
		<!-- JWT Library -->

			<!-- Test dependencies -->
			<dependency>
				<groupId>org.postgresql</groupId>
				<artifactId>postgresql</artifactId>
				<version>9.4-1201-jdbc41</version>
				<scope>test</scope>
			</dependency>
			<dependency>
				<groupId>org.slf4j</groupId>
				<artifactId>slf4j-log4j12</artifactId>
				<version>1.7.5</version>
				<scope>test</scope>
			</dependency>
			<dependency>
				<groupId>org.mockito</groupId>
				<artifactId>mockito-junit-jupiter</artifactId>
				<version>5.7.0</version>
				<scope>test</scope>
			</dependency>
			<dependency>
				<groupId>org.mockito</groupId>
				<artifactId>mockito-core</artifactId>
				<version>5.7.0</version>
				<scope>test</scope>
			</dependency>
			<dependency>
				<groupId>net.bytebuddy</groupId>
				<artifactId>byte-buddy</artifactId>
				<version>1.14.9</version>
				<scope>test</scope>
			</dependency>


			<dependency>
				<groupId>org.junit.jupiter</groupId>
				<artifactId>junit-jupiter-api</artifactId>
				<version>5.6.0</version>
				<scope>test</scope>
			</dependency>
			<dependency>
				<groupId>org.junit.jupiter</groupId>
				<artifactId>junit-jupiter-params</artifactId>
				<version>5.6.0</version>
				<scope>test</scope>
			</dependency>
			<dependency>
				<groupId>org.junit.jupiter</groupId>
				<artifactId>junit-jupiter-engine</artifactId>
				<version>5.6.0</version>
				<scope>test</scope>
			</dependency>

			<dependency>
				<groupId>org.junit.platform</groupId>
				<artifactId>junit-platform-suite-engine</artifactId>
				<version>1.9.2</version>
				<scope>test</scope>
			</dependency>

			<dependency>
				<groupId>org.junit.platform</groupId>
				<artifactId>junit-platform-suite-api</artifactId>
				<version>1.9.2</version>
				<scope>test</scope>
			</dependency>

			<dependency>
				<groupId>org.junit.platform</groupId>
				<artifactId>junit-platform-launcher</artifactId>
				<version>1.9.2</version>
				<scope>test</scope>
			</dependency>

			<dependency>
				<groupId>org.junit.platform</groupId>
				<artifactId>junit-platform-commons</artifactId>
				<version>1.9.2</version>
				<scope>test</scope>
			</dependency>

			<dependency>
				<groupId>org.jacoco</groupId>
				<artifactId>org.jacoco.core</artifactId>
				<version>${version.jacoco}</version>
				<scope>test</scope>
			</dependency>

		</dependencies>
	</dependencyManagement>
</project>
