in src/main/java/org/apache/maven/plugins/help/EvaluateMojo.java [377:405]
private XStream getXStream() {
if (xstream == null) {
xstream = new XStream();
addAlias(xstream);
// handle Properties a la Maven
xstream.registerConverter(new PropertiesConverter() {
/** {@inheritDoc} */
@Override
public boolean canConvert(Class type) {
return Properties.class == type;
}
/** {@inheritDoc} */
@Override
public void marshal(Object source, HierarchicalStreamWriter writer, MarshallingContext context) {
Properties properties = (Properties) source;
Map<?, ?> map = new TreeMap<>(properties); // sort
for (Map.Entry<?, ?> entry : map.entrySet()) {
writer.startNode(entry.getKey().toString());
writer.setValue(entry.getValue().toString());
writer.endNode();
}
}
});
}
return xstream;
}