率直な感想は、「なんだ、この使いにくいAPIは!」。
エレメントに対してルールを定義するというアイディアは賛同できるのですが、使えば使うほど辛くなってきます。なんでなんだろうと考えてみたんですが、APIが整理されていなくて、しかも命名が直感的じゃないってのが原因じゃないかという結論に至りました。
例えば、set-next-rule。set-nextって何? としばし悩んでみたり。要するに親子関係をセットするルールですよね。後、set-properties-ruleとbean-property-setter-ruleとset-property-rule・・・名前から違いがまったく見えてきません。それぞれの守備範囲も整理されてなくて微妙です。
元々Strutsの1ユーティリティだったことが災いしているのかもしれませんね。一度API層を全部解体して、再整理すると素晴らしいものができる気がしました。