[rules-users] no visitor implementation for : class org.drools.rule.TypeDeclaration

Tina Vießmann tviessmann at stud.hs-bremen.de
Fri Oct 29 08:02:57 EDT 2010


Sorry, I didn't want to sound like I expected you to solve it. I was 
just curious if you had found something out, because the error remains 
the same. But it's nothing fatal to me. ;-)

I'll see if I can make up a simple test project the next days.

Tina


> Honestly, I didn't have time to take a look at it :(
> Could you please provide me a simple test project where I can see this 
> issue?
>
> Best,
>
> XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
>
> Esteban Aliverti
> - Developer @ http://www.plugtree.com <http://www.plugtree.com>
> - Blog @ http://ilesteban.wordpress.com
>
>
> 2010/10/24 Tina Vießmann <tviessmann at stud.hs-bremen.de 
> <mailto:tviessmann at stud.hs-bremen.de>>
>
>     Hi Esteban,
>
>     #2 is still a problem for me. Have you found something out?
>
>     Thank you.
>     Tina
>
>
>>     Hi,
>>
>>     #1  I'm not sure if I've understood it correct. Is the message
>>     displayed every time a resource containing declares is modified
>>     or does is it displayed if the declare statements are changed?
>>     The message will appear every time a resource containing a type
>>     definition is modified.
>>
>>     #2 The following extract of my original log extract says that the
>>     LHS of two rules has been changed. But I haven't modified
>>     anything on them. I've just deleted a rule. So what does it mean?
>>     Or am I missunderstanding the messages? Because for the the first
>>     rule no changes have been detected (and that is what I would
>>     expect for all rules except the deleted on.)
>>     This is strange. This message should only appear if the LHS of a
>>     rule has changed. I will take a look to see if this is a bug.
>>
>>
>>     Best,
>>
>>     XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
>>
>>     Esteban Aliverti
>>     - Developer @ http://www.plugtree.com <http://www.plugtree.com>
>>     - Blog @ http://ilesteban.wordpress.com
>>
>>
>>     2010/8/24 Tina Vießmann <tviessmann at stud.hs-bremen.de
>>     <mailto:tviessmann at stud.hs-bremen.de>>
>>
>>         Thank you for the explanation, Esteban. :)
>>         I'm sorry, but I have still some uncertainties about it.
>>
>>         #1  I'm not sure if I've understood it correct. Is the
>>         message displayed every time a resource containing declares
>>         is modified or does is it displayed if the declare statements
>>         are changed?
>>
>>         #2 The following extract of my original log extract says that
>>         the LHS of two rules has been changed. But I haven't modified
>>         anything on them. I've just deleted a rule. So what does it
>>         mean? Or am I missunderstanding the messages? Because for the
>>         the first rule no changes have been detected (and that is
>>         what I would expect for all rules except the deleted on.)
>>
>>             [2010:08:235 21:08:546:debug]
>>             BinaryResourceDiffProducerImpl: [Rule name=/Warning
>>             threshold exceeded to many times/, agendaGroup=MAIN,
>>             salience=0, no-loop=false] didn't change. Removing from
>>             diff package and adding it to unmodified list.
>>             [2010:08:235 21:08:546:debug]
>>             BinaryResourceDiffProducerImpl: Comparing [Rule
>>             name=/_I_nsert Watcher Into Knowledge Base/,
>>             agendaGroup=MAIN, salience=0, no-loop=false] against
>>             [Rule name=Insert Watcher Into Knowledge Base,
>>             agendaGroup=MAIN, salience=0, no-loop=false]
>>             [2010:08:235 21:08:546:debug]
>>             BinaryResourceDiffProducerImpl: *The rules have different
>>             LHS*
>>             [2010:08:235 21:08:546:debug]
>>             BinaryResourceDiffProducerImpl: Comparing [Rule name=/Add
>>             Event to Watcher Set/, agendaGroup=MAIN, salience=0,
>>             no-loop=false] against [Rule name=Add Event to Watcher
>>             Set, agendaGroup=MAIN, salience=0, no-loop=false]
>>             [2010:08:235 21:08:546:debug]
>>             BinaryResourceDiffProducerImpl: *The rules have different
>>             LHS*
>>
>>         Thanks :)
>>         Tina
>>
>>
>>
>>         Am 23.08.2010 23:33, schrieb Esteban Aliverti:
>>>         When working on incremental change-set processing mode,
>>>         Knowledge Agent performs a diff between the original and the
>>>         modified  resources. Modified resources are compiled, and a
>>>         visitor pattern is used to loop over knowledge definitions
>>>         (such as rules, functions, queries, etc.).
>>>         So if rule1 was modified in the new resource, it is removed
>>>         from the original kbase and replaced with the new
>>>         implementation. The thing is that kagent doesn't implement a
>>>         visitor for TypeDeclaration (when you use *declare* in your
>>>         DRL to define your model) so it doesn't know how to handle
>>>         them.
>>>         I have recently fix a typo in the visitor implementation
>>>         that prevented you to receive a better message:
>>>
>>>         "BinaryResourceDiffProducerImpl: Couldn't handle
>>>         "+yourDefinitionName+". We must leave it in the new Package."
>>>
>>>         This means that kagent doesn't support modifications on
>>>         declared types yet.
>>>
>>>         Best,
>>>
>>>
>>>         XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
>>>
>>>         Esteban Aliverti
>>>         - Developer @ http://www.plugtree.com <http://www.plugtree.com>
>>>         - Blog @ http://ilesteban.wordpress.com
>>>
>>>
>>>         2010/8/23 Tina Vießmann <tviessmann at stud.hs-bremen.de
>>>         <mailto:tviessmann at stud.hs-bremen.de>>
>>>
>>>             Hi,
>>>
>>>             I'm getting a two red highlighted outputs in eclipse if
>>>             I modify my rules file during run time. Besides that the
>>>             modifications seem to work.
>>>             What does it mean?
>>>
>>>             The full output I get when the resource change is
>>>             detected is listed below. The bold lines are the
>>>             concerned ones.
>>>
>>>             Thanks for any help! :)
>>>             Tina
>>>
>>>
>>>             [2010:08:235 21:08:296:debug] ResourceChangeScanner
>>>             attempt to scan 1 resources
>>>             [2010:08:235 21:08:296:debug] ResourceChangeScanner
>>>             modified resource=[ClassPathResource
>>>             path='testRule.drl'] : 1282559206875 : 1282591705000
>>>             [2010:08:235 21:08:296:debug] ResourceChangeNotification
>>>             received ChangeSet notification
>>>             [2010:08:235 21:08:296:debug] ResourceChangeScanner
>>>             thread is waiting for 10 seconds.
>>>             [2010:08:235 21:08:296:debug] ResourceChangeNotification
>>>             processing ChangeSet
>>>             [2010:08:235 21:08:296:debug] ResourceChangeNotification
>>>             ChangeSet modified resource=[ClassPathResource
>>>             path='testRule.drl'] for
>>>             listener=org.drools.agent.impl.KnowledgeAgentImpl at b40ec4
>>>             [2010:08:235 21:08:296:debug] KnowledgeAgent received
>>>             ChangeSet changed notification
>>>             [2010:08:235 21:08:296:info] KnowledgeAgent applying
>>>             ChangeSet
>>>             [2010:08:235 21:08:296:debug] KnowledgeAgent removing
>>>             mappings for resource=[ClassPathResource
>>>             path='testRule.drl'] with unsubscribe=true
>>>             [2010:08:235 21:08:296:debug] KnowledgeAgent notifier
>>>             unsubscribing to resource=[ClassPathResource
>>>             path='testRule.drl']
>>>             [2010:08:235 21:08:296:debug] ResourceChangeNotification
>>>             unsubscribing
>>>             listener=org.drools.agent.impl.KnowledgeAgentImpl at b40ec4
>>>             to resource=[ClassPathResource path='testRule.drl']
>>>             [2010:08:235 21:08:296:debug] ResourceChangeScanner
>>>             unsubcribing
>>>             notifier=org.drools.io.impl.ResourceChangeNotifierImpl at 13576a2
>>>             to resource=[ClassPathResource path='testRule.drl']
>>>             [2010:08:235 21:08:296:debug] ResourceChangeScanner
>>>             resource=[ClassPathResource path='testRule.drl'] now has
>>>             no subscribers
>>>             [2010:08:235 21:08:296:debug] KnowledgeAgent rebuilding
>>>             KnowledgeBase using ChangeSet
>>>             [2010:08:235 21:08:296:info] KnowledgeAgent performing
>>>             an incremental build of the ChangeSet
>>>             [2010:08:235 21:08:296:debug] ResourceChangeNotification
>>>             thread is waiting for queue update
>>>             [INFO ] 21:30:10,375 [main] "Event retracted."  (DRL Logger)
>>>             [2010:08:235 21:08:453:debug] KnowledgeAgent: Diffing:
>>>             [ClassPathResource path='testRule.drl']
>>>             [INFO ] 21:30:10,453 [main] "Event retracted."  (DRL Logger)
>>>             [2010:08:235 21:08:500:debug]
>>>             BinaryResourceDiffProducerImpl: [Rule name=delete
>>>             parameter values, agendaGroup=MAIN, salience=0,
>>>             no-loop=false] is not present anymore. Adding to removed
>>>             list.
>>>             [2010:08:235 21:08:500:debug]
>>>             BinaryResourceDiffProducerImpl:
>>>             org.drools.rule.Function at 67fe80 did change. Marking as
>>>             removed so it new version could be added later.
>>>             [2010:08:235 21:08:500:debug]
>>>             BinaryResourceDiffProducerImpl: Comparing [Rule
>>>             name=Warning threshold exceeded to many times,
>>>             agendaGroup=MAIN, salience=0, no-loop=false] against
>>>             [Rule name=Warning threshold exceeded to many times,
>>>             agendaGroup=MAIN, salience=0, no-loop=false]
>>>             *no visitor implementation for : class
>>>             org.drools.rule.TypeDeclaration :
>>>             org.drools.rule.TypeDeclaration at 95f290
>>>             no visitor implementation for : class
>>>             org.drools.rule.TypeDeclaration :
>>>             org.drools.rule.TypeDeclaration at bfd66a*
>>>             [2010:08:235 21:08:546:debug]
>>>             BinaryResourceDiffProducerImpl: [Rule name=Warning
>>>             threshold exceeded to many times, agendaGroup=MAIN,
>>>             salience=0, no-loop=false] didn't change. Removing from
>>>             diff package and adding it to unmodified list.
>>>             [2010:08:235 21:08:546:debug]
>>>             BinaryResourceDiffProducerImpl: Comparing [Rule
>>>             name=Insert Watcher Into Knowledge Base,
>>>             agendaGroup=MAIN, salience=0, no-loop=false] against
>>>             [Rule name=Insert Watcher Into Knowledge Base,
>>>             agendaGroup=MAIN, salience=0, no-loop=false]
>>>             [2010:08:235 21:08:546:debug]
>>>             BinaryResourceDiffProducerImpl: The rules have different LHS
>>>             [2010:08:235 21:08:546:debug]
>>>             BinaryResourceDiffProducerImpl: Comparing [Rule name=Add
>>>             Event to Watcher Set, agendaGroup=MAIN, salience=0,
>>>             no-loop=false] against [Rule name=Add Event to Watcher
>>>             Set, agendaGroup=MAIN, salience=0, no-loop=false]
>>>             [2010:08:235 21:08:546:debug]
>>>             BinaryResourceDiffProducerImpl: The rules have different LHS
>>>             [2010:08:235 21:08:546:debug] KnowledgeAgent: Removing:
>>>             [Rule name=delete parameter values, agendaGroup=MAIN,
>>>             salience=0, no-loop=false]
>>>             [2010:08:235 21:08:546:debug] KnowledgeAgent removing
>>>             Rule=[Rule name=delete parameter values,
>>>             agendaGroup=MAIN, salience=0, no-loop=false] from
>>>             package=net.eads.astrium.aits.cep.rules
>>>             [2010:08:235 21:08:546:debug] KnowledgeAgent: Removing:
>>>             org.drools.rule.Function at 67fe80
>>>             [2010:08:235 21:08:562:debug] KnowledgeAgent mapping
>>>             resource=[ClassPathResource path='testRule.drl'] to
>>>             KnowledgeDefinition=[Rule name=Warning threshold
>>>             exceeded to many times, agendaGroup=MAIN, salience=0,
>>>             no-loop=false]
>>>             [2010:08:235 21:08:562:debug] KnowledgeAgent obtaining
>>>             pkg resource=[ClassPathResource path='testRule.drl']
>>>             [2010:08:235 21:08:562:debug] KnowledgeAgent mapping
>>>             resource=[ClassPathResource path='testRule.drl'] to
>>>             KnowledgeDefinition=[Rule name=Insert Watcher Into
>>>             Knowledge Base, agendaGroup=MAIN, salience=0, no-loop=false]
>>>             [2010:08:235 21:08:562:debug] KnowledgeAgent notifier
>>>             subscribing to resource=[ClassPathResource
>>>             path='testRule.drl']
>>>             [2010:08:235 21:08:562:debug] ResourceChangeNotification
>>>             subscribing
>>>             listener=org.drools.agent.impl.KnowledgeAgentImpl at b40ec4
>>>             to resource=[ClassPathResource path='testRule.drl']
>>>             [2010:08:235 21:08:562:debug] ResourceChangeScanner
>>>             subcribing
>>>             notifier=org.drools.io.impl.ResourceChangeNotifierImpl at 13576a2
>>>             to resource=[ClassPathResource path='testRule.drl']
>>>             [2010:08:235 21:08:562:debug] KnowledgeAgent mapping
>>>             resource=[ClassPathResource path='testRule.drl'] to
>>>             KnowledgeDefinition=[Rule name=Add Event to Watcher Set,
>>>             agendaGroup=MAIN, salience=0, no-loop=false]
>>>             [2010:08:235 21:08:562:debug] KnowledgeAgent notifier
>>>             subscribing to resource=[ClassPathResource
>>>             path='testRule.drl']
>>>             [2010:08:235 21:08:562:debug] ResourceChangeNotification
>>>             subscribing
>>>             listener=org.drools.agent.impl.KnowledgeAgentImpl at b40ec4
>>>             to resource=[ClassPathResource path='testRule.drl']
>>>             [2010:08:235 21:08:562:debug] KnowledgeAgent mapping
>>>             resource=[ClassPathResource path='testRule.drl'] to
>>>             KnowledgeDefinition=org.drools.rule.TypeDeclaration at 17dff15
>>>             [2010:08:235 21:08:562:debug] KnowledgeAgent notifier
>>>             subscribing to resource=[ClassPathResource
>>>             path='testRule.drl']
>>>             [2010:08:235 21:08:562:debug] ResourceChangeNotification
>>>             subscribing
>>>             listener=org.drools.agent.impl.KnowledgeAgentImpl at b40ec4
>>>             to resource=[ClassPathResource path='testRule.drl']
>>>             [2010:08:235 21:08:562:debug] KnowledgeAgent mapping
>>>             resource=[ClassPathResource path='testRule.drl'] to
>>>             KnowledgeDefinition=org.drools.rule.TypeDeclaration at f5cbda
>>>             [2010:08:235 21:08:562:debug] KnowledgeAgent notifier
>>>             subscribing to resource=[ClassPathResource
>>>             path='testRule.drl']
>>>             [2010:08:235 21:08:562:debug] ResourceChangeNotification
>>>             subscribing
>>>             listener=org.drools.agent.impl.KnowledgeAgentImpl at b40ec4
>>>             to resource=[ClassPathResource path='testRule.drl']
>>>             [2010:08:235 21:08:562:debug] KnowledgeAgent mapping
>>>             resource=[ClassPathResource path='testRule.drl'] to
>>>             KnowledgeDefinition=org.drools.rule.Function at 11a59ce
>>>             [2010:08:235 21:08:562:debug] KnowledgeAgent notifier
>>>             subscribing to resource=[ClassPathResource
>>>             path='testRule.drl']
>>>             [2010:08:235 21:08:562:debug] ResourceChangeNotification
>>>             subscribing
>>>             listener=org.drools.agent.impl.KnowledgeAgentImpl at b40ec4
>>>             to resource=[ClassPathResource path='testRule.drl']
>>>             [2010:08:235 21:08:562:debug] KnowledgeAgent adding
>>>             KnowledgeDefinitionsPackage net.eads.astrium.aits.cep.rules
>>>             [2010:08:235 21:08:578:info] KnowledgeAgent incremental
>>>             build of KnowledgeBase finished and in use
>>>             [2010:08:235 21:08:578:debug] KnowledgeAgent finished
>>>             rebuilding KnowledgeBase using ChangeSet
>>>
>>>             _______________________________________________
>>>             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
>>>
>>>
>>>
>>>         _______________________________________________
>>>         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
>>
>>
>>         _______________________________________________
>>         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
>>
>>
>>
>>     _______________________________________________
>>     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
>
>
>     _______________________________________________
>     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
>
>
>
> _______________________________________________
> 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/20101029/c0a9732e/attachment.html 


More information about the rules-users mailing list