+1 for all your proposed steps

Am 13. September 2024 09:15:04 MESZ schrieb Richard Zowalla <r...@apache.org>:
>Hi all,
>
>to move forward targeting an M3 to get feedback, I would propose, that we do 
>the following:
>
>(1) We include https://github.com/apache/tomee/pull/1469 with the re-generated 
>accessors from the Jakarta-moved SXC (source: https://github.com/rzo1/sxc) 
>version. Given that metatype.org is gone (not registered anymore), we cannot 
>use that domain for publishing to Maven Central.
>
>(2) Include the completed and passing concurrency impl with enabled SXC and 
>updated accessors needed for it in https://github.com/apache/tomee/pull/1458
>
>(3) If everything works out well, we could (imho) experiment with generating 
>the accessors during the build, but not a requirement imho.
>
>(4) If we have (1) and (2), we should do a M3 to get feedback on the SXC 
>changes as well as on the concurrency side of things. Since CXF 4.1.0 is still 
>not released, we need to do the fork-release appraoch for M3 again.
>
>WDYT?
>
>Gruß
>Richard
>
>On 2024/09/09 11:49:59 Markus Jung wrote:
>> The JAXB RI seems to have removed the code that generates and loads accessor 
>> bytecode as the Injector [1] looks like it is unused. So initializing JAXB 
>> has probably gotten a lot faster compared to when SXC was introduced in 
>> tomee.
>> 
>> However, JAXB Context initialization still takes significantly longer than 
>> just invoking SXC code. As Richard said, I did a very basic benchmark 
>> deserializing a-faces-config-22.xml from FacesConfig22Test just to get a 
>> feeling of how big the gap is:
>> 
>> sxc1: 30ms
>> sxc2: 2ms
>> jaxb1: 278ms
>> jaxb2: 4ms
>> 
>> Once the JAXB Context is initialized and “warmed up” the gap is really 
>> insignificant. But what we do care about is initial startup performance. 
>> JAXB needs to do a ton of reflection to build an internal meta model while 
>> SXC moves a lot of this work to build time by generating source code. Note 
>> that I only compared the pure time it takes to unmarshal a String in memory, 
>> total time with JVM startup etc is probably a bit slower as there are right 
>> now 271 more classes to load that SXC generated. But likely still a lot 
>> faster than just using JAXB RI.
>> 
>> 
>> [1] 
>> https://github.com/eclipse-ee4j/jaxb-ri/blob/4.0.5-RI/jaxb-ri/runtime/impl/src/main/java/org/glassfish/jaxb/runtime/v2/runtime/reflect/opt/Injector.java
>> 
>> > On 9. Sep 2024, at 10:21, Richard Zowalla <r...@apache.org> wrote:
>> > 
>> > I think, that Markus did some tests. Maybe he can share? :)
>> > 
>> >> Am 09.09.2024 um 09:48 schrieb Jean-Louis Monteiro 
>> >> <jlmonte...@tomitribe.com>:
>> >> 
>> >> Is the performance reason still accurate nowadays?
>> >> Someone tested with recent JVMs?
>> >> --
>> >> Jean-Louis Monteiro
>> >> http://twitter.com/jlouismonteiro
>> >> http://www.tomitribe.com
>> >> 
>> >> 
>> >> On Mon, Sep 9, 2024 at 9:30 AM Richard Zowalla <r...@apache.org> wrote:
>> >> 
>> >>> Any other thoughts?
>> >>> 
>> >>>> Am 05.09.2024 um 11:08 schrieb Richard Zowalla <r...@apache.org>:
>> >>>> 
>> >>>> Yes. It is done for startup performance reasons only. At runtime, there
>> >>> is not a big difference.
>> >>>> Regarding your points.
>> >>>> 
>> >>>> (1) I think, that metatype.org <http://metatype.org/> has expired / is
>> >>> parked at a domain service, so it might not be possible to release SXC
>> >>> under that umbrella (again). We cannot put that under the ASF umbrella
>> >>> because of licensing constraints.
>> >>>> (2) The build looks good (as far as I can remember) and if we have
>> >>> regressions in that area, we will find out with our early adopters in an 
>> >>> M3
>> >>> milestone.
>> >>>> (3) I am fine with that but would see that in a next stage ;-)
>> >>>> 
>> >>>> Thanks for the work, Markus. It is really appreciated!
>> >>>> 
>> >>>> Gruß
>> >>>> Richard
>> >>>> 
>> >>>>> Am 03.09.2024 um 16:16 schrieb Markus Jung <ju...@apache.org>:
>> >>>>> 
>> >>>>> AFAIK sticking to SXC is a decision purely made for startup performance
>> >>> reasons, see David's reply in
>> >>> https://lists.apache.org/thread/09powc11z4rnzvyzmt4xy5bcbrqwkfkh
>> >>>>> 
>> >>>>> On 03.09.24 13:43, Thomas Andraschko wrote:
>> >>>>>> i thought it in the past that i would be better to get rid of SXC
>> >>>>>> completely but maybe thats a to big task:
>> >>>>>> https://lists.apache.org/thread/0p4m1rw8vmv17l29s1lgclsd9bfrr7s4
>> >>>>>> 
>> >>>>>> Am Di., 3. Sept. 2024 um 13:15 Uhr schrieb Markus Jung <
>> >>> ju...@apache.org>:
>> >>>>>> 
>> >>>>>>> Hey all,
>> >>>>>>> 
>> >>>>>>> 
>> >>>>>>> I had to modify the JAXB models in openejb-jee for the concurrency 
>> >>>>>>> 3.0
>> >>>>>>> implementation [1] but noticed the changes were not taken into 
>> >>>>>>> affect.
>> >>>>>>> This is where I found out what openejb-jee-accessors was for.
>> >>>>>>> 
>> >>>>>>> Long story short, I was not able to get the old SXC maven plugin
>> >>> running
>> >>>>>>> and Richard and I decided to fork SXC and update it to Jakarta XML
>> >>>>>>> Binding 4.0. The fork can be found here [2] and Richard has done a
>> >>>>>>> release on maven central under the groupId
>> >>>>>>> io.github.rzo1.org.metatype.sxc. I integrated this new SXC release in
>> >>> a
>> >>>>>>> PR [3] and would highly appreciate if we can get some eyes from long
>> >>>>>>> time contributors on this.
>> >>>>>>> 
>> >>>>>>> I think there are 3 topics that require attention:
>> >>>>>>> 1. Do we want to switch to Richards fork? Maybe we could merge with
>> >>> the
>> >>>>>>> original code from David and release that again, though it seems the
>> >>>>>>> metatype.org domain is expired and owned by a parking service. We
>> >>> likely
>> >>>>>>> can't fork it in tomee as the code is not fully under the Apache 2.0
>> >>>>>>> License.
>> >>>>>>> 2. Some tests were failing after I fully regenerated the SXC accessor
>> >>>>>>> classes because the generated code has been modified in some places 
>> >>>>>>> to
>> >>>>>>> allow unknown XML nodes. I recreated this behavior by adding
>> >>>>>>> @XmlAnyAttribute annotated fields where needed. We should be double
>> >>>>>>> checking that I did not miss anything.
>> >>>>>>> 3. (optional) The accessors are 100% matching the JAXB model now. IMO
>> >>> we
>> >>>>>>> should highly consider to delete these from the repository and treat
>> >>>>>>> them as generated sources. This would remove tens of thousands of
>> >>> lines
>> >>>>>>> of code and force future developers to make adjustments in the JAXB
>> >>>>>>> Model instead of hiding them in generated code. WDYT?
>> >>>>>>> 
>> >>>>>>> 
>> >>>>>>> Any feedback would be highly appreciated as this is a pretty
>> >>> significant
>> >>>>>>> change. The diff for the PR that regenerates all accessors [3] is 
>> >>>>>>> 30k+
>> >>>>>>> lines long.
>> >>>>>>> 
>> >>>>>>> 
>> >>>>>>> Thanks
>> >>>>>>> 
>> >>>>>>> Markus
>> >>>>>>> 
>> >>>>>>> 
>> >>>>>>> [1] https://github.com/apache/tomee/pull/1458
>> >>>>>>> [2] https://github.com/rzo1/sxc
>> >>>>>>> [3] https://github.com/apache/tomee/pull/1469
>> >>>>>>> 
>> >>>>>>> 
>> >>>>>>> 
>> >>>> 
>> >>> 
>> >>> 
>> > 
>> 
>> 

Reply via email to