<?xml version="1.0" encoding="UTF-8"?>
<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.github.boyaframework</groupId>
		<artifactId>boya-framework</artifactId>
		<version>0.0.1</version>
	</parent>
	<artifactId>boya-parent</artifactId>
	<packaging>pom</packaging>

	<name>Boya Framework Model Parent</name>

	<properties>
		<!-- 主要依赖库的版本定义 -->
		<boya.version>0.0.1</boya.version>
		<mybatis.starter.version>1.0.0</mybatis.starter.version>
		<shiro.starter.version>1.0.2</shiro.starter.version>
		<activiti.version>5.16</activiti.version>
		<quartz.version>2.2.1</quartz.version>
		<jedis.version>2.7.3</jedis.version>
		<ehcache.version>2.6.9</ehcache.version>
		<spymemcached.version>2.11.5</spymemcached.version>
		<jolokia.version>1.2.3</jolokia.version>
		<hystrix.version>1.3.16</hystrix.version>
		<javasimon.version>3.5.2</javasimon.version>
		<httpclient.version>4.5.2</httpclient.version>
		<commons-lang3.version>3.3.2</commons-lang3.version>
		<commons-io.version>2.4</commons-io.version>
		<guava.version>18.0</guava.version>
		<joda-time.version>2.3</joda-time.version>
		<dozer.version>5.5.1</dozer.version>
		<nosqlunit.version>0.8.0</nosqlunit.version>
		<solr.version>4.10.4</solr.version>

		<jdbc.driver.groupId>mysql</jdbc.driver.groupId>
		<jdbc.driver.artifactId>mysql-connector-java</jdbc.driver.artifactId>
		<jdbc.driver.version>5.1.19</jdbc.driver.version>

		<!-- Plugin的属性 -->
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<java.version>1.8</java.version>
		<maven.compiler.source>${java.version}</maven.compiler.source>
		<maven.compiler.target>${java.version}</maven.compiler.target>
	</properties>

	<!-- 预定义依赖项的version,scope与exclusions,子项目中只需定义groupId 与 artifactId 即可 -->
	<dependencyManagement>
		<dependencies>
			<!-- boyaframework begin -->
			<dependency>
				<groupId>com.github.boyaframework</groupId>
				<artifactId>boya-core</artifactId>
				<version>${boya.version}</version>
			</dependency>
			<dependency>
				<groupId>com.github.boyaframework</groupId>
				<artifactId>boya-wechat</artifactId>
				<version>${boya.version}</version>
			</dependency>
			<!-- boyaframework end -->

			<dependency>
				<groupId>org.mybatis.spring.boot</groupId>
				<artifactId>mybatis-spring-boot-starter</artifactId>
				<version>${mybatis.starter.version}</version>
			</dependency>
			
			<!-- mybatis 分页插件 -->
			<dependency>
				<groupId>com.github.pagehelper</groupId>
				<artifactId>pagehelper</artifactId>
				<version>4.0.0</version>
			</dependency>

			<dependency>
				<groupId>com.github.boyazuo</groupId>
				<artifactId>shiro-spring-boot-starter</artifactId>
				<version>${shiro.starter.version}</version>
			</dependency>

			<!-- jstl -->
			<dependency>
				<groupId>javax.servlet</groupId>
				<artifactId>jstl</artifactId>
				<version>1.2</version>
			</dependency>

			<!-- Activiti begin -->
			<dependency>
				<groupId>org.activiti</groupId>
				<artifactId>activiti-engine</artifactId>
				<version>${activiti.version}</version>
			</dependency>
			<dependency>
				<groupId>org.activiti</groupId>
				<artifactId>activiti-spring</artifactId>
				<version>${activiti.version}</version>
			</dependency>
			<dependency>
				<groupId>org.activiti</groupId>
				<artifactId>activiti-json-converter</artifactId>
				<version>${activiti.version}</version>
			</dependency>
			<dependency>
				<groupId>org.activiti</groupId>
				<artifactId>activiti-explorer</artifactId>
				<version>${activiti.version}</version>
				<exclusions>
					<exclusion>
						<artifactId>vaadin</artifactId>
						<groupId>com.vaadin</groupId>
					</exclusion>
					<exclusion>
						<artifactId>dcharts-widget</artifactId>
						<groupId>org.vaadin.addons</groupId>
					</exclusion>
					<exclusion>
						<artifactId>activiti-simple-workflow</artifactId>
						<groupId>org.activiti</groupId>
					</exclusion>
				</exclusions>
			</dependency>
			<dependency>
				<groupId>org.activiti</groupId>
				<artifactId>activiti-modeler</artifactId>
				<version>${activiti.version}</version>
			</dependency>
			<dependency>
				<groupId>org.activiti</groupId>
				<artifactId>activiti-rest</artifactId>
				<version>${activiti.version}</version>
			</dependency>
			<dependency>
				<groupId>org.activiti</groupId>
				<artifactId>activiti-diagram-rest</artifactId>
				<version>${activiti.version}</version>
			</dependency>
			<!-- Activiti end -->

			<!-- optional datasource pool -->
			<dependency>
				<groupId>commons-dbcp</groupId>
				<artifactId>commons-dbcp</artifactId>
				<version>1.4</version>
			</dependency>
			<dependency>
				<groupId>commons-pool</groupId>
				<artifactId>commons-pool</artifactId>
				<version>1.6</version>
			</dependency>
			<!-- PERSISTENCE end -->

			<!-- GENERAL UTILS begin -->
			<dependency>
				<groupId>org.apache.commons</groupId>
				<artifactId>commons-lang3</artifactId>
				<version>${commons-lang3.version}</version>
			</dependency>
			<dependency>
				<groupId>commons-io</groupId>
				<artifactId>commons-io</artifactId>
				<version>${commons-io.version}</version>
			</dependency>
			<dependency>
				<groupId>commons-codec</groupId>
				<artifactId>commons-codec</artifactId>
				<version>1.9</version>
			</dependency>
			<dependency>
				<groupId>commons-beanutils</groupId>
				<artifactId>commons-beanutils</artifactId>
				<version>1.9.2</version>
				<exclusions>
					<exclusion>
						<groupId>commons-logging</groupId>
						<artifactId>commons-logging</artifactId>
					</exclusion>
				</exclusions>
			</dependency>
			<dependency>
				<groupId>commons-fileupload</groupId>
				<artifactId>commons-fileupload</artifactId>
				<version>1.3.1</version>
			</dependency>

			<!-- JMS begin -->
			<dependency>
				<groupId>org.apache.activemq</groupId>
				<artifactId>activemq-core</artifactId>
				<version>${activemq.version}</version>
				<exclusions>
					<exclusion>
						<groupId>org.apache.activemq.protobuf</groupId>
						<artifactId>activemq-protobuf</artifactId>
					</exclusion>
					<exclusion>
						<groupId>org.springframework.osgi</groupId>
						<artifactId>spring-osgi-core</artifactId>
					</exclusion>
					<exclusion>
						<groupId>org.osgi</groupId>
						<artifactId>org.osgi.core</artifactId>
					</exclusion>
					<exclusion>
						<groupId>org.fusesource.mqtt-client</groupId>
						<artifactId>mqtt-client</artifactId>
					</exclusion>
					<exclusion>
						<groupId>commons-logging</groupId>
						<artifactId>commons-logging</artifactId>
					</exclusion>
				</exclusions>
			</dependency>
			<!-- JMS end -->

			<!-- TIMER -->
			<dependency>
				<groupId>org.quartz-scheduler</groupId>
				<artifactId>quartz</artifactId>
				<version>${quartz.version}</version>
			</dependency>

			<!-- NOSQL begin -->
			<dependency>
				<groupId>redis.clients</groupId>
				<artifactId>jedis</artifactId>
				<version>${jedis.version}</version>
			</dependency>
			<!-- NOSQL end -->

			<!-- CACHE begin -->
			<!-- memcached -->
			<dependency>
				<groupId>net.spy</groupId>
				<artifactId>spymemcached</artifactId>
				<version>${spymemcached.version}</version>
			</dependency>

			<!-- ehcache -->
			<dependency>
				<groupId>net.sf.ehcache</groupId>
				<artifactId>ehcache-core</artifactId>
				<version>${ehcache.version}</version>
			</dependency>
			<!-- CACHE end -->

			<!-- Solr begin -->
			<dependency>
				<artifactId>solr-solrj</artifactId>
				<groupId>org.apache.solr</groupId>
				<version>${solr.version}</version>
			</dependency>
			<dependency>
				<artifactId>solr-core</artifactId>
				<groupId>org.apache.solr</groupId>
				<version>${solr.version}</version>
			</dependency>
			<!-- Solr end -->

			<!-- jolokia Restful JMX begin -->
			<dependency>
				<groupId>org.jolokia</groupId>
				<artifactId>jolokia-core</artifactId>
				<version>${jolokia.version}</version>
			</dependency>
			<!-- jolokia end -->

			<!-- hystrix begin -->
			<dependency>
				<groupId>com.netflix.hystrix</groupId>
				<artifactId>hystrix-core</artifactId>
				<version>${hystrix.version}</version>
				<exclusions>
					<exclusion>
						<groupId>commons-logging</groupId>
						<artifactId>commons-logging</artifactId>
					</exclusion>
				</exclusions>
			</dependency>
			<!-- hystrix end -->


			<!-- XML begin -->
			<dependency>
				<groupId>dom4j</groupId>
				<artifactId>dom4j</artifactId>
				<version>1.6.1</version>
				<exclusions>
					<exclusion>
						<groupId>xml-apis</groupId>
						<artifactId>xml-apis</artifactId>
					</exclusion>
				</exclusions>
			</dependency>

			<!-- 重新定义Java XPath Engine到最新版，避免旧版那些不必要的依赖 -->
			<dependency>
				<groupId>jaxen</groupId>
				<artifactId>jaxen</artifactId>
				<version>1.1.4</version>
			</dependency>
			<!-- XML end -->

			<!-- google java library -->
			<dependency>
				<groupId>com.google.guava</groupId>
				<artifactId>guava</artifactId>
				<version>${guava.version}</version>
			</dependency>

			<!-- joda -->
			<dependency>
				<groupId>joda-time</groupId>
				<artifactId>joda-time</artifactId>
				<version>${joda-time.version}</version>
			</dependency>
			<dependency>
				<groupId>joda-time</groupId>
				<artifactId>joda-time-jsptags</artifactId>
				<version>1.1.1</version>
			</dependency>
			<!-- GENERAL UTILS end -->

			<!-- OTHER TOOLS begin -->
			<!-- pojo copy -->
			<dependency>
				<groupId>net.sf.dozer</groupId>
				<artifactId>dozer</artifactId>
				<version>${dozer.version}</version>
				<exclusions>
					<exclusion>
						<groupId>org.slf4j</groupId>
						<artifactId>slf4j-log4j12</artifactId>
					</exclusion>
				</exclusions>
			</dependency>

			<!-- httpclient -->
			<dependency>
				<groupId>org.apache.httpcomponents</groupId>
				<artifactId>httpclient</artifactId>
				<version>${httpclient.version}</version>
				<exclusions>
					<exclusion>
						<groupId>commons-logging</groupId>
						<artifactId>commons-logging</artifactId>
					</exclusion>
				</exclusions>
			</dependency>
			<dependency>
				<groupId>org.apache.httpcomponents</groupId>
				<artifactId>fluent-hc</artifactId>
				<version>${httpclient.version}</version>
				<exclusions>
					<exclusion>
						<groupId>commons-logging</groupId>
						<artifactId>commons-logging</artifactId>
					</exclusion>
				</exclusions>
			</dependency>
			<dependency>
				<groupId>org.apache.httpcomponents</groupId>
				<artifactId>httpcore</artifactId>
				<version>4.4.5</version>
				<exclusions>
					<exclusion>
						<groupId>commons-logging</groupId>
						<artifactId>commons-logging</artifactId>
					</exclusion>
				</exclusions>
			</dependency>

			<!-- redis simulator -->
			<dependency>
				<groupId>com.lordofthejars</groupId>
				<artifactId>nosqlunit-redis</artifactId>
				<version>${nosqlunit.version}</version>
				<scope>test</scope>
			</dependency>

			<!-- memcached simulator -->
			<dependency>
				<groupId>com.thimbleware.jmemcached</groupId>
				<artifactId>jmemcached-core</artifactId>
				<version>1.0.0</version>
				<scope>test</scope>
			</dependency>

			<!-- smtp server simulator -->
			<dependency>
				<groupId>com.icegreen</groupId>
				<artifactId>greenmail</artifactId>
				<version>1.3.1b</version>
				<scope>test</scope>
			</dependency>
			<!-- TEST end -->
		</dependencies>
	</dependencyManagement>

	<!-- 插件配置 -->
	<build>
		<pluginManagement>
			<plugins>
				<plugin>
					<groupId>org.springframework.boot</groupId>
					<artifactId>spring-boot-maven-plugin</artifactId>
				</plugin>
			</plugins>
		</pluginManagement>
	</build>

	<profiles>
		<!-- 执行@Category(Smoke.class)的TestCase -->
		<profile>
			<id>run-smoke</id>
			<build>
				<plugins>
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-surefire-plugin</artifactId>
						<configuration>
							<groups>org.springside.modules.test.category.Smoke</groups>
						</configuration>
					</plugin>
				</plugins>
			</build>
		</profile>
	</profiles>
</project>
