package org.drools.testframework; import org.drools.Address; import org.drools.KnowledgeBase; import org.drools.KnowledgeBaseFactory; import org.drools.builder.KnowledgeBuilder; import org.drools.builder.KnowledgeBuilderFactory; import org.drools.builder.ResourceType; import org.drools.io.Resource; import org.drools.io.ResourceFactory; import org.drools.runtime.StatefulKnowledgeSession; import org.drools.runtime.rule.FactHandle; import org.junit.Test; public class ExternalUpdateInheritanceTest { @Test public void testExternalInheritanceFactUpdates() { KnowledgeBase knowledgeBase = null; KnowledgeBuilder builder = KnowledgeBuilderFactory.newKnowledgeBuilder(); Resource newClassPathResource = ResourceFactory.newClassPathResource("org/drools/lang/inheritance.drl"); builder.add(newClassPathResource, ResourceType.DRL); if (builder.hasErrors()) { throw new RuntimeException(builder.getErrors().toString()); } knowledgeBase = KnowledgeBaseFactory.newKnowledgeBase(); knowledgeBase.addKnowledgePackages(builder.getKnowledgePackages()); StatefulKnowledgeSession ksession = knowledgeBase.newStatefulKnowledgeSession(); Address address = new Address(); address.setSuburb("xyz"); FactHandle addressHandle = ksession.insert(address); int rulesFired = ksession.fireAllRules(); address.setStreet("123 some street"); ksession.update(addressHandle, address); System.out.println(rulesFired); } }