diff --git a/src/FESI/Data/ESBeans.java b/src/FESI/Data/ESBeans.java index 75834f7d..082c5555 100644 --- a/src/FESI/Data/ESBeans.java +++ b/src/FESI/Data/ESBeans.java @@ -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 { -} \ No newline at end of file +} diff --git a/src/FESI/Data/ESLoader.java b/src/FESI/Data/ESLoader.java index c3dcd10e..9460f320 100644 --- a/src/FESI/Data/ESLoader.java +++ b/src/FESI/Data/ESLoader.java @@ -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; diff --git a/src/FESI/Data/ESPackages.java b/src/FESI/Data/ESPackages.java index 949ec1af..64c8ed64 100644 --- a/src/FESI/Data/ESPackages.java +++ b/src/FESI/Data/ESPackages.java @@ -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 { -} \ No newline at end of file +}