docs: private void convertStoragePathValue(
              final Map<String, String> data,
              final StorageTree storageTree,
              final String name,
              final String propValue,
              final Map<String, Object> renderingOptions
      ) throws ConfigurationException
      {
          //a storage path property
          String root = null;
          if (null != renderingOptions.get( StringRenderingConstants.STORAGE_PATH_ROOT_KEY)) {
              root = renderingOptions.get(StringRenderingConstants.STORAGE_PATH_ROOT_KEY).toString();
          }
          String filter = null;
          if (null != renderingOptions.get(StringRenderingConstants.STORAGE_FILE_META_FILTER_KEY)) {
              filter = renderingOptions.get(StringRenderingConstants.STORAGE_FILE_META_FILTER_KEY).toString();
          }
          boolean clearValue = isValueConversionFailureRemove(renderingOptions);
          if (null != root && !PathUtil.hasRoot(propValue, root)) {
              if(clearValue) {
                  data.remove(name);
              }
              return;
          }
          try {
              Resource<ResourceMeta> resource = storageTree.getResource(propValue);
              ResourceMeta contents = resource.getContents();
              //test filter
              if (filter != null) {
                  String[] filterComponents = filter.split("=", 2);
                  if (filterComponents.length == 2) {
                      String key = filterComponents[0];
                      String test = filterComponents[1];
                      Map<String, String> meta = contents.getMeta();
                      if (meta == null || !test.equals(meta.get(key))) {
                          if(clearValue) {
                              data.remove(name);
                          }
                          return;
                      }
                  }
              }
              //finally load storage contents into a string
              ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
              contents.writeContent(byteArrayOutputStream);
              data.put(name, new String(byteArrayOutputStream.toByteArray()));
          } catch (StorageException | IOException e) {
              if(clearValue) {
                  data.remove(name);
                  return;
              }
              throw new ConfigurationException("Unable to load configuration key '" +
                      name + "' value from storage path:  " + propValue, e);
          }
      }