The package based URL handler mechanism uses the system classpath. And the IBM ORB uses the system classpath (specifically does not use the tcl) to get its class instance (which is why we have the hack in jboss/system).
If we can set the system classpath to a ucl, then we can get around all of these little problems. Sounds like a good idea to me... but only really helps once we make 1.4 the base VM. --jason > -----Original Message----- > From: [EMAIL PROTECTED] [mailto:jboss- > [EMAIL PROTECTED]] On Behalf Of Scott M Stark > Sent: Saturday, June 29, 2002 10:44 AM > To: [EMAIL PROTECTED] > Subject: Re: [JBoss-dev] UCL as system classloader under 1.4: is that a > problem for you > > I don't see why it would as the system class loader is not used > for anything. This will not obviate the need for setContextClassLoader > for in many instances this is simply setting a CL to use for identifying > the unique ENC, which class loader to start loading resources from, etc. > Only that it also establishes the starting point for loading classes > becomes > unneccessary, but this can still lead to an optimization. > > xxxxxxxxxxxxxxxxxxxxxxxx > Scott Stark > Chief Technology Officer > JBoss Group, LLC > xxxxxxxxxxxxxxxxxxxxxxxx > ----- Original Message ----- > From: "Sacha Labourey" <[EMAIL PROTECTED]> > To: "Jboss-Dev" <[EMAIL PROTECTED]> > Cc: "Scott M Stark" <[EMAIL PROTECTED]> > Sent: Saturday, June 29, 2002 10:21 AM > Subject: [JBoss-dev] UCL as system classloader under 1.4: is that a > problem > for you > > > > Hello, > > > > A new property, "java.system.class.loader", can be used under 1.4 to > > determine which should be the system classloader: the standard java CL > or > a > > customized CL. As we move forward 1.4, it means that setting the UCL as > the > > value of this property would allow us to simply the code regarding > > setContextClassLoader for example (and other improvments). > > > > But would that be a problem for some of your code? I think about JBossSX > for > > example (how JAAS security modules get loaded for example)? > > > > Thank you for your feedback. Cheers, > > > > > > Sacha > > > > Extract from java.lang.Classloader source: > > > > /** > > * Returns the system class loader for delegation. This is the > default > > * delegation parent for new <code>ClassLoader</code> instances, and > > * is typically the class loader used to start the application. > > * <p> > > * This method is first invoked early in the runtime's startup > > * sequence, at which point it creates the system class loader > > * and sets it as the context class loader of the invoking > > * <tt>Thread</tt>. > > * <p> > > * The default system class loader is an implementation-dependent > > * instance of this class. > > * <p> > > * If the system property <tt>java.system.class.loader</tt> is > > * defined when this method is first invoked then the value of that > > * property is taken to be the name of a class that will be returned > as > > * the system class loader. The class is loaded using the default > system > > * class loader and must define a public constructor that takes a > single > > * parameter of type <tt>ClassLoader</tt> which is used > > * as the delegation parent. An instance is then created using this > > * constructor with the default system class loader as the > parameter. > > * The resulting class loader is defined to be the system class > loader. > > * <p> > > * If a security manager is present, and the caller's class loader > is > > * not null and the caller's class loader is not the same as or an > > ancestor of > > * the system class loader, then > > * this method calls the security manager's > <code>checkPermission</code> > > * method with a <code>RuntimePermission("getClassLoader")</code> > > * permission to ensure it's ok to access the system class loader. > > * If not, a <code>SecurityException</code> will be thrown. > > * > > * @return the system <code>ClassLoader</code> for delegation, or > > * <code>null</code> if none > > * @throws SecurityException > > * if a security manager exists and its > > * <code>checkPermission</code> method doesn't allow > > * access to the system class loader. > > * @throws IllegalStateException > > * if invoked recursively during the construction > > * of the class loader specified by the > > * <code>java.system.class.loader</code> property. > > * @throws Error > > * if the system property <tt>java.system.class.loader</tt> > > * is defined but the named class could not be loaded, the > > * provider class does not define the required constructor, > or > an > > * exception is thrown by that constructor when it is > invoked. > > The > > * underlying cause of the error can be retrieved via the > > * {@link Throwable#getCause()} method. > > * @see SecurityManager#checkPermission > > * @see java.lang.RuntimePermission > > * @revised 1.4 > > */ > > public static ClassLoader getSystemClassLoader() { > > ... > > > > > > > > ------------------------------------------------------- > > This sf.net email is sponsored by:ThinkGeek > > No, I will not fix your computer. > > http://thinkgeek.com/sf > > _______________________________________________ > > Jboss-development mailing list > > [EMAIL PROTECTED] > > https://lists.sourceforge.net/lists/listinfo/jboss-development > > > > > > ------------------------------------------------------- > This sf.net email is sponsored by:ThinkGeek > No, I will not fix your computer. > http://thinkgeek.com/sf > _______________________________________________ > Jboss-development mailing list > [EMAIL PROTECTED] > https://lists.sourceforge.net/lists/listinfo/jboss-development ------------------------------------------------------- This sf.net email is sponsored by:ThinkGeek Welcome to geek heaven. http://thinkgeek.com/sf _______________________________________________ Jboss-development mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/jboss-development
