summaryrefslogtreecommitdiff
path: root/ridljar
diff options
context:
space:
mode:
authorOliver Bolte <obo@openoffice.org>2007-03-12 09:48:40 +0000
committerOliver Bolte <obo@openoffice.org>2007-03-12 09:48:40 +0000
commitdeb32cf7bdf3fdd9713b91eb63c80eed2ae03977 (patch)
treeb300a7d292891521784c25861821a17434894032 /ridljar
parenta74d78affa4c2003edb3efeb4c841ffa07ac2c33 (diff)
INTEGRATION: CWS sb36 (1.2.4); FILE MERGED
2006/03/14 14:33:15 sb 1.2.4.4: #i51803# Reverted additional ctor introduced in 1.4, which is not used until now, and is obsoleted by the classPath parameter of the other ctor; marked the class as internal again. 2006/03/13 10:38:08 sb 1.2.4.3: RESYNC: (1.3-1.4); FILE MERGED 2005/09/22 04:13:04 sb 1.2.4.2: RESYNC: (1.2-1.3); FILE MERGED 2005/07/11 13:24:40 sb 1.2.4.1: #i51803# Changed parameters of UnoClassLoader ctor, to specifiy a per-UnoClassLoader classpath.
Diffstat (limited to 'ridljar')
-rw-r--r--ridljar/source/unoloader/com/sun/star/lib/unoloader/UnoClassLoader.java62
1 files changed, 25 insertions, 37 deletions
diff --git a/ridljar/source/unoloader/com/sun/star/lib/unoloader/UnoClassLoader.java b/ridljar/source/unoloader/com/sun/star/lib/unoloader/UnoClassLoader.java
index 304cd3510f42..82e83cdd159d 100644
--- a/ridljar/source/unoloader/com/sun/star/lib/unoloader/UnoClassLoader.java
+++ b/ridljar/source/unoloader/com/sun/star/lib/unoloader/UnoClassLoader.java
@@ -4,9 +4,9 @@
*
* $RCSfile: UnoClassLoader.java,v $
*
- * $Revision: 1.4 $
+ * $Revision: 1.5 $
*
- * last change: $Author: obo $ $Date: 2006-01-20 10:10:25 $
+ * last change: $Author: obo $ $Date: 2007-03-12 10:48:40 $
*
* The Contents of this file are made available subject to
* the terms of GNU Lesser General Public License Version 2.1.
@@ -56,7 +56,8 @@ import java.util.jar.JarInputStream;
* types, and any additional UNO types introduced by components; for the latter,
* {@link #addURL} may be necessary).</p>
*
- * <p><em>This class is not yet stable.</em></p>
+ * <p><em>This is an internal, unstable class of the Uno Runtime Environment; it
+ * should not be used by client code.</em></p>
*
* @since UDK 3.2.0
*/
@@ -68,48 +69,20 @@ public final class UnoClassLoader extends URLClassLoader {
* (<code>java_uno.jar</code>, <code>juh.jar</code>, <code>jurt.jar</code>,
* <code>ridl.jar</code>) can be found; must not be <code>null</code>.
*
- * @param parent the parent class loader for delegation.
- *
- * @throws MalformedURLException if the given <code>base</code> URL is
- * malformed.
- */
- public UnoClassLoader(URL base, ClassLoader parent)
- throws MalformedURLException
- {
- //TODO Get rid of java_uno.jar here:
- super(
- new URL[] {
- new URL(base, "java_uno.jar"), new URL(base, "juh.jar"),
- new URL(base, "jurt.jar"), new URL(base, "ridl.jar") },
- parent);
- }
-
- /**
- * Instantiates the root UNO class loader, passing it locations of
- * additional UNO types.
- *
- * @param base a base URL relative to which the URE JARs
- * (<code>java_uno.jar</code>, <code>juh.jar</code>, <code>jurt.jar</code>,
- * <code>ridl.jar</code>) can be found; must not be <code>null</code>.
+ * @param classPath an array of URLs that form the class path of this class
+ * loader; may be <code>null</code>, which is the same as an empty array.
+ * The URLs are interpreted in the same way as the arguments of a {@link
+ * URLClassLoader}.
*
* @param parent the parent class loader for delegation.
*
- * @param extraTypes a (possibly empty) array of URLs through which Java
- * classes representing additional UNO types can be found; must not be
- * <code>null</code>.
- *
* @throws MalformedURLException if the given <code>base</code> URL is
* malformed.
- *
- * @since UDK 3.2.2
*/
- public UnoClassLoader(URL base, ClassLoader parent, URL[] extraTypes)
+ public UnoClassLoader(URL base, URL[] classPath, ClassLoader parent)
throws MalformedURLException
{
- this(base, parent);
- for (int i = 0; i < extraTypes.length; ++i) {
- addURL(extraTypes[i]);
- }
+ super(createUrls(base, classPath), parent);
}
/**
@@ -231,4 +204,19 @@ public final class UnoClassLoader extends URLClassLoader {
}
return mf == null ? null : mf.getMainAttributes();
}
+
+ private static URL[] createUrls(URL base, URL[] classPath)
+ throws MalformedURLException
+ {
+ final int JARS = 4;
+ URL[] urls = new URL[JARS + (classPath == null ? 0 : classPath.length)];
+ urls[0] = new URL(base, "java_uno.jar"); //TODO get rid of it here
+ urls[1] = new URL(base, "juh.jar");
+ urls[2] = new URL(base, "jurt.jar");
+ urls[3] = new URL(base, "ridl.jar");
+ if (classPath != null) {
+ System.arraycopy(classPath, 0, urls, JARS, classPath.length);
+ }
+ return urls;
+ }
}