第6章 ルールの統合
6.1. ナレッジエージェント リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
ナレッジエージェントは、ナレッジ API に埋め込まれているコンポーネントであり、追加のコンポーネントの必要なしにナレッジエージェントを使用できます。JBoss Enterprise BRMS Platform を利用している場合、同アプリケーションは、クラスパスに
drools-core
の依存関係しか含む必要はありません。つまり、drools
と mvel
JAR だけです。これ以外にルール固有の依存関係は存在しません。
パッケージにコンパイルされたルールは、ターゲットアプリケーションですぐに利用できます。
以下の例でエージェントを構築しますが、このエージェントはパスのストリングで指定したファイルから新たな KnowledgeBase を作成します。60秒ごと (デフォルト) にこれらのファイルをプルして更新されているか確認します。新規ファイルが見つかった場合は、新規の KnowledgeBase を作成します。変更セットがディレクトリのリソースを指定した場合、そのコンテンツも変更にあわせてスキャンされます。
KnowledgeAgent kagent = KnowledgeAgentFactory.newKnowledgeAgent( "MyAgent" ); kagent.applyChangeSet( ResourceFactory.newUrlResource( url ) ); KnowledgeBase kbase = kagent.getKnowledgeBase();
KnowledgeAgent kagent = KnowledgeAgentFactory.newKnowledgeAgent( "MyAgent" );
kagent.applyChangeSet( ResourceFactory.newUrlResource( url ) );
KnowledgeBase kbase = kagent.getKnowledgeBase();
KnowledgeAgent は、デフォルトの一部を変更できる設定も可能です。プロパティの例は "drools.agent.scanDirectories" ですが、デフォルトでは新規に追加されたかを確認するために指定のディレクトリにスキャンがかかります。
これは、
change-set.xml
ファイルの例です。
リソーススキャンはデフォルトで有効になっています。これはサービスであるため、開始する必要があります。ResourceFactory 経由で実行可能です。
ResourceFactory.getResourceChangeNotifierService().start(); ResourceFactory.getResourceChangeScannerService().start();
ResourceFactory.getResourceChangeNotifierService().start();
ResourceFactory.getResourceChangeScannerService().start();