<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.coherentlogic.enterprise-data-adapter</groupId>
    <artifactId>bom</artifactId>
    <packaging>pom</packaging>
    <version>2.0.3-RELEASE</version>

    <name>Coherent Data Model Bill of Materials</name>
    <description>The bill of materials (bom) for the CL Data Model.</description>
    <url>http://coherentlogic.com/middleware-development/foundation-data-model/</url>
    <organization>
        <name>Coherent Logic Limited</name>
        <url>http://www.coherentlogic.com</url>
    </organization>
    <issueManagement>
        <system>Tickets</system>
        <url>https://sourceforge.net/p/cldatamodel/tickets/</url>
    </issueManagement>

    <scm>
        <url>scm:git:https://bitbucket.org/CoherentLogic/coherent-logic-enterprise-data-adapter.git</url>
        <connection>scm:git:https://bitbucket.org/CoherentLogic/coherent-logic-enterprise-data-adapter.git</connection>
    </scm>

    <developers>
        <developer>
            <name>Support</name>
            <email>support@coherentlogic.com</email>
            <id>support</id>
            <organization>Coherent Logic Limited</organization>
            <organizationUrl>www.coherentlogic.com</organizationUrl>
            <url>www.coherentlogic.com</url>
            <timezone>+1</timezone>
            <roles>
                <role>Support</role>
            </roles>
        </developer>
    </developers>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <spring.version>5.0.7.RELEASE</spring.version>
        <spring.boot.version>2.0.3.RELEASE</spring.boot.version>
        <aspectj.version>1.8.10</aspectj.version>
        <hibernate.version>5.3.2.Final</hibernate.version>
        <slf4j.version>1.7.25</slf4j.version>
        <infinispan.version>9.3.1.Final</infinispan.version>
    </properties>

    <licenses>
        <license>
            <name>GNU LESSER GENERAL PUBLIC LICENSE Version 3</name>
            <url>http://www.gnu.org/licenses/lgpl-3.0.txt</url>
            <distribution>manual</distribution>
            <comments>No comments at the moment.</comments>
        </license>
    </licenses>

    <distributionManagement>
        <repository>
            <id>sonatype-nexus-staging</id>
            <name>Nexus Staging Repository</name>
            <url>https://oss.sonatype.org/service/local/staging/deploy/maven2/</url>
        </repository>
    </distributionManagement>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-test</artifactId>
                <version>${spring.boot.version}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot</artifactId>
                <version>${spring.boot.version}</version>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter</artifactId>
                <version>${spring.boot.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.springframework.boot</groupId>
                        <artifactId>spring-boot-starter-logging</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-data-jpa</artifactId>
                <version>${spring.boot.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.springframework.boot</groupId>
                        <artifactId>spring-boot-starter-logging</artifactId>
                    </exclusion>
                    <!-- Can not deserialize instance of com.coherentlogic.treasurydirect.client.core.domain.Securities out of START_ARRAY token -->
                    <!-- exclusion>
                        <groupId>com.fasterxml.jackson.core</groupId>
                        <artifactId>jackson-databind</artifactId>
                    </exclusion -->
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-actuator</artifactId>
                <version>${spring.boot.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.springframework.boot</groupId>
                        <artifactId>spring-boot-starter-logging</artifactId>
                    </exclusion>
                    <!-- exclusion>
                        <groupId>com.fasterxml.jackson.core</groupId>
                        <artifactId>jackson-databind</artifactId>
                    </exclusion -->
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
                <version>${spring.boot.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.springframework.boot</groupId>
                        <artifactId>spring-boot-starter-logging</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.springframework.boot</groupId>
                        <artifactId>spring-boot-starter-tomcat</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.apache.tomcat.embed</groupId>
                        <artifactId>tomcat-embed-core</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.apache.tomcat.embed</groupId>
                        <artifactId>tomcat-embed-el</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.apache.tomcat.embed</groupId>
                        <artifactId>tomcat-embed-websocket</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>com.coherentlogic.enterprise-data-adapter</groupId>
                <artifactId>data-model-core</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>com.coherentlogic.enterprise-data-adapter</groupId>
                <artifactId>data-adapter-core</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>com.coherentlogic.enterprise-data-adapter</groupId>
                <artifactId>aspectj-int</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>com.coherentlogic.enterprise-data-adapter</groupId>
                <artifactId>xstream-int</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>com.coherentlogic.enterprise-data-adapter</groupId>
                <artifactId>infinispan-int</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>com.coherentlogic.enterprise-data-adapter</groupId>
                <artifactId>spring-aop-int</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>com.coherentlogic.enterprise-data-adapter</groupId>
                <artifactId>data-adapter-application</artifactId>
                <version>${project.version}</version>
            </dependency>
            <!-- dependency>
                <groupId>com.coherentlogic.enterprise-data-adapter</groupId>
                <artifactId>logging</artifactId>
                <version>${project.version}</version>
            </dependency -->
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-core</artifactId>
                <version>${spring.version}</version>
                <!-- Below see: http://stackoverflow.com/questions/7952154/spring-resttemplate-how-to-enable-full-debugging-logging-of-requests-responses
                  -->
                <exclusions>
                    <exclusion>
                        <groupId>commons-logging</groupId>
                        <artifactId>commons-logging</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-context</artifactId>
                <version>${spring.version}</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-beans</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-expression</artifactId>
                <version>${spring.version}</version>
            </dependency>
            <!--
              Used by spring-ws-core in particular for credentials.
              -->
            <dependency>
                <groupId>org.apache.httpcomponents</groupId>
                <artifactId>httpclient</artifactId>
                <version>4.5.6</version>
            </dependency>
            <!-- Seems to have a dependency on Spring 3.1.1 which means the project 
                will have a mix of 3.1.2 and 3.1.1 dependencies. This is not a good idea 
                so for the moment we're rolling back from 3.1.2 to 3.1.1 until this is resolved. -->
            <dependency>
                <groupId>org.springframework.ws</groupId>
                <artifactId>spring-ws-core</artifactId>
                <version>3.0.1.RELEASE</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-web</artifactId>
                <version>${spring.version}</version>
            </dependency>
            <!-- If you start seeing method not found then the version needs to be
                 down-graded for this dependency. -->
            <dependency>
                <groupId>org.springframework.data</groupId>
                <artifactId>spring-data-jpa</artifactId>
                <version>2.0.8.RELEASE</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-test</artifactId>
                <version>${spring.version}</version>
            </dependency>
            <dependency>
                <groupId>org.eclipse.persistence</groupId>
                <artifactId>javax.persistence</artifactId>
                <version>2.2.0</version>
            </dependency>
            <dependency>
                <groupId>com.thoughtworks.xstream</groupId>
                <artifactId>xstream</artifactId>
                <version>1.4.10</version>
            </dependency>
            <dependency>
                <groupId>org.jboss.resteasy</groupId>
                <artifactId>resteasy-client</artifactId>
                <version>3.6.0.Final</version>
                <exclusions>
                    <!-- RESTEasy ships with jboss-logging version 3.1.4.GA and this causes problems with the
                         spring-boot-starter-data-jpa dependency, which ships with version 3.3.0.Final, which we
                         import below. If we don't do this, we'll see an exception that looks as follows:

                         NoSuchMethodError: org.jboss.logging.Logger.debugf(Ljava/lang/String;I)V
                      -->
                    <exclusion>
                        <groupId>org.jboss.logging</groupId>
                        <artifactId>jboss-logging</artifactId>
                    </exclusion>
                    <!-- As of 3.6.0.Final if we do not exclude this dependency the following exception will
                         appear in all integration tests which were passing prior to the update:

                         Caused by: org.springframework.beans.BeanInstantiationException: Failed to
                         instantiate [org.springframework.web.client.RestTemplate]: Constructor threw
                         exception; nested exception is javax.json.bind.JsonbException: JSON Binding provider
                         org.eclipse.yasson.JsonBindingProvider not found
                         ...
                         Caused by: java.lang.ClassNotFoundException: org.eclipse.yasson.JsonBindingProvider
                      -->
                    <exclusion>
                        <groupId>javax.json.bind</groupId>
                        <artifactId>javax.json.bind-api</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.jboss.logging</groupId>
                <artifactId>jboss-logging</artifactId>
                <version>3.3.2.Final</version>
            </dependency>
            <dependency>
                <groupId>org.infinispan</groupId>
                <artifactId>infinispan-core</artifactId>
                <version>${infinispan.version}</version>
            </dependency>
            <dependency>
                <groupId>org.infinispan</groupId>
                <artifactId>infinispan-clustered-lock</artifactId>
                <version>${infinispan.version}</version>
            </dependency>
            <!-- dependency>
                <groupId>org.infinispan</groupId>
                <artifactId>infinispan-spring4-embedded</artifactId>
                <version>${infinispan.version}</version>
            </dependency -->
            <dependency>
                <groupId>javax.ws.rs</groupId>
                <artifactId>javax.ws.rs-api</artifactId>
                <version>2.1</version>
            </dependency>
            <dependency>
                <groupId>org.apache.commons</groupId>
                <artifactId>commons-lang3</artifactId>
                <version>3.7</version>
            </dependency>
            <dependency>
                <groupId>commons-io</groupId>
                <artifactId>commons-io</artifactId>
                <version>2.6</version>
            </dependency>
            <dependency>
                <groupId>commons-beanutils</groupId>
                <artifactId>commons-beanutils</artifactId>
                <version>1.9.3</version>
            </dependency>
            <dependency>
                <groupId>org.apache.logging.log4j</groupId>
                <artifactId>log4j-core</artifactId>
                <version>2.11.0</version>
            </dependency>

            <!-- DEPRECATED AS NOT CURRENTLY BEING USED. -->
            <!-- dependency>
                <groupId>org.reflections</groupId>
                <artifactId>reflections</artifactId>
                <version>0.9.10</version>
            </dependency>

            <dependency>
                <groupId>org.apache.commons</groupId>
                <artifactId>commons-csv</artifactId>
                <version>1.2</version>
            </dependency -->

            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-api</artifactId>
                <version>${slf4j.version}</version>
            </dependency>

            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-log4j12</artifactId>
                <version>${slf4j.version}</version>
            </dependency>

            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-orm</artifactId>
                <version>${spring.version}</version>
            </dependency>
            <dependency>
                <groupId>cglib</groupId>
                <artifactId>cglib</artifactId>
                <version>3.2.7</version>
            </dependency>
            <dependency>
                <groupId>org.hibernate</groupId>
                <artifactId>hibernate-core</artifactId>
                <version>${hibernate.version}</version>
            </dependency>
            <dependency>
                <groupId>org.hibernate</groupId>
                <artifactId>hibernate-entitymanager</artifactId>
                <version>${hibernate.version}</version>
            </dependency>
            <!--
              TODO: Not sure we need this dependency.
              -->
            <dependency>
                <groupId>org.hibernate</groupId>
                <artifactId>hibernate-tools</artifactId>
                <version>5.3.2.Final</version>
            </dependency>

            <dependency>
                <groupId>com.h2database</groupId>
                <artifactId>h2</artifactId>
                <version>1.4.197</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>
            <dependency>
                <groupId>com.jamonapi</groupId>
                <artifactId>jamon</artifactId>
                <version>2.81</version>
            </dependency>

            <!-- dependency>
                <groupId>org.quartz-scheduler</groupId>
                <artifactId>quartz</artifactId>
                <version>2.2.2</version>
            </dependency -->

            <!-- https://mvnrepository.com/artifact/org.junit.vintage/junit-vintage-engine -->
            <dependency>
                <groupId>org.junit.vintage</groupId>
                <artifactId>junit-vintage-engine</artifactId>
                <version>5.2.0</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.mockito</groupId>
                <artifactId>mockito-all</artifactId>
                <version>1.10.19</version>
                <scope>test</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>
</project>
