How can we share individual rules between .drl fil

2019-07-04 20:46发布

We are using JBoss Rules (a.k.a. Drools) and have several .drl files that each contain several rules. Is there a way to avoid duplication between files, so that we can define common rules that are available to more than one .drl file?

Unfortunately, there does not seem to be any kind of include or module facility.

1条回答
SAY GOODBYE
2楼-- · 2019-07-04 21:37

There is no way of including rules from another .drl file from within a .drl file.

You can however add two .drl files to the same ruleBase and they will work as if they were in the same file.

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()  );
查看更多
登录 后发表回答