<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.dgss.teamD.ligaaas</groupId>
  <artifactId>dgss1718-teamD-ligaaas-pom</artifactId>
  <version>0.1.0-SNAPSHOT</version>
  <packaging>pom</packaging>

  <name>LIGAaaaS 17/18 Team D</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.1.13.Final</arquillian.version>
    <arquillian.rest.version>1.0.0.Alpha4</arquillian.rest.version>
    <arquillian.selenium.version>3.4.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>

    <!-- Testing dependecies versions -->
    <arquillian.jacoco.version>1.0.0.Alpha9</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>3.4</easymock.version>
    <geckodriver.version>v0.19.1</geckodriver.version>
    <graphene.webdrive.version>2.3.1</graphene.webdrive.version>
    <hamcrest.version>2.0.0.0</hamcrest.version>
    <jacoco.version>0.7.9</jacoco.version>
    <junit.version>4.12</junit.version>
    <mysql.connector.java.version>5.1.21</mysql.connector.java.version>
    <resteasy.version>3.0.24.Final</resteasy.version>
    <slf4j.version>1.5.10</slf4j.version>

    <!-- Plugins versions -->
    <maven.antrun.plugin.version>1.8</maven.antrun.plugin.version>
    <maven.compiler.plugin.version>3.6.1</maven.compiler.plugin.version>
    <maven.ear.plugin.version>2.10.1</maven.ear.plugin.version>
    <maven.jar.plugin.version>3.0.2</maven.jar.plugin.version>
    <maven.javadoc.plugin.version>2.10.4</maven.javadoc.plugin.version>
    <maven.dependency.plugin.version>2.10</maven.dependency.plugin.version>
    <maven.deploy.plugin.version>2.8.2</maven.deploy.plugin.version>
    <maven.resources.plugin.version>3.0.2</maven.resources.plugin.version>
    <maven.source.plugin.version>3.0.1</maven.source.plugin.version>
    <maven.surefire.plugin.version>2.20</maven.surefire.plugin.version>
    <wildfly.maven.plugin.version>1.2.0.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.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>dgss1718-teamD-ligaaas-domain</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>${project.groupId}</groupId>
        <artifactId>dgss1718-teamD-ligaaas-service</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>${project.groupId}</groupId>
        <artifactId>dgss1718-teamD-ligaaas-rest</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>${project.groupId}</groupId>
        <artifactId>dgss1718-teamD-ligaaas-jsf</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>${project.groupId}</groupId>
        <artifactId>dgss1718-teamD-ligaaas-tests</artifactId>
        <version>${project.version}</version>
        <scope>test</scope>
      </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.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>mysql</groupId>
        <artifactId>mysql-connector-java</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-jar-plugin</artifactId>
          <version>${maven.jar.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>
                <wildfly.version>${wildfly.version}</wildfly.version>
                <wildfly.jbossHome>target/wildfly-${wildfly.version}</wildfly.jbossHome>
                <wildfly.modulePath>target/wildfly-${wildfly.version}/modules</wildfly.modulePath>
                <java.util.logging.manager>org.jboss.logmanager.LogManager</java.util.logging.manager>
                <jboss.socket.binding.port-offset>30000</jboss.socket.binding.port-offset>
                <wildfly.http.port>38080</wildfly.http.port>
                <wildfly.management.port>39990</wildfly.management.port>
              </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>
                <arquillian.launch>wildfly-embedded</arquillian.launch>
                <wildfly.version>${wildfly.version}</wildfly.version>
                <wildfly.jbossHome>target/wildfly-${wildfly.version}</wildfly.jbossHome>
                <wildfly.modulePath>target/wildfly-${wildfly.version}/modules</wildfly.modulePath>
                <java.util.logging.manager>org.jboss.logmanager.LogManager</java.util.logging.manager>
                <jboss.socket.binding.port-offset>30000</jboss.socket.binding.port-offset>
                <wildfly.http.port>38080</wildfly.http.port>
                <wildfly.management.port>39990</wildfly.management.port>
              </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>mysql</groupId>
                      <artifactId>mysql-connector-java</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>mysql</groupId>
                      <artifactId>mysql-connector-java</artifactId>
                      <type>jar</type>
                      <overWrite>false</overWrite>
                      <outputDirectory>${project.build.directory}</outputDirectory>
                      <destFileName>mysql-connector-java-${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-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>mysql</groupId>
                      <artifactId>mysql-connector-java</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>mysql</groupId>
                      <artifactId>mysql-connector-java</artifactId>
                      <type>jar</type>
                      <overWrite>false</overWrite>
                      <outputDirectory>${project.build.directory}</outputDirectory>
                      <destFileName>mysql-connector-java-${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-java-${mysql.connector.java.version}.jar</command>
                  <command>data-source add
                    --jndi-name=java:jboss/datasources/dgss1718/teamD/ligaaas
                    --name=dgss1718-teamD-ligaaas-mysql --jta=true
                    --use-ccm=true
                    --connection-url=jdbc:mysql://localhost:3306/dgss1718_teamD_ligaaas
                    --driver-name=mysql-connector-java-${mysql.connector.java.version}.jar
                    --driver-class=com.mysql.jdbc.Driver --user-name=ligaaas
                    --password=ligaaaspass</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=dgss1718-teamD-ligaaas-security-domain:add</command>
                  <command>/subsystem=security/security-domain=dgss1718-teamD-ligaaas-security-domain/authentication=classic:add(login-modules=[
                    {"code"=>"Database", "flag" => "required", "module-options" => [
                      ("dsJndiName" => "java:jboss/datasources/dgss1718/teamD/ligaaas"),
                      ("principalsQuery" => "SELECT password FROM user WHERE login=?"),
                      ("rolesQuery" => "SELECT role, 'Roles' FROM user WHERE login=?"),
                      ("hashAlgorithm" => "MD5"),
                      ("hashEncoding" => "hex"),
                      ("ignorePasswordCase" => "true")]
                    }])</command>
                  <command>/socket-binding-group=standard-sockets/remote-destination-outbound-socket-binding=fake-smtp/:add(host=localhost,port=2525)</command>
                  <command>/subsystem=mail/mail-session=ligaaas-mail:add(jndi-name=java:/ligaaas/mail)</command>
                  <command>/subsystem=mail/mail-session=ligaaas-mail/server=smtp:add(outbound-socket-binding-ref="fake-smtp")</command>
                  <command>/subsystem=naming/binding=java\:\/teamD\/ligaaas\/name:add(binding-type=simple, type="java.lang.String", value="LIGAaaS")</command>
                  <command>/subsystem=naming/binding=java\:\/teamD\/ligaaas\/email\/confirmation\/url:add(binding-type=simple, type="java.lang.String", value="http://localhost:8080/ligaaasD/jsf/confirmation.xhtml?confirmation_id=")</command>
                  <command>/subsystem=naming/binding=java\:\/teamD\/ligaaas\/email\/name:add(binding-type=simple, type="java.lang.String", value="LIGAaaS")</command>
                  <command>/subsystem=naming/binding=java\:\/teamD\/ligaaas\/email\/address:add(binding-type=simple, type="java.lang.String", value="dgss2017.esei@gmail.com")</command>
                </commands>
              </before-deployment>
              <after-deployment>
                <commands>
                  <command>:reload</command>
                </commands>
              </after-deployment>
              <add-user>
                <users>
                  <user>
                    <username>wildfly-admin</username>
                    <password>ligaaasadmin</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>
