package io.trygvis.rules.engine; import io.trygvis.rules.acme.AcmeIo; import org.drools.core.audit.WorkingMemoryConsoleLogger; import org.drools.core.common.DefaultFactHandle; 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 io = new AcmeIo(); var objects = io.load("acme.yaml"); var services = KieServices.Factory.get(); var container = services.getKieClasspathContainer(); var session = container.newKieSession(); 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.fireAllRules(); io.dump("phase-1", session.getFactHandles()); session.dispose(); } }