On Linux, when I created my own accumulate functions, I had to put this
file in my home directory to have it picked up by Eclipse.
Cheers,
Jarek
> 2009/7/15 Asif Iqbal <Asif.Iqbal@infor.com <mailto:Asif.Iqbal@infor.com>>
Edson Tirelli wrote:
>
> root of your project "classpath", not root of your project.
>
> []s
> Edson
>
> <mailto:Asif.Iqbal@infor.com>>>
> Hi Edson,
>
>
>
> I have gone away and tried the properties method of adding the
> customEvaluator, which worked fine for the code. But my IDE still
> does not pick it up. Any ideas?
>
>
>
> Do I need to place it in a META-INF folder in the root of the project?
>
>
>
> I have the following in the drools.packagebuilder.conf file.
>
>
>
> drools.evaluator.custom=com.infor.audit.bpr.component.validation.impl.drools.CustomComparableEvaluatorsDefinition
>
>
>
> thanks..
>
>
>
>
>
> ------------------------------------------------------------------------
>
> *From:* rules-users-bounces@lists.jboss.org
> <mailto:rules-users-bounces@lists.jboss.org>
> [mailto:rules-users-bounces@lists.jboss.org
> <mailto:rules-users-bounces@lists.jboss.org>] *On Behalf Of *Edson
> Tirelli
>
> *Sent:* 15 July 2009 14:57
> *To:* Rules Users List
> *Subject:* Re: [rules-users] Getting hold of the Evaluator Registry
>
>
>
>
> Yes, you are in the right track, and I understand this is a bit
> confusing at first. One more reason for people to go to the October
> Rules Fest 2009 where I will give a presentation on all the ways to
> extend the engine to solve specific problems. It will be interesting
> I hope (last year was awesome) and even Charles Forgy will be there
> doing a presentation on Parallel Rete. :)
>
> Meanwhile I will write a tutorial on this, but just to help you
> there, your approach is correct, except that you don't need to setup
> the option for each operator. It works like this:
>
> * One EvaluatorDefinition class implements support to one or more
> evaluators, defined by the method public String[] getEvaluatorIds().
>
> * All you need to do, then, is wire you class once and the engine
> will pick-up all the IDs supported by that class. When you have your
> class wired, you give it a unique string identifier, so that if you
> ever need to replace it, or remove it, you will use that id.
> Sometimes we use the operator as the ID, but usually it is something
> that reminds you of the kind of evaluators that class define. For
> instance, drools registers the ComparableEvaluatorsDefinition in
> this way:
>
> drools.evaluator.comparable =
> org.drools.base.evaluators.ComparableEvaluatorsDefinition
>
> So in this case, "comparable" is the identifier. Finally, from my
> previous e-mail you will see that the reason that the eclipse IDE is
> still giving you errors is that you are using the API to configure
> the evaluators. Just move the configuration to the configuration
> file and the IDE will pick it up.
>
> []s
> Edson
>
>
> 2009/7/15 Asif Iqbal <Asif.Iqbal@infor.com
>
> Edson,
>
>
>
> What I have done so far is created a
> CustomComparableEvaluatorsDefinition, which is exactly the same as
> the default ComparableEvaluatorsDefinition apart form having support
> for strings, which I have done by creating
> StringGreaterOrEqualEvaluators and added that in my custom class,
> using the addEvaluatorFunction :-
>
>
>
> addEvaluator( ValueType.SHORT_TYPE,
> Operator.GREATER, ShortGreaterEvaluator.INSTANCE );
>
> addEvaluator( ValueType.SHORT_TYPE,
> Operator.GREATER_OR_EQUAL, ShortGreaterOrEqualEvaluator.INSTANCE );
>
> addEvaluator( ValueType.PSHORT_TYPE,
> Operator.LESS, ShortLessEvaluator.INSTANCE );
>
> addEvaluator( ValueType.PSHORT_TYPE,
> Operator.LESS_OR_EQUAL, ShortLessOrEqualEvaluator.INSTANCE );
>
> addEvaluator( ValueType.PSHORT_TYPE,
> Operator.GREATER, ShortGreaterEvaluator.INSTANCE );
>
> addEvaluator( ValueType.PSHORT_TYPE,
> Operator.GREATER_OR_EQUAL, ShortGreaterOrEqualEvaluator.INSTANCE );
>
> //Custom additions
>
> addEvaluator( ValueType.STRING_TYPE,
> Operator.LESS, StringLessEvaluator.INSTANCE );
>
> addEvaluator( ValueType.STRING_TYPE,
> Operator.LESS_OR_EQUAL, StringLessOrEqualEvaluator.INSTANCE );
>
> addEvaluator( ValueType.STRING_TYPE,
> Operator.GREATER, StringGreaterEvaluator.INSTANCE );
>
> addEvaluator( ValueType.STRING_TYPE,
> Operator.GREATER_OR_EQUAL, StringGreaterOrEqualEvaluator.INSTANCE );
>
>
>
> Now Im am trying to wire it, with the following..
>
>
>
> CustomComparableEvaluatorsDefinition
> MyCustomComparable custom = *new*
> CustomComparableEvaluatorsDefinition();
>
> KnowledgeBuilderConfiguration config =
> KnowledgeBuilderFactory./newKnowledgeBuilderConfiguration/();
>
> EvaluatorOption option =
> EvaluatorOption./get/(_Operator./LESS/.toString()_, custom);
>
> EvaluatorOption option2 =
> EvaluatorOption./get/(_Operator./LESS_OR_EQUAL/.toString()_, custom);
>
> EvaluatorOption option3 =
> EvaluatorOption./get/(_Operator./GREATER/.toString()_, custom);
>
> EvaluatorOption option4 =
> EvaluatorOption./get/(_Operator./GREATER_OR_EQUAL/.toString()_, custom);
>
>
>
> config.setOption(option);
>
> config.setOption(option2);
>
> config.setOption(option3);
>
> config.setOption(option4);
>
>
>
> Firstly is this the correct approach?....
>
>
>
> The problem im having is that in my drl files still flag errors,
> when I do “test” > “test2” , am I missing something?
>
>
>
> Regards
>
>
>
> ------------------------------------------------------------------------
>
> *From:* rules-users-bounces@lists.jboss.org
> <mailto:rules-users-bounces@lists.jboss.org>
> [mailto:rules-users-bounces@lists.jboss.org
> <mailto:rules-users-bounces@lists.jboss.org>] *On Behalf Of *Asif Iqbal
> *Sent:* 15 July 2009 08:20
> *To:* Rules Users List
> *Subject:* RE: [rules-users] Getting hold of the Evaluator Registry
>
>
>
> Edson,
>
>
>
> Thanks for your replies they have really helped.
>
>
>
> 1) I am still not sure about creating a new operator, since
> the ‘>=’ operator already exists it just does not cater for strings,
> which I want to add. So would creating a new operator cause the
> existing one to be overrriden when added to the registry?
>
>
>
> 2) Having looked at the examples and tests you emailed, I am
> still unsure how to actually wire in the changes, say for example I
> have replaced the existing ‘>=’ evaluator or created a new evaluator
> so that ‘>=’ now handles strings. When writing rules will the
> engine pick this up?.. or do I need to create a new jar by
> building?.. or do I need to update a configuration file?... im just
> not sure…
>
>
>
> 3) Wouldn’t the following also add the evaluator definition by
> replacing the existing one..
>
>
>
> _PackageBuilderConfiguration_ pkgb = *_new_*_
> PackageBuilderConfiguration()_;
>
>
> _pkgb.getEvaluatorRegistry()_._addEvaluatorDefinition_(*new
> *ComparableEvaluatorsDefinition());
>
> _PackageBuilder_ builder = *_new_*_
> PackageBuilder(pkgb)_;
>
>
>
> _builder.addPackageFromDrl(source)_;
>
> _Package_ pkg = _builder.getPackage()_;
>
> // Add the package to a _rulebase_ (deploy the
> rule package).
>
> rules = _RuleBaseFactory./newRuleBase/()_;
>
> _rules__.addPackage(pkg)_;
>
>
>
> Thanks for your help…
>
>
>
> ------------------------------------------------------------------------
>
> *From:* rules-users-bounces@lists.jboss.org
> <mailto:rules-users-bounces@lists.jboss.org>
> [mailto:rules-users-bounces@lists.jboss.org
> <mailto:rules-users-bounces@lists.jboss.org>] *On Behalf Of *Edson> 2009/7/14 Edson Tirelli <tirelli@post.com <mailto:tirelli@post.com>>
> Tirelli
> *Sent:* 14 July 2009 23:05
> *To:* Rules Users List
> *Subject:* Re: [rules-users] Getting hold of the Evaluator Registry
>
>
>
>
> I am working in one example of drools features where I implement
> a custom evaluator here:
>
> http://anonsvn.jboss.org/repos/labs/labs/jbossrules/contrib/lotrc/src/main/java/org/drools/examples/lotrc/evaluators/IsAdjacentToEvaluatorDefinition.java
>
> I use the configuration file instead of API in the example:
>
> http://anonsvn.jboss.org/repos/labs/labs/jbossrules/contrib/lotrc/src/main/resources/META-INF/drools.packagebuilder.conf
>
> []s
> Edson
>
>> <mailto:Asif.Iqbal@infor.com>>
>
> Asif,
>
> My recommendation is create a new operator for you instead of
> overriding existing ones. Although if you really want to replace the
> existing ones, setting the property or calling the API to register a
> new operator will override the default.
>
> See:
>
> http://anonsvn.jboss.org/repos/labs/labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/builder/KnowledgeBuilderConfigurationTest.java
>
> Test method:
>
> testEvaluatorConfiguration()
>
> []s
> Edson
>
> 2009/7/14 Asif Iqbal <Asif.Iqbal@infor.com
>> rules-users@lists.jboss.org <mailto:rules-users@lists.jboss.org>
> Hi,
>
>
>
> What I need to do is modify one of the evaluator classes
> specifically ‘<=’, so that it can handle strings. Now I know I need
> to create a class similar to ComparableEvaluatorDefinition. But what
> I want to do is replace the existing one in the evaluator registry
> with my implementation which will include the additional String
> capability.
>
>
>
> From my understanding that should be all that is required. Unless im
> missing something… now all I need to know is how do I get hold of
> the evaluator registry?
>
>
>
> Cheers
>
>
>
> I
>
>
>
> _______________________________________________
> rules-users mailing list
> https://lists.jboss.org/mailman/listinfo/rules-users> JBoss by Red Hat @ www.jboss.com <http://www.jboss.com>
>
>
>
>
> --
> Edson Tirelli
> JBoss Drools Core Development
>> JBoss by Red Hat @ www.jboss.com <http://www.jboss.com>
>
>
>
> --
> Edson Tirelli
> JBoss Drools Core Development
>
>
> _______________________________________________
> rules-users mailing list
> rules-users@lists.jboss.org <mailto:rules-users@lists.jboss.org>
> https://lists.jboss.org/mailman/listinfo/rules-users> JBoss by Red Hat @ www.jboss.com <http://www.jboss.com>
>
>
>
>
> --
> Edson Tirelli
> JBoss Drools Core Development
>
>
> _______________________________________________
> rules-users mailing list
> rules-users@lists.jboss.org <mailto:rules-users@lists.jboss.org>
> https://lists.jboss.org/mailman/listinfo/rules-users> JBoss by Red Hat @ www.jboss.com <http://www.jboss.com>
>
>
>
>
> --
> Edson Tirelli
> JBoss Drools Core Development
>
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> rules-users mailing list
> rules-users@lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users
_______________________________________________http://lists.jboss.org/mailman/listinfo/rules-users
rules-users mailing list
rules-users@lists.jboss.org