<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.ei.sing</groupId>
	<artifactId>sepia</artifactId>
	<!-- WARNING: change version using mvn versions:set -DnewVersion=[new_version]
		in order to change the version in all modules at-once. If everything works,
		call mvn versions:commit, call mvn versions:revert, otherwise -->
	<version>0.0.1-SNAPSHOT</version>
	<packaging>pom</packaging>

	<name>SEPIA (SEPsis Intelligent Assistant)</name>
	<description>SEPIA (SEPsis Intelligent Assistant)</description>

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

	<modules>
		<module>domain</module>
		<module>service</module>
		<module>web</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>

		<!-- BOM versions -->
		<javaee.api.version>7.0</javaee.api.version>
		<arquillian.version>1.1.9.Final</arquillian.version>
		<drools-bom.version>6.4.0.Final</drools-bom.version>

		<!-- Dependencies versions -->
		<wildfly.version>8.2.1.Final</wildfly.version>
		<drools-core.version>6.4.0.Final</drools-core.version>
		<commons.lang3.version>3.4</commons.lang3.version>

		<!-- Testing dependecies versions -->
		<junit.version>4.12</junit.version>
		<hamcrest.version>2.0.0.0</hamcrest.version>
		<arquillian.persistence.dbunit.version>1.0.0.Alpha7</arquillian.persistence.dbunit.version>
		<mysql.connector.java.version>5.1.21</mysql.connector.java.version>
		<slf4j.version>1.5.10</slf4j.version>

		<!-- Plugins versions -->
		<wildfly.maven.plugin.version>1.1.0.Alpha1</wildfly.maven.plugin.version>
		<maven.dependency.plugin.version>2.10</maven.dependency.plugin.version>
		<maven.surefire.plugin.version>2.18.1</maven.surefire.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>
			<!-- Important: Do not add any additional dependency versions here! The
				dependency management should only import drools-bom and kie-third-party-bom
				to get the proper versions it needs. Any additional 3rd party dependency
				versions need to go directly into kie-third-party-bom. -->
			<dependency>
				<groupId>org.drools</groupId>
				<artifactId>drools-bom</artifactId>
				<version>${drools-bom.version}</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>

			<!-- Dependencies -->
			<dependency>
				<groupId>org.apache.commons</groupId>
				<artifactId>commons-lang3</artifactId>
				<version>${commons.lang3.version}</version>
			</dependency>
			<!-- Testing -->
			<dependency>
				<groupId>junit</groupId>
				<artifactId>junit</artifactId>
				<version>${junit.version}</version>
			</dependency>
			<dependency>
				<groupId>org.hamcrest</groupId>
				<artifactId>java-hamcrest</artifactId>
				<version>${hamcrest.version}</version>
			</dependency>
			<dependency>
				<groupId>org.jboss.arquillian.extension</groupId>
				<artifactId>arquillian-persistence-dbunit</artifactId>
				<version>${arquillian.persistence.dbunit.version}</version>
			</dependency>
			<dependency>
				<groupId>mysql</groupId>
				<artifactId>mysql-connector-java</artifactId>
				<version>${mysql.connector.java}</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</groupId>
				<artifactId>wildfly-embedded</artifactId>
				<version>${wildfly.version}</version>
			</dependency>
			<dependency>
				<groupId>org.wildfly</groupId>
				<artifactId>wildfly-arquillian-container-embedded</artifactId>
				<version>${wildfly.version}</version>
			</dependency>

			<!-- Modules -->
			<dependency>
				<groupId>es.uvigo.ei.sing</groupId>
				<artifactId>sepia-domain</artifactId>
				<version>${project.version}</version>
			</dependency>
			<dependency>
				<groupId>es.uvigo.ei.sing</groupId>
				<artifactId>sepia-service</artifactId>
				<version>${project.version}</version>
			</dependency>
			<dependency>
				<groupId>es.uvigo.ei.sing</groupId>
				<artifactId>sepia-web</artifactId>
				<version>${project.version}</version>
			</dependency>
		</dependencies>
	</dependencyManagement>

	<build>
		<pluginManagement>
			<plugins>
				<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-surefire-plugin</artifactId>
					<version>${maven.surefire.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>
			</plugins>
		</pluginManagement>
	</build>

	<profiles>
		<profile>
			<id>wildfly-embedded-mysql</id>
			<dependencies>
				<dependency>
					<groupId>org.wildfly</groupId>
					<artifactId>wildfly-arquillian-container-embedded</artifactId>
					<scope>test</scope>
				</dependency>
				<dependency>
					<groupId>org.wildfly</groupId>
					<artifactId>wildfly-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>
								<java.util.logging.manager>org.jboss.logmanager.LogManager</java.util.logging.manager>
								<jboss.home>${project.basedir}/target/wildfly-${wildfly.version}</jboss.home>
								<module.path>${project.basedir}/target/wildfly-${wildfly.version}/modules</module.path>
								<arquillian.launch>wildfly-embedded</arquillian.launch>
							</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-dependencies</id>
								<phase>process-test-classes</phase>
								<goals>
									<goal>copy</goal>
								</goals>
								<configuration>
									<artifactItems>
										<artifactItem>
											<groupId>mysql</groupId>
											<artifactId>mysql-connector-java</artifactId>
											<type>jar</type>
											<overWrite>false</overWrite>
											<outputDirectory>target/wildfly-${wildfly.version}/standalone/deployments</outputDirectory>
										</artifactItem>
									</artifactItems>
								</configuration>
							</execution>
						</executions>
					</plugin>
				</plugins>
			</build>
		</profile>
		<profile>
			<id>wildfly-embedded-h2</id>
			<dependencies>
				<dependency>
					<groupId>org.wildfly</groupId>
					<artifactId>wildfly-arquillian-container-embedded</artifactId>
					<scope>test</scope>
				</dependency>
				<dependency>
					<groupId>org.wildfly</groupId>
					<artifactId>wildfly-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>
								<java.util.logging.manager>org.jboss.logmanager.LogManager</java.util.logging.manager>
								<jboss.home>${project.basedir}/target/wildfly-${wildfly.version}</jboss.home>
								<module.path>${project.basedir}/target/wildfly-${wildfly.version}/modules</module.path>
								<arquillian.launch>wildfly-embedded</arquillian.launch>
							</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>
				</plugins>
			</build>
		</profile>
	</profiles>
</project>
