Hello all,<br><br>Could this unfixed JIRA <a href="https://jira.jboss.org/jira/browse/GUVNOR-354">https://jira.jboss.org/jira/browse/GUVNOR-354</a> be related to this?<br><br>I am inserting a single object via JSON and it fires twice.<br>
<br clear="all">Regards,<br>Prem<br>
<br><br><div class="gmail_quote">On Wed, Jul 1, 2009 at 9:54 AM, Jaroslaw Kijanowski <span dir="ltr"><<a href="mailto:kijanowski@gmail.com">kijanowski@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<a href="https://jira.jboss.org/jira/browse/JBRULES-2154" target="_blank">https://jira.jboss.org/jira/browse/JBRULES-2154</a><br>
<br>
Thanks.<br>
<br>
Edson Tirelli wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><div class="im">
<br>
Jarowslaw,<br>
<br>
Could you please open a JIRA for this. I need to investigate.<br>
Thanks,<br>
<br>
Edson<br>
<br></div>
2009/7/1 Jaroslaw Kijanowski <<a href="mailto:kijanowski@gmail.com" target="_blank">kijanowski@gmail.com</a> <mailto:<a href="mailto:kijanowski@gmail.com" target="_blank">kijanowski@gmail.com</a>>><div><div></div>
<div class="h5"><br>
<br>
Hi,<br>
I've configured my knowledge base to use the EQUALITY assertion<br>
behaviour.<br>
When I insert two equal facts into the session, only one gets<br>
processed (objects and their fact handles are equal).<br>
However when I insert two equal facts via streams, my rule fires<br>
twice (objects are equal, but their fact handles are not). Isn't<br>
equality assertion behaviour supported when using streams?<br>
<br>
Here's my rule and test class:<br>
<br>
package com.sample<br>
import com.sample.Message;<br>
declare Message<br>
@role( event )<br>
@timestamp( time )<br>
end<br>
<br>
rule "r"<br>
when<br>
Message( $i:i) //from entry-point "myStream"<br>
then<br>
System.out.println( $i );<br>
end<br>
<br>
+++++++++++++++++++++++++++++++++++++++++<br>
<br>
public class Message {<br>
<br>
private int i;<br>
private Date time;<br>
//getters, setters, hashcode, equals, constructor<br>
}<br>
<br>
+++++++++++++++++++++++++++++++++++++++++<br>
<br>
public class DroolsTest {<br>
public static final void main(String[] args) {<br>
try {<br>
KnowledgeBase kbase = readKnowledgeBase();<br>
StatefulKnowledgeSession ksession =<br>
kbase.newStatefulKnowledgeSession();<br>
<br>
//WorkingMemoryEntryPoint stream =<br>
ksession.getWorkingMemoryEntryPoint("myStream");<br>
<br>
Date d = new Date();<br>
Message message1 = new Message(1,d);<br>
FactHandle fh1 = ksession.insert(message1);<br>
//FactHandle fh1 = stream.insert(message1);<br>
Message message2 = new Message(1,d);<br>
FactHandle fh2 = ksession.insert(message2);<br>
//FactHandle fh2 = stream.insert(message2);<br>
<br>
if (message1.equals(message2) && fh1.equals(fh2)){<br>
System.out.println("equal");<br>
}<br>
ksession.fireAllRules();<br>
} catch (Throwable t) {<br>
t.printStackTrace();<br>
}<br>
}<br>
<br>
private static KnowledgeBase readKnowledgeBase() throws Exception {<br>
KnowledgeBuilder kbuilder =<br>
KnowledgeBuilderFactory.newKnowledgeBuilder();<br>
kbuilder.add(ResourceFactory.newClassPathResource("Sample.drl"),<br>
ResourceType.DRL);<br>
if (kbuilder.getErrors().size() > 0) {<br>
throw new IllegalArgumentException("Could not parse knowledge.");<br>
}<br>
KnowledgeBaseConfiguration kbaseConfig =<br>
KnowledgeBaseFactory.newKnowledgeBaseConfiguration();<br>
kbaseConfig.setOption(AssertBehaviorOption.EQUALITY);<br>
kbaseConfig.setOption(EventProcessingOption.STREAM);<br>
kbaseConfig.setOption(RemoveIdentitiesOption.YES);<br>
<br>
KnowledgeBase kbase =<br>
KnowledgeBaseFactory.newKnowledgeBase(kbaseConfig);<br>
kbase.addKnowledgePackages(kbuilder.getKnowledgePackages());<br>
return kbase;<br>
}<br>
}<br>
<br>
+++++++++++++++++++++++++++++++++++++++++<br>
<br>
Thanks,<br>
Jarek<br>
_______________________________________________<br>
rules-users mailing list<br></div></div>
<a href="mailto:rules-users@lists.jboss.org" target="_blank">rules-users@lists.jboss.org</a> <mailto:<a href="mailto:rules-users@lists.jboss.org" target="_blank">rules-users@lists.jboss.org</a>><div class="im">
<br>
<a href="https://lists.jboss.org/mailman/listinfo/rules-users" target="_blank">https://lists.jboss.org/mailman/listinfo/rules-users</a><br>
<br>
<br>
<br>
<br>
-- <br>
Edson Tirelli<br>
JBoss Drools Core Development<br></div>
JBoss by Red Hat @ <a href="http://www.jboss.com" target="_blank">www.jboss.com</a> <<a href="http://www.jboss.com" target="_blank">http://www.jboss.com</a>><br>
<br>
<br>
------------------------------------------------------------------------<div class="im"><br>
<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><br>
</div></blockquote><div><div></div><div class="h5">
_______________________________________________<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><br>
</div></div></blockquote></div><br>