in shims/qpid-jms/src/main/java/org/apache/qpid/interop_test/jms_hdrs_props_test/Sender.java [219:258]
protected void addMessageProperties(Message msg, JsonObject testPropertiesMap) throws Exception, JMSException {
List<String> testPropertiesKeyList = new ArrayList<String>(testPropertiesMap.keySet());
for (String key: testPropertiesKeyList) {
JsonObject subMap = testPropertiesMap.getJsonObject(key);
List<String> subMapKeyList = new ArrayList<String>(subMap.keySet());
String subMapKey = subMapKeyList.get(0); // There is always only one entry in map
String subMapVal = subMap.getString(subMapKey);
switch (subMapKey) {
case "boolean":
msg.setBooleanProperty(key, Boolean.parseBoolean(subMapVal));
break;
case "byte":
msg.setByteProperty(key, Byte.decode(subMapVal));
break;
case "double":
Long l1 = Long.parseLong(subMapVal.substring(2, 3), 16) << 60;
Long l2 = Long.parseLong(subMapVal.substring(3), 16);
msg.setDoubleProperty(key, Double.longBitsToDouble(l1 | l2));
break;
case "float":
Long i = Long.parseLong(subMapVal.substring(2), 16);
msg.setFloatProperty(key, Float.intBitsToFloat(i.intValue()));
break;
case "int":
msg.setIntProperty(key, Integer.decode(subMapVal));
break;
case "long":
msg.setLongProperty(key, Long.decode(subMapVal));
break;
case "short":
msg.setShortProperty(key, Short.decode(subMapVal));
break;
case "string":
msg.setStringProperty(key, subMapVal);
break;
default:
throw new Exception("Internal exception: Unknown or unsupported message property type \"" + subMapKey + "\"");
}
}
}