Как мы можем разделить отдельные правила между файлами.drl в Правилах JBoss?

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

К сожалению, похоже, что нет никаких включений или модулей.

1 ответ

Решение

Невозможно включить правила из другого файла.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()  );
Другие вопросы по тегам