public void dump(InternalKnowledgeBase kBase) { dump(kBase.getRete()); }
public Set<BaseNode> collect(InternalKnowledgeBase kBase) { return collect(kBase.getRete()); }
public static void dumpRete(InternalKnowledgeBase kBase) { new ReteDumper().dump(kBase.getRete()); }
public static Set<BaseNode> collectRete(InternalKnowledgeBase kBase) { return new ReteDumper().collect(kBase.getRete()); }
public static void checkNodeMemories(KieSession session) { InternalKnowledgeBase kbase = (InternalKnowledgeBase)session.getKieBase(); for (EntryPointNode entryPointNode : kbase.getRete().getEntryPointNodes().values()) { checkNodeMemory( (InternalWorkingMemory) session, entryPointNode ); } }
private void checkRuleBase(final String name) throws Exception { final KnowledgeBuilderImpl builder = new KnowledgeBuilderImpl(); builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_" + name + ".drl" ) ) ); InternalKnowledgePackage pkg = builder.getPackage("org.drools.compiler.test"); final InternalKnowledgeBase kBase = (InternalKnowledgeBase) getKnowledgeBase(); kBase.addPackage( pkg ); if ( this.writeTree ) { writeRuleBase( kBase, name ); } final XStream xstream = createTrustingXStream(); final InternalKnowledgeBase goodKBase = (InternalKnowledgeBase) xstream.fromXML( getClass().getResourceAsStream( name ) ); nodesEquals( goodKBase.getRete(), kBase.getRete() ); }
@Before public void setUp() throws Exception { this.kBase = (InternalKnowledgeBase) KnowledgeBaseFactory.newKnowledgeBase(); this.buildContext = new BuildContext( kBase ); this.entryPoint = buildContext.getKnowledgeBase().getRete().getEntryPointNodes().values().iterator().next();; }
@Test public void testAssertObjectWithNoMatchingObjectTypeNode() { StatefulKnowledgeSessionImpl ksession = (StatefulKnowledgeSessionImpl)kBase.newKieSession(); final Rete rete = kBase.getRete(); assertEquals(1, rete.getObjectTypeNodes().size()); List list = new ArrayList(); ksession.insert(list); ksession.fireAllRules(); assertEquals(1, rete.getObjectTypeNodes().size()); }
private void checkDrl(String drl) { InternalKnowledgeBase kbase = (InternalKnowledgeBase) new KieHelper().addContent( drl, ResourceType.DRL ) .build( MultithreadEvaluationOption.YES ); Rete rete = kbase.getRete(); for (EntryPointNode entryPointNode : rete.getEntryPointNodes().values()) { traverse( entryPointNode ); } }
@Before public void setUp() throws Exception { this.kBase = (InternalKnowledgeBase) KnowledgeBaseFactory.newKnowledgeBase(); this.pctxFactory = kBase.getConfiguration().getComponentFactory().getPropagationContextFactory(); this.buildContext = new BuildContext(kBase); this.entryPoint = buildContext.getKnowledgeBase().getRete().getEntryPointNodes().values().iterator().next();; }
private InternalFactHandle createEventFactHandle(StatefulKnowledgeSessionImpl wm, InternalKnowledgeBase kBase) { // EntryPointNode Rete rete = kBase.getRete(); NodeFactory nFacotry = kBase.getConfiguration().getComponentFactory().getNodeFactoryService(); RuleBasePartitionId partionId = RuleBasePartitionId.MAIN_PARTITION; EntryPointNode entryPointNode = nFacotry.buildEntryPointNode(1, partionId, false, (ObjectSource) rete , EntryPointId.DEFAULT); WorkingMemoryEntryPoint wmEntryPoint = new NamedEntryPoint( EntryPointId.DEFAULT, entryPointNode, wm); EventFactHandle factHandle = new EventFactHandle(1, (Object) new Person(),0, (new Date()).getTime(), 0, wmEntryPoint); return factHandle; }
@Test public void testAdd() { /* * create a RuleBase with a single ObjectTypeNode we attach a * MockObjectSink so we can detect assertions and retractions */ InternalKnowledgeBase kBase = (InternalKnowledgeBase) KnowledgeBaseFactory.newKnowledgeBase(); BuildContext context = new BuildContext(kBase); NodeFactory nFacotry = kBase.getConfiguration().getComponentFactory().getNodeFactoryService(); EntryPointNode entryPoint = context.getKnowledgeBase().getRete().getEntryPointNodes().values().iterator().next(); final ObjectTypeNode objectTypeNode = nFacotry.buildObjectTypeNode( 0, entryPoint, new ClassObjectType( Object.class ), context ); objectTypeNode.attach(context); final MockObjectSink sink = new MockObjectSink(); objectTypeNode.addObjectSink( sink ); kBase.newKieSession(); // objectTypeNode. }
/** * Tests ObjectTypeNodes are correctly added to the Rete object * * @throws Exception */ @Test public void testObjectTypeNodes() throws Exception { final Rete rete = kBase.getRete(); final ObjectTypeNode objectTypeNode = new ObjectTypeNode(1, this.entryPoint, new ClassObjectType(Object.class), buildContext); objectTypeNode.attach(buildContext); final ObjectTypeNode stringTypeNode = new ObjectTypeNode(2, this.entryPoint, new ClassObjectType(String.class), buildContext); stringTypeNode.attach(buildContext); final List<ObjectTypeNode> list = rete.getObjectTypeNodes(); // Check the ObjectTypeNodes are correctly added to Rete assertEquals(3, list.size()); assertTrue(list.contains(objectTypeNode)); assertTrue(list.contains(stringTypeNode)); }
@Test(timeout = 40000L) public void test() { StringBuilder sb = new StringBuilder( 400 ); sb.append( "global java.util.List list;\n" ); for (int i = 0; i < 10; i++) { sb.append( getRule( i, "" ) ); } KieBase kbase = new KieHelper().addContent( sb.toString(), ResourceType.DRL ) .build( MultithreadEvaluationOption.YES ); EntryPointNode epn = ((InternalKnowledgeBase) kbase).getRete().getEntryPointNode( EntryPointId.DEFAULT ); ObjectTypeNode otn = epn.getObjectTypeNodes().get( new ClassObjectType( Integer.class ) ); assertTrue( ( (CompositePartitionAwareObjectSinkAdapter) otn.getObjectSinkPropagator() ).isHashed() ); KieSession ksession = kbase.newKieSession(); assertTrue( ( (InternalWorkingMemory) ksession ).getAgenda().isParallelAgenda() ); List<Integer> list = new DebugList<Integer>(); ksession.setGlobal( "list", list ); for (int i = 0; i < 10; i++) { ksession.insert( i ); ksession.insert( "" + i ); } ksession.fireAllRules(); assertEquals(10, list.size()); }
EntryPointNode epn = kbase.getRete().getEntryPointNode( EntryPointId.DEFAULT ); ObjectTypeNode otn = epn.getObjectTypeNodes().get( new ClassObjectType( Long.class) ); BetaNode beta1 = (BetaNode) otn.getObjectSinkPropagator().getSinks()[0];
Collection<EntryPointNode> entryPointNodes = sessionImpl.getKnowledgeBase().getRete().getEntryPointNodes().values();
final Rete rete = kBase.getRete(); final EntryPointNode entryPoint = new EntryPointNode(0, rete,
@Test public void testIsShadowed() { StatefulKnowledgeSessionImpl ksession = (StatefulKnowledgeSessionImpl)kBase.newKieSession(); // Create a Rete network with ObjectTypeNodes for List, Collection and ArrayList final Rete rete = kBase.getRete(); final ObjectTypeNode objectTypeNode = new ObjectTypeNode(1, this.entryPoint, new ClassObjectType(Cheese.class), buildContext); objectTypeNode.attach(buildContext); final MockObjectSink sink1 = new MockObjectSink(); objectTypeNode.addObjectSink(sink1); // There are no String ObjectTypeNodes, make sure its not propagated final Cheese cheese = new Cheese("brie", 15); final DefaultFactHandle h1 = new DefaultFactHandle(1, cheese); rete.assertObject(h1, pctxFactory.createPropagationContext(0, PropagationContext.Type.INSERTION, null, null, null), ksession); ksession.fireAllRules(); final Object[] results = (Object[]) sink1.getAsserted().get(0); }