<?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>
    <!--Add the JitPack repository because the moquette-broker dependency needs to be resolved from the JitPack repository-->
    <repositories>
        <repository>
            <id>jitpack.io</id>
            <url>https://jitpack.io</url>
        </repository>
    </repositories>
    <parent>
        <groupId>org.apache</groupId>
        <artifactId>apache</artifactId>
        <version>31</version>
    </parent>
    <groupId>org.apache.iotdb</groupId>
    <artifactId>iotdb-parent</artifactId>
    <version>2.0.11-SNAPSHOT</version>
    <packaging>pom</packaging>
    <name>Apache IoTDB Project Parent POM</name>
    <description>This is the top level project that builds, packages the iotdb engine, client, and integration libs.</description>
    <modules>
        <module>iotdb-api</module>
        <module>iotdb-client</module>
        <module>iotdb-core</module>
        <module>iotdb-protocol</module>
        <module>distribution</module>
        <module>example</module>
        <module>library-udf</module>
        <module>external-service-impl</module>
    </modules>
    <properties>
        <airlift-units.version>1.7</airlift-units.version>
        <airlift.version>206</airlift.version>
        <!--airlift-stats.version>235</airlift-stats.version-->
        <airline.version>0.9</airline.version>
        <antlr4.version>4.13.2</antlr4.version>
        <!-- By default, the argLine is empty-->
        <argLine/>
        <awaitility.version>4.2.0</awaitility.version>
        <boost.include.dir/>
        <bouncycastle.version>1.84</bouncycastle.version>
        <caffeine.version>2.9.3</caffeine.version>
        <cglib.version>3.3.0</cglib.version>
        <cmake.build.type>Release</cmake.build.type>
        <commons-cli.version>1.5.0</commons-cli.version>
        <commons-codec.version>1.16.1</commons-codec.version>
        <commons-csv.version>1.10.0</commons-csv.version>
        <commons-math3.version>3.6.1</commons-math3.version>
        <commons-pool2.version>2.11.1</commons-pool2.version>
        <commons-lang3.version>3.18.0</commons-lang3.version>
        <ctest.skip.tests>false</ctest.skip.tests>
        <drill.freemarker.maven.plugin.version>1.21.1</drill.freemarker.maven.plugin.version>
        <dropwizard.metrics.version>4.2.19</dropwizard.metrics.version>
        <eclipse-collections.version>11.1.0</eclipse-collections.version>
        <!-- disable enforcer by default-->
        <enforcer.skip>true</enforcer.skip>
        <felix.version>5.1.9</felix.version>
        <findbugs.jsr305.version>3.0.2</findbugs.jsr305.version>
        <fusesource-mqtt-client.version>1.16</fusesource-mqtt-client.version>
        <google.java.format.version>1.28.0</google.java.format.version>
        <gson.version>2.13.1</gson.version>
        <guava.version>32.1.2-jre</guava.version>
        <h2.version>2.2.224</h2.version>
        <httpclient.version>4.5.14</httpclient.version>
        <httpcore.version>4.4.16</httpcore.version>
        <!--
      This is the version of the thrift binary, that we release separately from here:
      https://github.com/apache/iotdb-bin-resources/tree/main/iotdb-tools-thrift
    -->
        <iotdb-tools-thrift.version>0.23.0.0</iotdb-tools-thrift.version>
        <jackson.version>2.18.6</jackson.version>
        <jakarta.annotation-api.version>3.0.0</jakarta.annotation-api.version>
        <jakarta.servlet-api.version>6.0.0</jakarta.servlet-api.version>
        <jakarta.validation-api.version>3.0.2</jakarta.validation-api.version>
        <jakarta.ws.rs-api.version>3.1.0</jakarta.ws.rs-api.version>
        <java-websocket.version>1.5.4</java-websocket.version>
        <jcip-annotations.version>1.0-1</jcip-annotations.version>
        <jersey.version>3.1.11</jersey.version>
        <jetty.version>12.0.36</jetty.version>
        <jline.version>3.26.2</jline.version>
        <jna.version>5.14.0</jna.version>
        <jtransforms.version>3.1</jtransforms.version>
        <junit.version>4.13.2</junit.version>
        <logback.version>1.5.34</logback.version>
        <lz4-java.version>1.10.1</lz4-java.version>
        <maven.assembly.version>3.6.0</maven.assembly.version>
        <maven.compiler.source>17</maven.compiler.source>
        <maven.compiler.target>17</maven.compiler.target>
        <micrometer.version>1.11.4</micrometer.version>
        <milo.version>0.6.14</milo.version>
        <!-- It seems that powermock is having issues with the newest mockito versions -->
        <mockito.version>2.23.4</mockito.version>
        <!--mockito.version>4.11.0</mockito.version-->
        <moquette.version>0.18.0</moquette.version>
        <netty.version>4.1.134.Final</netty.version>
        <openapi.generator.version>7.10.0</openapi.generator.version>
        <osgi.version>7.0.0</osgi.version>
        <pax-jdbc-common.version>1.5.6</pax-jdbc-common.version>
        <powermock.version>2.0.9</powermock.version>
        <ratis-thirdparty-misc.version>1.0.11</ratis-thirdparty-misc.version>
        <ratis.version>3.3.0-adac7ef-SNAPSHOT</ratis.version>
        <reactive-streams.version>1.0.4</reactive-streams.version>
        <reactor-netty.version>1.2.9</reactor-netty.version>
        <reactor.version>3.7.9</reactor.version>
        <reflections.version>0.10.2</reflections.version>
        <slf4j.version>2.0.9</slf4j.version>
        <snappy-java.version>1.1.10.5</snappy-java.version>
        <sonar.coverage.jacoco.xmlReportPaths>target/jacoco-merged-reports/jacoco.xml</sonar.coverage.jacoco.xmlReportPaths>
        <!-- Exclude all generated code -->
        <sonar.exclusions>**/generated-sources</sonar.exclusions>
        <sonar.test.exclusions>**/test/**</sonar.test.exclusions>
        <!-- URL of the ASF SonarQube server -->
        <sonar.host.url>https://sonarcloud.io</sonar.host.url>
        <sonar.java.checkstyle.reportPaths>target/checkstyle-report.xml</sonar.java.checkstyle.reportPaths>
        <sonar.junit.reportPaths>target/surefire-reports,target/failsafe-reports</sonar.junit.reportPaths>
        <sonar.organization>apache</sonar.organization>
        <!-- Override this to `true`, if you want to disable spotless -->
        <spotless.skip>false</spotless.skip>
        <spotless.version>2.44.5</spotless.version>
        <clang.format.version>17.0.6</clang.format.version>
        <swagger.version>2.2.50</swagger.version>
        <thrift.exec-cmd.executable>chmod</thrift.exec-cmd.executable>
        <thrift.exec.absolute.path/>
        <thrift.version>0.23.0</thrift.version>
        <xz.version>1.9</xz.version>
        <zstd-jni.version>1.5.6-3</zstd-jni.version>
        <tsfile.version>2.3.2-260616-SNAPSHOT</tsfile.version>
        <i18n.locale>en</i18n.locale>
        <tsfile.locale.opt/>
    </properties>
    <!--
    if we claim dependencies in dependencyManagement, then we do not claim
    their version in subproject's pom, but we have to claim themselves again
    in subprojects
  -->
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>io.netty</groupId>
                <artifactId>netty-bom</artifactId>
                <version>${netty.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-api</artifactId>
                <version>${slf4j.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.thrift</groupId>
                <artifactId>libthrift</artifactId>
                <version>${thrift.version}</version>
                <exclusions>
                    <!-- We don't use thrift HTTP client or servlet transports. -->
                    <exclusion>
                        <groupId>org.apache.httpcomponents.client5</groupId>
                        <artifactId>httpclient5</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.apache.httpcomponents.core5</groupId>
                        <artifactId>httpcore5</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.apache.httpcomponents.core5</groupId>
                        <artifactId>httpcore5-h2</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>jakarta.servlet</groupId>
                        <artifactId>jakarta.servlet-api</artifactId>
                    </exclusion>
                    <!--
                      Thrift generated Java sources suppress @Generated annotations.
                      IoTDB does not use libthrift APIs that require Jakarta annotations.
                    -->
                    <exclusion>
                        <groupId>jakarta.annotation</groupId>
                        <artifactId>jakarta.annotation-api</artifactId>
                    </exclusion>
                    <!--
                      commons-lang3 is only used by Thrift's partial deserialization runtime.
                      IoTDB does not use org.apache.thrift.partial APIs.
                    -->
                    <exclusion>
                        <groupId>org.apache.commons</groupId>
                        <artifactId>commons-lang3</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>commons-cli</groupId>
                <artifactId>commons-cli</artifactId>
                <version>${commons-cli.version}</version>
            </dependency>
            <dependency>
                <groupId>org.jline</groupId>
                <artifactId>jline</artifactId>
                <version>${jline.version}</version>
            </dependency>
            <dependency>
                <groupId>net.java.dev.jna</groupId>
                <artifactId>jna</artifactId>
                <version>${jna.version}</version>
            </dependency>
            <dependency>
                <groupId>net.java.dev.jna</groupId>
                <artifactId>jna-platform</artifactId>
                <version>${jna.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.commons</groupId>
                <artifactId>commons-csv</artifactId>
                <version>${commons-csv.version}</version>
            </dependency>
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>${junit.version}</version>
            </dependency>
            <dependency>
                <groupId>org.mockito</groupId>
                <artifactId>mockito-core</artifactId>
                <version>${mockito.version}</version>
            </dependency>
            <dependency>
                <groupId>org.antlr</groupId>
                <artifactId>antlr4-runtime</artifactId>
                <version>${antlr4.version}</version>
            </dependency>
            <dependency>
                <groupId>org.osgi</groupId>
                <artifactId>osgi.cmpn</artifactId>
                <version>${osgi.version}</version>
            </dependency>
            <dependency>
                <groupId>org.osgi</groupId>
                <artifactId>osgi.core</artifactId>
                <version>${osgi.version}</version>
            </dependency>
            <dependency>
                <groupId>org.ops4j.pax.jdbc</groupId>
                <artifactId>pax-jdbc-common</artifactId>
                <version>${pax-jdbc-common.version}</version>
            </dependency>
            <dependency>
                <groupId>org.xerial.snappy</groupId>
                <artifactId>snappy-java</artifactId>
                <version>${snappy-java.version}</version>
            </dependency>
            <dependency>
                <groupId>org.powermock</groupId>
                <artifactId>powermock-reflect</artifactId>
                <version>${powermock.version}</version>
            </dependency>
            <dependency>
                <groupId>com.google.guava</groupId>
                <artifactId>guava</artifactId>
                <version>${guava.version}</version>
            </dependency>
            <dependency>
                <groupId>org.java-websocket</groupId>
                <artifactId>Java-WebSocket</artifactId>
                <version>${java-websocket.version}</version>
            </dependency>
            <dependency>
                <groupId>com.google.code.findbugs</groupId>
                <artifactId>jsr305</artifactId>
                <version>${findbugs.jsr305.version}</version>
            </dependency>
            <dependency>
                <groupId>jakarta.annotation</groupId>
                <artifactId>jakarta.annotation-api</artifactId>
                <version>${jakarta.annotation-api.version}</version>
            </dependency>
            <dependency>
                <groupId>com.google.code.gson</groupId>
                <artifactId>gson</artifactId>
                <version>${gson.version}</version>
            </dependency>
            <dependency>
                <groupId>jakarta.servlet</groupId>
                <artifactId>jakarta.servlet-api</artifactId>
                <version>${jakarta.servlet-api.version}</version>
            </dependency>
            <dependency>
                <groupId>org.bouncycastle</groupId>
                <artifactId>bcprov-jdk18on</artifactId>
                <version>${bouncycastle.version}</version>
            </dependency>
            <dependency>
                <groupId>org.bouncycastle</groupId>
                <artifactId>bcpkix-jdk18on</artifactId>
                <version>${bouncycastle.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.tsfile</groupId>
                <artifactId>tsfile</artifactId>
                <version>${tsfile.version}</version>
                <!-- Once tsfile switch to at.yawk.lz4:lz4-java, remove the following part -->
                <exclusions>
                    <exclusion>
                        <groupId>org.lz4</groupId>
                        <artifactId>lz4-java</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.apache.ratis</groupId>
                <artifactId>ratis-server</artifactId>
                <version>${ratis.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.ratis</groupId>
                <artifactId>ratis-server-api</artifactId>
                <version>${ratis.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.ratis</groupId>
                <artifactId>ratis-common</artifactId>
                <version>${ratis.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>io.opentelemetry</groupId>
                        <artifactId>opentelemetry-api</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>io.opentelemetry</groupId>
                        <artifactId>opentelemetry-context</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.apache.ratis</groupId>
                <artifactId>ratis-client</artifactId>
                <version>${ratis.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.ratis</groupId>
                <artifactId>ratis-grpc</artifactId>
                <version>${ratis.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.ratis</groupId>
                <artifactId>ratis-proto</artifactId>
                <version>${ratis.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.ratis</groupId>
                <artifactId>ratis-metrics-api</artifactId>
                <version>${ratis.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.ratis</groupId>
                <artifactId>ratis-thirdparty-misc</artifactId>
                <version>${ratis-thirdparty-misc.version}</version>
            </dependency>
            <dependency>
                <groupId>io.airlift</groupId>
                <artifactId>units</artifactId>
                <version>${airlift-units.version}</version>
            </dependency>
            <dependency>
                <groupId>org.eclipse.milo</groupId>
                <artifactId>stack-core</artifactId>
                <version>${milo.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>com.sun.activation</groupId>
                        <artifactId>jakarta.activation</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.eclipse.milo</groupId>
                <artifactId>sdk-core</artifactId>
                <version>${milo.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>com.sun.activation</groupId>
                        <artifactId>jakarta.activation</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.eclipse.milo</groupId>
                <artifactId>stack-server</artifactId>
                <version>${milo.version}</version>
            </dependency>
            <dependency>
                <groupId>org.eclipse.milo</groupId>
                <artifactId>stack-client</artifactId>
                <version>${milo.version}</version>
            </dependency>
            <dependency>
                <groupId>org.eclipse.milo</groupId>
                <artifactId>sdk-client</artifactId>
                <version>${milo.version}</version>
            </dependency>
            <!-- TODO: Deprecated: Use Airline 2 or Picocli instead -->
            <dependency>
                <groupId>io.airlift</groupId>
                <artifactId>airline</artifactId>
                <version>${airline.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>javax.inject</groupId>
                        <artifactId>javax.inject</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.eclipse.milo</groupId>
                <artifactId>sdk-server</artifactId>
                <version>${milo.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>com.sun.activation</groupId>
                        <artifactId>jakarta.activation</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.reflections</groupId>
                <artifactId>reflections</artifactId>
                <version>${reflections.version}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>com.github.moquette-io.moquette</groupId>
                <artifactId>moquette-broker</artifactId>
                <version>${moquette.version}</version>
            </dependency>
            <dependency>
                <groupId>com.h2database</groupId>
                <artifactId>h2-mvstore</artifactId>
                <version>${h2.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.httpcomponents</groupId>
                <artifactId>httpclient</artifactId>
                <version>${httpclient.version}</version>
            </dependency>
            <dependency>
                <groupId>org.powermock</groupId>
                <artifactId>powermock-core</artifactId>
                <version>${powermock.version}</version>
            </dependency>
            <dependency>
                <groupId>org.powermock</groupId>
                <artifactId>powermock-module-junit4</artifactId>
                <version>${powermock.version}</version>
            </dependency>
            <dependency>
                <groupId>org.powermock</groupId>
                <artifactId>powermock-api-mockito2</artifactId>
                <version>${powermock.version}</version>
            </dependency>
            <dependency>
                <groupId>cglib</groupId>
                <artifactId>cglib</artifactId>
                <version>${cglib.version}</version>
            </dependency>
            <dependency>
                <groupId>com.github.luben</groupId>
                <artifactId>zstd-jni</artifactId>
                <version>${zstd-jni.version}</version>
            </dependency>
            <dependency>
                <groupId>at.yawk.lz4</groupId>
                <artifactId>lz4-java</artifactId>
                <version>${lz4-java.version}</version>
            </dependency>
            <dependency>
                <groupId>org.tukaani</groupId>
                <artifactId>xz</artifactId>
                <version>${xz.version}</version>
            </dependency>
            <dependency>
                <groupId>io.swagger.core.v3</groupId>
                <artifactId>swagger-annotations-jakarta</artifactId>
                <version>${swagger.version}</version>
            </dependency>
            <dependency>
                <groupId>io.swagger.core.v3</groupId>
                <artifactId>swagger-models-jakarta</artifactId>
                <version>${swagger.version}</version>
            </dependency>
            <dependency>
                <groupId>io.swagger.core.v3</groupId>
                <artifactId>swagger-jaxrs2-jakarta</artifactId>
                <version>${swagger.version}</version>
            </dependency>
            <dependency>
                <groupId>io.swagger.core.v3</groupId>
                <artifactId>swagger-integration-jakarta</artifactId>
                <version>${swagger.version}</version>
            </dependency>
            <dependency>
                <groupId>org.fusesource.mqtt-client</groupId>
                <artifactId>mqtt-client</artifactId>
                <version>${fusesource-mqtt-client.version}</version>
            </dependency>
            <dependency>
                <groupId>org.eclipse.collections</groupId>
                <artifactId>eclipse-collections</artifactId>
                <version>${eclipse-collections.version}</version>
            </dependency>
            <dependency>
                <groupId>org.eclipse.collections</groupId>
                <artifactId>eclipse-collections-api</artifactId>
                <version>${eclipse-collections.version}</version>
            </dependency>
            <dependency>
                <groupId>com.github.wendykierp</groupId>
                <artifactId>JTransforms</artifactId>
                <version>${jtransforms.version}</version>
            </dependency>
            <dependency>
                <groupId>com.github.stephenc.jcip</groupId>
                <artifactId>jcip-annotations</artifactId>
                <version>${jcip-annotations.version}</version>
            </dependency>
            <dependency>
                <groupId>jakarta.validation</groupId>
                <artifactId>jakarta.validation-api</artifactId>
                <version>${jakarta.validation-api.version}</version>
            </dependency>
            <dependency>
                <groupId>commons-codec</groupId>
                <artifactId>commons-codec</artifactId>
                <version>${commons-codec.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.commons</groupId>
                <artifactId>commons-pool2</artifactId>
                <version>${commons-pool2.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.commons</groupId>
                <artifactId>commons-lang3</artifactId>
                <version>${commons-lang3.version}</version>
            </dependency>
            <dependency>
                <groupId>io.dropwizard.metrics</groupId>
                <artifactId>metrics-core</artifactId>
                <version>${dropwizard.metrics.version}</version>
            </dependency>
            <dependency>
                <groupId>org.eclipse.jetty</groupId>
                <artifactId>jetty-http</artifactId>
                <version>${jetty.version}</version>
            </dependency>
            <dependency>
                <groupId>org.eclipse.jetty</groupId>
                <artifactId>jetty-util</artifactId>
                <version>${jetty.version}</version>
            </dependency>
            <dependency>
                <groupId>org.eclipse.jetty</groupId>
                <artifactId>jetty-server</artifactId>
                <version>${jetty.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>jakarta.servlet</groupId>
                        <artifactId>jakarta.servlet-api</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>jakarta.ws.rs</groupId>
                <artifactId>jakarta.ws.rs-api</artifactId>
                <version>${jakarta.ws.rs-api.version}</version>
            </dependency>
            <dependency>
                <groupId>org.glassfish.jersey.containers</groupId>
                <artifactId>jersey-container-servlet-core</artifactId>
                <version>${jersey.version}</version>
            </dependency>
            <dependency>
                <groupId>org.eclipse.jetty.ee10</groupId>
                <artifactId>jetty-ee10-servlet</artifactId>
                <version>${jetty.version}</version>
            </dependency>
            <dependency>
                <groupId>com.github.ben-manes.caffeine</groupId>
                <artifactId>caffeine</artifactId>
                <version>${caffeine.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.httpcomponents</groupId>
                <artifactId>httpcore</artifactId>
                <version>${httpcore.version}</version>
            </dependency>
            <dependency>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-databind</artifactId>
                <version>${jackson.version}</version>
            </dependency>
            <dependency>
                <groupId>org.awaitility</groupId>
                <artifactId>awaitility</artifactId>
                <version>${awaitility.version}</version>
            </dependency>
            <dependency>
                <groupId>io.projectreactor.netty</groupId>
                <artifactId>reactor-netty-http</artifactId>
                <version>${reactor-netty.version}</version>
            </dependency>
            <dependency>
                <groupId>io.projectreactor.netty</groupId>
                <artifactId>reactor-netty-core</artifactId>
                <version>${reactor-netty.version}</version>
            </dependency>
            <dependency>
                <groupId>io.projectreactor</groupId>
                <artifactId>reactor-core</artifactId>
                <version>${reactor.version}</version>
            </dependency>
            <dependency>
                <groupId>org.reactivestreams</groupId>
                <artifactId>reactive-streams</artifactId>
                <version>${reactive-streams.version}</version>
            </dependency>
            <dependency>
                <groupId>ch.qos.logback</groupId>
                <artifactId>logback-classic</artifactId>
                <version>${logback.version}</version>
            </dependency>
            <dependency>
                <groupId>ch.qos.logback</groupId>
                <artifactId>logback-core</artifactId>
                <version>${logback.version}</version>
            </dependency>
            <dependency>
                <groupId>ch.qos.reload4j</groupId>
                <artifactId>reload4j</artifactId>
                <version>1.2.22</version>
            </dependency>
            <dependency>
                <groupId>io.micrometer</groupId>
                <artifactId>micrometer-core</artifactId>
                <version>${micrometer.version}</version>
            </dependency>
            <dependency>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-annotations</artifactId>
                <version>${jackson.version}</version>
            </dependency>
            <dependency>
                <groupId>com.fasterxml.jackson.jakarta.rs</groupId>
                <artifactId>jackson-jakarta-rs-json-provider</artifactId>
                <version>${jackson.version}</version>
            </dependency>
            <dependency>
                <groupId>com.fasterxml.jackson.datatype</groupId>
                <artifactId>jackson-datatype-jsr310</artifactId>
                <version>${jackson.version}</version>
            </dependency>
            <dependency>
                <groupId>org.glassfish.jersey.media</groupId>
                <artifactId>jersey-media-multipart</artifactId>
                <version>${jersey.version}</version>
            </dependency>
            <dependency>
                <groupId>org.glassfish.jersey.inject</groupId>
                <artifactId>jersey-hk2</artifactId>
                <version>${jersey.version}</version>
            </dependency>
            <!-- Conflict: cglib pulls in 7.1 -->
            <dependency>
                <groupId>org.ow2.asm</groupId>
                <artifactId>asm</artifactId>
                <version>9.3</version>
            </dependency>
            <!-- Conflict:
        guava (pulls in 2.18.0),
        caffeine (pulls in 2.10.0)
      -->
            <dependency>
                <groupId>com.google.errorprone</groupId>
                <artifactId>error_prone_annotations</artifactId>
                <version>2.18.0</version>
            </dependency>
            <!-- Conflict:
        jackson-jakarta-rs-json-provider (pulls in 2.15.2),
        jackson-databind (pulls in 2.15.2),
        jackson-databind-jsd310 (pulls in 2.15.2),
        swagger-jaxrs2-jakarta (pulls in 2.15.2),
        swagger-integration-jakarta (pulls in 2.15.2)
      -->
            <dependency>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-core</artifactId>
                <version>${jackson.version}</version>
            </dependency>
        </dependencies>
    </dependencyManagement>
    <build>
        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-javadoc-plugin</artifactId>
                    <version>3.5.0</version>
                    <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>
                    <version>3.1.2</version>
                    <configuration>
                        <argLine>${argLine} -Xmx1024m</argLine>
                        <!-- Force the working directory to be different for each fork, so forks don't trample each other -->
                        <workingDirectory>${project.build.directory}/fork_${surefire.forkNumber}</workingDirectory>
                    </configuration>
                </plugin>
                <!--
          Plugin for doing the code analysis.
        -->
                <plugin>
                    <groupId>org.sonarsource.scanner.maven</groupId>
                    <artifactId>sonar-maven-plugin</artifactId>
                    <version>3.9.1.2184</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.rat</groupId>
                    <artifactId>apache-rat-plugin</artifactId>
                    <version>0.16.1</version>
                    <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>
                            <exclude>**/git.properties</exclude>
                            <exclude>AGENTS.md</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>
                            <!-- bundled third-party NOTICE / license texts for the C++ client package -->
                            <exclude>**/package-metadata/third_party/NOTICE</exclude>
                            <exclude>**/package-metadata/third_party/licenses/**</exclude>
                            <!-- only for Travis CI with WinOS-->
                            <exclude>hadoopbin</exclude>
                            <exclude>windowssystem32</exclude>
                            <exclude>.ignore</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>
                            <!-- 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>**/thrift/**/__init__.py</exclude>
                            <!-- Java SPI uses files in resources/META-INF/services-->
                            <exclude>**/resources/META-INF/services/**</exclude>
                            <!-- site-->
                            <exclude>**/redirects</exclude>
                            <exclude>**/.eslintignore</exclude>
                            <exclude>**/palette.styl</exclude>
                            <exclude>**/RightMenu.vue</exclude>
                            <exclude>**/pnpm-lock.yaml</exclude>
                            <!-- This is generated by the IntelliJ Antlr Plugin -->
                            <exclude>**/db/qp/sql/gen/**</exclude>
                            <exclude>**/ainode-example/**</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,,jakarta,javax,java,\#</order>
                            </importOrder>
                            <removeUnusedImports/>
                        </java>
                        <lineEndings>UNIX</lineEndings>
                    </configuration>
                    <executions>
                        <execution>
                            <id>spotless-check</id>
                            <goals>
                                <goal>check</goal>
                            </goals>
                            <phase>validate</phase>
                        </execution>
                    </executions>
                </plugin>
                <plugin>
                    <groupId>com.googlecode.maven-download-plugin</groupId>
                    <artifactId>download-maven-plugin</artifactId>
                    <version>1.7.1</version>
                </plugin>
                <plugin>
                    <groupId>io.github.cmake-maven-plugin</groupId>
                    <artifactId>cmake-maven-plugin</artifactId>
                    <version>4.2.3-b1</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-jar-plugin</artifactId>
                    <version>3.4.2</version>
                </plugin>
                <plugin>
                    <groupId>org.eluder.coveralls</groupId>
                    <artifactId>coveralls-maven-plugin</artifactId>
                    <version>4.3.0</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-enforcer-plugin</artifactId>
                    <version>3.4.1</version>
                </plugin>
                <plugin>
                    <groupId>net.revelc.code.formatter</groupId>
                    <artifactId>formatter-maven-plugin</artifactId>
                    <version>2.23.0</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-checkstyle-plugin</artifactId>
                    <version>3.3.0</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-source-plugin</artifactId>
                    <version>3.2.1</version>
                </plugin>
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>exec-maven-plugin</artifactId>
                    <version>3.1.1</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-assembly-plugin</artifactId>
                    <version>${maven.assembly.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.cyclonedx</groupId>
                    <artifactId>cyclonedx-maven-plugin</artifactId>
                    <version>2.7.11</version>
                </plugin>
                <plugin>
                    <groupId>net.nicoulaj.maven.plugins</groupId>
                    <artifactId>checksum-maven-plugin</artifactId>
                    <version>1.11</version>
                </plugin>
                <plugin>
                    <groupId>org.jacoco</groupId>
                    <artifactId>jacoco-maven-plugin</artifactId>
                    <version>0.8.12</version>
                </plugin>
                <plugin>
                    <groupId>com.coderplus.maven.plugins</groupId>
                    <artifactId>copy-rename-maven-plugin</artifactId>
                    <version>1.0.1</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-shade-plugin</artifactId>
                    <version>3.5.0</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-resources-plugin</artifactId>
                    <version>3.3.1</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-dependency-plugin</artifactId>
                    <version>3.6.0</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.thrift</groupId>
                    <artifactId>thrift-maven-plugin</artifactId>
                    <version>0.10.0</version>
                </plugin>
                <plugin>
                    <groupId>com.bazaarvoice.maven.plugins</groupId>
                    <artifactId>process-exec-maven-plugin</artifactId>
                    <version>0.9</version>
                </plugin>
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>build-helper-maven-plugin</artifactId>
                    <version>3.4.0</version>
                    <executions>
                        <execution>
                            <id>add-i18n-source</id>
                            <phase>generate-sources</phase>
                            <goals>
                                <goal>add-source</goal>
                            </goals>
                            <configuration>
                                <sources>
                                    <source>src/main/i18n/${i18n.locale}</source>
                                </sources>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>
                <plugin>
                    <groupId>org.apache.felix</groupId>
                    <artifactId>maven-bundle-plugin</artifactId>
                    <version>${felix.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.eclipse.m2e</groupId>
                    <artifactId>lifecycle-mapping</artifactId>
                    <version>1.0.0</version>
                </plugin>
                <plugin>
                    <groupId>org.antlr</groupId>
                    <artifactId>antlr4-maven-plugin</artifactId>
                    <version>${antlr4.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.drill.tools</groupId>
                    <artifactId>drill-fmpp-maven-plugin</artifactId>
                    <version>${drill.freemarker.maven.plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-clean-plugin</artifactId>
                    <version>3.3.2</version>
                </plugin>
                <plugin>
                    <groupId>pl.project13.maven</groupId>
                    <artifactId>git-commit-id-plugin</artifactId>
                    <version>4.9.10</version>
                </plugin>
                <plugin>
                    <groupId>org.openapitools</groupId>
                    <artifactId>openapi-generator-maven-plugin</artifactId>
                    <version>${openapi.generator.version}</version>
                </plugin>
                <plugin>
                    <groupId>au.com.acegi</groupId>
                    <artifactId>xml-format-maven-plugin</artifactId>
                    <version>3.2.2</version>
                </plugin>
            </plugins>
        </pluginManagement>
        <plugins>
            <plugin>
                <groupId>com.diffplug.spotless</groupId>
                <artifactId>spotless-maven-plugin</artifactId>
                <configuration>
                    <skip>${spotless.skip}</skip>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.eluder.coveralls</groupId>
                <artifactId>coveralls-maven-plugin</artifactId>
                <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>iotdb-core/antlr/target/generated-sources/antlr4</sourceDirectory>
                        <sourceDirectory>iotdb-protocol/thrift-datanode/target/generated-sources/thrift</sourceDirectory>
                        <sourceDirectory>iotdb-protocol/thrift-commons/target/generated-sources/thrift</sourceDirectory>
                        <sourceDirectory>iotdb-protocol/thrift-confignode/target/generated-sources/thrift</sourceDirectory>
                        <sourceDirectory>iotdb-protocol/thrift-consensus/target/generated-sources/thrift</sourceDirectory>
                        <sourceDirectory>iotdb-protocol/openapi/target/generated-sources/java/src/gen/java</sourceDirectory>
                        <sourceDirectory>iotdb-protocol/openapi/target/generated-sources/java/src/main/java</sourceDirectory>
                        <sourceDirectory>iotdb-core/datanode/target/generated-sources/freemarker/</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.1</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 17, but also
        checks all dependencies (and transitive dependencies) for reported CVEs.
      -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-enforcer-plugin</artifactId>
                <dependencies>
                    <dependency>
                        <groupId>org.sonatype.ossindex.maven</groupId>
                        <artifactId>ossindex-maven-enforcer-rules</artifactId>
                        <version>3.2.0</version>
                    </dependency>
                    <dependency>
                        <groupId>org.codehaus.mojo</groupId>
                        <artifactId>extra-enforcer-rules</artifactId>
                        <version>1.7.0</version>
                    </dependency>
                    <dependency>
                        <groupId>org.apache.maven.shared</groupId>
                        <artifactId>maven-dependency-tree</artifactId>
                        <version>3.2.1</version>
                    </dependency>
                </dependencies>
                <executions>
                    <!-- Ensure we're not mixing dependency versions -->
                    <execution>
                        <id>enforce-version-convergence</id>
                        <goals>
                            <goal>enforce</goal>
                        </goals>
                        <phase>validate</phase>
                        <configuration>
                            <rules>
                                <dependencyConvergence/>
                            </rules>
                        </configuration>
                    </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>
                        <goals>
                            <goal>enforce</goal>
                        </goals>
                        <phase>validate</phase>
                        <configuration>
                            <!-- Just generate warnings for now -->
                            <fail>true</fail>
                            <rules>
                                <requireJavaVersion>
                                    <version>[17,)</version>
                                </requireJavaVersion>
                                <banVulnerable implementation="org.sonatype.ossindex.maven.enforcer.BanVulnerableDependencies">
                                    <excludeCoordinates>
                                        <!-- TODO: For this CVE no fix exists yet (Keep an eye on it) -->
                                        <exclude>
                                            <groupId>io.netty</groupId>
                                            <artifactId>netty-handler</artifactId>
                                            <version>4.1.97.Final</version>
                                        </exclude>
                                        <!--
                      CVE-2016-1000027 seems to effect the HTTP Invoker, which we are not using.
                      These are marked deprecated anyway and are removed in Spring 6.x. Unfortunately,
                      we are still stuck at 5.x due to the javax-namespace issues.
                    -->
                                        <exclude>
                                            <groupId>org.springframework</groupId>
                                            <artifactId>spring-web</artifactId>
                                            <version>5.3.30</version>
                                        </exclude>
                                        <!--
                      For this CVE no fix exists and will probably never exist
                      (We should discuss dropping 2.11 anyway)
                    -->
                                        <exclude>
                                            <groupId>org.apache.spark</groupId>
                                            <artifactId>spark-core_2.11</artifactId>
                                            <version>2.4.8</version>
                                        </exclude>
                                        <!--
                      TODO: For this CVE no fix exists yet, however we should keep an eye on this:
                      https://docs.google.com/presentation/d/1W5KU7ffh4dheR8iD54ulABImi6byAhSI-OhEKw2adRo/edit#slide=id.gaf11915f86_0_0
                    -->
                                        <exclude>
                                            <groupId>io.atomix</groupId>
                                            <artifactId>atomix-raft</artifactId>
                                            <version>3.1.12</version>
                                        </exclude>
                                    </excludeCoordinates>
                                </banVulnerable>
                            </rules>
                        </configuration>
                    </execution>
                </executions>
            </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
        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>
                        <goals>
                            <goal>analyze-only</goal>
                        </goals>
                        <phase>verify</phase>
                        <configuration>
                            <failOnWarning>true</failOnWarning>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>net.revelc.code.formatter</groupId>
                <artifactId>formatter-maven-plugin</artifactId>
            </plugin>
            <!--for code style check -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-checkstyle-plugin</artifactId>
                <configuration>
                    <configLocation>checkstyle.xml</configLocation>
                    <includeTestSourceDirectory>true</includeTestSourceDirectory>
                </configuration>
                <dependencies>
                    <dependency>
                        <groupId>com.puppycrawl.tools</groupId>
                        <artifactId>checkstyle</artifactId>
                        <version>9.3</version>
                        <!-- Starting with version 10, checkstyle requires Java 11 -->
                        <!--version>10.12.3</version-->
                    </dependency>
                </dependencies>
                <executions>
                    <execution>
                        <id>validate</id>
                        <goals>
                            <goal>check</goal>
                        </goals>
                        <phase>validate</phase>
                        <configuration>
                            <outputFile>target/checkstyle-report.xml</outputFile>
                            <configLocation>checkstyle.xml</configLocation>
                            <propertyExpansion>baseDir=${project.basedir}</propertyExpansion>
                        </configuration>
                    </execution>
                </executions>
            </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>
                        <goals>
                            <goal>check</goal>
                        </goals>
                        <phase>verify</phase>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>au.com.acegi</groupId>
                <artifactId>xml-format-maven-plugin</artifactId>
                <executions>
                    <execution>
                        <id>xml-format</id>
                        <goals>
                            <goal>xml-format</goal>
                        </goals>
                        <phase>compile</phase>
                        <configuration>
                            <!-- configure your formatting preferences here (see link below) -->
                            <indentSize>4</indentSize>
                            <excludes>
                                <exclude>**/target/**</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>
            <!-- Also package the sources as jar -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-source-plugin</artifactId>
                <executions>
                    <execution>
                        <id>create-source-package</id>
                        <goals>
                            <goal>jar-no-fork</goal>
                        </goals>
                        <phase>package</phase>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
    <licenses>
        <license>
            <name>The Apache License, Version 2.0</name>
            <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
        </license>
    </licenses>
    <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>
    <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>
    <issueManagement>
        <system>Jira</system>
        <url>https://issues.apache.org/jira/browse/iotdb</url>
    </issueManagement>
    <!-- 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>
    <profiles>
        <!--
      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>.os-unix</id>
            <activation>
                <os>
                    <name>Linux</name>
                    <family>unix</family>
                    <arch>!aarch64</arch>
                </os>
            </activation>
            <properties>
                <cmake.generator>Unix Makefiles</cmake.generator>
                <os.classifier>linux-x86_64</os.classifier>
                <thrift.executable>thrift</thrift.executable>
                <python.venv.bin>venv/bin/</python.venv.bin>
                <python.exe.bin>python3</python.exe.bin>
            </properties>
        </profile>
        <profile>
            <id>.os-unix-arm</id>
            <activation>
                <os>
                    <name>Linux</name>
                    <family>unix</family>
                    <arch>aarch64</arch>
                </os>
            </activation>
            <properties>
                <cmake.generator>Unix Makefiles</cmake.generator>
                <os.classifier>linux-aarch64</os.classifier>
                <thrift.executable>thrift</thrift.executable>
                <python.venv.bin>venv/bin/</python.venv.bin>
                <python.exe.bin>python3</python.exe.bin>
            </properties>
        </profile>
        <profile>
            <id>.os-mac</id>
            <activation>
                <os>
                    <family>mac</family>
                    <arch>!aarch64</arch>
                </os>
            </activation>
            <properties>
                <boost.include.dir>/usr/local/include</boost.include.dir>
                <cmake.generator>Unix Makefiles</cmake.generator>
                <os.classifier>mac-x86_64</os.classifier>
                <thrift.executable>thrift</thrift.executable>
                <python.venv.bin>venv/bin/</python.venv.bin>
                <python.exe.bin>python3</python.exe.bin>
            </properties>
        </profile>
        <profile>
            <id>.os-mac-arm</id>
            <activation>
                <os>
                    <family>mac</family>
                    <arch>aarch64</arch>
                </os>
            </activation>
            <properties>
                <boost.include.dir>/opt/homebrew/opt/boost/include</boost.include.dir>
                <cmake.generator>Unix Makefiles</cmake.generator>
                <os.classifier>mac-aarch64</os.classifier>
                <thrift.executable>thrift</thrift.executable>
                <python.venv.bin>venv/bin/</python.venv.bin>
                <python.exe.bin>python3</python.exe.bin>
            </properties>
        </profile>
        <profile>
            <id>.os-windows</id>
            <activation>
                <os>
                    <family>windows</family>
                    <arch>!aarch64</arch>
                </os>
            </activation>
            <properties>
                <!-- The generated code relied on Boost and that relies on VS and can't be built with MinGW -->
                <cmake.generator>Visual Studio 17 2022</cmake.generator>
                <os.classifier>windows-x86_64</os.classifier>
                <thrift.executable>Release/thrift.exe</thrift.executable>
                <python.venv.bin>venv/Scripts/</python.venv.bin>
                <python.exe.bin>python</python.exe.bin>
            </properties>
        </profile>
        <profile>
            <id>.os-windows-arm</id>
            <activation>
                <os>
                    <family>windows</family>
                    <arch>aarch64</arch>
                </os>
            </activation>
            <properties>
                <!-- The generated code relied on Boost and that relies on VS and can't be built with MinGW -->
                <cmake.generator>Visual Studio 17 2022</cmake.generator>
                <os.classifier>windows-aarch64</os.classifier>
                <thrift.executable>Release/thrift.exe</thrift.executable>
                <python.venv.bin>venv/Scripts/</python.venv.bin>
                <python.exe.bin>python</python.exe.bin>
            </properties>
        </profile>
        <profile>
            <id>.java-17-and-above</id>
            <activation>
                <jdk>[17,)</jdk>
            </activation>
            <properties>
                <maven.compiler.release>17</maven.compiler.release>
                <!--
                    Add argLine for Java 17 and above, due to
                    [JEP 260: Encapsulate Most Internal APIs],
                    [JEP 396: Strongly Encapsulate JDK Internals by Default],
                    [JEP 403: Strongly Encapsulate JDK Internals]
                -->
                <argLine><![CDATA[
                        --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-opens=java.base/java.util.concurrent=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>
        <!-- Current version of spotless cannot support JDK17 below -->
        <profile>
            <id>.java-17-below</id>
            <activation>
                <jdk>(,17)</jdk>
            </activation>
            <properties>
                <!-- Keep old Spotless disabled when running below the minimum supported JDK. -->
                <spotless.version>2.27.1</spotless.version>
                <!-- To avoid format conflicts -->
                <spotless.skip>true</spotless.skip>
            </properties>
        </profile>
        <!-- Little helper profile that will disable running the cmake tests when the maven tests are being skipped -->
        <profile>
            <id>.skipTests</id>
            <activation>
                <property>
                    <name>skipTests</name>
                </property>
            </activation>
            <properties>
                <ctest.skip.tests>true</ctest.skip.tests>
            </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}/thrift/bin/${thrift.executable}</thrift.exec.absolute.path>
            </properties>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-dependency-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>get-thrift</id>
                                <goals>
                                    <goal>unpack</goal>
                                </goals>
                                <phase>generate-sources</phase>
                                <configuration>
                                    <artifactItems>
                                        <artifactItem>
                                            <groupId>org.apache.iotdb.tools</groupId>
                                            <artifactId>iotdb-tools-thrift</artifactId>
                                            <version>${iotdb-tools-thrift.version}</version>
                                            <classifier>${os.classifier}</classifier>
                                            <type>zip</type>
                                            <overWrite>true</overWrite>
                                            <outputDirectory>${project.build.directory}/thrift</outputDirectory>
                                        </artifactItem>
                                    </artifactItems>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                    <plugin>
                        <groupId>org.apache.thrift</groupId>
                        <artifactId>thrift-maven-plugin</artifactId>
                        <configuration>
                            <thriftExecutable>${thrift.exec.absolute.path}</thriftExecutable>
                            <thriftSourceRoot>${project.basedir}/src/main/thrift</thriftSourceRoot>
                        </configuration>
                        <executions>
                            <execution>
                                <id>generate-thrift-sources-java</id>
                                <goals>
                                    <goal>compile</goal>
                                </goals>
                                <phase>generate-sources</phase>
                                <configuration>
                                    <generator>java:generated_annotations=suppress</generator>
                                </configuration>
                            </execution>
                            <execution>
                                <id>generate-thrift-sources-python</id>
                                <goals>
                                    <goal>compile</goal>
                                </goals>
                                <phase>generate-sources</phase>
                                <configuration>
                                    <generator>py</generator>
                                    <includes>**/common.thrift,**/client.thrift,**/datanode.thrift,**/confignode.thrift,**/ainode.thrift</includes>
                                    <outputDirectory>${project.build.directory}/generated-sources-python/</outputDirectory>
                                </configuration>
                            </execution>
                            <execution>
                                <id>generate-thrift-sources-go</id>
                                <goals>
                                    <goal>compile</goal>
                                </goals>
                                <phase>generate-sources</phase>
                                <configuration>
                                    <generator>go:package_prefix=github.com/apache/iotdb-client-go/v2/</generator>
                                    <includes>**/common.thrift,**/client.thrift</includes>
                                    <outputDirectory>${project.build.directory}/generated-sources-go</outputDirectory>
                                </configuration>
                            </execution>
                            <execution>
                                <id>generate-thrift-sources-csharp</id>
                                <goals>
                                    <goal>compile</goal>
                                </goals>
                                <phase>generate-sources</phase>
                                <configuration>
                                    <generator>netstd:no_deepcopy</generator>
                                    <includes>**/common.thrift,**/client.thrift</includes>
                                    <!-- The output directory is set to the parent of the generated sources for copying-->
                                    <outputDirectory>${project.parent.build.directory}/generated-sources-csharp</outputDirectory>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
        <!-- Enable integration-testsuite on demand, as this takes quite a long time to run -->
        <profile>
            <id>with-integration-tests</id>
            <modules>
                <module>integration-test</module>
            </modules>
        </profile>
        <!--
            This profile enables a check, that uses information from the SBOM generated by the cyclonedx plugin
            and compares this with the "known dependencies" in the "dependencies.json" file in the root of the project.

            This makes it more obvious, if a PR adds or removes any dependencies.
        -->
        <profile>
            <id>enable-sbom-check</id>
            <build>
                <plugins>
                    <!-- Check if we've changed any dependencies being included -->
                    <plugin>
                        <groupId>org.cyclonedx</groupId>
                        <artifactId>cyclonedx-maven-plugin</artifactId>
                        <!-- Only run this in the root module of the project -->
                        <inherited>false</inherited>
                        <configuration>
                            <outputName>apache-${project.artifactId}-${project.version}-sbom</outputName>
                        </configuration>
                        <executions>
                            <execution>
                                <phase>package</phase>
                                <goals>
                                    <goal>makeAggregateBom</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                    <plugin>
                        <groupId>org.codehaus.mojo</groupId>
                        <artifactId>xml-maven-plugin</artifactId>
                        <version>1.1.0</version>
                        <!-- Only run this in the root module of the project -->
                        <inherited>false</inherited>
                        <executions>
                            <execution>
                                <phase>package</phase>
                                <goals>
                                    <goal>transform</goal>
                                </goals>
                                <configuration>
                                    <transformationSets>
                                        <transformationSet>
                                            <dir>${project.basedir}/target/</dir>
                                            <includes>apache-${project.artifactId}-${project.version}-sbom.xml</includes>
                                            <stylesheet>src/main/xslt/sbom-filter.xsl</stylesheet>
                                            <outputDir>${project.basedir}/target/</outputDir>
                                            <fileMappers>
                                                <fileMapper implementation="org.codehaus.plexus.components.io.filemappers.FileExtensionMapper">
                                                    <targetExtension>transformed.json</targetExtension>
                                                </fileMapper>
                                            </fileMappers>
                                        </transformationSet>
                                    </transformationSets>
                                </configuration>
                            </execution>
                        </executions>
                        <dependencies>
                            <dependency>
                                <groupId>net.sf.saxon</groupId>
                                <artifactId>Saxon-HE</artifactId>
                                <version>12.5</version>
                            </dependency>
                        </dependencies>
                    </plugin>
                    <plugin>
                        <groupId>org.codehaus.gmaven</groupId>
                        <artifactId>groovy-maven-plugin</artifactId>
                        <version>2.1.1</version>
                        <!-- Only run this in the root module of the project -->
                        <inherited>false</inherited>
                        <executions>
                            <execution>
                                <id>compare-with-reference-list</id>
                                <phase>verify</phase>
                                <goals>
                                    <goal>execute</goal>
                                </goals>
                                <configuration>
                                    <source>src/main/groovy/checkDependencies.groovy</source>
                                </configuration>
                            </execution>
                        </executions>
                        <dependencies>
                            <dependency>
                                <groupId>org.apache.groovy</groupId>
                                <artifactId>groovy</artifactId>
                                <version>4.0.22</version>
                            </dependency>
                        </dependencies>
                    </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>
                        <executions>
                            <execution>
                                <id>source-release-assembly</id>
                                <goals>
                                    <goal>single</goal>
                                </goals>
                                <phase>package</phase>
                                <!--
                  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>
                    <!--
            Generate an SBOM for the project
          -->
                    <plugin>
                        <groupId>org.cyclonedx</groupId>
                        <artifactId>cyclonedx-maven-plugin</artifactId>
                        <!-- Only run this in the root module of the project -->
                        <inherited>false</inherited>
                        <configuration>
                            <outputName>apache-${project.artifactId}-${project.version}-sbom</outputName>
                        </configuration>
                        <executions>
                            <execution>
                                <goals>
                                    <goal>makeAggregateBom</goal>
                                </goals>
                                <phase>package</phase>
                            </execution>
                        </executions>
                    </plugin>
                    <!--
            Create SHA512 checksum files for the release artifacts.
          -->
                    <plugin>
                        <groupId>net.nicoulaj.maven.plugins</groupId>
                        <artifactId>checksum-maven-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>sign-source-release</id>
                                <goals>
                                    <goal>files</goal>
                                </goals>
                                <phase>package</phase>
                                <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>
                                    <failIfNoFiles>false</failIfNoFiles>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
        <!-- code coverage for ut and it, and then merge them together.-->
        <profile>
            <id>with-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>
                        <configuration>
                            <excludes>
                                <exclude>org/apache/iotdb/service/sync/thrift/*</exclude>
                                <exclude>org/apache/iotdb/service/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>
                                <goals>
                                    <goal>report</goal>
                                    <goal>check</goal>
                                </goals>
                                <phase>test</phase>
                                <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>
                                <goals>
                                    <goal>prepare-agent</goal>
                                </goals>
                                <phase>pre-integration-test</phase>
                                <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>
                                <goals>
                                    <goal>report</goal>
                                    <goal>check</goal>
                                </goals>
                                <phase>integration-test</phase>
                                <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>
                                <goals>
                                    <goal>merge</goal>
                                </goals>
                                <phase>post-integration-test</phase>
                                <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>
                                <goals>
                                    <goal>report</goal>
                                    <goal>check</goal>
                                </goals>
                                <phase>post-integration-test</phase>
                                <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>
        <profile>
            <id>enforce</id>
            <properties>
                <enforcer.skip>false</enforcer.skip>
            </properties>
        </profile>
        <profile>
            <id>with-zh-locale</id>
            <properties>
                <i18n.locale>zh</i18n.locale>
                <tsfile.locale.opt>-Dtsfile.locale=zh</tsfile.locale.opt>
            </properties>
        </profile>
    </profiles>
</project>
