On 24/04/2017 12:41, Matej Novotny wrote:
:
Not really sure, but it is certainly not one under our control.
I suppose these "basic" classes will be loaded by, say, Wildfly as soon as you
bootstrap it, before any CDI-enabled deployment takes place.
The reason I picked out java.lang.Integer from your other mail is
because it's defined to the boot loader and so would be interesting to
know the defining loader for the proxy class generated for
java.lang.Integer.
:
I think it's more or less what we did/are doing - we spin the proxies either
into the same package the came from or to our own package/module.
But in order to avoid proxy name clash in the same package, we just took the
original package and replaced the prefix 'java' with something like
'org.jboss.weld.proxies'.
This effectively means that 'java.util.Map' proxy will end up as something like
'org.jboss.weld.proxies.util.Map$Proxy'.
Obviously, 'org.jboss.weld.proxies.util' did not exist beforehand and putting
everything into one existing package using Lookup is bound to blow up very
quickly.
So there is basically no way to achieve this with JDK 9?
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).
-Alan