Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR introduces an interface to perform the mapping of
CloudEventDataand integrates it in the read process.Now the user, when reading an event, can provide a mapper that converts the parsed
CloudEventData, in whatever shape it is, to the desired data payload. The mapper is consistently invoked both when messages are in structured mode or binary mode: in this way, users define their ownCloudEventData, along withCloudEventDataMapper, and they can consistently access to the event payloads, no matter from which "medium" the event came from.When message is transcoded from one message to another, without going through
Event(look atMessageReader#visitmethod), the mapper is not invoked.Because we reuse
CloudEventData, the user can eventually develop optimizations in this mapper (e.g. if data is instance ofJsonCloudEventData, then faster mapping to my pojo, etc).Also introduces
CloudEventBuilder#fromstatic method to simplify copying events.Among the other usability issues, this fixes #238, in the sense that now users can finally provide a mapper in the kafka
CloudEventDeserializerto map data to their business object (e.g.CloudEventDataMappercan implement the conversion data in avro format -> business object)Signed-off-by: Francesco Guardiani francescoguard@gmail.com