use of org.apache.camel.BytesSource in project camel by apache.
the class XmlBeansConverterTest method toXmlObjectFromSource.
@Test
public void toXmlObjectFromSource() throws Exception {
XmlObject result = XmlBeansConverter.toXmlObject(new BytesSource(PAYLOAD.getBytes()), new DefaultExchange(new DefaultCamelContext()));
assertBuyStocks(result);
}
use of org.apache.camel.BytesSource in project camel by apache.
the class MessageHelper method extractValueForLogging.
/**
* Extracts the value for logging purpose.
* <p/>
* Will clip the value if its too big for logging.
*
* @see org.apache.camel.Exchange#LOG_DEBUG_BODY_MAX_CHARS
* @param obj the value
* @param message the message
* @param prepend a message to prepend
* @param allowStreams whether or not streams is allowed
* @param allowFiles whether or not files is allowed (currently not in use)
* @param maxChars limit to maximum number of chars. Use 0 for not limit, and -1 for turning logging message body off.
* @return the logging message
*/
public static String extractValueForLogging(Object obj, Message message, String prepend, boolean allowStreams, boolean allowFiles, int maxChars) {
if (maxChars < 0) {
return prepend + "[Body is not logged]";
}
if (obj == null) {
return prepend + "[Body is null]";
}
if (!allowStreams) {
if (obj instanceof Source && !(obj instanceof StringSource || obj instanceof BytesSource)) {
// all other kinds we should not touch the body
return prepend + "[Body is instance of java.xml.transform.Source]";
} else if (obj instanceof StreamCache) {
return prepend + "[Body is instance of org.apache.camel.StreamCache]";
} else if (obj instanceof InputStream) {
return prepend + "[Body is instance of java.io.InputStream]";
} else if (obj instanceof OutputStream) {
return prepend + "[Body is instance of java.io.OutputStream]";
} else if (obj instanceof Reader) {
return prepend + "[Body is instance of java.io.Reader]";
} else if (obj instanceof Writer) {
return prepend + "[Body is instance of java.io.Writer]";
} else if (obj instanceof WrappedFile || obj instanceof File) {
if (!allowFiles) {
return prepend + "[Body is file based: " + obj + "]";
}
}
}
if (!allowFiles) {
if (obj instanceof WrappedFile || obj instanceof File) {
return prepend + "[Body is file based: " + obj + "]";
}
}
// is the body a stream cache or input stream
StreamCache cache = null;
InputStream is = null;
if (obj instanceof StreamCache) {
cache = (StreamCache) obj;
is = null;
} else if (obj instanceof InputStream) {
cache = null;
is = (InputStream) obj;
}
// grab the message body as a string
String body = null;
if (message.getExchange() != null) {
try {
body = message.getExchange().getContext().getTypeConverter().tryConvertTo(String.class, message.getExchange(), obj);
} catch (Throwable e) {
// ignore as the body is for logging purpose
}
}
if (body == null) {
try {
body = obj.toString();
} catch (Throwable e) {
// ignore as the body is for logging purpose
}
}
// reset stream cache after use
if (cache != null) {
cache.reset();
} else if (is != null && is.markSupported()) {
try {
is.reset();
} catch (IOException e) {
// ignore
}
}
if (body == null) {
return prepend + "[Body is null]";
}
// clip body if length enabled and the body is too big
if (maxChars > 0 && body.length() > maxChars) {
body = body.substring(0, maxChars) + "... [Body clipped after " + maxChars + " chars, total length is " + body.length() + "]";
}
return prepend + body;
}
use of org.apache.camel.BytesSource in project camel by apache.
the class BytesSourceTest method testBytesSourceCtrSystemId.
public void testBytesSourceCtrSystemId() {
BytesSource bs = new BytesSource("foo".getBytes(), "Camel");
assertNotNull(bs.getData());
assertEquals("BytesSource[foo]", bs.toString());
assertEquals("Camel", bs.getSystemId());
assertNotNull(bs.getInputStream());
assertNotNull(bs.getReader());
}
use of org.apache.camel.BytesSource in project camel by apache.
the class XmlConverter method toByteArray.
/**
* Converts the given input Source into bytes
*/
@Converter
public byte[] toByteArray(Source source, Exchange exchange) throws TransformerException {
if (source instanceof BytesSource) {
return ((BytesSource) source).getData();
} else {
ByteArrayOutputStream buffer = new ByteArrayOutputStream();
if (exchange != null) {
// check the camelContext properties first
Properties properties = ObjectHelper.getCamelPropertiesWithPrefix(OUTPUT_PROPERTIES_PREFIX, exchange.getContext());
if (properties.size() > 0) {
toResult(source, new StreamResult(buffer), properties);
return buffer.toByteArray();
}
}
// using the old way to deal with it
toResult(source, new StreamResult(buffer));
return buffer.toByteArray();
}
}
Aggregations