in shims/qpid-jms/src/main/java/org/apache/qpid/interop_test/jms_hdrs_props_test/Receiver.java [449:500]
protected void processMessageProperties(Message message) throws Exception, JMSException {
Enumeration<String> propertyNames = message.getPropertyNames();
while (propertyNames.hasMoreElements()) {
JsonObjectBuilder valueMap = Json.createObjectBuilder();
String propertyName = propertyNames.nextElement();
int underscoreIndex1 = propertyName.indexOf('_');
int underscoreIndex2 = propertyName.indexOf('_', underscoreIndex1 + 1);
if (underscoreIndex1 == 4 && underscoreIndex2 > 5) {
String propType = propertyName.substring(underscoreIndex1 + 1, underscoreIndex2);
switch (propType) {
case "boolean":
valueMap.add(propType, message.getBooleanProperty(propertyName) ? "True" : "False");
_jsonMessagePropertiesMapBuilder.add(propertyName, valueMap);
break;
case "byte":
valueMap.add(propType, formatByte(message.getByteProperty(propertyName)));
_jsonMessagePropertiesMapBuilder.add(propertyName, valueMap);
break;
case "double":
long l = Double.doubleToRawLongBits(message.getDoubleProperty(propertyName));
valueMap.add(propType, String.format("0x%16s", Long.toHexString(l)).replace(' ', '0'));
_jsonMessagePropertiesMapBuilder.add(propertyName, valueMap);
break;
case "float":
int i = Float.floatToRawIntBits(message.getFloatProperty(propertyName));
valueMap.add(propType, String.format("0x%8s", Integer.toHexString(i)).replace(' ', '0'));
_jsonMessagePropertiesMapBuilder.add(propertyName, valueMap);
break;
case "int":
valueMap.add(propType, formatInt(message.getIntProperty(propertyName)));
_jsonMessagePropertiesMapBuilder.add(propertyName, valueMap);
break;
case "long":
valueMap.add(propType, formatLong(message.getLongProperty(propertyName)));
_jsonMessagePropertiesMapBuilder.add(propertyName, valueMap);
break;
case "short":
valueMap.add(propType, formatShort(message.getShortProperty(propertyName)));
_jsonMessagePropertiesMapBuilder.add(propertyName, valueMap);
break;
case "string":
valueMap.add(propType, message.getStringProperty(propertyName));
_jsonMessagePropertiesMapBuilder.add(propertyName, valueMap);
break;
default:
; // Ignore any other property the broker may add
}
} else {
// TODO: handle other non-test properties that might exist here
}
}
}