Drools IDEではじめる

DroolsをやるにはまずはIDEからです。基本的にDroolsを動作させるのにミニマムなセットは以下のところからDrools 5.0.0.CR1 BinariesとDrools 5.0.0.CR1 IDEをダウンロードして、unzipします。
ダウンロードはこちらから. http://www.jboss.org/drools/downloads.html
IDEはunzipしたらeclipse plugin形式なのでfeaturesとpluginフォルダをeclipseにコピーします。(Ganymede3.4以上で、私は3.4.1と3.4.2で動かしました)
wizardも用意されてるので簡単にDroolsProjectもできます、そこには依存jarもだいたいコミコミです。実装をいろいろやってくると3rdパーティのjarが必要になってきますが、先程ダウンロードしたDrools 5.0.0.CR1 Binariesのunzipした中にlibフォルダが入っていて全部入ってるので適時そこからもっていくのがてっとりばやいっす。

で、まず最初にしたほうがいいのはRuntimeの設定です。eclipseのメニューから、[ウィンドゥ]-[設定]とたどってpreferenceを出します。そこでDroolsを左から選択し、installed Drools Runtimeをクリックします。すると以下のような画面がでてくるので自分でBinaryをunzipしたフォルダを指定するっす。
f:id:wkzk:20090320105939j:image
これで終了です。では次にDroolsProjectを作ります。
メニューから[新規]-[その他]-[Drools]-[DroolsProject]を選択すると次に以下のように作成したいひな形を選択できるようになるのでせっかくなので全部クリックします。
f:id:wkzk:20090320105940j:image
あとは最初に設定したランタイムを選択して、終了っす!
クラスとルールができあがるので後はいろいろ作ったり、直したりでいろいろ試せるっす。
IDEの目玉の機能1
コード補完。ルール編集時にJavaのクラスやDrools記述をすることがありますがコード補完してくれます。
IDEの目玉の機能2
Rete-view
ReteのTreeでどのようにマッチングするんだろう、という流れがなんとなくつかめます。drlファイルを選択して、rete-viewタブをクリックすればみれます。ちょっと複雑だったり、Bug?とかでたまに見れない時があるけど。
f:id:wkzk:20090320105941j:image
IDEの目玉の機能3
Audit
実際にworkingMemory上でどのように実行されてるのか詳細を確認したい場合はAuditViewを活用するっす。sampleで作成されるSourceに

KnowledgeBase kbase = readKnowledgeBase();
StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession();
KnowledgeRuntimeLogger logger = KnowledgeRuntimeLoggerFactory.newFileLogger(ksession, "test");
// go !
Message message = new Message();
message.setMessage("Hello World");
message.setStatus(Message.HELLO);
ksession.insert(message);
ksession.fireAllRules();
logger.close();

ってあると思うんだけど、KnowledgeRuntimeLoggerを利用することでAuditログが確認できるようになる、上記の例ではtest.logがJava実行時にeclipseプロジェクト直下にできあがります。できてしまえばAuditビューを表示させて出力されたtest.logをビュー右上にあるアイコンからOpenします。
f:id:wkzk:20090320105942j:image
するとこんな感じで実行状況がわかるっす。アンビリーバボーでっせー!
他にもあるけど、基本的なDroolsで遊ぶのはこれだけの環境でも十分だぜ!