You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@johnzon.apache.org by Roberto Cortez <ra...@yahoo.com.INVALID> on 2018/04/18 17:31:37 UTC

Arrays / Lists elements polymorphic support

Hi guys,
I'm trying to serialize a list of elements of multiple types and then deserialize it again. It does require to somehow include the type in the serialization result to know to which type we should map to deserialize. I think this could possible be done with an Adapter and playing with the JsonArray.
I was just wondering if there any kind of out of the box support for this. It doesn't seem so, at least I was not able to find.
Jackson for instance, includes a set of annotations that allow you to do exactly this, without any extra / custom code.
Any thoughts?
Thank you.
Cheers,Roberto

Re: R: Arrays / Lists elements polymorphic support

Posted by Romain Manni-Bucau <rm...@gmail.com>.
Nothing new AFAIK

Romain Manni-Bucau
@rmannibucau <https://twitter.com/rmannibucau> |  Blog
<https://rmannibucau.metawerx.net/> | Old Blog
<http://rmannibucau.wordpress.com> | Github <https://github.com/rmannibucau> |
LinkedIn <https://www.linkedin.com/in/rmannibucau> | Book
<https://www.packtpub.com/application-development/java-ee-8-high-performance>


Le ven. 18 mai 2018 à 11:58, Alessandro Moscatelli <
alessandro.moscatelli@live.com> a écrit :

> Hi there,
> any news about making the polymorphic support part of JSONB api ?
>
> Thank you
> Alessandro
>
> Da: Jean-Louis MONTEIRO<ma...@gmail.com>
> Inviato: martedì 24 aprile 2018 14:17
> A: dev@johnzon.apache.org<ma...@johnzon.apache.org>
> Oggetto: Re: R: Arrays / Lists elements polymorphic support
>
> Wow, thanks for the quick turn around Romain.
>
> Le mar. 24 avr. 2018 à 12:41, Romain Manni-Bucau <rm...@gmail.com> a
> écrit :
>
> > Give it a try, you dont have that api portably yet I fear bit happy to be
> > wrong.
> >
> > Le 24 avr. 2018 12:35, "Alessandro Moscatelli" <
> > alessandro.moscatelli@live.com> a écrit :
> >
> > > And btw I can’t see the need for scanning in the first place :
> > >
> > > Step 1) While deserializing Collection<T>, when T is known at compile
> > time
> > > (damn type erasure), we can check if Class<T> has
> @JsonbTypeDeserializer
> > > annotation. I believe this is what we are already doing (I hope so!).
> So
> > > the specified Deserializer should be called,
> > Polymorphic.DeSerializer.class
> > > in this case.
> > >
> > > Step 2) Polymorphic.DeSerializer should check if Class<T> has
> > > @Polymorphic.JsonChildren annotation, and also if specified children
> > > classes have @Polymorphic.JsonId annotation. With all these information
> > > deserialization can be done without scanning, I believe.
> > >
> > >
> > > ________________________________
> > > Da: Alessandro Moscatelli <al...@live.com>
> > > Inviato: Tuesday, April 24, 2018 12:17:12 PM
> > > A: dev@johnzon.apache.org
> > > Oggetto: R: Arrays / Lists elements polymorphic support
> > >
> > > Conflict will still be possible if you choose the same id, or if you
> > don’t
> > > specify the id and the colliding simplenames of different classes will
> be
> > > used.
> > >
> > > ‘Scanning’ could be done at Deploy time, on each entity with
> @Polimorphic
> > > annotation only.
> > >
> > > The real gain would be the possibility to use Polymorphism without
> > > modifying every entity referencing the polymorphic one, even more when
> > you
> > > could not even if you want (for example Collection).
> > >
> > > Another nice option would be to register children programmatically …
> > >
> > >
> > > Da: Romain Manni-Bucau<ma...@gmail.com>
> > > Inviato: martedì 24 aprile 2018 12:06
> > > A: dev@johnzon.apache.org<ma...@johnzon.apache.org>
> > > Oggetto: Re: Arrays / Lists elements polymorphic support
> > >
> > > 2018-04-24 11:46 GMT+02:00 Alessandro Moscatelli <
> > > alessandro.moscatelli@live.com>:
> > >
> > > > Shouldn’t the @Polymorphic.JsonId (defaulting to simple name if
> absent)
> > > be
> > > > the meta to use to know what you will deserialize ?
> > > >
> > >
> > > Yes, that's what it is actually but how do you find it?
> > > Scanning? means you are slow for no real gain + you can conflict
> between
> > > libraries and models
> > >
> > >
> > > >
> > > > By the way, how the Polymorphic.JsonId will be serialized ? This is
> not
> > > > specified in the index.md.
> > > >
> > >
> > > {_type: <id>,_value: <value>}
> > >
> > >
> > > >
> > > >
> > > >
> > > >
> > > >
> > > > ________________________________
> > > > Da: Romain Manni-Bucau <rm...@gmail.com>
> > > > Inviato: Tuesday, April 24, 2018 11:42:13 AM
> > > > A: dev@johnzon.apache.org
> > > > Oggetto: Re: Arrays / Lists elements polymorphic support
> > > >
> > > > Not it wouldn't work since when you deserialize you don't have any
> meta
> > > on
> > > > what you will deserialize.
> > > >
> > > > There are alternative to this impl but this is the one requiring the
> > > least
> > > > configuration I think.
> > > >
> > > >
> > > > Romain Manni-Bucau
> > > > @rmannibucau <https://twitter.com/rmannibucau> |  Blog
> > > > <https://rmannibucau.metawerx.net/> | Old Blog
> > > > <http://rmannibucau.wordpress.com> | Github <https://github.com/
> > > > rmannibucau> |
> > > > LinkedIn <https://www.linkedin.com/in/rmannibucau> | Book
> > > > <https://www.packtpub.com/application-development/java-
> > > > ee-8-high-performance>
> > > >
> > > > 2018-04-24 11:39 GMT+02:00 Alessandro Moscatelli <
> > > > alessandro.moscatelli@live.com>:
> > > >
> > > > > I think I would be great if this could be part of the Jsonb spec.
> > > > > I noticed the lack of real support for polymorphism.
> > > > >
> > > > > Regarding your impl :
> > > > >
> > > > > What if you need a Collection of polymorphic entities ?
> > > > > Wouldn’t it be better to declare the
> > > > >
> > > > >     @JsonbTypeSerializer(Polymorphic.Serializer.class)
> > > > >     @JsonbTypeDeserializer(Polymorphic.DeSerializer.class)
> > > > >
> > > > > Directly on the root entity instead of declare them on the field ?
> > > > > Would it work ?
> > > > >
> > > > > AM
> > > > >
> > > > > Da: Romain Manni-Bucau<ma...@gmail.com>
> > > > > Inviato: lunedì 23 aprile 2018 19:03
> > > > > A: dev@johnzon.apache.org<ma...@johnzon.apache.org>
> > > > > Oggetto: Re: Arrays / Lists elements polymorphic support
> > > > >
> > > > > Ok
> > > > >
> > > > > Will try to adapt the impl we had and push it later today or tmr
> and
> > > ping
> > > > > here for feedbacks
> > > > >
> > > > > Le 23 avr. 2018 18:46, "Jean-Louis MONTEIRO" <je...@gmail.com>
> a
> > > > écrit
> > > > > :
> > > > >
> > > > > > That works for me.
> > > > > > I agree that having that extension into a specific module is the
> > way
> > > to
> > > > > go
> > > > > >
> > > > > > Le lun. 23 avr. 2018 à 18:44, Romain Manni-Bucau <
> > > > rmannibucau@gmail.com>
> > > > > a
> > > > > > écrit :
> > > > > >
> > > > > > > Maybe raise a spec issue since we tend to be jsonb driven now.
> > > Would
> > > > be
> > > > > > > great to not have a custom api for the id mapping.
> > > > > > >
> > > > > > > In the mean time we can push a jsonb-extra with that impl
> > > > > > >
> > > > > > > Le 23 avr. 2018 18:39, "Jean-Louis MONTEIRO" <
> jeanouii@gmail.com
> > >
> > > a
> > > > > > écrit
> > > > > > > :
> > > > > > >
> > > > > > > > Hey Roberto,
> > > > > > > >
> > > > > > > > I think that would be a great feature.
> > > > > > > > Already had this case in the past and looks like Jackson and
> > Gson
> > > > > > already
> > > > > > > > have it.
> > > > > > > >
> > > > > > > > Gson subtypes on adapters.
> > > > > > > > https://github.com/google/gson/blob/master/extras/src/
> > > > > > > > main/java/com/google/gson/typeadapters/
> > > > > RuntimeTypeAdapterFactory.java
> > > > > > > >
> > > > > > > >
> > > > > > > > Jackson annotations with different strategies
> > > > > > > > https://github.com/FasterXML/jackson-docs/wiki/
> > > > > > > > JacksonPolymorphicDeserialization
> > > > > > > >
> > > > > > > > We should consider adding this feature I believe.
> > > > > > > >
> > > > > > > >
> > > > > > > > Le mer. 18 avr. 2018 à 19:42, Roberto Cortez
> > > > > > <radcortez@yahoo.com.invalid
> > > > > > > >
> > > > > > > > a écrit :
> > > > > > > >
> > > > > > > > >  Hi Romain,
> > > > > > > > > Thanks for the quick response.
> > > > > > > > > I'll have a look,
> > > > > > > > > Cheers,Roberto
> > > > > > > > >     On Wednesday, April 18, 2018, 6:35:32 PM GMT+1, Romain
> > > > > > Manni-Bucau
> > > > > > > <
> > > > > > > > > rmannibucau@gmail.com> wrote:
> > > > > > > > >
> > > > > > > > >  Hi Roberto
> > > > > > > > >
> > > > > > > > > Yes, an adapter is the way to go using our mapper or jsonb.
> > > > > > > > >
> > > > > > > > > There should be an "animal" test showing how to do that.
> Just
> > > > dont
> > > > > > > forget
> > > > > > > > > to use class aliases or a whitelist logic to not open a
> > > backdoor.
> > > > > > > > >
> > > > > > > > > Since the model doesnt match the java model im not a fan of
> > > that
> > > > > > > feature
> > > > > > > > > being built out of the box. In xml it is more natural but
> in
> > > json
> > > > > you
> > > > > > > can
> > > > > > > > > do it without breaking the model. For me it means the model
> > is
> > > > > broken
> > > > > > > and
> > > > > > > > > must not be used as an input.
> > > > > > > > >
> > > > > > > > > Le 18 avr. 2018 19:31, "Roberto Cortez"
> > > > > <radcortez@yahoo.com.invalid
> > > > > > >
> > > > > > > a
> > > > > > > > > écrit :
> > > > > > > > >
> > > > > > > > > > Hi guys,
> > > > > > > > > > I'm trying to serialize a list of elements of multiple
> > types
> > > > and
> > > > > > then
> > > > > > > > > > deserialize it again. It does require to somehow include
> > the
> > > > type
> > > > > > in
> > > > > > > > the
> > > > > > > > > > serialization result to know to which type we should map
> to
> > > > > > > > deserialize.
> > > > > > > > > I
> > > > > > > > > > think this could possible be done with an Adapter and
> > playing
> > > > > with
> > > > > > > the
> > > > > > > > > > JsonArray.
> > > > > > > > > > I was just wondering if there any kind of out of the box
> > > > support
> > > > > > for
> > > > > > > > > this.
> > > > > > > > > > It doesn't seem so, at least I was not able to find.
> > > > > > > > > > Jackson for instance, includes a set of annotations that
> > > allow
> > > > > you
> > > > > > to
> > > > > > > > do
> > > > > > > > > > exactly this, without any extra / custom code.
> > > > > > > > > > Any thoughts?
> > > > > > > > > > Thank you.
> > > > > > > > > > Cheers,Roberto
> > > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > > >
> > > >
> > >
> > >
> >
>
>

R: R: Arrays / Lists elements polymorphic support

Posted by Alessandro Moscatelli <al...@live.com>.
Hi there,
any news about making the polymorphic support part of JSONB api ?

Thank you
Alessandro

Da: Jean-Louis MONTEIRO<ma...@gmail.com>
Inviato: martedì 24 aprile 2018 14:17
A: dev@johnzon.apache.org<ma...@johnzon.apache.org>
Oggetto: Re: R: Arrays / Lists elements polymorphic support

Wow, thanks for the quick turn around Romain.

Le mar. 24 avr. 2018 à 12:41, Romain Manni-Bucau <rm...@gmail.com> a
écrit :

> Give it a try, you dont have that api portably yet I fear bit happy to be
> wrong.
>
> Le 24 avr. 2018 12:35, "Alessandro Moscatelli" <
> alessandro.moscatelli@live.com> a écrit :
>
> > And btw I can’t see the need for scanning in the first place :
> >
> > Step 1) While deserializing Collection<T>, when T is known at compile
> time
> > (damn type erasure), we can check if Class<T> has @JsonbTypeDeserializer
> > annotation. I believe this is what we are already doing (I hope so!). So
> > the specified Deserializer should be called,
> Polymorphic.DeSerializer.class
> > in this case.
> >
> > Step 2) Polymorphic.DeSerializer should check if Class<T> has
> > @Polymorphic.JsonChildren annotation, and also if specified children
> > classes have @Polymorphic.JsonId annotation. With all these information
> > deserialization can be done without scanning, I believe.
> >
> >
> > ________________________________
> > Da: Alessandro Moscatelli <al...@live.com>
> > Inviato: Tuesday, April 24, 2018 12:17:12 PM
> > A: dev@johnzon.apache.org
> > Oggetto: R: Arrays / Lists elements polymorphic support
> >
> > Conflict will still be possible if you choose the same id, or if you
> don’t
> > specify the id and the colliding simplenames of different classes will be
> > used.
> >
> > ‘Scanning’ could be done at Deploy time, on each entity with @Polimorphic
> > annotation only.
> >
> > The real gain would be the possibility to use Polymorphism without
> > modifying every entity referencing the polymorphic one, even more when
> you
> > could not even if you want (for example Collection).
> >
> > Another nice option would be to register children programmatically …
> >
> >
> > Da: Romain Manni-Bucau<ma...@gmail.com>
> > Inviato: martedì 24 aprile 2018 12:06
> > A: dev@johnzon.apache.org<ma...@johnzon.apache.org>
> > Oggetto: Re: Arrays / Lists elements polymorphic support
> >
> > 2018-04-24 11:46 GMT+02:00 Alessandro Moscatelli <
> > alessandro.moscatelli@live.com>:
> >
> > > Shouldn’t the @Polymorphic.JsonId (defaulting to simple name if absent)
> > be
> > > the meta to use to know what you will deserialize ?
> > >
> >
> > Yes, that's what it is actually but how do you find it?
> > Scanning? means you are slow for no real gain + you can conflict between
> > libraries and models
> >
> >
> > >
> > > By the way, how the Polymorphic.JsonId will be serialized ? This is not
> > > specified in the index.md.
> > >
> >
> > {_type: <id>,_value: <value>}
> >
> >
> > >
> > >
> > >
> > >
> > >
> > > ________________________________
> > > Da: Romain Manni-Bucau <rm...@gmail.com>
> > > Inviato: Tuesday, April 24, 2018 11:42:13 AM
> > > A: dev@johnzon.apache.org
> > > Oggetto: Re: Arrays / Lists elements polymorphic support
> > >
> > > Not it wouldn't work since when you deserialize you don't have any meta
> > on
> > > what you will deserialize.
> > >
> > > There are alternative to this impl but this is the one requiring the
> > least
> > > configuration I think.
> > >
> > >
> > > Romain Manni-Bucau
> > > @rmannibucau <https://twitter.com/rmannibucau> |  Blog
> > > <https://rmannibucau.metawerx.net/> | Old Blog
> > > <http://rmannibucau.wordpress.com> | Github <https://github.com/
> > > rmannibucau> |
> > > LinkedIn <https://www.linkedin.com/in/rmannibucau> | Book
> > > <https://www.packtpub.com/application-development/java-
> > > ee-8-high-performance>
> > >
> > > 2018-04-24 11:39 GMT+02:00 Alessandro Moscatelli <
> > > alessandro.moscatelli@live.com>:
> > >
> > > > I think I would be great if this could be part of the Jsonb spec.
> > > > I noticed the lack of real support for polymorphism.
> > > >
> > > > Regarding your impl :
> > > >
> > > > What if you need a Collection of polymorphic entities ?
> > > > Wouldn’t it be better to declare the
> > > >
> > > >     @JsonbTypeSerializer(Polymorphic.Serializer.class)
> > > >     @JsonbTypeDeserializer(Polymorphic.DeSerializer.class)
> > > >
> > > > Directly on the root entity instead of declare them on the field ?
> > > > Would it work ?
> > > >
> > > > AM
> > > >
> > > > Da: Romain Manni-Bucau<ma...@gmail.com>
> > > > Inviato: lunedì 23 aprile 2018 19:03
> > > > A: dev@johnzon.apache.org<ma...@johnzon.apache.org>
> > > > Oggetto: Re: Arrays / Lists elements polymorphic support
> > > >
> > > > Ok
> > > >
> > > > Will try to adapt the impl we had and push it later today or tmr and
> > ping
> > > > here for feedbacks
> > > >
> > > > Le 23 avr. 2018 18:46, "Jean-Louis MONTEIRO" <je...@gmail.com> a
> > > écrit
> > > > :
> > > >
> > > > > That works for me.
> > > > > I agree that having that extension into a specific module is the
> way
> > to
> > > > go
> > > > >
> > > > > Le lun. 23 avr. 2018 à 18:44, Romain Manni-Bucau <
> > > rmannibucau@gmail.com>
> > > > a
> > > > > écrit :
> > > > >
> > > > > > Maybe raise a spec issue since we tend to be jsonb driven now.
> > Would
> > > be
> > > > > > great to not have a custom api for the id mapping.
> > > > > >
> > > > > > In the mean time we can push a jsonb-extra with that impl
> > > > > >
> > > > > > Le 23 avr. 2018 18:39, "Jean-Louis MONTEIRO" <jeanouii@gmail.com
> >
> > a
> > > > > écrit
> > > > > > :
> > > > > >
> > > > > > > Hey Roberto,
> > > > > > >
> > > > > > > I think that would be a great feature.
> > > > > > > Already had this case in the past and looks like Jackson and
> Gson
> > > > > already
> > > > > > > have it.
> > > > > > >
> > > > > > > Gson subtypes on adapters.
> > > > > > > https://github.com/google/gson/blob/master/extras/src/
> > > > > > > main/java/com/google/gson/typeadapters/
> > > > RuntimeTypeAdapterFactory.java
> > > > > > >
> > > > > > >
> > > > > > > Jackson annotations with different strategies
> > > > > > > https://github.com/FasterXML/jackson-docs/wiki/
> > > > > > > JacksonPolymorphicDeserialization
> > > > > > >
> > > > > > > We should consider adding this feature I believe.
> > > > > > >
> > > > > > >
> > > > > > > Le mer. 18 avr. 2018 à 19:42, Roberto Cortez
> > > > > <radcortez@yahoo.com.invalid
> > > > > > >
> > > > > > > a écrit :
> > > > > > >
> > > > > > > >  Hi Romain,
> > > > > > > > Thanks for the quick response.
> > > > > > > > I'll have a look,
> > > > > > > > Cheers,Roberto
> > > > > > > >     On Wednesday, April 18, 2018, 6:35:32 PM GMT+1, Romain
> > > > > Manni-Bucau
> > > > > > <
> > > > > > > > rmannibucau@gmail.com> wrote:
> > > > > > > >
> > > > > > > >  Hi Roberto
> > > > > > > >
> > > > > > > > Yes, an adapter is the way to go using our mapper or jsonb.
> > > > > > > >
> > > > > > > > There should be an "animal" test showing how to do that. Just
> > > dont
> > > > > > forget
> > > > > > > > to use class aliases or a whitelist logic to not open a
> > backdoor.
> > > > > > > >
> > > > > > > > Since the model doesnt match the java model im not a fan of
> > that
> > > > > > feature
> > > > > > > > being built out of the box. In xml it is more natural but in
> > json
> > > > you
> > > > > > can
> > > > > > > > do it without breaking the model. For me it means the model
> is
> > > > broken
> > > > > > and
> > > > > > > > must not be used as an input.
> > > > > > > >
> > > > > > > > Le 18 avr. 2018 19:31, "Roberto Cortez"
> > > > <radcortez@yahoo.com.invalid
> > > > > >
> > > > > > a
> > > > > > > > écrit :
> > > > > > > >
> > > > > > > > > Hi guys,
> > > > > > > > > I'm trying to serialize a list of elements of multiple
> types
> > > and
> > > > > then
> > > > > > > > > deserialize it again. It does require to somehow include
> the
> > > type
> > > > > in
> > > > > > > the
> > > > > > > > > serialization result to know to which type we should map to
> > > > > > > deserialize.
> > > > > > > > I
> > > > > > > > > think this could possible be done with an Adapter and
> playing
> > > > with
> > > > > > the
> > > > > > > > > JsonArray.
> > > > > > > > > I was just wondering if there any kind of out of the box
> > > support
> > > > > for
> > > > > > > > this.
> > > > > > > > > It doesn't seem so, at least I was not able to find.
> > > > > > > > > Jackson for instance, includes a set of annotations that
> > allow
> > > > you
> > > > > to
> > > > > > > do
> > > > > > > > > exactly this, without any extra / custom code.
> > > > > > > > > Any thoughts?
> > > > > > > > > Thank you.
> > > > > > > > > Cheers,Roberto
> > > > > > >
> > > > > >
> > > > >
> > > >
> > > >
> > >
> >
> >
>


Re: R: Arrays / Lists elements polymorphic support

Posted by Jean-Louis MONTEIRO <je...@gmail.com>.
Wow, thanks for the quick turn around Romain.

Le mar. 24 avr. 2018 à 12:41, Romain Manni-Bucau <rm...@gmail.com> a
écrit :

> Give it a try, you dont have that api portably yet I fear bit happy to be
> wrong.
>
> Le 24 avr. 2018 12:35, "Alessandro Moscatelli" <
> alessandro.moscatelli@live.com> a écrit :
>
> > And btw I can’t see the need for scanning in the first place :
> >
> > Step 1) While deserializing Collection<T>, when T is known at compile
> time
> > (damn type erasure), we can check if Class<T> has @JsonbTypeDeserializer
> > annotation. I believe this is what we are already doing (I hope so!). So
> > the specified Deserializer should be called,
> Polymorphic.DeSerializer.class
> > in this case.
> >
> > Step 2) Polymorphic.DeSerializer should check if Class<T> has
> > @Polymorphic.JsonChildren annotation, and also if specified children
> > classes have @Polymorphic.JsonId annotation. With all these information
> > deserialization can be done without scanning, I believe.
> >
> >
> > ________________________________
> > Da: Alessandro Moscatelli <al...@live.com>
> > Inviato: Tuesday, April 24, 2018 12:17:12 PM
> > A: dev@johnzon.apache.org
> > Oggetto: R: Arrays / Lists elements polymorphic support
> >
> > Conflict will still be possible if you choose the same id, or if you
> don’t
> > specify the id and the colliding simplenames of different classes will be
> > used.
> >
> > ‘Scanning’ could be done at Deploy time, on each entity with @Polimorphic
> > annotation only.
> >
> > The real gain would be the possibility to use Polymorphism without
> > modifying every entity referencing the polymorphic one, even more when
> you
> > could not even if you want (for example Collection).
> >
> > Another nice option would be to register children programmatically …
> >
> >
> > Da: Romain Manni-Bucau<ma...@gmail.com>
> > Inviato: martedì 24 aprile 2018 12:06
> > A: dev@johnzon.apache.org<ma...@johnzon.apache.org>
> > Oggetto: Re: Arrays / Lists elements polymorphic support
> >
> > 2018-04-24 11:46 GMT+02:00 Alessandro Moscatelli <
> > alessandro.moscatelli@live.com>:
> >
> > > Shouldn’t the @Polymorphic.JsonId (defaulting to simple name if absent)
> > be
> > > the meta to use to know what you will deserialize ?
> > >
> >
> > Yes, that's what it is actually but how do you find it?
> > Scanning? means you are slow for no real gain + you can conflict between
> > libraries and models
> >
> >
> > >
> > > By the way, how the Polymorphic.JsonId will be serialized ? This is not
> > > specified in the index.md.
> > >
> >
> > {_type: <id>,_value: <value>}
> >
> >
> > >
> > >
> > >
> > >
> > >
> > > ________________________________
> > > Da: Romain Manni-Bucau <rm...@gmail.com>
> > > Inviato: Tuesday, April 24, 2018 11:42:13 AM
> > > A: dev@johnzon.apache.org
> > > Oggetto: Re: Arrays / Lists elements polymorphic support
> > >
> > > Not it wouldn't work since when you deserialize you don't have any meta
> > on
> > > what you will deserialize.
> > >
> > > There are alternative to this impl but this is the one requiring the
> > least
> > > configuration I think.
> > >
> > >
> > > Romain Manni-Bucau
> > > @rmannibucau <https://twitter.com/rmannibucau> |  Blog
> > > <https://rmannibucau.metawerx.net/> | Old Blog
> > > <http://rmannibucau.wordpress.com> | Github <https://github.com/
> > > rmannibucau> |
> > > LinkedIn <https://www.linkedin.com/in/rmannibucau> | Book
> > > <https://www.packtpub.com/application-development/java-
> > > ee-8-high-performance>
> > >
> > > 2018-04-24 11:39 GMT+02:00 Alessandro Moscatelli <
> > > alessandro.moscatelli@live.com>:
> > >
> > > > I think I would be great if this could be part of the Jsonb spec.
> > > > I noticed the lack of real support for polymorphism.
> > > >
> > > > Regarding your impl :
> > > >
> > > > What if you need a Collection of polymorphic entities ?
> > > > Wouldn’t it be better to declare the
> > > >
> > > >     @JsonbTypeSerializer(Polymorphic.Serializer.class)
> > > >     @JsonbTypeDeserializer(Polymorphic.DeSerializer.class)
> > > >
> > > > Directly on the root entity instead of declare them on the field ?
> > > > Would it work ?
> > > >
> > > > AM
> > > >
> > > > Da: Romain Manni-Bucau<ma...@gmail.com>
> > > > Inviato: lunedì 23 aprile 2018 19:03
> > > > A: dev@johnzon.apache.org<ma...@johnzon.apache.org>
> > > > Oggetto: Re: Arrays / Lists elements polymorphic support
> > > >
> > > > Ok
> > > >
> > > > Will try to adapt the impl we had and push it later today or tmr and
> > ping
> > > > here for feedbacks
> > > >
> > > > Le 23 avr. 2018 18:46, "Jean-Louis MONTEIRO" <je...@gmail.com> a
> > > écrit
> > > > :
> > > >
> > > > > That works for me.
> > > > > I agree that having that extension into a specific module is the
> way
> > to
> > > > go
> > > > >
> > > > > Le lun. 23 avr. 2018 à 18:44, Romain Manni-Bucau <
> > > rmannibucau@gmail.com>
> > > > a
> > > > > écrit :
> > > > >
> > > > > > Maybe raise a spec issue since we tend to be jsonb driven now.
> > Would
> > > be
> > > > > > great to not have a custom api for the id mapping.
> > > > > >
> > > > > > In the mean time we can push a jsonb-extra with that impl
> > > > > >
> > > > > > Le 23 avr. 2018 18:39, "Jean-Louis MONTEIRO" <jeanouii@gmail.com
> >
> > a
> > > > > écrit
> > > > > > :
> > > > > >
> > > > > > > Hey Roberto,
> > > > > > >
> > > > > > > I think that would be a great feature.
> > > > > > > Already had this case in the past and looks like Jackson and
> Gson
> > > > > already
> > > > > > > have it.
> > > > > > >
> > > > > > > Gson subtypes on adapters.
> > > > > > > https://github.com/google/gson/blob/master/extras/src/
> > > > > > > main/java/com/google/gson/typeadapters/
> > > > RuntimeTypeAdapterFactory.java
> > > > > > >
> > > > > > >
> > > > > > > Jackson annotations with different strategies
> > > > > > > https://github.com/FasterXML/jackson-docs/wiki/
> > > > > > > JacksonPolymorphicDeserialization
> > > > > > >
> > > > > > > We should consider adding this feature I believe.
> > > > > > >
> > > > > > >
> > > > > > > Le mer. 18 avr. 2018 à 19:42, Roberto Cortez
> > > > > <radcortez@yahoo.com.invalid
> > > > > > >
> > > > > > > a écrit :
> > > > > > >
> > > > > > > >  Hi Romain,
> > > > > > > > Thanks for the quick response.
> > > > > > > > I'll have a look,
> > > > > > > > Cheers,Roberto
> > > > > > > >     On Wednesday, April 18, 2018, 6:35:32 PM GMT+1, Romain
> > > > > Manni-Bucau
> > > > > > <
> > > > > > > > rmannibucau@gmail.com> wrote:
> > > > > > > >
> > > > > > > >  Hi Roberto
> > > > > > > >
> > > > > > > > Yes, an adapter is the way to go using our mapper or jsonb.
> > > > > > > >
> > > > > > > > There should be an "animal" test showing how to do that. Just
> > > dont
> > > > > > forget
> > > > > > > > to use class aliases or a whitelist logic to not open a
> > backdoor.
> > > > > > > >
> > > > > > > > Since the model doesnt match the java model im not a fan of
> > that
> > > > > > feature
> > > > > > > > being built out of the box. In xml it is more natural but in
> > json
> > > > you
> > > > > > can
> > > > > > > > do it without breaking the model. For me it means the model
> is
> > > > broken
> > > > > > and
> > > > > > > > must not be used as an input.
> > > > > > > >
> > > > > > > > Le 18 avr. 2018 19:31, "Roberto Cortez"
> > > > <radcortez@yahoo.com.invalid
> > > > > >
> > > > > > a
> > > > > > > > écrit :
> > > > > > > >
> > > > > > > > > Hi guys,
> > > > > > > > > I'm trying to serialize a list of elements of multiple
> types
> > > and
> > > > > then
> > > > > > > > > deserialize it again. It does require to somehow include
> the
> > > type
> > > > > in
> > > > > > > the
> > > > > > > > > serialization result to know to which type we should map to
> > > > > > > deserialize.
> > > > > > > > I
> > > > > > > > > think this could possible be done with an Adapter and
> playing
> > > > with
> > > > > > the
> > > > > > > > > JsonArray.
> > > > > > > > > I was just wondering if there any kind of out of the box
> > > support
> > > > > for
> > > > > > > > this.
> > > > > > > > > It doesn't seem so, at least I was not able to find.
> > > > > > > > > Jackson for instance, includes a set of annotations that
> > allow
> > > > you
> > > > > to
> > > > > > > do
> > > > > > > > > exactly this, without any extra / custom code.
> > > > > > > > > Any thoughts?
> > > > > > > > > Thank you.
> > > > > > > > > Cheers,Roberto
> > > > > > >
> > > > > >
> > > > >
> > > >
> > > >
> > >
> >
> >
>

Re: R: Arrays / Lists elements polymorphic support

Posted by Romain Manni-Bucau <rm...@gmail.com>.
Give it a try, you dont have that api portably yet I fear bit happy to be
wrong.

Le 24 avr. 2018 12:35, "Alessandro Moscatelli" <
alessandro.moscatelli@live.com> a écrit :

> And btw I can’t see the need for scanning in the first place :
>
> Step 1) While deserializing Collection<T>, when T is known at compile time
> (damn type erasure), we can check if Class<T> has @JsonbTypeDeserializer
> annotation. I believe this is what we are already doing (I hope so!). So
> the specified Deserializer should be called, Polymorphic.DeSerializer.class
> in this case.
>
> Step 2) Polymorphic.DeSerializer should check if Class<T> has
> @Polymorphic.JsonChildren annotation, and also if specified children
> classes have @Polymorphic.JsonId annotation. With all these information
> deserialization can be done without scanning, I believe.
>
>
> ________________________________
> Da: Alessandro Moscatelli <al...@live.com>
> Inviato: Tuesday, April 24, 2018 12:17:12 PM
> A: dev@johnzon.apache.org
> Oggetto: R: Arrays / Lists elements polymorphic support
>
> Conflict will still be possible if you choose the same id, or if you don’t
> specify the id and the colliding simplenames of different classes will be
> used.
>
> ‘Scanning’ could be done at Deploy time, on each entity with @Polimorphic
> annotation only.
>
> The real gain would be the possibility to use Polymorphism without
> modifying every entity referencing the polymorphic one, even more when you
> could not even if you want (for example Collection).
>
> Another nice option would be to register children programmatically …
>
>
> Da: Romain Manni-Bucau<ma...@gmail.com>
> Inviato: martedì 24 aprile 2018 12:06
> A: dev@johnzon.apache.org<ma...@johnzon.apache.org>
> Oggetto: Re: Arrays / Lists elements polymorphic support
>
> 2018-04-24 11:46 GMT+02:00 Alessandro Moscatelli <
> alessandro.moscatelli@live.com>:
>
> > Shouldn’t the @Polymorphic.JsonId (defaulting to simple name if absent)
> be
> > the meta to use to know what you will deserialize ?
> >
>
> Yes, that's what it is actually but how do you find it?
> Scanning? means you are slow for no real gain + you can conflict between
> libraries and models
>
>
> >
> > By the way, how the Polymorphic.JsonId will be serialized ? This is not
> > specified in the index.md.
> >
>
> {_type: <id>,_value: <value>}
>
>
> >
> >
> >
> >
> >
> > ________________________________
> > Da: Romain Manni-Bucau <rm...@gmail.com>
> > Inviato: Tuesday, April 24, 2018 11:42:13 AM
> > A: dev@johnzon.apache.org
> > Oggetto: Re: Arrays / Lists elements polymorphic support
> >
> > Not it wouldn't work since when you deserialize you don't have any meta
> on
> > what you will deserialize.
> >
> > There are alternative to this impl but this is the one requiring the
> least
> > configuration I think.
> >
> >
> > Romain Manni-Bucau
> > @rmannibucau <https://twitter.com/rmannibucau> |  Blog
> > <https://rmannibucau.metawerx.net/> | Old Blog
> > <http://rmannibucau.wordpress.com> | Github <https://github.com/
> > rmannibucau> |
> > LinkedIn <https://www.linkedin.com/in/rmannibucau> | Book
> > <https://www.packtpub.com/application-development/java-
> > ee-8-high-performance>
> >
> > 2018-04-24 11:39 GMT+02:00 Alessandro Moscatelli <
> > alessandro.moscatelli@live.com>:
> >
> > > I think I would be great if this could be part of the Jsonb spec.
> > > I noticed the lack of real support for polymorphism.
> > >
> > > Regarding your impl :
> > >
> > > What if you need a Collection of polymorphic entities ?
> > > Wouldn’t it be better to declare the
> > >
> > >     @JsonbTypeSerializer(Polymorphic.Serializer.class)
> > >     @JsonbTypeDeserializer(Polymorphic.DeSerializer.class)
> > >
> > > Directly on the root entity instead of declare them on the field ?
> > > Would it work ?
> > >
> > > AM
> > >
> > > Da: Romain Manni-Bucau<ma...@gmail.com>
> > > Inviato: lunedì 23 aprile 2018 19:03
> > > A: dev@johnzon.apache.org<ma...@johnzon.apache.org>
> > > Oggetto: Re: Arrays / Lists elements polymorphic support
> > >
> > > Ok
> > >
> > > Will try to adapt the impl we had and push it later today or tmr and
> ping
> > > here for feedbacks
> > >
> > > Le 23 avr. 2018 18:46, "Jean-Louis MONTEIRO" <je...@gmail.com> a
> > écrit
> > > :
> > >
> > > > That works for me.
> > > > I agree that having that extension into a specific module is the way
> to
> > > go
> > > >
> > > > Le lun. 23 avr. 2018 à 18:44, Romain Manni-Bucau <
> > rmannibucau@gmail.com>
> > > a
> > > > écrit :
> > > >
> > > > > Maybe raise a spec issue since we tend to be jsonb driven now.
> Would
> > be
> > > > > great to not have a custom api for the id mapping.
> > > > >
> > > > > In the mean time we can push a jsonb-extra with that impl
> > > > >
> > > > > Le 23 avr. 2018 18:39, "Jean-Louis MONTEIRO" <je...@gmail.com>
> a
> > > > écrit
> > > > > :
> > > > >
> > > > > > Hey Roberto,
> > > > > >
> > > > > > I think that would be a great feature.
> > > > > > Already had this case in the past and looks like Jackson and Gson
> > > > already
> > > > > > have it.
> > > > > >
> > > > > > Gson subtypes on adapters.
> > > > > > https://github.com/google/gson/blob/master/extras/src/
> > > > > > main/java/com/google/gson/typeadapters/
> > > RuntimeTypeAdapterFactory.java
> > > > > >
> > > > > >
> > > > > > Jackson annotations with different strategies
> > > > > > https://github.com/FasterXML/jackson-docs/wiki/
> > > > > > JacksonPolymorphicDeserialization
> > > > > >
> > > > > > We should consider adding this feature I believe.
> > > > > >
> > > > > >
> > > > > > Le mer. 18 avr. 2018 à 19:42, Roberto Cortez
> > > > <radcortez@yahoo.com.invalid
> > > > > >
> > > > > > a écrit :
> > > > > >
> > > > > > >  Hi Romain,
> > > > > > > Thanks for the quick response.
> > > > > > > I'll have a look,
> > > > > > > Cheers,Roberto
> > > > > > >     On Wednesday, April 18, 2018, 6:35:32 PM GMT+1, Romain
> > > > Manni-Bucau
> > > > > <
> > > > > > > rmannibucau@gmail.com> wrote:
> > > > > > >
> > > > > > >  Hi Roberto
> > > > > > >
> > > > > > > Yes, an adapter is the way to go using our mapper or jsonb.
> > > > > > >
> > > > > > > There should be an "animal" test showing how to do that. Just
> > dont
> > > > > forget
> > > > > > > to use class aliases or a whitelist logic to not open a
> backdoor.
> > > > > > >
> > > > > > > Since the model doesnt match the java model im not a fan of
> that
> > > > > feature
> > > > > > > being built out of the box. In xml it is more natural but in
> json
> > > you
> > > > > can
> > > > > > > do it without breaking the model. For me it means the model is
> > > broken
> > > > > and
> > > > > > > must not be used as an input.
> > > > > > >
> > > > > > > Le 18 avr. 2018 19:31, "Roberto Cortez"
> > > <radcortez@yahoo.com.invalid
> > > > >
> > > > > a
> > > > > > > écrit :
> > > > > > >
> > > > > > > > Hi guys,
> > > > > > > > I'm trying to serialize a list of elements of multiple types
> > and
> > > > then
> > > > > > > > deserialize it again. It does require to somehow include the
> > type
> > > > in
> > > > > > the
> > > > > > > > serialization result to know to which type we should map to
> > > > > > deserialize.
> > > > > > > I
> > > > > > > > think this could possible be done with an Adapter and playing
> > > with
> > > > > the
> > > > > > > > JsonArray.
> > > > > > > > I was just wondering if there any kind of out of the box
> > support
> > > > for
> > > > > > > this.
> > > > > > > > It doesn't seem so, at least I was not able to find.
> > > > > > > > Jackson for instance, includes a set of annotations that
> allow
> > > you
> > > > to
> > > > > > do
> > > > > > > > exactly this, without any extra / custom code.
> > > > > > > > Any thoughts?
> > > > > > > > Thank you.
> > > > > > > > Cheers,Roberto
> > > > > >
> > > > >
> > > >
> > >
> > >
> >
>
>

R: Arrays / Lists elements polymorphic support

Posted by Alessandro Moscatelli <al...@live.com>.
And btw I can’t see the need for scanning in the first place :

Step 1) While deserializing Collection<T>, when T is known at compile time (damn type erasure), we can check if Class<T> has @JsonbTypeDeserializer annotation. I believe this is what we are already doing (I hope so!). So the specified Deserializer should be called, Polymorphic.DeSerializer.class in this case.

Step 2) Polymorphic.DeSerializer should check if Class<T> has @Polymorphic.JsonChildren annotation, and also if specified children classes have @Polymorphic.JsonId annotation. With all these information deserialization can be done without scanning, I believe.


________________________________
Da: Alessandro Moscatelli <al...@live.com>
Inviato: Tuesday, April 24, 2018 12:17:12 PM
A: dev@johnzon.apache.org
Oggetto: R: Arrays / Lists elements polymorphic support

Conflict will still be possible if you choose the same id, or if you don’t specify the id and the colliding simplenames of different classes will be used.

‘Scanning’ could be done at Deploy time, on each entity with @Polimorphic annotation only.

The real gain would be the possibility to use Polymorphism without modifying every entity referencing the polymorphic one, even more when you could not even if you want (for example Collection).

Another nice option would be to register children programmatically …


Da: Romain Manni-Bucau<ma...@gmail.com>
Inviato: martedì 24 aprile 2018 12:06
A: dev@johnzon.apache.org<ma...@johnzon.apache.org>
Oggetto: Re: Arrays / Lists elements polymorphic support

2018-04-24 11:46 GMT+02:00 Alessandro Moscatelli <
alessandro.moscatelli@live.com>:

> Shouldn’t the @Polymorphic.JsonId (defaulting to simple name if absent) be
> the meta to use to know what you will deserialize ?
>

Yes, that's what it is actually but how do you find it?
Scanning? means you are slow for no real gain + you can conflict between
libraries and models


>
> By the way, how the Polymorphic.JsonId will be serialized ? This is not
> specified in the index.md.
>

{_type: <id>,_value: <value>}


>
>
>
>
>
> ________________________________
> Da: Romain Manni-Bucau <rm...@gmail.com>
> Inviato: Tuesday, April 24, 2018 11:42:13 AM
> A: dev@johnzon.apache.org
> Oggetto: Re: Arrays / Lists elements polymorphic support
>
> Not it wouldn't work since when you deserialize you don't have any meta on
> what you will deserialize.
>
> There are alternative to this impl but this is the one requiring the least
> configuration I think.
>
>
> Romain Manni-Bucau
> @rmannibucau <https://twitter.com/rmannibucau> |  Blog
> <https://rmannibucau.metawerx.net/> | Old Blog
> <http://rmannibucau.wordpress.com> | Github <https://github.com/
> rmannibucau> |
> LinkedIn <https://www.linkedin.com/in/rmannibucau> | Book
> <https://www.packtpub.com/application-development/java-
> ee-8-high-performance>
>
> 2018-04-24 11:39 GMT+02:00 Alessandro Moscatelli <
> alessandro.moscatelli@live.com>:
>
> > I think I would be great if this could be part of the Jsonb spec.
> > I noticed the lack of real support for polymorphism.
> >
> > Regarding your impl :
> >
> > What if you need a Collection of polymorphic entities ?
> > Wouldn’t it be better to declare the
> >
> >     @JsonbTypeSerializer(Polymorphic.Serializer.class)
> >     @JsonbTypeDeserializer(Polymorphic.DeSerializer.class)
> >
> > Directly on the root entity instead of declare them on the field ?
> > Would it work ?
> >
> > AM
> >
> > Da: Romain Manni-Bucau<ma...@gmail.com>
> > Inviato: lunedì 23 aprile 2018 19:03
> > A: dev@johnzon.apache.org<ma...@johnzon.apache.org>
> > Oggetto: Re: Arrays / Lists elements polymorphic support
> >
> > Ok
> >
> > Will try to adapt the impl we had and push it later today or tmr and ping
> > here for feedbacks
> >
> > Le 23 avr. 2018 18:46, "Jean-Louis MONTEIRO" <je...@gmail.com> a
> écrit
> > :
> >
> > > That works for me.
> > > I agree that having that extension into a specific module is the way to
> > go
> > >
> > > Le lun. 23 avr. 2018 à 18:44, Romain Manni-Bucau <
> rmannibucau@gmail.com>
> > a
> > > écrit :
> > >
> > > > Maybe raise a spec issue since we tend to be jsonb driven now. Would
> be
> > > > great to not have a custom api for the id mapping.
> > > >
> > > > In the mean time we can push a jsonb-extra with that impl
> > > >
> > > > Le 23 avr. 2018 18:39, "Jean-Louis MONTEIRO" <je...@gmail.com> a
> > > écrit
> > > > :
> > > >
> > > > > Hey Roberto,
> > > > >
> > > > > I think that would be a great feature.
> > > > > Already had this case in the past and looks like Jackson and Gson
> > > already
> > > > > have it.
> > > > >
> > > > > Gson subtypes on adapters.
> > > > > https://github.com/google/gson/blob/master/extras/src/
> > > > > main/java/com/google/gson/typeadapters/
> > RuntimeTypeAdapterFactory.java
> > > > >
> > > > >
> > > > > Jackson annotations with different strategies
> > > > > https://github.com/FasterXML/jackson-docs/wiki/
> > > > > JacksonPolymorphicDeserialization
> > > > >
> > > > > We should consider adding this feature I believe.
> > > > >
> > > > >
> > > > > Le mer. 18 avr. 2018 à 19:42, Roberto Cortez
> > > <radcortez@yahoo.com.invalid
> > > > >
> > > > > a écrit :
> > > > >
> > > > > >  Hi Romain,
> > > > > > Thanks for the quick response.
> > > > > > I'll have a look,
> > > > > > Cheers,Roberto
> > > > > >     On Wednesday, April 18, 2018, 6:35:32 PM GMT+1, Romain
> > > Manni-Bucau
> > > > <
> > > > > > rmannibucau@gmail.com> wrote:
> > > > > >
> > > > > >  Hi Roberto
> > > > > >
> > > > > > Yes, an adapter is the way to go using our mapper or jsonb.
> > > > > >
> > > > > > There should be an "animal" test showing how to do that. Just
> dont
> > > > forget
> > > > > > to use class aliases or a whitelist logic to not open a backdoor.
> > > > > >
> > > > > > Since the model doesnt match the java model im not a fan of that
> > > > feature
> > > > > > being built out of the box. In xml it is more natural but in json
> > you
> > > > can
> > > > > > do it without breaking the model. For me it means the model is
> > broken
> > > > and
> > > > > > must not be used as an input.
> > > > > >
> > > > > > Le 18 avr. 2018 19:31, "Roberto Cortez"
> > <radcortez@yahoo.com.invalid
> > > >
> > > > a
> > > > > > écrit :
> > > > > >
> > > > > > > Hi guys,
> > > > > > > I'm trying to serialize a list of elements of multiple types
> and
> > > then
> > > > > > > deserialize it again. It does require to somehow include the
> type
> > > in
> > > > > the
> > > > > > > serialization result to know to which type we should map to
> > > > > deserialize.
> > > > > > I
> > > > > > > think this could possible be done with an Adapter and playing
> > with
> > > > the
> > > > > > > JsonArray.
> > > > > > > I was just wondering if there any kind of out of the box
> support
> > > for
> > > > > > this.
> > > > > > > It doesn't seem so, at least I was not able to find.
> > > > > > > Jackson for instance, includes a set of annotations that allow
> > you
> > > to
> > > > > do
> > > > > > > exactly this, without any extra / custom code.
> > > > > > > Any thoughts?
> > > > > > > Thank you.
> > > > > > > Cheers,Roberto
> > > > >
> > > >
> > >
> >
> >
>


R: Arrays / Lists elements polymorphic support

Posted by Alessandro Moscatelli <al...@live.com>.
Conflict will still be possible if you choose the same id, or if you don’t specify the id and the colliding simplenames of different classes will be used.

‘Scanning’ could be done at Deploy time, on each entity with @Polimorphic annotation only.

The real gain would be the possibility to use Polymorphism without modifying every entity referencing the polymorphic one, even more when you could not even if you want (for example Collection).

Another nice option would be to register children programmatically …


Da: Romain Manni-Bucau<ma...@gmail.com>
Inviato: martedì 24 aprile 2018 12:06
A: dev@johnzon.apache.org<ma...@johnzon.apache.org>
Oggetto: Re: Arrays / Lists elements polymorphic support

2018-04-24 11:46 GMT+02:00 Alessandro Moscatelli <
alessandro.moscatelli@live.com>:

> Shouldn’t the @Polymorphic.JsonId (defaulting to simple name if absent) be
> the meta to use to know what you will deserialize ?
>

Yes, that's what it is actually but how do you find it?
Scanning? means you are slow for no real gain + you can conflict between
libraries and models


>
> By the way, how the Polymorphic.JsonId will be serialized ? This is not
> specified in the index.md.
>

{_type: <id>,_value: <value>}


>
>
>
>
>
> ________________________________
> Da: Romain Manni-Bucau <rm...@gmail.com>
> Inviato: Tuesday, April 24, 2018 11:42:13 AM
> A: dev@johnzon.apache.org
> Oggetto: Re: Arrays / Lists elements polymorphic support
>
> Not it wouldn't work since when you deserialize you don't have any meta on
> what you will deserialize.
>
> There are alternative to this impl but this is the one requiring the least
> configuration I think.
>
>
> Romain Manni-Bucau
> @rmannibucau <https://twitter.com/rmannibucau> |  Blog
> <https://rmannibucau.metawerx.net/> | Old Blog
> <http://rmannibucau.wordpress.com> | Github <https://github.com/
> rmannibucau> |
> LinkedIn <https://www.linkedin.com/in/rmannibucau> | Book
> <https://www.packtpub.com/application-development/java-
> ee-8-high-performance>
>
> 2018-04-24 11:39 GMT+02:00 Alessandro Moscatelli <
> alessandro.moscatelli@live.com>:
>
> > I think I would be great if this could be part of the Jsonb spec.
> > I noticed the lack of real support for polymorphism.
> >
> > Regarding your impl :
> >
> > What if you need a Collection of polymorphic entities ?
> > Wouldn’t it be better to declare the
> >
> >     @JsonbTypeSerializer(Polymorphic.Serializer.class)
> >     @JsonbTypeDeserializer(Polymorphic.DeSerializer.class)
> >
> > Directly on the root entity instead of declare them on the field ?
> > Would it work ?
> >
> > AM
> >
> > Da: Romain Manni-Bucau<ma...@gmail.com>
> > Inviato: lunedì 23 aprile 2018 19:03
> > A: dev@johnzon.apache.org<ma...@johnzon.apache.org>
> > Oggetto: Re: Arrays / Lists elements polymorphic support
> >
> > Ok
> >
> > Will try to adapt the impl we had and push it later today or tmr and ping
> > here for feedbacks
> >
> > Le 23 avr. 2018 18:46, "Jean-Louis MONTEIRO" <je...@gmail.com> a
> écrit
> > :
> >
> > > That works for me.
> > > I agree that having that extension into a specific module is the way to
> > go
> > >
> > > Le lun. 23 avr. 2018 à 18:44, Romain Manni-Bucau <
> rmannibucau@gmail.com>
> > a
> > > écrit :
> > >
> > > > Maybe raise a spec issue since we tend to be jsonb driven now. Would
> be
> > > > great to not have a custom api for the id mapping.
> > > >
> > > > In the mean time we can push a jsonb-extra with that impl
> > > >
> > > > Le 23 avr. 2018 18:39, "Jean-Louis MONTEIRO" <je...@gmail.com> a
> > > écrit
> > > > :
> > > >
> > > > > Hey Roberto,
> > > > >
> > > > > I think that would be a great feature.
> > > > > Already had this case in the past and looks like Jackson and Gson
> > > already
> > > > > have it.
> > > > >
> > > > > Gson subtypes on adapters.
> > > > > https://github.com/google/gson/blob/master/extras/src/
> > > > > main/java/com/google/gson/typeadapters/
> > RuntimeTypeAdapterFactory.java
> > > > >
> > > > >
> > > > > Jackson annotations with different strategies
> > > > > https://github.com/FasterXML/jackson-docs/wiki/
> > > > > JacksonPolymorphicDeserialization
> > > > >
> > > > > We should consider adding this feature I believe.
> > > > >
> > > > >
> > > > > Le mer. 18 avr. 2018 à 19:42, Roberto Cortez
> > > <radcortez@yahoo.com.invalid
> > > > >
> > > > > a écrit :
> > > > >
> > > > > >  Hi Romain,
> > > > > > Thanks for the quick response.
> > > > > > I'll have a look,
> > > > > > Cheers,Roberto
> > > > > >     On Wednesday, April 18, 2018, 6:35:32 PM GMT+1, Romain
> > > Manni-Bucau
> > > > <
> > > > > > rmannibucau@gmail.com> wrote:
> > > > > >
> > > > > >  Hi Roberto
> > > > > >
> > > > > > Yes, an adapter is the way to go using our mapper or jsonb.
> > > > > >
> > > > > > There should be an "animal" test showing how to do that. Just
> dont
> > > > forget
> > > > > > to use class aliases or a whitelist logic to not open a backdoor.
> > > > > >
> > > > > > Since the model doesnt match the java model im not a fan of that
> > > > feature
> > > > > > being built out of the box. In xml it is more natural but in json
> > you
> > > > can
> > > > > > do it without breaking the model. For me it means the model is
> > broken
> > > > and
> > > > > > must not be used as an input.
> > > > > >
> > > > > > Le 18 avr. 2018 19:31, "Roberto Cortez"
> > <radcortez@yahoo.com.invalid
> > > >
> > > > a
> > > > > > écrit :
> > > > > >
> > > > > > > Hi guys,
> > > > > > > I'm trying to serialize a list of elements of multiple types
> and
> > > then
> > > > > > > deserialize it again. It does require to somehow include the
> type
> > > in
> > > > > the
> > > > > > > serialization result to know to which type we should map to
> > > > > deserialize.
> > > > > > I
> > > > > > > think this could possible be done with an Adapter and playing
> > with
> > > > the
> > > > > > > JsonArray.
> > > > > > > I was just wondering if there any kind of out of the box
> support
> > > for
> > > > > > this.
> > > > > > > It doesn't seem so, at least I was not able to find.
> > > > > > > Jackson for instance, includes a set of annotations that allow
> > you
> > > to
> > > > > do
> > > > > > > exactly this, without any extra / custom code.
> > > > > > > Any thoughts?
> > > > > > > Thank you.
> > > > > > > Cheers,Roberto
> > > > >
> > > >
> > >
> >
> >
>


Re: Arrays / Lists elements polymorphic support

Posted by Romain Manni-Bucau <rm...@gmail.com>.
Thought to it but it breaks as much the model and fobids field addition
later so chose the other option.

Le 24 avr. 2018 12:11, "Roberto Cortez" <ra...@yahoo.com.invalid> a
écrit :

>  Hi Romain,
> I've tried it. It works great. Thank you.
> I was just wondering if we would like to have a wrapper object with the
> key that is actually the type and the actual object inside:
> {  "list" : [ {    "color" : {      "name" : "green",      "r" : 255,
> "g" : 123,      "b" : 19    }  }, {    "person" : {      "name" : "jdoe",
>     "fullname" : "John Doe",    }  }, {    "pet" : {      "name" :
> "Pascal",    }  } ]}
> It looks more clean to me.
> Cheers,Roberto
>
>
>
>     On Tuesday, April 24, 2018, 11:06:30 AM GMT+1, Romain Manni-Bucau <
> rmannibucau@gmail.com> wrote:
>
>  2018-04-24 11:46 GMT+02:00 Alessandro Moscatelli <
> alessandro.moscatelli@live.com>:
>
> > Shouldn’t the @Polymorphic.JsonId (defaulting to simple name if absent)
> be
> > the meta to use to know what you will deserialize ?
> >
>
> Yes, that's what it is actually but how do you find it?
> Scanning? means you are slow for no real gain + you can conflict between
> libraries and models
>
>
> >
> > By the way, how the Polymorphic.JsonId will be serialized ? This is not
> > specified in the index.md.
> >
>
> {_type: <id>,_value: <value>}
>
>
> >
> >
> >
> >
> >
> > ________________________________
> > Da: Romain Manni-Bucau <rm...@gmail.com>
> > Inviato: Tuesday, April 24, 2018 11:42:13 AM
> > A: dev@johnzon.apache.org
> > Oggetto: Re: Arrays / Lists elements polymorphic support
> >
> > Not it wouldn't work since when you deserialize you don't have any meta
> on
> > what you will deserialize.
> >
> > There are alternative to this impl but this is the one requiring the
> least
> > configuration I think.
> >
> >
> > Romain Manni-Bucau
> > @rmannibucau <https://twitter.com/rmannibucau> |  Blog
> > <https://rmannibucau.metawerx.net/> | Old Blog
> > <http://rmannibucau.wordpress.com> | Github <https://github.com/
> > rmannibucau> |
> > LinkedIn <https://www.linkedin.com/in/rmannibucau> | Book
> > <https://www.packtpub.com/application-development/java-
> > ee-8-high-performance>
> >
> > 2018-04-24 11:39 GMT+02:00 Alessandro Moscatelli <
> > alessandro.moscatelli@live.com>:
> >
> > > I think I would be great if this could be part of the Jsonb spec.
> > > I noticed the lack of real support for polymorphism.
> > >
> > > Regarding your impl :
> > >
> > > What if you need a Collection of polymorphic entities ?
> > > Wouldn’t it be better to declare the
> > >
> > >    @JsonbTypeSerializer(Polymorphic.Serializer.class)
> > >    @JsonbTypeDeserializer(Polymorphic.DeSerializer.class)
> > >
> > > Directly on the root entity instead of declare them on the field ?
> > > Would it work ?
> > >
> > > AM
> > >
> > > Da: Romain Manni-Bucau<ma...@gmail.com>
> > > Inviato: lunedì 23 aprile 2018 19:03
> > > A: dev@johnzon.apache.org<ma...@johnzon.apache.org>
> > > Oggetto: Re: Arrays / Lists elements polymorphic support
> > >
> > > Ok
> > >
> > > Will try to adapt the impl we had and push it later today or tmr and
> ping
> > > here for feedbacks
> > >
> > > Le 23 avr. 2018 18:46, "Jean-Louis MONTEIRO" <je...@gmail.com> a
> > écrit
> > > :
> > >
> > > > That works for me.
> > > > I agree that having that extension into a specific module is the way
> to
> > > go
> > > >
> > > > Le lun. 23 avr. 2018 à 18:44, Romain Manni-Bucau <
> > rmannibucau@gmail.com>
> > > a
> > > > écrit :
> > > >
> > > > > Maybe raise a spec issue since we tend to be jsonb driven now.
> Would
> > be
> > > > > great to not have a custom api for the id mapping.
> > > > >
> > > > > In the mean time we can push a jsonb-extra with that impl
> > > > >
> > > > > Le 23 avr. 2018 18:39, "Jean-Louis MONTEIRO" <je...@gmail.com>
> a
> > > > écrit
> > > > > :
> > > > >
> > > > > > Hey Roberto,
> > > > > >
> > > > > > I think that would be a great feature.
> > > > > > Already had this case in the past and looks like Jackson and Gson
> > > > already
> > > > > > have it.
> > > > > >
> > > > > > Gson subtypes on adapters.
> > > > > > https://github.com/google/gson/blob/master/extras/src/
> > > > > > main/java/com/google/gson/typeadapters/
> > > RuntimeTypeAdapterFactory.java
> > > > > >
> > > > > >
> > > > > > Jackson annotations with different strategies
> > > > > > https://github.com/FasterXML/jackson-docs/wiki/
> > > > > > JacksonPolymorphicDeserialization
> > > > > >
> > > > > > We should consider adding this feature I believe.
> > > > > >
> > > > > >
> > > > > > Le mer. 18 avr. 2018 à 19:42, Roberto Cortez
> > > > <radcortez@yahoo.com.invalid
> > > > > >
> > > > > > a écrit :
> > > > > >
> > > > > > >  Hi Romain,
> > > > > > > Thanks for the quick response.
> > > > > > > I'll have a look,
> > > > > > > Cheers,Roberto
> > > > > > >    On Wednesday, April 18, 2018, 6:35:32 PM GMT+1, Romain
> > > > Manni-Bucau
> > > > > <
> > > > > > > rmannibucau@gmail.com> wrote:
> > > > > > >
> > > > > > >  Hi Roberto
> > > > > > >
> > > > > > > Yes, an adapter is the way to go using our mapper or jsonb.
> > > > > > >
> > > > > > > There should be an "animal" test showing how to do that. Just
> > dont
> > > > > forget
> > > > > > > to use class aliases or a whitelist logic to not open a
> backdoor.
> > > > > > >
> > > > > > > Since the model doesnt match the java model im not a fan of
> that
> > > > > feature
> > > > > > > being built out of the box. In xml it is more natural but in
> json
> > > you
> > > > > can
> > > > > > > do it without breaking the model. For me it means the model is
> > > broken
> > > > > and
> > > > > > > must not be used as an input.
> > > > > > >
> > > > > > > Le 18 avr. 2018 19:31, "Roberto Cortez"
> > > <radcortez@yahoo.com.invalid
> > > > >
> > > > > a
> > > > > > > écrit :
> > > > > > >
> > > > > > > > Hi guys,
> > > > > > > > I'm trying to serialize a list of elements of multiple types
> > and
> > > > then
> > > > > > > > deserialize it again. It does require to somehow include the
> > type
> > > > in
> > > > > > the
> > > > > > > > serialization result to know to which type we should map to
> > > > > > deserialize.
> > > > > > > I
> > > > > > > > think this could possible be done with an Adapter and playing
> > > with
> > > > > the
> > > > > > > > JsonArray.
> > > > > > > > I was just wondering if there any kind of out of the box
> > support
> > > > for
> > > > > > > this.
> > > > > > > > It doesn't seem so, at least I was not able to find.
> > > > > > > > Jackson for instance, includes a set of annotations that
> allow
> > > you
> > > > to
> > > > > > do
> > > > > > > > exactly this, without any extra / custom code.
> > > > > > > > Any thoughts?
> > > > > > > > Thank you.
> > > > > > > > Cheers,Roberto
> > > > > >
> > > > >
> > > >
> > >
> > >
> >

Re: Arrays / Lists elements polymorphic support

Posted by Roberto Cortez <ra...@yahoo.com.INVALID>.
 Hi Romain,
I've tried it. It works great. Thank you.
I was just wondering if we would like to have a wrapper object with the key that is actually the type and the actual object inside:
{  "list" : [ {    "color" : {      "name" : "green",      "r" : 255,      "g" : 123,      "b" : 19    }  }, {    "person" : {      "name" : "jdoe",      "fullname" : "John Doe",    }  }, {    "pet" : {      "name" : "Pascal",    }  } ]}
It looks more clean to me.
Cheers,Roberto



    On Tuesday, April 24, 2018, 11:06:30 AM GMT+1, Romain Manni-Bucau <rm...@gmail.com> wrote:  
 
 2018-04-24 11:46 GMT+02:00 Alessandro Moscatelli <
alessandro.moscatelli@live.com>:

> Shouldn’t the @Polymorphic.JsonId (defaulting to simple name if absent) be
> the meta to use to know what you will deserialize ?
>

Yes, that's what it is actually but how do you find it?
Scanning? means you are slow for no real gain + you can conflict between
libraries and models


>
> By the way, how the Polymorphic.JsonId will be serialized ? This is not
> specified in the index.md.
>

{_type: <id>,_value: <value>}


>
>
>
>
>
> ________________________________
> Da: Romain Manni-Bucau <rm...@gmail.com>
> Inviato: Tuesday, April 24, 2018 11:42:13 AM
> A: dev@johnzon.apache.org
> Oggetto: Re: Arrays / Lists elements polymorphic support
>
> Not it wouldn't work since when you deserialize you don't have any meta on
> what you will deserialize.
>
> There are alternative to this impl but this is the one requiring the least
> configuration I think.
>
>
> Romain Manni-Bucau
> @rmannibucau <https://twitter.com/rmannibucau> |  Blog
> <https://rmannibucau.metawerx.net/> | Old Blog
> <http://rmannibucau.wordpress.com> | Github <https://github.com/
> rmannibucau> |
> LinkedIn <https://www.linkedin.com/in/rmannibucau> | Book
> <https://www.packtpub.com/application-development/java-
> ee-8-high-performance>
>
> 2018-04-24 11:39 GMT+02:00 Alessandro Moscatelli <
> alessandro.moscatelli@live.com>:
>
> > I think I would be great if this could be part of the Jsonb spec.
> > I noticed the lack of real support for polymorphism.
> >
> > Regarding your impl :
> >
> > What if you need a Collection of polymorphic entities ?
> > Wouldn’t it be better to declare the
> >
> >    @JsonbTypeSerializer(Polymorphic.Serializer.class)
> >    @JsonbTypeDeserializer(Polymorphic.DeSerializer.class)
> >
> > Directly on the root entity instead of declare them on the field ?
> > Would it work ?
> >
> > AM
> >
> > Da: Romain Manni-Bucau<ma...@gmail.com>
> > Inviato: lunedì 23 aprile 2018 19:03
> > A: dev@johnzon.apache.org<ma...@johnzon.apache.org>
> > Oggetto: Re: Arrays / Lists elements polymorphic support
> >
> > Ok
> >
> > Will try to adapt the impl we had and push it later today or tmr and ping
> > here for feedbacks
> >
> > Le 23 avr. 2018 18:46, "Jean-Louis MONTEIRO" <je...@gmail.com> a
> écrit
> > :
> >
> > > That works for me.
> > > I agree that having that extension into a specific module is the way to
> > go
> > >
> > > Le lun. 23 avr. 2018 à 18:44, Romain Manni-Bucau <
> rmannibucau@gmail.com>
> > a
> > > écrit :
> > >
> > > > Maybe raise a spec issue since we tend to be jsonb driven now. Would
> be
> > > > great to not have a custom api for the id mapping.
> > > >
> > > > In the mean time we can push a jsonb-extra with that impl
> > > >
> > > > Le 23 avr. 2018 18:39, "Jean-Louis MONTEIRO" <je...@gmail.com> a
> > > écrit
> > > > :
> > > >
> > > > > Hey Roberto,
> > > > >
> > > > > I think that would be a great feature.
> > > > > Already had this case in the past and looks like Jackson and Gson
> > > already
> > > > > have it.
> > > > >
> > > > > Gson subtypes on adapters.
> > > > > https://github.com/google/gson/blob/master/extras/src/
> > > > > main/java/com/google/gson/typeadapters/
> > RuntimeTypeAdapterFactory.java
> > > > >
> > > > >
> > > > > Jackson annotations with different strategies
> > > > > https://github.com/FasterXML/jackson-docs/wiki/
> > > > > JacksonPolymorphicDeserialization
> > > > >
> > > > > We should consider adding this feature I believe.
> > > > >
> > > > >
> > > > > Le mer. 18 avr. 2018 à 19:42, Roberto Cortez
> > > <radcortez@yahoo.com.invalid
> > > > >
> > > > > a écrit :
> > > > >
> > > > > >  Hi Romain,
> > > > > > Thanks for the quick response.
> > > > > > I'll have a look,
> > > > > > Cheers,Roberto
> > > > > >    On Wednesday, April 18, 2018, 6:35:32 PM GMT+1, Romain
> > > Manni-Bucau
> > > > <
> > > > > > rmannibucau@gmail.com> wrote:
> > > > > >
> > > > > >  Hi Roberto
> > > > > >
> > > > > > Yes, an adapter is the way to go using our mapper or jsonb.
> > > > > >
> > > > > > There should be an "animal" test showing how to do that. Just
> dont
> > > > forget
> > > > > > to use class aliases or a whitelist logic to not open a backdoor.
> > > > > >
> > > > > > Since the model doesnt match the java model im not a fan of that
> > > > feature
> > > > > > being built out of the box. In xml it is more natural but in json
> > you
> > > > can
> > > > > > do it without breaking the model. For me it means the model is
> > broken
> > > > and
> > > > > > must not be used as an input.
> > > > > >
> > > > > > Le 18 avr. 2018 19:31, "Roberto Cortez"
> > <radcortez@yahoo.com.invalid
> > > >
> > > > a
> > > > > > écrit :
> > > > > >
> > > > > > > Hi guys,
> > > > > > > I'm trying to serialize a list of elements of multiple types
> and
> > > then
> > > > > > > deserialize it again. It does require to somehow include the
> type
> > > in
> > > > > the
> > > > > > > serialization result to know to which type we should map to
> > > > > deserialize.
> > > > > > I
> > > > > > > think this could possible be done with an Adapter and playing
> > with
> > > > the
> > > > > > > JsonArray.
> > > > > > > I was just wondering if there any kind of out of the box
> support
> > > for
> > > > > > this.
> > > > > > > It doesn't seem so, at least I was not able to find.
> > > > > > > Jackson for instance, includes a set of annotations that allow
> > you
> > > to
> > > > > do
> > > > > > > exactly this, without any extra / custom code.
> > > > > > > Any thoughts?
> > > > > > > Thank you.
> > > > > > > Cheers,Roberto
> > > > >
> > > >
> > >
> >
> >
>  

Re: Arrays / Lists elements polymorphic support

Posted by Romain Manni-Bucau <rm...@gmail.com>.
2018-04-24 11:46 GMT+02:00 Alessandro Moscatelli <
alessandro.moscatelli@live.com>:

> Shouldn’t the @Polymorphic.JsonId (defaulting to simple name if absent) be
> the meta to use to know what you will deserialize ?
>

Yes, that's what it is actually but how do you find it?
Scanning? means you are slow for no real gain + you can conflict between
libraries and models


>
> By the way, how the Polymorphic.JsonId will be serialized ? This is not
> specified in the index.md.
>

{_type: <id>,_value: <value>}


>
>
>
>
>
> ________________________________
> Da: Romain Manni-Bucau <rm...@gmail.com>
> Inviato: Tuesday, April 24, 2018 11:42:13 AM
> A: dev@johnzon.apache.org
> Oggetto: Re: Arrays / Lists elements polymorphic support
>
> Not it wouldn't work since when you deserialize you don't have any meta on
> what you will deserialize.
>
> There are alternative to this impl but this is the one requiring the least
> configuration I think.
>
>
> Romain Manni-Bucau
> @rmannibucau <https://twitter.com/rmannibucau> |  Blog
> <https://rmannibucau.metawerx.net/> | Old Blog
> <http://rmannibucau.wordpress.com> | Github <https://github.com/
> rmannibucau> |
> LinkedIn <https://www.linkedin.com/in/rmannibucau> | Book
> <https://www.packtpub.com/application-development/java-
> ee-8-high-performance>
>
> 2018-04-24 11:39 GMT+02:00 Alessandro Moscatelli <
> alessandro.moscatelli@live.com>:
>
> > I think I would be great if this could be part of the Jsonb spec.
> > I noticed the lack of real support for polymorphism.
> >
> > Regarding your impl :
> >
> > What if you need a Collection of polymorphic entities ?
> > Wouldn’t it be better to declare the
> >
> >     @JsonbTypeSerializer(Polymorphic.Serializer.class)
> >     @JsonbTypeDeserializer(Polymorphic.DeSerializer.class)
> >
> > Directly on the root entity instead of declare them on the field ?
> > Would it work ?
> >
> > AM
> >
> > Da: Romain Manni-Bucau<ma...@gmail.com>
> > Inviato: lunedì 23 aprile 2018 19:03
> > A: dev@johnzon.apache.org<ma...@johnzon.apache.org>
> > Oggetto: Re: Arrays / Lists elements polymorphic support
> >
> > Ok
> >
> > Will try to adapt the impl we had and push it later today or tmr and ping
> > here for feedbacks
> >
> > Le 23 avr. 2018 18:46, "Jean-Louis MONTEIRO" <je...@gmail.com> a
> écrit
> > :
> >
> > > That works for me.
> > > I agree that having that extension into a specific module is the way to
> > go
> > >
> > > Le lun. 23 avr. 2018 à 18:44, Romain Manni-Bucau <
> rmannibucau@gmail.com>
> > a
> > > écrit :
> > >
> > > > Maybe raise a spec issue since we tend to be jsonb driven now. Would
> be
> > > > great to not have a custom api for the id mapping.
> > > >
> > > > In the mean time we can push a jsonb-extra with that impl
> > > >
> > > > Le 23 avr. 2018 18:39, "Jean-Louis MONTEIRO" <je...@gmail.com> a
> > > écrit
> > > > :
> > > >
> > > > > Hey Roberto,
> > > > >
> > > > > I think that would be a great feature.
> > > > > Already had this case in the past and looks like Jackson and Gson
> > > already
> > > > > have it.
> > > > >
> > > > > Gson subtypes on adapters.
> > > > > https://github.com/google/gson/blob/master/extras/src/
> > > > > main/java/com/google/gson/typeadapters/
> > RuntimeTypeAdapterFactory.java
> > > > >
> > > > >
> > > > > Jackson annotations with different strategies
> > > > > https://github.com/FasterXML/jackson-docs/wiki/
> > > > > JacksonPolymorphicDeserialization
> > > > >
> > > > > We should consider adding this feature I believe.
> > > > >
> > > > >
> > > > > Le mer. 18 avr. 2018 à 19:42, Roberto Cortez
> > > <radcortez@yahoo.com.invalid
> > > > >
> > > > > a écrit :
> > > > >
> > > > > >  Hi Romain,
> > > > > > Thanks for the quick response.
> > > > > > I'll have a look,
> > > > > > Cheers,Roberto
> > > > > >     On Wednesday, April 18, 2018, 6:35:32 PM GMT+1, Romain
> > > Manni-Bucau
> > > > <
> > > > > > rmannibucau@gmail.com> wrote:
> > > > > >
> > > > > >  Hi Roberto
> > > > > >
> > > > > > Yes, an adapter is the way to go using our mapper or jsonb.
> > > > > >
> > > > > > There should be an "animal" test showing how to do that. Just
> dont
> > > > forget
> > > > > > to use class aliases or a whitelist logic to not open a backdoor.
> > > > > >
> > > > > > Since the model doesnt match the java model im not a fan of that
> > > > feature
> > > > > > being built out of the box. In xml it is more natural but in json
> > you
> > > > can
> > > > > > do it without breaking the model. For me it means the model is
> > broken
> > > > and
> > > > > > must not be used as an input.
> > > > > >
> > > > > > Le 18 avr. 2018 19:31, "Roberto Cortez"
> > <radcortez@yahoo.com.invalid
> > > >
> > > > a
> > > > > > écrit :
> > > > > >
> > > > > > > Hi guys,
> > > > > > > I'm trying to serialize a list of elements of multiple types
> and
> > > then
> > > > > > > deserialize it again. It does require to somehow include the
> type
> > > in
> > > > > the
> > > > > > > serialization result to know to which type we should map to
> > > > > deserialize.
> > > > > > I
> > > > > > > think this could possible be done with an Adapter and playing
> > with
> > > > the
> > > > > > > JsonArray.
> > > > > > > I was just wondering if there any kind of out of the box
> support
> > > for
> > > > > > this.
> > > > > > > It doesn't seem so, at least I was not able to find.
> > > > > > > Jackson for instance, includes a set of annotations that allow
> > you
> > > to
> > > > > do
> > > > > > > exactly this, without any extra / custom code.
> > > > > > > Any thoughts?
> > > > > > > Thank you.
> > > > > > > Cheers,Roberto
> > > > >
> > > >
> > >
> >
> >
>

R: Arrays / Lists elements polymorphic support

Posted by Alessandro Moscatelli <al...@live.com>.
Shouldn’t the @Polymorphic.JsonId (defaulting to simple name if absent) be the meta to use to know what you will deserialize ?

By the way, how the Polymorphic.JsonId will be serialized ? This is not specified in the index.md.





________________________________
Da: Romain Manni-Bucau <rm...@gmail.com>
Inviato: Tuesday, April 24, 2018 11:42:13 AM
A: dev@johnzon.apache.org
Oggetto: Re: Arrays / Lists elements polymorphic support

Not it wouldn't work since when you deserialize you don't have any meta on
what you will deserialize.

There are alternative to this impl but this is the one requiring the least
configuration I think.


Romain Manni-Bucau
@rmannibucau <https://twitter.com/rmannibucau> |  Blog
<https://rmannibucau.metawerx.net/> | Old Blog
<http://rmannibucau.wordpress.com> | Github <https://github.com/rmannibucau> |
LinkedIn <https://www.linkedin.com/in/rmannibucau> | Book
<https://www.packtpub.com/application-development/java-ee-8-high-performance>

2018-04-24 11:39 GMT+02:00 Alessandro Moscatelli <
alessandro.moscatelli@live.com>:

> I think I would be great if this could be part of the Jsonb spec.
> I noticed the lack of real support for polymorphism.
>
> Regarding your impl :
>
> What if you need a Collection of polymorphic entities ?
> Wouldn’t it be better to declare the
>
>     @JsonbTypeSerializer(Polymorphic.Serializer.class)
>     @JsonbTypeDeserializer(Polymorphic.DeSerializer.class)
>
> Directly on the root entity instead of declare them on the field ?
> Would it work ?
>
> AM
>
> Da: Romain Manni-Bucau<ma...@gmail.com>
> Inviato: lunedì 23 aprile 2018 19:03
> A: dev@johnzon.apache.org<ma...@johnzon.apache.org>
> Oggetto: Re: Arrays / Lists elements polymorphic support
>
> Ok
>
> Will try to adapt the impl we had and push it later today or tmr and ping
> here for feedbacks
>
> Le 23 avr. 2018 18:46, "Jean-Louis MONTEIRO" <je...@gmail.com> a écrit
> :
>
> > That works for me.
> > I agree that having that extension into a specific module is the way to
> go
> >
> > Le lun. 23 avr. 2018 à 18:44, Romain Manni-Bucau <rm...@gmail.com>
> a
> > écrit :
> >
> > > Maybe raise a spec issue since we tend to be jsonb driven now. Would be
> > > great to not have a custom api for the id mapping.
> > >
> > > In the mean time we can push a jsonb-extra with that impl
> > >
> > > Le 23 avr. 2018 18:39, "Jean-Louis MONTEIRO" <je...@gmail.com> a
> > écrit
> > > :
> > >
> > > > Hey Roberto,
> > > >
> > > > I think that would be a great feature.
> > > > Already had this case in the past and looks like Jackson and Gson
> > already
> > > > have it.
> > > >
> > > > Gson subtypes on adapters.
> > > > https://github.com/google/gson/blob/master/extras/src/
> > > > main/java/com/google/gson/typeadapters/
> RuntimeTypeAdapterFactory.java
> > > >
> > > >
> > > > Jackson annotations with different strategies
> > > > https://github.com/FasterXML/jackson-docs/wiki/
> > > > JacksonPolymorphicDeserialization
> > > >
> > > > We should consider adding this feature I believe.
> > > >
> > > >
> > > > Le mer. 18 avr. 2018 à 19:42, Roberto Cortez
> > <radcortez@yahoo.com.invalid
> > > >
> > > > a écrit :
> > > >
> > > > >  Hi Romain,
> > > > > Thanks for the quick response.
> > > > > I'll have a look,
> > > > > Cheers,Roberto
> > > > >     On Wednesday, April 18, 2018, 6:35:32 PM GMT+1, Romain
> > Manni-Bucau
> > > <
> > > > > rmannibucau@gmail.com> wrote:
> > > > >
> > > > >  Hi Roberto
> > > > >
> > > > > Yes, an adapter is the way to go using our mapper or jsonb.
> > > > >
> > > > > There should be an "animal" test showing how to do that. Just dont
> > > forget
> > > > > to use class aliases or a whitelist logic to not open a backdoor.
> > > > >
> > > > > Since the model doesnt match the java model im not a fan of that
> > > feature
> > > > > being built out of the box. In xml it is more natural but in json
> you
> > > can
> > > > > do it without breaking the model. For me it means the model is
> broken
> > > and
> > > > > must not be used as an input.
> > > > >
> > > > > Le 18 avr. 2018 19:31, "Roberto Cortez"
> <radcortez@yahoo.com.invalid
> > >
> > > a
> > > > > écrit :
> > > > >
> > > > > > Hi guys,
> > > > > > I'm trying to serialize a list of elements of multiple types and
> > then
> > > > > > deserialize it again. It does require to somehow include the type
> > in
> > > > the
> > > > > > serialization result to know to which type we should map to
> > > > deserialize.
> > > > > I
> > > > > > think this could possible be done with an Adapter and playing
> with
> > > the
> > > > > > JsonArray.
> > > > > > I was just wondering if there any kind of out of the box support
> > for
> > > > > this.
> > > > > > It doesn't seem so, at least I was not able to find.
> > > > > > Jackson for instance, includes a set of annotations that allow
> you
> > to
> > > > do
> > > > > > exactly this, without any extra / custom code.
> > > > > > Any thoughts?
> > > > > > Thank you.
> > > > > > Cheers,Roberto
> > > >
> > >
> >
>
>

Re: Arrays / Lists elements polymorphic support

Posted by Romain Manni-Bucau <rm...@gmail.com>.
Not it wouldn't work since when you deserialize you don't have any meta on
what you will deserialize.

There are alternative to this impl but this is the one requiring the least
configuration I think.


Romain Manni-Bucau
@rmannibucau <https://twitter.com/rmannibucau> |  Blog
<https://rmannibucau.metawerx.net/> | Old Blog
<http://rmannibucau.wordpress.com> | Github <https://github.com/rmannibucau> |
LinkedIn <https://www.linkedin.com/in/rmannibucau> | Book
<https://www.packtpub.com/application-development/java-ee-8-high-performance>

2018-04-24 11:39 GMT+02:00 Alessandro Moscatelli <
alessandro.moscatelli@live.com>:

> I think I would be great if this could be part of the Jsonb spec.
> I noticed the lack of real support for polymorphism.
>
> Regarding your impl :
>
> What if you need a Collection of polymorphic entities ?
> Wouldn’t it be better to declare the
>
>     @JsonbTypeSerializer(Polymorphic.Serializer.class)
>     @JsonbTypeDeserializer(Polymorphic.DeSerializer.class)
>
> Directly on the root entity instead of declare them on the field ?
> Would it work ?
>
> AM
>
> Da: Romain Manni-Bucau<ma...@gmail.com>
> Inviato: lunedì 23 aprile 2018 19:03
> A: dev@johnzon.apache.org<ma...@johnzon.apache.org>
> Oggetto: Re: Arrays / Lists elements polymorphic support
>
> Ok
>
> Will try to adapt the impl we had and push it later today or tmr and ping
> here for feedbacks
>
> Le 23 avr. 2018 18:46, "Jean-Louis MONTEIRO" <je...@gmail.com> a écrit
> :
>
> > That works for me.
> > I agree that having that extension into a specific module is the way to
> go
> >
> > Le lun. 23 avr. 2018 à 18:44, Romain Manni-Bucau <rm...@gmail.com>
> a
> > écrit :
> >
> > > Maybe raise a spec issue since we tend to be jsonb driven now. Would be
> > > great to not have a custom api for the id mapping.
> > >
> > > In the mean time we can push a jsonb-extra with that impl
> > >
> > > Le 23 avr. 2018 18:39, "Jean-Louis MONTEIRO" <je...@gmail.com> a
> > écrit
> > > :
> > >
> > > > Hey Roberto,
> > > >
> > > > I think that would be a great feature.
> > > > Already had this case in the past and looks like Jackson and Gson
> > already
> > > > have it.
> > > >
> > > > Gson subtypes on adapters.
> > > > https://github.com/google/gson/blob/master/extras/src/
> > > > main/java/com/google/gson/typeadapters/
> RuntimeTypeAdapterFactory.java
> > > >
> > > >
> > > > Jackson annotations with different strategies
> > > > https://github.com/FasterXML/jackson-docs/wiki/
> > > > JacksonPolymorphicDeserialization
> > > >
> > > > We should consider adding this feature I believe.
> > > >
> > > >
> > > > Le mer. 18 avr. 2018 à 19:42, Roberto Cortez
> > <radcortez@yahoo.com.invalid
> > > >
> > > > a écrit :
> > > >
> > > > >  Hi Romain,
> > > > > Thanks for the quick response.
> > > > > I'll have a look,
> > > > > Cheers,Roberto
> > > > >     On Wednesday, April 18, 2018, 6:35:32 PM GMT+1, Romain
> > Manni-Bucau
> > > <
> > > > > rmannibucau@gmail.com> wrote:
> > > > >
> > > > >  Hi Roberto
> > > > >
> > > > > Yes, an adapter is the way to go using our mapper or jsonb.
> > > > >
> > > > > There should be an "animal" test showing how to do that. Just dont
> > > forget
> > > > > to use class aliases or a whitelist logic to not open a backdoor.
> > > > >
> > > > > Since the model doesnt match the java model im not a fan of that
> > > feature
> > > > > being built out of the box. In xml it is more natural but in json
> you
> > > can
> > > > > do it without breaking the model. For me it means the model is
> broken
> > > and
> > > > > must not be used as an input.
> > > > >
> > > > > Le 18 avr. 2018 19:31, "Roberto Cortez"
> <radcortez@yahoo.com.invalid
> > >
> > > a
> > > > > écrit :
> > > > >
> > > > > > Hi guys,
> > > > > > I'm trying to serialize a list of elements of multiple types and
> > then
> > > > > > deserialize it again. It does require to somehow include the type
> > in
> > > > the
> > > > > > serialization result to know to which type we should map to
> > > > deserialize.
> > > > > I
> > > > > > think this could possible be done with an Adapter and playing
> with
> > > the
> > > > > > JsonArray.
> > > > > > I was just wondering if there any kind of out of the box support
> > for
> > > > > this.
> > > > > > It doesn't seem so, at least I was not able to find.
> > > > > > Jackson for instance, includes a set of annotations that allow
> you
> > to
> > > > do
> > > > > > exactly this, without any extra / custom code.
> > > > > > Any thoughts?
> > > > > > Thank you.
> > > > > > Cheers,Roberto
> > > >
> > >
> >
>
>

R: Arrays / Lists elements polymorphic support

Posted by Alessandro Moscatelli <al...@live.com>.
I think I would be great if this could be part of the Jsonb spec.
I noticed the lack of real support for polymorphism.

Regarding your impl :

What if you need a Collection of polymorphic entities ?
Wouldn’t it be better to declare the

    @JsonbTypeSerializer(Polymorphic.Serializer.class)
    @JsonbTypeDeserializer(Polymorphic.DeSerializer.class)

Directly on the root entity instead of declare them on the field ?
Would it work ?

AM

Da: Romain Manni-Bucau<ma...@gmail.com>
Inviato: lunedì 23 aprile 2018 19:03
A: dev@johnzon.apache.org<ma...@johnzon.apache.org>
Oggetto: Re: Arrays / Lists elements polymorphic support

Ok

Will try to adapt the impl we had and push it later today or tmr and ping
here for feedbacks

Le 23 avr. 2018 18:46, "Jean-Louis MONTEIRO" <je...@gmail.com> a écrit :

> That works for me.
> I agree that having that extension into a specific module is the way to go
>
> Le lun. 23 avr. 2018 à 18:44, Romain Manni-Bucau <rm...@gmail.com> a
> écrit :
>
> > Maybe raise a spec issue since we tend to be jsonb driven now. Would be
> > great to not have a custom api for the id mapping.
> >
> > In the mean time we can push a jsonb-extra with that impl
> >
> > Le 23 avr. 2018 18:39, "Jean-Louis MONTEIRO" <je...@gmail.com> a
> écrit
> > :
> >
> > > Hey Roberto,
> > >
> > > I think that would be a great feature.
> > > Already had this case in the past and looks like Jackson and Gson
> already
> > > have it.
> > >
> > > Gson subtypes on adapters.
> > > https://github.com/google/gson/blob/master/extras/src/
> > > main/java/com/google/gson/typeadapters/RuntimeTypeAdapterFactory.java
> > >
> > >
> > > Jackson annotations with different strategies
> > > https://github.com/FasterXML/jackson-docs/wiki/
> > > JacksonPolymorphicDeserialization
> > >
> > > We should consider adding this feature I believe.
> > >
> > >
> > > Le mer. 18 avr. 2018 à 19:42, Roberto Cortez
> <radcortez@yahoo.com.invalid
> > >
> > > a écrit :
> > >
> > > >  Hi Romain,
> > > > Thanks for the quick response.
> > > > I'll have a look,
> > > > Cheers,Roberto
> > > >     On Wednesday, April 18, 2018, 6:35:32 PM GMT+1, Romain
> Manni-Bucau
> > <
> > > > rmannibucau@gmail.com> wrote:
> > > >
> > > >  Hi Roberto
> > > >
> > > > Yes, an adapter is the way to go using our mapper or jsonb.
> > > >
> > > > There should be an "animal" test showing how to do that. Just dont
> > forget
> > > > to use class aliases or a whitelist logic to not open a backdoor.
> > > >
> > > > Since the model doesnt match the java model im not a fan of that
> > feature
> > > > being built out of the box. In xml it is more natural but in json you
> > can
> > > > do it without breaking the model. For me it means the model is broken
> > and
> > > > must not be used as an input.
> > > >
> > > > Le 18 avr. 2018 19:31, "Roberto Cortez" <radcortez@yahoo.com.invalid
> >
> > a
> > > > écrit :
> > > >
> > > > > Hi guys,
> > > > > I'm trying to serialize a list of elements of multiple types and
> then
> > > > > deserialize it again. It does require to somehow include the type
> in
> > > the
> > > > > serialization result to know to which type we should map to
> > > deserialize.
> > > > I
> > > > > think this could possible be done with an Adapter and playing with
> > the
> > > > > JsonArray.
> > > > > I was just wondering if there any kind of out of the box support
> for
> > > > this.
> > > > > It doesn't seem so, at least I was not able to find.
> > > > > Jackson for instance, includes a set of annotations that allow you
> to
> > > do
> > > > > exactly this, without any extra / custom code.
> > > > > Any thoughts?
> > > > > Thank you.
> > > > > Cheers,Roberto
> > >
> >
>


Re: Arrays / Lists elements polymorphic support

Posted by Roberto Cortez <ra...@yahoo.com.INVALID>.
 Cool. Thank you. I'll give it a try.
    On Monday, April 23, 2018, 7:04:04 PM GMT+1, Romain Manni-Bucau <rm...@gmail.com> wrote:  
 
 done
https://github.com/apache/johnzon/blob/master/src/site/markdown/index.md#user-content-json-b-extra


Romain Manni-Bucau
@rmannibucau <https://twitter.com/rmannibucau> |  Blog
<https://rmannibucau.metawerx.net/> | Old Blog
<http://rmannibucau.wordpress.com> | Github <https://github.com/rmannibucau> |
LinkedIn <https://www.linkedin.com/in/rmannibucau> | Book
<https://www.packtpub.com/application-development/java-ee-8-high-performance>

2018-04-23 19:03 GMT+02:00 Romain Manni-Bucau <rm...@gmail.com>:

> Ok
>
> Will try to adapt the impl we had and push it later today or tmr and ping
> here for feedbacks
>
> Le 23 avr. 2018 18:46, "Jean-Louis MONTEIRO" <je...@gmail.com> a
> écrit :
>
>> That works for me.
>> I agree that having that extension into a specific module is the way to go
>>
>> Le lun. 23 avr. 2018 à 18:44, Romain Manni-Bucau <rm...@gmail.com>
>> a
>> écrit :
>>
>> > Maybe raise a spec issue since we tend to be jsonb driven now. Would be
>> > great to not have a custom api for the id mapping.
>> >
>> > In the mean time we can push a jsonb-extra with that impl
>> >
>> > Le 23 avr. 2018 18:39, "Jean-Louis MONTEIRO" <je...@gmail.com> a
>> écrit
>> > :
>> >
>> > > Hey Roberto,
>> > >
>> > > I think that would be a great feature.
>> > > Already had this case in the past and looks like Jackson and Gson
>> already
>> > > have it.
>> > >
>> > > Gson subtypes on adapters.
>> > > https://github.com/google/gson/blob/master/extras/src/
>> > > main/java/com/google/gson/typeadapters/RuntimeTypeAdapterFactory.java
>> > >
>> > >
>> > > Jackson annotations with different strategies
>> > > https://github.com/FasterXML/jackson-docs/wiki/
>> > > JacksonPolymorphicDeserialization
>> > >
>> > > We should consider adding this feature I believe.
>> > >
>> > >
>> > > Le mer. 18 avr. 2018 à 19:42, Roberto Cortez
>> <radcortez@yahoo.com.invalid
>> > >
>> > > a écrit :
>> > >
>> > > >  Hi Romain,
>> > > > Thanks for the quick response.
>> > > > I'll have a look,
>> > > > Cheers,Roberto
>> > > >    On Wednesday, April 18, 2018, 6:35:32 PM GMT+1, Romain
>> Manni-Bucau
>> > <
>> > > > rmannibucau@gmail.com> wrote:
>> > > >
>> > > >  Hi Roberto
>> > > >
>> > > > Yes, an adapter is the way to go using our mapper or jsonb.
>> > > >
>> > > > There should be an "animal" test showing how to do that. Just dont
>> > forget
>> > > > to use class aliases or a whitelist logic to not open a backdoor.
>> > > >
>> > > > Since the model doesnt match the java model im not a fan of that
>> > feature
>> > > > being built out of the box. In xml it is more natural but in json
>> you
>> > can
>> > > > do it without breaking the model. For me it means the model is
>> broken
>> > and
>> > > > must not be used as an input.
>> > > >
>> > > > Le 18 avr. 2018 19:31, "Roberto Cortez" <radcortez@yahoo.com.invalid
>> >
>> > a
>> > > > écrit :
>> > > >
>> > > > > Hi guys,
>> > > > > I'm trying to serialize a list of elements of multiple types and
>> then
>> > > > > deserialize it again. It does require to somehow include the type
>> in
>> > > the
>> > > > > serialization result to know to which type we should map to
>> > > deserialize.
>> > > > I
>> > > > > think this could possible be done with an Adapter and playing with
>> > the
>> > > > > JsonArray.
>> > > > > I was just wondering if there any kind of out of the box support
>> for
>> > > > this.
>> > > > > It doesn't seem so, at least I was not able to find.
>> > > > > Jackson for instance, includes a set of annotations that allow
>> you to
>> > > do
>> > > > > exactly this, without any extra / custom code.
>> > > > > Any thoughts?
>> > > > > Thank you.
>> > > > > Cheers,Roberto
>> > >
>> >
>>
>  

Re: Arrays / Lists elements polymorphic support

Posted by Romain Manni-Bucau <rm...@gmail.com>.
done
https://github.com/apache/johnzon/blob/master/src/site/markdown/index.md#user-content-json-b-extra


Romain Manni-Bucau
@rmannibucau <https://twitter.com/rmannibucau> |  Blog
<https://rmannibucau.metawerx.net/> | Old Blog
<http://rmannibucau.wordpress.com> | Github <https://github.com/rmannibucau> |
LinkedIn <https://www.linkedin.com/in/rmannibucau> | Book
<https://www.packtpub.com/application-development/java-ee-8-high-performance>

2018-04-23 19:03 GMT+02:00 Romain Manni-Bucau <rm...@gmail.com>:

> Ok
>
> Will try to adapt the impl we had and push it later today or tmr and ping
> here for feedbacks
>
> Le 23 avr. 2018 18:46, "Jean-Louis MONTEIRO" <je...@gmail.com> a
> écrit :
>
>> That works for me.
>> I agree that having that extension into a specific module is the way to go
>>
>> Le lun. 23 avr. 2018 à 18:44, Romain Manni-Bucau <rm...@gmail.com>
>> a
>> écrit :
>>
>> > Maybe raise a spec issue since we tend to be jsonb driven now. Would be
>> > great to not have a custom api for the id mapping.
>> >
>> > In the mean time we can push a jsonb-extra with that impl
>> >
>> > Le 23 avr. 2018 18:39, "Jean-Louis MONTEIRO" <je...@gmail.com> a
>> écrit
>> > :
>> >
>> > > Hey Roberto,
>> > >
>> > > I think that would be a great feature.
>> > > Already had this case in the past and looks like Jackson and Gson
>> already
>> > > have it.
>> > >
>> > > Gson subtypes on adapters.
>> > > https://github.com/google/gson/blob/master/extras/src/
>> > > main/java/com/google/gson/typeadapters/RuntimeTypeAdapterFactory.java
>> > >
>> > >
>> > > Jackson annotations with different strategies
>> > > https://github.com/FasterXML/jackson-docs/wiki/
>> > > JacksonPolymorphicDeserialization
>> > >
>> > > We should consider adding this feature I believe.
>> > >
>> > >
>> > > Le mer. 18 avr. 2018 à 19:42, Roberto Cortez
>> <radcortez@yahoo.com.invalid
>> > >
>> > > a écrit :
>> > >
>> > > >  Hi Romain,
>> > > > Thanks for the quick response.
>> > > > I'll have a look,
>> > > > Cheers,Roberto
>> > > >     On Wednesday, April 18, 2018, 6:35:32 PM GMT+1, Romain
>> Manni-Bucau
>> > <
>> > > > rmannibucau@gmail.com> wrote:
>> > > >
>> > > >  Hi Roberto
>> > > >
>> > > > Yes, an adapter is the way to go using our mapper or jsonb.
>> > > >
>> > > > There should be an "animal" test showing how to do that. Just dont
>> > forget
>> > > > to use class aliases or a whitelist logic to not open a backdoor.
>> > > >
>> > > > Since the model doesnt match the java model im not a fan of that
>> > feature
>> > > > being built out of the box. In xml it is more natural but in json
>> you
>> > can
>> > > > do it without breaking the model. For me it means the model is
>> broken
>> > and
>> > > > must not be used as an input.
>> > > >
>> > > > Le 18 avr. 2018 19:31, "Roberto Cortez" <radcortez@yahoo.com.invalid
>> >
>> > a
>> > > > écrit :
>> > > >
>> > > > > Hi guys,
>> > > > > I'm trying to serialize a list of elements of multiple types and
>> then
>> > > > > deserialize it again. It does require to somehow include the type
>> in
>> > > the
>> > > > > serialization result to know to which type we should map to
>> > > deserialize.
>> > > > I
>> > > > > think this could possible be done with an Adapter and playing with
>> > the
>> > > > > JsonArray.
>> > > > > I was just wondering if there any kind of out of the box support
>> for
>> > > > this.
>> > > > > It doesn't seem so, at least I was not able to find.
>> > > > > Jackson for instance, includes a set of annotations that allow
>> you to
>> > > do
>> > > > > exactly this, without any extra / custom code.
>> > > > > Any thoughts?
>> > > > > Thank you.
>> > > > > Cheers,Roberto
>> > >
>> >
>>
>

Re: Arrays / Lists elements polymorphic support

Posted by Romain Manni-Bucau <rm...@gmail.com>.
Ok

Will try to adapt the impl we had and push it later today or tmr and ping
here for feedbacks

Le 23 avr. 2018 18:46, "Jean-Louis MONTEIRO" <je...@gmail.com> a écrit :

> That works for me.
> I agree that having that extension into a specific module is the way to go
>
> Le lun. 23 avr. 2018 à 18:44, Romain Manni-Bucau <rm...@gmail.com> a
> écrit :
>
> > Maybe raise a spec issue since we tend to be jsonb driven now. Would be
> > great to not have a custom api for the id mapping.
> >
> > In the mean time we can push a jsonb-extra with that impl
> >
> > Le 23 avr. 2018 18:39, "Jean-Louis MONTEIRO" <je...@gmail.com> a
> écrit
> > :
> >
> > > Hey Roberto,
> > >
> > > I think that would be a great feature.
> > > Already had this case in the past and looks like Jackson and Gson
> already
> > > have it.
> > >
> > > Gson subtypes on adapters.
> > > https://github.com/google/gson/blob/master/extras/src/
> > > main/java/com/google/gson/typeadapters/RuntimeTypeAdapterFactory.java
> > >
> > >
> > > Jackson annotations with different strategies
> > > https://github.com/FasterXML/jackson-docs/wiki/
> > > JacksonPolymorphicDeserialization
> > >
> > > We should consider adding this feature I believe.
> > >
> > >
> > > Le mer. 18 avr. 2018 à 19:42, Roberto Cortez
> <radcortez@yahoo.com.invalid
> > >
> > > a écrit :
> > >
> > > >  Hi Romain,
> > > > Thanks for the quick response.
> > > > I'll have a look,
> > > > Cheers,Roberto
> > > >     On Wednesday, April 18, 2018, 6:35:32 PM GMT+1, Romain
> Manni-Bucau
> > <
> > > > rmannibucau@gmail.com> wrote:
> > > >
> > > >  Hi Roberto
> > > >
> > > > Yes, an adapter is the way to go using our mapper or jsonb.
> > > >
> > > > There should be an "animal" test showing how to do that. Just dont
> > forget
> > > > to use class aliases or a whitelist logic to not open a backdoor.
> > > >
> > > > Since the model doesnt match the java model im not a fan of that
> > feature
> > > > being built out of the box. In xml it is more natural but in json you
> > can
> > > > do it without breaking the model. For me it means the model is broken
> > and
> > > > must not be used as an input.
> > > >
> > > > Le 18 avr. 2018 19:31, "Roberto Cortez" <radcortez@yahoo.com.invalid
> >
> > a
> > > > écrit :
> > > >
> > > > > Hi guys,
> > > > > I'm trying to serialize a list of elements of multiple types and
> then
> > > > > deserialize it again. It does require to somehow include the type
> in
> > > the
> > > > > serialization result to know to which type we should map to
> > > deserialize.
> > > > I
> > > > > think this could possible be done with an Adapter and playing with
> > the
> > > > > JsonArray.
> > > > > I was just wondering if there any kind of out of the box support
> for
> > > > this.
> > > > > It doesn't seem so, at least I was not able to find.
> > > > > Jackson for instance, includes a set of annotations that allow you
> to
> > > do
> > > > > exactly this, without any extra / custom code.
> > > > > Any thoughts?
> > > > > Thank you.
> > > > > Cheers,Roberto
> > >
> >
>

Re: Arrays / Lists elements polymorphic support

Posted by Jean-Louis MONTEIRO <je...@gmail.com>.
That works for me.
I agree that having that extension into a specific module is the way to go

Le lun. 23 avr. 2018 à 18:44, Romain Manni-Bucau <rm...@gmail.com> a
écrit :

> Maybe raise a spec issue since we tend to be jsonb driven now. Would be
> great to not have a custom api for the id mapping.
>
> In the mean time we can push a jsonb-extra with that impl
>
> Le 23 avr. 2018 18:39, "Jean-Louis MONTEIRO" <je...@gmail.com> a écrit
> :
>
> > Hey Roberto,
> >
> > I think that would be a great feature.
> > Already had this case in the past and looks like Jackson and Gson already
> > have it.
> >
> > Gson subtypes on adapters.
> > https://github.com/google/gson/blob/master/extras/src/
> > main/java/com/google/gson/typeadapters/RuntimeTypeAdapterFactory.java
> >
> >
> > Jackson annotations with different strategies
> > https://github.com/FasterXML/jackson-docs/wiki/
> > JacksonPolymorphicDeserialization
> >
> > We should consider adding this feature I believe.
> >
> >
> > Le mer. 18 avr. 2018 à 19:42, Roberto Cortez <radcortez@yahoo.com.invalid
> >
> > a écrit :
> >
> > >  Hi Romain,
> > > Thanks for the quick response.
> > > I'll have a look,
> > > Cheers,Roberto
> > >     On Wednesday, April 18, 2018, 6:35:32 PM GMT+1, Romain Manni-Bucau
> <
> > > rmannibucau@gmail.com> wrote:
> > >
> > >  Hi Roberto
> > >
> > > Yes, an adapter is the way to go using our mapper or jsonb.
> > >
> > > There should be an "animal" test showing how to do that. Just dont
> forget
> > > to use class aliases or a whitelist logic to not open a backdoor.
> > >
> > > Since the model doesnt match the java model im not a fan of that
> feature
> > > being built out of the box. In xml it is more natural but in json you
> can
> > > do it without breaking the model. For me it means the model is broken
> and
> > > must not be used as an input.
> > >
> > > Le 18 avr. 2018 19:31, "Roberto Cortez" <ra...@yahoo.com.invalid>
> a
> > > écrit :
> > >
> > > > Hi guys,
> > > > I'm trying to serialize a list of elements of multiple types and then
> > > > deserialize it again. It does require to somehow include the type in
> > the
> > > > serialization result to know to which type we should map to
> > deserialize.
> > > I
> > > > think this could possible be done with an Adapter and playing with
> the
> > > > JsonArray.
> > > > I was just wondering if there any kind of out of the box support for
> > > this.
> > > > It doesn't seem so, at least I was not able to find.
> > > > Jackson for instance, includes a set of annotations that allow you to
> > do
> > > > exactly this, without any extra / custom code.
> > > > Any thoughts?
> > > > Thank you.
> > > > Cheers,Roberto
> >
>

Re: Arrays / Lists elements polymorphic support

Posted by Romain Manni-Bucau <rm...@gmail.com>.
Maybe raise a spec issue since we tend to be jsonb driven now. Would be
great to not have a custom api for the id mapping.

In the mean time we can push a jsonb-extra with that impl

Le 23 avr. 2018 18:39, "Jean-Louis MONTEIRO" <je...@gmail.com> a écrit :

> Hey Roberto,
>
> I think that would be a great feature.
> Already had this case in the past and looks like Jackson and Gson already
> have it.
>
> Gson subtypes on adapters.
> https://github.com/google/gson/blob/master/extras/src/
> main/java/com/google/gson/typeadapters/RuntimeTypeAdapterFactory.java
>
>
> Jackson annotations with different strategies
> https://github.com/FasterXML/jackson-docs/wiki/
> JacksonPolymorphicDeserialization
>
> We should consider adding this feature I believe.
>
>
> Le mer. 18 avr. 2018 à 19:42, Roberto Cortez <ra...@yahoo.com.invalid>
> a écrit :
>
> >  Hi Romain,
> > Thanks for the quick response.
> > I'll have a look,
> > Cheers,Roberto
> >     On Wednesday, April 18, 2018, 6:35:32 PM GMT+1, Romain Manni-Bucau <
> > rmannibucau@gmail.com> wrote:
> >
> >  Hi Roberto
> >
> > Yes, an adapter is the way to go using our mapper or jsonb.
> >
> > There should be an "animal" test showing how to do that. Just dont forget
> > to use class aliases or a whitelist logic to not open a backdoor.
> >
> > Since the model doesnt match the java model im not a fan of that feature
> > being built out of the box. In xml it is more natural but in json you can
> > do it without breaking the model. For me it means the model is broken and
> > must not be used as an input.
> >
> > Le 18 avr. 2018 19:31, "Roberto Cortez" <ra...@yahoo.com.invalid> a
> > écrit :
> >
> > > Hi guys,
> > > I'm trying to serialize a list of elements of multiple types and then
> > > deserialize it again. It does require to somehow include the type in
> the
> > > serialization result to know to which type we should map to
> deserialize.
> > I
> > > think this could possible be done with an Adapter and playing with the
> > > JsonArray.
> > > I was just wondering if there any kind of out of the box support for
> > this.
> > > It doesn't seem so, at least I was not able to find.
> > > Jackson for instance, includes a set of annotations that allow you to
> do
> > > exactly this, without any extra / custom code.
> > > Any thoughts?
> > > Thank you.
> > > Cheers,Roberto
>

Re: Arrays / Lists elements polymorphic support

Posted by Jean-Louis MONTEIRO <je...@gmail.com>.
Hey Roberto,

I think that would be a great feature.
Already had this case in the past and looks like Jackson and Gson already
have it.

Gson subtypes on adapters.
https://github.com/google/gson/blob/master/extras/src/main/java/com/google/gson/typeadapters/RuntimeTypeAdapterFactory.java


Jackson annotations with different strategies
https://github.com/FasterXML/jackson-docs/wiki/JacksonPolymorphicDeserialization

We should consider adding this feature I believe.


Le mer. 18 avr. 2018 à 19:42, Roberto Cortez <ra...@yahoo.com.invalid>
a écrit :

>  Hi Romain,
> Thanks for the quick response.
> I'll have a look,
> Cheers,Roberto
>     On Wednesday, April 18, 2018, 6:35:32 PM GMT+1, Romain Manni-Bucau <
> rmannibucau@gmail.com> wrote:
>
>  Hi Roberto
>
> Yes, an adapter is the way to go using our mapper or jsonb.
>
> There should be an "animal" test showing how to do that. Just dont forget
> to use class aliases or a whitelist logic to not open a backdoor.
>
> Since the model doesnt match the java model im not a fan of that feature
> being built out of the box. In xml it is more natural but in json you can
> do it without breaking the model. For me it means the model is broken and
> must not be used as an input.
>
> Le 18 avr. 2018 19:31, "Roberto Cortez" <ra...@yahoo.com.invalid> a
> écrit :
>
> > Hi guys,
> > I'm trying to serialize a list of elements of multiple types and then
> > deserialize it again. It does require to somehow include the type in the
> > serialization result to know to which type we should map to deserialize.
> I
> > think this could possible be done with an Adapter and playing with the
> > JsonArray.
> > I was just wondering if there any kind of out of the box support for
> this.
> > It doesn't seem so, at least I was not able to find.
> > Jackson for instance, includes a set of annotations that allow you to do
> > exactly this, without any extra / custom code.
> > Any thoughts?
> > Thank you.
> > Cheers,Roberto

Re: Arrays / Lists elements polymorphic support

Posted by Roberto Cortez <ra...@yahoo.com.INVALID>.
 Hi Romain,
Thanks for the quick response.
I'll have a look,
Cheers,Roberto
    On Wednesday, April 18, 2018, 6:35:32 PM GMT+1, Romain Manni-Bucau <rm...@gmail.com> wrote:  
 
 Hi Roberto

Yes, an adapter is the way to go using our mapper or jsonb.

There should be an "animal" test showing how to do that. Just dont forget
to use class aliases or a whitelist logic to not open a backdoor.

Since the model doesnt match the java model im not a fan of that feature
being built out of the box. In xml it is more natural but in json you can
do it without breaking the model. For me it means the model is broken and
must not be used as an input.

Le 18 avr. 2018 19:31, "Roberto Cortez" <ra...@yahoo.com.invalid> a
écrit :

> Hi guys,
> I'm trying to serialize a list of elements of multiple types and then
> deserialize it again. It does require to somehow include the type in the
> serialization result to know to which type we should map to deserialize. I
> think this could possible be done with an Adapter and playing with the
> JsonArray.
> I was just wondering if there any kind of out of the box support for this.
> It doesn't seem so, at least I was not able to find.
> Jackson for instance, includes a set of annotations that allow you to do
> exactly this, without any extra / custom code.
> Any thoughts?
> Thank you.
> Cheers,Roberto  

Re: Arrays / Lists elements polymorphic support

Posted by Romain Manni-Bucau <rm...@gmail.com>.
Hi Roberto

Yes, an adapter is the way to go using our mapper or jsonb.

There should be an "animal" test showing how to do that. Just dont forget
to use class aliases or a whitelist logic to not open a backdoor.

Since the model doesnt match the java model im not a fan of that feature
being built out of the box. In xml it is more natural but in json you can
do it without breaking the model. For me it means the model is broken and
must not be used as an input.

Le 18 avr. 2018 19:31, "Roberto Cortez" <ra...@yahoo.com.invalid> a
écrit :

> Hi guys,
> I'm trying to serialize a list of elements of multiple types and then
> deserialize it again. It does require to somehow include the type in the
> serialization result to know to which type we should map to deserialize. I
> think this could possible be done with an Adapter and playing with the
> JsonArray.
> I was just wondering if there any kind of out of the box support for this.
> It doesn't seem so, at least I was not able to find.
> Jackson for instance, includes a set of annotations that allow you to do
> exactly this, without any extra / custom code.
> Any thoughts?
> Thank you.
> Cheers,Roberto