<?xml version="1.0" encoding="UTF-8"?>
<!--
 Copyright (C) 2007 - 2016 GeoSolutions S.A.S.
 http://www.geo-solutions.it

 GPLv3 + Classpath exception

 This program is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
 the Free Software Foundation, either version 3 of the License, or
 (at your option) any later version.

 This program is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 GNU General Public License for more details.

 You should have received a copy of the GNU General Public License
 along with this program.  If not, see <http://www.gnu.org/licenses />.
-->
<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/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <parent>
        <groupId>it.geosolutions</groupId>
        <artifactId>geostore</artifactId>
        <version>2.6-SNAPSHOT</version>
    </parent>

    <groupId>it.geosolutions.geostore</groupId>
    <artifactId>geostore-root</artifactId>
    <packaging>pom</packaging>

    <name>GeoStore - 0 Server Root</name>

    <ciManagement>
        <system>jenkins</system>
        <url>http://ci.geo-solutions.it/</url>
    </ciManagement>

    <distributionManagement>
        <!-- use the following if you're not using a snapshot version. -->
        <repository>
            <uniqueVersion>false</uniqueVersion>
            <id>geosolutions</id>
            <url>sftp://maven.geo-solutions.it/</url>
        </repository>
        <!-- use the following if you ARE using a snapshot version. -->
        <snapshotRepository>
            <uniqueVersion>false</uniqueVersion>
            <id>geosolutions</id>
            <url>sftp://maven.geo-solutions.it/</url>
        </snapshotRepository>
    </distributionManagement>

    <!-- =========================================================== -->
    <!--     Dependency Management                                   -->
    <!--     If a POM declares one of those dependencies, then it    -->
    <!--     Will use the version specified here. Otherwise, those   -->
    <!--     dependencies are ignored.                               -->
    <!-- =========================================================== -->
    <dependencyManagement>
        <dependencies>

            <!-- =========================================================== -->
            <!--     GeoStore Core Modules                                    -->
            <!-- =========================================================== -->

            <dependency>
                <groupId>it.geosolutions.geostore</groupId>
                <artifactId>geostore-core</artifactId>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>it.geosolutions.geostore</groupId>
                <artifactId>geostore-model</artifactId>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>it.geosolutions.geostore</groupId>
                <artifactId>geostore-security</artifactId>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>it.geosolutions.geostore</groupId>
                <artifactId>geostore-persistence</artifactId>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>it.geosolutions.geostore</groupId>
                <artifactId>geostore-services-api</artifactId>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>it.geosolutions.geostore</groupId>
                <artifactId>geostore-services-impl</artifactId>
                <version>${project.version}</version>
            </dependency>

            <!-- =========================================================== -->
            <!--     GeoStore modules                                         -->
            <!-- =========================================================== -->
            <dependency>
                <groupId>it.geosolutions.geostore</groupId>
                <artifactId>geostore-generic-api</artifactId>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>it.geosolutions.geostore</groupId>
                <artifactId>geostore-login-parent</artifactId>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>it.geosolutions.geostore</groupId>
                <artifactId>geostore-login-api</artifactId>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>it.geosolutions.geostore</groupId>
                <artifactId>geostore-login-impl</artifactId>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>it.geosolutions.geostore</groupId>
                <artifactId>geostore-webgis</artifactId>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>it.geosolutions.geostore</groupId>
                <artifactId>geostore-rest-root</artifactId>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>it.geosolutions.geostore</groupId>
                <artifactId>geostore-rest-api</artifactId>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>it.geosolutions.geostore</groupId>
                <artifactId>geostore-rest-impl</artifactId>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>it.geosolutions.geostore</groupId>
                <artifactId>geostore-rest-test</artifactId>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>it.geosolutions.geostore</groupId>
                <artifactId>geostore-rest-extjs</artifactId>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>it.geosolutions.geostore</groupId>
                <artifactId>geostore-rest-auditing</artifactId>
                <version>${project.version}</version>
            </dependency>

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


            <!-- TEST PACKAGE DEPENDENCY RESOULTION -->

            <dependency>
                <groupId>it.geosolutions.geostore</groupId>
                <artifactId>geostore-services-impl</artifactId>
                <version>${project.version}</version>
                <type>test-jar</type>
                <scope>test</scope>
            </dependency>

            <!-- =========================================================== -->
            <!--     Quartz                                                  -->
            <!-- =========================================================== -->
            <dependency>
                <groupId>quartz</groupId>
                <artifactId>quartz</artifactId>
                <version>${quartz.version}</version>
            </dependency>
            <dependency>
                <groupId>javassist</groupId>
                <artifactId>javassist</artifactId>
                <version>${javassist-version}</version>
                <scope>runtime</scope>
            </dependency>

            <!-- =========================================================== -->
            <!--     4J                                                      -->
            <!-- =========================================================== -->
            <dependency>
                <groupId>org.apache.logging.log4j</groupId>
                <artifactId>log4j-1.2-api</artifactId>
                <version>${log4j.version}</version>
            </dependency>
            <!-- Logging -->
            <dependency>
                <groupId>org.apache.logging.log4j</groupId>
                <artifactId>log4j-api</artifactId>
                <version>${log4j.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.logging.log4j</groupId>
                <artifactId>log4j-core</artifactId>
                <version>${log4j.version}</version>
            </dependency>
            <!-- Override SLF4J to your single, newest version -->
            <!-- 3) Force your single SLF4J -->
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-api</artifactId>
                <version>${slf4j.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.logging.log4j</groupId>
                <artifactId>log4j-slf4j-impl</artifactId>
                <version>${log4j.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.slf4j</groupId>
                        <artifactId>slf4j-api</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>

            <!-- =========================================================== -->

            <dependency>
                <groupId>jdom</groupId>
                <artifactId>jdom</artifactId>
                <version>${jdom.version}</version>
            </dependency>

            <!-- =========================================================== -->
            <!--     APACHE COMMONS                                          -->
            <!-- =========================================================== -->
            <dependency>
                <groupId>org.apache.commons</groupId>
                <artifactId>commons-lang3</artifactId>
                <version>${commons-lang-version}</version>
            </dependency>
            <dependency>
                <groupId>commons-io</groupId>
                <artifactId>commons-io</artifactId>
                <version>${commons-io.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.httpcomponents</groupId>
                <artifactId>httpclient</artifactId>
                <version>${httpclient.version}</version>
            </dependency>
            <dependency>
                <groupId>commons-dbcp</groupId>
                <artifactId>commons-dbcp</artifactId>
                <version>${commons-dbcp-version}</version>
            </dependency>
            <dependency>
                <groupId>commons-beanutils</groupId>
                <artifactId>commons-beanutils</artifactId>
                <version>${commons-beanutils-version}</version>
            </dependency>
            <dependency>
                <groupId>commons-collections</groupId>
                <artifactId>commons-collections</artifactId>
                <version>${commons-collections-version}</version>
            </dependency>
            <dependency>
                <groupId>commons-codec</groupId>
                <artifactId>commons-codec</artifactId>
                <version>${commons-codec-version}</version>
            </dependency>

            <dependency>
                <groupId>com.google.guava</groupId>
                <artifactId>guava</artifactId>
                <version>${guava-version}</version>
            </dependency>
            <dependency>
                <groupId>org.mockito</groupId>
                <artifactId>mockito-core</artifactId>
                <version>${mockito-version}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.mockito</groupId>
                <artifactId>mockito-inline</artifactId>
                <version>${mockito-version}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>com.github.tomakehurst</groupId>
                <artifactId>wiremock-standalone</artifactId>
                <version>${wiremock-standalone.version}</version>
                <scope>test</scope>
            </dependency>
            <!-- Testcontainers BOM -->
            <dependency>
                <groupId>org.testcontainers</groupId>
                <artifactId>testcontainers-bom</artifactId>
                <version>${testcontainers.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>com.github.dasniko</groupId>
                <artifactId>testcontainers-keycloak</artifactId>
                <version>${testcontainers-keycloak.version}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.hamcrest</groupId>
                <artifactId>hamcrest-core</artifactId>
                <version>${hamcrest-core.version}</version>
                <scope>test</scope>
            </dependency>

            <!-- =========================================================== -->
            <!--     JERSEY                                                  -->
            <!-- =========================================================== -->
            <dependency>
                <groupId>org.glassfish.jersey.containers</groupId>
                <artifactId>jersey-container-servlet</artifactId>
                <version>${jersey-version}</version>
            </dependency>

            <dependency>
                <groupId>org.glassfish.jersey.ext</groupId>
                <artifactId>jersey-spring3</artifactId>
                <version>${jersey-version}</version>
            </dependency>

            <dependency>
                <groupId>com.sun.jersey.contribs</groupId>
                <artifactId>jersey-apache-client</artifactId>
                <version>${jersey-apache-client.version}</version>
            </dependency>

            <dependency>
                <groupId>com.sun.jersey</groupId>
                <artifactId>jersey-client</artifactId>
                <version>${jersey-apache-client.version}</version>
            </dependency>
            <!-- =========================================================== -->
            <!--     APACHE CXF                                              -->
            <!-- =========================================================== -->
            <dependency>
                <groupId>javax.xml.ws</groupId>
                <artifactId>jaxws-api</artifactId>
                <version>${jaxws-version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>javax.jws</groupId>
                        <artifactId>jsr181-api</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>

            <dependency>
                <groupId>org.apache.cxf</groupId>
                <artifactId>cxf-rt-bindings-http</artifactId>
                <version>${cxf-version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.cxf</groupId>
                <artifactId>cxf-rt-transports-http</artifactId>
                <version>${cxf-version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.cxf</groupId>
                <artifactId>cxf-rt-rs-extension-providers</artifactId>
                <version>${cxf-version}</version>
            </dependency>

            <dependency>
                <groupId>org.apache.cxf</groupId>
                <artifactId>cxf-rt-rs-json-basic</artifactId>
                <version>${cxf-version}</version>
            </dependency>

            <dependency>
                <groupId>org.apache.cxf</groupId>
                <artifactId>cxf-rt-rs-client</artifactId>
                <version>${cxf-version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.cxf</groupId>
                <artifactId>cxf-rt-transports-http-jetty</artifactId>
                <version>${cxf-version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.cxf</groupId>
                <artifactId>cxf-rt-frontend-jaxws</artifactId>
                <version>${cxf-version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.apache.geronimo.specs</groupId>
                        <artifactId>geronimo-annotation_1.0_spec</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.apache.geronimo.specs</groupId>
                        <artifactId>geronimo-javamail_1.4_spec</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.apache.cxf</groupId>
                <artifactId>cxf-rt-bindings-soap</artifactId>
                <version>${cxf-version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.apache.geronimo.specs</groupId>
                        <artifactId>geronimo-javamail_1.4_spec</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.apache.cxf</groupId>
                <artifactId>cxf-rt-databinding-aegis</artifactId>
                <version>${cxf-version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.cxf</groupId>
                <artifactId>cxf-rt-frontend-jaxrs</artifactId>
                <version>${cxf-version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.cxf</groupId>
                <artifactId>cxf-rt-ws-security</artifactId>
                <version>${cxf-version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.cxf</groupId>
                <artifactId>cxf-rt-core</artifactId>
                <version>${cxf-version}</version>
            </dependency>
            <dependency>
                <groupId>com.google.code.cxf-spring-security</groupId>
                <artifactId>cxf-spring-security</artifactId>
                <version>${cxf-version}</version>
            </dependency>

            <!-- =========================================================== -->
            <!--     Velocity                                                -->
            <!-- =========================================================== -->
            <dependency>
                <groupId>org.apache.velocity</groupId>
                <artifactId>velocity</artifactId>
                <version>${velocity-version}</version>
            </dependency>

            <dependency>
                <groupId>javax.mail</groupId>
                <artifactId>mail</artifactId>
                <version>${javax-mail-version}</version>
            </dependency>

            <!-- =========================================================== -->
            <!--     JAXB                                                    -->
            <!-- =========================================================== -->
            <dependency>
                <groupId>javax.xml.bind</groupId>
                <artifactId>jaxb-api</artifactId>
                <version>${jaxb-api-version}</version>
            </dependency>
            <dependency>
                <groupId>com.sun.xml.bind</groupId>
                <artifactId>jaxb-impl</artifactId>
                <version>${jaxb-impl-version}</version>
            </dependency>

            <!-- =========================================================== -->
            <!--     SPRING                                                  -->
            <!-- =========================================================== -->
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-framework-bom</artifactId>
                <version>${spring-version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>

            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-core</artifactId>
                <version>${spring-version}</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-jmx</artifactId>
                <version>${spring-support}</version>
                <exclusions>
                    <exclusion>
                        <groupId>log4j</groupId>
                        <artifactId>log4j</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-beans</artifactId>
                <version>${spring-version}</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-context</artifactId>
                <version>${spring-version}</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-tx</artifactId>
                <version>${spring-version}</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-context-support</artifactId>
                <version>${spring-version}</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-jdbc</artifactId>
                <version>${spring-version}</version>
            </dependency>

            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-test</artifactId>
                <version>${spring-version}</version>
                <scope>test</scope>
            </dependency>

            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-orm</artifactId>
                <version>${spring-version}</version>
            </dependency>

            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-aop</artifactId>
                <version>${spring-version}</version>
            </dependency>

            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-web</artifactId>
                <version>${spring-version}</version>
            </dependency>

            <!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-core -->
            <dependency>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-core</artifactId>
                <version>${jackson-version}</version>
            </dependency>

            <dependency>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-annotations</artifactId>
                <version>${jackson-version}</version>
            </dependency>

            <dependency>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-databind</artifactId>
                <version>${jackson-version}</version>
            </dependency>

            <!-- =========================================================== -->
            <!--     SPRING SECURITY                                         -->
            <!-- =========================================================== -->
            <dependency>
                <groupId>org.springframework.security</groupId>
                <artifactId>spring-security-core</artifactId>
                <version>${spring-security-version}</version>
            </dependency>
            <dependency>
                <groupId>org.springframework.security</groupId>
                <artifactId>spring-security-taglibs</artifactId>
                <version>${spring-security-version}</version>
            </dependency>
            <dependency>
                <groupId>org.springframework.security</groupId>
                <artifactId>spring-security-acl</artifactId>
                <version>${spring-security-version}</version>
            </dependency>

            <dependency>
                <groupId>org.springframework.security</groupId>
                <artifactId>spring-security-web</artifactId>
                <version>${spring-security-version}</version>
            </dependency>
            <dependency>
                <groupId>org.springframework.security</groupId>
                <artifactId>spring-security-config</artifactId>
                <version>${spring-security-version}</version>
            </dependency>
            <dependency>
                <groupId>org.springframework.security.oauth</groupId>
                <artifactId>spring-security-oauth2</artifactId>
                <version>${spring-security-oauth2.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.springframework</groupId>
                        <artifactId>spring-context</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.springframework</groupId>
                        <artifactId>spring-core</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.springframework</groupId>
                        <artifactId>spring-webmvc</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.springframework</groupId>
                        <artifactId>spring-beans</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.codehaus.jackson</groupId>
                        <artifactId>jackson-core-asl</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.codehaus.jackson</groupId>
                        <artifactId>jackson-mapper-asl</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.springframework.security</groupId>
                <artifactId>spring-security-ldap</artifactId>
                <version>${spring-security-version}</version>
            </dependency>
            <!-- crypto libs -->
            <dependency>
                <groupId>org.springframework.security</groupId>
                <artifactId>spring-security-crypto</artifactId>
                <version>${spring-security-version}</version>
            </dependency>
            <dependency>
                <groupId>org.jasypt</groupId>
                <artifactId>jasypt-acegisecurity</artifactId>
                <version>${jasypt.version}</version>
            </dependency>
            <dependency>
                <groupId>org.acegisecurity</groupId>
                <artifactId>acegi-security-tiger</artifactId>
                <version>${acegi-security-tiger.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>log4j</groupId>
                        <artifactId>log4j</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.springframework</groupId>
                        <artifactId>spring-support</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.springframework.security</groupId>
                <artifactId>spring-security-jwt</artifactId>
                <version>${spring-security-jwt.version}</version>
            </dependency>
            <dependency>
                <groupId>com.auth0</groupId>
                <artifactId>java-jwt</artifactId>
                <version>${java-jwt.version}</version>
            </dependency>
            <dependency>
                <groupId>com.jayway.jsonpath</groupId>
                <artifactId>json-path</artifactId>
                <version>${json-path.version}</version>
            </dependency>
            <dependency>
                <groupId>com.nimbusds</groupId>
                <artifactId>nimbus-jose-jwt</artifactId>
                <version>${nimbus-jose-jwt.version}</version>
            </dependency>

            <!-- =========================================================== -->
            <!--     JAVAX PERSISTENCE                                       -->
            <!-- =========================================================== -->
            <!--dependency>
                <groupId>javax.persistence</groupId>
                <artifactId>persistence-api</artifactId>
                <version>${persistence-version}</version>
            </dependency-->

            <!-- https://mvnrepository.com/artifact/org.hibernate.javax.persistence/hibernate-jpa-2.0-api -->
            <!-- https://mvnrepository.com/artifact/org.hibernate.javax.persistence/hibernate-jpa-2.1-api -->
            <dependency>
                <groupId>org.hibernate.javax.persistence</groupId>
                <artifactId>hibernate-jpa-2.1-api</artifactId>
                <version>${hibernate-jpa-2.1-api.version}</version>
            </dependency>

            <!-- =========================================================== -->
            <!--     JAVAX SERVLET                                           -->
            <!-- =========================================================== -->
            <dependency>
                <groupId>javax.servlet</groupId>
                <artifactId>javax.servlet-api</artifactId>
                <version>${javax.servlet-api.version}</version>
                <scope>provided</scope>
            </dependency>

            <!-- =========================================================== -->
            <!--     CGLIB                                                   -->
            <!-- =========================================================== -->
            <dependency>
                <groupId>asm</groupId>
                <artifactId>asm</artifactId>
                <version>${asm-version}</version>
            </dependency>
            <dependency>
                <groupId>cglib</groupId>
                <artifactId>cglib</artifactId>
                <version>${cglib-version}</version>
            </dependency>
            <dependency>
                <groupId>cglib</groupId>
                <artifactId>cglib-nodep</artifactId>
                <version>${cglib-version}</version>
            </dependency>

            <!-- =========================================================== -->
            <!--     HTTP UTILS                                              -->
            <!-- =========================================================== -->
            <dependency>
                <groupId>org.codehaus.jettison</groupId>
                <artifactId>jettison</artifactId>
                <version>${jettison-version}</version>
            </dependency>

            <dependency>
                <groupId>org.aspectj</groupId>
                <artifactId>aspectjrt</artifactId>
                <version>${aspectj-version}</version>
            </dependency>
            <dependency>
                <groupId>org.aspectj</groupId>
                <artifactId>aspectjweaver</artifactId>
                <version>${aspectj-version}</version>
            </dependency>

            <!-- =========================================================== -->
            <!--     JUNIT                                                   -->
            <!-- =========================================================== -->
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>${junit.version}</version>
                <scope>test</scope>
            </dependency>

            <!-- =========================================================== -->
            <!--     HIBERNATE-GENERIC-DAO                                   -->
            <!-- =========================================================== -->
            <!-- https://mvnrepository.com/artifact/com.googlecode.genericdao/dao-hibernate -->
            <dependency>
                <groupId>com.googlecode.genericdao</groupId>
                <artifactId>dao-hibernate</artifactId>
                <version>${dao-hibernate.version}</version>
            </dependency>

            <dependency>
                <groupId>com.googlecode.genericdao</groupId>
                <artifactId>search-jpa-hibernate</artifactId>
                <version>${dao-hibernate.version}</version>
            </dependency>

            <!-- =========================================================== -->
            <!--     HIBERNATE                                               -->
            <!-- =========================================================== -->
            <dependency>
                <groupId>org.hibernate</groupId>
                <artifactId>hibernate-core</artifactId>
                <version>${hibernate-version}</version>
            </dependency>
            <!-- https://mvnrepository.com/artifact/org.hibernate/hibernate-ehcache -->
            <dependency>
                <groupId>org.hibernate</groupId>
                <artifactId>hibernate-ehcache</artifactId>
                <version>${hibernate-version}</version>
            </dependency>

            <!-- =========================================================== -->
            <!--     HIBERNATE-SPATIAL                                       -->
            <!-- =========================================================== -->
            <dependency>
                <groupId>org.hibernatespatial</groupId>
                <artifactId>hibernate-spatial-postgis</artifactId>
                <version>${hibernate-spatial-postgis.version}</version>
            </dependency>

            <!-- =========================================================== -->
            <!--     POSTGRES - POSTGIS                                      -->
            <!-- =========================================================== -->
            <dependency>
                <groupId>org.postgis</groupId>
                <artifactId>postgis-jdbc</artifactId>
                <version>${postgis-jdbc.version}</version>
            </dependency>
            <dependency>
                <groupId>org.postgresql</groupId>
                <artifactId>postgresql</artifactId>
                <version>${postgresql.version}</version>
            </dependency>
            <dependency>
                <groupId>com.vividsolutions</groupId>
                <artifactId>jts</artifactId>
                <version>${jts.version}</version>
            </dependency>

            <!-- =========================================================== -->
            <!-- JAI & ImageIO                                               -->
            <!-- =========================================================== -->
            <dependency>
                <groupId>javax.media</groupId>
                <artifactId>jai_core</artifactId>
                <version>${jai_codec.version}</version>
            </dependency>
            <dependency>
                <groupId>javax.media</groupId>
                <artifactId>jai_codec</artifactId>
                <version>${jai_codec.version}</version>
            </dependency>
            <dependency>
                <groupId>javax.media</groupId>
                <artifactId>jai_imageio</artifactId>
                <version>${jai_imageio.version}</version>
            </dependency>

            <dependency>
                <groupId>com.googlecode.jaitools</groupId>
                <artifactId>jt-utils</artifactId>
                <version>${jt-utils.version}</version>
            </dependency>

            <dependency>
                <groupId>net.java.dev.jsr-275</groupId>
                <artifactId>jsr-275</artifactId>
                <version>${jsr-275.version}</version>
            </dependency>

            <dependency>
                <groupId>javax.annotation</groupId>
                <artifactId>jsr250-api</artifactId>
                <version>${javax-annotation-version}</version>
            </dependency>

            <!-- =========================================================== -->
            <!--     GEOTOOLS                                                -->
            <!-- =========================================================== -->
            <dependency>
                <groupId>org.opengis</groupId>
                <artifactId>geoapi</artifactId>
                <version>${geoapi-version}</version>
            </dependency>
            <dependency>
                <groupId>org.opengis</groupId>
                <artifactId>geoapi-dummy-pending</artifactId>
                <version>${geoapi-version}</version>
            </dependency>
            <dependency>
                <groupId>org.opengis</groupId>
                <artifactId>geoapi-pending</artifactId>
                <version>${geoapi-version}</version>
            </dependency>
            <dependency>
                <groupId>org.geotools</groupId>
                <artifactId>gt-main</artifactId>
                <version>${gt-version}</version>
            </dependency>
            <dependency>
                <groupId>org.geotools</groupId>
                <artifactId>gt-api</artifactId>
                <version>${gt-version}</version>
            </dependency>
            <dependency>
                <groupId>org.geotools</groupId>
                <artifactId>gt-referencing</artifactId>
                <version>${gt-version}</version>
            </dependency>
            <dependency>
                <groupId>org.geotools</groupId>
                <artifactId>gt-metadata</artifactId>
                <version>${gt-version}</version>
            </dependency>
            <dependency>
                <groupId>org.geotools</groupId>
                <artifactId>gt-epsg-hsql</artifactId>
                <version>${gt-version}</version>
            </dependency>
            <dependency>
                <groupId>org.geotools</groupId>
                <artifactId>gt-epsg-h2</artifactId>
                <version>${gt-version}</version>
            </dependency>
            <dependency>
                <groupId>org.geotools</groupId>
                <artifactId>gt-epsg-extension</artifactId>
                <version>${gt-version}</version>
            </dependency>
            <dependency>
                <groupId>org.geotools</groupId>
                <artifactId>gt-geotiff</artifactId>
                <version>${gt-version}</version>
            </dependency>
            <dependency>
                <groupId>org.geotools</groupId>
                <artifactId>gt-coveragetools</artifactId>
                <version>${gt-version}</version>
            </dependency>
            <dependency>
                <groupId>org.geotools</groupId>
                <artifactId>gt-shapefile</artifactId>
                <version>${gt-version}</version>
            </dependency>
            <dependency>
                <groupId>org.geotools.jdbc</groupId>
                <artifactId>gt-jdbc-postgis</artifactId>
                <version>${gt-version}</version>
            </dependency>
            <dependency>
                <groupId>org.geotools</groupId>
                <artifactId>gt-epsg-wkt</artifactId>
                <version>${gt-version}</version>
            </dependency>

            <!-- H2 -->
            <dependency>
                <groupId>com.h2database</groupId>
                <artifactId>h2</artifactId>
                <version>${h2.version}</version>
            </dependency>

            <!-- ORACLE database driver -->
            <dependency>
                <groupId>com.oracle</groupId>
                <artifactId>ojdbc6</artifactId>
                <version>${ojdbc6.version}</version>
            </dependency>

            <!-- JSON -->
            <dependency>
                <groupId>net.sf.json-lib</groupId>
                <artifactId>json-lib</artifactId>
                <version>${json-lib.version}</version>
            </dependency>

            <dependency>
                <groupId>info.picocli</groupId>
                <artifactId>picocli</artifactId>
                <version>${picocli.version}</version>
            </dependency>

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

            <!-- LDAP Deps -->
            <dependency>
                <groupId>org.apache.directory.server</groupId>
                <artifactId>apacheds-all</artifactId>
                <version>${apacheds-all.version}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.directory.shared</groupId>
                <artifactId>shared-ldap</artifactId>
                <version>${shared-ldap.version}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.mortbay.jetty</groupId>
                <artifactId>jetty</artifactId>
                <version>${jetty.version}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>jstl</groupId>
                <artifactId>jstl</artifactId>
                <version>${jstl.version}</version>
                <scope>test</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <repositories>
        <!-- GeoSolutions -->
        <repository>
            <id>geosolutions</id>
            <name>GeoSolutions Repository</name>
            <url>https://maven.geo-solutions.it</url>
        </repository>

        <repository>
            <id>maven2-repository.maven</id>
            <name>Repository for Maven2</name>
            <url>https://repo1.maven.org/maven2/</url>
            <layout>default</layout>
        </repository>

        <!-- Apache -->
        <repository>
            <id>maven2-repository.dev.java.net</id>
            <name>Java.net Repository for Maven</name>
            <url>https://download.java.net/maven/2/</url>
            <layout>default</layout>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </repository>
        <!-- JBoss -->
        <!--repository>
            <id>jboss-repo</id>
            <name>JBoss Maven2 Repository</name>
            <url>http://repository.jboss.com/maven2</url>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </repository-->

        <!-- Spring -->
        <!--repository>
            <id>spring-release</id>
            <name>Spring Portfolio Release Repository</name>
            <url>https://maven.springframework.org/release</url>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </repository>
        <repository>
            <id>spring-external</id>
            <name>Spring Portfolio External Repository</name>
            <url>http://maven.springframework.org/external</url>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </repository-->

        <repository>
            <id>osgeo</id>
            <name>Open Source Geospatial Foundation Repository</name>
            <url>https://repo.osgeo.org/repository/release/</url>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </repository>

    </repositories>

    <pluginRepositories>
        <pluginRepository>
            <id>repo1.maven.org-maven2</id>
            <name>repo1.maven.org-maven2</name>
            <url>https://repo1.maven.org/maven2/</url>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
            <releases>
                <enabled>true</enabled>
            </releases>
        </pluginRepository>
    </pluginRepositories>

    <modules>
        <module>core</module>
        <module>modules</module>
        <module>web</module>
    </modules>
    <profiles>
        <profile>
            <id>cli</id>
            <modules>
                <module>cli</module>
            </modules>
        </profile>
        <profile>
            <id>pmd</id>
            <activation>
                <property>
                    <name>qa</name>
                    <value>!false</value>
                </property>
            </activation>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-pmd-plugin</artifactId>
                        <version>${maven-pmd-plugin.version}</version>
                        <dependencies>
                            <dependency>
                                <groupId>net.sourceforge.pmd</groupId>
                                <artifactId>pmd-core</artifactId>
                                <version>${pmd.version}</version>
                            </dependency>
                            <dependency>
                                <groupId>net.sourceforge.pmd</groupId>
                                <artifactId>pmd-java</artifactId>
                                <version>${pmd.version}</version>
                            </dependency>
                            <dependency>
                                <groupId>net.sourceforge.pmd</groupId>
                                <artifactId>pmd-javascript</artifactId>
                                <version>${pmd.version}</version>
                            </dependency>
                            <dependency>
                                <groupId>net.sourceforge.pmd</groupId>
                                <artifactId>pmd-jsp</artifactId>
                                <version>${pmd.version}</version>
                            </dependency>
                        </dependencies>
                        <configuration>
                            <rulesets>
                                <ruleset>${geostore.basedir}/qa/pmd-ruleset.xml</ruleset>
                            </rulesets>
                            <failurePriority>3</failurePriority>
                            <minimumPriority>3</minimumPriority>
                            <verbose>true</verbose>
                            <printFailingErrors>true</printFailingErrors>
                            <excludeRoots>
                                <excludeRoot>target/generated-sources</excludeRoot>
                            </excludeRoots>
                        </configuration>
                        <executions>
                            <execution>
                                <goals>
                                    <goal>check</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
        <!-- profile>
            <id>errorprone</id>
            <activation>
                <property>
                    <name>qa</name>
                    <value>!false</value>
                </property>
            </activation>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-compiler-plugin</artifactId>
                        <version>${maven-compiler-plugin.version}</version>
                        <configuration>
                            <fork>false</fork>
                            <compilerArgs>
                                <arg>-XDcompilePolicy=simple</arg>
                                <arg>-Xplugin:ErrorProne
                                    -XepExcludedPaths:${project.build.directory}/generated-sources/.* ${errorProneFlags}
                                </arg>
                                <arg>-Xlint:${lint}</arg>
                                <arg>-Xmaxwarns</arg>
                                <arg>1000</arg>
                            </compilerArgs>
                            <annotationProcessorPaths>
                                <path>
                                    <groupId>com.google.errorprone</groupId>
                                    <artifactId>error_prone_core</artifactId>
                                    <version>${errorProne.version}</version>
                                </path>
                            </annotationProcessorPaths>
                        </configuration>
                    </plugin>
                </plugins>
            </build>
        </profile -->
        <profile>
            <id>spotbugs</id>
            <activation>
                <property>
                    <name>qa</name>
                    <value>!false</value>
                </property>
            </activation>
            <build>
                <plugins>
                    <plugin>
                        <groupId>com.github.spotbugs</groupId>
                        <artifactId>spotbugs-maven-plugin</artifactId>
                        <version>${spotbugs-maven-pligin}</version>
                        <configuration>
                            <effort>More</effort>
                            <!--threshold>High</threshold-->
                            <xmlOutput>true</xmlOutput>
                            <maxRank>15</maxRank>
                            <excludeFilterFile>${geostore.basedir}/qa/spotbugs-exclude.xml</excludeFilterFile>
                            <jvmArgs>-XX:+TieredCompilation -XX:TieredStopAtLevel=1</jvmArgs>
                        </configuration>
                        <executions>
                            <execution>
                                <goals>
                                    <goal>check</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
    </profiles>

</project>
