Was there any reason why the setters were all invoked through
reflection as well?
well, in the m1 plugin the class of the PackageBuilder instance is
in a different classloader than the PackageBuilderShell, so I don't
see how there is any other way to call the setters. Am I missing
something? If we said PackageBuilder pb = (PackageBuilder)
packageBuilderInstance we'd get a class cast exception.
I think what you've done for m2 should work: if we start getting
bizarre class cast exceptions when trying to build configs we'll
have to revisit this question.
Note that the m2 plugin had already switched to using the same
classloader for PBSM and PB, so the reflective setter calls were
pointless.
Okay, I added a comment to the changes I made (which removed the
reflection) to note that if we run into crazy errors that we should
re-implement the classloader isolation.
--jason