Package top.wcpe.beacon.agent.api
Interface EffectiveConfig
public interface EffectiveConfig
有效配置只读视图。
返回的是控制面按 scope 覆盖链「合并后」的最终文本,业务插件无需关心
global/group/zone/server 分层。MVP 仅暴露原始文本(raw(String)),
不做点分路径取值。
-
Method Summary
Modifier and TypeMethodDescriptiondataIds()列出当前所有有效配置项的 dataId。取某 dataId 的格式(yaml / properties / json);不存在返回空。取某 dataId 的单项 md5;不存在返回空。default ListenerHandleonChange(String pathPrefix, ConfigChangeListener listener) 注册**按 dataId 路径前缀过滤**的有效配置变更监听。onChange(ConfigChangeListener listener) 注册有效配置变更监听(apply 后回调,携带变更的 dataId 集合)。取某 dataId 的合并后原始文本;不存在返回空。
-
Method Details
-
dataIds
列出当前所有有效配置项的 dataId。 -
raw
取某 dataId 的合并后原始文本;不存在返回空。 -
format
取某 dataId 的格式(yaml / properties / json);不存在返回空。 -
md5
取某 dataId 的单项 md5;不存在返回空。 -
onChange
注册有效配置变更监听(apply 后回调,携带变更的 dataId 集合)。等价于
onChange(null, listener):不过滤,任何 dataId 变更都会回调。 想只被自己目录下的变更唤醒,用带前缀的onChange(String, ConfigChangeListener)。- Returns:
- 可注销句柄
-
onChange
注册**按 dataId 路径前缀过滤**的有效配置变更监听。语义:仅当本次变更的 dataId 集合中**存在以
pathPrefix开头的项**时才回调该监听器; 不相关就根本不调用(不是「调用了让你自己判断」——那正是本重载要消除的无谓唤醒)。 回调收到的changedDataIds也**只含匹配的项**,插件无需再自行遍历筛选。pathPrefix为null或空串时等于不过滤,行为与onChange(ConfigChangeListener)完全一致。前缀请以
/结尾(如plugins/Foo/):这是字符串前缀匹配, 写plugins/Foo会连plugins/Foo2/config.yml一起命中。 匹配规则见DataIdPrefix。为什么是新增重载而不是改老签名:老签名被既有插件按
ConfigChangeListener单参调用,改签名会破坏其二进制兼容。故本方法用default提供降级实现—— 未实现过滤能力的旧 agent 会退化为「不过滤」(多几次无关唤醒,无正确性风险), 新 agent 则真正跳过不相关派发。- Parameters:
pathPrefix- 过滤前缀(如plugins/Foo/);null或空串表示不过滤listener- 变更回调- Returns:
- 可注销句柄
-