<?xml version="1.0" encoding="UTF-8"?>
<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.camunda.bpm</groupId>
    <artifactId>camunda-parent</artifactId>
    <relativePath>../parent</relativePath>
    <version>7.9.0</version>
  </parent>

  <groupId>org.camunda.bpm</groupId>
  <artifactId>camunda-database-settings</artifactId>
  <packaging>pom</packaging>
  <name>camunda BPM - database settings</name>
  <description>Provides general dependencies and profiles for database testing</description>

  <properties>

    <!-- database driver versions -->
    <version.h2>1.4.190</version.h2>
    <version.oracle-12>12.1.0.2</version.oracle-12>
    <version.oracle-11>11.2.0.4</version.oracle-11>
    <version.oracle-10>10.2.0.5</version.oracle-10>
    <version.oracle>${version.oracle-11}</version.oracle>
    <version.mariadb>1.1.8</version.mariadb>
    <version.mariadb.galera>1.6.3</version.mariadb.galera>
    <version.mysql>5.1.21</version.mysql>
    <version.sqlserver.oss>1.3.1</version.sqlserver.oss>
    <version.sqlserver>4.0</version.sqlserver>
    <version.db2-11.1>11.1.1.1</version.db2-11.1>
    <version.db2-10.5>10.5.0.5</version.db2-10.5>
    <version.db2-10.1>10.1.0.4</version.db2-10.1>
    <version.db2-9.7>9.7</version.db2-9.7>
    <version.db2>${version.db2-9.7}</version.db2>
    <version.postgresql>9.3-1102-jdbc4</version.postgresql>

    <!-- needed for sql script and backward compatibility checks -->
    <camunda.version.old>7.8.0</camunda.version.old>
  </properties>

  <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>com.h2database</groupId>
        <artifactId>h2</artifactId>
        <version>${version.h2}</version>
      </dependency>
      <dependency>
        <groupId>com.oracle.jdbc</groupId>
        <artifactId>ojdbc6</artifactId>
        <version>${version.oracle}</version>
      </dependency>
      <dependency>
        <groupId>com.oracle.jdbc</groupId>
        <artifactId>ojdbc14</artifactId>
        <version>${version.oracle-10}</version>
      </dependency>
      <dependency>
        <groupId>org.mariadb.jdbc</groupId>
        <artifactId>mariadb-java-client</artifactId>
        <version>${version.mariadb}</version>
      </dependency>
      <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>${version.mysql}</version>
      </dependency>
      <dependency>
        <groupId>net.sourceforge.jtds</groupId>
        <artifactId>jtds</artifactId>
        <version>${version.sqlserver.oss}</version>
      </dependency>
      <dependency>
        <groupId>com.microsoft.sqlserver</groupId>
        <artifactId>sqljdbc4</artifactId>
        <version>${version.sqlserver}</version>
      </dependency>
      <dependency>
        <groupId>com.ibm.db2.jcc</groupId>
        <artifactId>db2jcc4</artifactId>
        <version>${version.db2}</version>
      </dependency>
      <dependency>
        <groupId>org.postgresql</groupId>
        <artifactId>postgresql</artifactId>
        <version>${version.postgresql}</version>
      </dependency>
    </dependencies>
  </dependencyManagement>

  <build>
    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>sql-maven-plugin</artifactId>
          <dependencies>
            <dependency>
              <groupId>org.mariadb.jdbc</groupId>
              <artifactId>mariadb-java-client</artifactId>
              <version>${version.mariadb}</version>
            </dependency>
            <dependency>
              <groupId>mysql</groupId>
              <artifactId>mysql-connector-java</artifactId>
              <version>${version.mysql}</version>
            </dependency>
            <dependency>
              <groupId>com.oracle.jdbc</groupId>
              <artifactId>ojdbc6</artifactId>
              <version>${version.oracle}</version>
            </dependency>
            <dependency>
              <groupId>com.oracle.jdbc</groupId>
              <artifactId>ojdbc14</artifactId>
              <version>${version.oracle-10}</version>
            </dependency>
            <dependency>
              <groupId>com.ibm.db2.jcc</groupId>
              <artifactId>db2jcc4</artifactId>
              <version>${version.db2}</version>
            </dependency>
            <dependency>
              <groupId>com.microsoft.sqlserver</groupId>
              <artifactId>sqljdbc4</artifactId>
              <version>${version.sqlserver}</version>
            </dependency>
            <dependency>
              <groupId>org.postgresql</groupId>
              <artifactId>postgresql</artifactId>
              <version>${version.postgresql}</version>
            </dependency>
            <dependency>
              <groupId>com.h2database</groupId>
              <artifactId>h2</artifactId>
              <version>${version.h2}</version>
            </dependency>
          </dependencies>
          <configuration>
            <driver>${database.driver}</driver>
            <url>${database.url}</url>
            <username>${database.username}</username>
            <password>${database.password}</password>
          </configuration>
        </plugin>
      </plugins>
    </pluginManagement>
  </build>

  <profiles>
    <profile>
      <id>db2</id>
      <properties>
        <database.type>db2</database.type>
        <database.driver>com.ibm.db2.jcc.DB2Driver</database.driver>
        <database.datasource.class>com.ibm.db2.jcc.DB2SimpleDataSource</database.datasource.class>
      </properties>

      <dependencies>
        <dependency>
          <groupId>com.ibm.db2.jcc</groupId>
          <artifactId>db2jcc4</artifactId>
          <scope>test</scope>
        </dependency>
      </dependencies>
    </profile>
    <profile>
      <id>db2-111</id>
      <properties>
        <version.db2>${version.db2-11.1}</version.db2>
      </properties>
    </profile>
    <profile>
      <id>db2-105</id>
      <properties>
        <version.db2>${version.db2-10.5}</version.db2>
      </properties>
    </profile>
    <profile>
      <id>db2-101</id>
      <properties>
        <version.db2>${version.db2-10.1}</version.db2>
      </properties>
    </profile>
    <profile>
      <id>db2-97</id>
      <properties>
        <version.db2>${version.db2-9.7}</version.db2>
      </properties>
    </profile>

    <profile>
      <id>h2-in-memory</id>
      <activation>
        <activeByDefault>true</activeByDefault>
      </activation>
      <properties>
        <database.url>jdbc:h2:mem:camunda;DB_CLOSE_DELAY=1000;MVCC=true;LOCK_TIMEOUT=10000;MV_STORE=false</database.url>
        <database.driver>org.h2.Driver</database.driver>
        <database.username>sa</database.username>
        <database.password />
        <hibernate.dialect>org.hibernate.dialect.H2Dialect</hibernate.dialect>
      </properties>
      <dependencies>
        <dependency>
          <groupId>com.h2database</groupId>
          <artifactId>h2</artifactId>
          <scope>test</scope>
        </dependency>
      </dependencies>
    </profile>

    <profile>
      <id>h2</id>
      <properties>
        <database.host>${project.parent.basedir}/target/h2/</database.host>
        <database.name>process-engine</database.name>
        <database.username>sa</database.username>
        <database.password>sa</database.password>
        <database.port>18080</database.port>
        <!-- This url has to consistent for the subprojects: {server}-runtime and webapp-integration-tests -->
        <database.url>jdbc:h2:${database.host}${database.name};MVCC=TRUE;AUTO_SERVER=TRUE;AUTO_SERVER_PORT=${database.port};LOCK_TIMEOUT=10000;DB_CLOSE_ON_EXIT=FALSE;MV_STORE=false</database.url>

        <database.type>h2</database.type>
        <database.driver>org.h2.Driver</database.driver>
        <database.datasource.class>org.h2.jdbcx.JdbcDataSource</database.datasource.class>
        <jboss.datasource.filename>h2-ds.xml</jboss.datasource.filename>
        <hibernate.dialect>org.hibernate.dialect.H2Dialect</hibernate.dialect>
      </properties>
      <dependencies>
        <dependency>
          <groupId>com.h2database</groupId>
          <artifactId>h2</artifactId>
          <scope>test</scope>
        </dependency>
      </dependencies>
    </profile>

    <profile>
      <id>mariadb</id>
      <properties>
        <database.type>mariadb</database.type>
        <database.driver>org.mariadb.jdbc.Driver</database.driver>
        <database.datasource.class>org.mariadb.jdbc.MySQLDataSource</database.datasource.class>
      </properties>

      <dependencies>
        <dependency>
          <groupId>org.mariadb.jdbc</groupId>
          <artifactId>mariadb-java-client</artifactId>
          <scope>test</scope>
        </dependency>
      </dependencies>
    </profile>
    <profile>
      <id>mariadb-galera</id>
      <properties>
        <version.mariadb>${version.mariadb.galera}</version.mariadb>
      </properties>
    </profile>

    <profile>
      <id>mysql</id>
      <properties>
        <database.type>mysql</database.type>
        <database.driver>com.mysql.jdbc.Driver</database.driver>
        <database.datasource.class>com.mysql.jdbc.jdbc2.optional.MysqlDataSource</database.datasource.class>
      </properties>

      <dependencies>
        <dependency>
          <groupId>mysql</groupId>
          <artifactId>mysql-connector-java</artifactId>
          <scope>test</scope>
        </dependency>
      </dependencies>
    </profile>

    <profile>
      <id>oracle</id>
      <properties>
        <database.type>oracle</database.type>
        <database.driver>oracle.jdbc.OracleDriver</database.driver>
        <database.datasource.class>oracle.jdbc.pool.OracleDataSource</database.datasource.class>
      </properties>
    </profile>
    <profile>
      <id>oracle-10</id>
      <dependencies>
        <dependency>
          <groupId>com.oracle.jdbc</groupId>
          <artifactId>ojdbc14</artifactId>
          <scope>test</scope>
        </dependency>
      </dependencies>
    </profile>
    <profile>
      <id>oracle-11</id>
      <properties>
        <version.oracle>${version.oracle-11}</version.oracle>
      </properties>
      <dependencies>
        <dependency>
          <groupId>com.oracle.jdbc</groupId>
          <artifactId>ojdbc6</artifactId>
          <scope>test</scope>
        </dependency>
      </dependencies>
    </profile>
    <profile>
      <id>oracle-12</id>
      <properties>
        <version.oracle>${version.oracle-12}</version.oracle>
      </properties>
      <dependencies>
        <dependency>
          <groupId>com.oracle.jdbc</groupId>
          <artifactId>ojdbc6</artifactId>
          <scope>test</scope>
        </dependency>
      </dependencies>
    </profile>

    <profile>
      <id>postgresql</id>
      <properties>
        <database.type>postgres</database.type>
        <database.driver>org.postgresql.Driver</database.driver>
        <database.datasource.class>org.postgresql.ds.PGSimpleDataSource</database.datasource.class>
        <jboss.datasource.filename>postgresql-ds.xml</jboss.datasource.filename>
        <hibernate.dialect>org.hibernate.dialect.PostgreSQLDialect</hibernate.dialect>
      </properties>

      <dependencies>
        <dependency>
          <groupId>org.postgresql</groupId>
          <artifactId>postgresql</artifactId>
          <scope>test</scope>
        </dependency>
      </dependencies>
    </profile>
    <profile>
      <id>postgresql-xa</id>
      <properties>
        <database.datasource.class>org.postgresql.xa.PGXADataSource</database.datasource.class>
        <jboss.datasource.filename>postgresql-xa-ds.xml</jboss.datasource.filename>
      </properties>
    </profile>

    <profile>
      <id>sqlserver</id>
      <properties>
        <database.type>mssql</database.type>
        <database.driver>com.microsoft.sqlserver.jdbc.SQLServerDriver</database.driver>
        <database.datasource.class>com.microsoft.sqlserver.jdbc.SQLServerDataSource</database.datasource.class>
      </properties>

      <dependencies>
        <dependency>
          <groupId>com.microsoft.sqlserver</groupId>
          <artifactId>sqljdbc4</artifactId>
          <scope>test</scope>
        </dependency>
      </dependencies>
    </profile>
  </profiles>

</project>
