You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@uima.apache.org by sc...@apache.org on 2018/03/29 18:15:43 UTC
svn commit: r1828010 -
/uima/uimaj/trunk/uimaj-bootstrap/src/main/java/org/apache/uima/bootstrap/UimaBootstrap.java
Author: schor
Date: Thu Mar 29 18:15:43 2018
New Revision: 1828010
URL: http://svn.apache.org/viewvc?rev=1828010&view=rev
Log:
[UIMA-5754] modify UimaBootstrap to not depend on application loader being an instance of URLClassLoader.
Modified:
uima/uimaj/trunk/uimaj-bootstrap/src/main/java/org/apache/uima/bootstrap/UimaBootstrap.java
Modified: uima/uimaj/trunk/uimaj-bootstrap/src/main/java/org/apache/uima/bootstrap/UimaBootstrap.java
URL: http://svn.apache.org/viewvc/uima/uimaj/trunk/uimaj-bootstrap/src/main/java/org/apache/uima/bootstrap/UimaBootstrap.java?rev=1828010&r1=1828009&r2=1828010&view=diff
==============================================================================
--- uima/uimaj/trunk/uimaj-bootstrap/src/main/java/org/apache/uima/bootstrap/UimaBootstrap.java (original)
+++ uima/uimaj/trunk/uimaj-bootstrap/src/main/java/org/apache/uima/bootstrap/UimaBootstrap.java Thu Mar 29 18:15:43 2018
@@ -71,11 +71,11 @@ public class UimaBootstrap {
URL[] urls = getUrls();
// URLClassLoader cl = new ParentFirstWithResourceClassLoader(urls);
// Thread.currentThread().setContextClassLoader(cl);
- addUrlsToSystemLoader(urls);
+ ClassLoader myClassLoader = addUrlsToSystemLoader(urls);
Class<?> classToLaunch = null;
try {
- classToLaunch = ClassLoader.getSystemClassLoader().loadClass(args[0]);
+ classToLaunch = myClassLoader.loadClass(args[0]);
} catch (ClassNotFoundException e) {
System.err.println("Cannot find class to launch");
System.exit(1);
@@ -142,18 +142,20 @@ public class UimaBootstrap {
urls.add(url);
}
- private static void addUrlsToSystemLoader(URL[] urls) throws IOException {
- URLClassLoader systemClassLoader = (URLClassLoader) ClassLoader.getSystemClassLoader();
- try {
- Method method = URLClassLoader.class.getDeclaredMethod("addURL", new Class[]{URL.class});
- method.setAccessible(true); // is normally "protected"
- for (URL url : urls) {
- method.invoke(systemClassLoader, new Object[]{url});
- }
- } catch (Throwable t) {
- t.printStackTrace();
- throw new IOException("Error, could not add URL to system classloader");
- }
+ private static ClassLoader addUrlsToSystemLoader(URL[] urls) throws IOException {
+ return new URLClassLoader(urls, ClassLoader.getSystemClassLoader());
+
+// URLClassLoader systemClassLoader = (URLClassLoader) ClassLoader.getSystemClassLoader();
+// try {
+// Method method = URLClassLoader.class.getDeclaredMethod("addURL", new Class[]{URL.class});
+// method.setAccessible(true); // is normally "protected"
+// for (URL url : urls) {
+// method.invoke(systemClassLoader, new Object[]{url});
+// }
+// } catch (Throwable t) {
+// t.printStackTrace();
+// throw new IOException("Error, could not add URL to system classloader");
+// }
}