Class KbextSettings

java.lang.Object
ru.bitel.bgbilling.plugins.kbext.server.bean.KbextSettings

public final class KbextSettings extends Object
Чтение настроек плагина «Базы знаний (расширения)»: значение из конфигурации плагина, а при его отсутствии — значение по умолчанию из KbextSetupKeys.

Первое поведение класса: у незарегистрированного или выключенного плагина getPlugin() даёт null, и читать нечего, поэтому отдаются дефолты.

Сам класс ничего не кэширует: значение спрашивается у плагина на каждый вызов. Но Preferences держит сам BGPluginServer, и он обновляется только когда конфигурацию сохраняют через сервер (админка плагинов, программный вызов) — тогда следующий запрос видит новое значение без перезапуска. Правка таблицы plugin_config напрямую в обход сервера не видна до перезапуска, поэтому проверка «а вдруг значение поменялось» выполняется на живом сервере, а не по строке в базе.

Откуда берётся плагин, решает поле pluginSource: в сервере это менеджер плагинов. Подмена нужна в юнит-тестах: BGPluginManagerServer при первом обращении требует окружение ядра, которого в тестах нет, а проверять надо обе ветки — «плагина нет» и «плагин есть, значения из конфигурации».

  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final int
    uid плагина, когда плагин не зарегистрирован.
  • Method Summary

    Modifier and Type
    Method
    Description
    static boolean
    Значение настройки как признак; нераспознанная строка — false.
    static int
    Значение настройки как целое; нераспознанная строка — 0.
    static long
    Значение настройки как длинное целое; нераспознанная строка — 0.
    static int
    Идентификатор установленного модуля плагина — тот самый uid из installed_modules.
    static String
    Значение настройки текстом; null, если нет ни значения, ни дефолта.
    static List<String>
    Значение настройки как список строк через запятую — так задаётся kbext.webui.allowed.roles.
    static boolean
    Включена ли синхронизация/авторинг плагина общей настройкой kbext.sync.enabled.
    static boolean
    Зарегистрирован ли плагин в менеджере плагинов.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • NO_PLUGIN_UID

      public static final int NO_PLUGIN_UID
      uid плагина, когда плагин не зарегистрирован.
      See Also:
  • Method Details

    • isPluginRegistered

      public static boolean isPluginRegistered()
      Зарегистрирован ли плагин в менеджере плагинов.
    • getPluginUid

      public static int getPluginUid()
      Идентификатор установленного модуля плагина — тот самый uid из installed_modules. Ноль здесь означал бы чужие данные, поэтому при незарегистрированном плагине отдаётся NO_PLUGIN_UID.
    • isEnabled

      public static boolean isEnabled()
      Включена ли синхронизация/авторинг плагина общей настройкой kbext.sync.enabled.
    • getString

      public static String getString(KbextSetupKeys key)
      Значение настройки текстом; null, если нет ни значения, ни дефолта.
      Parameters:
      key - настройка; null не допускается и даёт null
    • getBoolean

      public static boolean getBoolean(KbextSetupKeys key)
      Значение настройки как признак; нераспознанная строка — false.
    • getInt

      public static int getInt(KbextSetupKeys key)
      Значение настройки как целое; нераспознанная строка — 0.
    • getLong

      public static long getLong(KbextSetupKeys key)
      Значение настройки как длинное целое; нераспознанная строка — 0.
    • getStringList

      public static List<String> getStringList(KbextSetupKeys key)
      Значение настройки как список строк через запятую — так задаётся kbext.webui.allowed.roles. Пустые элементы пропускаются, а настроек нет вовсе — возвращается пустой список, а не null.