This is an automated email from the ASF dual-hosted git repository.
mariofusco pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/incubator-kie-drools.git
The following commit(s) were added to refs/heads/main by this push:
new 946067e2cb [KIE-1133] when available always use the fully qualified
name of a type during parsing (#5877)
946067e2cb is described below
commit 946067e2cb03a5065ac11c4e313df731f924c497
Author: Mario Fusco <[email protected]>
AuthorDate: Tue Apr 30 08:33:14 2024 +0200
[KIE-1133] when available always use the fully qualified name of a type
during parsing (#5877)
---
.../java/org/drools/mvelcompiler/LHSPhase.java | 2 +-
.../integrationtests/ConsequenceTypeTest.java | 61 ++++++++++++++++++++++
.../integrationtests/domainfirst/Pojo.java | 14 +++++
.../integrationtests/domainsecond/Pojo.java | 14 +++++
4 files changed, 90 insertions(+), 1 deletion(-)
diff --git
a/drools-model/drools-mvel-compiler/src/main/java/org/drools/mvelcompiler/LHSPhase.java
b/drools-model/drools-mvel-compiler/src/main/java/org/drools/mvelcompiler/LHSPhase.java
index dd634bfcf1..f610dc412f 100644
---
a/drools-model/drools-mvel-compiler/src/main/java/org/drools/mvelcompiler/LHSPhase.java
+++
b/drools-model/drools-mvel-compiler/src/main/java/org/drools/mvelcompiler/LHSPhase.java
@@ -395,7 +395,7 @@ public class LHSPhase implements
DrlGenericVisitor<TypedExpression, Void> {
private Class<?> getRHSorLHSType(VariableDeclarator n) {
return mvelCompilerContext.resolveType(n.getType() instanceof
ClassOrInterfaceType ?
- n.getType().asClassOrInterfaceType().getNameAsString() :
+ n.getType().asClassOrInterfaceType().getNameWithScope() :
n.getType().asString());
}
diff --git
a/drools-test-coverage/test-compiler-integration/src/test/java/org/drools/compiler/integrationtests/ConsequenceTypeTest.java
b/drools-test-coverage/test-compiler-integration/src/test/java/org/drools/compiler/integrationtests/ConsequenceTypeTest.java
new file mode 100644
index 0000000000..eb6f574a35
--- /dev/null
+++
b/drools-test-coverage/test-compiler-integration/src/test/java/org/drools/compiler/integrationtests/ConsequenceTypeTest.java
@@ -0,0 +1,61 @@
+package org.drools.compiler.integrationtests;
+
+import java.util.Collection;
+
+import org.drools.testcoverage.common.util.KieBaseTestConfiguration;
+import org.drools.testcoverage.common.util.KieBaseUtil;
+import org.drools.testcoverage.common.util.TestParametersUtil;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized;
+import org.kie.api.KieBase;
+import org.kie.api.runtime.KieSession;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+@RunWith(Parameterized.class)
+public class ConsequenceTypeTest {
+
+ private final KieBaseTestConfiguration kieBaseTestConfiguration;
+
+ public ConsequenceTypeTest(final KieBaseTestConfiguration
kieBaseTestConfiguration) {
+ this.kieBaseTestConfiguration = kieBaseTestConfiguration;
+ }
+
+ @Parameterized.Parameters(name = "KieBase type={0}")
+ public static Collection<Object[]> getParameters() {
+ return TestParametersUtil.getKieBaseCloudConfigurations(true);
+ }
+
+ @Test
+ public void test() {
+ // KIE-1133
+
+ int ruleNr = 100;
+ StringBuilder drl = new StringBuilder();
+ drl.append("package org.rules;\n");
+ drl.append("import
org.drools.compiler.integrationtests.domainfirst.*\n");
+ drl.append("import
org.drools.compiler.integrationtests.domainsecond.*\n");
+ drl.append("dialect \"mvel\"\n");
+ for (int i = 0; i < ruleNr; i++) {
+ drl.append(generatedRule(i));
+ }
+
+ final KieBase kbase =
KieBaseUtil.getKieBaseFromKieModuleFromDrl("test", kieBaseTestConfiguration,
drl.toString());
+ final KieSession wm = kbase.newKieSession();
+
+ wm.insert("test");
+ assertThat(wm.fireAllRules()).isEqualTo(ruleNr);
+ }
+
+ private String generatedRule(int seed) {
+ return "rule R" + seed + " when $s : String() then\n" +
+ "org.drools.compiler.integrationtests.domainfirst.Pojo $pojo =
new org.drools.compiler.integrationtests.domainfirst.Pojo();\n" +
+ "org.drools.compiler.integrationtests.domainsecond.Pojo
$pojo_No2 = new org.drools.compiler.integrationtests.domainsecond.Pojo();\n" +
+ "$pojo.setId($s.length() + " + seed + ");\n" +
+ "$pojo_No2.setId($s.length() + " + seed + ");\n" +
+ "insert($pojo);\n" +
+ "insert($pojo_No2);\n" +
+ "end\n";
+ }
+}
diff --git
a/drools-test-coverage/test-compiler-integration/src/test/java/org/drools/compiler/integrationtests/domainfirst/Pojo.java
b/drools-test-coverage/test-compiler-integration/src/test/java/org/drools/compiler/integrationtests/domainfirst/Pojo.java
new file mode 100644
index 0000000000..049b47b027
--- /dev/null
+++
b/drools-test-coverage/test-compiler-integration/src/test/java/org/drools/compiler/integrationtests/domainfirst/Pojo.java
@@ -0,0 +1,14 @@
+package org.drools.compiler.integrationtests.domainfirst;
+
+public class Pojo {
+
+ private int id;
+
+ public int getId() {
+ return id;
+ }
+
+ public void setId(int id) {
+ this.id = id;
+ }
+}
diff --git
a/drools-test-coverage/test-compiler-integration/src/test/java/org/drools/compiler/integrationtests/domainsecond/Pojo.java
b/drools-test-coverage/test-compiler-integration/src/test/java/org/drools/compiler/integrationtests/domainsecond/Pojo.java
new file mode 100644
index 0000000000..6ec7220e33
--- /dev/null
+++
b/drools-test-coverage/test-compiler-integration/src/test/java/org/drools/compiler/integrationtests/domainsecond/Pojo.java
@@ -0,0 +1,14 @@
+package org.drools.compiler.integrationtests.domainsecond;
+
+public class Pojo {
+
+ private int id;
+
+ public int getId() {
+ return id;
+ }
+
+ public void setId(int id) {
+ this.id = id;
+ }
+}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]