<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>
		<groupId>com.holon-platform.jdbc</groupId>
		<artifactId>holon-datastore-jdbc-root</artifactId>
		<version>5.1.1</version>
	</parent>

	<artifactId>holon-datastore-jdbc</artifactId>
	<packaging>jar</packaging>

	<name>${project.groupId}:${project.artifactId}</name>
	<description>Holon JDBC Datastore implementation</description>

	<url>https://holon-platform.com</url>

	<build>
		<plugins>
			<!-- Unit test -->
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-surefire-plugin</artifactId>
				<configuration>
					<includes>
						<include>**/*UT.java</include>
					</includes>
					<excludes>
						<exclude>**/*IT.java</exclude>
					</excludes>
				</configuration>
			</plugin>
			<!-- Test jar -->
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-jar-plugin</artifactId>
				<version>3.0.2</version>
				<executions>
					<execution>
						<goals>
							<goal>test-jar</goal>
						</goals>
					</execution>
				</executions>
			</plugin>
		</plugins>
	</build>

	<profiles>
		<!-- Oracle integration test -->
		<profile>
			<id>it-oracle</id>
			<build>
				<plugins>
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-surefire-plugin</artifactId>
						<configuration>
							<skip>true</skip>
						</configuration>
					</plugin>
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-failsafe-plugin</artifactId>
						<configuration>
							<includes>
								<include>**/*OracleIT.java</include>
							</includes>
						</configuration>
					</plugin>
					<plugin>
						<groupId>io.fabric8</groupId>
						<artifactId>docker-maven-plugin</artifactId>
						<configuration>
							<images>
								<image>
									<name>holon/oracle</name>
									<build>
										<dockerFileDir>oracle</dockerFileDir>
									</build>
									<run>
										<env>
											<ORACLE_ALLOW_REMOTE>true</ORACLE_ALLOW_REMOTE>
										</env>
										<ports>
											<port>49160:22</port>
											<port>49161:1521</port>
										</ports>
										<wait>
											<time>25000</time>
										</wait>
									</run>
								</image>
							</images>
						</configuration>
					</plugin>
				</plugins>
			</build>
		</profile>

		<!-- DB2 integration test -->
		<profile>
			<id>it-db2</id>
			<build>
				<plugins>
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-surefire-plugin</artifactId>
						<configuration>
							<skip>true</skip>
						</configuration>
					</plugin>
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-failsafe-plugin</artifactId>
						<configuration>
							<includes>
								<include>**/*DB2IT.java</include>
							</includes>
						</configuration>
					</plugin>
					<plugin>
						<groupId>io.fabric8</groupId>
						<artifactId>docker-maven-plugin</artifactId>
						<configuration>
							<images>
								<image>
									<name>holon/db2</name>
									<build>
										<dockerFileDir>db2</dockerFileDir>
									</build>
									<run>
										<env>
											<DB2INST1_PASSWORD>testdb2-pwd</DB2INST1_PASSWORD>
											<LICENSE>accept</LICENSE>
										</env>
										<ports>
											<port>50000:50000</port>
										</ports>
										<wait>
											<time>90000</time>
										</wait>
									</run>
								</image>
							</images>
						</configuration>
					</plugin>
				</plugins>
			</build>
		</profile>

		<!-- PostgreSQL integration test -->
		<profile>
			<id>it-postgre</id>
			<build>
				<plugins>
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-surefire-plugin</artifactId>
						<configuration>
							<skip>true</skip>
						</configuration>
					</plugin>
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-failsafe-plugin</artifactId>
						<configuration>
							<includes>
								<include>**/*PostgreIT.java</include>
							</includes>
						</configuration>
					</plugin>
					<plugin>
						<groupId>io.fabric8</groupId>
						<artifactId>docker-maven-plugin</artifactId>
						<configuration>
							<images>
								<image>
									<name>holon/postgre</name>
									<build>
										<dockerFileDir>postgre</dockerFileDir>
									</build>
									<run>
										<env>
											<POSTGRES_PASSWORD>postgres</POSTGRES_PASSWORD>
										</env>
										<ports>
											<port>5432:5432</port>
										</ports>
										<wait>
											<time>5000</time>
										</wait>
									</run>
								</image>
							</images>
						</configuration>
					</plugin>
				</plugins>
			</build>
		</profile>

		<!-- MySQL integration test -->
		<profile>
			<id>it-mysql</id>
			<build>
				<plugins>
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-surefire-plugin</artifactId>
						<configuration>
							<skip>true</skip>
						</configuration>
					</plugin>
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-failsafe-plugin</artifactId>
						<configuration>
							<includes>
								<include>**/*MySQLIT.java</include>
							</includes>
						</configuration>
					</plugin>
					<plugin>
						<groupId>io.fabric8</groupId>
						<artifactId>docker-maven-plugin</artifactId>
						<configuration>
							<images>
								<image>
									<name>holon/mysql</name>
									<build>
										<dockerFileDir>mysql</dockerFileDir>
									</build>
									<run>
										<env>
											<MYSQL_ROOT_PASSWORD>root</MYSQL_ROOT_PASSWORD>
											<MYSQL_DATABASE>testds</MYSQL_DATABASE>
										</env>
										<ports>
											<port>3306:3306</port>
										</ports>
										<wait>
											<time>15000</time>
										</wait>
									</run>
								</image>
							</images>
						</configuration>
					</plugin>
				</plugins>
			</build>
		</profile>

		<!-- MariaDB integration test -->
		<profile>
			<id>it-mariadb</id>
			<build>
				<plugins>
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-surefire-plugin</artifactId>
						<configuration>
							<skip>true</skip>
						</configuration>
					</plugin>
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-failsafe-plugin</artifactId>
						<configuration>
							<includes>
								<include>**/*MariaDBIT.java</include>
							</includes>
						</configuration>
					</plugin>
					<plugin>
						<groupId>io.fabric8</groupId>
						<artifactId>docker-maven-plugin</artifactId>
						<configuration>
							<images>
								<image>
									<name>holon/mariadb</name>
									<build>
										<dockerFileDir>mariadb</dockerFileDir>
									</build>
									<run>
										<env>
											<MYSQL_ROOT_PASSWORD>root</MYSQL_ROOT_PASSWORD>
											<MYSQL_DATABASE>testds</MYSQL_DATABASE>
										</env>
										<ports>
											<port>3306:3306</port>
										</ports>
										<wait>
											<time>15000</time>
										</wait>
									</run>
								</image>
							</images>
						</configuration>
					</plugin>
				</plugins>
			</build>
		</profile>

		<!-- SQLServer integration test -->
		<profile>
			<id>it-sqlserver</id>
			<build>
				<plugins>
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-surefire-plugin</artifactId>
						<configuration>
							<skip>true</skip>
						</configuration>
					</plugin>
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-failsafe-plugin</artifactId>
						<configuration>
							<includes>
								<include>**/*SQLServerIT.java</include>
							</includes>
						</configuration>
					</plugin>
					<!-- <plugin> <groupId>io.fabric8</groupId> <artifactId>docker-maven-plugin</artifactId> 
						<configuration> <images> <image> <name>holon/sqlserver</name> <build> <dockerFileDir>sqlserver</dockerFileDir> 
						</build> <run> <env> <SA_PASSWORD>T0pSecret</SA_PASSWORD> <ACCEPT_EULA>Y</ACCEPT_EULA> 
						</env> <ports> <port>1433:1433</port> </ports> <wait> <time>15000</time> 
						</wait> </run> </image> </images> </configuration> </plugin> -->
				</plugins>
			</build>
		</profile>

		<!-- SQLite integration test -->
		<profile>
			<id>it-sqlite</id>
			<build>
				<plugins>
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-surefire-plugin</artifactId>
						<configuration>
							<skip>true</skip>
						</configuration>
					</plugin>
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-failsafe-plugin</artifactId>
						<configuration>
							<includes>
								<include>**/*SQLiteIT.java</include>
							</includes>
						</configuration>
					</plugin>
					<plugin>
						<groupId>io.fabric8</groupId>
						<artifactId>docker-maven-plugin</artifactId>
						<configuration>
							<images>
								<image>
									<name>holon/sqlite</name>
									<!-- <build> <dockerFileDir>sqlite</dockerFileDir> </build> -->
									<run>
										<ports>
											<port>12345:12345</port>
										</ports>
										<wait>
											<time>5000</time>
										</wait>
									</run>
									<external>
										<type>compose</type>
										<basedir>src/main/docker/sqlite</basedir>
									</external>
								</image>
							</images>
						</configuration>
					</plugin>
				</plugins>
			</build>
		</profile>

		<!-- HANA integration test -->
		<profile>
			<id>it-hana</id>
			<build>
				<plugins>
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-surefire-plugin</artifactId>
						<configuration>
							<skip>true</skip>
						</configuration>
					</plugin>
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-failsafe-plugin</artifactId>
						<configuration>
							<includes>
								<include>**/*HANAIT.java</include>
							</includes>
						</configuration>
					</plugin>
				</plugins>
			</build>
		</profile>

	</profiles>

	<dependencyManagement>
		<dependencies>

			<!-- Holon Spring platform -->
			<dependency>
				<groupId>com.holon-platform.core</groupId>
				<artifactId>holon-bom-platform</artifactId>
				<version>${holon.core.version}</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>

		</dependencies>
	</dependencyManagement>

	<dependencies>

		<!-- Holon jdbc composer -->
		<dependency>
			<groupId>com.holon-platform.jdbc</groupId>
			<artifactId>holon-datastore-jdbc-composer</artifactId>
			<version>${project.version}</version>
		</dependency>

		<!-- Test -->
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>ch.qos.logback</groupId>
			<artifactId>logback-classic</artifactId>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>com.zaxxer</groupId>
			<artifactId>HikariCP</artifactId>
			<version>${hikaricp.version}</version>
			<scope>test</scope>
		</dependency>

		<!-- Test JPA bean processors -->
		<dependency>
			<groupId>com.holon-platform.jpa</groupId>
			<artifactId>holon-jpa-bean-processors</artifactId>
			<version>${holon.jpa.version}</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>javax.persistence</groupId>
			<artifactId>javax.persistence-api</artifactId>
			<version>2.2</version>
			<scope>test</scope>
		</dependency>

		<!-- Test databases -->
		<dependency>
			<groupId>com.h2database</groupId>
			<artifactId>h2</artifactId>
			<version>${h2.version}</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.hsqldb</groupId>
			<artifactId>hsqldb</artifactId>
			<version>${hsql.version}</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.apache.derby</groupId>
			<artifactId>derby</artifactId>
			<version>${derby.version}</version>
			<scope>test</scope>
		</dependency>

		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
			<version>${mysql-driver.version}</version>
			<scope>test</scope>
		</dependency>

		<dependency>
			<groupId>org.mariadb.jdbc</groupId>
			<artifactId>mariadb-java-client</artifactId>
			<version>${mariadb-driver.version}</version>
			<scope>test</scope>
		</dependency>

		<dependency>
			<groupId>org.postgresql</groupId>
			<artifactId>postgresql</artifactId>
			<version>${postgre.version}</version>
			<scope>test</scope>
		</dependency>

		<dependency>
			<groupId>com.oracle</groupId>
			<artifactId>ojdbc7</artifactId>
			<version>${oracle-driver.version}</version>
			<scope>test</scope>
		</dependency>

		<dependency>
			<groupId>org.xerial</groupId>
			<artifactId>sqlite-jdbc</artifactId>
			<version>${sqlite-driver.version}</version>
			<scope>test</scope>
		</dependency>

		<dependency>
			<groupId>com.ibm.db2</groupId>
			<artifactId>jdbc3</artifactId>
			<version>${db2-driver.version}</version>
			<scope>test</scope>
		</dependency>

		<dependency>
			<groupId>com.ibm.informix</groupId>
			<artifactId>jdbc</artifactId>
			<version>${informix-driver.version}</version>
			<scope>test</scope>
		</dependency>

		<dependency>
			<groupId>com.microsoft.sqlserver</groupId>
			<artifactId>jdbc</artifactId>
			<version>${sqlserver-driver.version}</version>
			<scope>test</scope>
		</dependency>

		<dependency>
			<groupId>com.sap.hana</groupId>
			<artifactId>jdbc</artifactId>
			<version>${hana-driver.version}</version>
			<scope>test</scope>
		</dependency>

	</dependencies>

</project>