From e84ef1adb8ff0d3b121ea12b2d3e15fa52eb2f00 Mon Sep 17 00:00:00 2001 From: Trygve Laugstøl Date: Wed, 6 Jan 2021 15:20:40 +0100 Subject: Splitting Main into two runs, Vpn and AcmeApps. --- module/acme/classpath.txt | 2 +- module/acme/src/main/java/io/trygvis/acme/AcmeAppsMain.java | 13 +++++++++++++ module/acme/src/main/java/io/trygvis/acme/VpnMain.java | 6 ++---- module/acme/src/main/resources/META-INF/kmodule.xml | 10 ++++++---- .../src/main/java/io/trygvis/rules/engine/DbIo.java | 13 +++++-------- .../src/main/java/io/trygvis/rules/engine/Engine.java | 6 +++--- 6 files changed, 30 insertions(+), 20 deletions(-) create mode 100644 module/acme/src/main/java/io/trygvis/acme/AcmeAppsMain.java (limited to 'module') diff --git a/module/acme/classpath.txt b/module/acme/classpath.txt index 5d086d8..ed8e5f6 100644 --- a/module/acme/classpath.txt +++ b/module/acme/classpath.txt @@ -17,7 +17,7 @@ com.hubspot.jinjava:jinjava:2.5.6:jar com.thoughtworks.xstream:xstream:1.4.14:jar com.zaxxer:SparseBitSet:1.2:jar commons-codec:commons-codec:1.11:jar -commons-io:commons-io:2.6:jar +commons-io:commons-io:2.8.0:jar commons-net:commons-net:2.2:jar io.trygvis.rules-sandbox:ri-engine:1.0-SNAPSHOT:jar io.trygvis.rules-sandbox:ri-wireguard:1.0-SNAPSHOT:jar diff --git a/module/acme/src/main/java/io/trygvis/acme/AcmeAppsMain.java b/module/acme/src/main/java/io/trygvis/acme/AcmeAppsMain.java new file mode 100644 index 0000000..f21ebc3 --- /dev/null +++ b/module/acme/src/main/java/io/trygvis/acme/AcmeAppsMain.java @@ -0,0 +1,13 @@ +package io.trygvis.acme; + +import io.trygvis.rules.engine.Engine; + +import java.io.IOException; + +public class AcmeAppsMain { + public static void main(String[] args) throws IOException { + try (var engine = new Engine("acme-apps", "acme.yaml")) { + engine.io.dump("acme/apps", engine.session.getFactHandles()); + } + } +} diff --git a/module/acme/src/main/java/io/trygvis/acme/VpnMain.java b/module/acme/src/main/java/io/trygvis/acme/VpnMain.java index d5f986d..d6c8061 100644 --- a/module/acme/src/main/java/io/trygvis/acme/VpnMain.java +++ b/module/acme/src/main/java/io/trygvis/acme/VpnMain.java @@ -10,10 +10,8 @@ import java.io.IOException; public class VpnMain { public static void main(String[] args) throws IOException { - try (var engine = new Engine("acme.yaml")) { - engine.io.dump("phase-1", engine.session.getFactHandles()); - - engine.io.dump("vpn0", engine.session.getFactHandles(), (Object o) -> + try (var engine = new Engine("acme-wireguard", "acme.yaml")) { + engine.io.dump("acme/wireguard", engine.session.getFactHandles(), (Object o) -> o.getClass().getName().contains("Wg") || o instanceof Machine || o instanceof DnsEntry diff --git a/module/acme/src/main/resources/META-INF/kmodule.xml b/module/acme/src/main/resources/META-INF/kmodule.xml index 351a25e..da34a59 100644 --- a/module/acme/src/main/resources/META-INF/kmodule.xml +++ b/module/acme/src/main/resources/META-INF/kmodule.xml @@ -3,9 +3,11 @@ xmlns="http://www.drools.org/xsd/kmodule" xsi:schemaLocation="http://www.drools.org/xsd/kmodule https://www.drools.org/xsd/kmodule_7_1.xsd"> - - - + + + + + + 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 b835da5..7f946d9 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 @@ -1,5 +1,6 @@ package io.trygvis.rules.engine; +import ch.qos.logback.core.util.FileUtil; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.type.TypeFactory; import com.fasterxml.jackson.dataformat.yaml.YAMLFactory; @@ -41,7 +42,7 @@ public class DbIo { var x = mapper.treeToValue(object.data, type); items.add(x); } catch (ClassNotFoundException e) { - throw new IOException(e); + // ignore } } @@ -183,13 +184,9 @@ public class DbIo { } public void dump(String s, Collection factHandles, Function filter) throws IOException { - var out = new File("out"); + var yamlFile = new File("out", s + ".yaml"); - if (!out.isDirectory()) { - if (!out.mkdirs()) { - throw new IOException("Could not create directory: " + out); - } - } + FileUtil.createMissingParentDirectories(yamlFile); var facts = new TreeMap, FactCollection>(Comparator.comparing(Class::getName)); for (var handle : factHandles) { @@ -212,7 +209,7 @@ public class DbIo { } var factory = mapper.getFactory(); - try (var writer = new FileWriter(new File(out, s + ".yaml")); + try (var writer = new FileWriter(yamlFile); var g = factory.createGenerator(writer)) { for (var e : facts.entrySet()) { var name = e.getKey().getName(); 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 2565112..f624603 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 @@ -13,15 +13,15 @@ public class Engine implements Closeable { public final DbIo io; public final KieSession session; - public Engine(String database) throws IOException { + public Engine(String k, String database) throws IOException { var services = KieServices.Factory.get(); var container = services.getKieClasspathContainer(); - var kieBase = container.getKieBase(); + var kieBase = container.getKieBase(k); io = new DbIo(kieBase); var objects = io.load(database); - session = container.newKieSession(); + session = container.newKieSession(k); session.setGlobal("te", new TemplateEngine()); -- cgit v1.2.3