<?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.iotdb.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.iotdb.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>
