<?xml version="1.0"?>
<project
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
	xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
	<modelVersion>4.0.0</modelVersion>

	<parent>
		<groupId>com.shopizer</groupId>
		<artifactId>shopizer</artifactId>
		<version>2.0.3-SNAPSHOT</version>
	</parent>

	<artifactId>sm-core-model</artifactId>
	<packaging>jar</packaging>

	<name>sm-core-model</name>
	<url>http://www.shopizer.com</url>

	<properties>
	
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

		<jackson-version>1.9.13</jackson-version>
		<axis-version>1.4</axis-version>
		<jaxws.api.version>2.1</jaxws.api.version>
		<jaxws.version>2.1.4</jaxws.version>
		<jsr181.version>1.0-MR1</jsr181.version>
		<jsr250.version>1.0</jsr250.version>
		<org.elasticsearch-version>0.90.2</org.elasticsearch-version>
		<jasperreports-version>3.7.4</jasperreports-version>

		<freemarker.version>2.3.19</freemarker.version>
		<org.slf4j-version>1.6.6</org.slf4j-version>
		<hibernate.ehcache.version>3.5.1-Final</hibernate.ehcache.version>
		<sm-core.hibernate-entitymanager-version>4.1.2</sm-core.hibernate-entitymanager-version>
		<sm-core.hibernate-jpamodelgen.version>4.3.0.Final</sm-core.hibernate-jpamodelgen.version>
		<sm-core.aspectj.version>1.5.4</sm-core.aspectj.version>
		<sm-core.mysql-connector-java>5.1.31</sm-core.mysql-connector-java>
		<sm-core.junit.version>4.9</sm-core.junit.version>
		<sm-core.org.springframework.version>3.2.16.RELEASE</sm-core.org.springframework.version>
		<sm-core.c3p0.version>0.9.1.2</sm-core.c3p0.version>
		<sm-core.querydsl.version>3.7.1</sm-core.querydsl.version>
		<sm-core.jodatime.version>2.0</sm-core.jodatime.version>
		<sm-core.jodatime-hibernate.version>1.3</sm-core.jodatime-hibernate.version>
		<sm-core.javassist.version>3.3</sm-core.javassist.version>

	</properties>

	<dependencies>

		<!-- Loggers -->
		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>slf4j-log4j12</artifactId>
			<version>${org.slf4j-version}</version>
		</dependency>

		<!-- required for query dsl 3 -->
		<dependency>
			<groupId>cglib</groupId>
			<artifactId>cglib</artifactId>
			<version>2.2</version>
		</dependency>

		<!-- Hibernate -->
		<dependency>
			<groupId>org.hibernate</groupId>
			<artifactId>hibernate-core</artifactId>
			<version>${sm-core.hibernate-entitymanager-version}</version>
			<exclusions>
				<exclusion>
					<artifactId>javassist</artifactId>
					<groupId>org.javassist</groupId>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<groupId>org.hibernate</groupId>
			<artifactId>hibernate-entitymanager</artifactId>
			<version>${sm-core.hibernate-entitymanager-version}</version>
			<exclusions>
				<exclusion>
					<groupId>asm</groupId>
					<artifactId>asm</artifactId>
				</exclusion>
				<exclusion>
					<groupId>asm</groupId>
					<artifactId>asm-attrs</artifactId>
				</exclusion>
				<exclusion>
					<groupId>cglib</groupId>
					<artifactId>cglib</artifactId>
				</exclusion>
				<exclusion>
					<artifactId>javassist</artifactId>
					<groupId>javassist</groupId>
				</exclusion>
				<exclusion>
					<groupId>org.hibernate</groupId>
					<artifactId>hibernate-core</artifactId>
				</exclusion>
				<exclusion>
					<artifactId>javassist</artifactId>
					<groupId>org.javassist</groupId>
				</exclusion>
			</exclusions>
		</dependency>

		<!-- Hibernate ehcache -->
		<dependency>
			<groupId>org.hibernate</groupId>
			<artifactId>hibernate-ehcache</artifactId>
			<version>${hibernate.ehcache.version}</version>
		</dependency>

		<!-- Javassist -->
		<dependency>
			<groupId>javassist</groupId>
			<artifactId>javassist</artifactId>
			<version>${sm-core.javassist.version}</version>
		</dependency>

		<!-- QueryDsl -->
		<dependency>
			<groupId>com.mysema.querydsl</groupId>
			<artifactId>querydsl-apt</artifactId>
			<version>${sm-core.querydsl.version}</version>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>com.mysema.querydsl</groupId>
			<artifactId>querydsl-core</artifactId>
			<version>${sm-core.querydsl.version}</version>
		</dependency>
		<dependency>
			<groupId>com.mysema.querydsl</groupId>
			<artifactId>querydsl-jpa</artifactId>
			<version>${sm-core.querydsl.version}</version>
		</dependency>

		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-aop</artifactId>
			<version>${sm-core.org.springframework.version}</version>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-aspects</artifactId>
			<version>${sm-core.org.springframework.version}</version>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-beans</artifactId>
			<version>${sm-core.org.springframework.version}</version>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-context</artifactId>
			<version>${sm-core.org.springframework.version}</version>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-core</artifactId>
			<version>${sm-core.org.springframework.version}</version>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-expression</artifactId>
			<version>${sm-core.org.springframework.version}</version>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-orm</artifactId>
			<version>${sm-core.org.springframework.version}</version>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-web</artifactId>
			<version>${sm-core.org.springframework.version}</version>
		</dependency>
		
		<dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context-support</artifactId>
            <version>${sm-core.org.springframework.version}</version>
        </dependency>

		<!-- JSR 303 with Hibernate Validator -->
		<dependency>
			<groupId>javax.validation</groupId>
			<artifactId>validation-api</artifactId>
			<version>1.0.0.GA</version>
		</dependency>
		<dependency>
			<groupId>org.hibernate</groupId>
			<artifactId>hibernate-validator</artifactId>
			<version>4.3.0.Final</version>
		</dependency>

		<!-- AspectJ -->
		<dependency>
			<groupId>aspectj</groupId>
			<artifactId>aspectjrt</artifactId>
			<version>${sm-core.aspectj.version}</version>
		</dependency>
		<dependency>
			<groupId>aspectj</groupId>
			<artifactId>aspectjweaver</artifactId>
			<version>${sm-core.aspectj.version}</version>
		</dependency>




		<!-- Jackson JSON Processor -->
		<dependency>
			<groupId>org.codehaus.jackson</groupId>
			<artifactId>jackson-mapper-asl</artifactId>
			<version>${jackson-version}</version>
		</dependency>
		<dependency>
			<groupId>com.googlecode.json-simple</groupId>
			<artifactId>json-simple</artifactId>
			<version>1.1.1</version>
		</dependency>



		<dependency>
			<groupId>commons-collections</groupId>
			<artifactId>commons-collections</artifactId>
			<version>3.2.1</version>
		</dependency>

		<!-- Apache common -->
		<dependency>
			<groupId>org.apache.commons</groupId>
			<artifactId>commons-lang3</artifactId>
			<version>3.0</version>
		</dependency>

		<dependency>
			<groupId>commons-validator</groupId>
			<artifactId>commons-validator</artifactId>
			<version>1.4.0</version>
		</dependency>


		<dependency>
			<groupId>commons-lang</groupId>
			<artifactId>commons-lang</artifactId>
			<version>2.6</version>
		</dependency>




		<!-- JodaTime -->
		<dependency>
			<groupId>joda-time</groupId>
			<artifactId>joda-time</artifactId>
			<version>${sm-core.jodatime.version}</version>
		</dependency>
		<dependency>
			<groupId>org.jadira.usertype</groupId>
			<artifactId>usertype.core</artifactId>
			<version>3.0.0.CR1</version>
		</dependency>





		<dependency>
			<groupId>org.freemarker</groupId>
			<artifactId>freemarker</artifactId>
			<version>${freemarker.version}</version>
		</dependency>




		<!-- Test dependencies -->
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>${sm-core.junit.version}</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-test</artifactId>
			<version>${sm-core.org.springframework.version}</version>
			<scope>test</scope>
		</dependency>

		<!-- <dependency> <groupId>com.oracle</groupId> <artifactId>ojdbc5</artifactId> 
			<version>11.1.0.7.0</version> <scope>provided</scope> </dependency> -->
	</dependencies>

	<repositories>
		<!-- For testing against latest Spring snapshots -->
		<repository>
			<id>org.springframework.maven.snapshot</id>
			<name>Spring Maven Snapshot Repository</name>
			<url>http://maven.springframework.org/snapshot</url>
			<releases>
				<enabled>false</enabled>
			</releases>
			<snapshots>
				<enabled>true</enabled>
			</snapshots>
		</repository>
		<!-- For developing against latest Spring milestones -->
		<repository>
			<id>org.springframework.maven.milestone</id>
			<name>Spring Maven Milestone Repository</name>
			<url>http://maven.springframework.org/milestone</url>
			<snapshots>
				<enabled>false</enabled>
			</snapshots>
		</repository>
		<repository>
			<id>org.jboss.repository.releases</id>
			<name>JBoss Maven Release Repository</name>
			<url>https://repository.jboss.org/nexus/content/repositories/releases</url>
			<snapshots>
				<enabled>false</enabled>
			</snapshots>
		</repository>
	</repositories>

	<build>
		<!-- Annotation processor to be generated in target/generated-sources The 
			build will generate the required annotated classes in generated-sources Then 
			will jump to the regular build in pluginManagement mvn clean mvn install 
			** if the install phase complains on missing Qxyz classes then mvn clean 
			mvn generate-sources mvn install *** Want to have the schema generated ** 
			hbm2ddl not working mvn hibernate3:hbm2ddl -->
		<plugins>
			<plugin>
				<groupId>org.bsc.maven</groupId>
				<artifactId>maven-processor-plugin</artifactId>
				<executions>
					<execution>
						<goals>
							<goal>process</goal>
						</goals>
					</execution>
				</executions>
			</plugin>
			<plugin>
				<groupId>com.mysema.maven</groupId>
				<artifactId>maven-apt-plugin</artifactId>
				<executions>
					<execution>
						<goals>
							<goal>process</goal>
						</goals>
						<configuration>
							<outputDirectory>target/generated-sources/querydsl</outputDirectory>
							<processor>com.mysema.query.apt.jpa.JPAAnnotationProcessor</processor>
						</configuration>
					</execution>
				</executions>
			</plugin>
		</plugins>
		<pluginManagement>
			<plugins>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-compiler-plugin</artifactId>
					<version>3.2</version>
					<configuration>
						<source>1.8</source>
						<target>1.8</target>
						<encoding>${project.build.sourceEncoding}</encoding>
						<compilerArgument>-proc:none</compilerArgument>
					</configuration>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-surefire-plugin</artifactId>
					<version>2.12</version>
					<configuration>
						<skipTests>true</skipTests>
					</configuration>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-war-plugin</artifactId>
					<version>2.2</version>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-install-plugin</artifactId>
					<version>2.3.1</version>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-release-plugin</artifactId>
					<version>2.2.2</version>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-assembly-plugin</artifactId>
					<version>2.3</version>
				</plugin>
				<plugin>
					<groupId>org.bsc.maven</groupId>
					<artifactId>maven-processor-plugin</artifactId>
					<version>2.0.5</version>
					<configuration>
						<outputDirectory>target/generated-sources</outputDirectory>
						<options>
							<fullyAnnotationConfigured>true</fullyAnnotationConfigured>
							<addSuppressWarningsAnnotation>true</addSuppressWarningsAnnotation>
						</options>
					</configuration>
					<executions>
						<execution>
							<id>process</id>
							<goals>
								<goal>process</goal>
							</goals>
							<phase>generate-sources</phase>
						</execution>
					</executions>
				</plugin>
				<plugin>
					<groupId>org.bsc.maven</groupId>
					<artifactId>maven-processor-plugin</artifactId>
					<executions>
						<execution>
							<id>process</id>
							<goals>
								<goal>process</goal>
							</goals>
							<phase>generate-sources</phase>
							<configuration>
								<options>
									<fullyAnnotationConfigured>true</fullyAnnotationConfigured>
									<addSuppressWarningsAnnotation>true</addSuppressWarningsAnnotation>
								</options>
							</configuration>
						</execution>
					</executions>
					<dependencies>
						<dependency>
							<groupId>org.hibernate</groupId>
							<artifactId>hibernate-jpamodelgen</artifactId>
							<version>${sm-core.hibernate-jpamodelgen.version}</version>
						</dependency>
					</dependencies>
				</plugin>
				<plugin>
					<groupId>com.mysema.maven</groupId>
					<artifactId>maven-apt-plugin</artifactId>
					<version>1.0.4</version>
					<configuration>
						<outputDirectory>target/generated-sources/querydsl</outputDirectory>
					</configuration>
					<executions>
						<execution>
							<goals>
								<goal>process</goal>
							</goals>
							<configuration>
								<processor>com.mysema.query.apt.jpa.JPAAnnotationProcessor</processor>
							</configuration>
						</execution>
					</executions>
					<dependencies>
						<dependency>
							<groupId>com.mysema.querydsl</groupId>
							<artifactId>querydsl-apt</artifactId>
							<version>${sm-core.querydsl.version}</version>
						</dependency>
					</dependencies>
				</plugin>
				<!-- hbm2ddl Hibernate entities to schema -->
				<plugin>
					<groupId>org.codehaus.mojo</groupId>
					<artifactId>hibernate3-maven-plugin</artifactId>
					<version>2.2</version><!-- 2.2 -->
					<executions>
						<execution>
							<phase>process-classes</phase>
							<goals>
								<goal>hbm2ddl</goal>
							</goals>
						</execution>
					</executions>
					<configuration>
						<components>
							<component>
								<name>hbm2ddl</name>
								<implementation>jpaconfiguration</implementation>
							</component>
						</components>
						<componentProperties>
							<persistenceunit>sm-unit</persistenceunit>
							<!--<propertyfile>src/test/resources/hbm2ddl.properties</propertyfile> -->
							<outputfilename>schema.ddl</outputfilename>
							<drop>false</drop>
							<create>true</create>
							<export>false</export>
							<format>true</format>
						</componentProperties>
					</configuration>
				</plugin>
				<!--This plugin's configuration is used to store Eclipse m2e settings 
					only. It has no influence on the Maven build itself. -->
				<plugin>
					<groupId>org.eclipse.m2e</groupId>
					<artifactId>lifecycle-mapping</artifactId>
					<version>1.0.0</version>
					<configuration>
						<lifecycleMappingMetadata>
							<pluginExecutions>
								<pluginExecution>
									<pluginExecutionFilter>
										<groupId>org.codehaus.mojo</groupId>
										<artifactId>aspectj-maven-plugin</artifactId>
										<versionRange>[1.0,)</versionRange>
										<goals>
											<goal>test-compile</goal>
											<goal>compile</goal>
										</goals>
									</pluginExecutionFilter>
									<action>
										<execute />
									</action>
								</pluginExecution>
							</pluginExecutions>
						</lifecycleMappingMetadata>
					</configuration>
				</plugin>
			</plugins>
		</pluginManagement>
	</build>
</project>
