<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>
  <parent>
    <groupId>org.onap.so</groupId>
    <artifactId>packages</artifactId>
    <version>1.2.0-SNAPSHOT</version>
  </parent>

  <groupId>org.onap.so.packages</groupId>
  <name>Arquillian Unit Testing on MSO</name>
  <artifactId>arquillian-unit-tests</artifactId>

  <packaging>jar</packaging>

  <profiles>
    <profile>
      <id>default-tests</id>
      <activation>
        <activeByDefault>true</activeByDefault>
      </activation>
      <properties>
        <it-suite-to-execute>**/IntegrationTestsSuite.java</it-suite-to-execute>
        <container-to-start>jboss-as</container-to-start>
        <mso.project.version>${project.version}</mso.project.version>
      </properties>
    </profile>

  </profiles>


  <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>org.jboss.arquillian</groupId>
        <artifactId>arquillian-bom</artifactId>
        <version>1.1.13.Final</version>
        <scope>import</scope>
        <type>pom</type>
      </dependency>

      <dependency>
        <groupId>org.jboss.spec</groupId>
        <artifactId>jboss-javaee-6.0</artifactId>
        <version>3.0.2.Final</version>
        <type>pom</type>
        <scope>import</scope>

      </dependency>

    </dependencies>


  </dependencyManagement>


  <dependencies>
    <!-- For testing -->
    <dependency>
      <groupId>org.jboss.marshalling</groupId>
      <artifactId>jboss-marshalling</artifactId>
      <version>1.3.16.GA</version>
      <scope>test</scope>
    </dependency>

    <dependency>
      <groupId>org.jboss.arquillian.junit</groupId>
      <artifactId>arquillian-junit-container</artifactId>
      <scope>test</scope>

    </dependency>

    <dependency>
      <groupId>org.wildfly.arquillian</groupId>
      <artifactId>wildfly-arquillian-container-remote</artifactId>
      <version>1.1.0.Final</version>
      <scope>test</scope>
    </dependency>

    <dependency>
      <groupId>org.jboss.remoting</groupId>
      <artifactId>jboss-remoting</artifactId>
      <version>4.0.9.Final</version>
      <scope>test</scope>
    </dependency>

    <dependency>
      <groupId>org.jboss.logging</groupId>
      <artifactId>jboss-logging</artifactId>
      <version>3.2.1.Final</version>
      <scope>test</scope>
    </dependency>

    <dependency>
      <groupId>org.jboss.arquillian.protocol</groupId>
      <artifactId>arquillian-protocol-servlet</artifactId>
      <scope>test</scope>
    </dependency>

    <dependency>
      <groupId>org.jboss.shrinkwrap.resolver</groupId>
      <artifactId>shrinkwrap-resolver-impl-maven</artifactId>
      <version>2.2.6</version>
      <scope>test</scope>
    </dependency>

    <!-- FOR DOCKER CONTROLLED BY ARQUILLIAN -->
    <dependency>
      <groupId>org.arquillian.cube</groupId>
      <artifactId>arquillian-cube-docker</artifactId>
      <version>1.9.0</version>
      <scope>test</scope>
    </dependency>

    <!-- For testing -->

    <!-- FOR JBOSS CODE -->
    <dependency>
      <groupId>org.hibernate</groupId>
      <artifactId>hibernate-core</artifactId>
      <version>4.2.7.SP1</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.hibernate</groupId>
      <artifactId>hibernate-entitymanager</artifactId>
      <version>4.2.7.SP1</version>
      <scope>test</scope>
    </dependency>

    <dependency>
      <groupId>javax.validation</groupId>
      <artifactId>validation-api</artifactId>
      <version>1.0.0.GA</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.jboss.as</groupId>
      <artifactId>jboss-as-ejb3</artifactId>
      <version>7.2.0.Final</version>
      <scope>test</scope>
    </dependency>


    <dependency>
      <groupId>com.smartbear.soapui</groupId>
      <artifactId>soapui</artifactId>
      <version>5.1.0</version>
      <type>jar</type>
      <scope>test</scope>
      <exclusions>
        <exclusion>
          <groupId>thoughtworks</groupId>
          <artifactId>xstream</artifactId>
        </exclusion>
        <exclusion>
          <groupId>gnu.cajo</groupId>
          <artifactId>cajo</artifactId>
        </exclusion>
      </exclusions>
    </dependency>

    <dependency>
      <groupId>commons-codec</groupId>
      <artifactId>commons-codec</artifactId>
      <version>1.4</version>
      <type>jar</type>
      <scope>test</scope>
    </dependency>

    <dependency>
      <groupId>org.seleniumhq.selenium</groupId>
      <artifactId>selenium-java</artifactId>
      <version>2.45.0</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.seleniumhq.selenium</groupId>
      <artifactId>selenium-firefox-driver</artifactId>
      <version>2.45.0</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.seleniumhq.selenium</groupId>
      <artifactId>selenium-server</artifactId>
      <version>2.45.0</version>
      <scope>test</scope>
    </dependency>

    <dependency>
      <groupId>org.apache.httpcomponents</groupId>
      <artifactId>httpclient</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.httpcomponents</groupId>
      <artifactId>httpcore</artifactId>
    </dependency>

    <dependency>
      <groupId>org.onap.so</groupId>
      <artifactId>asdc-controller</artifactId>
      <version>${project.version}</version>
      <scope>test</scope>
      <classifier>classes</classifier>
    </dependency>

    <dependency>
      <groupId>org.openecomp.sdc.sdc-distribution-client</groupId>
      <artifactId>sdc-distribution-client</artifactId>
      <version>1.2.2</version>
      <scope>test</scope>
    </dependency>

    <dependency>
      <groupId>org.onap.so</groupId>
      <artifactId>mso-catalog-db</artifactId>
      <version>${project.version}</version>
      <scope>test</scope>
    </dependency>
    <!-- FOR JMETER -->
    <dependency>
      <groupId>org.apache.jmeter</groupId>
      <artifactId>ApacheJMeter_core</artifactId>
      <version>2.13</version>

      <scope>test</scope>
      <exclusions>
        <exclusion>
          <artifactId>commons-math3</artifactId>
          <groupId>commons-math3</groupId>
        </exclusion>
        <exclusion>
          <artifactId>commons-pool2</artifactId>
          <groupId>commons-pool2</groupId>
        </exclusion>
      </exclusions>
    </dependency>

    <dependency>
      <groupId>org.apache.jmeter</groupId>
      <artifactId>ApacheJMeter_http</artifactId>
      <version>2.13</version>

      <scope>test</scope>
      <exclusions>
        <exclusion>
          <artifactId>commons-math3</artifactId>
          <groupId>commons-math3</groupId>
        </exclusion>
        <exclusion>
          <artifactId>commons-pool2</artifactId>
          <groupId>commons-pool2</groupId>
        </exclusion>
      </exclusions>
    </dependency>

    <dependency>
      <groupId>org.apache.jmeter</groupId>
      <artifactId>ApacheJMeter_jdbc</artifactId>
      <version>2.13</version>

      <scope>test</scope>
      <exclusions>
        <exclusion>
          <artifactId>commons-math3</artifactId>
          <groupId>commons-math3</groupId>
        </exclusion>
        <exclusion>
          <artifactId>commons-pool2</artifactId>
          <groupId>commons-pool2</groupId>
        </exclusion>
      </exclusions>
    </dependency>

    <!-- END FOR JMETER -->
  </dependencies>

  <build>
    <finalName>arquillian-tests</finalName>
    <plugins>
      <plugin>
        <groupId>org.codehaus.groovy.maven</groupId>
        <artifactId>gmaven-plugin</artifactId>
        <executions>
          <execution>
            <phase>generate-resources</phase>
            <goals>
              <goal>execute</goal>
            </goals>
            <configuration>
			          <source>
			            if ( project.properties['docker.host'] != null ) {
			          		project.properties['docker.host.truncated']=project.properties['docker.host'].replaceFirst("^(http://|https://)","");
			          		int indexPort = project.properties['docker.host.truncated'].indexOf(":");
			          		project.properties['docker.host.truncated']=project.properties['docker.host.truncated'].substring(0,indexPort);
			          		println 'docker.host.truncated:'+ project.properties['docker.host.truncated'];
			          	} else {
			          		project.properties['docker.host.truncated']="127.0.0.1";
			          		project.properties['docker.host']="unix:///var/run/docker.sock"
			          	}

			          	if ( project.properties['mso.project.version'].endsWith("-SNAPSHOT") ) {
			          		project.properties['mso.version']="latest";
			          	} else {
			          		project.properties['mso.version']=project.properties['mso.project.version'];
			          	}
			          </source>
            </configuration>
          </execution>
        </executions>
      </plugin>


      <!-- <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>wagon-maven-plugin</artifactId>
        <version>1.0</version>
        <executions>
          <execution>
            <id>download-mariadb-connector</id>
            <phase>pre-integration-test</phase>
            <goals>
              <goal>download-single</goal>
            </goals>
            <configuration>
              <url>http://central.maven.org/</url>
              <fromFile>maven2/org/mariadb/jdbc/mariadb-java-client/1.5.4/mariadb-java-client-1.5.4.jar</fromFile>
              <toDir>${project.build.directory}/mariadb-connector</toDir>
            </configuration>
          </execution>
        </executions>
      </plugin> -->
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-failsafe-plugin</artifactId>
        <version>2.16</version>

        <executions>
          <execution>
            <goals>
              <goal>integration-test</goal>
              <goal>verify</goal>
            </goals>
            <configuration>
              <skipAfterFailureCount>1</skipAfterFailureCount>
            </configuration>
          </execution>
        </executions>

        <configuration>
          <systemPropertyVariables>
            <arquillian.launch>${container-to-start}</arquillian.launch>
            <target.folder>${project.build.directory}</target.folder>
            <docker.url>${docker.host}</docker.url>
            <docker.hostname>${docker.host.truncated}</docker.hostname>
            <images.version>${mso.version}</images.version>
          </systemPropertyVariables>
          <reportsDirectory>${project.build.directory}/surefire-reports</reportsDirectory>
          <testFailureIgnore>true</testFailureIgnore>
          <includes>
            <include>${it-suite-to-execute}</include>
          </includes>
        </configuration>
      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>

        <configuration>
          <skipTests>true</skipTests>
        </configuration>
      </plugin>
    </plugins>
    <pluginManagement>
    	<plugins>
    		<!--This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself.-->
    		<!-- Added to ensure that eclipse doesn't complain about executing gmaven during the generate-resources phase of the build. -->
    		<plugin>
    			<groupId>org.eclipse.m2e</groupId>
    			<artifactId>lifecycle-mapping</artifactId>
    			<version>1.0.0</version>
    			<configuration>
    				<lifecycleMappingMetadata>
    					<pluginExecutions>
    						<pluginExecution>
    							<pluginExecutionFilter>
    								<groupId>
    									org.codehaus.groovy.maven
    								</groupId>
    								<artifactId>
    									gmaven-plugin
    								</artifactId>
    								<versionRange>[1.0,)</versionRange>
    								<goals>
    									<goal>execute</goal>
    								</goals>
    							</pluginExecutionFilter>
    							<action>
    								<ignore></ignore>
    							</action>
    						</pluginExecution>
    					</pluginExecutions>
    				</lifecycleMappingMetadata>
    			</configuration>
    		</plugin>
    	</plugins>
    </pluginManagement>
  </build>

</project>