dev@glassfish.java.net

Question about ClassLoaderHierarchy#getAppLibClassLoader

From: Jan Luehe <Jan.Luehe_at_Sun.COM>
Date: Thu, 02 Apr 2009 20:14:41 -0700

Sahoo,

given an app, we'd like to be able to query

  org.glassfish.internal.api.ClassLoaderHierarchy

for the classloader that comprises the library JAR files passed
to the --libraries deploy command option during the app's deployment.

We noticed that in addition to taking an app name,
ClassLoaderHierarchy#getAppLibClassLoader also requires a list of
library URIs (corresponding to the JARs specified via --libraries)
as one of its arguments.

We were hoping that passing the app name would be sufficient.

Do you know how we can get to the List<URI> from any of the artifacts
made available to com.sun.enterprise.web.WebApplication?

Alternatively, we could navigate to [F] from [H] in:

archive class loader [H]
-> Modules class loader [G]
    -> applib class loader [F]
        -> connector class loader [E]
             -> common class loader [D]
                  -> public API class loader [C]
                       -> extension class loader [B]
                          -> null (a.k.a. bootstrap class loader) [A]

but that would be error prone since additional classloaders may be
inserted into the chain sometime in the future.

Thanks,

Jan