!7 set flag DynModule. // use OS transpiler // We are trying to add classes directly in to the module's class loader // without any sub-class loaders cprint { transient ClassLoader cl; start-thread { cl = getClassLoader(module()); print("My class loader: " + cl); print("Class loader type: " + className(cl)); Map parents = cast getOpt parentMap(cl); print("Parents: " + parents); hotwireTest(); } void hotwireTest ctex { S name = aGlobalID(); print("Class name: " + name); S mcName = "main_" + name; S src = "mainClassName " + mcName + "\n\n" + "sclass " + name + " {\n" + " S name() {\n" + " ret " + quote("I am " + name) + ";\n" + " }\n" + "}"; print(); printWithIndent("SRC> ", src); print(); // taken from veryQuickJava3 new LS libs; src = transpileRaw(src); // transpiled, with lib references // taken from veryQuickJava_finish src = findTranslators2(src, libs); S dehlibs = join(" ", libs); File bytecode = javaCompile_overInternalBot(src, dehlibs); print(+bytecode); print("Files: " + listZip(bytecode)); //print("Name: " + call(o, "name")); /*set(cl, findClass_extension := (IF1) name -> { if (equalsOrStartsWithPlusDollar(name, mcName)) null; });*/ call(cl, "addURL", bytecode.toURI().toURL()); Class c = Class.forName(mcName); print("Resolved: " + c); O o = newInstance(Class.forName(mcName + "$" + name)); print("Instance: " + o); print(); O result = call(o, "name"); print("Result of function call: " + result); assertEquals("I am " + name, result); } }