class DefaultMetaDataProvider implements MetadataProvider {

    @Override
    public Map<String, String> getMetaData(String property) {
        long configHash = Objects.hash(context.getPropertySources().toArray());
        if(configHash!=lastHash.get()){
            lastHash.set(configHash);
            propertyCache = loadMetaProperties();
        }
        Map<String, String> meta = propertyCache.get(property);
        if(meta==null){
            return Collections.emptyMap();
        }
        return Collections.unmodifiableMap(meta);
    }

}