<?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.edition>fabric</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>
        <aws.sdk.bundle.version>1.10.12_1</aws.sdk.bundle.version>
        <aws.sdk.version>1.11.75</aws.sdk.version>
        <camel.version>2.16.0</camel.version>
        <commons.beanutils.bundle.version>1.8.3_1</commons.beanutils.bundle.version>
        <commons.beanutils.version>1.8.3</commons.beanutils.version>
        <commons.codec.version>1.6</commons.codec.version>
        <commons.collections.version>3.2.2</commons.collections.version>
        <commons.lang.version>2.6</commons.lang.version>
        <cron4j.version>2.2.5</cron4j.version>
        <curator.version>2.9.1</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>18.0</guava.version>
        <guava14.version>14.0.1</guava14.version>
        <guava16.version>16.0.1</guava16.version>
        <h2.version>1.4.195</h2.version>
        <hadoop.version>2.4.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>1.9.13</jackson.version>
        <jackson2.version>2.6.5</jackson2.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>
        <jetbrains.annotations.version>13.0</jetbrains.annotations.version>
        <jetty.version>9.2.11.v20150529</jetty.version>
        <jmh.version>1.13</jmh.version>
        <jms.spec.version>1.1.1</jms.spec.version>
        <jsch.bundle.version>0.1.53_1</jsch.bundle.version>
        <jsch.version>0.1.53</jsch.version>
        <jsonlib.bundle.version>2.4_1</jsonlib.bundle.version>
        <jsonlib.version>2.4</jsonlib.version>
        <jtidy.version>r938</jtidy.version>
        <kafka.version>0.10.0.1</kafka.version>
        <karaf.version>4.0.2</karaf.version>
        <log4j.version>2.8.1</log4j.version>
        <lucene.bundle.version>5.5.2_1</lucene.bundle.version>
        <lucene.version>5.5.2</lucene.version>
        <maven.bundle.plugin.version>3.5.0</maven.bundle.plugin.version>
        <mockito.version>1.10.19</mockito.version>
        <mysql.connector.version>5.1.39</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>9.4.1208.jre7</postgres.connector.version>
        <rocketmq.version>4.2.0</rocketmq.version>
        <scala210.jline.version>2.10.4</scala210.jline.version>
        <scala210.library.version>2.10.6</scala210.library.version>
        <scala.library.version>2.11.8</scala.library.version>
        <slf4j.version>1.7.7</slf4j.version>
        <slf4j16.version>1.6.4</slf4j16.version>
        <spark.hadoop.version>2.6.5</spark.hadoop.version>
        <spark.version>2.2.0</spark.version>
        <spring.data.version>1.13.1.RELEASE</spring.data.version> <!-- don't forget to update spring version -->
        <spring.version>4.3.7.RELEASE</spring.version> <!-- don't forget to update spring-data version -->
        <spring41.osgi.feature.version>4.1.7.RELEASE_1</spring41.osgi.feature.version>
        <tomcat.version>8.0.23</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.4.6</zookeeper.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-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>dsetrakyan</id>
            <name>Dmitriy Setrakyan</name>
            <email>dsetrakyan at apache dot org</email>
        </developer>
        <developer>
            <id>agoncharuk</id>
            <name>Alexey Goncharuk</name>
            <email>agoncharuk at apache dot org</email>
        </developer>
        <developer>
            <id>vkulichenko</id>
            <name>Valentin Kulichenko</name>
            <email>vkulichenko at apache dot org</email>
        </developer>
        <developer>
            <id>svladykin</id>
            <name>Sergi Vladykin</name>
            <email>sergi dot vladykin at gmail dot com</email>
        </developer>
        <developer>
            <id>yzhdanov</id>
            <name>Yakov Zhdanov</name>
            <email>yzhdanov at apache dot org</email>
        </developer>
        <developer>
            <id>sboikov</id>
            <name>Semyon Boikov</name>
            <email>sboikov at gridgain dot com</email>
        </developer>
        <developer>
            <id>vozerov</id>
            <name>Vladimir Ozerov</name>
            <email>vozerov at gridgain 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>http://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.11</version>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>net.alchim31.maven</groupId>
                    <artifactId>scala-maven-plugin</artifactId>
                    <version>3.2.0</version>
                    <configuration>
                        <jvmArgs>
                            <jvmArg>-Xms512m</jvmArg>
                            <jvmArg>-Xmx1024m</jvmArg>
                        </jvmArgs>
                    </configuration>
                    <executions>
                        <execution>
                            <id>scala-compile-first</id>
                            <phase>process-resources</phase>
                            <goals>
                                <goal>add-source</goal>
                                <goal>compile</goal>
                            </goals>
                        </execution>
                        <execution>
                            <id>scala-test-compile</id>
                            <phase>process-test-resources</phase>
                            <goals>
                                <goal>testCompile</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>

                <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>2.10.1</version>
                    <configuration>
                        <taglets>
                            <taglet>
                                <tagletClass>org.apache.ignite.tools.javadoc.IgniteLinkTaglet</tagletClass>
                                <tagletArtifact>
                                    <groupId>org.apache.ignite</groupId>
                                    <artifactId>ignite-tools</artifactId>
                                    <version>${project.version}</version>
                                </tagletArtifact>
                            </taglet>
                        </taglets>
                        <doctitle>Ignite ${project.version}</doctitle>
                        <windowtitle>Ignite ${project.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>http://docs.oracle.com/javase/7/docs/api/</link>
                            <link>http://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>Service Grid APIs</title>
                                <packages>org.apache.ignite.services</packages>
                            </group>
                            <group>
                                <title>File System APIs</title>
                                <packages>org.apache.ignite.igfs*</packages>
                            </group>
                            <group>
                                <title>Hadoop Accelerator APIs</title>
                                <packages>org.apache.ignite.hadoop*</packages>
                            </group>
                            <group>
                                <title>Streaming APIs</title>
                                <packages>org.apache.ignite.streamer*::org.apache.ignite.stream*</packages>
                            </group>
                            <group>
                                <title>Security APIs</title>
                                <packages>org.apache.ignite.plugin.security:org.apache.ignite.ssl</packages>
                            </group>
                            <group>
                                <title>MXBeans classes</title>
                                <packages>org.apache.ignite.mbean:org.apache.ignite.mxbean</packages>
                            </group>
                            <group>
                                <title>SPI: CheckPoint</title>
                                <packages>org.apache.ignite.spi.checkpoint*</packages>
                            </group>
                            <group>
                                <title>SPI: Collision</title>
                                <packages>org.apache.ignite.spi.collision*</packages>
                            </group>
                            <group>
                                <title>SPI: Indexing</title>
                                <packages>org.apache.ignite.spi.indexing*</packages>
                            </group>
                            <group>
                                <title>SPI: Load Balancing</title>
                                <packages>org.apache.ignite.spi.loadbalancing*</packages>
                            </group>
                            <group>
                                <title>SPI: Communication</title>
                                <packages>org.apache.ignite.spi.communication*</packages>
                            </group>
                            <group>
                                <title>SPI: Deployment</title>
                                <packages>org.apache.ignite.spi.deployment*</packages>
                            </group>
                            <group>
                                <title>SPI: Swap Space</title>
                                <packages>org.apache.ignite.spi.swapspace*</packages>
                            </group>
                            <group>
                                <title>SPI: Discovery</title>
                                <packages>org.apache.ignite.spi.discovery*</packages>
                            </group>
                            <group>
                                <title>SPI: Failover</title>
                                <packages>org.apache.ignite.spi.failover*</packages>
                            </group>
                            <group>
                                <title>SPI: Event Storage</title>
                                <packages>org.apache.ignite.spi.eventstorage*</packages>
                            </group>
                            <group>
                                <title>Segmentation Detection</title>
                                <packages>org.apache.ignite.plugin.segmentation</packages>
                            </group>
                            <group>
                                <title>Ignite plugin API</title>
                                <packages>org.apache.ignite.plugin*</packages>
                            </group>
                            <group>
                                <title>Logging</title>
                                <packages>org.apache.ignite.logger*</packages>
                            </group>
                            <group>
                                <title>Loaders</title>
                                <packages>org.apache.ignite.startup*</packages>
                            </group>
                            <group>
                                <title>Marshallers</title>
                                <packages>org.apache.ignite.marshaller*</packages>
                            </group>
                            <group>
                                <title>Ignite Binary Objects API</title>
                                <packages>org.apache.ignite.binary*</packages>
                            </group>
                            <group>
                                <title>Visor Plugins</title>
                                <packages>org.apache.ignite.visor.plugin</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>Platforms</title>
                                <packages>org.apache.ignite.platform*</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 integration</title>
                                <packages>org.apache.ignite.sink.flink*</packages>
                            </group>
                            <group>
                                <title>SpringData integration</title>
                                <packages>org.apache.ignite.springdata.repository*</packages>
                            </group>
                            <group>
                                <title>RocketMQ integration</title>
                                <packages>org.apache.ignite.rocketmq*</packages>
                            </group>
                            <group>
                                <title>Ignite Development Utils</title>
                                <packages>org.apache.ignite.development.utils*</packages>
                            </group>
                            <group>
                                <title>Ignite ML</title>
                                <packages>org.apache.ignite.ml*</packages>
                            </group>
                        </groups>
                        <header>
                            <![CDATA[
                                    Ignite - In-Memory Data Fabric
                                ]]>
                        </header>
                        <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>2018 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 Fabric</b>
                                                        </td>
                                                        <td>:&nbsp;&nbsp;
                                                            ver. <strong>${project.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>
            </plugins>
        </pluginManagement>

        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>2.20.1</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.0-beta-3</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>1.4</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.7.0-* or >= 1.8.0-u40.
                            </message>
                            <version>[1.7,1.8),[1.8.0-40,)</version>
                        </requireJavaVersion>
                    </rules>
                </configuration>
                <executions>
                    <execution>
                        <goals>
                            <goal>enforce</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>

            <plugin>
                <artifactId>maven-dependency-plugin</artifactId>
                <executions>
                    <execution>
                        <id>copy-libs</id>
                        <phase>test-compile</phase>
                        <goals>
                            <goal>copy-dependencies</goal>
                        </goals>
                        <configuration>
                            <excludeGroupIds>org.apache.ignite</excludeGroupIds>
                            <outputDirectory>target/libs</outputDirectory>
                            <includeScope>runtime</includeScope>
                            <excludeTransitive>true</excludeTransitive>
                        </configuration>
                    </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>
                        <configuration>
                            <stylesheetfile>
                                ${project.basedir}/${project.parent.relativePath}/../assembly/docfiles/javadoc.css
                            </stylesheetfile>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

    <profiles>
        <profile>
            <id>check-licenses</id>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.rat</groupId>
                        <artifactId>apache-rat-plugin</artifactId>
                        <version>0.11</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>**/*index*.md</exclude><!--readme files-->
                                        <exclude>**/*.timestamp</exclude><!--tmp-files-->
                                        <exclude>**/*.iml</exclude><!--IDEA files-->
                                        <exclude>**/pom-installed.xml</exclude><!--tmp-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 -->
                                        <!--special excludes-->
                                        <exclude>idea/ignite_codeStyle.xml</exclude>
                                        <exclude>**/DEVNOTES*.txt</exclude>
                                        <exclude>**/NOTICE*</exclude>
                                        <exclude>**/LICENSE*</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/test/java/org/apache/ignite/p2p/p2p.properties</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>src/main/resources/person.csv</exclude><!--CacheLoadOnlyStoreExample csv-->
                                        <exclude>**/resources/datasets/knn/*</exclude><!--Dataset examples in ml module-->
                                        <exclude>**/resources/datasets/regression/*</exclude><!--Dataset examples in ml module-->
                                        <exclude>**/ml/knn/datasets/*</exclude><!--Datasets for ML KNN in examples module-->
                                        <exclude>examples/src/main/resources/person.csv</exclude><!--CacheLoadOnlyStoreExample csv-->
                                        <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>
                                        <!--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>
                                        <!--web console-->
                                        <exclude>**/.babelrc</exclude>
                                        <exclude>**/.eslintrc</exclude>
                                        <exclude>**/.dockerignore</exclude>
                                        <exclude>**/backend/config/settings.json.sample</exclude>
                                        <exclude>**/backend/node_modules/**</exclude>
                                        <exclude>**/frontend/build/**</exclude>
                                        <exclude>**/frontend/public/images/**/*.png</exclude>
                                        <exclude>**/frontend/public/images/**/*.svg</exclude>
                                        <exclude>**/frontend/ignite_modules/**</exclude>
                                        <exclude>**/frontend/ignite_modules_temp/**</exclude>
                                        <exclude>**/frontend/node_modules/**</exclude>
                                        <!--RPM packaging, IGNITE-7107-->
                                        <exclude>**/packaging/rpm/SOURCES/name.service</exclude>
                                        <exclude>**/packaging/rpm/SOURCES/service.sh</exclude>
                                        <exclude>**/packaging/rpm/SPECS/apache-ignite.spec</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>2.20.1</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>9</maven.compiler.source>
                <maven.compiler.target>9</maven.compiler.target>
                <scala.library.version>2.12.4</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>
                </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>${project.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:${project.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.0-beta-3,)</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>
