private XStream getXStream()

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;
    }