[jboss-jira] [JBoss JIRA] (DROOLS-2486) Drools Runtime does not recognize Custom Operator Parameter
bharath mogali (JIRA)
issues at jboss.org
Fri Apr 20 16:50:00 EDT 2018
[ https://issues.jboss.org/browse/DROOLS-2486?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13564892#comment-13564892 ]
bharath mogali commented on DROOLS-2486:
----------------------------------------
Not sure if this helps, but we tried to copied entire code from Drools Repo for Str operator and created our own operator. Surprisingly our tests mentioned earlier did not work.
We have other operators like date[before/after/equals] we are noticing same behavior for them as well.
> Drools Runtime does not recognize Custom Operator Parameter
> -----------------------------------------------------------
>
> Key: DROOLS-2486
> URL: https://issues.jboss.org/browse/DROOLS-2486
> Project: Drools
> Issue Type: Feature Request
> Components: core engine
> Affects Versions: 7.7.0.Final
> Reporter: bharath mogali
> Assignee: Mario Fusco
>
> Problem Statement:
> We have few custom operators for Date and Strings, which are implemented looking at Str operator like shown here: https://github.com/kiegroup/drools/blob/f7ab4ee3c88d767a8cbb372c2db1afa84b20a51d/drools-core/src/main/java/org/drools/core/base/evaluators/StrEvaluatorDefinition.java
> with below configuration in kie.properties.conf:
> drools.evaluator.str = com.company.drools.operators.StrEvaluatorDefinition
> For Custom Str operator we created, Drools runtime is not able to make distinction between Str[begins] and Str[ends].
> What this means is when we are running below tests, we expect Rule-1 to fail and Rule-2 to get activated. But what we noticed is, Rule-2 will not be activated.
> // Facts input into drools :
> // str1 = drools
> // str2 = dr
> rule "Rule-1"
> when message : Customer( str1 str[endsWith] str2 )
> then System.out.println("Rule - Str 1 - fired");
> end
> rule "Rule-2"
> when message : Customer( str1 str[startsWith] str2 )
> then System.out.println("Rule - Str 2 - fired");
> end
> Other Observations:
> If we change RHS to a a string literal like shown below, then Rule-2 will be Activated.
> // Facts input into drools :
> // str1 = drools
> // str2 = dr
> rule "Rule-1"
> when message : Customer( str1 str[endsWith] "abc" )
> then System.out.println("Rule - Str 1 - fired");
> end
> rule "Rule-2"
> when message : Customer( str1 str[startsWith] str2 )
> then System.out.println("Rule - Str 2 - fired");
> end
> Finally
> We removed Str custom operator, and then used the out of the box Str operator provided by drools. We ran below mentioned tests again, this time Rule-2 gets activated.
> // Facts input into drools :
> // str1 = drools
> // str2 = dr
> rule "Rule-1"
> when message : Customer( str1 str[endsWith] str2 )
> then System.out.println("Rule - Str 1 - fired");
> end
> rule "Rule-2"
> when message : Customer( str1 str[startsWith] str2 )
> then System.out.println("Rule - Str 2 - fired");
> end
> Based on our tests, it seems like custom operators are not processed correctly.
--
This message was sent by Atlassian JIRA
(v7.5.0#75005)
More information about the jboss-jira
mailing list