<?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>
    </parent>
    <groupId>org.apache.iotdb</groupId>
    <artifactId>iotdb-parent</artifactId>
    <version>1.1.1-SNAPSHOT</version>
    <packaging>pom</packaging>
    <name>Apache IoTDB Project Parent POM</name>
    <description>This is the top level project that builds, packages the tsfile, iotdb engine, jdbc, and integration libs.</description>
    <licenses>
        <license>
            <name>The Apache License, Version 2.0</name>
            <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
        </license>
    </licenses>
    <scm>
        <connection>scm:git:ssh://git@github.com/apache/iotdb.git</connection>
        <developerConnection>scm:git:ssh://git@github.com/apache/iotdb.git</developerConnection>
        <url>ssh://git@github.com:apache/iotdb.git</url>
        <tag>rel/0.10</tag>
    </scm>
    <!-- Only configure the site distribution as the rest is handled by the apache parent -->
    <distributionManagement>
        <site>
            <id>apache.website</id>
            <url>scm:git:https://gitbox.apache.org/repos/asf/iotdb-website.git</url>
        </site>
    </distributionManagement>
    <issueManagement>
        <system>Jira</system>
        <url>https://issues.apache.org/jira/browse/iotdb</url>
    </issueManagement>
    <mailingLists>
        <mailingList>
            <name>Apache IoTDB Developer List</name>
            <subscribe>mailto:dev-subscribe@iotdb.apache.org</subscribe>
            <unsubscribe>mailto:dev-unsubscribe@iotdb.apache.org</unsubscribe>
            <post>mailto:dev@iotdb.apache.org</post>
            <archive>http://mail-archives.apache.org/mod_mbox/iotdb-dev/</archive>
        </mailingList>
        <mailingList>
            <name>IoTDB Commits List</name>
            <subscribe>mailto:commit-subscribe@iotdb.apache.org</subscribe>
            <unsubscribe>mailto:commits-unsubscribe@iotdb.apache.org</unsubscribe>
            <post>mailto:commits@iotdb.apache.org</post>
            <archive>http://mail-archives.apache.org/mod_mbox/iotdb-commits/</archive>
        </mailingList>
        <mailingList>
            <name>IoTDB Jira Notifications List</name>
            <subscribe>mailto:notifications-subscribe@iotdb.apache.org</subscribe>
            <unsubscribe>mailto:notifications-unsubscribe@iotdb.apache.org</unsubscribe>
            <post>mailto:notifications@iotdb.apache.org</post>
            <archive>http://mail-archives.apache.org/mod_mbox/iotdb-notifications/</archive>
        </mailingList>
    </mailingLists>
    <modules>
        <module>tsfile</module>
        <module>antlr</module>
        <module>thrift</module>
        <module>thrift-commons</module>
        <module>thrift-confignode</module>
        <module>thrift-iot-consensus</module>
        <module>thrift-influxdb</module>
        <module>thrift-mlnode</module>
        <module>service-rpc</module>
        <module>jdbc</module>
        <module>influxdb-protocol</module>
        <module>session</module>
        <module>cli</module>
        <module>openapi</module>
        <module>server</module>
        <module>example</module>
        <module>grafana-plugin</module>
        <module>grafana-connector</module>
        <module>spark-tsfile</module>
        <module>hadoop</module>
        <module>spark-iotdb-connector</module>
        <module>flink-tsfile-connector</module>
        <module>flink-iotdb-connector</module>
        <module>distribution</module>
        <module>hive-connector</module>
        <module>node-commons</module>
        <module>confignode</module>
        <module>zeppelin-interpreter</module>
        <module>client-py</module>
        <module>compile-tools</module>
        <module>client-cpp</module>
        <module>metrics</module>
        <!-- Will remove integration at 2023.1.23-->
        <module>integration</module>
        <module>integration-test</module>
        <module>consensus</module>
        <module>external-pipe-api</module>
        <module>library-udf</module>
        <module>schema-engine-rocksdb</module>
        <module>udf-api</module>
        <module>trigger-api</module>
        <module>rewrite-tsfile-tool</module>
        <module>external-api</module>
        <module>schema-engine-tag</module>
        <module>isession</module>
        <module>mlnode</module>
        <module>pipe-api</module>
    </modules>
    <!-- Properties Management -->
    <properties>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
        <maven.assembly.version>3.1.0</maven.assembly.version>
        <scala.library.version>2.11</scala.library.version>
        <scala.version>2.11.12</scala.version>
        <hadoop2.version>2.10.1</hadoop2.version>
        <hive2.version>2.3.6</hive2.version>
        <junit.version>4.13.2</junit.version>
        <slf4j.version>1.7.12</slf4j.version>
        <logback.version>1.2.11</logback.version>
        <joda.version>2.9.9</joda.version>
        <spark.version>2.4.5</spark.version>
        <flink.version>1.14.6</flink.version>
        <common.io.version>2.11.0</common.io.version>
        <commons.collections4>4.4</commons.collections4>
        <!-- keep consistent with client-cpp/tools/thrift/pom.xml-->
        <thrift.version>0.14.1</thrift.version>
        <airline.version>0.8</airline.version>
        <jackson.version>2.13.4</jackson.version>
        <jackson.databind.version>2.13.4.1</jackson.databind.version>
        <antlr4.version>4.8-1</antlr4.version>
        <common.cli.version>1.3.1</common.cli.version>
        <common.codec.version>1.13</common.codec.version>
        <common.collections.version>3.2.2</common.collections.version>
        <common.lang3.version>3.9</common.lang3.version>
        <common.logging.version>1.1.3</common.logging.version>
        <common.pool2.version>2.11.1</common.pool2.version>
        <org.slf4j.version>1.7.36</org.slf4j.version>
        <guava.version>24.1.1</guava.version>
        <jline.version>3.21.0</jline.version>
        <jetty.version>9.4.49.v20220914</jetty.version>
        <dropwizard.metrics.version>4.2.7</dropwizard.metrics.version>
        <micrometer.metrics.version>1.6.2</micrometer.metrics.version>
        <javax.xml.bind.version>2.4.0-b180830.0359</javax.xml.bind.version>
        <felix.version>5.1.8</felix.version>
        <snappy.version>1.1.8.4</snappy.version>
        <zstd-jni.version>1.5.4-2</zstd-jni.version>
        <netty.version>4.1.82.Final</netty.version>
        <!-- URL of the ASF SonarQube server -->
        <sonar.host.url>https://sonarcloud.io</sonar.host.url>
        <sonar.organization>apache</sonar.organization>
        <!-- Exclude all generated code -->
        <sonar.exclusions>**/generated-sources</sonar.exclusions>
        <sonar.java.checkstyle.reportPaths>target/checkstyle-report.xml</sonar.java.checkstyle.reportPaths>
        <sonar.coverage.jacoco.xmlReportPaths>target/jacoco-merged-reports/jacoco.xml</sonar.coverage.jacoco.xmlReportPaths>
        <sonar.junit.reportPaths>target/surefire-reports,target/failsafe-reports</sonar.junit.reportPaths>
        <!-- By default, the argLine is empty-->
        <gson.version>2.8.9</gson.version>
        <argLine/>
        <!-- whether enable compiling the cpp client-->
        <client-cpp>false</client-cpp>
        <!-- disable enforcer by default-->
        <enforcer.skip>true</enforcer.skip>
        <spotless.version>2.27.1</spotless.version>
        <httpclient.version>4.5.14</httpclient.version>
        <httpcore.version>4.4.15</httpcore.version>
        <!-- for REST service -->
        <swagger.core.version>1.5.24</swagger.core.version>
        <servlet.api.version>2.5</servlet.api.version>
        <openapi.generator.version>5.0.0</openapi.generator.version>
        <!-- cli -->
        <progressbar.version>0.9.3</progressbar.version>
        <!-- zeppelin -->
        <zeppelin.version>0.9.0-preview2</zeppelin.version>
        <!-- for java 11-->
        <javax.annotation-api.version>1.3.2</javax.annotation-api.version>
        <log4j.version>1.2.24</log4j.version>
        <lz4-java.version>1.8.0</lz4-java.version>
        <jackson-mapper-asl.version>1.9.13</jackson-mapper-asl.version>
        <jaxb-runtime.version>3.0.2</jaxb-runtime.version>
        <mockito-core.version>2.23.4</mockito-core.version>
        <objenesis.version>3.2</objenesis.version>
        <powermock-core.version>2.0.9</powermock-core.version>
        <scalatest_2.11.version>3.0.5</scalatest_2.11.version>
        <io.airlift.units.version>1.6</io.airlift.units.version>
        <io.airlift.slice.version>0.41</io.airlift.slice.version>
        <dep.airlift.version>200</dep.airlift.version>
        <!-- do not upgrade this package unless we have to...
        Some experiments(https://github.com/jixuan1989/DependencyTest/blob/main/src/main/java/timecho/exp/JolTimeCost.java):
        jol v0.2, scan tsfile package and calculate the classes size, time cost: 600ms
        jol v0.4: time cost is 980ms,
        jol v0.14, time cost is 1600ms
        -->
        <jol-core.version>0.2</jol-core.version>
        <jackson-core-asl.version>1.9.13</jackson-core-asl.version>
        <mqtt-client.version>1.12</mqtt-client.version>
        <google.code.findbugs.jsr305.version>3.0.2</google.code.findbugs.jsr305.version>
        <jna.version>5.8.0</jna.version>
        <zookeeper.version>3.4.14</zookeeper.version>
        <commons-beanutils.version>1.9.4</commons-beanutils.version>
        <commons-compress.version>1.21</commons-compress.version>
        <error_prone_annotations.version>2.7.1</error_prone_annotations.version>
        <testcontainers.version>1.15.3</testcontainers.version>
        <eclipse-collections.version>10.4.0</eclipse-collections.version>
        <awaitility.version>4.0.3</awaitility.version>
        <!-- JDK1.8 only support google java format 1.7-->
        <google.java.format.version>1.7</google.java.format.version>
        <!-- caffeine cache -->
        <caffeine>2.9.3</caffeine>
        <commons-csv.version>1.9.0</commons-csv.version>
        <commons-lang.version>2.6</commons-lang.version>
        <influxdb-java.version>2.21</influxdb-java.version>
        <JTransforms.version>3.1</JTransforms.version>
        <!-- codegen -->
        <drill.freemarker.maven.plugin.version>1.17.0</drill.freemarker.maven.plugin.version>
        <codegen.phase>generate-sources</codegen.phase>
    </properties>
    <!--
        if we claim dependencies in dependencyManagement, then we do not claim
        their version in sub-project's pom, but we have to claim themselves again
        in sub-projects
    -->
    <dependencyManagement>
        <dependencies>
            <!--
                in the subprojects, you have to claim logback again, because maybe
                someone in your dependences uses log4j lib.
            -->
            <dependency>
                <groupId>ch.qos.logback</groupId>
                <artifactId>logback-classic</artifactId>
                <version>${logback.version}</version>
            </dependency>
            <dependency>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-annotations</artifactId>
                <version>${jackson.version}</version>
            </dependency>
            <dependency>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-core</artifactId>
                <version>${jackson.version}</version>
            </dependency>
            <dependency>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-databind</artifactId>
                <version>${jackson.databind.version}</version>
            </dependency>
            <dependency>
                <groupId>com.fasterxml.jackson.module</groupId>
                <artifactId>jackson-module-paranamer</artifactId>
                <version>${jackson.version}</version>
            </dependency>
            <dependency>
                <groupId>com.fasterxml.jackson.module</groupId>
                <artifactId>jackson-module-scala_2.11</artifactId>
                <version>${jackson.version}</version>
            </dependency>
            <dependency>
                <groupId>com.google.guava</groupId>
                <artifactId>guava</artifactId>
                <version>[${guava.version},)</version>
            </dependency>
            <dependency>
                <groupId>commons-cli</groupId>
                <artifactId>commons-cli</artifactId>
                <version>${common.cli.version}</version>
            </dependency>
            <dependency>
                <groupId>commons-codec</groupId>
                <artifactId>commons-codec</artifactId>
                <version>${common.codec.version}</version>
            </dependency>
            <dependency>
                <groupId>commons-collections</groupId>
                <artifactId>commons-collections</artifactId>
                <version>${common.collections.version}</version>
            </dependency>
            <dependency>
                <groupId>commons-io</groupId>
                <artifactId>commons-io</artifactId>
                <version>${common.io.version}</version>
            </dependency>
            <dependency>
                <groupId>commons-logging</groupId>
                <artifactId>commons-logging</artifactId>
                <version>${common.logging.version}</version>
            </dependency>
            <dependency>
                <groupId>io.netty</groupId>
                <artifactId>netty-all</artifactId>
                <version>${netty.version}</version>
            </dependency>
            <dependency>
                <groupId>io.netty</groupId>
                <artifactId>netty-buffer</artifactId>
                <version>${netty.version}</version>
            </dependency>
            <dependency>
                <groupId>io.netty</groupId>
                <artifactId>netty-common</artifactId>
                <version>${netty.version}</version>
            </dependency>
            <dependency>
                <groupId>javax.annotation</groupId>
                <artifactId>javax.annotation-api</artifactId>
                <version>${javax.annotation-api.version}</version>
            </dependency>
            <dependency>
                <groupId>javax.xml.bind</groupId>
                <artifactId>jaxb-api</artifactId>
                <version>${javax.xml.bind.version}</version>
            </dependency>
            <dependency>
                <groupId>org.jline</groupId>
                <artifactId>jline</artifactId>
                <version>${jline.version}</version>
            </dependency>
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>${junit.version}</version>
            </dependency>
            <dependency>
                <groupId>ch.qos.reload4j</groupId>
                <artifactId>reload4j</artifactId>
                <version>${log4j.version}</version>
            </dependency>
            <dependency>
                <groupId>org.lz4</groupId>
                <artifactId>lz4-java</artifactId>
                <version>${lz4-java.version}</version>
            </dependency>
            <dependency>
                <groupId>org.eclipse.jetty</groupId>
                <artifactId>jetty-server</artifactId>
                <version>${jetty.version}</version>
            </dependency>
            <dependency>
                <groupId>org.eclipse.jetty</groupId>
                <artifactId>jetty-webapp</artifactId>
                <version>${jetty.version}</version>
            </dependency>
            <dependency>
                <groupId>me.tongfei</groupId>
                <artifactId>progressbar</artifactId>
                <version>${progressbar.version}</version>
                <exclusions>
                    <!-- This transitive dependency duplicates classes from jline:jline:jar:2.14.5:compile -->
                    <exclusion>
                        <groupId>org.fusesource.jansi</groupId>
                        <artifactId>jansi</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.antlr</groupId>
                <artifactId>antlr4-runtime</artifactId>
                <version>${antlr4.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.commons</groupId>
                <artifactId>commons-collections4</artifactId>
                <version>${commons.collections4}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.commons</groupId>
                <artifactId>commons-lang3</artifactId>
                <version>${common.lang3.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.commons</groupId>
                <artifactId>commons-pool2</artifactId>
                <version>${common.pool2.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.hadoop</groupId>
                <artifactId>hadoop-client</artifactId>
                <version>${hadoop2.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.hive</groupId>
                <artifactId>hive-serde</artifactId>
                <version>${hive2.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.hive</groupId>
                <artifactId>hive-exec</artifactId>
                <version>${hive2.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.pentaho</groupId>
                        <artifactId>pentaho-aggdesigner-algorithm</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.apache.spark</groupId>
                <artifactId>spark-core_2.11</artifactId>
                <version>${spark.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.spark</groupId>
                <artifactId>spark-sql_2.11</artifactId>
                <version>${spark.version}</version>
            </dependency>
            <dependency>
                <groupId>org.codehaus.jackson</groupId>
                <artifactId>jackson-core-asl</artifactId>
                <version>${jackson-core-asl.version}</version>
            </dependency>
            <dependency>
                <groupId>org.codehaus.jackson</groupId>
                <artifactId>jackson-mapper-asl</artifactId>
                <version>${jackson-mapper-asl.version}</version>
            </dependency>
            <dependency>
                <groupId>org.glassfish.jaxb</groupId>
                <artifactId>jaxb-runtime</artifactId>
                <version>${jaxb-runtime.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>jakarta.activation</groupId>
                        <artifactId>jakarta.activation-api</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <!--            <dependency>
                <groupId>org.javassist</groupId>
                <artifactId>javassist</artifactId>
                <version>3.24.1-GA</version>
            </dependency>-->
            <dependency>
                <groupId>org.mockito</groupId>
                <artifactId>mockito-core</artifactId>
                <version>${mockito-core.version}</version>
            </dependency>
            <!-- for generate a class instance. (where to use it ?)-->
            <!--            <dependency>-->
            <!--                <groupId>org.objenesis</groupId>-->
            <!--                <artifactId>objenesis</artifactId>-->
            <!--                <version>${objenesis.version}</version>-->
            <!--            </dependency>-->
            <dependency>
                <groupId>org.powermock</groupId>
                <artifactId>powermock-core</artifactId>
                <version>${powermock-core.version}</version>
            </dependency>
            <dependency>
                <groupId>org.powermock</groupId>
                <artifactId>powermock-api-mockito2</artifactId>
                <version>${powermock-core.version}</version>
            </dependency>
            <dependency>
                <groupId>org.powermock</groupId>
                <artifactId>powermock-module-junit4</artifactId>
                <version>${powermock-core.version}</version>
            </dependency>
            <dependency>
                <groupId>org.scala-lang</groupId>
                <artifactId>scala-library</artifactId>
                <version>${scala.version}</version>
            </dependency>
            <dependency>
                <groupId>org.scala-lang</groupId>
                <artifactId>scala-reflect</artifactId>
                <version>${scala.version}</version>
            </dependency>
            <dependency>
                <groupId>org.scalatest</groupId>
                <artifactId>scalatest_2.11</artifactId>
                <version>${scalatest_2.11.version}</version>
            </dependency>
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>jcl-over-slf4j</artifactId>
                <version>${org.slf4j.version}</version>
            </dependency>
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>jul-to-slf4j</artifactId>
                <version>${org.slf4j.version}</version>
            </dependency>
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-api</artifactId>
                <version>${org.slf4j.version}</version>
            </dependency>
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-reload4j</artifactId>
                <version>${org.slf4j.version}</version>
            </dependency>
            <dependency>
                <groupId>org.xerial.snappy</groupId>
                <artifactId>snappy-java</artifactId>
                <version>${snappy.version}</version>
            </dependency>
            <dependency>
                <groupId>com.github.luben</groupId>
                <artifactId>zstd-jni</artifactId>
                <version>${zstd-jni.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.thrift</groupId>
                <artifactId>libthrift</artifactId>
                <version>${thrift.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.apache.httpcomponents</groupId>
                        <artifactId>httpclient</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.apache.httpcomponents</groupId>
                        <artifactId>httpcore</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.apache.tomcat.embed</groupId>
                        <artifactId>tomcat-embed-core</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>io.airlift</groupId>
                <artifactId>units</artifactId>
                <version>${io.airlift.units.version}</version>
            </dependency>
            <dependency>
                <groupId>io.airlift</groupId>
                <artifactId>airline</artifactId>
                <version>${airline.version}</version>
            </dependency>
            <dependency>
                <groupId>io.airlift</groupId>
                <artifactId>slice</artifactId>
                <version>${io.airlift.slice.version}</version>
            </dependency>
            <dependency>
                <groupId>io.airlift</groupId>
                <artifactId>stats</artifactId>
                <version>${dep.airlift.version}</version>
            </dependency>
            <dependency>
                <groupId>io.airlift</groupId>
                <artifactId>concurrent</artifactId>
                <version>${dep.airlift.version}</version>
            </dependency>
            <dependency>
                <groupId>org.openjdk.jol</groupId>
                <artifactId>jol-core</artifactId>
                <version>${jol-core.version}</version>
            </dependency>
            <dependency>
                <groupId>org.fusesource.mqtt-client</groupId>
                <artifactId>mqtt-client</artifactId>
                <version>${mqtt-client.version}</version>
            </dependency>
            <!-- many dependencies (hadoop, spark, hive, flink) use findbugs but with different version...-->
            <dependency>
                <groupId>com.google.code.findbugs</groupId>
                <artifactId>jsr305</artifactId>
                <!-- spark uses the lastest version than hive, flink and hadoop-->
                <version>${google.code.findbugs.jsr305.version}</version>
            </dependency>
            <dependency>
                <groupId>com.google.code.gson</groupId>
                <artifactId>gson</artifactId>
                <version>${gson.version}</version>
            </dependency>
            <!-- for cli and test container -->
            <dependency>
                <groupId>net.java.dev.jna</groupId>
                <artifactId>jna</artifactId>
                <version>${jna.version}</version>
            </dependency>
            <!-- for hadoop connector -->
            <dependency>
                <groupId>org.apache.zookeeper</groupId>
                <artifactId>zookeeper</artifactId>
                <version>${zookeeper.version}</version>
            </dependency>
            <dependency>
                <groupId>commons-beanutils</groupId>
                <artifactId>commons-beanutils</artifactId>
                <version>${commons-beanutils.version}</version>
            </dependency>
            <!-- for test-container and hadoop conflict-->
            <dependency>
                <groupId>org.apache.commons</groupId>
                <artifactId>commons-compress</artifactId>
                <version>${commons-compress.version}</version>
            </dependency>
            <!-- for spark-iotdb-connector and hadoop connector conflict -->
            <dependency>
                <groupId>org.apache.httpcomponents</groupId>
                <artifactId>httpclient</artifactId>
                <version>${httpclient.version}</version>
            </dependency>
            <!-- for spark-iotdb conflict -->
            <dependency>
                <groupId>com.google.errorprone</groupId>
                <artifactId>error_prone_annotations</artifactId>
                <version>${error_prone_annotations.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.httpcomponents</groupId>
                <artifactId>httpcore</artifactId>
                <version>${httpcore.version}</version>
            </dependency>
            <!-- for hive connector-->
            <dependency>
                <groupId>com.github.ben-manes.caffeine</groupId>
                <artifactId>caffeine</artifactId>
                <version>${caffeine}</version>
            </dependency>
            <dependency>
                <groupId>org.awaitility</groupId>
                <artifactId>awaitility</artifactId>
                <version>${awaitility.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.commons</groupId>
                <artifactId>commons-csv</artifactId>
                <version>${commons-csv.version}</version>
            </dependency>
            <dependency>
                <groupId>commons-lang</groupId>
                <artifactId>commons-lang</artifactId>
                <version>${commons-lang.version}</version>
            </dependency>
            <dependency>
                <groupId>org.influxdb</groupId>
                <artifactId>influxdb-java</artifactId>
                <version>${influxdb-java.version}</version>
            </dependency>
            <dependency>
                <groupId>com.github.wendykierp</groupId>
                <artifactId>JTransforms</artifactId>
                <version>${JTransforms.version}</version>
            </dependency>
        </dependencies>
    </dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-classic</artifactId>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.testcontainers</groupId>
            <artifactId>testcontainers</artifactId>
            <version>${testcontainers.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-jexl3</artifactId>
            <version>3.2.1</version>
        </dependency>
    </dependencies>
    <build>
        <pluginManagement>
            <plugins>
                <!-- using `mvn -N versions:update-child-modules` can update the version
                of child modules to what their parent claims -->
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>versions-maven-plugin</artifactId>
                    <version>2.3</version>
                    <configuration>
                        <generateBackupPoms>false</generateBackupPoms>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-javadoc-plugin</artifactId>
                    <configuration>
                        <excludePackageNames>*thrift*</excludePackageNames>
                        <!--
                          This will suppress the generation of a hidden timestamp at the top of each generated html page
                          and hopefully let the site generation nod to too big updates every time.
                        -->
                        <notimestamp>true</notimestamp>
                        <!--Don't fail the build, just because there were issues in the JavaDoc generation.-->
                        <failOnError>false</failOnError>
                    </configuration>
                </plugin>
                <!--
                  We need to increase the memory available to tests as we were
                  getting out-of-memory errors when building on windows machines.
                -->
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-surefire-plugin</artifactId>
                    <configuration>
                        <argLine>${argLine} -Xmx1024m</argLine>
                    </configuration>
                </plugin>
                <!--
                    Plugin for doing the code analysis.
                -->
                <plugin>
                    <groupId>org.sonarsource.scanner.maven</groupId>
                    <artifactId>sonar-maven-plugin</artifactId>
                    <version>3.6.1.1688</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.rat</groupId>
                    <artifactId>apache-rat-plugin</artifactId>
                    <configuration>
                        <consoleOutput>true</consoleOutput>
                        <excludes>
                            <!-- Git related files -->
                            <exclude>**/.git/**</exclude>
                            <exclude>**/.mvn/**</exclude>
                            <exclude>**/.gitignore</exclude>
                            <exclude>**/.gitmodules</exclude>
                            <exclude>**/.git-blame-ignore-revs</exclude>
                            <!-- Maven related files -->
                            <exclude>**/target/**</exclude>
                            <!-- Eclipse related files -->
                            <exclude>**/.project</exclude>
                            <exclude>**/.settings/**</exclude>
                            <exclude>**/.classpath</exclude>
                            <!-- IntelliJ related files -->
                            <exclude>**/.idea/**</exclude>
                            <exclude>**/*.iml</exclude>
                            <!-- Runtime log -->
                            <exclude>**/*.log</exclude>
                            <!-- Exclude CVS files -->
                            <exclude>**/*.cvs</exclude>
                            <!-- licenses -->
                            <exclude>licenses/*</exclude>
                            <!-- only for Travis CI with WinOS-->
                            <exclude>hadoopbin</exclude>
                            <exclude>windowssystem32</exclude>
                            <!-- generated by Github -->
                            <exclude>**/.github/**</exclude>
                            <!-- figures -->
                            <exclude>**/.eps</exclude>
                            <exclude>**/.png</exclude>
                            <exclude>**/.jpg</exclude>
                            <exclude>**/.jpeg</exclude>
                            <!--Generated by Apache Release -->
                            <exclude>local-snapshots-dir/**</exclude>
                            <!-- JSON can't contain comments and therefore no Apache header -->
                            <exclude>*.json</exclude>
                            <!-- visualization plans -->
                            <exclude>**/*.plan</exclude>
                            <exclude>**/NOTICE-binary</exclude>
                            <exclude>**/LICENSE-binary</exclude>
                            <!-- json does not support comments-->
                            <exclude>**/*.json</exclude>
                            <!-- the zeppelin export file format-->
                            <exclude>**/*.zpln</exclude>
                            <!-- exclude go.mod, go.sum and rpc/* in iotdb-client-go submodule-->
                            <exclude>**/go.mod</exclude>
                            <exclude>**/go.sum</exclude>
                            <exclude>client-go/rpc/*</exclude>
                            <!-- python -->
                            <exclude>.pytest_cache/**</exclude>
                            <exclude>venv/**</exclude>
                            <exclude>apache_iotdb.egg-info/**</exclude>
                            <exclude>**/iotdb/thrift/__init__.py</exclude>
                            <exclude>**/iotdb/thrift/rpc/__init__.py</exclude>
                            <exclude>**/iotdb/thrift/common/__init__.py</exclude>
                            <!-- Java SPI uses files in resources/META-INF/services-->
                            <exclude>**/resources/META-INF/services/**</exclude>
                            <!-- grafana plugin -->
                            <exclude>**/yarn.lock</exclude>
                            <!-- site-->
                            <exclude>**/redirects</exclude>
                            <exclude>**/.eslintignore</exclude>
                            <exclude>**/palette.styl</exclude>
                            <exclude>**/RightMenu.vue</exclude>
                        </excludes>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>com.diffplug.spotless</groupId>
                    <artifactId>spotless-maven-plugin</artifactId>
                    <version>${spotless.version}</version>
                    <configuration>
                        <java>
                            <googleJavaFormat>
                                <version>${google.java.format.version}</version>
                                <style>GOOGLE</style>
                            </googleJavaFormat>
                            <importOrder>
                                <order>org.apache.iotdb,,javax,java,\#</order>
                            </importOrder>
                            <removeUnusedImports/>
                        </java>
                        <lineEndings>UNIX</lineEndings>
                    </configuration>
                    <executions>
                        <execution>
                            <id>spotless-check</id>
                            <phase>validate</phase>
                            <goals>
                                <goal>check</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>
            </plugins>
        </pluginManagement>
        <plugins>
            <plugin>
                <groupId>org.eluder.coveralls</groupId>
                <artifactId>coveralls-maven-plugin</artifactId>
                <version>4.3.0</version>
                <configuration>
                    <jacocoReports>
                        <jacocoReport>code-coverage/target/jacoco-merged-reports/jacoco.xml</jacocoReport>
                    </jacocoReports>
                    <sourceEncoding>UTF-8</sourceEncoding>
                    <sourceDirectories>
                        <!-- put all source folders not in src/main/java here-->
                        <sourceDirectory>antlr/target/generated-sources/antlr4</sourceDirectory>
                        <sourceDirectory>thrift/target/generated-sources/thrift</sourceDirectory>
                        <sourceDirectory>thrift-commons/target/generated-sources/thrift</sourceDirectory>
                        <sourceDirectory>thrift-confignode/target/generated-sources/thrift</sourceDirectory>
                        <sourceDirectory>thrift-iot-consensus/target/generated-sources/thrift</sourceDirectory>
                        <sourceDirectory>thrift-sync/target/generated-sources/thrift</sourceDirectory>
                        <sourceDirectory>thrift-cluster/target/generated-sources/thrift</sourceDirectory>
                        <sourceDirectory>thrift-influxdb/target/generated-sources/thrift</sourceDirectory>
                        <sourceDirectory>openapi/target/generated-sources/java/src/gen/java</sourceDirectory>
                        <sourceDirectory>openapi/target/generated-sources/java/src/main/java</sourceDirectory>
                        <sourceDirectory>spark-iotdb-connector/src/main/scala</sourceDirectory>
                        <sourceDirectory>spark-tsfile/src/main/scala</sourceDirectory>
                    </sourceDirectories>
                </configuration>
                <!-- JDK11 removes the following libs. We have to add them-->
                <dependencies>
                    <dependency>
                        <groupId>javax.xml.bind</groupId>
                        <artifactId>jaxb-api</artifactId>
                        <version>2.4.0-b180830.0359</version>
                    </dependency>
                    <dependency>
                        <groupId>com.sun.xml.bind</groupId>
                        <artifactId>jaxb-core</artifactId>
                        <version>2.3.0</version>
                    </dependency>
                    <dependency>
                        <groupId>com.sun.xml.bind</groupId>
                        <artifactId>jaxb-impl</artifactId>
                        <version>2.3.6</version>
                    </dependency>
                </dependencies>
            </plugin>
            <!--
                      Strange things usually happen if you run with a too low Java version.
                      This plugin not only checks the minimum java version of 1.8, but also
                      checks all dependencies (and transitive dependencies) for reported CVEs.
                    -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-enforcer-plugin</artifactId>
                <version>3.0.0-M2</version>
                <!--$NO-MVN-MAN-VER$-->
                <executions>
                    <!-- Ensure we're not mixing dependency versions -->
                    <execution>
                        <id>enforce-version-convergence</id>
                        <phase>validate</phase>
                        <configuration>
                            <rules>
                                <dependencyConvergence/>
                            </rules>
                        </configuration>
                        <goals>
                            <goal>enforce</goal>
                        </goals>
                    </execution>
                    <!--
                        Fails the build if classes are included from multiple
                        artifacts and these are not identical.
                    -->
                    <!--execution>
                        <id>enforce-ban-duplicate-classes</id>
                        <goals>
                            <goal>enforce</goal>
                        </goals>
                        <configuration>
                            <rules>
                                <banDuplicateClasses>
                                    <scopes>
                                        <scope>compile</scope>
                                        <scope>provided</scope>
                                    </scopes>
                                    <findAllDuplicates>true</findAllDuplicates>
                                    <ignoreWhenIdentical>true</ignoreWhenIdentical>
                                </banDuplicateClasses>
                            </rules>
                            <fail>true</fail>
                        </configuration>
                    </execution-->
                    <!-- Make sure no dependencies are used for which known vulnerabilities exist. -->
                    <execution>
                        <id>vulnerability-checks</id>
                        <phase>validate</phase>
                        <goals>
                            <goal>enforce</goal>
                        </goals>
                        <configuration>
                            <!-- Just generate warnings for now -->
                            <fail>false</fail>
                            <rules>
                                <requireJavaVersion>
                                    <version>1.8.0</version>
                                </requireJavaVersion>
                                <!-- Disabled for now as it breaks the ability to build single modules -->
                                <!--reactorModuleConvergence/-->
                                <banVulnerable implementation="org.sonatype.ossindex.maven.enforcer.BanVulnerableDependencies"/>
                            </rules>
                        </configuration>
                    </execution>
                </executions>
                <dependencies>
                    <dependency>
                        <groupId>org.sonatype.ossindex.maven</groupId>
                        <artifactId>ossindex-maven-enforcer-rules</artifactId>
                        <version>1.0.0</version>
                    </dependency>
                    <dependency>
                        <groupId>org.codehaus.mojo</groupId>
                        <artifactId>extra-enforcer-rules</artifactId>
                        <version>1.4</version>
                    </dependency>
                </dependencies>
            </plugin>
            <!--
              Even if Maven transitively pulls in dependencies, relying on these can
              quite often cause hard to find problems. So it's a good practice to make
              sure everything directly required is also directly added as a dependency.
              On the other side adding unused dependency only over-complicates the
              the dependency graph, so the maven-dependency-plugin checks we depend on
              what we need and only that and that runtime dependencies are correctly
              imported with runtime scope.
            -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-dependency-plugin</artifactId>
                <executions>
                    <execution>
                        <id>check-dependencies</id>
                        <phase>verify</phase>
                        <goals>
                            <goal>analyze-only</goal>
                        </goals>
                        <configuration>
                            <failOnWarning>false</failOnWarning>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>net.revelc.code.formatter</groupId>
                <artifactId>formatter-maven-plugin</artifactId>
                <version>2.8.1</version>
            </plugin>
            <!--for code style check -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-checkstyle-plugin</artifactId>
                <version>3.1.2</version>
                <dependencies>
                    <dependency>
                        <groupId>com.puppycrawl.tools</groupId>
                        <artifactId>checkstyle</artifactId>
                        <version>8.45.1</version>
                    </dependency>
                </dependencies>
                <executions>
                    <execution>
                        <id>validate</id>
                        <phase>validate</phase>
                        <goals>
                            <goal>check</goal>
                        </goals>
                        <configuration>
                            <outputFile>target/checkstyle-report.xml</outputFile>
                            <configLocation>checkstyle.xml</configLocation>
                        </configuration>
                    </execution>
                </executions>
                <configuration>
                    <configLocation>checkstyle.xml</configLocation>
                    <includeTestSourceDirectory>true</includeTestSourceDirectory>
                </configuration>
            </plugin>
            <!--
              Check if all files contain Apache headers in them.
              Ignore this plugin, we use license-maven-plugin to check apache header.
            -->
            <plugin>
                <groupId>org.apache.rat</groupId>
                <artifactId>apache-rat-plugin</artifactId>
                <executions>
                    <execution>
                        <id>license-check</id>
                        <phase>verify</phase>
                        <goals>
                            <goal>check</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>au.com.acegi</groupId>
                <artifactId>xml-format-maven-plugin</artifactId>
                <version>3.0.7</version>
                <executions>
                    <execution>
                        <id>xml-format</id>
                        <phase>compile</phase>
                        <goals>
                            <goal>xml-format</goal>
                        </goals>
                        <configuration>
                            <!-- configure your formatting preferences here (see link below) -->
                            <indentSize>4</indentSize>
                            <excludes>
                                <exclude>**/target/**</exclude>
                                <exclude>**/checkstyle.xml</exclude>
                                <exclude>**/import-control.xml</exclude>
                            </excludes>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <!--
              Generate the legally required text files in the jars
            -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-remote-resources-plugin</artifactId>
                <executions>
                    <execution>
                        <id>process-resource-bundles</id>
                        <goals>
                            <goal>process</goal>
                        </goals>
                        <configuration>
                            <resourceBundles>
                                <!-- Will generate META-INF/{DEPENDENCIES,LICENSE,NOTICE} -->
                                <resourceBundle>org.apache:apache-jar-resource-bundle:1.4</resourceBundle>
                            </resourceBundles>
                            <!-- Content in this directory will be appended to generated resources -->
                            <appendedResourcesDirectory>${basedir}/src/remote-resources</appendedResourcesDirectory>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <!-- Separates the unit tests from the integration tests. -->
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <executions>
                    <execution>
                        <id>unit-tests</id>
                        <phase>test</phase>
                        <goals>
                            <goal>test</goal>
                        </goals>
                        <configuration>
                            <includes>
                                <!-- Include unit tests within integration-test phase. -->
                                <include>src/test/**/*Test.java</include>
                            </includes>
                            <excludes>
                                <!-- Exclude integration tests within (unit) test phase. -->
                                <exclude>src/test/**/*IT.java</exclude>
                            </excludes>
                        </configuration>
                    </execution>
                    <execution>
                        <id>integration-tests</id>
                        <phase>integration-test</phase>
                        <goals>
                            <goal>test</goal>
                        </goals>
                        <configuration>
                            <includes>
                                <!-- Include integration tests within integration-test phase. -->
                                <include>src/test/**/*IT.java</include>
                            </includes>
                            <excludes>
                                <!-- Exclude unit tests within (unit) test phase. -->
                                <exclude>src/test/**/*Test.java</exclude>
                            </excludes>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <!-- Also package the sources as jar -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-source-plugin</artifactId>
                <version>3.2.0</version>
                <executions>
                    <execution>
                        <id>create-source-package</id>
                        <phase>package</phase>
                        <goals>
                            <goal>jar</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
    <profiles>
        <!-- spotless is too slow, so we put it into a profile to skip it if needed -->
        <profile>
            <id>spotless</id>
            <activation>
                <!-- activeByDefault does not take effect-->
                <file>
                    <exists>.</exists>
                </file>
            </activation>
            <build>
                <plugins>
                    <plugin>
                        <groupId>com.diffplug.spotless</groupId>
                        <artifactId>spotless-maven-plugin</artifactId>
                    </plugin>
                </plugins>
            </build>
        </profile>
        <!--
          A set of profiles defining the different properties needed to download and run thrift
          They are automatically activated depending on the OS you are using.
        -->
        <profile>
            <id>windows</id>
            <activation>
                <os>
                    <family>windows</family>
                </os>
            </activation>
            <properties>
                <os.classifier>windows-x86_64</os.classifier>
                <thrift.download-url>http://archive.apache.org/dist/thrift/${thrift.version}/thrift-${thrift.version}.exe</thrift.download-url>
                <thrift.executable>thrift-${thrift.version}-win-x86_64.exe</thrift.executable>
                <thrift.skip-making-executable>true</thrift.skip-making-executable>
                <thrift.exec-cmd.executable>echo</thrift.exec-cmd.executable>
                <thrift.exec-cmd.args>"Do nothing"</thrift.exec-cmd.args>
            </properties>
        </profile>
        <!-- Has to be listed before "mac" as it seems a mac is both "mac" and "unix" -->
        <profile>
            <id>unix</id>
            <activation>
                <os>
                    <family>unix</family>
                </os>
            </activation>
            <properties>
                <os.classifier>linux-x86_64</os.classifier>
                <thrift.download-url>https://gitbox.apache.org/repos/asf?p=iotdb-bin-resources.git;a=blob_plain;f=compile-tools/thrift-0.14-ubuntu;hb=HEAD</thrift.download-url>
                <thrift.executable>thrift_0.14.1_linux</thrift.executable>
                <thrift.skip-making-executable>false</thrift.skip-making-executable>
                <thrift.exec-cmd.executable>chmod</thrift.exec-cmd.executable>
                <thrift.exec-cmd.args>+x ${project.build.directory}/tools/${thrift.executable}</thrift.exec-cmd.args>
            </properties>
        </profile>
        <profile>
            <id>mac</id>
            <activation>
                <os>
                    <family>mac</family>
                </os>
            </activation>
            <properties>
                <os.classifier>mac-x86_64</os.classifier>
                <thrift.download-url>https://gitbox.apache.org/repos/asf?p=iotdb-bin-resources.git;a=blob_plain;f=compile-tools/thrift-0.14-MacOS;hb=HEAD</thrift.download-url>
                <thrift.executable>thrift_0.14.1_mac</thrift.executable>
                <thrift.skip-making-executable>false</thrift.skip-making-executable>
                <thrift.exec-cmd.executable>chmod</thrift.exec-cmd.executable>
                <thrift.exec-cmd.args>+x ${project.build.directory}/tools/${thrift.executable}</thrift.exec-cmd.args>
            </properties>
        </profile>
        <!-- for TestContainer. As it requires docker, we have to detect whether docker exists.-->
        <profile>
            <!-- Mac and Unix-->
            <id>unixDockerCheck</id>
            <activation>
                <file>
                    <exists>/var/run/docker.sock</exists>
                </file>
            </activation>
            <modules>
                <module>testcontainer</module>
            </modules>
        </profile>
        <profile>
            <id>WinDockerCheck</id>
            <activation>
                <file>
                    <exists>C:\Program Files\Docker\Docker\resources\bin\docker.exe</exists>
                </file>
            </activation>
            <modules>
                <module>testcontainer</module>
            </modules>
        </profile>
        <!-- Some APIs were removed in Java 11, so we need to add replacements -->
        <profile>
            <id>java-11-and-above</id>
            <activation>
                <!-- This needs to be updated as soon as Java 20 is shipped -->
                <jdk>[11,20)</jdk>
            </activation>
            <properties>
                <maven.compiler.release>8</maven.compiler.release>
                <!-- change to 1.15.0 will modify many codes (all are javadocs), we change it to 1.15.0
                until: iotdb decides to do not support jdk8-->
                <google.java.format.version>1.7</google.java.format.version>
            </properties>
            <dependencies>
                <!-- for jdk-11 -->
                <dependency>
                    <groupId>javax.annotation</groupId>
                    <artifactId>javax.annotation-api</artifactId>
                </dependency>
                <dependency>
                    <groupId>javax.xml.bind</groupId>
                    <artifactId>jaxb-api</artifactId>
                </dependency>
                <dependency>
                    <groupId>org.glassfish.jaxb</groupId>
                    <artifactId>jaxb-runtime</artifactId>
                </dependency>
            </dependencies>
        </profile>
        <!-- Add argLine for Java 16 and above, due to [JEP 396: Strongly Encapsulate JDK Internals by Default]
          (https://openjdk.java.net/jeps/396) -->
        <profile>
            <id>java-16-and-above</id>
            <activation>
                <!-- This needs to be updated as soon as Java 20 is shipped -->
                <jdk>[16,20)</jdk>
            </activation>
            <properties>
                <maven.compiler.release>8</maven.compiler.release>
                <argLine>--illegal-access=permit --add-opens=java.base/java.util.concurrent=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.nio=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.base/java.net=ALL-UNNAMED --add-exports=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED --add-exports=jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED --add-exports=jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED --add-exports=jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED --add-exports=jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED</argLine>
            </properties>
        </profile>
        <!--
          Self activating profile, that activates itself as soon as a "src/main/thrift" directory is found.
          The different plugins here download the thrift executable matching the current os, make that
          executable (on mac and unix/linux) and run the code generation.

          Note to the Download: The download-maven-plugin checks if a resource is previously downloaded
          and only downloads each file once. It caches downloaded files in:
          {maven local repo}/.cache/download-maven-plugin
        -->
        <profile>
            <id>thrift-generation</id>
            <activation>
                <file>
                    <exists>src/main/thrift</exists>
                </file>
            </activation>
            <properties>
                <thrift.exec.absolute.path>${project.build.directory}/tools/${thrift.executable}</thrift.exec.absolute.path>
            </properties>
            <build>
                <plugins>
                    <plugin>
                        <groupId>com.googlecode.maven-download-plugin</groupId>
                        <artifactId>download-maven-plugin</artifactId>
                        <version>1.6.7</version>
                        <executions>
                            <execution>
                                <id>get-thrift-executable</id>
                                <phase>generate-sources</phase>
                                <goals>
                                    <goal>wget</goal>
                                </goals>
                                <configuration>
                                    <url>${thrift.download-url}</url>
                                    <outputDirectory>${project.build.directory}/tools</outputDirectory>
                                    <outputFileName>${thrift.executable}</outputFileName>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                    <plugin>
                        <groupId>org.codehaus.mojo</groupId>
                        <artifactId>exec-maven-plugin</artifactId>
                        <version>1.6.0</version>
                        <executions>
                            <execution>
                                <id>make-thrift-executable-executable</id>
                                <phase>generate-sources</phase>
                                <goals>
                                    <goal>exec</goal>
                                </goals>
                                <configuration>
                                    <skip>${thrift.skip-making-executable}</skip>
                                    <executable>${thrift.exec-cmd.executable}</executable>
                                    <commandlineArgs>${thrift.exec-cmd.args}</commandlineArgs>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                    <plugin>
                        <groupId>org.apache.thrift.tools</groupId>
                        <artifactId>maven-thrift-plugin</artifactId>
                        <version>0.1.11</version>
                        <executions>
                            <execution>
                                <id>generate-thrift-sources-java</id>
                                <phase>generate-sources</phase>
                                <goals>
                                    <goal>compile</goal>
                                </goals>
                                <configuration>
                                    <generator>java</generator>
                                    <thriftExecutable>${thrift.exec.absolute.path}</thriftExecutable>
                                    <thriftSourceRoot>${basedir}/src/main/thrift</thriftSourceRoot>
                                </configuration>
                            </execution>
                            <execution>
                                <id>generate-thrift-sources-python</id>
                                <phase>generate-sources</phase>
                                <goals>
                                    <goal>compile</goal>
                                </goals>
                                <configuration>
                                    <generator>py</generator>
                                    <thriftExecutable>${thrift.exec.absolute.path}</thriftExecutable>
                                    <thriftSourceRoot>${basedir}/src/main/thrift</thriftSourceRoot>
                                    <includes>**/common.thrift,**/client.thrift,**/datanode.thrift,**/confignode.thrift,**/mlnode.thrift</includes>
                                    <outputDirectory>${project.build.directory}/generated-sources-python/</outputDirectory>
                                </configuration>
                            </execution>
                            <execution>
                                <id>generate-thrift-sources-go</id>
                                <phase>generate-sources</phase>
                                <goals>
                                    <goal>compile</goal>
                                </goals>
                                <configuration>
                                    <generator>go</generator>
                                    <thriftExecutable>${thrift.exec.absolute.path}</thriftExecutable>
                                    <thriftSourceRoot>${basedir}/src/main/thrift</thriftSourceRoot>
                                    <includes>**/common.thrift,**/client.thrift</includes>
                                    <outputDirectory>${project.build.directory}/generated-sources-go</outputDirectory>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
        <!-- Make sure the source assembly has the right name -->
        <profile>
            <id>apache-release</id>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-assembly-plugin</artifactId>
                        <version>${maven.assembly.version}</version>
                        <executions>
                            <execution>
                                <id>source-release-assembly</id>
                                <phase>package</phase>
                                <goals>
                                    <goal>single</goal>
                                </goals>
                                <!-- heads up: combine.self in the following is highlighted
                                    as an error in Eclipse's xml editor view.
                                    Just ignore that.
                                    See  https://issues.apache.org/jira/browse/MNG-5454  sigh.
                                 -->
                                <configuration combine.self="append">
                                    <finalName>apache-iotdb-${project.version}</finalName>
                                    <archive>
                                        <manifest>
                                            <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
                                            <addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
                                        </manifest>
                                    </archive>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                    <!--
                      Create SHA512 checksum files for the release artifacts.
                    -->
                    <plugin>
                        <groupId>net.nicoulaj.maven.plugins</groupId>
                        <artifactId>checksum-maven-plugin</artifactId>
                        <version>1.8</version>
                        <executions>
                            <execution>
                                <id>sign-source-release</id>
                                <phase>package</phase>
                                <goals>
                                    <goal>files</goal>
                                </goals>
                                <configuration>
                                    <algorithms>
                                        <algorithm>SHA-512</algorithm>
                                    </algorithms>
                                    <fileSets>
                                        <fileSet>
                                            <directory>${project.build.directory}</directory>
                                            <includes>
                                                <include>apache-iotdb-${project.version}-source-release.zip</include>
                                            </includes>
                                        </fileSet>
                                    </fileSets>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
        <!-- enable site-->
        <!-- use `mvn package -P site -pl site` to compile the site module only -->
        <profile>
            <id>site</id>
            <modules>
                <module>site</module>
            </modules>
        </profile>
        <!-- code coverage for ut and it, and then merge them together.-->
        <profile>
            <id>code-coverage</id>
            <modules>
                <module>code-coverage</module>
            </modules>
            <build>
                <plugins>
                    <!-- Jacoco is a code coverage analysis plugin when tests run.
                    (not a static code analysis tool)-->
                    <plugin>
                        <groupId>org.jacoco</groupId>
                        <artifactId>jacoco-maven-plugin</artifactId>
                        <version>0.8.7</version>
                        <configuration>
                            <excludes>
                                <exclude>org/apache/iotdb/service/sync/thrift/*</exclude>
                                <exclude>org/apache/iotdb/service/rpc/thrift/*</exclude>
                                <exclude>org/apache/iotdb/protocol/influxdb/rpc/thrift/*</exclude>
                                <exclude>org/apache/iotdb/db/qp/sql/*</exclude>
                            </excludes>
                            <rules>
                                <rule implementation="org.jacoco.maven.RuleConfiguration">
                                    <element>BUNDLE</element>
                                    <limits>　　
                                        <!-- Cover methodes >=30%. (the plugin does not support
                                        ignore getter and setter and toString etc..) -->
                                        <limit implementation="org.jacoco.report.check.Limit">
                                            <counter>METHOD</counter>
                                            <value>COVEREDRATIO</value>
                                            <minimum>0.00</minimum>
                                        </limit>
                                        <!-- if-else, swtich etc.. >=70% -->
                                        <limit implementation="org.jacoco.report.check.Limit">
                                            <counter>BRANCH</counter>
                                            <value>COVEREDRATIO</value>
                                            <minimum>0.00</minimum>
                                        </limit>
                                        <!-- class files >=95% -->
                                        <limit implementation="org.jacoco.report.check.Limit">
                                            <counter>CLASS</counter>
                                            <value>COVEREDRATIO</value>
                                            <minimum>0.00</minimum>
                                        </limit>
                                    </limits>
                                </rule>
                            </rules>
                        </configuration>
                        <executions>
                            <!-- see https://natritmeyer.com/howto/reporting-aggregated-unit-and-integration-test-coverage-with-jacoco/-->
                            <!-- For UT-->
                            <execution>
                                <id>prepare-ut</id>
                                <goals>
                                    <goal>prepare-agent</goal>
                                </goals>
                                <configuration>
                                    <destFile>${project.build.directory}/${project.build.finalName}-jacoco-unit-tests.exec</destFile>
                                    <propertyName>surefire.jacoco.args</propertyName>
                                </configuration>
                            </execution>
                            <!-- attached to Maven test phase -->
                            <execution>
                                <id>ut-report</id>
                                <phase>test</phase>
                                <goals>
                                    <goal>report</goal>
                                    <goal>check</goal>
                                </goals>
                                <configuration>
                                    <dataFile>${project.build.directory}/${project.build.finalName}-jacoco-unit-tests.exec</dataFile>
                                    <outputDirectory>${project.build.directory}/jacoco-unit-reports</outputDirectory>
                                </configuration>
                            </execution>
                            <!-- For IT-->
                            <execution>
                                <id>before-integration-test-execution</id>
                                <phase>pre-integration-test</phase>
                                <goals>
                                    <goal>prepare-agent</goal>
                                </goals>
                                <configuration>
                                    <destFile>${project.build.directory}/${project.build.finalName}-jacoco-integration-tests.exec</destFile>
                                    <propertyName>failsafe.jacoco.args</propertyName>
                                </configuration>
                            </execution>
                            <execution>
                                <id>after-integration-test-execution</id>
                                <phase>integration-test</phase>
                                <goals>
                                    <goal>report</goal>
                                    <goal>check</goal>
                                </goals>
                                <configuration>
                                    <dataFile>${project.build.directory}/${project.build.finalName}-jacoco-integration-tests.exec</dataFile>
                                    <outputDirectory>${project.build.directory}/jacoco-integration-reports</outputDirectory>
                                </configuration>
                            </execution>
                            <execution>
                                <id>merge-unit-and-integration</id>
                                <phase>post-integration-test</phase>
                                <goals>
                                    <goal>merge</goal>
                                </goals>
                                <configuration>
                                    <fileSets>
                                        <fileSet>
                                            <directory>${project.build.directory}/</directory>
                                            <includes>
                                                <include>*.exec</include>
                                            </includes>
                                        </fileSet>
                                    </fileSets>
                                    <destFile>${project.build.directory}/${project.build.finalName}-merged.exec</destFile>
                                </configuration>
                            </execution>
                            <execution>
                                <id>create-merged-report</id>
                                <phase>post-integration-test</phase>
                                <goals>
                                    <goal>report</goal>
                                    <goal>check</goal>
                                </goals>
                                <configuration>
                                    <dataFile>${project.build.directory}/${project.build.finalName}-merged.exec</dataFile>
                                    <outputDirectory>${project.build.directory}/jacoco-merged-reports</outputDirectory>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                    <!-- overwrite argLine-->
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-surefire-plugin</artifactId>
                        <configuration>
                            <argLine>${argLine} @{surefire.jacoco.args} -Xmx1024m</argLine>
                        </configuration>
                    </plugin>
                    <!-- for IT-->
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-failsafe-plugin</artifactId>
                        <configuration>
                            <argLine>${argLine} @{failsafe.jacoco.args} -Xmx1024m</argLine>
                        </configuration>
                        <executions>
                            <execution>
                                <goals>
                                    <goal>integration-test</goal>
                                    <goal>verify</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
        <!-- upload code coverage report to coveralls.io-->
        <!-- to enable coveralls locally, you need to get the repoToken from https://coveralls.io/github/apache/iotdb.
             use `mvn post-integration-test -Pcode-coverage -DrepoToken=TOKEN`-->
        <profile>
            <id>enforce</id>
            <properties>
                <enforcer.skip>false</enforcer.skip>
            </properties>
        </profile>
    </profiles>
</project>
