Bukkit/Bukkit — pull request #497 by Wolvereness (2012-01-23 23:12:43+00:00)
Title: Fixed plugin loader

This makes the plugin loader dynamic, and handle dependencies and soft dependencies perfectly. Nothing breaks with this change; circular hard dependencies never worked in the first place.

Consistent new load priority:
Plugin with no dependencies or soft dependencies remaining to load
Arbitrary plugin involved with circular soft dependency

Any soft-depend that will not be fulfilled will be ignored.
Any plugin with a hard-depend that will not be fulfilled will outright fail.
Any plugin that has a circular hard depend (that is, of the set they all have another dependency in the set) will outright fail to load at end.