2008-09-18 5 views
3

Nous utilisons JBoss Rules (a.k.a. Drools) et avons plusieurs fichiers .drl qui contiennent chacun plusieurs règles. Y at-il un moyen d'éviter la duplication entre les fichiers, afin que nous puissions définir des règles communes qui sont disponibles pour plus d'un fichier .drl?Comment pouvons-nous partager des règles individuelles entre les fichiers .drl dans les règles JBoss?

Malheureusement, il ne semble y avoir aucune sorte de inclure ou un module de facilité.

Répondre

2

Il est impossible d'inclure des règles provenant d'un autre fichier .drl à partir d'un fichier .drl.

Vous pouvez cependant ajouter deux fichiers .drl à la même ruleBase et ils fonctionneront comme s'ils se trouvaient dans le même fichier.

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