One for your list Wolfgang?
On 9 September 2010 11:07, Swindells, Thomas <TSwindells(a)nds.com> wrote:
Looks like the problem is that there are two agenda filter classes:
org.drools.runtime.rule.AgendaFilter and org.drools.spi.AgendaFilter.
odrr.AgendaFilter is what is required by the StatefulKnowledgeSession, this
then wraps it in a class to convert it to an ods.AgendaFilter which is what
the internal classes use.
RuleNameEndsWithAgendaFilter seems to implement ods.AgendaFilter and not
odrr.AgendaFilter which is what I'd expect - this is possibly a bug.
Your options are to create a simple wrapper which converts an
ods.AgendaFilter to an odrr AgendaFilter so that when you pass it into the
knowledge session that can then wrap it back to an odsAF. Alternatively you
could just copy or extend RuleNameEndsWithAgendaFilter and give it the
'correct' interface.
Thomas
> -----Original Message-----
> From: rules-users-bounces(a)lists.jboss.org [mailto:rules-users-
> bounces(a)lists.jboss.org] On Behalf Of Vignesh
> Sent: 09 September 2010 10:32
> To: rules-users(a)lists.jboss.org
> Subject: [rules-users] Firing Specific rules using KBase and
> StatefulKnowledgeSession
>
>
> Hi,
>
> We are not able to fire specific rules using KBase and
> StatefulKnowledgeSession,
>
> //Code snippet
>
> StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession();
> ksession.fireAllRules(new RuleNameEndsWithAgendaFilter("test"));
>
> If we use the method directly we are getting the below compile time
error,
> The method fireAllRules(int) in the type StatefulRuleSession is not
> applicable for the arguments (RuleNameEndsWithAgendaFilter)
>
> and when we cast it and used the same by
> ksession.fireAllRules((AgendaFilter) new
> RuleNameEndsWithAgendaFilter("test")); but getting the below exception,
> java.lang.ClassCastException:
org.drools.base.RuleNameEndsWithAgendaFilter
>
> Same thing we are able to achieve using RuleBase and WorkingMemory as
below,
>
> RuleBase ruleBase = agent.getRuleBase();
> WorkingMemory wrkMemory = ruleBase.newStatefulSession();
> int i=wrkMemory.fireAllRules(new RuleNameEndsWithAgendaFilter("read"));
>
> Any pointers on how to use this functionality for firing specific rules
> using KBase and StatefulKnowledgeSession, by filtering out rules based on
> rule names. Please help in this regard.
>
> Thanks,
> Vignesh
> --
> View this message in context:
http://drools-java-rules-
>
engine.46999.n3.nabble.com/Firing-Specific-rules-using-KBase-and-
> StatefulKnowledgeSession-tp1444889p1444889.html
> 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
**************************************************************************************
This message is confidential and intended only for the addressee. If you
have received this message in error, please immediately notify the
postmaster(a)nds.com and delete it from your system as well as any copies.
The content of e-mails as well as traffic data may be monitored by NDS for
employment and security purposes. To protect the environment please do not
print this e-mail unless necessary.
NDS Limited. Registered Office: One London Road, Staines, Middlesex, TW18
4EX, United Kingdom. A company registered in England and Wales. Registered
no. 3080780. VAT no. GB 603 8808 40-00
**************************************************************************************
_______________________________________________
rules-users mailing list
rules-users(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users