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