[rules-users] Custom operator

Edson Tirelli tirelli at post.com
Mon Oct 25 12:51:33 EDT 2010


   That is a mistake as one will override the other. Since they are
the same, no harm done though.... It should suffice to use the
configuration file.

   I am not familiar with eclipse/guvnor code, so can't really help
you with the integration, but I would say, the
SuggestionCompletionEngine could simply query the current
KBuilderConfiguration to obtain the list of available operators. By
that I mean, the core compiler provides the functionality, so the
tools should be able to use that without any problems.

   Edson



2010/10/25 Bruno Freudensprung <bruno.freudensprung at temis.com>:
>
> Hi Edson,
>
> Many thanks for you answer!
> It is surprising that, on one hand, the "drools.default.packagebuilder.conf"
> file contains... :
>
>     drools.evaluator.soundslike =
> org.drools.base.evaluators.SoundslikeEvaluatorsDefinition
>
> ... and on the other hand, EvaluatorRegistry.java contains:
>
>    this.addEvaluatorDefinition( new SoundslikeEvaluatorsDefinition() );
>
> and the source code for the Soundslike operator contains:
>
>     public static final Operator  SOUNDSLIKE =
> Operator.addOperatorToRegistry( "soundslike", false );
>
> All of this, at first sight, let me puzzled on how to really plug a custom
> operator. I'll give a try with the property file!
>
> Any intuition ;-) of how difficult it might be to modify (besides
> SuggestionCompletionEngine and HumanReadable) the business rule editor
> Eclipse plugin for a "gentle" integration of the operator?
>
> Best regards,
>
> Bruno.
>
>
> Edson Tirelli a écrit :
>
>     The instantiation is done automatically, based on configuration or
> API call. More details in here:
>
> http://blog.athico.com/2010/06/creating-pluggable-oprators.html
>
>     But basically, for eclipse to pick it up, best to add to a
> configuration file:
>
> drools.evaluator.MyIdentifierForMyOperators = my.pkg.MyEvaluatorDefinition
>
>     Please note that all drools operators are implemented like that
> and wired through configuration file as seen here:
>
> https://svn.jboss.org/repos/labs/labs/jbossrules/trunk/drools-compiler/src/main/resources/META-INF/drools.default.packagebuilder.conf
>
>     So, adding your own custom operators is no different. Just define
> your own configuration file in the META-INF directory of your
> application package and it will work.
>
>     Edson
>
> 2010/10/25 Swindells, Thomas <TSwindells at nds.com>:
>
>
> For that to work the class also needs to be instantiated - ie it would only
> get created once something in eclipse has touched the class.
>
> Thomas
>
>
>
> -----Original Message-----
> From: rules-users-bounces at lists.jboss.org [mailto:rules-users-
> bounces at lists.jboss.org] On Behalf Of Edson Tirelli
> Sent: 25 October 2010 14:58
> To: Rules Users List
> Subject: Re: [rules-users] Custom operator
>
>    If you look at the implementation of one of the existing operators
> (e.g. MatchesEvaluatorDefinition) you will see this in the beginning
> of the class:
>
> public static final Operator  MATCHES       =
> Operator.addOperatorToRegistry( "matches", false );
>
>    Do the same on your own implementations and it should be fine.
>
>     Edson
>
>
>
> 2010/10/25 Bruno Freudensprung <bruno.freudensprung at temis.com>:
>
>
> Hello,
>
> It seems that the logic behind the "operator" drop-down list comes from
> the
> "org.drools.ide.common.client.modeldriven.SuggestionCompletionEngine"
> and "org.drools.eclipse.rulebuilder.modeldriven.HumanReadable" classes.
> That's for the "rule authoring" perspective.
> I've also seen that the business rule editor involves the DrlParser
> class. So, in a "rule parsing" perspective, I guess I need to find a way
> to register my custom operator into the EvaluatorRegistry used by the
> Eclipse plugin (and I don't know where this can be done).
>
> Do you think I am on the right track? Is there a risk that code
> modifications will involve so many classes that, in the end, adding a
> custom operator to the business rule editor will be a difficult task for
> someone very new to Drools (like me)?
>
> Thanks in advance,
> Best regards,
>
> Bruno.
>
> Bruno Freudensprung a écrit :
>
>
> Hello,
>
> I'd like to implement a custom "lucenematches" operator that would
> enable writing conditions like:
> $d : Doc(text lucenematches "(foo AND bar) OR roam~0.8")
>
> As I've taken a look at the following post on athico
> (http://blog.athico.com/2009/05/imperfect-evaluations.html), and seen
> that the appendix B of the "Drools JBoss Rules 5.0 Developer's Guide"
> book that deals with custom operators, I am rather confident that I will
> find my way in implementing my operator (if not, I'll post here again :-)).
>
> However, I wonder if it will be possible to add my "lucenematches"
> operator to the "operator" drop-down list of the Eclipse's Business Rule
> Editor.
> Does anyone have an idea?
>
> Best regards,
>
> Bruno.
> _______________________________________________
> rules-users mailing list
> rules-users at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users
>
>
>
>
> _______________________________________________
> rules-users mailing list
> rules-users at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users
>
>
>
> --
>   Edson Tirelli
>   JBoss Drools Core Development
>   JBoss by Red Hat @ www.jboss.com
>
> _______________________________________________
> rules-users mailing list
> rules-users at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users
>
>
> **************************************************************************************
> This message is confidential and intended only for the addressee. If you
> have received this message in error, please immediately notify the
> postmaster at nds.com and delete it from your system as well as any copies. The
> content of e-mails as well as traffic data may be monitored by NDS for
> employment and security purposes. To protect the environment please do not
> print this e-mail unless necessary.
>
> NDS Limited. Registered Office: One London Road, Staines, Middlesex, TW18
> 4EX, United Kingdom. A company registered in England and Wales. Registered
> no. 3080780. VAT no. GB 603 8808 40-00
> **************************************************************************************
>
> _______________________________________________
> rules-users mailing list
> rules-users at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users
>
>
>
>
>
> _______________________________________________
> rules-users mailing list
> rules-users at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users
>
>



-- 
  Edson Tirelli
  JBoss Drools Core Development
  JBoss by Red Hat @ www.jboss.com




More information about the rules-users mailing list