One nit, but the majority concern I have is in the overall result of this approach. Seems to me this encourages ad hoc modification of the spec, leading to inconsistencies and incompatibility between gadgets. Why not use the existing <Requires>/<Optional> syntax? It's limited, but typically can get the job done, using a known pattern.
http://codereview.appspot.com/121064/diff/1/2 File java/gadgets/src/main/java/org/apache/shindig/gadgets/spec/ModulePrefs.java (right): http://codereview.appspot.com/121064/diff/1/2#newcode26 Line 26: import org.w3c.dom.*; please expand these wildcards, verbose as it may be. http://codereview.appspot.com/121064