Context
Maven currently distributes xpp3 parser, baked into the plexus utilities JAR.
However, StAX is a comparable standard that has multiple implementations, including being distributed in Java 6. Much of the toolchain has already been updated to handle it, such as Modello.
This could serve as an equally performant replacement while removing the maintenance burden of our own XML parser.
Solution
Replace the xpp3 parsers in the maven-model with the stax generated parsers.
With the proper separation of plugins, this will not impact plugins that use the xpp3 based parser.
Note that to achieve the benefit of reducing the distribution size, plexus and plexus utilities will need the same modification.
Note that DOM model type is represented as Xpp3Dom object both for XPP3 and StAX Modello-generated parsers.
xxp3 leaks from core
Maven core provides xpp3 objects to plugins, for them to tweak configuration: see http://maven.apache.org/ref/3.0.4/maven-core/xref/org/apache/maven/classrealm/DefaultClassRealmManager.html#196
(example yet to be shown of plugins getting the configuration from core as Object then casting to Xpp3Dom)
To be able to remove xpp3, we need a helper for these plugins that will support both xpp3 and StaX and protect them from core move from one to the other.
Votes
+1 |
brett |
---|---|
0 |
|
-1 |
|