<?xml version="1.0"?>
<!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor 
  license agreements. See the NOTICE file distributed with this work for additional 
  information regarding copyright ownership. The ASF licenses this file to 
  You under the Apache License, Version 2.0 (the "License"); you may not use 
  this file except in compliance with the License. You may obtain a copy of 
  the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required 
  by applicable law or agreed to in writing, software distributed under the 
  License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS 
  OF ANY KIND, either express or implied. See the License for the specific 
  language governing permissions and limitations under the License. -->
<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>
    <artifactId>arquillian</artifactId>
    <groupId>org.apache.tomee</groupId>
    <version>7.0.5</version>
  </parent>
  
  <artifactId>arquillian-tomee-tests</artifactId>
  <packaging>pom</packaging>

  <name>OpenEJB :: Arquillian Adaptors Parent :: Tests</name>

  <modules>
    <module>arquillian-tomee-webprofile-tests</module>
    <module>arquillian-tomee-jaxrs-tests</module>
    <module>arquillian-tomee-jaxws-tests</module>
    <module>arquillian-tomee-jms-tests</module>
    <module>arquillian-tomee-codi-tests</module>
    <module>arquillian-tomee-config-tests</module>
  </modules>

  <dependencies>
    <dependency>
      <groupId>${project.groupId}</groupId>
      <artifactId>javaee-api</artifactId>
    </dependency>

    <dependency>
      <groupId>org.jboss.shrinkwrap.resolver</groupId>
      <artifactId>shrinkwrap-resolver-impl-maven</artifactId>
      <version>2.0.0</version>
      <scope>test</scope>
      <exclusions>
        <exclusion>
          <groupId>org.apache.httpcomponents</groupId>
          <artifactId>httpcore</artifactId>
        </exclusion>
      </exclusions>
    </dependency>

    <dependency>
      <groupId>org.apache.httpcomponents</groupId>
      <artifactId>httpcore</artifactId>
      <version>4.2.4</version>
      <scope>test</scope>
    </dependency>

    <dependency>
      <groupId>${project.groupId}</groupId>
      <artifactId>ziplock</artifactId>
      <version>${project.version}</version>
    </dependency>

    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <scope>test</scope>
    </dependency>

    <dependency>
      <groupId>org.jboss.arquillian.junit</groupId>
      <artifactId>arquillian-junit-container</artifactId>
      <version>${version.arquillian}</version>
      <scope>test</scope>
    </dependency>

    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-jdk14</artifactId>
    </dependency>

    <dependency>
      <groupId>org.apache.httpcomponents</groupId>
      <artifactId>httpclient</artifactId>
      <version>4.2.2</version>
    </dependency>

    <dependency>
      <groupId>org.jboss.shrinkwrap.descriptors</groupId>
      <artifactId>shrinkwrap-descriptors-impl-javaee</artifactId>
      <version>${version.shrinkwrap.descriptor}</version>
    </dependency>
    <dependency>
      <groupId>org.jboss.shrinkwrap.descriptors</groupId>
      <artifactId>shrinkwrap-descriptors-api-javaee</artifactId>
      <version>${version.shrinkwrap.descriptor}</version>
    </dependency>

    <dependency>
      <groupId>${project.groupId}</groupId>
      <artifactId>arquillian-tomee-embedded</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>${project.groupId}</groupId>
      <artifactId>arquillian-tomee-remote</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>${project.groupId}</groupId>
      <artifactId>arquillian-tomee-webapp-remote</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency> <!-- tomee-embedded needs it + dependencies but tomee-*-remote doesn't need dependencies so to avoid conflicts bringing it back here -->
      <groupId>${project.groupId}</groupId>
      <artifactId>openejb-core</artifactId>
      <version>${project.version}</version>
    </dependency>

    <!-- just to get it in the correct order -->
    <dependency>
      <groupId>${project.groupId}</groupId>
      <artifactId>apache-tomee</artifactId>
      <version>${project.version}</version>
      <classifier>webprofile</classifier>
      <type>zip</type>
    </dependency>
    <dependency>
      <groupId>org.apache.tomcat</groupId>
      <artifactId>tomcat</artifactId>
      <version>${tomcat.version}</version>
      <type>zip</type>
    </dependency>
  </dependencies>

  <profiles>

    <profile>
      <id>default</id>
      <activation>
        <activeByDefault>true</activeByDefault>
      </activation>

      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <executions>
              <execution>
                <id>test-tomee-embedded</id>
                <phase>test</phase>
                <goals>
                  <goal>test</goal>
                </goals>
                <configuration>
                  <skip>${maven.test.skip}</skip>
                  <argLine>-javaagent:${settings.localRepository}/org/apache/tomee/openejb-javaagent/${project.version}/openejb-javaagent-${project.version}.jar</argLine>
                  <systemPropertyVariables>
                    <tomee.version>7.0.5</tomee.version>
                    <arquillian.launch>tomee-embedded</arquillian.launch>
                    <openejb.arquillian.adapter>tomee-embedded</openejb.arquillian.adapter>
                  </systemPropertyVariables>
                </configuration>
              </execution>
            </executions>
            <configuration>
              <skip>true</skip>
              <parallel>none</parallel>
              <threadCount>1</threadCount>
              <reuseForks>true</reuseForks>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>

    <profile>
      <id>all-adapters</id>
      <build>
        <plugins>
          <plugin>
            <groupId>org.codehaus.gmaven</groupId>
            <artifactId>groovy-maven-plugin</artifactId>
            <executions>
              <execution>
                <id>configure-adapters</id>
                <phase>test</phase>
                <goals>
                  <goal>execute</goal>
                </goals>
                <configuration>
                  <source>
                    // goal: manage the profile-under-test property
                    // -&gt; set to webprofile use all distributions
                    // -&gt; set to plus use only plus
                    // -&gt; set to plume use only plume
                    def props = project.properties

                    def skip = props['maven.test.skip']

                    props['skip.embedded'] = 'true'
                    props['skip.remote.webprofile'] = 'true'
                    props['skip.remote.plus'] = 'true'
                    props['skip.remote.plume'] = 'true'
                    props['skip.webapp.webprofile'] = 'true'
                    props['skip.webapp.plus'] = 'true'
                    props['skip.webapp.plume'] = 'true'

                    if ("true" != skip) {
                      def minProfile = props['profile-under-test']

                      if ("webprofile" == minProfile) {
                        props['skip.embedded'] = 'false'
                        props['skip.remote.webprofile'] = 'false'
                        props['skip.webapp.webprofile'] = 'false'
                        props['skip.remote.plus'] = 'false'
                        props['skip.webapp.plus'] = 'false'
                        props['skip.remote.plume'] = 'false'
                        props['skip.webapp.plume'] = 'false'
                      } else if ("plus" == minProfile) {
                        props['skip.embedded'] = 'false'
                        props['skip.remote.plus'] = 'false'
                        props['skip.webapp.plus'] = 'false'
                        props['skip.remote.plume'] = props['skip.remote.plume'] ? props['skip.remote.plume'] : 'false'
                        props['skip.webapp.plume'] = props['skip.webapp.plume'] ? props['skip.webapp.plume'] : 'false'
                      }
                    }

                    println("Embedded adapter activated ? " + !Boolean.parseBoolean(props['skip.embedded']))
                    println("Remote webprofile adapter activated ? " +
                        !Boolean.parseBoolean(props['skip.remote.webprofile']))
                    println("Remote plus adapter activated ? " + !Boolean.parseBoolean(props['skip.remote.plus']))
                    println("Remote plume adapter activated ? " + !Boolean.parseBoolean(props['skip.remote.plume']))
                    println("Webapp weprofile adapter activated ? " +
                        !Boolean.parseBoolean(props['skip.webapp.webprofile']))
                    println("Webapp plus adapter activated ? " + !Boolean.parseBoolean(props['skip.webapp.plus']))
                    println("Webapp plume adapter activated ? " + !Boolean.parseBoolean(props['skip.webapp.plume']))
                  </source>
                </configuration>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <executions>

              <execution>
                <id>test-tomee-remote</id>
                <phase>test</phase>
                <goals>
                  <goal>test</goal>
                </goals>
                <configuration>
                  <skip>${skip.remote.webprofile}</skip>
                  <systemPropertyVariables>
                    <openejb.arquillian.debug>true</openejb.arquillian.debug>
                    <tomee.version>7.0.5</tomee.version>
                    <tomee.classifier>webprofile</tomee.classifier>
                    <arquillian.launch>tomee-remote</arquillian.launch>
                    <openejb.arquillian.adapter>tomee-remote</openejb.arquillian.adapter>
                  </systemPropertyVariables>
                </configuration>
              </execution>
              <execution>
                <id>test-tomee-embedded</id>
                <phase>test</phase>
                <goals>
                  <goal>test</goal>
                </goals>
                <configuration>
                  <skip>${skip.embedded}</skip>
                  <argLine>-javaagent:${settings.localRepository}/org/apache/tomee/openejb-javaagent/${project.version}/openejb-javaagent-${project.version}.jar -XX:+CMSClassUnloadingEnabled -XX:MaxPermSize=768M</argLine>
                  <systemPropertyVariables>
                    <tomee.version>7.0.5</tomee.version>
                    <arquillian.launch>tomee-embedded</arquillian.launch>
                    <openejb.arquillian.adapter>tomee-embedded</openejb.arquillian.adapter>
                  </systemPropertyVariables>
                </configuration>
              </execution>
              <execution>
                <id>test-tomee-remote-plume</id>
                <phase>test</phase>
                <goals>
                  <goal>test</goal>
                </goals>
                <configuration>
                  <skip>${skip.remote.plume}</skip>
                  <systemPropertyVariables>
                    <openejb.arquillian.debug>true</openejb.arquillian.debug>
                    <tomee.version>7.0.5</tomee.version>
                    <tomee.classifier>plume</tomee.classifier>
                    <arquillian.launch>tomee-remote</arquillian.launch>
                    <openejb.arquillian.adapter>tomee-remote</openejb.arquillian.adapter>
                  </systemPropertyVariables>
                  <excludes>
                    <exclude>**/AppComposerTest.java</exclude>
                  </excludes>
                </configuration>
              </execution>
              <execution>
                <id>test-tomee-remote-plus</id>
                <phase>test</phase>
                <goals>
                  <goal>test</goal>
                </goals>
                <configuration>
                  <skip>${skip.remote.plus}</skip>
                  <systemPropertyVariables>
                    <openejb.arquillian.debug>true</openejb.arquillian.debug>
                    <tomee.version>7.0.5</tomee.version>
                    <tomee.classifier>plus</tomee.classifier>
                    <arquillian.launch>tomee-remote</arquillian.launch>
                    <openejb.arquillian.adapter>tomee-remote</openejb.arquillian.adapter>
                  </systemPropertyVariables>
                </configuration>
              </execution>
              <execution>
                <id>test-tomee-webapp-remote</id>
                <phase>test</phase>
                <goals>
                  <goal>test</goal>
                </goals>
                <configuration>
                  <skip>${skip.webapp.webprofile}</skip>
                  <systemPropertyVariables>
                    <tomee.version>7.0.5</tomee.version>
                    <tomee.tomcatVersion>${tomcat.version}</tomee.tomcatVersion>
                    <tomee.artifactId>tomee-webapp</tomee.artifactId>
                    <arquillian.launch>tomee-webapp</arquillian.launch>
                    <openejb.arquillian.adapter>tomee-webapp</openejb.arquillian.adapter>
                  </systemPropertyVariables>
                </configuration>
              </execution>
              <execution>
                <id>test-tomee-webapp-remote-plus</id>
                <phase>test</phase>
                <goals>
                  <goal>test</goal>
                </goals>
                <configuration>
                  <skip>${skip.webapp.plus}</skip>
                  <systemPropertyVariables>
                    <tomee.version>7.0.5</tomee.version>
                    <tomee.tomcatVersion>${tomcat.version}</tomee.tomcatVersion>
                    <tomee.artifactId>tomee-plus-webapp</tomee.artifactId>
                    <arquillian.launch>tomee-webapp</arquillian.launch>
                    <openejb.arquillian.adapter>tomee-webapp</openejb.arquillian.adapter>
                  </systemPropertyVariables>
                </configuration>
              </execution>
              <execution>
                <id>test-tomee-webapp-remote-plume</id>
                <phase>test</phase>
                <goals>
                  <goal>test</goal>
                </goals>
                <configuration>
                  <skip>${skip.webapp.plume}</skip>
                  <systemPropertyVariables>
                    <tomee.version>7.0.5</tomee.version>
                    <tomee.tomcatVersion>${tomcat.version}</tomee.tomcatVersion>
                    <tomee.artifactId>tomee-plume-webapp</tomee.artifactId>
                    <arquillian.launch>tomee-webapp</arquillian.launch>
                    <openejb.arquillian.adapter>tomee-webapp</openejb.arquillian.adapter>
                  </systemPropertyVariables>
                  <excludes>
                    <exclude>**/AppComposerTest.java</exclude>
                  </excludes>
                </configuration>
              </execution>
            </executions>
            <configuration>
              <skip>true</skip>
              <parallel>none</parallel>
              <threadCount>1</threadCount>
              <reuseForks>true</reuseForks>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>


    <profile>
      <id>buildbot</id>

      <dependencies>
        <dependency>
          <groupId>${project.groupId}</groupId>
          <artifactId>arquillian-tomee-embedded</artifactId>
          <version>${project.version}</version>
        </dependency>
        <dependency>
          <groupId>${project.groupId}</groupId>
          <artifactId>arquillian-tomee-remote</artifactId>
          <version>${project.version}</version>
        </dependency>
        <dependency>
          <groupId>${project.groupId}</groupId>
          <artifactId>arquillian-tomee-webapp-remote</artifactId>
          <version>${project.version}</version>
        </dependency>

        <!-- just to get it in the correct order -->
        <dependency>
          <groupId>${project.groupId}</groupId>
          <artifactId>apache-tomee</artifactId>
          <version>${project.version}</version>
          <classifier>webprofile</classifier>
          <type>zip</type>
        </dependency>
        <dependency>
          <groupId>${project.groupId}</groupId>
          <artifactId>apache-tomee</artifactId>
          <version>${project.version}</version>
          <classifier>plus</classifier>
          <type>zip</type>
        </dependency>
        <dependency>
          <groupId>${project.groupId}</groupId>
          <artifactId>apache-tomee</artifactId>
          <version>${project.version}</version>
          <classifier>plume</classifier>
          <type>zip</type>
        </dependency>

        <dependency>
          <groupId>${project.groupId}</groupId>
          <artifactId>tomee-webapp</artifactId>
          <version>${project.version}</version>
          <type>war</type>
        </dependency>
        <dependency>
          <groupId>${project.groupId}</groupId>
          <artifactId>tomee-plus-webapp</artifactId>
          <version>${project.version}</version>
          <type>war</type>
        </dependency>
        <dependency>
          <groupId>${project.groupId}</groupId>
          <artifactId>tomee-plume-webapp</artifactId>
          <version>${project.version}</version>
          <type>war</type>
        </dependency>
        <dependency>
          <groupId>org.apache.tomcat</groupId>
          <artifactId>tomcat</artifactId>
          <version>${tomcat.version}</version>
          <type>zip</type>
        </dependency>

      </dependencies>
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>2.20</version>
            <executions>
              <execution>
                <id>test-tomee-embedded</id>
                <phase>test</phase>
                <goals>
                  <goal>test</goal>
                </goals>
                <configuration>
                  <skip>${maven.test.skip}</skip>
                  <argLine>-XX:MaxPermSize=768M</argLine>
                  <systemPropertyVariables>
                    <tomee.version>7.0.5</tomee.version>
                    <arquillian.launch>tomee-embedded</arquillian.launch>
                    <openejb.arquillian.adapter>tomee-embedded</openejb.arquillian.adapter>
                  </systemPropertyVariables>
                </configuration>
              </execution>

              <!-- Remote against Web Profile, JAX-RS and Plus -->

              <execution>
                <id>test-tomee-remote-webprofile</id>
                <phase>test</phase>
                <goals>
                  <goal>test</goal>
                </goals>
                <configuration>
                  <skip>${maven.test.skip}</skip>
                  <systemPropertyVariables>
                    <openejb.arquillian.debug>true</openejb.arquillian.debug>
                    <tomee.version>7.0.5</tomee.version>
                    <tomee.classifier>webprofile</tomee.classifier>
                    <arquillian.launch>tomee-remote</arquillian.launch>
                    <openejb.arquillian.adapter>tomee-remote</openejb.arquillian.adapter>
                  </systemPropertyVariables>
                </configuration>
              </execution>
              <execution>
                <id>test-tomee-remote-plus</id>
                <phase>test</phase>
                <goals>
                  <goal>test</goal>
                </goals>
                <configuration>
                  <skip>${maven.test.skip}</skip>
                  <systemPropertyVariables>
                    <openejb.arquillian.debug>true</openejb.arquillian.debug>
                    <tomee.version>7.0.5</tomee.version>
                    <tomee.classifier>plus</tomee.classifier>
                    <arquillian.launch>tomee-remote</arquillian.launch>
                    <openejb.arquillian.adapter>tomee-remote</openejb.arquillian.adapter>
                  </systemPropertyVariables>
                </configuration>
              </execution>
              <execution>
                <id>test-tomee-remote-plume</id>
                <phase>test</phase>
                <goals>
                  <goal>test</goal>
                </goals>
                <configuration>
                  <skip>${maven.test.skip}</skip>
                  <systemPropertyVariables>
                    <openejb.arquillian.debug>true</openejb.arquillian.debug>
                    <tomee.version>7.0.5</tomee.version>
                    <tomee.classifier>plume</tomee.classifier>
                    <arquillian.launch>tomee-remote</arquillian.launch>
                    <openejb.arquillian.adapter>tomee-remote</openejb.arquillian.adapter>
                  </systemPropertyVariables>
                  <excludes>
                    <exclude>**/AppComposerTest.java</exclude>
                  </excludes>
                </configuration>
              </execution>

              <!-- Tomcat + war against Web Profile, JAX-RS and Plus -->

              <execution>
                <id>test-tomee-webapp-remote-webprofile</id>
                <phase>test</phase>
                <goals>
                  <goal>test</goal>
                </goals>
                <configuration>
                  <skip>${maven.test.skip}</skip>
                  <systemPropertyVariables>
                    <tomee.version>7.0.5</tomee.version>
                    <tomee.tomcatVersion>${tomcat.version}</tomee.tomcatVersion>
                    <tomee.artifactId>tomee-webapp</tomee.artifactId>
                    <arquillian.launch>tomee-webapp</arquillian.launch>
                    <openejb.arquillian.adapter>tomee-webapp</openejb.arquillian.adapter>
                  </systemPropertyVariables>
                </configuration>
              </execution>
              <execution>
                <id>test-tomee-webapp-remote-plus</id>
                <phase>test</phase>
                <goals>
                  <goal>test</goal>
                </goals>
                <configuration>
                  <skip>${maven.test.skip}</skip>
                  <systemPropertyVariables>
                    <tomee.version>7.0.5</tomee.version>
                    <tomee.tomcatVersion>${tomcat.version}</tomee.tomcatVersion>
                    <tomee.artifactId>tomee-plus-webapp</tomee.artifactId>
                    <arquillian.launch>tomee-webapp</arquillian.launch>
                    <openejb.arquillian.adapter>tomee-webapp</openejb.arquillian.adapter>
                  </systemPropertyVariables>
                </configuration>
              </execution>
              <execution>
                <id>test-tomee-webapp-remote-plume</id>
                <phase>test</phase>
                <goals>
                  <goal>test</goal>
                </goals>
                <configuration>
                  <skip>${maven.test.skip}</skip>
                  <systemPropertyVariables>
                    <tomee.version>7.0.5</tomee.version>
                    <tomee.tomcatVersion>${tomcat.version}</tomee.tomcatVersion>
                    <tomee.artifactId>tomee-plume-webapp</tomee.artifactId>
                    <arquillian.launch>tomee-webapp</arquillian.launch>
                    <openejb.arquillian.adapter>tomee-webapp</openejb.arquillian.adapter>
                  </systemPropertyVariables>
                  <excludes>
                    <exclude>**/AppComposerTest.java</exclude>
                  </excludes>
                </configuration>
              </execution>
            </executions>
            <configuration>
              <skip>true</skip>
              <parallel>none</parallel>
              <threadCount>1</threadCount>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>


    <profile>
      <!--
      Added to make it easy to quickly verify if something "should" work
      -->
      <id>glassfish-embedded</id>
      <properties>
        <version.glassfish>3.1.2.2</version.glassfish>
        <version.arquillian.glassfish.embedded>1.0.0.CR4</version.arquillian.glassfish.embedded>
        <version.mockito>1.9.0</version.mockito>
        <version.maven.embedded.glassfish.plugin>3.1.1</version.maven.embedded.glassfish.plugin>
        <version.maven.war.plugin>2.1.1</version.maven.war.plugin>
        <version.maven.compiler.plugin>2.3.2</version.maven.compiler.plugin>
        <version.maven.failsafe.plugin>2.11</version.maven.failsafe.plugin>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
      </properties>
      <dependencies>
        <dependency>
          <groupId>org.jboss.arquillian.junit</groupId>
          <artifactId>arquillian-junit-container</artifactId>
          <version>${version.arquillian}</version>
          <scope>test</scope>
        </dependency>
        <dependency>
          <groupId>org.glassfish.main.extras</groupId>
          <artifactId>glassfish-embedded-all</artifactId>
          <version>${version.glassfish}</version>
          <scope>provided</scope>
        </dependency>
        <dependency>
          <groupId>org.jboss.arquillian.container</groupId>
          <artifactId>arquillian-glassfish-embedded-3.1</artifactId>
          <version>${version.arquillian.glassfish.embedded}</version>
          <scope>test</scope>
        </dependency>
      </dependencies>
    </profile>
  </profiles>

  <properties>
    <profile-under-test>webprofile</profile-under-test>
  </properties>
</project>
