[ 
https://issues.apache.org/jira/browse/CAMEL-13988?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Work on CAMEL-13988 started by Omar Al-Safi.
--------------------------------------------
> Enable camel-protobuf to marshal from objects of type Map to Proto using the 
> message descriptor
> -----------------------------------------------------------------------------------------------
>
>                 Key: CAMEL-13988
>                 URL: https://issues.apache.org/jira/browse/CAMEL-13988
>             Project: Camel
>          Issue Type: New Feature
>    Affects Versions: 3.0.0.RC1
>            Reporter: Omar Al-Safi
>            Assignee: Omar Al-Safi
>            Priority: Minor
>             Fix For: 3.x
>
>
> Currently, when you marshal using camel-protobuf, it expects beforehand that 
> you have already created your protobuf message as you can see 
> [here|https://github.com/apache/camel/blob/master/components/camel-protobuf/src/main/java/org/apache/camel/dataformat/protobuf/ProtobufDataFormat.java#L129].
>  I think is beneficial if the user can marshal the data automatically to 
> protobuf provided he/she has the data in {{Map}} type and with the correct 
> instance class name is provided. We can achieve this with the following steps:
>  # In {{marshal}} method, we check if the graph object of type {{Map.class}}.
>  # If it is of type {{Map.class}}, then using the 
> {{defaultInstance.getDescriptorForType()}}, we obtain the [Message 
> Descriptor|https://developers.google.com/protocol-buffers/docs/reference/java/com/google/protobuf/Descriptors.Descriptor]
>  for the class instance.
>  # Using the obtained descriptor, we iterate over map value and set the field 
> from the descriptor.
> By using this, the user can marshal data to Protobuf without the need to 
> process it before as long he/she has the data in type {{Map}}. I can send a 
> PoC PR if you guys find my proposal reasonable enough but from my the top of 
> my head, it shouldn't be much of work to add this feature to camel-protobuf



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to