@Override
  public void readExternal(final @NotNull Element rootChild, final @NotNull String childName, boolean externalizeJarDirectories) throws InvalidDataException {
    final List<Element> urls = rootChild.getChildren(childName);
    addAll(ContainerUtil.map(urls, url -> url.getAttributeValue(URL_ATTR)));
    if (externalizeJarDirectories) {
      List<Element> jarDirs = rootChild.getChildren(JAR_DIRECTORY_ELEMENT);
      for (Element jarDir : jarDirs) {
        String url = jarDir.getAttributeValue(URL_ATTR);
        if (url == null) throw new InvalidDataException("path element without url: " + JDOMUtil.getValue(jarDir));
        boolean recursive = Boolean.parseBoolean(jarDir.getAttributeValue(RECURSIVE_ATTR, "false"));
        addJarDirectory(url, recursive);
      }
    }
  }
@Override
  public void readExternal(final @NotNull Element rootChild, final @NotNull String childName, boolean externalizeJarDirectories)