You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@camel.apache.org by "Omar Al-Safi (Jira)" <ji...@apache.org> on 2019/09/25 16:12:00 UTC

[jira] [Work started] (CAMEL-13988) Enable camel-protobuf to marshal from objects of type Map to Proto using the message descriptor

     [ 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)