I am discovering jboss rules (drools 4.0.7). I try to reproduce the example 
'State' of drools. 
The drools version works fine.
But in my version, the rules are not fired and I do not understand why .... It 
is so basic I do not see where my mistake is. Please help

the rule

  | package examples.statemachine
  |  
  | import com.corp.drools.examples.statemachine.State;
  |  
  | rule Bootstrap
  |     when
  |             a : State(name == "A" )
  |     then
  |             System.out.println(a.getName() + " finished" );
  |             a.setState( State.STATE_FINISHED );
  | end
  | 
 

the class State 
    
  | public static final Integer STATE_NOTRUN  = new Integer(0);
  | public static final Integer STATE_FINISHED = new Integer(1);
  | 
  | public State(final String name) {
  |   this.name = name;
  |   this.state = State.STATE_NOTRUN;
  | }
  | 
  | private String name;
  | private Integer state;
  | // ... getter, setter 
  | 

the test case :

  | public void test2() throws Exception {
  |   final PackageBuilder builder = new PackageBuilder();
  |   builder.addPackageFromDrl(new InputStreamReader(
  | 
this.getClass().getClassLoader().getResourceAsStream("examples/statemachine/rules.drl")));
  | 
  |   RuleBase ruleBase = RuleBaseFactory.newRuleBase();
  |   ruleBase.addPackage(builder.getPackage());
  |   StatefulSession session = ruleBase.newStatefulSession();
  | 
  |   WorkingMemoryConsoleLogger logger = new 
WorkingMemoryConsoleLogger(session);
  | 
  |   State[] objects = new State[] { new State("A") };
  |   session.insert(objects[0]);
  |   session.fireAllRules();
  |  
  |   session.dispose();
  |   Assert.assertEquals(State.STATE_FINISHED, objects[0].getState());
  | }
  | 

the test case output :
OBJECT ASSERTED value:A-0 factId: 1


View the original post : 
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4154364#4154364

Reply to the post : 
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4154364
_______________________________________________
jboss-user mailing list
jboss-user@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/jboss-user

Reply via email to