<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>
    <artifactId>activejdbc</artifactId>
    <packaging>jar</packaging>
    <version>3.4-j11</version>
    <name>JavaLite - ActiveJDBC ORM Framework</name>

    <parent>
        <groupId>org.javalite</groupId>
        <artifactId>javalite</artifactId>
        <version>3.4-j11</version>
    </parent>

    <!-- Default to H2 if no profile provided -->
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <jdbc.driver>org.h2.Driver</jdbc.driver>
        <jdbc.url>jdbc:h2:mem:test;DB_CLOSE_DELAY=-1</jdbc.url>
        <jdbc.user>sa</jdbc.user>
        <jdbc.password />
        <db>h2</db>
    </properties>

    <profiles>
        <profile>
            <id>release</id>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-gpg-plugin</artifactId>
                    </plugin>
                </plugins>
            </build>
        </profile>
        <profile>
            <id>h2</id>
            <!--
                Configure jdbc.driver, jdbc.url, jdbc.user, jdbc.password
                and db properties in your ~/.m2/settings.xml
            -->
            <dependencies>
                <dependency>
                    <groupId>com.h2database</groupId>
                    <artifactId>h2</artifactId>
                </dependency>
            </dependencies>
        </profile>
        <profile>
            <id>mssql</id>
            <!--
                Configure jdbc.driver, jdbc.url, jdbc.user, jdbc.password
                and db properties in your ~/.m2/settings.xml
            -->
            <dependencies>
                <!-- https://mvnrepository.com/artifact/com.microsoft.sqlserver/mssql-jdbc -->
                <dependency>
                    <groupId>com.microsoft.sqlserver</groupId>
                    <artifactId>mssql-jdbc</artifactId>
                    <version>6.4.0.jre8</version>
                    <scope>test</scope>
                </dependency>
            </dependencies>
        </profile>
        <profile>
            <id>mysql</id>
            <!--
                Configure jdbc.driver, jdbc.url, jdbc.user, jdbc.password
                and db properties in your ~/.m2/settings.xml
            -->
            <dependencies>
                <dependency>
                    <groupId>mysql</groupId>
                    <artifactId>mysql-connector-java</artifactId>
                </dependency>
            </dependencies>
        </profile>
        <profile>
            <id>oracle</id>
            <!--
                Configure jdbc.driver, jdbc.url, jdbc.user, jdbc.password
                and db properties in your ~/.m2/settings.xml
            -->
            <dependencies>
                <!-- https://mvnrepository.com/artifact/com.oracle.database.jdbc/ojdbc10 -->
                <dependency>
                    <groupId>com.oracle.database.jdbc</groupId>
                    <artifactId>ojdbc10</artifactId>
                    <version>19.3.0.0</version>
                    <scope>test</scope>
                </dependency>
            </dependencies>
        </profile>
        <profile>
            <id>postgresql</id>
            <!--
                Configure jdbc.driver, jdbc.url, jdbc.user, jdbc.password
                and db properties in your ~/.m2/settings.xml
            -->
            <dependencies>
                <dependency>
                    <groupId>org.postgresql</groupId>
                    <artifactId>postgresql</artifactId>
                    <scope>test</scope>
                </dependency>
            </dependencies>
        </profile>
        <profile>
            <id>sqlite</id>
            <!--
                Configure jdbc.driver, jdbc.url, jdbc.user, jdbc.password
                and db properties in your ~/.m2/settings.xml
            -->
            <dependencies>
                <dependency>
                    <groupId>org.xerial</groupId>
                    <artifactId>sqlite-jdbc</artifactId>
                    <version>3.8.7</version>
                </dependency>
            </dependencies>
        </profile>
        <profile>
            <id>tds</id>
            <!--
                Configure jdbc.driver, jdbc.url, jdbc.user, jdbc.password
                and db properties in your ~/.m2/settings.xml
            -->
            <dependencies>
                <dependency>
                    <groupId>net.sourceforge.jtds</groupId>
                    <artifactId>jtds</artifactId>
                    <version>1.3.1</version>
                    <scope>test</scope>
                </dependency>
            </dependencies>
        </profile>
		<profile>
			<id>db2</id>
			<!--
                Configure jdbc.driver, jdbc.url (with :progressiveStreaming=2;), jdbc.user, jdbc.password
                and db properties in your ~/.m2/settings.xml
                E.g.
                <properties>
                    <jdbc.driver>com.ibm.db2.jcc.DB2Driver</jdbc.driver>
                    <jdbc.url>jdbc:db2://192.168.99.100:50000/db2:progressiveStreaming=2;</jdbc.url>
                    <jdbc.user>db2inst1</jdbc.user>
                    <jdbc.password>db2inst1-pwd</jdbc.password>
                    <db>db2</db>
                </properties>
			-->
			<repositories>
				<repository>
					<id>alfresco</id>
					<name>Alfresco Public </name>
					<url>https://artifacts.alfresco.com/nexus/content/repositories/public/</url>
				</repository>
			</repositories>
			<dependencies>
				<!-- https://mvnrepository.com/artifact/com.ibm.db2.jcc/db2jcc4 -->
				<dependency>
					<groupId>com.ibm.db2.jcc</groupId>
					<artifactId>db2jcc4</artifactId>
					<version>10.1</version>
					<scope>test</scope>
				</dependency>
			</dependencies>
		</profile>

        <!-- TravisCI Profiles -->
        <profile>
            <id>mysql_travis-ci</id>
            <properties>
                <jdbc.driver>com.mysql.cj.jdbc.Driver</jdbc.driver>
                <jdbc.url>jdbc:mysql://localhost/test</jdbc.url>
                <jdbc.user>activejdbc</jdbc.user>
                <jdbc.password>p@ssw0rd</jdbc.password>
                <db>mysql</db>
            </properties>
            <dependencies>
                <dependency>
                    <groupId>mysql</groupId>
                    <artifactId>mysql-connector-java</artifactId>
                </dependency>
            </dependencies>
        </profile>

        <profile>
            <id>postgresql_travis-ci</id>
            <properties>
                <jdbc.driver>org.postgresql.Driver</jdbc.driver>
                <jdbc.url>jdbc:postgresql://localhost/test</jdbc.url>
                <jdbc.user>postgres</jdbc.user>
                <jdbc.password />
                <db>postgresql</db>
            </properties>
            <dependencies>
                <dependency>
                    <groupId>org.postgresql</groupId>
                    <artifactId>postgresql</artifactId>
                    <scope>test</scope>
                </dependency>
            </dependencies>
        </profile>

        <profile>
            <id>oracle_travis-ci</id>
            <properties>
                <jdbc.driver>oracle.jdbc.driver.OracleDriver</jdbc.driver>
                <jdbc.url>jdbc:oracle:thin:@//localhost:1521/xe</jdbc.url>
                <jdbc.user>scott</jdbc.user>
                <jdbc.password>tiger</jdbc.password>
                <db>oracle</db>
            </properties>
            <dependencies>
                <!-- https://mvnrepository.com/artifact/com.oracle.database.jdbc/ojdbc10 -->
                <dependency>
                    <groupId>com.oracle.database.jdbc</groupId>
                    <artifactId>ojdbc10</artifactId>
                    <version>19.3.0.0</version>
                    <scope>test</scope>
                </dependency>
            </dependencies>

            <repositories>
                <repository>
                    <id>maven.oracle.com</id>
                    <releases>
                        <enabled>true</enabled>
                    </releases>
                    <snapshots>
                        <enabled>false</enabled>
                    </snapshots>
                    <url>https://maven.oracle.com</url>
                    <layout>default</layout>
                </repository>
            </repositories>
            <pluginRepositories>
                <pluginRepository>
                    <id>maven.oracle.com</id>
                    <url>https://maven.oracle.com</url>
                </pluginRepository>
            </pluginRepositories>
        </profile>

        <profile>
            <id>mssql_travis-ci</id>
            <properties>
                <jdbc.driver>com.microsoft.sqlserver.jdbc.SQLServerDriver</jdbc.driver>
                <jdbc.url>jdbc:sqlserver://localhost:1433;databaseName=master</jdbc.url>
                <jdbc.user>sa</jdbc.user>
                <jdbc.password>CVXQj6sC9D3s3PzE!</jdbc.password>
                <db>mssql</db>
            </properties>
            <dependencies>
                <!-- https://mvnrepository.com/artifact/com.microsoft.sqlserver/mssql-jdbc -->
                <dependency>
                    <groupId>com.microsoft.sqlserver</groupId>
                    <artifactId>mssql-jdbc</artifactId>
                    <version>7.2.1.jre8</version>
                    <scope>test</scope>
                </dependency>
            </dependencies>
        </profile>

        <profile>
            <id>db2_travis-ci</id>
            <properties>
                <jdbc.driver>com.ibm.db2.jcc.DB2Driver</jdbc.driver>
                <jdbc.url>jdbc:db2://localhost:50000/db2:progressiveStreaming=2;</jdbc.url>
                <jdbc.user>db2inst1</jdbc.user>
                <jdbc.password>dzqAbmZwnN8c</jdbc.password>
                <db>db2</db>
            </properties>
            <dependencies>
                <!-- https://mvnrepository.com/artifact/com.ibm.db2/jcc -->
                <dependency>
                    <groupId>com.ibm.db2</groupId>
                    <artifactId>jcc</artifactId>
                    <version>11.5.0.0</version>
                </dependency>
            </dependencies>
        </profile>

        <profile>
            <id>sqlite_travis-ci</id>
            <properties>
                <jdbc.driver>org.sqlite.JDBC</jdbc.driver>
                <jdbc.url>jdbc:sqlite:sample</jdbc.url>
                <jdbc.user />
                <jdbc.password />
                <db>sqlite</db>
            </properties>
            <dependencies>
                <!-- https://mvnrepository.com/artifact/org.xerial/sqlite-jdbc -->
                <dependency>
                    <groupId>org.xerial</groupId>
                    <artifactId>sqlite-jdbc</artifactId>
                    <version>3.25.2</version>
                    <scope>test</scope>
                </dependency>
            </dependencies>
        </profile>

    </profiles>

    <build>
        <testResources>
            <testResource>
                <directory>${project.basedir}/src/test/resources</directory>
                <filtering>true</filtering>
            </testResource>
        </testResources>
        <plugins>
            <plugin>
                <groupId>org.javalite</groupId>
                <artifactId>activejdbc-instrumentation</artifactId>
                <version>${project.version}</version>
                <executions>
                    <execution>
                        <phase>process-test-classes</phase>
                        <goals>
                            <goal>instrument</goal>
                        </goals>
                        <configuration>
                            <outputDirectory>${project.basedir}/target/test-classes</outputDirectory>
                        </configuration>
                    </execution>
                </executions>
                <dependencies>
                    <dependency>
                        <groupId>org.javassist</groupId>
                        <artifactId>javassist</artifactId>
                        <version>${javassist.version}</version>
                    </dependency>
                </dependencies>
            </plugin>
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
            </plugin>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-source-plugin</artifactId>

            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>

            </plugin>
        </plugins>
    </build>

    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <scope>provided</scope>
        </dependency>

        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter-engine</artifactId>
            <scope>provided</scope>
        </dependency>

        <dependency>
            <groupId>org.junit.vintage</groupId>
            <artifactId>junit-vintage-engine</artifactId>
            <scope>provided</scope>
        </dependency>

        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <scope>provided</scope>
        </dependency>

        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
        </dependency>

        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-slf4j-impl</artifactId>
        </dependency>

        <dependency>
            <groupId>org.javalite</groupId>
            <artifactId>javalite-common</artifactId>
            <version>${project.version}</version>
            <exclusions>
                <exclusion>
                    <groupId>dom4j</groupId>
                    <artifactId>dom4j</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>jaxen</groupId>
                    <artifactId>jaxen</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.javalite</groupId>
            <artifactId>app-config</artifactId>
            <version>${project.version}</version>
        </dependency>
        <dependency>
            <groupId>org.dom4j</groupId>
            <artifactId>dom4j</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>jaxen</groupId>
            <artifactId>jaxen</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>com.h2database</groupId>
            <artifactId>h2</artifactId>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>c3p0</groupId>
            <artifactId>c3p0</artifactId>
            <version>0.9.1.2</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.mockito</groupId>
            <artifactId>mockito-core</artifactId>
            <version>3.2.4</version>
            <scope>test</scope>
        </dependency>
        <!-- Two versions of EHCache because we support v2 and v3-->
        <dependency>
            <groupId>net.sf.ehcache</groupId>
            <artifactId>ehcache-core</artifactId>
            <version>2.6.11</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.ehcache</groupId>
            <artifactId>ehcache</artifactId>
            <version>3.8.1</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>redis.clients</groupId>
            <artifactId>jedis</artifactId>
            <version>3.2.0</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.javalite</groupId>
            <artifactId>activejdbc-instrumentation</artifactId>
            <version>${project.version}</version>
            <scope>test</scope>
        </dependency>


    </dependencies>
</project>
