summaryrefslogtreecommitdiff
path: root/module/ri-engine/src/main/java/io/trygvis/rules/engine/Engine.java
diff options
context:
space:
mode:
Diffstat (limited to 'module/ri-engine/src/main/java/io/trygvis/rules/engine/Engine.java')
-rw-r--r--module/ri-engine/src/main/java/io/trygvis/rules/engine/Engine.java27
1 files changed, 18 insertions, 9 deletions
diff --git a/module/ri-engine/src/main/java/io/trygvis/rules/engine/Engine.java b/module/ri-engine/src/main/java/io/trygvis/rules/engine/Engine.java
index 4a49ca2..fbb79aa 100644
--- a/module/ri-engine/src/main/java/io/trygvis/rules/engine/Engine.java
+++ b/module/ri-engine/src/main/java/io/trygvis/rules/engine/Engine.java
@@ -29,7 +29,7 @@ public class Engine implements Closeable {
public final DbIo io;
public final KieSession session;
- public Engine(String name, File database, File output, String[] agendaGroups, File[] modules) throws IOException {
+ public Engine(String name, File[] databases, File output, String[] agendaGroups, File[] modules) throws IOException {
logger.info("Getting KieServices");
var services = KieServices.Factory.get();
@@ -85,20 +85,29 @@ public class Engine implements Closeable {
session.addEventListener((AgendaEventListener) l);
session.addEventListener((RuleRuntimeEventListener) l);
- session.setGlobal("te", new JinjavaTemplateEngine(templateLoader, output));
+ var te = session.getGlobals().get("te");
+ if (te != null) {
+ session.setGlobal("te", new JinjavaTemplateEngine(templateLoader, output));
+ }
logger.info("Loading data");
io = new DbIo(container, kieBase);
- var objects = io.load(database);
- if (objects.isEmpty()) {
- logger.warn("Did not load any objects, something is wrong");
- return;
- }
+ List<Object> allObjects = new ArrayList<>();
+ for (File database : databases) {
+ var objects = io.load(database);
- logger.info("Loaded {} objects", objects.size());
+ if (objects.isEmpty()) {
+ logger.warn("Did not load any objects, something is wrong");
+ return;
+ }
+
+ logger.info("Loaded {} objects from {}", objects.size(), objects.size());
+ allObjects.addAll(objects);
+ }
+ logger.info("Loaded {} objects", allObjects.size());
- for (var object : objects) {
+ for (var object : allObjects) {
logger.info("object = " + object);
session.insert(object);
}