<?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.jboss.integration-platform</groupId>
    <artifactId>jboss-integration-platform-bom</artifactId>
    <!-- Keep in sync with the parent version of uberfire-bom/pom.xml -->
    <version>8.5.0.Final</version>
  </parent>

  <groupId>org.uberfire</groupId>
  <artifactId>uberfire-parent</artifactId>
  <version>2.17.0.Final</version>
  <packaging>pom</packaging>

  <name>UberFire parent</name>
  <description>
    The parent contains all metadata (including plugins) and also dependency versions. All UberFire modules
    (except for user BOMs like 'uberfire-bom') should (transitively) inherit from this POM.
  </description>
  <inceptionYear>2012</inceptionYear>
  <organization>
    <name>JBoss by Red Hat</name>
    <url>http://www.jboss.org/</url>
  </organization>
  <licenses>
    <license>
      <name>The Apache Software License, Version 2.0</name>
      <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
      <distribution>repo</distribution>
    </license>
  </licenses>

  <properties>
    <uberfire.version>${project.version}</uberfire.version>
    <version.org.kie>7.20.0.Final</version.org.kie>
    <version.org.kie.soup>${version.org.kie}</version.org.kie.soup>
    <version.com.allen-sauer.gwt.dnd>3.3.3</version.com.allen-sauer.gwt.dnd>
    <version.com.google.elemental2>1.0.0-beta-1</version.com.google.elemental2>
    <version.com.google.jsinterop.base>1.0.0-beta-1</version.com.google.jsinterop.base>
    <version.org.apache.tomcat>7.0.61</version.org.apache.tomcat>
    <!-- Version 1.1.0.Final which is coming from ip-bom is not compatible with GWT 2.8.0 -->
    <version.javax.validation>1.0.0.GA</version.javax.validation>

    <!-- Mockito version downgrade, need changes in tests to upgrade to ip-bom (AF-1800) -->
    <version.org.mockito>1.10.19</version.org.mockito>

    <!-- Custom Freemarker build with workaround for random concurrent access issue (annotation processors). See AF-600 for more info.-->
    <version.org.freemarker>2.3.26.jbossorg-1</version.org.freemarker>
    <version.org.jboss.errai>4.6.0.Final</version.org.jboss.errai>
    <version.org.webjars.bower.org.patternfly>3.18.1</version.org.webjars.bower.org.patternfly>
    <version.org.webjars.bower.google-code-prettify>1.0.4</version.org.webjars.bower.google-code-prettify>
    <version.org.webjars.bower.bootstrap-select>1.10.0</version.org.webjars.bower.bootstrap-select>
    <version.org.webjars.bower.moment>2.14.1</version.org.webjars.bower.moment>
    <version.org.webjars.bower.bluebird>3.1.1</version.org.webjars.bower.bluebird>
    <version.org.webjars.bower.bootstrap-daterangepicker>2.1.25</version.org.webjars.bower.bootstrap-daterangepicker>
    <version.org.webjars.bower.filesaver>1.3.3</version.org.webjars.bower.filesaver>
    <!-- Notice actually there exists a 1.3.3 version for jsPDF, but using this one
        produces a conflict with the UF ace js plugin once trying to create a new jsPDF
        instance.-->
    <version.org.webjars.bower.jspdf>1.2.61</version.org.webjars.bower.jspdf>
    <version.org.webjars.bowergithub.gliffy.canvas2svg>0.1</version.org.webjars.bowergithub.gliffy.canvas2svg>
    <version.org.webjars.bower.mustachejs>3.0.1</version.org.webjars.bower.mustachejs>
    <version.org.webjars.bower.d3js>5.5.0</version.org.webjars.bower.d3js>
    <version.org.webjars.bower.c3>0.6.6</version.org.webjars.bower.c3>
    <version.org.webjars.bower.d3geoprojection>2.5.1</version.org.webjars.bower.d3geoprojection>

    <version.org.jboss.byteman>3.0.10</version.org.jboss.byteman>
    <version.org.jboss.jboss-dmr>1.4.1.Final</version.org.jboss.jboss-dmr>
    <version.org.jboss.jboss-msc>1.2.7.SP1</version.org.jboss.jboss-msc>

    <version.org.picketlink>2.6.0.Final</version.org.picketlink>
    <version.org.wildfly.security>1.1.3.Final</version.org.wildfly.security>
    <!-- WildFly version used together with the GWT's Super Dev Mode -->
    <version.org.wildfly.gwt.sdm>14.0.1.Final</version.org.wildfly.gwt.sdm>
    <!-- Patched WildFly version used for SDM with IntelliJ -->
    <version.org.jboss.errai.wildfly.sdm>14.0.1.Final</version.org.jboss.errai.wildfly.sdm>

    <version.org.apache.activemq.artemis>2.3.0</version.org.apache.activemq.artemis>
    <version.io.netty>4.1.16.Final</version.io.netty>
    <netty-transport-native-epoll-classifier>linux-x86_64</netty-transport-native-epoll-classifier>
    <netty-transport-native-kqueue-classifier>osx-x86_64</netty-transport-native-kqueue-classifier>

    <!-- Lienzo core upgrade required by Stunner. Can be removed once IP BOM is upgraded.-->
    <version.com.ahome-it.lienzo-core>2.0.292-RELEASE</version.com.ahome-it.lienzo-core>
    <version.com.ahome-it.lienzo-tests>2.0.292-RELEASE</version.com.ahome-it.lienzo-tests>

    <!-- Need this for dashbuilder-webapp to compile. lienzo-charts is not compatible with newer version -->
    <version.com.ahome-it.lienzo-core.charts>2.0.241-RC1</version.com.ahome-it.lienzo-core.charts>
    <version.com.ahome-it.lienzo-tests.charts>2.0.241-RC1</version.com.ahome-it.lienzo-tests.charts>

    <version.bundle.plugin>3.3.0</version.bundle.plugin><!-- 3.2.0 sometimes fails with NPE during parallel build-->
    <!-- Make OSGi happy -->
    <osgi.snapshot.qualifier>${maven.build.timestamp}</osgi.snapshot.qualifier>
    <jboss.releases.repo.url>https://repository.jboss.org/nexus/service/local/staging/deploy/maven2/</jboss.releases.repo.url>
    <jboss.snapshots.repo.url>https://repository.jboss.org/nexus/content/repositories/snapshots/</jboss.snapshots.repo.url>

    <version.io.netty.old>3.10.6.Final</version.io.netty.old>
    <version.org.elasticsearch>5.6.1</version.org.elasticsearch>
    <version.org.apache.lucene>6.6.1</version.org.apache.lucene>
    <version.com.unboundid>3.2.0</version.com.unboundid>
    <version.org.infinispan>9.4.9.Final</version.org.infinispan>
    <version.org.infinispan.protostream>4.2.2.Final</version.org.infinispan.protostream>

    <!-- Newer version in ip-bom causes ServiceLoader error -->
    <version.ch.qos.logback>1.1.3</version.ch.qos.logback>
    <version.jnuit.docker.rule>0.3</version.jnuit.docker.rule>
    <version.com.spotify.docker>5.0.2</version.com.spotify.docker>
    <version.org.uberfire.latestFinal.release>1.4.0.Final</version.org.uberfire.latestFinal.release>
    <revapi.oldUberFireVersion>${version.org.uberfire.latestFinal.release}</revapi.oldUberFireVersion>
    <revapi.newUberFireVersion>${project.version}</revapi.newUberFireVersion>

    <version.com.ahome-it.lienzo-charts>1.0.241-RC1</version.com.ahome-it.lienzo-charts>
    <!-- Version 4.3.2.Final which is coming from ip-bom is not compatible with with GWT 2.8.0 -->
    <version.org.hibernate.hibernate-validator>4.1.0.Final</version.org.hibernate.hibernate-validator>

    <version.javax.xml.stream>1.0-2</version.javax.xml.stream>
    <version.com.googlecode.jsonsimple>1.1.1</version.com.googlecode.jsonsimple>
    <version.com.googlecode.jtype>0.1.1</version.com.googlecode.jtype>

    <!-- database testing -->
    <version.org.mariadb.jdbc>1.3.6</version.org.mariadb.jdbc>
    <version.org.mysql-driver>5.1.6</version.org.mysql-driver>
    <version.org.postgres-driver>9.1-901.jdbc4</version.org.postgres-driver>

    <!-- required to fix RHDM-293 -->
    <version.org.apache.logging.log4j.log4j-to-slf4j>2.9.0</version.org.apache.logging.log4j.log4j-to-slf4j>

    <!-- this versions can be removed once these were migrated to jboss-ip-bom > 8.3.0.Final -->
    <version.org.wildfly>14.0.1.Final</version.org.wildfly>
    <version.org.wildfly.core>6.0.2.Final</version.org.wildfly.core>

    <version.org.arquillian.cube>1.15.3</version.org.arquillian.cube>

    <version.org.jboss.shrinkwrap>1.2.6</version.org.jboss.shrinkwrap>

    <version.org.jboss.marshalling.api>1.2.3.GA</version.org.jboss.marshalling.api>

  </properties>

  <repositories>
    <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>
        <updatePolicy>never</updatePolicy>
      </releases>
      <snapshots>
        <enabled>true</enabled>
        <updatePolicy>daily</updatePolicy>
      </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>true</enabled>
      </snapshots>
    </pluginRepository>
  </pluginRepositories>

  <scm>
    <connection>scm:git:git@github.com:uberfire/uberfire.git</connection>
    <developerConnection>scm:git:git@github.com:uberfire/uberfire.git</developerConnection>
    <url>https://github.com/uberfire/uberfire</url>
  </scm>
  <issueManagement>
    <system>jira</system>
    <url>https://issues.jboss.org/browse/UF</url>
  </issueManagement>

  <build>
    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-enforcer-plugin</artifactId>
          <dependencies>
            <dependency>
              <groupId>org.codehaus.mojo</groupId>
              <artifactId>extra-enforcer-rules</artifactId>
              <version>1.0</version>
            </dependency>
          </dependencies>
          <executions>
            <execution>
              <id>ban-unwanted-deps</id>
              <goals>
                <goal>enforce</goal>
              </goals>
              <phase>validate</phase>
              <configuration>
                <rules>
                  <bannedDependencies>
                    <excludes>
                      <!-- Ban unwanted logging deps -->
                      <!-- In case of transitive dependency, exclude it and use jcl-over-slf4j instead -->
                      <exclude>commons-logging:commons-log*</exclude>
                      <!-- In case of transitive dependency, exclude it and use log4j-over-slf4j instead -->
                      <exclude>log4j:log4j</exclude>

                      <!-- Ban 'javassist:javassist' in favor of 'org.javassist:javassist' -->
                      <exclude>javassist:javassist</exclude>
                    </excludes>
                  </bannedDependencies>
                </rules>
              </configuration>
            </execution>
            <execution>
              <id>ban-duplicated-classes</id>
              <goals>
                <goal>enforce</goal>
              </goals>
              <phase>validate</phase>
              <configuration>
                <rules>
                  <banDuplicateClasses>
                    <ignoreClasses>
                      <!-- Ban 'org.elasticsearch:elasticsearch' internal classes, as the artifact contains
                        some duplicated classes for Joda time ones and it has the joda artifact
                        as transitive dependency as well. -->
                      <ignoreClass>org.joda.time.*</ignoreClass>
                      <!-- Classes bundled in errai-javax-enterprise which are GWT friendly.
                           See https://github.com/errai/errai/blob/master/errai-javax-enterprise/README -->
                      <ignoreClass>javax.interceptor.InvocationContext</ignoreClass>
                      <ignoreClass>javax.inject.Provider</ignoreClass>
                      <ignoreClass>javax.inject.Named</ignoreClass>
                      <ignoreClass>javax.inject.Scope</ignoreClass>
                      <ignoreClass>javax.inject.Qualifier</ignoreClass>
                      <ignoreClass>javax.inject.Singleton</ignoreClass>
                      <ignoreClass>javax.enterprise.*</ignoreClass>
                      <!-- Classes from gwt-user duplicated in errai-uibinder -->
                      <ignoreClass>com.google.gwt.uibinder.rebind.UiBinderWriter</ignoreClass>
                      <ignoreClass>com.google.gwt.uibinder.rebind.UiBinderGenerator</ignoreClass>
                      <!-- Duplicated by XStream's transitive deps, with very little chance to get properly fixed -->
                      <ignoreClass>org.xmlpull.v1.XmlPullParserException</ignoreClass>
                      <ignoreClass>org.xmlpull.v1.XmlPullParser</ignoreClass>
                      <!-- Duplicated in xml-apis:xml-apis:jar:1.4.01 and xerces:xercesImpl:jar:2.11.0.SP4. The class is identical
                           and there is very little chance this will get ever fixed. -->
                      <ignoreClass>org.w3c.dom.ElementTraversal</ignoreClass>
                      <ignoreClass>org.w3c.dom.UserDataHandler</ignoreClass>
                    </ignoreClasses>
                    <dependencies>
                      <!-- gwt-user bundles javax.servlet classes which usually conflicts with the servlet dependencies
                           in -webapp modules. -->
                      <dependency>
                        <groupId>com.google.gwt</groupId>
                        <artifactId>gwt-user</artifactId>
                        <type>jar</type>
                        <ignoreClasses>
                          <ignoreClass>javax.servlet.*</ignoreClass>
                        </ignoreClasses>
                      </dependency>
                      <!-- gwt-dev bundles dozens of different 3rd party dependencies, but can not be usually excluded
                           as e.g. GWT Mockito tests are using the com.google.gwt classes inside. Ignoring it for the
                           duplicate classes check seems to be the only way. -->
                      <dependency>
                        <groupId>com.google.gwt</groupId>
                        <artifactId>gwt-dev</artifactId>
                        <type>jar</type>
                        <ignoreClasses>
                          <ignoreClass>*</ignoreClass>
                        </ignoreClasses>
                      </dependency>
                      <!-- netty-all duplicates many netty-* jars but they are managed to the same version -->
                      <dependency>
                        <groupId>io.netty</groupId>
                        <artifactId>netty-all</artifactId>
                        <type>jar</type>
                        <ignoreClasses>
                          <ignoreClass>*</ignoreClass>
                        </ignoreClasses>
                      </dependency>
                      <dependency>
                        <groupId>org.apache.xmlbeans</groupId>
                        <artifactId>xmlbeans</artifactId>
                        <type>jar</type>
                        <ignoreClasses>
                          <!-- Classes duplicated by the jar itself (bug), see https://issues.apache.org/jira/browse/XMLBEANS-499 -->
                          <ignoreClass>org.apache.xmlbeans.xml.stream.XMLName</ignoreClass>
                          <ignoreClass>org.apache.xmlbeans.xml.stream.XMLInputStream</ignoreClass>
                          <ignoreClass>org.apache.xmlbeans.xml.stream.utils.NestedThrowable</ignoreClass>
                          <ignoreClass>org.apache.xmlbeans.xml.stream.utils.NestedThrowable$Util</ignoreClass>
                          <ignoreClass>org.apache.xmlbeans.xml.stream.XMLStreamException</ignoreClass>
                          <ignoreClass>org.apache.xmlbeans.xml.stream.ReferenceResolver</ignoreClass>
                          <ignoreClass>org.apache.xmlbeans.xml.stream.XMLEvent</ignoreClass>
                          <ignoreClass>org.apache.xmlbeans.xml.stream.Location</ignoreClass>
                        </ignoreClasses>
                      </dependency>
                    </dependencies>
                    <findAllDuplicates>true</findAllDuplicates>
                  </banDuplicateClasses>
                </rules>
                <fail>true</fail>
              </configuration>
            </execution>
          </executions>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-resources-plugin</artifactId>
          <configuration>
            <encoding>UTF-8</encoding>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>build-helper-maven-plugin</artifactId>
          <executions>
            <execution>
              <goals>
                <goal>parse-version</goal>
              </goals>
            </execution>
            <execution>
              <id>add-source</id>
              <phase>generate-sources</phase>
              <goals>
                <goal>add-source</goal>
              </goals>
              <configuration>
                <sources>
                  <source>target/generated-sources/annotations</source>
                </sources>
              </configuration>
            </execution>
          </executions>
        </plugin>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>gwt-maven-plugin</artifactId>
          <version>${version.com.google.gwt}</version>
        </plugin>
        <plugin>
          <groupId>org.apache.felix</groupId>
          <artifactId>maven-bundle-plugin</artifactId>
          <extensions>true</extensions>
          <configuration>
            <!-- Split packages in combination with <Export-Package> causes bloated jars otherwise -->
            <excludeDependencies>true</excludeDependencies>
            <instructions>
              <_removeheaders>Ignore-Package</_removeheaders>
              <_nouses>true</_nouses>
              <_snapshot>${osgi.snapshot.qualifier}</_snapshot>
              <Bundle-Version>
                ${parsedVersion.majorVersion}.${parsedVersion.minorVersion}.${parsedVersion.incrementalVersion}.${osgi.snapshot.qualifier}
              </Bundle-Version>
            </instructions>
            <obrRepository>NONE</obrRepository>
          </configuration>
        </plugin>

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-surefire-plugin</artifactId>
          <configuration>
            <systemPropertyVariables>
              <org.uberfire.nio.git.daemon.enabled>false</org.uberfire.nio.git.daemon.enabled>
              <org.uberfire.nio.git.ssh.enabled>false</org.uberfire.nio.git.ssh.enabled>
              <org.uberfire.sys.repo.monitor.disabled>true</org.uberfire.sys.repo.monitor.disabled>
              <org.uberfire.nio.git.dir>${project.build.directory}</org.uberfire.nio.git.dir>
              <apple.awt.UIElement>true</apple.awt.UIElement>
            </systemPropertyVariables>
            <includes>
              <include>**/*Test.java</include>
            </includes>
            <excludes>
              <exclude>**/*IntegrationTest.java</exclude>
            </excludes>
            <argLine>-Xmx1024m -Dfile.encoding=UTF-8</argLine>
          </configuration>
        </plugin>

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-failsafe-plugin</artifactId>
          <executions>
            <execution>
              <goals>
                <goal>integration-test</goal>
                <goal>verify</goal>
              </goals>
            </execution>
          </executions>
          <configuration>
            <includes>
              <include>**/*IntegrationTest.java</include>
            </includes>
            <argLine>-Xmx1024m -Dfile.encoding=UTF-8</argLine>
          </configuration>
        </plugin>

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-source-plugin</artifactId>
          <executions>
            <execution>
              <id>attach-sources</id>
              <goals>
                <goal>jar-no-fork</goal>
              </goals>
              <configuration>
                <archive>
                  <manifestEntries>
                    <Bundle-ManifestVersion>2</Bundle-ManifestVersion>
                    <Bundle-SymbolicName>${project.artifactId}.source</Bundle-SymbolicName>
                    <Bundle-Version>
                      ${parsedVersion.majorVersion}.${parsedVersion.minorVersion}.${parsedVersion.incrementalVersion}.${osgi.snapshot.qualifier}
                    </Bundle-Version>
                    <Bundle-Name>${project.name}</Bundle-Name>
                    <Bundle-Vendor>${project.organization.name}</Bundle-Vendor>
                    <Eclipse-SourceBundle>
                      ${project.artifactId};version="${parsedVersion.majorVersion}.${parsedVersion.minorVersion}.${parsedVersion.incrementalVersion}.${osgi.snapshot.qualifier}";roots:="."
                    </Eclipse-SourceBundle>
                  </manifestEntries>
                </archive>
              </configuration>
            </execution>
            <execution>
              <id>attach-test-sources</id>
              <goals>
                <goal>test-jar-no-fork</goal>
              </goals>
              <configuration>
                <archive>
                  <manifestEntries>
                    <Bundle-ManifestVersion>2</Bundle-ManifestVersion>
                    <Bundle-SymbolicName>${project.artifactId}.tests.source</Bundle-SymbolicName>
                    <Bundle-Version>
                      ${parsedVersion.majorVersion}.${parsedVersion.minorVersion}.${parsedVersion.incrementalVersion}.${osgi.snapshot.qualifier}
                    </Bundle-Version>
                    <Bundle-Name>${project.name}</Bundle-Name>
                    <Bundle-Vendor>${project.organization.name}</Bundle-Vendor>
                    <Eclipse-SourceBundle>
                      ${project.artifactId}.tests;version="${parsedVersion.majorVersion}.${parsedVersion.minorVersion}.${parsedVersion.incrementalVersion}.${osgi.snapshot.qualifier}";roots:="."
                    </Eclipse-SourceBundle>
                  </manifestEntries>
                </archive>
              </configuration>
            </execution>
          </executions>
        </plugin>
        <plugin>
          <groupId>org.commonjava.maven.plugins</groupId>
          <artifactId>project-sources-maven-plugin</artifactId>
          <version>1.0</version>
          <executions>
            <execution>
              <id>project-sources-archive</id>
              <phase>initialize</phase>
              <goals>
                <goal>archive</goal>
              </goals>
            </execution>
          </executions>
        </plugin>

        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>versions-maven-plugin</artifactId>
          <version>2.2</version>
        </plugin>

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-release-plugin</artifactId>
          <configuration>
            <!-- Manually push changes (including git tags) after nexus staged
                 repo is successfully closed -->
            <pushChanges>false</pushChanges>
            <autoVersionSubmodules>true</autoVersionSubmodules>
          </configuration>
        </plugin>

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-javadoc-plugin</artifactId>
          <configuration>
            <links>
              <link>http://docs.oracle.com/javase/8/docs/api</link>
            </links>
            <minmemory>128m</minmemory>
            <maxmemory>512m</maxmemory>
            <author>false</author>
            <breakiterator>true</breakiterator>
            <quiet>true</quiet>
          </configuration>
        </plugin>

        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>jaxb2-maven-plugin</artifactId>
          <version>1.3</version>
        </plugin>

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-jar-plugin</artifactId>
          <executions>
            <!-- No OSGi manifestEntries for <goal>jar</goal>: if it supported, then felix has already added them -->
            <execution>
              <id>attach-test-jar</id>
              <goals>
                <goal>test-jar</goal>
              </goals>
              <configuration>
                <excludes>
                  <exclude>**/logback-test.xml</exclude>
                  <exclude>**/jndi.properties</exclude>
                </excludes>
                <archive>
                  <manifestEntries>
                    <Bundle-SymbolicName>${project.artifactId}.tests</Bundle-SymbolicName>
                    <Bundle-Version>
                      ${parsedVersion.majorVersion}.${parsedVersion.minorVersion}.${parsedVersion.incrementalVersion}.${osgi.snapshot.qualifier}
                    </Bundle-Version>
                    <Bundle-Name>${project.name}</Bundle-Name>
                    <Bundle-Vendor>${project.organization.name}</Bundle-Vendor>
                  </manifestEntries>
                </archive>
              </configuration>
            </execution>
          </executions>
          <configuration>
            <archive>
              <manifest>
                <addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
                <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
              </manifest>
            </archive>
          </configuration>
        </plugin>

        <!--This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself.-->
        <plugin>
          <groupId>org.eclipse.m2e</groupId>
          <artifactId>lifecycle-mapping</artifactId>
          <!-- Important: do not remove the lifecycle-mapping plugin version (even if already coming from parent)!
               This is to workaround bug in Eclipse m2e: https://bugs.eclipse.org/bugs/show_bug.cgi?id=371618 -->
          <version>1.0.0</version>
          <configuration>
            <lifecycleMappingMetadata>
              <pluginExecutions>
                <pluginExecution>
                  <pluginExecutionFilter>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>build-helper-maven-plugin</artifactId>
                    <versionRange>[1.7,)</versionRange>
                    <goals>
                      <goal>parse-version</goal>
                    </goals>
                  </pluginExecutionFilter>
                  <action>
                    <ignore/>
                  </action>
                </pluginExecution>
                <pluginExecution>
                  <pluginExecutionFilter>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>gwt-maven-plugin</artifactId>
                    <versionRange>[2.3.0,)</versionRange>
                    <goals>
                      <goal>resources</goal>
                    </goals>
                  </pluginExecutionFilter>
                  <action>
                    <execute/>
                  </action>
                </pluginExecution>
              </pluginExecutions>
            </lifecycleMappingMetadata>
          </configuration>
        </plugin>

      </plugins>

    </pluginManagement>

    <plugins>
      <plugin>
        <!-- Entry needed to provide parsed version properties -->
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>build-helper-maven-plugin</artifactId>
      </plugin>

      <plugin>
        <!-- Entry needed to create, install and deploy sources jars -->
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-source-plugin</artifactId>
      </plugin>

      <plugin>
        <artifactId>maven-enforcer-plugin</artifactId>
      </plugin>

      <plugin>
        <artifactId>maven-clean-plugin</artifactId>
        <configuration>
          <filesets>
            <fileset>
              <directory>${basedir}</directory>
              <includes>
                <include>src/main/webapp/WEB-INF/deploy/</include>
                <include>src/main/webapp/WEB-INF/classes/</include>
                <include>src/main/webapp/WEB-INF/lib/</include>
                <include>.errai/</include>
                <include>.niogit/**</include>
              </includes>
            </fileset>
          </filesets>
        </configuration>
      </plugin>

      <!--Fix translations from Zanata -->
      <plugin>
        <groupId>com.google.code.maven-replacer-plugin</groupId>
        <artifactId>replacer</artifactId>
        <version>1.5.2</version>
        <configuration>
          <includes>
            <include>**/*Constants_de.properties</include>
            <include>**/*Constants_es.properties</include>
            <include>**/*Constants_fr.properties</include>
            <include>**/*Constants_ja.properties</include>
            <include>**/*Constants_pt_BR.properties</include>
            <include>**/*Constants_zh_CN.properties</include>
            <include>**/*Constants_ru.properties</include>
          </includes>
          <excludes>
            <exclude>**/ErraiApp.properties</exclude>
          </excludes>
          <replacements>
            <replacement>
              <token>''</token>
              <value>'</value>
            </replacement>
            <replacement>
              <token>'</token>
              <value>''</value>
            </replacement>
          </replacements>
        </configuration>
      </plugin>

      <!-- Zanata - translations -->
      <plugin>
        <groupId>org.zanata</groupId>
        <artifactId>zanata-maven-plugin</artifactId>
        <version>2.3.0</version>
        <configuration>
          <excludes>**/ErraiApp.properties</excludes>
          <projectConfig>${session.executionRootDirectory}/src/main/config/zanata.xml</projectConfig>
          <srcDir>src/main/resources/</srcDir>
          <transDir>src/main/resources/</transDir>
          <includes>**/*Constants.properties</includes>
        </configuration>
      </plugin>

      <plugin>
        <!-- Entry needed to create test-jars even for packaging types war, bundle, ... -->
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jar-plugin</artifactId>
      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-failsafe-plugin</artifactId>
      </plugin>

      <plugin>
        <artifactId>maven-antrun-plugin</artifactId>
        <executions>
          <!-- Temporary workaround for https://issues.jboss.org/browse/ERRAI-1101. Needs to stay here until
          we find a general solution (e.g. moving all localized code to Errai TranslationService. -->
          <execution>
            <id>create-default-i18n-resource</id>
            <phase>process-resources</phase>
            <configuration>
              <target>
                <copy todir="${project.build.directory}/classes"
                      includeemptydirs="false" failonerror="false" quiet="true">
                  <fileset dir="${project.build.directory}/classes"/>
                  <globmapper from="*Constants.properties" to="*Constants_default.properties"/>
                </copy>
              </target>
            </configuration>
            <goals>
              <goal>run</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>

  <reporting>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-checkstyle-plugin</artifactId>
        <configuration>
          <configLocation>org/uberfire/build/uberfire_checks.xml</configLocation>
          <headerLocation>org/uberfire/build/uberfire_license_header.txt</headerLocation>
        </configuration>
      </plugin>
    </plugins>
  </reporting>

  <profiles>
    <profile>
      <id>fullProfile</id>
      <activation>
        <property>
          <name>full</name>
        </property>
      </activation>
      <modules>
        <module>uberfire-distro</module>
      </modules>
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-javadoc-plugin</artifactId>
            <executions>
              <execution>
                <id>attach-javadocs</id>
                <goals>
                  <goal>jar</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <groupId>org.commonjava.maven.plugins</groupId>
            <artifactId>project-sources-maven-plugin</artifactId>
          </plugin>
        </plugins>
      </build>
    </profile>

    <profile>
      <id>graph</id>
      <build>
        <plugins>
          <!-- Important: you need to have Graphviz installed on your system to make the plugin work! -->
          <plugin>
            <groupId>org.fusesource.mvnplugins</groupId>
            <artifactId>maven-graph-plugin</artifactId>
            <version>1.38</version>
            <executions>
              <execution>
                <id>dependency-graph-reactor</id>
                <phase>install</phase>
                <goals>
                  <goal>reactor</goal>
                </goals>
              </execution>
            </executions>
            <configuration>
              <hideExternal>true</hideExternal>
            </configuration>
          </plugin>
          <!-- Copied from kie-parent -->
          <plugin>
            <groupId>org.revapi</groupId>
            <artifactId>revapi-maven-plugin</artifactId>
            <version>0.8.1</version>
            <dependencies>
              <dependency>
                <groupId>org.revapi</groupId>
                <artifactId>revapi-java</artifactId>
                <version>0.13.1</version>
              </dependency>
            </dependencies>
            <configuration>
              <oldArtifacts>
                <artifact>${project.groupId}:${project.artifactId}:${revapi.oldUberFireVersion}</artifact>
              </oldArtifacts>
              <newArtifacts>
                <artifact>${project.groupId}:${project.artifactId}:${revapi.newUberFireVersion}</artifact>
              </newArtifacts>
              <!-- By default revapi will check the oldArtifact against the currently executed build -->
              <analysisConfigurationFiles>
                <configurationFile>
                  <path>src/build/revapi-config.json</path>
                  <roots>
                    <root>filters</root>
                    <root>ignores</root>
                  </roots>
                </configurationFile>
              </analysisConfigurationFiles>
              <!-- By default, revapi will only fail the build if there are potentially breaking or breaking changes. However, in the report
                   we want even non breaking changes to be present. -->
              <reportSeverity>nonBreaking</reportSeverity>
              <failSeverity>potentiallyBreaking</failSeverity>
            </configuration>
            <!-- Running two executions is a workaround to make sure we get a HTML report in case revapi finds
                 some incompatible changes. The "check" goal will simply fail the whole build before it could get
                 to the report. To make sure we always get a HTML report, the "report" goal needs to be executed
                 before the "check" goal.
                 Once https://github.com/revapi/revapi/issues/11 is fixed it should be possible to use single execution. -->
            <executions>
              <execution>
                <id>check</id>
                <goals>
                  <goal>check</goal>
                </goals>
                <phase>verify</phase>
              </execution>
              <execution>
                <!-- report can be found in ${build.directory}/site/revapi-report.html -->
                <id>report</id>
                <goals>
                  <goal>report</goal>
                </goals>
                <phase>package</phase>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
  </profiles>

  <modules>
    <module>uberfire-archetype</module>
    <module>uberfire-bom</module>
    <module>uberfire-commons</module>
    <module>uberfire-api</module>
    <module>uberfire-client-api</module>
    <module>uberfire-security</module>
    <module>uberfire-nio2-backport</module>
    <module>uberfire-io</module>
    <module>uberfire-server</module>
    <module>uberfire-backend</module>
    <module>uberfire-js</module>
    <module>uberfire-testing-utils</module>
    <module>uberfire-experimental</module>
    <module>uberfire-workbench</module>
    <module>uberfire-packaging</module>
    <module>uberfire-preferences</module>
    <module>uberfire-extensions</module>
    <module>uberfire-m2repo-editor</module>
    <module>uberfire-message-console</module>
    <module>uberfire-project</module>
    <module>uberfire-rest</module>
    <module>uberfire-services</module>
    <module>uberfire-structure</module>
    <module>uberfire-test-utils</module>
    <module>uberfire-workingset</module>
    <module>uberfire-ssh</module>
    <module>uberfire-showcase</module>
    <module>dashbuilder</module>
  </modules>

  <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>org.uberfire</groupId>
        <artifactId>uberfire-bom</artifactId>
        <!-- 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>
        <type>pom</type>
        <scope>import</scope>
      </dependency>

      <dependency>
        <groupId>org.kie.soup</groupId>
        <artifactId>kie-soup-bom</artifactId>
        <version>${version.org.kie.soup}</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-jaxrs-client</artifactId>
        <type>test-jar</type>
        <version>${version.org.jboss.errai}</version>
      </dependency>

      <dependency>
        <groupId>javax.validation</groupId>
        <artifactId>validation-api</artifactId>
        <version>${version.javax.validation}</version>
        <classifier>sources</classifier>
      </dependency>
      <dependency>
        <groupId>javax.enterprise</groupId>
        <artifactId>cdi-api</artifactId>
        <version>${version.javax.enterprise}</version>
        <exclusions>
          <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.eclipse.jgit</groupId>
        <artifactId>org.eclipse.jgit</artifactId>
        <version>${version.org.eclipse.jgit}</version>
        <exclusions>
          <exclusion>
            <groupId>commons-logging</groupId>
            <artifactId>commons-logging</artifactId>
          </exclusion>
        </exclusions>
      </dependency>

      <dependency>
        <groupId>org.keycloak</groupId>
        <artifactId>keycloak-core</artifactId>
        <version>${version.org.keycloak}</version>
      </dependency>
      <dependency>
        <groupId>org.keycloak</groupId>
        <artifactId>keycloak-common</artifactId>
        <version>${version.org.keycloak}</version>
      </dependency>

      <dependency>
        <groupId>org.apache.tomcat</groupId>
        <artifactId>tomcat-catalina</artifactId>
        <version>${version.org.apache.tomcat}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.tomcat</groupId>
        <artifactId>tomcat-coyote</artifactId>
        <version>${version.org.apache.tomcat}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.tomcat</groupId>
        <artifactId>tomcat-util</artifactId>
        <version>${version.org.apache.tomcat}</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>
        <exclusions>
          <exclusion>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
          </exclusion>
          <exclusion>
            <groupId>commons-logging</groupId>
            <artifactId>commons-logging</artifactId>
          </exclusion>
          <exclusion>
            <groupId>javax.annotation</groupId>
            <artifactId>javax.annotation-api</artifactId>
          </exclusion>
        </exclusions>
      </dependency>

      <dependency>
        <groupId>com.google.elemental2</groupId>
        <artifactId>elemental2-core</artifactId>
        <version>${version.com.google.elemental2}</version>
      </dependency>

      <dependency>
        <groupId>com.google.elemental2</groupId>
        <artifactId>elemental2-dom</artifactId>
        <version>${version.com.google.elemental2}</version>
      </dependency>

      <dependency>
        <groupId>com.google.elemental2</groupId>
        <artifactId>elemental2-promise</artifactId>
        <version>${version.com.google.elemental2}</version>
      </dependency>

      <dependency>
        <groupId>com.google.jsinterop</groupId>
        <artifactId>base</artifactId>
        <version>${version.com.google.jsinterop.base}</version>
      </dependency>

      <!-- RHDM-588 freemarker -->
      <dependency>
        <groupId>org.freemarker</groupId>
        <artifactId>freemarker</artifactId>
        <version>${version.org.freemarker}</version>
      </dependency>

      <dependency>
        <groupId>com.allen-sauer.gwt.dnd</groupId>
        <artifactId>gwt-dnd</artifactId>
        <version>${version.com.allen-sauer.gwt.dnd}</version>
        <exclusions>
          <exclusion>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
          </exclusion>
        </exclusions>
      </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>

      <dependency>
        <groupId>org.wildfly.core</groupId>
        <artifactId>wildfly-controller-client</artifactId>
        <version>${version.org.wildfly.core}</version>
      </dependency>
      <dependency>
        <groupId>org.wildfly.core</groupId>
        <artifactId>wildfly-domain-management</artifactId>
        <version>${version.org.wildfly.core}</version>
      </dependency>

      <dependency>
        <groupId>com.google.gwt.gwtmockito</groupId>
        <artifactId>gwtmockito</artifactId>
        <version>${version.com.google.gwt.gwtmockito}</version>
        <exclusions>
          <exclusion>
            <groupId>org.mortbay.jasper</groupId>
            <artifactId>apache-el</artifactId>
          </exclusion>
        </exclusions>
      </dependency>

      <!-- Byteman -->
      <dependency>
        <groupId>org.jboss.byteman</groupId>
        <artifactId>byteman</artifactId>
        <version>${version.org.jboss.byteman}</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>org.jboss.byteman</groupId>
        <artifactId>byteman-submit</artifactId>
        <version>${version.org.jboss.byteman}</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>org.jboss.byteman</groupId>
        <artifactId>byteman-install</artifactId>
        <version>${version.org.jboss.byteman}</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>org.jboss.byteman</groupId>
        <artifactId>byteman-bmunit</artifactId>
        <version>${version.org.jboss.byteman}</version>
        <scope>test</scope>
      </dependency>


      <!-- INDEXING -->
      <dependency>
        <groupId>org.elasticsearch.client</groupId>
        <artifactId>transport</artifactId>
        <version>${version.org.elasticsearch}</version>
        <exclusions>
          <exclusion>
            <artifactId>commons-logging</artifactId>
            <groupId>commons-logging</groupId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>org.elasticsearch</groupId>
        <artifactId>elasticsearch</artifactId>
        <version>${version.org.elasticsearch}</version>
      </dependency>
      <dependency>
        <groupId>org.elasticsearch.client</groupId>
        <artifactId>elasticsearch-rest-client</artifactId>
        <version>${version.org.elasticsearch}</version>
        <exclusions>
          <exclusion>
            <artifactId>commons-logging</artifactId>
            <groupId>commons-logging</groupId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>io.netty</groupId>
        <artifactId>netty</artifactId>
        <version>${version.io.netty.old}</version>
      </dependency>
      <dependency>
        <groupId>com.unboundid</groupId>
        <artifactId>unboundid-ldapsdk</artifactId>
        <version>${version.com.unboundid}</version>
      </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-queryparser</artifactId>
        <version>${version.org.apache.lucene}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.lucene</groupId>
        <artifactId>lucene-misc</artifactId>
        <version>${version.org.apache.lucene}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.lucene</groupId>
        <artifactId>lucene-backward-codecs</artifactId>
        <version>${version.org.apache.lucene}</version>
      </dependency>

      <dependency>
        <groupId>org.infinispan</groupId>
        <artifactId>infinispan-query-dsl</artifactId>
        <version>${version.org.infinispan}</version>
      </dependency>
      <dependency>
        <groupId>org.infinispan</groupId>
        <artifactId>infinispan-remote-query-client</artifactId>
        <version>${version.org.infinispan}</version>
      </dependency>
      <dependency>
        <groupId>org.infinispan</groupId>
        <artifactId>infinispan-client-hotrod</artifactId>
        <version>${version.org.infinispan}</version>
        <exclusions>
          <exclusion>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-classic</artifactId>
          </exclusion>
          <exclusion>
            <groupId>org.jboss.marshalling</groupId>
            <artifactId>jboss-marshalling-osgi</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>org.infinispan</groupId>
        <artifactId>infinispan-query</artifactId>
        <version>${version.org.infinispan}</version>
      </dependency>
      <dependency>
        <groupId>org.infinispan</groupId>
        <artifactId>infinispan-commons</artifactId>
        <version>${version.org.infinispan}</version>
        <exclusions>
          <exclusion>
            <groupId>org.jboss.marshalling</groupId>
            <artifactId>jboss-marshalling-osgi</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>org.infinispan.protostream</groupId>
        <artifactId>protostream</artifactId>
        <version>${version.org.infinispan.protostream}</version>
      </dependency>
      <dependency>
        <groupId>org.wildfly.security</groupId>
        <artifactId>wildfly-elytron</artifactId>
        <version>${version.org.wildfly.security}</version>
      </dependency>
      <!-- Apache ActiveMQ/Artemis -->
      <dependency>
        <groupId>org.apache.activemq</groupId>
        <artifactId>artemis-jms-client</artifactId>
        <version>${version.org.apache.activemq.artemis}</version>
        <exclusions>
          <exclusion>
            <groupId>commons-logging</groupId>
            <artifactId>commons-logging</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>io.netty</groupId>
        <artifactId>netty-buffer</artifactId>
        <version>${version.io.netty}</version>
      </dependency>
      <dependency>
        <groupId>io.netty</groupId>
        <artifactId>netty-transport</artifactId>
        <version>${version.io.netty}</version>
      </dependency>
      <dependency>
        <groupId>io.netty</groupId>
        <artifactId>netty-handler</artifactId>
        <version>${version.io.netty}</version>
      </dependency>
      <dependency>
        <groupId>io.netty</groupId>
        <artifactId>netty-transport-native-epoll</artifactId>
        <version>${version.io.netty}</version>
        <classifier>${netty-transport-native-epoll-classifier}</classifier>
      </dependency>
      <dependency>
        <groupId>io.netty</groupId>
        <artifactId>netty-transport-native-kqueue</artifactId>
        <version>${version.io.netty}</version>
        <classifier>${netty-transport-native-kqueue-classifier}</classifier>
      </dependency>
      <dependency>
        <groupId>io.netty</groupId>
        <artifactId>netty-codec-http</artifactId>
        <version>${version.io.netty}</version>
      </dependency>
      <dependency>
        <groupId>com.github.tdomzal</groupId>
        <artifactId>junit-docker-rule</artifactId>
        <version>${version.jnuit.docker.rule}</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>com.spotify</groupId>
        <artifactId>docker-client</artifactId>
        <version>${version.com.spotify.docker}</version>
        <scope>test</scope>
        <exclusions>
          <exclusion>
            <artifactId>commons-logging</artifactId>
            <groupId>commons-logging</groupId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>ch.qos.logback</groupId>
        <artifactId>logback-classic</artifactId>
        <version>${version.ch.qos.logback}</version>
      </dependency>

      <!-- Lienzo Charts -->
      <dependency>
        <groupId>com.ahome-it</groupId>
        <artifactId>lienzo-charts</artifactId>
        <version>${version.com.ahome-it.lienzo-charts}</version>
      </dependency>

      <!-- KIE Lienzo modules -->
      <dependency>
        <groupId>org.kie</groupId>
        <artifactId>lienzo-core</artifactId>
        <version>${version.org.kie}</version>
      </dependency>

      <dependency>
        <groupId>org.kie</groupId>
        <artifactId>lienzo-core</artifactId>
        <version>${version.org.kie}</version>
        <classifier>sources</classifier>
      </dependency>

      <dependency>
        <groupId>org.kie</groupId>
        <artifactId>lienzo-tests</artifactId>
        <version>${version.org.kie}</version>
      </dependency>

      <dependency>
        <groupId>org.kie</groupId>
        <artifactId>lienzo-tests</artifactId>
        <version>${version.org.kie}</version>
        <classifier>sources</classifier>
      </dependency>

      <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-validator</artifactId>
        <version>${version.org.hibernate.hibernate-validator}</version>
      </dependency>
      <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-validator</artifactId>
        <version>${version.org.hibernate.hibernate-validator}</version>
        <classifier>sources</classifier>
      </dependency>
      <dependency>
        <groupId>javax.xml.stream</groupId>
        <artifactId>stax-api</artifactId>
        <version>${version.javax.xml.stream}</version>
      </dependency>

      <dependency>
        <groupId>org.apache.httpcomponents</groupId>
        <artifactId>httpclient</artifactId>
        <version>${version.org.apache.httpcomponents.httpclient}</version>
        <exclusions>
          <exclusion>
            <groupId>commons-logging</groupId>
            <artifactId>commons-logging</artifactId>
          </exclusion>
        </exclusions>
      </dependency>

      <dependency>
        <groupId>com.jcraft</groupId>
        <artifactId>jsch</artifactId>
        <version>${version.com.jcraft}</version>
      </dependency>

      <!-- Required to run the ElasticSearch server when performing the unit test executions.
          The ELS data provider requires groovy scripts enabled on the server.-->
      <dependency>
        <groupId>org.codehaus.groovy</groupId>
        <artifactId>groovy-all</artifactId>
        <classifier>indy</classifier>
        <version>${version.org.codehaus.groovy}</version>
      </dependency>

      <!-- JSON parsing. -->
      <dependency>
        <groupId>com.googlecode.json-simple</groupId>
        <artifactId>json-simple</artifactId>
        <version>${version.com.googlecode.jsonsimple}</version>
        <type>jar</type>
      </dependency>

      <dependency>
        <groupId>com.googlecode.jtype</groupId>
        <artifactId>jtype</artifactId>
        <version>${version.com.googlecode.jtype}</version>
      </dependency>

      <dependency>
        <groupId>org.jboss</groupId>
        <artifactId>jboss-dmr</artifactId>
        <version>${version.org.jboss.jboss-dmr}</version>
      </dependency>

      <dependency>
        <groupId>org.jboss.msc</groupId>
        <artifactId>jboss-msc</artifactId>
        <version>${version.org.jboss.jboss-msc}</version>
      </dependency>

      <!-- log4j-to-slf4j -->
      <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-to-slf4j</artifactId>
        <version>${version.org.apache.logging.log4j.log4j-to-slf4j}</version>
      </dependency>

      <!-- Test deps -->
      <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>${version.org.mysql-driver}</version>
        <scope>test</scope>
      </dependency>

      <dependency>
        <groupId>postgresql</groupId>
        <artifactId>postgresql</artifactId>
        <version>${version.org.postgres-driver}</version>
        <scope>test</scope>
      </dependency>

      <dependency>
        <groupId>org.mariadb.jdbc</groupId>
        <artifactId>mariadb-java-client</artifactId>
        <version>${version.org.mariadb.jdbc}</version>
        <scope>test</scope>
      </dependency>


      <!-- ARQUILLIAN -->

      <dependency>
        <groupId>org.arquillian.cube</groupId>
        <artifactId>arquillian-cube-docker-junit-rule</artifactId>
        <version>${version.org.arquillian.cube}</version>
        <scope>test</scope>
        <exclusions>
          <exclusion>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
          </exclusion>
          <exclusion>
            <groupId>com.github.docker-java</groupId>
            <artifactId>docker-java</artifactId>
          </exclusion>
        </exclusions>
      </dependency>

      <dependency>
        <groupId>org.jboss.marshalling</groupId>
        <artifactId>marshalling-api</artifactId>
        <version>${version.org.jboss.marshalling.api}</version>
        <scope>test</scope>
      </dependency>

      <dependency>
        <groupId>org.jboss.shrinkwrap</groupId>
        <artifactId>shrinkwrap-impl-base</artifactId>
        <version>${version.org.jboss.shrinkwrap}</version>
        <scope>test</scope>
      </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.assertj</groupId>
      <artifactId>assertj-core</artifactId>
      <scope>test</scope>
    </dependency>
  </dependencies>

  <!-- DistributionManagement is inherited from org.jboss:jboss-parent -->
  <!-- <distributionManagement/> -->

</project>
