<?xml version="1.0" encoding="UTF-8"?>
<!--
   Licensed to the Apache Software Foundation (ASF) under one or more
   contributor license agreements.  See the NOTICE file distributed with
   this work for additional information regarding copyright ownership.
   The ASF licenses this file to You under the Apache License, Version 2.0
   (the "License"); you may not use this file except in compliance with
   the License.  You may obtain a copy of the License at

        http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.
-->
<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>
		<artifactId>empire-db-parent</artifactId>
		<groupId>org.apache.empire-db</groupId>
		<version>2.5.0</version>
	</parent>
	<artifactId>empire-db-codegen</artifactId>
	<packaging>jar</packaging>
	<name>Apache Empire-db Code Generator</name>
	<dependencies>

		<!--  Code dependencies -->
		<dependency>
		    <groupId>org.apache.empire-db</groupId>
		    <artifactId>empire-db</artifactId>
		</dependency>
		 
		<dependency>
			<groupId>org.apache.velocity</groupId>
			<artifactId>velocity</artifactId>
			<version>1.7</version>
		</dependency>

		<!-- use log4j for logging -->
		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>slf4j-log4j12</artifactId>
		</dependency>

		<!--  Databases -->
		<!-- hsql -->
		<dependency>
		    <groupId>hsqldb</groupId>
		    <artifactId>hsqldb</artifactId>
		    <scope>test</scope>
		</dependency>

        <!-- msssql -->
		<!--   
        <dependency>
            <groupId>com.microsoft.sqlserver</groupId>
            <artifactId>mssql-jdbc</artifactId>
            <version>7.0.0.jre8</version>
        </dependency>
		-->
		
		<!-- oracle -->
		<!--   
		<dependency>
		    <groupId>com.oracle</groupId>
			<artifactId>ojdbc6</artifactId>
			<version>11.2.0.3.0</version>
		</dependency>
		-->

		<!-- mysql -->
		<!-- 
		<dependency>
		    <groupId>mysql</groupId>
		    <artifactId>mysql-connector-java</artifactId>
		    <version>5.1.6</version>
		</dependency>
		-->
		
	</dependencies>
	
	<build>
	<resources>
		<resource>
			<directory>src/main/resources/templates</directory>
			<filtering>true</filtering>
		</resource>
		</resources>
	</build>
</project>