lcsim/src/org/lcsim/job
diff -u -r1.24 -r1.25
--- JobControlManager.java 31 Aug 2009 17:56:18 -0000 1.24
+++ JobControlManager.java 15 Sep 2009 18:59:18 -0000 1.25
@@ -18,6 +18,7 @@
import java.lang.reflect.Method;
import java.net.MalformedURLException;
import java.net.URL;
+import java.net.URLClassLoader;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
@@ -27,6 +28,9 @@
import java.util.StringTokenizer;
import java.util.Map.Entry;
+import org.freehep.application.studio.Studio;
+import org.freehep.jas.services.DynamicClassLoader;
+import org.freehep.util.FreeHEPLookup;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.Text;
@@ -63,7 +67,7 @@
int skipEvents = -1;
File cacheDirectory;
FileCache fileCache;
- LCSimClassLoader loader;
+ ClassLoader loader;
boolean printDriverStatistics;
boolean printSystemProperties;
boolean printUserClassPath;
@@ -613,13 +617,25 @@
}
}
URL[] urls = urlList.toArray(new URL[]{});
- loader = new LCSimClassLoader(urls);
+
+ // Running in JAS. Jars need to already be on classpath.
+ if (Studio.getApplication() != null)
+ {
+ FreeHEPLookup fhl = ((Studio) Studio.getApplication()).getLookup();
+ //DynamicClassLoader dcl = (DynamicClassLoader)fhl.lookup(DynamicClassLoader.class);
+ loader = ((DynamicClassLoader)fhl.lookup(DynamicClassLoader.class)).getClassLoader();
+ }
+ // Running in batch.
+ else
+ {
+ loader = new LCSimClassLoader(urls);
+ }
// Print user classpath entries.
if (printUserClassPath)
{
logStream.println("-- Extra Classpath URLs --");
- for (URL url : loader.getURLs())
+ for (URL url : ((URLClassLoader)loader).getURLs())
{
logStream.println(url);
}