2008-09-18 5 views
3

Мы используем JBoss Rules (a.k.a. Drools) и имеем несколько файлов .drl, каждый из которых содержит несколько правил. Есть ли способ избежать дублирования между файлами, чтобы мы могли определять общие правила, доступные для более чем одного файла .drl?Как мы можем делиться отдельными правилами между файлами .drl в JBoss Rules?

К сожалению, не существует Включает или модуль.

ответ

2

Невозможно включить правила из другого .drl-файла из файла .drl.

Вы можете добавить два файла .drl к одной и той же базе правил, и они будут работать так, как если бы они были в одном файле.

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() );