<?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.tsfile.external.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>
