Wow, thanks for the quick turn around Romain. Le mar. 24 avr. 2018 à 12:41, Romain Manni-Bucau <[email protected]> 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" < > [email protected]> 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 <[email protected]> > > Inviato: Tuesday, April 24, 2018 12:17:12 PM > > A: [email protected] > > 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<mailto:[email protected]> > > Inviato: martedì 24 aprile 2018 12:06 > > A: [email protected]<mailto:[email protected]> > > Oggetto: Re: Arrays / Lists elements polymorphic support > > > > 2018-04-24 11:46 GMT+02:00 Alessandro Moscatelli < > > [email protected]>: > > > > > 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 <[email protected]> > > > Inviato: Tuesday, April 24, 2018 11:42:13 AM > > > A: [email protected] > > > 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 < > > > [email protected]>: > > > > > > > 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<mailto:[email protected]> > > > > Inviato: lunedì 23 aprile 2018 19:03 > > > > A: [email protected]<mailto:[email protected]> > > > > 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" <[email protected]> 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 < > > > [email protected]> > > > > 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" <[email protected] > > > > 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 > > > > > <[email protected] > > > > > > > > > > > > > > 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 > > > > > > < > > > > > > > > [email protected]> 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" > > > > <[email protected] > > > > > > > > > > > > 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 > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >
