<?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.openejb.cts</groupId>
  <artifactId>openejb-tck</artifactId>
  <name>OpenEJB TCK Harness</name>

  <version>8.0.7-SNAPSHOT</version>

  <description>
    OpenEJB TCK Harness
  </description>

  <properties>

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

    <tomcat.version>9.0.41</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.0</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.5.10</version>
    </dependency>
    <dependency>
      <groupId>com.unboundid</groupId>
      <artifactId>unboundid-ldapsdk</artifactId>
      <version>5.1.0</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>${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>

  </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>1.5</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>1.5</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="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="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"/>

                  </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>http://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>
