From edf11b6ac493ea0b9cc5e8fffc8568ccdf6d7bbb Mon Sep 17 00:00:00 2001 From: Mahmoud Ben Hassine Date: Sun, 6 Dec 2015 22:44:04 +0100 Subject: [PATCH] implement feature #30 : log registered rules at engine startup --- .../org/easyrules/core/DefaultRulesEngine.java | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/easyrules-core/src/main/java/org/easyrules/core/DefaultRulesEngine.java b/easyrules-core/src/main/java/org/easyrules/core/DefaultRulesEngine.java index 1febc42..ec51755 100644 --- a/easyrules-core/src/main/java/org/easyrules/core/DefaultRulesEngine.java +++ b/easyrules-core/src/main/java/org/easyrules/core/DefaultRulesEngine.java @@ -35,6 +35,8 @@ import java.util.TreeSet; import java.util.logging.Level; import java.util.logging.Logger; +import static java.lang.String.format; + /** * Default {@link org.easyrules.api.RulesEngine} implementation. *

@@ -102,12 +104,13 @@ class DefaultRulesEngine implements RulesEngine { public void fireRules() { if (rules.isEmpty()) { - LOGGER.warning("No rules registered! Nothing to apply."); + LOGGER.warning("No rules registered! Nothing to apply"); return; } logEngineParameters(); sortRules(); + logRegisteredRules(); applyRules(); } @@ -118,6 +121,7 @@ class DefaultRulesEngine implements RulesEngine { private void applyRules() { + LOGGER.info("Rules evaluation started"); for (Rule rule : rules) { final String name = rule.getName(); @@ -183,6 +187,14 @@ class DefaultRulesEngine implements RulesEngine { LOGGER.log(Level.INFO, "Skip on first failed rule: {0}", parameters.isSkipOnFirstFailedRule()); } + private void logRegisteredRules() { + LOGGER.log(Level.INFO, "Registered rules:"); + for (Rule rule : rules) { + LOGGER.log(Level.INFO, format("Rule { name = '%s', description = '%s', priority = '%s'}", + rule.getName(), rule.getDescription(), rule.getPriority())); + } + } + private Rule asRule(final Object rule) { Rule result; if (Utils.getInterfaces(rule).contains(Rule.class)) {