Class McpSettings
McpSetupKeys.
Первое поведение класса: у незарегистрированного или выключенного плагина
getPlugin() даёт null, и читать нечего, поэтому отдаются дефолты.
У mcp.enable дефолт — false, то есть выключенный плагин
отвечает 503, а не падает с NullPointerException.
Сам класс ничего не кэширует: значение спрашивается у плагина на каждый
вызов. Но Preferences держит сам BGPluginServer, и он
обновляется только когда конфигурацию сохраняют через сервер (админка,
программный вызов) — тогда следующий запрос видит новое значение без
перезапуска. Правка таблицы plugin_config напрямую в обход
сервера не видна до перезапуска, и это проверено на стенде 06.10.2026:
после UPDATE plugin_config SET config=... значения оставались
дефолтными, пока сервер не перезапустили. Своё ошибочное прочтение этого
места стоило одной неверной проверки, поэтому утверждение зафиксировано
здесь явно.
Откуда берётся плагин, решает поле pluginSource: в сервере это
менеджер плагинов. Подмена нужна потому, что BGPluginManagerServer
при первом обращении требует EventProcessor, а его в юнит-тестах нет:
без шва проверять поведение настроек было бы нечем, а проверять надо обе
ветки — «плагина нет» и «плагин есть, значения из конфигурации».
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final intuid плагина, когда плагин не зарегистрирован. -
Method Summary
Modifier and TypeMethodDescriptionstatic booleangetBoolean(McpSetupKeys key) Значение настройки как признак; нераспознанная строка — false.static intgetInt(McpSetupKeys key) Значение настройки как целое; нераспознанная строка — 0.static longgetLong(McpSetupKeys key) Значение настройки как длинное целое; нераспознанная строка — 0.static intИдентификатор установленного модуля плагина — тот самый$mid, который раньше шифровался в именах таблиц, а теперь нужен только для установок самого плагина и для журнала.static StringgetString(McpSetupKeys key) Значение настройки текстом; null, если нет ни значения, ни дефолта.Значение настройки как список строк через запятую — так задаётсяmcp.origin.allowed.static booleanВключён ли MCP общей настройкойmcp.enable.static booleanЗарегистрирован ли плагин в менеджере плагинов.
-
Field Details
-
NO_PLUGIN_UID
public static final int NO_PLUGIN_UIDuid плагина, когда плагин не зарегистрирован.- See Also:
-
-
Method Details
-
isPluginRegistered
public static boolean isPluginRegistered()Зарегистрирован ли плагин в менеджере плагинов. -
getPluginUid
public static int getPluginUid()Идентификатор установленного модуля плагина — тот самый$mid, который раньше шифровался в именах таблиц, а теперь нужен только для установок самого плагина и для журнала. Ноль здесь означал бы чужие данные, поэтому при незарегистрированном плагине отдаётсяNO_PLUGIN_UID. -
isEnabled
public static boolean isEnabled()Включён ли MCP общей настройкойmcp.enable. -
getString
Значение настройки текстом; null, если нет ни значения, ни дефолта.- Parameters:
key- настройка; null не допускается и даёт null
-
getBoolean
Значение настройки как признак; нераспознанная строка — false. -
getInt
Значение настройки как целое; нераспознанная строка — 0. -
getLong
Значение настройки как длинное целое; нераспознанная строка — 0. -
getStringList
Значение настройки как список строк через запятую — так задаётсяmcp.origin.allowed. Пустые элементы пропускаются, а настроек нет вовсе — возвращается пустой список, а не null.
-