<?xml version="1.0" encoding="UTF-8"?>
<!--
   Copyright The Narayana Authors
   SPDX short identifier: Apache-2.0
 -->
<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>
  <parent>
    <groupId>org.jboss.narayana.arjunacore</groupId>
    <artifactId>arjunacore-all</artifactId>
    <version>7.3.3.Final</version>
    <relativePath>../pom.xml</relativePath>
  </parent>
  <artifactId>arjuna</artifactId>
  <packaging>jar</packaging>
  <name>Narayana: ArjunaCore arjuna</name>
  <description>Narayana: ArjunaCore Arjuna</description>

  <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>org.jboss.narayana</groupId>
        <artifactId>test-dependency-management</artifactId>
        <version>${project.version}</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>
    </dependencies>
  </dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>org.jboss.narayana</groupId>
      <artifactId>common</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.activemq</groupId>
      <artifactId>artemis-journal</artifactId>
      <scope>provided</scope>
      <exclusions>
        <exclusion>
          <groupId>io.netty</groupId>
          <artifactId>netty</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>io.mashona</groupId>
      <artifactId>mashona-logwriting</artifactId>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>org.jboss.logging</groupId>
      <artifactId>jboss-logging</artifactId>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>org.jboss.logging</groupId>
      <artifactId>jboss-logging-annotations</artifactId>
      <scope>provided</scope>
    </dependency>
    <!--JUnit Jupiter Engine to depend on the JUnit5 engine and JUnit 5 API -->
    <dependency>
      <groupId>org.junit.jupiter</groupId>
      <artifactId>junit-jupiter-engine</artifactId>
      <scope>test</scope>
    </dependency>
    <!--JUnit Jupiter Engine to depend on the JUnit4 engine and JUnit 4 API  -->
    <dependency>
      <groupId>org.junit.vintage</groupId>
      <artifactId>junit-vintage-engine</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.jboss.byteman</groupId>
      <artifactId>byteman</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.jboss.byteman</groupId>
      <artifactId>byteman-submit</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.jboss.byteman</groupId>
      <artifactId>byteman-install</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.jboss.byteman</groupId>
      <artifactId>byteman-bmunit</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.jboss.byteman</groupId>
      <artifactId>byteman-bmunit5</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>com.h2database</groupId>
      <artifactId>h2</artifactId>
      <scope>test</scope>
    </dependency>
  </dependencies>

  <build>
    <resources>
      <resource>
        <directory>etc</directory>
      </resource>
    </resources>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
          <excludes>
            <exclude>com/arjuna/ats/arjuna/tools/stats/TxPerfGraph.java</exclude>
            <exclude>com/arjuna/ats/arjuna/tools/stats/TxPerfPlugin.java</exclude>
          </excludes>
        </configuration>
      </plugin>
    </plugins>
    <sourceDirectory>classes</sourceDirectory>
    <testSourceDirectory>tests/classes</testSourceDirectory>
  </build>

  <profiles>
    <profile>
      <id>linux-windows</id>
      <activation>
        <file>
          <exists>${java.home}/../lib/tools.jar</exists>
        </file>
      </activation>
      <dependencies>
        <dependency>
          <groupId>sun.jdk</groupId>
          <artifactId>jconsole</artifactId>
          <version>${version.sun.jdk}</version>
          <scope>system</scope>
          <systemPath>${java.home}/../lib/jconsole.jar</systemPath>
        </dependency>
      </dependencies>
    </profile>
    <profile>
      <id>os-x</id>
      <activation>
        <file>
          <exists>${java.home}/bundle/Classes/classes.jar</exists>
        </file>
      </activation>
      <dependencies>
        <dependency>
          <groupId>sun.jdk</groupId>
          <artifactId>jconsole</artifactId>
          <version>${version.sun.jdk}</version>
          <scope>system</scope>
          <systemPath>${java.home}/bundle/Classes/jconsole.jar</systemPath>
        </dependency>
      </dependencies>
    </profile>
    <!--
    <profile>
      <id>sybase-jdbc-store</id>
      <dependencies>
        <dependency>
          <groupId>com.sybase.jConnect</groupId>
          <artifactId>jconn3</artifactId>
          <version>${version.com.sybase.jConnect}</version>
          <scope>system</scope>
          <systemPath>${orson.jar.location}/../qa/dbdrivers/jConnect-6_0/classes/jconn3.jar</systemPath>
        </dependency>
      </dependencies>
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <configuration>
              <systemProperties>
                <property>
                  <name>com.arjuna.ats.arjuna.common.propertiesFile</name>
                  <value>dbjbossts-properties.xml</value>
                </property>
              </systemProperties>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>
    -->
    <profile>
      <id>oracle-jdbc-store</id>
      <dependencies>
        <dependency>
          <groupId>com.oracle.database.jdbc</groupId>
          <artifactId>ojdbc10</artifactId>
          <scope>test</scope>
        </dependency>
      </dependencies>
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <configuration>
              <systemProperties>
                <property>
                  <name>com.arjuna.ats.arjuna.common.propertiesFile</name>
                  <value>dbjbossts-properties.xml</value>
                </property>
              </systemProperties>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>db2-jdbc-store</id>
      <dependencies>
        <dependency>
          <groupId>com.ibm.db2.jcc</groupId>
          <artifactId>db2jcc</artifactId>
          <scope>test</scope>
        </dependency>
      </dependencies>
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <configuration>
              <systemProperties>
                <property>
                  <name>com.arjuna.ats.arjuna.common.propertiesFile</name>
                  <value>dbjbossts-properties.xml</value>
                </property>
              </systemProperties>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>postgres-jdbc-store</id>
      <dependencies>
        <dependency>
          <groupId>org.postgresql</groupId>
          <artifactId>postgresql</artifactId>
          <scope>test</scope>
        </dependency>
      </dependencies>
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <configuration>
              <systemProperties>
                <property>
                  <name>com.arjuna.ats.arjuna.common.propertiesFile</name>
                  <value>dbjbossts-properties.xml</value>
                </property>
              </systemProperties>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>mysql-jdbc-store</id>
      <dependencies>
        <dependency>
          <groupId>com.mysql</groupId>
          <artifactId>mysql-connector-j</artifactId>
          <scope>test</scope>
        </dependency>
      </dependencies>
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <configuration>
              <systemProperties>
                <property>
                  <name>com.arjuna.ats.arjuna.common.propertiesFile</name>
                  <value>dbjbossts-properties.xml</value>
                </property>
              </systemProperties>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>mariadb-jdbc-store</id>
      <dependencies>
        <dependency>
          <groupId>org.mariadb.jdbc</groupId>
          <artifactId>mariadb-java-client</artifactId>
          <scope>test</scope>
        </dependency>
      </dependencies>
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <configuration>
              <systemProperties>
                <property>
                  <name>com.arjuna.ats.arjuna.common.propertiesFile</name>
                  <value>dbjbossts-properties.xml</value>
                </property>
              </systemProperties>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>

    <!--
    <profile>
      <id>mssql-jdbc-store</id>
      <dependencies>
        <dependency>
          <groupId>com.microsoft.sqlserver</groupId>
          <artifactId>sqljdbc4</artifactId>
          <version>${version.com.microsoft.sqlserver}</version>
          <systemPath>${orson.jar.location}/../qa/dbdrivers/mssql2005_sqljdbc_2.0/enu/sqljdbc4.jar</systemPath>
          <scope>system</scope>
        </dependency>
      </dependencies>
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <configuration>
              <systemProperties>
                <property>
                  <name>com.arjuna.ats.arjuna.common.propertiesFile</name>
                  <value>dbjbossts-properties.xml</value>
                </property>
              </systemProperties>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>
    -->
    <profile>
      <id>community</id>
      <dependencies>
        <dependency>
          <groupId>orson</groupId>
          <artifactId>orson</artifactId>
          <version>${version.orson}</version>
          <scope>system</scope>
          <systemPath>${orson.jar.location}/orson-0.5.0.jar</systemPath>
        </dependency>
        <dependency>
          <groupId>org.jfree</groupId>
          <artifactId>jfreechart</artifactId>
        </dependency>
      </dependencies>
    </profile>
    <profile>
      <id>codeCoverage</id>
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <configuration>
              <excludes>
                <!-- stress tests are not unit tests -->
                <exclude>**/LogStressTest2.java</exclude>
              </excludes>
              <systemProperties>
                <property>
                  <name>com.arjuna.ats.arjuna.common.propertiesFile</name>
                  <value>h2jbossts-properties.xml</value>
                </property>
              </systemProperties>

            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>testing</id>
      <activation>
        <property>
          <name>!release</name>
        </property>
      </activation>
      <dependencies>
        <dependency>
          <groupId>org.jboss.narayana</groupId>
          <artifactId>common</artifactId>
          <classifier>tests</classifier>
          <scope>test</scope>
        </dependency>
        <dependency>
          <groupId>org.jboss.narayana</groupId>
          <artifactId>test-utils</artifactId>
          <scope>test</scope>
        </dependency>
      </dependencies>
      <build>
        <testResources>
          <testResource>
            <directory>src/test/resources</directory>
          </testResource>
          <testResource>
            <directory>tests/byteman-scripts</directory>
          </testResource>
        </testResources>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <configuration>
              <useManifestOnlyJar>false</useManifestOnlyJar>
              <excludes>
                <!-- exclude tests that load the byteman agent (BMUnitRunner) -->
                <exclude>**/RecoveryManagerStartStopTest.java</exclude>
                <exclude>**/LogStoreTest2.java</exclude>
                <exclude>**/LogStoreRecoveryTest.java</exclude>
                <exclude>**/ReaperMonitorTest.java</exclude>
                <exclude>**/ReaperTestCase3.java</exclude>
                <exclude>**/ReaperTestCase2.java</exclude>
                <exclude>**/ReaperTestCase.java</exclude>
                <!-- not sure why these are excluded -->
                <exclude>**/resources/**</exclude>
                <exclude>**/DummyCheckedAction.java</exclude>
                <exclude>**/MyAccess.java</exclude>
                <exclude>**/Worker.java</exclude>
                <exclude>**/BasicCrashRecord.java</exclude>
                <exclude>**/DummyRecoveryModule.java</exclude>
                <exclude>**/CrashAbstractRecord*.java</exclude>
                <exclude>**/RecoveryTransaction.java</exclude>
                <exclude>**/UserDefFirst0Setup.java</exclude>
                <exclude>**/CachedTest.java</exclude>
                <!-- LogStressTest2 takes too long - needs moving to /qa -->
                <exclude>**/LogStressTest2.java</exclude>
                <!-- auxilairy code used by reaper test classes -->
                <exclude>**/reaper/ReaperTestCaseControl.java</exclude>
              </excludes>
            </configuration>
          </plugin>
          <plugin>
            <groupId>org.jboss.byteman</groupId>
            <artifactId>byteman-rulecheck-maven-plugin</artifactId>
            <executions>
              <execution>
                <id>rulecheck-test</id>
                <goals>
                  <goal>rulecheck</goal>
                </goals>
                <configuration>
                  <includes>
                    <include>**/*.btm</include>
                  </includes>
                  <verbose>true</verbose>
                </configuration>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
  </profiles>
</project>
