tomee-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Paul Carter-Brown <paul.carter-br...@smilecoms.com>
Subject Re: Registering Mapper in Johnzon
Date Sat, 14 Oct 2017 14:51:35 GMT
Ok. I'll work on that in the week

On 14 October 2017 at 16:47, Romain Manni-Bucau <rmannibucau@gmail.com>
wrote:

> we should move all jsonb adapter in mapper module
>
> Romain Manni-Bucau
> @rmannibucau |  Blog | Old Blog | Github | LinkedIn
>
>
> 2017-10-14 16:46 GMT+02:00 Paul Carter-Brown
> <paul.carter-brown@opposablethumbs.io>:
> > Great. I will do a pull request for that. I think it will require its own
> > converter or should I do this change on the jsonb adapter and refer to
> that?
> >
> > On Sat, Oct 14, 2017 at 4:34 PM, Romain Manni-Bucau <
> rmannibucau@gmail.com>
> > wrote:
> >
> >> if the performances are the same we can, I guess doing a contains('-')
> >> is enough to switch between two formatters. Issue on j7 was there was
> >> no built-in way to have this pattern (the SimpleDateFormat hack you
> >> sometimes see *doesn't* work). Now we are on j8 I guess you are right
> >> and can support both OOTB.
> >>
> >> Romain Manni-Bucau
> >> @rmannibucau |  Blog | Old Blog | Github | LinkedIn
> >>
> >>
> >> 2017-10-14 16:09 GMT+02:00 Paul Carter-Brown
> >> <paul.carter-brown@opposablethumbs.io>:
> >> > Hi Romain,
> >> >
> >> > Any way we can allow it to happily parse boih long and short ISO 8601
> >> > strings. Technically its possible but would you have an objection? The
> >> > issue is that less and less people are using the short format in JSON
> due
> >> > to the default way javascript maps date to string.
> >> >
> >> > On Sat, Oct 14, 2017 at 3:32 PM, Romain Manni-Bucau <
> >> rmannibucau@gmail.com>
> >> > wrote:
> >> >
> >> >> Hi Paul,
> >> >>
> >> >> answered, story short we should just import the ones from jsonb
> >> >> modules (all are there I think) now master is java 8 - was the only
> >> >> reason why it was not in mapper, because mapper was java 7.
> >> >>
> >> >> A small side note: we can probably not break the java.util.Date
> >> >> formatter which uses short iso8061 pattern instead of the long one.
> >> >>
> >> >> Romain Manni-Bucau
> >> >> @rmannibucau |  Blog | Old Blog | Github | LinkedIn
> >> >>
> >> >>
> >> >> 2017-10-14 15:10 GMT+02:00 Paul Carter-Brown
> >> <paul.carter-brown@smilecoms.
> >> >> com>:
> >> >> > Hi Romain,
> >> >> >
> >> >> > With JDK 1.8 becoming mainstream there will be a lot more use
of
> >> >> > java.time.Instant as the standard way of handling dates as opposed
> to
> >> >> > java.util.date. In addition, rest services are standardising more
> and
> >> >> more
> >> >> > on the ISO 8061 date format (e.g. 2007-12-03T17:15:30+03:00).
I
> thus
> >> >> > believe that Johnzon should support this out of the box  In this
> >> regard
> >> >> > I've created a pull request for this functionality so it can be
> >> included
> >> >> in
> >> >> > future TomEE releases https://github.com/apache/johnzon/pull/13
> >> >> >
> >> >> > I've use my fork on TomEE 7.0.4 and it now natively works with
> POJO's
> >> >> using
> >> >> > Instant data type
> >> >> >
> >> >> > Paul
> >> >> >
> >> >> > On 14 October 2017 at 11:07, Romain Manni-Bucau <
> >> rmannibucau@gmail.com>
> >> >> > wrote:
> >> >> >
> >> >> >> that was the question ;)
> >> >> >>
> >> >> >> you can extend JohnzonProvider and pass it the mapper instance
you
> >> >> >> want - pre configured.
> >> >> >>
> >> >> >> Romain Manni-Bucau
> >> >> >> @rmannibucau |  Blog | Old Blog | Github | LinkedIn
> >> >> >>
> >> >> >>
> >> >> >> 2017-10-14 10:39 GMT+02:00 Paul Carter-Brown
> >> >> <paul.carter-brown@smilecoms.
> >> >> >> com>:
> >> >> >> > Yea bit of a false positive I'm afraid. I ended up getting
it
> to be
> >> >> used
> >> >> >> in
> >> >> >> > a manual mapping operation and saw it was being called
but
> >> >> unfortunately
> >> >> >> > its not being used when called via jax-rs
> >> >> >> >
> >> >> >> > Will battle on a bit more before reverting to annotations
> >> >> >> >
> >> >> >> > On 14 October 2017 at 10:27, Romain Manni-Bucau <
> >> >> rmannibucau@gmail.com>
> >> >> >> > wrote:
> >> >> >> >
> >> >> >> >> Hmm, earlier in the boot process shouldn't change
anything if
> you
> >> >> >> >> manage yourself the builder, can you add why it impacted
the
> >> behavior
> >> >> >> >> please (for completeness of this thread)?
> >> >> >> >>
> >> >> >> >> side note: you can add annotations on generated jaxb
models ->
> >> >> >> >> https://github.com/highsource/jaxb2-annotate-plugin
.
> >> >> >> >>
> >> >> >> >> Romain Manni-Bucau
> >> >> >> >> @rmannibucau |  Blog | Old Blog | Github | LinkedIn
> >> >> >> >>
> >> >> >> >>
> >> >> >> >> 2017-10-14 10:08 GMT+02:00 Paul Carter-Brown
> >> >> >> <paul.carter-brown@smilecoms.
> >> >> >> >> com>:
> >> >> >> >> > Hi Romain,
> >> >> >> >> >
> >> >> >> >> > I managed to get it to work by calling new
> >> >> >> MapperBuilder().addAdapter(new
> >> >> >> >> > JavascriptDate()).build(); far earlier in the
bootup process.
> >> >> >> >> >
> >> >> >> >> > On 14 October 2017 at 09:40, Paul Carter-Brown
<
> >> >> >> >> > paul.carter-brown@smilecoms.com> wrote:
> >> >> >> >> >
> >> >> >> >> >> Hi Romain,
> >> >> >> >> >>
> >> >> >> >> >> The model is generated using jaxb from an
XSD. Jaxb has been
> >> set
> >> >> up
> >> >> >> to
> >> >> >> >> map
> >> >> >> >> >> xs:dateTime to java.time.Instant
> >> >> >> >> >>
> >> >> >> >> >> getters/setters look like this:
> >> >> >> >> >>     public Instant getDate() {
> >> >> >> >> >>         return date;
> >> >> >> >> >>     }
> >> >> >> >> >>
> >> >> >> >> >>     public void setDate(Instant value) {
> >> >> >> >> >>         this.date = value;
> >> >> >> >> >>     }
> >> >> >> >> >>
> >> >> >> >> >> As the model is generated I don't have the
option of adding
> >> >> >> annotations
> >> >> >> >> on
> >> >> >> >> >> it and need to configure Johnzon to globally
deal with
> Instant
> >> >> data
> >> >> >> type
> >> >> >> >> >>
> >> >> >> >> >> Paul
> >> >> >> >> >>
> >> >> >> >> >> On 14 October 2017 at 09:36, Romain Manni-Bucau
<
> >> >> >> rmannibucau@gmail.com>
> >> >> >> >> >> wrote:
> >> >> >> >> >>
> >> >> >> >> >>> Hi
> >> >> >> >> >>>
> >> >> >> >> >>> What is your model?
> >> >> >> >> >>>
> >> >> >> >> >>> Did you try @JohnzonConverter too?
> >> >> >> >> >>>
> >> >> >> >> >>> Tomee uses an old johnzon too so can
need some enhancements
> >> from
> >> >> >> >> master.
> >> >> >> >> >>>
> >> >> >> >> >>> Le 14 oct. 2017 03:10, "Paul Carter-Brown"
> >> >> >> >> <paul.carter-brown@smilecoms.c
> >> >> >> >> >>> om>
> >> >> >> >> >>> a écrit :
> >> >> >> >> >>>
> >> >> >> >> >>> > Hi,
> >> >> >> >> >>> >
> >> >> >> >> >>> > I've created an adapter as follows:
> >> >> >> >> >>> >
> >> >> >> >> >>> > public class JavascriptDate implements
Adapter<String,
> >> >> Instant> {
> >> >> >> >> >>> >
> >> >> >> >> >>> >     @Override
> >> >> >> >> >>> >     public String to(Instant instance)
{
> >> >> >> >> >>> >         final Calendar cal =
> GregorianCalendar.getInstance(
> >> );
> >> >> >> >> >>> >         cal.setTime(Date.from(instance));
> >> >> >> >> >>> >         return DatatypeConverter.printDateTime(cal);
> >> >> >> >> >>> >     }
> >> >> >> >> >>> >
> >> >> >> >> >>> >     @Override
> >> >> >> >> >>> >     public Instant from(String
text) {
> >> >> >> >> >>> >         return DatatypeConverter.
> >> >> parseDateTime(text).getTime().
> >> >> >> >> >>> > toInstant();
> >> >> >> >> >>> >     }
> >> >> >> >> >>> > }
> >> >> >> >> >>> >
> >> >> >> >> >>> > and register it globally like this
in a servlet init:
> >> >> >> >> >>> >
> >> >> >> >> >>> > new MapperBuilder().addAdapter(new
> >> JavascriptDate()).build();
> >> >> >> >> >>> >
> >> >> >> >> >>> > When I call a rest service passing
a date formatted
> string
> >> >> field
> >> >> >> that
> >> >> >> >> >>> needs
> >> >> >> >> >>> > to map to an Instant I get an error:
> >> >> >> >> >>> >
> >> >> >> >> >>> > org.apache.johnzon.mapper.MapperException:
Using
> fallback
> >> >> >> converter,
> >> >> >> >> >>> this
> >> >> >> >> >>> > only works in write mode but not
in read. Please
> register a
> >> >> custom
> >> >> >> >> >>> > converter to do so.
> >> >> >> >> >>> > at
> >> >> >> >> >>> > org.apache.johnzon.mapper.MappingParserImpl$
> >> FallbackConverte
> >> >> >> >> >>> r.fromString(
> >> >> >> >> >>> > MappingParserImpl.java:715)
> >> >> >> >> >>> > at org.apache.johnzon.mapper.
> internal.ConverterAdapter.to
> >> >> >> >> >>> > (ConverterAdapter.java:37)
> >> >> >> >> >>> > at org.apache.johnzon.mapper.
> internal.ConverterAdapter.to
> >> >> >> >> >>> > (ConverterAdapter.java:24)
> >> >> >> >> >>> > at
> >> >> >> >> >>> > org.apache.johnzon.mapper.MappingParserImpl.convertTo(
> >> >> >> >> >>> > MappingParserImpl.java:682)
> >> >> >> >> >>> > at
> >> >> >> >> >>> > org.apache.johnzon.mapper.MappingParserImpl.toObject(
> >> >> >> >> >>> > MappingParserImpl.java:523)
> >> >> >> >> >>> > at
> >> >> >> >> >>> > org.apache.johnzon.mapper.MappingParserImpl.toValue(
> >> >> >> >> >>> > MappingParserImpl.java:634)
> >> >> >> >> >>> > at
> >> >> >> >> >>> > org.apache.johnzon.mapper.MappingParserImpl.buildObject(
> >> >> >> >> >>> > MappingParserImpl.java:318)
> >> >> >> >> >>> > at
> >> >> >> >> >>> > org.apache.johnzon.mapper.MappingParserImpl.readObject(
> >> >> >> >> >>> > MappingParserImpl.java:133)
> >> >> >> >> >>> >
> >> >> >> >> >>> >
> >> >> >> >> >>> > Any ideas why my mapper is not
being used?
> >> >> >> >> >>> >
> >> >> >> >> >>> > Thanks
> >> >> >> >> >>> > Paul
> >> >> >> >> >>> >
> >> >> >> >> >>> > --
> >> >> >> >> >>> >
> >> >> >> >> >>> >
> >> >> >> >> >>> > This email is subject to the disclaimer
of Smile
> >> >> Communications at
> >> >> >> >> >>> > http://www.smilecoms.com/home/email-disclaimer/
<
> >> >> >> >> >>> http://www.smilecoms.com/
> >> >> >> >> >>> > disclaimer>
> >> >> >> >> >>> >
> >> >> >> >> >>> >
> >> >> >> >> >>>
> >> >> >> >> >>
> >> >> >> >> >>
> >> >> >> >> >>
> >> >> >> >> >>
> >> >> >> >> >>
> >> >> >> >> >
> >> >> >> >> >
> >> >> >> >> > --
> >> >> >> >> >
> >> >> >> >> > *Paul Carter-Brown*
> >> >> >> >> >
> >> >> >> >> > *Group Chief Information Officer*
> >> >> >> >> >
> >> >> >> >> > *Smile Communications Pty (Ltd)       *
> >> >> >> >> > Smile +234 (0) 702 000 1234
> >> >> >> >> > Mobile +27 (0) 83 4427 179
> >> >> >> >> > Skype PaulC-B
> >> >> >> >> > paul.carter-brown@smilecoms.com
> >> >> >> >> > www.smilecoms.com
> >> >> >> >> >
> >> >> >> >> > --
> >> >> >> >> >
> >> >> >> >> >
> >> >> >> >> > This email is subject to the disclaimer of Smile
> Communications
> >> at
> >> >> >> >> http://www.smilecoms.com/home/email-disclaimer/ <
> >> >> >> http://www.smilecoms.com/
> >> >> >> >> disclaimer>
> >> >> >> >> >
> >> >> >> >>
> >> >> >> >
> >> >> >> >
> >> >> >> >
> >> >> >> > --
> >> >> >> >
> >> >> >> > *Paul Carter-Brown*
> >> >> >> >
> >> >> >> > *Group Chief Information Officer*
> >> >> >> >
> >> >> >> > *Smile Communications Pty (Ltd)       *
> >> >> >> > Smile +234 (0) 702 000 1234
> >> >> >> > Mobile +27 (0) 83 4427 179
> >> >> >> > Skype PaulC-B
> >> >> >> > paul.carter-brown@smilecoms.com
> >> >> >> > www.smilecoms.com
> >> >> >> >
> >> >> >> > --
> >> >> >> >
> >> >> >> >
> >> >> >> > This email is subject to the disclaimer of Smile Communications
> at
> >> >> >> http://www.smilecoms.com/home/email-disclaimer/ <
> >> >> http://www.smilecoms.com/
> >> >> >> disclaimer>
> >> >> >> >
> >> >> >>
> >> >> >
> >> >> >
> >> >> >
> >> >> > --
> >> >> >
> >> >> > *Paul Carter-Brown*
> >> >> >
> >> >> > *Group Chief Information Officer*
> >> >> >
> >> >> > *Smile Communications Pty (Ltd)       *
> >> >> > Smile +234 (0) 702 000 1234
> >> >> > Mobile +27 (0) 83 4427 179
> >> >> > Skype PaulC-B
> >> >> > paul.carter-brown@smilecoms.com
> >> >> > www.smilecoms.com
> >> >> >
> >> >> > --
> >> >> >
> >> >> >
> >> >> > This email is subject to the disclaimer of Smile Communications
at
> >> >> http://www.smilecoms.com/home/email-disclaimer/ <
> >> http://www.smilecoms.com/
> >> >> disclaimer>
> >> >> >
> >> >>
> >>
>



-- 

*Paul Carter-Brown*

*Group Chief Information Officer*

*Smile Communications Pty (Ltd)       *
Smile +234 (0) 702 000 1234
Mobile +27 (0) 83 4427 179
Skype PaulC-B
paul.carter-brown@smilecoms.com
www.smilecoms.com

-- 


This email is subject to the disclaimer of Smile Communications at http://www.smilecoms.com/home/email-disclaimer/
<http://www.smilecoms.com/disclaimer>


Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message