private static void addRules(InternalKnowledgePackage pkg) { ReteooBuilder[] reteBuilders = getReteBuilders(RETEBUILDER_COUNT); System.out.println("Adding rules to ReteBuilder"); long start = System.currentTimeMillis(); for (ReteooBuilder reteBuilder : reteBuilders) { for (Rule rule : pkg.getRules()) reteBuilder.addRule((RuleImpl)rule); } System.out.println("Added "+RULE_COUNT+" rules to each ReteBuilder's in "+ format(System.currentTimeMillis()-start)); }
@Test(timeout=10000) public void testDynamicRuleRemovalsUnusedWorkingMemorySubNetwork() throws Exception { InternalKnowledgeBase kbase = (InternalKnowledgeBase) loadKnowledgeBase( "test_DynamicRulesWithSubnetwork1.drl", "test_DynamicRulesWithSubnetwork2.drl", "test_DynamicRulesWithSubnetwork.drl" ); assertEquals( 2, kbase.getKiePackages().size() ); assertEquals( 4, kbase.getPackagesMap().get("org.drools.compiler").getRules().size() ); kbase.removeRule( "org.drools.compiler", "Apply Discount on all books" ); assertEquals( 3, kbase.getPackagesMap().get("org.drools.compiler").getRules().size() ); kbase.removeRule( "org.drools.compiler", "like book" ); assertEquals( 2, kbase.getPackagesMap().get("org.drools.compiler").getRules().size() ); kbase.removeKiePackage( "org.drools.compiler" ); assertEquals( 1, kbase.getKiePackages().size() ); }
fail( builder1.getErrors().toString() ); final Pattern pattern1 = (Pattern) ((RuleImpl)builder1.getPackage("package1").getRules().iterator().next()).getLhs().getChildren().get( 0 ); final Constraint returnValue1 = pattern1.getConstraints().get( 0 ); " x + y " ); builder2.addPackage( packageDescr2 ); final Pattern pattern2 = (Pattern) ((RuleImpl)builder2.getPackage("package2").getRules().iterator().next()).getLhs().getChildren().get( 0 ); final Constraint returnValue2 = pattern2.getConstraints().get( 0 ); " x - y " ); builder3.addPackage( packageDescr3 ); final Pattern pattern3 = (Pattern) ((RuleImpl)builder3.getPackage("package3").getRules().iterator().next()).getLhs().getChildren().get( 0 ); final Constraint returnValue3 = pattern3.getConstraints().get( 0 );
@Test public void testEvalMethodCompare() { final KnowledgeBuilderImpl builder1 = new KnowledgeBuilderImpl(); final PackageDescr packageDescr1 = new PackageDescr( "package1" ); createEvalRule( packageDescr1, "1==1" ); builder1.addPackage( packageDescr1 ); final EvalCondition eval1 = (EvalCondition) ((RuleImpl)builder1.getPackage("package1").getRules().iterator().next()).getLhs().getChildren().get( 0 ); final KnowledgeBuilderImpl builder2 = new KnowledgeBuilderImpl(); final PackageDescr packageDescr2 = new PackageDescr( "package2" ); createEvalRule( packageDescr2, "1==1" ); builder2.addPackage( packageDescr2 ); final EvalCondition eval2 = (EvalCondition) ((RuleImpl)builder2.getPackage("package2").getRules().iterator().next()).getLhs().getChildren().get( 0 ); final KnowledgeBuilderImpl builder3 = new KnowledgeBuilderImpl(); final PackageDescr packageDescr3 = new PackageDescr( "package3" ); createEvalRule( packageDescr3, "1==3" ); builder3.addPackage( packageDescr3 ); final EvalCondition eval3 = (EvalCondition) ((RuleImpl)builder3.getPackage("package3").getRules().iterator().next()).getLhs().getChildren().get( 0 ); assertEquals( eval1, eval2 ); assertFalse( eval1.equals( eval3 ) ); assertFalse( eval2.equals( eval3 ) ); }
fail( builder1.getErrors().toString() ); final Pattern pattern1 = (Pattern) ((RuleImpl)builder1.getPackage("package1").getRules().iterator().next()).getLhs().getChildren().get( 0 ); final PredicateConstraint predicate1 = (PredicateConstraint) pattern1.getConstraints().get( 0 ); final Pattern pattern2 = (Pattern) ((RuleImpl)builder2.getPackage("package2").getRules().iterator().next()).getLhs().getChildren().get( 0 ); final PredicateConstraint predicate2 = (PredicateConstraint) pattern2.getConstraints().get( 0 ); "eval(x!=y)" ); builder3.addPackage( packageDescr3 ); final Pattern pattern3 = (Pattern) ((RuleImpl)builder3.getPackage("package3").getRules().iterator().next()).getLhs().getChildren().get( 0 ); final PredicateConstraint predicate3 = (PredicateConstraint) pattern3.getConstraints().get( 0 );
map = SerializationHelper.serializeObject( map ); kBase = (InternalKnowledgeBase) map.get( "x" ); org.kie.api.definition.rule.Rule[] rules = (org.kie.api.definition.rule.Rule[]) kBase.getPackage("org.drools.compiler").getRules().toArray(new org.kie.api.definition.rule.Rule[0] ); assertEquals( 3, rules.length );
((InternalWorkingMemory)session).flushPropagations(); org.kie.api.definition.rule.Rule[] rules = (org.kie.api.definition.rule.Rule[]) kBase.getPackage("org.drools.compiler.test").getRules().toArray(new org.kie.api.definition.rule.Rule[0] );
org.kie.api.definition.rule.Rule[] rules = (org.kie.api.definition.rule.Rule[]) kBase.getPackage("org.drools.compiler.test").getRules().toArray(new org.kie.api.definition.rule.Rule[0] );
((InternalWorkingMemory)session).flushPropagations(); org.kie.api.definition.rule.Rule[] rules = (org.kie.api.definition.rule.Rule[]) kBase.getPackage("org.drools.compiler.test").getRules().toArray(new org.kie.api.definition.rule.Rule[0] );
@Test(timeout=10000) public void testDynamicRuleRemovalsUnusedWorkingMemorySubNetwork() throws Exception { InternalKnowledgeBase kbase = (InternalKnowledgeBase) loadKnowledgeBase( "test_DynamicRulesWithSubnetwork1.drl", "test_DynamicRulesWithSubnetwork2.drl", "test_DynamicRulesWithSubnetwork.drl" ); assertEquals( 2, kbase.getKnowledgePackages().size() ); assertEquals( 4, kbase.getPackagesMap().get("org.drools.compiler").getRules().size() ); kbase.removeRule( "org.drools.compiler", "Apply Discount on all books" ); assertEquals( 3, kbase.getPackagesMap().get("org.drools.compiler").getRules().size() ); kbase.removeRule( "org.drools.compiler", "like book" ); assertEquals( 2, kbase.getPackagesMap().get("org.drools.compiler").getRules().size() ); kbase.removeKnowledgePackage( "org.drools.compiler" ); assertEquals( 1, kbase.getKnowledgePackages().size() ); }