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)