<?xml version="1.0" encoding="UTF-8"?>

<!--
  Licensed to the Apache Software Foundation (ASF) under one or more
  contributor license agreements.  See the NOTICE file distributed with
  this work for additional information regarding copyright ownership.
  The ASF licenses this file to You under the Apache License, Version 2.0
  (the "License"); you may not use this file except in compliance with
  the License.  You may obtain a copy of the License at

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

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
-->

<!--
    POM file.
-->
<project
        xmlns="http://maven.apache.org/POM/4.0.0"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <parent>
        <groupId>org.apache</groupId>
        <artifactId>apache</artifactId>
        <version>16</version>
    </parent>

    <properties>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>

        <ignite.version>2.11.0</ignite.version>
        <ignite.springdata.version>1.1.0-SNAPSHOT</ignite.springdata.version>

        <ignite.edition>apache-ignite</ignite.edition>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.build.timestamp.format>MMMM d yyyy</maven.build.timestamp.format>
        <doxygen.exec>doxygen</doxygen.exec>
        <docfx.exec>docfx</docfx.exec>
        <git.exec>git</git.exec>
        <javadoc.opts>-Xdoclint:none</javadoc.opts>
        <update.notifier.enabled.by.default>true</update.notifier.enabled.by.default>

        <!-- Dependency versions -->
        <activemq.version>5.12.0</activemq.version>
        <aopalliance.bundle.version>1.0_6</aopalliance.bundle.version>
        <asm.version>4.2</asm.version>
        <aspectj.bundle.version>1.8.13_1</aspectj.bundle.version>
        <aspectj.version>1.8.13</aspectj.version>
        <camel.version>3.4.3</camel.version>
        <aws.encryption.sdk.version>1.3.2</aws.encryption.sdk.version>
        <commons.beanutils.bundle.version>1.9.2_1</commons.beanutils.bundle.version>
        <commons.beanutils.version>1.9.3</commons.beanutils.version>
        <commons.codec.version>1.11</commons.codec.version>
        <commons.collections.version>3.2.2</commons.collections.version>
        <commons.lang.version>2.6</commons.lang.version>
        <commons.io.version>2.6</commons.io.version>
        <cron4j.version>2.2.5</cron4j.version>
        <curator.version>4.2.0</curator.version>
        <easymock.version>3.4</easymock.version>
        <ezmorph.bundle.version>1.0.6_1</ezmorph.bundle.version>
        <ezmorph.version>1.0.6</ezmorph.version>
        <flume.ng.version>1.7.0</flume.ng.version>
        <guava.retrying.version>2.0.0</guava.retrying.version>
        <guava.version>25.1-jre</guava.version>
        <guava14.version>14.0.1</guava14.version>
        <guava16.version>16.0.1</guava16.version>
        <h2.version>1.4.197</h2.version>
        <hadoop.version>2.9.1</hadoop.version>
        <hamcrest.version>1.2</hamcrest.version>
        <httpclient.version>4.5.1</httpclient.version>
        <httpcore.version>4.4.3</httpcore.version>
        <jackson.version>2.9.6</jackson.version>
        <jackson1.version>1.9.13</jackson1.version>
        <jaxb.api.version>2.1</jaxb.api.version>
        <jaxb.impl.version>2.1.14</jaxb.impl.version>
        <javassist.version>3.20.0-GA</javassist.version>
        <javax.cache.bundle.version>1.0.0_1</javax.cache.bundle.version>
        <javax.cache.tck.version>1.0.1</javax.cache.tck.version>
        <javax.cache.version>1.0.0</javax.cache.version>
        <jboss.rmi.version>1.0.6.Final</jboss.rmi.version>
        <jetbrains.annotations.version>16.0.3</jetbrains.annotations.version>
        <jetty.version>9.4.11.v20180605</jetty.version>
        <jmh.version>1.13</jmh.version>
        <jms.spec.version>1.1.1</jms.spec.version>
        <jna.version>4.5.2</jna.version>
        <jnr.posix.version>3.0.50</jnr.posix.version>
        <jotm.version>2.2.3</jotm.version>
        <jsch.bundle.version>0.1.54_1</jsch.bundle.version>
        <jsch.version>0.1.54</jsch.version>
        <jsonlib.bundle.version>2.4_1</jsonlib.bundle.version>
        <jsonlib.version>2.4</jsonlib.version>
        <jtidy.version>r938</jtidy.version>
        <kafka.version>2.0.1</kafka.version>
        <karaf.version>4.0.2</karaf.version>
        <log4j.version>2.11.0</log4j.version>
        <lucene.bundle.version>7.4.0_1</lucene.bundle.version>
        <lucene.version>7.4.0</lucene.version>
        <lz4.version>1.5.0</lz4.version>
        <maven.assembly.plugin.version>2.4</maven.assembly.plugin.version>
        <maven.bundle.plugin.version>3.5.0</maven.bundle.plugin.version>
        <maven.checkstyle.plugin.version>3.0.0</maven.checkstyle.plugin.version>
        <checkstyle.puppycrawl.version>8.19</checkstyle.puppycrawl.version>
        <mockito.version>1.10.19</mockito.version>
        <mysql.connector.version>8.0.13</mysql.connector.version>
        <netlibjava.version>1.1.2</netlibjava.version>
        <oro.bundle.version>2.0.8_6</oro.bundle.version>
        <osgi.core.version>5.0.0</osgi.core.version>
        <osgi.enterprise.version>5.0.0</osgi.enterprise.version>
        <paho.version>1.0.2</paho.version>
        <postgres.connector.version>42.2.5.jre7</postgres.connector.version>
        <rocketmq.version>4.4.0</rocketmq.version>
        <scala210.jline.version>2.10.7</scala210.jline.version>
        <scala210.library.version>2.10.7</scala210.library.version>
        <scala.library.version>2.11.12</scala.library.version>
        <scala.test.version>2.2.6</scala.test.version>
        <slf4j.version>1.7.7</slf4j.version>
        <slf4j16.version>1.6.4</slf4j16.version>
        <snappy.version>1.1.7.2</snappy.version>
        <spark.hadoop.version>2.6.5</spark.hadoop.version>
        <spark.version>2.3.0</spark.version>
        <spring.data.version>1.13.23.RELEASE</spring.data.version> <!-- don't forget to update spring version -->
        <spring.version>4.3.26.RELEASE</spring.version><!-- don't forget to update spring-data version -->
        <spring.data-2.0.version>2.0.13.RELEASE</spring.data-2.0.version> <!-- don't forget to update spring-5.0 version -->
        <spring-5.0.version>5.0.16.RELEASE</spring-5.0.version><!-- don't forget to update spring-data-2.0 version -->
        <spring.data-2.2.version>2.2.3.RELEASE</spring.data-2.2.version> <!-- don't forget to update spring-5.2 version -->
        <spring-5.2.version>5.2.3.RELEASE</spring-5.2.version><!-- don't forget to update spring-data-2.2 version -->
        <spring41.osgi.feature.version>4.1.7.RELEASE_1</spring41.osgi.feature.version>
        <spring-boot.version>2.2.2.RELEASE</spring-boot.version>
        <storm.version>1.1.1</storm.version>
        <tomcat.version>9.0.10</tomcat.version>
        <twitter.hbc.version>2.2.0</twitter.hbc.version>
        <yammer.metrics.annotation.version>2.2.0</yammer.metrics.annotation.version>
        <yammer.metrics.core.version>2.2.0</yammer.metrics.core.version>
        <yardstick.version>0.8.3</yardstick.version>
        <zkclient.version>0.5</zkclient.version>
        <zookeeper.version>3.5.5</zookeeper.version>
        <zstd.version>1.3.7-2</zstd.version>
        <opencensus.version>0.22.0</opencensus.version>
        <surefire.version>3.0.0-M4</surefire.version>
        <xstream.version>1.4.8</xstream.version>

        <!-- Maven plugins versions -->
        <maven.javadoc.plugin.version>2.10.4</maven.javadoc.plugin.version>

        <!-- OSGI Manifest generation default property values -->
        <osgi.import.package>*</osgi.import.package>
        <osgi.export.package>{local-packages}</osgi.export.package>
        <osgi.embed.transitive>false</osgi.embed.transitive>
        <osgi.fail.ok>false</osgi.fail.ok>

    </properties>

    <groupId>org.apache.ignite</groupId>
    <artifactId>ignite-extensions-parent</artifactId>
    <version>1</version>
    <packaging>pom</packaging>

    <url>http://ignite.apache.org</url>

    <description>Java-based middleware for in-memory processing of big data in a distributed environment.</description>

    <licenses>
        <license>
            <name>The Apache Software License, Version 2.0</name>
            <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
        </license>
    </licenses>

    <mailingLists>
        <mailingList>
            <name>Ignite Dev List</name>
            <subscribe>dev-subscribe@ignite.apache.org</subscribe>
            <unsubscribe>dev-unsubscribe@ignite.apache.org</unsubscribe>
            <post>dev@ignite.apache.org</post>
            <archive>http://mail-archives.apache.org/mod_mbox/ignite-dev</archive>
        </mailingList>
    </mailingLists>

    <issueManagement>
        <system>jira</system>
        <url>http://issues.apache.org/jira/browse/IGNITE</url>
    </issueManagement>

    <developers>
        <developer>
            <id>samaitra</id>
            <name>Saikat Maitra</name>
            <email>saikat dot maitra at gmail dot com</email>
        </developer>
    </developers>

    <repositories>
        <repository>
            <releases>
                <enabled>false</enabled>
            </releases>
            <snapshots>
                <enabled>true</enabled>
                <updatePolicy>always</updatePolicy>
                <checksumPolicy>ignore</checksumPolicy>
            </snapshots>
            <id>h2database.com</id>
            <name>Snapshot repository on h2database.com</name>
            <url>https://h2database.com/m2-repo</url>
            <layout>default</layout>
        </repository>
    </repositories>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>log4j</groupId>
                <artifactId>log4j</artifactId>
                <version>1.2.17</version>
                <exclusions>
                    <exclusion>
                        <groupId>com.sun.jdmk</groupId>
                        <artifactId>jmxtools</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>com.sun.jmx</groupId>
                        <artifactId>jmxri</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>org.javassist</groupId>
            <artifactId>javassist</artifactId>
            <version>${javassist.version}</version>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-jar-plugin</artifactId>
                    <configuration>
                        <useDefaultManifestFile>true</useDefaultManifestFile>
                    </configuration>
                </plugin>

                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-javadoc-plugin</artifactId>
                    <version>${maven.javadoc.plugin.version}</version>
                    <configuration>
                        <taglets>
                            <taglet>
                                <tagletClass>org.apache.ignite.tools.javadoc.IgniteLinkTaglet</tagletClass>
                                <tagletArtifact>
                                    <groupId>org.apache.ignite</groupId>
                                    <artifactId>ignite-tools</artifactId>
                                    <version>${ignite.version}</version>
                                </tagletArtifact>
                            </taglet>
                        </taglets>
                        <doctitle>Ignite ${ignite.version}</doctitle>
                        <windowtitle>Ignite ${ignite.version}</windowtitle>
                        <breakiterator>true</breakiterator>
                        <verbose>true</verbose>
                        <show>protected</show>
                        <use>true</use>
                        <author>false</author>
                        <version>false</version>
                        <additionalparam>${javadoc.opts}</additionalparam>
                        <links>
                            <link>https://hadoop.apache.org/docs/current/api/</link>
                        </links>
                        <groups>
                            <group>
                                <title>Common Grid APIs</title>
                                <packages>
                                    org.apache.ignite:org.apache.ignite.cluster:org.apache.ignite.lifecycle:org.apache.ignite.configuration:org.apache.ignite.spi:org.apache.ignite.lang:org.apache.ignite.resources:org.apache.ignite.thread:org.apache.ignite.scheduler
                                </packages>
                            </group>
                            <group>
                                <title>Messaging APIs</title>
                                <packages>org.apache.ignite.messaging</packages>
                            </group>
                            <group>
                                <title>Event Notification APIs</title>
                                <packages>org.apache.ignite.events</packages>
                            </group>
                            <group>
                                <title>Compute Grid APIs</title>
                                <packages>org.apache.ignite.compute*</packages>
                            </group>
                            <group>
                                <title>Data Grid APIs</title>
                                <packages>
                                    org.apache.ignite.cache*:org.apache.ignite.transactions:org.apache.ignite.datastructures:org.apache.ignite.dataload
                                </packages>
                            </group>
                            <group>
                                <title>Spring Integration</title>
                                <packages>org.apache.ignite.cache.spring:org.apache.ignite.transactions.spring</packages>
                            </group>
                            <group>
                                <title>Mesos Framework</title>
                                <packages>org.apache.ignite.mesos*</packages>
                            </group>
                            <group>
                                <title>Yarn Integration</title>
                                <packages>org.apache.ignite.yarn*</packages>
                            </group>
                            <group>
                                <title>Spark Integration</title>
                                <packages>org.apache.ignite.spark.examples.java</packages>
                            </group>
                            <group>
                                <title>OSGi integration</title>
                                <packages>org.apache.ignite.osgi*</packages>
                            </group>
                            <group>
                                <title>Flink Sink Integration</title>
                                <packages>org.apache.ignite.sink.flink*</packages>
                            </group>
                            <group>
                                <title>Flink Source Integration</title>
                                <packages>org.apache.ignite.source.flink*</packages>
                            </group>
                            <group>
                                <title>SpringData integration</title>
                                <packages>org.apache.ignite.springdata.repository*</packages>
                            </group>
                            <group>
                                <title>SpringData 2.0 integration</title>
                                <packages>org.apache.ignite.springdata20.repository*</packages>
                            </group>
                            <group>
                                <title>SpringData 2.2 integration</title>
                                <packages>org.apache.ignite.springdata22.repository*</packages>
                            </group>
                            <group>
                            <title>RocketMQ integration</title>
                                <packages>org.apache.ignite.stream.rocketmq*</packages>
                            </group>
                            <group>
                                <title>Pub/Sub integration</title>
                                <packages>org.apache.ignite.stream.pubsub.*</packages>
                            </group>
                            <group>
                                <title>Storm integration</title>
                                <packages>org.apache.ignite.stream.storm*</packages>
                            </group>
                            <group>
                                <title>Ignite Development Utils</title>
                                <packages>org.apache.ignite.development.utils*</packages>
                            </group>
                            <group>
                                <title>Spring Transactions Integration</title>
                                <packages>org.apache.ignite.transactions.spring*</packages>
                            </group>
                            <group>
                                <title>Spring Cache Integration</title>
                                <packages>org.apache.ignite.cache.spring*</packages>
                            </group>
                        </groups>
                        <bottom>
                            <![CDATA[
                                    <table width="100%" border="0" cellspacing=0 cellpadding=0 style="padding: 5px">
                                    <tr>
                                        <td>
                                            <table style="padding-left: 0; margin: 0">
                                                <tbody style="padding: 0; margin: 0">
                                                    <tr style="padding: 0; margin: 0">
                                                        <td>
                                                            <a target=_blank href="https://ignite.apache.org"><nobr>${current.year} Copyright &#169; Apache Software Foundation</nobr></a>
                                                        </td>
                                                    </tr>
                                                </tbody>
                                            </table>
                                        </td>
                                        <td width="100%" align="right" valign="center">
                                            <a href="https://twitter.com/ApacheIgnite" class="twitter-follow-button" data-show-count="false" data-size="large">Follow @ApacheIgnite</a>
                                        </td>
                                    </tr>
                                    <tr>
                                        <td colspan="2" valign="top" align="left">
                                            <table style="padding-left: 0; margin: 0">
                                                <tbody style="padding: 0; margin: 0">
                                                    <tr style="padding: 0; margin: 0">
                                                        <td>
                                                            <b>Ignite Database and Caching Platform</b>
                                                        </td>
                                                        <td>:&nbsp;&nbsp;
                                                            ver. <strong>${ignite.version}</strong>
                                                        </td>
                                                    </tr>
                                                    <tr style="padding: 0; margin: 0">
                                                        <td>
                                                            <b>Release Date</b>
                                                        </td>
                                                        <td>:&nbsp;&nbsp;
                                                            ${maven.build.timestamp}
                                                        </td>
                                                    </tr>
                                                </tbody>
                                            </table>
                                        </td>
                                    </tr>
                                    </table>
                                ]]>
                        </bottom>
                    </configuration>
                </plugin>

                <plugin>
                    <groupId>org.apache.felix</groupId>
                    <artifactId>maven-bundle-plugin</artifactId>
                    <version>${maven.bundle.plugin.version}</version>
                    <extensions>true</extensions>
                    <configuration>
                        <archive>
                            <addMavenDescriptor>true</addMavenDescriptor>
                        </archive>
                        <supportedProjectTypes>
                            <supportedProjectType>jar</supportedProjectType>
                            <supportedProjectType>war</supportedProjectType>
                        </supportedProjectTypes>
                        <instructions>
                            <Bundle-SymbolicName>${project.groupId}.${project.artifactId}</Bundle-SymbolicName>
                            <Bundle-Version>${project.version}</Bundle-Version>
                            <Bundle-Vendor>${project.organization.name}</Bundle-Vendor>
                            <Bundle-Description>${project.description}</Bundle-Description>
                            <Bundle-DocURL>${project.url}</Bundle-DocURL>
                            <Import-Package>
                                ${osgi.import.package}
                            </Import-Package>
                            <Export-Package>
                                ${osgi.export.package}
                            </Export-Package>
                            <Private-Package>
                                ${osgi.private.package}
                            </Private-Package>
                            <Embed-Dependency>${osgi.embed.dependency}</Embed-Dependency>
                            <Embed-Directory>lib</Embed-Directory>
                            <Embed-Transitive>${osgi.embed.transitive}</Embed-Transitive>
                            <_failok>${osgi.fail.ok}</_failok>
                            <_invalidfilenames/>
                        </instructions>
                    </configuration>
                    <executions>
                        <execution>
                            <id>bundle-manifest</id>
                            <phase>process-classes</phase>
                            <goals>
                                <goal>manifest</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>
                <plugin>
                    <artifactId>maven-assembly-plugin</artifactId>
                    <version>${maven.assembly.plugin.version}</version>
                </plugin>
            </plugins>
        </pluginManagement>

        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>${surefire.version}</version>
                <configuration>
                    <forkCount>0</forkCount>
                </configuration>
            </plugin>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-source-plugin</artifactId>
                <version>2.2.1</version>
                <executions>
                    <execution>
                        <id>source</id>
                        <goals>
                            <goal>jar-no-fork</goal>
                        </goals>
                        <phase>package</phase>
                        <configuration>
                            <excludeResources>true</excludeResources>
                        </configuration>
                    </execution>
                </executions>
            </plugin>

            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>flatten-maven-plugin</artifactId>
                <version>1.0.1</version>

                <configuration>
                    <flattenMode>minimum</flattenMode>
                    <flattenedPomFilename>pom-installed.xml</flattenedPomFilename>
                </configuration>

                <executions>
                    <!-- enable flattening -->
                    <execution>
                        <id>flatten</id>
                        <phase>process-resources</phase>
                        <goals>
                            <goal>flatten</goal>
                        </goals>
                    </execution>

                    <!-- ensure proper cleanup before start -->
                    <execution>
                        <id>flatten.clean.before</id>
                        <phase>clean</phase>
                        <goals>
                            <goal>clean</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>

            <!-- ensure proper cleanup after install -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-clean-plugin</artifactId>
                <inherited>false</inherited>
                <executions>
                    <execution>
                        <id>flatten.clean.after</id>
                        <phase>install</phase>
                        <goals>
                            <goal>clean</goal>
                        </goals>
                        <configuration>
                            <excludeDefaultDirectories>true</excludeDefaultDirectories>
                            <filesets>
                                <fileset>
                                    <directory>${project.basedir}</directory>
                                    <includes>
                                        <include>**/pom-installed.xml</include>
                                    </includes>
                                </fileset>
                            </filesets>
                        </configuration>
                    </execution>
                </executions>
            </plugin>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-install-plugin</artifactId>
                <version>2.5.2</version>
                <inherited>false</inherited>
                <configuration>
                    <skip>true</skip>
                </configuration>
            </plugin>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-deploy-plugin</artifactId>
                <version>2.8.2</version>
                <inherited>false</inherited>
                <configuration>
                    <skip>true</skip>
                </configuration>
            </plugin>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-enforcer-plugin</artifactId>
                <version>3.0.0-M2</version>
                <configuration>
                    <rules>
                        <requireJavaVersion>
                            <!--Detected JDK Version: 1.8.0 is not in the allowed range [1.7,1.8),[1.8.0-40,).-->
                            <message>
[INFO] ------------------------------------------------------------------------
[ERROR] You are trying to compile Apache Ignite with inappropriate JDK version!
[ERROR] Detected JDK Version: ${java.runtime.version}
[ERROR] JDK version should be >= 1.8.0-u40.
                            </message>
                            <version>[1.8.0-40,)</version>
                        </requireJavaVersion>
                    </rules>
                </configuration>
                <executions>
                    <execution>
                        <goals>
                            <goal>enforce</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-javadoc-plugin</artifactId>
                <executions>
                    <execution>
                        <id>module-javadoc</id>
                        <goals>
                            <goal>jar</goal>
                        </goals>
                        <phase>package</phase>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

    <profiles>
        <profile>
            <id>checkstyle</id>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-checkstyle-plugin</artifactId>
                        <version>${maven.checkstyle.plugin.version}</version>
                        <executions>
                            <execution>
                                <id>style</id>
                                <goals>
                                    <goal>check</goal>
                                </goals>
                                <phase>validate</phase>
                                <configuration>
                                    <consoleOutput>true</consoleOutput>
                                    <logViolationsToConsole>true</logViolationsToConsole>
                                    <failsOnError>true</failsOnError>
                                    <failOnViolation>true</failOnViolation>
                                    <outputFile>${project.build.directory}/checkstyle-result.xml</outputFile>
                                    <configLocation>../checkstyle/checkstyle.xml</configLocation>
                                    <suppressionsLocation>../checkstyle/checkstyle-suppressions.xml</suppressionsLocation>
                                    <includeTestSourceDirectory>true</includeTestSourceDirectory>
                                </configuration>
                            </execution>
                        </executions>
                        <dependencies>
                            <dependency>
                                <groupId>com.puppycrawl.tools</groupId>
                                <artifactId>checkstyle</artifactId>
                                <version>${checkstyle.puppycrawl.version}</version>
                            </dependency>
                        </dependencies>
                    </plugin>
                </plugins>
            </build>
        </profile>

        <profile>
            <id>check-licenses</id>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.rat</groupId>
                        <artifactId>apache-rat-plugin</artifactId>
                        <version>0.12</version>
                        <configuration>
                            <addDefaultLicenseMatchers>false</addDefaultLicenseMatchers>
                            <licenses>
                                <license implementation="org.apache.rat.analysis.license.FullTextMatchingLicense">
                                    <licenseFamilyCategory>IAL20</licenseFamilyCategory>
                                    <licenseFamilyName>Ignite Apache License 2.0</licenseFamilyName>
                                    <fullText>
                                        Licensed to the Apache Software Foundation (ASF) under one or more
                                        contributor license agreements.  See the NOTICE file distributed with
                                        this work for additional information regarding copyright ownership.
                                        The ASF licenses this file to You under the Apache License, Version 2.0
                                        (the "License"); you may not use this file except in compliance with
                                        the License.  You may obtain a copy of the License at

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

                                        Unless required by applicable law or agreed to in writing, software
                                        distributed under the License is distributed on an "AS IS" BASIS,
                                        WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
                                        See the License for the specific language governing permissions and
                                        limitations under the License.
                                    </fullText>
                                </license>
                            </licenses>
                            <licenseFamilies>
                                <licenseFamily implementation="org.apache.rat.license.SimpleLicenseFamily">
                                    <familyName>Ignite Apache License 2.0</familyName>
                                </licenseFamily>
                            </licenseFamilies>
                        </configuration>
                        <executions>
                            <execution>
                                <phase>validate</phase>
                                <goals>
                                    <goal>check</goal>
                                </goals>
                                <configuration>
                                    <excludes>
                                        <exclude>work/**</exclude>
                                        <exclude>**/target/**</exclude>
                                        <exclude>**/*.log</exclude>
                                        <exclude>**/*.m4</exclude><!--Free Software Foundation notice-->
                                        <exclude>**/*.dylib</exclude><!--bin-files-->
                                        <exclude>**/*.gar</exclude><!--bin-files-->
                                        <exclude>**/licenses/*.txt</exclude><!--files of licenses-->
                                        <exclude>**/*readme*.txt</exclude><!--readme files-->
                                        <exclude>**/*.sql</exclude><!--sql files-->
                                        <exclude>**/*README*.txt</exclude><!--readme files-->
                                        <exclude>**/*README*.md</exclude><!--readme files-->
                                        <exclude>**/*CONTRIBUTING*.md</exclude><!--readme files-->
                                        <exclude>**/*index*.md</exclude><!--readme files-->
                                        <exclude>**/*.timestamp</exclude><!--tmp-files-->
                                        <exclude>**/*.iml</exclude><!--IDEA files-->
                                        <exclude>**/*.csv</exclude><!--CSV files-->
                                        <exclude>**/*.jks</exclude><!--bin-files-->
                                        <exclude>**/pom-installed.xml</exclude><!--tmp-files-->
                                        <exclude>**/keystore</exclude><!--bin-files-->
                                        <exclude>**/keystore/*.jks</exclude><!--bin-files-->
                                        <exclude>**/keystore/*.pem</exclude><!--auto generated files-->
                                        <exclude>**/keystore/*.pfx</exclude><!--bin-files-->
                                        <exclude>**/keystore/ca/*.jks</exclude><!--bin-files-->
                                        <exclude>**/keystore/ca/*.key</exclude><!--bin-files-->
                                        <exclude>**/keystore/ca/*.txt</exclude><!--auto generated files-->
                                        <exclude>**/keystore/ca/*.txt.attr</exclude><!--auto generated files-->
                                        <exclude>**/keystore/ca/*serial</exclude><!--auto generated files-->
                                        <exclude>**/META-INF/services/**</exclude> <!-- Interface mappings: cannot be changed -->
                                        <!-- spring data 2.X modules, borrowed code from spring-jpa 5.2.0, Apache 2.0 licenses -->
                                        <exclude>src/main/java/org/apache/ignite/springdata2*/repository/query/QueryUtils.java</exclude>
                                        <exclude>src/main/java/org/apache/ignite/springdata2*/repository/query/EmptyDeclaredQuery.java</exclude>
                                        <exclude>src/main/java/org/apache/ignite/springdata2*/repository/query/ExpressionBasedStringQuery.java</exclude>
                                        <exclude>src/main/java/org/apache/ignite/springdata2*/repository/query/spel/SpelEvaluator.java</exclude>
                                        <exclude>src/main/java/org/apache/ignite/springdata2*/repository/query/spel/SpelQueryContext.java</exclude>
                                        <exclude>src/main/java/org/apache/ignite/springdata2*/repository/query/DeclaredQuery.java</exclude>
                                        <exclude>src/main/java/org/apache/ignite/springdata2*/repository/query/StringQuery.java</exclude>
                                        <!--special excludes-->
                                        <exclude>idea/ignite_codeStyle.xml</exclude>
                                        <exclude>**/DEVNOTES*.txt</exclude>
                                        <exclude>**/NOTICE*</exclude>
                                        <exclude>**/LICENSE*</exclude>
                                        <exclude>**/MIGRATION_GUIDE*</exclude>
                                        <exclude>src/main/java/org/apache/ignite/internal/util/offheap/unsafe/GridOffHeapSnapTreeMap.java</exclude><!--BSD license-->
                                        <exclude>src/main/java/org/apache/ignite/internal/util/nio/SelectedSelectionKeySet.java</exclude><!-- Apache 2.0 license -->
                                        <exclude>src/main/java/org/apache/ignite/internal/util/snaptree/*.java</exclude><!--BSD license-->
                                        <exclude>src/main/java/org/jsr166/*.java</exclude>
                                        <exclude>src/main/java/org/mindrot/*.java</exclude>
                                        <exclude>src/test/java/org/apache/ignite/p2p/p2p.properties</exclude><!--test depends on file content-->
                                        <exclude>src/test/resources/org.apache.ignite.util/control.sh_cache_help.output</exclude><!--test depends on file content-->
                                        <exclude>src/test/resources/org.apache.ignite.util/control.sh_help.output</exclude><!--test depends on file content-->
                                        <exclude>src/test/resources/log/ignite.log.tst</exclude><!--test resource-->
                                        <exclude>src/test/java/org/apache/ignite/spi/deployment/uri/META-INF/ignite.incorrefs</exclude><!--test resource-->
                                        <exclude>src/test/java/org/apache/ignite/spi/deployment/uri/META-INF/ignite.empty</exclude><!--should be empty-->
                                        <exclude>src/test/java/org/apache/ignite/spi/deployment/uri/META-INF/ignite.brokenxml</exclude><!--test resource-->
                                        <exclude>**/books/*.txt</exclude><!--books examples-->
                                        <exclude>src/main/java/org/apache/ignite/examples/streaming/wordcount/*.txt</exclude><!--books examples-->
                                        <exclude>examples/src/main/java/org/apache/ignite/examples/streaming/wordcount/*.txt</exclude><!--books examples-->
                                        <exclude>**/resources/datasets/**/*</exclude><!--Datasets in ml module-->
                                        <exclude>**/resources/models/**/*</exclude><!--Pre-trained ml models-->
                                        <exclude>src/main/java/org/jetbrains/annotations/*.java</exclude><!--copyright-->
                                        <exclude>dev-tools/IGNITE-*.patch</exclude>
                                        <exclude>dev-tools/.gradle/**/*</exclude>
                                        <exclude>dev-tools/gradle/wrapper/**/*</exclude>
                                        <exclude>dev-tools/gradlew</exclude>
                                        <exclude>src/test/binaries/repo/org/apache/ignite/binary/test2/1.1/test2-1.1.pom</exclude>
                                        <exclude>src/test/binaries/repo/org/apache/ignite/binary/test2/maven-metadata-local.xml</exclude>
                                        <exclude>src/test/binaries/repo/org/apache/ignite/binary/test1/1.1/test1-1.1.pom</exclude>
                                        <exclude>src/test/binaries/repo/org/apache/ignite/binary/test1/maven-metadata-local.xml</exclude>
                                        <exclude>src/test/resources/org/apache/ignite/internal/managers/discovery/Wrapper.ser</exclude>
                                        <!--shmem-->
                                        <exclude>ipc/shmem/**/Makefile.in</exclude><!--auto generated files-->
                                        <exclude>ipc/shmem/**/Makefile</exclude><!--auto generated files-->
                                        <exclude>ipc/shmem/compile</exclude><!--generated by Autoconf and licensed under AL-->
                                        <exclude>ipc/shmem/config.guess</exclude><!--generated by Autoconf and licensed under AL-->
                                        <exclude>ipc/shmem/config.sub</exclude><!--generated by Autoconf and licensed under AL-->
                                        <exclude>ipc/shmem/configure</exclude><!--free software-->
                                        <exclude>ipc/shmem/config.h.in</exclude><!--auto generated-->
                                        <exclude>ipc/shmem/configure.ac</exclude><!--cannot be changed-->
                                        <exclude>ipc/shmem/ltmain.sh</exclude><!--generated by Autoconf and licensed under AL-->
                                        <exclude>ipc/shmem/install-sh</exclude><!--free license-->
                                        <exclude>ipc/shmem/depcomp</exclude><!--generated by Autoconf and licensed under AL-->
                                        <exclude>ipc/shmem/config.status</exclude><!--auto generated-->
                                        <exclude>ipc/shmem/libtool</exclude><!--auto generated-->
                                        <exclude>ipc/shmem/missing</exclude><!--generated by Autoconf and licensed under AL-->
                                        <exclude>ipc/shmem/stamp-h1</exclude><!--tmp timestamp-->
                                        <exclude>ipc/shmem/ltmain.sh</exclude><!--tmp (not under VCS)-->
                                        <exclude>ipc/shmem/include/org_apache_ignite_internal_util_ipc_shmem_IpcSharedMemoryUtils.h</exclude><!--auto generated files-->
                                        <exclude>ipc/shmem/igniteshmem/.libs/*</exclude><!--tmp files-->
                                        <exclude>ipc/shmem/igniteshmem/.deps/*</exclude><!--tmp files-->
                                        <exclude>ipc/shmem/igniteshmem/libigniteshmem.la</exclude><!--tmp (not under VCS)-->
                                        <exclude>ipc/shmem/igniteshmem/libigniteshmem_la-org_apache_ignite_internal_util_ipc_shmem_IpcSharedMemoryUtils.lo</exclude><!--tmp (not under VCS)-->
                                        <!--platforms-->
                                        <exclude>src/test/binaries/repo/org/apache/ignite/binary/test1/1.1/test1-1.1.jar</exclude>
                                        <exclude>src/test/binaries/repo/org/apache/ignite/binary/test2/1.1/test2-1.1.jar</exclude>
                                        <exclude>**/Makefile.am</exclude>
                                        <exclude>**/configure.ac</exclude>
                                        <exclude>**/Makefile.amrel</exclude>
                                        <exclude>**/configure.acrel</exclude>
                                        <exclude>**/*.pc.in</exclude>
                                        <exclude>**/*.sln</exclude>
                                        <exclude>**/*.snk</exclude>
                                        <exclude>**/*.slnrel</exclude>
                                        <exclude>**/*.ini</exclude>
                                        <exclude>**/*.DotSettings</exclude>
                                        <exclude>**/*.FxCop</exclude>
                                        <exclude>**/*.ruleset</exclude>
                                        <exclude>**/*.csproj</exclude>
                                        <exclude>**/*.ndproj</exclude>
                                        <exclude>**/*.csprojrel</exclude>
                                        <exclude>**/*.vcxproj</exclude>
                                        <exclude>**/*.vcxprojrel</exclude>
                                        <exclude>**/*.vcxproj.filters</exclude>
                                        <exclude>**/mkbuild.cmd</exclude>
                                        <exclude>**/module.def</exclude>
                                        <exclude>**/*.fxcop</exclude>
                                        <exclude>**/*.ruleset</exclude>
                                        <exclude>**/*.metaproj</exclude>
                                        <exclude>**/*.metaproj.tmp</exclude>
                                        <exclude>**/*.nunit</exclude>
                                        <exclude>**/teamcity_boost.cpp</exclude>
                                        <exclude>**/teamcity_messages.h</exclude>
                                        <exclude>**/teamcity_messages.cpp</exclude>
                                        <exclude>**/project/vs/**</exclude>
                                        <exclude>**/obj/x64/**</exclude>
                                        <exclude>**/obj/x86/**</exclude>
                                        <exclude>**/bin/x64/**</exclude>
                                        <exclude>**/bin/x86/**</exclude>
                                        <exclude>**/*.dxg</exclude>
                                        <exclude>**/*.cmd</exclude>
                                        <exclude>**/*.ps1</exclude>
                                        <exclude>**/*.json</exclude>
                                        <exclude>**/.dockerignore</exclude>
                                        <exclude>modules/platforms/nodejs/examples/certs/client.crt</exclude>
                                        <exclude>modules/platforms/nodejs/examples/certs/ca.crt</exclude>
                                        <exclude>modules/platforms/nodejs/examples/certs/client.key</exclude>
                                        <exclude>modules/platforms/nodejs/api_spec/**</exclude>
                                        <exclude>modules/platforms/python/**/*.md</exclude><!--markdown can not be commented-->
                                        <exclude>modules/platforms/python/docs/Makefile</exclude><!--sphinx files: BSD license-->
                                        <exclude>modules/platforms/python/docs/conf.py</exclude><!--sphinx files: BSD license-->
                                        <exclude>modules/platforms/python/docs/source/**/*.rst</exclude><!--sphinx-apidoc generated files-->
                                        <exclude>modules/platforms/python/requirements/**/*.txt</exclude><!--plain text can not be commented-->
                                        <!--web console-->
                                        <exclude>**/web-console/**/.eslintrc</exclude>
                                        <exclude>**/web-console/**/.babelrc</exclude>
                                        <exclude>**/web-console/**/*.json</exclude>
                                        <exclude>**/web-console/**/*.json.sample</exclude>
                                        <exclude>**/web-console/backend/build/**</exclude>
                                        <exclude>**/web-console/backend/node_modules/**</exclude>
                                        <exclude>**/web-console/e2e/testcafe/node_modules/**</exclude>
                                        <exclude>**/web-console/frontend/build/**</exclude>
                                        <exclude>**/web-console/frontend/node_modules/**</exclude>
                                        <exclude>**/web-console/frontend/**/*.png</exclude>
                                        <exclude>**/web-console/frontend/**/*.svg</exclude>
                                        <!--Packaging -->
                                        <exclude>packaging/**</exclude>
                                        <!--Performance statistics report libraries. -->
                                        <exclude>report/libs/**</exclude>
                                    </excludes>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>

        <profile>
            <id>surefire-fork-count-1</id>
            <activation>
                <property>
                    <!-- To activate this profile set the following property. -->
                    <name>FORK_COUNT_SET_TO_1</name>
                </property>
            </activation>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-surefire-plugin</artifactId>
                        <version>${surefire.version}</version>
                        <configuration>
                            <forkCount>1</forkCount>
                        </configuration>
                    </plugin>
                </plugins>
            </build>
        </profile>

        <profile>
            <id>java-9+</id>
            <activation>
                <jdk>[1.9,)</jdk>
            </activation>
            <properties>
                <maven.compiler.source>1.8</maven.compiler.source>
                <maven.compiler.target>11</maven.compiler.target>
                <scala.library.version>2.12.6</scala.library.version>
            </properties>
            <dependencies/>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-compiler-plugin</artifactId>
                        <version>3.7.0</version>
                        <configuration>
                            <compilerArgs>
                                <arg>--add-exports</arg>
                                <arg>java.base/jdk.internal.misc=ALL-UNNAMED</arg>
                                <arg>--add-exports</arg>
                                <arg>java.base/sun.nio.ch=ALL-UNNAMED</arg>
                                <arg>--add-exports</arg>
                                <arg>java.management/com.sun.jmx.mbeanserver=ALL-UNNAMED</arg>
                                <arg>--add-exports</arg>
                                <arg>jdk.internal.jvmstat/sun.jvmstat.monitor=ALL-UNNAMED</arg>
                            </compilerArgs>
                        </configuration>
                    </plugin>

                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-surefire-plugin</artifactId>
                        <configuration>
                            <argLine>--add-exports=java.base/jdk.internal.misc=ALL-UNNAMED --add-exports=java.base/sun.nio.ch=ALL-UNNAMED --add-exports=java.management/com.sun.jmx.mbeanserver=ALL-UNNAMED --add-exports=jdk.internal.jvmstat/sun.jvmstat.monitor=ALL-UNNAMED --add-exports=java.base/sun.reflect.generics.reflectiveObjects=ALL-UNNAMED --illegal-access=permit</argLine>
                        </configuration>
                    </plugin>
                </plugins>
            </build>
        </profile>

        <profile>
            <id>tools.jar-default</id>
            <activation>
                <file>
                    <exists>${java.home}/../lib/tools.jar</exists>
                </file>
            </activation>
            <dependencies>
                <dependency>
                    <groupId>com.sun</groupId>
                    <artifactId>tools</artifactId>
                    <scope>system</scope>
                    <version>${java.version}</version>
                    <systemPath>${java.home}/../lib/tools.jar</systemPath>
                </dependency>
            </dependencies>
        </profile>

        <profile>
            <id>tools.jar-mac</id>
            <activation>
                <file>
                    <exists>${java.home}/../Classes/classes.jar</exists>
                </file>
            </activation>
            <dependencies>
                <dependency>
                    <groupId>com.sun</groupId>
                    <artifactId>tools</artifactId>
                    <scope>system</scope>
                    <version>${java.version}</version>
                    <systemPath>${java.home}/../Classes/classes.jar</systemPath>
                </dependency>
            </dependencies>
        </profile>

        <profile>
            <id>licenses</id>

            <dependencies>
                <dependency>
                    <groupId>org.apache.ignite</groupId>
                    <artifactId>ignite-apache-license-gen</artifactId>
                    <version>${ignite.version}</version>
                    <scope>test</scope><!-- hack to have ignite-apache-license-gen at first place at mvn reactor -->
                </dependency>
            </dependencies>

            <build>
                <plugins>
                    <plugin><!-- generates dependencies licenses -->
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-remote-resources-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>ignite-dependencies</id>
                                <goals>
                                    <goal>process</goal>
                                </goals>
                                <configuration>
                                    <resourceBundles>
                                        <resourceBundle>org.apache.ignite:ignite-apache-license-gen:${ignite.version}
                                        </resourceBundle>
                                    </resourceBundles>
                                    <excludeTransitive>true</excludeTransitive>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>

                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-antrun-plugin</artifactId>
                        <version>1.7</version>
                        <executions>
                            <execution>
                                <id>licenses-file-rename</id>
                                <goals>
                                    <goal>run</goal>
                                </goals>
                                <phase>compile</phase>
                                <configuration>
                                    <target>
                                        <!-- moving licenses generated by "ignite-dependencies" -->
                                        <move file="${basedir}/target/classes/META-INF/licenses.txt" tofile="${basedir}/target/licenses/${project.artifactId}-licenses.txt"/>
                                    </target>
                                    <failOnError>false</failOnError>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
        <profile>
            <id>m2e</id>
            <!--This profile is activated when eclipse interacts with maven (using m2e).-->
            <activation>
                <property>
                    <name>m2e.version</name>
                </property>
            </activation>
            <build>
                <plugins>
                    <plugin>
                        <!--eclipse do not support duplicated package-info.java, in both src and test.-->
                        <artifactId>maven-compiler-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>default-testCompile</id>
                                <phase>test-compile</phase>
                                <configuration>
                                    <testExcludes>
                                        <exclude>**/package-info.java</exclude>
                                    </testExcludes>
                                </configuration>
                                <goals>
                                    <goal>testCompile</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
                <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.maven.plugins</groupId>
                                                <artifactId>maven-antrun-plugin</artifactId>
                                                <versionRange>[1.7,)</versionRange>
                                                <goals>
                                                    <goal>run</goal>
                                                    <goal>properties-augmentation</goal>
                                                    <goal>licenses-file-rename</goal>
                                                </goals>
                                            </pluginExecutionFilter>
                                            <action>
                                                <ignore></ignore>
                                            </action>
                                        </pluginExecution>
                                        <pluginExecution>
                                            <pluginExecutionFilter>
                                                <groupId>org.codehaus.mojo</groupId>
                                                <artifactId>flatten-maven-plugin</artifactId>
                                                <versionRange>1.0.1</versionRange>
                                                <goals>
                                                    <goal>flatten</goal>
                                                </goals>
                                            </pluginExecutionFilter>
                                            <action>
                                                <ignore></ignore>
                                            </action>
                                        </pluginExecution>
                                        <pluginExecution>
                                            <pluginExecutionFilter>
                                                <groupId>org.codehaus.mojo</groupId>
                                                <artifactId>exec-maven-plugin</artifactId>
                                                <versionRange>[1.3.2,)</versionRange>
                                                <goals>
                                                    <goal>java</goal>
                                                    <goal>default</goal>
                                                </goals>
                                            </pluginExecutionFilter>
                                            <action>
                                                <ignore></ignore>
                                            </action>
                                        </pluginExecution>
                                    </pluginExecutions>
                                </lifecycleMappingMetadata>
                            </configuration>
                        </plugin>
                    </plugins>
                </pluginManagement>
            </build>
        </profile>
    </profiles>
</project>
