[JBoss JIRA] (DROOLS-4560) executable-model wrongly calculates in eval with parenthesis
by Luca Molteni (Jira)
[ https://issues.jboss.org/browse/DROOLS-4560?page=com.atlassian.jira.plugi... ]
Luca Molteni updated DROOLS-4560:
---------------------------------
Sprint: 2019 Week 38-40 (from Sep 16)
> executable-model wrongly calculates in eval with parenthesis
> ------------------------------------------------------------
>
> Key: DROOLS-4560
> URL: https://issues.jboss.org/browse/DROOLS-4560
> Project: Drools
> Issue Type: Bug
> Components: executable model
> Affects Versions: 7.27.0.Final
> Environment: - executable-model
> Reporter: Toshiya Kobayashi
> Assignee: Luca Molteni
> Priority: Major
> Labels: support
>
> executable-model wrongly calculates in eval with parenthesis.
> For example, with this rule,
> {noformat}
> import org.drools.modelcompiler.domain.CalcFact;rule R when
> $p : CalcFact( $v1 : value1, $v2 : value2 )
> eval( ($v1 / ($v2 * 10) * 10) > 25 )
> then
> end
> {noformat}
> if $v1 = 1 and $v2 = 1, ($v1 / ($v2 * 10) * 10) is 1. So the rule should not fire.
> However, executable-model generates Java code:
> {code:java}
> public class Rules4A265EF484FEEE0E4E84E77B3DEB48F9RuleMethods0 {
> /**
> * Rule name: R
> */
> public static org.drools.model.Rule rule_R() {
> final org.drools.model.Variable<org.drools.modelcompiler.domain.CalcFact> var_$p = D.declarationOf(org.drools.modelcompiler.domain.CalcFact.class,
> "$p");
> final org.drools.model.Variable<Double> var_$v1 = D.declarationOf(Double.class,
> "$v1");
> final org.drools.model.Variable<Double> var_$v2 = D.declarationOf(Double.class,
> "$v2");
> org.drools.model.Rule rule = D.rule("R").build(D.bind(var_$v1).as(var_$p,
> (_this) -> _this.getValue1()).reactOn("value1"),
> D.bind(var_$v2).as(var_$p,
> (_this) -> _this.getValue2()).reactOn("value2"),
> D.expr("454A1C822808AC7491268E4F381F0EDA",
> var_$v1,
> var_$v2,
> ($v1, $v2) -> org.drools.modelcompiler.util.EvaluationUtil.greaterThanNumbers($v1 / $v2 * 10 * 10,
> 25d)),
> D.execute(() -> {
> }));
> return rule;
> }
> }
> {code}
> See that parentheses are removed so ($v1 / $v2 * 10 * 10) becomes 100.
--
This message was sent by Atlassian Jira
(v7.13.8#713008)
6 years, 7 months
[JBoss JIRA] (DROOLS-4368) HACEP Refactor DefaultKafkaConsumer
by Massimiliano Dessi (Jira)
[ https://issues.jboss.org/browse/DROOLS-4368?page=com.atlassian.jira.plugi... ]
Massimiliano Dessi updated DROOLS-4368:
---------------------------------------
Summary: HACEP Refactor DefaultKafkaConsumer (was: HACEP Refactor DefaultKafkaConsumer -Testing )
> HACEP Refactor DefaultKafkaConsumer
> -----------------------------------
>
> Key: DROOLS-4368
> URL: https://issues.jboss.org/browse/DROOLS-4368
> Project: Drools
> Issue Type: Task
> Components: core engine
> Reporter: Daniele Zonca
> Assignee: Massimiliano Dessi
> Priority: Major
> Labels: HADrools
>
> Try to uniform leader/replica flow:
> - If I'm the leader it invokes `defaultProcessAsLeader` -> `processLeader` -> `process/processWithSnapshot`
> - If I'm a replica it invokes `defaultProcessAsAReplica` -> `consumeEventsFromBufferAsAReplica` -> `processEventsAsAReplica` -> `process`
> Try to remove most/all boolean and use proper method parameter
> Verify defaultProcessAsAReplica else branch. This should never happen because if leader sent a message about process a specific event, it should be available
--
This message was sent by Atlassian Jira
(v7.13.8#713008)
6 years, 7 months
[JBoss JIRA] (DROOLS-4368) HACEP Refactor DefaultKafkaConsumer
by Massimiliano Dessi (Jira)
[ https://issues.jboss.org/browse/DROOLS-4368?page=com.atlassian.jira.plugi... ]
Massimiliano Dessi resolved DROOLS-4368.
----------------------------------------
Resolution: Done
> HACEP Refactor DefaultKafkaConsumer
> -----------------------------------
>
> Key: DROOLS-4368
> URL: https://issues.jboss.org/browse/DROOLS-4368
> Project: Drools
> Issue Type: Task
> Components: core engine
> Reporter: Daniele Zonca
> Assignee: Massimiliano Dessi
> Priority: Major
> Labels: HADrools
>
> Try to uniform leader/replica flow:
> - If I'm the leader it invokes `defaultProcessAsLeader` -> `processLeader` -> `process/processWithSnapshot`
> - If I'm a replica it invokes `defaultProcessAsAReplica` -> `consumeEventsFromBufferAsAReplica` -> `processEventsAsAReplica` -> `process`
> Try to remove most/all boolean and use proper method parameter
> Verify defaultProcessAsAReplica else branch. This should never happen because if leader sent a message about process a specific event, it should be available
--
This message was sent by Atlassian Jira
(v7.13.8#713008)
6 years, 7 months
[JBoss JIRA] (DROOLS-4604) Query code generation neglects query parameter(s)
by Mario Fusco (Jira)
[ https://issues.jboss.org/browse/DROOLS-4604?page=com.atlassian.jira.plugi... ]
Mario Fusco updated DROOLS-4604:
--------------------------------
Story Points: 2
Sprint: 2019 Week 41-43 (from Okt 7)
> Query code generation neglects query parameter(s)
> -------------------------------------------------
>
> Key: DROOLS-4604
> URL: https://issues.jboss.org/browse/DROOLS-4604
> Project: Drools
> Issue Type: Bug
> Components: core engine
> Affects Versions: 7.27.0.Final
> Reporter: IVAN ZILOTTI
> Assignee: Mario Fusco
> Priority: Blocker
>
> The Drools _query_ code generated by the test method below is not including the query parameter ({{String eventId}}) specified via {{PackageDescrBuilder}}.
> Note that parameters to Drools _functions_ constructed through the same process are correctly included. See _org.drools.compiler.lang.api.DescrBuilderTest#testFunctions_.
>
> h3. Generated code
> {code:java}
> package org.test.rules
> import org.test.event.TemporalEvent
> query "getTemporalEventById"
> TemporalEvent( id == eventId ) from entry-point "TemporalEventStream"
> end
> {code}
> h3. Test
> {code:java}
> @Test
> public void testFluentQuery() {
> PackageDescrBuilder packBuilder =
> DescrFactory.newPackage()
> .name("org.test.rules")
> .newImport()
> .target("org.test.event.TemporalEvent")
> .end()
> .newQuery()
> .name("getTemporalEventById")
> .parameter("String", "eventId")
> .lhs()
> .pattern( "TemporalEvent")
> .constraint("id == eventId")
> .from()
> .entryPoint("EventStream")
> .end()
> .end()
> .end()
> .end();
> String query = new DrlDumper().dump(packBuilder.getDescr());
> System.out.println(query);
> }
> {code}
--
This message was sent by Atlassian Jira
(v7.13.8#713008)
6 years, 7 months