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())); }
