Problem with Drools 0
Recently, I has been working withDrools component.
I found a very interesting thing.
The problem is that drool engine do not fire conditions which use “after” operator.
This condition does not always work. Error case requires that external events come to the system immediately.
It’s mean that if to set timer for 10 milliseconds between coming events everything works fine.
If events comes into the system continuously (without timer, see my code below) after some time rules not fire.
case_13.drl
global RuleResult result;
global RulesEngine rulesEngine;
declare Map
@role( event )
end
rule "State 1"
when
$addToCartEvent1 : Map( this.get("eventName") == "AddToCart1" )
then
System.out.println("State 1 ");
end
rule "State 2"
when
$addToCartEvent1 : Map( this.get("eventName") == "AddToCart1" )
$addToCartEvent2 : Map( this.get("eventName") == "AddToCart2", this after $addToCartEvent1)
then
System.out.println("State 2");
end
rule "State 3"
when
$addToCartEvent1 : Map( this.get("eventName") == "AddToCart1" )
$addToCartEvent2 : Map( this.get("eventName") == "AddToCart2", this after $addToCartEvent1)
$addToCartEvent3 : Map( this.get("eventName") == "AddToCart3", this after $addToCartEvent2 )
then
System.out.println("State 3 ");
end
rule "State 4"
when
$addToCartEvent1 : Map( this.get("eventName") == "AddToCart1" )
$addToCartEvent2 : Map( this.get("eventName") == "AddToCart2", this after $addToCartEvent1 )
$addToCartEvent3 : Map( this.get("eventName") == "AddToCart3", this after $addToCartEvent2 )
$addToCartEvent4 : Map( this.get("eventName") == "AddToCart4", this after $addToCartEvent3 )
then
System.out.println("State 4 ");
end
rule "State 5"
when
$addToCartEvent1 : Map( this.get("eventName") == "AddToCart1" )
$addToCartEvent2 : Map( this.get("eventName") == "AddToCart2", this after $addToCartEvent1 )
$addToCartEvent3 : Map( this.get("eventName") == "AddToCart3", this after $addToCartEvent2 )
$addToCartEvent4 : Map( this.get("eventName") == "AddToCart4", this after $addToCartEvent3 )
$addToCartEvent5 : Map( this.get("eventName") == "AddToCart5", this after $addToCartEvent4 )
then
System.out.println("State 5 ");
end
rule "State 6"
when
$addToCartEvent1 : Map( this.get("eventName") == "AddToCart1" )
$addToCartEvent2 : Map( this.get("eventName") == "AddToCart2", this after $addToCartEvent1 )
$addToCartEvent3 : Map( this.get("eventName") == "AddToCart3", this after $addToCartEvent2 )
$addToCartEvent4 : Map( this.get("eventName") == "AddToCart4", this after $addToCartEvent3 )
$addToCartEvent5 : Map( this.get("eventName") == "AddToCart5", this after $addToCartEvent4 )
$addToCartEvent6 : Map( this.get("eventName") == "AddToCart6", this after $addToCartEvent5 )
then
System.out.println("State 6 ");
end
rule "State 7"
when
$addToCartEvent1 : Map( this.get("eventName") == "AddToCart1" )
$addToCartEvent2 : Map( this.get("eventName") == "AddToCart2", this after $addToCartEvent1 )
$addToCartEvent3 : Map( this.get("eventName") == "AddToCart3", this after $addToCartEvent2 )
$addToCartEvent4 : Map( this.get("eventName") == "AddToCart4", this after $addToCartEvent3 )
$addToCartEvent5 : Map( this.get("eventName") == "AddToCart5", this after $addToCartEvent4 )
$addToCartEvent6 : Map( this.get("eventName") == "AddToCart6", this after $addToCartEvent5 )
$addToCartEvent7 : Map( this.get("eventName") == "AddToCart7", this after $addToCartEvent6 )
then
System.out.println("State 7 ");
end
rule "State 8"
when
$addToCartEvent1 : Map( this.get("eventName") == "AddToCart1" )
$addToCartEvent2 : Map( this.get("eventName") == "AddToCart2", this after $addToCartEvent1 )
$addToCartEvent3 : Map( this.get("eventName") == "AddToCart3", this after $addToCartEvent2 )
$addToCartEvent4 : Map( this.get("eventName") == "AddToCart4", this after $addToCartEvent3 )
$addToCartEvent5 : Map( this.get("eventName") == "AddToCart5", this after $addToCartEvent4 )
$addToCartEvent6 : Map( this.get("eventName") == "AddToCart6", this after $addToCartEvent5 )
$addToCartEvent7 : Map( this.get("eventName") == "AddToCart7", this after $addToCartEvent6 )
$addToCartEvent8 : Map( this.get("eventName") == "AddToCart8", this after $addToCartEvent7 )
then
System.out.println("State 8 ");
end
rule "State 9"
when
$addToCartEvent1 : Map( this.get("eventName") == "AddToCart1" )
$addToCartEvent2 : Map( this.get("eventName") == "AddToCart2", this after $addToCartEvent1 )
$addToCartEvent3 : Map( this.get("eventName") == "AddToCart3", this after $addToCartEvent2 )
$addToCartEvent4 : Map( this.get("eventName") == "AddToCart4", this after $addToCartEvent3 )
$addToCartEvent5 : Map( this.get("eventName") == "AddToCart5", this after $addToCartEvent4 )
$addToCartEvent6 : Map( this.get("eventName") == "AddToCart6", this after $addToCartEvent5 )
$addToCartEvent7 : Map( this.get("eventName") == "AddToCart7", this after $addToCartEvent6 )
$addToCartEvent8 : Map( this.get("eventName") == "AddToCart8", this after $addToCartEvent7 )
$addToCartEvent9 : Map( this.get("eventName") == "AddToCart9", this after $addToCartEvent8 )
then
System.out.println("State 9 ");
end
rule "State 10"
when
$addToCartEvent1 : Map( this.get("eventName") == "AddToCart1" )
$addToCartEvent2 : Map( this.get("eventName") == "AddToCart2", this after $addToCartEvent1 )
$addToCartEvent3 : Map( this.get("eventName") == "AddToCart3", this after $addToCartEvent2 )
$addToCartEvent4 : Map( this.get("eventName") == "AddToCart4", this after $addToCartEvent3 )
$addToCartEvent5 : Map( this.get("eventName") == "AddToCart5", this after $addToCartEvent4 )
$addToCartEvent6 : Map( this.get("eventName") == "AddToCart6", this after $addToCartEvent5 )
$addToCartEvent7 : Map( this.get("eventName") == "AddToCart7", this after $addToCartEvent6 )
$addToCartEvent8 : Map( this.get("eventName") == "AddToCart8", this after $addToCartEvent7 )
$addToCartEvent9 : Map( this.get("eventName") == "AddToCart9", this after $addToCartEvent8 )
$addToCartEvent10 : Map( this.get("eventName") == "AddToCart10", this after $addToCartEvent9 )
then
System.out.println("State 10 ");
end
rule "State 11"
when
$addToCartEvent1 : Map( this.get("eventName") == "AddToCart1" )
$addToCartEvent2 : Map( this.get("eventName") == "AddToCart2", this after $addToCartEvent1 )
$addToCartEvent3 : Map( this.get("eventName") == "AddToCart3", this after $addToCartEvent2 )
$addToCartEvent4 : Map( this.get("eventName") == "AddToCart4", this after $addToCartEvent3 )
$addToCartEvent5 : Map( this.get("eventName") == "AddToCart5", this after $addToCartEvent4 )
$addToCartEvent6 : Map( this.get("eventName") == "AddToCart6", this after $addToCartEvent5 )
$addToCartEvent7 : Map( this.get("eventName") == "AddToCart7", this after $addToCartEvent6 )
$addToCartEvent8 : Map( this.get("eventName") == "AddToCart8", this after $addToCartEvent7 )
$addToCartEvent9 : Map( this.get("eventName") == "AddToCart9", this after $addToCartEvent8 )
$addToCartEvent10 : Map( this.get("eventName") == "AddToCart10", this after $addToCartEvent9 )
$addToCartEvent11 : Map( this.get("eventName") == "AddToCart11", this after $addToCartEvent10 )
then
System.out.println("State 11 ");
end
rule "State 12"
when
$addToCartEvent1 : Map( this.get("eventName") == "AddToCart1" )
$addToCartEvent2 : Map( this.get("eventName") == "AddToCart2", this after $addToCartEvent1 )
$addToCartEvent3 : Map( this.get("eventName") == "AddToCart3", this after $addToCartEvent2 )
$addToCartEvent4 : Map( this.get("eventName") == "AddToCart4", this after $addToCartEvent3 )
$addToCartEvent5 : Map( this.get("eventName") == "AddToCart5", this after $addToCartEvent4 )
$addToCartEvent6 : Map( this.get("eventName") == "AddToCart6", this after $addToCartEvent5 )
$addToCartEvent7 : Map( this.get("eventName") == "AddToCart7", this after $addToCartEvent6 )
$addToCartEvent8 : Map( this.get("eventName") == "AddToCart8", this after $addToCartEvent7 )
$addToCartEvent9 : Map( this.get("eventName") == "AddToCart9", this after $addToCartEvent8 )
$addToCartEvent10 : Map( this.get("eventName") == "AddToCart10", this after $addToCartEvent9 )
$addToCartEvent11 : Map( this.get("eventName") == "AddToCart11", this after $addToCartEvent10 )
$addToCartEvent12 : Map( this.get("eventName") == "AddToCart12", this after $addToCartEvent11 )
then
System.out.println("State 12 ");
end
rule "State 13"
when
$addToCartEvent1 : Map( this.get("eventName") == "AddToCart1" )
$addToCartEvent2 : Map( this.get("eventName") == "AddToCart2", this after $addToCartEvent1 )
$addToCartEvent3 : Map( this.get("eventName") == "AddToCart3", this after $addToCartEvent2 )
$addToCartEvent4 : Map( this.get("eventName") == "AddToCart4", this after $addToCartEvent3 )
$addToCartEvent5 : Map( this.get("eventName") == "AddToCart5", this after $addToCartEvent4 )
$addToCartEvent6 : Map( this.get("eventName") == "AddToCart6", this after $addToCartEvent5 )
$addToCartEvent7 : Map( this.get("eventName") == "AddToCart7", this after $addToCartEvent6 )
$addToCartEvent8 : Map( this.get("eventName") == "AddToCart8", this after $addToCartEvent7 )
$addToCartEvent9 : Map( this.get("eventName") == "AddToCart9", this after $addToCartEvent8 )
$addToCartEvent10 : Map( this.get("eventName") == "AddToCart10", this after $addToCartEvent9 )
$addToCartEvent11 : Map( this.get("eventName") == "AddToCart11", this after $addToCartEvent10 )
$addToCartEvent12 : Map( this.get("eventName") == "AddToCart12", this after $addToCartEvent11 )
$addToCartEvent13 : Map( this.get("eventName") == "AddToCart13", this after $addToCartEvent12 )
then
System.out.println("State 13 ");
end
rule "State 14"
when
$addToCartEvent1 : Map( this.get("eventName") == "AddToCart1" )
$addToCartEvent2 : Map( this.get("eventName") == "AddToCart2", this after $addToCartEvent1 )
$addToCartEvent3 : Map( this.get("eventName") == "AddToCart3", this after $addToCartEvent2 )
$addToCartEvent4 : Map( this.get("eventName") == "AddToCart4", this after $addToCartEvent3 )
$addToCartEvent5 : Map( this.get("eventName") == "AddToCart5", this after $addToCartEvent4 )
$addToCartEvent6 : Map( this.get("eventName") == "AddToCart6", this after $addToCartEvent5 )
$addToCartEvent7 : Map( this.get("eventName") == "AddToCart7", this after $addToCartEvent6 )
$addToCartEvent8 : Map( this.get("eventName") == "AddToCart8", this after $addToCartEvent7 )
$addToCartEvent9 : Map( this.get("eventName") == "AddToCart9", this after $addToCartEvent8 )
$addToCartEvent10 : Map( this.get("eventName") == "AddToCart10", this after $addToCartEvent9 )
$addToCartEvent11 : Map( this.get("eventName") == "AddToCart11", this after $addToCartEvent10 )
$addToCartEvent12 : Map( this.get("eventName") == "AddToCart12", this after $addToCartEvent11 )
$addToCartEvent13 : Map( this.get("eventName") == "AddToCart13", this after $addToCartEvent12 )
$addToCartEvent14 : Map( this.get("eventName") == "AddToCart14", this after $addToCartEvent13 )
then
System.out.println("State 14 ");
end
rule "State 15"
when
$addToCartEvent1 : Map( this.get("eventName") == "AddToCart1" )
$addToCartEvent2 : Map( this.get("eventName") == "AddToCart2", this after $addToCartEvent1 )
$addToCartEvent3 : Map( this.get("eventName") == "AddToCart3", this after $addToCartEvent2 )
$addToCartEvent4 : Map( this.get("eventName") == "AddToCart4", this after $addToCartEvent3 )
$addToCartEvent5 : Map( this.get("eventName") == "AddToCart5", this after $addToCartEvent4 )
$addToCartEvent6 : Map( this.get("eventName") == "AddToCart6", this after $addToCartEvent5 )
$addToCartEvent7 : Map( this.get("eventName") == "AddToCart7", this after $addToCartEvent6 )
$addToCartEvent8 : Map( this.get("eventName") == "AddToCart8", this after $addToCartEvent7 )
$addToCartEvent9 : Map( this.get("eventName") == "AddToCart9", this after $addToCartEvent8 )
$addToCartEvent10 : Map( this.get("eventName") == "AddToCart10", this after $addToCartEvent9 )
$addToCartEvent11 : Map( this.get("eventName") == "AddToCart11", this after $addToCartEvent10 )
$addToCartEvent12 : Map( this.get("eventName") == "AddToCart12", this after $addToCartEvent11 )
$addToCartEvent13 : Map( this.get("eventName") == "AddToCart13", this after $addToCartEvent12 )
$addToCartEvent14 : Map( this.get("eventName") == "AddToCart14", this after $addToCartEvent13 )
$addToCartEvent15 : Map( this.get("eventName") == "AddToCart15", this after $addToCartEvent14 )
then
System.out.println("State 15 ");
end
rule "State 16"
when
$addToCartEvent1 : Map( this.get("eventName") == "AddToCart1" )
$addToCartEvent2 : Map( this.get("eventName") == "AddToCart2", this after $addToCartEvent1 )
$addToCartEvent3 : Map( this.get("eventName") == "AddToCart3", this after $addToCartEvent2 )
$addToCartEvent4 : Map( this.get("eventName") == "AddToCart4", this after $addToCartEvent3 )
$addToCartEvent5 : Map( this.get("eventName") == "AddToCart5", this after $addToCartEvent4 )
$addToCartEvent6 : Map( this.get("eventName") == "AddToCart6", this after $addToCartEvent5 )
$addToCartEvent7 : Map( this.get("eventName") == "AddToCart7", this after $addToCartEvent6 )
$addToCartEvent8 : Map( this.get("eventName") == "AddToCart8", this after $addToCartEvent7 )
$addToCartEvent9 : Map( this.get("eventName") == "AddToCart9", this after $addToCartEvent8 )
$addToCartEvent10 : Map( this.get("eventName") == "AddToCart10", this after $addToCartEvent9 )
$addToCartEvent11 : Map( this.get("eventName") == "AddToCart11", this after $addToCartEvent10 )
$addToCartEvent12 : Map( this.get("eventName") == "AddToCart12", this after $addToCartEvent11 )
$addToCartEvent13 : Map( this.get("eventName") == "AddToCart13", this after $addToCartEvent12 )
$addToCartEvent14 : Map( this.get("eventName") == "AddToCart14", this after $addToCartEvent13 )
$addToCartEvent15 : Map( this.get("eventName") == "AddToCart15", this after $addToCartEvent14 )
$addToCartEvent16 : Map( this.get("eventName") == "AddToCart16", this after $addToCartEvent15 )
then
System.out.println("State 16 ");
end
rule "State 17"
when
$addToCartEvent1 : Map( this.get("eventName") == "AddToCart1" )
$addToCartEvent2 : Map( this.get("eventName") == "AddToCart2", this after $addToCartEvent1 )
$addToCartEvent3 : Map( this.get("eventName") == "AddToCart3", this after $addToCartEvent2 )
$addToCartEvent4 : Map( this.get("eventName") == "AddToCart4", this after $addToCartEvent3 )
$addToCartEvent5 : Map( this.get("eventName") == "AddToCart5", this after $addToCartEvent4 )
$addToCartEvent6 : Map( this.get("eventName") == "AddToCart6", this after $addToCartEvent5 )
$addToCartEvent7 : Map( this.get("eventName") == "AddToCart7", this after $addToCartEvent6 )
$addToCartEvent8 : Map( this.get("eventName") == "AddToCart8", this after $addToCartEvent7 )
$addToCartEvent9 : Map( this.get("eventName") == "AddToCart9", this after $addToCartEvent8 )
$addToCartEvent10 : Map( this.get("eventName") == "AddToCart10", this after $addToCartEvent9 )
$addToCartEvent11 : Map( this.get("eventName") == "AddToCart11", this after $addToCartEvent10 )
$addToCartEvent12 : Map( this.get("eventName") == "AddToCart12", this after $addToCartEvent11 )
$addToCartEvent13 : Map( this.get("eventName") == "AddToCart13", this after $addToCartEvent12 )
$addToCartEvent14 : Map( this.get("eventName") == "AddToCart14", this after $addToCartEvent13 )
$addToCartEvent15 : Map( this.get("eventName") == "AddToCart15", this after $addToCartEvent14 )
$addToCartEvent16 : Map( this.get("eventName") == "AddToCart16", this after $addToCartEvent15 )
$addToCartEvent17 : Map( this.get("eventName") == "AddToCart17", this after $addToCartEvent16 )
then
System.out.println("State 17 ");
end
rule "State 18"
when
$addToCartEvent1 : Map( this.get("eventName") == "AddToCart1" )
$addToCartEvent2 : Map( this.get("eventName") == "AddToCart2", this after $addToCartEvent1 )
$addToCartEvent3 : Map( this.get("eventName") == "AddToCart3", this after $addToCartEvent2 )
$addToCartEvent4 : Map( this.get("eventName") == "AddToCart4", this after $addToCartEvent3 )
$addToCartEvent5 : Map( this.get("eventName") == "AddToCart5", this after $addToCartEvent4 )
$addToCartEvent6 : Map( this.get("eventName") == "AddToCart6", this after $addToCartEvent5 )
$addToCartEvent7 : Map( this.get("eventName") == "AddToCart7", this after $addToCartEvent6 )
$addToCartEvent8 : Map( this.get("eventName") == "AddToCart8", this after $addToCartEvent7 )
$addToCartEvent9 : Map( this.get("eventName") == "AddToCart9", this after $addToCartEvent8 )
$addToCartEvent10 : Map( this.get("eventName") == "AddToCart10", this after $addToCartEvent9 )
$addToCartEvent11 : Map( this.get("eventName") == "AddToCart11", this after $addToCartEvent10 )
$addToCartEvent12 : Map( this.get("eventName") == "AddToCart12", this after $addToCartEvent11 )
$addToCartEvent13 : Map( this.get("eventName") == "AddToCart13", this after $addToCartEvent12 )
$addToCartEvent14 : Map( this.get("eventName") == "AddToCart14", this after $addToCartEvent13 )
$addToCartEvent15 : Map( this.get("eventName") == "AddToCart15", this after $addToCartEvent14 )
$addToCartEvent16 : Map( this.get("eventName") == "AddToCart16", this after $addToCartEvent15 )
$addToCartEvent17 : Map( this.get("eventName") == "AddToCart17", this after $addToCartEvent16 )
$addToCartEvent18 : Map( this.get("eventName") == "AddToCart18", this after $addToCartEvent17 )
then
System.out.println("State 18 ");
end
rule "State 19"
when
$addToCartEvent1 : Map( this.get("eventName") == "AddToCart1" )
$addToCartEvent2 : Map( this.get("eventName") == "AddToCart2", this after $addToCartEvent1 )
$addToCartEvent3 : Map( this.get("eventName") == "AddToCart3", this after $addToCartEvent2 )
$addToCartEvent4 : Map( this.get("eventName") == "AddToCart4", this after $addToCartEvent3 )
$addToCartEvent5 : Map( this.get("eventName") == "AddToCart5", this after $addToCartEvent4 )
$addToCartEvent6 : Map( this.get("eventName") == "AddToCart6", this after $addToCartEvent5 )
$addToCartEvent7 : Map( this.get("eventName") == "AddToCart7", this after $addToCartEvent6 )
$addToCartEvent8 : Map( this.get("eventName") == "AddToCart8", this after $addToCartEvent7 )
$addToCartEvent9 : Map( this.get("eventName") == "AddToCart9", this after $addToCartEvent8 )
$addToCartEvent10 : Map( this.get("eventName") == "AddToCart10", this after $addToCartEvent9 )
$addToCartEvent11 : Map( this.get("eventName") == "AddToCart11", this after $addToCartEvent10 )
$addToCartEvent12 : Map( this.get("eventName") == "AddToCart12", this after $addToCartEvent11 )
$addToCartEvent13 : Map( this.get("eventName") == "AddToCart13", this after $addToCartEvent12 )
$addToCartEvent14 : Map( this.get("eventName") == "AddToCart14", this after $addToCartEvent13 )
$addToCartEvent15 : Map( this.get("eventName") == "AddToCart15", this after $addToCartEvent14 )
$addToCartEvent16 : Map( this.get("eventName") == "AddToCart16", this after $addToCartEvent15 )
$addToCartEvent17 : Map( this.get("eventName") == "AddToCart17", this after $addToCartEvent16 )
$addToCartEvent18 : Map( this.get("eventName") == "AddToCart18", this after $addToCartEvent17 )
$addToCartEvent19 : Map( this.get("eventName") == "AddToCart19", this after $addToCartEvent18 )
then
System.out.println("State 19 ");
end
rule "State 20"
when
$addToCartEvent1 : Map( this.get("eventName") == "AddToCart1" )
$addToCartEvent2 : Map( this.get("eventName") == "AddToCart2", this after $addToCartEvent1 )
$addToCartEvent3 : Map( this.get("eventName") == "AddToCart3", this after $addToCartEvent2 )
$addToCartEvent4 : Map( this.get("eventName") == "AddToCart4", this after $addToCartEvent3 )
$addToCartEvent5 : Map( this.get("eventName") == "AddToCart5", this after $addToCartEvent4 )
$addToCartEvent6 : Map( this.get("eventName") == "AddToCart6", this after $addToCartEvent5 )
$addToCartEvent7 : Map( this.get("eventName") == "AddToCart7", this after $addToCartEvent6 )
$addToCartEvent8 : Map( this.get("eventName") == "AddToCart8", this after $addToCartEvent7 )
$addToCartEvent9 : Map( this.get("eventName") == "AddToCart9", this after $addToCartEvent8 )
$addToCartEvent10 : Map( this.get("eventName") == "AddToCart10", this after $addToCartEvent9 )
$addToCartEvent11 : Map( this.get("eventName") == "AddToCart11", this after $addToCartEvent10 )
$addToCartEvent12 : Map( this.get("eventName") == "AddToCart12", this after $addToCartEvent11 )
$addToCartEvent13 : Map( this.get("eventName") == "AddToCart13", this after $addToCartEvent12 )
$addToCartEvent14 : Map( this.get("eventName") == "AddToCart14", this after $addToCartEvent13 )
$addToCartEvent15 : Map( this.get("eventName") == "AddToCart15", this after $addToCartEvent14 )
$addToCartEvent16 : Map( this.get("eventName") == "AddToCart16", this after $addToCartEvent15 )
$addToCartEvent17 : Map( this.get("eventName") == "AddToCart17", this after $addToCartEvent16 )
$addToCartEvent18 : Map( this.get("eventName") == "AddToCart18", this after $addToCartEvent17 )
$addToCartEvent19 : Map( this.get("eventName") == "AddToCart19", this after $addToCartEvent18 )
$addToCartEvent20 : Map( this.get("eventName") == "AddToCart20", this after $addToCartEvent19 )
then
System.out.println("State 20 ");
end
rule "State 21"
when
$addToCartEvent1 : Map( this.get("eventName") == "AddToCart1" )
$addToCartEvent2 : Map( this.get("eventName") == "AddToCart2", this after $addToCartEvent1 )
$addToCartEvent3 : Map( this.get("eventName") == "AddToCart3", this after $addToCartEvent2 )
$addToCartEvent4 : Map( this.get("eventName") == "AddToCart4", this after $addToCartEvent3 )
$addToCartEvent5 : Map( this.get("eventName") == "AddToCart5", this after $addToCartEvent4 )
$addToCartEvent6 : Map( this.get("eventName") == "AddToCart6", this after $addToCartEvent5 )
$addToCartEvent7 : Map( this.get("eventName") == "AddToCart7", this after $addToCartEvent6 )
$addToCartEvent8 : Map( this.get("eventName") == "AddToCart8", this after $addToCartEvent7 )
$addToCartEvent9 : Map( this.get("eventName") == "AddToCart9", this after $addToCartEvent8 )
$addToCartEvent10 : Map( this.get("eventName") == "AddToCart10", this after $addToCartEvent9 )
$addToCartEvent11 : Map( this.get("eventName") == "AddToCart11", this after $addToCartEvent10 )
$addToCartEvent12 : Map( this.get("eventName") == "AddToCart12", this after $addToCartEvent11 )
$addToCartEvent13 : Map( this.get("eventName") == "AddToCart13", this after $addToCartEvent12 )
$addToCartEvent14 : Map( this.get("eventName") == "AddToCart14", this after $addToCartEvent13 )
$addToCartEvent15 : Map( this.get("eventName") == "AddToCart15", this after $addToCartEvent14 )
$addToCartEvent16 : Map( this.get("eventName") == "AddToCart16", this after $addToCartEvent15 )
$addToCartEvent17 : Map( this.get("eventName") == "AddToCart17", this after $addToCartEvent16 )
$addToCartEvent18 : Map( this.get("eventName") == "AddToCart18", this after $addToCartEvent17 )
$addToCartEvent19 : Map( this.get("eventName") == "AddToCart19", this after $addToCartEvent18 )
$addToCartEvent20 : Map( this.get("eventName") == "AddToCart20", this after $addToCartEvent19 )
$addToCartEvent21 : Map( this.get("eventName") == "AddToCart21", this after $addToCartEvent20 )
then
System.out.println("State 21 ");
end
rule "State 22"
when
$addToCartEvent1 : Map( this.get("eventName") == "AddToCart1" )
$addToCartEvent2 : Map( this.get("eventName") == "AddToCart2", this after $addToCartEvent1 )
$addToCartEvent3 : Map( this.get("eventName") == "AddToCart3", this after $addToCartEvent2 )
$addToCartEvent4 : Map( this.get("eventName") == "AddToCart4", this after $addToCartEvent3 )
$addToCartEvent5 : Map( this.get("eventName") == "AddToCart5", this after $addToCartEvent4 )
$addToCartEvent6 : Map( this.get("eventName") == "AddToCart6", this after $addToCartEvent5 )
$addToCartEvent7 : Map( this.get("eventName") == "AddToCart7", this after $addToCartEvent6 )
$addToCartEvent8 : Map( this.get("eventName") == "AddToCart8", this after $addToCartEvent7 )
$addToCartEvent9 : Map( this.get("eventName") == "AddToCart9", this after $addToCartEvent8 )
$addToCartEvent10 : Map( this.get("eventName") == "AddToCart10", this after $addToCartEvent9 )
$addToCartEvent11 : Map( this.get("eventName") == "AddToCart11", this after $addToCartEvent10 )
$addToCartEvent12 : Map( this.get("eventName") == "AddToCart12", this after $addToCartEvent11 )
$addToCartEvent13 : Map( this.get("eventName") == "AddToCart13", this after $addToCartEvent12 )
$addToCartEvent14 : Map( this.get("eventName") == "AddToCart14", this after $addToCartEvent13 )
$addToCartEvent15 : Map( this.get("eventName") == "AddToCart15", this after $addToCartEvent14 )
$addToCartEvent16 : Map( this.get("eventName") == "AddToCart16", this after $addToCartEvent15 )
$addToCartEvent17 : Map( this.get("eventName") == "AddToCart17", this after $addToCartEvent16 )
$addToCartEvent18 : Map( this.get("eventName") == "AddToCart18", this after $addToCartEvent17 )
$addToCartEvent19 : Map( this.get("eventName") == "AddToCart19", this after $addToCartEvent18 )
$addToCartEvent20 : Map( this.get("eventName") == "AddToCart20", this after $addToCartEvent19 )
$addToCartEvent21 : Map( this.get("eventName") == "AddToCart21", this after $addToCartEvent20 )
$addToCartEvent22 : Map( this.get("eventName") == "AddToCart22", this after $addToCartEvent21 )
then
System.out.println("State 22 ");
end
rule "State 23"
when
$addToCartEvent1 : Map( this.get("eventName") == "AddToCart1" )
$addToCartEvent2 : Map( this.get("eventName") == "AddToCart2", this after $addToCartEvent1 )
$addToCartEvent3 : Map( this.get("eventName") == "AddToCart3", this after $addToCartEvent2 )
$addToCartEvent4 : Map( this.get("eventName") == "AddToCart4", this after $addToCartEvent3 )
$addToCartEvent5 : Map( this.get("eventName") == "AddToCart5", this after $addToCartEvent4 )
$addToCartEvent6 : Map( this.get("eventName") == "AddToCart6", this after $addToCartEvent5 )
$addToCartEvent7 : Map( this.get("eventName") == "AddToCart7", this after $addToCartEvent6 )
$addToCartEvent8 : Map( this.get("eventName") == "AddToCart8", this after $addToCartEvent7 )
$addToCartEvent9 : Map( this.get("eventName") == "AddToCart9", this after $addToCartEvent8 )
$addToCartEvent10 : Map( this.get("eventName") == "AddToCart10", this after $addToCartEvent9 )
$addToCartEvent11 : Map( this.get("eventName") == "AddToCart11", this after $addToCartEvent10 )
$addToCartEvent12 : Map( this.get("eventName") == "AddToCart12", this after $addToCartEvent11 )
$addToCartEvent13 : Map( this.get("eventName") == "AddToCart13", this after $addToCartEvent12 )
$addToCartEvent14 : Map( this.get("eventName") == "AddToCart14", this after $addToCartEvent13 )
$addToCartEvent15 : Map( this.get("eventName") == "AddToCart15", this after $addToCartEvent14 )
$addToCartEvent16 : Map( this.get("eventName") == "AddToCart16", this after $addToCartEvent15 )
$addToCartEvent17 : Map( this.get("eventName") == "AddToCart17", this after $addToCartEvent16 )
$addToCartEvent18 : Map( this.get("eventName") == "AddToCart18", this after $addToCartEvent17 )
$addToCartEvent19 : Map( this.get("eventName") == "AddToCart19", this after $addToCartEvent18 )
$addToCartEvent20 : Map( this.get("eventName") == "AddToCart20", this after $addToCartEvent19 )
$addToCartEvent21 : Map( this.get("eventName") == "AddToCart21", this after $addToCartEvent20 )
$addToCartEvent22 : Map( this.get("eventName") == "AddToCart22", this after $addToCartEvent21 )
$addToCartEvent23 : Map( this.get("eventName") == "AddToCart23", this after $addToCartEvent22 )
then
System.out.println("State 23 ");
end
rule "State 24"
when
$addToCartEvent1 : Map( this.get("eventName") == "AddToCart1" )
$addToCartEvent2 : Map( this.get("eventName") == "AddToCart2", this after $addToCartEvent1 )
$addToCartEvent3 : Map( this.get("eventName") == "AddToCart3", this after $addToCartEvent2 )
$addToCartEvent4 : Map( this.get("eventName") == "AddToCart4", this after $addToCartEvent3 )
$addToCartEvent5 : Map( this.get("eventName") == "AddToCart5", this after $addToCartEvent4 )
$addToCartEvent6 : Map( this.get("eventName") == "AddToCart6", this after $addToCartEvent5 )
$addToCartEvent7 : Map( this.get("eventName") == "AddToCart7", this after $addToCartEvent6 )
$addToCartEvent8 : Map( this.get("eventName") == "AddToCart8", this after $addToCartEvent7 )
$addToCartEvent9 : Map( this.get("eventName") == "AddToCart9", this after $addToCartEvent8 )
$addToCartEvent10 : Map( this.get("eventName") == "AddToCart10", this after $addToCartEvent9 )
$addToCartEvent11 : Map( this.get("eventName") == "AddToCart11", this after $addToCartEvent10 )
$addToCartEvent12 : Map( this.get("eventName") == "AddToCart12", this after $addToCartEvent11 )
$addToCartEvent13 : Map( this.get("eventName") == "AddToCart13", this after $addToCartEvent12 )
$addToCartEvent14 : Map( this.get("eventName") == "AddToCart14", this after $addToCartEvent13 )
$addToCartEvent15 : Map( this.get("eventName") == "AddToCart15", this after $addToCartEvent14 )
$addToCartEvent16 : Map( this.get("eventName") == "AddToCart16", this after $addToCartEvent15 )
$addToCartEvent17 : Map( this.get("eventName") == "AddToCart17", this after $addToCartEvent16 )
$addToCartEvent18 : Map( this.get("eventName") == "AddToCart18", this after $addToCartEvent17 )
$addToCartEvent19 : Map( this.get("eventName") == "AddToCart19", this after $addToCartEvent18 )
$addToCartEvent20 : Map( this.get("eventName") == "AddToCart20", this after $addToCartEvent19 )
$addToCartEvent21 : Map( this.get("eventName") == "AddToCart21", this after $addToCartEvent20 )
$addToCartEvent22 : Map( this.get("eventName") == "AddToCart22", this after $addToCartEvent21 )
$addToCartEvent23 : Map( this.get("eventName") == "AddToCart23", this after $addToCartEvent22 )
$addToCartEvent24 : Map( this.get("eventName") == "AddToCart24", this after $addToCartEvent23 )
then
System.out.println("State 24 ");
end
rule "State 25"
when
$addToCartEvent1 : Map( this.get("eventName") == "AddToCart1" )
$addToCartEvent2 : Map( this.get("eventName") == "AddToCart2", this after $addToCartEvent1 )
$addToCartEvent3 : Map( this.get("eventName") == "AddToCart3", this after $addToCartEvent2 )
$addToCartEvent4 : Map( this.get("eventName") == "AddToCart4", this after $addToCartEvent3 )
$addToCartEvent5 : Map( this.get("eventName") == "AddToCart5", this after $addToCartEvent4 )
$addToCartEvent6 : Map( this.get("eventName") == "AddToCart6", this after $addToCartEvent5 )
$addToCartEvent7 : Map( this.get("eventName") == "AddToCart7", this after $addToCartEvent6 )
$addToCartEvent8 : Map( this.get("eventName") == "AddToCart8", this after $addToCartEvent7 )
$addToCartEvent9 : Map( this.get("eventName") == "AddToCart9", this after $addToCartEvent8 )
$addToCartEvent10 : Map( this.get("eventName") == "AddToCart10", this after $addToCartEvent9 )
$addToCartEvent11 : Map( this.get("eventName") == "AddToCart11", this after $addToCartEvent10 )
$addToCartEvent12 : Map( this.get("eventName") == "AddToCart12", this after $addToCartEvent11 )
$addToCartEvent13 : Map( this.get("eventName") == "AddToCart13", this after $addToCartEvent12 )
$addToCartEvent14 : Map( this.get("eventName") == "AddToCart14", this after $addToCartEvent13 )
$addToCartEvent15 : Map( this.get("eventName") == "AddToCart15", this after $addToCartEvent14 )
$addToCartEvent16 : Map( this.get("eventName") == "AddToCart16", this after $addToCartEvent15 )
$addToCartEvent17 : Map( this.get("eventName") == "AddToCart17", this after $addToCartEvent16 )
$addToCartEvent18 : Map( this.get("eventName") == "AddToCart18", this after $addToCartEvent17 )
$addToCartEvent19 : Map( this.get("eventName") == "AddToCart19", this after $addToCartEvent18 )
$addToCartEvent20 : Map( this.get("eventName") == "AddToCart20", this after $addToCartEvent19 )
$addToCartEvent21 : Map( this.get("eventName") == "AddToCart21", this after $addToCartEvent20 )
$addToCartEvent22 : Map( this.get("eventName") == "AddToCart22", this after $addToCartEvent21 )
$addToCartEvent23 : Map( this.get("eventName") == "AddToCart23", this after $addToCartEvent22 )
$addToCartEvent24 : Map( this.get("eventName") == "AddToCart24", this after $addToCartEvent23 )
$addToCartEvent25 : Map( this.get("eventName") == "AddToCart25", this after $addToCartEvent24 )
then
System.out.println("State 25 ");
result.setDone(true);
result.setName("ActinableEvent");
end
rule "State All"
when
$event : Map( )
then
System.out.println("All: " + $event.get("eventName"));
end
Java code case:
@Test
public void thirteenthCase(){
RuleResult ruleResult = new RuleResult();
RulesEngine rulesEngine = null;
try {
rulesEngine = new RulesEngine("rules/case_13.drl");
rulesEngine.setGlobalObject("result", ruleResult);
rulesEngine.setGlobalObject("rulesEngine", rulesEngine);
} catch (Exception e) {
e.printStackTrace();
}
for(int i = 1; i < 26; i++){
Map<String, Object> event = new HashMap<String, Object>();
event.put("eventName", "AddToCart" + i);
rulesEngine.sendEvent(event);
try {
Thread.sleep(10);
} catch (InterruptedException e) {
e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates.
}
}
Assert.assertTrue(ruleResult.isDone());
}
If "Thread.sleep(10);" commented I have the log result:
All: AddToCart1 State 1 All: AddToCart2 State 2 All: AddToCart3 State 3 All: AddToCart4 All: AddToCart5 All: AddToCart6 All: AddToCart7 All: AddToCart8 All: AddToCart9 All: AddToCart10 All: AddToCart11 All: AddToCart12 All: AddToCart13 All: AddToCart14 All: AddToCart15 All: AddToCart16 All: AddToCart17 All: AddToCart18 All: AddToCart19 All: AddToCart20 All: AddToCart21 All: AddToCart22 All: AddToCart23 All: AddToCart24 All: AddToCart25
I will be very grateful for any help or suggestion.
Thank you in advance!