У меня есть такой код:
StatefulKnowledgeSession kSession = getKnowledgeBase().newStatefulKnowledgeSession();
this.insertFactsToWorkingMemory(inputCollection, kSession);
kSession.fireAllRules(new NotificationRuleNameFilter(name));
Что insertFactsToWorkingMemory
делает, это берет атрибуты объекта и просто делает WorkingMemory.insert(fact)
.
Правила хранятся в файле .drl
ивыглядит так:
rule "USER.PASSWORD_RENEW"
when
$config : UserSettings ( )
eval( true )
then
DroolsNotificationResult fact0 = new DroolsNotificationResult();
fact0.setBusinessRulePassed( true );
insert(fact0 );
end
Имя правила и имя, переданное в NotificationRuleNameFilter(name)
, идеально совпадают. Любые подсказки?