private void initDataListener()

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);
    }