+1

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 mer. 13 avr. 2022 à 08:44, Mark Struberg <strub...@yahoo.de.invalid> a
écrit :

> Will start a release soonish.
>
> LieGrue,
> strub
>
> > Am 12.04.2022 um 10:07 schrieb Mark Struberg <strub...@yahoo.de.INVALID
> >:
> >
> > took your PR and enhanced on top of it.
> >
> > Plz review!
> >
> > txs and LieGrue,
> > strub
> >
> >> Am 10.04.2022 um 20:08 schrieb Romain Manni-Bucau <
> rmannibu...@gmail.com>:
> >>
> >> Created https://github.com/apache/johnzon/pull/83 to try to share what
> I
> >> meant and try to solve it to enable the release (note I did it a bit in
> a
> >> hurry, the coming weeks are quite busy for me - so happy to get a second
> >> pair of eyes + optionally somebody running the jsonb tck)
> >>
> >> 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 dim. 10 avr. 2022 à 18:42, Romain Manni-Bucau <rmannibu...@gmail.com>
> a
> >> écrit :
> >>
> >>>
> >>>
> >>> Le dim. 10 avr. 2022 à 17:34, Mark Struberg <strub...@yahoo.de.invalid>
> a
> >>> écrit :
> >>>
> >>>> Oki will re-introduce that ct.
> >>>> Should then be backward compat, isn't?
> >>>>
> >>>
> >>> If the modifier check is there back yep
> >>>
> >>>
> >>>> LieGrue,
> >>>> strub
> >>>>
> >>>>
> >>>>> Am 10.04.2022 um 17:24 schrieb Romain Manni-Bucau <
> >>>> rmannibu...@gmail.com>:
> >>>>>
> >>>>> Le dim. 10 avr. 2022 à 17:16, Mark Struberg
> <strub...@yahoo.de.invalid>
> >>>> a
> >>>>> écrit :
> >>>>>
> >>>>>> Actually there is not much diff. There is one ct which was only
> used in
> >>>>>> JsonbAccessMode as true. Everywhere else it was feed as false.
> >>>>>> Now we could keep this flag and feed it as default if you really
> like.
> >>>>>> That should be rather easy to do if you think it's necessary. But
> >>>> still I'd
> >>>>>> mark that 4param ct as @Deprecated. Wdyt?
> >>>>>>
> >>>>>
> >>>>> Well it is used by users writing custom access mode quite often so we
> >>>> must
> >>>>> keep it and its associated behavior as a minimum for coming release.
> >>>>> No issue to make an abstract class with more children to keep it
> >>>> simpler in
> >>>>> the code but please dont break it.
> >>>>>
> >>>>>
> >>>>>> LieGrue,
> >>>>>> strub
> >>>>>>
> >>>>>>> Am 10.04.2022 um 16:24 schrieb Romain Manni-Bucau <
> >>>> rmannibu...@gmail.com
> >>>>>>> :
> >>>>>>>
> >>>>>>> Hi Mark,
> >>>>>>>
> >>>>>>> If I read the diff correctly we still have some breaking change in
> >>>>>>> FieldAndMethodAccessMode
> >>>>>>> constructor/behavior? Can we get it fixed?
> >>>>>>> In terms of design, jsonb access mode was originally thought as
> >>>>>> delegating
> >>>>>>> the research of the writers/readers to a 3rd party access mode and
> >>>> just
> >>>>>>> refilter on top of it with jsonb rules.
> >>>>>>> Now it is kind of mixed in the code (inheritance + composition vs
> just
> >>>>>>> composition), the reason it was not done was to avoid to expose the
> >>>>>> default
> >>>>>>> delegate access mode when a 4rd party access mode was using and mix
> >>>> them
> >>>>>> in
> >>>>>>> the jsonbaccess mode, not 100% sure if we want to keep the original
> >>>>>> design
> >>>>>>> there or not but mentionning it since it now prevent us to change
> it
> >>>>>> later.
> >>>>>>>
> >>>>>>> Overall except the missing constructor it looks ok to me, happy to
> get
> >>>>>>> thoughts on the access mode pattern too.
> >>>>>>>
> >>>>>>> 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 sam. 9 avr. 2022 à 23:49, Mark Struberg
> <strub...@yahoo.de.invalid>
> >>>> a
> >>>>>>> écrit :
> >>>>>>>
> >>>>>>>> here we go. plz take a look!
> >>>>>>>>
> >>>>>>>> https://github.com/struberg/johnzon/tree/JOHNZON-364 <
> >>>>>>>> https://github.com/struberg/johnzon/tree/JOHNZON-364>
> >>>>>>>>
> >>>>>>>> txs and LieGrue,
> >>>>>>>> strub
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>> Am 09.04.2022 um 23:14 schrieb Mark Struberg
> >>>> <strub...@yahoo.de.INVALID
> >>>>>>>>> :
> >>>>>>>>>
> >>>>>>>>> Looked at your proposed solution, but it might be tricky to get
> it
> >>>>>>>> working. The problem is that we have two modules: mapper and
> jsonb.
> >>>> And
> >>>>>> in
> >>>>>>>> JOHNZON-250 we added a logic to the mapper module which is ONLY
> >>>> defined
> >>>>>> and
> >>>>>>>> useful in Jsonb. This is the alwaysPreferMethodVisibility in
> >>>>>>>> org.apache.johnzon.mapper.access.FieldAndMethodAccessMode. This
> >>>> actually
> >>>>>>>> did break the mapper. Sorry that I did not catch this earlier.
> >>>>>>>>>
> >>>>>>>>> Note that the FieldAndMethodAccessMode is only used if no other
> >>>>>>>> AccessMode is configured. There is also a JsonbAccessMode which
> >>>>>> delegates
> >>>>>>>> through to the accessMode of the Mapper. Normally means the
> >>>>>>>> FieldAndMethodAccessMode, but could be different.
> >>>>>>>>> We could implement the logic in JsonbAccessMode, totally ditching
> >>>> the
> >>>>>>>> accessMode coming from the Mapper. Also thought about having the
> >>>>>>>> JsonbAccessMode extending the FieldAndMethodAccessMode and adding
> the
> >>>>>>>> handling as parameter over there. still not really perfect imo.
> >>>>>>>>>
> >>>>>>>>> Will try to ship a patch proposal tomorrow.
> >>>>>>>>>
> >>>>>>>>> LieGrue,
> >>>>>>>>> strub
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>> Am 28.03.2022 um 10:22 schrieb Romain Manni-Bucau <
> >>>>>>>> rmannibu...@gmail.com>:
> >>>>>>>>>>
> >>>>>>>>>> Le lun. 28 mars 2022 à 10:05, Mark Struberg
> >>>> <strub...@yahoo.de.invalid
> >>>>>>>> <mailto:strub...@yahoo.de.invalid>> a
> >>>>>>>>>> écrit :
> >>>>>>>>>>
> >>>>>>>>>>> +1 for getting rid of java.beans.
> >>>>>>>>>>>
> >>>>>>>>>>> I've created a spec ticket for the open questions:
> >>>>>>>>>>> https://github.com/eclipse-ee4j/jsonb-api/issues/325 <
> >>>>>>>>>>> https://github.com/eclipse-ee4j/jsonb-api/issues/325>
> >>>>>>>>>>>
> >>>>>>>>>>> My point is: until my fix we clearly did break 4.6. And class
> >>>>>>>> hierarchies
> >>>>>>>>>>> are totally not portable right now anyway. Introducing  It's
> just
> >>>>>> badly
> >>>>>>>>>>> underspecified.
> >>>>>>>>>>> So I do not see why the current implementation does make it
> worse.
> >>>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>> Well this one is easy to answer: it changes the behavior and
> breaks
> >>>>>>>> users
> >>>>>>>>>> so it is not an option for a patch version and to be honest the
> >>>>>> proposed
> >>>>>>>>>> fix solves it for both cases so think we should tackle it this
> >>>> way, at
> >>>>>>>>>> least for now until the spec clarifies it any other way.
> >>>>>>>>>> Once again, the source of the issue is more that we lack an
> >>>>>> integration
> >>>>>>>>>> between mapper and jsonb modules than anything else and this
> >>>>>> integration
> >>>>>>>>>> had kind of been done but broke mapper so think we should fix it
> >>>> back,
> >>>>>>>> just
> >>>>>>>>>> costs us a constructor we could have avoided without this issue
> >>>> AFAIK
> >>>>>> so
> >>>>>>>>>> not a big deal, no?
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>>>> LieGrue,
> >>>>>>>>>>> strub
> >>>>>>>>>>>
> >>>>>>>>>>>> Am 21.03.2022 um 09:52 schrieb Romain Manni-Bucau <
> >>>>>>>> rmannibu...@gmail.com
> >>>>>>>>>>>> :
> >>>>>>>>>>>>
> >>>>>>>>>>>> Hi,
> >>>>>>>>>>>>
> >>>>>>>>>>>> From what we discussed on this issue, the thing is that our
> jsonb
> >>>>>>>> access
> >>>>>>>>>>>> mode does not enable the visibility to see all readers/writers
> >>>> cause
> >>>>>>>>>>> there
> >>>>>>>>>>>> is some hardcoded filtering in the delegates so I think the
> >>>> trick is
> >>>>>>>> to
> >>>>>>>>>>>> simply add a toggle to the delegates access modes we use to
> not
> >>>> have
> >>>>>>>> this
> >>>>>>>>>>>> filtering and 100% rely on the visibility filtering in
> >>>> jsonbaccess
> >>>>>>>> mode
> >>>>>>>>>>> we
> >>>>>>>>>>>> already have in place.
> >>>>>>>>>>>>
> >>>>>>>>>>>> Before the release we must also ensure getters computation
> cache
> >>>> is
> >>>>>>>>>>> cleaned
> >>>>>>>>>>>> up after the ClassMapping is created - we don't want to keep
> >>>> that in
> >>>>>>>>>>> memory
> >>>>>>>>>>>> at runtime and not sure we can clean up at another time since
> we
> >>>>>> don't
> >>>>>>>>>>> want
> >>>>>>>>>>>> a background thread for that.
> >>>>>>>>>>>> I also think it is not worth to depends on java.beans
> >>>> (java.desktop
> >>>>>>>>>>> module)
> >>>>>>>>>>>> so we would reimpl decapitalize as we already did somewhere
> else
> >>>> (it
> >>>>>>>> is
> >>>>>>>>>>> one
> >>>>>>>>>>>> liner anyway ;)).
> >>>>>>>>>>>> Lastly, FieldAndMethodAccessMode constructor compatibility
> must
> >>>> be
> >>>>>>>>>>> restored
> >>>>>>>>>>>> (it is part of our API and used), default should stay 1-1 but
> as
> >>>>>>>>>>> mentionned
> >>>>>>>>>>>> I'd add a new toggle (with a constructor calling "this" to
> keep
> >>>> the
> >>>>>>>>>>>> backward compat) to ignore the filtering.
> >>>>>>>>>>>>
> >>>>>>>>>>>> Sounds like this way we solve all issues and can release.
> >>>>>>>>>>>>
> >>>>>>>>>>>> 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 lun. 21 mars 2022 à 09:00, Mark Struberg
> >>>>>> <strub...@yahoo.de.invalid
> >>>>>>>>>
> >>>>>>>>>>> a
> >>>>>>>>>>>> écrit :
> >>>>>>>>>>>>
> >>>>>>>>>>>>> To sum this up:
> >>>>>>>>>>>>>
> >>>>>>>>>>>>> The problem lies partly in the JSON-B spec. It doesn't define
> >>>> what
> >>>>>>>>>>> happens
> >>>>>>>>>>>>> if there are class hierarchies like class A extends B.
> >>>>>>>>>>>>>
> >>>>>>>>>>>>> In 3.7.1 it states that
> >>>>>>>>>>>>> For a serialization operation, if a matching public getter
> >>>> method
> >>>>>>>>>>> exists,
> >>>>>>>>>>>>> the method is called to obtain the value of the property. If
> a
> >>>>>>>> matching
> >>>>>>>>>>>>> getter method with private, protected, or defaulted to
> >>>> package-only
> >>>>>>>>>>> access
> >>>>>>>>>>>>> exists, then this field is ignored. If no matching getter
> method
> >>>>>>>> exists
> >>>>>>>>>>> and
> >>>>>>>>>>>>> the field is public, then the value is obtained directly from
> >>>> the
> >>>>>>>> field.
> >>>>>>>>>>>>>
> >>>>>>>>>>>>> This can get changed y using a @JsonbVisibility
> >>>>>>>>>>>>>
> >>>>>>>>>>>>> 4.6 Custom visibility
> >>>>>>>>>>>>> To customize scope and field access strategy as specified in
> >>>>>> section
> >>>>>>>>>>>>> 3.7.1, it is possible to specify
> >>>>>>>>>>> javax.json.bind.annotation.JsonbVisibility
> >>>>>>>>>>>>> annotation or to override default behavior globally calling
> >>>>>>>>>>>>> JsonbConfig::withPropertyVisibilityStrategy method with given
> >>>>>> custom
> >>>>>>>>>>>>> property visibility strategy.
> >>>>>>>>>>>>>
> >>>>>>>>>>>>>
> >>>>>>>>>>>>> The problem is that that the PropertyVisibilityStrategy is
> >>>> simply
> >>>>>> not
> >>>>>>>>>>>>> ready to implement the rules of 3.7.1 in a portable way when
> it
> >>>>>>>> comes to
> >>>>>>>>>>>>> class hierarchies
> >>>>>>>>>>>>>
> >>>>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>
> >>>>>>
> >>>>
> https://github.com/apache/geronimo-specs/blob/trunk/geronimo-jsonb_1.0_spec/src/main/java/javax/json/bind/config/PropertyVisibilityStrategy.java
> >>>>>>>>>>>>> <
> >>>>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>
> >>>>>>
> >>>>
> https://github.com/apache/geronimo-specs/blob/trunk/geronimo-jsonb_1.0_spec/src/main/java/javax/json/bind/config/PropertyVisibilityStrategy.java
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>
> >>>>>>>>>>>>> So either we say that the spec simply does not define what
> >>>> should
> >>>>>>>> happen
> >>>>>>>>>>>>> in case of hierarchic classes (totally valid imo) or we need
> to
> >>>>>> ditch
> >>>>>>>>>>> our
> >>>>>>>>>>>>> DefaultPropertyVisibility logic completely. It's simply not
> >>>>>> possible
> >>>>>>>> to
> >>>>>>>>>>>>> implement it that way.
> >>>>>>>>>>>>>
> >>>>>>>>>>>>> The reason why I removed the logic from the Reader is the
> >>>>>> following:
> >>>>>>>>>>> Even
> >>>>>>>>>>>>> if the reader says 'oh there is a getter, so let's hide the
> >>>>>> property'
> >>>>>>>>>>> you
> >>>>>>>>>>>>> STILL are perfectly allowed - as per the spec - to have
> >>>> Visibility
> >>>>>>>>>>>>> strategies which do disable ALL methods and ONLY use field
> >>>> access.
> >>>>>>>>>>>>> That means the current impl is surely more correct than
> before,
> >>>> but
> >>>>>>>> not
> >>>>>>>>>>>>> yet perfect.
> >>>>>>>>>>>>>
> >>>>>>>>>>>>> LieGrue,
> >>>>>>>>>>>>> strub
> >>>>>>>>>>>>>
> >>>>>>>>>>>>>
> >>>>>>>>>>>>>
> >>>>>>>>>>>>>> Am 28.02.2022 um 11:17 schrieb Romain Manni-Bucau <
> >>>>>>>>>>> rmannibu...@gmail.com
> >>>>>>>>>>>>>> :
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>> Hi JL,
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>> Last commit broke some stuff.
> >>>>>>>>>>>>>> Dicussed it quickly offline with Mark but Im AFK for a few
> >>>> days,
> >>>>>>>> can it
> >>>>>>>>>>>>>> wait some days? Otherwise maybe just pick this commit?
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>> Le lun. 28 févr. 2022 à 10:37, Jean-Louis Monteiro <
> >>>>>>>>>>>>> jlmonte...@tomitribe.com>
> >>>>>>>>>>>>>> a écrit :
> >>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> Hi all,
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> Is it ok to release a 1.2.17?
> >>>>>>>>>>>>>>> I'm looking for a Jakarta EE fix -
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>
> >>>>>>>>>>>
> >>>>>>>>
> >>>>>>
> >>>>
> https://github.com/apache/johnzon/commit/a1c53d99c3280cbfc35b369ac4ce138e12f1d5ff
> >>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>> Do you guys have some additional fixes to push?
> >>>>>>>>>>>>>>> --
> >>>>>>>>>>>>>>> Jean-Louis Monteiro
> >>>>>>>>>>>>>>> http://twitter.com/jlouismonteiro
> >>>>>>>>>>>>>>> http://www.tomitribe.com
> >>>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>
> >>>>>>
> >>>>
> >>>>
> >
>
>

Reply via email to