<?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.9-SNAPSHOT</version>

  <description>
    TomEE TCK Harness
  </description>

  <properties>

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

    <tomcat.version>9.0.56</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.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>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>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="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"/>

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