I use this maven repo:<br><a href="http://snapshots.jboss.org/maven2/org/drools/">http://snapshots.jboss.org/maven2/org/drools/</a><br><br>I use maven to get the latest snapshot by setting the version to 5.0.0.SNAPSHOT<br>
<br><div class="gmail_quote">On Sun, Mar 8, 2009 at 1:27 PM, David Boaz <span dir="ltr"><<a href="mailto:davidb@dbmotion.com">davidb@dbmotion.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;">
<br>
Is there a maven repository containing the SNAPSHOT version? Is there a trick<br>
that facilitate the development with that version?<br>
David<br>
<div><div></div><div class="h5"><br>
Mark Proctor wrote:<br>
><br>
> Mark Proctor wrote:<br>
>> Michal Bali wrote:<br>
>>> Hi,<br>
>>><br>
>>> I guess the issue is that StatelessKnowledgeSession doesn't extend<br>
>>> the WorkingMemory interface as David pointed out. So if you call<br>
>>> event.getKnowledgeRuntime() you'll get *null* back.<br>
>> when in an event or in a consequence, whether using a stateless or<br>
>> stateful session it should return a knowledgeruntime instance - if<br>
>> it's not, it's a bug. I'll look into it.<br>
> I've looked into this and fixed the bug, you should now be able to<br>
> access the knowledgeruntime from the consequence and the event. Please<br>
> do retest all of this from trunk<br>
> <a href="https://hudson.jboss.org/hudson/job/drools/lastSuccessfulBuild/artifact/trunk/target/" target="_blank">https://hudson.jboss.org/hudson/job/drools/lastSuccessfulBuild/artifact/trunk/target/</a><br>
>>><br>
>>> Similar issue happens when you call drools.getKnowledgeRuntime() from<br>
>>> within rule's consequence. However in this case it throws the<br>
>>> following exception (running with snapshot from 07. 03. 2009):<br>
>>><br>
>>> org.drools.runtime.rule.ConsequenceException:<br>
>>> java.lang.ClassCastException:<br>
>>> *org.drools.reteoo.**ReteooWorkingMemory cannot be cast to<br>
>>> org.drools.reteoo.**ReteooStatefulSession*<br>
>>> at<br>
>>> org.drools.runtime.rule.impl.DefaultConsequenceExceptionHandler.handleException(DefaultConsequenceExceptionHandler.java:23)<br>
>>> at<br>
>>> org.drools.common.DefaultAgenda.fireActivation(DefaultAgenda.java:943)<br>
>>> at<br>
>>> org.drools.common.DefaultAgenda.fireNextItem(DefaultAgenda.java:885)<br>
>>> at<br>
>>> org.drools.common.DefaultAgenda.fireAllRules(DefaultAgenda.java:1082)<br>
>>> at<br>
>>> org.drools.common.AbstractWorkingMemory.fireAllRules(AbstractWorkingMemory.java:682)<br>
>>> at<br>
>>> org.drools.common.AbstractWorkingMemory.fireAllRules(AbstractWorkingMemory.java:659)<br>
>>> at<br>
>>> org.drools.impl.StatelessKnowledgeSessionImpl.execute(StatelessKnowledgeSessionImpl.java:213)<br>
>>> at com.sample.DroolsTest.main(DroolsTest.java:45)<br>
>>> Caused by: java.lang.ClassCastException:<br>
>>> org.drools.reteoo.ReteooWorkingMemory cannot be cast to<br>
>>> org.drools.reteoo.ReteooStatefulSession<br>
>>> at<br>
>>> org.drools.base.DefaultKnowledgeHelper.getKnowledgeRuntime(DefaultKnowledgeHelper.java:222)<br>
>>> at<br>
>>> com.sample.Rule_Hello_World_0.consequence(Rule_Hello_World_0.java:7)<br>
>>> at<br>
>>> com.sample.Rule_Hello_World_0ConsequenceInvoker.evaluate(Rule_Hello_World_0ConsequenceInvoker.java:26)<br>
>>> at<br>
>>> org.drools.common.DefaultAgenda.fireActivation(DefaultAgenda.java:934)<br>
>>> ... 6 more<br>
>>><br>
>>> for this rule:<br>
>>> rule "Hello World"<br>
>>> when<br>
>>> Message( )<br>
>>> then<br>
>>> System.out.println( drools.getKnowledgeRuntime() );<br>
>>> end<br>
>>><br>
>>> Best Regards,<br>
>>> Michal<br>
>>><br>
>>><br>
>>> On Fri, Mar 6, 2009 at 6:45 AM, Mark Proctor <<a href="mailto:mproctor@codehaus.org">mproctor@codehaus.org</a><br>
</div></div><div><div></div><div class="h5">>>> <mailto:<a href="mailto:mproctor@codehaus.org">mproctor@codehaus.org</a>>> wrote:<br>
>>><br>
>>> David Boaz wrote:<br>
>>>> Your answer refered to Statefull session. My question was regarding<br>
>>>> a<br>
>>>> stateless session, that do not extend WorkingMemory.<br>
>>>><br>
>>> you are using an event, that event exposes the knowledgeruntime<br>
>>> in the event listener - stateless and stateful use the same event<br>
>>> model and both expose the knowledgeruntime as a parameter. All<br>
>>> events should extend KnowledgeRuntimeEvent which provides the<br>
>>> method getKnowledgeRuntime.<br>
>>><br>
>>> Mark<br>
>>><br>
>>>> Currently, I did an ugly work-around. The Activation returns a<br>
>>>> Collection<FactHandle>, and I noticed that in runtime, the<br>
>>>> FactHandle is<br>
>>>> instanceof InternalFactHandle, that do have a getObject(). So, My<br>
>>>> code looks<br>
>>>> like:<br>
>>>> for(FactHandle handle:activation.getFactHandles()){<br>
>>>> assert(handle instanceof InternalFactHandle);<br>
>>>> Object o=((InternalFactHandle)handle).getObject();<br>
>>>> ...<br>
>>>> }<br>
>>>> Im looking for the correct way to implement this functionality.<br>
>>>> Thanks, David<br>
>>>><br>
>>>><br>
>>>> Mark Proctor wrote:<br>
>>>><br>
>>>>> David Boaz wrote:<br>
>>>>><br>
>>>>>> Thanks Mark,<br>
>>>>>><br>
>>>>>> The post bellow doesn't deal with the event listener<br>
>>>>>> registration.<br>
>>>>>> Assuming<br>
>>>>>> the registration was solved, now I have another issue. How to<br>
>>>>>> retrieve<br>
>>>>>> the<br>
>>>>>> Facts given Fact-handles? In a stateless session, I have no<br>
>>>>>> access to the<br>
>>>>>> working memory.<br>
>>>>>><br>
>>>>>><br>
>>>>> If you are using StatefulKnowledgeSession. Then the Activation has<br>
>>>>> Collection< ? extends FactHandle> getFactHandles();<br>
>>>>><br>
>>>>> And the KnowledgeRuntime is always available, which extends the<br>
>>>>> WorkingMemory.<br>
>>>>><br>
>>>>> Mkar<br>
>>>>><br>
>>>>>> David<br>
>>>>>><br>
>>>>>><br>
>>>>>> Mark Proctor wrote:<br>
>>>>>><br>
>>>>>><br>
>>>>>>> David Boaz wrote:<br>
>>>>>>><br>
>>>>>>><br>
>>>>>>>> Hi all,<br>
>>>>>>>><br>
>>>>>>>> Im trying to listen to the events fired during the evaluation<br>
>>>>>>>> of a<br>
>>>>>>>> stateless<br>
>>>>>>>> session. I implemented<br>
>>>>>>>> org.drools.event.rule.AgendaEventListener. The<br>
>>>>>>>> events<br>
>>>>>>>> fire as expected. From the event I can extract the Activation,<br>
>>>>>>>> the Rule<br>
>>>>>>>> and<br>
>>>>>>>> the list of FactHandles. Now, from each FactHandle I want to<br>
>>>>>>>> retrieve<br>
>>>>>>>> the<br>
>>>>>>>> associated fact (Object). For that, I need a WorkingMemory. But<br>
>>>>>>>> the WM<br>
>>>>>>>> doesn't participate in the event signature. In addition, since<br>
>>>>>>>> Im using<br>
>>>>>>>> a<br>
>>>>>>>> stateless session, the working memory does not exist until I<br>
>>>>>>>> execute()<br>
>>>>>>>> method.<br>
>>>>>>>><br>
>>>>>>>> Can you please help?<br>
>>>>>>>><br>
>>>>>>>><br>
>>>>>>>><br>
>>>>>>> The event listeners don't work in the last release, this is<br>
>>>>>>> fixed in<br>
>>>>>>> trunk, please give it a try in a snapshot:<br>
>>>>>>><br>
>>>>>>> <a href="https://hudson.jboss.org/hudson/job/drools/lastSuccessfulBuild/artifact/trunk/target/" target="_blank">https://hudson.jboss.org/hudson/job/drools/lastSuccessfulBuild/artifact/trunk/target/</a><br>
>>>>>>><br>
>>>>>>><br>
>>>>>>>> Thanks, David<br>
>>>>>>>><br>
>>>>>>>><br>
>>>>>>>><br>
>>>>>>> _______________________________________________<br>
>>>>>>> rules-users mailing list<br>
</div></div>>>>>>>> <a href="mailto:rules-users@lists.jboss.org">rules-users@lists.jboss.org</a> <mailto:<a href="mailto:rules-users@lists.jboss.org">rules-users@lists.jboss.org</a>><br>
<div class="im">>>>>>>> <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>
>>>>>><br>
>>>>> _______________________________________________<br>
>>>>> rules-users mailing list<br>
</div>>>>>> <a href="mailto:rules-users@lists.jboss.org">rules-users@lists.jboss.org</a> <mailto:<a href="mailto:rules-users@lists.jboss.org">rules-users@lists.jboss.org</a>><br>
<div class="im">>>>>> <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>
>>><br>
>>> _______________________________________________<br>
>>> rules-users mailing list<br>
</div>>>> <a href="mailto:rules-users@lists.jboss.org">rules-users@lists.jboss.org</a> <mailto:<a href="mailto:rules-users@lists.jboss.org">rules-users@lists.jboss.org</a>><br>
<div class="im">>>> <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>
>>> 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>
>><br>
>> ------------------------------------------------------------------------<br>
>><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>
><br>
><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>
><br>
<br>
</div><font color="#888888">--<br>
View this message in context: <a href="http://www.nabble.com/Agenda-events-in-a-Stateless-session-tp22332020p22397893.html" target="_blank">http://www.nabble.com/Agenda-events-in-a-Stateless-session-tp22332020p22397893.html</a><br>
</font><div class="im">Sent from the drools - user mailing list archive at Nabble.com.<br>
<br>
_______________________________________________<br>
</div><div><div></div><div class="h5">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>
</div></div></blockquote></div><br>