<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>
		<artifactId>yop</artifactId>
		<groupId>org.y-op</groupId>
		<version>0.9.0</version>
	</parent>

	<artifactId>orm</artifactId>
	<packaging>jar</packaging>
	<name>yop-orm</name>

	<description>
		YOP-orm is a lightweight ORM wannabe. Hit and run, no session, no bytecode generation, SQL-like syntax.
		Strong constraints on the Database schema.
		Java 8 is required.
		Ω≡{Ⓐ}
	</description>

	<!-- Code Coverage report generation with profile 'coverage' -->
	<profiles>
		<profile>
			<id>coverage_orm</id>
			<build>
				<plugins>
					<plugin>
						<groupId>org.jacoco</groupId>
						<artifactId>jacoco-maven-plugin</artifactId>
					</plugin>
					<plugin>
						<groupId>com.sigpwned</groupId>
						<artifactId>jacoco-badge-maven-plugin</artifactId>
					</plugin>
				</plugins>
			</build>
		</profile>
	</profiles>

	<!-- Small is beautiful :-) -->
	<dependencies>
		<dependency>
			<groupId>org.y-op</groupId>
			<artifactId>reflection</artifactId>
			<version>${project.version}</version>
		</dependency>

		<!--
			YOP uses the org.reflections library to :
			- Find all the Yopable objects in a package when you want to generates Tables
			- Find a relation interface implementation that is not known (i.e. not List, Set, Queue, Collection)
			If you don't need these, you can safely exclude this dependency.
		 -->
		<dependency>
			<groupId>org.reflections</groupId>
			<artifactId>reflections</artifactId>
		</dependency>

		<!-- Apache commons -->
		<dependency>
			<groupId>commons-lang</groupId>
			<artifactId>commons-lang</artifactId>
		</dependency>
		<dependency>
			<groupId>org.apache.commons</groupId>
			<artifactId>commons-lang3</artifactId>
		</dependency>
		<dependency>
			<groupId>commons-io</groupId>
			<artifactId>commons-io</artifactId>
		</dependency>
		<dependency>
			<groupId>org.apache.commons</groupId>
			<artifactId>commons-collections4</artifactId>
		</dependency>

		<!-- Google guava & gson -->
		<dependency>
			<groupId>com.google.guava</groupId>
			<artifactId>guava</artifactId>
		</dependency>
		<dependency>
			<groupId>com.google.code.gson</groupId>
			<artifactId>gson</artifactId>
		</dependency>

		<!-- Logging -->
		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>slf4j-api</artifactId>
		</dependency>
		<dependency>
			<groupId>ch.qos.logback</groupId>
			<artifactId>logback-classic</artifactId>
		</dependency>

		<!-- XStream : XML serialization/deserialization without annotation-->
		<dependency>
			<groupId>com.thoughtworks.xstream</groupId>
			<artifactId>xstream</artifactId>
		</dependency>

		<!-- Test dependencies : JUnit & SQL drivers -->
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
		</dependency>
		<dependency>
			<groupId>org.skyscreamer</groupId>
			<artifactId>jsonassert</artifactId>
		</dependency>

		<dependency>
			<groupId>org.xerial</groupId>
			<artifactId>sqlite-jdbc</artifactId>
			<version>3.21.0.1</version>
			<scope>compile</scope>
			<optional>true</optional>
		</dependency>
		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
			<version>5.1.45</version>
			<scope>compile</scope>
			<optional>true</optional>
		</dependency>
		<dependency>
			<groupId>org.postgresql</groupId>
			<artifactId>postgresql</artifactId>
			<version>42.2.1</version>
			<scope>compile</scope>
			<optional>true</optional>
		</dependency>
		<dependency>
			<groupId>com.microsoft.sqlserver</groupId>
			<artifactId>mssql-jdbc</artifactId>
			<version>7.0.0.jre8</version>
			<scope>compile</scope>
			<optional>true</optional>
		</dependency>
		<dependency>
			<groupId>com.ibm.db2.jcc</groupId>
			<artifactId>db2jcc</artifactId>
			<version>db2jcc4</version>
			<scope>compile</scope>
			<optional>true</optional>
		</dependency>

		<!-- Oracle test dependencies. Oracle drivers are not very accessible. -->
		<!--
			You need access to the Oracle maven repo for ojdbc8.
			Or download ojdbc8.jar from oracle and install using :
			mvn install:install-file
				-Dfile={Path/to/your/ojdbc8.jar}
				-DgroupId=com.oracle
				-DartifactId=ojdbc8
				-Dversion=12.2.0.1
				-Dpackaging=jar
		-->
		<dependency>
			<groupId>com.oracle</groupId>
			<artifactId>ojdbc8</artifactId>
			<version>12.2.0.1</version>
			<scope>compile</scope>
			<optional>true</optional>
		</dependency>

		<!--
			Not JDBC 4.2
			Does not work well with Yop.
			But you should be able to use Transformers to deal with specific types - e.g. oracle.sql.TIMESTAMP.
		-->
		<!--<dependency>-->
			<!--<groupId>com.oracle</groupId>-->
			<!--<artifactId>ojdbc6</artifactId>-->
			<!--<version>11.2.0.4.0-atlassian-hosted</version>-->
			<!--<scope>test</scope>-->
		<!--</dependency>-->
	</dependencies>
</project>