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

    <parent>
        <groupId>com.guicedee</groupId>
        <artifactId>guicedee-group</artifactId>
        <version>62</version>
    </parent>

    <groupId>com.guicedee.services</groupId>
    <artifactId>services-parent</artifactId>
    <packaging>pom</packaging>

    <properties>
        <skipTests>true</skipTests>
        <sonar.skip>true</sonar.skip>

        <lombok.version>1.18.8</lombok.version>
        <mapstruct.version>1.3.0.Final</mapstruct.version>

        <jackson.version>2.10.1</jackson.version>


        <faces.version>2.3.9</faces.version>

        <guice.version>${project.version}</guice.version>
        <guava.version>26.0-jre</guava.version>
        <servlet.api.version>3.1.0</servlet.api.version>
        <javassist.version>3.25.0-GA</javassist.version>
        <jcabi.aspects.version>0.22.6</jcabi.aspects.version>
        <javax.cache.api.version>1.1.0</javax.cache.api.version>
        <javax.activation.version>1.2.0</javax.activation.version>

        <jaxb.version>2.3.2</jaxb.version>
        <glassfish.jaxb.version>2.4.0-b180830.0359</glassfish.jaxb.version>

        <jsr305.version>2.0.3</jsr305.version>
        <jsr311.api.version>1.1.1</jsr311.api.version>

        <javax.persistence.api>2.2</javax.persistence.api>
        <javax.transaction.api>1.1</javax.transaction.api>
        <javax.transaction.transactionapi>1.3</javax.transaction.transactionapi>
        <eclipselink.version>2.7.4</eclipselink.version>

        <h2.db.api>1.4.199</h2.db.api>
        <bytebuddy.version>1.10.2</bytebuddy.version>
        <jpa21.version>1.0.2.Final</jpa21.version>
        <hazelcast.version>3.12.1</hazelcast.version>
        <ehcache.version>3.8.0</ehcache.version>

        <quality.check.version>1.3</quality.check.version>
        <uadetector.core.version>0.9.22</uadetector.core.version>
        <uadetector.json.version>0.1.22</uadetector.json.version>
        <uadetector.detector.version>2014.10</uadetector.detector.version>
        <sl4j.version>1.8.0-beta2</sl4j.version>

        <io.swagger.version>2.0.8</io.swagger.version>

        <undertow.version>1.4.28.Final</undertow.version>
        <io.undertow.version>1.4.28.Final</io.undertow.version>
        <xnio.version>3.3.8.Final</xnio.version>

        <jsr.250>1.0</jsr.250>

        <tica.version>1.22</tica.version>
        <java.mail.version>1.6.3</java.mail.version>

        <jboss.annotations.spec.version>1.0.1.Final</jboss.annotations.spec.version>

        <jpa21.version>1.0.2.Final</jpa21.version>
        <hazelcast.version>3.12.4</hazelcast.version>

    </properties>

    <profiles>

        <profile>
            <id>enable-commons</id>
            <modules>
                <module>commons</module>
            </modules>
        </profile>

        <profile>
            <id>enable-hazelcast</id>
            <modules>
                <module>hazelcast</module>
            </modules>
        </profile>

        <profile>
            <id>enable-jcache</id>
            <modules>
                <module>jcache</module>
            </modules>
        </profile>


        <profile>
            <id>enable-jackson</id>
            <modules>
                <module>jackson-jaxrs</module>
                <module>jackson-jaxrs-base</module>
            </modules>
        </profile>


        <profile>
            <id>enable-standalone-services</id>
            <modules>

                <module>btm</module>
                <module>aop</module>
                <module>guava</module>
                <module>javassist</module>
                <module>json</module>
                <module>mssql-jdbc</module>
            </modules>
        </profile>

        <profile>
            <id>enable-uadetector</id>
            <modules>
                <module>uadetector</module>
            </modules>
        </profile>

        <profile>
            <id>enable-hibernate</id>
            <modules>
                <module>hibernate</module>
            </modules>
        </profile>

        <profile>
            <id>enable-xnio</id>
            <modules>
                <module>xnio</module>
            </modules>
        </profile>

        <profile>
            <id>enable-undertow</id>
            <modules>
                <module>undertow</module>
                <module>xnio</module>
                <module>classmate</module>
                <module>dom4j</module>
                <module>jaxen</module>
                <module>jacc</module>
                <module>jandex</module>
            </modules>
        </profile>


        <profile>
            <id>enable-ee4j</id>
            <modules>
                <module>gee4j</module>
                <module>jaxb-api</module>
                <module>java.activation</module>
                <module>javax.activation</module>
                <module>java.validation</module>
                <module>servlet</module>
                <module>java.annotations</module>
                <module>javax.jms</module>
                <module>javax.transaction</module>
                <module>javax-inject</module>
                <module>javax.websocket</module>
            </modules>
        </profile>

        <profile>
            <id>enable-guice</id>
            <modules>
                <module>guice</module>
            </modules>
        </profile>
    </profiles>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>com.guicedee</groupId>
                <artifactId>guicedee-bom</artifactId>
                <version>${project.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>

            <dependency>
                <groupId>cglib</groupId>
                <artifactId>cglib</artifactId>
                <version>${cglib.version}</version>
                <optional>true</optional>
            </dependency>

            <dependency>
                <groupId>org.ow2.asm</groupId>
                <artifactId>asm</artifactId>
                <version>${maven.asm.version}</version>
                <optional>true</optional>
            </dependency>


            <dependency>
                <groupId>com.hazelcast</groupId>
                <artifactId>hazelcast</artifactId>
                <version>${hazelcast.version}</version>
                <type>jar</type>
                <optional>true</optional>
            </dependency>

            <dependency>
                <groupId>com.google.guava</groupId>
                <artifactId>guava</artifactId>
                <version>${guava.version}</version>
                <type>jar</type>
                <exclusions>
                    <exclusion>
                        <groupId>org.codehaus.mojo</groupId>
                        <artifactId>animal-sniffer-annotations</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>com.google.j2objc</groupId>
                        <artifactId>j2objc-annotations</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>com.google.errorprone</groupId>
                        <artifactId>error_prone_annotations</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.checkerframework</groupId>
                        <artifactId>checker-qual</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>com.google.code.findbugs</groupId>
                        <artifactId>jsr305</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>com.google.guava</groupId>
                        <artifactId>failureaccess</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>com.google.guava</groupId>
                        <artifactId>listenablefuture</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>

            <dependency>
                <groupId>jakarta.ws.rs</groupId>
                <artifactId>jakarta.ws.rs-api</artifactId>
                <version>2.1.6</version>
                <exclusions>
                    <exclusion>
                        <artifactId>validation-api</artifactId>
                        <groupId>javax.validation</groupId>
                    </exclusion>
                    <exclusion>
                        <artifactId>jakarta.activation-api</artifactId>
                        <groupId>jakarta.activation</groupId>
                    </exclusion>
                    <exclusion>
                        <artifactId>jakarta.annotation-api</artifactId>
                        <groupId>jakarta.annotation</groupId>
                    </exclusion>
                </exclusions>
            </dependency>

            <dependency>
                <groupId>org.apache.httpcomponents</groupId>
                <artifactId>httpclient</artifactId>
                <version>4.5.10</version>
            </dependency>


            <!-- Swagger runtime dependencies -->
            <dependency>
                <groupId>io.swagger.core.v3</groupId>
                <artifactId>swagger-jaxrs2</artifactId>
                <version>${io.swagger.version}</version>
                <exclusions>
                    <exclusion>
                        <artifactId>commons-lang3</artifactId>
                        <groupId>org.apache.commons</groupId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.glassfish.jaxb</groupId>
                        <artifactId>jaxb-runtime</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>javax.xml.bind</groupId>
                        <artifactId>jaxb-api</artifactId>
                    </exclusion>
                    <exclusion>
                        <artifactId>validation-api</artifactId>
                        <groupId>javax.validation</groupId>
                    </exclusion>
                    <exclusion>
                        <artifactId>slf4j-api</artifactId>
                        <groupId>org.slf4j</groupId>
                    </exclusion>
                    <exclusion>
                        <artifactId>javassist</artifactId>
                        <groupId>org.javassist</groupId>
                    </exclusion>
                    <exclusion>
                        <artifactId>jackson-dataformat-yaml</artifactId>
                        <groupId>com.fasterxml.jackson.dataformat</groupId>
                    </exclusion>
                    <exclusion>
                        <artifactId>jackson-jaxrs-json-provider</artifactId>
                        <groupId>com.fasterxml.jackson.jaxrs</groupId>
                    </exclusion>
                </exclusions>
            </dependency>

            <dependency>
                <groupId>io.swagger.core.v3</groupId>
                <artifactId>swagger-core</artifactId>
                <type>jar</type>
                <version>${io.swagger.version}</version>
                <optional>true</optional>
                <exclusions>
                    <exclusion>
                        <artifactId>commons-lang3</artifactId>
                        <groupId>org.apache.commons</groupId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.glassfish.jaxb</groupId>
                        <artifactId>jaxb-runtime</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>javax.xml.bind</groupId>
                        <artifactId>jaxb-api</artifactId>
                    </exclusion>
                    <exclusion>
                        <artifactId>validation-api</artifactId>
                        <groupId>javax.validation</groupId>
                    </exclusion>
                    <exclusion>
                        <artifactId>slf4j-api</artifactId>
                        <groupId>org.slf4j</groupId>
                    </exclusion>
                    <exclusion>
                        <artifactId>javassist</artifactId>
                        <groupId>org.javassist</groupId>
                    </exclusion>
                    <exclusion>
                        <artifactId>jackson-dataformat-yaml</artifactId>
                        <groupId>com.fasterxml.jackson.dataformat</groupId>
                    </exclusion>
                    <exclusion>
                        <artifactId>jackson-jaxrs-json-provider</artifactId>
                        <groupId>com.fasterxml.jackson.jaxrs</groupId>
                    </exclusion>
                </exclusions>
            </dependency>

            <dependency>
                <groupId>io.swagger.core.v3</groupId>
                <artifactId>swagger-models</artifactId>
                <version>${io.swagger.version}</version>
                <type>jar</type>
                <optional>true</optional>
                <exclusions>
                    <exclusion>
                        <artifactId>commons-lang3</artifactId>
                        <groupId>org.apache.commons</groupId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.glassfish.jaxb</groupId>
                        <artifactId>jaxb-runtime</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>javax.xml.bind</groupId>
                        <artifactId>jaxb-api</artifactId>
                    </exclusion>
                    <exclusion>
                        <artifactId>validation-api</artifactId>
                        <groupId>javax.validation</groupId>
                    </exclusion>
                    <exclusion>
                        <artifactId>slf4j-api</artifactId>
                        <groupId>org.slf4j</groupId>
                    </exclusion>
                    <exclusion>
                        <artifactId>javassist</artifactId>
                        <groupId>org.javassist</groupId>
                    </exclusion>
                    <exclusion>
                        <artifactId>jackson-dataformat-yaml</artifactId>
                        <groupId>com.fasterxml.jackson.dataformat</groupId>
                    </exclusion>
                    <exclusion>
                        <artifactId>jackson-jaxrs-json-provider</artifactId>
                        <groupId>com.fasterxml.jackson.jaxrs</groupId>
                    </exclusion>
                </exclusions>
            </dependency>

            <dependency>
                <groupId>io.swagger.core.v3</groupId>
                <artifactId>swagger-integration</artifactId>
                <type>jar</type>
                <version>${io.swagger.version}</version>
                <optional>true</optional>
                <exclusions>
                    <exclusion>
                        <artifactId>commons-lang3</artifactId>
                        <groupId>org.apache.commons</groupId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.glassfish.jaxb</groupId>
                        <artifactId>jaxb-runtime</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>javax.xml.bind</groupId>
                        <artifactId>jaxb-api</artifactId>
                    </exclusion>
                    <exclusion>
                        <artifactId>validation-api</artifactId>
                        <groupId>javax.validation</groupId>
                    </exclusion>
                    <exclusion>
                        <artifactId>slf4j-api</artifactId>
                        <groupId>org.slf4j</groupId>
                    </exclusion>
                    <exclusion>
                        <artifactId>javassist</artifactId>
                        <groupId>org.javassist</groupId>
                    </exclusion>
                    <exclusion>
                        <artifactId>jackson-dataformat-yaml</artifactId>
                        <groupId>com.fasterxml.jackson.dataformat</groupId>
                    </exclusion>
                    <exclusion>
                        <artifactId>jackson-jaxrs-json-provider</artifactId>
                        <groupId>com.fasterxml.jackson.jaxrs</groupId>
                    </exclusion>
                </exclusions>
            </dependency>


            <dependency>
                <groupId>org.owasp.esapi</groupId>
                <artifactId>esapi</artifactId>
                <version>2.2.0.0</version>
                <exclusions>
                    <exclusion>
                        <artifactId>commons-lang</artifactId>
                        <groupId>commons-lang</groupId>
                    </exclusion>
                    <exclusion>
                        <artifactId>batik-css</artifactId>
                        <groupId>org.apache.xmlgraphics</groupId>
                    </exclusion>
                    <exclusion>
                        <artifactId>antisamy</artifactId>
                        <groupId>org.owasp.antisamy</groupId>
                    </exclusion>
                    <exclusion>
                        <artifactId>commons-fileupload</artifactId>
                        <groupId>commons-fileupload</groupId>
                    </exclusion>
                    <exclusion>
                        <artifactId>xalan</artifactId>
                        <groupId>xalan</groupId>
                    </exclusion>
                    <exclusion>
                        <artifactId>commons-collections4</artifactId>
                        <groupId>org.apache.commons</groupId>
                    </exclusion>
                    <exclusion>
                        <artifactId>log4j</artifactId>
                        <groupId>log4j</groupId>
                    </exclusion>
                    <exclusion>
                        <artifactId>xom</artifactId>
                        <groupId>com.io7m.xom</groupId>
                    </exclusion>
                    <exclusion>
                        <artifactId>xercesImpl</artifactId>
                        <groupId>xerces</groupId>
                    </exclusion>
                    <exclusion>
                        <artifactId>bsh</artifactId>
                        <groupId>org.apache-extras.beanshell</groupId>
                    </exclusion>
                    <exclusion>
                        <artifactId>slf4j-api</artifactId>
                        <groupId>org.slf4j</groupId>
                    </exclusion>
                    <exclusion>
                        <artifactId>xml-apis</artifactId>
                        <groupId>xml-apis</groupId>
                    </exclusion>
                    <exclusion>
                        <artifactId>commons-io</artifactId>
                        <groupId>commons-io</groupId>
                    </exclusion>
                    <exclusion>
                        <artifactId>commons-configuration</artifactId>
                        <groupId>commons-configuration</groupId>
                    </exclusion>
                    <exclusion>
                        <artifactId>commons-beanutils</artifactId>
                        <groupId>commons-beanutils</groupId>
                    </exclusion>
                </exclusions>
            </dependency>


            <dependency>
                <groupId>io.swagger.core.v3</groupId>
                <artifactId>swagger-jaxrs2-servlet-initializer</artifactId>
                <version>${io.swagger.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>io.swagger.core.v3</groupId>
                        <artifactId>swagger-jaxrs2</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>

            <dependency>
                <groupId>javax.xml.soap</groupId>
                <artifactId>javax.xml.soap-api</artifactId>
                <version>1.4.0</version>
            </dependency>


            <!-- Jackson Support-->
            <dependency>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-databind</artifactId>
                <version>${jackson.version}</version>
                <type>jar</type>
            </dependency>

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


            <dependency>
                <groupId>com.fasterxml.jackson.module</groupId>
                <artifactId>jackson-module-jaxb-annotations</artifactId>
                <version>${jackson.version}</version>
                <type>jar</type>
                <exclusions>
                    <exclusion>
                        <groupId>jakarta.xml.bind</groupId>
                        <artifactId>jakarta.xml.bind-api</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>jakarta.activation</groupId>
                        <artifactId>jakarta.activation-api</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>


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

            <dependency>
                <groupId>com.fasterxml.jackson.jaxrs</groupId>
                <artifactId>jackson-jaxrs-json-provider</artifactId>
                <version>${jackson.version}</version>
            </dependency>

            <dependency>
                <artifactId>jackson-datatype-jsr310</artifactId>
                <groupId>com.fasterxml.jackson.datatype</groupId>
                <version>${jackson.version}</version>
                <type>jar</type>
            </dependency>

            <dependency>
                <artifactId>jackson-dataformat-yaml</artifactId>
                <groupId>com.fasterxml.jackson.dataformat</groupId>
                <version>${jackson.version}</version>
                <type>jar</type>
            </dependency>

            <dependency>
                <groupId>com.fasterxml.jackson.module</groupId>
                <artifactId>jackson-module-guice</artifactId>
                <version>${jackson.version}</version>
                <type>jar</type>
                <exclusions>
                    <exclusion>
                        <groupId>com.google.inject</groupId>
                        <artifactId>guice</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>

            <dependency>
                <groupId>com.fasterxml.jackson.datatype</groupId>
                <artifactId>jackson-datatype-jdk8</artifactId>
                <version>${jackson.version}</version>
                <type>jar</type>
            </dependency>


            <dependency>
                <groupId>io.github.classgraph</groupId>
                <artifactId>classgraph</artifactId>
                <version>${fastclasspath.version}</version>
                <type>jar</type>
            </dependency>


            <!-- This one amazingly is jpms compatible -->
            <dependency>
                <groupId>javax.json</groupId>
                <artifactId>javax.json-api</artifactId>
                <version>1.1.4</version>
            </dependency>

            <!-- Web Services -->

            <dependency>
                <groupId>jakarta.xml.ws</groupId>
                <artifactId>jakarta.xml.ws-api</artifactId>
                <version>2.3.2</version>
                <exclusions>
                    <exclusion>
                        <artifactId>jakarta.annotation-api</artifactId>
                        <groupId>jakarta.annotation</groupId>
                    </exclusion>
                    <exclusion>
                        <groupId>jakarta.xml.bind</groupId>
                        <artifactId>jakarta.xml.bind-api</artifactId>
                    </exclusion>

                    <exclusion>
                        <artifactId>jakarta.activation-api</artifactId>
                        <groupId>jakarta.activation</groupId>
                    </exclusion>
                </exclusions>
            </dependency>

            <dependency>
                <groupId>javax.jws</groupId>
                <artifactId>javax.jws-api</artifactId>
                <version>1.1</version>
            </dependency>

            <dependency>
                <groupId>org.glassfish.metro</groupId>
                <artifactId>webservices-api</artifactId>
                <version>2.4.3</version>
            </dependency>


            <dependency>
                <groupId>antlr</groupId>
                <artifactId>antlr</artifactId>
                <version>2.7.7</version>
                <scope>compile</scope>
                <exclusions>
                    <exclusion>
                        <artifactId>xml-apis</artifactId>
                        <groupId>xml-apis</groupId>
                    </exclusion>
                </exclusions>
            </dependency>

            <dependency>
                <groupId>org.eclipse.jetty.alpn</groupId>
                <artifactId>alpn-api</artifactId>
                <version>1.1.3.v20160715</version>
                <scope>provided</scope>
                <optional>true</optional>
            </dependency>


            <dependency>
                <groupId>org.apache.ant</groupId>
                <artifactId>ant</artifactId>
                <version>1.10.7</version>
                <scope>provided</scope>
            </dependency>

        </dependencies>
    </dependencyManagement>


</project>
