<?xml version="1.0" encoding="UTF-8"?>
<!--
  ~ Copyright 2017 Red Hat, Inc. and/or its affiliates.
  ~
  ~ Licensed under the Apache License version 2.0, available at http://www.apache.org/licenses/LICENSE-2.0
  -->
<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.wildfly.swarm</groupId>
    <artifactId>wildfly-swarm</artifactId>
    <version>2017.11.0</version>
    <relativePath>../</relativePath>
  </parent>

  <artifactId>build-parent</artifactId>

  <packaging>pom</packaging>

  <name>WF Swarm Build Parent</name>
  <description>Build Parent to bring in required dependencies</description>

  <properties>
    <version.wildfly.swarm.fraction.plugin>74</version.wildfly.swarm.fraction.plugin>

    <version.org.snakeyaml>1.17</version.org.snakeyaml>

    <version.wildfly.config-api>1.1.0.Final</version.wildfly.config-api>

    <version.keycloak.config-api>1.1.0.Final</version.keycloak.config-api>
    <version.teiid.config-api>1.0.2</version.teiid.config-api>
    <version.keycloak>2.5.5.Final</version.keycloak>
    <version.mongo.config-api>1.2.0</version.mongo.config-api>
    <version.cassandra.config-api>1.2.0</version.cassandra.config-api>
    <version.neo4j.config-api>1.2.0</version.neo4j.config-api>
    <version.orientdb.config-api>1.2.0</version.orientdb.config-api>
    <version.wildfly.nosql.feature-pack>1.0.0.Alpha4</version.wildfly.nosql.feature-pack>

    <version.wildfly>10.1.0.Final</version.wildfly>
    <version.org.wildfly.core>2.2.1.Final</version.org.wildfly.core>
    <version.jboss-logmanager-ext>1.0.0.Alpha3</version.jboss-logmanager-ext>
    <!-- Weld SE version must be aligned with the version used in WildFly -->
    <version.weld-se>2.3.5.Final</version.weld-se>

    <version.org.objectweb.asm>5.0.4</version.org.objectweb.asm>

    <version.jolokia>1.3.4</version.jolokia>
    <version.io.swagger>1.5.16</version.io.swagger>
    <version.org.webjars.swagger-ui>3.2.2</version.org.webjars.swagger-ui>
    <version.swagger.jackson>2.8.4</version.swagger.jackson>
    <version.swagger.reflections>0.9.10</version.swagger.reflections>
    <version.swagger.slf4j>1.6.3</version.swagger.slf4j>
    <version.swagger.guava>18.0</version.swagger.guava>
    <version.swagger.javassist>3.18.2-GA</version.swagger.javassist>
    <version.swagger.commons.lang>3.2.1</version.swagger.commons.lang>

    <version.hibernate-spatial>5.0.10.Final</version.hibernate-spatial>
    <version.geolatte>1.0.1</version.geolatte>
    <version.vividsolutions-jts>1.13</version.vividsolutions-jts>

    <version.eclipse.link>2.6.2</version.eclipse.link>

    <version.com.orbitz.consul>0.9.16</version.com.orbitz.consul>

    <version.openshift.client>5.6.0.Final</version.openshift.client>
    <version.com.squareup.okhttp>3.4.2</version.com.squareup.okhttp>
    <version.com.squareup.okio>1.9.0</version.com.squareup.okio>

    <version.vertx>3.3.3</version.vertx>

    <version.org.kie>6.4.0.Final</version.org.kie>

    <version.teiid.feature-pack>9.2.0.Final</version.teiid.feature-pack>

    <version.flyway>4.2.0</version.flyway>

    <version.gradle>2.4</version.gradle>
    <version.gradle.plugins>1.12</version.gradle.plugins>
    <version.groovy>2.4.3</version.groovy>

    <version.brave>3.14.1</version.brave>
    <version.zipkin.reporter>0.6.1</version.zipkin.reporter>
    <version.zipkin>1.13.1</version.zipkin>

    <!-- OpenTracing related versions -->
    <version.opentracing.tracerresolver>0.1.0</version.opentracing.tracerresolver>
    <version.opentracing.servlet>0.0.9</version.opentracing.servlet>
    <version.opentracing.spanmanager>0.0.5</version.opentracing.spanmanager>
    <version.jaeger>0.20.0</version.jaeger>
    <version.jaeger.apache.thrift>0.9.2</version.jaeger.apache.thrift>
    <version.jaeger.apache.httpclient>4.2.5</version.jaeger.apache.httpclient>
    <version.jaeger.commons.logging>1.1.1</version.jaeger.commons.logging>
    <version.jaeger.commons.codec>1.6</version.jaeger.commons.codec>
    <version.jaeger.apache.httpcore>4.2.4</version.jaeger.apache.httpcore>
    <version.jaeger.gson>2.8.0</version.jaeger.gson>

    <version.maven.aether>3.2.5</version.maven.aether>
  </properties>

  <build>
    <plugins>
      <plugin>
        <groupId>org.wildfly.swarm</groupId>
        <artifactId>wildfly-swarm-fraction-plugin</artifactId>
        <version>${version.wildfly.swarm.fraction.plugin}</version>
        <executions>
          <execution>
            <id>process</id>
            <phase>process-classes</phase>
            <goals>
              <goal>process</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>

  <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>org.wildfly.core</groupId>
        <artifactId>wildfly-core-parent</artifactId>
        <type>pom</type>
        <version>${version.org.wildfly.core}</version>
        <scope>import</scope>
      </dependency>

      <dependency>
        <groupId>org.wildfly</groupId>
        <artifactId>wildfly-parent</artifactId>
        <version>${version.wildfly}</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>

      <!--
        org.wildfly:wildfly-parent transitively brings in 3.2.1, which breaks ShrinkWrap's resolver.
        Must override with 3.2.5
    -->
      <dependency>
        <groupId>org.apache.maven</groupId>
        <artifactId>maven-aether-provider</artifactId>
        <version>${version.maven.aether}</version>
      </dependency>

      <dependency>
        <groupId>org.jboss.shrinkwrap</groupId>
        <artifactId>shrinkwrap-api</artifactId>
        <version>${version.org.jboss.shrinkwrap}</version>
      </dependency>
      <dependency>
        <groupId>org.jboss.shrinkwrap</groupId>
        <artifactId>shrinkwrap-spi</artifactId>
        <version>${version.org.jboss.shrinkwrap}</version>
      </dependency>
      <dependency>
        <groupId>org.jboss.shrinkwrap</groupId>
        <artifactId>shrinkwrap-impl-base</artifactId>
        <version>${version.org.jboss.shrinkwrap}</version>
      </dependency>
      <dependency>
        <groupId>org.jboss.shrinkwrap.descriptors</groupId>
        <artifactId>shrinkwrap-descriptors-spi</artifactId>
        <version>${version.org.jboss.shrinkwrap.descriptors}</version>
      </dependency>
      <dependency>
        <groupId>org.jboss.shrinkwrap.descriptors</groupId>
        <artifactId>shrinkwrap-descriptors-api-base</artifactId>
        <version>${version.org.jboss.shrinkwrap.descriptors}</version>
      </dependency>
      <dependency>
        <groupId>org.jboss.shrinkwrap.descriptors</groupId>
        <artifactId>shrinkwrap-descriptors-api-javaee</artifactId>
        <version>${version.org.jboss.shrinkwrap.descriptors}</version>
      </dependency>
      <dependency>
        <groupId>org.jboss.shrinkwrap.descriptors</groupId>
        <artifactId>shrinkwrap-descriptors-api-jboss</artifactId>
        <version>${version.org.jboss.shrinkwrap.descriptors}</version>
      </dependency>
      <dependency>
        <groupId>org.jboss.shrinkwrap.descriptors</groupId>
        <artifactId>shrinkwrap-descriptors-impl-base</artifactId>
        <version>${version.org.jboss.shrinkwrap.descriptors}</version>
      </dependency>
      <dependency>
        <groupId>org.jboss.shrinkwrap.descriptors</groupId>
        <artifactId>shrinkwrap-descriptors-impl-javaee</artifactId>
        <version>${version.org.jboss.shrinkwrap.descriptors}</version>
      </dependency>
      <dependency>
        <groupId>org.jboss.shrinkwrap.descriptors</groupId>
        <artifactId>shrinkwrap-descriptors-impl-jboss</artifactId>
        <version>${version.org.jboss.shrinkwrap.descriptors}</version>
      </dependency>

      <dependency>
        <groupId>org.wildfly.swarm</groupId>
        <artifactId>config-api</artifactId>
        <version>${version.wildfly.config-api}</version>
      </dependency>
      <dependency>
        <groupId>org.wildfly.swarm</groupId>
        <artifactId>config-api-runtime</artifactId>
        <version>${version.wildfly.config-api}</version>
      </dependency>
      <dependency>
        <groupId>org.wildfly.swarm</groupId>
        <artifactId>mongo-config-api</artifactId>
        <version>${version.mongo.config-api}</version>
      </dependency>
     <dependency>
        <groupId>org.wildfly.swarm</groupId>
        <artifactId>cassandra-config-api</artifactId>
        <version>${version.cassandra.config-api}</version>
      </dependency>
     <dependency>
        <groupId>org.wildfly.swarm</groupId>
        <artifactId>neo4j-config-api</artifactId>
        <version>${version.neo4j.config-api}</version>
      </dependency>
     <dependency>
        <groupId>org.wildfly.swarm</groupId>
        <artifactId>orientdb-config-api</artifactId>
        <version>${version.orientdb.config-api}</version>
      </dependency>

      <dependency>
        <groupId>org.apache.maven</groupId>
        <artifactId>maven-plugin-api</artifactId>
        <version>${version.maven.plugin.api}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.maven</groupId>
        <artifactId>maven-core</artifactId>
        <version>${version.maven.plugin.api}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.maven.plugin-tools</groupId>
        <artifactId>maven-plugin-annotations</artifactId>
        <version>${version.maven-plugin-plugin}</version>
      </dependency>

      <dependency>
        <groupId>org.jboss.spec.javax.sql</groupId>
        <artifactId>jboss-javax-sql-api_7.0_spec</artifactId>
        <version>${version.org.jboss.spec.javax.sql.jboss-javax-sql-api_7.0_spec}</version>
      </dependency>

      <!-- Needed by fraction-metadata -->
      <dependency>
        <groupId>org.ow2.asm</groupId>
        <artifactId>asm-all</artifactId>
        <version>${version.org.objectweb.asm}</version>
      </dependency>

      <!-- Used by SwarmTool -->
      <dependency>
        <groupId>net.sf.jopt-simple</groupId>
        <artifactId>jopt-simple</artifactId>
        <version>4.9</version>
      </dependency>

      <!-- Needed by bootstrap -->
      <dependency>
        <groupId>org.yaml</groupId>
        <artifactId>snakeyaml</artifactId>
        <version>${version.org.snakeyaml}</version>
      </dependency>

      <dependency>
        <groupId>org.wildfly.swarm</groupId>
        <artifactId>keycloak-client-config-api</artifactId>
        <version>${version.keycloak.config-api}</version>
      </dependency>
      <dependency>
        <groupId>org.keycloak</groupId>
        <artifactId>keycloak-adapter-feature-pack</artifactId>
        <type>zip</type>
        <version>${version.keycloak}</version>
        <scope>provided</scope>
      </dependency>
      <dependency>
        <groupId>org.keycloak</groupId>
        <artifactId>keycloak-core</artifactId>
        <version>${version.keycloak}</version>
      </dependency>
      <dependency>
        <groupId>org.keycloak</groupId>
        <artifactId>keycloak-undertow-adapter</artifactId>
        <version>${version.keycloak}</version>
      </dependency>

      <dependency>
        <groupId>org.wildfly.swarm</groupId>
        <artifactId>keycloak-server-config-api</artifactId>
        <version>${version.keycloak.config-api}</version>
      </dependency>
      <dependency>
        <groupId>org.keycloak</groupId>
        <artifactId>keycloak-server-feature-pack</artifactId>
        <type>zip</type>
        <version>${version.keycloak}</version>
        <scope>provided</scope>
      </dependency>
      <dependency>
        <groupId>org.keycloak</groupId>
        <artifactId>keycloak-themes</artifactId>
        <version>${version.keycloak}</version>
      </dependency>

      <dependency>
        <groupId>com.openshift</groupId>
        <artifactId>openshift-restclient-java</artifactId>
        <version>${version.openshift.client}</version>
      </dependency>
      <!-- The following are not used, they are here to make PME align proper versions-->
      <dependency>
        <groupId>com.squareup.okhttp3</groupId>
        <artifactId>okhttp</artifactId>
        <version>${version.com.squareup.okhttp}</version>
      </dependency>
      <dependency>
        <groupId>com.squareup.okhttp3</groupId>
        <artifactId>okhttp-ws</artifactId>
        <version>${version.com.squareup.okhttp}</version>
      </dependency>
      <dependency>
        <groupId>com.squareup.okio</groupId>
        <artifactId>okio</artifactId>
        <version>${version.com.squareup.okio}</version>
      </dependency>
      <!-- end of unused dependencies -->

      <!-- Feature Packs -->
      <dependency>
        <groupId>org.wildfly</groupId>
        <artifactId>wildfly-servlet-feature-pack</artifactId>
        <version>${version.wildfly}</version>
        <type>zip</type>
        <scope>provided</scope>
      </dependency>
      <dependency>
        <groupId>org.wildfly</groupId>
        <artifactId>wildfly-feature-pack</artifactId>
        <version>${version.wildfly}</version>
        <type>zip</type>
        <scope>provided</scope>
        <exclusions>
          <exclusion>
            <groupId>org.wildfly.core</groupId>
            <artifactId>wildfly-core-feature-pack</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>org.wildfly.core</groupId>
        <artifactId>wildfly-core-feature-pack</artifactId>
        <version>${version.org.wildfly.core}</version>
        <type>zip</type>
        <scope>provided</scope>
      </dependency>
    </dependencies>
  </dependencyManagement>

  <modules>
    <!-- DO NOT ADD MODULES HERE. THIS ACTS AS A PARENT POM ONLY.
         ANY MODULES SHOULD BE ADDED, AS APPROPRIATE, TO THE ROOT
         pom.xml OF THIS PROJECT. -->
  </modules>

  <profiles>
    <profile>
      <id>unsupported</id>
      <activation>
        <property>
          <name>!swarm.product.build</name>
        </property>
      </activation>
      <properties>
        <testCategory.excluded>category.ProductOnly</testCategory.excluded>
      </properties>

      <dependencyManagement>
        <dependencies>
          <dependency>
            <groupId>org.gradle</groupId>
            <artifactId>gradle-core</artifactId>
            <version>${version.gradle}</version>
          </dependency>
          <dependency>
            <groupId>org.gradle</groupId>
            <artifactId>gradle-base-services</artifactId>
            <version>${version.gradle}</version>
            <scope>provided</scope>
          </dependency>
          <dependency>
            <groupId>org.gradle</groupId>
            <artifactId>gradle-plugins</artifactId>
            <version>${version.gradle.plugins}</version>
          </dependency>
          <dependency>
            <groupId>org.codehaus.groovy</groupId>
            <artifactId>groovy</artifactId>
            <version>${version.groovy}</version>
            <scope>provided</scope>
          </dependency>

          <!-- Needed by Drools Server -->
          <dependency>
            <groupId>org.kie.server</groupId>
            <artifactId>kie-server-services-common</artifactId>
            <version>${version.org.kie}</version>
          </dependency>
          <dependency>
            <groupId>org.kie.server</groupId>
            <artifactId>kie-server-rest-common</artifactId>
            <version>${version.org.kie}</version>
          </dependency>
          <dependency>
            <groupId>org.kie.server</groupId>
            <artifactId>kie-server-services-drools</artifactId>
            <version>${version.org.kie}</version>
          </dependency>
          <dependency>
            <groupId>org.kie.server</groupId>
            <artifactId>kie-server-rest-drools</artifactId>
            <version>${version.org.kie}</version>
          </dependency>

          <dependency>
            <groupId>org.flywaydb</groupId>
            <artifactId>flyway-core</artifactId>
            <version>${version.flyway}</version>
          </dependency>

          <dependency>
            <groupId>org.jolokia</groupId>
            <artifactId>jolokia-war</artifactId>
            <type>war</type>
            <version>${version.jolokia}</version>
          </dependency>

          <!-- Needed by Logstash -->
          <dependency>
            <groupId>org.jboss.logmanager</groupId>
            <artifactId>jboss-logmanager-ext</artifactId>
            <version>${version.jboss-logmanager-ext}</version>
          </dependency>

          <!-- NoSQL start -->
          <dependency>
            <groupId>com.orientechnologies</groupId>
            <artifactId>orientdb-core</artifactId>
            <version>${version.com.orientechnologies}</version>
            <exclusions>
              <exclusion>
                <groupId>org.xerial.snappy</groupId>
                <artifactId>snappy-java</artifactId>
              </exclusion>
              <exclusion>
                <groupId>com.googlecode.concurrentlinkedhashmap</groupId>
                <artifactId>concurrentlinkedhashmap-lru</artifactId>
              </exclusion>
              <exclusion>
                <groupId>net.java.dev.jna</groupId>
                <artifactId>jna</artifactId>
              </exclusion>
              <exclusion>
                <groupId>net.java.dev.jna</groupId>
                <artifactId>jna-platform</artifactId>
              </exclusion>
            </exclusions>
          </dependency>

          <dependency>
            <groupId>com.orientechnologies</groupId>
            <artifactId>orientdb-graphdb</artifactId>
            <version>${version.com.orientechnologies}</version>
            <exclusions>
              <exclusion>
                <groupId>com.orientechnologies</groupId>
                <artifactId>orientdb-server</artifactId>
              </exclusion>
              <exclusion>
                <groupId>com.orientechnologies</groupId>
                <artifactId>orientdb-tools</artifactId>
              </exclusion>
              <exclusion>
                <groupId>com.tinkerpop.gremlin</groupId>
                <artifactId>gremlin-java</artifactId>
              </exclusion>
              <exclusion>
                <groupId>com.tinkerpop.gremlin</groupId>
                <artifactId>gremlin-groovy</artifactId>
              </exclusion>
            </exclusions>
          </dependency>

          <dependency>
            <groupId>com.orientechnologies</groupId>
            <artifactId>orientdb-object</artifactId>
            <version>${version.com.orientechnologies}</version>
            <exclusions>
              <exclusion>
                <groupId>org.hibernate.javax.persistence</groupId>
                <artifactId>hibernate-jpa-2.0-api</artifactId>
              </exclusion>
            </exclusions>
          </dependency>

          <dependency>
            <groupId>com.orientechnologies</groupId>
            <artifactId>orientdb-client</artifactId>
            <version>${version.com.orientechnologies}</version>
          </dependency>

          <dependency>
            <groupId>com.tinkerpop.blueprints</groupId>
            <artifactId>blueprints-core</artifactId>
            <version>${version.com.tinkerpop.blueprints}</version>
            <exclusions>
              <exclusion>
                <groupId>commons-logging</groupId>
                <artifactId>commons-logging</artifactId>
              </exclusion>
              <exclusion>
                <groupId>com.carrotsearch</groupId>
                <artifactId>hppc</artifactId>
              </exclusion>
              <exclusion>
                <groupId>commons-configuration</groupId>
                <artifactId>commons-configuration</artifactId>
              </exclusion>
            </exclusions>
          </dependency>

          <dependency>
            <groupId>com.googlecode.concurrentlinkedhashmap</groupId>
            <artifactId>concurrentlinkedhashmap-lru</artifactId>
            <version>${version.com.googlecode.concurrentlinkedhashmap}</version>
          </dependency>
          <!-- NoSQL end -->

          <dependency>
            <groupId>io.swagger</groupId>
            <artifactId>swagger-jaxrs</artifactId>
            <version>${version.io.swagger}</version>
          </dependency>
          <dependency>
            <groupId>io.swagger</groupId>
            <artifactId>swagger-annotations</artifactId>
            <version>${version.io.swagger}</version>
          </dependency>

          <dependency>
            <groupId>org.webjars</groupId>
            <artifactId>swagger-ui</artifactId>
            <version>${version.org.webjars.swagger-ui}</version>
          </dependency>

          <dependency>
            <groupId>org.wildfly.swarm</groupId>
            <artifactId>teiid-config-api</artifactId>
            <version>${version.teiid.config-api}</version>
          </dependency>
          <!-- Teiid integration feature-pack-->
          <dependency>
            <groupId>org.jboss.teiid</groupId>
            <artifactId>teiid-wildfly-integration-feature-pack</artifactId>
            <version>${version.teiid.feature-pack}</version>
            <type>zip</type>
            <scope>provided</scope>
            <exclusions>
              <exclusion>
                <groupId>*</groupId>
                <artifactId>*</artifactId>
              </exclusion>
            </exclusions>
          </dependency>
          <dependency>
            <groupId>org.jboss.teiid</groupId>
            <artifactId>rest-service-feature-pack</artifactId>
            <version>${version.teiid.feature-pack}</version>
            <type>zip</type>
            <scope>provided</scope>
            <exclusions>
              <exclusion>
                <groupId>*</groupId>
                <artifactId>*</artifactId>
              </exclusion>
            </exclusions>
          </dependency>
          <dependency>
            <groupId>org.jboss.teiid.connectors</groupId>
            <artifactId>feature-pack-swagger</artifactId>
            <version>${version.teiid.feature-pack}</version>
            <type>zip</type>
            <scope>provided</scope>
            <exclusions>
              <exclusion>
                <groupId>*</groupId>
                <artifactId>*</artifactId>
              </exclusion>
            </exclusions>
          </dependency>
          <dependency>
            <groupId>org.jboss.teiid</groupId>
            <artifactId>teiid-client-feature-pack</artifactId>
            <version>${version.teiid.feature-pack}</version>
            <type>zip</type>
            <scope>provided</scope>
            <exclusions>
              <exclusion>
                <groupId>*</groupId>
                <artifactId>*</artifactId>
              </exclusion>
            </exclusions>
          </dependency>
          <!--Teiid integration end-->

          <!-- For topology-consul -->
          <dependency>
            <groupId>com.orbitz.consul</groupId>
            <artifactId>consul-client</artifactId>
            <version>${version.com.orbitz.consul}</version>
          </dependency>
        </dependencies>
      </dependencyManagement>

    </profile>
  </profiles>

</project>
