<br>> <font color="navy" face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial; color: navy;">I guess the rule engine doesn’t
allow matching against literal strings from within accumulate <src
regex
pattern><br><br> That is *not* true. The engine is consistent. Wherever you have a pattern, you can write any kind of constraint, does not matter if the pattern is nested in an accumulate, it it is a top level pattern, or whatever.<br>
<br> You have a different problem there. It is not the literal constraint for sure.<br><br> Edson</span></font> <br><br><br><div class="gmail_quote">2010/4/13 Badrinath, Shyam <span dir="ltr"><<a href="mailto:sbadrinath@sonusnet.com">sbadrinath@sonusnet.com</a>></span><br>
<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<div link="blue" vlink="blue" lang="EN-US">
<div>
<p class="MsoNormal"><font color="navy" face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial; color: navy;">Hi</span></font></p>
<p class="MsoNormal"><font color="navy" face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial; color: navy;">I figured out how to make the <src regex
pattern> in ‘accumulate’ match the criteria I am interested in.
In the example below, I was matching against a literal string from within ‘accumulate’,
but apparently that doesn’t work. Instead, if I give it as follows:</span></font></p>
<p class="MsoNormal"><font color="navy" face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial; color: navy;"> </span></font></p>
<p class="MsoNormal"><font color="green" face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New"; color: green;">$c: Cpu(srcIp ==
'10.155.21.86' && destIp == '10.6.35.120')</span></font></p>
<p class="MsoNormal"><font color="green" face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New"; color: green;">$cpuMin:
Number(intValue >=80) from accumulate(Cpu(srcIp == $c.srcIp &&
destIp == $c.destIp, $val:value) over window:time(5s), min($val)</span></font></p>
<p class="MsoNormal"><font color="green" face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New"; color: green;">)</span></font></p>
<p class="MsoNormal"><font color="navy" face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial; color: navy;"> </span></font></p>
<p class="MsoNormal"><font color="navy" face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial; color: navy;">So, it looks like it binds a subset of the
Cpu objects that match the criteria to $c and then we need to use that variable
to compare against, within our accumulate function. </span></font></p>
<p class="MsoNormal"><font color="navy" face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial; color: navy;">I guess the rule engine doesn’t
allow matching against literal strings from within accumulate <src regex
pattern></span></font></p>
<p class="MsoNormal"><font color="red" face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New"; color: red;">$cpuMin:
Number(intValue >=80) from accumulate(Cpu(srcIp ==
’10.155.21.86’ && destIp == ’10.6.35.120’,
$val:value) over window:time(5s), min($val)</span></font></p>
<p class="MsoNormal"><font color="navy" face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial; color: navy;"> </span></font></p>
<p class="MsoNormal"><font color="navy" face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial; color: navy;">Also, is it possible to configure the firing
policy in the first sliding window as you suggested below?</span></font></p>
<p class="MsoNormal"><font color="navy" face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial; color: navy;">Thanks</span></font></p>
<p class="MsoNormal"><font color="navy" face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial; color: navy;">Shyam</span></font></p>
<p class="MsoNormal"><font color="navy" face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial; color: navy;"> </span></font></p>
<p class="MsoNormal"><font color="navy" face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial; color: navy;"> </span></font></p>
<div>
<div class="MsoNormal" style="text-align: center;" align="center"><font face="Times New Roman" size="3"><span style="font-size: 12pt;">
<hr align="center" size="2" width="100%">
</span></font></div>
<p class="MsoNormal"><b><font face="Tahoma" size="2"><span style="font-size: 10pt; font-family: Tahoma; font-weight: bold;">From:</span></font></b><font face="Tahoma" size="2"><span style="font-size: 10pt; font-family: Tahoma;"> Badrinath, Shyam
<br>
<b><span style="font-weight: bold;">Sent:</span></b> Monday, April 12, 2010 1:26
PM<br>
<b><span style="font-weight: bold;">To:</span></b> 'Rules Users List'<br>
<b><span style="font-weight: bold;">Subject:</span></b> RE: [rules-users]
drools-fusion: rule firing erroneously for thefirst time in a sliding window</span></font></p>
</div><div><div></div><div class="h5">
<p class="MsoNormal"><font face="Times New Roman" size="3"><span style="font-size: 12pt;"> </span></font></p>
<p class="MsoNormal"><font color="navy" face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial; color: navy;">Hi Edson</span></font></p>
<p class="MsoNormal"><font color="navy" face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial; color: navy;">Thanks for the clarification. The sliding
window implementation does wait for 5s, later on during a test, before
activating the rule. So, theoretically, there shouldn’t be any difference
in behavior, even at the beginning, whether the clock is in pseudo or real
mode.</span></font></p>
<p class="MsoNormal"><font color="navy" face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial; color: navy;">Lets assume t(0) is the start, then
nothing should fire atleast until t(0+5) and it should be the same for the
window between t(n) and t(n+5).</span></font></p>
<p class="MsoNormal"><font color="navy" face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial; color: navy;">Also, I noticed that the accumulate function seems to ignore the
regex in the <src pattern>. For example, given the rule below, if I
insert Cpu events with no matching srcIp and destIp, then I would expect no
rule to fire, since the window would look at only the Cpu objects in working
memory that match the criteria below. Am I missing something? </span></font><font color="navy"><span style="color: navy;"></span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">$cpuMin
: Number(intValue >= 80) from accumulate(</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">$cpu
: Cpu($v : value, srcIp ==’<val1>’ && destIp ==
‘<val2>’) over window:time(5s), min($v)</span></font></p>
<p class="MsoNormal"><font color="navy" face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial; color: navy;"> </span></font></p>
<p class="MsoNormal"><font color="navy" face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial; color: navy;"> </span></font></p>
<div>
<div class="MsoNormal" style="text-align: center;" align="center"><font face="Times New Roman" size="3"><span style="font-size: 12pt;">
<hr align="center" size="2" width="100%">
</span></font></div>
<p class="MsoNormal"><b><font face="Tahoma" size="2"><span style="font-size: 10pt; font-family: Tahoma; font-weight: bold;">From:</span></font></b><font face="Tahoma" size="2"><span style="font-size: 10pt; font-family: Tahoma;">
<a href="mailto:rules-users-bounces@lists.jboss.org" target="_blank">rules-users-bounces@lists.jboss.org</a>
[mailto:<a href="mailto:rules-users-bounces@lists.jboss.org" target="_blank">rules-users-bounces@lists.jboss.org</a>] <b><span style="font-weight: bold;">On
Behalf Of </span></b>Edson Tirelli<br>
<b><span style="font-weight: bold;">Sent:</span></b> Monday, April 12, 2010 12:10
PM<br>
<b><span style="font-weight: bold;">To:</span></b> Rules Users List<br>
<b><span style="font-weight: bold;">Subject:</span></b> Re: [rules-users]
drools-fusion: rule firing erroneously for thefirst time in a sliding window</span></font></p>
</div>
<p class="MsoNormal"><font face="Times New Roman" size="3"><span style="font-size: 12pt;"> </span></font></p>
<p class="MsoNormal" style="margin-bottom: 12pt;"><font face="Times New Roman" size="3"><span style="font-size: 12pt;"><br>
Hi,<br>
<br>
Yes, the current implementation for sliding time windows
does not wait for a window to move before starting to fire rules. As soon as
the constraint is met, it will activate the rule. The question is: should the
sliding window delay before firing? should it be configurable? <br>
<br>
I need to do some research on that. Comments are welcome.<br>
<br>
Edson</span></font></p>
<div>
<p class="MsoNormal"><font face="Times New Roman" size="3"><span style="font-size: 12pt;">2010/4/12 Badrinath, Shyam <<a href="mailto:sbadrinath@sonusnet.com" target="_blank">sbadrinath@sonusnet.com</a>></span></font></p>
<div link="blue" vlink="purple">
<div>
<p class="MsoNormal"><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;">Hi</span></font></p>
<p class="MsoNormal"><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;">I am using
Drools 5.1.0 M1 within Eclipse. I am trying out a sample rule, which fires if
the minimum cpu is over 80 for 5s using sliding windows. I see that it works
well over a running window of 5s, but for the first time, it fires even before
reaching 5s.</span></font></p>
<p class="MsoNormal"><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;">It seems to
ignore the fact that 5s hasn’t elapsed yet. I am using the engine in
STREAM mode and using a pseudo clock to advance the time manually.</span></font></p>
<p class="MsoNormal"><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;"> </span></font></p>
<p class="MsoNormal"><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;">Is this the
expected behavior? Thanks!</span></font></p>
<p class="MsoNormal"><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;">sb</span></font></p>
<p class="MsoNormal"><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;"> </span></font></p>
<p class="MsoNormal"><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;">Here is the
rule:</span></font></p>
<p class="MsoNormal"><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;"> </span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">package
org.drools.examples</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";"> </span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">import
org.drools.examples.CpuMetric.Cpu;</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">import
org.drools.examples.CpuMetric.Alarm;</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";"> </span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">global
org.apache.log4j.Logger logger</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";"> </span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">declare
Cpu</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
@role(event)</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
@expires(5s)</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">end</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";"> </span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">rule
"Above Cpu threshold of 80 for 5s"</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
dialect "java"</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
when</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
not Alarm()</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
$cpuMin : Number(intValue >= 80) from accumulate(</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
$cpu : Cpu($v : value) over window:time(5s), min($v)</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
)</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
then</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
<a href="http://logger.info" target="_blank">logger.info</a>("Cpu above 80
for 5 s, raising alarm. min cpu: "+$cpuMin);</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
Alarm a = new Alarm();</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
a.setReason("raised alarm as we hit cpu threshold");</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
a.setTime(System.currentTimeMillis());</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
insert(a); </span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">end</span></font></p>
<p class="MsoNormal"><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;"> </span></font></p>
<p class="MsoNormal"><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;"> </span></font></p>
<p class="MsoNormal"><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;"> </span></font></p>
<p class="MsoNormal"><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;">Here is the
snippet of the class that declares the Cpu and Alarm class as well inserts events
into the rule engine. The other thing I noticed is the accumulate function
seems to ignore the regex in the <src pattern>. For example, in the rule
above, if I give </span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">$cpuMin
: Number(intValue >= 80) from accumulate(</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">$cpu
: Cpu($v : value, srcIp ==’<val1>’ && destIp ==
‘<val2>’) over window:time(5s), min($v)</span></font></p>
<p class="MsoNormal"><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;">And insert
cpu events, with no matching srcIp and destIp, I shouldn’t see any alarm
raised, but I do and right at the beginning.</span></font></p>
<p class="MsoNormal"><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;"> </span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
. . ... (code before this..)</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";"> </span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
//to use sliding windows, have to run the engine in stream mode</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
//default is cloud mode..where there are no concept of time and</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
//event ordering</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
KnowledgeBaseConfiguration kbaseconfig =
KnowledgeBaseFactory.newKnowledgeBaseConfiguration();</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
kbaseconfig.setOption(EventProcessingOption.STREAM);</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
// add the packages to a knowledgebase (deploy the knowledge packages).</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase(kbaseconfig);</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
kbase.addKnowledgePackages(pkgs);</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";"> </span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
KnowledgeSessionConfiguration conf =
KnowledgeBaseFactory.newKnowledgeSessionConfiguration();</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
conf.setOption(ClockTypeOption.get("pseudo"));</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession(conf,
null);</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
//get clock to manually advance and test firing..</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
SessionPseudoClock clock = ksession.getSessionClock();</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
<a href="http://logger.info" target="_blank">logger.info</a>("Pseudo clock
current time: "+clock.getCurrentTime());</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
ksession.setGlobal("logger", logger);</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
ksession.addEventListener(new DebugAgendaEventListener());</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
ksession.addEventListener(new DebugWorkingMemoryEventListener());</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";"> </span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
// setup the audit logging</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
KnowledgeRuntimeLogger krlogger = KnowledgeRuntimeLoggerFactory</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
.newFileLogger(ksession, "log/cpu");</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";"> </span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
BufferedReader bf = new BufferedReader(new
FileReader("/opt/cpumetricdata.txt"));</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
String s;</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
long time=0;</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
int count=0;</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
long lastime=0;</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
int delta=0;</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
//<a href="http://logger.info" target="_blank">logger.info</a>("Advancing
5s right at the start");</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
//clock.advanceTime(5000, TimeUnit.MILLISECONDS);</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
while((s = bf.readLine()) != null)</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
{</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
String[] vals = s.split(",");</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
Cpu cpumetric = new Cpu();</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
cpumetric.setValue(Integer.parseInt(vals[1]));</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
//set in ms</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
//for the first time, initialize time and lastime</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
//to the value read in from the first line.</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
time = Long.parseLong(vals[0]);</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
if(count ==0)</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
{</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
lastime = time;</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
<a href="http://logger.info" target="_blank">logger.info</a>("Initialized
lastime to "+lastime);</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
}</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
cpumetric.setTime(time);</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
cpumetric.setSrcIp("10.155.21.86");</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
cpumetric.setDestIp("10.6.35.120");</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
<a href="http://logger.info" target="_blank">logger.info</a>("Inserted
cpu metric "+cpumetric);</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
<a href="http://logger.info" target="_blank">logger.info</a>("Count:
"+count+" Pseudo clock current time: "+clock.getCurrentTime());</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
ksession.insert(cpumetric);</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
ksession.fireAllRules();</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
//advance based on the read in time in ms</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
//do it only from the second insert onwards</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
delta=(int) (time-lastime);</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
if(count >=1)</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
{</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
clock.advanceTime(delta, TimeUnit.MILLISECONDS);</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
<a href="http://logger.info" target="_blank">logger.info</a>("Pseudo clock
advanced "+delta+ "ms");</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
}</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
count++;</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
lastime=time;</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
}</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
System.out.println("Inserted facts, current time is "+new Date());</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
krlogger.close();</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
ksession.dispose();</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
bf.close();</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
}</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";"> </span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
public static class Alarm</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
{</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
private String reason;</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
private long time;</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
private String type;</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
/**</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
* @return the reason</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
*/</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
public String getReason()</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
{</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
return reason;</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
}</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
/**</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
* @param reason the reason to set</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
*/</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
public void setReason(String reason)</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
{</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
this.reason = reason;</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
}</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
/**</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
* @return the time</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
*/</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
public long getTime()</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
{</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
return time;</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
}</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
/**</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
* @return the type</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
*/</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
public String getType()</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
{</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
return type;</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
}</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
/**</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
* @param type the type to set</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
*/</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
public void setType(String type)</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
{</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
this.type = type;</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
}</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
/**</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
* @param time the time to set</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
*/</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
public void setTime(long time)</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
{</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
this.time = time;</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
}</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
}</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
public static class Cpu implements Serializable</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
{</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";"> </span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
private long time;</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
private int value;</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
private String srcIp;</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
private String destIp;</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
/* (non-Javadoc)</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
* @see java.lang.Object#toString()</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
*/</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
@Override</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
public String toString()</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
{</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
return "Cpu [time=" + time + ", value="
+ value + "]";</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
}</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
/**</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
* @return the time</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
*/</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
public long getTime()</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
{</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
return time;</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
}</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
/**</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
* @param time the time to set</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
*/</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
public void setTime(long time)</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
{</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
this.time = time;</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
}</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
/**</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
* @return the srcIp</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
*/</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
public String getSrcIp()</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
{</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
return srcIp;</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
}</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
/**</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
* @param srcIp the srcIp to set</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
*/</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
public void setSrcIp(String srcIp)</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
{</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
this.srcIp = srcIp;</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
}</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
/**</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
* @return the destIp</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
*/</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
public String getDestIp()</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
{</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
return destIp;</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
}</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
/**</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
* @param destIp the destIp to set</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
*/</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
public void setDestIp(String destIp)</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
{</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
this.destIp = destIp;</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
}</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
/**</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
* @return the value</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
*/</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
public int getValue()</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
{</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
return value;</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
}</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
/**</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
* @param value the value to set</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
*/</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
public void setValue(int value)</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
{</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
this.value = value;</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
}</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">
}</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">}</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";"> </span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">Data
that drives the insertion:</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">1358,81</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">2359,86</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">3360,88</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">4361,80</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">5362,84</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">6363,80</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">7364,83</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">8365,99</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">9366,97</span></font></p>
<p class="MsoNormal"><font face="Courier New" size="2"><span style="font-size: 10pt; font-family: "Courier New";">10367,99</span></font></p>
<p class="MsoNormal"><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;"> </span></font></p>
</div>
</div>
<p class="MsoNormal" style="margin-bottom: 12pt;"><font face="Times New Roman" size="3"><span style="font-size: 12pt;"><br>
_______________________________________________<br>
rules-users mailing list<br>
<a href="mailto:rules-users@lists.jboss.org" target="_blank">rules-users@lists.jboss.org</a><br>
<a href="https://lists.jboss.org/mailman/listinfo/rules-users" target="_blank">https://lists.jboss.org/mailman/listinfo/rules-users</a></span></font></p>
</div>
<p class="MsoNormal"><font face="Times New Roman" size="3"><span style="font-size: 12pt;"><br>
<br clear="all">
<br>
-- <br>
Edson Tirelli<br>
JBoss Drools Core Development<br>
JBoss by Red Hat @ <a href="http://www.jboss.com" target="_blank">www.jboss.com</a></span></font></p>
</div></div></div>
</div>
<br>_______________________________________________<br>
rules-users mailing list<br>
<a href="mailto:rules-users@lists.jboss.org">rules-users@lists.jboss.org</a><br>
<a href="https://lists.jboss.org/mailman/listinfo/rules-users" target="_blank">https://lists.jboss.org/mailman/listinfo/rules-users</a><br>
<br></blockquote></div><br><br clear="all"><br>-- <br> Edson Tirelli<br> JBoss Drools Core Development<br> JBoss by Red Hat @ <a href="http://www.jboss.com">www.jboss.com</a><br>