<?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">

	<!--Deploy: Spring Information-->
	<modelVersion>4.0.0</modelVersion>
	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>2.6.4</version>
		<relativePath/> <!-- lookup parent from repository -->
	</parent>

	<!--Deploy: Coordinates-->
	<packaging>jar</packaging>
	<groupId>com.huntercodexs</groupId>
	<artifactId>codexstester</artifactId>
	<version>2.0.2</version>

	<!--Deploy: ProjectName, Description and URL-->
	<name>codexstester</name>
	<description>codexstester</description>
	<url>https://github.com/huntercodexs/codexstester</url>

	<!--Deploy: License Information-->
	<licenses>
		<license>
			<name>MIT License</name>
			<url>http://www.opensource.org/licenses/mit-license.php</url>
		</license>
	</licenses>

	<!--Deploy: Developer Information-->
	<developers>
		<developer>
			<name>Huntercodexs</name>
			<email>huntercodexs@gmail.com</email>
			<organization>Huntercodexs</organization>
			<organizationUrl>http://www.huntercodexs.com</organizationUrl>
		</developer>
	</developers>

	<!--Deploy: SCM Information-->
	<scm>
		<connection>scm:git:git://github.com/huntercodexs/codexstester</connection>
		<developerConnection>scm:git:ssh://github.com:huntercodexs/codexstester</developerConnection>
		<url>http://github.com/huntercodexs/codexstester/tree/release-2.0.2--java8-spring-boot-2.6.4-cucumber-7.10.1</url>
	</scm>

	<!--Deploy: Project Properties-->
	<properties>

		<!--Java Version-->
		<java.version>1.8</java.version>

		<!--Dependencies Versions-->
		<junit.version>4.13.2</junit.version>
		<junit-jupiter.version>5.8.2</junit-jupiter.version>
		<junit-platform.version>1.10.3</junit-platform.version>
		<cucumber.version>7.10.1</cucumber.version>
		<extent-report.version>1.13.0</extent-report.version>
		<selenium.version>3.13.0</selenium.version>

		<!--Charset Encoding - Optional-->
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>

	</properties>

	<dependencies>

		<!--SPRING BOOT: TEST-->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>compile</scope>
			<exclusions>
				<exclusion>
					<groupId>org.springframework.boot</groupId>
					<artifactId>spring-boot-starter-logging</artifactId>
				</exclusion>
				<exclusion>
					<groupId>log4j</groupId>
					<artifactId>log4j</artifactId>
				</exclusion>
			</exclusions>
		</dependency>

		<!--JUNIT4-->
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>${junit.version}</version>
			<scope>compile</scope>
		</dependency>
		<!--JUNIT5-->
		<dependency>
			<groupId>org.junit.jupiter</groupId>
			<artifactId>junit-jupiter-engine</artifactId>
			<version>${junit-jupiter.version}</version>
			<scope>compile</scope>
		</dependency>
		<!--JUNIT-PLATFORM: SUITE-->
		<dependency>
			<groupId>org.junit.platform</groupId>
			<artifactId>junit-platform-suite</artifactId>
			<version>${junit-platform.version}</version>
			<scope>compile</scope>
		</dependency>

		<!--PROJECT REACTOR-->
		<dependency>
			<groupId>io.projectreactor</groupId>
			<artifactId>reactor-test</artifactId>
			<scope>compile</scope>
		</dependency>

		<!--MOCK MVC-->
		<dependency>
			<groupId>org.springframework.restdocs</groupId>
			<artifactId>spring-restdocs-mockmvc</artifactId>
			<scope>compile</scope>
		</dependency>
		<dependency>
			<groupId>io.rest-assured</groupId>
			<artifactId>spring-mock-mvc</artifactId>
			<scope>compile</scope>
		</dependency>

		<!--SELENIUM-->
		<dependency>
			<groupId>org.seleniumhq.selenium</groupId>
			<artifactId>selenium-java</artifactId>
			<version>${selenium.version}</version>
			<scope>compile</scope>
		</dependency>

		<!--CUCUMBER LEGACY: JAVA8 - FOR LAMBDAS-->
		<dependency>
			<groupId>io.cucumber</groupId>
			<artifactId>cucumber-java8</artifactId>
			<version>${cucumber.version}</version>
			<scope>compile</scope>
		</dependency>

		<!--CUCUMBER-->
		<dependency>
			<groupId>io.cucumber</groupId>
			<artifactId>cucumber-java</artifactId>
			<version>${cucumber.version}</version>
			<scope>compile</scope>
		</dependency>
		<dependency>
			<groupId>io.cucumber</groupId>
			<artifactId>cucumber-spring</artifactId>
			<version>${cucumber.version}</version>
			<scope>compile</scope>
		</dependency>
		<dependency>
			<groupId>io.cucumber</groupId>
			<artifactId>cucumber-junit</artifactId>
			<version>${cucumber.version}</version>
			<scope>compile</scope>
		</dependency>
		<dependency>
			<groupId>io.cucumber</groupId>
			<artifactId>cucumber-junit-platform-engine</artifactId>
			<version>${cucumber.version}</version>
			<scope>compile</scope>
		</dependency>

		<!--CUCUMBER REPORT-->
		<dependency>
			<groupId>tech.grasshopper</groupId>
			<artifactId>extentreports-cucumber7-adapter</artifactId>
			<version>${extent-report.version}</version>
			<scope>compile</scope>
		</dependency>

	</dependencies>

	<build>
		<plugins>

			<!--Build: Generate Final Jar with all dependency-->
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-shade-plugin</artifactId>
				<version>3.2.4</version>
				<configuration>
					<createDependencyReducedPom>false</createDependencyReducedPom>
				</configuration>
				<executions>
					<execution>
						<phase>package</phase>
						<goals>
							<goal>shade</goal>
						</goals>
					</execution>
				</executions>
			</plugin>

			<!--Generate Reports: extentreports-cucumber7-adapter-->
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-surefire-plugin</artifactId>
				<configuration>
					<!-- Set the test source directory -->
					<testSourceDirectory>src/test/java/codexstester/bdd</testSourceDirectory>
					<trimStackTrace>false</trimStackTrace>
					<excludes>
						<exclude>**/*Integration.java</exclude>
					</excludes>
					<systemPropertyVariables>
						<extent.reporter.html.start>true</extent.reporter.html.start>
						<!-- Specify the output path for the HTML report -->
						<extent.reporter.html.out>
							target/cucumber-reports/ApplicationTestReport.html
						</extent.reporter.html.out>
						<!-- Specify the Extent configuration file -->
						<extent.reporter.html.config>
							src/test/resources/reporting/extent-config.xml
						</extent.reporter.html.config>
						<!-- Enable quiet mode to suppress console logs -->
						<cucumber.publish.quiet>true</cucumber.publish.quiet>
					</systemPropertyVariables>
				</configuration>
				<executions>
					<execution>
						<id>integration-test</id>
						<goals>
							<goal>test</goal>
						</goals>
						<phase>integration-test</phase>
						<configuration>
							<excludes>
								<exclude>none</exclude>
							</excludes>
							<includes>
								<include>**/*Integration.java</include>
							</includes>
						</configuration>
					</execution>
				</executions>
			</plugin>

			<!--Deploy: Maven Sources-->
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-source-plugin</artifactId>
				<version>2.2.1</version>
				<executions>
					<execution>
						<id>attach-sources</id>
						<goals>
							<goal>jar-no-fork</goal>
						</goals>
					</execution>
				</executions>
			</plugin>

			<!--Deploy: Maven JavaDoc-->
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-javadoc-plugin</artifactId>
				<version>2.9.1</version>
				<executions>
					<execution>
						<id>attach-javadocs</id>
						<goals>
							<goal>jar</goal>
						</goals>
					</execution>
				</executions>
				<!--To prevent the warning: "javadoc: warning - The code being documented uses modules but the packages..."-->
				<configuration>
					<source>8</source>
				</configuration>
			</plugin>

			<!--Deploy: GPG Assign-->
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-gpg-plugin</artifactId>
				<version>1.5</version>
				<executions>
					<execution>
						<id>sign-artifacts</id>
						<phase>verify</phase>
						<goals>
							<goal>sign</goal>
						</goals>
						<!--To specify the GPG Key-->
						<configuration>
							<keyname>D89E6177</keyname>
							<!--To avoid gpg error: signing failed: No such file or directory-->
							<gpgArguments>
								<arg>--pinentry-mode</arg>
								<arg>loopback</arg>
							</gpgArguments>
						</configuration>
					</execution>
				</executions>
			</plugin>

			<!--Deploy: Maven Publishing Central-->
			<plugin>
				<groupId>org.sonatype.central</groupId>
				<artifactId>central-publishing-maven-plugin</artifactId>
				<version>0.6.0</version>
				<extensions>true</extensions>
				<configuration>
					<skipPublishing>true</skipPublishing>
					<publishingServerId>central</publishingServerId>
					<deploymentName>Codexstester-${project.version}</deploymentName>
					<outputFilename>codexstester-${project.version}</outputFilename>
					<ignorePublishedComponents>false</ignorePublishedComponents>
				</configuration>
			</plugin>

		</plugins>
	</build>

	<distributionManagement>
		<!--Deploy: Distribution on Maven Central-->
		<repository>
			<id>central</id>
			<layout>default</layout>
			<name>Maven Central</name>
			<uniqueVersion>false</uniqueVersion>
			<url>https://central.sonatype.com/api/v1/publisher/upload</url>
		</repository>
	</distributionManagement>

</project>
