public void readClasspath(
     JpsModule model,
     final String testPattern,
     Element classpathElement,
     JpsMacroExpander expander)
     throws IOException {
   LOG.debug("start loading classpath for " + model.getName());
   final HashSet<String> libs = new HashSet<String>();
   for (Object o : classpathElement.getChildren(EclipseXml.CLASSPATHENTRY_TAG)) {
     try {
       readClasspathEntry(
           model,
           new ArrayList<String>(),
           new ArrayList<String>(),
           new HashSet<String>(),
           testPattern,
           (Element) o,
           0,
           null,
           expander.getExpandMacroMap(),
           libs);
     } catch (ConversionException e) {
       throw new IOException(e);
     }
   }
   boolean foundSdkDependency = false;
   JpsDependenciesList dependenciesList = model.getDependenciesList();
   for (JpsDependencyElement element : dependenciesList.getDependencies()) {
     if (element instanceof JpsSdkDependency) {
       foundSdkDependency = true;
       break;
     }
   }
   if (!foundSdkDependency) {
     dependenciesList.addSdkDependency(JpsJavaSdkType.INSTANCE);
   }
   if (LOG.isDebugEnabled()) {
     String name = model.getName();
     LOG.debug(
         "finished loading classpath for "
             + name
             + " ("
             + dependenciesList.getDependencies().size()
             + " items):");
     for (JpsDependencyElement element : dependenciesList.getDependencies()) {
       LOG.debug(" [" + name + "]:" + element.toString());
     }
   }
 }