On 14/03/2017 17:37, Russell Gold wrote:
Hi Alan,
I am trying this in SimpleStub, and it seems to work for my current
test cases if I do this:
MethodHandles.Lookup in = MethodHandles.privateLookupIn(baseClass,
MethodHandles.lookup() ).dropLookupMode( MethodHandles.Lookup.PRIVATE );
return in.defineClass(classBytes);
My tests create stubs from public, package-private and protected
classes. Is that what you are expecting? It seems a bit overly complex.
You get a full-power lookup on the "baseClass", passing your own lookup
that proves you have access. Then you drop private access as it's not
supported by defineClass at this time. So it looks right.
In gmbal, I see that this may not suffice, as the current interfaces
provide no way to supply a class to use as a base. Figuring out how
those interfaces are being used might change my answer.
Could you add an overloaded register method to ManagedObjectManager to
take the Lookup?
-Alan