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

JiriOndrusek pushed a commit to branch camel-main
in repository https://gitbox.apache.org/repos/asf/camel-quarkus.git

commit 283bea8a640d95ce3c3747b1ebe68d1ae769a96e
Author: jiriOndrusek-agent <[email protected]>
AuthorDate: Thu Oct 22 08:40:36 2026 +0000

    Fix gson and jsonb unmarshal type header tests after CAMEL-24426
    
    Gson and JSON-B read the unmarshal type header only with
    allowUnmarshallType enabled. Enable it in the type-as-header routes,
    use the CamelJsonbUnmarshallType header for JSON-B and assert the
    unmarshalled type, so a Map result no longer passes.
    
    Co-Authored-By: Claude Opus 5.5 <[email protected]>
---
 .../component/dataformats/json/gson/JsonGsonDataformatsResource.java | 5 +++--
 .../component/dataformats/json/gson/JsonGsonDataformatsRoute.java    | 3 ++-
 .../camel/quarkus/component/dataformats/json/gson/GsonJsonTest.java  | 1 +
 .../dataformats/json/jsonb/JsonJsonbDataformatsResource.java         | 5 +++--
 .../component/dataformats/json/jsonb/JsonJsonbDataformatsRoute.java  | 5 +++--
 .../quarkus/component/dataformats/json/jsonb/JsonbJsonTest.java      | 1 +
 6 files changed, 13 insertions(+), 7 deletions(-)

diff --git 
a/integration-test-groups/dataformats-json/json-gson/src/main/java/org/apache/camel/quarkus/component/dataformats/json/gson/JsonGsonDataformatsResource.java
 
b/integration-test-groups/dataformats-json/json-gson/src/main/java/org/apache/camel/quarkus/component/dataformats/json/gson/JsonGsonDataformatsResource.java
index ecb5c672b0..1a51644c4a 100644
--- 
a/integration-test-groups/dataformats-json/json-gson/src/main/java/org/apache/camel/quarkus/component/dataformats/json/gson/JsonGsonDataformatsResource.java
+++ 
b/integration-test-groups/dataformats-json/json-gson/src/main/java/org/apache/camel/quarkus/component/dataformats/json/gson/JsonGsonDataformatsResource.java
@@ -21,6 +21,7 @@ import jakarta.inject.Inject;
 import jakarta.json.bind.JsonbBuilder;
 import jakarta.ws.rs.*;
 import jakarta.ws.rs.core.MediaType;
+import jakarta.ws.rs.core.Response;
 import org.apache.camel.CamelContext;
 import org.apache.camel.ConsumerTemplate;
 import org.apache.camel.ProducerTemplate;
@@ -93,12 +94,12 @@ public class JsonGsonDataformatsResource {
     @POST
     @Consumes(MediaType.TEXT_PLAIN)
     @Produces(MediaType.APPLICATION_JSON)
-    public String testXmlUnmarshalDefinition(@PathParam("direct-id") String 
directId, String statement) {
+    public Response testXmlUnmarshalDefinition(@PathParam("direct-id") String 
directId, String statement) {
         LOG.infof("Invoking testXmlUnmarshalDefinition(%s, %s)", directId, 
statement);
         Object object = producerTemplate.requestBody("direct:" + directId, 
statement);
         String answer = JsonbBuilder.create().toJson(object);
 
-        return answer;
+        return Response.ok(answer).header("unmarshalled-type", 
object.getClass().getName()).build();
     }
 
 }
diff --git 
a/integration-test-groups/dataformats-json/json-gson/src/main/java/org/apache/camel/quarkus/component/dataformats/json/gson/JsonGsonDataformatsRoute.java
 
b/integration-test-groups/dataformats-json/json-gson/src/main/java/org/apache/camel/quarkus/component/dataformats/json/gson/JsonGsonDataformatsRoute.java
index b67b1be758..06ebdf2972 100644
--- 
a/integration-test-groups/dataformats-json/json-gson/src/main/java/org/apache/camel/quarkus/component/dataformats/json/gson/JsonGsonDataformatsRoute.java
+++ 
b/integration-test-groups/dataformats-json/json-gson/src/main/java/org/apache/camel/quarkus/component/dataformats/json/gson/JsonGsonDataformatsRoute.java
@@ -26,6 +26,7 @@ import com.google.gson.reflect.TypeToken;
 import jakarta.enterprise.context.ApplicationScoped;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.gson.GsonDataFormat;
+import org.apache.camel.model.dataformat.JsonDataFormat;
 import org.apache.camel.model.dataformat.JsonLibrary;
 import org.apache.camel.quarkus.component.dataformats.json.gson.model.*;
 import org.apache.camel.spi.DataFormat;
@@ -103,6 +104,6 @@ public class JsonGsonDataformatsRoute extends RouteBuilder {
         from("direct:Gson-type-as-header")
                 .setHeader("CamelGsonUnmarshalType")
                 
.constant("org.apache.camel.quarkus.component.dataformats.json.gson.model.AnotherObject")
-                .unmarshal().json(library);
+                .unmarshal(new 
JsonDataFormat(library).allowUnmarshallType(true));
     }
 }
diff --git 
a/integration-test-groups/dataformats-json/json-gson/src/test/java/org/apache/camel/quarkus/component/dataformats/json/gson/GsonJsonTest.java
 
b/integration-test-groups/dataformats-json/json-gson/src/test/java/org/apache/camel/quarkus/component/dataformats/json/gson/GsonJsonTest.java
index a46f4f1572..1ced03ef8f 100644
--- 
a/integration-test-groups/dataformats-json/json-gson/src/test/java/org/apache/camel/quarkus/component/dataformats/json/gson/GsonJsonTest.java
+++ 
b/integration-test-groups/dataformats-json/json-gson/src/test/java/org/apache/camel/quarkus/component/dataformats/json/gson/GsonJsonTest.java
@@ -85,6 +85,7 @@ public class GsonJsonTest {
                 .body(JsonbBuilder.create().toJson(object))
                 .post("/dataformats-json-gson/unmarshal/{direct-id}", directId)
                 .then()
+                .header("unmarshalled-type", AnotherObject.class.getName())
                 .body("dummyString", is(object.getDummyString()));
     }
 
diff --git 
a/integration-test-groups/dataformats-json/json-jsonb/src/main/java/org/apache/camel/quarkus/component/dataformats/json/jsonb/JsonJsonbDataformatsResource.java
 
b/integration-test-groups/dataformats-json/json-jsonb/src/main/java/org/apache/camel/quarkus/component/dataformats/json/jsonb/JsonJsonbDataformatsResource.java
index d585e3fb9f..fe51656b07 100644
--- 
a/integration-test-groups/dataformats-json/json-jsonb/src/main/java/org/apache/camel/quarkus/component/dataformats/json/jsonb/JsonJsonbDataformatsResource.java
+++ 
b/integration-test-groups/dataformats-json/json-jsonb/src/main/java/org/apache/camel/quarkus/component/dataformats/json/jsonb/JsonJsonbDataformatsResource.java
@@ -21,6 +21,7 @@ import jakarta.inject.Inject;
 import jakarta.json.bind.JsonbBuilder;
 import jakarta.ws.rs.*;
 import jakarta.ws.rs.core.MediaType;
+import jakarta.ws.rs.core.Response;
 import org.apache.camel.CamelContext;
 import org.apache.camel.ConsumerTemplate;
 import org.apache.camel.ProducerTemplate;
@@ -93,12 +94,12 @@ public class JsonJsonbDataformatsResource {
     @POST
     @Consumes(MediaType.TEXT_PLAIN)
     @Produces(MediaType.APPLICATION_JSON)
-    public String testXmlUnmarshalDefinition(@PathParam("direct-id") String 
directId, String statement) {
+    public Response testXmlUnmarshalDefinition(@PathParam("direct-id") String 
directId, String statement) {
         LOG.infof("Invoking testXmlUnmarshalDefinition(%s, %s)", directId, 
statement);
         Object object = producerTemplate.requestBody("direct:" + directId, 
statement);
         String answer = JsonbBuilder.create().toJson(object);
 
-        return answer;
+        return Response.ok(answer).header("unmarshalled-type", 
object.getClass().getName()).build();
     }
 
 }
diff --git 
a/integration-test-groups/dataformats-json/json-jsonb/src/main/java/org/apache/camel/quarkus/component/dataformats/json/jsonb/JsonJsonbDataformatsRoute.java
 
b/integration-test-groups/dataformats-json/json-jsonb/src/main/java/org/apache/camel/quarkus/component/dataformats/json/jsonb/JsonJsonbDataformatsRoute.java
index fe8a9e20a4..cdb1484e96 100644
--- 
a/integration-test-groups/dataformats-json/json-jsonb/src/main/java/org/apache/camel/quarkus/component/dataformats/json/jsonb/JsonJsonbDataformatsRoute.java
+++ 
b/integration-test-groups/dataformats-json/json-jsonb/src/main/java/org/apache/camel/quarkus/component/dataformats/json/jsonb/JsonJsonbDataformatsRoute.java
@@ -21,6 +21,7 @@ import java.util.List;
 import jakarta.enterprise.context.ApplicationScoped;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.jsonb.JsonbDataFormat;
+import org.apache.camel.model.dataformat.JsonDataFormat;
 import org.apache.camel.model.dataformat.JsonLibrary;
 import 
org.apache.camel.quarkus.component.dataformats.json.jsonb.model.AnotherObject;
 import 
org.apache.camel.quarkus.component.dataformats.json.jsonb.model.DummyObject;
@@ -79,8 +80,8 @@ public class JsonJsonbDataformatsRoute extends RouteBuilder {
                 .unmarshal().json(library, AnotherObject.class);
 
         from("direct:Jsonb-type-as-header")
-                .setHeader("CamelGsonUnmarshalType")
+                .setHeader("CamelJsonbUnmarshallType")
                 
.constant("org.apache.camel.quarkus.component.dataformats.json.jsonb.model.AnotherObject")
-                .unmarshal().json(library);
+                .unmarshal(new 
JsonDataFormat(library).allowUnmarshallType(true));
     }
 }
diff --git 
a/integration-test-groups/dataformats-json/json-jsonb/src/test/java/org/apache/camel/quarkus/component/dataformats/json/jsonb/JsonbJsonTest.java
 
b/integration-test-groups/dataformats-json/json-jsonb/src/test/java/org/apache/camel/quarkus/component/dataformats/json/jsonb/JsonbJsonTest.java
index a892b3f981..f3600db1ba 100644
--- 
a/integration-test-groups/dataformats-json/json-jsonb/src/test/java/org/apache/camel/quarkus/component/dataformats/json/jsonb/JsonbJsonTest.java
+++ 
b/integration-test-groups/dataformats-json/json-jsonb/src/test/java/org/apache/camel/quarkus/component/dataformats/json/jsonb/JsonbJsonTest.java
@@ -85,6 +85,7 @@ public class JsonbJsonTest {
                 .body(JsonbBuilder.create().toJson(object))
                 .post("/dataformats-json-jsonb/unmarshal/{direct-id}", 
directId)
                 .then()
+                .header("unmarshalled-type", AnotherObject.class.getName())
                 .body("dummyString", is(object.getDummyString()));
     }
 

Reply via email to