Agreed that it's not very nice. Actually the "right" place to stop these things probably lies with the owner of the Play ClassLoader since these resources last longer than a server, which in turn lasts longer than a Play app (which is what Play.stop() shuts down).

Do you think I should introduce a lifecycle concept above the level of a server? e.g. PlayClasses.stop() (better name probably needed). We probably need design discussion about this. Also related to #1693 and #1085 which pose similar questions.