<?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/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <description>Prototype for refactoring persistence of usergrid</description>

    <groupId>org.apache.usergrid</groupId>
    <artifactId>persistence</artifactId>
    <name>Usergrid Persistence</name>
    <packaging>pom</packaging>
    <version>2.0.0-SNAPSHOT</version>

  <profiles>
    <!-- better to have keep this sonar profile in your maven settings.xml -->
    <profile>
      <id>sonar</id>
      <activation>
        <activeByDefault>false</activeByDefault>
      </activation>
      <properties>
        <sonar.host.url>http://localhost:9000</sonar.host.url>
        <sonar.jdbc.url>jdbc:h2:tcp://localhost:9092/sonar</sonar.jdbc.url>
        <sonar.jdbc.username>sonar</sonar.jdbc.username>
        <sonar.jdbc.password>sonar</sonar.jdbc.password>
      </properties>
    </profile>

  </profiles>

    <properties>

        <maven.compiler.source>1.7</maven.compiler.source>
        <maven.compiler.target>1.7</maven.compiler.target>

        <antlr.version>3.4</antlr.version>
        <archaius.version>0.5.12</archaius.version>
        <astyanax.version>1.56.49-SNAPSHOT-UG-1</astyanax.version>
        <cassandra.version>1.2.18</cassandra.version>
<!--        <chop.version>1.0</chop.version>-->
        <commons.codec.version>1.6</commons.codec.version>
        <commons.collections.version>3.2.1</commons.collections.version>
        <commons.io.version>2.4</commons.io.version>
        <commons.lang.version>3.1</commons.lang.version>
        <elasticsearch.version>1.3.2</elasticsearch.version>
        <fasterxml-uuid.version>3.1.3</fasterxml-uuid.version>
        <guava.version>15.0</guava.version>
        <guice.version>4.0-beta5</guice.version>
        <guicyfig.version>3.2</guicyfig.version>
        <hystrix.version>1.3.16</hystrix.version>
        <jackson-2-version>2.4.1</jackson-2-version>
        <jackson-smile.verson>2.4.3</jackson-smile.verson>
        <mockito.version>1.10.8</mockito.version>
        <junit.version>4.11</junit.version>
        <kryo-serializers.version>0.26</kryo-serializers.version>
        <log4j.version>1.2.17</log4j.version>
        <rx.version>0.19.6</rx.version>
        <slf4j.version>1.7.2</slf4j.version>
        <surefire.version>2.16</surefire.version>
        <aws.version>1.9.0</aws.version>

    </properties>

    <modules>
        <module>model</module>
        <module>collection</module>
        <module>graph</module>
        <module>queryindex</module>
        <module>common</module>
        <module>map</module>
        <module>queue</module>
    </modules>

    <build>

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

        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>${surefire.version}</version>
                <configuration>
                    <includes>
                        <include>**/*Test.java</include>
                        <include>**/*IT.java</include>
                    </includes>
                    <systemPropertyVariables>
                        <archaius.deployment.environment>UNIT</archaius.deployment.environment>
                    </systemPropertyVariables>
                    <argLine>-Xms2G -Xmx4G</argLine>
                </configuration>
            </plugin>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jar-plugin</artifactId>
                <version>2.4</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>test-jar</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>

        <resources>
            <resource>
                <directory>src/main/resources</directory>
                <filtering>true</filtering>
                <includes>
                    <include>**/*.properties</include>
                </includes>
            </resource>
        </resources>

        <testResources>
            <testResource>
                <directory>src/test/resources</directory>
                <filtering>true</filtering>
                <includes>
                    <include>**/*.properties</include>
                </includes>
            </testResource>
        </testResources>

    </build>

    <repositories>
        <repository>
            <id>local-dependencies</id>
            <name>local-depedendencies</name>
            <url>file://${project.basedir}/../m2/repository</url>
        </repository>
    </repositories>

</project>
