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,
|
||||
ESBeans previousPackage,
|
||||
LocalClassLoader classLoader,
|
||||
ClassLoader classLoader,
|
||||
Evaluator 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");
|
||||
}
|
||||
String directoryOrJar = arguments[0].toString();
|
||||
LocalClassLoader classLoader =
|
||||
ClassLoader classLoader =
|
||||
LocalClassLoader.makeLocalClassLoader(directoryOrJar);
|
||||
return new ESBeans(null, null, classLoader, evaluator);
|
||||
} else {
|
||||
|
@ -146,4 +146,4 @@ public class ESBeans extends ESLoader {
|
|||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -56,7 +56,7 @@ public abstract class ESLoader extends ESObject {
|
|||
// Incremental package name
|
||||
protected String packageName = null;
|
||||
protected ESLoader previousPackage = null;
|
||||
protected LocalClassLoader classLoader = null;
|
||||
protected ClassLoader classLoader = null;
|
||||
|
||||
// the non compatible flag
|
||||
static private CompatibilityDescriptor nonCompatible =
|
||||
|
@ -69,7 +69,15 @@ public abstract class ESLoader extends ESObject {
|
|||
public ESLoader(Evaluator 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
|
||||
* partial or complete package name
|
||||
|
@ -80,7 +88,7 @@ public abstract class ESLoader extends ESObject {
|
|||
*/
|
||||
public ESLoader(String packageName,
|
||||
ESLoader previousPackage,
|
||||
LocalClassLoader classLoader,
|
||||
ClassLoader classLoader,
|
||||
Evaluator evaluator) {
|
||||
super(null, evaluator);
|
||||
this.packageName = packageName;
|
||||
|
|
|
@ -34,7 +34,7 @@ import java.util.zip.*;
|
|||
* Implements the object loader
|
||||
*/
|
||||
public class ESPackages extends ESLoader {
|
||||
|
||||
|
||||
/**
|
||||
* Create the top level package loader (object Package)
|
||||
* @param evaluator the evaluator
|
||||
|
@ -42,6 +42,14 @@ public class ESPackages extends ESLoader {
|
|||
public ESPackages(Evaluator 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
|
||||
|
@ -52,7 +60,7 @@ public class ESPackages extends ESLoader {
|
|||
*/
|
||||
public ESPackages(String packageName,
|
||||
ESPackages previousPackage,
|
||||
LocalClassLoader classLoader,
|
||||
ClassLoader classLoader,
|
||||
Evaluator evaluator) {
|
||||
super(packageName,previousPackage,classLoader,evaluator);
|
||||
}
|
||||
|
@ -117,7 +125,7 @@ public class ESPackages extends ESLoader {
|
|||
throw new EcmaScriptException("Missing class directory or file name");
|
||||
}
|
||||
String directoryOrJar = arguments[0].toString();
|
||||
LocalClassLoader classLoader =
|
||||
ClassLoader classLoader =
|
||||
LocalClassLoader.makeLocalClassLoader(directoryOrJar);
|
||||
return new ESPackages(null, null, classLoader, evaluator);
|
||||
} else {
|
||||
|
@ -139,4 +147,4 @@ public class ESPackages extends ESLoader {
|
|||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue