in servicemix/src/main/java/org/apache/karaf/webconsole/servicemix/internal/DetailsPage.java [95:129]
private String display(Message message) {
try {
Object object = message.getBody();
if (object instanceof InputStream) {
InputStream is = (InputStream) object;
byte[] data = new byte[is.available()];
is.mark(0);
is.read(data);
is.reset();
// Heuristic to check if this is a string
if (isBinary(data)) {
return Arrays.toString(data);
} else {
return new String(data);
}
} else if (object instanceof Source) {
StringWriter buffer = new StringWriter();
TransformerFactory factory = TransformerFactory.newInstance();
Transformer transformer = factory.newTransformer();
transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes");
transformer.setOutputProperty(OutputKeys.METHOD, "xhtml");
transformer.setOutputProperty(OutputKeys.INDENT, "yes");
transformer.transform((Source) object, new StreamResult(buffer));
return buffer.toString();
} else if (object != null) {
return "[" + object.getClass().getName() + "]" + object.toString();
} else {
return "- no body -";
}
} catch (Exception e) {
return "Error while reading message: " + e.getMessage();
}
}