in qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/amqp/message/AmqpCodec.java [379:423]
private static AmqpJmsMessageFacade createWithoutAnnotation(Section body, Properties properties) {
Symbol messageContentType = properties != null ? properties.getContentType() : null;
if (body == null) {
if (isContentType(SERIALIZED_JAVA_OBJECT_CONTENT_TYPE, messageContentType)) {
return new AmqpJmsObjectMessageFacade();
} else if (isContentType(OCTET_STREAM_CONTENT_TYPE, messageContentType) || isContentType(null, messageContentType)) {
return new AmqpJmsBytesMessageFacade();
} else {
Charset charset = getCharsetForTextualContent(messageContentType);
if (charset != null) {
return new AmqpJmsTextMessageFacade(charset);
} else {
return new AmqpJmsMessageFacade();
}
}
} else if (body instanceof Data) {
if (isContentType(OCTET_STREAM_CONTENT_TYPE, messageContentType) || isContentType(null, messageContentType)) {
return new AmqpJmsBytesMessageFacade();
} else if (isContentType(SERIALIZED_JAVA_OBJECT_CONTENT_TYPE, messageContentType)) {
return new AmqpJmsObjectMessageFacade();
} else {
Charset charset = getCharsetForTextualContent(messageContentType);
if (charset != null) {
return new AmqpJmsTextMessageFacade(charset);
} else {
return new AmqpJmsBytesMessageFacade();
}
}
} else if (body instanceof AmqpValue) {
Object value = ((AmqpValue) body).getValue();
if (value == null || value instanceof String) {
return new AmqpJmsTextMessageFacade(StandardCharsets.UTF_8);
} else if (value instanceof Binary) {
return new AmqpJmsBytesMessageFacade();
} else {
return new AmqpJmsObjectMessageFacade();
}
} else if (body instanceof AmqpSequence) {
return new AmqpJmsObjectMessageFacade();
}
return null;
}