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 @
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@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@b40ec4 to
resource=[ClassPathResource path='testRule.drl']
[2010:08:235 21:08:296:debug] ResourceChangeScanner unsubcribing
notifier=org.drools.io.impl.ResourceChangeNotifierImpl@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@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@95f290
no visitor implementation for : class org.drools.rule.TypeDeclaration :
org.drools.rule.TypeDeclaration@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@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@b40ec4 to
resource=[ClassPathResource path='testRule.drl']
[2010:08:235 21:08:562:debug] ResourceChangeScanner subcribing
notifier=org.drools.io.impl.ResourceChangeNotifierImpl@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@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@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@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@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@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@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@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(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users