<?xml version="1.0" encoding="UTF-8"?>
<!--
  ~ Copyright 2015 Red Hat, Inc. and/or its affiliates.
  ~
  ~ 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/maven-v4_0_0.xsd">

  <modelVersion>4.0.0</modelVersion>
  <parent>
    <groupId>org.uberfire</groupId>
    <artifactId>uberfire-parent-metadata</artifactId>
    <version>0.9.0.Final</version>
  </parent>

  <artifactId>uberfire-parent-with-dependencies</artifactId>
  <packaging>pom</packaging>

  <name>UberFire parent with dependencies</name>
  <description>
    The parent with dependencies declares all dependency versions in dependencyManagement.
    All modules extend this parent, except for the boms (which are used here).
  </description>

  <properties>
    <!-- ################################################################################ -->
    <!-- External dependency versions -->
    <!-- ################################################################################ -->
    <!-- Keep in sync with <parent>'s <version> in uberfire-parent-metadata -->
    <version.org.jboss.integration-platform>6.0.8.Final</version.org.jboss.integration-platform>

    <version.com.allen-sauer.gwt.dnd>3.3.3</version.com.allen-sauer.gwt.dnd>
    <version.com.thoughtworks.xstream>1.4.9</version.com.thoughtworks.xstream>
    <version.org.apache.lucene>4.0.0</version.org.apache.lucene>
    <version.org.jboss.errai>3.2.4.Final</version.org.jboss.errai>
    <version.org.jboss.errai.cdi10-compatible>3.0.6.Final</version.org.jboss.errai.cdi10-compatible>
    <version.org.jboss.weld.weld>2.0.5.Final</version.org.jboss.weld.weld>
    <version.org.jboss.weld.weld-api>2.0.SP1</version.org.jboss.weld.weld-api>
    <version.org.jboss.classfilewriter.jboss-classfilewriter>1.0.4.Final</version.org.jboss.classfilewriter.jboss-classfilewriter>
    <version.org.jboss.xnio>3.2.0.Final</version.org.jboss.xnio>
    <version.org.patternfly>2.1.0</version.org.patternfly>
    <version.org.picketlink>2.6.0.Final</version.org.picketlink>

    <osgi.snapshot.qualifier>${maven.build.timestamp}</osgi.snapshot.qualifier>
  </properties>

  <!-- IMPORTANT: Do not declare any build configuration here! Declare it in uberfire-parent-metadata. -->  <build/>

  <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>org.uberfire</groupId>
        <artifactId>uberfire-bom</artifactId>
        <type>pom</type>
        <!-- Using ${uberfire.version} instead of ${project.version} enables easier way to create hot fixes
             (one-off patches). This pom is a parent for all uberfire modules, so when version is changed in
             one of them, the ${project.version} property changes too and therefore also required version of
             uberfire-bom. Usage of  this property makes it possible to change version of the (sub)module
             and still use the original version of uberfire-bom. -->
        <version>${uberfire.version}</version>
        <scope>import</scope>
      </dependency>

      <dependency>
        <groupId>org.jboss.integration-platform</groupId>
        <artifactId>jboss-integration-platform-bom</artifactId>
        <version>${version.org.jboss.integration-platform}</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>

      <!-- Errai -->
      <dependency>
        <groupId>org.jboss.errai.bom</groupId>
        <artifactId>errai-internal-bom</artifactId>
        <version>${version.org.jboss.errai}</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>
      <dependency>
        <groupId>org.jboss.errai</groupId>
        <artifactId>errai-security-client</artifactId>
        <version>${version.org.jboss.errai}</version>
        <exclusions>
          <!-- Collides with org.jboss.resteasy:jaxrs-api -->
          <exclusion>
            <groupId>org.jboss.spec.javax.ws.rs</groupId>
            <artifactId>jboss-jaxrs-api_1.1_spec</artifactId>
          </exclusion>
          <!-- Collides with jboss-el-api_2.2_spec -->
          <exclusion>
            <groupId>javax.el</groupId>
            <artifactId>el-api</artifactId>
          </exclusion>
          <!-- Collides with jboss-interceptors-api_1.1_spec -->
          <exclusion>
            <groupId>org.jboss.spec.javax.interceptor</groupId>
            <artifactId>jboss-interceptors-api_1.2_spec</artifactId>
          </exclusion>
        </exclusions>
      </dependency>

      <dependency>
        <groupId>org.jboss.errai</groupId>
        <artifactId>errai-security-server</artifactId>
        <version>${version.org.jboss.errai}</version>
        <exclusions>
          <!-- Old javassist groupId. Uses same class FQNs as the new one so we need to exclude this artifact. -->
          <exclusion>
            <groupId>javassist</groupId>
            <artifactId>javassist</artifactId>
          </exclusion>
        </exclusions>
      </dependency>

      <dependency>
        <groupId>com.thoughtworks.xstream</groupId>
        <artifactId>xstream</artifactId>
        <version>${version.com.thoughtworks.xstream}</version>
      </dependency>

      <dependency>
        <groupId>javax.enterprise</groupId>
        <artifactId>cdi-api</artifactId>
        <version>${version.javax.enterprise}</version>
        <exclusions>
          <exclusion>
            <groupId>javax.annotation</groupId>
            <artifactId>jsr250-api</artifactId>
          </exclusion>
          <exclusion>
            <groupId>javax.el</groupId>
            <artifactId>javax.el-api</artifactId>
          </exclusion>
          <exclusion>
            <groupId>javax.interceptor</groupId>
            <artifactId>javax.interceptor-api</artifactId>
          </exclusion>
        </exclusions>
      </dependency>

      <dependency>
        <groupId>org.apache.lucene</groupId>
        <artifactId>lucene-core</artifactId>
        <version>${version.org.apache.lucene}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.lucene</groupId>
        <artifactId>lucene-analyzers-common</artifactId>
        <version>${version.org.apache.lucene}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.lucene</groupId>
        <artifactId>lucene-codecs</artifactId>
        <version>${version.org.apache.lucene}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.lucene</groupId>
        <artifactId>lucene-queryparser</artifactId>
        <version>${version.org.apache.lucene}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.lucene</groupId>
        <artifactId>lucene-sandbox</artifactId>
        <version>${version.org.apache.lucene}</version>
      </dependency>

      <dependency>
        <groupId>org.jboss.weld</groupId>
        <artifactId>weld-api</artifactId>
        <version>${version.org.jboss.weld.weld-api}</version>
      </dependency>
      <dependency>
        <groupId>org.jboss.weld.se</groupId>
        <artifactId>weld-se-core</artifactId>
        <version>${version.org.jboss.weld.weld}</version>
      </dependency>
      <dependency>
        <groupId>org.jboss.weld</groupId>
        <artifactId>weld-core-impl</artifactId>
        <version>${version.org.jboss.weld.weld}</version>
        <exclusions>
          <exclusion>
            <groupId>org.jboss.spec.javax.annotation</groupId>
            <artifactId>jboss-annotations-api_1.2_spec</artifactId>
          </exclusion>
          <exclusion>
            <groupId>org.jboss.spec.javax.interceptor</groupId>
            <artifactId>jboss-interceptors-api_1.2_spec</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>org.jboss.weld.servlet</groupId>
        <artifactId>weld-servlet-core</artifactId>
        <version>${version.org.jboss.weld.weld}</version>
      </dependency>
      <dependency>
        <groupId>org.jboss.weld</groupId>
        <artifactId>weld-spi</artifactId>
        <version>${version.org.jboss.weld.weld-api}</version>
      </dependency>
      <dependency>
        <groupId>org.jboss.classfilewriter</groupId>
        <artifactId>jboss-classfilewriter</artifactId>
        <version>${version.org.jboss.classfilewriter.jboss-classfilewriter}</version>
      </dependency>

      <!-- GWT and GWT Extensions -->
      <dependency>
        <groupId>com.google.gwt</groupId>
        <artifactId>gwt-user</artifactId>
        <version>${version.com.google.gwt}</version>
      </dependency>

      <dependency>
        <groupId>com.google.gwt</groupId>
        <artifactId>gwt-dev</artifactId>
        <version>${version.com.google.gwt}</version>
      </dependency>

      <dependency>
        <groupId>com.allen-sauer.gwt.dnd</groupId>
        <artifactId>gwt-dnd</artifactId>
        <version>${version.com.allen-sauer.gwt.dnd}</version>
      </dependency>

      <dependency>
        <groupId>org.scannotation</groupId>
        <artifactId>scannotation</artifactId>
        <version>${version.org.scannotation}</version>
        <exclusions>
          <!-- Uses old javassist groupId so Maven is not able to exclude this itself. All UF modules have to use
               org.javassist:javassist instead of this one. -->
          <exclusion>
            <groupId>javassist</groupId>
            <artifactId>javassist</artifactId>
          </exclusion>
        </exclusions>
      </dependency>

      <dependency>
        <groupId>org.picketlink</groupId>
        <artifactId>picketlink-api</artifactId>
        <version>${version.org.picketlink}</version>
      </dependency>
      <dependency>
        <groupId>org.picketlink</groupId>
        <artifactId>picketlink-idm-api</artifactId>
        <version>${version.org.picketlink}</version>
      </dependency>
      <dependency>
        <groupId>org.picketlink</groupId>
        <artifactId>picketlink-impl</artifactId>
        <version>${version.org.picketlink}</version>
      </dependency>
      <dependency>
        <groupId>org.picketlink</groupId>
        <artifactId>picketlink-idm-impl</artifactId>
        <version>${version.org.picketlink}</version>
      </dependency>
      <dependency>
        <groupId>org.picketlink</groupId>
        <artifactId>picketlink-tomcat7-single</artifactId>
        <version>${version.org.picketlink}</version>
      </dependency>

      <!-- Overrides to fix apps on WildFly 8 (e.g. gwt:run) -->
      <dependency>
        <groupId>org.jboss.xnio</groupId>
        <artifactId>xnio-api</artifactId>
        <version>${version.org.jboss.xnio}</version>
      </dependency>
      <dependency>
        <groupId>org.jboss.xnio</groupId>
        <artifactId>xnio-nio</artifactId>
        <version>${version.org.jboss.xnio}</version>
      </dependency>

    </dependencies>
  </dependencyManagement>

  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.mockito</groupId>
      <artifactId>mockito-core</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.easytesting</groupId>
      <artifactId>fest-assert-core</artifactId>
      <scope>test</scope>
    </dependency>
  </dependencies>

</project>
