[rules-users] property change listeners aren't working as described in the Expert Doc

Wolfgang Laun wolfgang.laun at gmail.com
Thu Jun 20 13:35:45 EDT 2013


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 at 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/ch04.html#d0e5351
> (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-working-as-described-in-the-Expert-Doc-tp4024437.html
> Sent from the Drools: User forum mailing list archive at Nabble.com.
> _______________________________________________
> rules-users mailing list
> rules-users at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users
>


More information about the rules-users mailing list