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]

Reply via email to