This code seems overwrought at this point in time. John H originally wrote this code under the assumption that extending the platform would best be done by writing new java classes. In practice, that has proven unnecessary for the most part since most features are implemented entirely in javascript, and the stock js feature loading works pretty well for this.
I'd like to clean up and simplify this code by removing the processing here, but if anyone's actually depending on it we'd need to approach it more cautiously. Ideally I'd like to do two things: - Simplify the primary task (loading javascript-based features) - Provide easy access to <Params> so that the few features that actually aren't pure javascript at this point (locked-domain and content rewriter) can get access to data that they need more easily. The first part is fairly straightforward, the second can vary in complexity from a simple getParams(foo) (mirroring the javascript interface) to an AOP-style plugin system. Guice helps a bit if the latter is necessary, but at this point it doesn't seem to be.

