public void updateLocalProperties(boolean reset, Map<String, Object> propertiesForUpdating) {
        TurmsProperties newLocalProperties;
        JsonNode newPropertiesJsonNode;
        if (reset) {
            newLocalProperties = DEFAULT_PROPERTIES;
            newPropertiesJsonNode = DEFAULT_PROPERTIES_JSON_NODE;
        } else {
            if (propertiesForUpdating == null || propertiesForUpdating.isEmpty()) {
                return;
            }
            InvalidPropertyException exception =
                    validatePropertiesForUpdating(DEFAULT_PROPERTIES, propertiesForUpdating);
            if (exception != null) {
                throw ResponseException.get(ResponseStatusCode.ILLEGAL_ARGUMENT, exception);
            }
            newPropertiesJsonNode = toJsonNode(propertiesForUpdating);
            newLocalProperties = mergeProperties(getGlobalProperties(), newPropertiesJsonNode);
            exception = validate(newLocalProperties);
            if (exception != null) {
                throw ResponseException.get(ResponseStatusCode.ILLEGAL_ARGUMENT, exception);
            }
        }
        try {
            localTurmsProperties = newLocalProperties;
            persist(latestConfigFilePath, newPropertiesJsonNode);
        } catch (IOException e) {
            LOGGER.error("Failed to persist new turms properties", e);
        }
        notifyLocalPropertiesChangeListeners(newLocalProperties);
    }
Use the instance of TurmsPropertiesManager instead of TurmsProperties instance so that we can
update the global TurmsProperties instance easily by replacing its reference
turms-server-common/src/main/java/im/turms/server/common/infra/property/TurmsPropertiesManager.java