+1

Richard Zowalla <r...@apache.org> schrieb am Fr., 13. Sept. 2024, 16:15:

> 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