<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
   <modelVersion>4.0.0</modelVersion>
   <groupId>org.infinispan</groupId>
   <artifactId>infinispan-parent</artifactId>
   <version>9.3.0.Final</version>
   <packaging>pom</packaging>
   <name>Infinispan Common Parent</name>
   <description>Infinispan common parent POM module</description>
   <url>http://www.infinispan.org</url>
   <organization>
      <name>JBoss, a division of Red Hat</name>
      <url>http://www.jboss.org</url>
   </organization>
   <licenses>
      <license>
         <name>Apache License 2.0</name>
         <url>http://www.apache.org/licenses/LICENSE-2.0</url>
         <distribution>repo</distribution>
      </license>
   </licenses>
   <developers>
      <developer>
         <id>placeholder</id>
         <name>See http://www.infinispan.org for a complete list of contributors</name>
      </developer>
   </developers>
   <mailingLists>
      <mailingList>
         <name>Infinispan Issues</name>
         <subscribe>https://lists.jboss.org/mailman/listinfo/infinispan-issues</subscribe>
         <unsubscribe>https://lists.jboss.org/mailman/listinfo/infinispan-issues</unsubscribe>
         <post>infinispan-issues@lists.jboss.org</post>
         <archive>http://lists.jboss.org/pipermail/infinispan-issues/</archive>
      </mailingList>
      <mailingList>
         <name>Infinispan Developers</name>
         <subscribe>https://lists.jboss.org/mailman/listinfo/infinispan-dev</subscribe>
         <unsubscribe>https://lists.jboss.org/mailman/listinfo/infinispan-dev</unsubscribe>
         <post>infinispan-dev@lists.jboss.org</post>
         <archive>http://lists.jboss.org/pipermail/infinispan-dev/</archive>
      </mailingList>
   </mailingLists>
   <scm>
      <connection>scm:git:git@github.com:infinispan/infinispan.git</connection>
      <developerConnection>scm:git:git@github.com:infinispan/infinispan.git</developerConnection>
      <url>https://github.com/infinispan/infinispan</url>
   </scm>
   <issueManagement>
      <system>jira</system>
      <url>https://issues.jboss.org/browse/ISPN</url>
   </issueManagement>
   <ciManagement>
      <system>Jenkins</system>
      <url>https://ci.infinispan.org</url>
      <notifiers>
         <notifier>
            <type>mail</type>
            <address>infinispan-commits@lists.jboss.org</address>
         </notifier>
      </notifiers>
   </ciManagement>
   <distributionManagement>
      <repository>
         <id>${jboss.releases.repo.id}</id>
         <name>JBoss Release Repository</name>
         <url>${jboss.releases.repo.url}</url>
      </repository>
      <snapshotRepository>
         <id>${jboss.snapshots.repo.id}</id>
         <name>JBoss Snapshot Repository</name>
         <url>${jboss.snapshots.repo.url}</url>
      </snapshotRepository>
   </distributionManagement>
   <modules>
      <module>bom</module>
      <module>checkstyle</module>
      <module>license</module>
      <module>commons</module>
      <module>commons-test</module>
      <module>plugins/infinispan-defaults-maven-plugin</module>
      <module>core</module>
      <module>cloud</module>
      <module>extended-statistics</module>
      <module>counter</module>
      <module>multimap</module>
      <module>tools</module>
      <module>query</module>
      <module>query-dsl</module>
      <module>remote-query/remote-query-client</module>
      <module>remote-query/remote-query-server</module>
      <module>object-filter</module>
      <module>tree</module>
      <module>lucene</module>
      <module>lucene/lucene-directory</module>
      <module>lucene/directory-provider</module>
      <module>persistence</module>
      <module>persistence/jdbc</module>
      <module>persistence/jpa</module>
      <module>persistence/remote</module>
      <module>persistence/cli</module>
      <module>persistence/leveldb</module>
      <module>persistence/rest</module>
      <module>persistence/rocksdb</module>
      <module>persistence/soft-index</module>
      <module>server</module>
      <module>server/core</module>
      <module>server/memcached</module>
      <module>server/hotrod</module>
      <module>server/websocket</module>
      <module>server/rest</module>
      <module>server/router</module>
      <module>client/hotrod-client</module>
      <module>atomic-factory</module>
      <module>all</module>
      <module>all/remote</module>
      <module>all/embedded</module>
      <module>all/embedded-query</module>
      <module>all/cli</module>
      <module>osgi</module>
      <module>spring/spring4</module>
      <module>spring/spring4/spring4-common</module>
      <module>spring/spring4/spring4-embedded</module>
      <module>spring/spring4/spring4-remote</module>
      <module>cli/cli-interpreter</module>
      <module>cli/cli-client</module>
      <module>tasks/api</module>
      <module>tasks/manager</module>
      <module>tasks/scripting</module>
      <module>demos/gui</module>
      <module>cdi</module>
      <module>cdi/common</module>
      <module>cdi/embedded</module>
      <module>cdi/remote</module>
      <module>lock</module>
      <module>feature-pack</module>
      <module>server/integration</module>
      <module>jcache</module>
      <module>integrationtests</module>
      <module>integrationtests/wildfly-modules</module>
      <module>integrationtests/as-lucene-directory</module>
      <module>integrationtests/compatibility-mode-it</module>
      <module>integrationtests/cdi-jcache-it</module>
      <module>integrationtests/security-it</module>
      <module>integrationtests/security-manager-it</module>
      <module>integrationtests/osgi</module>
      <module>integrationtests/elasticsearch-indexmanager-it</module>
      <module>integrationtests/cdi-weld-se-it</module>
      <module>integrationtests/all-embedded-it</module>
      <module>integrationtests/all-embedded-query-it</module>
      <module>integrationtests/all-remote-it</module>
      <module>integrationtests/spring-boot-it</module>
      <module>client/marshaller</module>
      <module>hibernate</module>
      <module>documentation</module>
   </modules>
   <properties>
      <!-- Versions and codenames -->
      <infinispan.brand.name>Infinispan</infinispan.brand.name>
      <infinispan.brand.prefix>infinispan</infinispan.brand.prefix>
      <infinispan.brand.version>${project.version}</infinispan.brand.version>
      <infinispan.codename>Estrella Galicia</infinispan.codename>
      <infinispan.module.slot.prefix>ispn</infinispan.module.slot.prefix>
      <infinispan.base.version>9.3</infinispan.base.version>
      <infinispan.module.slot>${infinispan.module.slot.prefix}-${infinispan.base.version}</infinispan.module.slot>
      <infinispan.core.schema.version>${infinispan.base.version}</infinispan.core.schema.version>

      <!-- Semantic versioning defaults. -->
      <bnd.consumer.policy>$&lt;range;[==,+)&gt;</bnd.consumer.policy>
      <bnd.provider.policy>$&lt;range;[==,=+)&gt;</bnd.provider.policy>
      <buildDirectory>target</buildDirectory>
      <defaultExcludedJUnitGroups>org.infinispan.commons.test.categories.Unstable,org.infinispan.commons.test.categories.Stress,org.infinispan.commons.test.categories.Profiling</defaultExcludedJUnitGroups>
      <!-- unstable and stress because we can have them inside a functional class, for example -->
      <defaultExcludedTestNGGroups>unstable,stress</defaultExcludedTestNGGroups>
      <defaultTestNGGroups>functional,unit,xsite,arquillian</defaultTestNGGroups>
      <dir.ispn>../</dir.ispn>
      <dir.jacoco>${session.executionRootDirectory}/jacoco/</dir.jacoco>
      <dir.jacoco.merged>../jacoco/merged/</dir.jacoco.merged>
      <dir.jacoco.report>../jacoco/report/</dir.jacoco.report>
      <testjvm.commonArgs>-XX:+UseG1GC -XX:-TieredCompilation -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=${user.dir}</testjvm.commonArgs>
      <testjvm.jigsawArgs />
      <forkJvmArgs>-Xmx1G ${testjvm.commonArgs}</forkJvmArgs>
      <infinispan.module-suffix>-${project.artifactId}</infinispan.module-suffix>
      <ansi.strip/>
      <infinispan.test.jgroups.protocol>tcp</infinispan.test.jgroups.protocol>
      <infinispan.test.parallel.threads>8</infinispan.test.parallel.threads>
      <jboss.releases.repo.id>jboss-releases-repository</jboss.releases.repo.id>
      <jboss.releases.nexus.url>https://repository.jboss.org/nexus</jboss.releases.nexus.url>
      <jboss.releases.repo.url>${jboss.releases.nexus.url}/service/local/staging/deploy/maven2/</jboss.releases.repo.url>
      <jboss.snapshots.repo.id>jboss-snapshots-repository</jboss.snapshots.repo.id>
      <jboss.snapshots.repo.url>https://repository.jboss.org/nexus/content/repositories/snapshots/</jboss.snapshots.repo.url>
      <skipArtifactUpload>false</skipArtifactUpload>
      <upload.username>infinispan</upload.username>
      <upload.host>filemgmt.jboss.org</upload.host>
      <upload.downloadsDir>${upload.username}@${upload.host}:/downloads_htdocs/infinispan/${project.version}</upload.downloadsDir>
      <upload.docsPath>/docs_htdocs/infinispan/${infinispan.base.version}</upload.docsPath>
      <upload.docsDir>${upload.username}@${upload.host}:${upload.docsPath}</upload.docsDir>
      <upload.keyFile>${env.HOME}/.ssh/ispn_release</upload.keyFile>
      <upload.schemaDir>${upload.username}@${upload.host}:/schema_htdocs/infinispan</upload.schemaDir>
      <junitListener>org.infinispan.commons.test.JUnitTestListener</junitListener>
      <m2e.apt.activation>jdt_apt</m2e.apt.activation>
      <module.metadata.isCoreModule>false</module.metadata.isCoreModule>
      <module.skipComponentMetaDataProcessing>true</module.skipComponentMetaDataProcessing>
      <module.skipTestComponentMetaDataProcessing>true</module.skipTestComponentMetaDataProcessing>
      <module.skipMavenRemoteResource>false</module.skipMavenRemoteResource>
      <module.skipCopyDependencies>true</module.skipCopyDependencies>
      <module.skipSupportModuleDeployment>true</module.skipSupportModuleDeployment>
      <packaging>jar</packaging>
      <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
      <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
      <testNGListeners>org.infinispan.commons.test.TestNGTestListener,org.infinispan.commons.test.PolarionJUnitXMLReporter</testNGListeners>
      <log4j.configurationFile>${infinispan.root}/log4j2.xml</log4j.configurationFile>
      <uberjar.deps.optional>true</uberjar.deps.optional>

      <!-- Java source/target version -->
      <version.java>1.8</version.java>

      <!-- Dependency versions duplicated in BOM -->
      <version.antlr>3.5.2</version.antlr>
      <version.c3p0>0.9.5-pre8</version.c3p0>
      <version.caffeine>2.6.2</version.caffeine>
      <version.cdi>1.2</version.cdi>
      <version.commonslang3>3.4</version.commonslang3>
      <version.groovy>2.4.8</version.groovy>
      <version.hibernate.core>5.3.1.Final</version.hibernate.core>
      <version.javax.persistence>2.2</version.javax.persistence>
      <version.hibernate.search>5.10.1.Final</version.hibernate.search>
      <version.hibernate.search.module.slot>5.10</version.hibernate.search.module.slot>
      <version.hikaricp>2.4.6</version.hikaricp>
      <version.javax.activation>1.1.1</version.javax.activation>
      <version.javax.cache>1.0.0</version.javax.cache>
      <version.jboss.logging>3.3.1.Final</version.jboss.logging>
      <version.jboss.marshalling>2.0.5.Final</version.jboss.marshalling>
      <version.jgroups>4.0.12.Final</version.jgroups>
      <version.jta>1.0.1.Final</version.jta>
      <version.lucene>5.5.5</version.lucene>
      <version.lucene.module.slot>5.5.5</version.lucene.module.slot>
      <version.maven-compiler-plugin>3.7.0-jboss-1</version.maven-compiler-plugin> <!-- MCOMPILER-320 -->
      <version.maven.source>3.0.1</version.maven.source>
      <version.osgi>4.3.1</version.osgi>
      <version.protostream>4.2.0.Final</version.protostream>
      <version.reactivestreams>1.0.1</version.reactivestreams>
      <version.rocksdb>5.8.0</version.rocksdb>
      <version.rxjava>2.1.3</version.rxjava>
      <version.slf4j-jboss-logging>1.1.0.Final</version.slf4j-jboss-logging>

      <!-- Versions of feature packs we consume: must match expected versions manually for the time being
        See also note in wildfly-modules/provisioning-of-hibernatesearch.xml -->
      <version.lucene.featurepack>5.5.5.hibernate05</version.lucene.featurepack>
      <version.elasticsearch-client.featurepack>5.6.7.hibernate01</version.elasticsearch-client.featurepack>
      <version.gson.featurepack>2.8.2.hibernate03</version.gson.featurepack>

      <!-- Dependency versions *not* duplicated in BOM -->
      <version.ant-contrib>1.0b3</version.ant-contrib>
      <version.ant>1.10.1</version.ant>
      <version.apache.ds>2.0.0-M20</version.apache.ds>
      <version.arquillian.container.weld>1.0.0.CR3</version.arquillian.container.weld>
      <version.arquillian>1.1.13.Final</version.arquillian>
      <version.asm>6.1.1</version.asm>
      <version.aspectj.aspectjweaver>1.8.1</version.aspectj.aspectjweaver>
      <version.assertj>3.4.1</version.assertj>
      <version.avro>1.7.6</version.avro>
      <version.byteman>4.0.2</version.byteman>
      <version.c3p0_dep.mchange-commons-java>0.2.7</version.c3p0_dep.mchange-commons-java>
      <version.checkstyle.maven-plugin>2.17</version.checkstyle.maven-plugin>
      <version.checkstyle>8.1</version.checkstyle>
      <version.com.intellij.forms_rt>6.0.5</version.com.intellij.forms_rt>
      <version.elasticsearch.plugin>5.7</version.elasticsearch.plugin>
      <version.elasticsearch>5.6.8</version.elasticsearch>
      <version.geronimo.tm>3.1.1</version.geronimo.tm>
      <version.h2.driver-within-wildfly>1.4.193</version.h2.driver-within-wildfly>
      <version.h2.driver>1.4.180</version.h2.driver>
      <version.hibernate.osgi>${version.hibernate.core}</version.hibernate.osgi>
      <version.hibernate_dep.antlr>2.7.7_5</version.hibernate_dep.antlr>
      <version.hibernate_dep.classmate>1.3.0</version.hibernate_dep.classmate>
      <version.hibernate_dep.dom4j>1.6.1_5</version.hibernate_dep.dom4j>
      <version.hibernate_dep.hibernate-commons-annotations>5.0.3.Final</version.hibernate_dep.hibernate-commons-annotations>
      <version.hibernate_dep.jandex>2.0.3.Final</version.hibernate_dep.jandex>
      <version.hibernate_dep.javassist>3.22.0-GA</version.hibernate_dep.javassist>
      <version.howl>1.0.1-1</version.howl>
      <version.jackson>1.9.13</version.jackson>
      <version.jacoco>0.7.5.201505241946</version.jacoco>
      <version.javax.cache>1.1.0</version.javax.cache>
      <version.javax.cache.cache-tests>${version.javax.cache}</version.javax.cache.cache-tests>
      <version.javax.servlet>2.5</version.javax.servlet>
      <version.jaxb>2.3.0</version.jaxb>
      <version.jboss.common.core>2.2.16.GA</version.jboss.common.core>
      <version.jboss.jboss-transaction-spi>7.6.0.Final</version.jboss.jboss-transaction-spi>
      <version.jboss.logging.processor>1.2.1.Final</version.jboss.logging.processor>
      <version.jboss.logmanager>1.3.1.Final</version.jboss.logmanager>
      <version.jboss.negotiation>2.3.6.Final</version.jboss.negotiation>
      <version.jboss.remotingjmx>3.0.0.Final</version.jboss.remotingjmx>
      <version.jboss.spec>1.0.2.Final</version.jboss.spec>
      <version.jboss.xnio>3.5.4.Final</version.jboss.xnio>
      <version.jbossjta>5.0.4.Final</version.jbossjta>
      <version.jcipannotations>1.0</version.jcipannotations>
      <version.jetty.http.client>9.4.5.v20170502</version.jetty.http.client>
      <version.jgoodies.forms>1.0.7</version.jgoodies.forms>
      <version.jmh>1.12</version.jmh>
      <version.jstl>1.2</version.jstl>
      <version.junit>4.12</version.junit>
      <version.karaf-maven-plugin>4.2.0</version.karaf-maven-plugin>
      <version.karaf>4.2.0</version.karaf>
      <version.latency.utils>2.0.2</version.latency.utils>
      <version.log4j>2.8.2</version.log4j>
      <version.maven.antlr3>3.5.2</version.maven.antlr3>
      <version.maven.antrun>1.8</version.maven.antrun>
      <version.maven.buildhelper>1.8</version.maven.buildhelper>
      <version.maven.bundle>3.5.0</version.maven.bundle>
      <version.maven.invoker>1.8</version.maven.invoker>
      <version.maven.jar>3.0.2</version.maven.jar>
      <version.maven.plugin>3.5</version.maven.plugin>
      <version.maven.remote.resource>1.1</version.maven.remote.resource>
      <version.maven.shade>3.1.1</version.maven.shade>
      <version.maven.surefire>2.21.0</version.maven.surefire>
      <version.mc4j>1.2.6</version.mc4j>
      <version.metainf-services>1.7</version.metainf-services>
      <version.microsoft.azure.storage>6.1.0</version.microsoft.azure.storage>
      <version.mockito>2.18.3</version.mockito>
      <version.mockito_dep.bytebuddy>1.8.8</version.mockito_dep.bytebuddy>
      <version.mockito_dep.hamcrest>1.3</version.mockito_dep.hamcrest>
      <version.mockito_dep.objenesis>2.6</version.mockito_dep.objenesis>
      <version.mojo.execturo>2.2.0</version.mojo.execturo>
      <version.mysql.driver>5.1.19</version.mysql.driver>
      <version.org.jboss.naming>5.0.6.CR1</version.org.jboss.naming>
      <version.org.wildfly.arquillian>1.0.2.Final</version.org.wildfly.arquillian>
      <version.org.wildfly.build-tools>1.2.10.Final</version.org.wildfly.build-tools>
      <version.org.wildfly.core>5.0.0.Final</version.org.wildfly.core>
      <version.org.wildfly.maven-plugin>1.2.1.Final</version.org.wildfly.maven-plugin>
      <version.owasp-dependency-check-plugin>3.1.1</version.owasp-dependency-check-plugin>
      <version.org.wildfly>13.0.0.Final</version.org.wildfly>
      <version.pax.exam>4.11.0</version.pax.exam>
      <version.pax.url>2.5.2</version.pax.url>
      <version.postgresql.driver>9.3-1101-jdbc41</version.postgresql.driver>
      <version.shrinkwrapResolver>2.2.4</version.shrinkwrapResolver>
      <version.snappy>1.0.5</version.snappy>
      <version.solder>3.1.0.Final</version.solder>
      <version.spring-boot>1.4.0.RELEASE</version.spring-boot>
      <version.spring-session>1.2.2.RELEASE</version.spring-session>
      <version.spring4>4.3.4.RELEASE</version.spring4>
      <version.spymemcached>2.12.1</version.spymemcached>
      <version.testng.arquillian>6.5.2</version.testng.arquillian>
      <version.testng>6.9.9</version.testng>
      <version.weld-se>2.3.4.Final</version.weld-se>
      <version.weld>2.3.4.Final</version.weld>
      <version.netty-tcnative-boringssl-static>2.0.7.Final</version.netty-tcnative-boringssl-static>
      <version.netty-conscrypt-optional>1.0.0</version.netty-conscrypt-optional>
      <!-- The Hot Rod Client's Karaf feature requires this. -->
      <version.netty>4.1.22.Final</version.netty>
   </properties>
   <dependencyManagement>
      <dependencies>
         <dependency>
            <groupId>org.infinispan</groupId>
            <artifactId>infinispan-bom</artifactId>
            <version>${project.version}</version>
            <type>pom</type>
            <scope>import</scope>
         </dependency>
         <dependency>
            <groupId>org.infinispan</groupId>
            <artifactId>infinispan-jcache</artifactId>
            <version>${project.version}</version>
         </dependency>
         <dependency>
            <groupId>org.infinispan</groupId>
            <artifactId>infinispan-spring4-common</artifactId>
            <version>${project.version}</version>
         </dependency>
         <dependency>
            <groupId>org.infinispan</groupId>
            <artifactId>infinispan-spring4-embedded</artifactId>
            <version>${project.version}</version>
         </dependency>
         <dependency>
            <groupId>org.infinispan</groupId>
            <artifactId>infinispan-cachestore-jdbc</artifactId>
            <version>${project.version}</version>
            <type>test-jar</type>
         </dependency>
         <dependency>
            <groupId>org.infinispan</groupId>
            <artifactId>infinispan-cachestore-jpa</artifactId>
            <version>${project.version}</version>
            <type>test-jar</type>
         </dependency>
         <dependency>
            <groupId>org.infinispan</groupId>
            <artifactId>infinispan-cdi-common</artifactId>
            <version>${project.version}</version>
            <type>test-jar</type>
         </dependency>
         <dependency>
            <groupId>org.infinispan</groupId>
            <artifactId>infinispan-cdi-remote</artifactId>
            <version>${project.version}</version>
            <type>test-jar</type>
         </dependency>
         <dependency>
            <groupId>org.infinispan</groupId>
            <artifactId>infinispan-cdi-embedded</artifactId>
            <version>${project.version}</version>
            <type>test-jar</type>
         </dependency>
         <dependency>
            <groupId>org.infinispan</groupId>
            <artifactId>infinispan-client-hotrod</artifactId>
            <version>${project.version}</version>
            <type>test-jar</type>
         </dependency>
         <dependency>
            <groupId>org.infinispan</groupId>
            <artifactId>infinispan-compatibility-mode-it</artifactId>
            <version>${project.version}</version>
            <type>test-jar</type>
         </dependency>
         <dependency>
            <groupId>org.infinispan</groupId>
            <artifactId>infinispan-core</artifactId>
            <version>${project.version}</version>
            <type>test-jar</type>
         </dependency>
         <dependency>
            <groupId>org.infinispan</groupId>
            <artifactId>infinispan-lucene-directory</artifactId>
            <version>${project.version}</version>
            <type>test-jar</type>
         </dependency>
         <dependency>
            <groupId>org.infinispan</groupId>
            <artifactId>infinispan-marshaller-tests</artifactId>
            <version>${project.version}</version>
            <type>test-jar</type>
         </dependency>
         <dependency>
            <groupId>org.infinispan</groupId>
            <artifactId>infinispan-query</artifactId>
            <classifier>tests</classifier>
            <version>${project.version}</version>
         </dependency>
         <dependency>
            <groupId>org.infinispan</groupId>
            <artifactId>infinispan-scripting</artifactId>
            <version>${project.version}</version>
            <type>test-jar</type>
            <scope>test</scope>
         </dependency>
         <dependency>
            <groupId>org.infinispan</groupId>
            <artifactId>infinispan-server-core</artifactId>
            <version>${project.version}</version>
            <type>test-jar</type>
         </dependency>
         <dependency>
            <groupId>org.infinispan</groupId>
            <artifactId>infinispan-server-hotrod</artifactId>
            <version>${project.version}</version>
            <type>test-jar</type>
         </dependency>
         <dependency>
            <groupId>org.infinispan</groupId>
            <artifactId>infinispan-server-memcached</artifactId>
            <version>${project.version}</version>
            <type>test-jar</type>
         </dependency>
         <dependency>
            <groupId>org.infinispan</groupId>
            <artifactId>infinispan-server-rest</artifactId>
            <version>${project.version}</version>
            <type>test-jar</type>
         </dependency>
         <dependency>
            <groupId>org.infinispan</groupId>
            <artifactId>infinispan-jcache-remote</artifactId>
            <version>${project.version}</version>
            <type>test-jar</type>
         </dependency>
         <dependency>
            <groupId>org.infinispan</groupId>
            <artifactId>infinispan-spring4-common</artifactId>
            <version>${project.version}</version>
            <type>test-jar</type>
         </dependency>
         <dependency>
            <groupId>org.infinispan</groupId>
            <artifactId>infinispan-spring4-remote</artifactId>
            <version>${project.version}</version>
            <type>test-jar</type>
         </dependency>
         <dependency>
            <groupId>org.infinispan</groupId>
            <artifactId>infinispan-spring4-embedded</artifactId>
            <version>${project.version}</version>
            <type>test-jar</type>
         </dependency>
         <dependency>
            <groupId>org.infinispan</groupId>
            <artifactId>infinispan-embedded</artifactId>
            <version>${project.version}</version>
         </dependency>
         <dependency>
            <groupId>org.infinispan</groupId>
            <artifactId>infinispan-embedded-query</artifactId>
            <version>${project.version}</version>
         </dependency>
         <dependency>
            <groupId>org.infinispan</groupId>
            <artifactId>infinispan-remote</artifactId>
            <version>${project.version}</version>
         </dependency>
         <dependency>
            <groupId>org.infinispan</groupId>
            <artifactId>infinispan-multimap</artifactId>
            <version>${project.version}</version>
         </dependency>
         <dependency>
            <groupId>org.infinispan</groupId>
            <artifactId>infinispan-hibernate-cache-commons</artifactId>
            <version>${project.version}</version>
            <type>test-jar</type>
         </dependency>
         <dependency>
            <groupId>org.apache.maven.surefire</groupId>
            <artifactId>surefire-junit47</artifactId>
            <version>${version.maven.surefire}</version>
         </dependency>
         <dependency>
            <groupId>com.h2database</groupId>
            <artifactId>h2</artifactId>
            <version>${version.h2.driver}</version>
         </dependency>
         <dependency>
            <groupId>com.intellij</groupId>
            <artifactId>forms_rt</artifactId>
            <version>${version.com.intellij.forms_rt}</version>
         </dependency>
         <dependency>
            <groupId>org.apache.maven.plugin-tools</groupId>
            <artifactId>maven-plugin-annotations</artifactId>
            <version>${version.maven.plugin}</version>
            <scope>provided</scope>
         </dependency>
         <dependency>
            <groupId>org.twdata.maven</groupId>
            <artifactId>mojo-executor</artifactId>
            <version>${version.mojo.execturo}</version>
         </dependency>
         <dependency>
            <groupId>com.microsoft.azure</groupId>
            <artifactId>azure-storage</artifactId>
            <version>${version.microsoft.azure.storage}</version>
         </dependency>
         <dependency>
            <groupId>org.javassist</groupId>
            <artifactId>javassist</artifactId>
            <version>${version.hibernate_dep.javassist}</version>
         </dependency>
         <dependency>
            <groupId>javax.activation</groupId>
            <artifactId>activation</artifactId>
            <scope>test</scope>
            <version>${version.javax.activation}</version>
         </dependency>
         <dependency>
            <groupId>javax.cache</groupId>
            <artifactId>cache-tests</artifactId>
            <version>${version.javax.cache.cache-tests}</version>
         </dependency>
         <dependency>
            <groupId>javax.cache</groupId>
            <artifactId>cache-tests</artifactId>
            <version>${version.javax.cache.cache-tests}</version>
            <classifier>tests</classifier>
         </dependency>
         <dependency>
            <groupId>javax.cache</groupId>
            <artifactId>cdi-weld-annotations-test-harness</artifactId>
            <version>${version.javax.cache.cache-tests}</version>
         </dependency>
         <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jstl</artifactId>
            <version>${version.jstl}</version>
         </dependency>
         <dependency>
            <groupId>com.jgoodies</groupId>
            <artifactId>forms</artifactId>
            <version>${version.jgoodies.forms}</version>
         </dependency>
         <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
            <version>${version.commonslang3}</version>
         </dependency>
         <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-core</artifactId>
            <version>${version.log4j}</version>
         </dependency>
         <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-api</artifactId>
            <version>${version.log4j}</version>
         </dependency>
         <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-jcl</artifactId>
            <version>${version.log4j}</version>
         </dependency>
         <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-slf4j-impl</artifactId>
            <version>${version.log4j}</version>
         </dependency>
         <dependency>
            <groupId>mc4j</groupId>
            <artifactId>org-mc4j-ems</artifactId>
            <version>${version.mc4j}</version>
         </dependency>
         <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>${version.mysql.driver}</version>
         </dependency>
         <dependency>
            <groupId>org.postgresql</groupId>
            <artifactId>postgresql</artifactId>
            <version>${version.postgresql.driver}</version>
         </dependency>
         <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>${version.junit}</version>
            <scope>test</scope>
         </dependency>
         <dependency>
            <groupId>org.assertj</groupId>
            <artifactId>assertj-core</artifactId>
            <version>${version.assertj}</version>
         </dependency>
         <dependency>
            <groupId>org.aspectj</groupId>
            <artifactId>aspectjweaver</artifactId>
            <version>${version.aspectj.aspectjweaver}</version>
         </dependency>
         <dependency>
            <groupId>org.apache.ant</groupId>
            <artifactId>ant</artifactId>
            <version>${version.ant}</version>
         </dependency>
         <dependency>
            <groupId>org.apache.avro</groupId>
            <artifactId>avro</artifactId>
            <version>${version.avro}</version>
         </dependency>
         <dependency>
            <groupId>org.codehaus.jackson</groupId>
            <artifactId>jackson-core-asl</artifactId>
            <version>${version.jackson}</version>
         </dependency>
         <dependency>
            <groupId>org.codehaus.jackson</groupId>
            <artifactId>jackson-mapper-asl</artifactId>
            <version>${version.jackson}</version>
         </dependency>
         <dependency>
            <groupId>org.glassfish.jaxb</groupId>
            <artifactId>jaxb-runtime</artifactId>
            <version>${version.jaxb}</version>
         </dependency>
         <dependency>
            <groupId>org.jboss.shrinkwrap.resolver</groupId>
            <artifactId>shrinkwrap-resolver-bom</artifactId>
            <version>${version.shrinkwrapResolver}</version>
            <type>pom</type>
            <scope>import</scope>
         </dependency>
         <!-- This is a work around for https://issues.jboss.org/browse/SHRINKRES-238 -->
         <!-- After fixing the issue above, the dependency below can be safely removed -->
         <dependency>
            <groupId>org.apache.maven</groupId>
            <artifactId>maven-aether-provider</artifactId>
            <version>3.2.5</version>
         </dependency>
         <dependency>
            <groupId>org.jboss.arquillian</groupId>
            <artifactId>arquillian-bom</artifactId>
            <version>${version.arquillian}</version>
            <type>pom</type>
            <scope>import</scope>
         </dependency>
         <dependency>
            <groupId>org.wildfly.arquillian</groupId>
            <artifactId>wildfly-arquillian-container-managed</artifactId>
            <version>${version.org.wildfly.arquillian}</version>
            <scope>test</scope>
         </dependency>
         <dependency>
            <groupId>org.jboss.arquillian.container</groupId>
            <artifactId>arquillian-weld-ee-embedded-1.1</artifactId>
            <version>${version.arquillian.container.weld}</version>
            <scope>test</scope>
         </dependency>
         <dependency>
            <groupId>org.jboss.remotingjmx</groupId>
            <artifactId>remoting-jmx</artifactId>
            <version>${version.jboss.remotingjmx}</version>
         </dependency>
         <dependency>
            <groupId>org.jboss.shrinkwrap.resolver</groupId>
            <artifactId>shrinkwrap-resolver-impl-maven</artifactId>
            <version>${version.shrinkwrapResolver}</version>
            <exclusions>
               <exclusion>
                  <groupId>com.google.collections</groupId>
                  <artifactId>google-collections</artifactId>
               </exclusion>
            </exclusions>
         </dependency>
         <dependency>
            <groupId>org.jboss.spec</groupId>
            <artifactId>jboss-javaee-7.0</artifactId>
            <version>${version.jboss.spec}</version>
            <type>pom</type>
            <scope>test</scope>
         </dependency>
         <dependency>
            <groupId>org.jboss.logmanager</groupId>
            <artifactId>jboss-logmanager</artifactId>
            <version>${version.jboss.logmanager}</version>
            <scope>test</scope>
         </dependency>
         <dependency>
            <groupId>org.jboss.solder</groupId>
            <artifactId>solder-impl</artifactId>
            <version>${version.solder}</version>
         </dependency>
         <dependency>
            <groupId>org.jboss</groupId>
            <artifactId>jboss-transaction-spi</artifactId>
            <version>${version.jboss.jboss-transaction-spi}</version>
            <exclusions>
               <exclusion>
                  <groupId>org.jboss.logging</groupId>
                  <artifactId>jboss-logging-spi</artifactId>
               </exclusion>
               <exclusion>
                  <groupId>org.jboss.ironjacamar</groupId>
                  <artifactId>ironjacamar-spec-api</artifactId>
               </exclusion>
               <exclusion>
                  <groupId>org.jboss.spec.javax.resource</groupId>
                  <artifactId>jboss-connector-api_1.5_spec</artifactId>
               </exclusion>
               <exclusion>
                  <groupId>org.jboss.spec.javax.transaction</groupId>
                  <artifactId>jboss-transaction-api_1.2_spec</artifactId>
               </exclusion>
            </exclusions>
         </dependency>
         <dependency>
            <groupId>org.jboss.weld</groupId>
            <artifactId>weld-core</artifactId>
            <version>${version.weld}</version>
            <scope>test</scope>
         </dependency>
         <dependency>
            <groupId>org.jboss.weld.se</groupId>
            <artifactId>weld-se</artifactId>
            <version>${version.weld-se}</version>
            <scope>test</scope>
         </dependency>
         <dependency>
            <groupId>org.jboss.xnio</groupId>
            <artifactId>xnio-nio</artifactId>
            <version>${version.jboss.xnio}</version>
         </dependency>
         <dependency>
            <groupId>org.testng</groupId>
            <artifactId>testng</artifactId>
            <version>${version.testng}</version>
            <scope>test</scope>
            <exclusions>
               <exclusion>
                  <groupId>org.yaml</groupId>
                  <artifactId>snakeyaml</artifactId>
               </exclusion>
            </exclusions>
         </dependency>
         <dependency>
            <groupId>net.spy</groupId>
            <artifactId>spymemcached</artifactId>
            <version>${version.spymemcached}</version>
         </dependency>
         <dependency>
            <groupId>org.jboss.narayana.jta</groupId>
            <artifactId>narayana-jta</artifactId>
            <version>${version.jbossjta}</version>
            <exclusions>
               <exclusion>
                  <artifactId>commons-httpclient</artifactId>
                  <groupId>commons-httpclient</groupId>
               </exclusion>
               <exclusion>
                  <artifactId>ironjacamar-spec-api</artifactId>
                  <groupId>org.jboss.ironjacamar</groupId>
               </exclusion>
               <exclusion>
                  <artifactId>jbogging-spi</artifactId>
                  <groupId>org.jboss.logging</groupId>
               </exclusion>
               <exclusion>
                  <artifactId>jboss-logging</artifactId>
                  <groupId>org.jboss.logging</groupId>
               </exclusion>
               <exclusion>
                  <artifactId>jboss-logging-processor</artifactId>
                  <groupId>org.jboss.logging</groupId>
               </exclusion>
               <exclusion>
                  <artifactId>jboss-logging-generator</artifactId>
                  <groupId>org.jboss.logging</groupId>
               </exclusion>
               <exclusion>
                  <artifactId>jbossws-native-core</artifactId>
                  <groupId>org.jboss.ws.native</groupId>
               </exclusion>
               <exclusion>
                  <artifactId>emma</artifactId>
                  <groupId>emma</groupId>
               </exclusion>
               <exclusion>
                  <artifactId>emma_ant</artifactId>
                  <groupId>emma</groupId>
               </exclusion>
               <exclusion>
                  <artifactId>hornetq-core</artifactId>
                  <groupId>org.hornetq</groupId>
               </exclusion>
               <exclusion>
                  <artifactId>netty</artifactId>
                  <groupId>io.netty</groupId>
               </exclusion>
               <exclusion>
                  <artifactId>keyWrapper</artifactId>
                  <groupId>tanukisoft</groupId>
               </exclusion>
               <exclusion>
                  <artifactId>jacorb</artifactId>
                  <groupId>jacorb</groupId>
               </exclusion>
               <exclusion>
                  <artifactId>jfreechart</artifactId>
                  <groupId>jfree</groupId>
               </exclusion>
               <exclusion>
                  <artifactId>jboss-corba-ots-spi</artifactId>
                  <groupId>org.jboss.integration</groupId>
               </exclusion>
               <exclusion>
                  <artifactId>jboss-server-manager</artifactId>
                  <groupId>org.jboss.jbossas</groupId>
               </exclusion>
               <exclusion>
                  <artifactId>jboss-ejb-api_3.1_spec</artifactId>
                  <groupId>org.jboss.spec.javax.ejb</groupId>
               </exclusion>
               <exclusion>
                  <artifactId>jnp-client</artifactId>
                  <groupId>org.jboss.naming</groupId>
               </exclusion>
               <exclusion>
                  <artifactId>jboss-servlet-api_3.0_spec</artifactId>
                  <groupId>org.jboss.spec.javax.servlet</groupId>
               </exclusion>
               <exclusion>
                  <artifactId>jbossws-common</artifactId>
                  <groupId>org.jboss.ws</groupId>
               </exclusion>
               <exclusion>
                  <artifactId>jcl-over-slf4j</artifactId>
                  <groupId>org.slf4j</groupId>
               </exclusion>
               <exclusion>
                  <artifactId>stax-api</artifactId>
                  <groupId>stax</groupId>
               </exclusion>
               <exclusion>
                  <artifactId>idl</artifactId>
                  <groupId>jacorb</groupId>
               </exclusion>
               <exclusion>
                  <artifactId>jboss-logging-tools</artifactId>
                  <groupId>org.jboss.logging</groupId>
               </exclusion>
               <exclusion>
                  <artifactId>jboss-connector-api_1.5_spec</artifactId>
                  <groupId>org.jboss.spec.javax.resource</groupId>
               </exclusion>
               <exclusion>
                  <artifactId>jboss-remoting</artifactId>
                  <groupId>org.jboss.remoting</groupId>
               </exclusion>
               <exclusion>
                  <artifactId>slf4j-api</artifactId>
                  <groupId>org.slf4j</groupId>
               </exclusion>
               <exclusion>
                  <artifactId>dom4j</artifactId>
                  <groupId>dom4j</groupId>
               </exclusion>
               <exclusion>
                  <artifactId>commons-codec</artifactId>
                  <groupId>commons-codec</groupId>
               </exclusion>
               <exclusion>
                  <artifactId>jboss-logmanager</artifactId>
                  <groupId>org.jboss.logmanager</groupId>
               </exclusion>
               <exclusion>
                  <artifactId>hibernate-jpa-2.0-api</artifactId>
                  <groupId>org.hibernate.javax.persistence</groupId>
               </exclusion>
               <exclusion>
                  <artifactId>commons-logging</artifactId>
                  <groupId>commons-logging</groupId>
               </exclusion>
               <exclusion>
                  <artifactId>jcommon</artifactId>
                  <groupId>jfree</groupId>
               </exclusion>
               <exclusion>
                  <artifactId>jboss-transaction-api_1.1_spec</artifactId>
                  <groupId>org.jboss.spec.javax.transaction</groupId>
               </exclusion>
               <exclusion>
                  <artifactId>byteman</artifactId>
                  <groupId>org.jboss.byteman</groupId>
               </exclusion>
               <exclusion>
                  <artifactId>byteman-submit</artifactId>
                  <groupId>org.jboss.byteman</groupId>
               </exclusion>
            </exclusions>
         </dependency>
         <dependency>
            <groupId>org.apache.directory.server</groupId>
            <artifactId>apacheds-all</artifactId>
            <version>${version.apache.ds}</version>
            <scope>test</scope>
         </dependency>
         <dependency>
            <groupId>org.wildfly.core</groupId>
            <artifactId>wildfly-core-testsuite-shared</artifactId>
            <version>${version.org.wildfly.core}</version>
            <scope>test</scope>
         </dependency>
         <dependency>
            <groupId>org.jboss.security</groupId>
            <artifactId>jboss-negotiation-extras</artifactId>
            <version>${version.jboss.negotiation}</version>
            <scope>test</scope>
         </dependency>
         <dependency>
            <groupId>org.eclipse.jetty</groupId>
            <artifactId>jetty-client</artifactId>
            <version>${version.jetty.http.client}</version>
         </dependency>
         <dependency>
            <groupId>org.apache.karaf</groupId>
            <artifactId>apache-karaf</artifactId>
            <version>${version.karaf}</version>
            <type>zip</type>
            <scope>test</scope>
            <exclusions>
               <exclusion>
                  <!-- Do not use any dependency in the test classpath -->
                  <groupId>*</groupId>
                  <artifactId>*</artifactId>
               </exclusion>
            </exclusions>
         </dependency>
         <!-- We need the Karaf framework as a dependency for karaf-maven-plugin -->
         <dependency>
            <groupId>org.apache.karaf.features</groupId>
            <artifactId>framework</artifactId>
            <version>${version.karaf}</version>
            <type>kar</type>
            <scope>provided</scope>
            <exclusions>
               <exclusion>
                  <!-- Do not use any dependency in the test classpath -->
                  <groupId>*</groupId>
                  <artifactId>*</artifactId>
               </exclusion>
            </exclusions>
         </dependency>
         <dependency>
            <groupId>org.apache.karaf.features</groupId>
            <artifactId>org.apache.karaf.features.core</artifactId>
            <version>${version.karaf}</version>
            <scope>test</scope>
         </dependency>
         <dependency>
            <groupId>org.ops4j.pax.exam</groupId>
            <artifactId>pax-exam-container-karaf</artifactId>
            <version>${version.pax.exam}</version>
            <scope>test</scope>
         </dependency>
         <dependency>
            <groupId>org.ops4j.pax.exam</groupId>
            <artifactId>pax-exam</artifactId>
            <version>${version.pax.exam}</version>
            <scope>test</scope>
         </dependency>
         <dependency>
            <groupId>org.ops4j.pax.exam</groupId>
            <artifactId>pax-exam-junit4</artifactId>
            <version>${version.pax.exam}</version>
            <scope>test</scope>
         </dependency>
         <dependency>
            <groupId>org.ops4j.pax.exam</groupId>
            <artifactId>pax-exam-inject</artifactId>
            <version>${version.pax.exam}</version>
            <scope>test</scope>
         </dependency>
         <dependency>
            <groupId>org.xerial.snappy</groupId>
            <artifactId>snappy-java</artifactId>
            <version>${version.snappy}</version>
         </dependency>
         <dependency>
            <groupId>org.apache.geronimo.components</groupId>
            <artifactId>geronimo-transaction</artifactId>
            <version>${version.geronimo.tm}</version>
            <scope>test</scope>
         </dependency>
         <dependency>
            <groupId>org.objectweb.howl</groupId>
            <artifactId>howl</artifactId>
            <version>${version.howl}</version>
            <scope>test</scope>
         </dependency>
         <dependency>
            <groupId>org.ops4j.pax.url</groupId>
            <artifactId>pax-url-aether</artifactId>
            <version>${version.pax.url}</version>
            <scope>test</scope>
         </dependency>
         <dependency>
            <groupId>org.ops4j.pax.url</groupId>
            <artifactId>pax-url-assembly</artifactId>
            <version>${version.pax.url}</version>
            <scope>test</scope>
         </dependency>
         <dependency>
            <groupId>org.ops4j.pax.url</groupId>
            <artifactId>pax-url-wrap</artifactId>
            <version>${version.pax.url}</version>
            <scope>test</scope>
         </dependency>
         <dependency>
            <groupId>org.kohsuke.metainf-services</groupId>
            <artifactId>metainf-services</artifactId>
            <version>${version.metainf-services}</version>
            <optional>true</optional>
         </dependency>
         <dependency>
            <groupId>org.jboss.byteman</groupId>
            <artifactId>byteman</artifactId>
            <version>${version.byteman}</version>
            <scope>test</scope>
         </dependency>
         <dependency>
            <groupId>org.jboss.byteman</groupId>
            <artifactId>byteman-bmunit</artifactId>
            <version>${version.byteman}</version>
            <scope>test</scope>
         </dependency>
         <dependency>
            <groupId>org.wildfly.core</groupId>
            <artifactId>wildfly-core-parent</artifactId>
            <version>${version.org.wildfly.core}</version>
            <scope>import</scope>
            <type>pom</type>
         </dependency>
         <dependency>
            <groupId>org.openjdk.jmh</groupId>
            <artifactId>jmh-core</artifactId>
            <version>${version.jmh}</version>
         </dependency>
         <dependency>
            <groupId>org.openjdk.jmh</groupId>
            <artifactId>jmh-generator-annprocess</artifactId>
            <version>${version.jmh}</version>
         </dependency>
         <dependency>
            <groupId>org.latencyutils</groupId>
            <artifactId>LatencyUtils</artifactId>
            <version>${version.latency.utils}</version>
         </dependency>
         <dependency>
            <groupId>org.elasticsearch</groupId>
            <artifactId>elasticsearch</artifactId>
            <version>${version.elasticsearch}</version>
            <scope>test</scope>
         </dependency>
         <dependency>
            <groupId>org.mockito</groupId>
            <artifactId>mockito-core</artifactId>
            <version>${version.mockito}</version>
            <scope>test</scope>
         </dependency>
         <dependency>
            <groupId>org.objenesis</groupId>
            <artifactId>objenesis</artifactId>
            <version>${version.mockito_dep.objenesis}</version>
         </dependency>
         <dependency>
            <groupId>net.bytebuddy</groupId>
            <artifactId>byte-buddy</artifactId>
            <version>${version.mockito_dep.bytebuddy}</version>
            <scope>test</scope>
         </dependency>
         <dependency>
            <groupId>net.bytebuddy</groupId>
            <artifactId>byte-buddy-agent</artifactId>
            <version>${version.mockito_dep.bytebuddy}</version>
            <scope>test</scope>
         </dependency>
         <dependency>
            <groupId>org.hamcrest</groupId>
            <artifactId>hamcrest-core</artifactId>
            <version>${version.mockito_dep.hamcrest}</version>
         </dependency>
         <dependency>
            <groupId>org.jboss</groupId>
            <artifactId>jboss-common-core</artifactId>
            <version>${version.jboss.common.core}</version>
            <scope>test</scope>
         </dependency>
         <dependency>
            <groupId>org.jboss.naming</groupId>
            <artifactId>jnp-client</artifactId>
            <version>${version.org.jboss.naming}</version>
            <scope>test</scope>
         </dependency>
         <dependency>
            <groupId>org.jboss.naming</groupId>
            <artifactId>jnpserver</artifactId>
            <version>${version.org.jboss.naming}</version>
            <scope>test</scope>
         </dependency>
         <dependency>
            <groupId>org.infinispan</groupId>
            <artifactId>infinispan-cli</artifactId>
            <version>${project.version}</version>
         </dependency>
         <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-search-engine</artifactId>
            <version>${version.hibernate.search}</version>
            <classifier>tests</classifier>
            <scope>test</scope>
         </dependency>
         <dependency>
            <groupId>io.netty</groupId>
            <artifactId>netty-tcnative-boringssl-static</artifactId>
            <version>${version.netty-tcnative-boringssl-static}</version>
            <scope>test</scope>
         </dependency>
      </dependencies>
   </dependencyManagement>
   <dependencies>
      <dependency>
         <groupId>org.apache.logging.log4j</groupId>
         <artifactId>log4j-core</artifactId>
         <scope>test</scope>
      </dependency>
      <dependency>
         <groupId>net.jcip</groupId>
         <artifactId>jcip-annotations</artifactId>
         <version>${version.jcipannotations}</version>
         <optional>true</optional>
      </dependency>
      <dependency>
         <groupId>org.jboss</groupId>
         <artifactId>jboss-transaction-spi</artifactId>
         <scope>test</scope>
      </dependency>
      <dependency>
         <groupId>org.jboss.narayana.jta</groupId>
         <artifactId>narayana-jta</artifactId>
         <scope>test</scope>
      </dependency>
      <dependency>
         <groupId>org.jboss.logging</groupId>
         <artifactId>jboss-logging-processor</artifactId>
         <version>${version.jboss.logging.processor}</version>
         <scope>provided</scope>
      </dependency>
      <dependency>
         <groupId>javax.annotation</groupId>
         <artifactId>javax.annotation-api</artifactId>
         <version>1.3.1</version>
         <scope>provided</scope>
      </dependency>
      <dependency>
         <groupId>org.jacoco</groupId>
         <artifactId>org.jacoco.agent</artifactId>
         <classifier>runtime</classifier>
         <version>${version.jacoco}</version>
         <scope>test</scope>
      </dependency>
      <dependency>
         <groupId>org.infinispan</groupId>
         <artifactId>infinispan-license</artifactId>
         <version>${project.version}</version>
         <scope>provided</scope>
      </dependency>
   </dependencies>
   <build>
      <directory>${buildDirectory}</directory>
      <pluginManagement>
         <plugins>
            <plugin>
               <groupId>org.apache.maven.plugins</groupId>
               <artifactId>maven-source-plugin</artifactId>
               <version>${version.maven.source}</version>
            </plugin>
            <plugin>
               <groupId>org.apache.maven.plugins</groupId>
               <artifactId>maven-plugin-plugin</artifactId>
               <version>${version.maven.plugin}</version>
            </plugin>
            <plugin>
               <groupId>org.wildfly.build</groupId>
               <artifactId>wildfly-server-provisioning-maven-plugin</artifactId>
               <version>${version.org.wildfly.build-tools}</version>
            </plugin>
            <plugin>
               <groupId>org.wildfly.build</groupId>
               <artifactId>wildfly-feature-pack-build-maven-plugin</artifactId>
               <version>${version.org.wildfly.build-tools}</version>
            </plugin>
            <plugin>
               <groupId>org.antlr</groupId>
               <artifactId>antlr3-maven-plugin</artifactId>
               <version>${version.maven.antlr3}</version>
               <executions>
                  <execution>
                     <goals>
                        <goal>antlr</goal>
                     </goals>
                  </execution>
               </executions>
               <dependencies>
                  <dependency>
                     <groupId>org.antlr</groupId>
                     <artifactId>antlr</artifactId>
                     <version>${version.antlr}</version>
                  </dependency>
               </dependencies>
            </plugin>
            <plugin>
               <groupId>org.apache.maven.plugins</groupId>
               <artifactId>maven-clean-plugin</artifactId>
               <version>2.6.1</version>
            </plugin>
            <plugin>
               <groupId>org.apache.maven.plugins</groupId>
               <artifactId>maven-install-plugin</artifactId>
               <version>2.5.1</version>
            </plugin>
            <plugin>
               <groupId>org.apache.maven.plugins</groupId>
               <artifactId>maven-help-plugin</artifactId>
               <version>2.1.1</version>
            </plugin>
            <plugin>
               <groupId>org.apache.maven.plugins</groupId>
               <artifactId>maven-deploy-plugin</artifactId>
               <version>2.8.1</version>
            </plugin>
            <plugin>
               <artifactId>maven-scm-plugin</artifactId>
               <version>1.9.5</version>
               <configuration>
                  <tag>${project.version}</tag>
               </configuration>
            </plugin>
            <plugin>
               <groupId>org.codehaus.mojo</groupId>
               <artifactId>versions-maven-plugin</artifactId>
               <version>2.5</version>
               <configuration>
                  <generateBackupPoms>false</generateBackupPoms>
                  <processAllModules>true</processAllModules>
               </configuration>
            </plugin>
            <plugin>
               <groupId>org.sonatype.plugins</groupId>
               <artifactId>nexus-staging-maven-plugin</artifactId>
               <version>1.6.8</version>
               <configuration>
                  <autoReleaseAfterClose>false</autoReleaseAfterClose>
                  <stagingDescription>${infinispan.brand.name} ${project.version} release</stagingDescription>
                  <nexusUrl>${jboss.releases.nexus.url}</nexusUrl>
                  <serverId>${jboss.releases.repo.id}</serverId>
                  <stagingProfileId>2161b7b8da0080</stagingProfileId>
                  <stagingRepositoryId>${stagingRepositoryId}</stagingRepositoryId>
               </configuration>
            </plugin>
            <plugin>
               <groupId>org.apache.maven.plugins</groupId>
               <artifactId>maven-antrun-plugin</artifactId>
               <version>${version.maven.antrun}</version>
               <dependencies>
                  <dependency>
                     <groupId>org.apache.ant</groupId>
                     <artifactId>ant</artifactId>
                     <version>${version.ant}</version>
                  </dependency>
                  <dependency>
                     <groupId>org.apache.ant</groupId>
                     <artifactId>ant-jsch</artifactId>
                     <version>${version.ant}</version>
                  </dependency>
                  <dependency>
                     <groupId>org.codehaus.groovy</groupId>
                     <artifactId>groovy-all</artifactId>
                     <version>${version.groovy}</version>
                  </dependency>
               </dependencies>
            </plugin>
            <plugin>
               <groupId>org.apache.felix</groupId>
               <artifactId>maven-bundle-plugin</artifactId>
               <version>${version.maven.bundle}</version>
            </plugin>
            <plugin>
               <groupId>org.apache.maven.plugins</groupId>
               <artifactId>maven-assembly-plugin</artifactId>
               <version>3.1.0</version>
            </plugin>
            <plugin>
               <groupId>org.apache.maven.plugins</groupId>
               <artifactId>maven-dependency-plugin</artifactId>
               <version>3.0.2</version>
            </plugin>
            <plugin>
               <groupId>org.apache.servicemix.tooling</groupId>
               <artifactId>depends-maven-plugin</artifactId>
               <version>1.2</version>
            </plugin>
            <plugin>
               <groupId>org.apache.maven.plugins</groupId>
               <artifactId>maven-failsafe-plugin</artifactId>
               <version>${version.maven.surefire}</version>
               <configuration>
                  <systemPropertyVariables>
                     <!-- this is picked up in the log4j xml which prepends it to each module's log file-->
                     <infinispan.module-suffix>${infinispan.module-suffix}</infinispan.module-suffix>
                     <ansi.strip>${ansi.strip}</ansi.strip>
                  </systemPropertyVariables>
                  <argLine>${forkJvmArgs} ${testjvm.jigsawArgs}</argLine>
               </configuration>
            </plugin>
            <plugin>
               <groupId>org.apache.maven.plugins</groupId>
               <artifactId>maven-javadoc-plugin</artifactId>
               <version>3.0.0-M1</version>
               <configuration>
                  <!--
                  The javadoc plugin only runs in the javadoc and rhq-plugin modules.
                  But with the default configuration it tries to run a new maven instance
                  in every dependency, in order to generate the apidocs there as well.
                  (http://maven.apache.org/plugins-archives/maven-javadoc-plugin-2.10.3/javadoc-mojo.html#detectOfflineLinks)
                  -->
                  <detectOfflineLinks>false</detectOfflineLinks>
               </configuration>
            </plugin>
            <plugin>
               <groupId>org.apache.maven.plugins</groupId>
               <artifactId>maven-resources-plugin</artifactId>
               <version>3.0.2</version>
               <configuration>
                  <encoding>UTF-8</encoding>
               </configuration>
            </plugin>
            <plugin>
               <groupId>org.apache.maven.plugins</groupId>
               <artifactId>maven-pmd-plugin</artifactId>
               <!-- See also reporting plugins -->
               <version>3.9</version>
               <configuration>
                  <minimumTokens>100</minimumTokens>
                  <targetJdk>${version.java}</targetJdk>
                  <linkXref>false</linkXref>
                  <sourceEncoding>utf-8</sourceEncoding>
               </configuration>
            </plugin>
            <plugin>
               <groupId>org.apache.maven.plugins</groupId>
               <artifactId>maven-shade-plugin</artifactId>
               <version>${version.maven.shade}</version>
               <dependencies>
                  <dependency>
                     <groupId>org.ow2.asm</groupId>
                     <artifactId>asm</artifactId>
                     <version>${version.asm}</version>
                  </dependency>
               </dependencies>
            </plugin>
            <plugin>
               <groupId>org.apache.maven.plugins</groupId>
               <artifactId>maven-jar-plugin</artifactId>
               <version>${version.maven.jar}</version>
            </plugin>
            <plugin>
               <groupId>org.apache.maven.plugins</groupId>
               <artifactId>maven-surefire-plugin</artifactId>
               <version>${version.maven.surefire}</version>
            </plugin>
            <plugin>
               <artifactId>maven-war-plugin</artifactId>
               <version>3.1.0</version>
               <configuration>
                  <attachClasses>false</attachClasses>
               </configuration>
            </plugin>
            <plugin>
               <groupId>org.codehaus.mojo</groupId>
               <artifactId>appassembler-maven-plugin</artifactId>
               <version>1.0</version>
            </plugin>
            <plugin>
               <groupId>org.codehaus.mojo</groupId>
               <artifactId>build-helper-maven-plugin</artifactId>
               <version>${version.maven.buildhelper}</version>
            </plugin>
            <plugin>
               <groupId>org.codehaus.mojo</groupId>
               <artifactId>exec-maven-plugin</artifactId>
               <version>1.6.0</version>
            </plugin>
            <plugin>
               <groupId>org.codehaus.mojo</groupId>
               <artifactId>ideauidesigner-maven-plugin</artifactId>
               <version>1.0-beta-1</version>
            </plugin>
            <plugin>
               <groupId>org.apache.maven.plugins</groupId>
               <artifactId>maven-checkstyle-plugin</artifactId>
               <version>${version.checkstyle.maven-plugin}</version>
               <dependencies>
                  <dependency>
                     <groupId>com.puppycrawl.tools</groupId>
                     <artifactId>checkstyle</artifactId>
                     <version>${version.checkstyle}</version>
                  </dependency>
                  <dependency>
                     <groupId>org.infinispan</groupId>
                     <artifactId>infinispan-checkstyle</artifactId>
                     <version>${project.version}</version>
                  </dependency>
               </dependencies>
               <configuration>
                  <!-- Location is relative to the classpath -->
                  <configLocation>checkstyle.xml</configLocation>
                  <consoleOutput>true</consoleOutput>
                  <failsOnError>true</failsOnError>
                  <violationSeverity>error</violationSeverity>
                  <includeTestSourceDirectory>true</includeTestSourceDirectory>
                  <sourceDirectory>${project.build.sourceDirectory}</sourceDirectory>
                  <linkXRef>false</linkXRef>
               </configuration>
            </plugin>
            <plugin>
               <groupId>org.wildfly.plugins</groupId>
               <artifactId>wildfly-maven-plugin</artifactId>
               <version>${version.org.wildfly.maven-plugin}</version>
               <dependencies>
                  <dependency>
                     <groupId>org.wildfly.core</groupId>
                     <artifactId>wildfly-cli</artifactId>
                     <version>${version.org.wildfly.core}</version>
                     <exclusions>
                        <exclusion>
                           <groupId>sun.jdk</groupId>
                           <artifactId>jconsole</artifactId>
                        </exclusion>
                     </exclusions>
                  </dependency>
               </dependencies>
            </plugin>
            <plugin>
               <groupId>com.github.alexcojocaru</groupId>
               <artifactId>elasticsearch-maven-plugin</artifactId>
               <version>${version.elasticsearch.plugin}</version>
            </plugin>
            <plugin>
               <groupId>org.apache.karaf.tooling</groupId>
               <artifactId>karaf-maven-plugin</artifactId>
               <version>${version.karaf-maven-plugin}</version>
               <configuration>
                  <descriptors>
                     <descriptor>file://${project.build.directory}/classes/features.xml</descriptor>
                     <!-- ideally, those profiles should be referenced in the features file -->
                     <descriptor>mvn:org.apache.karaf.features/framework/${version.karaf}/xml/features</descriptor>
                     <descriptor>mvn:org.apache.karaf.features/enterprise/${version.karaf}/xml/features</descriptor>
                  </descriptors>
                  <distribution>org.apache.karaf.features:framework</distribution>
                  <javase>${version.java}</javase>
                  <framework>
                     <feature>framework</feature>
                  </framework>
               </configuration>
               <executions>
                  <execution>
                     <id>validate</id>
                     <phase>install</phase>
                     <goals>
                        <goal>verify</goal>
                     </goals>
                  </execution>
               </executions>
               <dependencies>
                  <dependency>
                     <groupId>org.apache.maven.wagon</groupId>
                     <artifactId>wagon-http-lightweight</artifactId>
                     <version>2.8</version>
                  </dependency>
                  <dependency>
                     <groupId>javax.activation</groupId>
                     <artifactId>activation</artifactId>
                     <version>1.1.1</version>
                  </dependency>
                  <dependency>
                     <groupId>org.glassfish.jaxb</groupId>
                     <artifactId>jaxb-runtime</artifactId>
                     <version>${version.jaxb}</version>
                  </dependency>
               </dependencies>
            </plugin>
            <plugin>
               <artifactId>maven-compiler-plugin</artifactId>
               <version>${version.maven-compiler-plugin}</version>
               <configuration>
                  <source>${version.java}</source>
                  <target>${version.java}</target>
                  <encoding>UTF-8</encoding>
                  <excludes>
                     <exclude>**/package-info.java</exclude>
                  </excludes>
                  <compilerArgument>-AtranslationFilesPath=${project.basedir}/target/generated-translation-files</compilerArgument>
               </configuration>
            </plugin>
            <plugin>
               <groupId>kr.motd.maven</groupId>
               <artifactId>os-maven-plugin</artifactId>
               <version>1.4.1.Final</version>
            </plugin>
         </plugins>
      </pluginManagement>
      <plugins>
         <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-enforcer-plugin</artifactId>
            <version>3.0.0-M1</version>
            <executions>
               <execution>
                  <id>enforce-java</id>
                  <goals>
                     <goal>enforce</goal>
                  </goals>
                  <configuration>
                     <rules>
                        <requireJavaVersion>
                           <version>[${version.java},)</version>
                        </requireJavaVersion>
                        <requireMavenVersion>
                           <version>[3.2.1,)</version>
                        </requireMavenVersion>
                     </rules>
                  </configuration>
               </execution>
            </executions>
         </plugin>
         <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>build-helper-maven-plugin</artifactId>
            <executions>
               <execution>
                  <id>timestamp-property</id>
                  <goals>
                     <goal>timestamp-property</goal>
                  </goals>
                  <phase>validate</phase>
                  <configuration>
                     <name>current.year</name>
                     <pattern>yyyy</pattern>
                     <locale>en_US</locale>
                  </configuration>
               </execution>
            </executions>
         </plugin>
         <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>buildnumber-maven-plugin</artifactId>
            <version>1.4</version>
            <executions>
               <execution>
                  <phase>validate</phase>
                  <goals>
                     <goal>create</goal>
                  </goals>
                  <configuration>
                     <doCheck>false</doCheck>
                     <doUpdate>false</doUpdate>
                     <getRevisionOnlyOnce>true</getRevisionOnlyOnce>
                  </configuration>
               </execution>
            </executions>
         </plugin>
         <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-invoker-plugin</artifactId>
            <version>${version.maven.invoker}</version>
         </plugin>
         <plugin>
            <artifactId>maven-remote-resources-plugin</artifactId>
            <version>${version.maven.remote.resource}</version>
            <executions>
               <execution>
                  <id>attach-license</id>
                  <goals>
                     <goal>process</goal>
                  </goals>
                  <inherited>true</inherited>
                  <configuration>
                     <resourceBundles>
                        <resourceBundle>org.infinispan:infinispan-license:${project.version}</resourceBundle>
                     </resourceBundles>
                     <skip>${module.skipMavenRemoteResource}</skip>
                  </configuration>
               </execution>
            </executions>
         </plugin>
         <plugin>
            <groupId>org.apache.felix</groupId>
            <artifactId>maven-bundle-plugin</artifactId>
            <extensions>true</extensions>
            <configuration>
               <instructions>
                  <Bundle-DocURL>http://www.infinispan.org/</Bundle-DocURL>
                  <Export-Package>${project.groupId}.*;version=${project.version};-split-package:=error</Export-Package>
                  <_consumer-policy>${bnd.consumer.policy}</_consumer-policy>
                  <_provider-policy>${bnd.provider.policy}</_provider-policy>
                  <Include-Resource>{maven-resources}</Include-Resource>
                  <Implementation-Build-Commit-Id>${buildNumber}</Implementation-Build-Commit-Id>
                  <Implementation-Build-Branch>${scmBranch}</Implementation-Build-Branch>
               </instructions>
            </configuration>
         </plugin>

         <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-eclipse-plugin</artifactId>
            <version>2.7</version>
            <configuration>
               <downloadSources>true</downloadSources>
               <buildOutputDirectory>${basedir}/eclipse-output</buildOutputDirectory>
            </configuration>
         </plugin>
         <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-checkstyle-plugin</artifactId>
            <executions>
               <execution>
                  <id>checkstyle</id>
                  <phase>verify</phase>
                  <goals>
                     <goal>checkstyle</goal>
                  </goals>
               </execution>
            </executions>
         </plugin>
         <!-- IntelliJ project file generation -->
         <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-idea-plugin</artifactId>
            <version>2.2</version>
            <configuration>
               <downloadSources>true</downloadSources>
            </configuration>
         </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>exec-maven-plugin</artifactId>
            <executions>
               <execution>
                  <!-- Scan module for components and persist these into a data file, for use at runtime -->
                  <id>serialize_component_metadata</id>
                  <phase>process-classes</phase>
                  <goals>
                     <goal>java</goal>
                  </goals>
                  <configuration>
                     <classpathScope>compile</classpathScope>
                     <skip>${module.skipComponentMetaDataProcessing}</skip>
                     <mainClass>org.infinispan.factories.components.ComponentMetadataPersister</mainClass>
                     <arguments>
                        <argument>${project.build.outputDirectory}</argument>
                        <argument>${project.build.outputDirectory}/${project.artifactId}-component-metadata.dat</argument>
                     </arguments>
                     <systemProperties>
                        <systemProperty>
                           <key>infinispan.isCoreModule</key>
                           <value>${module.metadata.isCoreModule}</value>
                        </systemProperty>
                        <systemProperty>
                           <key>org.jboss.logging.provider</key>
                           <value>jdk</value>
                        </systemProperty>
                     </systemProperties>
                  </configuration>
               </execution>
               <execution>
                  <id>serialize_test_component_metadata</id>
                  <phase>process-test-classes</phase>
                  <goals>
                     <goal>java</goal>
                  </goals>
                  <configuration>
                     <skip>${module.skipTestComponentMetaDataProcessing}</skip>
                     <mainClass>org.infinispan.factories.components.ComponentMetadataPersister</mainClass>
                     <classpathScope>test</classpathScope>
                     <arguments>
                        <argument>${project.build.testOutputDirectory}</argument>
                        <argument>${project.build.testOutputDirectory}/${project.artifactId}-tests-component-metadata.dat</argument>
                     </arguments>
                     <systemProperties>
                        <systemProperty>
                           <key>org.jboss.logging.provider</key>
                           <value>jdk</value>
                        </systemProperty>
                     </systemProperties>
                  </configuration>
               </execution>
            </executions>
         </plugin>
         <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jar-plugin</artifactId>
            <version>${version.maven.jar}</version>
            <executions>
               <execution>
                  <id>build-test-jar</id>
                  <goals>
                     <goal>test-jar</goal>
                  </goals>
                  <configuration>
                     <archive>
                        <manifest>
                           <addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
                           <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
                        </manifest>
                     </archive>
                     <excludes>
                        <excludes>**/jbossts-properties.xml</excludes>
                     </excludes>
                  </configuration>
               </execution>
            </executions>
            <configuration>
               <archive>
                  <manifest>
                     <addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
                     <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
                     <mainClass>org.infinispan.Version</mainClass>
                  </manifest>
                  <manifestEntries>
                     <Implementation-Codename>${infinispan.codename}</Implementation-Codename>
                  </manifestEntries>
               </archive>
               <excludes>
                  <exclude>**/log4j.xml</exclude>
                  <exclude>**/*.bat</exclude>
                  <exclude>**/*.sh</exclude>
                  <exclude>**/*.txt</exclude>
               </excludes>
            </configuration>
         </plugin>
         <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-release-plugin</artifactId>
            <version>2.5.3</version>
            <configuration>
               <autoVersionSubmodules>true</autoVersionSubmodules>
            </configuration>
         </plugin>
         <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <configuration>
               <parallel>tests</parallel>
               <threadCount>${infinispan.test.parallel.threads}</threadCount>
               <forkCount>1</forkCount>
               <reuseForks>true</reuseForks>
               <groups>${defaultTestNGGroups}</groups>
               <excludedGroups>${defaultExcludedTestNGGroups}</excludedGroups>
               <disableXmlReport>true</disableXmlReport>
               <useFile>false</useFile>
               <systemPropertyVariables>
                  <infinispan.test.jgroups.protocol>${infinispan.test.jgroups.protocol}</infinispan.test.jgroups.protocol>
                  <jgroups.bind_addr>127.0.0.1</jgroups.bind_addr>
                  <jgroups.join_timeout>2000</jgroups.join_timeout>
                  <java.net.preferIPv4Stack>true</java.net.preferIPv4Stack>
                  <log4j.configurationFile>${log4j.configurationFile}</log4j.configurationFile>
                  <build.directory>${project.build.directory}</build.directory>
                  <com.arjuna.ats.arjuna.common.propertiesFile>test-jbossts-properties.xml</com.arjuna.ats.arjuna.common.propertiesFile>

                  <!-- this is picked up in the log4j xml which prepends it to each module's log file-->
                  <infinispan.module-suffix>${infinispan.module-suffix}</infinispan.module-suffix>
                  <ansi.strip>${ansi.strip}</ansi.strip>
                  <!-- Log the correct thread name after we call Thread.setName(),
                       see https://issues.apache.org/jira/browse/LOG4J2-2052 -->
                  <AsyncLogger.ThreadNameStrategy>UNCACHED</AsyncLogger.ThreadNameStrategy>
               </systemPropertyVariables>
               <trimStackTrace>false</trimStackTrace>
               <properties>
                  <!-- Deactivate the default listeners which may cause OOME. Jenkins uses the surefire generated XML file. -->
                  <usedefaultlisteners>false</usedefaultlisteners>
                  <listener>${testNGListeners}</listener>
               </properties>
               <argLine>${forkJvmArgs} ${testjvm.jigsawArgs}</argLine>
            </configuration>
         </plugin>
         <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-antrun-plugin</artifactId>
            <executions>
               <execution>
                  <id>generate-blueprint</id>
                  <goals>
                     <goal>run</goal>
                  </goals>
                  <phase>none</phase>
                  <configuration>
                     <target>
                        <property name="classpath" refid="maven.compile.classpath"/>
                        <java classname="org.infinispan.commons.util.BlueprintGenerator" failonerror="true"
                              fork="false">
                           <arg value="${project.build.outputDirectory}"/>
                           <classpath>
                              <pathelement path="${project.build.outputDirectory}"/>
                              <pathelement path="${classpath}"/>
                           </classpath>
                        </java>
                     </target>
                  </configuration>
               </execution>
            </executions>
         </plugin>
         <plugin>
            <groupId>org.sonatype.plugins</groupId>
            <artifactId>nexus-staging-maven-plugin</artifactId>
            <extensions>true</extensions>
         </plugin>
      </plugins>
   </build>
   <reporting>
      <plugins>
         <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-pmd-plugin</artifactId>
            <version>3.9.0</version>
         </plugin>
         <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-report-plugin</artifactId>
            <version>${version.maven.surefire}</version>
         </plugin>
         <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>findbugs-maven-plugin</artifactId>
            <version>2.5.2</version>
            <configuration>
               <onlyAnalyze>org.infinispan.*</onlyAnalyze>
               <xmlOutput>true</xmlOutput>
               <xmlOutputDirectory>target</xmlOutputDirectory>
            </configuration>
         </plugin>
      </plugins>
   </reporting>
   <profiles>
      <profile>
         <id>m2e</id>
         <activation>
            <property>
               <name>m2e.version</name>
            </property>
         </activation>

         <properties>
            <!-- Eclipse doesn't handle well the dependency on uberjars for the modules which use them (e.g. demos).
                 Mark the dependencies of the uberjar modules as not-optional when inside Eclipse. -->
            <uberjar.deps.optional>false</uberjar.deps.optional>
         </properties>

         <build>
            <pluginManagement>
               <plugins>
                  <!--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>
                     <version>1.0.0</version>
                     <configuration>
                        <lifecycleMappingMetadata>
                           <pluginExecutions>
                              <pluginExecution>
                                 <pluginExecutionFilter>
                                    <groupId>org.apache.felix</groupId>
                                    <artifactId>maven-bundle-plugin</artifactId>
                                    <versionRange>[2.4.0,)</versionRange>
                                    <goals>
                                       <goal>bundle</goal>
                                       <goal>cleanVersions</goal>
                                    </goals>
                                 </pluginExecutionFilter>
                                 <action>
                                    <ignore />
                                 </action>
                              </pluginExecution>
                              <pluginExecution>
                                 <pluginExecutionFilter>
                                    <groupId>org.apache.maven.plugins</groupId>
                                    <artifactId>maven-antrun-plugin</artifactId>
                                    <versionRange>[1.3,)</versionRange>
                                    <goals>
                                       <goal>run</goal>
                                    </goals>
                                 </pluginExecutionFilter>
                                 <action>
                                    <ignore />
                                 </action>
                              </pluginExecution>
                              <pluginExecution>
                                 <pluginExecutionFilter>
                                    <groupId>org.apache.maven.plugins</groupId>
                                    <artifactId>maven-dependency-plugin</artifactId>
                                    <versionRange>[2.6,)</versionRange>
                                    <goals>
                                       <goal>copy</goal>
                                       <goal>copy-dependencies</goal>
                                       <goal>unpack</goal>
                                       <goal>unpack-dependencies</goal>
                                    </goals>
                                 </pluginExecutionFilter>
                                 <action>
                                    <ignore />
                                 </action>
                              </pluginExecution>
                              <pluginExecution>
                                 <pluginExecutionFilter>
                                    <groupId>org.apache.maven.plugins</groupId>
                                    <artifactId>maven-enforcer-plugin</artifactId>
                                    <versionRange>[1.3.1,)</versionRange>
                                    <goals>
                                       <goal>enforce</goal>
                                    </goals>
                                 </pluginExecutionFilter>
                                 <action>
                                    <ignore />
                                 </action>
                              </pluginExecution>
                              <pluginExecution>
                                 <pluginExecutionFilter>
                                    <groupId>org.apache.maven.plugins</groupId>
                                    <artifactId>maven-invoker-plugin</artifactId>
                                    <versionRange>[1.8,)</versionRange>
                                    <goals>
                                       <goal>install</goal>
                                    </goals>
                                 </pluginExecutionFilter>
                                 <action>
                                    <ignore />
                                 </action>
                              </pluginExecution>
                              <pluginExecution>
                                 <pluginExecutionFilter>
                                    <groupId>org.apache.maven.plugins</groupId>
                                    <artifactId>maven-javadoc-plugin</artifactId>
                                    <versionRange>[2.8,)</versionRange>
                                    <goals>
                                       <goal>javadoc</goal>
                                    </goals>
                                 </pluginExecutionFilter>
                                 <action>
                                    <ignore />
                                 </action>
                              </pluginExecution>
                              <pluginExecution>
                                 <pluginExecutionFilter>
                                    <groupId>org.apache.maven.plugins</groupId>
                                    <artifactId>maven-remote-resources-plugin</artifactId>
                                    <versionRange>[1.1,)</versionRange>
                                    <goals>
                                       <goal>process</goal>
                                    </goals>
                                 </pluginExecutionFilter>
                                 <action>
                                    <ignore />
                                 </action>
                              </pluginExecution>
                              <pluginExecution>
                                 <pluginExecutionFilter>
                                    <groupId>org.apache.servicemix.tooling</groupId>
                                    <artifactId>depends-maven-plugin</artifactId>
                                    <versionRange>[1.2,)</versionRange>
                                    <goals>
                                       <goal>generate-depends-file</goal>
                                    </goals>
                                 </pluginExecutionFilter>
                                 <action>
                                    <ignore />
                                 </action>
                              </pluginExecution>
                              <pluginExecution>
                                 <pluginExecutionFilter>
                                    <groupId>org.codehaus.mojo</groupId>
                                    <artifactId>exec-maven-plugin</artifactId>
                                    <versionRange>[1.0.2,)</versionRange>
                                    <goals>
                                       <goal>java</goal>
                                    </goals>
                                 </pluginExecutionFilter>
                                 <action>
                                    <ignore />
                                 </action>
                              </pluginExecution>
                              <pluginExecution>
                                 <pluginExecutionFilter>
                                    <groupId>org.codehaus.mojo</groupId>
                                    <artifactId>ideauidesigner-maven-plugin</artifactId>
                                    <versionRange>[1.0-beta-1,)</versionRange>
                                    <goals>
                                       <goal>javac2</goal>
                                    </goals>
                                 </pluginExecutionFilter>
                                 <action>
                                    <ignore />
                                 </action>
                              </pluginExecution>
                           </pluginExecutions>
                        </lifecycleMappingMetadata>
                     </configuration>
                  </plugin>
               </plugins>
            </pluginManagement>
         </build>
      </profile>
      <profile>
         <id>distribution</id>
         <modules>
            <module>javadoc/doclets</module>
            <module>javadoc/javadoc-embedded</module>
            <module>javadoc/javadoc-remote</module>
            <module>javadoc/javadoc-all</module>
            <module>distribution</module>
         </modules>
         <properties>
            <skipTests>true</skipTests>
            <dependencies.excludeArtifactIds>infinispan-embedded,infinispan-embedded-query,infinispan-remote</dependencies.excludeArtifactIds>
            <dependencies.excludeGroupIds>org.infinispan,org.jgroups,org.jboss.marshalling,org.jboss.logging,net.jcip,org.kohsuke.metainf-services</dependencies.excludeGroupIds>
         </properties>
         <build>
            <plugins>
               <plugin>
                  <groupId>org.apache.maven.plugins</groupId>
                  <artifactId>maven-dependency-plugin</artifactId>
                  <executions>
                     <execution>
                        <id>create-classpath</id>
                        <phase>package</phase>
                        <goals>
                           <goal>build-classpath</goal>
                        </goals>
                        <configuration>
                           <skip>${module.skipCopyDependencies}</skip>
                           <includeScope>runtime</includeScope>
                           <excludeScope>test</excludeScope>
                           <excludeArtifactIds>${dependencies.excludeArtifactIds}</excludeArtifactIds>
                           <excludeGroupIds>${dependencies.excludeGroupIds}</excludeGroupIds>
                           <prefix>$ISPN_HOME/lib</prefix>
                           <outputFile>${project.build.directory}/runtime-classpath.txt</outputFile>
                           <silent>true</silent>
                        </configuration>
                     </execution>
                     <execution>
                        <id>copy-dependencies</id>
                        <phase>package</phase>
                        <goals>
                           <goal>copy-dependencies</goal>
                        </goals>
                        <configuration>
                           <skip>${module.skipCopyDependencies}</skip>
                           <includeScope>runtime</includeScope>
                           <excludeScope>test</excludeScope>
                           <excludeGroupIds>${dependencies.excludeGroupIds}</excludeGroupIds>
                           <silent>true</silent>
                        </configuration>
                     </execution>
                  </executions>
               </plugin>
               <plugin>
                  <groupId>org.apache.maven.plugins</groupId>
                  <artifactId>maven-antrun-plugin</artifactId>
                  <executions>
                     <execution>
                        <id>upload-schemas</id>
                        <phase>deploy</phase>
                        <goals>
                           <goal>run</goal>
                        </goals>
                        <configuration>
                           <skip>${skipArtifactUpload}</skip>
                           <target>
                              <available file="${project.build.outputDirectory}/schema" type="dir" property="hasSchema"/>

                              <echo message="Uploading Schema files to ${upload.schemaDir}" if:set="hasSchema" xmlns:if="ant:if"/>
                              <scp todir="${upload.schemaDir}" keyfile="${upload.keyFile}" verbose="true" compressed="true" if:set="hasSchema" xmlns:if="ant:if">
                                 <fileset dir="${project.build.outputDirectory}/schema">
                                    <include name="*-${infinispan.core.schema.version}.xsd" />
                                 </fileset>
                              </scp>
                           </target>
                        </configuration>
                     </execution>
                  </executions>
               </plugin>
            </plugins>
         </build>
      </profile>
      <profile>
         <!-- Profile used to compile the default (Java 8) code with a Java 9 or later compiler -->
         <id>jigsaw</id>
         <activation>
            <jdk>[9,)</jdk>
         </activation>
         <properties>
            <!--
              java.lang, java.util, java.io, java.lang.invoke, java.lang, reflect, java.util.concurrent, java.time:
                core externalizers for JDK types
              java.nio, jdk.internal.ref, sun.nio.ch: Netty, server/hotrod
              com.sun.security.sasl: CRAM-MD5 mechanism, server/hotrod
              java.text, java.awt.font: XStream, server/rest
              java.security: Wildfly, server/integration/*
            -->
            <testjvm.jigsawargs>
               -Dsun.reflect.debugModuleAccessChecks=true
               --add-opens=java.base/java.lang=ALL-UNNAMED
               --add-opens=java.base/java.util=ALL-UNNAMED
               --add-opens=java.base/java.io=ALL-UNNAMED
               --add-opens=java.base/java.lang.invoke=ALL-UNNAMED
               --add-opens=java.base/java.lang.reflect=ALL-UNNAMED
               --add-opens=java.base/java.util.concurrent=ALL-UNNAMED
               --add-opens=java.base/java.time=ALL-UNNAMED
               --add-opens=java.base/java.nio=ALL-UNNAMED
               --add-opens=java.base/jdk.internal.ref=ALL-UNNAMED
               --add-exports=java.security.sasl/com.sun.security.sasl=ALL-UNNAMED
               --add-opens=java.base/java.text=ALL-UNNAMED
               --add-opens=java.desktop/java.awt.font=ALL-UNNAMED
               --add-opens=java.base/java.security=ALL-UNNAMED
               --add-exports=jdk.security.jgss/com.sun.security.sasl.gsskerb=ALL-UNNAMED
               --add-exports=java.base/sun.nio.ch=ALL-UNNAMED
               --add-opens=java.base/sun.nio.ch=ALL-UNNAMED
               --add-exports=java.security.sasl/com.sun.security.sasl.digest=ALL-UNNAMED
               --add-exports=java.security.sasl/com.sun.security.sasl.ntlm=ALL-UNNAMED
               --add-exports=java.naming/com.sun.jndi.ldap=ALL-UNNAMED
               --add-opens=java.management/javax.management=ALL-UNNAMED
               --add-exports=java.management/com.sun.jmx.mbeanserver=ALL-UNNAMED
               --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED
            </testjvm.jigsawargs>
         </properties>
         <build>
            <plugins>
               <plugin>
                  <groupId>org.apache.maven.plugins</groupId>
                  <artifactId>maven-dependency-plugin</artifactId>
                  <executions>
                     <execution>
                        <id>jdk-misc</id>
                        <phase>process-sources</phase>
                        <goals>
                           <goal>copy</goal>
                        </goals>
                        <configuration>
                           <!-- Download org.jboss:jdk-misc to the target directory -->
                           <artifactItems>
                              <artifactItem>
                                 <groupId>org.jboss</groupId>
                                 <artifactId>jdk-misc</artifactId>
                                 <version>2.Final</version>
                                 <type>jar</type>
                                 <overWrite>true</overWrite>
                                 <outputDirectory>${project.build.directory}</outputDirectory>
                                 <destFileName>jdk-misc.jar</destFileName>
                              </artifactItem>
                           </artifactItems>
                        </configuration>
                     </execution>
                  </executions>
               </plugin>
               <plugin>
                  <artifactId>maven-compiler-plugin</artifactId>
                  <configuration>
                     <compilerArgument combine.children="append">-XDignore.symbol.file</compilerArgument>
                     <!-- Forking is necessary to allow for the compiler args to be picked up. -->
                     <fork combine.children="append">true</fork>
                     <release>8</release>
                     <!-- Include a skeleton implementation of some classes removed in JDK10+ -->
                     <additionalClasspathElements>
                        <additionalClasspathElement>${project.build.directory}/jdk-misc.jar</additionalClasspathElement>
                     </additionalClasspathElements>
                  </configuration>
               </plugin>
            </plugins>
         </build>
      </profile>
      <profile>
         <!-- Profile used to compile Java 10-specific classes. It requires that the java10.home property points to a JDK 10 installation -->
         <id>jdk10-compile</id>
         <activation>
            <property>
               <name>java10.home</name>
            </property>
            <file>
               <exists>${basedir}/src/main/java10</exists>
            </file>
         </activation>
         <build>
            <plugins>

               <plugin>
                  <artifactId>maven-compiler-plugin</artifactId>
                  <executions>
                     <execution>
                        <id>java10-compile</id>
                        <phase>compile</phase>
                        <goals>
                           <goal>compile</goal>
                        </goals>
                        <configuration>
                           <executable>${java10.home}/bin/javac</executable>
                           <release>10</release>
                           <compileSourceRoots>${project.basedir}/src/main/java10</compileSourceRoots>
                           <outputDirectory>${project.build.outputDirectory}/META-INF/versions/10</outputDirectory>
                           <additionalClasspathElements>
                              <additionalClasspathElement>${project.build.outputDirectory}</additionalClasspathElement>
                           </additionalClasspathElements>
                        </configuration>
                     </execution>
                  </executions>
               </plugin>
               <plugin>
                  <artifactId>maven-surefire-plugin</artifactId>
                  <executions>
                     <execution>
                        <id>java10-test</id>
                        <phase>test</phase>
                        <goals>
                           <goal>test</goal>
                        </goals>
                        <configuration>
                           <jvm>${java10.home}/bin/java</jvm>
                           <groups>org.infinispan.commons.test.categories.Java10</groups>
                        </configuration>
                     </execution>
                  </executions>
               </plugin>
               <plugin>
                  <artifactId>maven-jar-plugin</artifactId>
                  <executions>
                     <execution>
                        <id>build-test-jar</id>
                        <goals>
                           <goal>test-jar</goal>
                        </goals>
                        <configuration>
                           <archive>
                              <manifestEntries>
                                 <Multi-Release>true</Multi-Release>
                              </manifestEntries>
                           </archive>
                        </configuration>
                     </execution>
                  </executions>

               </plugin>
            </plugins>
         </build>
      </profile>
      <profile>
         <id>jdk10-test-compile</id>
         <activation>
            <property>
               <name>java10.home</name>
            </property>
            <file>
               <exists>${basedir}/src/test/java10</exists>
            </file>
         </activation>
         <build>
            <plugins>
               <plugin>
                  <artifactId>maven-compiler-plugin</artifactId>
                  <executions>
                     <execution>
                        <id>java10-test-compile</id>
                        <phase>test-compile</phase>
                        <goals>
                           <goal>compile</goal>
                        </goals>
                        <configuration>
                           <release>10</release>
                           <compileSourceRoots>${project.basedir}/src/test/java10</compileSourceRoots>
                           <outputDirectory>${project.build.testOutputDirectory}/META-INF/versions/10</outputDirectory>
                        </configuration>
                     </execution>
                  </executions>
               </plugin>
               <plugin>
                  <artifactId>maven-surefire-plugin</artifactId>
                  <executions>
                     <execution>
                     </execution>
                  </executions>
               </plugin>
               <plugin>
                  <artifactId>maven-jar-plugin</artifactId>
                  <configuration>
                     <archive>
                        <manifestEntries>
                           <Multi-Release>true</Multi-Release>
                        </manifestEntries>
                     </archive>
                  </configuration>
               </plugin>
            </plugins>
         </build>
      </profile>
      <profile>
         <id>pre-jigsaw</id>
         <activation>
            <file>
               <exists>{java.home}/../lib/tools.jar</exists>
            </file>
         </activation>
         <build>
            <plugins>
               <plugin>
                  <groupId>org.apache.maven.plugins</groupId>
                  <artifactId>maven-antrun-plugin</artifactId>
                  <dependencies>
                     <!-- Java 9 includes the compiler in the default module -->
                     <!-- So we only need the tools.jar dependency on Java 8 -->
                     <dependency>
                        <groupId>com.sun</groupId>
                        <artifactId>tools</artifactId>
                        <version>${java.version}</version>
                        <scope>system</scope>
                        <systemPath>${java.home}/../lib/tools.jar</systemPath>
                     </dependency>
                  </dependencies>
               </plugin>
            </plugins>
         </build>
      </profile>

      <profile>
         <id>extras</id>
         <activation>
            <activeByDefault>true</activeByDefault>
            <!-- activeByDefault is not enough to activate the profile in children projects -->
            <property>
               <name>maven.home</name>
            </property>
         </activation>
         <build>
            <plugins>
               <!-- Make sure we generate src jars too -->
               <plugin>
                  <groupId>org.apache.maven.plugins</groupId>
                  <artifactId>maven-source-plugin</artifactId>
                  <executions>
                     <execution>
                        <id>attach-sources</id>
                        <phase>verify</phase>
                        <goals>
                           <goal>jar</goal>
                           <goal>test-jar</goal>
                        </goals>
                     </execution>
                  </executions>
                  <inherited>true</inherited>
               </plugin>
            </plugins>
         </build>
         <properties>
            <!-- By default create OSGI bundles -->
            <packaging>bundle</packaging>
         </properties>
      </profile>
      <profile>
         <id>test-CI</id>
         <activation>
            <activeByDefault>true</activeByDefault>
         </activation>
         <properties>
            <defaultTestNGGroups>functional,unit,xsite,arquillian</defaultTestNGGroups>
            <infinispan.test.jgroups.protocol>tcp</infinispan.test.jgroups.protocol>
         </properties>
      </profile>
      <profile>
         <id>test-functional</id>
         <properties>
            <defaultTestNGGroups>functional</defaultTestNGGroups>
            <infinispan.test.jgroups.protocol>tcp</infinispan.test.jgroups.protocol>
         </properties>
      </profile>
      <profile>
         <id>smoke</id>
         <properties>
            <defaultTestNGGroups>smoke</defaultTestNGGroups>
            <defaultJUnitGroups>org.infinispan.commons.test.categories.Smoke</defaultJUnitGroups>
            <infinispan.test.jgroups.protocol>tcp</infinispan.test.jgroups.protocol>
         </properties>
      </profile>
      <profile>
         <id>test-unstable</id>
         <properties>
            <defaultTestNGGroups>unstable</defaultTestNGGroups>
            <defaultJUnitGroups>org.infinispan.commons.test.categories.Unstable</defaultJUnitGroups>
            <!-- empty since we are not going to exclude any group -->
            <defaultExcludedTestNGGroups/>
            <defaultExcludedJUnitGroups/>
            <infinispan.test.jgroups.protocol>tcp</infinispan.test.jgroups.protocol>
         </properties>
         <build>
            <plugins>
               <plugin>
                  <groupId>org.apache.maven.plugins</groupId>
                  <artifactId>maven-surefire-plugin</artifactId>
                  <configuration>
                     <systemPropertyVariables>
                        <log4j.configurationFile>log4j2-trace.xml</log4j.configurationFile>
                     </systemPropertyVariables>
                  </configuration>
               </plugin>
            </plugins>
         </build>
      </profile>
      <profile>
         <id>test-stress</id>
         <properties>
            <defaultTestNGGroups>stress</defaultTestNGGroups>
            <defaultJUnitGroups>org.infinispan.commons.test.categories.Stress</defaultJUnitGroups>
            <defaultExcludedTestNGGroups/>
            <defaultExcludedJUnitGroups/>
            <infinispan.test.parallel.threads>1</infinispan.test.parallel.threads>
            <infinispan.test.jgroups.protocol>tcp</infinispan.test.jgroups.protocol>
         </properties>
      </profile>
      <profile>
         <id>test-unit</id>
         <properties>
            <defaultTestNGGroups>unit</defaultTestNGGroups>
         </properties>
      </profile>
      <profile>
         <id>test-jgroups</id>
         <properties>
            <defaultTestNGGroups>jgroups</defaultTestNGGroups>
         </properties>
      </profile>
      <profile>
         <id>test-transaction</id>
         <properties>
            <defaultTestNGGroups>transaction</defaultTestNGGroups>
         </properties>
      </profile>
      <profile>
         <id>fail-all-tests</id>
         <properties>
            <testNGListener>
               org.infinispan.commons.test.TestNGTestListener,org.infinispan.test.fwk.FailAllTestNGHook
            </testNGListener>
            <infinispan.test.jgroups.protocol>tcp</infinispan.test.jgroups.protocol>
         </properties>
      </profile>
      <profile>
         <id>fail-all-tests-setup</id>
         <properties>
            <testNGListener>
               org.infinispan.commons.test.TestNGTestListener,org.infinispan.test.fwk.FailAllSetupTestNGHook
            </testNGListener>
            <infinispan.test.jgroups.protocol>tcp</infinispan.test.jgroups.protocol>
         </properties>
      </profile>
      <profile>
         <id>customForkJvmArgs</id>
         <activation>
            <activeByDefault>false</activeByDefault>
            <property>
               <name>env.MAVEN_FORK_OPTS</name>
            </property>
         </activation>
         <properties>
            <forkJvmArgs>${env.MAVEN_FORK_OPTS}</forkJvmArgs>
         </properties>
      </profile>

      <!-- Only one of the root-dirX profiles will be active, and it will set infinispan.root
           to $REACTOR_ROOT/etc/log4j2.xml -->
      <profile>
         <id>root-dir1</id>
         <activation>
            <file>
               <exists>${basedir}/../etc/log4j2.xml</exists>
            </file>
         </activation>
         <properties>
            <infinispan.root>${basedir}/../etc</infinispan.root>
         </properties>
      </profile>
      <profile>
         <id>root-dir2</id>
         <activation>
            <file>
               <exists>${basedir}/../../etc/log4j2.xml</exists>
            </file>
         </activation>
         <properties>
            <infinispan.root>${basedir}/../../etc</infinispan.root>
         </properties>
      </profile>
      <profile>
         <id>root-dir3</id>
         <activation>
            <file>
               <exists>${basedir}/../../../etc/log4j2.xml</exists>
            </file>
         </activation>
         <properties>
            <infinispan.root>${basedir}/../../../etc</infinispan.root>
         </properties>
      </profile>
      <profile>
         <id>root-dir4</id>
         <activation>
            <file>
               <exists>${basedir}/../../../../etc/log4j2.xml</exists>
            </file>
         </activation>
         <properties>
            <infinispan.root>${basedir}/../../../../etc</infinispan.root>
         </properties>
      </profile>
      <profile>
         <id>nonParallel</id>
         <activation>
            <activeByDefault>false</activeByDefault>
         </activation>
         <properties>
            <infinispan.test.parallel.threads>1</infinispan.test.parallel.threads>
            <infinispan.test.jgroups.protocol>tcp</infinispan.test.jgroups.protocol>
         </properties>
      </profile>
      <profile>
         <id>traceTests</id>
         <activation>
            <activeByDefault>false</activeByDefault>
         </activation>
         <properties>
            <log4j.configurationFile>${infinispan.root}/log4j2-trace.xml</log4j.configurationFile>
         </properties>
      </profile>
      <profile>
         <id>coverage</id>

         <build>
            <plugins>
               <plugin>
                  <groupId>org.apache.maven.plugins</groupId>
                  <artifactId>maven-surefire-plugin</artifactId>
                  <configuration>
                     <argLine combine.self="override">${forkJvmArgs} ${jacoco.agent.argLine}</argLine>
                  </configuration>
               </plugin>

               <plugin>
                  <groupId>org.codehaus.mojo</groupId>
                  <artifactId>properties-maven-plugin</artifactId>
                  <version>1.0.0</version>
                  <executions>
                     <!-- Copy the ant tasks jar. Needed for ts.jacoco.report-ant . -->
                     <execution>
                        <goals>
                           <goal>set-system-properties</goal>
                        </goals>
                        <configuration>
                           <properties>
                              <property>
                                 <name>jacoco.reportPath</name>
                                 <value>${session.executionRootDirectory}/jacoco</value>
                              </property>
                           </properties>
                        </configuration>
                     </execution>
                  </executions>
               </plugin>

               <!-- Starting jacoco agent for recording code coverage. -->
               <plugin>
                  <groupId>org.jacoco</groupId>
                  <artifactId>jacoco-maven-plugin</artifactId>
                  <version>${version.jacoco}</version>
                  <executions>
                     <execution>
                        <id>default-prepare-agent</id>
                        <goals>
                           <goal>prepare-agent</goal>
                        </goals>
                     </execution>
                  </executions>
                  <configuration>
                     <propertyName>jacoco.agent.argLine</propertyName>
                     <destFile>${dir.jacoco}/${project.artifactId}.exec</destFile>
                     <excludes>
                        <exclude>**/logging/**</exclude>
                     </excludes>
                  </configuration>
               </plugin>
               <!-- Overriding surefire configuration, for attaching jacoco agent to command line. -->
               <plugin>
                  <groupId>org.apache.maven.plugins</groupId>
                  <artifactId>maven-antrun-plugin</artifactId>
                  <dependencies>
                     <dependency>
                        <groupId>org.apache.ant</groupId>
                        <artifactId>ant</artifactId>
                        <version>${version.ant}</version>
                     </dependency>
                     <dependency>
                        <groupId>ant-contrib</groupId>
                        <artifactId>ant-contrib</artifactId>
                        <version>${version.ant-contrib}</version>
                        <exclusions>
                           <exclusion>
                              <groupId>ant</groupId>
                              <artifactId>ant</artifactId>
                           </exclusion>
                        </exclusions>
                     </dependency>
                     <dependency>
                        <groupId>org.apache.ant</groupId>
                        <artifactId>ant-nodeps</artifactId>
                        <version>${version.ant}</version>
                     </dependency>
                  </dependencies>
                  <executions>
                     <execution>
                        <id>copy-generated-classes</id>
                        <phase>test</phase>
                        <goals>
                           <goal>run</goal>
                        </goals>
                        <configuration>
                           <target>
                                 <available file="${project.build.directory}/classes" type="dir" property="hasClasses"/>
                                 <echo message="Copying test classes to jacoco folder" if:set="hasClasses" xmlns:if="ant:if"/>
                                 <copydir dest="${jacoco.reportPath}/classes"
                                          src="${project.build.directory}/classes"
                                          if:set="hasClasses" xmlns:if="ant:if"/>
                           </target>
                        </configuration>
                     </execution>
                  </executions>
               </plugin>
            </plugins>
         </build>
      </profile>
      <profile>
         <id>jacocoReport</id>

         <build>
            <plugins>
               <plugin>
                  <groupId>org.codehaus.mojo</groupId>
                  <artifactId>properties-maven-plugin</artifactId>
                  <version>1.0.0</version>
                  <executions>
                     <execution>
                        <goals>
                           <goal>set-system-properties</goal>
                        </goals>
                        <configuration>
                           <properties>
                              <property>
                                 <name>jacoco.reportPath</name>
                                 <value>${session.executionRootDirectory}/jacoco</value>
                              </property>
                           </properties>
                        </configuration>
                     </execution>
                  </executions>
               </plugin>

               <plugin>
                  <groupId>org.apache.maven.plugins</groupId>
                  <artifactId>maven-antrun-plugin</artifactId>
                  <executions>
                     <execution>
                        <id>delete-existing-jacoco-report</id>
                        <phase>initialize</phase>
                        <goals>
                           <goal>run</goal>
                        </goals>
                        <configuration>
                           <target>
                              <echo>Deleting existing Jacoco Report Directory.</echo>
                              <delete dir="${dir.jacoco.report}"/>
                              <delete dir="${dir.jacoco.merged}"/>
                              <delete dir="${project.build.directory}/classes"/>
                              <echo>Copying the generated classes file to ${project.build.directory}/classes
                              </echo>
                              <copydir dest="${project.build.directory}/classes"
                                       src="${jacoco.reportPath}/classes"/>
                           </target>
                        </configuration>
                     </execution>
                  </executions>
               </plugin>

               <plugin>
                  <groupId>org.codehaus.mojo</groupId>
                  <artifactId>build-helper-maven-plugin</artifactId>
                  <executions>
                     <execution>
                        <id>add-source</id>
                        <phase>generate-sources</phase>
                        <goals>
                           <goal>add-source</goal>
                        </goals>
                        <configuration>
                           <sources>
                              <source>${dir.ispn}/atomic-factory/src/main/java</source>
                              <source>${dir.ispn}/cdi/common/src/main/java</source>
                              <source>${dir.ispn}/cdi/embedded/src/main/java</source>
                              <source>${dir.ispn}/cdi/remote/src/main/java</source>
                              <source>${dir.ispn}/checkstyle/src/main/java</source>
                              <source>${dir.ispn}/cli/cli-client/src/main/java</source>
                              <source>${dir.ispn}/cli/cli-interpreter/src/main/java</source>
                              <source>${dir.ispn}/client/hotrod-client/src/main/java</source>
                              <source>${dir.ispn}/commons/src/main/java</source>
                              <source>${dir.ispn}/commons-test/src/main/java</source>
                              <source>${dir.ispn}/core/src/main/java</source>
                              <source>${dir.ispn}/demos/distexec/src/main/java</source>
                              <source>${dir.ispn}/demos/gridfs-webdav//src/main/java</source>
                              <source>${dir.ispn}/demos/gui/src/main/java</source>
                              <source>${dir.ispn}/demos/lucene-directory-demo/src/main/java</source>
                              <source>${dir.ispn}/extended-statistics/src/main/java</source>
                              <source>${dir.ispn}/jcache/commons/src/main/java</source>
                              <source>${dir.ispn}/jcache/embedded/src/main/java</source>
                              <source>${dir.ispn}/jcache/remote/src/main/java</source>
                              <source>${dir.ispn}/lucene/directory-provider/src/main/java</source>
                              <source>${dir.ispn}/lucene/lucene-directory/src/main/java</source>
                              <source>${dir.ispn}/object-filter/src/main/java</source>
                              <source>${dir.ispn}/osgi/src/main/java</source>
                              <source>${dir.ispn}/persistence/cli/src/main/java</source>
                              <source>${dir.ispn}/persistence/jdbc/src/main/java</source>
                              <source>${dir.ispn}/persistence/jpa/src/main/java</source>
                              <source>${dir.ispn}/persistence/leveldb/src/main/java</source>
                              <source>${dir.ispn}/persistence/remote/src/main/java</source>
                              <source>${dir.ispn}/persistence/rest/src/main/java</source>
                              <source>${dir.ispn}/persistence/rocksdb/src/main/java</source>
                              <source>${dir.ispn}/persistence/soft-index/src/main/java</source>
                              <source>${dir.ispn}/query/src/main/java</source>
                              <source>${dir.ispn}/query-dsl/src/main/java</source>
                              <source>${dir.ispn}/remote-query/remote-query-client/src/main/java</source>
                              <source>${dir.ispn}/remote-query/remote-query-server/src/main/java</source>
                              <source>${dir.ispn}/scripting/src/main/java</source>
                              <source>${dir.ispn}/server/websocket/src/main/java</source>
                              <source>${dir.ispn}/spring/spring/src/main/java</source>
                              <source>${dir.ispn}/spring/spring4/spring4-common/src/main/java</source>
                              <source>${dir.ispn}/spring/spring4/spring4-embedded/src/main/java</source>
                              <source>${dir.ispn}/spring/spring4/spring4-remote/src/main/java</source>
                              <source>${dir.ispn}/tasks/src/main/java</source>
                              <source>${dir.ispn}/tasks-api/src/main/java</source>
                              <source>${dir.ispn}/tools/src/main/java</source>
                              <source>${dir.ispn}/tree/src/main/java</source>
                           </sources>
                        </configuration>
                     </execution>
                  </executions>
               </plugin>

               <plugin>
                  <groupId>org.jacoco</groupId>
                  <artifactId>jacoco-maven-plugin</artifactId>
                  <version>${version.jacoco}</version>
                  <executions>
                     <execution>
                        <id>default-report</id>
                        <goals>
                           <goal>report</goal>
                        </goals>
                        <phase>install</phase>
                     </execution>
                     <execution>
                        <id>default-merge</id>
                        <goals>
                           <goal>merge</goal>
                        </goals>
                        <configuration>
                           <fileSets>
                              <fileSet>
                                 <directory>${dir.jacoco}</directory>
                                 <includes>
                                    <include>*.exec</include>
                                 </includes>
                              </fileSet>
                           </fileSets>
                           <destFile>${dir.jacoco.merged}/jacoco.exec</destFile>
                        </configuration>
                     </execution>
                  </executions>
                  <configuration>
                     <dataFile>${dir.jacoco.merged}/jacoco.exec</dataFile>
                     <outputDirectory>${dir.jacoco.report}</outputDirectory>
                     <excludes>
                        <exclude>**/logging/**</exclude>
                     </excludes>
                  </configuration>
               </plugin>
            </plugins>
         </build>
      </profile>
      <profile>
         <id>owasp</id>
            <build>
               <plugins>
                  <plugin>
                     <groupId>org.owasp</groupId>
                     <artifactId>dependency-check-maven</artifactId>
                     <version>${version.owasp-dependency-check-plugin}</version>
                     <executions>
                        <execution>
                           <goals>
                              <goal>aggregate</goal>
                           </goals>
                        </execution>
                    </executions>
                  </plugin>
               </plugins>
             </build>
      </profile>
   </profiles>
</project>
