<?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:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0"
         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.2-SNAPSHOT</version>
    </parent>

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

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

    <properties>
        <main-prefix>geostore</main-prefix>
        <cxf-version>3.5.7</cxf-version>
        <activemq-version>5.3.0.4-fuse</activemq-version>
        <jersey-version>2.5.1</jersey-version>
        <!--
        spring-security-core 3.0.4 requires spring-core 3.x, otherwise we'd normally use 2.5.6, which
        is what the rest of the app uses
        -->
        <spring-version>5.3.18</spring-version>
        <!-- 2.5.6.SEC01 is the version used by smix-->
        <!-- 2.5.5 is the version used by memberService-->
        <spring-security-version>5.6.12</spring-security-version>
        <spring-security-oauth2-version>2.5.2.RELEASE</spring-security-oauth2-version>
        <camel-version>1.6.1.2-fuse</camel-version>
        <velocity-version>1.6.2</velocity-version>
        <javax-mail-version>1.4</javax-mail-version>
        <javax-annotation-version>1.0</javax-annotation-version>
        <xalan-version>2.7.0</xalan-version>
        <xercesImpl-version>2.8.1</xercesImpl-version>
        <xml-apis-version>1.3.03</xml-apis-version>
        <jaxws-version>2.3.1</jaxws-version>
        <commons-logging-version>1.1.1</commons-logging-version>
        <commons-lang-version>2.3</commons-lang-version>
        <commons-collections-version>3.2.2</commons-collections-version>
        <commons-beanutils-version>1.7.0</commons-beanutils-version>
        <commons-dbcp-version>1.2.2</commons-dbcp-version>
        <commons-codec-version>1.4</commons-codec-version>
        <geronimo-specs-version>1.1</geronimo-specs-version>
        <dozer-version>4.0</dozer-version>
        <jaxb-api-version>2.1</jaxb-api-version>
        <jaxb-impl-version>2.1.2</jaxb-impl-version>
        <log4j-version>2.19.0</log4j-version>
        <maven-assembly-plugin-version>2.2-beta-5</maven-assembly-plugin-version>
        <xbean-version>3.1.0.2-fuse</xbean-version>
        <spring-support>2.0.8</spring-support>
        <spring-ws-version>1.0.1</spring-ws-version>
        <aspectj-version>1.5.4</aspectj-version>
        <ubl-version>2.0</ubl-version>
        <jetty-version>6.1H.22</jetty-version>
        <jettison-version>1.4.0</jettison-version>
        <persistence-version>1.0</persistence-version>
        <hibernate-version>5.4.33.Final</hibernate-version>
        <hibernate-generic-dao-version>geosolutions-1.3.0</hibernate-generic-dao-version>
        <asm-version>2.2.3</asm-version>
        <cglib-version>2.1_3</cglib-version>
        <guava-version>18.0</guava-version>
        <mockito-version>3.8.0</mockito-version>
        <javassist-version>3.8.0.GA</javassist-version>
        <geoapi-version>2.3-M1</geoapi-version>
        <gt-version>2.7-RC2</gt-version>
        <jackson-version>2.16.1</jackson-version>
        <gson.version>2.9.0</gson.version>
        <quartz.version>1.5.2</quartz.version>
        <jdom.version>1.0</jdom.version>
        <commons-io.version>2.1</commons-io.version>
        <httpclient.version>4.5.13</httpclient.version>
        <acegi-security-tiger.version>1.0.7</acegi-security-tiger.version>
        <hibernate-jpa-2.1-api.version>1.0.2.Final</hibernate-jpa-2.1-api.version>
        <javax.servlet-api.version>3.0.1</javax.servlet-api.version>
        <junit.version>4.13.2</junit.version>
        <dao-hibernate.version>geosolutions-1.3.0</dao-hibernate.version>
        <jsr-275.version>1.0-beta-2</jsr-275.version>
        <jt-utils.version>1.1.1</jt-utils.version>
        <jai_imageio.version>1.1</jai_imageio.version>
        <jai_codec.version>1.1.3</jai_codec.version>
        <hibernate-spatial-postgis.version>1.1.1</hibernate-spatial-postgis.version>
        <postgis-jdbc.version>1.3.3</postgis-jdbc.version>
        <postgresql.version>42.3.9</postgresql.version>
        <jts.version>1.10</jts.version>
        <h2.version>1.3.175</h2.version>
        <picocli.version>4.6.1</picocli.version>
        <ojdbc6.version>11.2.0</ojdbc6.version>
        <spring-security-oauth2.version>2.0.17.RELEASE</spring-security-oauth2.version>
        <jasypt.version>1.9.3</jasypt.version>
        <keycloak-spring-security-adapter.version>18.0.0</keycloak-spring-security-adapter.version>
        <spring-security-jwt.version>1.0.11.RELEASE</spring-security-jwt.version>
        <java-jwt.version>3.18.3</java-jwt.version>
        <wiremock-standalone.version>2.1.12</wiremock-standalone.version>
        <hamcrest-core.version>1.3</hamcrest-core.version>
        <jersey-apache-client.version>1.12</jersey-apache-client.version>
        <freemarker.version>2.3.20</freemarker.version>
        <apacheds-all.version>1.5.5</apacheds-all.version>
        <shared-ldap.version>0.9.16</shared-ldap.version>
        <jetty.version>6.1.14</jetty.version>
        <jstl.version>1.2</jstl.version>
        <json-lib.version>2.4.2-geoserver</json-lib.version>
        <maven-pmd-plugin.version>3.11.0</maven-pmd-plugin.version>
        <maven-compiler-plugin.version>3.8.0</maven-compiler-plugin.version>
        <qa>true</qa>
        <lint>deprecation</lint>
        <spotbugs-maven-pligin>3.1.12.2</spotbugs-maven-pligin>
        <pmd.version>6.42.0</pmd.version>
        <errorProneFlags/>
        <errorProne.version>2.18.0</errorProne.version>
    </properties>

    <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>ftp://maven.geo-solutions.it/</url>
        </repository>
        <!-- use the following if you ARE using a snapshot version. -->
        <snapshotRepository>
            <uniqueVersion>false</uniqueVersion>
            <id>geosolutions</id>
            <url>ftp://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-core</artifactId>
                <version>${log4j-version}</version>
            </dependency>
            <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-slf4j-impl</artifactId>
                <version>${log4j-version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.logging.log4j</groupId>
                <artifactId>log4j-1.2-api</artifactId>
                <version>${log4j-version}</version>
            </dependency>

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

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

            <!-- =========================================================== -->
            <!--     APACHE COMMONS                                          -->
            <!-- =========================================================== -->
            <dependency>
                <groupId>commons-lang</groupId>
                <artifactId>commons-lang</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>
            <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.keycloak</groupId>
                <artifactId>keycloak-spring-security-adapter</artifactId>
                <version>${keycloak-spring-security-adapter.version}</version>
            </dependency>
            <dependency>
                <groupId>org.keycloak</groupId>
                <artifactId>keycloak-authz-client</artifactId>
                <version>${keycloak-spring-security-adapter.version}</version>
            </dependency>
            <dependency>
                <groupId>org.keycloak</groupId>
                <artifactId>keycloak-admin-client</artifactId>
                <version>${keycloak-spring-security-adapter.version}</version>
            </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>

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

    <build>
        <plugins>
            <!-- compilation -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
            </plugin>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-resources-plugin</artifactId>
                <version>3.0.1</version>
                <configuration>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>

                <!-- Use 2.4.2 because 2.4.3 has bug with system properties
				     see http://jira.codehaus.org/browse/SUREFIRE-121 -->
                <version>2.4.2</version>
                <configuration>
                    <argLine>-Dfile.encoding=UTF-8 -noverify</argLine>
                </configuration>
            </plugin>
        </plugins>
    </build>

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

    <profiles>
        <profile>
            <id>default</id>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
            <modules>
                <module>core</module>
                <module>modules</module>
                <module>web</module>
            </modules>
        </profile>
        <profile>
            <id>all</id>
            <modules>
                <module>core</module>
                <module>modules</module>
                <module>web</module>
                <module>cli</module>
            </modules>
        </profile>
        <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>
