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