This is an automated email from the ASF dual-hosted git repository.

josedee pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/incubator-kie.git


The following commit(s) were added to refs/heads/main by this push:
     new ea3d9408c81 [incubator-kie-issues-2370] Duplicate Process Variable 
available in swagger page if variable starts with Capital Letter (#6845)
ea3d9408c81 is described below

commit ea3d9408c81b3575db043475c1db3cebc7d761e8
Author: abhijithumbe <[email protected]>
AuthorDate: Fri Sep 4 07:59:59 2026 +0530

    [incubator-kie-issues-2370] Duplicate Process Variable available in swagger 
page if variable starts with Capital Letter (#6845)
    
    Co-authored-by: abhijithumbe <[email protected]>
---
 .../org/jbpm/compiler/canonical/ModelMetaData.java |  4 +-
 .../canonical/ProcessToExecModelGeneratorTest.java | 51 ++++++++++++++++++++++
 2 files changed, 54 insertions(+), 1 deletion(-)

diff --git 
a/kogito-jbpm/jbpm-flow-builder/src/main/java/org/jbpm/compiler/canonical/ModelMetaData.java
 
b/kogito-jbpm/jbpm-flow-builder/src/main/java/org/jbpm/compiler/canonical/ModelMetaData.java
index bd3d64d21af..cdfad7af803 100644
--- 
a/kogito-jbpm/jbpm-flow-builder/src/main/java/org/jbpm/compiler/canonical/ModelMetaData.java
+++ 
b/kogito-jbpm/jbpm-flow-builder/src/main/java/org/jbpm/compiler/canonical/ModelMetaData.java
@@ -236,7 +236,9 @@ public class ModelMetaData {
             applyValidation(fd, tags);
             applyOpenApiSchemaAnnotation(fd);
 
-            fd.createGetter();
+            MethodDeclaration getter = fd.createGetter();
+            getter.addAnnotation(new NormalAnnotationExpr(new 
Name(JsonProperty.class.getCanonicalName()),
+                    NodeList.nodeList(new MemberValuePair("value", new 
StringLiteralExpr(varName)))));
             MethodDeclaration setter = fd.createSetter();
             if (isInputModel()) {
                 // Only Input setters run from request deserialization - 
Model/Output setters
diff --git 
a/kogito-jbpm/jbpm-flow-builder/src/test/java/org/jbpm/compiler/canonical/ProcessToExecModelGeneratorTest.java
 
b/kogito-jbpm/jbpm-flow-builder/src/test/java/org/jbpm/compiler/canonical/ProcessToExecModelGeneratorTest.java
index b4643e801cf..dab02975850 100644
--- 
a/kogito-jbpm/jbpm-flow-builder/src/test/java/org/jbpm/compiler/canonical/ProcessToExecModelGeneratorTest.java
+++ 
b/kogito-jbpm/jbpm-flow-builder/src/test/java/org/jbpm/compiler/canonical/ProcessToExecModelGeneratorTest.java
@@ -32,6 +32,11 @@ import org.kie.api.definition.process.WorkflowProcess;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.github.javaparser.ast.CompilationUnit;
+import com.github.javaparser.ast.body.MethodDeclaration;
+import com.github.javaparser.ast.expr.NormalAnnotationExpr;
+
 import static org.assertj.core.api.Assertions.assertThat;
 
 public class ProcessToExecModelGeneratorTest {
@@ -199,4 +204,50 @@ public class ProcessToExecModelGeneratorTest {
         ProcessMetaData processMetadata = 
ProcessToExecModelGenerator.INSTANCE.generate(process);
         assertThat(processMetadata).as("Dumper should return non null class 
for process").isNotNull();
     }
+
+    @Test
+    public void testUppercaseVariableGetterHasJsonProperty() {
+        RuleFlowProcessFactory factory = 
RuleFlowProcessFactory.createProcess("demo.uppercase");
+
+        factory
+                .variable("FirstName", new StringDataType())
+                .name("uppercase")
+                .packageName("com.myspace.demo")
+                .dynamic(false)
+                .version("1.0")
+                .startNode(one)
+                .name("start")
+                .done()
+                .endNode(two)
+                .name("end")
+                .terminate(false)
+                .done()
+                .connection(one, two);
+
+        WorkflowProcess process = factory.validate().getProcess();
+
+        ModelMetaData modelMetadata = 
ProcessToExecModelGenerator.INSTANCE.generateModel(process);
+
+        CompilationUnit generatedModel = modelMetadata.generateUnit();
+
+        MethodDeclaration getter = generatedModel
+                .findFirst(MethodDeclaration.class,
+                        method -> 
method.getNameAsString().equals("getFirstName"))
+                .orElseThrow(() -> new AssertionError("Generated getter 
getFirstName() was not found"));
+
+        NormalAnnotationExpr jsonProperty = getter
+                .getAnnotationByName(JsonProperty.class.getCanonicalName())
+                .orElseThrow(() -> new AssertionError(
+                        "Generated getter getFirstName() does not have 
@JsonProperty"))
+                .asNormalAnnotationExpr();
+
+        assertThat(jsonProperty.getPairs()).hasSize(1);
+        assertThat(jsonProperty.getPairs().get(0).getNameAsString())
+                .isEqualTo("value");
+        assertThat(jsonProperty.getPairs().get(0)
+                .getValue()
+                .asStringLiteralExpr()
+                .asString())
+                        .isEqualTo("FirstName");
+    }
 }


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to