<?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.
-->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <parent>
    <artifactId>batchee</artifactId>
    <groupId>org.apache.batchee</groupId>
    <version>0.4-incubating-SNAPSHOT</version>
  </parent>

  <artifactId>batchee-jbatch</artifactId>
  <name>BatchEE :: JBatch</name>

  <properties>
    <openjpa.version>2.3.0</openjpa.version>

    <tck.suite>${project.build.directory}/test-classes/testng/jsr352-tck-impl-EE-suite.xml</tck.suite>
  </properties>

  <dependencies>
    <dependency>
      <groupId>org.apache.geronimo.specs</groupId>
      <artifactId>geronimo-jbatch_1.0_spec</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.geronimo.specs</groupId>
      <artifactId>geronimo-atinject_1.0_spec</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.geronimo.specs</groupId>
      <artifactId>geronimo-jcdi_1.0_spec</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.geronimo.specs</groupId>
      <artifactId>geronimo-ejb_3.1_spec</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.geronimo.specs</groupId>
      <artifactId>geronimo-interceptor_1.1_spec</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.geronimo.specs</groupId>
      <artifactId>geronimo-jta_1.1_spec</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.geronimo.specs</groupId>
      <artifactId>geronimo-servlet_3.0_spec</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.geronimo.specs</groupId>
      <artifactId>geronimo-jpa_2.0_spec</artifactId>
      <version>1.1</version>
      <scope>provided</scope>
    </dependency>

    <dependency>
      <groupId>org.apache.xbean</groupId>
      <artifactId>xbean-reflect</artifactId>
      <version>4.5</version>
    </dependency>

    <dependency>
      <groupId>org.testng</groupId>
      <artifactId>testng</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.derby</groupId>
      <artifactId>derby</artifactId>
    </dependency>
    <dependency>
      <groupId>joda-time</groupId>
      <artifactId>joda-time</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.openejb</groupId>
      <artifactId>openejb-core</artifactId>
      <version>4.7.2</version>
      <scope>test</scope>
    </dependency>

    <dependency>
      <groupId>com.ibm.jbatch.tck</groupId>
      <artifactId>com.ibm.jbatch.tck</artifactId>
      <version>1.1-b03</version>
      <scope>test</scope>
      <exclusions>
        <exclusion>
          <groupId>javax.batch</groupId>
          <artifactId>javax.batch-api</artifactId>
        </exclusion>
        <exclusion>
          <groupId>javax.inject</groupId>
          <artifactId>javax.inject</artifactId>
        </exclusion>
        <exclusion>
          <groupId>com.ibm.jbatch</groupId>
          <artifactId>com.ibm.jbatch.spi</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>com.ibm.jbatch.tck</groupId>
      <artifactId>com.ibm.jbatch.tck.spi</artifactId>
      <version>1.1-b03</version>
      <scope>test</scope>
      <exclusions>
        <exclusion>
          <groupId>javax.batch</groupId>
          <artifactId>javax.batch-api</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
  </dependencies>

  <build>
    <resources>
      <resource>
        <directory>src/main/resources</directory>
      </resource>
      <resource>
        <directory>src/main/xsd</directory>
        <targetPath>xsd</targetPath>
      </resource>
    </resources>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-dependency-plugin</artifactId>
        <executions>
          <execution>
            <id>get-tck</id>
            <goals>
              <goal>unpack</goal>
            </goals>
            <phase>generate-test-sources</phase>
          </execution>
        </executions>
        <configuration>
          <artifactItems>
            <artifactItem>
              <groupId>com.ibm.jbatch.tck</groupId>
              <artifactId>com.ibm.jbatch.tck</artifactId>
              <outputDirectory>${project.build.directory}/test-classes</outputDirectory>
              <includes>testng/*</includes>
            </artifactItem>
          </artifactItems>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>2.19</version>
        <executions>
          <execution>
            <id>batchee-tests</id>
            <goals>
              <goal>test</goal>
            </goals>
            <configuration>
              <skip>${maven.test.skip}</skip>
            </configuration>
          </execution>
          <execution>
            <id>tck-in-memory</id>
            <goals>
              <goal>test</goal>
            </goals>
            <configuration>
              <skip>${maven.test.skip}</skip>
              <systemProperties>
                <PersistenceManagerService>org.apache.batchee.container.services.persistence.MemoryPersistenceManagerService</PersistenceManagerService>
              </systemProperties>
              <suiteXmlFiles>
                <suiteXmlFile>${tck.suite}</suiteXmlFile>
              </suiteXmlFiles>
              <properties>
                <property>
                  <name>listener</name>
                  <value>org.apache.batchee.test.tck.lifecycle.ContainerLifecycle</value>
                </property>
              </properties>
            </configuration>
          </execution>
          <execution>
            <id>tck-jdbc</id>
            <goals>
              <goal>test</goal>
            </goals>
            <configuration>
              <skip>${maven.test.skip}</skip>
              <systemProperties>
                <PersistenceManagerService>org.apache.batchee.container.services.persistence.JDBCPersistenceManagerService</PersistenceManagerService>
              </systemProperties>
              <suiteXmlFiles>
                <suiteXmlFile>${tck.suite}</suiteXmlFile>
              </suiteXmlFiles>
              <properties>
                <property>
                  <name>listener</name>
                  <value>org.apache.batchee.test.tck.lifecycle.ContainerLifecycle</value>
                </property>
              </properties>
            </configuration>
          </execution>
          <execution>
            <id>tck-jpa</id>
            <goals>
              <goal>test</goal>
            </goals>
            <configuration>
              <skip>${maven.test.skip}</skip>
              <systemProperties>
                <PersistenceManagerService>org.apache.batchee.container.services.persistence.JPAPersistenceManagerService</PersistenceManagerService>
              </systemProperties>
              <suiteXmlFiles>
                <suiteXmlFile>${tck.suite}</suiteXmlFile>
              </suiteXmlFiles>
              <properties>
                <property>
                  <name>listener</name>
                  <value>org.apache.batchee.test.tck.lifecycle.ContainerLifecycle</value>
                </property>
              </properties>
            </configuration>
          </execution>
        </executions>
        <configuration>
          <skip>true</skip>
          <forkCount>1</forkCount>
          <reuseForks>false</reuseForks>

          <!--
          Global config for TCKs shared with batchee internal tests,
          that's not a big deal since internal tests doesn't use it
          and it avoids to spread it over all our executions
          -->
          <systemProperties>
            <batchee.service-manager.log>true</batchee.service-manager.log>

            <!-- replace properties file -->
            <tck.execution.waiter.timeout>900000</tck.execution.waiter.timeout>
            <ExecutionTests.testInvokeJobWithUserStop.sleep>1000</ExecutionTests.testInvokeJobWithUserStop.sleep>
            <JobOperatorTests.testInvokeJobWithUserStop.sleep>1000</JobOperatorTests.testInvokeJobWithUserStop.sleep>
            <JobOperatorTests.testJobOperatorGetRunningJobExecutions.sleep>1000</JobOperatorTests.testJobOperatorGetRunningJobExecutions.sleep>
            <JobOperatorTests.testJobOperatorGetRunningJobExecutions.app.timeinterval>10000</JobOperatorTests.testJobOperatorGetRunningJobExecutions.app.timeinterval>
            <JobOperatorTests.testJobOperatorGetRunningJobInstancesException.app.timeinterval>10000
            </JobOperatorTests.testJobOperatorGetRunningJobInstancesException.app.timeinterval>
            <ParallelExecutionTests.testStopRunningPartitionedStep.sleep>1900</ParallelExecutionTests.testStopRunningPartitionedStep.sleep>
            <ParallelExecutionTests.testStopRestartRunningPartitionedStep.sleep>1900</ParallelExecutionTests.testStopRestartRunningPartitionedStep.sleep>
            <ParallelExecutionTests.testInvokeJobWithOnePartitionedStepExitStatus.sleep>2000</ParallelExecutionTests.testInvokeJobWithOnePartitionedStepExitStatus.sleep>
            <StopOrFailOnExitStatusWithRestartTests.testInvokeJobWithUserStop.sleep>500</StopOrFailOnExitStatusWithRestartTests.testInvokeJobWithUserStop.sleep>
            <TransactionTests.testGlobalTranNoExceptions.sleep>0</TransactionTests.testGlobalTranNoExceptions.sleep>
            <TransactionTests.testGlobalTranForcedExceptionWithRollback.sleep>0</TransactionTests.testGlobalTranForcedExceptionWithRollback.sleep>
            <TransactionTests.testGlobalTranForcedExceptionCheckpointRestart.sleep>0</TransactionTests.testGlobalTranForcedExceptionCheckpointRestart.sleep>
            <TransactionTests.testGlobalTranNoDelayLongTimeout.sleep>0</TransactionTests.testGlobalTranNoDelayLongTimeout.sleep>
            <TransactionTests.testGlobalTranLongDelayShortTimeoutThenNoDelayShortTimeout.sleep.1>10000
            </TransactionTests.testGlobalTranLongDelayShortTimeoutThenNoDelayShortTimeout.sleep.1>
            <TransactionTests.testGlobalTranLongDelayShortTimeoutThenNoDelayShortTimeout.sleep.2>0
            </TransactionTests.testGlobalTranLongDelayShortTimeoutThenNoDelayShortTimeout.sleep.2>
            <TransactionTests.testGlobalTranLongDelayMixOfLongTimeoutStepsAndShortTimeoutSteps.sleep>10000
            </TransactionTests.testGlobalTranLongDelayMixOfLongTimeoutStepsAndShortTimeoutSteps.sleep>
            <TransactionTests.testGlobalTranLongDelayMixOfLongTimeoutStepsAndShortTimeoutStepsCustomCheckpointAlgorithm.sleep>10000
            </TransactionTests.testGlobalTranLongDelayMixOfLongTimeoutStepsAndShortTimeoutStepsCustomCheckpointAlgorithm.sleep>
            <TransactionTests.testGlobalTranForcedTimeoutCheckpointRestart.sleep.1>10000</TransactionTests.testGlobalTranForcedTimeoutCheckpointRestart.sleep.1>
            <TransactionTests.testGlobalTranForcedTimeoutCheckpointRestart.sleep.2>0</TransactionTests.testGlobalTranForcedTimeoutCheckpointRestart.sleep.2>
            <ChunkTests.testChunkTimeBased10Seconds.sleep>500</ChunkTests.testChunkTimeBased10Seconds.sleep>
            <ChunkTests.testChunkRestartTimeBasedCheckpoint.sleep>500</ChunkTests.testChunkRestartTimeBasedCheckpoint.sleep>
            <ChunkTests.testChunkTimeBasedTimeLimit0.sleep>500</ChunkTests.testChunkTimeBasedTimeLimit0.sleep>
            <ChunkTests.testChunkRestartTimeBasedDefaultCheckpoint.sleep>500</ChunkTests.testChunkRestartTimeBasedDefaultCheckpoint.sleep>
          </systemProperties>
        </configuration>
      </plugin>

      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>templating-maven-plugin</artifactId>
        <version>1.0.0</version>
        <executions>
          <execution>
            <id>filter-src</id>
            <goals>
              <goal>filter-sources</goal>
            </goals>
          </execution>
        </executions>
      </plugin>

      <plugin>
        <!--
         * We use the openjpa-maven-plugin just for generating the
         * CREATE TABLE statements for various databases.
         * Those will later be zipped and added as attached artifact.
         -->
        <groupId>org.apache.openjpa</groupId>
        <artifactId>openjpa-maven-plugin</artifactId>
        <version>${openjpa.version}</version>

        <configuration>
          <includes>org/apache/batchee/container/services/persistence/jpa/domain/*.class</includes>
          <addDefaultConstructor>true</addDefaultConstructor>
          <enforcePropertyRestrictions>true</enforcePropertyRestrictions>
          <persistenceXmlFile>${project.basedir}/src/test/resources/META-INF/persistence-createdb.xml</persistenceXmlFile>
          <sqlAction>build</sqlAction>
          <toolProperties>
            <MappingDefaults>ForeignKeyDeleteAction=restrict,JoinForeignKeyDeleteAction=restrict</MappingDefaults>
          </toolProperties>
        </configuration>

        <executions>
          <execution>
            <id>oracle</id>
            <goals>
              <goal>sql</goal>
            </goals>
            <phase>process-classes</phase>
            <configuration>
              <sqlFile>${project.build.directory}/database-oracle.sql</sqlFile>
              <toolProperties>
                <MappingDefaults>ForeignKeyDeleteAction=restrict,JoinForeignKeyDeleteAction=restrict</MappingDefaults>
                <DBDictionary>org.apache.openjpa.jdbc.sql.OracleDictionary</DBDictionary>
              </toolProperties>
            </configuration>
          </execution>
          <execution>
            <id>mysql</id>
            <goals>
              <goal>sql</goal>
            </goals>
            <phase>process-classes</phase>
            <configuration>
              <sqlFile>${project.build.directory}/database-myslq.sql</sqlFile>
              <toolProperties>
                <MappingDefaults>ForeignKeyDeleteAction=restrict,JoinForeignKeyDeleteAction=restrict</MappingDefaults>
                <DBDictionary>org.apache.openjpa.jdbc.sql.MySQLDictionary</DBDictionary>
              </toolProperties>
            </configuration>
          </execution>
          <execution>
            <id>h2</id>
            <goals>
              <goal>sql</goal>
            </goals>
            <phase>process-classes</phase>
            <configuration>
              <sqlFile>${project.build.directory}/database-h2.sql</sqlFile>
              <toolProperties>
                <MappingDefaults>ForeignKeyDeleteAction=restrict,JoinForeignKeyDeleteAction=restrict</MappingDefaults>
                <DBDictionary>org.apache.openjpa.jdbc.sql.H2Dictionary</DBDictionary>
              </toolProperties>
            </configuration>
          </execution>
          <execution>
            <id>DB2</id>
            <goals>
              <goal>sql</goal>
            </goals>
            <phase>process-classes</phase>
            <configuration>
              <sqlFile>${project.build.directory}/database-db2.sql</sqlFile>
              <toolProperties>
                <MappingDefaults>ForeignKeyDeleteAction=restrict,JoinForeignKeyDeleteAction=restrict</MappingDefaults>
                <DBDictionary>org.apache.openjpa.jdbc.sql.DB2Dictionary</DBDictionary>
              </toolProperties>
            </configuration>
          </execution>
          <execution>
            <id>hsqldb</id>
            <goals>
              <goal>sql</goal>
            </goals>
            <phase>process-classes</phase>
            <configuration>
              <sqlFile>${project.build.directory}/database-hsqldb.sql</sqlFile>
              <toolProperties>
                <MappingDefaults>ForeignKeyDeleteAction=restrict,JoinForeignKeyDeleteAction=restrict</MappingDefaults>
                <DBDictionary>org.apache.openjpa.jdbc.sql.HSQLDictionary</DBDictionary>
              </toolProperties>
            </configuration>
          </execution>
          <execution>
            <id>derby</id>
            <goals>
              <goal>sql</goal>
            </goals>
            <phase>process-classes</phase>
            <configuration>
              <sqlFile>${project.build.directory}/database-derby.sql</sqlFile>
              <toolProperties>
                <MappingDefaults>ForeignKeyDeleteAction=restrict,JoinForeignKeyDeleteAction=restrict</MappingDefaults>
                <DBDictionary>org.apache.openjpa.jdbc.sql.DerbyDictionary</DBDictionary>
              </toolProperties>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-assembly-plugin</artifactId>
        <version>2.4</version>
        <configuration>
          <tarLongFileMode>gnu</tarLongFileMode>
          <descriptors>
            <descriptor>src/main/assembly/dbscripts-assembly.xml</descriptor>
          </descriptors>
        </configuration>
        <executions>
          <execution>
            <phase>package</phase>
            <goals>
              <goal>single</goal>
            </goals>
          </execution>
        </executions>
      </plugin>

    </plugins>
  </build>

</project>
