11.16. 事前コンパイル済みルールパッケージの使用
KnowledgeAgent は、JBoss Rules 5.0 API に組み込まれたコンポーネントです。ナレッジストアを使用するために追加のコンポーネントは必要ありません。JBoss Enterprise BRMS Platform を使用している場合は、アプリケーションにクラスパスに drools-core 依存関係のみを含める必要があります(drools および mvel JAR のみ)。その他のルール固有の依存関係はありません。
事前にコンパイルされたルールパッケージに
KnowledgeAgent を使用します。これらのパッケージは、ローカルファイルシステムまたはリモートの場所(URL 経由でアクセス)に置くことができます。BRMS Platform (または ant タスク)のパッケージにルールを作成したら、ターゲットアプリケーションでエージェントを使用する準備が整います。
以下の例では、path 文字列で指定されたファイルから新しいナレッジベースを構築するエージェントを構築します。これらのファイルは、デフォルトである 60 秒ごとにポーリングして、更新されているかどうかを確認します。新しいファイルが見つかると、新しいナレッジベースが作成されます。変更セットがディレクトリーであるリソースを指定する場合、変更に対してもコンテンツがスキャンされます。
KnowledgeAgent kagent = KnowledgeAgentFactory.newKnowledgeAgent( "MyAgent" );
kagent.applyChangeSet( ResourceFactory.newUrlResource( url ) );
KnowledgeBase kbase = kagent.getKnowledgeBase();
KnowledgeAgent は、一部のデフォルトを変更できる設定を受け入れることができます。プロパティーの例は "drools.agent.scanDirectories" で、デフォルトでは指定されたディレクトリーは新しい追加のためにスキャンされ、これを無効にすることができます。
KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase();
KnowledgeAgentConfiguration kaconf = KnowledgeAgentFactory.newKnowledgeAgentConfiguration();
kaconf.setProperty( "drools.agent.scanDirectories", "false" ); // we don't scan directories, only files
KnowledgeAgent kagent = KnowledgeAgentFactory.newKnowledgeAgent( "test agent", kaconf );
// resource to the change-set xml for the resources to add
kagent.applyChangeSet( ResourceFactory.newUrlResource( url ) );
これは
change-set.xml の例です。
<change-set xmlns='http://drools.org/drools-5.0/change-set'";
xmlns:xs='http://www.w3.org/2001/XMLSchema-instance'
xs:schemaLocation='http://drools.org/drools-5.0/change-set drools-change-set-5.0.xsd' >
<add>
<resource source='http://localhost:9000/TEST.pkg' type='PKG' />
</add>
</change-set>
リソーススキャンはデフォルトで有効になっています。これはサービスであり、起動する必要があります。通知の場合と同じです。これは ResourceFactory を介して実行できます。
ResourceFactory.getResourceChangeNotifierService().start();
ResourceFactory.getResourceChangeScannerService().start();
BRMS UI のデプロイメント画面には、パッケージへの URL とダウンロードが含まれます。このパッケージを指定するには、change-set.xml ファイルに含めるパッケージ URI の URL が必要です。正確なバージョンを指定します。この場合はスナップショットになります。各スナップショットには独自の URL があります。最新バージョンが必要な場合は、NewSnapshot を LATEST に置き換えます。
デプロイメント画面の URL の一覧からパッケージファイル
(PKG) をダウンロードすることもできます。このファイルをディレクトリーに置き、KnowledgeAgent の file または dir 機能を使用します。これにより、更新については JBoss Enterprise BRMS Platform サーバーへ自動的に問い合わせますが、一部のシナリオでは望ましくない場合があります。