<?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.2.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>

        <profile>
            <id>jacoco</id>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-surefire-plugin</artifactId>
                        <version>${surefire.plugin.version}</version>
                        <configuration>
                            <argLine>
                                -javaagent:${settings.localRepository}/org/jacoco/org.jacoco.agent/${jacoco.version}/org.jacoco.agent-${jacoco.version}-runtime.jar=destfile=${project.build.directory}/jacoco.exec
                            </argLine>
                            <excludedGroups>org.apache.usergrid.StressTest,org.apache.usergrid.ExperimentalTest
                            </excludedGroups>
                        </configuration>
                    </plugin>
                </plugins>
            </build>
        </profile>

    </profiles>

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

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

        <antlr.version>3.5.2</antlr.version>
        <archaius.version>0.5.12</archaius.version>
        <astyanax.version>3.9.0</astyanax.version>
        <cassandra.version>2.1.14</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>
        <datastax.version>2.1.10.3</datastax.version>
        <elasticsearch.version>5.6.3</elasticsearch.version>
        <fasterxml-uuid.version>3.1.3</fasterxml-uuid.version>
        <guava.version>18.0</guava.version>
        <guice.version>4.0-beta5</guice.version>
        <guicyfig.version>3.2</guicyfig.version>
        <hystrix.version>1.4.0</hystrix.version>
        <jackson-2-version>2.8.6</jackson-2-version>
        <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>1.0.14</rx.version>
        <slf4j.version>1.7.2</slf4j.version>
        <surefire.version>2.16</surefire.version>
        <metrics.version>3.0.0</metrics.version>
        <surefire.plugin.version>2.18.1</surefire.plugin.version>
        <jacoco.version>0.7.5.201505241946</jacoco.version>
        <aws.version>1.10.20</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>
        <module>cache</module>
        <module>actorsystem</module>
        <module>token</module>
    </modules>

    <build>

        <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 -Dlog4j.configuration=file:${basedir}/src/test/resources/log4j.properties</argLine>
                        <excludedGroups>org.apache.usergrid.StressTest,org.apache.usergrid.ExperimentalTest
                        </excludedGroups>
                    </configuration>
                </plugin>

                <plugin>
                    <groupId>org.jacoco</groupId>
                    <artifactId>jacoco-maven-plugin</artifactId>
                    <version>${jacoco.version}</version>

                    <executions>
                        <execution>
                            <id>default-prepare-agent</id>
                            <goals>
                                <goal>prepare-agent</goal>
                            </goals>
                        </execution>
                        <execution>
                            <id>default-report</id>
                            <phase>prepare-package</phase>
                            <goals>
                                <goal>report</goal>
                            </goals>
                        </execution>
                        <execution>
                            <id>default-check</id>
                            <goals>
                                <goal>check</goal>
                            </goals>
                            <configuration>
                                <rules>
                                    <rule>
                                        <element>BUNDLE</element>
                                        <limits>
                                            <limit>
                                                <counter>COMPLEXITY</counter>
                                                <value>COVEREDRATIO</value>
                                                <!-- we should increase this as our coverage increases -->
                                                <minimum>0.10</minimum>
                                            </limit>
                                        </limits>
                                    </rule>
                                </rules>
                            </configuration>
                        </execution>
                    </executions>

                    <configuration>
                        <fileSets>
                            <fileSet>
                                <directory>${project.build.directory}</directory>
                                <includes>
                                    <include>jacoco.exec</include>
                                </includes>
                            </fileSet>
                        </fileSets>
                    </configuration>

                </plugin>

            </plugins>
        </pluginManagement>

        <plugins>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
            </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>

            <plugin>
                <groupId>org.jacoco</groupId>
                <artifactId>jacoco-maven-plugin</artifactId>
            </plugin>

            <!--<plugin>-->
                <!--<groupId>org.apache.rat</groupId>-->
                <!--<artifactId>apache-rat-plugin</artifactId>-->
                <!--<executions>-->
                    <!--<execution>-->
                        <!--<phase>verify</phase>-->
                        <!--<goals>-->
                            <!--<goal>check</goal>-->
                        <!--</goals>-->
                    <!--</execution>-->
                <!--</executions>-->
                <!--<configuration>-->
                    <!--<excludes>-->
                        <!--<exclude>**/Coverage.md</exclude>-->
                        <!--<exclude>**/jacoco/**</exclude>-->
                        <!--<exclude>**/README.md</exclude>-->
                        <!--<exclude>**/CHANGES.txt</exclude>-->
                        <!--<exclude>**/*.json</exclude>-->
                        <!--<exclude>**/*.log</exclude>-->
                        <!--<exclude>**/*.md5</exclude>-->
                        <!--<exclude>**/*.opts</exclude>-->

                        <!--&lt;!&ndash; git and IDE project files &ndash;&gt;-->
                        <!--<exclude>**/.git/**</exclude>-->
                        <!--<exclude>**/.gitignore</exclude>-->
                        <!--<exclude>**/.idea/**</exclude>-->
                        <!--<exclude>**/*.iml</exclude>-->
                        <!--<exclude>**/*.log</exclude>-->
                        <!--<exclude>**/nbactions.xml</exclude>-->
                        <!--<exclude>**/nb-configuration.xml</exclude>-->
                        <!--<exclude>**/.classpath/**</exclude>-->
                        <!--<exclude>**/.project</exclude>-->
                        <!--<exclude>**/.settings/**</exclude>-->

                        <!--&lt;!&ndash; temporary build files &ndash;&gt;-->
                        <!--<exclude>**/logs/**</exclude>-->
                        <!--<exclude>**/docs/**</exclude>-->
                        <!--<exclude>**/tmp/**</exclude>-->
                        <!--<exclude>**/target/**</exclude>-->
                        <!--<exclude>**/antlr3/**</exclude>-->
                        <!--<exclude>**/META-INF/**</exclude>-->
                        <!--<exclude>**/dependency-reduced-pom.xml</exclude>-->
                        <!--<exclude>**/**QueryFilter.tokens</exclude>-->
                        <!--<exclude>**/**QueryFilterLexer.java</exclude>-->
                        <!--<exclude>**/**QueryFilterParser.java</exclude>-->
                        <!--<exclude>**/**.conf</exclude>-->
                        <!--<exclude>**/**.csv</exclude>-->
                        <!--<exclude>**/aws.properties</exclude>-->
                        <!--<exclude>**/tempExport*</exclude>-->
                        <!--<exclude>loadtests/loadtest_setup.sh</exclude>-->
                        <!--<exclude>loadtests/gatling/user-files/request-bodies/**</exclude>-->
                        <!--<exclude>loadtests/.java-version</exclude>-->

                        <!--&lt;!&ndash; gatling loadtest data files &ndash;&gt;-->
                        <!--<exclude>loadtests/src/main/scala/org/apache/usergrid/datagenerators/datafiles/**.txt</exclude>-->
                        <!--<exclude>loadtests/src/main/scala/org/apache/usergrid/datagenerators/**.txt</exclude>-->
                        <!--<exclude>loadtests/src/test/resources/**.csv</exclude>-->

                        <!--&lt;!&ndash; other &ndash;&gt;-->
                        <!--<exclude>**/catalina_base/**</exclude>-->
                        <!--<exclude>**/m2/**</exclude>-->
                        <!--<exclude>**/*.asc</exclude>-->
                        <!--<exclude>**/dummy.txt</exclude>-->
                        <!--<exclude>**/cloudbees.xml</exclude>-->
                        <!--<exclude>**/catalina_base/**</exclude>-->

                    <!--</excludes>-->
                <!--</configuration>-->

            <!--</plugin>-->

        </plugins>

        <resources>
            <resource>
                <directory>src/main/resources</directory>
                <filtering>true</filtering>
                <includes>
                    <include>**/*.properties</include>
                </includes>
            </resource>
            <!-- include everything else without filtering -->
            <resource>
                <directory>src/main/resources</directory>
                <filtering>false</filtering>
                <includes>
                    <include>**</include>
                </includes>
            </resource>
        </resources>

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

    </build>

</project>
