Hi everyone,
I have recently been working on modernizing and profiling some of the core components of Xerces-J. I have pushed these experimental changes to my personal fork and would love to get your feedback on contributing some or all of this work upstream.
Here is a brief summary of the changes I have made on my fork:

• Build & Test Modernization: Migrated the legacy Ant build to a standard Gradle multi-module structure. • JUnit 5 Migration: Converted the conformance test suites (JAXP, DOM, XInclude, Schema, etc.) to pure JUnit 5 Jupiter. • Java 8 Adoption: Replaced older iteration patterns and resource handling with Java 8 features (lambdas, try-with-resources) across various modules. • New JMH Benchmark Suite: Created a dedicated xerces-benchmarks submodule to systematically profile SAX, StAX, and DOM workloads. • Performance Enhancements: Derived from the benchmarks, I implemented several micro-optimizations (e.g., in XMLEntityScanner, SymbolTable resizing, and string buffer boundaries).

You can review the full history of these changes in the main branch of my fork here: https://github.com/lyca/xerces-j Since this is a rather substantial set of changes (around 80 commits), I wanted to reach out to the list before opening any massive Pull Requests. What would be the preferred process for you? I would be more than happy to slice this into smaller, isolated JIRA tickets and open sequential PRs (e.g., starting exclusively with the JUnit 5 modernization or the JMH scaffolding, and leaving the core performance adjustments for later).

(Note for transparency in accordance with the ASF generative tooling guidance: I used the help of my AI assistant, Gemini / Antigravity, to actively collaborate on this modernization effort. The AI helped me significantly with executing the structural refactorings, generating the boilerplate for the new benchmark suite, and writing the commits. I have, of course, thoroughly reviewed and take full responsibility for all changes).

Please let me know how you prefer to handle such structural contributions and where you think I should start!
Best regards,
Lars Michele

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to