以前(4月3日)、「AspectJによる契約駆動開発 (準備+蘊蓄編) 」、「AspectJによる契約駆動開発 (実験編)」というエントリーを書いたのですが、それに対して“通りすがり”さん(なんでもいいからハンドル付けて欲しいな)に、有益な情報を提供していただきました。ありがとうございます。
まず、消滅してしまったと思ったiContractが、iContract2として最近復活したようです。
- iContract2 (http://www.icontract2.org/)
"iContract2 is a revival of Reliable System’s iContract project"とのこと。
さらに(by 通りすがりさん):
iContract2 のソースをちらっと見てみたけど、自前でソースをパースしている様子?
いまどきなら、AOPを使うよなぁと散策したところ、ちらほら発見。どれが一番気軽に使えるのかしら。
以下、通りすがりさんによる、AOPベースの契約(DbC; Design by Contract)ツールのリストです。
- DBC for Java (http://www.geocities.com/eliassonaand/project-home.html)
元々 Java 1.3 あたりから導入された Dynamic Proxy によりDbcを実現しようとしたものを利用して、JBoss AOP を使うらしい。 - Contract4J (http://www.contract4j.org/contract4j)
Java5 のアノテーションによる記述から AspectJ にて実現。http://www-128.ibm.com/developerworks/java/library/j-aopwork17.html にも紹介記事あり。 - Barter (http://barter.sourceforge.net/)
XDoclet と AspectJ を用いて実現。