<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.0.4</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>
					<excludes>
						<exclude>**/*IT.java</exclude>
					</excludes>
				</configuration>
			</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>holontest</DB2INST1_PASSWORD> <LICENSE>accept</LICENSE> 
						</env> <ports> <port>50000:50000</port> </ports> <wait> <time>30000</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>
					<!-- Not using docker by now -->
					<!-- <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>sa123pwd</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>
	</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 core -->
		<dependency>
			<groupId>com.holon-platform.core</groupId>
			<artifactId>holon-core</artifactId>
			<version>${holon.core.version}</version>
		</dependency>
		<!-- Holon jdbc -->
		<dependency>
			<groupId>com.holon-platform.jdbc</groupId>
			<artifactId>holon-jdbc</artifactId>
			<version>${holon.jdbc.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>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-context</artifactId>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-jdbc</artifactId>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-test</artifactId>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>jcl-over-slf4j</artifactId>
			<scope>test</scope>
		</dependency>

		<!-- Oracle driver and data types -->

		<dependency>
			<groupId>com.oracle</groupId>
			<artifactId>ojdbc7</artifactId>
			<version>${oracle-driver.version}</version>
			<optional>true</optional>
		</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>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>

	</dependencies>

</project>