我们如何在JBoss Rules中的.drl文件之间共享单独的规则?
时间:2020-03-06 14:20:57 来源:igfitidea点击:
我们正在使用JBoss规则(也称为Drools),并且有几个.drl文件,每个文件都包含多个规则。有没有一种方法可以避免文件之间的重复,以便我们可以定义可用于多个.drl文件的通用规则?
不幸的是,似乎没有任何类型的包含或者模块功能。
解决方案
无法在.drl文件中包含来自另一个.drl文件的规则。
但是,我们可以将两个.drl文件添加到相同的ruleBase中,它们将像在同一文件中一样工作。
PackageBuilder builder = new PackageBuilder(); builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "common.drl" ) ) ); builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "rules1.drl" ) ) ); RuleBase ruleBase = RuleBaseFactory.newRuleBase(); ruleBase.addPackage( builder.getPackage() );