<?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.
-->

<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>23</version>
        <relativePath></relativePath>
    </parent>

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

    <description>Apache Ignite is a distributed database for high-performance computing with in-memory speed.</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>

    <properties>
        <root.directory>${pom.basedir}/../..</root.directory>

        <maven.compiler.source>11</maven.compiler.source>
        <maven.compiler.target>11</maven.compiler.target>

        <!-- Dependencies versions -->
        <apache.ivy.version>2.5.0</apache.ivy.version>
        <assertj-core.version>3.22.0</assertj-core.version>
        <asm.framework.version>9.0</asm.framework.version>
        <compile.testing.library.version>0.19</compile.testing.library.version>
        <fliptables.version>1.1.0</fliptables.version>
        <jackson.version>2.13.1</jackson.version>
        <jakarta.annotations.version>2.0.0</jakarta.annotations.version>
        <jansi.version>1.18</jansi.version>
        <netty.version>4.1.70.Final</netty.version>
        <javapoet.version>1.13.0</javapoet.version>
        <javax.annotation.api.version>1.3.2</javax.annotation.api.version>
        <jetbrains.annotations.version>20.1.0</jetbrains.annotations.version>
        <jline.version>3.21.0</jline.version>
        <jmh.framework.version>1.35</jmh.framework.version>
        <junit.version>5.8.1</junit.version>
        <google.findbug.jsr305.version>3.0.2</google.findbug.jsr305.version>
        <okhttp.version>4.9.1</okhttp.version>
        <gson.version>2.8.9</gson.version>
        <gson-fire.version>1.8.5</gson-fire.version>
        <threetenbp.version>1.5.2</threetenbp.version>
        <micronaut.version>3.5.3</micronaut.version>
        <micronaunt-picocli.version>4.1.0</micronaunt-picocli.version>
        <micronaut.test.junit5.version>3.4.0</micronaut.test.junit5.version>
        <mockito.version>4.3.1</mockito.version>
        <picocli.version>4.6.2</picocli.version>
        <slf4j.version>1.7.32</slf4j.version>
        <spoon.framework.version>8.4.0-beta-18</spoon.framework.version>
        <swagger.annotations.legacy.version>1.6.4</swagger.annotations.legacy.version>
        <swagger.annotations.version>2.1.12</swagger.annotations.version>
        <typesafe.version>1.4.1</typesafe.version>
        <hamcrest.version>2.2</hamcrest.version>
        <hamcrest.optional.version>2.0.0</hamcrest.optional.version>
        <hamcrest.path.version>1.0.1</hamcrest.path.version>
        <scalecube.version>2.6.12</scalecube.version>
        <calcite.version>1.30.0</calcite.version>
        <immutables.version>2.8.8</immutables.version>
        <janino.version>3.1.6</janino.version>
        <avatica.version>1.20.0</avatica.version>
        <jsonpath.version>2.4.0</jsonpath.version>
        <classgraph.version>4.8.110</classgraph.version>
        <javassist.version>3.28.0-GA</javassist.version>
        <esri.geometry.version>2.2.0</esri.geometry.version>
        <checker.version>3.10.0</checker.version>
        <rocksdb.version>7.3.1</rocksdb.version>
        <disruptor.version>3.3.7</disruptor.version>
        <metrics.version>4.0.2</metrics.version>
        <jctools.version>3.3.0</jctools.version>
        <msgpack.version>0.8.21</msgpack.version>
        <caffeine.version>3.0.4</caffeine.version>
        <fastutil.version>8.5.6</fastutil.version>
        <kryo.version>4.0.1</kryo.version>
        <bytebuddy.version>1.12.8</bytebuddy.version>
        <mock-server.version>5.13.2</mock-server.version>
        <archunit.version>0.23.1</archunit.version>

        <!-- Plugins versions -->
        <apache.rat.plugin.version>0.13</apache.rat.plugin.version>
        <checkstyle.puppycrawl.version>8.45</checkstyle.puppycrawl.version>
        <jacoco.maven.plugin.version>0.8.7</jacoco.maven.plugin.version>
        <launch.maven.plugin.version>2.1.2</launch.maven.plugin.version>
        <maven.antrun.plugin.version>3.0.0</maven.antrun.plugin.version>
        <maven.assembly.plugin.version>3.2.0</maven.assembly.plugin.version>
        <maven.build-helper.plugin.version>3.2.0</maven.build-helper.plugin.version>
        <maven.checkstyle.plugin.version>3.1.2</maven.checkstyle.plugin.version>
        <maven.compiler.plugin.version>3.8.1</maven.compiler.plugin.version>
        <maven.dependency.plugin.version>3.2.0</maven.dependency.plugin.version>
        <maven.deploy.plugin.version>2.8.2</maven.deploy.plugin.version>
        <maven.exec.plugin.version>3.0.0</maven.exec.plugin.version>
        <maven.failsafe.plugin.version>3.0.0-M5</maven.failsafe.plugin.version>
        <maven.flatten.plugin.version>1.2.2</maven.flatten.plugin.version>
        <maven.javacc.plugin.version>2.6</maven.javacc.plugin.version>
        <maven.micronaut.build.plugin.version>3.1.0</maven.micronaut.build.plugin.version>
        <maven.fmpp.plugin.version>1.0</maven.fmpp.plugin.version>
        <maven.javadoc.plugin.version>3.2.0</maven.javadoc.plugin.version>
        <maven.modernizer.plugin.version>2.3.0</maven.modernizer.plugin.version>
        <maven.pmd.plugin.version>3.14.0</maven.pmd.plugin.version>
        <maven.resources.plugin.version>3.2.0</maven.resources.plugin.version>
        <maven.shade.plugin.version>3.2.4</maven.shade.plugin.version>
        <maven.source.plugin.version>3.2.1</maven.source.plugin.version>
        <maven.surefire.plugin.version>3.0.0-M5</maven.surefire.plugin.version>
        <maven.openapi.plugin.version>5.4.0</maven.openapi.plugin.version>
        <maven.micronaut.openapi.plugin.version>3.2.0</maven.micronaut.openapi.plugin.version>
        <!-- We leave it empty so that, when jacoco does not run, the unreplaced @{argLine} does not impede the build. -->
        <additional.test.argLine/>
        <common.test.argLine>
            ${additional.test.argLine}
            --add-opens java.base/java.lang=ALL-UNNAMED
            --add-opens java.base/java.lang.invoke=ALL-UNNAMED
            --add-opens java.base/java.lang.reflect=ALL-UNNAMED
            --add-opens java.base/java.io=ALL-UNNAMED
            --add-opens java.base/java.nio=ALL-UNNAMED
            --add-opens java.base/java.math=ALL-UNNAMED
            --add-opens java.base/java.util=ALL-UNNAMED
            --add-opens java.base/jdk.internal.misc=ALL-UNNAMED
            -Dio.netty.tryReflectionSetAccessible=true
            -Djava.util.logging.config.file=../../config/java.util.logging.properties
        </common.test.argLine>
    </properties>

    <distributionManagement>
        <repository>
            <id>apache.staging</id>
            <name>Apache Staging Repository</name>
            <url>https://repository.apache.org/service/local/staging/deploy/maven2</url>
        </repository>
    </distributionManagement>

    <issueManagement>
        <system>Jira</system>
        <url>https://issues.apache.org/jira/projects/IGNITE/issues</url>
    </issueManagement>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>io.micronaut.test</groupId>
                <artifactId>micronaut-test-core</artifactId>
                <version>${micronaut.test.junit5.version}</version>
            </dependency>

            <dependency>
                <groupId>io.micronaut</groupId>
                <artifactId>micronaut-validation</artifactId>
                <version>${micronaut.version}</version>
            </dependency>

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

            <dependency>
                <groupId>com.google.code.gson</groupId>
                <artifactId>gson</artifactId>
                <version>${gson.version}</version>
            </dependency>

            <dependency>
                <groupId>com.google.code.findbugs</groupId>
                <artifactId>jsr305</artifactId>
                <version>${google.findbug.jsr305.version}</version>
            </dependency>

            <dependency>
                <groupId>com.squareup.okhttp3</groupId>
                <artifactId>okhttp</artifactId>
                <version>${okhttp.version}</version>
            </dependency>

            <dependency>
                <groupId>com.squareup.okhttp3</groupId>
                <artifactId>logging-interceptor</artifactId>
                <version>${okhttp.version}</version>
            </dependency>

            <dependency>
                <groupId>org.threeten</groupId>
                <artifactId>threetenbp</artifactId>
                <version>${threetenbp.version}</version>
            </dependency>

            <dependency>
                <groupId>io.gsonfire</groupId>
                <artifactId>gson-fire</artifactId>
                <version>${gson-fire.version}</version>
            </dependency>

            <dependency>
                <groupId>com.jakewharton.fliptables</groupId>
                <artifactId>fliptables</artifactId>
                <version>${fliptables.version}</version>
            </dependency>

            <dependency>
                <groupId>org.apache.ignite</groupId>
                <artifactId>ignite-affinity</artifactId>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>org.apache.ignite</groupId>
                <artifactId>ignite-api</artifactId>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>org.apache.ignite</groupId>
                <artifactId>ignite-baseline</artifactId>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>org.apache.ignite</groupId>
                <artifactId>ignite-bytecode</artifactId>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>org.apache.ignite</groupId>
                <artifactId>ignite-compute</artifactId>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>org.apache.ignite</groupId>
                <artifactId>ignite-sql-engine</artifactId>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>org.immutables</groupId>
                <artifactId>value-annotations</artifactId>
                <version>${immutables.version}</version>
            </dependency>

            <dependency>
                <groupId>org.apache.ignite</groupId>
                <artifactId>ignite-cli</artifactId>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>org.apache.ignite</groupId>
                <artifactId>ignite-cli-common</artifactId>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>org.apache.ignite</groupId>
                <artifactId>ignite-configuration</artifactId>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>org.apache.ignite</groupId>
                <artifactId>ignite-configuration-api</artifactId>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>org.apache.ignite</groupId>
                <artifactId>ignite-core</artifactId>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>org.apache.ignite</groupId>
                <artifactId>ignite-cluster-management</artifactId>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>org.apache.ignite</groupId>
                <artifactId>ignite-metastorage</artifactId>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>org.apache.ignite</groupId>
                <artifactId>ignite-metastorage-client</artifactId>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>org.apache.ignite</groupId>
                <artifactId>ignite-metastorage-common</artifactId>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>org.apache.ignite</groupId>
                <artifactId>ignite-metastorage-server</artifactId>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>org.apache.ignite</groupId>
                <artifactId>ignite-network</artifactId>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>org.apache.ignite</groupId>
                <artifactId>ignite-network-api</artifactId>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>org.apache.ignite</groupId>
                <artifactId>ignite-network-annotation-processor</artifactId>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>org.apache.ignite</groupId>
                <artifactId>ignite-raft</artifactId>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>org.apache.ignite</groupId>
                <artifactId>ignite-raft-client</artifactId>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>org.apache.ignite</groupId>
                <artifactId>ignite-rest-api</artifactId>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>org.apache.ignite</groupId>
                <artifactId>ignite-rest</artifactId>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>org.apache.ignite</groupId>
                <artifactId>ignite-rocksdb-common</artifactId>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>org.apache.ignite</groupId>
                <artifactId>ignite-page-memory</artifactId>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>org.apache.ignite</groupId>
                <artifactId>ignite-schema</artifactId>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>org.apache.ignite</groupId>
                <artifactId>ignite-storage-api</artifactId>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>org.apache.ignite</groupId>
                <artifactId>ignite-storage-rocksdb</artifactId>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>org.apache.ignite</groupId>
                <artifactId>ignite-table</artifactId>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>org.apache.ignite</groupId>
                <artifactId>ignite-index</artifactId>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>org.apache.ignite</groupId>
                <artifactId>ignite-vault</artifactId>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>org.apache.ignite</groupId>
                <artifactId>ignite-runner</artifactId>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>org.apache.ignite</groupId>
                <artifactId>ignite-transactions</artifactId>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>org.apache.ignite</groupId>
                <artifactId>ignite-client-common</artifactId>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>org.apache.ignite</groupId>
                <artifactId>ignite-client-handler</artifactId>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>org.apache.ignite</groupId>
                <artifactId>ignite-client</artifactId>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>org.apache.ignite</groupId>
                <artifactId>ignite-marshaller-common</artifactId>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>org.apache.ignite</groupId>
                <artifactId>ignite-extended-api</artifactId>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>org.apache.ignite</groupId>
                <artifactId>ignite-file-io</artifactId>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>org.apache.ignite</groupId>
                <artifactId>ignite-storage-page-memory</artifactId>
                <version>${project.version}</version>
            </dependency>

            <!-- 3rd party dependencies -->
            <dependency>
                <groupId>org.jetbrains</groupId>
                <artifactId>annotations</artifactId>
                <version>${jetbrains.annotations.version}</version>
            </dependency>

            <dependency>
                <groupId>com.fasterxml.jackson</groupId>
                <artifactId>jackson-bom</artifactId>
                <version>${jackson.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>

            <dependency>
                <groupId>org.apache.calcite</groupId>
                <artifactId>calcite-core</artifactId>
                <version>${calcite.version}</version>
            </dependency>

            <dependency>
                <groupId>org.apache.calcite</groupId>
                <artifactId>calcite-linq4j</artifactId>
                <version>${calcite.version}</version>
            </dependency>

            <dependency>
                <groupId>org.codehaus.janino</groupId>
                <artifactId>commons-compiler</artifactId>
                <version>${janino.version}</version>
            </dependency>

            <dependency>
                <groupId>org.codehaus.janino</groupId>
                <artifactId>janino</artifactId>
                <version>${janino.version}</version>
            </dependency>

            <dependency>
                <groupId>org.apache.calcite.avatica</groupId>
                <artifactId>avatica-core</artifactId>
                <version>${avatica.version}</version>
            </dependency>

            <dependency>
                <groupId>com.jayway.jsonpath</groupId>
                <artifactId>json-path</artifactId>
                <version>${jsonpath.version}</version>
            </dependency>

            <dependency>
                <groupId>com.jayway.jsonpath</groupId>
                <artifactId>json-path-assert</artifactId>
                <version>${jsonpath.version}</version>
            </dependency>

            <dependency>
                <groupId>io.github.classgraph</groupId>
                <artifactId>classgraph</artifactId>
                <version>${classgraph.version}</version>
            </dependency>

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

            <dependency>
                <groupId>com.esri.geometry</groupId>
                <artifactId>esri-geometry-api</artifactId>
                <version>${esri.geometry.version}</version>
            </dependency>

            <dependency>
                <groupId>org.checkerframework</groupId>
                <artifactId>checker-qual</artifactId>
                <version>${checker.version}</version>
            </dependency>

            <dependency>
                <groupId>org.apache.ivy</groupId>
                <artifactId>ivy</artifactId>
                <version>${apache.ivy.version}</version>
            </dependency>

            <dependency>
                <groupId>info.picocli</groupId>
                <artifactId>picocli-shell-jline3</artifactId>
                <version>${picocli.version}</version>
            </dependency>

            <dependency>
                <groupId>io.micronaut</groupId>
                <artifactId>micronaut-runtime</artifactId>
                <version>${micronaut.version}</version>
            </dependency>

            <dependency>
                <groupId>io.micronaut.picocli</groupId>
                <artifactId>micronaut-picocli</artifactId>
                <version>${micronaunt-picocli.version}</version>
            </dependency>

            <dependency>
                <groupId>io.micronaut</groupId>
                <artifactId>micronaut-inject</artifactId>
                <version>${micronaut.version}</version>
            </dependency>

            <dependency>
                <groupId>io.micronaut</groupId>
                <artifactId>micronaut-http</artifactId>
                <version>${micronaut.version}</version>
            </dependency>

            <dependency>
                <groupId>io.micronaut</groupId>
                <artifactId>micronaut-http-server</artifactId>
                <version>${micronaut.version}</version>
            </dependency>

            <dependency>
                <groupId>io.micronaut</groupId>
                <artifactId>micronaut-http-server-netty</artifactId>
                <version>${micronaut.version}</version>
            </dependency>

            <dependency>
                <groupId>io.micronaut.openapi</groupId>
                <artifactId>micronaut-openapi</artifactId>
                <version>${maven.micronaut.openapi.plugin.version}</version>
            </dependency>

            <dependency>
                <groupId>jakarta.annotation</groupId>
                <artifactId>jakarta.annotation-api</artifactId>
                <scope>compile</scope>
                <version>${jakarta.annotations.version}</version>
            </dependency>

            <dependency>
                <groupId>jakarta.inject</groupId>
                <artifactId>jakarta.inject-api</artifactId>
                <version>${jakarta.annotations.version}</version>
            </dependency>

            <dependency>
                <groupId>io.swagger.core.v3</groupId>
                <artifactId>swagger-annotations</artifactId>
                <version>${swagger.annotations.version}</version>
            </dependency>

            <dependency>
                <groupId>io.swagger</groupId>
                <artifactId>swagger-annotations</artifactId>
                <version>${swagger.annotations.legacy.version}</version>
            </dependency>


            <dependency>
                <groupId>com.typesafe</groupId>
                <artifactId>config</artifactId>
                <version>${typesafe.version}</version>
            </dependency>

            <dependency>
                <groupId>org.fusesource.jansi</groupId>
                <artifactId>jansi</artifactId>
                <version>${jansi.version}</version>
            </dependency>

            <dependency>
                <groupId>info.picocli</groupId>
                <artifactId>picocli</artifactId>
                <version>${picocli.version}</version>
            </dependency>

            <dependency>
                <groupId>org.jline</groupId>
                <artifactId>jline</artifactId>
                <version>${jline.version}</version>
            </dependency>

            <dependency>
                <groupId>org.jline</groupId>
                <artifactId>jline-console</artifactId>
                <version>${jline.version}</version>
            </dependency>

            <dependency>
                <groupId>javax.annotation</groupId>
                <artifactId>javax.annotation-api</artifactId>
                <version>${javax.annotation.api.version}</version>
            </dependency>

            <dependency>
                <groupId>com.squareup</groupId>
                <artifactId>javapoet</artifactId>
                <version>${javapoet.version}</version>
            </dependency>

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

            <dependency>
                <groupId>org.msgpack</groupId>
                <artifactId>jackson-dataformat-msgpack</artifactId>
                <version>${msgpack.version}</version>
            </dependency>

            <dependency>
                <groupId>com.github.ben-manes.caffeine</groupId>
                <artifactId>caffeine</artifactId>
                <version>${caffeine.version}</version>
            </dependency>

            <!-- Test dependencies -->
            <dependency>
                <groupId>org.apache.ignite</groupId>
                <artifactId>ignite-cluster-management</artifactId>
                <version>${project.version}</version>
                <type>test-jar</type>
            </dependency>

            <dependency>
                <groupId>org.apache.ignite</groupId>
                <artifactId>ignite-configuration</artifactId>
                <version>${project.version}</version>
                <type>test-jar</type>
            </dependency>

            <dependency>
                <groupId>org.apache.ignite</groupId>
                <artifactId>ignite-core</artifactId>
                <version>${project.version}</version>
                <type>test-jar</type>
            </dependency>

            <dependency>
                <groupId>org.apache.ignite</groupId>
                <artifactId>ignite-metastorage-server</artifactId>
                <version>${project.version}</version>
                <type>test-jar</type>
            </dependency>

            <dependency>
                <groupId>org.apache.ignite</groupId>
                <artifactId>ignite-network</artifactId>
                <version>${project.version}</version>
                <type>test-jar</type>
            </dependency>

            <dependency>
                <groupId>org.apache.ignite</groupId>
                <artifactId>ignite-raft</artifactId>
                <version>${project.version}</version>
                <type>test-jar</type>
            </dependency>

            <dependency>
                <groupId>org.apache.ignite</groupId>
                <artifactId>ignite-schema</artifactId>
                <version>${project.version}</version>
                <type>test-jar</type>
            </dependency>

            <dependency>
                <groupId>org.apache.ignite</groupId>
                <artifactId>ignite-storage-api</artifactId>
                <version>${project.version}</version>
                <type>test-jar</type>
            </dependency>

            <dependency>
                <groupId>org.apache.ignite</groupId>
                <artifactId>ignite-vault</artifactId>
                <version>${project.version}</version>
                <type>test-jar</type>
            </dependency>

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

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

            <dependency>
                <groupId>io.micronaut.test</groupId>
                <artifactId>micronaut-test-junit5</artifactId>
                <version>${micronaut.test.junit5.version}</version>
            </dependency>

            <dependency>
                <groupId>io.micronaut</groupId>
                <artifactId>micronaut-http-client</artifactId>
                <version>${micronaut.version}</version>
                <scope>test</scope>
            </dependency>

            <dependency>
                <groupId>com.tngtech.archunit</groupId>
                <artifactId>archunit</artifactId>
                <version>${archunit.version}</version>
                <scope>test</scope>
            </dependency>

            <dependency>
                <groupId>com.tngtech.archunit</groupId>
                <artifactId>archunit-junit5</artifactId>
                <version>${archunit.version}</version>
                <scope>test</scope>
            </dependency>

            <dependency>
                <groupId>com.google.testing.compile</groupId>
                <artifactId>compile-testing</artifactId>
                <version>${compile.testing.library.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.hamcrest</groupId>
                        <artifactId>hamcrest-core</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>

            <dependency>
                <groupId>fr.inria.gforge.spoon</groupId>
                <artifactId>spoon-core</artifactId>
                <version>${spoon.framework.version}</version>
            </dependency>

            <dependency>
                <groupId>org.hamcrest</groupId>
                <artifactId>hamcrest</artifactId>
                <version>${hamcrest.version}</version>
            </dependency>

            <dependency>
                <groupId>com.github.npathai</groupId>
                <artifactId>hamcrest-optional</artifactId>
                <version>${hamcrest.optional.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.hamcrest</groupId>
                        <artifactId>hamcrest-core</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>

            <dependency>
                <groupId>ca.seinesoftware</groupId>
                <artifactId>hamcrest-path</artifactId>
                <version>${hamcrest.path.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.hamcrest</groupId>
                        <artifactId>hamcrest-core</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>

            <dependency>
                <groupId>io.scalecube</groupId>
                <artifactId>scalecube-cluster</artifactId>
                <version>${scalecube.version}</version>
            </dependency>

            <dependency>
                <groupId>org.openjdk.jmh</groupId>
                <artifactId>jmh-core</artifactId>
                <version>${jmh.framework.version}</version>
            </dependency>

            <dependency>
                <groupId>org.openjdk.jmh</groupId>
                <artifactId>jmh-generator-annprocess</artifactId>
                <version>${jmh.framework.version}</version>
            </dependency>

            <!-- We currently only use Kryo for benchmarking our User Object Serialization -->
            <dependency>
                <groupId>com.esotericsoftware</groupId>
                <artifactId>kryo</artifactId>
                <version>${kryo.version}</version>
            </dependency>

            <dependency>
                <groupId>org.ow2.asm</groupId>
                <artifactId>asm</artifactId>
                <version>${asm.framework.version}</version>
            </dependency>

            <dependency>
                <groupId>org.ow2.asm</groupId>
                <artifactId>asm-tree</artifactId>
                <version>${asm.framework.version}</version>
            </dependency>

            <dependency>
                <groupId>org.ow2.asm</groupId>
                <artifactId>asm-util</artifactId>
                <version>${asm.framework.version}</version>
            </dependency>

            <dependency>
                <groupId>io.netty</groupId>
                <artifactId>netty-bom</artifactId>
                <version>${netty.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>

            <dependency>
                <groupId>com.lmax</groupId>
                <artifactId>disruptor</artifactId>
                <version>${disruptor.version}</version>
            </dependency>

            <dependency>
                <groupId>org.rocksdb</groupId>
                <artifactId>rocksdbjni</artifactId>
                <version>${rocksdb.version}</version>
            </dependency>

            <dependency>
                <groupId>io.dropwizard.metrics</groupId>
                <artifactId>metrics-core</artifactId>
                <version>${metrics.version}</version>
            </dependency>

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

            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-jdk14</artifactId>
                <version>${slf4j.version}</version>
            </dependency>

            <dependency>
                <groupId>it.unimi.dsi</groupId>
                <artifactId>fastutil-core</artifactId>
                <version>${fastutil.version}</version>
            </dependency>

            <dependency>
                <groupId>net.bytebuddy</groupId>
                <artifactId>byte-buddy</artifactId>
                <version>${bytebuddy.version}</version>
            </dependency>

            <dependency>
                <groupId>org.mock-server</groupId>
                <artifactId>mockserver-netty</artifactId>
                <version>${mock-server.version}</version>
            </dependency>

            <dependency>
                <groupId>org.mock-server</groupId>
                <artifactId>mockserver-junit-jupiter</artifactId>
                <version>${mock-server.version}</version>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <profiles>

        <!--
            Profile to exclude running surefire (unit) tests but do not prevent running integration ones
        -->
        <profile>
            <id>skip-unit-tests</id>
            <activation>
                <property>
                    <name>skip.surefire.tests</name>
                </property>
            </activation>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-surefire-plugin</artifactId>
                        <configuration>
                            <skipTests>true</skipTests>
                        </configuration>
                    </plugin>
                </plugins>
            </build>
        </profile>

        <!--
            Profile to exclude the test phase from maven lifecycle when maven.test.skip is set.
            It is required to mitigate the issue with test-scope dependencies in non tested builds
        -->
        <profile>
            <id>skip-all-tests</id>
            <activation>
                <property>
                    <name>maven.test.skip</name>
                    <value>true</value>
                </property>
            </activation>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-compiler-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>default-testCompile</id>
                                <phase>none</phase>
                            </execution>
                        </executions>
                    </plugin>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-jar-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>default-testJar</id>
                                <phase>none</phase>
                            </execution>
                        </executions>
                    </plugin>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-surefire-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>default-test</id>
                                <phase>none</phase>
                            </execution>
                        </executions>
                    </plugin>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-failsafe-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>default</id>
                                <phase>none</phase>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>

        <!--
            Profile to exclude internal packages from Javadoc release build
        -->
        <profile>
            <id>javadoc</id>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.codehaus.mojo</groupId>
                        <artifactId>build-helper-maven-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>timestamp-property</id>
                                <goals>
                                    <goal>timestamp-property</goal>
                                </goals>
                                <phase>validate</phase>
                                <configuration>
                                    <name>current.year</name>
                                    <pattern>yyyy</pattern>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>

                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-javadoc-plugin</artifactId>
                        <configuration>
                            <excludePackageNames>org.apache.ignite.internal.*</excludePackageNames>
                        </configuration>
                        <executions>
                            <execution>
                                <phase>package</phase>
                                <goals>
                                    <goal>jar</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>

        <!--
            Profile to enable Javadoc style checks for public API.
        -->
        <profile>
            <id>javadoc-public-api</id>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-checkstyle-plugin</artifactId>
                        <configuration>
                            <configLocation>${project.basedir}/check-rules/checkstyle-public-api-javadoc.xml</configLocation>
                            <suppressionsLocation>${project.basedir}/check-rules/checkstyle-disabled-modules.xml</suppressionsLocation>
                        </configuration>
                    </plugin>
                </plugins>
            </build>
        </profile>

        <!--
            Profile to add generated sources to the list of paths for the PMD plugin.
        -->
        <profile>
            <id>pmd</id>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.codehaus.mojo</groupId>
                        <artifactId>build-helper-maven-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>add-generated-source-for-pmd</id>
                                <phase>validate</phase>
                                <goals>
                                    <goal>add-source</goal>
                                </goals>
                                <configuration>
                                    <sources>
                                        <source>target/generated-sources/annotations</source>
                                        <source>target/generated-sources/javacc</source>
                                        <source>target/generated-sources/fmpp</source>
                                    </sources>
                                </configuration>
                            </execution>
                            <execution>
                                <id>add-generated-test-source-for-pmd</id>
                                <phase>validate</phase>
                                <goals>
                                    <goal>add-test-source</goal>
                                </goals>
                                <configuration>
                                    <sources>
                                        <source>target/generated-test-sources/test-annotations</source>
                                    </sources>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>

        <!--
            This profile is used to check the code for legacy API.

            It runs by default and can be skipped with either
            -Dmaven.all-checks.skip or -Dmodernize.skip flag.
        -->
        <profile>
            <id>modernizer</id>
            <activation>
                <property>
                    <name>!maven.all-checks.skip</name>
                </property>
            </activation>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.gaul</groupId>
                        <artifactId>modernizer-maven-plugin</artifactId>
                        <configuration>
                            <javaVersion>${maven.compiler.source}</javaVersion>
                            <!-- Augment the standard rule set with our rules -->
                            <violationsFiles>
                                <violationFile>${root.directory}/check-rules/modernizer-rules.xml</violationFile>
                            </violationsFiles>
                            <ignorePackages>
                                <package>org.apache.ignite.internal.sql.engine</package>
                                <package>org.apache.ignite.internal.generated</package>
                                <package>org.apache.ignite.rest.client</package>
                            </ignorePackages>
                        </configuration>
                        <executions>
                            <execution>
                                <id>modernizer</id>
                                <phase>test-compile</phase>
                                <goals>
                                    <goal>modernizer</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>

        <profile>
            <id>jacoco</id>
            <properties>
                <additional.test.argLine>@{argLine}</additional.test.argLine>
            </properties>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.jacoco</groupId>
                        <artifactId>jacoco-maven-plugin</artifactId>
                        <configuration>
                            <excludes>
                                <!-- Calcite does not work well under JaCoCo: https://issues.apache.org/jira/browse/CALCITE-5008 -->
                                <exclude>org/apache/calcite/**/*</exclude>
                            </excludes>
                        </configuration>
                        <executions>
                            <execution>
                                <id>jacoco-prepare-agent-unit</id>
                                <goals>
                                    <goal>prepare-agent</goal>
                                </goals>
                            </execution>
                            <execution>
                                <id>jacoco-prepare-agent-it</id>
                                <goals>
                                    <goal>prepare-agent-integration</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
    </profiles>

    <build>
        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>${maven.compiler.plugin.version}</version>
                </plugin>

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

                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>build-helper-maven-plugin</artifactId>
                    <version>${maven.build-helper.plugin.version}</version>
                </plugin>

                <!--plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-source-plugin</artifactId>
                    <version>${maven.source.plugin.version}</version>
                    <executions>
                        <execution>
                            <id>attach-sources</id>
                            <goals>
                                <goal>jar</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin-->

                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-failsafe-plugin</artifactId>
                    <version>${maven.failsafe.plugin.version}</version>
                </plugin>

                <plugin>
                    <groupId>io.micronaut.build</groupId>
                    <artifactId>micronaut-maven-plugin</artifactId>
                    <version>${maven.micronaut.build.plugin.version}</version>
                </plugin>

                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-assembly-plugin</artifactId>
                    <version>${maven.assembly.plugin.version}</version>
                </plugin>

                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-shade-plugin</artifactId>
                    <version>${maven.shade.plugin.version}</version>
                </plugin>

                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-antrun-plugin</artifactId>
                    <version>${maven.antrun.plugin.version}</version>
                </plugin>

                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-deploy-plugin</artifactId>
                    <version>${maven.deploy.plugin.version}</version>
                </plugin>

                <plugin>
                    <groupId>com.akathist.maven.plugins.launch4j</groupId>
                    <artifactId>launch4j-maven-plugin</artifactId>
                    <version>${launch.maven.plugin.version}</version>
                </plugin>

                <plugin>
                    <groupId>org.apache.rat</groupId>
                    <artifactId>apache-rat-plugin</artifactId>
                    <version>${apache.rat.plugin.version}</version>
                </plugin>

                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-checkstyle-plugin</artifactId>
                    <version>${maven.checkstyle.plugin.version}</version>
                </plugin>

                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-pmd-plugin</artifactId>
                    <version>${maven.pmd.plugin.version}</version>
                </plugin>

                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-javadoc-plugin</artifactId>
                    <version>${maven.javadoc.plugin.version}</version>
                </plugin>

                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>flatten-maven-plugin</artifactId>
                    <version>${maven.flatten.plugin.version}</version>
                </plugin>

                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>javacc-maven-plugin</artifactId>
                    <version>${maven.javacc.plugin.version}</version>
                </plugin>

                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-resources-plugin</artifactId>
                    <version>${maven.resources.plugin.version}</version>
                </plugin>

                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-dependency-plugin</artifactId>
                    <version>${maven.dependency.plugin.version}</version>
                </plugin>

                <plugin>
                    <groupId>com.googlecode.fmpp-maven-plugin</groupId>
                    <artifactId>fmpp-maven-plugin</artifactId>
                    <version>${maven.fmpp.plugin.version}</version>
                </plugin>

                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>exec-maven-plugin</artifactId>
                    <version>${maven.exec.plugin.version}</version>
                </plugin>

                <plugin>
                    <groupId>org.gaul</groupId>
                    <artifactId>modernizer-maven-plugin</artifactId>
                    <version>${maven.modernizer.plugin.version}</version>
                </plugin>

                <plugin>
                    <groupId>org.jacoco</groupId>
                    <artifactId>jacoco-maven-plugin</artifactId>
                    <version>${jacoco.maven.plugin.version}</version>
                </plugin>

                <plugin>
                    <groupId>org.openapitools</groupId>
                    <artifactId>openapi-generator-maven-plugin</artifactId>
                    <version>${maven.openapi.plugin.version}</version>
                </plugin>
            </plugins>
        </pluginManagement>

        <plugins>
            <!--
                Plugin that adds integration test sources and resources from integrationTest directory.
            -->
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>build-helper-maven-plugin</artifactId>
                <executions>
                    <execution>
                        <id>add-test-source</id>
                        <phase>validate</phase>
                        <goals>
                            <goal>add-test-source</goal>
                        </goals>
                        <configuration>
                            <sources>
                                <source>src/integrationTest/java</source>
                            </sources>
                        </configuration>
                    </execution>
                    <execution>
                        <id>add-test-resource</id>
                        <phase>validate</phase>
                        <goals>
                            <goal>add-test-resource</goal>
                        </goals>
                        <configuration>
                            <resources>
                                <resource>
                                    <directory>src/integrationTest/resources</directory>
                                </resource>
                            </resources>
                        </configuration>
                    </execution>
                </executions>
            </plugin>

            <!--
                Plugin for unit testing.
            -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <configuration>
                    <argLine>
                        ${common.test.argLine}
                    </argLine>
                    <excludes>
                        <exclude>%regex[.*(It)[A-Z].*]</exclude>
                        <!-- Exclude inner classes (preserve default behaviour) -->
                        <exclude>**/*$*</exclude>
                    </excludes>
                </configuration>
            </plugin>

            <!--
                Plugin for integration testing.
            -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-failsafe-plugin</artifactId>
                <configuration>
                    <argLine>
                        ${common.test.argLine}
                    </argLine>
                    <useModulePath>false</useModulePath>
                    <includes>
                        <include>%regex[.*(It)[A-Z].*]</include>
                    </includes>
                </configuration>
                <executions>
                    <execution>
                        <phase>integration-test</phase>
                        <goals>
                            <goal>integration-test</goal>
                            <goal>verify</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>

            <!--
                Plugin for flattening installed pom
            -->
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>flatten-maven-plugin</artifactId>

                <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>

            <!--
                This plugin is used to check the code for coding guidelines
            -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-checkstyle-plugin</artifactId>
                <dependencies>
                    <dependency>
                        <groupId>com.puppycrawl.tools</groupId>
                        <artifactId>checkstyle</artifactId>
                        <version>${checkstyle.puppycrawl.version}</version>
                    </dependency>
                </dependencies>
                <configuration>
                    <outputFile>${project.build.directory}/checkstyle.xml</outputFile>
                    <configLocation>${project.basedir}/check-rules/checkstyle-rules.xml</configLocation>
                    <suppressionsLocation>${project.basedir}/check-rules/checkstyle-suppressions.xml</suppressionsLocation>
                    <includeTestSourceDirectory>true</includeTestSourceDirectory>
                    <excludes>com/facebook/presto/bytecode/**/*,org/apache/ignite/raft/jraft/**/*</excludes>
                    <linkXRef>false</linkXRef>

                    <includeTestSourceDirectory>true</includeTestSourceDirectory>
                    <testSourceDirectories>src/integrationTest/java</testSourceDirectories>
                </configuration>
            </plugin>

            <!--
                This plugin is used for checking that all files in project are compliant with target licenses headers.
                Exclusions are possible, but every exclusion should have it's own motivated comment and/or issue key.
            -->
            <plugin>
                <groupId>org.apache.rat</groupId>
                <artifactId>apache-rat-plugin</artifactId>
                <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>
                    <excludeSubProjects>false</excludeSubProjects>
                    <excludes>
                        <exclude>**/target/**</exclude> <!-- All generated files -->
                        <exclude>**/*.md</exclude> <!-- Markdown files -->
                        <exclude>docs/assets/images/**</exclude> <!-- SVG images are XML files, but they cannot have license header -->
                        <exclude>docs/assets/js/anchor.min.js</exclude> <!-- Distributed under the MIT license. The original license header is badly formatted -->
                        <exclude>docs/assets/css/asciidoc-pygments.css</exclude> <!-- Dan Allen, Paul Rayner, and the Asciidoctor Project -->
                        <exclude>docs/_plugins/asciidoctor-extensions.rb</exclude> <!-- MIT license -->
                        <exclude>docs/_sass/rouge-base16-solarized.scss</exclude> <!-- MIT license. -->
                        <exclude>**/*.json</exclude> <!-- Files in JSON format -->
                        <exclude>**/*.conf</exclude> <!-- Files in HOCON format -->
                        <exclude>modules/rest/openapi/openapi.yaml</exclude> <!-- Autogenerated Open API spec -->
                        <exclude>**/*.drawio</exclude> <!-- Draw.IO diagrams -->
                        <exclude>modules/cli/src/**/resources//builtin_modules.conf</exclude> <!-- CLI configuration files -->
                        <exclude>**/*.iml</exclude> <!-- IntelliJ IDEA project files -->
                        <exclude>modules/bytecode/src/main/java/com/facebook/presto/bytecode/ClassInfo.java</exclude> <!-- MIT license. -->
                        <exclude>modules/bytecode/src/main/java/com/facebook/presto/bytecode/ClassInfoLoader.java</exclude> <!-- MIT license. -->
                        <exclude>**/META-INF/services/**</exclude> <!-- Interface mappings: cannot be changed -->
                        <exclude>modules/raft/src/main/java/org/apache/ignite/raft/jraft/util/Recyclers.java</exclude> <!-- Netty license. -->
                        <exclude>modules/raft/src/main/java/org/apache/ignite/raft/jraft/util/NonReentrantLock.java</exclude> <!-- Netty license. -->
                        <exclude>modules/raft/src/main/java/org/apache/ignite/raft/jraft/util/HeapByteBufUtil.java</exclude> <!-- Netty license. -->
                        <exclude>modules/raft/src/main/java/org/apache/ignite/raft/jraft/util/timer/TimerTask.java</exclude> <!-- Netty license. -->
                        <exclude>modules/raft/src/main/java/org/apache/ignite/raft/jraft/util/timer/Timeout.java</exclude> <!-- Netty license. -->
                        <exclude>**/*.sln</exclude> <!-- Visual Studio solution. -->
                        <!-- DEB package assembly files -->
                        <exclude>deliveries/deb/rules</exclude>
                        <exclude>deliveries/deb/control</exclude>
                        <exclude>**/*.bat</exclude> <!-- Files in bat format -->
                        <exclude>**/*.ini</exclude> <!-- Files in ini format -->
                        <exclude>modules/runner/src/integrationTest/sql/**</exclude> <!-- SQL logic tests. -->
                    </excludes>
                </configuration>
            </plugin>

            <!--
                Plugin for static code analysis
            -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-pmd-plugin</artifactId>
                <configuration>
                    <aggregate>true</aggregate>
                    <rulesets>
                        <ruleset>${project.basedir}/check-rules/pmd-rules.xml</ruleset>
                    </rulesets>
                    <printFailingErrors>true</printFailingErrors>
                    <excludes>
                        <exclude>**/org/apache/ignite/internal/generated/query/calcite/sql/IgniteSqlParserImplTokenManager.java</exclude>
                        <exclude>**/org/apache/ignite/internal/generated/query/calcite/sql/IgniteSqlParserImpl.java</exclude>
                        <exclude>**/org/apache/ignite/rest/client/**</exclude>
                    </excludes>
                </configuration>
            </plugin>

            <!--
                Plugin to validate module javadoc
            -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-javadoc-plugin</artifactId>
                <configuration>
                    <doctitle>Ignite ${project.version}</doctitle>
                    <windowtitle>Ignite ${project.version}</windowtitle>
                    <breakiterator>true</breakiterator>
                    <verbose>true</verbose>
                    <show>package</show>
                    <use>true</use>
                    <author>false</author>
                    <version>false</version>
                    <additionalJOptions>${javadoc.opts}</additionalJOptions>
                    <excludePackageNames>com.facebook.presto.*;org.apache.ignite.internal.generated.*</excludePackageNames>
                    <sourcepath>src/main/java:target/generated-sources/annotations:target/generated-sources/javacc</sourcepath>
                    <links>
                        <link>https://ignite.apache.org/releases/latest/javadoc/</link>
                    </links>
                    <tags>
                        <tag>
                            <name>apiNote</name>
                            <placement>a</placement>
                            <head>API Note:</head>
                        </tag>
                        <tag>
                            <name>implSpec</name>
                            <placement>a</placement>
                            <head>Implementation Requirements:</head>
                        </tag>
                        <tag>
                            <name>implNote</name>
                            <placement>a</placement>
                            <head>Implementation Note:</head>
                        </tag>
                    </tags>
                    <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>${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 to remove org.apache.ignite.* artifacts from local repository before the build
                (always clean build with current reactor dependency resolution)
            -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-dependency-plugin</artifactId>
                <executions>
                    <execution>
                        <id>purge-local-repository</id>
                        <phase>package</phase>
                        <goals>
                            <goal>purge-local-repository</goal>
                        </goals>
                        <configuration>
                            <manualIncludes>
                                <manualInclude>org.apache.ignite:${project.artifactId}/${project.version}</manualInclude>
                            </manualIncludes>
                            <verbose>true</verbose>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
</project>
