in appactive-java-client/client-rule/src/main/java/io/appactive/rule/peoperty/db/DataScopeRuleServiceImpl.java [74:99]
private void initDataListener(String scopeKey) {
String uri = RESOURCES_URI + ClientChannelService.getSubKeySplit() + scopeKey;
ConverterInterface<String, String> ruleConverterInterface = (source) -> JSON.parseObject(source,new TypeReference<String>() {});
ConfigReadDataSource<String> readDataSource = ClientChannelService.getConfigReadDataSource(uri,ruleConverterInterface);
DataListener<String> listener =new DataListener<String>() {
@Override
public String getListenerName() {
return "DataScope-Listener-"+this.hashCode();
}
@Override
public void dataChanged(String oldData, String newData) {
if (StringUtils.isBlank(newData)){
existScopeKeySet.remove(scopeKey);
return;
}
// exist
existScopeKeySet.add(scopeKey);
}
};
readDataSource.addDataChangedListener(listener);
haveInitScopeKeySet.add(scopeKey);
}