in src/main/java/org/apache/sling/scripting/esx/Module.java [644:669]
public Object require(String id) throws ScriptException, IOException {
log.debug("Trying to require Module with Id: " + id);
// different behavior if we are the main module, require directly
// run runScript directly on this module
if (get("id").equals(id)
&& get("main") == this) {
return runScript();
}
String loader = LOADER_JS;
if (id.startsWith(LOADER_TEXT)) {
loader = LOADER_TEXT;
}
if (id.startsWith(LOADER_RESOURCE)) {
loader = LOADER_RESOURCE;
}
ModuleScript subModuleScript = resolve(cleanModulePathFromLoaders(id), (Resource) get(CONTEXT_FIELD_MODULE_RESOURCE), loader);
Module subModule = new Module(factory, (Resource) get(CONTEXT_FIELD_RESOURCE),
subModuleScript, id, this, (SlingScriptHelper) get(CONTEXT_FIELD_SLING), loader);
Object result = subModule.runScript();
children.add(subModule);
subModule.put(CONTEXT_FIELD_IS_LOADED, true);
return result;
}