Skip to content

Change default driver in XStreamMarshaller from XppDriver to DomDriver #27464

Closed
@sbrannen

Description

@sbrannen

Overview

As explained in commit a247b83, the XppDriver from XStream relies on the XPP3 library which publishes javax.xml.namespace.QName as part of its JAR. The QName type is also published by the java.xml system module in modular JREs (i.e., Java 9 or higher).

This results in a split package between the unnamed module and the java.xml system module, which the Java Language Specification defines as illegal (see §6.5.5.2 and §7.4.3).

Most Java compilers do not currently enforce this rule; however, the Eclipse compiler does. This makes it impossible to use spring-oxm out-of-the-box in the Eclipse IDE. In addition, if bug JDK-8215739 is fixed in a future version of OpenJDK, this rule will affect all users of spring-oxm.

In light of that, the team has decided to switch the default driver in XStreamMarshaller from XppDriver to DomDriver. Users can naturally switch back to the XppDriver if they wish, since the defaultDriver is configurable.

Deliverables

  • Change default driver in XStreamMarshaller from XppDriver to DomDriver.
  • Revert related changes in a247b83.

Metadata

Metadata

Assignees

Labels

in: dataIssues in data modules (jdbc, orm, oxm, tx)type: enhancementA general enhancement

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions