set the generic=Object

Romain Manni-Bucau
@rmannibucau <https://twitter.com/rmannibucau> |  Blog
<https://blog-rmannibucau.rhcloud.com> | Old Blog
<http://rmannibucau.wordpress.com> | Github <https://github.com/rmannibucau> |
LinkedIn <https://www.linkedin.com/in/rmannibucau> | JavaEE Factory
<https://javaeefactory-rmannibucau.rhcloud.com>

2017-03-30 18:55 GMT+02:00 COURTAULT Francois <
francois.courta...@gemalto.com>:

> Hello Romain,
>
> I tried your solution but I have one issue.
> The signature readFrom  is public T readFrom(Class<T> aClass, Type type,
> Annotation[] annotations, MediaType mediaType, MultivaluedMap<String,
> String> multivaluedMap, InputStream inputStream) throws IOException,
> WebApplicationException
>
> But JacksonJsonProvider has  the following signature public Object
> readFrom(Class<Object> type, Type genericType, Annotation[] annotations,
> MediaType mediaType, MultivaluedMap<String, String> httpHeaders,
> InputStream entityStream) throws IOException
>
> So it doesn't compile with this code:
>     @Override
>     public T readFrom(Class<T> aClass, Type type, Annotation[]
> annotations, MediaType mediaType, MultivaluedMap<String, String>
> multivaluedMap, InputStream inputStream) throws IOException,
> WebApplicationException {
>     return delegate.readFrom(aClass, type, annotations, mediaType,
> multivaluedMap, inputStream);
>     }
>
> Do you have a solution ?
>
> Best Regards.
>
> -----Original Message-----
> From: Romain Manni-Bucau [mailto:rmannibu...@gmail.com]
> Sent: jeudi 30 mars 2017 18:44
> To: users@tomee.apache.org
> Subject: [+SPAM+]: Re: [+SPAM+]: Re: Re: No issue with 7.0.2 but issue
> with 7.0.3 using @JsonProperty coming from jackson
>
> 2017-03-30 18:41 GMT+02:00 COURTAULT Francois <
> francois.courta...@gemalto.com>:
>
> > Hello,
> >
> > The thing is that we have only @Provider defined for ExceptionMapper...
> >
> > So, if I have understood you well, in order to use Jackson as the
> > JAX-RS provider instead of Johnzon in TomEE 7.x,  I have to define a
> > new provider class which delegates, in the methods we have to
> > implement for the MessageBodyReader, MessageBodyWriter interfaces, to
> > the JacksonJsonProvider, right ?
> >
> >
> Yep, should be 5 methods only
>
>
> > I will try to send you a test case in order to see what happens and
> > why we have a different behavior between TomEE 7.0.2 and 7.0.3.
> >
>
> Think it is cause we migrated johnzon default to cxf bus instead of adding
> it manually to apps and filter it out if johnzon is there. But to be honest
> issue cause is still a bug in jackson (or a not backward compatible change
> in jaxrs 2).
>
>
>
>
> >
> > Best Regards.
> >
> > -----Original Message-----
> > From: Romain Manni-Bucau [mailto:rmannibu...@gmail.com]
> > Sent: jeudi 30 mars 2017 15:14
> > To: users@tomee.apache.org
> > Subject: [+SPAM+]: Re: Re: No issue with 7.0.2 but issue with 7.0.3
> > using @JsonProperty coming from jackson
> >
> > 2017-03-30 15:08 GMT+02:00 COURTAULT Francois <
> > francois.courta...@gemalto.com>:
> >
> > > Hello Romain,
> > >
> > > All our JAX-RS endpoints are annotated by with @Consumes({
> > > MediaType.APPLICATION_JSON }) and /or  @Produces({
> > > MediaType.APPLICATION_JSON }).
> > > And no specific configuration has been done in order to set Jackson
> > > as the JAX-RS provider for our application.
> > >
> >
> > Was @Consumers/@Produces on the @Provider (jackson), not your endpoint.
> >
> >
> > >
> > > So, does it mean that we have to explicitly define the JAX-RS
> > > provider in TomEE ?
> > >
> >
> > No, scanning still works as requested by users so you can do something
> > like (pseudo code, didnt check it compiles):
> >
> > @Provider
> > @Consumes(MediaType.APPLICATION_JSON)
> > @Produces(MediaType.APPLICATION_JSON)
> > public class JsonProv<T> implements MessageBodyReader<T>,
> > MessageBodyWriter<T> {  private final JacksonJsonProvider delegate =
> > new JacksonJsonProvider();
> >
> >  // delegate all methods
> > }
> >
> > And that's it
> >
> >
> > > If yes, the right way to do that is to have an openejb-jar.xml in
> > > the war with the following content ?
> > > <openejb-jar xmlns="http://www.openejb.org/openejb-jar/1.1";
> > > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
> > > xsi:schemaLocation="http://www.openejb.org/openejb-jar/1.1";>
> > >     <pojo-deployment  class-name="jaxrs-application">
> > >         <properties>
> > >             cxf.jaxrs.providers = com.fasterxml.jackson.jaxrs.
> > > json.JacksonJsonProvider
> > >         </properties>
> > >     </pojo-deployment>
> > > </openejb-jar>
> > >
> > >
> > > Best Regards.
> > >
> > > -----Original Message-----
> > > From: Romain Manni-Bucau [mailto:rmannibu...@gmail.com]
> > > Sent: jeudi 30 mars 2017 12:47
> > > To: users@tomee.apache.org
> > > Subject: [+SPAM+]: Re: [+SPAM+]: Re: No issue with 7.0.2 but issue
> > > with
> > > 7.0.3 using @JsonProperty coming from jackson
> > >
> > > 2017-03-30 12:15 GMT+02:00 COURTAULT Francois <
> > > francois.courta...@gemalto.com>:
> > >
> > > > Hello Romain,
> > > >
> > > > Not sure to understand. TomEE 7.0.2 is JAX-RS 2.0 as well as TomEE
> > > > 7.0.3, right ?
> > > >
> > >
> > > Yes
> > >
> > >
> > > > What do you mean by "ensure jackson was set with application/json
> > > > mediatype" ?
> > > >
> > >
> > > By default TomEE uses Johnzon since first 7.0.0 release. It sets it
> > > as the least prioritized application/json provider to let the users
> > > use something else and the usage be quite smooth and automatic.
> > >
> > > Jackson doesn't respect this JAXRS constraint (yes JAXRS 1 -> JAXRS
> > > 2 resolution got clarified...and broke even if it shouldnt have been).
> > > In 2 words jackson uses */* which means the last one to use if none
> > > are matching. Since johnzon uses application/json (and
> > > application/*+json IIRC) then it is used cause matching the request
> > where jackson doesnt.
> > >
> > > If you wrap jackson provider in a custom one changing this @Consumes
> > > and @Produces it will work automatically.
> > >
> > > Here is the bug
> > > https://github.com/FasterXML/jackson-jaxrs-json-provider/
> > > blob/master/src/main/java/com/fasterxml/jackson/jaxrs/json/
> > > JacksonJsonProvider.java#L55
> > > for memories
> > >
> > >
> > > >
> > > > We just use, as mentioned, Jackson annotations, we don't perform
> > > > any initialization at Jackson level in our code ?
> > > >
> > > > Best Regards.
> > > >
> > > > -----Original Message-----
> > > > From: Romain Manni-Bucau [mailto:rmannibu...@gmail.com]
> > > > Sent: jeudi 30 mars 2017 11:56
> > > > To: users@tomee.apache.org
> > > > Subject: [+SPAM+]: Re: No issue with 7.0.2 but issue with 7.0.3
> > > > using @JsonProperty coming from jackson
> > > >
> > > > Hi
> > > >
> > > > did you ensure jackson was set with application/json mediatype and
> > > > not its default */* which means "least prioritized" since JAXRS 2.0?
> > > >
> > > >
> > > > Romain Manni-Bucau
> > > > @rmannibucau <https://twitter.com/rmannibucau> |  Blog <
> > > > https://blog-rmannibucau.rhcloud.com> | Old Blog <
> > > > http://rmannibucau.wordpress.com> | Github
> > > > <https://github.com/rmannibucau>
> > > > | LinkedIn <https://www.linkedin.com/in/rmannibucau> | JavaEE
> > > > | Factory <
> > > > https://javaeefactory-rmannibucau.rhcloud.com>
> > > >
> > > > 2017-03-30 11:54 GMT+02:00 COURTAULT Francois <
> > > > francois.courta...@gemalto.com>:
> > > >
> > > > > Hello,
> > > > >
> > > > > We have a rest Api which uses POJO classes with Bean Validation
> > > > > annotations (like @Pattern, @NotNull) and Jackson annotations
> > > > > like @JsonProperty.
> > > > > Previously, using TomEE 7.0.2, we have no issue using the
> > > > > @JsonProperty Jackson annotation. Indeed, this kind of
> > > > > annotations was
> > > > taken into account.
> > > > >
> > > > > But when we migrate to 7.0.3, it seems that the @JsonProperty
> > > > > Jackson annotation is not anymore taking into account ☹ Is there
> > > > > any way to fix that ?
> > > > >
> > > > > Best Regards.
> > > > > ________________________________  This message and any
> > > > > attachments are intended solely for the addressees and may
> > > > > contain confidential information. Any unauthorized use or
> > > > > disclosure, either whole or partial, is
> > prohibited.
> > > > > E-mails are susceptible to alteration. Our company shall not be
> > > > > liable for the message if altered, changed or falsified. If you
> > > > > are not the intended recipient of this message, please delete it
> > > > > and notify the
> > > > sender.
> > > > > Although all reasonable efforts have been made to keep this
> > > > > transmission free from viruses, the sender will not be liable
> > > > > for damages caused by a transmitted virus.
> > > > >
> > > > ________________________________
> > > >  This message and any attachments are intended solely for the
> > > > addressees and may contain confidential information. Any
> > > > unauthorized use or disclosure, either whole or partial, is
> prohibited.
> > > > E-mails are susceptible to alteration. Our company shall not be
> > > > liable for the message if altered, changed or falsified. If you
> > > > are not the intended recipient of this message, please delete it
> > > > and notify the
> > > sender.
> > > > Although all reasonable efforts have been made to keep this
> > > > transmission free from viruses, the sender will not be liable for
> > > > damages caused by a transmitted virus.
> > > >
> > > ________________________________
> > >  This message and any attachments are intended solely for the
> > > addressees and may contain confidential information. Any
> > > unauthorized use or disclosure, either whole or partial, is prohibited.
> > > E-mails are susceptible to alteration. Our company shall not be
> > > liable for the message if altered, changed or falsified. If you are
> > > not the intended recipient of this message, please delete it and
> > > notify the
> > sender.
> > > Although all reasonable efforts have been made to keep this
> > > transmission free from viruses, the sender will not be liable for
> > > damages caused by a transmitted virus.
> > >
> > ________________________________
> >  This message and any attachments are intended solely for the
> > addressees and may contain confidential information. Any unauthorized
> > use or disclosure, either whole or partial, is prohibited.
> > E-mails are susceptible to alteration. Our company shall not be liable
> > for the message if altered, changed or falsified. If you are not the
> > intended recipient of this message, please delete it and notify the
> sender.
> > Although all reasonable efforts have been made to keep this
> > transmission free from viruses, the sender will not be liable for
> > damages caused by a transmitted virus.
> >
> ________________________________
>  This message and any attachments are intended solely for the addressees
> and may contain confidential information. Any unauthorized use or
> disclosure, either whole or partial, is prohibited.
> E-mails are susceptible to alteration. Our company shall not be liable for
> the message if altered, changed or falsified. If you are not the intended
> recipient of this message, please delete it and notify the sender.
> Although all reasonable efforts have been made to keep this transmission
> free from viruses, the sender will not be liable for damages caused by a
> transmitted virus.
>

Reply via email to