You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@camel.apache.org by "Bob Paulin (Jira)" <ji...@apache.org> on 2021/02/04 02:25:00 UTC
[jira] [Created] (CAMEL-16139) Support in Json for GlobalOption
override of autoDiscoverObjectMapper
Bob Paulin created CAMEL-16139:
----------------------------------
Summary: Support in Json for GlobalOption override of autoDiscoverObjectMapper
Key: CAMEL-16139
URL: https://issues.apache.org/jira/browse/CAMEL-16139
Project: Camel
Issue Type: New Feature
Components: camel-jackson
Affects Versions: 3.7.1
Environment: Camel 3.7+
Reporter: Bob Paulin
The Java DSL offers a simple way to get started marshalling and unmarshaling objects mid route by:
{code:java}
.unmarshal().json(JsonLibrary.Jackson, Map.class){code}
In 3.x an option was added to allow Jackson to automatically discover ObjectMappers in the Camel registry:
autoDiscoverObjectMapper
This is very convenient to apply global Object mapper configurations to an entire application. However it's defaulted to false and there does not appear to be a way to set this option in the Java DSL without replacing the above code with a DataFormat Object
EX
{code:java}
JacksonDataFormat format = new JacksonDataFormat(Map.class);
format.setAutoDiscoverObjectMapper(true);
.unmarshal(format);{code}
This is a big change to make all over the project.
I'd like to propose being able to set this option globally in the camel context with the GlobalOptions
EX
{code:java}
getContext().getGlobalOptions().put("jackson.json.autoDiscoverObjectMapper", "true");{code}
Then use the Java DSL as is to a ObjectMapper that is already bound in the registry. Would this be an acceptable approach? Other options I'm missing.
I have a patch with a suggested implementation.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)