<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE import-control PUBLIC "-//Checkstyle//DTD ImportControl Configuration 1.4//EN" "https://checkstyle.org/dtds/import_control_1_4.dtd">

<!--
    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.
-->
<import-control pkg="org.apache.iotdb">
    <disallow class="java.sql.DriverManager"/>
    <disallow class="javax.sql.DataSource"/>
    <allow class="java.security.SecureRandom"/>
    <allow class="org.awaitility.Awaitility"/>
    <allow pkg="org\.junit.*" regex="true"/>
    <allow pkg="java.io"/>
    <allow pkg="java.nio"/>
    <allow pkg="java.util"/>
    <allow pkg="java.math"/>
    <allow pkg="java.sql"/>
    <allow pkg="java.time"/>
    <allow pkg="org\.apache\.iotdb\.itbase" regex="true"/>
    <allow pkg="org\.apache\.iotdb\.it.*" regex="true"/>
    <allow pkg="org\.apache\.iotdb\.rpc.*" regex="true"/>
    <allow pkg="org\.apache\.commons\.lang3.*" regex="true"/>
    <allow pkg="org\.slf4j.*" regex="true"/>
    <allow pkg="org\.apache\.iotdb\.tools.*" regex="true"/>
    <subpackage name="db.it">
        <disallow pkg="org.apache.iotdb.jdbc.*"/>
        <allow class="org.apache.iotdb.db.utils.constant.TestConstant"/>
        <allow class="org.apache.iotdb.db.utils.MathUtils"/>
        <allow class="org.apache.iotdb.db.storageengine.dataregion.wal.utils.WALMode"/>
        <allow class="org.fusesource.mqtt.client.QoS"/>
        <allow class="org.apache.iotdb.commons.path.PartialPath"/>
        <allow pkg="java.text"/>
        <allow pkg="org.apache.iotdb.db.it.utils"/>
        <allow pkg="org\.apache\.iotdb\.db\.conf.*" regex="true"/>
        <allow pkg="org\.apache\.iotdb\.db\.it\.utils\.TestUtils.*" regex="true"/>
        <allow pkg="org\.apache\.iotdb\.db\.constant\.TestConstant.*" regex="true"/>
        <allow pkg="org\.apache\.iotdb\.db\.client.*" regex="true"/>
        <allow pkg="org\.apache\.iotdb\.db\.mpp\.common\.header.*" regex="true"/>
        <allow pkg="org\.apache\.iotdb\.tsfile\.exception\.write.*" regex="true"/>
        <allow pkg="org\.apache\.iotdb\.tsfile\.file\.metadata.*" regex="true"/>
        <allow pkg="org\.apache\.iotdb\.tsfile\.read.*" regex="true"/>
        <allow pkg="org\.apache\.iotdb\.tsfile\.utils.*" regex="true"/>
        <allow pkg="org\.apache\.iotdb\.tsfile\.write.*" regex="true"/>
        <allow pkg="org\.apache\.iotdb\.db\.engine\.trigger\.sink\.mqtt.*" regex="true"/>
    </subpackage>
    <subpackage name="confignode.it">
        <allow class="java.nio.ByteBuffer"/>
        <allow class="org.apache.iotdb.commons.path.PartialPath"/>
        <allow class="org.apache.iotdb.commons.path.PathPatternTree"/>
        <allow class="org.apache.iotdb.commons.path.PathDeserializeUtil"/>
        <allow class="org.apache.tsfile.utils.PublicBAOS"/>
        <allow class="org.apache.iotdb.commons.exception.IllegalPathException"/>
        <allow class="org.apache.commons.codec.digest.DigestUtils"/>
        <allow class="org.apache.iotdb.commons.trigger.service.TriggerExecutableManager"/>
        <allow class="org.apache.iotdb.db.queryengine.plan.statement.AuthorType"/>
        <allow class="org.apache.iotdb.commons.trigger.TriggerInformation"/>
        <allow class="org.apache.iotdb.commons.udf.UDFInformation"/>
        <allow class="org.apache.iotdb.commons.cq.CQState"/>
        <allow class="org.apache.iotdb.consensus.ConsensusFactory"/>
        <allow class="org.apache.iotdb.confignode.it.utils.ConfigNodeTestUtils"/>
        <allow class="org.apache.iotdb.commons.client.exception.ClientManagerException"/>
        <allow pkg="org\.apache\.iotdb\.common\.rpc\.thrift.*" regex="true"/>
        <allow pkg="org\.apache\.iotdb\.confignode\.rpc\.thrift.*" regex="true"/>
        <allow pkg="org\.apache\.iotdb\.commons\.client\.sync.*" regex="true"/>
        <allow pkg="org\.apache\.iotdb\.commons\.cluster.*" regex="true"/>
        <allow pkg="org\.apache\.iotdb\.commons\.auth\.entity.*" regex="true"/>
        <allow pkg="org\.apache\.iotdb\.commons\.conf.*" regex="true"/>
        <allow pkg="org\.apache\.thrift.*" regex="true"/>
        <allow pkg="org\.apache\.iotdb\.db\.qp\.logical\.sys.*" regex="true"/>
        <allow pkg="org\.apache\.iotdb\.trigger\.api\.enums.*" regex="true"/>
        <allow pkg="org\.apache\.iotdb\.confignode\.it\.utils\.ConfigNodeTestUtils.*" regex="true"/>
    </subpackage>
    <subpackage name="session.it">
        <allow class="org.apache.iotdb.commons.conf.IoTDBConstant"/>
        <allow class="org.apache.iotdb.db.conf.IoTDBDescriptor"/>
        <allow class="org.apache.iotdb.db.protocol.thrift.OperationType"/>
        <allow class="org.apache.iotdb.db.it.utils.AlignedWriteUtil"/>
        <allow class="org.apache.iotdb.commons.cluster.NodeStatus"/>
        <allow class="org.apache.tsfile.common.constant.TsFileConstant"/>
        <allow class="org.apache.iotdb.service.rpc.thrift.TSConnectionInfoResp"/>
        <allow class="org.apache.iotdb.service.rpc.thrift.TSConnectionType"/>
        <allow class="org.apache.iotdb.common.rpc.thrift.TAggregationType"/>
        <allow pkg="org\.apache\.iotdb\.session.*" regex="true"/>
        <allow pkg="org\.apache\.iotdb\.isession.*" regex="true"/>
        <allow pkg="org\.apache\.iotdb\.tsfile\.write.*" regex="true"/>
        <allow pkg="org\.apache\.iotdb\.tsfile\.read.*" regex="true"/>
        <allow pkg="org\.apache\.iotdb\.tsfile\.utils.*" regex="true"/>
        <allow pkg="org\.apache\.iotdb\.tsfile\.file\.metadata.*" regex="true"/>
        <allow pkg="org.apache.iotdb.db.metadata.idtable.trigger_example"/>
        <allow pkg="org.apache.iotdb.session.template"/>
        <allow pkg="org\.apache\.iotdb\.db\.it\.utils\.TestUtils.*" regex="true"/>
    </subpackage>
    <subpackage name="zeppelin.it">
        <allow class="org.apache.zeppelin.interpreter.InterpreterResult"/>
        <allow class="org.apache.zeppelin.interpreter.InterpreterResult.Code"/>
        <allow class="org.apache.zeppelin.iotdb.IoTDBInterpreter"/>
    </subpackage>
    <subpackage name="tools">
        <allow class="org.apache.iotdb.cli.it.AbstractScript"/>
        <allow class="org.apache.iotdb.session.ISession"/>
        <allow pkg="org\.apache\.iotdb\.isession.*" regex="true"/>
    </subpackage>
</import-control>
