Instead of considering things from jars to be reloadable if they are in the same package as subtypes that are also reloadable it is better to just make the test (isTopmostReloadable()) smarter. This test determines which reloadable type is the highest in the hierarchy and gets extra state added to it. With a 'dumb test' it was assuming further parents were reloadable because they were in the same package as the subtype. Now it does a more costly, more precise check. The original solution had problems because if you made some classes from a jar reloadable, that confused handled of other subclasses of those types in other jars (that did not share the same package name so would not have been made reloadable). This area of the code to do with a bit of a smack with a refactoring hammer to streamline it.
For the watching/updating from jars feature, these are the jar testdata