I need the ability to intercept an attempt to load a class by the
class ClassLoader associated with my J2EE application, and then
generate the class on-the-fly and provide it to the ClassLoader.
The problem is that the example shows a means of supplanting the
base class loader by wrapping one class' "main()" method in the
"main()" method of another class which first replaces the class
loader.
If I did this then all of my classes would load in the application
server's class loader since it is the "main()" class that I am
executing. Further, it would not work because the classes I am
generating on the fly depend on interfaces and classes contained
within my J2EE app (and are not visible to the ClassLoader that
started the J2EE application server).
Is there a way to do this elegantly?
Essentially I need functionality similar to "Proxy.getProxyClass(...)"
(where I pass in the ClassLoader) EXCEPT that I need it to generate a
class that has a public no-arg constructor and knows how to build its
InvocationHandler itself.
The classes generated by "Proxy.getProxyClass(...)" all require a
an InvocationHandler be passed to the constructor.