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