Except I just realized that there might be a requirement for
dependency
management. For example, a large number of my plugins are queries of
one sort or another, so they often extend QueryPlugin, or extend an
extension of QueryPlugin. If an admin turned off QueryPlugin a whole
lot of plugins would fail, and relatively inexplicably. Perhaps a
simple
reflection check of what the plugin extends would work, or just rely
on documentation, which is perhaps not as elegant but gets us to a
solution a lot faster.
I think this sounds like overengineering. Your plugins should check
for this sort of stuff on their own, and log/output stuff when they
are being used. If you start doing dependency management inside the
JSPWiki code, you'll probably end up shooting yourself in the foot
with circular references and really complex boolean logic.
Just try shooting for something really simple.
/Janne