<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/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<groupId>es.uvigo.esei.xcs</groupId>
	<artifactId>sample</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<packaging>pom</packaging>
	<name>Sample</name>

	<distributionManagement>
		<repository>
			<id>deployment</id>
			<name>Internal Releases</name>
			<url>https://www.sing-group.org/dt/nexus/content/repositories/releases/</url>
		</repository>
		<snapshotRepository>
			<id>deployment</id>
			<name>Internal SNAPSHOT Releases</name>
			<url>https://www.sing-group.org/dt/nexus/content/repositories/snapshots/</url>
		</snapshotRepository>
	</distributionManagement>

	<modules>
		<module>domain</module>
		<module>tests</module>
		<module>service</module>
		<module>rest</module>
		<module>jsf</module>
		<module>ear</module>
	</modules>

	<properties>
		<!-- General properties -->
		<maven.compiler.source>1.8</maven.compiler.source>
		<maven.compiler.target>1.8</maven.compiler.target>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
		<failOnMissingWebXml>false</failOnMissingWebXml>

		<!-- BOM versions -->
		<javaee.api.version>7.0</javaee.api.version>
		<arquillian.version>1.7.1.Final</arquillian.version>
		<arquillian.rest.version>1.0.0.Alpha4</arquillian.rest.version>
		<arquillian.selenium.version>3.13.0</arquillian.selenium.version>
		<shrinkwrap.resolver.bom.version>3.0.0-beta-2</shrinkwrap.resolver.bom.version>

		<!-- Dependencies versions -->
		<wildfly.version>10.1.0.Final</wildfly.version>
		<commons.lang3.version>3.4</commons.lang3.version>
		<bootstrap.version>3.4.1</bootstrap.version>

		<!-- Testing dependecies versions -->
		<arquillian.jacoco.version>1.1.0</arquillian.jacoco.version>
		<arquillian.persistence.dbunit.version>1.0.0.Alpha7</arquillian.persistence.dbunit.version>
		<arquillian.wildfly.embedded.version>3.0.3.Final</arquillian.wildfly.embedded.version>
		<arquillian.wildfly.embedded.container.version>2.1.0.Final</arquillian.wildfly.embedded.container.version>
		<easymock.version>5.2.0</easymock.version>
		<geckodriver.version>v0.35.0</geckodriver.version>
		<graphene.webdrive.version>2.5.4</graphene.webdrive.version>
		<hamcrest.version>2.2</hamcrest.version>
		<jacoco.version>0.8.10</jacoco.version>
		<junit.version>4.13.2</junit.version>
		<mysql.connector.java.version>8.1.0</mysql.connector.java.version>
		<resteasy.version>3.15.6.Final</resteasy.version>
		<slf4j.version>1.5.10</slf4j.version>

		<!-- Plugins versions -->
		<maven.antrun.plugin.version>3.1.0</maven.antrun.plugin.version>
		<maven.compiler.plugin.version>3.11.0</maven.compiler.plugin.version>
		<maven.ear.plugin.version>2.10.1</maven.ear.plugin.version>
		<maven.javadoc.plugin.version>3.6.0</maven.javadoc.plugin.version>
		<maven.dependency.plugin.version>3.6.0</maven.dependency.plugin.version>
		<maven.deploy.plugin.version>3.1.1</maven.deploy.plugin.version>
		<maven.resources.plugin.version>3.3.1</maven.resources.plugin.version>
		<maven.source.plugin.version>3.3.0</maven.source.plugin.version>
		<maven.surefire.plugin.version>3.1.2</maven.surefire.plugin.version>
		<wildfly.maven.plugin.version>1.2.2.Final</wildfly.maven.plugin.version>
	</properties>

	<dependencyManagement>
		<dependencies>
			<!-- BOM -->
			<dependency>
				<groupId>javax</groupId>
				<artifactId>javaee-api</artifactId>
				<version>${javaee.api.version}</version>
			</dependency>
			<dependency>
				<groupId>org.jboss.arquillian</groupId>
				<artifactId>arquillian-bom</artifactId>
				<version>${arquillian.version}</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>
			<dependency>
			    <groupId>org.jboss.shrinkwrap.resolver</groupId>
			    <artifactId>shrinkwrap-resolver-bom</artifactId>
			    <version>${shrinkwrap.resolver.bom.version}</version>
			    <type>pom</type>
			    <scope>import</scope>
			</dependency>
			<dependency>
				<groupId>org.jboss.arquillian.selenium</groupId>
				<artifactId>selenium-bom</artifactId>
				<version>${arquillian.selenium.version}</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>
      
			<!-- Modules -->
			<dependency>
				<groupId>${project.groupId}</groupId>
				<artifactId>domain</artifactId>
				<version>${project.version}</version>
			</dependency>
			<dependency>
				<groupId>${project.groupId}</groupId>
				<artifactId>service</artifactId>
				<version>${project.version}</version>
			</dependency>
			<dependency>
				<groupId>${project.groupId}</groupId>
				<artifactId>rest</artifactId>
				<version>${project.version}</version>
			</dependency>
			<dependency>
				<groupId>${project.groupId}</groupId>
				<artifactId>jsf</artifactId>
				<version>${project.version}</version>
			</dependency>
			<dependency>
				<groupId>${project.groupId}</groupId>
				<artifactId>tests</artifactId>
				<version>${project.version}</version>
				<scope>test</scope>
			</dependency>

			<!-- General -->
			<dependency>
				<groupId>org.apache.commons</groupId>
				<artifactId>commons-lang3</artifactId>
				<version>${commons.lang3.version}</version>
			</dependency>
			<dependency>
				<groupId>org.webjars</groupId>
				<artifactId>bootstrap</artifactId>
				<version>${bootstrap.version}</version>
			</dependency>

			<!-- Testing -->
			<dependency>
				<groupId>junit</groupId>
				<artifactId>junit</artifactId>
				<version>${junit.version}</version>
			</dependency>
			<dependency>
				<groupId>org.hamcrest</groupId>
				<artifactId>hamcrest</artifactId>
				<version>${hamcrest.version}</version>
			</dependency>
			<dependency>
				<groupId>org.easymock</groupId>
				<artifactId>easymock</artifactId>
				<version>${easymock.version}</version>
			</dependency>
			<dependency>
				<groupId>org.jboss.arquillian.extension</groupId>
				<artifactId>arquillian-persistence-dbunit</artifactId>
				<version>${arquillian.persistence.dbunit.version}</version>
			</dependency>
			<dependency>
				<groupId>org.jboss.arquillian.extension</groupId>
				<artifactId>arquillian-rest-client-impl-3x</artifactId>
				<version>${arquillian.rest.version}</version>
			</dependency>
			<dependency>
				<groupId>org.jboss.resteasy</groupId>
				<artifactId>resteasy-jackson-provider</artifactId>
				<version>${resteasy.version}</version>
				<scope>test</scope>
			</dependency>
			<dependency>
				<groupId>org.jboss.arquillian.graphene</groupId>
				<artifactId>graphene-webdriver</artifactId>
				<version>${graphene.webdrive.version}</version>
				<type>pom</type>
			</dependency>
			<dependency>
				<groupId>org.jboss.arquillian.extension</groupId>
				<artifactId>arquillian-jacoco</artifactId>
				<version>${arquillian.jacoco.version}</version>
			</dependency>
			<dependency>
				<groupId>org.jacoco</groupId>
				<artifactId>org.jacoco.core</artifactId>
				<version>${jacoco.version}</version>
			</dependency>
			<dependency>
				<groupId>com.mysql</groupId>
				<artifactId>mysql-connector-j</artifactId>
				<version>${mysql.connector.java.version}</version>
			</dependency>
			<dependency>
				<groupId>org.slf4j</groupId>
				<artifactId>slf4j-api</artifactId>
				<version>${slf4j.version}</version>
			</dependency>
			<dependency>
				<groupId>org.slf4j</groupId>
				<artifactId>slf4j-simple</artifactId>
				<version>${slf4j.version}</version>
			</dependency>
			<dependency>
				<groupId>org.wildfly</groupId>
				<artifactId>wildfly-dist</artifactId>
				<version>${wildfly.version}</version>
			</dependency>
			<dependency>
				<groupId>org.wildfly.core</groupId>
				<artifactId>wildfly-embedded</artifactId>
				<version>${arquillian.wildfly.embedded.version}</version>
			</dependency>
			<dependency>
				<groupId>org.wildfly.arquillian</groupId>
				<artifactId>wildfly-arquillian-container-embedded</artifactId>
				<version>${arquillian.wildfly.embedded.container.version}</version>
			</dependency>
		</dependencies>
	</dependencyManagement>

	<build>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-deploy-plugin</artifactId>
				<configuration>
					<deployAtEnd>true</deployAtEnd>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-source-plugin</artifactId>
				<executions>
					<execution>
						<id>attach-sources</id>
						<goals>
							<goal>jar</goal>
						</goals>
					</execution>
				</executions>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-javadoc-plugin</artifactId>
				<executions>
					<execution>
						<id>attach-javadocs</id>
						<goals>
							<goal>jar</goal>
						</goals>
					</execution>
				</executions>
			</plugin>
		</plugins>

		<pluginManagement>
			<plugins>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-compiler-plugin</artifactId>
					<version>${maven.compiler.plugin.version}</version>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-javadoc-plugin</artifactId>
					<version>${maven.javadoc.plugin.version}</version>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-source-plugin</artifactId>
					<version>${maven.source.plugin.version}</version>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-deploy-plugin</artifactId>
					<version>${maven.deploy.plugin.version}</version>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-dependency-plugin</artifactId>
					<version>${maven.dependency.plugin.version}</version>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-antrun-plugin</artifactId>
					<version>${maven.antrun.plugin.version}</version>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-surefire-plugin</artifactId>
					<version>${maven.surefire.plugin.version}</version>
					<configuration>
						<!-- By default, only tests suites are executed -->
						<includes>**/*TestSuite.java</includes>
					</configuration>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-resources-plugin</artifactId>
					<version>${maven.resources.plugin.version}</version>
				</plugin>
				<plugin>
					<groupId>org.wildfly.plugins</groupId>
					<artifactId>wildfly-maven-plugin</artifactId>
					<version>${wildfly.maven.plugin.version}</version>
					<configuration>
						<!-- Avoids the execution of the wildfly:* goals in the subproject unless the plugin is activated in the subproject. -->
						<skip>true</skip>
					</configuration>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-ear-plugin</artifactId>
					<version>${maven.ear.plugin.version}</version>
				</plugin>
				<plugin>
					<groupId>org.jacoco</groupId>
					<artifactId>jacoco-maven-plugin</artifactId>
					<version>${jacoco.version}</version>
					<configuration>
						<classDumpDir>${session.executionRootDirectory}/target/classes</classDumpDir>
					</configuration>
					<executions>
						<execution>
							<id>pre-unit-test</id>
							<goals>
								<goal>prepare-agent</goal>
							</goals>
						</execution>
						<execution>
							<id>post-unit-test</id>
							<phase>test</phase>
							<goals>
								<goal>report</goal>
							</goals>
						</execution>
						<execution>
							<id>pre-integration-test</id>
							<phase>pre-integration-test</phase>
							<goals>
								<goal>prepare-agent</goal>
							</goals>
						</execution>
						<execution>
							<id>post-integration-test</id>
							<phase>post-integration-test</phase>
							<goals>
								<goal>report</goal>
							</goals>
						</execution>
					</executions>
				</plugin>
				<!--This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself. -->
				<plugin>
					<groupId>org.eclipse.m2e</groupId>
					<artifactId>lifecycle-mapping</artifactId>
					<version>1.0.0</version>
					<configuration>
						<lifecycleMappingMetadata>
							<pluginExecutions>
								<pluginExecution>
									<pluginExecutionFilter>
										<groupId> org.apache.maven.plugins</groupId>
										<artifactId> maven-dependency-plugin</artifactId>
										<versionRange> [2.10,)</versionRange>
										<goals>
											<goal>unpack</goal>
										</goals>
									</pluginExecutionFilter>
									<action>
										<ignore></ignore>
									</action>
								</pluginExecution>
								<pluginExecution>
									<pluginExecutionFilter>
										<groupId>org.apache.maven.plugins</groupId>
										<artifactId>maven-antrun-plugin</artifactId>
										<versionRange>[1.8,)</versionRange>
										<goals>
											<goal>run</goal>
										</goals>
									</pluginExecutionFilter>
									<action>
										<ignore></ignore>
									</action>
								</pluginExecution>
							</pluginExecutions>
						</lifecycleMappingMetadata>
					</configuration>
				</plugin>
			</plugins>
		</pluginManagement>
	</build>

	<profiles>
		<profile>
			<id>wildfly-embedded-h2</id>
			<activation>
				<activeByDefault>true</activeByDefault>
			</activation>
			<dependencies>
				<dependency>
					<groupId>org.wildfly.core</groupId>
					<artifactId>wildfly-embedded</artifactId>
					<scope>test</scope>
				</dependency>
				<dependency>
					<groupId>org.wildfly.arquillian</groupId>
					<artifactId>wildfly-arquillian-container-embedded</artifactId>
					<scope>test</scope>
				</dependency>
				<dependency>
					<groupId>org.slf4j</groupId>
					<artifactId>slf4j-api</artifactId>
					<scope>test</scope>
				</dependency>
				<dependency>
					<groupId>org.slf4j</groupId>
					<artifactId>slf4j-simple</artifactId>
					<scope>test</scope>
				</dependency>
			</dependencies>
			<build>
				<testResources>
					<testResource>
						<directory>src/test/resources</directory>
					</testResource>
					<testResource>
						<directory>src/test/resources-wildfly-embedded-h2</directory>
					</testResource>
				</testResources>
				<plugins>
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-surefire-plugin</artifactId>
						<configuration>
							<forkCount>1</forkCount>
							<systemPropertyVariables>
								<arquillian.launch>wildfly-embedded</arquillian.launch>
								<java.util.logging.manager>org.jboss.logmanager.LogManager</java.util.logging.manager>
								<jboss.socket.binding.port-offset>10000</jboss.socket.binding.port-offset>
								<wildfly.version>${wildfly.version}</wildfly.version>
								<wildfly.http.port>18080</wildfly.http.port>
								<wildfly.management.port>19990</wildfly.management.port>
								<wildfly.jbossHome>target/wildfly-${wildfly.version}</wildfly.jbossHome>
								<wildfly.modulePath>target/wildfly-${wildfly.version}/modules</wildfly.modulePath>
							</systemPropertyVariables>
							<redirectTestOutputToFile>false</redirectTestOutputToFile>
						</configuration>
					</plugin>
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-dependency-plugin</artifactId>
						<executions>
							<execution>
								<id>unpack</id>
								<phase>process-test-classes</phase>
								<goals>
									<goal>unpack</goal>
								</goals>
								<configuration>
									<artifactItems>
										<artifactItem>
											<groupId>org.wildfly</groupId>
											<artifactId>wildfly-dist</artifactId>
											<version>${wildfly.version}</version>
											<type>zip</type>
											<overWrite>false</overWrite>
											<outputDirectory>target</outputDirectory>
										</artifactItem>
									</artifactItems>
								</configuration>
							</execution>
						</executions>
					</plugin>
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-resources-plugin</artifactId>
						<executions>
							<execution>
								<id>copy-wildfly-resources</id>
								<phase>process-test-classes</phase>
								<goals>
									<goal>copy-resources</goal>
								</goals>
								<configuration>
									<outputDirectory>target/wildfly-${wildfly.version}/standalone/configuration</outputDirectory>
									<resources>
										<resource>
											<directory>src/test/resources-wildfly-embedded-h2</directory>
											<include>standalone.xml</include>
										</resource>
									</resources>
								</configuration>
							</execution>
						</executions>
					</plugin>
				</plugins>
			</build>
		</profile>

		<profile>
			<id>wildfly-embedded-mysql</id>
			<activation>
				<activeByDefault>false</activeByDefault>
			</activation>
			<dependencies>
				<dependency>
					<groupId>org.wildfly.core</groupId>
					<artifactId>wildfly-embedded</artifactId>
					<scope>test</scope>
				</dependency>
				<dependency>
					<groupId>org.wildfly.arquillian</groupId>
					<artifactId>wildfly-arquillian-container-embedded</artifactId>
					<scope>test</scope>
				</dependency>
				<dependency>
					<groupId>org.slf4j</groupId>
					<artifactId>slf4j-api</artifactId>
					<scope>test</scope>
				</dependency>
				<dependency>
					<groupId>org.slf4j</groupId>
					<artifactId>slf4j-simple</artifactId>
					<scope>test</scope>
				</dependency>
			</dependencies>
			<build>
				<testResources>
					<testResource>
						<directory>src/test/resources</directory>
					</testResource>
					<testResource>
						<directory>src/test/resources-wildfly-embedded-mysql</directory>
					</testResource>
				</testResources>
				<plugins>
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-surefire-plugin</artifactId>
						<configuration>
							<forkCount>1</forkCount>
							<systemPropertyVariables>
								<mysql.version>${mysql.connector.java.version}</mysql.version>
								<arquillian.launch>wildfly-embedded</arquillian.launch>
								<java.util.logging.manager>org.jboss.logmanager.LogManager</java.util.logging.manager>
								<jboss.socket.binding.port-offset>10000</jboss.socket.binding.port-offset>
								<wildfly.version>${wildfly.version}</wildfly.version>
								<wildfly.http.port>18080</wildfly.http.port>
								<wildfly.management.port>19990</wildfly.management.port>
								<wildfly.jbossHome>target/wildfly-${wildfly.version}</wildfly.jbossHome>
								<wildfly.modulePath>target/wildfly-${wildfly.version}/modules</wildfly.modulePath>
							</systemPropertyVariables>
							<redirectTestOutputToFile>false</redirectTestOutputToFile>
						</configuration>
					</plugin>
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-dependency-plugin</artifactId>
						<executions>
							<execution>
								<id>unpack</id>
								<phase>process-test-classes</phase>
								<goals>
									<goal>unpack</goal>
								</goals>
								<configuration>
									<artifactItems>
										<artifactItem>
											<groupId>org.wildfly</groupId>
											<artifactId>wildfly-dist</artifactId>
											<version>${wildfly.version}</version>
											<type>zip</type>
											<overWrite>false</overWrite>
											<outputDirectory>target</outputDirectory>
										</artifactItem>
									</artifactItems>
								</configuration>
							</execution>
							<execution>
								<id>copy-mysql</id>
								<phase>process-test-classes</phase>
								<goals>
									<goal>copy</goal>
								</goals>
								<configuration>
									<artifactItems>
										<artifactItem>
											<groupId>com.mysql</groupId>
											<artifactId>mysql-connector-j</artifactId>
											<type>jar</type>
											<overWrite>false</overWrite>
											<outputDirectory>${project.build.directory}/wildfly-${wildfly.version}/standalone/deployments</outputDirectory>
										</artifactItem>
									</artifactItems>
								</configuration>
							</execution>
							<execution>
								<id>copy-mysql-for-execution</id>
								<phase>process-test-classes</phase>
								<goals>
									<goal>copy</goal>
								</goals>
								<configuration>
									<artifactItems>
										<artifactItem>
											<groupId>com.mysql</groupId>
											<artifactId>mysql-connector-j</artifactId>
											<type>jar</type>
											<overWrite>false</overWrite>
											<outputDirectory>${project.build.directory}</outputDirectory>
											<destFileName>mysql-connector-j-${mysql.connector.java.version}.jar</destFileName>
										</artifactItem>
									</artifactItems>
								</configuration>
								<!-- This JAR will be used for executing the Wildfly server -->
							</execution>
						</executions>
					</plugin>
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-resources-plugin</artifactId>
						<executions>
							<execution>
								<id>copy-wildfly-resources</id>
								<phase>process-test-classes</phase>
								<goals>
									<goal>copy-resources</goal>
								</goals>
								<configuration>
									<outputDirectory>${project.build.directory}/wildfly-${wildfly.version}/standalone/configuration</outputDirectory>
									<resources>
										<resource>
											<directory>src/test/resources-wildfly-embedded-mysql</directory>
											<include>standalone.xml</include>
										</resource>
									</resources>
								</configuration>
							</execution>
						</executions>
					</plugin>
				</plugins>
			</build>
		</profile>

		<profile>
			<id>wildfly-mysql-run</id>
			<build>
				<plugins>
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-surefire-plugin</artifactId>
						<configuration>
							<!-- Tests will not be run when launching the application -->
							<skipTests>true</skipTests>
						</configuration>
					</plugin>
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-javadoc-plugin</artifactId>
						<executions>
							<execution>
								<id>attach-javadocs</id>
								<phase>none</phase>
							</execution>
						</executions>
					</plugin>
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-dependency-plugin</artifactId>
						<executions>
							<execution>
								<id>unpack</id>
								<phase>process-test-classes</phase>
								<goals>
									<goal>unpack</goal>
								</goals>
								<configuration>
									<artifactItems>
										<artifactItem>
											<groupId>org.wildfly</groupId>
											<artifactId>wildfly-dist</artifactId>
											<version>${wildfly.version}</version>
											<type>zip</type>
											<overWrite>false</overWrite>
											<outputDirectory>target</outputDirectory>
										</artifactItem>
									</artifactItems>
								</configuration>
							</execution>
							<execution>
								<id>copy-mysql</id>
								<phase>process-test-classes</phase>
								<goals>
									<goal>copy</goal>
								</goals>
								<configuration>
									<artifactItems>
										<artifactItem>
											<groupId>com.mysql</groupId>
											<artifactId>mysql-connector-j</artifactId>
											<type>jar</type>
											<overWrite>false</overWrite>
											<outputDirectory>${project.build.directory}/wildfly-${wildfly.version}/standalone/deployments</outputDirectory>
										</artifactItem>
									</artifactItems>
								</configuration>
							</execution>
							<execution>
								<id>copy-mysql-for-execution</id>
								<phase>process-test-classes</phase>
								<goals>
									<goal>copy</goal>
								</goals>
								<configuration>
									<artifactItems>
										<artifactItem>
											<groupId>com.mysql</groupId>
											<artifactId>mysql-connector-j</artifactId>
											<type>jar</type>
											<overWrite>false</overWrite>
											<outputDirectory>${project.build.directory}</outputDirectory>
											<destFileName>mysql-connector-j-${mysql.connector.java.version}.jar</destFileName>
										</artifactItem>
									</artifactItems>
								</configuration>
								<!-- This JAR will be used for executing the Wildfly server -->
							</execution>
						</executions>
					</plugin>
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-resources-plugin</artifactId>
						<executions>
							<execution>
								<id>copy-wildfly-resources</id>
								<phase>process-test-classes</phase>
								<goals>
									<goal>copy-resources</goal>
								</goals>
								<configuration>
									<outputDirectory>${project.build.directory}/wildfly-${wildfly.version}/standalone/configuration</outputDirectory>
									<resources>
										<resource>
											<directory>src/test/resources-wildfly-embedded-mysql</directory>
											<include>standalone.xml</include>
										</resource>
									</resources>
								</configuration>
							</execution>
						</executions>
					</plugin>
					<plugin>
						<groupId>org.wildfly.plugins</groupId>
						<artifactId>wildfly-maven-plugin</artifactId>
						<configuration>
							<before-deployment>
								<batch />
								<commands>
									<command>deploy ${project.build.directory}/mysql-connector-j-${mysql.connector.java.version}.jar</command>
									<command>data-source add --jndi-name=java:jboss/datasources/xcs --name=xcs-sample --jta=true --use-ccm=true
										--connection-url=jdbc:mysql://localhost:3306/xcs?useJDBCCompliantTimezoneShift=true&amp;useLegacyDatetimeCode=false&amp;serverTimezone=Europe%2FMadrid --driver-name=mysql-connector-j-${mysql.connector.java.version}.jar
										--user-name=xcs --password=xcs</command>
									<command>/core-service=management/security-realm=RemotingRealm:add</command>
									<command>/core-service=management/security-realm=RemotingRealm/authentication=jaas:add(name="AppRealmLoopThrough")</command>
									<command>/subsystem=remoting/http-connector=http-remoting-connector:write-attribute(name="security-realm", value="RemotingRealm")</command>
									<command>/subsystem=security/security-domain=AppRealmLoopThrough:add(cache-type=default)</command>
									<command>/subsystem=security/security-domain=AppRealmLoopThrough/authentication=classic:add(login-modules=[{"code"=>"Client", "flag" =>
										"required", "module-options" => [("multi-threaded" => "true")]}])</command>
									<command>/subsystem=security/security-domain=xcs-sample-security-domain:add</command>
									<command>/subsystem=security/security-domain=xcs-sample-security-domain/authentication=classic:add(login-modules=[{"code"=>"Database", "flag"
										=> "required", "module-options" => [("dsJndiName" => "java:jboss/datasources/xcs"),("principalsQuery" => "SELECT password FROM User WHERE
										login=?"),("rolesQuery" => "SELECT role, 'Roles' FROM User WHERE login=?"),("hashAlgorithm" => "MD5"),("hashEncoding" =>
										"hex"),("ignorePasswordCase" => "true")]}])</command>
								</commands>
							</before-deployment>
							<after-deployment>
								<commands>
									<command>:reload</command>
								</commands>
							</after-deployment>
							<add-user>
								<users>
									<user>
										<username>wildfly-admin</username>
										<password>xcsadmin</password>
										<applicationUser>false</applicationUser>
									</user>
								</users>
							</add-user>
						</configuration>
						<executions>
							<execution>
								<id>start-wildfly</id>
								<phase>install</phase>
								<goals>
									<goal>start</goal>
									<goal>deploy-only</goal>
								</goals>
							</execution>
						</executions>
					</plugin>
				</plugins>
			</build>
		</profile>
	</profiles>
</project>
