Apache Software Foundation / Maven Core
Merged upstreamMaintenanceMerged Aug 28, 2026

Remove the deprecated internal XML builder

Removed Maven's deprecated `XmlNodeBuilder`, delegated Embedder conversions to the supported Plexus XML builder, and eliminated Plexus XML from the `maven-xml` compile dependency tree.

apache/maven · #12877

Core maintenance improvement

Maven now relies on the supported Plexus XML pull parser instead of carrying a deprecated 301-line internal duplicate and compile dependency.

Problem

Maven maintained a deprecated internal XML pull-parser implementation after Plexus XML 4.2.0 supplied the equivalent behavior. The duplicate code and compile dependency increased maintenance surface while reader templates still referenced obsolete paths.

Approach

Delegated `XmlNode` and `Xpp3Dom` conversion to `Xpp3DomBuilder`, deleted the internal builder, moved the Plexus XML dependency to test scope for interoperability checks, updated the reader template to `XmlService.read`, and removed the obsolete HOCON template reference.

Impact and scope

  • Removes 301 lines of deprecated parser code and reduces Maven's production dependency surface.
  • Centralizes XML parsing on the maintained upstream implementation instead of preserving parallel behavior.
  • Retains default trimming, attributes, child values, empty elements, and both Maven Embedder conversion paths.

Validation

  • Added regression coverage for both Embedder conversion paths and preserved existing `XmlService` interoperability tests.
  • Passed focused module tests, full `mvn verify`, and the Core IT suite on Java 21; verified the removed class and compile dependency are absent from produced artifacts.
  • Received maintainer approval; the authored commit and final merge commit are GitHub-verified, and GH-12754 closed as completed.