private String display()

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