static Map hotwire_srcLibsMap = weakHashMap(); static JavaXClassLoader hotwire_makeClassLoader_stickyAndSrcLibs(L files) { new L files2; new Map parents; // key = package/class name for (File f : files) { S libID = DiskSnippetCache_fileToLibID(f); // I think that's not gonna work for src libs print("srclibs: " + f + " => " + libID); if (libID != null && isMarkedAsSrcLib(libID)) { ClassLoader c = hotwire_srcLibsMap.get(f); S jname = dropSuffix(".java", getJavaSrcNameOfSrcLib(libID)); assertNempty(libID, jname); if (c == null) { c = hotwireSpecialMainClass(libID, jname.replace("/", ".")).getClassLoader(); hotwire_srcLibsMap.put(f, c); } parents.put(beforeSlash(jname), c); } else if (libID != null && isStickyLibrary(libID)) { if (addLibrary(libID)) print("Retaining sticky library " + libID); } else files2.add(f); } JavaXClassLoaderWithParents cl = new(null, files2, myClassLoader()); // progID is set later putAll(cl.parentMap, parents); ret cl; }