instance = StructNew();
instance.static.uuid = "A0608BEC-0AEB-B46A-0E1E1EC5F3CE7C9C";
var iterator = arguments.loadPaths.iterator();
var file = 0;
var classLoader = 0;
var networkClassLoaderClass = 0;
var networkClassLoaderProxy = 0;
initUseJavaProxyCFC();
if(arguments.loadColdFusionClassPath)
{
//arguments.parentClassLoader = createObject("java", "java.lang.Thread").currentThread().getContextClassLoader();
//can't use above, as doesn't work in some... things
arguments.parentClassLoader = getPageContext().getClass().getClassLoader();
//arguments.parentClassLoader = createObject("java", "java.lang.ClassLoader").getSystemClassLoader();
//can't use the above, it doesn't have the CF stuff in it.
}
ensureNetworkClassLoaderOnServerScope();
//classLoader = createObject("java", "com.compoundtheory.classloader0.NetworkClassLoader").init();
networkClassLoaderClass = getServerURLClassLoader().loadClass("com.compoundtheory.classloader.NetworkClassLoader");
networkClassLoaderProxy = createJavaProxy(networkClassLoaderClass);
if(isObject(arguments.parentClassLoader))
{
classLoader = networkClassLoaderProxy.init(arguments.parentClassLoader);
}
else
{
classLoader = networkClassLoaderProxy.init();
}
while(iterator.hasNext())
{
file = createObject("java", "java.io.File").init(iterator.next());
if(NOT file.exists())
{
throw("PathNotFoundException", "The path you have specified could not be found", file.getAbsolutePath() & " does not exist");
}
classLoader.addUrl(file.toURL());
}
//pass in the system loader
setURLClassLoader(classLoader);
return this;
var class = getURLClassLoader().loadClass(arguments.className);
return createJavaProxy(class);
var Class = createObject("java", "java.lang.Class");
var Array = createObject("java", "java.lang.reflect.Array");
var jars = queryJars();
var iterator = jars.iterator();
var file = 0;
var urls = Array.newInstance(Class.forName("java.net.URL"), ArrayLen(jars));
var counter = 0;
var urlClassLoader = 0;
var key = instance.static.uuid & "." & getVersion();
//server scope uuid
//we have it already? escape.
if(StructKeyExists(server, key))
{
return;
}
while(iterator.hasNext())
{
Array.set(urls, counter, createObject("java", "java.io.File").init(iterator.next()).toURL());
counter = counter + 1;
}
urlClassLoader = createObject("java", "java.net.URLClassLoader").init(urls);
//put it on the server scope
server[key] = urlClassLoader;
if(getUseJavaProxyCFC())
{
return createObject("component", "JavaProxy")._init(arguments.class);
}
return createObject("java", "coldfusion.runtime.java.JavaProxy").init(arguments.class);
setUseJavaProxyCFC(false);
try
{
createObject("java", "coldfusion.runtime.java.JavaProxy");
}
catch(Object exc)
{
setUseJavaProxyCFC(true);
}
var qJars = 0;
//the path to my jar library
var path = getDirectoryFromPath(getMetaData(this).path) & "lib/";
var jarList = "";
var aJars = ArrayNew(1);
var libName = 0;
libName = ListGetAt(name, 1, "-");
//let's not use the lib's that have the same name, but a lower datestamp
if(NOT ListFind(jarList, libName))
{
ArrayAppend(aJars, path & "/" & name);
jarList = ListAppend(jarList, libName);
}