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