<?xml version="1.0" encoding="UTF-8"?>
<!--
    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.
-->

<!-- $Revision$ $Date$ -->

<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/maven-v4_0_0.xsd">

  <modelVersion>4.0.0</modelVersion>

  <groupId>org.apache.tomee.cts</groupId>
  <artifactId>tomee-tck</artifactId>
  <name>TomEE TCK Harness</name>

  <version>8.0.13-SNAPSHOT</version>

  <description>
    TomEE TCK Harness
  </description>

  <properties>

    <openejb.groupId>org.apache.tomee</openejb.groupId>
    <openejb.version>8.0.13-SNAPSHOT</openejb.version>
    <tomee.version>8.0.13-SNAPSHOT</tomee.version>

    <tomcat.version>9.0.63</tomcat.version>
    <derby.version>10.14.2.0</derby.version>

    <!--
    NOTE: User must define "javaee8.cts.home" and "javaee8.ri.home" in ~/.m2/settings.xml
    NOTE: Same for the Jakarta version "jakartaee9.cts.home" and "jakartaee9.ri.home" in ~/.m2/settings.xml
    -->
    <cts.home>${javaee8.cts.home}</cts.home>
    <ri.home>${javaee8.ri.home}</ri.home>
    <tck.version>8.0</tck.version>

    <localRepository>${settings.localRepository}</localRepository>
    <examples.version>1.1-SNAPSHOT</examples.version>
    <http.proxy.host>${settings.activeProxy.host}</http.proxy.host>
    <http.proxy.port>${settings.activeProxy.port}</http.proxy.port>
    <http.proxy.username>${settings.activeProxy.username}</http.proxy.username>
    <http.proxy.password>${settings.activeProxy.password}</http.proxy.password>
    <http.proxy.nonProxyHosts>${settings.activeProxy.nonProxyHosts}</http.proxy.nonProxyHosts>

    <repoPath>${localRepository}</repoPath>


    <!-- externalized ports for tx.jte file -->
    <webcontainer.default.host>localhost</webcontainer.default.host>
    <webcontainer.ri.host>localhost</webcontainer.ri.host>
    <webcontainer.ri.port>8000</webcontainer.ri.port>
    <orb.default.host>localhost</orb.default.host>
    <orb.default.port>2809</orb.default.port>
    <orb.ri.host>localhost</orb.ri.host>
    <orb.ri.port>3700</orb.ri.port>
    <rmiiiop.http.server.host>localhost</rmiiiop.http.server.host>
    <rmiiiop.http.server.port>10000</rmiiiop.http.server.port>
    <harness.log.port>2000</harness.log.port>

    <!-- Random CTS properties that have been externalized -->
    <deliverable.class>com.sun.ts.lib.deliverable.cts.CTSDeliverable</deliverable.class>
    <deploy_delay_in_minutes>5</deploy_delay_in_minutes>
    <cts.harness.debug>false</cts.harness.debug>

    <!-- Disable Surefire, we are using Javatest to execute integration tests -->
    <maven.test.skip>true</maven.test.skip>

    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <version.maven-dependency-plugin>2.9</version.maven-dependency-plugin>
    <version.activemq>5.16.3</version.activemq>
    <version.gmaven-plugin>1.5</version.gmaven-plugin>
  </properties>

  <dependencies>
    <dependency>
      <groupId>${openejb.groupId}</groupId>
      <artifactId>openejb-lite</artifactId>
      <version>${openejb.version}</version>
    </dependency>

    <dependency>
      <groupId>org.apache.activemq</groupId>
      <artifactId>activemq-ra</artifactId>
      <version>${version.activemq}</version>
      <exclusions>
        <exclusion>
          <artifactId>slf4j-api</artifactId>
          <groupId>org.slf4j</groupId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>org.apache.geronimo.components</groupId>
      <artifactId>geronimo-connector</artifactId>
      <version>3.1.4</version>
    </dependency>
    <dependency>
      <groupId>org.apache.activemq</groupId>
      <artifactId>activemq-client</artifactId>
      <version>${version.activemq}</version>
      <exclusions>
        <exclusion>
          <artifactId>slf4j-api</artifactId>
          <groupId>org.slf4j</groupId>
        </exclusion>
      </exclusions>
    </dependency>
    <!-- required dependency for active mq -->
    <dependency>
      <groupId>org.fusesource.hawtbuf</groupId>
      <artifactId>hawtbuf</artifactId>
      <version>1.11</version>
    </dependency>

    <dependency>
      <groupId>com.icegreen</groupId>
      <artifactId>greenmail-standalone</artifactId>
      <version>1.6.9</version>
    </dependency>
    <dependency>
      <groupId>com.unboundid</groupId>
      <artifactId>unboundid-ldapsdk</artifactId>
      <version>6.0.4</version>
    </dependency>

    <!--<dependency>-->
      <!--<groupId>com.test</groupId>-->
      <!--<artifactId>jar-to-test</artifactId>-->
      <!--<version>${tck.version}</version>-->
      <!--<scope>system</scope>-->
      <!--<type>jar</type>-->
      <!--<systemPath>${cts.home}/dist/com/sun/ts/tests/websocket/ee/javax/websocket/clientendpoint/wsc_ee_clientendpoint_Client_nodeploy.jar_client</systemPath>-->
    <!--</dependency>-->

    <dependency>
      <groupId>com.sun.javaee.tck</groupId>
      <artifactId>tsharness</artifactId>
      <version>${tck.version}</version>
      <scope>system</scope>
      <systemPath>${cts.home}/lib/tsharness.jar</systemPath>
    </dependency>
    <dependency>
      <groupId>com.sun.javaee.tck</groupId>
      <artifactId>tssv</artifactId>
      <version>${tck.version}</version>
      <scope>system</scope>
      <systemPath>${cts.home}/lib/tssv.jar</systemPath>
    </dependency>
    <dependency>
      <groupId>com.sun.javaee.tck</groupId>
      <artifactId>tsprovider</artifactId>
      <version>${tck.version}</version>
      <scope>system</scope>
      <systemPath>${cts.home}/lib/tsprovider.jar</systemPath>
    </dependency>

    <dependency>
      <groupId>com.sun.javaee.tck</groupId>
      <artifactId>javatest</artifactId>
      <version>${tck.version}</version>
      <scope>system</scope>
      <systemPath>${cts.home}/lib/javatest.jar</systemPath>
    </dependency>

    <dependency>
      <groupId>com.sun.javaee.tck</groupId>
      <artifactId>cts</artifactId>
      <version>${tck.version}</version>
      <scope>system</scope>
      <systemPath>${cts.home}/lib/cts.jar</systemPath>
    </dependency>

    <dependency>
      <groupId>com.sun.javaee.tck</groupId>
      <artifactId>whitebox</artifactId>
      <version>${tck.version}</version>
      <scope>system</scope>
      <systemPath>${cts.home}/dist/com/sun/ts/tests/common/connector/whitebox/whitebox.jar</systemPath>
    </dependency>

    <dependency>
      <groupId>com.sun.javaee.tck</groupId>
      <artifactId>dbprocedures</artifactId>
      <version>${tck.version}</version>
      <scope>system</scope>
      <systemPath>${cts.home}/lib/dbprocedures.jar</systemPath>
    </dependency>

    <dependency>
      <groupId>backport-util-concurrent</groupId>
      <artifactId>backport-util-concurrent</artifactId>
      <version>3.1</version>
    </dependency>

    <dependency>
      <groupId>commons-lang</groupId>
      <artifactId>commons-lang</artifactId>
      <version>2.6</version>
    </dependency>
    <dependency>
      <groupId>org.apache.commons</groupId>
      <artifactId>commons-collections4</artifactId>
      <version>4.4</version>
    </dependency>

    <dependency>
      <groupId>${openejb.groupId}</groupId>
      <artifactId>openejb-core</artifactId>
      <version>${openejb.version}</version>
      <exclusions>
        <exclusion>
          <artifactId>junit</artifactId>
          <groupId>junit</groupId>
        </exclusion>
      </exclusions>
    </dependency>

    <dependency>
      <groupId>${openejb.groupId}</groupId>
      <artifactId>openejb-client</artifactId>
      <version>${openejb.version}</version>
    </dependency>

    <dependency>
      <groupId>${openejb.groupId}</groupId>
      <artifactId>tomee-loader</artifactId>
      <type>jar</type>
      <version>${tomee.version}</version>
    </dependency>
    <dependency>
      <groupId>${openejb.groupId}</groupId>
      <artifactId>tomee-catalina</artifactId>
      <type>jar</type>
      <version>${tomee.version}</version>
    </dependency>
    <dependency>
      <groupId>${openejb.groupId}</groupId>
      <artifactId>tomee-security</artifactId>
      <type>jar</type>
      <version>${tomee.version}</version>
    </dependency>

    <dependency>
      <groupId>org.apache.geronimo.modules</groupId>
      <artifactId>geronimo-mail</artifactId>
      <version>2.0.2</version>
    </dependency>

    <dependency>
      <groupId>org.apache.derby</groupId>
      <artifactId>derby</artifactId>
      <version>${derby.version}</version>
    </dependency>

    <dependency>
      <groupId>org.apache.derby</groupId>
      <artifactId>derbynet</artifactId>
      <version>${derby.version}</version>
    </dependency>

    <dependency>
      <groupId>org.apache.derby</groupId>
      <artifactId>derbyclient</artifactId>
      <version>${derby.version}</version>
    </dependency>

    <dependency>
      <groupId>${openejb.groupId}</groupId>
      <artifactId>openejb-derbynet</artifactId>
      <version>${openejb.version}</version>
    </dependency>

    <dependency>
      <groupId>${openejb.groupId}</groupId>
      <artifactId>webdeployer</artifactId>
      <version>${openejb.version}</version>
    </dependency>

    <dependency>
      <groupId>org.apache.tomcat</groupId>
      <artifactId>tomcat-websocket</artifactId>
      <version>${tomcat.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.tomcat</groupId>
      <artifactId>tomcat-util</artifactId>
      <version>${tomcat.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.tomcat</groupId>
      <artifactId>tomcat-util-scan</artifactId>
      <version>${tomcat.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.tomcat</groupId>
      <artifactId>tomcat-catalina</artifactId>
      <version>${tomcat.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.tomcat</groupId>
      <artifactId>tomcat-juli</artifactId>
      <version>${tomcat.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.tomcat</groupId>
      <artifactId>tomcat-api</artifactId>
      <version>${tomcat.version}</version>
    </dependency>

    <!-- Groovy sometimes complains if these are not in classpath
    <dependency>
      <groupId>org.apache.geronimo.cts</groupId>
      <artifactId>j2eetck-maven-plugin</artifactId>
      <version>3.0.13022011</version>
    </dependency>
    <dependency>
      <groupId>commons-lang</groupId>
      <artifactId>commons-lang</artifactId>
      <version>2.6</version>
    </dependency>
    -->

  </dependencies>

  <profiles>

    <!-- =================== -->
    <!-- TomEE Environment -->
    <!-- =================== -->

    <profile>
      <id>tomee-environment</id>

      <activation>
        <property>
          <name>webcontainer</name>
          <value>tomee</value>
        </property>
      </activation>

      <properties>
        <!-- where we will unpack tomee -->
        <openejb.home>target/apache-tomee-webprofile-${tomee.version}</openejb.home>
      </properties>

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

            <executions>
              <execution>
                <id>unpack</id>
                <phase>pre-integration-test</phase>
                <goals>
                  <goal>unpack</goal>
                </goals>
                <configuration>
                  <artifactItems>
                    <artifactItem>
                      <groupId>${openejb.groupId}</groupId>
                      <artifactId>apache-tomee</artifactId>
                      <version>${tomee.version}</version>
                      <type>zip</type>
                      <outputDirectory>${project.build.directory}</outputDirectory>
                      <classifier>webprofile</classifier>
                    </artifactItem>
                  </artifactItems>
                </configuration>
              </execution>
              <execution>
                <id>copy-activemq</id>
                <phase>pre-integration-test</phase>
                <goals>
                  <goal>copy-dependencies</goal>
                </goals>
                <configuration>
                  <outputDirectory>${openejb.home}/lib</outputDirectory>
                  <overWriteReleases>false</overWriteReleases>
                  <overWriteSnapshots>true</overWriteSnapshots>
                  <excludeTransitive>false</excludeTransitive>
                  <includeArtifactIds>hawtbuf,activemq-ra,activemq-broker,activemq-kahadb-store,geronimo-connector</includeArtifactIds>
                </configuration>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>

      <dependencies>

        <dependency>
          <groupId>${openejb.groupId}</groupId>
          <artifactId>apache-tomee</artifactId>
          <type>zip</type>
          <version>${tomee.version}</version>
          <classifier>webprofile</classifier>
        </dependency>

      </dependencies>

    </profile>

    <profile>
      <id>tomee-plus-environment</id>

      <activation>
        <property>
          <name>webcontainer</name>
          <value>tomee-plus</value>
        </property>
      </activation>

      <properties>
        <openejb.home>target/apache-tomee-plus-${tomee.version}</openejb.home>
      </properties>

      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-dependency-plugin</artifactId>
            <executions>
              <execution>
                <id>unpack</id>
                <phase>pre-integration-test</phase>
                <goals>
                  <goal>unpack</goal>
                </goals>
                <configuration>
                  <artifactItems>
                    <artifactItem>
                      <groupId>${openejb.groupId}</groupId>
                      <artifactId>apache-tomee</artifactId>
                      <version>${tomee.version}</version>
                      <type>zip</type>
                      <outputDirectory>${project.build.directory}</outputDirectory>
                      <classifier>plus</classifier>
                    </artifactItem>
                  </artifactItems>
                </configuration>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>

      <dependencies>

        <dependency>
          <groupId>${openejb.groupId}</groupId>
          <artifactId>apache-tomee</artifactId>
          <type>zip</type>
          <version>${tomee.version}</version>
          <classifier>plus</classifier>
        </dependency>

      </dependencies>

    </profile>

    <profile>
      <id>tomee-plume-environment</id>

      <activation>
        <property>
          <name>webcontainer</name>
          <value>tomee-plume</value>
        </property>
      </activation>

      <properties>
        <openejb.home>target/apache-tomee-plume-${tomee.version}</openejb.home>
      </properties>

      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-dependency-plugin</artifactId>
            <executions>
              <execution>
                <id>unpack</id>
                <phase>pre-integration-test</phase>
                <goals>
                  <goal>unpack</goal>
                </goals>
                <configuration>
                  <artifactItems>
                    <artifactItem>
                      <groupId>${openejb.groupId}</groupId>
                      <artifactId>apache-tomee</artifactId>
                      <version>${tomee.version}</version>
                      <type>zip</type>
                      <outputDirectory>${project.build.directory}</outputDirectory>
                      <classifier>plume</classifier>
                    </artifactItem>
                  </artifactItems>
                </configuration>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>

      <dependencies>

        <dependency>
          <groupId>${openejb.groupId}</groupId>
          <artifactId>apache-tomee</artifactId>
          <type>zip</type>
          <version>${tomee.version}</version>
          <classifier>plume</classifier>
        </dependency>

      </dependencies>

    </profile>

    <!-- ==================== -->
    <!-- Reverse Test setup   -->
    <!-- ==================== -->

    <profile>
      <id>reverse-setup</id>

      <activation>
        <property>
          <name>reverse</name>
          <value>true</value>
        </property>
      </activation>

      <build>
        <plugins>
          <plugin> <!-- not used by tomee yet -->
            <groupId>org.codehaus.gmaven</groupId>
            <artifactId>gmaven-plugin</artifactId>
            <version>${version.gmaven-plugin}</version>
            <executions>
              <execution>
                <id>generate-reverse-tests</id>
                <phase>process-test-resources</phase>
                <goals>
                  <goal>execute</goal>
                </goals>
                <configuration>
                  <source>
                    new openejb.tck.commands.ReverseSetupCommand(this).execute()
                  </source>
                </configuration>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>

    <!--
    sql commands are very long to execute
    and not always useful (jaxrs tests for instance)
    so simply let skip it in an easy manner
    -->
    <profile>
      <id>sql</id>

      <activation>
        <property>
          <name>sql</name>
          <value>active</value>
        </property>
      </activation>

      <build>
        <plugins>
          <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>sql-maven-plugin</artifactId>
            <version>1.5</version>

            <dependencies>
              <dependency>
                <groupId>org.apache.derby</groupId>
                <artifactId>derbyclient</artifactId>
                <version>${derby.version}</version>
              </dependency>
            </dependencies>

            <executions>
              <execution>
                <id>create-schema</id>
                <phase>pre-integration-test</phase>
                <goals>
                  <goal>execute</goal>
                </goals>
                <configuration>
                  <driver>org.apache.derby.jdbc.ClientDriver</driver>
                  <url>jdbc:derby://localhost:${derby.server.port}/derbydb;create=true</url>
                  <username>cts</username>
                  <password>cts</password>
                  <autocommit>true</autocommit>
                  <onError>continue</onError>
                  <srcFiles>
                    <srcFile>src/test/sql/derby/derby.ddl.sql</srcFile>
                    <srcFile>src/test/sql/derby/derby.ddl.cmp.sql</srcFile>
                    <srcFile>src/test/sql/derby/derby.ddl.interop.sql</srcFile>
                    <srcFile>src/test/sql/derby/derby.ddl.jacc.sql</srcFile>
                    <!--<srcFile>src/test/sql/derby/derby.ddl.jbatch-tck.sql</srcFile>-->
                    <srcFile>src/test/sql/derby/derby.ddl.jstl.sql</srcFile>
                    <srcFile>src/test/sql/derby/derby.ddl.persistence.sprocs.sql</srcFile>
                    <srcFile>src/test/sql/derby/derby.ddl.persistence.sql</srcFile>
                    <srcFile>src/test/sql/derby/derby.ddl.securityapi.sql</srcFile>
                    <srcFile>src/test/sql/derby/derby.ddl.sprocs.sql</srcFile>
                    <srcFile>src/test/sql/derby/derby.dml.sql</srcFile>
                    <srcFile>src/test/sql/derby/derby.dml.jpa.sql</srcFile>
                    <srcFile>src/test/sql/derby/derby.dml.jstl.sql</srcFile>
                  </srcFiles>
                </configuration>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
  </profiles>

  <build>
    <defaultGoal>install</defaultGoal>
    <testResources>
      <testResource>
        <directory>${pom.basedir}/src/test/resources</directory>
      </testResource>
    </testResources>

    <pluginManagement>
      <plugins>

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-dependency-plugin</artifactId>
          <version>2.10</version>
        </plugin>

        <plugin>
          <groupId>org.codehaus.gmaven</groupId>
          <artifactId>gmaven-plugin</artifactId>
          <version>${version.gmaven-plugin}</version>
          <configuration>
            <scriptpath>
              <element>${pom.basedir}/src/test/script</element>
            </scriptpath>
            <classpath>
              <element>
                <groupId>jline</groupId>
                <artifactId>jline</artifactId>
                <version>0.9.94</version>
              </element>
            </classpath>
            <defaults>
              <testSectionsFile>${pom.basedir}/sections.properties</testSectionsFile>
              <logOutputDirectory>${project.build.directory}/logs</logOutputDirectory>
              <backupLogs>true</backupLogs>
            </defaults>
          </configuration>
        </plugin>

      </plugins>
    </pluginManagement>

    <!--
    NOTE: These are the default plugin executions that should always execute.
          This performs setup and validation of the environment.
    -->

    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.2</version>
        <configuration>
          <source>1.8</source>
          <target>1.8</target>
        </configuration>
      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-idea-plugin</artifactId>
        <version>2.2.1</version>
        <configuration>
          <jdkName>1.7</jdkName>
          <jdkLevel>1.7</jdkLevel>
          <linkModules>true</linkModules>
        </configuration>
      </plugin>

      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>build-helper-maven-plugin</artifactId>
        <version>1.9.1</version>
        <executions>
          <execution>
            <id>reserve-network-port</id>
            <phase>pre-integration-test</phase>
            <goals>
              <goal>reserve-network-port</goal>
            </goals>
            <configuration>
              <portNames>
                <portName>webcontainer.default.port</portName>
                <portName>webcontainer.default.ssl.port</portName>
                <portName>webcontainer.default.clientcert.port</portName>
                <portName>webcontainer.default.shutdown.port</portName>
                <portName>derby.server.port</portName>
                <portName>ldap.server.port</portName>
                <portName>harness.log.port</portName>
              </portNames>
            </configuration>
          </execution>
        </executions>
      </plugin>

      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>exec-maven-plugin</artifactId>
        <version>1.6.0</version>
        <executions>
          <execution>
            <id>start-database</id>
            <phase>pre-integration-test</phase>
            <goals>
              <goal>java</goal>
            </goals>
            <configuration>
              <cleanupDaemonThreads>false</cleanupDaemonThreads>
              <killAfter>-1</killAfter>
              <arguments>
                <argument>${derby.server.port}</argument>
              </arguments>
              <classpathScope>compile</classpathScope>
              <mainClass>org.apache.openejb.cts.DerbyRunner</mainClass>
            </configuration>
          </execution>
          <execution>
            <id>start-greenmail</id>
            <phase>pre-integration-test</phase>
            <goals>
              <goal>java</goal>
            </goals>
            <configuration>
              <cleanupDaemonThreads>false</cleanupDaemonThreads>
              <mainClass>org.apache.openejb.cts.GreenmailRunner</mainClass>
            </configuration>
          </execution>
          <execution>
            <id>start-ldap</id>
            <phase>pre-integration-test</phase>
            <goals>
              <goal>java</goal>
            </goals>
            <configuration>
              <cleanupDaemonThreads>false</cleanupDaemonThreads>
              <mainClass>org.apache.openejb.cts.UnboundIdLdapRunner</mainClass>
              <arguments>src/test/ldap/ldap.ldif</arguments>
            </configuration>
          </execution>
        </executions>
      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-dependency-plugin</artifactId>
        <version>3.0.1</version>
        <executions>
          <!-- this gets overridden based on the profile with whatever distribution pulled -->
          <execution>
            <id>unpack</id>
            <phase>pre-integration-test</phase>
            <goals>
              <goal>unpack</goal>
            </goals>
            <configuration>
              <artifactItems>
                <artifactItem>
                  <groupId>${openejb.groupId}</groupId>
                  <artifactId>openejb-standalone</artifactId>
                  <version>${openejb.version}</version>
                  <type>zip</type>
                  <outputDirectory>${project.build.directory}</outputDirectory>
                </artifactItem>
              </artifactItems>
            </configuration>
          </execution>

          <!--
            This basically adds into the lib directory for the client the necessary jars
            Do not add any TomEE, Tomcat jar because they have to come from the lib above.
            Otherwise, they won't be jakartized
            ActiveMQ is a bit special because it's old and still requires Geronimo Spec for JMS 1.1 which is not Jakarta compliant
          -->
          <execution>
            <id>copy-dependencies</id>
            <phase>pre-integration-test</phase>
            <goals>
              <goal>copy-dependencies</goal>
            </goals>
            <configuration>
              <outputDirectory>${project.build.directory}/lib</outputDirectory>
              <overWriteReleases>false</overWriteReleases>
              <overWriteSnapshots>true</overWriteSnapshots>
              <excludeTransitive>true</excludeTransitive>
              <includeArtifactIds>hawtbuf,activemq-client,tsharness,tssv,cts,whitebox,dbprocedures,geronimo-mail,derby,derbynet,derbyclient,webdeployer</includeArtifactIds>
            </configuration>
          </execution>

          <!-- This has extra libraries required to run the TCK -->
          <execution>
            <id>copy-dependencies-tomee-lib</id>
            <phase>pre-integration-test</phase>
            <goals>
              <goal>copy-dependencies</goal>
            </goals>
            <configuration>
              <outputDirectory>${openejb.home}/lib</outputDirectory>
              <overWriteReleases>false</overWriteReleases>
              <overWriteSnapshots>true</overWriteSnapshots>
              <excludeTransitive>true</excludeTransitive>
              <includeArtifactIds>tsharness,tssv,cts,whitebox,dbprocedures,geronimo-mail,openejb-derbynet,derby,derbynet,derbyclient,webdeployer</includeArtifactIds>
            </configuration>
          </execution>
        </executions>
      </plugin>

      <!--
      TomEE embeds a lot of applications in. We should remove all not necessary web
      application for TCK (ie. all but openejb and ROOT
      -->
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-antrun-plugin</artifactId>
        <version>1.8</version>
        <executions>
          <execution>
            <id>copy-tomee-libs-to-tck-javatest</id>
            <phase>pre-integration-test</phase>
            <goals>
              <goal>run</goal>
            </goals>
            <configuration>
              <target>
                <copy todir="${project.build.directory}/lib">
                  <fileset dir="${openejb.home}/lib">

                    <!-- we essentially take everything from openejb-lite dependency tree - probably too much but fine to start -->

                    <include name="javaee-api*.jar"/>

                    <include name="openejb-core*.jar"/>
                    <include name="mbean-annotation-api*.jar"/>
                    <include name="openejb-jpa-integration*.jar"/>
                    <include name="commons-lang3*.jar"/>
                    <include name="openejb-api*.jar"/>
                    <include name="openejb-loader*.jar"/>
                    <include name="openejb-javaagent*.jar"/>
                    <include name="openejb-jee*.jar"/>
                    <include name="openejb-cxf*.jar"/>
                    <include name="jaxb-runtime*.jar"/>
                    <include name="jakarta.xml.bind-api*.jar"/>
                    <include name="jakarta.activation*.jar"/>
                    <include name="txw2*.jar"/>
                    <include name="istack-commons*.jar"/>
                    <include name="stax-ex*.jar"/>
                    <include name="FastInfoset*.jar"/>
                    <include name="openejb-jee-accessors*.jar"/>
                    <include name="sxc-jaxb*.jar"/>
                    <include name="sxc-runtime*.jar"/>
                    <include name="commons-cli*.jar"/>
                    <include name="commons-collections*.jar"/>
                    <include name="activemq-jdbc*.jar"/>
                    <include name="geronimo-connector*.jar"/>
                    <include name="geronimo-j2ee*.jar"/>
                    <include name="geronimo-transaction*.jar"/>
                    <include name="howl*.jar"/>
                    <include name="jackson-databind*.jar"/>
                    <include name="jackson-annotations*.jar"/>
                    <include name="jackson-core*.jar"/>
                    <include name="johnzon*.jar"/>
                    <include name="geronimo-javamail*.jar"/>
                    <include name="xbean-asm*.jar"/>
                    <include name="xbean-finder*.jar"/>
                    <include name="xbean-reflect*.jar"/>
                    <include name="xbean-naming*.jar"/>
                    <include name="xbean-bundleutils*.jar"/>
                    <include name="hsqldb*.jar"/>
                    <include name="commons-dbcp2*.jar"/>
                    <include name="commons-pool2*.jar"/>
                    <include name="swizzle*.jar"/>
                    <include name="commons-logging*.jar"/>
                    <include name="quartz-openejb*.jar"/>
                    <include name="slf4j-api*.jar"/>
                    <include name="openwebbeans-impl*.jar"/>
                    <include name="openwebbeans-spi*.jar"/>
                    <include name="openwebbeans-ejb*.jar"/>
                    <include name="openwebbeans-ee*.jar"/>
                    <include name="openwebbeans-ee-common*.jar"/>
                    <include name="openwebbeans-web*.jar"/>
                    <include name="openwebbeans-el22*.jar"/>
                    <include name="openjpa*.jar"/>
                    <include name="serp*.jar"/>
                    <include name="bval-jsr*.jar"/>

                    <include name="tomcat-websocket*.jar"/>
                    <include name="tomcat-util*.jar"/>
                    <include name="tomcat-juli*.jar"/>
                    <include name="catalina.jar"/>
                    <include name="jaspic-api*.jar"/>
                    <include name="tomcat-api*.jar"/>
                    <include name="websocket-api*.jar"/>
                    <include name="jsp-api*.jar"/>
                    <include name="el-api*.jar"/>
                    <include name="servlet-api*.jar"/>
                    <include name="tomee-security*.jar"/>
                    <include name="tomee-catalina*.jar"/>

                    <include name="geronimo-mail-*.jar"/>

                    <include name="eclipselink*.jar"/>

                    <include name="yoko*.jar"/>

                  </fileset>
                </copy>
                <copy todir="${project.build.directory}/lib">
                  <fileset dir="${openejb.home}/bin">
                    <include name="tomcat-juli.jar"/>
                  </fileset>
                </copy>
              </target>
            </configuration>
          </execution>
          <execution>
            <id>remove-apps-and-copy-libs-from-tck</id>
            <phase>pre-integration-test</phase>
            <goals>
              <goal>run</goal>
            </goals>
            <configuration>
              <target>
                <delete dir="${openejb.home}/webapps/ROOT"/>
                <delete dir="${openejb.home}/webapps/docs"/>
                <delete dir="${openejb.home}/webapps/examples"/>
                <delete dir="${openejb.home}/webapps/ejb-examples"/>
                <delete dir="${openejb.home}/webapps/manager"/>
                <delete dir="${openejb.home}/webapps/host-manager"/>
              </target>
            </configuration>
          </execution>
        </executions>
      </plugin>

      <plugin>
        <groupId>org.codehaus.gmaven</groupId>
        <artifactId>gmaven-plugin</artifactId>
        <version>${version.gmaven-plugin}</version>

        <dependencies>
          <dependency>
            <groupId>org.apache.derby</groupId>
            <artifactId>derby</artifactId>
            <version>${derby.version}</version>
          </dependency>
        </dependencies>

        <executions>
          <execution>
            <id>validate-environment</id>
            <phase>validate</phase>
            <goals>
              <goal>execute</goal>
            </goals>
            <configuration>
              <source>
                new openejb.tck.commands.ValidateCommand(this).execute()
              </source>
            </configuration>
          </execution>

          <execution>
            <id>setup-environment</id>
            <phase>pre-integration-test</phase>
            <goals>
              <goal>execute</goal>
            </goals>
            <configuration>
              <source>
                new openejb.tck.commands.SetupCommand(this).execute()
              </source>
            </configuration>
          </execution>

          <execution>
            <id>javatest</id>
            <phase>integration-test</phase>
            <goals>
              <goal>execute</goal>
            </goals>
            <configuration>
              <classpath>
                <element>
                  <groupId>jline</groupId>
                  <artifactId>jline</artifactId>
                  <version>0.9.94</version>
                </element>

                <!-- Included to access the testsuite reporting classes -->
                <element>
                  <groupId>org.apache.geronimo.cts</groupId>
                  <artifactId>j2eetck-maven-plugin</artifactId>
                  <version>3.0.13022011</version>
                </element>
              </classpath>
              <defaults>
                <logOutput>true</logOutput>
                <logOutputDirectory>${project.build.directory}/logs</logOutputDirectory>
              </defaults>
              <source>
                new openejb.tck.commands.JavaTestCommand(this).execute()
              </source>
            </configuration>
          </execution>
        </executions>
      </plugin>

    </plugins>
  </build>

  <repositories>
    <repository>
      <id>apache-m2-snapshot</id>
      <name>Apache M2 Snapshot Repository</name>
      <url>https://repository.apache.org/snapshots/</url>
      <releases>
        <enabled>false</enabled>
      </releases>
      <snapshots>
        <enabled>true</enabled>
      </snapshots>
    </repository>
    <repository>
      <id>openejb-cts-file</id>
      <name>OpenEJB CTS File Repository</name>
      <url>file://${pom.basedir}/src/test/repo</url>
      <layout>default</layout>
      <snapshots>
        <enabled>false</enabled>
      </snapshots>
      <releases>
        <enabled>true</enabled>
        <checksumPolicy>ignore</checksumPolicy>
      </releases>
    </repository>
  </repositories>

  <pluginRepositories>
    <pluginRepository>
      <id>codehaus-snapshots</id>
      <name>Codehaus Snapshot</name>
      <url>https://nexus.codehaus.org/content/repositories/snapshots/</url>
      <layout>default</layout>
      <snapshots>
        <enabled>true</enabled>
      </snapshots>
      <releases>
        <enabled>false</enabled>
      </releases>
    </pluginRepository>
    <pluginRepository>
      <id>openejb-cts-file</id>
      <name>OpenEJB CTS File Repository</name>
      <url>file://${pom.basedir}/src/test/repo</url>
      <layout>default</layout>
      <snapshots>
        <enabled>false</enabled>
      </snapshots>
      <releases>
        <enabled>true</enabled>
        <checksumPolicy>ignore</checksumPolicy>
      </releases>
    </pluginRepository>
  </pluginRepositories>

</project>
