@NonNls
public static String addTypeInformation( @NotNull @NonNls String type, @NotNull Version version, @NotNull @NonNls byte[] xmlBytes ) throws Exception {
JsonNode tree = new ObjectMapper().readTree( new String( xmlBytes ) );
Map<String, JsonNode> newProps = new LinkedHashMap<String, JsonNode>();
newProps.put( "@type", new TextNode( type ) );
newProps.put( "@version", new TextNode( version.format() ) );
Iterator<Map.Entry<String, JsonNode>> nodeIterator = ( ( ObjectNode ) tree ).getFields();
while ( nodeIterator.hasNext() ) {
Map.Entry<String, JsonNode> jsonNode = nodeIterator.next();
newProps.put( jsonNode.getKey(), jsonNode.getValue() );