[
https://issues.apache.org/jira/browse/CAMEL-24426?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Work on CAMEL-24426 started by Andrea Cosentino.
------------------------------------------------
> camel-gson, camel-jsonb, camel-jaxb - gate the unmarshal-type header behind
> an opt-in like camel-jackson does
> -------------------------------------------------------------------------------------------------------------
>
> Key: CAMEL-24426
> URL: https://issues.apache.org/jira/browse/CAMEL-24426
> Project: Camel
> Issue Type: Improvement
> Components: camel-gson
> Reporter: Andrea Cosentino
> Assignee: Andrea Cosentino
> Priority: Major
> Fix For: 4.23.0
>
>
> camel-jackson gates the type-selecting header behind an explicit option:
> {code:java}
> Class<?> clazz = unmarshalType;
> String type = null;
> if (allowUnmarshallType) {
> type = exchange.getIn().getHeader(JacksonConstants.UNMARSHAL_TYPE,
> String.class);
> }
> {code}
> The sibling data formats honour their equivalent header unconditionally:
> * camel-gson GsonDataFormat.unmarshal() - GsonConstants.UNMARSHAL_TYPE
> * camel-jsonb JsonbDataFormat.unmarshal() - "CamelJsonbUnmarshallType"
> * camel-jaxb JaxbDataFormat - partClassFromHeader, resolved via
> ClassResolver.resolveMandatoryClass
> grep for allowUnmarshallType across camel-gson, camel-jsonb, camel-jaxb and
> camel-fastjson returns nothing, so none of them has the gate.
> Proposal: add an allowUnmarshallType option (default false) to each of these
> data formats, mirroring camel-jackson's naming and semantics, so the header
> is only consulted when the route author opts in. This is a behaviour change
> for routes that rely on the header today, so it needs an upgrade-guide entry.
> Consider filing camel-fastjson separately if it has an equivalent header.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)