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

qiaojialin pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/iotdb.git


The following commit(s) were added to refs/heads/master by this push:
     new c9e006a585 Implement CommonDescriptor and refactor CommonConfig usage 
(#5860)
c9e006a585 is described below

commit c9e006a585762fa7ab46616899261128573c0029
Author: Marcos_Zyk <[email protected]>
AuthorDate: Wed May 11 17:14:16 2022 +0800

    Implement CommonDescriptor and refactor CommonConfig usage (#5860)
---
 .../iotdb/confignode/conf/ConfigNodeConf.java      | 13 +---
 .../confignode/conf/ConfigNodeDescriptor.java      | 28 +++-----
 .../confignode/conf/ConfigNodeStartupCheck.java    |  3 +-
 .../iotdb/confignode/manager/ConfigManager.java    |  3 +-
 .../thrift/ConfigNodeRPCServiceProcessor.java      |  3 +-
 .../apache/iotdb/db/integration/IoTDBTtlIT.java    |  6 +-
 .../commons/auth/authorizer/BasicAuthorizer.java   |  7 +-
 .../auth/authorizer/LocalFileAuthorizer.java       |  3 +-
 .../commons/auth/authorizer/OpenIdAuthorizer.java  |  3 +-
 .../iotdb/commons/auth/user/BasicUserManager.java  |  9 +--
 .../apache/iotdb/commons/conf/CommonConfig.java    | 29 ++++----
 .../iotdb/commons/conf/CommonDescriptor.java       | 81 ++++++++++++++++++++++
 .../iotdb/commons/file/SystemFileFactory.java      |  5 +-
 .../org/apache/iotdb/commons/utils/AuthUtils.java  | 10 +--
 .../rocksdb/mnode/RStorageGroupMNode.java          |  4 +-
 .../org/apache/iotdb/db/auth/AuthorityChecker.java |  5 +-
 .../java/org/apache/iotdb/db/conf/IoTDBConfig.java | 18 +----
 .../org/apache/iotdb/db/conf/IoTDBDescriptor.java  | 44 +++---------
 .../iotdb/db/metadata/mtree/MTreeAboveSG.java      |  9 +--
 .../db/metadata/mtree/store/MemMTreeStore.java     |  4 +-
 .../store/disk/schemafile/MockSchemaFile.java      |  4 +-
 .../mtree/store/disk/schemafile/SchemaFile.java    |  3 +-
 .../apache/iotdb/db/qp/executor/PlanExecutor.java  |  4 +-
 .../qp/physical/crud/InsertMultiTabletsPlan.java   |  4 +-
 .../auth/authorizer/LocalFileAuthorizerTest.java   |  4 +-
 .../db/auth/authorizer/OpenIdAuthorizerTest.java   |  3 +-
 .../db/auth/user/LocalFileUserManagerTest.java     |  4 +-
 .../security/encrypt/MessageDigestEncryptTest.java |  4 +-
 28 files changed, 175 insertions(+), 142 deletions(-)

diff --git 
a/confignode/src/main/java/org/apache/iotdb/confignode/conf/ConfigNodeConf.java 
b/confignode/src/main/java/org/apache/iotdb/confignode/conf/ConfigNodeConf.java
index a0257461cf..845384c536 100644
--- 
a/confignode/src/main/java/org/apache/iotdb/confignode/conf/ConfigNodeConf.java
+++ 
b/confignode/src/main/java/org/apache/iotdb/confignode/conf/ConfigNodeConf.java
@@ -108,9 +108,6 @@ public class ConfigNodeConf {
   private String consensusDir =
       ConfigNodeConstant.DATA_DIR + File.separator + 
ConfigNodeConstant.CONSENSUS_FOLDER;
 
-  /** Default TTL for storage groups that are not set TTL by statements, in 
ms. */
-  private long defaultTTL = Long.MAX_VALUE;
-
   /** Time partition interval in seconds */
   private long timePartitionInterval = 604800;
 
@@ -126,7 +123,7 @@ public class ConfigNodeConf {
   /** The initial number of DataRegions of each StorageGroup */
   private int initialDataRegionCount = 1;
 
-  public ConfigNodeConf() {
+  ConfigNodeConf() {
     // empty constructor
   }
 
@@ -335,14 +332,6 @@ public class ConfigNodeConf {
     this.dataDirs = dataDirs;
   }
 
-  public long getDefaultTTL() {
-    return defaultTTL;
-  }
-
-  public void setDefaultTTL(long defaultTTL) {
-    this.defaultTTL = defaultTTL;
-  }
-
   public int getSchemaReplicationFactor() {
     return schemaReplicationFactor;
   }
diff --git 
a/confignode/src/main/java/org/apache/iotdb/confignode/conf/ConfigNodeDescriptor.java
 
b/confignode/src/main/java/org/apache/iotdb/confignode/conf/ConfigNodeDescriptor.java
index 9065722d72..783bae94a2 100644
--- 
a/confignode/src/main/java/org/apache/iotdb/confignode/conf/ConfigNodeDescriptor.java
+++ 
b/confignode/src/main/java/org/apache/iotdb/confignode/conf/ConfigNodeDescriptor.java
@@ -18,7 +18,7 @@
  */
 package org.apache.iotdb.confignode.conf;
 
-import org.apache.iotdb.commons.conf.CommonConfig;
+import org.apache.iotdb.commons.conf.CommonDescriptor;
 import org.apache.iotdb.commons.exception.BadNodeUrlException;
 import org.apache.iotdb.commons.utils.NodeUrlUtils;
 
@@ -35,8 +35,9 @@ import java.util.Properties;
 public class ConfigNodeDescriptor {
   private static final Logger LOGGER = 
LoggerFactory.getLogger(ConfigNodeDescriptor.class);
 
+  private final CommonDescriptor commonDescriptor = 
CommonDescriptor.getInstance();
+
   private final ConfigNodeConf conf = new ConfigNodeConf();
-  private final CommonConfig commonConfig = CommonConfig.getInstance();
 
   private ConfigNodeDescriptor() {
     loadProps();
@@ -46,20 +47,12 @@ public class ConfigNodeDescriptor {
     return conf;
   }
 
-  /** init common config according to iotdb config */
-  private void initCommonConfig() {
-    // first init the user and role folder in common config
-    commonConfig.setUserFolder(conf.getSystemDir() + File.separator + "users");
-    commonConfig.setRoleFolder(conf.getSystemDir() + File.separator + "roles");
-  }
-
   /**
    * get props url location
    *
    * @return url object if location exit, otherwise null.
    */
   public URL getPropsUrl() {
-    initCommonConfig();
     // Check if a config-directory was specified first.
     String urlString = System.getProperty(ConfigNodeConstant.CONFIGNODE_CONF, 
null);
     // If it wasn't, check if a home directory was provided
@@ -98,6 +91,7 @@ public class ConfigNodeDescriptor {
   }
 
   private void loadProps() {
+    commonDescriptor.initCommonConfigDir(conf.getSystemDir());
     URL url = getPropsUrl();
     if (url == null) {
       LOGGER.warn(
@@ -184,10 +178,6 @@ public class ConfigNodeDescriptor {
 
       conf.setConsensusDir(properties.getProperty("consensus_dir", 
conf.getConsensusDir()));
 
-      conf.setDefaultTTL(
-          Long.parseLong(
-              properties.getProperty("default_ttl", 
String.valueOf(conf.getDefaultTTL()))));
-
       conf.setTimePartitionInterval(
           Long.parseLong(
               properties.getProperty(
@@ -213,14 +203,18 @@ public class ConfigNodeDescriptor {
           Integer.parseInt(
               properties.getProperty(
                   "initial_data_region_count", 
String.valueOf(conf.getInitialDataRegionCount()))));
-      commonConfig.setUserFolder(conf.getSystemDir() + File.separator + 
"users");
-      commonConfig.setRoleFolder(conf.getSystemDir() + File.separator + 
"roles");
+
+      // commons
+      commonDescriptor.loadCommonProps(properties);
+      commonDescriptor.initCommonConfigDir(conf.getSystemDir());
 
     } catch (IOException | BadNodeUrlException e) {
       LOGGER.warn("Couldn't load ConfigNode conf file, use default config", e);
     } finally {
       conf.updatePath();
-      
commonConfig.updatePath(System.getProperty(ConfigNodeConstant.CONFIGNODE_HOME, 
null));
+      commonDescriptor
+          .getConfig()
+          .updatePath(System.getProperty(ConfigNodeConstant.CONFIGNODE_HOME, 
null));
     }
   }
 
diff --git 
a/confignode/src/main/java/org/apache/iotdb/confignode/conf/ConfigNodeStartupCheck.java
 
b/confignode/src/main/java/org/apache/iotdb/confignode/conf/ConfigNodeStartupCheck.java
index 8086f608a6..8acdb93bc5 100644
--- 
a/confignode/src/main/java/org/apache/iotdb/confignode/conf/ConfigNodeStartupCheck.java
+++ 
b/confignode/src/main/java/org/apache/iotdb/confignode/conf/ConfigNodeStartupCheck.java
@@ -19,6 +19,7 @@
 package org.apache.iotdb.confignode.conf;
 
 import org.apache.iotdb.common.rpc.thrift.TEndPoint;
+import org.apache.iotdb.commons.conf.CommonDescriptor;
 import org.apache.iotdb.commons.exception.BadNodeUrlException;
 import org.apache.iotdb.commons.exception.ConfigurationException;
 import org.apache.iotdb.commons.exception.StartupException;
@@ -186,7 +187,7 @@ public class ConfigNodeStartupCheck {
             conf.getDataNodeConsensusProtocolClass(),
             conf.getSeriesPartitionSlotNum(),
             conf.getSeriesPartitionExecutorClass(),
-            conf.getDefaultTTL(),
+            CommonDescriptor.getInstance().getConfig().getDefaultTTL(),
             conf.getTimePartitionInterval(),
             conf.getSchemaReplicationFactor(),
             conf.getDataReplicationFactor());
diff --git 
a/confignode/src/main/java/org/apache/iotdb/confignode/manager/ConfigManager.java
 
b/confignode/src/main/java/org/apache/iotdb/confignode/manager/ConfigManager.java
index 9d992c5cf2..d2ba96806a 100644
--- 
a/confignode/src/main/java/org/apache/iotdb/confignode/manager/ConfigManager.java
+++ 
b/confignode/src/main/java/org/apache/iotdb/confignode/manager/ConfigManager.java
@@ -21,6 +21,7 @@ package org.apache.iotdb.confignode.manager;
 
 import org.apache.iotdb.common.rpc.thrift.TSStatus;
 import org.apache.iotdb.common.rpc.thrift.TSeriesPartitionSlot;
+import org.apache.iotdb.commons.conf.CommonDescriptor;
 import org.apache.iotdb.confignode.conf.ConfigNodeConf;
 import org.apache.iotdb.confignode.conf.ConfigNodeDescriptor;
 import org.apache.iotdb.confignode.consensus.request.ConfigRequest;
@@ -410,7 +411,7 @@ public class ConfigManager implements Manager {
               "Reject register, please ensure that the 
series_partition_executor_class are consistent.");
       return errorResp;
     }
-    if (req.getDefaultTTL() != conf.getDefaultTTL()) {
+    if (req.getDefaultTTL() != 
CommonDescriptor.getInstance().getConfig().getDefaultTTL()) {
       errorResp
           .getStatus()
           .setMessage("Reject register, please ensure that the default_ttl are 
consistent.");
diff --git 
a/confignode/src/main/java/org/apache/iotdb/confignode/service/thrift/ConfigNodeRPCServiceProcessor.java
 
b/confignode/src/main/java/org/apache/iotdb/confignode/service/thrift/ConfigNodeRPCServiceProcessor.java
index 47c0f3c03c..6b62898103 100644
--- 
a/confignode/src/main/java/org/apache/iotdb/confignode/service/thrift/ConfigNodeRPCServiceProcessor.java
+++ 
b/confignode/src/main/java/org/apache/iotdb/confignode/service/thrift/ConfigNodeRPCServiceProcessor.java
@@ -20,6 +20,7 @@ package org.apache.iotdb.confignode.service.thrift;
 
 import org.apache.iotdb.common.rpc.thrift.TSStatus;
 import org.apache.iotdb.commons.auth.AuthException;
+import org.apache.iotdb.commons.conf.CommonDescriptor;
 import org.apache.iotdb.commons.utils.TestOnly;
 import org.apache.iotdb.confignode.conf.ConfigNodeDescriptor;
 import org.apache.iotdb.confignode.consensus.request.ConfigRequestType;
@@ -128,7 +129,7 @@ public class ConfigNodeRPCServiceProcessor implements 
ConfigIService.Iface {
 
     // Set default configurations
     if (!storageGroupSchema.isSetTTL()) {
-      
storageGroupSchema.setTTL(ConfigNodeDescriptor.getInstance().getConf().getDefaultTTL());
+      
storageGroupSchema.setTTL(CommonDescriptor.getInstance().getConfig().getDefaultTTL());
     }
     if (!storageGroupSchema.isSetSchemaReplicationFactor()) {
       storageGroupSchema.setSchemaReplicationFactor(
diff --git 
a/integration/src/test/java/org/apache/iotdb/db/integration/IoTDBTtlIT.java 
b/integration/src/test/java/org/apache/iotdb/db/integration/IoTDBTtlIT.java
index bbafee2bc6..0944b0308b 100644
--- a/integration/src/test/java/org/apache/iotdb/db/integration/IoTDBTtlIT.java
+++ b/integration/src/test/java/org/apache/iotdb/db/integration/IoTDBTtlIT.java
@@ -20,7 +20,7 @@
 
 package org.apache.iotdb.db.integration;
 
-import org.apache.iotdb.db.conf.IoTDBDescriptor;
+import org.apache.iotdb.commons.conf.CommonDescriptor;
 import org.apache.iotdb.integration.env.EnvFactory;
 import org.apache.iotdb.itbase.category.ClusterTest;
 import org.apache.iotdb.itbase.category.LocalStandaloneTest;
@@ -191,7 +191,7 @@ public class IoTDBTtlIT {
 
   @Test
   public void testDefaultTTL() throws SQLException {
-    IoTDBDescriptor.getInstance().getConfig().setDefaultTTL(10000);
+    CommonDescriptor.getInstance().getConfig().setDefaultTTL(10000);
     try (Connection connection = EnvFactory.getEnv().getConnection();
         Statement statement = connection.createStatement()) {
       statement.execute("SET STORAGE GROUP TO root.group1");
@@ -202,7 +202,7 @@ public class IoTDBTtlIT {
           result.equals("root.group1,10000\n" + "root.group2,10000\n")
               || result.equals("root.group2,10000\n" + "root.group1,10000\n"));
     } finally {
-      IoTDBDescriptor.getInstance().getConfig().setDefaultTTL(Long.MAX_VALUE);
+      CommonDescriptor.getInstance().getConfig().setDefaultTTL(Long.MAX_VALUE);
     }
   }
 
diff --git 
a/node-commons/src/main/java/org/apache/iotdb/commons/auth/authorizer/BasicAuthorizer.java
 
b/node-commons/src/main/java/org/apache/iotdb/commons/auth/authorizer/BasicAuthorizer.java
index d608fcc1fe..81e04716d4 100644
--- 
a/node-commons/src/main/java/org/apache/iotdb/commons/auth/authorizer/BasicAuthorizer.java
+++ 
b/node-commons/src/main/java/org/apache/iotdb/commons/auth/authorizer/BasicAuthorizer.java
@@ -24,7 +24,7 @@ import org.apache.iotdb.commons.auth.entity.Role;
 import org.apache.iotdb.commons.auth.entity.User;
 import org.apache.iotdb.commons.auth.role.IRoleManager;
 import org.apache.iotdb.commons.auth.user.IUserManager;
-import org.apache.iotdb.commons.conf.CommonConfig;
+import org.apache.iotdb.commons.conf.CommonDescriptor;
 import org.apache.iotdb.commons.exception.StartupException;
 import org.apache.iotdb.commons.service.IService;
 import org.apache.iotdb.commons.service.ServiceType;
@@ -85,9 +85,10 @@ public abstract class BasicAuthorizer implements 
IAuthorizer, IService {
       try {
         c =
             (Class<BasicAuthorizer>)
-                
Class.forName(CommonConfig.getInstance().getAuthorizerProvider());
+                
Class.forName(CommonDescriptor.getInstance().getConfig().getAuthorizerProvider());
         logger.info(
-            "Authorizer provider class: {}", 
CommonConfig.getInstance().getAuthorizerProvider());
+            "Authorizer provider class: {}",
+            
CommonDescriptor.getInstance().getConfig().getAuthorizerProvider());
         instance = c.getDeclaredConstructor().newInstance();
       } catch (Exception e) {
         instance = null;
diff --git 
a/node-commons/src/main/java/org/apache/iotdb/commons/auth/authorizer/LocalFileAuthorizer.java
 
b/node-commons/src/main/java/org/apache/iotdb/commons/auth/authorizer/LocalFileAuthorizer.java
index 99fbae23eb..cf1d8ec56d 100644
--- 
a/node-commons/src/main/java/org/apache/iotdb/commons/auth/authorizer/LocalFileAuthorizer.java
+++ 
b/node-commons/src/main/java/org/apache/iotdb/commons/auth/authorizer/LocalFileAuthorizer.java
@@ -22,10 +22,11 @@ import org.apache.iotdb.commons.auth.AuthException;
 import org.apache.iotdb.commons.auth.role.LocalFileRoleManager;
 import org.apache.iotdb.commons.auth.user.LocalFileUserManager;
 import org.apache.iotdb.commons.conf.CommonConfig;
+import org.apache.iotdb.commons.conf.CommonDescriptor;
 
 public class LocalFileAuthorizer extends BasicAuthorizer {
 
-  private static final CommonConfig config = CommonConfig.getInstance();
+  private static final CommonConfig config = 
CommonDescriptor.getInstance().getConfig();
 
   public LocalFileAuthorizer() throws AuthException {
     super(
diff --git 
a/node-commons/src/main/java/org/apache/iotdb/commons/auth/authorizer/OpenIdAuthorizer.java
 
b/node-commons/src/main/java/org/apache/iotdb/commons/auth/authorizer/OpenIdAuthorizer.java
index 5ec62bc743..32abfd3064 100644
--- 
a/node-commons/src/main/java/org/apache/iotdb/commons/auth/authorizer/OpenIdAuthorizer.java
+++ 
b/node-commons/src/main/java/org/apache/iotdb/commons/auth/authorizer/OpenIdAuthorizer.java
@@ -24,6 +24,7 @@ import org.apache.iotdb.commons.auth.entity.User;
 import org.apache.iotdb.commons.auth.role.LocalFileRoleManager;
 import org.apache.iotdb.commons.auth.user.LocalFileUserManager;
 import org.apache.iotdb.commons.conf.CommonConfig;
+import org.apache.iotdb.commons.conf.CommonDescriptor;
 
 import com.nimbusds.jose.JOSEException;
 import com.nimbusds.jose.jwk.RSAKey;
@@ -57,7 +58,7 @@ public class OpenIdAuthorizer extends BasicAuthorizer {
   public static final String IOTDB_ADMIN_ROLE_NAME = "iotdb_admin";
   public static final String OPENID_USER_PREFIX = "openid-";
 
-  private static final CommonConfig config = CommonConfig.getInstance();
+  private static final CommonConfig config = 
CommonDescriptor.getInstance().getConfig();
 
   private final RSAPublicKey providerKey;
 
diff --git 
a/node-commons/src/main/java/org/apache/iotdb/commons/auth/user/BasicUserManager.java
 
b/node-commons/src/main/java/org/apache/iotdb/commons/auth/user/BasicUserManager.java
index d2dbb6587b..b931632e7b 100644
--- 
a/node-commons/src/main/java/org/apache/iotdb/commons/auth/user/BasicUserManager.java
+++ 
b/node-commons/src/main/java/org/apache/iotdb/commons/auth/user/BasicUserManager.java
@@ -21,7 +21,7 @@ package org.apache.iotdb.commons.auth.user;
 import org.apache.iotdb.commons.auth.AuthException;
 import org.apache.iotdb.commons.auth.entity.User;
 import org.apache.iotdb.commons.concurrent.HashLock;
-import org.apache.iotdb.commons.conf.CommonConfig;
+import org.apache.iotdb.commons.conf.CommonDescriptor;
 import org.apache.iotdb.commons.utils.AuthUtils;
 
 import org.slf4j.Logger;
@@ -66,7 +66,7 @@ public abstract class BasicUserManager implements 
IUserManager {
   private void initAdmin() throws AuthException {
     User admin;
     try {
-      admin = getUser(CommonConfig.getInstance().getAdminName());
+      admin = 
getUser(CommonDescriptor.getInstance().getConfig().getAdminName());
     } catch (AuthException e) {
       logger.warn("Cannot load admin, Creating a new one.", e);
       admin = null;
@@ -74,8 +74,9 @@ public abstract class BasicUserManager implements 
IUserManager {
 
     if (admin == null) {
       createUser(
-          CommonConfig.getInstance().getAdminName(), 
CommonConfig.getInstance().getAdminPassword());
-      setUserUseWaterMark(CommonConfig.getInstance().getAdminName(), false);
+          CommonDescriptor.getInstance().getConfig().getAdminName(),
+          CommonDescriptor.getInstance().getConfig().getAdminPassword());
+      
setUserUseWaterMark(CommonDescriptor.getInstance().getConfig().getAdminName(), 
false);
     }
     logger.info("Admin initialized");
   }
diff --git 
a/node-commons/src/main/java/org/apache/iotdb/commons/conf/CommonConfig.java 
b/node-commons/src/main/java/org/apache/iotdb/commons/conf/CommonConfig.java
index 2583862f75..2b01b2df74 100644
--- a/node-commons/src/main/java/org/apache/iotdb/commons/conf/CommonConfig.java
+++ b/node-commons/src/main/java/org/apache/iotdb/commons/conf/CommonConfig.java
@@ -49,20 +49,15 @@ public class CommonConfig {
   /** Default system file storage is in local file system (unsupported) */
   private FSType systemFileStorageFs = FSType.LOCAL;
 
-  private CommonConfig() {}
+  /**
+   * default TTL for storage groups that are not set TTL by statements, in ms.
+   *
+   * <p>Notice: if this property is changed, previous created storage group 
which are not set TTL
+   * will also be affected. Unit: millisecond
+   */
+  private long defaultTTL = Long.MAX_VALUE;
 
-  public static CommonConfig getInstance() {
-    return CommonConfig.CommonConfigHolder.INSTANCE;
-  }
-
-  private static class CommonConfigHolder {
-
-    private CommonConfigHolder() {
-      throw new IllegalAccessError("Utility class");
-    }
-
-    private static final CommonConfig INSTANCE = new CommonConfig();
-  }
+  CommonConfig() {}
 
   public void updatePath(String homeDir) {
     userFolder = addHomeDir(userFolder, homeDir);
@@ -151,4 +146,12 @@ public class CommonConfig {
   public void setSystemFileStorageFs(FSType systemFileStorageFs) {
     this.systemFileStorageFs = systemFileStorageFs;
   }
+
+  public long getDefaultTTL() {
+    return defaultTTL;
+  }
+
+  public void setDefaultTTL(long defaultTTL) {
+    this.defaultTTL = defaultTTL;
+  }
 }
diff --git 
a/node-commons/src/main/java/org/apache/iotdb/commons/conf/CommonDescriptor.java
 
b/node-commons/src/main/java/org/apache/iotdb/commons/conf/CommonDescriptor.java
new file mode 100644
index 0000000000..59e9cc8def
--- /dev/null
+++ 
b/node-commons/src/main/java/org/apache/iotdb/commons/conf/CommonDescriptor.java
@@ -0,0 +1,81 @@
+/*
+ * 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.
+ */
+
+package org.apache.iotdb.commons.conf;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.io.File;
+import java.util.Properties;
+
+public class CommonDescriptor {
+
+  private static final Logger LOGGER = 
LoggerFactory.getLogger(CommonDescriptor.class);
+
+  private final CommonConfig config = new CommonConfig();
+
+  private CommonDescriptor() {}
+
+  public static CommonDescriptor getInstance() {
+    return CommonDescriptorHolder.INSTANCE;
+  }
+
+  private static class CommonDescriptorHolder {
+
+    private static final CommonDescriptor INSTANCE = new CommonDescriptor();
+
+    private CommonDescriptorHolder() {
+      // empty constructor
+    }
+  }
+
+  public CommonConfig getConfig() {
+    return config;
+  }
+
+  public void initCommonConfigDir(String systemDir) {
+    config.setUserFolder(systemDir + File.separator + "users");
+    config.setRoleFolder(systemDir + File.separator + "roles");
+  }
+
+  public void loadCommonProps(Properties properties) {
+
+    config.setAuthorizerProvider(
+        properties.getProperty("authorizer_provider_class", 
config.getAuthorizerProvider()));
+    // if using org.apache.iotdb.db.auth.authorizer.OpenIdAuthorizer, 
openID_url is needed.
+    config.setOpenIdProviderUrl(
+        properties.getProperty("openID_url", config.getOpenIdProviderUrl()));
+    config.setAdminName(properties.getProperty("admin_name", 
config.getAdminName()));
+
+    config.setAdminPassword(properties.getProperty("admin_password", 
config.getAdminPassword()));
+    config.setEncryptDecryptProvider(
+        properties.getProperty(
+            "iotdb_server_encrypt_decrypt_provider", 
config.getEncryptDecryptProvider()));
+
+    config.setEncryptDecryptProviderParameter(
+        properties.getProperty(
+            "iotdb_server_encrypt_decrypt_provider_parameter",
+            config.getEncryptDecryptProviderParameter()));
+
+    config.setDefaultTTL(
+        Long.parseLong(
+            properties.getProperty("default_ttl", 
String.valueOf(config.getDefaultTTL()))));
+  }
+}
diff --git 
a/node-commons/src/main/java/org/apache/iotdb/commons/file/SystemFileFactory.java
 
b/node-commons/src/main/java/org/apache/iotdb/commons/file/SystemFileFactory.java
index 922d8a1715..bbed0563da 100644
--- 
a/node-commons/src/main/java/org/apache/iotdb/commons/file/SystemFileFactory.java
+++ 
b/node-commons/src/main/java/org/apache/iotdb/commons/file/SystemFileFactory.java
@@ -19,7 +19,7 @@
 
 package org.apache.iotdb.commons.file;
 
-import org.apache.iotdb.commons.conf.CommonConfig;
+import org.apache.iotdb.commons.conf.CommonDescriptor;
 import org.apache.iotdb.tsfile.fileSystem.FSType;
 
 import java.io.File;
@@ -28,7 +28,8 @@ import java.net.URI;
 public enum SystemFileFactory {
   INSTANCE;
 
-  private static FSType fsType = 
CommonConfig.getInstance().getSystemFileStorageFs();
+  private static FSType fsType =
+      CommonDescriptor.getInstance().getConfig().getSystemFileStorageFs();
   private static final String UNSUPPORT_FILE_SYSTEM = "Unsupported file 
system: ";
 
   public File getFile(String pathname) {
diff --git 
a/node-commons/src/main/java/org/apache/iotdb/commons/utils/AuthUtils.java 
b/node-commons/src/main/java/org/apache/iotdb/commons/utils/AuthUtils.java
index 4bb174062c..86773b1762 100644
--- a/node-commons/src/main/java/org/apache/iotdb/commons/utils/AuthUtils.java
+++ b/node-commons/src/main/java/org/apache/iotdb/commons/utils/AuthUtils.java
@@ -21,7 +21,7 @@ package org.apache.iotdb.commons.utils;
 import org.apache.iotdb.commons.auth.AuthException;
 import org.apache.iotdb.commons.auth.entity.PathPrivilege;
 import org.apache.iotdb.commons.auth.entity.PrivilegeType;
-import org.apache.iotdb.commons.conf.CommonConfig;
+import org.apache.iotdb.commons.conf.CommonDescriptor;
 import org.apache.iotdb.commons.conf.IoTDBConstant;
 import org.apache.iotdb.commons.exception.IllegalPathException;
 import org.apache.iotdb.commons.path.PartialPath;
@@ -178,15 +178,15 @@ public class AuthUtils {
    */
   public static String encryptPassword(String password) {
     return AsymmetricEncryptFactory.getEncryptProvider(
-            CommonConfig.getInstance().getEncryptDecryptProvider(),
-            CommonConfig.getInstance().getEncryptDecryptProviderParameter())
+            
CommonDescriptor.getInstance().getConfig().getEncryptDecryptProvider(),
+            
CommonDescriptor.getInstance().getConfig().getEncryptDecryptProviderParameter())
         .encrypt(password);
   }
 
   public static boolean validatePassword(String originPassword, String 
encryptPassword) {
     return AsymmetricEncryptFactory.getEncryptProvider(
-            CommonConfig.getInstance().getEncryptDecryptProvider(),
-            CommonConfig.getInstance().getEncryptDecryptProviderParameter())
+            
CommonDescriptor.getInstance().getConfig().getEncryptDecryptProvider(),
+            
CommonDescriptor.getInstance().getConfig().getEncryptDecryptProviderParameter())
         .validate(originPassword, encryptPassword);
   }
 
diff --git 
a/schema-engine-rocksdb/src/main/java/org/apache/iotdb/db/metadata/schemaregion/rocksdb/mnode/RStorageGroupMNode.java
 
b/schema-engine-rocksdb/src/main/java/org/apache/iotdb/db/metadata/schemaregion/rocksdb/mnode/RStorageGroupMNode.java
index 0ddd2f24bc..e76ab216d8 100644
--- 
a/schema-engine-rocksdb/src/main/java/org/apache/iotdb/db/metadata/schemaregion/rocksdb/mnode/RStorageGroupMNode.java
+++ 
b/schema-engine-rocksdb/src/main/java/org/apache/iotdb/db/metadata/schemaregion/rocksdb/mnode/RStorageGroupMNode.java
@@ -19,9 +19,9 @@
 
 package org.apache.iotdb.db.metadata.schemaregion.rocksdb.mnode;
 
+import org.apache.iotdb.commons.conf.CommonDescriptor;
 import org.apache.iotdb.commons.exception.MetadataException;
 import org.apache.iotdb.confignode.rpc.thrift.TStorageGroupSchema;
-import org.apache.iotdb.db.conf.IoTDBDescriptor;
 import org.apache.iotdb.db.metadata.logfile.MLogWriter;
 import org.apache.iotdb.db.metadata.mnode.IStorageGroupMNode;
 import org.apache.iotdb.db.metadata.schemaregion.rocksdb.RSchemaConstants;
@@ -52,7 +52,7 @@ public class RStorageGroupMNode extends RInternalMNode 
implements IStorageGroupM
     super(fullPath, readWriteHandler);
     Object ttl = RSchemaUtils.parseNodeValue(value, RMNodeValueType.TTL);
     if (ttl == null) {
-      ttl = IoTDBDescriptor.getInstance().getConfig().getDefaultTTL();
+      ttl = CommonDescriptor.getInstance().getConfig().getDefaultTTL();
     }
     this.dataTTL = (long) ttl;
   }
diff --git 
a/server/src/main/java/org/apache/iotdb/db/auth/AuthorityChecker.java 
b/server/src/main/java/org/apache/iotdb/db/auth/AuthorityChecker.java
index a0ea1d8d16..8c73b8542e 100644
--- a/server/src/main/java/org/apache/iotdb/db/auth/AuthorityChecker.java
+++ b/server/src/main/java/org/apache/iotdb/db/auth/AuthorityChecker.java
@@ -22,7 +22,7 @@ import org.apache.iotdb.common.rpc.thrift.TSStatus;
 import org.apache.iotdb.commons.auth.AuthException;
 import org.apache.iotdb.commons.auth.authorizer.AuthorizerManager;
 import org.apache.iotdb.commons.auth.entity.PrivilegeType;
-import org.apache.iotdb.commons.conf.CommonConfig;
+import org.apache.iotdb.commons.conf.CommonDescriptor;
 import org.apache.iotdb.commons.path.PartialPath;
 import org.apache.iotdb.commons.utils.AuthUtils;
 import org.apache.iotdb.confignode.rpc.thrift.TCheckUserPrivilegesReq;
@@ -49,7 +49,8 @@ import static 
org.apache.iotdb.db.utils.ErrorHandlingUtils.onNPEOrUnexpectedExce
 
 public class AuthorityChecker {
 
-  private static final String SUPER_USER = 
CommonConfig.getInstance().getAdminName();
+  private static final String SUPER_USER =
+      CommonDescriptor.getInstance().getConfig().getAdminName();
   private static final Logger logger = 
LoggerFactory.getLogger(AuthorityChecker.class);
 
   private static AuthorizerManager authorizerManager = 
AuthorizerManager.getInstance();
diff --git a/server/src/main/java/org/apache/iotdb/db/conf/IoTDBConfig.java 
b/server/src/main/java/org/apache/iotdb/db/conf/IoTDBConfig.java
index b93929e35f..8cf84cf10c 100644
--- a/server/src/main/java/org/apache/iotdb/db/conf/IoTDBConfig.java
+++ b/server/src/main/java/org/apache/iotdb/db/conf/IoTDBConfig.java
@@ -687,14 +687,6 @@ public class IoTDBConfig {
   /** the default fill interval in LinearFill and PreviousFill, -1 means 
infinite past time */
   private int defaultFillInterval = -1;
 
-  /**
-   * default TTL for storage groups that are not set TTL by statements, in ms.
-   *
-   * <p>Notice: if this property is changed, previous created storage group 
which are not set TTL
-   * will also be affected. Unit: millisecond
-   */
-  private long defaultTTL = Long.MAX_VALUE;
-
   /** The default value of primitive array size in array pool */
   private int primitiveArraySize = 32;
 
@@ -884,6 +876,8 @@ public class IoTDBConfig {
    */
   private int partitionCacheSize = 10000;
 
+  IoTDBConfig() {}
+
   public float getUdfMemoryBudgetInMB() {
     return udfMemoryBudgetInMB;
   }
@@ -2135,14 +2129,6 @@ public class IoTDBConfig {
     this.kerberosPrincipal = kerberosPrincipal;
   }
 
-  public long getDefaultTTL() {
-    return defaultTTL;
-  }
-
-  public void setDefaultTTL(long defaultTTL) {
-    this.defaultTTL = defaultTTL;
-  }
-
   public int getThriftServerAwaitTimeForStopService() {
     return thriftServerAwaitTimeForStopService;
   }
diff --git a/server/src/main/java/org/apache/iotdb/db/conf/IoTDBDescriptor.java 
b/server/src/main/java/org/apache/iotdb/db/conf/IoTDBDescriptor.java
index ca3a13b02a..40b680bfed 100644
--- a/server/src/main/java/org/apache/iotdb/db/conf/IoTDBDescriptor.java
+++ b/server/src/main/java/org/apache/iotdb/db/conf/IoTDBDescriptor.java
@@ -19,7 +19,7 @@
 package org.apache.iotdb.db.conf;
 
 import org.apache.iotdb.common.rpc.thrift.TEndPoint;
-import org.apache.iotdb.commons.conf.CommonConfig;
+import org.apache.iotdb.commons.conf.CommonDescriptor;
 import org.apache.iotdb.commons.conf.IoTDBConstant;
 import org.apache.iotdb.commons.exception.BadNodeUrlException;
 import org.apache.iotdb.commons.utils.NodeUrlUtils;
@@ -66,9 +66,9 @@ public class IoTDBDescriptor {
 
   private static final Logger logger = 
LoggerFactory.getLogger(IoTDBDescriptor.class);
 
-  private final IoTDBConfig conf = new IoTDBConfig();
+  private final CommonDescriptor commonDescriptor = 
CommonDescriptor.getInstance();
 
-  private final CommonConfig commonConfig = CommonConfig.getInstance();
+  private final IoTDBConfig conf = new IoTDBConfig();
 
   protected IoTDBDescriptor() {
     loadProps();
@@ -129,17 +129,10 @@ public class IoTDBDescriptor {
     }
   }
 
-  /** init common config according to iotdb config */
-  private void initCommonConfig() {
-    // first init the user and role folder in common config
-    commonConfig.setUserFolder(conf.getSystemDir() + File.separator + "users");
-    commonConfig.setRoleFolder(conf.getSystemDir() + File.separator + "roles");
-  }
-
   /** load an property file and set TsfileDBConfig variables. */
   @SuppressWarnings("squid:S3776") // Suppress high Cognitive Complexity 
warning
   private void loadProps() {
-    initCommonConfig();
+    commonDescriptor.initCommonConfigDir(conf.getSystemDir());
     URL url = getPropsUrl();
     if (url == null) {
       logger.warn("Couldn't load the configuration from any of the known 
sources.");
@@ -657,10 +650,6 @@ public class IoTDBDescriptor {
       conf.setKerberosPrincipal(
           properties.getProperty("kerberos_principal", 
conf.getKerberosPrincipal()));
 
-      conf.setDefaultTTL(
-          Long.parseLong(
-              properties.getProperty("default_ttl", 
String.valueOf(conf.getDefaultTTL()))));
-
       // the num of memtables in each storage group
       conf.setConcurrentWritingTimePartition(
           Integer.parseInt(
@@ -879,26 +868,9 @@ public class IoTDBDescriptor {
               properties.getProperty("kerberos_principal", 
conf.getKerberosPrincipal()));
       
TSFileDescriptor.getInstance().getConfig().setBatchSize(conf.getBatchSize());
 
-      commonConfig.setAuthorizerProvider(
-          properties.getProperty(
-              "authorizer_provider_class", 
commonConfig.getAuthorizerProvider()));
-      // if using org.apache.iotdb.db.auth.authorizer.OpenIdAuthorizer, 
openID_url is needed.
-      commonConfig.setOpenIdProviderUrl(
-          properties.getProperty("openID_url", 
commonConfig.getOpenIdProviderUrl()));
-      commonConfig.setAdminName(properties.getProperty("admin_name", 
commonConfig.getAdminName()));
-
-      commonConfig.setAdminPassword(
-          properties.getProperty("admin_password", 
commonConfig.getAdminPassword()));
-      commonConfig.setEncryptDecryptProvider(
-          properties.getProperty(
-              "iotdb_server_encrypt_decrypt_provider", 
commonConfig.getEncryptDecryptProvider()));
-
-      commonConfig.setEncryptDecryptProviderParameter(
-          properties.getProperty(
-              "iotdb_server_encrypt_decrypt_provider_parameter",
-              commonConfig.getEncryptDecryptProviderParameter()));
-      commonConfig.setUserFolder(conf.getSystemDir() + File.separator + 
"users");
-      commonConfig.setRoleFolder(conf.getSystemDir() + File.separator + 
"roles");
+      // commons
+      commonDescriptor.loadCommonProps(properties);
+      commonDescriptor.initCommonConfigDir(conf.getSystemDir());
 
       // timed flush memtable
       loadTimedService(properties);
@@ -932,7 +904,7 @@ public class IoTDBDescriptor {
     } finally {
       // update all data seriesPath
       conf.updatePath();
-      commonConfig.updatePath(System.getProperty(IoTDBConstant.IOTDB_HOME, 
null));
+      
commonDescriptor.getConfig().updatePath(System.getProperty(IoTDBConstant.IOTDB_HOME,
 null));
     }
   }
 
diff --git 
a/server/src/main/java/org/apache/iotdb/db/metadata/mtree/MTreeAboveSG.java 
b/server/src/main/java/org/apache/iotdb/db/metadata/mtree/MTreeAboveSG.java
index 2c13a2139b..e63b30146f 100644
--- a/server/src/main/java/org/apache/iotdb/db/metadata/mtree/MTreeAboveSG.java
+++ b/server/src/main/java/org/apache/iotdb/db/metadata/mtree/MTreeAboveSG.java
@@ -19,18 +19,16 @@
 
 package org.apache.iotdb.db.metadata.mtree;
 
+import org.apache.iotdb.commons.conf.CommonDescriptor;
 import org.apache.iotdb.commons.conf.IoTDBConstant;
 import org.apache.iotdb.commons.exception.IllegalPathException;
 import org.apache.iotdb.commons.exception.MetadataException;
 import org.apache.iotdb.commons.path.PartialPath;
 import org.apache.iotdb.commons.utils.ThriftConfigNodeSerDeUtils;
-import org.apache.iotdb.db.conf.IoTDBDescriptor;
-import org.apache.iotdb.db.exception.metadata.MNodeTypeMismatchException;
 import org.apache.iotdb.db.exception.metadata.PathAlreadyExistException;
 import org.apache.iotdb.db.exception.metadata.StorageGroupAlreadySetException;
 import org.apache.iotdb.db.exception.metadata.StorageGroupNotSetException;
 import org.apache.iotdb.db.metadata.LocalSchemaProcessor;
-import org.apache.iotdb.db.metadata.MetadataConstant;
 import org.apache.iotdb.db.metadata.mnode.IMNode;
 import org.apache.iotdb.db.metadata.mnode.IStorageGroupMNode;
 import org.apache.iotdb.db.metadata.mnode.InternalMNode;
@@ -136,7 +134,7 @@ public class MTreeAboveSG {
         }
         IStorageGroupMNode storageGroupMNode =
             new StorageGroupMNode(
-                cur, nodeNames[i], 
IoTDBDescriptor.getInstance().getConfig().getDefaultTTL());
+                cur, nodeNames[i], 
CommonDescriptor.getInstance().getConfig().getDefaultTTL());
 
         IMNode result = store.addChild(cur, nodeNames[i], storageGroupMNode);
 
@@ -356,8 +354,7 @@ public class MTreeAboveSG {
     if (cur.isStorageGroup()) {
       return cur.getAsStorageGroupMNode();
     } else {
-      throw new MNodeTypeMismatchException(
-          storageGroupPath.getFullPath(), 
MetadataConstant.STORAGE_GROUP_MNODE_TYPE);
+      throw new 
StorageGroupAlreadySetException(storageGroupPath.getFullPath(), true);
     }
   }
 
diff --git 
a/server/src/main/java/org/apache/iotdb/db/metadata/mtree/store/MemMTreeStore.java
 
b/server/src/main/java/org/apache/iotdb/db/metadata/mtree/store/MemMTreeStore.java
index 3e717cbeaa..9cf7ee1308 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/metadata/mtree/store/MemMTreeStore.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/metadata/mtree/store/MemMTreeStore.java
@@ -18,9 +18,9 @@
  */
 package org.apache.iotdb.db.metadata.mtree.store;
 
+import org.apache.iotdb.commons.conf.CommonDescriptor;
 import org.apache.iotdb.commons.conf.IoTDBConstant;
 import org.apache.iotdb.commons.path.PartialPath;
-import org.apache.iotdb.db.conf.IoTDBDescriptor;
 import org.apache.iotdb.db.metadata.mnode.IEntityMNode;
 import org.apache.iotdb.db.metadata.mnode.IMNode;
 import org.apache.iotdb.db.metadata.mnode.IMeasurementMNode;
@@ -50,7 +50,7 @@ public class MemMTreeStore implements IMTreeStore {
           new StorageGroupMNode(
               null,
               rootPath.getTailNode(),
-              IoTDBDescriptor.getInstance().getConfig().getDefaultTTL());
+              CommonDescriptor.getInstance().getConfig().getDefaultTTL());
     } else {
       this.root = new InternalMNode(null, IoTDBConstant.PATH_ROOT);
     }
diff --git 
a/server/src/main/java/org/apache/iotdb/db/metadata/mtree/store/disk/schemafile/MockSchemaFile.java
 
b/server/src/main/java/org/apache/iotdb/db/metadata/mtree/store/disk/schemafile/MockSchemaFile.java
index e43d09456c..91218a9097 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/metadata/mtree/store/disk/schemafile/MockSchemaFile.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/metadata/mtree/store/disk/schemafile/MockSchemaFile.java
@@ -18,8 +18,8 @@
  */
 package org.apache.iotdb.db.metadata.mtree.store.disk.schemafile;
 
+import org.apache.iotdb.commons.conf.CommonDescriptor;
 import org.apache.iotdb.commons.path.PartialPath;
-import org.apache.iotdb.db.conf.IoTDBDescriptor;
 import org.apache.iotdb.db.metadata.mnode.EntityMNode;
 import org.apache.iotdb.db.metadata.mnode.IEntityMNode;
 import org.apache.iotdb.db.metadata.mnode.IMNode;
@@ -59,7 +59,7 @@ public class MockSchemaFile implements ISchemaFile {
         new StorageGroupMNode(
             null,
             storageGroupPath.getTailNode(),
-            IoTDBDescriptor.getInstance().getConfig().getDefaultTTL());
+            CommonDescriptor.getInstance().getConfig().getDefaultTTL());
     writeMNode(storageGroupMNode);
     return cloneMNode(storageGroupMNode);
   }
diff --git 
a/server/src/main/java/org/apache/iotdb/db/metadata/mtree/store/disk/schemafile/SchemaFile.java
 
b/server/src/main/java/org/apache/iotdb/db/metadata/mtree/store/disk/schemafile/SchemaFile.java
index c0fe9019ef..37415c4725 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/metadata/mtree/store/disk/schemafile/SchemaFile.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/metadata/mtree/store/disk/schemafile/SchemaFile.java
@@ -18,6 +18,7 @@
  */
 package org.apache.iotdb.db.metadata.mtree.store.disk.schemafile;
 
+import org.apache.iotdb.commons.conf.CommonDescriptor;
 import org.apache.iotdb.commons.exception.MetadataException;
 import org.apache.iotdb.commons.file.SystemFileFactory;
 import org.apache.iotdb.commons.utils.PathUtils;
@@ -187,7 +188,7 @@ public class SchemaFile implements ISchemaFile {
         sgName,
         schemaRegionId,
         true,
-        IoTDBDescriptor.getInstance().getConfig().getDefaultTTL(),
+        CommonDescriptor.getInstance().getConfig().getDefaultTTL(),
         false);
   }
 
diff --git 
a/server/src/main/java/org/apache/iotdb/db/qp/executor/PlanExecutor.java 
b/server/src/main/java/org/apache/iotdb/db/qp/executor/PlanExecutor.java
index 4da54921cb..d44fe2dab5 100644
--- a/server/src/main/java/org/apache/iotdb/db/qp/executor/PlanExecutor.java
+++ b/server/src/main/java/org/apache/iotdb/db/qp/executor/PlanExecutor.java
@@ -27,7 +27,7 @@ import org.apache.iotdb.commons.auth.entity.Role;
 import org.apache.iotdb.commons.auth.entity.User;
 import org.apache.iotdb.commons.concurrent.IoTDBThreadPoolFactory;
 import org.apache.iotdb.commons.concurrent.ThreadName;
-import org.apache.iotdb.commons.conf.CommonConfig;
+import org.apache.iotdb.commons.conf.CommonDescriptor;
 import org.apache.iotdb.commons.conf.IoTDBConstant;
 import org.apache.iotdb.commons.exception.IllegalPathException;
 import org.apache.iotdb.commons.exception.MetadataException;
@@ -2332,7 +2332,7 @@ public class PlanExecutor implements IPlanExecutor {
     List<PartialPath> headerList = new ArrayList<>();
     List<TSDataType> typeList = new ArrayList<>();
     int index = 0;
-    if (CommonConfig.getInstance().equals(userName)) {
+    if 
(CommonDescriptor.getInstance().getConfig().getAdminName().equals(userName)) {
       headerList.add(new PartialPath(COLUMN_PRIVILEGE, false));
       typeList.add(TSDataType.TEXT);
       ListDataSet dataSet = new ListDataSet(headerList, typeList);
diff --git 
a/server/src/main/java/org/apache/iotdb/db/qp/physical/crud/InsertMultiTabletsPlan.java
 
b/server/src/main/java/org/apache/iotdb/db/qp/physical/crud/InsertMultiTabletsPlan.java
index 04067b04c4..c649fb1633 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/qp/physical/crud/InsertMultiTabletsPlan.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/qp/physical/crud/InsertMultiTabletsPlan.java
@@ -22,7 +22,6 @@ import org.apache.iotdb.common.rpc.thrift.TSStatus;
 import org.apache.iotdb.commons.exception.IllegalPathException;
 import org.apache.iotdb.commons.path.PartialPath;
 import org.apache.iotdb.commons.utils.StatusUtils;
-import org.apache.iotdb.db.conf.IoTDBConfig;
 import org.apache.iotdb.db.conf.IoTDBDescriptor;
 import org.apache.iotdb.db.exception.query.QueryProcessException;
 import org.apache.iotdb.db.qp.logical.Operator.OperatorType;
@@ -396,7 +395,8 @@ public class InsertMultiTabletsPlan extends InsertPlan 
implements BatchPlan {
   public int getDifferentStorageGroupsCount() {
     if (differentStorageGroupsCount == null) {
       Set<String> insertPlanSGSet = new HashSet<>();
-      int defaultStorageGroupLevel = new 
IoTDBConfig().getDefaultStorageGroupLevel();
+      int defaultStorageGroupLevel =
+          
IoTDBDescriptor.getInstance().getConfig().getDefaultStorageGroupLevel();
       for (InsertTabletPlan insertTabletPlan : insertTabletPlanList) {
         String[] nodes = insertTabletPlan.getDevicePath().getNodes();
         StringBuilder stringBuilder = new StringBuilder();
diff --git 
a/server/src/test/java/org/apache/iotdb/db/auth/authorizer/LocalFileAuthorizerTest.java
 
b/server/src/test/java/org/apache/iotdb/db/auth/authorizer/LocalFileAuthorizerTest.java
index 660835cc4f..e111634194 100644
--- 
a/server/src/test/java/org/apache/iotdb/db/auth/authorizer/LocalFileAuthorizerTest.java
+++ 
b/server/src/test/java/org/apache/iotdb/db/auth/authorizer/LocalFileAuthorizerTest.java
@@ -23,7 +23,7 @@ import 
org.apache.iotdb.commons.auth.authorizer.BasicAuthorizer;
 import org.apache.iotdb.commons.auth.authorizer.IAuthorizer;
 import org.apache.iotdb.commons.auth.entity.Role;
 import org.apache.iotdb.commons.auth.entity.User;
-import org.apache.iotdb.commons.conf.CommonConfig;
+import org.apache.iotdb.commons.conf.CommonDescriptor;
 import org.apache.iotdb.db.utils.EnvironmentUtils;
 
 import org.junit.After;
@@ -256,7 +256,7 @@ public class LocalFileAuthorizerTest {
     IAuthorizer authorizer = BasicAuthorizer.getInstance();
     List<String> userList = authorizer.listAllUsers();
     assertEquals(1, userList.size());
-    assertEquals(CommonConfig.getInstance().getAdminName(), userList.get(0));
+    assertEquals(CommonDescriptor.getInstance().getConfig().getAdminName(), 
userList.get(0));
 
     int userCnt = 10;
     for (int i = 0; i < userCnt; i++) {
diff --git 
a/server/src/test/java/org/apache/iotdb/db/auth/authorizer/OpenIdAuthorizerTest.java
 
b/server/src/test/java/org/apache/iotdb/db/auth/authorizer/OpenIdAuthorizerTest.java
index 839dd9e04a..c6b1e6f28f 100644
--- 
a/server/src/test/java/org/apache/iotdb/db/auth/authorizer/OpenIdAuthorizerTest.java
+++ 
b/server/src/test/java/org/apache/iotdb/db/auth/authorizer/OpenIdAuthorizerTest.java
@@ -21,6 +21,7 @@ package org.apache.iotdb.db.auth.authorizer;
 import org.apache.iotdb.commons.auth.AuthException;
 import org.apache.iotdb.commons.auth.authorizer.OpenIdAuthorizer;
 import org.apache.iotdb.commons.conf.CommonConfig;
+import org.apache.iotdb.commons.conf.CommonDescriptor;
 
 import com.nimbusds.oauth2.sdk.ParseException;
 import com.nimbusds.oauth2.sdk.util.JSONObjectUtils;
@@ -37,7 +38,7 @@ public class OpenIdAuthorizerTest {
 
   private static final String OPEN_ID_PUBLIC_JWK =
       
"{\"kty\":\"RSA\",\"x5t#S256\":\"TZFbbj6HsRU28HYvrcVnDs03KreV3DE24-Cxb9EPdS4\",\"e\":\"AQAB\",\"use\":\"sig\",\"x5t\":\"l_N2UlC_a624iu5eYFypnB1Wr20\",\"kid\":\"q1-Wm0ozQ5O0mQH8-SJap2ZcN4MmucWwnQWKYxZJ4ow\",\"x5c\":[\"MIICmTCCAYECBgFyRdXW2DANBgkqhkiG9w0BAQsFADAQMQ4wDAYDVQQDDAVJb1REQjAeFw0yMDA1MjQwODM3MjJaFw0zMDA1MjQwODM5MDJaMBAxDjAMBgNVBAMMBUlvVERCMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAozDCZTVc9946VvhZ6E\\/OP8Yx6tJe0i9GR2Q9jR9S3jQoo0haT\\/P1b\\/zvQK52qA1xj6tBVg64xl3+LUxtCvh3HfA
 [...]
-  private static final CommonConfig config = CommonConfig.getInstance();
+  private static final CommonConfig config = 
CommonDescriptor.getInstance().getConfig();
 
   @Test
   public void loginWithJWT() throws AuthException, ParseException {
diff --git 
a/server/src/test/java/org/apache/iotdb/db/auth/user/LocalFileUserManagerTest.java
 
b/server/src/test/java/org/apache/iotdb/db/auth/user/LocalFileUserManagerTest.java
index f6f325275d..87cf266a4b 100644
--- 
a/server/src/test/java/org/apache/iotdb/db/auth/user/LocalFileUserManagerTest.java
+++ 
b/server/src/test/java/org/apache/iotdb/db/auth/user/LocalFileUserManagerTest.java
@@ -22,7 +22,7 @@ import org.apache.iotdb.commons.auth.AuthException;
 import org.apache.iotdb.commons.auth.entity.PathPrivilege;
 import org.apache.iotdb.commons.auth.entity.User;
 import org.apache.iotdb.commons.auth.user.LocalFileUserManager;
-import org.apache.iotdb.commons.conf.CommonConfig;
+import org.apache.iotdb.commons.conf.CommonDescriptor;
 import org.apache.iotdb.commons.utils.AuthUtils;
 import org.apache.iotdb.db.constant.TestConstant;
 import org.apache.iotdb.db.utils.EnvironmentUtils;
@@ -211,7 +211,7 @@ public class LocalFileUserManagerTest {
     // list users
     List<String> usernames = manager.listAllUsers();
     usernames.sort(null);
-    assertEquals(CommonConfig.getInstance().getAdminName(), usernames.get(0));
+    assertEquals(CommonDescriptor.getInstance().getConfig().getAdminName(), 
usernames.get(0));
     for (int i = 0; i < users.length - 1; i++) {
       assertEquals(users[i].getName(), usernames.get(i + 1));
     }
diff --git 
a/server/src/test/java/org/apache/iotdb/db/security/encrypt/MessageDigestEncryptTest.java
 
b/server/src/test/java/org/apache/iotdb/db/security/encrypt/MessageDigestEncryptTest.java
index 3a9ba1588a..442f5ec7e1 100644
--- 
a/server/src/test/java/org/apache/iotdb/db/security/encrypt/MessageDigestEncryptTest.java
+++ 
b/server/src/test/java/org/apache/iotdb/db/security/encrypt/MessageDigestEncryptTest.java
@@ -22,7 +22,7 @@ import org.apache.iotdb.commons.auth.AuthException;
 import org.apache.iotdb.commons.auth.entity.PathPrivilege;
 import org.apache.iotdb.commons.auth.entity.User;
 import org.apache.iotdb.commons.auth.user.LocalFileUserManager;
-import org.apache.iotdb.commons.conf.CommonConfig;
+import org.apache.iotdb.commons.conf.CommonDescriptor;
 import org.apache.iotdb.commons.security.encrypt.MessageDigestEncrypt;
 import org.apache.iotdb.db.constant.TestConstant;
 import org.apache.iotdb.db.utils.EnvironmentUtils;
@@ -48,7 +48,7 @@ public class MessageDigestEncryptTest {
 
   @Before
   public void setUp() throws Exception {
-    CommonConfig.getInstance().setEncryptDecryptProvider(providerClass);
+    
CommonDescriptor.getInstance().getConfig().setEncryptDecryptProvider(providerClass);
     EnvironmentUtils.envSetUp();
     testFolder = new File(TestConstant.BASE_OUTPUT_PATH.concat("test"));
     testFolder.mkdirs();

Reply via email to