Thanks for the notes guys. However it doesn't look like SXC will do it
for me. I'm currently using multiple functions from XPath 2.0 and it
doesn't look like SXC supports it yet. I may however look at how SXC
implements it, and see if I can do a similar thing.
I would like to hear some more suggestions if you have some? :)
[mailto:email@example.com] On Behalf Of Mark Proctor
Sent: Tuesday, April 17, 2007 10:15 AM
To: Rules Users List
Subject: Re: [rules-users] Efficiency of rules with XPath...
use SXC its a high perfromance XPath parser with JBRules integration, no
need to use eval.
Schwenker, Stephen wrote:
I'm trying to make my rule more efficient but I'm not sure how.
I've designed my rules based around xml objects. Basically, I have
these documents and XPath queries are executed against the Object to
determine if the rule should be executed. The problems is, is that we
have over 900 rules that need to be executed. The performance isn't
really that bad but I would like to Make it even better.
To do the job, I have written an XmlUtils class to execute the
expression. The class first gets the XPathFactory. Then compiles the
expression and then executes the expression. This happens for every
expression, and will happen each time the same expression is executed.
I want to make the rules more efficient by getting the XPathFactory once
and compiling the expression once and then execute the expression n time
on the same compiled object.
I would like to know if there is a way I can have the rule
object that is generated by the package build do the compile of the
XPath Expression and then use it instead of compiling it every time.
Here is a sample of one of my rule criteria.
eval( XmlUtils.evaluatePathBoolean( asset,
'Desk']/ass:value/text() = 'column')") )
rules-users mailing list