<?xml version="1.0" encoding="UTF-8"?>
<!--

    Licensed to the Apache Software Foundation (ASF) under one
    or more contributor license agreements.  See the NOTICE file
    distributed with this work for additional information
    regarding copyright ownership.  The ASF licenses this file
    to you under the Apache License, Version 2.0 (the
    "License"); you may not use this file except in compliance
    with the License.  You may obtain a copy of the License at

        http://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing,
    software distributed under the License is distributed on an
    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
    KIND, either express or implied.  See the License for the
    specific language governing permissions and limitations
    under the License.

-->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.apache.iotdb</groupId>
        <artifactId>iotdb-parent</artifactId>
        <version>1.3.3-SNAPSHOT</version>
    </parent>
    <artifactId>integration-test</artifactId>
    <name>IoTDB: Integration-Test</name>
    <properties>
        <integrationTest.excludedGroups/>
        <integrationTest.forkCount>1</integrationTest.forkCount>
        <integrationTest.includedGroups/>
        <integrationTest.launchNodeInSameJVM>true</integrationTest.launchNodeInSameJVM>
        <integrationTest.nodeMaxHeapSize>200m</integrationTest.nodeMaxHeapSize>
        <integrationTest.nodeNewHeapSize>200m</integrationTest.nodeNewHeapSize>
        <integrationTest.randomSelectWriteNode>true</integrationTest.randomSelectWriteNode>
        <integrationTest.readAndVerifyWithMultiNode>true</integrationTest.readAndVerifyWithMultiNode>
        <integrationTest.testEnv/>
        <lightWeightStandaloneMode.configNodeConsensus>Simple</lightWeightStandaloneMode.configNodeConsensus>
        <!-- -DClusterConfigurations values configured here -->
        <lightWeightStandaloneMode.configNodeNumber>1</lightWeightStandaloneMode.configNodeNumber>
        <lightWeightStandaloneMode.dataNodeNumber>1</lightWeightStandaloneMode.dataNodeNumber>
        <lightWeightStandaloneMode.dataRegionConsensus>Simple</lightWeightStandaloneMode.dataRegionConsensus>
        <lightWeightStandaloneMode.dataRegionReplicaNumber>1</lightWeightStandaloneMode.dataRegionReplicaNumber>
        <lightWeightStandaloneMode.schemaRegionConsensus>Simple</lightWeightStandaloneMode.schemaRegionConsensus>
        <lightWeightStandaloneMode.schemaRegionReplicaNumber>1</lightWeightStandaloneMode.schemaRegionReplicaNumber>
        <scalableSingleNodeMode.configNodeConsensus>Ratis</scalableSingleNodeMode.configNodeConsensus>
        <scalableSingleNodeMode.configNodeNumber>1</scalableSingleNodeMode.configNodeNumber>
        <scalableSingleNodeMode.dataNodeNumber>1</scalableSingleNodeMode.dataNodeNumber>
        <scalableSingleNodeMode.dataRegionConsensus>IoT</scalableSingleNodeMode.dataRegionConsensus>
        <scalableSingleNodeMode.dataRegionReplicaNumber>1</scalableSingleNodeMode.dataRegionReplicaNumber>
        <scalableSingleNodeMode.schemaRegionConsensus>Ratis</scalableSingleNodeMode.schemaRegionConsensus>
        <scalableSingleNodeMode.schemaRegionReplicaNumber>1</scalableSingleNodeMode.schemaRegionReplicaNumber>
        <highPerformanceMode.configNodeConsensus>Ratis</highPerformanceMode.configNodeConsensus>
        <highPerformanceMode.configNodeNumber>1</highPerformanceMode.configNodeNumber>
        <highPerformanceMode.dataNodeNumber>3</highPerformanceMode.dataNodeNumber>
        <highPerformanceMode.dataRegionConsensus>IoT</highPerformanceMode.dataRegionConsensus>
        <highPerformanceMode.dataRegionReplicaNumber>2</highPerformanceMode.dataRegionReplicaNumber>
        <highPerformanceMode.schemaRegionConsensus>Ratis</highPerformanceMode.schemaRegionConsensus>
        <highPerformanceMode.schemaRegionReplicaNumber>3</highPerformanceMode.schemaRegionReplicaNumber>
        <strongConsistencyClusterMode.configNodeConsensus>Ratis</strongConsistencyClusterMode.configNodeConsensus>
        <strongConsistencyClusterMode.configNodeNumber>3</strongConsistencyClusterMode.configNodeNumber>
        <strongConsistencyClusterMode.dataNodeNumber>3</strongConsistencyClusterMode.dataNodeNumber>
        <strongConsistencyClusterMode.dataRegionConsensus>Ratis</strongConsistencyClusterMode.dataRegionConsensus>
        <strongConsistencyClusterMode.dataRegionReplicaNumber>3</strongConsistencyClusterMode.dataRegionReplicaNumber>
        <strongConsistencyClusterMode.schemaRegionConsensus>Ratis</strongConsistencyClusterMode.schemaRegionConsensus>
        <strongConsistencyClusterMode.schemaRegionReplicaNumber>3</strongConsistencyClusterMode.schemaRegionReplicaNumber>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.apache.iotdb</groupId>
            <artifactId>iotdb-server</artifactId>
            <version>1.3.3-SNAPSHOT</version>
        </dependency>
        <dependency>
            <groupId>org.apache.iotdb</groupId>
            <artifactId>iotdb-session</artifactId>
            <version>1.3.3-SNAPSHOT</version>
        </dependency>
        <dependency>
            <groupId>org.apache.iotdb</groupId>
            <artifactId>iotdb-jdbc</artifactId>
            <version>1.3.3-SNAPSHOT</version>
        </dependency>
        <dependency>
            <groupId>org.apache.iotdb</groupId>
            <artifactId>trigger-api</artifactId>
            <version>1.3.3-SNAPSHOT</version>
        </dependency>
        <dependency>
            <groupId>org.apache.iotdb</groupId>
            <artifactId>isession</artifactId>
            <version>1.3.3-SNAPSHOT</version>
        </dependency>
        <dependency>
            <groupId>org.apache.iotdb</groupId>
            <artifactId>service-rpc</artifactId>
            <version>1.3.3-SNAPSHOT</version>
        </dependency>
        <dependency>
            <groupId>org.apache.iotdb</groupId>
            <artifactId>iotdb-thrift-confignode</artifactId>
            <version>1.3.3-SNAPSHOT</version>
        </dependency>
        <dependency>
            <groupId>org.apache.iotdb</groupId>
            <artifactId>node-commons</artifactId>
            <version>1.3.3-SNAPSHOT</version>
        </dependency>
        <dependency>
            <groupId>org.apache.iotdb</groupId>
            <artifactId>iotdb-thrift-commons</artifactId>
            <version>1.3.3-SNAPSHOT</version>
        </dependency>
        <dependency>
            <groupId>org.apache.tsfile</groupId>
            <artifactId>tsfile</artifactId>
            <version>${tsfile.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.iotdb</groupId>
            <artifactId>udf-api</artifactId>
            <version>1.3.3-SNAPSHOT</version>
        </dependency>
        <dependency>
            <groupId>org.apache.iotdb</groupId>
            <artifactId>library-udf</artifactId>
            <version>${project.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.iotdb</groupId>
            <artifactId>iotdb-consensus</artifactId>
            <version>1.3.3-SNAPSHOT</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
        </dependency>
        <dependency>
            <groupId>com.google.code.findbugs</groupId>
            <artifactId>jsr305</artifactId>
        </dependency>
        <dependency>
            <groupId>commons-io</groupId>
            <artifactId>commons-io</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.thrift</groupId>
            <artifactId>libthrift</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
        </dependency>
        <dependency>
            <groupId>jakarta.validation</groupId>
            <artifactId>jakarta.validation-api</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.iotdb</groupId>
            <artifactId>iotdb-confignode</artifactId>
            <version>1.3.3-SNAPSHOT</version>
        </dependency>
        <dependency>
            <groupId>org.apache.iotdb</groupId>
            <artifactId>iotdb-thrift</artifactId>
            <version>1.3.3-SNAPSHOT</version>
        </dependency>
        <dependency>
            <groupId>org.apache.iotdb</groupId>
            <artifactId>iotdb-cli</artifactId>
            <version>1.3.3-SNAPSHOT</version>
        </dependency>
        <dependency>
            <groupId>commons-codec</groupId>
            <artifactId>commons-codec</artifactId>
        </dependency>
        <dependency>
            <groupId>org.bouncycastle</groupId>
            <artifactId>bcprov-jdk18on</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <version>5.10.2</version>
            <artifactId>junit-jupiter-api</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.awaitility</groupId>
            <artifactId>awaitility</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.iotdb</groupId>
            <artifactId>iotdb-server</artifactId>
            <version>1.3.3-SNAPSHOT</version>
            <type>test-jar</type>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>com.github.stephenc.jcip</groupId>
            <artifactId>jcip-annotations</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>
    <build>
        <plugins>
            <!-- skip default-test -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <executions>
                    <execution>
                        <id>default-test</id>
                        <configuration>
                            <skip>true</skip>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <!-- If the test starts separate processes, we should package first -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-assembly-plugin</artifactId>
                <configuration>
                    <skipAssembly>${integrationTest.launchNodeInSameJVM}</skipAssembly>
                </configuration>
                <executions>
                    <!-- Package binaries-->
                    <execution>
                        <id>cluster-test-assembly</id>
                        <goals>
                            <goal>single</goal>
                        </goals>
                        <phase>package</phase>
                        <configuration>
                            <descriptors>
                                <descriptor>src/assembly/mpp-test.xml</descriptor>
                            </descriptors>
                            <finalName>template-node</finalName>
                            <appendAssemblyId>false</appendAssemblyId>
                        </configuration>
                    </execution>
                    <execution>
                        <id>cluster-test-assembly-share</id>
                        <goals>
                            <goal>single</goal>
                        </goals>
                        <phase>package</phase>
                        <configuration>
                            <descriptors>
                                <descriptor>src/assembly/mpp-share.xml</descriptor>
                            </descriptors>
                            <finalName>template-node-share</finalName>
                            <appendAssemblyId>false</appendAssemblyId>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <!-- Run integration tests -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-failsafe-plugin</artifactId>
                <executions>
                    <execution>
                        <id>integration-test</id>
                        <goals>
                            <goal>integration-test</goal>
                        </goals>
                        <configuration>
                            <groups>${integrationTest.includedGroups}</groups>
                            <excludedGroups>${integrationTest.excludedGroups}</excludedGroups>
                            <useSystemClassLoader>false</useSystemClassLoader>
                            <parallel>none</parallel>
                            <forkCount>${integrationTest.forkCount}</forkCount>
                            <reuseForks>false</reuseForks>
                            <systemPropertyVariables>
                                <TestEnv>${integrationTest.testEnv}</TestEnv>
                                <RandomSelectWriteNode>${integrationTest.randomSelectWriteNode}</RandomSelectWriteNode>
                                <ReadAndVerifyWithMultiNode>${integrationTest.readAndVerifyWithMultiNode}</ReadAndVerifyWithMultiNode>
                                <lightWeightStandaloneMode.configNodeNumber>${lightWeightStandaloneMode.configNodeNumber}</lightWeightStandaloneMode.configNodeNumber>
                                <lightWeightStandaloneMode.dataNodeNumber>${lightWeightStandaloneMode.dataNodeNumber}</lightWeightStandaloneMode.dataNodeNumber>
                                <lightWeightStandaloneMode.configNodeConsensus>${lightWeightStandaloneMode.configNodeConsensus}</lightWeightStandaloneMode.configNodeConsensus>
                                <lightWeightStandaloneMode.schemaRegionConsensus>${lightWeightStandaloneMode.schemaRegionConsensus}</lightWeightStandaloneMode.schemaRegionConsensus>
                                <lightWeightStandaloneMode.dataRegionConsensus>${lightWeightStandaloneMode.dataRegionConsensus}</lightWeightStandaloneMode.dataRegionConsensus>
                                <lightWeightStandaloneMode.schemaRegionReplicaNumber>${lightWeightStandaloneMode.schemaRegionReplicaNumber}</lightWeightStandaloneMode.schemaRegionReplicaNumber>
                                <lightWeightStandaloneMode.dataRegionReplicaNumber>${lightWeightStandaloneMode.dataRegionReplicaNumber}</lightWeightStandaloneMode.dataRegionReplicaNumber>
                                <scalableSingleNodeMode.configNodeNumber>${scalableSingleNodeMode.configNodeNumber}</scalableSingleNodeMode.configNodeNumber>
                                <scalableSingleNodeMode.dataNodeNumber>${scalableSingleNodeMode.dataNodeNumber}</scalableSingleNodeMode.dataNodeNumber>
                                <scalableSingleNodeMode.configNodeConsensus>${scalableSingleNodeMode.configNodeConsensus}</scalableSingleNodeMode.configNodeConsensus>
                                <scalableSingleNodeMode.schemaRegionConsensus>${scalableSingleNodeMode.schemaRegionConsensus}</scalableSingleNodeMode.schemaRegionConsensus>
                                <scalableSingleNodeMode.dataRegionConsensus>${scalableSingleNodeMode.dataRegionConsensus}</scalableSingleNodeMode.dataRegionConsensus>
                                <scalableSingleNodeMode.schemaRegionReplicaNumber>${scalableSingleNodeMode.schemaRegionReplicaNumber}</scalableSingleNodeMode.schemaRegionReplicaNumber>
                                <scalableSingleNodeMode.dataRegionReplicaNumber>${scalableSingleNodeMode.dataRegionReplicaNumber}</scalableSingleNodeMode.dataRegionReplicaNumber>
                                <highPerformanceMode.configNodeNumber>${highPerformanceMode.configNodeNumber}</highPerformanceMode.configNodeNumber>
                                <highPerformanceMode.dataNodeNumber>${highPerformanceMode.dataNodeNumber}</highPerformanceMode.dataNodeNumber>
                                <highPerformanceMode.configNodeConsensus>${highPerformanceMode.configNodeConsensus}</highPerformanceMode.configNodeConsensus>
                                <highPerformanceMode.schemaRegionConsensus>${highPerformanceMode.schemaRegionConsensus}</highPerformanceMode.schemaRegionConsensus>
                                <highPerformanceMode.dataRegionConsensus>${highPerformanceMode.dataRegionConsensus}</highPerformanceMode.dataRegionConsensus>
                                <highPerformanceMode.schemaRegionReplicaNumber>${highPerformanceMode.schemaRegionReplicaNumber}</highPerformanceMode.schemaRegionReplicaNumber>
                                <highPerformanceMode.dataRegionReplicaNumber>${highPerformanceMode.dataRegionReplicaNumber}</highPerformanceMode.dataRegionReplicaNumber>
                                <strongConsistencyClusterMode.configNodeNumber>${strongConsistencyClusterMode.configNodeNumber}</strongConsistencyClusterMode.configNodeNumber>
                                <strongConsistencyClusterMode.dataNodeNumber>${strongConsistencyClusterMode.dataNodeNumber}</strongConsistencyClusterMode.dataNodeNumber>
                                <strongConsistencyClusterMode.configNodeConsensus>${strongConsistencyClusterMode.configNodeConsensus}</strongConsistencyClusterMode.configNodeConsensus>
                                <strongConsistencyClusterMode.schemaRegionConsensus>${strongConsistencyClusterMode.schemaRegionConsensus}</strongConsistencyClusterMode.schemaRegionConsensus>
                                <strongConsistencyClusterMode.dataRegionConsensus>${strongConsistencyClusterMode.dataRegionConsensus}</strongConsistencyClusterMode.dataRegionConsensus>
                                <strongConsistencyClusterMode.schemaRegionReplicaNumber>${strongConsistencyClusterMode.schemaRegionReplicaNumber}</strongConsistencyClusterMode.schemaRegionReplicaNumber>
                                <strongConsistencyClusterMode.dataRegionReplicaNumber>${strongConsistencyClusterMode.dataRegionReplicaNumber}</strongConsistencyClusterMode.dataRegionReplicaNumber>
                            </systemPropertyVariables>
                            <summaryFile>target/failsafe-reports/failsafe-summary-IT.xml</summaryFile>
                        </configuration>
                    </execution>
                    <execution>
                        <id>verify</id>
                        <goals>
                            <goal>verify</goal>
                        </goals>
                        <configuration>
                            <summaryFiles>
                                <summaryFile>target/failsafe-reports/failsafe-summary-IT.xml</summaryFile>
                            </summaryFiles>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <!-- Running this here wouldn't really make much sense -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-dependency-plugin</artifactId>
                <executions>
                    <execution>
                        <id>check-dependencies</id>
                        <goals>
                            <goal>analyze-only</goal>
                        </goals>
                        <phase>verify</phase>
                        <configuration>
                            <skip>true</skip>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>exec-maven-plugin</artifactId>
                <configuration>
                    <mainClass>org.apache.iotdb.it.framework.IoTDBTestReporter</mainClass>
                </configuration>
                <executions>
                    <execution>
                        <id>report</id>
                        <goals>
                            <goal>java</goal>
                        </goals>
                        <phase>post-integration-test</phase>
                    </execution>
                </executions>
            </plugin>
            <!-- Make sure stuff is also cleaned up, which might be left over from the tests -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-clean-plugin</artifactId>
                <configuration>
                    <filesets>
                        <fileset>
                            <directory>data</directory>
                            <includes>
                                <include>**</include>
                            </includes>
                        </fileset>
                    </filesets>
                </configuration>
            </plugin>
        </plugins>
    </build>
    <profiles>
        <profile>
            <id>SimpleIT</id>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
            <properties>
                <integrationTest.excludedGroups/>
                <integrationTest.includedGroups>org.apache.iotdb.itbase.category.LocalStandaloneIT</integrationTest.includedGroups>
                <integrationTest.launchNodeInSameJVM>false</integrationTest.launchNodeInSameJVM>
                <integrationTest.randomSelectWriteNode>false</integrationTest.randomSelectWriteNode>
                <integrationTest.readAndVerifyWithMultiNode>false</integrationTest.readAndVerifyWithMultiNode>
                <integrationTest.testEnv>Simple</integrationTest.testEnv>
            </properties>
        </profile>
        <!-- Currently RemoteIT is not working as it lacks of the remote endpoint parameters -->
        <profile>
            <id>RemoteIT</id>
            <activation>
                <activeByDefault>false</activeByDefault>
            </activation>
            <properties>
                <integrationTest.excludedGroups/>
                <integrationTest.includedGroups>org.apache.iotdb.itbase.category.RemoteIT</integrationTest.includedGroups>
                <integrationTest.testEnv>Remote</integrationTest.testEnv>
            </properties>
        </profile>
        <profile>
            <id>MultiClusterIT</id>
            <activation>
                <activeByDefault>false</activeByDefault>
            </activation>
            <properties>
                <integrationTest.excludedGroups/>
                <integrationTest.includedGroups>org.apache.iotdb.itbase.category.MultiClusterIT1,org.apache.iotdb.itbase.category.MultiClusterIT2AutoCreateSchema,org.apache.iotdb.itbase.category.MultiClusterIT2ManualCreateSchema,org.apache.iotdb.itbase.category.MultiClusterIT2SubscriptionArchVerification,org.apache.iotdb.itbase.category.MultiClusterIT2SubscriptionRegressionConsumer,org.apache.iotdb.itbase.category.MultiClusterIT2SubscriptionRegressionMisc,org.apache.iotdb.itbase.category.MultiClusterIT3</integrationTest.includedGroups>
                <integrationTest.launchNodeInSameJVM>false</integrationTest.launchNodeInSameJVM>
                <integrationTest.randomSelectWriteNode>true</integrationTest.randomSelectWriteNode>
                <integrationTest.readAndVerifyWithMultiNode>true</integrationTest.readAndVerifyWithMultiNode>
                <integrationTest.testEnv>MultiCluster</integrationTest.testEnv>
            </properties>
        </profile>
        <profile>
            <id>MultiClusterIT1</id>
            <activation>
                <activeByDefault>false</activeByDefault>
            </activation>
            <properties>
                <integrationTest.excludedGroups/>
                <integrationTest.includedGroups>org.apache.iotdb.itbase.category.MultiClusterIT1</integrationTest.includedGroups>
                <integrationTest.launchNodeInSameJVM>false</integrationTest.launchNodeInSameJVM>
                <integrationTest.randomSelectWriteNode>true</integrationTest.randomSelectWriteNode>
                <integrationTest.readAndVerifyWithMultiNode>true</integrationTest.readAndVerifyWithMultiNode>
                <integrationTest.testEnv>MultiCluster</integrationTest.testEnv>
            </properties>
        </profile>
        <profile>
            <id>MultiClusterIT2AutoCreateSchema</id>
            <activation>
                <activeByDefault>false</activeByDefault>
            </activation>
            <properties>
                <integrationTest.excludedGroups/>
                <integrationTest.includedGroups>org.apache.iotdb.itbase.category.MultiClusterIT2AutoCreateSchema</integrationTest.includedGroups>
                <integrationTest.launchNodeInSameJVM>false</integrationTest.launchNodeInSameJVM>
                <integrationTest.randomSelectWriteNode>true</integrationTest.randomSelectWriteNode>
                <integrationTest.readAndVerifyWithMultiNode>true</integrationTest.readAndVerifyWithMultiNode>
                <integrationTest.testEnv>MultiCluster</integrationTest.testEnv>
            </properties>
        </profile>
        <profile>
            <id>MultiClusterIT2ManualCreateSchema</id>
            <activation>
                <activeByDefault>false</activeByDefault>
            </activation>
            <properties>
                <integrationTest.excludedGroups/>
                <integrationTest.includedGroups>org.apache.iotdb.itbase.category.MultiClusterIT2ManualCreateSchema</integrationTest.includedGroups>
                <integrationTest.launchNodeInSameJVM>false</integrationTest.launchNodeInSameJVM>
                <integrationTest.randomSelectWriteNode>true</integrationTest.randomSelectWriteNode>
                <integrationTest.readAndVerifyWithMultiNode>true</integrationTest.readAndVerifyWithMultiNode>
                <integrationTest.testEnv>MultiCluster</integrationTest.testEnv>
            </properties>
        </profile>
        <profile>
            <id>MultiClusterIT2SubscriptionArchVerification</id>
            <activation>
                <activeByDefault>false</activeByDefault>
            </activation>
            <properties>
                <integrationTest.excludedGroups/>
                <integrationTest.includedGroups>org.apache.iotdb.itbase.category.MultiClusterIT2SubscriptionArchVerification</integrationTest.includedGroups>
                <integrationTest.launchNodeInSameJVM>false</integrationTest.launchNodeInSameJVM>
                <integrationTest.randomSelectWriteNode>true</integrationTest.randomSelectWriteNode>
                <integrationTest.readAndVerifyWithMultiNode>true</integrationTest.readAndVerifyWithMultiNode>
                <integrationTest.testEnv>MultiCluster</integrationTest.testEnv>
            </properties>
        </profile>
        <profile>
            <id>MultiClusterIT2SubscriptionRegressionConsumer</id>
            <activation>
                <activeByDefault>false</activeByDefault>
            </activation>
            <properties>
                <integrationTest.excludedGroups/>
                <integrationTest.includedGroups>org.apache.iotdb.itbase.category.MultiClusterIT2SubscriptionRegressionConsumer</integrationTest.includedGroups>
                <integrationTest.launchNodeInSameJVM>false</integrationTest.launchNodeInSameJVM>
                <integrationTest.randomSelectWriteNode>true</integrationTest.randomSelectWriteNode>
                <integrationTest.readAndVerifyWithMultiNode>true</integrationTest.readAndVerifyWithMultiNode>
                <integrationTest.testEnv>MultiCluster</integrationTest.testEnv>
            </properties>
        </profile>
        <profile>
            <id>MultiClusterIT2SubscriptionRegressionMisc</id>
            <activation>
                <activeByDefault>false</activeByDefault>
            </activation>
            <properties>
                <integrationTest.excludedGroups/>
                <integrationTest.includedGroups>org.apache.iotdb.itbase.category.MultiClusterIT2SubscriptionRegressionMisc</integrationTest.includedGroups>
                <integrationTest.launchNodeInSameJVM>false</integrationTest.launchNodeInSameJVM>
                <integrationTest.randomSelectWriteNode>true</integrationTest.randomSelectWriteNode>
                <integrationTest.readAndVerifyWithMultiNode>true</integrationTest.readAndVerifyWithMultiNode>
                <integrationTest.testEnv>MultiCluster</integrationTest.testEnv>
            </properties>
        </profile>
        <profile>
            <id>MultiClusterIT3</id>
            <activation>
                <activeByDefault>false</activeByDefault>
            </activation>
            <properties>
                <integrationTest.excludedGroups/>
                <integrationTest.includedGroups>org.apache.iotdb.itbase.category.MultiClusterIT3</integrationTest.includedGroups>
                <integrationTest.launchNodeInSameJVM>false</integrationTest.launchNodeInSameJVM>
                <integrationTest.randomSelectWriteNode>true</integrationTest.randomSelectWriteNode>
                <integrationTest.readAndVerifyWithMultiNode>true</integrationTest.readAndVerifyWithMultiNode>
                <integrationTest.testEnv>MultiCluster</integrationTest.testEnv>
            </properties>
        </profile>
        <profile>
            <id>ClusterIT</id>
            <activation>
                <activeByDefault>false</activeByDefault>
            </activation>
            <properties>
                <integrationTest.excludedGroups/>
                <integrationTest.includedGroups>org.apache.iotdb.itbase.category.ClusterIT</integrationTest.includedGroups>
                <integrationTest.launchNodeInSameJVM>false</integrationTest.launchNodeInSameJVM>
                <integrationTest.randomSelectWriteNode>true</integrationTest.randomSelectWriteNode>
                <integrationTest.readAndVerifyWithMultiNode>true</integrationTest.readAndVerifyWithMultiNode>
                <integrationTest.testEnv>Cluster1</integrationTest.testEnv>
            </properties>
        </profile>
        <profile>
            <id>AIClusterIT</id>
            <activation>
                <activeByDefault>false</activeByDefault>
            </activation>
            <properties>
                <integrationTest.excludedGroups/>
                <integrationTest.includedGroups>org.apache.iotdb.itbase.category.AIClusterIT</integrationTest.includedGroups>
                <integrationTest.launchNodeInSameJVM>false</integrationTest.launchNodeInSameJVM>
                <integrationTest.randomSelectWriteNode>false</integrationTest.randomSelectWriteNode>
                <integrationTest.readAndVerifyWithMultiNode>false</integrationTest.readAndVerifyWithMultiNode>
                <integrationTest.testEnv>AI</integrationTest.testEnv>
            </properties>
        </profile>
        <profile>
            <id>DailyIT</id>
            <activation>
                <activeByDefault>false</activeByDefault>
            </activation>
            <properties>
                <integrationTest.excludedGroups/>
                <integrationTest.includedGroups>org.apache.iotdb.itbase.category.DailyIT</integrationTest.includedGroups>
                <integrationTest.launchNodeInSameJVM>false</integrationTest.launchNodeInSameJVM>
                <integrationTest.randomSelectWriteNode>true</integrationTest.randomSelectWriteNode>
                <integrationTest.readAndVerifyWithMultiNode>true</integrationTest.readAndVerifyWithMultiNode>
                <integrationTest.testEnv>Cluster1</integrationTest.testEnv>
            </properties>
        </profile>
    </profiles>
</project>
