Use generic ClassLoader so we can use our own HelmaClassLoader.
This commit is contained in:
parent
0aa65b8683
commit
148cd5de94
3 changed files with 26 additions and 10 deletions
|
@ -53,7 +53,7 @@ public class ESBeans extends ESLoader {
|
||||||
*/
|
*/
|
||||||
public ESBeans(String packageName,
|
public ESBeans(String packageName,
|
||||||
ESBeans previousPackage,
|
ESBeans previousPackage,
|
||||||
LocalClassLoader classLoader,
|
ClassLoader classLoader,
|
||||||
Evaluator evaluator) {
|
Evaluator evaluator) {
|
||||||
super(packageName,previousPackage,classLoader,evaluator);
|
super(packageName,previousPackage,classLoader,evaluator);
|
||||||
}
|
}
|
||||||
|
@ -94,7 +94,7 @@ public class ESBeans extends ESLoader {
|
||||||
throw new EcmaScriptException("Missing class directory or jar file name");
|
throw new EcmaScriptException("Missing class directory or jar file name");
|
||||||
}
|
}
|
||||||
String directoryOrJar = arguments[0].toString();
|
String directoryOrJar = arguments[0].toString();
|
||||||
LocalClassLoader classLoader =
|
ClassLoader classLoader =
|
||||||
LocalClassLoader.makeLocalClassLoader(directoryOrJar);
|
LocalClassLoader.makeLocalClassLoader(directoryOrJar);
|
||||||
return new ESBeans(null, null, classLoader, evaluator);
|
return new ESBeans(null, null, classLoader, evaluator);
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -56,7 +56,7 @@ public abstract class ESLoader extends ESObject {
|
||||||
// Incremental package name
|
// Incremental package name
|
||||||
protected String packageName = null;
|
protected String packageName = null;
|
||||||
protected ESLoader previousPackage = null;
|
protected ESLoader previousPackage = null;
|
||||||
protected LocalClassLoader classLoader = null;
|
protected ClassLoader classLoader = null;
|
||||||
|
|
||||||
// the non compatible flag
|
// the non compatible flag
|
||||||
static private CompatibilityDescriptor nonCompatible =
|
static private CompatibilityDescriptor nonCompatible =
|
||||||
|
@ -70,6 +70,14 @@ public abstract class ESLoader extends ESObject {
|
||||||
super(null, evaluator);
|
super(null, evaluator);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* To contruct the Bean or Package object with a specific class loader
|
||||||
|
*/
|
||||||
|
public ESLoader(Evaluator evaluator, ClassLoader loader) {
|
||||||
|
super(null, evaluator);
|
||||||
|
this.classLoader = loader;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* To construct a bean or package sub-object (with a specific
|
* To construct a bean or package sub-object (with a specific
|
||||||
* partial or complete package name
|
* partial or complete package name
|
||||||
|
@ -80,7 +88,7 @@ public abstract class ESLoader extends ESObject {
|
||||||
*/
|
*/
|
||||||
public ESLoader(String packageName,
|
public ESLoader(String packageName,
|
||||||
ESLoader previousPackage,
|
ESLoader previousPackage,
|
||||||
LocalClassLoader classLoader,
|
ClassLoader classLoader,
|
||||||
Evaluator evaluator) {
|
Evaluator evaluator) {
|
||||||
super(null, evaluator);
|
super(null, evaluator);
|
||||||
this.packageName = packageName;
|
this.packageName = packageName;
|
||||||
|
|
|
@ -43,6 +43,14 @@ public class ESPackages extends ESLoader {
|
||||||
super(evaluator);
|
super(evaluator);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create the top level package loader (object Package)
|
||||||
|
* @param evaluator the evaluator
|
||||||
|
*/
|
||||||
|
public ESPackages(Evaluator evaluator, ClassLoader loader) {
|
||||||
|
super(evaluator, loader);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create a new package loader or package prefix
|
* Create a new package loader or package prefix
|
||||||
* @param packageName The extension of the package name
|
* @param packageName The extension of the package name
|
||||||
|
@ -52,7 +60,7 @@ public class ESPackages extends ESLoader {
|
||||||
*/
|
*/
|
||||||
public ESPackages(String packageName,
|
public ESPackages(String packageName,
|
||||||
ESPackages previousPackage,
|
ESPackages previousPackage,
|
||||||
LocalClassLoader classLoader,
|
ClassLoader classLoader,
|
||||||
Evaluator evaluator) {
|
Evaluator evaluator) {
|
||||||
super(packageName,previousPackage,classLoader,evaluator);
|
super(packageName,previousPackage,classLoader,evaluator);
|
||||||
}
|
}
|
||||||
|
@ -117,7 +125,7 @@ public class ESPackages extends ESLoader {
|
||||||
throw new EcmaScriptException("Missing class directory or file name");
|
throw new EcmaScriptException("Missing class directory or file name");
|
||||||
}
|
}
|
||||||
String directoryOrJar = arguments[0].toString();
|
String directoryOrJar = arguments[0].toString();
|
||||||
LocalClassLoader classLoader =
|
ClassLoader classLoader =
|
||||||
LocalClassLoader.makeLocalClassLoader(directoryOrJar);
|
LocalClassLoader.makeLocalClassLoader(directoryOrJar);
|
||||||
return new ESPackages(null, null, classLoader, evaluator);
|
return new ESPackages(null, null, classLoader, evaluator);
|
||||||
} else {
|
} else {
|
||||||
|
|
Loading…
Add table
Reference in a new issue