<?xml version="1.0" encoding="UTF-8"?>
<!--
   Copyright (C) 2016 Red Hat, Inc.

   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
   You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.
-->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <parent>
    <groupId>org.basepom</groupId>
    <artifactId>basepom-oss</artifactId>
    <version>32</version>
  </parent>

  <groupId>org.teiid</groupId>
  <artifactId>teiid-spring-boot-starter-parent</artifactId>
  <version>1.6.0</version>
  <packaging>pom</packaging>
  <name>teiid-spring-boot-starter-parent</name>
  <url>http://teiid.org</url>
  <description>Teiid application framework bootstrapped with Spring Boot</description>

  <licenses>
    <license>
      <name>Apache License, Version 2.0</name>
      <url>https://www.apache.org/licenses/LICENSE-2.0.txt</url>
      <distribution>repo</distribution>
    </license>
  </licenses>

  <issueManagement>
    <system>jira</system>
    <url>https://issues.jboss.org/browse/TEIID</url>
  </issueManagement>

  <scm>
    <connection>scm:git:git@github.com:teiid/teiid-spring-boot.git</connection>
    <developerConnection>scm:git:git@github.com:teiid/teiid-spring-boot.git</developerConnection>
    <url>https://github.com/teiid/teiid-spring-boot</url>
    <tag>1.6.0</tag>
  </scm>

  <developers>
    <developer>
      <name>Steve Hawkins</name>
      <id>steve</id>
      <email>shawkins@redhat.com</email>
      <organization>Red Hat</organization>
      <roles>
        <role>Project Lead</role>
      </roles>
      <timezone>-5</timezone>
    </developer>
    <developer>
      <name>Ramesh Reddy</name>
      <id>ramesh</id>
      <email>rareddy@redhat.com</email>
      <organization>Red Hat</organization>
      <roles>
        <role>Project Lead</role>
      </roles>
      <timezone>-6</timezone>
    </developer>
  </developers>

  <distributionManagement>
    <repository>
      <id>oss.sonatype.org</id>
      <name>oss.sonatype.org</name>
      <url>https://oss.sonatype.org/service/local/staging/deploy/maven2/</url>
    </repository>
    <snapshotRepository>
      <id>oss.sonatype.org</id>
      <name>oss.sonatype.org</name>
      <url>https://oss.sonatype.org/content/repositories/snapshots</url>
    </snapshotRepository>
  </distributionManagement>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <version.deploy.plugin>2.8.2</version.deploy.plugin>
    <project.build.systemJdk>11</project.build.systemJdk>
    <project.build.targetJdk>11</project.build.targetJdk>
    <basepom.check.skip-dependency>false</basepom.check.skip-dependency>
    <basepom.check.fail-dependency>false</basepom.check.fail-dependency>
    <basepom.check.skip-duplicate-finder>false</basepom.check.skip-duplicate-finder>
    <basepom.check.skip-spotbugs>true</basepom.check.skip-spotbugs>
    <basepom.release.push-changes>true</basepom.release.push-changes>

    <!-- some modules, especially on a build server will exceed the 30 second default -->
    <basepom.test.timeout>600</basepom.test.timeout>

    <!-- we don't separate out full launches of an app as integration, so everything
         needs more memory-->
    <basepom.test.memory>512m</basepom.test.memory>

    <!-- the tests under java 11 fail with the default version -->
    <dep.plugin.jacoco.version>0.8.3</dep.plugin.jacoco.version>

    <!-- from syndesis.io -->
    <!-- Don't fork based on cores, doesn't work nicely in the cloud -->
    <basepom.test.fork-count>1</basepom.test.fork-count>
    <basepom.failsafe.fork-count>1</basepom.failsafe.fork-count>
    <basepom.failsafe.reuse-vm>true</basepom.failsafe.reuse-vm>
     <!-- takes a really long time, disable for travis -->
    <basepom.check.skip-dependency-versions-check>false</basepom.check.skip-dependency-versions-check>

    <!-- Project Dependencies -->
    <spring-boot.version>2.2.6.RELEASE</spring-boot.version>
    <spring.version>5.2.5.RELEASE</spring.version>
    <spring-social.version>1.1.6.RELEASE</spring-social.version>
    <teiid.version>15.0.0</teiid.version>
    <version.xml-apis>1.4.01</version.xml-apis>
    <ObjectStoreEnvironmentBean.objectStoreDir>${build.dir}</ObjectStoreEnvironmentBean.objectStoreDir>
    <hibernate.version>5.4.12.Final</hibernate.version> <!-- Matching with OpenShift SB as it updates it -->
    <version.javax.jws-api>1.1</version.javax.jws-api>
    <version.org.mockito>1.10.19</version.org.mockito>
    <version.org.keycloak>4.8.3.Final</version.org.keycloak>
    <olingo.version>4.7.1</olingo.version>
    <narayana.version>2.1.0</narayana.version> <!-- me.snowdrop version, not narayana -->
    <version.springfox>2.9.2</version.springfox>
    <google-sheets.version>v4-rev612-1.25.0</google-sheets.version>
    <version.swagger-parser>1.0.44</version.swagger-parser>
    <version.io.swagger>1.5.22</version.io.swagger>
    <version.org.openapitools>4.0.0</version.org.openapitools>
    <version.mustache>0.9.6</version.mustache>
    <version.jackson-databind-nullable>0.1.0</version.jackson-databind-nullable>
    <version.jackson-core>2.11.0.rc1</version.jackson-core>
    <version.jackson-databind>2.11.0.rc1</version.jackson-databind>
    <version.org.mongodb>3.9.1</version.org.mongodb>
    <version.io.opentracing.contrib>1.0.1</version.io.opentracing.contrib>
    <version.net.sf.ucanaccess>5.0.0</version.net.sf.ucanaccess>
    <version.com.facebook.presto>0.236</version.com.facebook.presto>
    <version.com.ibm.informix>4.50.3</version.com.ibm.informix>
    <version.com.cloudera.impala>2.5.31</version.com.cloudera.impala>
    <version.com.sap.cloud.db.jdbc>2.4.76</version.com.sap.cloud.db.jdbc>
    <version.org.apache.derby>10.15.2.0</version.org.apache.derby>
    <version.com.syncron.amazonaws>2.0.2</version.com.syncron.amazonaws>
    <version.com.exasol>6.2.5</version.com.exasol>
    <version.com.ingres.jdbc>10.2-4.1.10</version.com.ingres.jdbc>
    <version.org.apache.phoenix>4.14.3-HBase-1.4</version.org.apache.phoenix>
    <version.org.apache.hive>2.3.7</version.org.apache.hive>
    <version.org.postgresql>42.2.5</version.org.postgresql>
    <version.com.microsoft.sqlserver>8.2.2.jre11</version.com.microsoft.sqlserver>
    <version.net.sourceforge.jtds>1.3.1</version.net.sourceforge.jtds>
  </properties>

  <build>
    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-maven-plugin</artifactId>
          <version>${spring-boot.version}</version>
        </plugin>  
      </plugins>
    </pluginManagement>
    <plugins>
      <plugin>
        <artifactId>maven-release-plugin</artifactId>
        <configuration>
          <!-- During release:perform, enable the "release" profile -->
          <releaseProfiles>release</releaseProfiles>
          <goals>deploy</goals>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
      </plugin>
      <plugin>
        <!-- this is avoid some simple duplicate finds, only use as exception -->
        <groupId>org.basepom.maven</groupId>
        <artifactId>duplicate-finder-maven-plugin</artifactId>
        <configuration>
          <checkTestClasspath>false</checkTestClasspath>
          <ignoredClassPatterns>
            <ignoredClassPattern>META\-.*</ignoredClassPattern>
            <ignoredClassPattern>module\-info</ignoredClassPattern>
            <ignoredClassPattern>org\.apache\.juli\..*</ignoredClassPattern>
            <ignoredClassPattern>about\.html</ignoredClassPattern>
          </ignoredClassPatterns>
          <ignoredResourcePatterns>
            <ignoredResourcePattern>changelog\.txt</ignoredResourcePattern>
            <ignoredResourcePattern>about\.html</ignoredResourcePattern>
            <ignoredResourcePattern>\.gitkeep</ignoredResourcePattern>
            <ignoredResourcePattern>features.xml</ignoredResourcePattern>
            <ignoredResourcePattern>draftv3/schema</ignoredResourcePattern>
            <ignoredResourcePattern>draftv4/schema</ignoredResourcePattern>
          </ignoredResourcePatterns>
          <ignoredDependencies>
            <ignoredDependency>
                <groupId>io.netty</groupId>
                <artifactId>netty-all</artifactId>
            </ignoredDependency>
            <dependency>
              <artifactId>jaxen</artifactId>
              <groupId>jaxen</groupId>
            </dependency> 
          </ignoredDependencies>
        </configuration>
      </plugin>
        <plugin>
          <groupId>com.mycila</groupId>
          <artifactId>license-maven-plugin</artifactId>
          <configuration>
            <excludes>
              <exclude>**/*.mustache</exclude>
              <exclude>**/*.ddl</exclude>
              <exclude>**/*.sql</exclude>
              <exclude>**/*.yml</exclude>
              <exclude>**/*.yaml</exclude>
              <exclude>**/*.txt</exclude>
              <exclude>**/src/test/resources/**</exclude>
            </excludes>
          </configuration>
        </plugin>      
    </plugins>
  </build>

  <dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>${spring.version}</version>
        </dependency>
      <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-dependencies</artifactId>
        <version>${spring-boot.version}</version>
        <type>pom</type>
        <scope>import</scope>
        <exclusions>
            <exclusion>
                <groupId>org.infinispan</groupId>
                <artifactId>*</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-tomcat</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-undertow</artifactId>
          <version>${spring-boot.version}</version>
          <exclusions>
            <exclusion>
              <groupId>org.jboss.spec.javax.annotation</groupId>
              <artifactId>jboss-annotations-api_1.2_spec</artifactId>            
            </exclusion>
          </exclusions>
      </dependency>
      <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-context</artifactId>
          <version>${spring.version}</version>
      </dependency>      
      <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-jdbc</artifactId>
        <version>${spring-boot.version}</version>
      </dependency>
      <dependency>
        <groupId>me.snowdrop</groupId>
        <artifactId>narayana-spring-boot-starter</artifactId>
        <version>${narayana.version}</version>
        <exclusions>
          <exclusion>
                <!-- Other JARS bring in this dependency -->
            <groupId>org.jboss.spec.javax.transaction</groupId>
            <artifactId>jboss-transaction-api_1.2_spec</artifactId>
          </exclusion>
          <exclusion>
            <groupId>sun.jdk</groupId>
            <artifactId>jconsole</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>org.teiid</groupId>
        <artifactId>teiid-engine</artifactId>
        <version>${teiid.version}</version>
      </dependency>
      <dependency>
        <groupId>org.teiid</groupId>
        <artifactId>teiid-common-core</artifactId>
        <version>${teiid.version}</version>
      </dependency>
      <dependency>
        <groupId>org.teiid</groupId>
        <artifactId>teiid-api</artifactId>
        <version>${teiid.version}</version>
      </dependency>
      <dependency>
        <groupId>org.teiid</groupId>
        <artifactId>cache-caffeine</artifactId>
        <version>${teiid.version}</version>
      </dependency>
      <dependency>
        <groupId>org.teiid</groupId>
        <artifactId>teiid-runtime</artifactId>
        <version>${teiid.version}</version>
        <exclusions>
            <exclusion>
                <groupId>org.jboss.logging</groupId>
                <artifactId>jboss-logging</artifactId>
            </exclusion>
            <exclusion>
                <groupId>xerces</groupId>
                <artifactId>xercesImpl</artifactId>
            </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>org.teiid</groupId>
        <artifactId>teiid-client</artifactId>
        <version>${teiid.version}</version>
      </dependency>
      <dependency>
        <groupId>org.teiid</groupId>
        <artifactId>teiid-hibernate-dialect</artifactId>
        <version>${teiid.version}</version>
      </dependency>
      <dependency>
        <groupId>org.teiid.connectors</groupId>
        <artifactId>translator-hive</artifactId>
        <version>${teiid.version}</version>
      </dependency>
      <dependency>
        <groupId>org.teiid.connectors</groupId>
        <artifactId>translator-phoenix</artifactId>
        <version>${teiid.version}</version>
      </dependency>
      <dependency>
        <groupId>org.teiid.connectors</groupId>
        <artifactId>translator-prestodb</artifactId>
        <version>${teiid.version}</version>
      </dependency>
      <dependency>
        <groupId>org.teiid.connectors</groupId>
        <artifactId>translator-jdbc</artifactId>
        <version>${teiid.version}</version>
      </dependency>
      <dependency>
        <groupId>org.teiid.connectors</groupId>
        <artifactId>translator-loopback</artifactId>
        <version>${teiid.version}</version>
      </dependency>
      <dependency>
        <groupId>org.teiid.connectors</groupId>
        <artifactId>translator-file</artifactId>
        <version>${teiid.version}</version>
      </dependency>
      <dependency>
        <groupId>org.teiid.connectors</groupId>
        <artifactId>file-api</artifactId>
        <version>${teiid.version}</version>
      </dependency>
      <dependency>
        <groupId>org.teiid.connectors</groupId>
        <artifactId>file-hdfs</artifactId>
        <version>${teiid.version}</version>
        <exclusions>
          <exclusion>
            <groupId>commons-logging</groupId>
            <artifactId>commons-logging</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>org.teiid.connectors</groupId>
        <artifactId>file-s3</artifactId>
        <version>${teiid.version}</version>
        <exclusions>
          <exclusion>
            <groupId>commons-logging</groupId>
            <artifactId>commons-logging</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>org.teiid.connectors</groupId>
        <artifactId>translator-ws</artifactId>
        <version>${teiid.version}</version>
      </dependency>
      <dependency>
        <groupId>org.teiid.connectors</groupId>
        <artifactId>translator-odata</artifactId>
        <version>${teiid.version}</version>
        <exclusions>
          <exclusion>
            <groupId>org.jboss.spec.javax.annotation</groupId>
            <artifactId>jboss-annotations-api_1.3_spec</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>org.teiid.connectors</groupId>
        <artifactId>translator-odata4</artifactId>
        <version>${teiid.version}</version>
        <exclusions>
          <exclusion>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>javax.jws</groupId>
        <artifactId>javax.jws-api</artifactId>
        <version>${version.javax.jws-api}</version>
      </dependency>
      <dependency>
        <groupId>org.teiid.connectors</groupId>
        <artifactId>ws-cxf</artifactId>
        <version>${teiid.version}</version>
        <exclusions>
          <!-- these are effectively duplicate dependencies -->
          <exclusion>
            <groupId>org.jboss.spec.javax.annotation</groupId>
            <artifactId>jboss-annotations-api_1.3_spec</artifactId>
          </exclusion>
          <exclusion>
            <groupId>org.slf4j</groupId>
            <artifactId>jcl-over-slf4j</artifactId>
          </exclusion>
          <!-- these conflict slightly with the spring managed versions -->
          <exclusion>
            <groupId>org.glassfish.jaxb</groupId>
            <artifactId>jaxb-xjc</artifactId>
          </exclusion>
          <exclusion>
            <groupId>org.glassfish.jaxb</groupId>
            <artifactId>jaxb-runtime</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>org.teiid.connectors</groupId>
        <artifactId>translator-openapi</artifactId>
        <version>${teiid.version}</version>
        <exclusions>
          <exclusion>
            <groupId>commons-logging</groupId>
            <artifactId>commons-logging</artifactId>
          </exclusion>
          <exclusion>
            <groupId>javax.mail</groupId>
            <artifactId>mailapi</artifactId>
          </exclusion>
          <exclusion>
            <groupId>com.google.guava</groupId>
            <artifactId>guava</artifactId>
          </exclusion>
        </exclusions>        
      </dependency>
      <dependency>
        <groupId>org.teiid</groupId>
        <artifactId>teiid-olingo</artifactId>
        <version>${teiid.version}</version>
        <exclusions>
          <exclusion>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
          </exclusion>
          <exclusion>
            <groupId>com.fasterxml</groupId>
            <artifactId>aalto-xml</artifactId>
          </exclusion>
          <exclusion>
              <groupId>org.jboss.logging</groupId>
              <artifactId>jboss-logging</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>org.apache.olingo</groupId>
        <artifactId>odata-client-api</artifactId>
        <version>${olingo.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.olingo</groupId>
        <artifactId>odata-client-core</artifactId>
        <version>${olingo.version}</version>
        <exclusions>
            <exclusion>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-annotations</artifactId>
            </exclusion>
            <exclusion>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-core</artifactId>
            </exclusion>
            <exclusion>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-databind</artifactId>
            </exclusion>            
            <exclusion>
                <groupId>com.fasterxml.jackson.dataformat</groupId>
                <artifactId>jackson-dataformat-xml</artifactId>
            </exclusion>                          
        </exclusions>
      </dependency>
      <dependency>
        <groupId>org.teiid.connectors</groupId>
        <artifactId>translator-excel</artifactId>
        <version>${teiid.version}</version>
      </dependency>
      <dependency>
        <groupId>org.teiid.connectors</groupId>
        <artifactId>translator-mongodb</artifactId>
        <version>${teiid.version}</version>
        <exclusions>
          <exclusion>
            <groupId>org.teiid.connectors</groupId>
            <artifactId>translator-jdbc</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>org.teiid.connectors</groupId>
        <artifactId>mongodb-api</artifactId>
        <version>${teiid.version}</version>
        <exclusions>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>org.teiid.connectors</groupId>
        <artifactId>translator-salesforce-41</artifactId>
        <version>${teiid.version}</version>
        <exclusions>
          <exclusion>
            <groupId>commons-beanutils</groupId>
            <artifactId>commons-beanutils</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>org.teiid.connectors</groupId>
        <artifactId>translator-infinispan-hotrod</artifactId>
        <version>${teiid.version}</version>
      </dependency>  
      <dependency>
        <groupId>org.teiid.connectors</groupId>
        <artifactId>infinispan-api</artifactId>
        <version>${teiid.version}</version>
      </dependency>
      <dependency>
        <groupId>org.teiid.connectors</groupId>
        <artifactId>infinispan-tasks</artifactId>
        <version>${teiid.version}</version>
      </dependency>
      <dependency>
        <groupId>org.teiid.connectors</groupId>
        <artifactId>translator-google</artifactId>
        <version>${teiid.version}</version>
        <exclusions>
          <exclusion>
            <groupId>com.google.guava</groupId>
            <artifactId>guava</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>org.teiid.connectors</groupId>
        <artifactId>google-api</artifactId>
        <version>${teiid.version}</version>
        <exclusions>
          <exclusion>
            <groupId>com.google.guava</groupId>
            <artifactId>guava</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>org.teiid.connectors</groupId>
        <artifactId>translator-cassandra</artifactId>
        <version>${teiid.version}</version>
        <exclusions>
          <exclusion>
            <groupId>com.google.guava</groupId>
            <artifactId>guava</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>com.google.apis</groupId>
        <artifactId>google-api-services-sheets</artifactId>
        <version>${google-sheets.version}</version>
      </dependency>
      <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-core</artifactId>
        <version>${hibernate.version}</version>
        <exclusions>
          <exclusion>
                <!-- Other JARS bring in this dependency -->
            <groupId>org.jboss.spec.javax.transaction</groupId>
            <artifactId>jboss-transaction-api_1.2_spec</artifactId>
          </exclusion>
          <exclusion>
            <groupId>javax.activation</groupId>
            <artifactId>javax.activation-api</artifactId>
          </exclusion>
          <exclusion>
            <groupId>javax.xml.bind</groupId>
            <artifactId>jaxb-api</artifactId>
          </exclusion>
          <exclusion>
            <groupId>javax.persistence</groupId>
            <artifactId>javax.persistence-api</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-tools</artifactId>
        <version>${hibernate.version}</version>
        <exclusions>
          <exclusion>
            <groupId>org.apache.ant</groupId>
            <artifactId>ant</artifactId>
          </exclusion>
          <exclusion>
            <groupId>org.eclipse.jdt</groupId>
            <artifactId>org.eclipse.jdt.core</artifactId>
          </exclusion>
          <exclusion>
            <groupId>org.freemarker</groupId>
            <artifactId>freemarker</artifactId>
          </exclusion>
          <exclusion>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
          </exclusion>
          <exclusion>
            <groupId>commons-logging</groupId>
            <artifactId>commons-logging</artifactId>
          </exclusion>
          <exclusion>
            <groupId>javax.persistence</groupId>
            <artifactId>javax.persistence-api</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>xml-apis</groupId>
        <artifactId>xml-apis</artifactId>
        <version>${version.xml-apis}</version>
      </dependency>
      <dependency>
        <groupId>org.keycloak.bom</groupId>
        <artifactId>keycloak-adapter-bom</artifactId>
        <version>${version.org.keycloak}</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>
      <dependency>
        <groupId>org.keycloak</groupId>
        <artifactId>keycloak-spring-boot-starter</artifactId>
        <version>${version.org.keycloak}</version>
        <exclusions>
            <exclusion>
                <groupId>org.jboss.logging</groupId>
                <artifactId>jboss-logging</artifactId>
            </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>org.springframework.social</groupId>
        <artifactId>spring-social-core</artifactId>
        <version>${spring-social.version}</version>
      </dependency>
      <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger2</artifactId>
        <version>${version.springfox}</version>
      </dependency>
      <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger-ui</artifactId>
        <version>${version.springfox}</version>
      </dependency>
      <dependency>
        <groupId>io.swagger</groupId>
        <artifactId>swagger-parser</artifactId>
        <version>${version.swagger-parser}</version>
      </dependency> 
      <dependency>
          <groupId>io.swagger</groupId>
          <artifactId>swagger-models</artifactId>
          <version>${version.io.swagger}</version>
      </dependency> 
      <dependency>
          <groupId>org.openapitools</groupId>
          <artifactId>openapi-generator</artifactId>
          <version>${version.org.openapitools}</version>
      </dependency>
      <dependency>
        <groupId>com.github.spullara.mustache.java</groupId>
        <artifactId>compiler</artifactId>
        <version>${version.mustache}</version>
      </dependency>
      <dependency>
          <groupId>org.openapitools</groupId>
          <artifactId>jackson-databind-nullable</artifactId>
          <version>${version.jackson-databind-nullable}</version>
      </dependency>
      <dependency>
          <groupId>io.swagger</groupId>
          <artifactId>swagger-annotations</artifactId>
          <version>1.5.22</version>
      </dependency>                                              
      <!--Project dependencies -->
      <dependency>
        <groupId>org.teiid</groupId>
        <artifactId>teiid-spring-boot-common</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.teiid</groupId>
        <artifactId>teiid-spring-boot-starter</artifactId>
        <version>${project.version}</version>
        <exclusions>
          <exclusion>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>org.teiid</groupId>
        <artifactId>spring-odata</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.teiid</groupId>
        <artifactId>spring-openapi</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.teiid</groupId>
        <artifactId>vdb-codegen-plugin</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.teiid</groupId>
        <artifactId>vdb-plugin</artifactId>
        <version>${project.version}</version>
      </dependency>      
      <dependency>
        <groupId>org.teiid</groupId>
        <artifactId>spring-keycloak</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.teiid</groupId>
        <artifactId>spring-data-file</artifactId>
        <version>${project.version}</version>
      </dependency>      
      <dependency>
        <groupId>org.teiid</groupId>
        <artifactId>spring-data-rest</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.teiid</groupId>
        <artifactId>spring-data-odata</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.teiid</groupId>
        <artifactId>spring-data-odata4</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.teiid</groupId>
        <artifactId>spring-data-sap-gateway</artifactId>
        <version>${project.version}</version>
      </dependency>      
      <dependency>
        <groupId>org.teiid</groupId>
        <artifactId>spring-data-soap</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.teiid</groupId>
        <artifactId>spring-data-ftp</artifactId>
        <version>${project.version}</version>
      </dependency>      
      <dependency>
        <groupId>org.teiid</groupId>
        <artifactId>spring-data-mongodb</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.teiid</groupId>
        <artifactId>spring-data-excel</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.teiid</groupId>
        <artifactId>spring-data-salesforce</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.teiid</groupId>
        <artifactId>spring-data-google-spreadsheet</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.teiid</groupId>
        <artifactId>spring-data-infinispan-hotrod</artifactId>
        <version>${project.version}</version>
      </dependency>   
      <dependency>
        <groupId>org.teiid</groupId>
        <artifactId>spring-data-openapi</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.teiid</groupId>
        <artifactId>spring-data-cassandra</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.teiid</groupId>
        <artifactId>spring-data-hdfs</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.teiid</groupId>
        <artifactId>spring-data-actian</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.teiid</groupId>
        <artifactId>spring-data-amazon-athena</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.teiid</groupId>
        <artifactId>spring-data-db2</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.teiid</groupId>
        <artifactId>spring-data-derby</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.teiid</groupId>
        <artifactId>spring-data-exasol</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.teiid</groupId>
        <artifactId>spring-data-h2</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.teiid</groupId>
        <artifactId>spring-data-hana</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.teiid</groupId>
        <artifactId>spring-data-hbase</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.teiid</groupId>
        <artifactId>spring-data-hive</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.teiid</groupId>
        <artifactId>spring-data-hsql</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.teiid</groupId>
        <artifactId>spring-data-impala</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.teiid</groupId>
        <artifactId>spring-data-informix</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.teiid</groupId>
        <artifactId>spring-data-ingres</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.teiid</groupId>
        <artifactId>spring-data-jdbc-ansi</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.teiid</groupId>
        <artifactId>spring-data-jdbc-simple</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.teiid</groupId>
        <artifactId>spring-data-jtds-sqlserver</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.teiid</groupId>
        <artifactId>spring-data-mssql-server</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.teiid</groupId>
        <artifactId>spring-data-mysql</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.teiid</groupId>
        <artifactId>spring-data-netezza</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.teiid</groupId>
        <artifactId>spring-data-oracle</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.teiid</groupId>
        <artifactId>spring-data-osisoft-pi</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.teiid</groupId>
        <artifactId>spring-data-phoenix</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.teiid</groupId>
        <artifactId>spring-data-postgresql</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.teiid</groupId>
        <artifactId>spring-data-prestodb</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.teiid</groupId>
        <artifactId>spring-data-redshift</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.teiid</groupId>
        <artifactId>spring-data-sap-iq</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.teiid</groupId>
        <artifactId>spring-data-sybase</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.teiid</groupId>
        <artifactId>spring-data-teiid</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.teiid</groupId>
        <artifactId>spring-data-teradata</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.teiid</groupId>
        <artifactId>spring-data-ucanaccess</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.teiid</groupId>
        <artifactId>spring-data-vertica</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.teiid</groupId>
        <artifactId>spring-data-s3</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.teiid</groupId>
        <artifactId>vdb-tools-common</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.teiid</groupId>
        <artifactId>spring-data-util</artifactId>
        <version>${project.version}</version>
      </dependency>             
      <dependency>
        <groupId>org.mockito</groupId>
        <artifactId>mockito-all</artifactId>
        <version>${version.org.mockito}</version>
        <scope>test</scope>
      </dependency>
      <dependency>
          <groupId>net.sourceforge.jtds</groupId>
          <artifactId>jtds</artifactId>
          <version>${version.net.sourceforge.jtds}</version>
      </dependency>
      <dependency>
          <groupId>com.microsoft.sqlserver</groupId>
          <artifactId>mssql-jdbc</artifactId>
          <version>${version.com.microsoft.sqlserver}</version>
      </dependency>   
    <dependency>
      <groupId>org.postgresql</groupId>
      <artifactId>postgresql</artifactId>
      <version>${version.org.postgresql}</version>
    </dependency>           

    <!-- Mongodb override -->
    <dependency>
      <groupId>org.mongodb</groupId>
      <artifactId>mongo-java-driver</artifactId>
      <version>${version.org.mongodb}</version>
    </dependency>
    <!-- mongodb Override -->
    
      <!-- this is to override the infinispan version from spring-bom above, when matches with version remove -->
      <dependency>
        <groupId>com.github.ben-manes.caffeine</groupId>
        <artifactId>caffeine</artifactId>
        <version>2.8.0</version>
      </dependency>
      <dependency>
          <groupId>org.infinispan</groupId>
          <artifactId>infinispan-commons</artifactId>
          <version>10.0.1.Final</version>
      </dependency>
      <dependency>
          <groupId>org.infinispan</groupId>
          <artifactId>infinispan-client-hotrod</artifactId>
          <exclusions>
            <exclusion>
                <groupId>org.jboss.spec.javax.transaction</groupId>
                <artifactId>jboss-transaction-api_1.2_spec</artifactId>
            </exclusion>
          </exclusions>
          <version>10.0.1.Final</version>
      </dependency>      
      <dependency>
          <groupId>org.infinispan</groupId>
          <artifactId>infinispan-remote-query-client</artifactId>
          <version>10.0.1.Final</version>
      </dependency>
      <dependency>
          <groupId>org.infinispan</groupId>
          <artifactId>infinispan-query-dsl</artifactId>
          <version>10.0.1.Final</version>
      </dependency>      
      <dependency>
          <groupId>org.infinispan</groupId>
          <artifactId>infinispan-tasks-api</artifactId>
          <version>10.0.1.Final</version>
      </dependency>  
      <dependency>
          <groupId>org.infinispan</groupId>
          <artifactId>infinispan-core</artifactId>
          <exclusions>
            <exclusion>
                <groupId>org.jboss.spec.javax.transaction</groupId>
                <artifactId>jboss-transaction-api_1.2_spec</artifactId>
            </exclusion>
          </exclusions>          
          <version>10.0.1.Final</version>
      </dependency>
      <dependency>
          <groupId>org.infinispan</groupId>
          <artifactId>infinispan-tasks</artifactId>
          <version>10.0.1.Final</version>
      </dependency>      
      <!-- this is to override the infinispan version from spring-bom above, when matches with version remove -->
            
      <!-- DEPENDENCY RESOLUTION SUGGESTED OVERRIDES, OVERRIDES SPRING BOOT'S, ONLY EDIT WHEN SB UPGRADES -->
      <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-core</artifactId>
        <version>${version.jackson-core}</version>
      </dependency>
      <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
        <version>${version.jackson-databind}</version>
      </dependency>
      <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-annotations</artifactId>
        <version>${version.jackson-core}</version>
      </dependency>      
      <dependency>
        <groupId>com.fasterxml.jackson.dataformat</groupId>
        <artifactId>jackson-dataformat-xml</artifactId>
        <version>${version.jackson-core}</version>
      </dependency> 
      <dependency>
        <groupId>com.fasterxml.jackson.dataformat</groupId>
        <artifactId>jackson-dataformat-yaml</artifactId>
        <version>${version.jackson-core}</version>
      </dependency>
      <dependency>
        <groupId>com.fasterxml.jackson.datatype</groupId>
        <artifactId>jackson-datatype-joda</artifactId>
        <version>${version.jackson-core}</version>
      </dependency>                  
      <dependency>
        <groupId>com.fasterxml.jackson.module</groupId>
        <artifactId>jackson-module-jaxb-annotations</artifactId>
        <version>${version.jackson-core}</version>
      </dependency>
      <dependency>
        <groupId>com.fasterxml.woodstox</groupId>
        <artifactId>woodstox-core</artifactId>
        <version>6.1.1</version>
      </dependency>
      <dependency>
          <groupId>org.codehaus.woodstox</groupId>
          <artifactId>stax2-api</artifactId>
          <version>4.2</version>
      </dependency>
      <dependency>
        <groupId>org.jboss.logging</groupId>
        <artifactId>jboss-logging</artifactId>
        <version>3.4.1.Final</version>
      </dependency>
      <dependency>
        <groupId>org.yaml</groupId>
        <artifactId>snakeyaml</artifactId>
        <version>1.26</version>
      </dependency>
      <dependency>
        <groupId>com.google.guava</groupId>
        <artifactId>guava</artifactId>
        <version>20.0</version>
      </dependency>

      <!-- DEPENDENCY RESOLUTION SUGGESTED OVERRIDES, OVERRIDES SPRING BOOT'S, ONLY EDIT WHEN SB UPGRADES -->

      <dependency>
          <groupId>com.ingres.jdbc</groupId>
          <artifactId>iijdbc</artifactId>
          <version>${version.com.ingres.jdbc}</version>
      </dependency>
      <dependency>
          <groupId>com.syncron.amazonaws</groupId>
          <artifactId>simba-athena-jdbc-driver</artifactId>
          <version>${version.com.syncron.amazonaws}</version>
      </dependency>
      <dependency>
          <groupId>org.apache.derby</groupId>
          <artifactId>derbyclient</artifactId>
          <version>${version.org.apache.derby}</version>
      </dependency>
      <dependency>
          <groupId>com.exasol</groupId>
          <artifactId>exasol-jdbc</artifactId>
          <version>${version.com.exasol}</version>
      </dependency>
      <dependency>
          <groupId>com.sap.cloud.db.jdbc</groupId>
          <artifactId>ngdbc</artifactId>
          <version>${version.com.sap.cloud.db.jdbc}</version>
      </dependency>
      <dependency>
          <groupId>com.cloudera.impala</groupId>
          <artifactId>jdbc</artifactId>
          <version>${version.com.cloudera.impala}</version>
      </dependency>
      <dependency>
          <groupId>com.ibm.informix</groupId>
          <artifactId>jdbc</artifactId>
          <version>${version.com.ibm.informix}</version>
      </dependency>
    <dependency>
      <groupId>com.facebook.presto</groupId>
      <artifactId>presto-jdbc</artifactId>
      <version>${version.com.facebook.presto}</version>
    </dependency>
    <dependency>
        <groupId>net.sf.ucanaccess</groupId>
        <artifactId>ucanaccess</artifactId>
        <version>${version.net.sf.ucanaccess}</version>
        <exclusions>
          <exclusion>
            <groupId>commons-logging</groupId>
            <artifactId>commons-logging </artifactId>
          </exclusion>
        </exclusions>
    </dependency>
    <dependency>
        <groupId>org.apache.phoenix</groupId>
        <artifactId>phoenix-queryserver-client</artifactId>
        <version>${version.org.apache.phoenix}</version>
        <exclusions>
          <exclusion>
            <groupId>jakarta.xml.bind</groupId>
            <artifactId>jakarta.xml.bind-api</artifactId>
          </exclusion>
          <exclusion>
            <groupId>com.sun.xml.bind</groupId>
            <artifactId>jaxb-impl</artifactId>
          </exclusion>
          <exclusion>
            <groupId>com.sun.istack</groupId>
            <artifactId>istack-commons-runtime</artifactId>
          </exclusion>
          <exclusion>
            <groupId>commons-beanutils</groupId>
            <artifactId>commons-beanutils-core</artifactId>
          </exclusion>
          <exclusion>
            <groupId>commons-beanutils</groupId>
            <artifactId>commons-beanutils</artifactId>
          </exclusion>
          <exclusion>
            <groupId>commons-logging</groupId>
            <artifactId>commons-logging</artifactId>
          </exclusion>
          <exclusion>
            <groupId>jdk.tools</groupId>
            <artifactId>jdk.tools</artifactId>
          </exclusion>
        </exclusions>
    </dependency>
    <dependency>
      <groupId>org.apache.hive</groupId>
      <artifactId>hive-jdbc</artifactId>
      <version>${version.org.apache.hive}</version>
      <classifier>standalone</classifier>
      <exclusions>
        <exclusion>
          <groupId>*</groupId>
          <artifactId>*</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>io.opentracing.contrib</groupId>
      <artifactId>opentracing-spring-jaeger-web-starter</artifactId>
      <version>${version.io.opentracing.contrib}</version>
    </dependency>
    
    </dependencies>

  </dependencyManagement>

  <repositories>
    <repository>
      <id>central</id>
      <name>Maven Central</name>
      <url>https://repo.maven.apache.org/maven2/</url>
      <snapshots>
          <enabled>false</enabled>
          <updatePolicy>never</updatePolicy>
      </snapshots>
    </repository>
    <repository>
      <id>jboss-public-repository-group</id>
      <name>JBoss Public Repository Group</name>
      <url>https://repository.jboss.org/nexus/content/groups/public/</url>
      <releases>
        <enabled>true</enabled>
      </releases>
      <snapshots>
        <enabled>false</enabled>
      </snapshots>
    </repository>
    <repository>
      <id>snapshots-repo</id>
      <url>https://oss.sonatype.org/content/repositories/snapshots</url>
      <releases>
        <enabled>false</enabled>
      </releases>
      <snapshots>
        <enabled>true</enabled>
      </snapshots>
    </repository>
    <repository>
      <id>apache-snapshot-repository-group</id>
      <url>https://repository.apache.org/content/groups/snapshots/</url>
      <releases>
        <enabled>false</enabled>
        <updatePolicy>never</updatePolicy>
      </releases>
      <snapshots>
        <enabled>true</enabled>
      </snapshots>
    </repository>
  </repositories>

  <pluginRepositories>
    <pluginRepository>
      <id>jboss-public-repository-group</id>
      <name>JBoss Public Repository Group</name>
      <url>https://repository.jboss.org/nexus/content/groups/public/</url>
      <releases>
        <enabled>true</enabled>
      </releases>
      <snapshots>
        <enabled>false</enabled>
      </snapshots>
    </pluginRepository>
  </pluginRepositories>

  <profiles>
    <profile>
      <id>default</id>
      <activation>
        <activeByDefault>true</activeByDefault>
      </activation>
      <modules>
        <module>common</module>       
        <module>starter</module>
        <module>starter-test</module>
        <module>data</module>
        <module>tools</module>
        <module>odata</module>
        <module>openapi</module>
        <module>keycloak</module>
        <module>samples</module>
      </modules>
    </profile>
    <profile>
      <id>release</id>
      <properties>
        <basepom.check.skip-javadoc>false</basepom.check.skip-javadoc>
      </properties>
      <modules>
        <module>common</module>        
        <module>starter</module>
        <module>data</module>
        <module>tools</module>
        <module>odata</module>
        <module>openapi</module>
        <module>keycloak</module>
      </modules>
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-javadoc-plugin</artifactId>
            <configuration>
              <maxmemory>512m</maxmemory>
            </configuration>
            <executions>
              <execution>
                <goals>
                  <goal>jar</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-source-plugin</artifactId>
            <executions>
              <execution>
                <id>attach-sources</id>
                <phase>verify</phase>
                <goals>
                  <goal>jar-no-fork</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-gpg-plugin</artifactId>
            <executions>
              <execution>
                <id>sign-artifacts</id>
                <phase>verify</phase>
                <goals>
                  <goal>sign</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <artifactId>maven-release-plugin</artifactId>
            <dependencies>
              <dependency>
                <groupId>org.apache.maven.scm</groupId>
                <artifactId>maven-scm-provider-gitexe</artifactId>
                <version>1.9.5</version>
              </dependency>
            </dependencies>
          </plugin>
        </plugins>
      </build>
    </profile>
  </profiles>
</project>
