From b8699860653e593271e50c8ba1b73f66fcb6287c Mon Sep 17 00:00:00 2001 From: Trygve Laugstøl Date: Wed, 6 Jan 2021 12:05:23 +0100 Subject: Starting on splitting up into different modules. --- .../main/java/io/trygvis/rules/engine/Main.java | 53 ++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 module/ri-engine/src/main/java/io/trygvis/rules/engine/Main.java (limited to 'module/ri-engine/src/main/java/io/trygvis/rules/engine/Main.java') diff --git a/module/ri-engine/src/main/java/io/trygvis/rules/engine/Main.java b/module/ri-engine/src/main/java/io/trygvis/rules/engine/Main.java new file mode 100644 index 0000000..7c96be6 --- /dev/null +++ b/module/ri-engine/src/main/java/io/trygvis/rules/engine/Main.java @@ -0,0 +1,53 @@ +package io.trygvis.rules.engine; + +import io.trygvis.rules.acme.AcmeIo; +import io.trygvis.rules.dns.DnsEntry; +import io.trygvis.rules.machine.Machine; +import io.trygvis.rules.network.Ipv4Address; +import io.trygvis.rules.network.Ipv4Cidr; +import org.drools.core.audit.WorkingMemoryConsoleLogger; +import org.kie.api.KieServices; +import org.kie.api.event.rule.AgendaEventListener; +import org.kie.api.event.rule.RuleRuntimeEventListener; + +import java.io.IOException; + +public class Main { + public static void main(String[] args) throws IOException { + var services = KieServices.Factory.get(); + var container = services.getKieClasspathContainer(); + var kieBase = container.getKieBase(); + + var io = new AcmeIo(kieBase); + var objects = io.load("acme.yaml"); + + var session = container.newKieSession(); + + session.setGlobal("te", new TemplateEngine()); + + for (var object : objects) { + System.out.println("object = " + object); + session.insert(object); + } + + var logger = new WorkingMemoryConsoleLogger(session); + session.addEventListener((AgendaEventListener) logger); + session.addEventListener((RuleRuntimeEventListener) logger); + + session.getAgenda().getAgendaGroup("init").setFocus(); + + session.fireAllRules(); + + io.dump("phase-1", session.getFactHandles()); + + io.dump("vpn0", session.getFactHandles(), (Object o) -> + o.getClass().getName().contains("Wg") + || o instanceof Machine + || o instanceof DnsEntry + || o instanceof Ipv4Cidr + || o instanceof Ipv4Address + ); + + session.dispose(); + } +} -- cgit v1.2.3