You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by jf...@apache.org on 2022/01/01 21:03:13 UTC

[iotdb] branch experimental/code-generation updated: Fixed pom

This is an automated email from the ASF dual-hosted git repository.

jfeinauer pushed a commit to branch experimental/code-generation
in repository https://gitbox.apache.org/repos/asf/iotdb.git


The following commit(s) were added to refs/heads/experimental/code-generation by this push:
     new b8a43c9  Fixed pom
b8a43c9 is described below

commit b8a43c9a5efab9303e0b94e43e1f468b15a0d7a8
Author: julian <j....@pragmaticminds.de>
AuthorDate: Sat Jan 1 22:02:26 2022 +0100

    Fixed pom
---
 pom.xml | 4220 +++++++++++++++++++++------------------------------------------
 1 file changed, 1406 insertions(+), 2814 deletions(-)

diff --git a/pom.xml b/pom.xml
index c82840e..e07dc38 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<?xml version="1.0" encoding="UTF-8"?>
 <!--
 
     Licensed to the Apache Software Foundation (ASF) under one
@@ -18,1518 +18,774 @@
     specific language governing permissions and limitations
     under the License.
 
---><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-      
-  <modelVersion>4.0.0</modelVersion>
-      
-  <parent>
-            
-    <groupId>org.apache</groupId>
-            
-    <artifactId>apache</artifactId>
-            
-    <version>23</version>
-        
-  </parent>
-      
-  <groupId>org.apache.iotdb</groupId>
-      
-  <artifactId>iotdb-parent</artifactId>
-      
-  <version>0.13.0-SNAPSHOT</version>
-      
-  <packaging>pom</packaging>
-      
-  <name>Apache IoTDB Project Parent POM</name>
-      
-  <description>This is the top level project that builds, packages the tsfile, iotdb engine, jdbc, and integration libs.</description>
-      
-  <licenses>
-            
-    <license>
-                  
-      <name>The Apache License, Version 2.0</name>
-                  
-      <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
-              
-    </license>
-        
-  </licenses>
-      
-  <scm>
-            
-    <connection>scm:git:ssh://git@github.com/apache/iotdb.git</connection>
-            
-    <developerConnection>scm:git:ssh://git@github.com/apache/iotdb.git</developerConnection>
-            
-    <url>ssh://git@github.com:apache/iotdb.git</url>
-            
-    <tag>rel/0.10</tag>
-        
-  </scm>
-      
-  <!-- Only configure the site distribution as the rest is handled by the apache parent -->
-      
-  <distributionManagement>
-            
-    <site>
-                  
-      <id>apache.website</id>
-                  
-      <url>scm:git:https://gitbox.apache.org/repos/asf/iotdb-website.git</url>
-              
-    </site>
-        
-  </distributionManagement>
-      
-  <issueManagement>
-            
-    <system>Jira</system>
-            
-    <url>https://issues.apache.org/jira/browse/iotdb</url>
-        
-  </issueManagement>
-      
-  <mailingLists>
-            
-    <mailingList>
-                  
-      <name>Apache IoTDB Developer List</name>
-                  
-      <subscribe>mailto:dev-subscribe@iotdb.apache.org</subscribe>
-                  
-      <unsubscribe>mailto:dev-unsubscribe@iotdb.apache.org</unsubscribe>
-                  
-      <post>mailto:dev@iotdb.apache.org</post>
-                  
-      <archive>http://mail-archives.apache.org/mod_mbox/iotdb-dev/</archive>
-              
-    </mailingList>
-            
-    <mailingList>
-                  
-      <name>IoTDB Commits List</name>
-                  
-      <subscribe>mailto:commit-subscribe@iotdb.apache.org</subscribe>
-                  
-      <unsubscribe>mailto:commits-unsubscribe@iotdb.apache.org</unsubscribe>
-                  
-      <post>mailto:commits@iotdb.apache.org</post>
-                  
-      <archive>http://mail-archives.apache.org/mod_mbox/iotdb-commits/</archive>
-              
-    </mailingList>
-            
-    <mailingList>
-                  
-      <name>IoTDB Jira Notifications List</name>
-                  
-      <subscribe>mailto:notifications-subscribe@iotdb.apache.org</subscribe>
-                  
-      <unsubscribe>mailto:notifications-unsubscribe@iotdb.apache.org</unsubscribe>
-                  
-      <post>mailto:notifications@iotdb.apache.org</post>
-                  
-      <archive>http://mail-archives.apache.org/mod_mbox/iotdb-notifications/</archive>
-              
-    </mailingList>
-        
-  </mailingLists>
-      
-  <modules>
-            
-    <module>tsfile</module>
-            
-    <module>antlr</module>
-            
-    <module>thrift</module>
-            
-    <module>thrift-cluster</module>
-            
-    <module>thrift-sync</module>
-            
-    <module>thrift-influxdb</module>
-            
-    <module>service-rpc</module>
-            
-    <module>jdbc</module>
-            
-    <module>session</module>
-            
-    <module>cli</module>
-            
-    <module>openapi</module>
-            
-    <module>server</module>
-            
-    <module>example</module>
-            
-    <module>grafana-plugin</module>
-            
-    <module>grafana-connector</module>
-            
-    <module>spark-tsfile</module>
-            
-    <module>hadoop</module>
-            
-    <module>spark-iotdb-connector</module>
-            
-    <module>flink-tsfile-connector</module>
-            
-    <module>flink-iotdb-connector</module>
-            
-    <module>distribution</module>
-            
-    <module>hive-connector</module>
-            
-    <module>cluster</module>
-            
-    <module>cross-tests</module>
-            
-    <module>zeppelin-interpreter</module>
-            
-    <module>client-py</module>
-            
-    <module>compile-tools</module>
-            
-    <module>client-cpp</module>
-            
-    <module>metrics</module>
-            
-    <module>integration</module>
-          
-    <module>asdf</module>
-      
-  </modules>
-      
-  <!-- Properties Management -->
-      
-  <properties>
-            
-    <maven.compiler.source>1.8</maven.compiler.source>
-            
-    <maven.compiler.target>1.8</maven.compiler.target>
-            
-    <maven.assembly.version>3.1.0</maven.assembly.version>
-            
-    <scala.library.version>2.11</scala.library.version>
-            
-    <scala.version>2.11.12</scala.version>
-            
-    <hadoop2.version>2.10.0</hadoop2.version>
-            
-    <hive2.version>2.3.6</hive2.version>
-            
-    <junit.version>4.13.2</junit.version>
-            
-    <slf4j.version>1.7.12</slf4j.version>
-            
-    <logback.version>1.2.10</logback.version>
-            
-    <joda.version>2.9.9</joda.version>
-            
-    <spark.version>2.4.3</spark.version>
-            
-    <flink.version>1.14.0</flink.version>
-            
-    <common.io.version>2.11.0</common.io.version>
-            
-    <commons.collections4>4.4</commons.collections4>
-            
-    <!-- keep consistent with client-cpp/tools/thrift/pom.xml-->
-            
-    <thrift.version>0.14.1</thrift.version>
-            
-    <airline.version>0.8</airline.version>
-            
-    <jackson.version>2.10.5</jackson.version>
-            
-    <antlr4.version>4.8-1</antlr4.version>
-            
-    <common.cli.version>1.3.1</common.cli.version>
-            
-    <common.codec.version>1.13</common.codec.version>
-            
-    <common.collections.version>3.2.2</common.collections.version>
-            
-    <common.lang3.version>3.8.1</common.lang3.version>
-            
-    <common.logging.version>1.1.3</common.logging.version>
-            
-    <common.pool2.version>2.11.1</common.pool2.version>
-            
-    <org.slf4j.version>1.7.32</org.slf4j.version>
-            
-    <guava.version>24.1.1</guava.version>
-            
-    <jline.version>3.21.0</jline.version>
-            
-    <jetty.version>9.4.35.v20201120</jetty.version>
-            
-    <metrics.version>4.2.4</metrics.version>
-            
-    <javax.xml.bind.version>2.4.0-b180830.0359</javax.xml.bind.version>
-            
-    <felix.version>5.1.1</felix.version>
-            
-    <snappy.version>1.1.8.4</snappy.version>
-            
-    <netty.version>4.1.53.Final</netty.version>
-            
-    <!-- URL of the ASF SonarQube server -->
-            
-    <sonar.host.url>https://sonarcloud.io</sonar.host.url>
-            
-    <sonar.organization>apache</sonar.organization>
-            
-    <!-- Exclude all generated code -->
-            
-    <sonar.exclusions>**/generated-sources</sonar.exclusions>
-            
-    <sonar.java.checkstyle.reportPaths>target/checkstyle-report.xml</sonar.java.checkstyle.reportPaths>
-            
-    <sonar.coverage.jacoco.xmlReportPaths>target/jacoco-merged-reports/jacoco.xml</sonar.coverage.jacoco.xmlReportPaths>
-            
-    <sonar.junit.reportPaths>target/surefire-reports,target/failsafe-reports</sonar.junit.reportPaths>
-            
-    <!-- By default, the argLine is empty-->
-            
-    <gson.version>2.8.8</gson.version>
-            
-    <argLine/>
-            
-    <!-- whether enable compiling the cpp client-->
-            
-    <client-cpp>false</client-cpp>
-            
-    <!-- disable enforcer by default-->
-            
-    <enforcer.skip>true</enforcer.skip>
-            
-    <spotless.version>2.4.2</spotless.version>
-            
-    <httpclient.version>4.5.13</httpclient.version>
-            
-    <httpcore.version>4.4.13</httpcore.version>
-            
-    <!-- for REST service -->
-            
-    <swagger.core.version>1.5.18</swagger.core.version>
-            
-    <servlet.api.version>2.5</servlet.api.version>
-            
-    <openapi.generator.version>5.0.0</openapi.generator.version>
-        
-  </properties>
-      
-  <!--
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache</groupId>
+        <artifactId>apache</artifactId>
+        <version>23</version>
+    </parent>
+    <groupId>org.apache.iotdb</groupId>
+    <artifactId>iotdb-parent</artifactId>
+    <version>0.13.0-SNAPSHOT</version>
+    <packaging>pom</packaging>
+    <name>Apache IoTDB Project Parent POM</name>
+    <description>This is the top level project that builds, packages the tsfile, iotdb engine, jdbc, and integration libs.</description>
+    <licenses>
+        <license>
+            <name>The Apache License, Version 2.0</name>
+            <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
+        </license>
+    </licenses>
+    <scm>
+        <connection>scm:git:ssh://git@github.com/apache/iotdb.git</connection>
+        <developerConnection>scm:git:ssh://git@github.com/apache/iotdb.git</developerConnection>
+        <url>ssh://git@github.com:apache/iotdb.git</url>
+        <tag>rel/0.10</tag>
+    </scm>
+    <!-- Only configure the site distribution as the rest is handled by the apache parent -->
+    <distributionManagement>
+        <site>
+            <id>apache.website</id>
+            <url>scm:git:https://gitbox.apache.org/repos/asf/iotdb-website.git</url>
+        </site>
+    </distributionManagement>
+    <issueManagement>
+        <system>Jira</system>
+        <url>https://issues.apache.org/jira/browse/iotdb</url>
+    </issueManagement>
+    <mailingLists>
+        <mailingList>
+            <name>Apache IoTDB Developer List</name>
+            <subscribe>mailto:dev-subscribe@iotdb.apache.org</subscribe>
+            <unsubscribe>mailto:dev-unsubscribe@iotdb.apache.org</unsubscribe>
+            <post>mailto:dev@iotdb.apache.org</post>
+            <archive>http://mail-archives.apache.org/mod_mbox/iotdb-dev/</archive>
+        </mailingList>
+        <mailingList>
+            <name>IoTDB Commits List</name>
+            <subscribe>mailto:commit-subscribe@iotdb.apache.org</subscribe>
+            <unsubscribe>mailto:commits-unsubscribe@iotdb.apache.org</unsubscribe>
+            <post>mailto:commits@iotdb.apache.org</post>
+            <archive>http://mail-archives.apache.org/mod_mbox/iotdb-commits/</archive>
+        </mailingList>
+        <mailingList>
+            <name>IoTDB Jira Notifications List</name>
+            <subscribe>mailto:notifications-subscribe@iotdb.apache.org</subscribe>
+            <unsubscribe>mailto:notifications-unsubscribe@iotdb.apache.org</unsubscribe>
+            <post>mailto:notifications@iotdb.apache.org</post>
+            <archive>http://mail-archives.apache.org/mod_mbox/iotdb-notifications/</archive>
+        </mailingList>
+    </mailingLists>
+    <modules>
+        <module>tsfile</module>
+        <module>antlr</module>
+        <module>thrift</module>
+        <module>thrift-cluster</module>
+        <module>thrift-sync</module>
+        <module>thrift-influxdb</module>
+        <module>service-rpc</module>
+        <module>jdbc</module>
+        <module>session</module>
+        <module>cli</module>
+        <module>openapi</module>
+        <module>server</module>
+        <module>example</module>
+        <module>grafana-plugin</module>
+        <module>grafana-connector</module>
+        <module>spark-tsfile</module>
+        <module>hadoop</module>
+        <module>spark-iotdb-connector</module>
+        <module>flink-tsfile-connector</module>
+        <module>flink-iotdb-connector</module>
+        <module>distribution</module>
+        <module>hive-connector</module>
+        <module>cluster</module>
+        <module>cross-tests</module>
+        <module>zeppelin-interpreter</module>
+        <module>client-py</module>
+        <module>compile-tools</module>
+        <module>client-cpp</module>
+        <module>metrics</module>
+        <module>integration</module>
+    </modules>
+    <!-- Properties Management -->
+    <properties>
+        <maven.compiler.source>1.8</maven.compiler.source>
+        <maven.compiler.target>1.8</maven.compiler.target>
+        <maven.assembly.version>3.1.0</maven.assembly.version>
+        <scala.library.version>2.11</scala.library.version>
+        <scala.version>2.11.12</scala.version>
+        <hadoop2.version>2.10.0</hadoop2.version>
+        <hive2.version>2.3.6</hive2.version>
+        <junit.version>4.13.2</junit.version>
+        <slf4j.version>1.7.12</slf4j.version>
+        <logback.version>1.2.10</logback.version>
+        <joda.version>2.9.9</joda.version>
+        <spark.version>2.4.3</spark.version>
+        <flink.version>1.14.0</flink.version>
+        <common.io.version>2.11.0</common.io.version>
+        <commons.collections4>4.4</commons.collections4>
+        <!-- keep consistent with client-cpp/tools/thrift/pom.xml-->
+        <thrift.version>0.14.1</thrift.version>
+        <airline.version>0.8</airline.version>
+        <jackson.version>2.10.5</jackson.version>
+        <antlr4.version>4.8-1</antlr4.version>
+        <common.cli.version>1.3.1</common.cli.version>
+        <common.codec.version>1.13</common.codec.version>
+        <common.collections.version>3.2.2</common.collections.version>
+        <common.lang3.version>3.8.1</common.lang3.version>
+        <common.logging.version>1.1.3</common.logging.version>
+        <common.pool2.version>2.11.1</common.pool2.version>
+        <org.slf4j.version>1.7.32</org.slf4j.version>
+        <guava.version>24.1.1</guava.version>
+        <jline.version>3.21.0</jline.version>
+        <jetty.version>9.4.35.v20201120</jetty.version>
+        <metrics.version>4.2.4</metrics.version>
+        <javax.xml.bind.version>2.4.0-b180830.0359</javax.xml.bind.version>
+        <felix.version>5.1.1</felix.version>
+        <snappy.version>1.1.8.4</snappy.version>
+        <netty.version>4.1.53.Final</netty.version>
+        <!-- URL of the ASF SonarQube server -->
+        <sonar.host.url>https://sonarcloud.io</sonar.host.url>
+        <sonar.organization>apache</sonar.organization>
+        <!-- Exclude all generated code -->
+        <sonar.exclusions>**/generated-sources</sonar.exclusions>
+        <sonar.java.checkstyle.reportPaths>target/checkstyle-report.xml</sonar.java.checkstyle.reportPaths>
+        <sonar.coverage.jacoco.xmlReportPaths>target/jacoco-merged-reports/jacoco.xml</sonar.coverage.jacoco.xmlReportPaths>
+        <sonar.junit.reportPaths>target/surefire-reports,target/failsafe-reports</sonar.junit.reportPaths>
+        <!-- By default, the argLine is empty-->
+        <gson.version>2.8.8</gson.version>
+        <argLine/>
+        <!-- whether enable compiling the cpp client-->
+        <client-cpp>false</client-cpp>
+        <!-- disable enforcer by default-->
+        <enforcer.skip>true</enforcer.skip>
+        <spotless.version>2.4.2</spotless.version>
+        <httpclient.version>4.5.13</httpclient.version>
+        <httpcore.version>4.4.13</httpcore.version>
+        <!-- for REST service -->
+        <swagger.core.version>1.5.18</swagger.core.version>
+        <servlet.api.version>2.5</servlet.api.version>
+        <openapi.generator.version>5.0.0</openapi.generator.version>
+    </properties>
+    <!--
         if we claim dependencies in dependencyManagement, then we do not claim
         their version in sub-project's pom, but we have to claim themselves again
         in sub-projects
     -->
-      
-  <dependencyManagement>
-            
-    <dependencies>
-                  
-      <!--
+    <dependencyManagement>
+        <dependencies>
+            <!--
                 in the subprojects, you have to claim logback again, because maybe
                 someone in your dependences uses log4j lib.
             -->
-                  
-      <dependency>
-                        
-        <groupId>ch.qos.logback</groupId>
-                        
-        <artifactId>logback-classic</artifactId>
-                        
-        <version>${logback.version}</version>
-                    
-      </dependency>
-                  
-      <dependency>
-                        
-        <groupId>com.fasterxml.jackson.core</groupId>
-                        
-        <artifactId>jackson-annotations</artifactId>
-                        
-        <version>${jackson.version}</version>
-                    
-      </dependency>
-                  
-      <dependency>
-                        
-        <groupId>com.fasterxml.jackson.core</groupId>
-                        
-        <artifactId>jackson-core</artifactId>
-                        
-        <version>${jackson.version}</version>
-                    
-      </dependency>
-                  
-      <dependency>
-                        
-        <groupId>com.fasterxml.jackson.core</groupId>
-                        
-        <artifactId>jackson-databind</artifactId>
-                        
-        <version>${jackson.version}</version>
-                    
-      </dependency>
-                  
-      <dependency>
-                        
-        <groupId>com.fasterxml.jackson.module</groupId>
-                        
-        <artifactId>jackson-module-paranamer</artifactId>
-                        
-        <version>${jackson.version}</version>
-                    
-      </dependency>
-                  
-      <dependency>
-                        
-        <groupId>com.fasterxml.jackson.module</groupId>
-                        
-        <artifactId>jackson-module-scala_2.11</artifactId>
-                        
-        <version>${jackson.version}</version>
-                    
-      </dependency>
-                  
-      <dependency>
-                        
-        <groupId>com.google.guava</groupId>
-                        
-        <artifactId>guava</artifactId>
-                        
-        <version>[${guava.version},)</version>
-                    
-      </dependency>
-                  
-      <dependency>
-                        
-        <groupId>commons-cli</groupId>
-                        
-        <artifactId>commons-cli</artifactId>
-                        
-        <version>${common.cli.version}</version>
-                    
-      </dependency>
-                  
-      <dependency>
-                        
-        <groupId>commons-codec</groupId>
-                        
-        <artifactId>commons-codec</artifactId>
-                        
-        <version>${common.codec.version}</version>
-                    
-      </dependency>
-                  
-      <dependency>
-                        
-        <groupId>commons-collections</groupId>
-                        
-        <artifactId>commons-collections</artifactId>
-                        
-        <version>${common.collections.version}</version>
-                    
-      </dependency>
-                  
-      <dependency>
-                        
-        <groupId>commons-io</groupId>
-                        
-        <artifactId>commons-io</artifactId>
-                        
-        <version>${common.io.version}</version>
-                    
-      </dependency>
-                  
-      <dependency>
-                        
-        <groupId>commons-logging</groupId>
-                        
-        <artifactId>commons-logging</artifactId>
-                        
-        <version>${common.logging.version}</version>
-                    
-      </dependency>
-                  
-      <dependency>
-                        
-        <groupId>io.netty</groupId>
-                        
-        <artifactId>netty</artifactId>
-                        
-        <version>3.9.9.Final</version>
-                    
-      </dependency>
-                  
-      <dependency>
-                        
-        <groupId>io.netty</groupId>
-                        
-        <artifactId>netty-all</artifactId>
-                        
-        <version>${netty.version}</version>
-                    
-      </dependency>
-                  
-      <dependency>
-                        
-        <groupId>io.netty</groupId>
-                        
-        <artifactId>netty-buffer</artifactId>
-                        
-        <version>${netty.version}</version>
-                    
-      </dependency>
-                  
-      <dependency>
-                        
-        <groupId>io.netty</groupId>
-                        
-        <artifactId>netty-common</artifactId>
-                        
-        <version>${netty.version}</version>
-                    
-      </dependency>
-                  
-      <dependency>
-                        
-        <groupId>javax.annotation</groupId>
-                        
-        <artifactId>javax.annotation-api</artifactId>
-                        
-        <version>1.3.2</version>
-                    
-      </dependency>
-                  
-      <dependency>
-                        
-        <groupId>javax.xml.bind</groupId>
-                        
-        <artifactId>jaxb-api</artifactId>
-                        
-        <version>${javax.xml.bind.version}</version>
-                    
-      </dependency>
-                  
-      <dependency>
-                        
-        <groupId>org.jline</groupId>
-                        
-        <artifactId>jline</artifactId>
-                        
-        <version>${jline.version}</version>
-                    
-      </dependency>
-                  
-      <dependency>
-                        
-        <groupId>junit</groupId>
-                        
-        <artifactId>junit</artifactId>
-                        
-        <version>${junit.version}</version>
-                    
-      </dependency>
-                  
-      <dependency>
-                        
-        <groupId>log4j</groupId>
-                        
-        <artifactId>log4j</artifactId>
-                        
-        <version>1.2.17</version>
-                    
-      </dependency>
-                  
-      <dependency>
-                        
-        <groupId>org.lz4</groupId>
-                        
-        <artifactId>lz4-java</artifactId>
-                        
-        <version>1.8.0</version>
-                    
-      </dependency>
-                  
-      <dependency>
-                        
-        <groupId>org.eclipse.jetty</groupId>
-                        
-        <artifactId>jetty-server</artifactId>
-                        
-        <version>${jetty.version}</version>
-                    
-      </dependency>
-                  
-      <dependency>
-                        
-        <groupId>org.eclipse.jetty</groupId>
-                        
-        <artifactId>jetty-webapp</artifactId>
-                        
-        <version>${jetty.version}</version>
-                    
-      </dependency>
-                  
-      <dependency>
-                        
-        <groupId>io.dropwizard.metrics</groupId>
-                        
-        <artifactId>metrics-core</artifactId>
-                        
-        <version>${metrics.version}</version>
-                    
-      </dependency>
-                  
-      <dependency>
-                        
-        <groupId>io.dropwizard.metrics</groupId>
-                        
-        <artifactId>metrics-jvm</artifactId>
-                        
-        <version>${metrics.version}</version>
-                    
-      </dependency>
-                  
-      <dependency>
-                        
-        <groupId>io.dropwizard.metrics</groupId>
-                        
-        <artifactId>metrics-json</artifactId>
-                        
-        <version>${metrics.version}</version>
-                    
-      </dependency>
-                  
-      <dependency>
-                        
-        <groupId>me.tongfei</groupId>
-                        
-        <artifactId>progressbar</artifactId>
-                        
-        <version>0.9.2</version>
-                        
-        <exclusions>
-                              
-          <!-- This transitive dependency duplicates classes from jline:jline:jar:2.14.5:compile -->
-                              
-          <exclusion>
-                                    
-            <groupId>org.fusesource.jansi</groupId>
-                                    
-            <artifactId>jansi</artifactId>
-                                
-          </exclusion>
-                          
-        </exclusions>
-                    
-      </dependency>
-                  
-      <dependency>
-                        
-        <groupId>org.antlr</groupId>
-                        
-        <artifactId>antlr4-runtime</artifactId>
-                        
-        <version>${antlr4.version}</version>
-                    
-      </dependency>
-                  
-      <dependency>
-                        
-        <groupId>org.apache.commons</groupId>
-                        
-        <artifactId>commons-collections4</artifactId>
-                        
-        <version>${commons.collections4}</version>
-                    
-      </dependency>
-                  
-      <dependency>
-                        
-        <groupId>org.apache.commons</groupId>
-                        
-        <artifactId>commons-lang3</artifactId>
-                        
-        <version>${common.lang3.version}</version>
-                    
-      </dependency>
-                  
-      <dependency>
-                        
-        <groupId>org.apache.commons</groupId>
-                        
-        <artifactId>commons-pool2</artifactId>
-                        
-        <version>${common.pool2.version}</version>
-                    
-      </dependency>
-                  
-      <dependency>
-                        
-        <groupId>org.apache.hadoop</groupId>
-                        
-        <artifactId>hadoop-client</artifactId>
-                        
-        <version>${hadoop2.version}</version>
-                    
-      </dependency>
-                  
-      <dependency>
-                        
-        <groupId>org.apache.hive</groupId>
-                        
-        <artifactId>hive-serde</artifactId>
-                        
-        <version>${hive2.version}</version>
-                    
-      </dependency>
-                  
-      <dependency>
-                        
-        <groupId>org.apache.hive</groupId>
-                        
-        <artifactId>hive-exec</artifactId>
-                        
-        <version>${hive2.version}</version>
-                        
-        <exclusions>
-                              
-          <exclusion>
-                                    
-            <groupId>org.pentaho</groupId>
-                                    
-            <artifactId>pentaho-aggdesigner-algorithm</artifactId>
-                                
-          </exclusion>
-                          
-        </exclusions>
-                    
-      </dependency>
-                  
-      <dependency>
-                        
-        <groupId>org.apache.spark</groupId>
-                        
-        <artifactId>spark-core_2.11</artifactId>
-                        
-        <version>${spark.version}</version>
-                    
-      </dependency>
-                  
-      <dependency>
-                        
-        <groupId>org.apache.spark</groupId>
-                        
-        <artifactId>spark-sql_2.11</artifactId>
-                        
-        <version>${spark.version}</version>
-                    
-      </dependency>
-                  
-      <dependency>
-                        
-        <groupId>org.codehaus.jackson</groupId>
-                        
-        <artifactId>jackson-core-asl</artifactId>
-                        
-        <version>1.9.13</version>
-                    
-      </dependency>
-                  
-      <dependency>
-                        
-        <groupId>org.codehaus.jackson</groupId>
-                        
-        <artifactId>jackson-mapper-asl</artifactId>
-                        
-        <version>1.9.13</version>
-                    
-      </dependency>
-                  
-      <dependency>
-                        
-        <groupId>org.glassfish.jaxb</groupId>
-                        
-        <artifactId>jaxb-runtime</artifactId>
-                        
-        <version>3.0.0</version>
-                        
-        <exclusions>
-                              
-          <exclusion>
-                                    
-            <groupId>jakarta.activation</groupId>
-                                    
-            <artifactId>jakarta.activation-api</artifactId>
-                                
-          </exclusion>
-                          
-        </exclusions>
-                    
-      </dependency>
-                  
-      <dependency>
-                        
-        <groupId>org.javassist</groupId>
-                        
-        <artifactId>javassist</artifactId>
-                        
-        <version>3.24.1-GA</version>
-                    
-      </dependency>
-                  
-      <dependency>
-                        
-        <groupId>org.mockito</groupId>
-                        
-        <artifactId>mockito-core</artifactId>
-                        
-        <version>2.23.0</version>
-                    
-      </dependency>
-                  
-      <dependency>
-                        
-        <groupId>org.objenesis</groupId>
-                        
-        <artifactId>objenesis</artifactId>
-                        
-        <version>3.0.1</version>
-                    
-      </dependency>
-                  
-      <dependency>
-                        
-        <groupId>org.powermock</groupId>
-                        
-        <artifactId>powermock-core</artifactId>
-                        
-        <version>2.0.2</version>
-                    
-      </dependency>
-                  
-      <dependency>
-                        
-        <groupId>org.powermock</groupId>
-                        
-        <artifactId>powermock-api-mockito2</artifactId>
-                        
-        <version>2.0.9</version>
-                    
-      </dependency>
-                  
-      <dependency>
-                        
-        <groupId>org.powermock</groupId>
-                        
-        <artifactId>powermock-module-junit4</artifactId>
-                        
-        <version>2.0.2</version>
-                    
-      </dependency>
-                  
-      <dependency>
-                        
-        <groupId>org.scala-lang</groupId>
-                        
-        <artifactId>scala-library</artifactId>
-                        
-        <version>${scala.version}</version>
-                    
-      </dependency>
-                  
-      <dependency>
-                        
-        <groupId>org.scala-lang</groupId>
-                        
-        <artifactId>scala-reflect</artifactId>
-                        
-        <version>${scala.version}</version>
-                    
-      </dependency>
-                  
-      <dependency>
-                        
-        <groupId>org.scalatest</groupId>
-                        
-        <artifactId>scalatest_2.11</artifactId>
-                        
-        <version>3.0.5</version>
-                    
-      </dependency>
-                  
-      <dependency>
-                        
-        <groupId>org.slf4j</groupId>
-                        
-        <artifactId>jcl-over-slf4j</artifactId>
-                        
-        <version>${org.slf4j.version}</version>
-                    
-      </dependency>
-                  
-      <dependency>
-                        
-        <groupId>org.slf4j</groupId>
-                        
-        <artifactId>jul-to-slf4j</artifactId>
-                        
-        <version>${org.slf4j.version}</version>
-                    
-      </dependency>
-                  
-      <dependency>
-                        
-        <groupId>org.slf4j</groupId>
-                        
-        <artifactId>slf4j-api</artifactId>
-                        
-        <version>${org.slf4j.version}</version>
-                    
-      </dependency>
-                  
-      <dependency>
-                        
-        <groupId>org.slf4j</groupId>
-                        
-        <artifactId>slf4j-log4j12</artifactId>
-                        
-        <version>${org.slf4j.version}</version>
-                    
-      </dependency>
-                  
-      <dependency>
-                        
-        <groupId>org.xerial.snappy</groupId>
-                        
-        <artifactId>snappy-java</artifactId>
-                        
-        <version>${snappy.version}</version>
-                    
-      </dependency>
-                  
-      <dependency>
-                        
-        <groupId>org.apache.thrift</groupId>
-                        
-        <artifactId>libthrift</artifactId>
-                        
-        <version>${thrift.version}</version>
-                        
-        <exclusions>
-                              
-          <exclusion>
-                                    
-            <groupId>org.apache.httpcomponents</groupId>
-                                    
-            <artifactId>httpclient</artifactId>
-                                
-          </exclusion>
-                              
-          <exclusion>
-                                    
-            <groupId>org.apache.httpcomponents</groupId>
-                                    
-            <artifactId>httpcore</artifactId>
-                                
-          </exclusion>
-                              
-          <exclusion>
-                                    
-            <groupId>org.apache.tomcat.embed</groupId>
-                                    
-            <artifactId>tomcat-embed-core</artifactId>
-                                
-          </exclusion>
-                          
-        </exclusions>
-                    
-      </dependency>
-                  
-      <dependency>
-                        
-        <groupId>io.airlift</groupId>
-                        
-        <artifactId>airline</artifactId>
-                        
-        <version>${airline.version}</version>
-                    
-      </dependency>
-                  
-      <dependency>
-                        
-        <groupId>org.fusesource.mqtt-client</groupId>
-                        
-        <artifactId>mqtt-client</artifactId>
-                        
-        <version>1.12</version>
-                    
-      </dependency>
-                  
-      <!-- many dependencies (hadoop, spark, hive, flink) use findbugs but with different version...-->
-                  
-      <dependency>
-                        
-        <groupId>com.google.code.findbugs</groupId>
-                        
-        <artifactId>jsr305</artifactId>
-                        
-        <!-- spark uses the lastest version than hive, flink and hadoop-->
-                        
-        <version>3.0.2</version>
-                    
-      </dependency>
-                  
-      <dependency>
-                        
-        <groupId>com.google.code.gson</groupId>
-                        
-        <artifactId>gson</artifactId>
-                        
-        <version>${gson.version}</version>
-                    
-      </dependency>
-                  
-      <!-- for cli and test container -->
-                  
-      <dependency>
-                        
-        <groupId>net.java.dev.jna</groupId>
-                        
-        <artifactId>jna</artifactId>
-                        
-        <version>5.5.0</version>
-                    
-      </dependency>
-                  
-      <!-- for hadoop connector -->
-                  
-      <dependency>
-                        
-        <groupId>org.apache.zookeeper</groupId>
-                        
-        <artifactId>zookeeper</artifactId>
-                        
-        <version>3.4.9</version>
-                    
-      </dependency>
-                  
-      <dependency>
-                        
-        <groupId>commons-beanutils</groupId>
-                        
-        <artifactId>commons-beanutils</artifactId>
-                        
-        <version>1.9.4</version>
-                    
-      </dependency>
-                  
-      <!-- for test-container and hadoop conflict-->
-                  
-      <dependency>
-                        
-        <groupId>org.apache.commons</groupId>
-                        
-        <artifactId>commons-compress</artifactId>
-                        
-        <version>1.21</version>
-                    
-      </dependency>
-                  
-      <!-- for spark-iotdb-connector and hadoop connector conflict -->
-                  
-      <dependency>
-                        
-        <groupId>org.apache.httpcomponents</groupId>
-                        
-        <artifactId>httpclient</artifactId>
-                        
-        <version>${httpclient.version}</version>
-                    
-      </dependency>
-                  
-      <!-- for spark-iotdb conflict -->
-                  
-      <dependency>
-                        
-        <groupId>com.google.errorprone</groupId>
-                        
-        <artifactId>error_prone_annotations</artifactId>
-                        
-        <version>2.7.1</version>
-                    
-      </dependency>
-                  
-      <dependency>
-                        
-        <groupId>org.apache.httpcomponents</groupId>
-                        
-        <artifactId>httpcore</artifactId>
-                        
-        <version>${httpcore.version}</version>
-                    
-      </dependency>
-                  
-      <!-- for hive connector-->
-                  
-      <dependency>
-                        
-        <groupId>org.eclipse.jetty</groupId>
-                        
-        <artifactId>jetty-server</artifactId>
-                        
-        <version>11.0.6</version>
-                    
-      </dependency>
-              
+            <dependency>
+                <groupId>ch.qos.logback</groupId>
+                <artifactId>logback-classic</artifactId>
+                <version>${logback.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>com.fasterxml.jackson.core</groupId>
+                <artifactId>jackson-annotations</artifactId>
+                <version>${jackson.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>com.fasterxml.jackson.core</groupId>
+                <artifactId>jackson-core</artifactId>
+                <version>${jackson.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>com.fasterxml.jackson.core</groupId>
+                <artifactId>jackson-databind</artifactId>
+                <version>${jackson.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>com.fasterxml.jackson.module</groupId>
+                <artifactId>jackson-module-paranamer</artifactId>
+                <version>${jackson.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>com.fasterxml.jackson.module</groupId>
+                <artifactId>jackson-module-scala_2.11</artifactId>
+                <version>${jackson.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>com.google.guava</groupId>
+                <artifactId>guava</artifactId>
+                <version>[${guava.version},)</version>
+            </dependency>
+            <dependency>
+                <groupId>commons-cli</groupId>
+                <artifactId>commons-cli</artifactId>
+                <version>${common.cli.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>commons-codec</groupId>
+                <artifactId>commons-codec</artifactId>
+                <version>${common.codec.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>commons-collections</groupId>
+                <artifactId>commons-collections</artifactId>
+                <version>${common.collections.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>commons-io</groupId>
+                <artifactId>commons-io</artifactId>
+                <version>${common.io.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>commons-logging</groupId>
+                <artifactId>commons-logging</artifactId>
+                <version>${common.logging.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>io.netty</groupId>
+                <artifactId>netty</artifactId>
+                <version>3.9.9.Final</version>
+            </dependency>
+            <dependency>
+                <groupId>io.netty</groupId>
+                <artifactId>netty-all</artifactId>
+                <version>${netty.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>io.netty</groupId>
+                <artifactId>netty-buffer</artifactId>
+                <version>${netty.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>io.netty</groupId>
+                <artifactId>netty-common</artifactId>
+                <version>${netty.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>javax.annotation</groupId>
+                <artifactId>javax.annotation-api</artifactId>
+                <version>1.3.2</version>
+            </dependency>
+            <dependency>
+                <groupId>javax.xml.bind</groupId>
+                <artifactId>jaxb-api</artifactId>
+                <version>${javax.xml.bind.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.jline</groupId>
+                <artifactId>jline</artifactId>
+                <version>${jline.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>junit</groupId>
+                <artifactId>junit</artifactId>
+                <version>${junit.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>log4j</groupId>
+                <artifactId>log4j</artifactId>
+                <version>1.2.17</version>
+            </dependency>
+            <dependency>
+                <groupId>org.lz4</groupId>
+                <artifactId>lz4-java</artifactId>
+                <version>1.8.0</version>
+            </dependency>
+            <dependency>
+                <groupId>org.eclipse.jetty</groupId>
+                <artifactId>jetty-server</artifactId>
+                <version>${jetty.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.eclipse.jetty</groupId>
+                <artifactId>jetty-webapp</artifactId>
+                <version>${jetty.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>io.dropwizard.metrics</groupId>
+                <artifactId>metrics-core</artifactId>
+                <version>${metrics.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>io.dropwizard.metrics</groupId>
+                <artifactId>metrics-jvm</artifactId>
+                <version>${metrics.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>io.dropwizard.metrics</groupId>
+                <artifactId>metrics-json</artifactId>
+                <version>${metrics.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>me.tongfei</groupId>
+                <artifactId>progressbar</artifactId>
+                <version>0.9.2</version>
+                <exclusions>
+                    <!-- This transitive dependency duplicates classes from jline:jline:jar:2.14.5:compile -->
+                    <exclusion>
+                        <groupId>org.fusesource.jansi</groupId>
+                        <artifactId>jansi</artifactId>
+                    </exclusion>
+                </exclusions>
+            </dependency>
+            <dependency>
+                <groupId>org.antlr</groupId>
+                <artifactId>antlr4-runtime</artifactId>
+                <version>${antlr4.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.commons</groupId>
+                <artifactId>commons-collections4</artifactId>
+                <version>${commons.collections4}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.commons</groupId>
+                <artifactId>commons-lang3</artifactId>
+                <version>${common.lang3.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.commons</groupId>
+                <artifactId>commons-pool2</artifactId>
+                <version>${common.pool2.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.hadoop</groupId>
+                <artifactId>hadoop-client</artifactId>
+                <version>${hadoop2.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.hive</groupId>
+                <artifactId>hive-serde</artifactId>
+                <version>${hive2.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.hive</groupId>
+                <artifactId>hive-exec</artifactId>
+                <version>${hive2.version}</version>
+                <exclusions>
+                    <exclusion>
+                        <groupId>org.pentaho</groupId>
+                        <artifactId>pentaho-aggdesigner-algorithm</artifactId>
+                    </exclusion>
+                </exclusions>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.spark</groupId>
+                <artifactId>spark-core_2.11</artifactId>
+                <version>${spark.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.spark</groupId>
+                <artifactId>spark-sql_2.11</artifactId>
+                <version>${spark.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.codehaus.jackson</groupId>
+                <artifactId>jackson-core-asl</artifactId>
+                <version>1.9.13</version>
+            </dependency>
+            <dependency>
+                <groupId>org.codehaus.jackson</groupId>
+                <artifactId>jackson-mapper-asl</artifactId>
+                <version>1.9.13</version>
+            </dependency>
+            <dependency>
+                <groupId>org.glassfish.jaxb</groupId>
+                <artifactId>jaxb-runtime</artifactId>
+                <version>3.0.0</version>
+                <exclusions>
+                    <exclusion>
+                        <groupId>jakarta.activation</groupId>
+                        <artifactId>jakarta.activation-api</artifactId>
+                    </exclusion>
+                </exclusions>
+            </dependency>
+            <dependency>
+                <groupId>org.javassist</groupId>
+                <artifactId>javassist</artifactId>
+                <version>3.24.1-GA</version>
+            </dependency>
+            <dependency>
+                <groupId>org.mockito</groupId>
+                <artifactId>mockito-core</artifactId>
+                <version>2.23.0</version>
+            </dependency>
+            <dependency>
+                <groupId>org.objenesis</groupId>
+                <artifactId>objenesis</artifactId>
+                <version>3.0.1</version>
+            </dependency>
+            <dependency>
+                <groupId>org.powermock</groupId>
+                <artifactId>powermock-core</artifactId>
+                <version>2.0.2</version>
+            </dependency>
+            <dependency>
+                <groupId>org.powermock</groupId>
+                <artifactId>powermock-api-mockito2</artifactId>
+                <version>2.0.9</version>
+            </dependency>
+            <dependency>
+                <groupId>org.powermock</groupId>
+                <artifactId>powermock-module-junit4</artifactId>
+                <version>2.0.2</version>
+            </dependency>
+            <dependency>
+                <groupId>org.scala-lang</groupId>
+                <artifactId>scala-library</artifactId>
+                <version>${scala.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.scala-lang</groupId>
+                <artifactId>scala-reflect</artifactId>
+                <version>${scala.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.scalatest</groupId>
+                <artifactId>scalatest_2.11</artifactId>
+                <version>3.0.5</version>
+            </dependency>
+            <dependency>
+                <groupId>org.slf4j</groupId>
+                <artifactId>jcl-over-slf4j</artifactId>
+                <version>${org.slf4j.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.slf4j</groupId>
+                <artifactId>jul-to-slf4j</artifactId>
+                <version>${org.slf4j.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.slf4j</groupId>
+                <artifactId>slf4j-api</artifactId>
+                <version>${org.slf4j.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.slf4j</groupId>
+                <artifactId>slf4j-log4j12</artifactId>
+                <version>${org.slf4j.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.xerial.snappy</groupId>
+                <artifactId>snappy-java</artifactId>
+                <version>${snappy.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.thrift</groupId>
+                <artifactId>libthrift</artifactId>
+                <version>${thrift.version}</version>
+                <exclusions>
+                    <exclusion>
+                        <groupId>org.apache.httpcomponents</groupId>
+                        <artifactId>httpclient</artifactId>
+                    </exclusion>
+                    <exclusion>
+                        <groupId>org.apache.httpcomponents</groupId>
+                        <artifactId>httpcore</artifactId>
+                    </exclusion>
+                    <exclusion>
+                        <groupId>org.apache.tomcat.embed</groupId>
+                        <artifactId>tomcat-embed-core</artifactId>
+                    </exclusion>
+                </exclusions>
+            </dependency>
+            <dependency>
+                <groupId>io.airlift</groupId>
+                <artifactId>airline</artifactId>
+                <version>${airline.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.fusesource.mqtt-client</groupId>
+                <artifactId>mqtt-client</artifactId>
+                <version>1.12</version>
+            </dependency>
+            <!-- many dependencies (hadoop, spark, hive, flink) use findbugs but with different version...-->
+            <dependency>
+                <groupId>com.google.code.findbugs</groupId>
+                <artifactId>jsr305</artifactId>
+                <!-- spark uses the lastest version than hive, flink and hadoop-->
+                <version>3.0.2</version>
+            </dependency>
+            <dependency>
+                <groupId>com.google.code.gson</groupId>
+                <artifactId>gson</artifactId>
+                <version>${gson.version}</version>
+            </dependency>
+            <!-- for cli and test container -->
+            <dependency>
+                <groupId>net.java.dev.jna</groupId>
+                <artifactId>jna</artifactId>
+                <version>5.5.0</version>
+            </dependency>
+            <!-- for hadoop connector -->
+            <dependency>
+                <groupId>org.apache.zookeeper</groupId>
+                <artifactId>zookeeper</artifactId>
+                <version>3.4.9</version>
+            </dependency>
+            <dependency>
+                <groupId>commons-beanutils</groupId>
+                <artifactId>commons-beanutils</artifactId>
+                <version>1.9.4</version>
+            </dependency>
+            <!-- for test-container and hadoop conflict-->
+            <dependency>
+                <groupId>org.apache.commons</groupId>
+                <artifactId>commons-compress</artifactId>
+                <version>1.21</version>
+            </dependency>
+            <!-- for spark-iotdb-connector and hadoop connector conflict -->
+            <dependency>
+                <groupId>org.apache.httpcomponents</groupId>
+                <artifactId>httpclient</artifactId>
+                <version>${httpclient.version}</version>
+            </dependency>
+            <!-- for spark-iotdb conflict -->
+            <dependency>
+                <groupId>com.google.errorprone</groupId>
+                <artifactId>error_prone_annotations</artifactId>
+                <version>2.7.1</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.httpcomponents</groupId>
+                <artifactId>httpcore</artifactId>
+                <version>${httpcore.version}</version>
+            </dependency>
+            <!-- for hive connector-->
+            <dependency>
+                <groupId>org.eclipse.jetty</groupId>
+                <artifactId>jetty-server</artifactId>
+                <version>11.0.6</version>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
+    <dependencies>
+        <dependency>
+            <groupId>ch.qos.logback</groupId>
+            <artifactId>logback-classic</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.slf4j</groupId>
+            <artifactId>slf4j-api</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.testcontainers</groupId>
+            <artifactId>testcontainers</artifactId>
+            <version>1.15.2</version>
+            <scope>test</scope>
+        </dependency>
     </dependencies>
-        
-  </dependencyManagement>
-      
-  <dependencies>
-            
-    <dependency>
-                  
-      <groupId>ch.qos.logback</groupId>
-                  
-      <artifactId>logback-classic</artifactId>
-              
-    </dependency>
-            
-    <dependency>
-                  
-      <groupId>org.slf4j</groupId>
-                  
-      <artifactId>slf4j-api</artifactId>
-              
-    </dependency>
-            
-    <dependency>
-                  
-      <groupId>junit</groupId>
-                  
-      <artifactId>junit</artifactId>
-                  
-      <scope>test</scope>
-              
-    </dependency>
-            
-    <dependency>
-                  
-      <groupId>org.testcontainers</groupId>
-                  
-      <artifactId>testcontainers</artifactId>
-                  
-      <version>1.15.2</version>
-                  
-      <scope>test</scope>
-              
-    </dependency>
-        
-  </dependencies>
-      
-  <build>
-            
-    <pluginManagement>
-                  
-      <plugins>
-                        
-        <!-- using `mvn -N versions:update-child-modules` can update the version
+    <build>
+        <pluginManagement>
+            <plugins>
+                <!-- using `mvn -N versions:update-child-modules` can update the version
                 of child modules to what their parent claims -->
-                        
-        <plugin>
-                              
-          <groupId>org.codehaus.mojo</groupId>
-                              
-          <artifactId>versions-maven-plugin</artifactId>
-                              
-          <version>2.3</version>
-                              
-          <configuration>
-                                    
-            <generateBackupPoms>false</generateBackupPoms>
-                                
-          </configuration>
-                          
-        </plugin>
-                        
-        <plugin>
-                              
-          <groupId>org.apache.maven.plugins</groupId>
-                              
-          <artifactId>maven-javadoc-plugin</artifactId>
-                              
-          <configuration>
-                                    
-            <excludePackageNames>*thrift*</excludePackageNames>
-                                    
-            <!--
+                <plugin>
+                    <groupId>org.codehaus.mojo</groupId>
+                    <artifactId>versions-maven-plugin</artifactId>
+                    <version>2.3</version>
+                    <configuration>
+                        <generateBackupPoms>false</generateBackupPoms>
+                    </configuration>
+                </plugin>
+                <plugin>
+                    <groupId>org.apache.maven.plugins</groupId>
+                    <artifactId>maven-javadoc-plugin</artifactId>
+                    <configuration>
+                        <excludePackageNames>*thrift*</excludePackageNames>
+                        <!--
                           This will suppress the generation of a hidden timestamp at the top of each generated html page
                           and hopefully let the site generation nod to too big updates every time.
                         -->
-                                    
-            <notimestamp>true</notimestamp>
-                                    
-            <!--Don't fail the build, just because there were issues in the JavaDoc generation.-->
-                                    
-            <failOnError>false</failOnError>
-                                
-          </configuration>
-                          
-        </plugin>
-                        
-        <!--
+                        <notimestamp>true</notimestamp>
+                        <!--Don't fail the build, just because there were issues in the JavaDoc generation.-->
+                        <failOnError>false</failOnError>
+                    </configuration>
+                </plugin>
+                <!--
                   We need to increase the memory available to tests as we were
                   getting out-of-memory errors when building on windows machines.
                 -->
-                        
-        <plugin>
-                              
-          <groupId>org.apache.maven.plugins</groupId>
-                              
-          <artifactId>maven-surefire-plugin</artifactId>
-                              
-          <configuration>
-                                    
-            <argLine>${argLine} -Xmx1024m</argLine>
-                                
-          </configuration>
-                          
-        </plugin>
-                        
-        <!--
+                <plugin>
+                    <groupId>org.apache.maven.plugins</groupId>
+                    <artifactId>maven-surefire-plugin</artifactId>
+                    <configuration>
+                        <argLine>${argLine} -Xmx1024m</argLine>
+                    </configuration>
+                </plugin>
+                <!--
                     Plugin for doing the code analysis.
                 -->
-                        
-        <plugin>
-                              
-          <groupId>org.sonarsource.scanner.maven</groupId>
-                              
-          <artifactId>sonar-maven-plugin</artifactId>
-                              
-          <version>3.6.1.1688</version>
-                          
-        </plugin>
-                        
-        <plugin>
-                              
-          <groupId>org.apache.rat</groupId>
-                              
-          <artifactId>apache-rat-plugin</artifactId>
-                              
-          <configuration>
-                                    
-            <consoleOutput>true</consoleOutput>
-                                    
-            <excludes>
-                                          
-              <!-- Git related files -->
-                                          
-              <exclude>**/.git/**</exclude>
-                                          
-              <exclude>**/.mvn/**</exclude>
-                                          
-              <exclude>**/.gitignore</exclude>
-                                          
-              <exclude>**/.gitmodules</exclude>
-                                          
-              <exclude>**/.git-blame-ignore-revs</exclude>
-                                          
-              <!-- Maven related files -->
-                                          
-              <exclude>**/target/**</exclude>
-                                          
-              <!-- Eclipse related files -->
-                                          
-              <exclude>**/.project</exclude>
-                                          
-              <exclude>**/.settings/**</exclude>
-                                          
-              <exclude>**/.classpath</exclude>
-                                          
-              <!-- IntelliJ related files -->
-                                          
-              <exclude>**/.idea/**</exclude>
-                                          
-              <exclude>**/*.iml</exclude>
-                                          
-              <!-- Runtime log -->
-                                          
-              <exclude>**/*.log</exclude>
-                                          
-              <!-- Exclude CVS files -->
-                                          
-              <exclude>**/*.cvs</exclude>
-                                          
-              <!-- licenses -->
-                                          
-              <exclude>licenses/*</exclude>
-                                          
-              <!-- only for Travis CI with WinOS-->
-                                          
-              <exclude>hadoopbin</exclude>
-                                          
-              <exclude>windowssystem32</exclude>
-                                          
-              <!-- generated by Github -->
-                                          
-              <exclude>**/.github/**</exclude>
-                                          
-              <!-- figures -->
-                                          
-              <exclude>**/.eps</exclude>
-                                          
-              <exclude>**/.png</exclude>
-                                          
-              <exclude>**/.jpg</exclude>
-                                          
-              <exclude>**/.jpeg</exclude>
-                                          
-              <!--Generated by Apache Release -->
-                                          
-              <exclude>local-snapshots-dir/**</exclude>
-                                          
-              <!-- JSON can't contain comments and therefore no Apache header -->
-                                          
-              <exclude>*.json</exclude>
-                                          
-              <!-- visualization plans -->
-                                          
-              <exclude>**/*.plan</exclude>
-                                          
-              <exclude>**/NOTICE-binary</exclude>
-                                          
-              <exclude>**/LICENSE-binary</exclude>
-                                          
-              <!-- json does not support comments-->
-                                          
-              <exclude>**/*.json</exclude>
-                                          
-              <!-- the zeppelin export file format-->
-                                          
-              <exclude>**/*.zpln</exclude>
-                                          
-              <!-- exclude go.mod and go.sum in iotdb-client-go submodule-->
-                                          
-              <exclude>**/go.mod</exclude>
-                                          
-              <exclude>**/go.sum</exclude>
-                                          
-              <!-- python -->
-                                          
-              <exclude>.pytest_cache/**</exclude>
-                                          
-              <exclude>venv/**</exclude>
-                                          
-              <exclude>apache_iotdb.egg-info/**</exclude>
-                                          
-              <!-- Java SPI uses files in resources/META-INF/services-->
-                                          
-              <exclude>**/resources/META-INF/services/**</exclude>
-                                      
-            </excludes>
-                                
-          </configuration>
-                          
-        </plugin>
-                        
-        <plugin>
-                              
-          <groupId>com.diffplug.spotless</groupId>
-                              
-          <artifactId>spotless-maven-plugin</artifactId>
-                              
-          <version>${spotless.version}</version>
-                              
-          <configuration>
-                                    
-            <java>
-                                          
-              <googleJavaFormat>
-                                                
-                <version>1.7</version>
-                                                
-                <style>GOOGLE</style>
-                                            
-              </googleJavaFormat>
-                                          
-              <importOrder>
-                                                
-                <order>org.apache.iotdb,,javax,java,\#</order>
-                                            
-              </importOrder>
-                                          
-              <removeUnusedImports/>
-                                      
-            </java>
-                                    
-            <lineEndings>UNIX</lineEndings>
-                                
-          </configuration>
-                              
-          <executions>
-                                    
-            <execution>
-                                          
-              <id>spotless-check</id>
-                                          
-              <phase>validate</phase>
-                                          
-              <goals>
-                                                
-                <goal>check</goal>
-                                            
-              </goals>
-                                      
-            </execution>
-                                
-          </executions>
-                          
-        </plugin>
-                    
-      </plugins>
-              
-    </pluginManagement>
-            
-    <plugins>
-                  
-      <plugin>
-                        
-        <groupId>org.eluder.coveralls</groupId>
-                        
-        <artifactId>coveralls-maven-plugin</artifactId>
-                        
-        <version>4.3.0</version>
-                        
-        <configuration>
-                              
-          <jacocoReports>
-                                    
-            <jacocoReport>code-coverage/target/jacoco-merged-reports/jacoco.xml</jacocoReport>
-                                
-          </jacocoReports>
-                              
-          <sourceEncoding>UTF-8</sourceEncoding>
-                              
-          <sourceDirectories>
-                                    
-            <!-- put all source folders not in src/main/java here-->
-                                    
-            <sourceDirectory>antlr/target/generated-sources/antlr4</sourceDirectory>
-                                    
-            <sourceDirectory>thrift/target/generated-sources/thrift</sourceDirectory>
-                                    
-            <sourceDirectory>thrift-sync/target/generated-sources/thrift</sourceDirectory>
-                                    
-            <sourceDirectory>thrift-cluster/target/generated-sources/thrift</sourceDirectory>
-                                    
-            <sourceDirectory>openapi/target/generated-sources/java/src/gen/java</sourceDirectory>
-                                    
-            <sourceDirectory>openapi/target/generated-sources/java/src/main/java</sourceDirectory>
-                                    
-            <sourceDirectory>spark-iotdb-connector/src/main/scala</sourceDirectory>
-                                    
-            <sourceDirectory>spark-tsfile/src/main/scala</sourceDirectory>
-                                
-          </sourceDirectories>
-                          
-        </configuration>
-                        
-        <!-- JDK11 removes the following libs. We have to add them-->
-                        
-        <dependencies>
-                              
-          <dependency>
-                                    
-            <groupId>javax.xml.bind</groupId>
-                                    
-            <artifactId>jaxb-api</artifactId>
-                                    
-            <version>2.4.0-b180830.0359</version>
-                                
-          </dependency>
-                              
-          <dependency>
-                                    
-            <groupId>com.sun.xml.bind</groupId>
-                                    
-            <artifactId>jaxb-core</artifactId>
-                                    
-            <version>2.3.0</version>
-                                
-          </dependency>
-                              
-          <dependency>
-                                    
-            <groupId>com.sun.xml.bind</groupId>
-                                    
-            <artifactId>jaxb-impl</artifactId>
-                                    
-            <version>2.3.0</version>
-                                
-          </dependency>
-                          
-        </dependencies>
-                    
-      </plugin>
-                  
-      <!--
+                <plugin>
+                    <groupId>org.sonarsource.scanner.maven</groupId>
+                    <artifactId>sonar-maven-plugin</artifactId>
+                    <version>3.6.1.1688</version>
+                </plugin>
+                <plugin>
+                    <groupId>org.apache.rat</groupId>
+                    <artifactId>apache-rat-plugin</artifactId>
+                    <configuration>
+                        <consoleOutput>true</consoleOutput>
+                        <excludes>
+                            <!-- Git related files -->
+                            <exclude>**/.git/**</exclude>
+                            <exclude>**/.mvn/**</exclude>
+                            <exclude>**/.gitignore</exclude>
+                            <exclude>**/.gitmodules</exclude>
+                            <exclude>**/.git-blame-ignore-revs</exclude>
+                            <!-- Maven related files -->
+                            <exclude>**/target/**</exclude>
+                            <!-- Eclipse related files -->
+                            <exclude>**/.project</exclude>
+                            <exclude>**/.settings/**</exclude>
+                            <exclude>**/.classpath</exclude>
+                            <!-- IntelliJ related files -->
+                            <exclude>**/.idea/**</exclude>
+                            <exclude>**/*.iml</exclude>
+                            <!-- Runtime log -->
+                            <exclude>**/*.log</exclude>
+                            <!-- Exclude CVS files -->
+                            <exclude>**/*.cvs</exclude>
+                            <!-- licenses -->
+                            <exclude>licenses/*</exclude>
+                            <!-- only for Travis CI with WinOS-->
+                            <exclude>hadoopbin</exclude>
+                            <exclude>windowssystem32</exclude>
+                            <!-- generated by Github -->
+                            <exclude>**/.github/**</exclude>
+                            <!-- figures -->
+                            <exclude>**/.eps</exclude>
+                            <exclude>**/.png</exclude>
+                            <exclude>**/.jpg</exclude>
+                            <exclude>**/.jpeg</exclude>
+                            <!--Generated by Apache Release -->
+                            <exclude>local-snapshots-dir/**</exclude>
+                            <!-- JSON can't contain comments and therefore no Apache header -->
+                            <exclude>*.json</exclude>
+                            <!-- visualization plans -->
+                            <exclude>**/*.plan</exclude>
+                            <exclude>**/NOTICE-binary</exclude>
+                            <exclude>**/LICENSE-binary</exclude>
+                            <!-- json does not support comments-->
+                            <exclude>**/*.json</exclude>
+                            <!-- the zeppelin export file format-->
+                            <exclude>**/*.zpln</exclude>
+                            <!-- exclude go.mod and go.sum in iotdb-client-go submodule-->
+                            <exclude>**/go.mod</exclude>
+                            <exclude>**/go.sum</exclude>
+                            <!-- python -->
+                            <exclude>.pytest_cache/**</exclude>
+                            <exclude>venv/**</exclude>
+                            <exclude>apache_iotdb.egg-info/**</exclude>
+                            <!-- Java SPI uses files in resources/META-INF/services-->
+                            <exclude>**/resources/META-INF/services/**</exclude>
+                        </excludes>
+                    </configuration>
+                </plugin>
+                <plugin>
+                    <groupId>com.diffplug.spotless</groupId>
+                    <artifactId>spotless-maven-plugin</artifactId>
+                    <version>${spotless.version}</version>
+                    <configuration>
+                        <java>
+                            <googleJavaFormat>
+                                <version>1.7</version>
+                                <style>GOOGLE</style>
+                            </googleJavaFormat>
+                            <importOrder>
+                                <order>org.apache.iotdb,,javax,java,\#</order>
+                            </importOrder>
+                            <removeUnusedImports/>
+                        </java>
+                        <lineEndings>UNIX</lineEndings>
+                    </configuration>
+                    <executions>
+                        <execution>
+                            <id>spotless-check</id>
+                            <phase>validate</phase>
+                            <goals>
+                                <goal>check</goal>
+                            </goals>
+                        </execution>
+                    </executions>
+                </plugin>
+            </plugins>
+        </pluginManagement>
+        <plugins>
+            <plugin>
+                <groupId>org.eluder.coveralls</groupId>
+                <artifactId>coveralls-maven-plugin</artifactId>
+                <version>4.3.0</version>
+                <configuration>
+                    <jacocoReports>
+                        <jacocoReport>code-coverage/target/jacoco-merged-reports/jacoco.xml</jacocoReport>
+                    </jacocoReports>
+                    <sourceEncoding>UTF-8</sourceEncoding>
+                    <sourceDirectories>
+                        <!-- put all source folders not in src/main/java here-->
+                        <sourceDirectory>antlr/target/generated-sources/antlr4</sourceDirectory>
+                        <sourceDirectory>thrift/target/generated-sources/thrift</sourceDirectory>
+                        <sourceDirectory>thrift-sync/target/generated-sources/thrift</sourceDirectory>
+                        <sourceDirectory>thrift-cluster/target/generated-sources/thrift</sourceDirectory>
+                        <sourceDirectory>openapi/target/generated-sources/java/src/gen/java</sourceDirectory>
+                        <sourceDirectory>openapi/target/generated-sources/java/src/main/java</sourceDirectory>
+                        <sourceDirectory>spark-iotdb-connector/src/main/scala</sourceDirectory>
+                        <sourceDirectory>spark-tsfile/src/main/scala</sourceDirectory>
+                    </sourceDirectories>
+                </configuration>
+                <!-- JDK11 removes the following libs. We have to add them-->
+                <dependencies>
+                    <dependency>
+                        <groupId>javax.xml.bind</groupId>
+                        <artifactId>jaxb-api</artifactId>
+                        <version>2.4.0-b180830.0359</version>
+                    </dependency>
+                    <dependency>
+                        <groupId>com.sun.xml.bind</groupId>
+                        <artifactId>jaxb-core</artifactId>
+                        <version>2.3.0</version>
+                    </dependency>
+                    <dependency>
+                        <groupId>com.sun.xml.bind</groupId>
+                        <artifactId>jaxb-impl</artifactId>
+                        <version>2.3.0</version>
+                    </dependency>
+                </dependencies>
+            </plugin>
+            <!--
                       Strange things usually happen if you run with a too low Java version.
                       This plugin not only checks the minimum java version of 1.8, but also
                       checks all dependencies (and transitive dependencies) for reported CVEs.
                     -->
-                  
-      <plugin>
-                        
-        <groupId>org.apache.maven.plugins</groupId>
-                        
-        <artifactId>maven-enforcer-plugin</artifactId>
-                        
-        <version>3.0.0-M2</version>
-                        
-        <!--$NO-MVN-MAN-VER$-->
-                        
-        <executions>
-                              
-          <!-- Ensure we're not mixing dependency versions -->
-                              
-          <execution>
-                                    
-            <id>enforce-version-convergence</id>
-                                    
-            <phase>validate</phase>
-                                    
-            <configuration>
-                                          
-              <rules>
-                                                
-                <dependencyConvergence/>
-                                            
-              </rules>
-                                      
-            </configuration>
-                                    
-            <goals>
-                                          
-              <goal>enforce</goal>
-                                      
-            </goals>
-                                
-          </execution>
-                              
-          <!--
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-enforcer-plugin</artifactId>
+                <version>3.0.0-M2</version>
+                <!--$NO-MVN-MAN-VER$-->
+                <executions>
+                    <!-- Ensure we're not mixing dependency versions -->
+                    <execution>
+                        <id>enforce-version-convergence</id>
+                        <phase>validate</phase>
+                        <configuration>
+                            <rules>
+                                <dependencyConvergence/>
+                            </rules>
+                        </configuration>
+                        <goals>
+                            <goal>enforce</goal>
+                        </goals>
+                    </execution>
+                    <!--
                         Fails the build if classes are included from multiple
                         artifacts and these are not identical.
                     -->
-                              
-          <!--execution>
+                    <!--execution>
                         <id>enforce-ban-duplicate-classes</id>
                         <goals>
                             <goal>enforce</goal>
@@ -1548,76 +804,41 @@
                             <fail>true</fail>
                         </configuration>
                     </execution-->
-                              
-          <!-- Make sure no dependencies are used for which known vulnerabilities exist. -->
-                              
-          <execution>
-                                    
-            <id>vulnerability-checks</id>
-                                    
-            <phase>validate</phase>
-                                    
-            <goals>
-                                          
-              <goal>enforce</goal>
-                                      
-            </goals>
-                                    
-            <configuration>
-                                          
-              <!-- Just generate warnings for now -->
-                                          
-              <fail>false</fail>
-                                          
-              <rules>
-                                                
-                <requireJavaVersion>
-                                                      
-                  <version>1.8.0</version>
-                                                  
-                </requireJavaVersion>
-                                                
-                <!-- Disabled for now as it breaks the ability to build single modules -->
-                                                
-                <!--reactorModuleConvergence/-->
-                                                
-                <banVulnerable implementation="org.sonatype.ossindex.maven.enforcer.BanVulnerableDependencies"/>
-                                            
-              </rules>
-                                      
-            </configuration>
-                                
-          </execution>
-                          
-        </executions>
-                        
-        <dependencies>
-                              
-          <dependency>
-                                    
-            <groupId>org.sonatype.ossindex.maven</groupId>
-                                    
-            <artifactId>ossindex-maven-enforcer-rules</artifactId>
-                                    
-            <version>1.0.0</version>
-                                
-          </dependency>
-                              
-          <dependency>
-                                    
-            <groupId>org.codehaus.mojo</groupId>
-                                    
-            <artifactId>extra-enforcer-rules</artifactId>
-                                    
-            <version>1.4</version>
-                                
-          </dependency>
-                          
-        </dependencies>
-                    
-      </plugin>
-                  
-      <!--
+                    <!-- Make sure no dependencies are used for which known vulnerabilities exist. -->
+                    <execution>
+                        <id>vulnerability-checks</id>
+                        <phase>validate</phase>
+                        <goals>
+                            <goal>enforce</goal>
+                        </goals>
+                        <configuration>
+                            <!-- Just generate warnings for now -->
+                            <fail>false</fail>
+                            <rules>
+                                <requireJavaVersion>
+                                    <version>1.8.0</version>
+                                </requireJavaVersion>
+                                <!-- Disabled for now as it breaks the ability to build single modules -->
+                                <!--reactorModuleConvergence/-->
+                                <banVulnerable implementation="org.sonatype.ossindex.maven.enforcer.BanVulnerableDependencies"/>
+                            </rules>
+                        </configuration>
+                    </execution>
+                </executions>
+                <dependencies>
+                    <dependency>
+                        <groupId>org.sonatype.ossindex.maven</groupId>
+                        <artifactId>ossindex-maven-enforcer-rules</artifactId>
+                        <version>1.0.0</version>
+                    </dependency>
+                    <dependency>
+                        <groupId>org.codehaus.mojo</groupId>
+                        <artifactId>extra-enforcer-rules</artifactId>
+                        <version>1.4</version>
+                    </dependency>
+                </dependencies>
+            </plugin>
+            <!--
               Even if Maven transitively pulls in dependencies, relying on these can
               quite often cause hard to find problems. So it's a good practice to make
               sure everything directly required is also directly added as a dependency.
@@ -1626,607 +847,311 @@
               what we need and only that and that runtime dependencies are correctly
               imported with runtime scope.
             -->
-                  
-      <plugin>
-                        
-        <groupId>org.apache.maven.plugins</groupId>
-                        
-        <artifactId>maven-dependency-plugin</artifactId>
-                        
-        <executions>
-                              
-          <execution>
-                                    
-            <id>check-dependencies</id>
-                                    
-            <phase>verify</phase>
-                                    
-            <goals>
-                                          
-              <goal>analyze-only</goal>
-                                      
-            </goals>
-                                    
-            <configuration>
-                                          
-              <failOnWarning>false</failOnWarning>
-                                      
-            </configuration>
-                                
-          </execution>
-                          
-        </executions>
-                    
-      </plugin>
-                  
-      <plugin>
-                        
-        <groupId>net.revelc.code.formatter</groupId>
-                        
-        <artifactId>formatter-maven-plugin</artifactId>
-                        
-        <version>2.8.1</version>
-                    
-      </plugin>
-                  
-      <!--for code style check -->
-                  
-      <plugin>
-                        
-        <groupId>org.apache.maven.plugins</groupId>
-                        
-        <artifactId>maven-checkstyle-plugin</artifactId>
-                        
-        <version>3.0.0</version>
-                        
-        <dependencies>
-                              
-          <dependency>
-                                    
-            <groupId>com.puppycrawl.tools</groupId>
-                                    
-            <artifactId>checkstyle</artifactId>
-                                    
-            <version>8.18</version>
-                                
-          </dependency>
-                          
-        </dependencies>
-                        
-        <executions>
-                              
-          <execution>
-                                    
-            <id>validate</id>
-                                    
-            <phase>validate</phase>
-                                    
-            <goals>
-                                          
-              <goal>check</goal>
-                                      
-            </goals>
-                                    
-            <configuration>
-                                          
-              <outputFile>target/checkstyle-report.xml</outputFile>
-                                          
-              <configLocation>checkstyle.xml</configLocation>
-                                      
-            </configuration>
-                                
-          </execution>
-                          
-        </executions>
-                        
-        <configuration>
-                              
-          <configLocation>checkstyle.xml</configLocation>
-                          
-        </configuration>
-                    
-      </plugin>
-                  
-      <!--
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-dependency-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <id>check-dependencies</id>
+                        <phase>verify</phase>
+                        <goals>
+                            <goal>analyze-only</goal>
+                        </goals>
+                        <configuration>
+                            <failOnWarning>false</failOnWarning>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
+                <groupId>net.revelc.code.formatter</groupId>
+                <artifactId>formatter-maven-plugin</artifactId>
+                <version>2.8.1</version>
+            </plugin>
+            <!--for code style check -->
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-checkstyle-plugin</artifactId>
+                <version>3.0.0</version>
+                <dependencies>
+                    <dependency>
+                        <groupId>com.puppycrawl.tools</groupId>
+                        <artifactId>checkstyle</artifactId>
+                        <version>8.18</version>
+                    </dependency>
+                </dependencies>
+                <executions>
+                    <execution>
+                        <id>validate</id>
+                        <phase>validate</phase>
+                        <goals>
+                            <goal>check</goal>
+                        </goals>
+                        <configuration>
+                            <outputFile>target/checkstyle-report.xml</outputFile>
+                            <configLocation>checkstyle.xml</configLocation>
+                        </configuration>
+                    </execution>
+                </executions>
+                <configuration>
+                    <configLocation>checkstyle.xml</configLocation>
+                </configuration>
+            </plugin>
+            <!--
               Check if all files contain Apache headers in them.
               Ignore this plugin, we use license-maven-plugin to check apache header.
             -->
-                  
-      <plugin>
-                        
-        <groupId>org.apache.rat</groupId>
-                        
-        <artifactId>apache-rat-plugin</artifactId>
-                        
-        <executions>
-                              
-          <execution>
-                                    
-            <id>license-check</id>
-                                    
-            <phase>verify</phase>
-                                    
-            <goals>
-                                          
-              <goal>check</goal>
-                                      
-            </goals>
-                                
-          </execution>
-                          
-        </executions>
-                    
-      </plugin>
-                  
-      <plugin>
-                        
-        <groupId>au.com.acegi</groupId>
-                        
-        <artifactId>xml-format-maven-plugin</artifactId>
-                        
-        <version>3.0.7</version>
-                        
-        <executions>
-                              
-          <execution>
-                                    
-            <id>xml-format</id>
-                                    
-            <phase>compile</phase>
-                                    
-            <goals>
-                                          
-              <goal>xml-format</goal>
-                                      
-            </goals>
-                                    
-            <configuration>
-                                          
-              <!-- configure your formatting preferences here (see link below) -->
-                                          
-              <indentSize>4</indentSize>
-                                          
-              <excludes>**/target/**</excludes>
-                                      
-            </configuration>
-                                
-          </execution>
-                          
-        </executions>
-                    
-      </plugin>
-                  
-      <!--
+            <plugin>
+                <groupId>org.apache.rat</groupId>
+                <artifactId>apache-rat-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <id>license-check</id>
+                        <phase>verify</phase>
+                        <goals>
+                            <goal>check</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
+                <groupId>au.com.acegi</groupId>
+                <artifactId>xml-format-maven-plugin</artifactId>
+                <version>3.0.7</version>
+                <executions>
+                    <execution>
+                        <id>xml-format</id>
+                        <phase>compile</phase>
+                        <goals>
+                            <goal>xml-format</goal>
+                        </goals>
+                        <configuration>
+                            <!-- configure your formatting preferences here (see link below) -->
+                            <indentSize>4</indentSize>
+                            <excludes>**/target/**</excludes>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+            <!--
               Generate the legally required text files in the jars
             -->
-                  
-      <plugin>
-                        
-        <groupId>org.apache.maven.plugins</groupId>
-                        
-        <artifactId>maven-remote-resources-plugin</artifactId>
-                        
-        <executions>
-                              
-          <execution>
-                                    
-            <id>process-resource-bundles</id>
-                                    
-            <goals>
-                                          
-              <goal>process</goal>
-                                      
-            </goals>
-                                    
-            <configuration>
-                                          
-              <resourceBundles>
-                                                
-                <!-- Will generate META-INF/{DEPENDENCIES,LICENSE,NOTICE} -->
-                                                
-                <resourceBundle>org.apache:apache-jar-resource-bundle:1.4</resourceBundle>
-                                            
-              </resourceBundles>
-                                          
-              <!-- Content in this directory will be appended to generated resources -->
-                                          
-              <appendedResourcesDirectory>${basedir}/src/remote-resources</appendedResourcesDirectory>
-                                      
-            </configuration>
-                                
-          </execution>
-                          
-        </executions>
-                    
-      </plugin>
-                  
-      <plugin>
-                        
-        <!-- Separates the unit tests from the integration tests. -->
-                        
-        <groupId>org.apache.maven.plugins</groupId>
-                        
-        <artifactId>maven-surefire-plugin</artifactId>
-                        
-        <executions>
-                              
-          <execution>
-                                    
-            <id>unit-tests</id>
-                                    
-            <phase>test</phase>
-                                    
-            <goals>
-                                          
-              <goal>test</goal>
-                                      
-            </goals>
-                                    
-            <configuration>
-                                          
-              <includes>
-                                                
-                <!-- Include unit tests within integration-test phase. -->
-                                                
-                <include>src/test/**/*Test.java</include>
-                                            
-              </includes>
-                                          
-              <excludes>
-                                                
-                <!-- Exclude integration tests within (unit) test phase. -->
-                                                
-                <exclude>src/test/**/*IT.java</exclude>
-                                            
-              </excludes>
-                                      
-            </configuration>
-                                
-          </execution>
-                              
-          <execution>
-                                    
-            <id>integration-tests</id>
-                                    
-            <phase>integration-test</phase>
-                                    
-            <goals>
-                                          
-              <goal>test</goal>
-                                      
-            </goals>
-                                    
-            <configuration>
-                                          
-              <includes>
-                                                
-                <!-- Include integration tests within integration-test phase. -->
-                                                
-                <include>src/test/**/*IT.java</include>
-                                            
-              </includes>
-                                          
-              <excludes>
-                                                
-                <!-- Exclude unit tests within (unit) test phase. -->
-                                                
-                <exclude>src/test/**/*Test.java</exclude>
-                                            
-              </excludes>
-                                      
-            </configuration>
-                                
-          </execution>
-                          
-        </executions>
-                    
-      </plugin>
-                  
-      <!-- Also package the sources as jar -->
-                  
-      <plugin>
-                        
-        <groupId>org.apache.maven.plugins</groupId>
-                        
-        <artifactId>maven-source-plugin</artifactId>
-                        
-        <version>3.2.0</version>
-                        
-        <executions>
-                              
-          <execution>
-                                    
-            <id>create-source-package</id>
-                                    
-            <phase>package</phase>
-                                    
-            <goals>
-                                          
-              <goal>jar</goal>
-                                      
-            </goals>
-                                
-          </execution>
-                          
-        </executions>
-                    
-      </plugin>
-              
-    </plugins>
-        
-  </build>
-      
-  <profiles>
-            
-    <!-- spotless is too slow, so we put it into a profile to skip it if needed -->
-            
-    <!-- currently spotless cannot run on jdk16, due to JEP 396: Strongly Encapsulate JDK Internals by Default-->
-            
-    <profile>
-                  
-      <id>spotless</id>
-                  
-      <activation>
-                        
-        <!-- activeByDefault does not take effect-->
-                        
-        <jdk>[1.8,16)</jdk>
-                        
-        <file>
-                              
-          <exists>.</exists>
-                          
-        </file>
-                    
-      </activation>
-                  
-      <build>
-                        
-        <plugins>
-                              
-          <plugin>
-                                    
-            <groupId>com.diffplug.spotless</groupId>
-                                    
-            <artifactId>spotless-maven-plugin</artifactId>
-                                
-          </plugin>
-                          
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-remote-resources-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <id>process-resource-bundles</id>
+                        <goals>
+                            <goal>process</goal>
+                        </goals>
+                        <configuration>
+                            <resourceBundles>
+                                <!-- Will generate META-INF/{DEPENDENCIES,LICENSE,NOTICE} -->
+                                <resourceBundle>org.apache:apache-jar-resource-bundle:1.4</resourceBundle>
+                            </resourceBundles>
+                            <!-- Content in this directory will be appended to generated resources -->
+                            <appendedResourcesDirectory>${basedir}/src/remote-resources</appendedResourcesDirectory>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
+                <!-- Separates the unit tests from the integration tests. -->
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-surefire-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <id>unit-tests</id>
+                        <phase>test</phase>
+                        <goals>
+                            <goal>test</goal>
+                        </goals>
+                        <configuration>
+                            <includes>
+                                <!-- Include unit tests within integration-test phase. -->
+                                <include>src/test/**/*Test.java</include>
+                            </includes>
+                            <excludes>
+                                <!-- Exclude integration tests within (unit) test phase. -->
+                                <exclude>src/test/**/*IT.java</exclude>
+                            </excludes>
+                        </configuration>
+                    </execution>
+                    <execution>
+                        <id>integration-tests</id>
+                        <phase>integration-test</phase>
+                        <goals>
+                            <goal>test</goal>
+                        </goals>
+                        <configuration>
+                            <includes>
+                                <!-- Include integration tests within integration-test phase. -->
+                                <include>src/test/**/*IT.java</include>
+                            </includes>
+                            <excludes>
+                                <!-- Exclude unit tests within (unit) test phase. -->
+                                <exclude>src/test/**/*Test.java</exclude>
+                            </excludes>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+            <!-- Also package the sources as jar -->
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-source-plugin</artifactId>
+                <version>3.2.0</version>
+                <executions>
+                    <execution>
+                        <id>create-source-package</id>
+                        <phase>package</phase>
+                        <goals>
+                            <goal>jar</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
         </plugins>
-                    
-      </build>
-              
-    </profile>
-            
-    <!--
+    </build>
+    <profiles>
+        <!-- spotless is too slow, so we put it into a profile to skip it if needed -->
+        <!-- currently spotless cannot run on jdk16, due to JEP 396: Strongly Encapsulate JDK Internals by Default-->
+        <profile>
+            <id>spotless</id>
+            <activation>
+                <!-- activeByDefault does not take effect-->
+                <jdk>[1.8,16)</jdk>
+                <file>
+                    <exists>.</exists>
+                </file>
+            </activation>
+            <build>
+                <plugins>
+                    <plugin>
+                        <groupId>com.diffplug.spotless</groupId>
+                        <artifactId>spotless-maven-plugin</artifactId>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+        <!--
           A set of profiles defining the different properties needed to download and run thrift
           They are automatically activated depending on the OS you are using.
         -->
-            
-    <profile>
-                  
-      <id>windows</id>
-                  
-      <activation>
-                        
-        <os>
-                              
-          <family>windows</family>
-                          
-        </os>
-                    
-      </activation>
-                  
-      <properties>
-                        
-        <os.classifier>windows-x86_64</os.classifier>
-                        
-        <thrift.download-url>http://artfiles.org/apache.org/thrift/${thrift.version}/thrift-${thrift.version}.exe</thrift.download-url>
-                        
-        <thrift.executable>thrift-${thrift.version}-win-x86_64.exe</thrift.executable>
-                        
-        <thrift.skip-making-executable>true</thrift.skip-making-executable>
-                        
-        <thrift.exec-cmd.executable>echo</thrift.exec-cmd.executable>
-                        
-        <thrift.exec-cmd.args>"Do nothing"</thrift.exec-cmd.args>
-                    
-      </properties>
-              
-    </profile>
-            
-    <!-- Has to be listed before "mac" as it seems a mac is both "mac" and "unix" -->
-            
-    <profile>
-                  
-      <id>unix</id>
-                  
-      <activation>
-                        
-        <os>
-                              
-          <family>unix</family>
-                          
-        </os>
-                    
-      </activation>
-                  
-      <properties>
-                        
-        <os.classifier>linux-x86_64</os.classifier>
-                        
-        <thrift.download-url>https://github.com/apache/iotdb-bin-resources/raw/main/compile-tools/thrift-0.14-ubuntu</thrift.download-url>
-                        
-        <thrift.executable>thrift_0.14.1_linux.exe</thrift.executable>
-                        
-        <thrift.skip-making-executable>false</thrift.skip-making-executable>
-                        
-        <thrift.exec-cmd.executable>chmod</thrift.exec-cmd.executable>
-                        
-        <thrift.exec-cmd.args>+x ${project.build.directory}/tools/${thrift.executable}</thrift.exec-cmd.args>
-                    
-      </properties>
-              
-    </profile>
-            
-    <profile>
-                  
-      <id>mac</id>
-                  
-      <activation>
-                        
-        <os>
-                              
-          <family>mac</family>
-                          
-        </os>
-                    
-      </activation>
-                  
-      <properties>
-                        
-        <os.classifier>mac-x86_64</os.classifier>
-                        
-        <thrift.download-url>https://github.com/apache/iotdb-bin-resources/raw/main/compile-tools/thrift-0.14-MacOS</thrift.download-url>
-                        
-        <thrift.executable>thrift_0.14.1_mac.exe</thrift.executable>
-                        
-        <thrift.skip-making-executable>false</thrift.skip-making-executable>
-                        
-        <thrift.exec-cmd.executable>chmod</thrift.exec-cmd.executable>
-                        
-        <thrift.exec-cmd.args>+x ${project.build.directory}/tools/${thrift.executable}</thrift.exec-cmd.args>
-                    
-      </properties>
-              
-    </profile>
-            
-    <!-- for TestContainer. As it requires docker, we have to detect whether docker exists.-->
-            
-    <profile>
-                  
-      <!-- Mac and Unix-->
-                  
-      <id>unixDockerCheck</id>
-                  
-      <activation>
-                        
-        <file>
-                              
-          <exists>/var/run/docker.sock</exists>
-                          
-        </file>
-                    
-      </activation>
-                  
-      <modules>
-                        
-        <module>testcontainer</module>
-                    
-      </modules>
-              
-    </profile>
-            
-    <profile>
-                  
-      <id>WinDockerCheck</id>
-                  
-      <activation>
-                        
-        <file>
-                              
-          <exists>C:\Program Files\Docker\Docker\resources\bin\docker.exe</exists>
-                          
-        </file>
-                    
-      </activation>
-                  
-      <modules>
-                        
-        <module>testcontainer</module>
-                    
-      </modules>
-              
-    </profile>
-            
-    <!-- Some APIs were removed in Java 11, so we need to add replacements -->
-            
-    <profile>
-                  
-      <id>java-11-and-above</id>
-                  
-      <activation>
-                        
-        <!-- This needs to be updated as soon as Java 20 is shipped -->
-                        
-        <jdk>[11,20)</jdk>
-                    
-      </activation>
-                  
-      <properties>
-                        
-        <maven.compiler.release>8</maven.compiler.release>
-                    
-      </properties>
-                  
-      <dependencies>
-                        
-        <!-- for jdk-11 -->
-                        
-        <dependency>
-                              
-          <groupId>javax.annotation</groupId>
-                              
-          <artifactId>javax.annotation-api</artifactId>
-                          
-        </dependency>
-                        
-        <dependency>
-                              
-          <groupId>javax.xml.bind</groupId>
-                              
-          <artifactId>jaxb-api</artifactId>
-                          
-        </dependency>
-                        
-        <dependency>
-                              
-          <groupId>org.glassfish.jaxb</groupId>
-                              
-          <artifactId>jaxb-runtime</artifactId>
-                          
-        </dependency>
-                    
-      </dependencies>
-              
-    </profile>
-            
-    <!-- Add argLine for Java 16 and above, due to [JEP 396: Strongly Encapsulate JDK Internals by Default]
+        <profile>
+            <id>windows</id>
+            <activation>
+                <os>
+                    <family>windows</family>
+                </os>
+            </activation>
+            <properties>
+                <os.classifier>windows-x86_64</os.classifier>
+                <thrift.download-url>http://artfiles.org/apache.org/thrift/${thrift.version}/thrift-${thrift.version}.exe</thrift.download-url>
+                <thrift.executable>thrift-${thrift.version}-win-x86_64.exe</thrift.executable>
+                <thrift.skip-making-executable>true</thrift.skip-making-executable>
+                <thrift.exec-cmd.executable>echo</thrift.exec-cmd.executable>
+                <thrift.exec-cmd.args>"Do nothing"</thrift.exec-cmd.args>
+            </properties>
+        </profile>
+        <!-- Has to be listed before "mac" as it seems a mac is both "mac" and "unix" -->
+        <profile>
+            <id>unix</id>
+            <activation>
+                <os>
+                    <family>unix</family>
+                </os>
+            </activation>
+            <properties>
+                <os.classifier>linux-x86_64</os.classifier>
+                <thrift.download-url>https://github.com/apache/iotdb-bin-resources/raw/main/compile-tools/thrift-0.14-ubuntu</thrift.download-url>
+                <thrift.executable>thrift_0.14.1_linux.exe</thrift.executable>
+                <thrift.skip-making-executable>false</thrift.skip-making-executable>
+                <thrift.exec-cmd.executable>chmod</thrift.exec-cmd.executable>
+                <thrift.exec-cmd.args>+x ${project.build.directory}/tools/${thrift.executable}</thrift.exec-cmd.args>
+            </properties>
+        </profile>
+        <profile>
+            <id>mac</id>
+            <activation>
+                <os>
+                    <family>mac</family>
+                </os>
+            </activation>
+            <properties>
+                <os.classifier>mac-x86_64</os.classifier>
+                <thrift.download-url>https://github.com/apache/iotdb-bin-resources/raw/main/compile-tools/thrift-0.14-MacOS</thrift.download-url>
+                <thrift.executable>thrift_0.14.1_mac.exe</thrift.executable>
+                <thrift.skip-making-executable>false</thrift.skip-making-executable>
+                <thrift.exec-cmd.executable>chmod</thrift.exec-cmd.executable>
+                <thrift.exec-cmd.args>+x ${project.build.directory}/tools/${thrift.executable}</thrift.exec-cmd.args>
+            </properties>
+        </profile>
+        <!-- for TestContainer. As it requires docker, we have to detect whether docker exists.-->
+        <profile>
+            <!-- Mac and Unix-->
+            <id>unixDockerCheck</id>
+            <activation>
+                <file>
+                    <exists>/var/run/docker.sock</exists>
+                </file>
+            </activation>
+            <modules>
+                <module>testcontainer</module>
+            </modules>
+        </profile>
+        <profile>
+            <id>WinDockerCheck</id>
+            <activation>
+                <file>
+                    <exists>C:\Program Files\Docker\Docker\resources\bin\docker.exe</exists>
+                </file>
+            </activation>
+            <modules>
+                <module>testcontainer</module>
+            </modules>
+        </profile>
+        <!-- Some APIs were removed in Java 11, so we need to add replacements -->
+        <profile>
+            <id>java-11-and-above</id>
+            <activation>
+                <!-- This needs to be updated as soon as Java 20 is shipped -->
+                <jdk>[11,20)</jdk>
+            </activation>
+            <properties>
+                <maven.compiler.release>8</maven.compiler.release>
+            </properties>
+            <dependencies>
+                <!-- for jdk-11 -->
+                <dependency>
+                    <groupId>javax.annotation</groupId>
+                    <artifactId>javax.annotation-api</artifactId>
+                </dependency>
+                <dependency>
+                    <groupId>javax.xml.bind</groupId>
+                    <artifactId>jaxb-api</artifactId>
+                </dependency>
+                <dependency>
+                    <groupId>org.glassfish.jaxb</groupId>
+                    <artifactId>jaxb-runtime</artifactId>
+                </dependency>
+            </dependencies>
+        </profile>
+        <!-- Add argLine for Java 16 and above, due to [JEP 396: Strongly Encapsulate JDK Internals by Default]
           (https://openjdk.java.net/jeps/396) -->
-            
-    <profile>
-                  
-      <id>java-16-and-above</id>
-                  
-      <activation>
-                        
-        <!-- This needs to be updated as soon as Java 20 is shipped -->
-                        
-        <jdk>[16,20)</jdk>
-                    
-      </activation>
-                  
-      <properties>
-                        
-        <maven.compiler.release>8</maven.compiler.release>
-                        
-        <argLine>--illegal-access=permit --add-opens=java.base/java.util.concurrent=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.nio=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.base/java.net=ALL-UNNAMED --add-exports=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED --add-exports=jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED --add-exports=jdk.compiler/com.sun.tools.javac.file=A [...]
-                    
-      </properties>
-              
-    </profile>
-            
-    <!--
+        <profile>
+            <id>java-16-and-above</id>
+            <activation>
+                <!-- This needs to be updated as soon as Java 20 is shipped -->
+                <jdk>[16,20)</jdk>
+            </activation>
+            <properties>
+                <maven.compiler.release>8</maven.compiler.release>
+                <argLine>--illegal-access=permit --add-opens=java.base/java.util.concurrent=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.nio=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.base/java.net=ALL-UNNAMED --add-exports=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED --add-exports=jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED --add-exports=jdk.compiler/com.sun.tools.java [...]
+            </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.
@@ -2235,677 +1160,344 @@
           and only downloads each file once. It caches downloaded files in:
           {maven local repo}/.cache/download-maven-plugin
         -->
-            
-    <profile>
-                  
-      <id>thrift-generation</id>
-                  
-      <activation>
-                        
-        <file>
-                              
-          <exists>src/main/thrift</exists>
-                          
-        </file>
-                    
-      </activation>
-                  
-      <properties>
-                        
-        <thrift.exec.absolute.path>${project.build.directory}/tools/${thrift.executable}</thrift.exec.absolute.path>
-                    
-      </properties>
-                  
-      <build>
-                        
-        <plugins>
-                              
-          <plugin>
-                                    
-            <groupId>com.googlecode.maven-download-plugin</groupId>
-                                    
-            <artifactId>download-maven-plugin</artifactId>
-                                    
-            <version>1.6.7</version>
-                                    
-            <executions>
-                                          
-              <execution>
-                                                
-                <id>get-thrift-executable</id>
-                                                
-                <phase>generate-sources</phase>
-                                                
-                <goals>
-                                                      
-                  <goal>wget</goal>
-                                                  
-                </goals>
-                                                
-                <configuration>
-                                                      
-                  <url>${thrift.download-url}</url>
-                                                      
-                  <outputDirectory>${project.build.directory}/tools</outputDirectory>
-                                                      
-                  <outputFileName>${thrift.executable}</outputFileName>
-                                                  
-                </configuration>
-                                            
-              </execution>
-                                      
-            </executions>
-                                
-          </plugin>
-                              
-          <plugin>
-                                    
-            <groupId>org.codehaus.mojo</groupId>
-                                    
-            <artifactId>exec-maven-plugin</artifactId>
-                                    
-            <version>1.6.0</version>
-                                    
-            <executions>
-                                          
-              <execution>
-                                                
-                <id>make-thrift-executable-executable</id>
-                                                
-                <phase>generate-sources</phase>
-                                                
-                <goals>
-                                                      
-                  <goal>exec</goal>
-                                                  
-                </goals>
-                                                
-                <configuration>
-                                                      
-                  <skip>${thrift.skip-making-executable}</skip>
-                                                      
-                  <executable>${thrift.exec-cmd.executable}</executable>
-                                                      
-                  <commandlineArgs>${thrift.exec-cmd.args}</commandlineArgs>
-                                                  
-                </configuration>
-                                            
-              </execution>
-                                      
-            </executions>
-                                
-          </plugin>
-                              
-          <plugin>
-                                    
-            <groupId>org.apache.thrift.tools</groupId>
-                                    
-            <artifactId>maven-thrift-plugin</artifactId>
-                                    
-            <version>0.1.11</version>
-                                    
-            <executions>
-                                          
-              <execution>
-                                                
-                <id>generate-thrift-sources-java</id>
-                                                
-                <phase>generate-sources</phase>
-                                                
-                <goals>
-                                                      
-                  <goal>compile</goal>
-                                                  
-                </goals>
-                                                
-                <configuration>
-                                                      
-                  <generator>java</generator>
-                                                      
-                  <thriftExecutable>${thrift.exec.absolute.path}</thriftExecutable>
-                                                      
-                  <thriftSourceRoot>${basedir}/src/main/thrift</thriftSourceRoot>
-                                                  
-                </configuration>
-                                            
-              </execution>
-                                          
-              <execution>
-                                                
-                <id>generate-thrift-sources-python</id>
-                                                
-                <phase>generate-sources</phase>
-                                                
-                <goals>
-                                                      
-                  <goal>compile</goal>
-                                                  
-                </goals>
-                                                
-                <configuration>
-                                                      
-                  <generator>py</generator>
-                                                      
-                  <thriftExecutable>${thrift.exec.absolute.path}</thriftExecutable>
-                                                      
-                  <thriftSourceRoot>${basedir}/src/main/thrift</thriftSourceRoot>
-                                                      
-                  <outputDirectory>${project.build.directory}/generated-sources-python/</outputDirectory>
-                                                  
-                </configuration>
-                                            
-              </execution>
-                                          
-              <execution>
-                                                
-                <id>generate-thrift-sources-go</id>
-                                                
-                <phase>generate-sources</phase>
-                                                
-                <goals>
-                                                      
-                  <goal>compile</goal>
-                                                  
-                </goals>
-                                                
-                <configuration>
-                                                      
-                  <generator>go</generator>
-                                                      
-                  <thriftExecutable>${thrift.exec.absolute.path}</thriftExecutable>
-                                                      
-                  <thriftSourceRoot>${basedir}/src/main/thrift</thriftSourceRoot>
-                                                      
-                  <outputDirectory>${project.build.directory}/generated-sources-go</outputDirectory>
-                                                  
-                </configuration>
-                                            
-              </execution>
-                                      
-            </executions>
-                                
-          </plugin>
-                          
-        </plugins>
-                    
-      </build>
-              
-    </profile>
-            
-    <!-- Make sure the source assembly has the right name -->
-            
-    <profile>
-                  
-      <id>apache-release</id>
-                  
-      <build>
-                        
-        <plugins>
-                              
-          <plugin>
-                                    
-            <groupId>org.apache.maven.plugins</groupId>
-                                    
-            <artifactId>maven-assembly-plugin</artifactId>
-                                    
-            <version>${maven.assembly.version}</version>
-                                    
-            <executions>
-                                          
-              <execution>
-                                                
-                <id>source-release-assembly</id>
-                                                
-                <phase>package</phase>
-                                                
-                <goals>
-                                                      
-                  <goal>single</goal>
-                                                  
-                </goals>
-                                                
-                <!-- heads up: combine.self in the following is highlighted
+        <profile>
+            <id>thrift-generation</id>
+            <activation>
+                <file>
+                    <exists>src/main/thrift</exists>
+                </file>
+            </activation>
+            <properties>
+                <thrift.exec.absolute.path>${project.build.directory}/tools/${thrift.executable}</thrift.exec.absolute.path>
+            </properties>
+            <build>
+                <plugins>
+                    <plugin>
+                        <groupId>com.googlecode.maven-download-plugin</groupId>
+                        <artifactId>download-maven-plugin</artifactId>
+                        <version>1.6.7</version>
+                        <executions>
+                            <execution>
+                                <id>get-thrift-executable</id>
+                                <phase>generate-sources</phase>
+                                <goals>
+                                    <goal>wget</goal>
+                                </goals>
+                                <configuration>
+                                    <url>${thrift.download-url}</url>
+                                    <outputDirectory>${project.build.directory}/tools</outputDirectory>
+                                    <outputFileName>${thrift.executable}</outputFileName>
+                                </configuration>
+                            </execution>
+                        </executions>
+                    </plugin>
+                    <plugin>
+                        <groupId>org.codehaus.mojo</groupId>
+                        <artifactId>exec-maven-plugin</artifactId>
+                        <version>1.6.0</version>
+                        <executions>
+                            <execution>
+                                <id>make-thrift-executable-executable</id>
+                                <phase>generate-sources</phase>
+                                <goals>
+                                    <goal>exec</goal>
+                                </goals>
+                                <configuration>
+                                    <skip>${thrift.skip-making-executable}</skip>
+                                    <executable>${thrift.exec-cmd.executable}</executable>
+                                    <commandlineArgs>${thrift.exec-cmd.args}</commandlineArgs>
+                                </configuration>
+                            </execution>
+                        </executions>
+                    </plugin>
+                    <plugin>
+                        <groupId>org.apache.thrift.tools</groupId>
+                        <artifactId>maven-thrift-plugin</artifactId>
+                        <version>0.1.11</version>
+                        <executions>
+                            <execution>
+                                <id>generate-thrift-sources-java</id>
+                                <phase>generate-sources</phase>
+                                <goals>
+                                    <goal>compile</goal>
+                                </goals>
+                                <configuration>
+                                    <generator>java</generator>
+                                    <thriftExecutable>${thrift.exec.absolute.path}</thriftExecutable>
+                                    <thriftSourceRoot>${basedir}/src/main/thrift</thriftSourceRoot>
+                                </configuration>
+                            </execution>
+                            <execution>
+                                <id>generate-thrift-sources-python</id>
+                                <phase>generate-sources</phase>
+                                <goals>
+                                    <goal>compile</goal>
+                                </goals>
+                                <configuration>
+                                    <generator>py</generator>
+                                    <thriftExecutable>${thrift.exec.absolute.path}</thriftExecutable>
+                                    <thriftSourceRoot>${basedir}/src/main/thrift</thriftSourceRoot>
+                                    <outputDirectory>${project.build.directory}/generated-sources-python/</outputDirectory>
+                                </configuration>
+                            </execution>
+                            <execution>
+                                <id>generate-thrift-sources-go</id>
+                                <phase>generate-sources</phase>
+                                <goals>
+                                    <goal>compile</goal>
+                                </goals>
+                                <configuration>
+                                    <generator>go</generator>
+                                    <thriftExecutable>${thrift.exec.absolute.path}</thriftExecutable>
+                                    <thriftSourceRoot>${basedir}/src/main/thrift</thriftSourceRoot>
+                                    <outputDirectory>${project.build.directory}/generated-sources-go</outputDirectory>
+                                </configuration>
+                            </execution>
+                        </executions>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+        <!-- Make sure the source assembly has the right name -->
+        <profile>
+            <id>apache-release</id>
+            <build>
+                <plugins>
+                    <plugin>
+                        <groupId>org.apache.maven.plugins</groupId>
+                        <artifactId>maven-assembly-plugin</artifactId>
+                        <version>${maven.assembly.version}</version>
+                        <executions>
+                            <execution>
+                                <id>source-release-assembly</id>
+                                <phase>package</phase>
+                                <goals>
+                                    <goal>single</goal>
+                                </goals>
+                                <!-- heads up: combine.self in the following is highlighted
                                     as an error in Eclipse's xml editor view.
                                     Just ignore that.
                                     See  https://issues.apache.org/jira/browse/MNG-5454  sigh.
                                  -->
-                                                
-                <configuration combine.self="append">
-                                                      
-                  <finalName>apache-iotdb-${project.version}</finalName>
-                                                      
-                  <archive>
-                                                            
-                    <manifest>
-                                                                  
-                      <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
-                                                                  
-                      <addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
-                                                              
-                    </manifest>
-                                                        
-                  </archive>
-                                                  
-                </configuration>
-                                            
-              </execution>
-                                      
-            </executions>
-                                
-          </plugin>
-                              
-          <!--
+                                <configuration combine.self="append">
+                                    <finalName>apache-iotdb-${project.version}</finalName>
+                                    <archive>
+                                        <manifest>
+                                            <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
+                                            <addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
+                                        </manifest>
+                                    </archive>
+                                </configuration>
+                            </execution>
+                        </executions>
+                    </plugin>
+                    <!--
                       Create SHA512 checksum files for the release artifacts.
                     -->
-                              
-          <plugin>
-                                    
-            <groupId>net.nicoulaj.maven.plugins</groupId>
-                                    
-            <artifactId>checksum-maven-plugin</artifactId>
-                                    
-            <version>1.8</version>
-                                    
-            <executions>
-                                          
-              <execution>
-                                                
-                <id>sign-source-release</id>
-                                                
-                <phase>package</phase>
-                                                
-                <goals>
-                                                      
-                  <goal>files</goal>
-                                                  
-                </goals>
-                                                
-                <configuration>
-                                                      
-                  <algorithms>
-                                                            
-                    <algorithm>SHA-512</algorithm>
-                                                        
-                  </algorithms>
-                                                      
-                  <fileSets>
-                                                            
-                    <fileSet>
-                                                                  
-                      <directory>${project.build.directory}</directory>
-                                                                  
-                      <includes>
-                                                                        
-                        <include>apache-iotdb-${project.version}-source-release.zip</include>
-                                                                    
-                      </includes>
-                                                              
-                    </fileSet>
-                                                        
-                  </fileSets>
-                                                  
-                </configuration>
-                                            
-              </execution>
-                                      
-            </executions>
-                                
-          </plugin>
-                          
-        </plugins>
-                    
-      </build>
-              
-    </profile>
-            
-    <!-- enable site-->
-            
-    <!-- use `mvn package -P site -pl site` to compile the site module only -->
-            
-    <profile>
-                  
-      <id>site</id>
-                  
-      <modules>
-                        
-        <module>site</module>
-                    
-      </modules>
-              
-    </profile>
-            
-    <!-- code coverage for ut and it, and then merge them together.-->
-            
-    <profile>
-                  
-      <id>code-coverage</id>
-                  
-      <modules>
-                        
-        <module>code-coverage</module>
-                    
-      </modules>
-                  
-      <build>
-                        
-        <plugins>
-                              
-          <!-- Jacoco is a code coverage analysis plugin when tests run.
+                    <plugin>
+                        <groupId>net.nicoulaj.maven.plugins</groupId>
+                        <artifactId>checksum-maven-plugin</artifactId>
+                        <version>1.8</version>
+                        <executions>
+                            <execution>
+                                <id>sign-source-release</id>
+                                <phase>package</phase>
+                                <goals>
+                                    <goal>files</goal>
+                                </goals>
+                                <configuration>
+                                    <algorithms>
+                                        <algorithm>SHA-512</algorithm>
+                                    </algorithms>
+                                    <fileSets>
+                                        <fileSet>
+                                            <directory>${project.build.directory}</directory>
+                                            <includes>
+                                                <include>apache-iotdb-${project.version}-source-release.zip</include>
+                                            </includes>
+                                        </fileSet>
+                                    </fileSets>
+                                </configuration>
+                            </execution>
+                        </executions>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+        <!-- enable site-->
+        <!-- use `mvn package -P site -pl site` to compile the site module only -->
+        <profile>
+            <id>site</id>
+            <modules>
+                <module>site</module>
+            </modules>
+        </profile>
+        <!-- code coverage for ut and it, and then merge them together.-->
+        <profile>
+            <id>code-coverage</id>
+            <modules>
+                <module>code-coverage</module>
+            </modules>
+            <build>
+                <plugins>
+                    <!-- Jacoco is a code coverage analysis plugin when tests run.
                     (not a static code analysis tool)-->
-                              
-          <plugin>
-                                    
-            <groupId>org.jacoco</groupId>
-                                    
-            <artifactId>jacoco-maven-plugin</artifactId>
-                                    
-            <version>0.8.5</version>
-                                    
-            <configuration>
-                                          
-              <excludes>
-                                                
-                <exclude>org/apache/iotdb/service/sync/thrift/*</exclude>
-                                                
-                <exclude>org/apache/iotdb/service/rpc/thrift/*</exclude>
-                                                
-                <exclude>org/apache/iotdb/cluster/rpc/thrift/*</exclude>
-                                                
-                <exclude>org/apache/iotdb/protocol/influxdb/rpc/thrift/*</exclude>
-                                                
-                <exclude>org/apache/iotdb/db/qp/sql/*</exclude>
-                                            
-              </excludes>
-                                          
-              <rules>
-                                                
-                <rule implementation="org.jacoco.maven.RuleConfiguration">
-                                                      
-                  <element>BUNDLE</element>
-                                                      
-                  <limits>
-                      
-                                        
-                    <!-- Cover methodes >=30%. (the plugin does not support
+                    <plugin>
+                        <groupId>org.jacoco</groupId>
+                        <artifactId>jacoco-maven-plugin</artifactId>
+                        <version>0.8.5</version>
+                        <configuration>
+                            <excludes>
+                                <exclude>org/apache/iotdb/service/sync/thrift/*</exclude>
+                                <exclude>org/apache/iotdb/service/rpc/thrift/*</exclude>
+                                <exclude>org/apache/iotdb/cluster/rpc/thrift/*</exclude>
+                                <exclude>org/apache/iotdb/protocol/influxdb/rpc/thrift/*</exclude>
+                                <exclude>org/apache/iotdb/db/qp/sql/*</exclude>
+                            </excludes>
+                            <rules>
+                                <rule implementation="org.jacoco.maven.RuleConfiguration">
+                                    <element>BUNDLE</element>
+                                    <limits>  
+                                        <!-- Cover methodes >=30%. (the plugin does not support
                                         ignore getter and setter and toString etc..) -->
-                                                            
-                    <limit implementation="org.jacoco.report.check.Limit">
-                                                                  
-                      <counter>METHOD</counter>
-                                                                  
-                      <value>COVEREDRATIO</value>
-                                                                  
-                      <minimum>0.00</minimum>
-                                                              
-                    </limit>
-                                                            
-                    <!-- if-else, swtich etc.. >=70% -->
-                                                            
-                    <limit implementation="org.jacoco.report.check.Limit">
-                                                                  
-                      <counter>BRANCH</counter>
-                                                                  
-                      <value>COVEREDRATIO</value>
-                                                                  
-                      <minimum>0.00</minimum>
-                                                              
-                    </limit>
-                                                            
-                    <!-- class files >=95% -->
-                                                            
-                    <limit implementation="org.jacoco.report.check.Limit">
-                                                                  
-                      <counter>CLASS</counter>
-                                                                  
-                      <value>COVEREDRATIO</value>
-                                                                  
-                      <minimum>0.00</minimum>
-                                                              
-                    </limit>
-                                                        
-                  </limits>
-                                                  
-                </rule>
-                                            
-              </rules>
-                                      
-            </configuration>
-                                    
-            <executions>
-                                          
-              <!-- see https://natritmeyer.com/howto/reporting-aggregated-unit-and-integration-test-coverage-with-jacoco/-->
-                                          
-              <!-- For UT-->
-                                          
-              <execution>
-                                                
-                <id>prepare-ut</id>
-                                                
-                <goals>
-                                                      
-                  <goal>prepare-agent</goal>
-                                                  
-                </goals>
-                                                
-                <configuration>
-                                                      
-                  <destFile>${project.build.directory}/${project.build.finalName}-jacoco-unit-tests.exec</destFile>
-                                                      
-                  <propertyName>surefire.jacoco.args</propertyName>
-                                                  
-                </configuration>
-                                            
-              </execution>
-                                          
-              <!-- attached to Maven test phase -->
-                                          
-              <execution>
-                                                
-                <id>ut-report</id>
-                                                
-                <phase>test</phase>
-                                                
-                <goals>
-                                                      
-                  <goal>report</goal>
-                                                      
-                  <goal>check</goal>
-                                                  
-                </goals>
-                                                
-                <configuration>
-                                                      
-                  <dataFile>${project.build.directory}/${project.build.finalName}-jacoco-unit-tests.exec</dataFile>
-                                                      
-                  <outputDirectory>${project.build.directory}/jacoco-unit-reports</outputDirectory>
-                                                  
-                </configuration>
-                                            
-              </execution>
-                                          
-              <!-- For IT-->
-                                          
-              <execution>
-                                                
-                <id>before-integration-test-execution</id>
-                                                
-                <phase>pre-integration-test</phase>
-                                                
-                <goals>
-                                                      
-                  <goal>prepare-agent</goal>
-                                                  
-                </goals>
-                                                
-                <configuration>
-                                                      
-                  <destFile>${project.build.directory}/${project.build.finalName}-jacoco-integration-tests.exec</destFile>
-                                                      
-                  <propertyName>failsafe.jacoco.args</propertyName>
-                                                  
-                </configuration>
-                                            
-              </execution>
-                                          
-              <execution>
-                                                
-                <id>after-integration-test-execution</id>
-                                                
-                <phase>integration-test</phase>
-                                                
-                <goals>
-                                                      
-                  <goal>report</goal>
-                                                      
-                  <goal>check</goal>
-                                                  
-                </goals>
-                                                
-                <configuration>
-                                                      
-                  <dataFile>${project.build.directory}/${project.build.finalName}-jacoco-integration-tests.exec</dataFile>
-                                                      
-                  <outputDirectory>${project.build.directory}/jacoco-integration-reports</outputDirectory>
-                                                  
-                </configuration>
-                                            
-              </execution>
-                                          
-              <execution>
-                                                
-                <id>merge-unit-and-integration</id>
-                                                
-                <phase>post-integration-test</phase>
-                                                
-                <goals>
-                                                      
-                  <goal>merge</goal>
-                                                  
-                </goals>
-                                                
-                <configuration>
-                                                      
-                  <fileSets>
-                                                            
-                    <fileSet>
-                                                                  
-                      <directory>${project.build.directory}/</directory>
-                                                                  
-                      <includes>
-                                                                        
-                        <include>*.exec</include>
-                                                                    
-                      </includes>
-                                                              
-                    </fileSet>
-                                                        
-                  </fileSets>
-                                                      
-                  <destFile>${project.build.directory}/${project.build.finalName}-merged.exec</destFile>
-                                                  
-                </configuration>
-                                            
-              </execution>
-                                          
-              <execution>
-                                                
-                <id>create-merged-report</id>
-                                                
-                <phase>post-integration-test</phase>
-                                                
-                <goals>
-                                                      
-                  <goal>report</goal>
-                                                      
-                  <goal>check</goal>
-                                                  
-                </goals>
-                                                
-                <configuration>
-                                                      
-                  <dataFile>${project.build.directory}/${project.build.finalName}-merged.exec</dataFile>
-                                                      
-                  <outputDirectory>${project.build.directory}/jacoco-merged-reports</outputDirectory>
-                                                  
-                </configuration>
-                                            
-              </execution>
-                                      
-            </executions>
-                                
-          </plugin>
-                              
-          <!-- overwrite argLine-->
-                              
-          <plugin>
-                                    
-            <groupId>org.apache.maven.plugins</groupId>
-                                    
-            <artifactId>maven-surefire-plugin</artifactId>
-                                    
-            <configuration>
-                                          
-              <argLine>@{surefire.jacoco.args} -Xmx1024m</argLine>
-                                      
-            </configuration>
-                                
-          </plugin>
-                              
-          <!-- for IT-->
-                              
-          <plugin>
-                                    
-            <groupId>org.apache.maven.plugins</groupId>
-                                    
-            <artifactId>maven-failsafe-plugin</artifactId>
-                                    
-            <configuration>
-                                          
-              <argLine>@{failsafe.jacoco.args} -Xmx1024m</argLine>
-                                      
-            </configuration>
-                                    
-            <executions>
-                                          
-              <execution>
-                                                
-                <goals>
-                                                      
-                  <goal>integration-test</goal>
-                                                      
-                  <goal>verify</goal>
-                                                  
-                </goals>
-                                            
-              </execution>
-                                      
-            </executions>
-                                
-          </plugin>
-                          
-        </plugins>
-                    
-      </build>
-              
-    </profile>
-            
-    <!-- upload code coverage report to coveralls.io-->
-            
-    <!-- to enable coveralls locally, you need to get the repoToken from https://coveralls.io/github/apache/iotdb.
+                                        <limit implementation="org.jacoco.report.check.Limit">
+                                            <counter>METHOD</counter>
+                                            <value>COVEREDRATIO</value>
+                                            <minimum>0.00</minimum>
+                                        </limit>
+                                        <!-- if-else, swtich etc.. >=70% -->
+                                        <limit implementation="org.jacoco.report.check.Limit">
+                                            <counter>BRANCH</counter>
+                                            <value>COVEREDRATIO</value>
+                                            <minimum>0.00</minimum>
+                                        </limit>
+                                        <!-- class files >=95% -->
+                                        <limit implementation="org.jacoco.report.check.Limit">
+                                            <counter>CLASS</counter>
+                                            <value>COVEREDRATIO</value>
+                                            <minimum>0.00</minimum>
+                                        </limit>
+                                    </limits>
+                                </rule>
+                            </rules>
+                        </configuration>
+                        <executions>
+                            <!-- see https://natritmeyer.com/howto/reporting-aggregated-unit-and-integration-test-coverage-with-jacoco/-->
+                            <!-- For UT-->
+                            <execution>
+                                <id>prepare-ut</id>
+                                <goals>
+                                    <goal>prepare-agent</goal>
+                                </goals>
+                                <configuration>
+                                    <destFile>${project.build.directory}/${project.build.finalName}-jacoco-unit-tests.exec</destFile>
+                                    <propertyName>surefire.jacoco.args</propertyName>
+                                </configuration>
+                            </execution>
+                            <!-- attached to Maven test phase -->
+                            <execution>
+                                <id>ut-report</id>
+                                <phase>test</phase>
+                                <goals>
+                                    <goal>report</goal>
+                                    <goal>check</goal>
+                                </goals>
+                                <configuration>
+                                    <dataFile>${project.build.directory}/${project.build.finalName}-jacoco-unit-tests.exec</dataFile>
+                                    <outputDirectory>${project.build.directory}/jacoco-unit-reports</outputDirectory>
+                                </configuration>
+                            </execution>
+                            <!-- For IT-->
+                            <execution>
+                                <id>before-integration-test-execution</id>
+                                <phase>pre-integration-test</phase>
+                                <goals>
+                                    <goal>prepare-agent</goal>
+                                </goals>
+                                <configuration>
+                                    <destFile>${project.build.directory}/${project.build.finalName}-jacoco-integration-tests.exec</destFile>
+                                    <propertyName>failsafe.jacoco.args</propertyName>
+                                </configuration>
+                            </execution>
+                            <execution>
+                                <id>after-integration-test-execution</id>
+                                <phase>integration-test</phase>
+                                <goals>
+                                    <goal>report</goal>
+                                    <goal>check</goal>
+                                </goals>
+                                <configuration>
+                                    <dataFile>${project.build.directory}/${project.build.finalName}-jacoco-integration-tests.exec</dataFile>
+                                    <outputDirectory>${project.build.directory}/jacoco-integration-reports</outputDirectory>
+                                </configuration>
+                            </execution>
+                            <execution>
+                                <id>merge-unit-and-integration</id>
+                                <phase>post-integration-test</phase>
+                                <goals>
+                                    <goal>merge</goal>
+                                </goals>
+                                <configuration>
+                                    <fileSets>
+                                        <fileSet>
+                                            <directory>${project.build.directory}/</directory>
+                                            <includes>
+                                                <include>*.exec</include>
+                                            </includes>
+                                        </fileSet>
+                                    </fileSets>
+                                    <destFile>${project.build.directory}/${project.build.finalName}-merged.exec</destFile>
+                                </configuration>
+                            </execution>
+                            <execution>
+                                <id>create-merged-report</id>
+                                <phase>post-integration-test</phase>
+                                <goals>
+                                    <goal>report</goal>
+                                    <goal>check</goal>
+                                </goals>
+                                <configuration>
+                                    <dataFile>${project.build.directory}/${project.build.finalName}-merged.exec</dataFile>
+                                    <outputDirectory>${project.build.directory}/jacoco-merged-reports</outputDirectory>
+                                </configuration>
+                            </execution>
+                        </executions>
+                    </plugin>
+                    <!-- overwrite argLine-->
+                    <plugin>
+                        <groupId>org.apache.maven.plugins</groupId>
+                        <artifactId>maven-surefire-plugin</artifactId>
+                        <configuration>
+                            <argLine>@{surefire.jacoco.args} -Xmx1024m</argLine>
+                        </configuration>
+                    </plugin>
+                    <!-- for IT-->
+                    <plugin>
+                        <groupId>org.apache.maven.plugins</groupId>
+                        <artifactId>maven-failsafe-plugin</artifactId>
+                        <configuration>
+                            <argLine>@{failsafe.jacoco.args} -Xmx1024m</argLine>
+                        </configuration>
+                        <executions>
+                            <execution>
+                                <goals>
+                                    <goal>integration-test</goal>
+                                    <goal>verify</goal>
+                                </goals>
+                            </execution>
+                        </executions>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+        <!-- upload code coverage report to coveralls.io-->
+        <!-- to enable coveralls locally, you need to get the repoToken from https://coveralls.io/github/apache/iotdb.
              use `mvn post-integration-test -Pcode-coverage -DrepoToken=TOKEN`-->
-            
-    <profile>
-                  
-      <id>enforce</id>
-                  
-      <properties>
-                        
-        <enforcer.skip>false</enforcer.skip>
-                    
-      </properties>
-              
-    </profile>
-        
-  </profiles>
-  
+        <profile>
+            <id>enforce</id>
+            <properties>
+                <enforcer.skip>false</enforcer.skip>
+            </properties>
+        </profile>
+    </profiles>
 </project>