<?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</artifactId>
	<!--<version>${sm-core.version}</version>-->
	<packaging>jar</packaging>

	<name>sm-core</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>
		<io.searchbox.jest-version>0.1.5</io.searchbox.jest-version>
		<guava.version>18.0</guava.version>
        <gson.version>2.3.1</gson.version>
		
		<jasperreports-version>3.7.4</jasperreports-version>
		<infinispan.version>5.3.0.Final</infinispan.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.drools.version>5.6.0.Final</sm-core.drools.version>
		<sm-core.hibernate-entitymanager-version>4.1.2</sm-core.hibernate-entitymanager-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.4.2</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>
	
		
		<!-- sm-core-model -->
		<dependency>
			<groupId>com.shopizer</groupId>
			<artifactId>sm-core-model</artifactId>
			<version>${sm-core-model.version}</version>
		</dependency>

		<!-- sm-core-modules -->
		<dependency>
			<groupId>com.shopizer</groupId>
			<artifactId>sm-core-modules</artifactId>
			<version>${sm-core-modules.version}</version>
		</dependency>

	    <!-- sm-search -->		
		<dependency>
			<groupId>com.shopizer</groupId>
			<artifactId>sm-search</artifactId>
			<version>${sm-search.version}</version>
		</dependency>
		
		<!-- shipping rules -->
		<!-- shipping distance pre-processor -->
 		<dependency>
			<groupId>com.shopizer</groupId>
			<artifactId>shopizer-shipping-distance-processor</artifactId>
			<version>${sm-shipping-distance-processor.version}</version>
		</dependency>
		
		<!-- canadapost -->
		<dependency>
			<groupId>com.shopizer</groupId>
			<artifactId>shopizer-shipping-canadapost-module</artifactId>
			<version>0.0.1</version>
		</dependency>

		<!-- 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>

		<!-- Pool c3p0 -->
		<dependency>
			<groupId>c3p0</groupId>
			<artifactId>c3p0</artifactId>
			<version>${sm-core.c3p0.version}</version>
		</dependency>

		<!-- Spring -->
		<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>

		<!-- 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>

		<!-- Mysql Connector -->
		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
			<version>${sm-core.mysql-connector-java}</version>
		</dependency>
		
		<!-- H2 Connector -->
		<dependency>
			<groupId>com.h2database</groupId>
			<artifactId>h2</artifactId>
			<version>1.3.152</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>

		<!-- File Upload -->
		<dependency>
			<groupId>commons-fileupload</groupId>
			<artifactId>commons-fileupload</artifactId>
			<version>1.2.2</version>
		</dependency>
		<dependency>
			<groupId>commons-io</groupId>
			<artifactId>commons-io</artifactId>
			<version>2.0.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>
		
		<!-- Rules engine -->
		<dependency>
			<groupId>org.drools</groupId>
			<artifactId>drools-spring</artifactId>
			<version>${sm-core.drools.version}</version>
		</dependency>

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


		<dependency>
			<groupId>commons-httpclient</groupId>
			<artifactId>commons-httpclient</artifactId>
			<version>3.1</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>


        <!-- Infinispan -->
  		<dependency>
			<groupId>org.infinispan</groupId>
    		<artifactId>infinispan-core</artifactId>
    		<version>${infinispan.version}</version>  
  		</dependency>

		<dependency>      
			<groupId>org.infinispan</groupId>      
			<artifactId>infinispan-cachestore-jdbc</artifactId>      
			<version>${infinispan.version}</version>
		</dependency> 
		
		<dependency>
			<groupId>org.infinispan</groupId>
			<artifactId>infinispan-tree</artifactId>
			<version>${infinispan.version}</version>
		</dependency>

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

		<dependency>
			<groupId>org.jopendocument</groupId>
			<artifactId>jOpenDocument</artifactId>
			<version>1.3b1</version>
		</dependency>
		
		<!--
	    <dependency>
			<groupId>com.lowagie</groupId>
			<artifactId>itext</artifactId>
			<version>4.2.1</version>
		</dependency>
		-->


		<dependency>
			<groupId>com.itextpdf</groupId>
			<artifactId>itextpdf</artifactId>
			<version>5.5.6</version>
		</dependency>
		
		
		<!-- integration -->
		<!--
		<dependency>
  			<groupId>com.paypal.sdk</groupId>
  			<artifactId>rest-api-sdk</artifactId>
  			<version>0.7.1</version>
		</dependency>
		-->
		
		<dependency>
			<groupId>com.paypal.sdk</groupId>
			<artifactId>merchantsdk</artifactId>
			<version>2.6.109</version>
		</dependency>
		
	    <dependency>
	        <groupId>com.maxmind.geoip2</groupId>
	        <artifactId>geoip2</artifactId>
	        <version>0.7.0</version>
	    </dependency>
	    
		<!-- search -->
		<dependency>
			<groupId>io.searchbox</groupId>
			<artifactId>jest</artifactId>
			<version>${io.searchbox.jest-version}</version>
		</dependency>

		<dependency>
                <groupId>com.google.guava</groupId>
                <artifactId>guava</artifactId>
                <version>${guava.version}</version>
         </dependency>

         <dependency>
                <groupId>com.google.code.gson</groupId>
                <artifactId>gson</artifactId>
                <version>${gson.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>${jdk-version}</source>
						<target>${jdk-version}</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.apache.maven.plugins</groupId>
		<artifactId>maven-source-plugin</artifactId>
		<executions>
			<execution>
				<id>attach-sources</id>
				<goals>
					<goal>jar</goal>
				</goals>
			</execution>
		</executions>
	   </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.2</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>
