将drools guvnor 5.5升级为drools 6.0

时间:2014-05-13 10:53:05

标签: java drools jbpm drools-guvnor

我正在使用drools版本5.4,我使用了changeset.xml的url从我的java代码中调用了drools-guvnor。

现在我正在升级到drools 6.0工作台版本(让我知道是否使用了camel版本),如何从我的java代码中调用drools工作台。

由于 Ganesh Neelekani

1 个答案:

答案 0 :(得分:1)

Drools 6中的所有东西都变成了Mavenized。您可以使用新的Kie API来引用规则所在的Maven工件,而不是访问changeset.xml文件。

首先,您将规则打包为“kjar”(请参阅​​this article for more info about kjars)。然后,在您的应用程序中,您将需要添加以下依赖项:

<dependency>
    <groupId>org.kie</groupId>
    <artifactId>kie-ci</artifactId>
    <version>${drools.version}</version>
</dependency>

然后,要在运行时动态加载规则,请使用名为KieScanner的ResourceChangeScanner的替换

ReleaseId releaseId = KieServices.Factory.get().newReleaseId( "com.acme", "my-rules", "0.0.1-SNAPSHOT" );
KieContainer kc = KieServices.Factory.get().newKieContainer( releaseId );
KieScanner kscanner = KieServices.Factory.get().newKieScanner( kcontainer );
kscanner.scanNow() // this will dynamically resolve the rules artifact and build it

从那时起,您可以使用附加到该扫描仪的kcontainer来创建KieSessions。通过调用scanNow(),您告诉扫描程序轮询该工件以进行更改。它将自动构建检测到该工件的更新。您也可以通过再次调用scanNow()来强制重建。