<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0"
         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.teamA.microstories</groupId>
    <artifactId>dgss1819-teamA-microstories-pom</artifactId>
    <version>0.2.0-SNAPSHOT</version>
    <packaging>pom</packaging>

    <name>μStories 18/19 Team A</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>
        <commons.lang3.version>3.4</commons.lang3.version>
        <bootsfaces.version>1.3.0</bootsfaces.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>

            <!-- General -->
            <dependency>
                <groupId>org.apache.commons</groupId>
                <artifactId>commons-lang3</artifactId>
                <version>${commons.lang3.version}</version>
            </dependency>
            <dependency>
                <groupId>net.bootsfaces</groupId>
                <artifactId>bootsfaces</artifactId>
                <version>${bootsfaces.version}</version>
                <scope>compile</scope>
            </dependency>

            <!-- 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>dgss1819-teamA-microstories-domain</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>${project.groupId}</groupId>
                <artifactId>dgss1819-teamA-microstories-service</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>${project.groupId}</groupId>
                <artifactId>dgss1819-teamA-microstories-rest</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>${project.groupId}</groupId>
                <artifactId>dgss1819-teamA-microstories-jsf</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>${project.groupId}</groupId>
                <artifactId>dgss1819-teamA-microstories-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.exparity</groupId>
                <artifactId>hamcrest-date</artifactId>
                <version>2.0.4</version>
                <scope>test</scope>
            </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>
                                <mysql.version>${mysql.connector.java.version}</mysql.version>
                                <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>20000</jboss.socket.binding.port-offset>
                                <wildfly.http.port>28080</wildfly.http.port>
                                <wildfly.management.port>29990</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>
                                <mysql.version>${mysql.connector.java.version}</mysql.version>
                                <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>20000</jboss.socket.binding.port-offset>
                                <wildfly.http.port>28080</wildfly.http.port>
                                <wildfly.management.port>29990</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/dgss1819/teamA/microstories
                                        --name=dgss1819-teamA-microstories-mysql --jta=true --use-ccm=true
                                        --connection-url=jdbc:mysql://localhost:3306/dgss1819_teamA_microstories
                                        --driver-name=mysql-connector-java-${mysql.connector.java.version}.jar
                                        --driver-class=com.mysql.jdbc.Driver --user-name=microstories
                                        --password=microstoriespass
                                    </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=dgss1819-teamA-microstories-security-domain:add
                                    </command>
                                    <command>
                                        /subsystem=security/security-domain=dgss1819-teamA-microstories-security-domain/authentication=classic:add(login-modules=[{"code"=>"Database",
                                        "flag" => "required", "module-options" => [("dsJndiName" =>
                                        "java:jboss/datasources/dgss1819/teamA/microstories"),("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>microstoriesadmin</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>
