class ZookeeperDynamicConfiguration implements DynamicConfiguration {

    @Override
    public String getConfig(String key, String group, long timeout) throws IllegalStateException {
        // when group is not null, we are getting startup configs from Config Center
        // for example, group=dubbo, key=dubbo.properties
        if (StringUtils.isNotEmpty(group)) {
            key = group + "/" + key;
        }
        // when group is null, we are fetching governance rules.
        // for example, key=org.apache.dubbo.DemoService.configurators
        else {
            int i = key.lastIndexOf(".");
            key = key.substring(0, i) + "/" + key.substring(i + 1);
        }

        return (String) getInternalProperty(rootPath + "/" + key);
    }

      ZookeeperDynamicConfiguration(URL url);

}