[rules-users] Cant seem to fire a dynamically added rule

Edson Tirelli tirelli at post.com
Tue Mar 4 14:41:12 EST 2008


   Can you please provide an executable, self contained test case? I will
take a look.

   []s
   Edson

2008/3/4, samirsss <samirsavla at gmail.com>:
>
>
> I tried using the jars from the 4.0.x branch after building them and that
> still doesnt seem to change the outcome. I see that the package builder
> has
> the rule added to it and the count of the rules from it is incremented.
>
>
> public void testDynamicRules()
>   {
>           //Create a rule dynamically and check if it fired from log
> statements
>           RuleBase ruleBase = wm.getRuleBase();
>           Package[] pkg = ruleBase.getPackages();
>           if(pkg[0] != null)
>           {
>                   logger.warn("Package size before adding the rule :
> "+pkg[0].getRules().length);
>                   //Building a new package
>                   final PackageDescr packageDescr = new
> PackageDescr(pkg[0].getName() );
>                   //Building ruleDescriptor
>                   RuleDescr ruleDescr = null;
>
>                   String consequence = "\t\t mediator.addedNewRule();\n";
>
>               ruleDescr = new RuleDescr( "Added new Rule");
>               AndDescr lhs = new AndDescr();
>               ruleDescr.setLhs( lhs );
>
>               final PatternDescr pattern = new PatternDescr(
> "ApplicationEvent",
> //.class.getName(),
>                       "newAppEvent");
>               lhs.addDescr( pattern );
>
>
>               final FieldConstraintDescr insertedValue = new
> FieldConstraintDescr(
> "inserted" );
>               final LiteralRestrictionDescr insertedFieldRes = new
> LiteralRestrictionDescr("==", "false",
> LiteralRestrictionDescr.TYPE_BOOLEAN);
>               insertedValue.addRestriction(insertedFieldRes);
>               pattern.addConstraint(insertedValue);
>
>               final LiteralRestrictionDescr restrictionMessage = new
> LiteralRestrictionDescr("==", "Test2", LiteralRestrictionDescr.TYPE_STRING
> );
>               final FieldConstraintDescr returnValue = new
> FieldConstraintDescr(
> "messageId" );
>               returnValue.addRestriction(restrictionMessage);
>
>               pattern.addConstraint(returnValue);
>
>               ruleDescr.setConsequence( consequence );
>               List attributes = new ArrayList<AttributeDescr>();
>
>               attributes.add(new AttributeDescr("salience", "101"));
>
>               ruleDescr.addAttribute( new AttributeDescr("dialect",
> "java") );
>               ruleDescr.setAttributes(attributes);
>
>               Package defaultPackage = pkg[0];
>               PackageBuilderConfiguration conf = new
> PackageBuilderConfiguration();
>               PackageBuilder builder = new PackageBuilder( defaultPackage,
> conf );
>
>
>                packageDescr.addRule( ruleDescr );
>                builder.addPackage(packageDescr);
>
>
>                DrlDumper drlDumper = new DrlDumper();
>
>                logger.warn("Dumping Package Descriptor for all rules: "+
> drlDumper.dump(packageDescr));
>
>                int errors = builder.getErrors().getErrors().length;
>                if(errors > 0)
>                {
>                    //TODO remove the recently added rule or reload all the
> rules from
> the DRL file
>                    logger.warn("Error while adding a rule");
>
>                }
>                else
>                {
>                    Rule newRule = builder.getPackage().getRule(
> ruleDescr.getName());
>
>                            logger.warn("Package after adding the rule :
> "+newRule.toString()+":
> contains: "+pkg[0].getRules().length+" rules");
>
>                }
>           }
>           else
>           {
>                   logger.warn("Error getting default package for adding
> rules");
>           }
>
>   }
>
>
> I am trying to figure out if I am doing something wrong or its an issue
> with
> Drools.
>
> --
> View this message in context:
> http://www.nabble.com/Cant-seem-to-fire-a-dynamically-added-rule-tp15810172p15834611.html
>
> Sent from the drools - user mailing list archive at Nabble.com.
>
> _______________________________________________
> rules-users mailing list
> rules-users at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users
>



-- 
  Edson Tirelli
  JBoss Drools Core Development
  Office: +55 11 3529-6000
  Mobile: +55 11 9287-5646
  JBoss, a division of Red Hat @ www.jboss.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/rules-users/attachments/20080304/f3a04389/attachment.html 


More information about the rules-users mailing list