3.5. KIE スキャナーを使用した KIE コンテナーの監視および更新
Red Hat Process Automation Manager の KIE スキャナーは、Maven リポジトリーで Red Hat Process Automation Manager プロジェクトの新しい SNAPSHOT
バージョンを監視してから、プロジェクトの最新バージョンを指定された KIE コンテナーにデプロイします。開発環境に KIE スキャナーを使用して、新規バージョンが利用できるようになった時に、Red Hat Process Automation Manager プロジェクトのデプロイメントをより効率的に管理できます。
実稼働環境では、誤ってまたは予期せずにプロジェクトが更新されてしまわないように、SNAPSHOT
のプロジェクトバージョンで、KIE スキャナーを使用しないでください。KIE スキャナーは、SNAPSHOT
プロジェクトバージョンを使用する開発環境向けに設計されています。
ビジネスプロセスと KIE スキャナーを併用しないようにしてください。プロセスで KIE スキャナーを使用すると、予期せぬ更新が発生し、プロセスインスタンスの実行と互換性のない変更が加えられた場合に、長時間実行中のプロセスでエラーが発生する可能性があります。
前提条件
-
kie-ci.jar
ファイルを Red Hat Process Automation Manager プロジェクトのクラスパスに用意しておく。
手順
プロジェクト内の、該当する
.java
クラスで、以下のコード例のように、KIE スキャナーを登録して起動します。KIE コンテナー向けの KIE スキャナーの登録および起動
import org.kie.api.KieServices; import org.kie.api.builder.ReleaseId; import org.kie.api.runtime.KieContainer; import org.kie.api.builder.KieScanner; ... KieServices kieServices = KieServices.Factory.get(); ReleaseId releaseId = kieServices .newReleaseId("com.sample", "my-app", "1.0-SNAPSHOT"); KieContainer kContainer = kieServices.newKieContainer(releaseId); KieScanner kScanner = kieServices.newKieScanner(kContainer); // Start KIE scanner for polling the Maven repository every 10 seconds (10000 ms) kScanner.start(10000L);
この例では、KIE スキャナーは一定の間隔で実行されるように設定しています。KIE スキャナーの最小のポーリング間隔は 1 ミリ秒 (ms) で、最大のポーリング間隔はデータ型
long
の最大値です。ポーリングの間隔が 0 以下の場合は、java.lang.IllegalArgumentException: pollingInterval must be positive
エラーが発生します。また、KIE スキャナーをscanNow()
メソッドで呼び出してオンデマンドで実行するように設定することも可能です。この例のプロジェクトグループ ID、アーティファクト ID、およびバージョン (GAV) の設定は、
com.sample:my-app:1.0-SNAPSHOT
で設定されています。プロジェクトバージョンには、-SNAPSHOT
の接尾辞を含めて、KIE スキャナーが指定のアーティファクトバージョンの最新ビルドを取得できるようにする必要があります。1.0.1-SNAPSHOT
への更新など、スナップショットのプロジェクトバージョン番号を変更する場合は、KIE スキャナー設定の GAV 定義のバージョンも更新する必要があります。KIE スキャナーは、com.sample:my-app:1.0
など、静的バージョンのプロジェクトの更新を取得しません。Maven リポジトリーの
settings.xml
ファイルで、updatePolicy
設定をalways
に指定し、KIE スキャナーが正しく機能するようにします。<profile> <id>guvnor-m2-repo</id> <repositories> <repository> <id>guvnor-m2-repo</id> <name>BA Repository</name> <url>http://localhost:8080/business-central/maven2/</url> <layout>default</layout> <releases> <enabled>true</enabled> <updatePolicy>always</updatePolicy> </releases> <snapshots> <enabled>true</enabled> <updatePolicy>always</updatePolicy> </snapshots> </repository> </repositories> </profile>
KIE スキャナーがポーリングを開始した後に、KIE スキャナーが指定の KIE コンテナーで
SNAPSHOT
プロジェクトの更新バージョンを検出した場合に、KIE スキャナーは自動的に新しいプロジェクトバージョンをダウンロードして、新規プロジェクトのインクリメンタルビルドをトリガーします。この時点以降、KIE コンテナーから作成された新規のKieBase
オブジェクトおよびKieSession
オブジェクトで、新規プロジェクトバージョンが使用されるようになります。KIE Server API を使用して KIE スキャナーを開始または停止する方法は、KIE API を使用した Red Hat Process Automation Manager の操作 を参照してください。