You are not saying what is not working. If you don't use any of the features
described in 4.8.3.5., Fine grained property change listeners, your rules
should fire, as usual. Is that so? Then, what doesn't fire any more when
you add which feature?
The subject of your post "...listeners aren't working..." is not quite
right - these features aren't used to affect a listener (in the usual sense).
-W
On 20/06/2013, abasile <alex.basile(a)interactivedata.com> wrote:
Hello,
The property change listener advise from the expert doc isn't working for
me.
http://docs.jboss.org/drools/release/5.5.0.Final/drools-expert-docs/html/...
(4.8.3.5)
- I've tried setting the configuration
KnowledgeBuilderConfiguration config =
KnowledgeBuilderFactory.newKnowledgeBuilderConfiguration();
config.setOption(PropertySpecificOption.ALWAYS);
KnowledgeBuilder kbuilder =
KnowledgeBuilderFactory.newKnowledgeBuilder(config);
- Tried added annotations to Java Class
@PropertyReactive, @Modifies
- Tried adding @watch to rule
FYI: We're using salience but not Agency Groups; also StatelessSession but
tried StatefulSesson as well.
Any suggestions? Reference to a working code sample would be great.
----------------------------------------------------------------------------
(snippet for creating knowledge base)
// Set Property Specific Evaluation
KnowledgeBuilderConfiguration config =
KnowledgeBuilderFactory.newKnowledgeBuilderConfiguration();
config.setOption(PropertySpecificOption.ALWAYS);
//final KnowledgeBuilder kbuilder =
KnowledgeBuilderFactory.newKnowledgeBuilder();
KnowledgeBuilder kbuilder =
KnowledgeBuilderFactory.newKnowledgeBuilder(config);
addRulesToKBuilder(ruleFiles, logger, kbuilder);
// get the compiled packages (which are serializable)
final Collection<KnowledgePackage> pkgs =
kbuilder.getKnowledgePackages();
// add the packages to a knowledgebase (deploy the knowledge
packages).
kbase = KnowledgeBaseFactory.newKnowledgeBase();
kbase.addKnowledgePackages( pkgs );
(snippet for adding rules to KBuilder)
for (String ruleFile : ruleFiles) {
// this will parse and compile in one step
kbuilder.add( ResourceFactory.newClassPathResource(ruleFile),
ResourceType.DRL );
if ( kbuilder.hasErrors() ) {
logger.error( kbuilder.getErrors().toString() );
throw new RuntimeException( "ERROR: Unable to compile " +
ruleFile );
}
}
(snippet for creating a stateless session)
public StatelessKnowledgeSession createStatelessSession(boolean isDebug) {
StatelessKnowledgeSession ksession =
kbase.newStatelessKnowledgeSession();
if (isDebug) {
ksession.addEventListener(new DebugWorkingMemoryEventListener());
ksession.addEventListener(new DebugAgendaEventListener());
ksession.addEventListener(new DebugProcessEventListener());
}
return ksession;
}
(snippet for rule)
dialect "java"
salience 1350
rule "Initial Normalization: Bid Size - Remove Unwanted Characters"
when
$md : MarketDataRow (
candidate,
hasValue( bidSize ),
bidSize not matches "123"//,
)
then
System.out.println( String.format( "%s; Row %d: '%s';",
drools.getRule().getName(), $md.getRowNumber(), $md.getBidSize() ) );
modify( $md ) {
setBidSize( "678m" );
}
end
Thank you in advance,
Alex
--
View this message in context:
http://drools.46999.n3.nabble.com/property-change-listeners-aren-t-workin...
Sent from the Drools: User forum mailing list archive at
Nabble.com.
_______________________________________________
rules-users mailing list
rules-users(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users