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