http://docs.jboss.org/drools/release/6.0.1.Final/drools-docs/html_single/index.html#d0e10827
Integration、他との連携です。
IV. Drools Integration
9. Drools Commands
KieSession で使う各種メソッドに対応して、 org.kie.api.command.Command インターフェースを implements した各種クラスが用意されている。StatelessKieSession、RESTアクセス、JPAなど、様々な場合で利用されている。背後で CommandBasedStatefulKnowledgeSession などが動作し、各メソッドはこのコマンドクラスを介して実行されている(コマンドパターン)。これらのコマンドは marshalling/unmarshalling 可能で、以下の3つのフォーマットが選択できる。
9.1. API
9.1.1. XStream
XStream ってメジャーなんですかね? Droolsでは様々なところで使っています。決め打ちの方法でオブジェクトをXML化するので、JAXBみたいにアノテートが不要なのがメリットなのかな。
9.1.2. JSON
9.1.3. JAXB
9.2. Commands supported
以下、ビルトインの Command がリストされている。自分で GenericCommand を extends してもいい。
10. CDI
CDI、つまりアプリを作るときの Integration というわけですね。
10.1. Introduction
10.2. Annotations
まあ、期待通りに使えるはず。jBPMだともうちょっとややこしくなると思う。 参照) https://github.com/jsvitak/jbpm-6-examples/tree/master/rewards-basic
10.2.1. @KRealaseId
10.2.2. @KContainer
10.2.3. @KBase
10.2.4. @KSession for KieSession
10.2.5. @KSession for StatelessKieSession
10.3. API Example Comparison
11. Integration with Spring
たぶん、Drools レベルでは、やっかいなところは無いはず。
11.1. Important Changes for Drools 6.0
11.2. Integration with Drools Expert
11.2.1. KieModule
11.2.2. KieBase
11.2.3. IMPORTANT NOTE
11.2.4. KieSessions
11.2.5. Event Listeners
11.2.6. Loggers
11.2.7. Defining Batch Commands
11.2.8. Persistence
11.3. Integration with jBPM Human Task
結構面倒な匂いがする。そんなに Spring でやりたいですかねえ。問題が起こったときに API レベルで対応できないのが嫌なんですが。
しかしそもそも、これは jBPM のドキュメントのほうに書けばよかったのではないか。
11.3.1. How to configure Spring with jBPM Human task
jBPM 6.1.0 で大きな改善が入るので、気になる人はこのブログチェックしてください。
http://mswiderski.blogspot.jp/2014/01/jbpm-6-with-spring.html
13. Drools Camel Server
ステートレスなルール実行サーバーとして動作可能な、WAR です。この WAR のインフラとして、上記 Camel integratoin が使われています。REST エンドポイントを叩きます。