Mike-

Is there a scenario where you envision the serdes being anything other than a 
Java POJO/model-style Object?  If so, perhaps we just use the className and 
optionally include a serialVersionUID/version number header?

-Matt

> On May 31, 2017, at 1:44 PM, Michael André Pearce 
> <[email protected]> wrote:
> 
> Hi Matt,
> 
> I would suggest that serdes have to provide a mime type, we will have to add 
> method to expose this, and then we set content-type to the provided mime type 
> string.
> 
> Maybe simple method:
> 
> String mimeType()
> 
> As such if on byte message on consume if custom serdes exist and content type 
> header exists and matches that returned from the serdes we deserialise via 
> custom.
> 
> 
> 
> 
> Sent from my iPhone
> 
>> On 31 May 2017, at 17:58, Matt Pavlovich <[email protected]> wrote:
>> 
>> Hey Mike-
>> 
>> You bring up some good points about keeping the serialization simple and 
>> separate. I’m good w/ that approach.
>> 
>> The API you propose doesn’t seem to indicate a place to touch the message 
>> headers. Are you suggesting that the Artemis client-side SerDes handler 
>> would have a convention where it would set the classname or other in a 
>> standard header? BTW— I think that defining a standard convention would be 
>> preferred. users could still have access to headers / properties ahead of 
>> calling the .send(..).
>> 
>> -Thanks,
>> Matt
>> 
>>> On May 30, 2017, at 9:00 PM, Michael André Pearce 
>>> <[email protected]> wrote:
>>> 
>>> Hi Matt,
>>> 
>>> I think having just a SerDe interface for payload handling separate from a 
>>> general interceptor / client side plugin, is beneficial as then it keeps 
>>> the logic for serialsation well encapsulated. And also cleaner if we need 
>>> to do anything (eg sending it as a bytesmessags with a header flag)
>>> 
>>> I see this very much like difference in kafka where you have payload 
>>> serialisation (serdes) and custom-plugin (interceptors)
>>> 
>>> Also having just a serde makes interface for people to implement and care 
>>> about much simpler. Eg this is almost the interface I would expect:
>>> 
>>> byte[] serialize(Destination destination, Object o)
>>> 
>>> Object deserialize(Destination destination, byte[] bytes)
>>> 
>>> Nice and simple to implement without having to care about anything else.
>>> 
>>> Cheers
>>> Mike
>>> 
>>> 
>>> Sent from my iPhone
>>> 
>>>> On 30 May 2017, at 23:18, Matt Pavlovich <[email protected]> wrote:
>>>> 
>>>> Michael-
>>>> 
>>>> +1 dealing with bytes messages is preferred to object messages and custom 
>>>> object SerDes is super useful.
>>>> 
>>>> What do you think about considering a generic client-side plugin approach 
>>>> vs just a payload handler? 
>>>> 
>>>>> On May 30, 2017, at 4:03 PM, Michael André Pearce 
>>>>> <[email protected]> wrote:
>>>>> 
>>>>> If present then this would be used to serialise the Object instead of the 
>>>>> default, and subsequently create/convert to a BytesMessage, with a header 
>>>>> set to denote it was custom serialised.
>>>> 
>> 

Reply via email to