Alan, Remi, Andrew - thanks to you all for the examples/links, I will look into 
it when I got a spare moment.


Also to answer Alan's previous question:

> If you can find the defining loader of
> org.jboss.weld.proxies.util.Map$Proxy then I think it would be useful to
> this discussion. If the defining loader is your own implementation then
> there be no issue invoking that class loader's defineClass (from the
> right context of course).

I inspected the currect code and the defining loader in EE (on Wildfly) was 
ModuleClassLoader, which is an additional CL on top of Application CL (so its 
Boot->Ext->App->ModuleCL).
This creates a special module layer in wfly. However, to my knowldege, Weld 
does not really have control over this. And even if we had, we still need a 
portable way - same stuff needs to work in, say, Glassfish.
If we are talking Weld SE, than Application CL does the defining 
(sun.misc.Launcher$AppClassLoader).
Not sure if this is exactly what you asked for, I am relatively new to this and 
trying to learn more about CLs as we speak.

Matej


----- Original Message -----
> From: "Alan Bateman" <alan.bate...@oracle.com>
> To: fo...@univ-mlv.fr, "Matej Novotny" <manov...@redhat.com>
> Cc: jigsaw-dev@openjdk.java.net, "Tomas Remes" <tre...@redhat.com>, "Martin 
> Kouba" <mko...@redhat.com>
> Sent: Wednesday, April 26, 2017 5:40:09 PM
> Subject: Re: setAccessible() alternative with Jigsaw - feedback on Lookup
> 
> On 26/04/2017 16:31, fo...@univ-mlv.fr wrote:
> 
> > :
> >    4. create a classloader
> >       ClassLoader classLoader = new ClassLoader(parentClassLoader()) { /*
> >       make defineClass more visible */};
> >    5. create your own layer [4]
> >       ModuleLayer layer = boot.defineModulesWithOneLoader(cf, classloader;
> >    6. profit (i.e. now you can call define class on your classloader)
> >
> At #5 then you probably want defineModules(cf, m -> classloader);
> 
> -Alan
> 

Reply via email to