summaryrefslogtreecommitdiff
path: root/module/ri-engine/src/main/java/io/trygvis/rules/engine/DbIo.java
diff options
context:
space:
mode:
authorTrygve Laugstøl <trygvis@inamo.no>2021-01-07 12:20:02 +0100
committerTrygve Laugstøl <trygvis@inamo.no>2021-01-07 12:20:02 +0100
commit70d0ad3c9f37e44a9504a0d7f66e412a3f3bba6f (patch)
tree623815a975541ebba1fba8208bd2b3e984ceb9d4 /module/ri-engine/src/main/java/io/trygvis/rules/engine/DbIo.java
parentede2372547db659e7b0e9cfd3b531ff542018229 (diff)
downloadrules-sandbox-70d0ad3c9f37e44a9504a0d7f66e412a3f3bba6f.tar.gz
rules-sandbox-70d0ad3c9f37e44a9504a0d7f66e412a3f3bba6f.tar.bz2
rules-sandbox-70d0ad3c9f37e44a9504a0d7f66e412a3f3bba6f.tar.xz
rules-sandbox-70d0ad3c9f37e44a9504a0d7f66e412a3f3bba6f.zip
More Wireguard.
Fixing broken myapps too.
Diffstat (limited to 'module/ri-engine/src/main/java/io/trygvis/rules/engine/DbIo.java')
-rw-r--r--module/ri-engine/src/main/java/io/trygvis/rules/engine/DbIo.java8
1 files changed, 7 insertions, 1 deletions
diff --git a/module/ri-engine/src/main/java/io/trygvis/rules/engine/DbIo.java b/module/ri-engine/src/main/java/io/trygvis/rules/engine/DbIo.java
index 7f946d9..3173109 100644
--- a/module/ri-engine/src/main/java/io/trygvis/rules/engine/DbIo.java
+++ b/module/ri-engine/src/main/java/io/trygvis/rules/engine/DbIo.java
@@ -2,6 +2,7 @@ package io.trygvis.rules.engine;
import ch.qos.logback.core.util.FileUtil;
import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.SerializationFeature;
import com.fasterxml.jackson.databind.type.TypeFactory;
import com.fasterxml.jackson.dataformat.yaml.YAMLFactory;
import com.fasterxml.jackson.dataformat.yaml.YAMLGenerator;
@@ -12,6 +13,7 @@ import org.kie.api.runtime.rule.FactHandle;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
+import java.lang.reflect.InvocationTargetException;
import java.util.*;
import java.util.function.Function;
@@ -24,6 +26,7 @@ public class DbIo {
factory.enable(YAMLGenerator.Feature.USE_NATIVE_TYPE_ID);
factory.enable(YAMLGenerator.Feature.USE_NATIVE_OBJECT_ID);
mapper = new ObjectMapper(factory);
+ mapper.disable(SerializationFeature.FAIL_ON_EMPTY_BEANS);
var typeFactory = TypeFactory.defaultInstance()
.withClassLoader(new AcmeClassLoader(kieBase));
mapper.setTypeFactory(typeFactory);
@@ -40,8 +43,11 @@ public class DbIo {
try {
var type = mapper.getTypeFactory().findClass(object.type);
var x = mapper.treeToValue(object.data, type);
+ if (x == null) {
+ x = type.getDeclaredConstructor().newInstance();
+ }
items.add(x);
- } catch (ClassNotFoundException e) {
+ } catch (ClassNotFoundException | NoSuchMethodException | InstantiationException | IllegalAccessException | InvocationTargetException e) {
// ignore
}
}