<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>
	<groupId>org.leapframework</groupId>
	<artifactId>leap-parent</artifactId>
	<version>0.6.2b</version>
	<packaging>pom</packaging>

    <name>leapframework</name>
    <description>A full-stack java web framework.</description>
    <url>https://github.com/leapframework/framework</url>
	
	<licenses>
		<license>
			<name>The Apache Software License, Version 2.0</name>
			<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
		</license>
	</licenses>

    <developers>
        <developer>
            <name>Evan feng</name>
            <email>live.evan@gmail.com</email>
        </developer>
        <developer>
            <name>kael-aiur</name>
			<email>kael.peng@gmail.com</email>
        </developer>
        <developer>
            <name>Calvin Chen</name>
            <email>Calvin.Chen.310@gmail.com</email>
        </developer>
        <developer>
            <name>shenglfyu</name>
        </developer>
    </developers>

    <scm>
        <connection>scm:git:git@github.com:leapframework/framework.git</connection>
        <developerConnection>scm:git:git@github.com:leapframework/framework.git</developerConnection>
        <url>http://github.com/leapframework/framework/tree/master</url>
        <tag>v@{project.version}</tag>
    </scm>

    <distributionManagement>
        <snapshotRepository>
            <id>ossrh-leap</id>
            <url>https://oss.sonatype.org/content/repositories/snapshots</url>
        </snapshotRepository>
        <repository>
            <id>ossrh-leap</id>
            <url>https://oss.sonatype.org/service/local/staging/deploy/maven2/</url>
        </repository>
    </distributionManagement>

    <profiles>
        <profile>
            <id>release-sign</id>
            <activation>
                <property>
                    <name>performRelease</name>
                    <value>true</value>
                </property>
            </activation>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-gpg-plugin</artifactId>
                        <version>1.5</version>
                        <executions>
                            <execution>
                                <id>sign-artifacts</id>
                                <phase>verify</phase>
                                <goals>
                                    <goal>sign</goal>
                                </goals>
                                <configuration>
                                    <keyname>170DF22A</keyname>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
    </profiles>
	
	<properties>
		<!-- common properties -->
		<common.encoding>UTF-8</common.encoding>
		<java.version>1.8</java.version>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>

		<!-- maven properties -->
		<maven.compile.source>${java.version}</maven.compile.source>
		<maven.compile.target>${java.version}</maven.compile.target>
		<maven.compile.encoding>${common.encoding}</maven.compile.encoding>
		<maven.source.encoding>${common.encoding}</maven.source.encoding>
		<maven.javadoc.encoding>${common.encoding}</maven.javadoc.encoding>
		<maven.resources.encoding>${common.encoding}</maven.resources.encoding>
		<maven.resources.includeEmptyDirs>true</maven.resources.includeEmptyDirs>

		<!-- maven plugins version -->
		<plugins.compiler.version>2.3.2</plugins.compiler.version>
		<plugins.source.version>2.1.2</plugins.source.version>
		<plugins.resources.version>2.4.3</plugins.resources.version>
		<plugins.surefire.version>2.17</plugins.surefire.version>
		<plugins.javadoc.version>2.9.1</plugins.javadoc.version>
		<plugins.clean.version>2.4.1</plugins.clean.version>
		<plugins.install.version>2.3.1</plugins.install.version>
		<plugins.jar.version>2.3.2</plugins.jar.version>
		<plugins.deploy.version>2.7</plugins.deploy.version>
		<plugins.release.version>2.5.3</plugins.release.version>
		<plugins.dependency.version>2.1</plugins.dependency.version>
		<plugins.eclipse.version>2.9</plugins.eclipse.version>

		<!-- dependency versions -->
		<slf4j.version>1.7.5</slf4j.version>
        <logback.version>1.0.13</logback.version>
		<servlet.version>3.1.0</servlet.version>
		<jsp.version>2.3.1</jsp.version>
		<jstl.version>1.2.1</jstl.version>
        <h2.version>1.3.172</h2.version>
        <mysql.version>5.1.26</mysql.version>
        <postgresql.version>9.1-901.jdbc4</postgresql.version>
        <mariadb.version>1.1.7</mariadb.version>
        <mssql.version>6.1.0.jre8</mssql.version>
        <derby.version>10.10.2.0</derby.version>
        <jetty.version>9.2.2.v20140723</jetty.version>
        <httpclient.version>4.3.6</httpclient.version>
	</properties>
	
	<build>
		<resources>
			<resource>
				<directory>src/main/java</directory>
				<excludes>
					<exclude>**/*.java</exclude>
				</excludes>
			</resource>
			<resource>
				<directory>src/main/resources</directory>
				<excludes>
					<exclude>**/*.java</exclude>
				</excludes>
			</resource>
		</resources>

		<testResources>
			<testResource>
				<directory>src/test/java</directory>
				<excludes>
					<exclude>**/*.java</exclude>
				</excludes>
			</testResource>
			<testResource>
				<directory>src/test/resources</directory>
				<excludes>
					<exclude>**/*.java</exclude>
				</excludes>
			</testResource>
		</testResources>

		<pluginManagement>
			<plugins>
				<!-- compile -->
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-compiler-plugin</artifactId>
					<version>${plugins.compiler.version}</version>
					<configuration>
						<source>${maven.compile.source}</source>
						<target>${maven.compile.target}</target>
						<encoding>${maven.compile.encoding}</encoding>
					</configuration>
				</plugin>

				<!-- source -->
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-source-plugin</artifactId>
					<version>${plugins.source.version}</version>
					<executions>
						<execution>
							<id>attach-sources</id>
							<goals>
								<goal>jar-no-fork</goal>
							</goals>
							<!--
							<configuration>
								<encoding>${maven.source.encoding}</encoding>
							</configuration>
							-->
						</execution>
					</executions>
				</plugin>

				<!-- resources -->
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-resources-plugin</artifactId>
					<version>${plugins.resources.version}</version>
					<configuration>
						<encoding>${maven.resources.encoding}</encoding>
                    	<includeEmptyDirs>${maven.resources.includeEmptyDirs}</includeEmptyDirs>
					</configuration>
				</plugin>

				<!-- test -->
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-surefire-plugin</artifactId>
					<version>${plugins.surefire.version}</version>
                    <configuration>
                        <systemPropertyVariables>
                            <file.encoding>UTF-8</file.encoding>
                            <org.apache.jasper.compiler.disablejsr199>true</org.apache.jasper.compiler.disablejsr199>
                        </systemPropertyVariables>
                    </configuration>
				</plugin>

				<!-- javadoc -->
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-javadoc-plugin</artifactId>
					<version>${plugins.javadoc.version}</version>
					<executions>
						<execution>
							<id>attach-javadocs</id>
							<goals>
								<goal>jar</goal>
							</goals>
							<configuration>
								<charset>${maven.javadoc.encoding}</charset>
								<encoding>${maven.javadoc.encoding}</encoding>
								<docencoding>${maven.javadoc.encoding}</docencoding>
								<additionalparam>-Xdoclint:none</additionalparam>
							</configuration>
						</execution>
					</executions>
				</plugin>

				<!-- clean -->
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-clean-plugin</artifactId>
					<version>${plugins.clean.version}</version>
				</plugin>

				<!-- install -->
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-install-plugin</artifactId>
					<version>${plugins.install.version}</version>
				</plugin>

				<!-- jar -->
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-jar-plugin</artifactId>
					<version>${plugins.jar.version}</version>
				</plugin>

				<!-- deploy -->
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-deploy-plugin</artifactId>
					<version>${plugins.deploy.version}</version>
				</plugin>

				<!-- release -->
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-release-plugin</artifactId>
					<version>${plugins.release.version}</version>
				</plugin>

				<!-- dependency -->
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-dependency-plugin</artifactId>
					<version>${plugins.dependency.version}</version>
				</plugin>

				<!-- eclipse -->
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-eclipse-plugin</artifactId>
					<version>${plugins.eclipse.version}</version>
					<configuration>
						<sourceExcludes>
							<sourceExclude>**/.svn/**</sourceExclude>
							<sourceExclude>**/.git/**</sourceExclude>
						</sourceExcludes>
					</configuration>
				</plugin>
			</plugins>
		</pluginManagement>

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

			<!-- javadoc -->
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-javadoc-plugin</artifactId>
			</plugin>
		</plugins>
	</build>

    <dependencies>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>${slf4j.version}</version>
            <type>jar</type>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>jcl-over-slf4j</artifactId>
            <version>${slf4j.version}</version>
            <type>jar</type>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-classic</artifactId>
            <version>${logback.version}</version>
            <type>jar</type>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>com.h2database</groupId>
            <artifactId>h2</artifactId>
            <version>${h2.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.version}</version>
            <type>jar</type>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>postgresql</groupId>
            <artifactId>postgresql</artifactId>
            <version>${postgresql.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.mariadb.jdbc</groupId>
            <artifactId>mariadb-java-client</artifactId>
            <version>${mariadb.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>com.microsoft.sqlserver</groupId>
            <artifactId>mssql-jdbc</artifactId>
            <version>${mssql.version}</version>
            <scope>test</scope>
            <exclusions>
                <exclusion>
                    <groupId>com.microsoft.azure</groupId>
                    <artifactId>azure-keyvault</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

        <!--
            Oracle jdbc driver cannot public access, download it and install locally.

            url : http://download.oracle.com/otn/utilities_drivers/jdbc/121020/ojdbc7.jar

            $ mvn install:install-file -Dfile={path/ojdbc7.jar} -DgroupId=com.oracle.jdbc -DartifactId=ojdbc7 -Dversion=12.1.0.2 -Dpackaging=jar
        -->
        <dependency>
            <groupId>com.oracle.jdbc</groupId>
            <artifactId>ojdbc7</artifactId>
            <version>12.1.0.2</version>
            <scope>test</scope>
        </dependency>
    </dependencies>
	
	<modules>
        <!-- base -->
        <module>base/agent</module>
        <module>base/junit</module>
        <module>base/lang</module>
		<module>base/core</module>

        <!-- data -->
		<module>data/db</module>
		<module>data/orm</module>

        <!-- web -->
		<module>web/core</module>
		<module>web/api</module>
		<module>web/htpl</module>
        <module>web/webunit</module>
        <module>web/webunit-jsp</module>
		<module>web/security</module>

        <!-- oauth2 -->
        <module>oauth2/server</module>
        <module>oauth2/webapp</module>

        <!-- tests -->
        <module>tests</module>

        <!--assembly-->
        <module>assembly/leap</module>
    </modules>
</project>