QPIDIT-98: Change calls to proton::value::get<>() to proton::get<>()
diff --git a/shims/qpid-proton-cpp/src/qpidit/amqp_large_content_test/Receiver.cpp b/shims/qpid-proton-cpp/src/qpidit/amqp_large_content_test/Receiver.cpp
index 615894a..b5beac6 100644
--- a/shims/qpid-proton-cpp/src/qpidit/amqp_large_content_test/Receiver.cpp
+++ b/shims/qpid-proton-cpp/src/qpidit/amqp_large_content_test/Receiver.cpp
@@ -101,39 +101,39 @@
 
         std::pair<uint32_t, uint32_t> Receiver::getTestListSizeMb(const proton::value& pvTestList) {
             // Uniform elt size assumed
-            const std::vector<proton::value>& testList(pvTestList.get<std::vector<proton::value> >());
+            const std::vector<proton::value>& testList(proton::get<std::vector<proton::value> >(pvTestList));
             if (testList.empty()) {
                 std::ostringstream oss;
                 oss << _testName << "::Receiver::getTestListSizeMb: List empty";
                 throw qpidit::ArgumentError(oss.str());
             }
-            std::string elt = testList[0].get<std::string>();
+            std::string elt = proton::get<std::string>(testList[0]);
             uint32_t numElements = testList.size();
             return std::pair<uint32_t, uint32_t>(numElements * elt.size() / 1024 / 1024, numElements);
         }
 
         std::pair<uint32_t, uint32_t> Receiver::getTestMapSizeMb(const proton::value& pvTestMap) {
             // Uniform elt size assumed
-            const std::map<std::string, proton::value>& testMap(pvTestMap.get<std::map<std::string, proton::value> >());
+            const std::map<std::string, proton::value>& testMap(proton::get<std::map<std::string, proton::value> >(pvTestMap));
             if (testMap.empty()) {
                 std::ostringstream oss;
                 oss << _testName << "::Receiver::getTestMapSizeMb: Map empty";
                 throw qpidit::ArgumentError(oss.str());
             }
-            std::string elt = testMap.begin()->second.get<std::string>();
+            std::string elt = proton::get<std::string>(testMap.begin()->second);
             uint32_t numElements = testMap.size();
             return std::pair<uint32_t, uint32_t>(numElements * elt.size() / 1024 / 1024, numElements);
         }
 
         uint32_t Receiver::getTestStringSizeMb(const proton::value& testString) {
             if (_amqpType.compare("binary") == 0) {
-                return testString.get<proton::binary>().size() / 1024 / 1024;
+                return proton::get<proton::binary>(testString).size() / 1024 / 1024;
             }
             if (_amqpType.compare("string") == 0) {
-                return testString.get<std::string>().size() / 1024 / 1024;
+                return proton::get<std::string>(testString).size() / 1024 / 1024;
             }
             if (_amqpType.compare("symbol") == 0) {
-                return testString.get<proton::symbol>().size() / 1024 / 1024;
+                return proton::get<proton::symbol>(testString).size() / 1024 / 1024;
             }
         }
 
diff --git a/shims/qpid-proton-cpp/src/qpidit/amqp_types_test/Receiver.cpp b/shims/qpid-proton-cpp/src/qpidit/amqp_types_test/Receiver.cpp
index d16e0eb..075a2f7 100644
--- a/shims/qpid-proton-cpp/src/qpidit/amqp_types_test/Receiver.cpp
+++ b/shims/qpid-proton-cpp/src/qpidit/amqp_types_test/Receiver.cpp
@@ -71,51 +71,51 @@
                         _receivedValueList.append("None");
                     } else if (_amqpType.compare("boolean") == 0) {
                         checkMessageType(m, proton::BOOLEAN);
-                        _receivedValueList.append(m.body().get<bool>() ? "True": "False");
+                        _receivedValueList.append(proton::get<bool>(m.body()) ? "True": "False");
                     } else if (_amqpType.compare("ubyte") == 0) {
                         checkMessageType(m, proton::UBYTE);
-                        _receivedValueList.append(toHexStr<uint8_t>(m.body().get<uint8_t>()));
+                        _receivedValueList.append(toHexStr<uint8_t>(proton::get<uint8_t>(m.body())));
                     } else if (_amqpType.compare("ushort") == 0) {
                         checkMessageType(m, proton::USHORT);
-                        _receivedValueList.append(toHexStr<uint16_t>(m.body().get<uint16_t>()));
+                        _receivedValueList.append(toHexStr<uint16_t>(proton::get<uint16_t>(m.body())));
                     } else if (_amqpType.compare("uint") == 0) {
                         checkMessageType(m, proton::UINT);
-                        _receivedValueList.append(toHexStr<uint32_t>(m.body().get<uint32_t>()));
+                        _receivedValueList.append(toHexStr<uint32_t>(proton::get<uint32_t>(m.body())));
                     } else if (_amqpType.compare("ulong") == 0) {
                         checkMessageType(m, proton::ULONG);
-                        _receivedValueList.append(toHexStr<uint64_t>(m.body().get<uint64_t>()));
+                        _receivedValueList.append(toHexStr<uint64_t>(proton::get<uint64_t>(m.body())));
                     } else if (_amqpType.compare("byte") == 0) {
                         checkMessageType(m, proton::BYTE);
-                        _receivedValueList.append(toHexStr<int8_t>(m.body().get<int8_t>()));
+                        _receivedValueList.append(toHexStr<int8_t>(proton::get<int8_t>(m.body())));
                     } else if (_amqpType.compare("short") == 0) {
                         checkMessageType(m, proton::SHORT);
-                        _receivedValueList.append(toHexStr<int16_t>(m.body().get<int16_t>()));
+                        _receivedValueList.append(toHexStr<int16_t>(proton::get<int16_t>(m.body())));
                     } else if (_amqpType.compare("int") == 0) {
                         checkMessageType(m, proton::INT);
-                        _receivedValueList.append(toHexStr<int32_t>(m.body().get<int32_t>()));
+                        _receivedValueList.append(toHexStr<int32_t>(proton::get<int32_t>(m.body())));
                     } else if (_amqpType.compare("long") == 0) {
                         checkMessageType(m, proton::LONG);
-                        _receivedValueList.append(toHexStr<int64_t>(m.body().get<int64_t>()));
+                        _receivedValueList.append(toHexStr<int64_t>(proton::get<int64_t>(m.body())));
                     } else if (_amqpType.compare("float") == 0) {
                         checkMessageType(m, proton::FLOAT);
-                        float f = m.body().get<float>();
+                        float f = proton::get<float>(m.body());
                         _receivedValueList.append(toHexStr<uint32_t>(*((uint32_t*)&f), true));
                     } else if (_amqpType.compare("double") == 0) {
                         checkMessageType(m, proton::DOUBLE);
-                        double d = m.body().get<double>();
+                        double d = proton::get<double>(m.body());
                         _receivedValueList.append(toHexStr<uint64_t>(*((uint64_t*)&d), true));
                     } else if (_amqpType.compare("decimal32") == 0) {
                         checkMessageType(m, proton::DECIMAL32);
-                        _receivedValueList.append(byteArrayToHexStr(m.body().get<proton::decimal32>()));
+                        _receivedValueList.append(byteArrayToHexStr(proton::get<proton::decimal32>(m.body())));
                     } else if (_amqpType.compare("decimal64") == 0) {
                         checkMessageType(m, proton::DECIMAL64);
-                        _receivedValueList.append(byteArrayToHexStr(m.body().get<proton::decimal64>()));
+                        _receivedValueList.append(byteArrayToHexStr(proton::get<proton::decimal64>(m.body())));
                     } else if (_amqpType.compare("decimal128") == 0) {
                         checkMessageType(m, proton::DECIMAL128);
-                        _receivedValueList.append(byteArrayToHexStr(m.body().get<proton::decimal128>()));
+                        _receivedValueList.append(byteArrayToHexStr(proton::get<proton::decimal128>(m.body())));
                     } else if (_amqpType.compare("char") == 0) {
                         checkMessageType(m, proton::CHAR);
-                        wchar_t c = m.body().get<wchar_t>();
+                        wchar_t c = proton::get<wchar_t>(m.body());
                         std::stringstream oss;
                         if (c < 0x7f && std::iswprint(c)) {
                             oss << (char)c;
@@ -126,22 +126,22 @@
                     } else if (_amqpType.compare("timestamp") == 0) {
                         checkMessageType(m, proton::TIMESTAMP);
                         std::ostringstream oss;
-                        oss << "0x" << std::hex << m.body().get<proton::timestamp>().milliseconds();
+                        oss << "0x" << std::hex << proton::get<proton::timestamp>(m.body()).milliseconds();
                         _receivedValueList.append(oss.str());
                     } else if (_amqpType.compare("uuid") == 0) {
                         checkMessageType(m, proton::UUID);
                         std::ostringstream oss;
-                        oss << m.body().get<proton::uuid>();
+                        oss << proton::get<proton::uuid>(m.body());
                         _receivedValueList.append(oss.str());
                     } else if (_amqpType.compare("binary") == 0) {
                         checkMessageType(m, proton::BINARY);
-                        _receivedValueList.append(std::string(m.body().get<proton::binary>()));
+                        _receivedValueList.append(std::string(proton::get<proton::binary>(m.body())));
                     } else if (_amqpType.compare("string") == 0) {
                         checkMessageType(m, proton::STRING);
-                        _receivedValueList.append(m.body().get<std::string>());
+                        _receivedValueList.append(proton::get<std::string>(m.body()));
                     } else if (_amqpType.compare("symbol") == 0) {
                         checkMessageType(m, proton::SYMBOL);
-                        _receivedValueList.append(m.body().get<proton::symbol>());
+                        _receivedValueList.append(proton::get<proton::symbol>(m.body()));
                     } else if (_amqpType.compare("list") == 0) {
                         checkMessageType(m, proton::LIST);
                         Json::Value jsonList(Json::arrayValue);
@@ -200,25 +200,25 @@
         //static
         Json::Value& Receiver::getMap(Json::Value& jsonMap, const proton::value& val) {
             std::map<proton::value, proton::value> msgMap;
-            val.get(msgMap);
+            proton::get(val, msgMap);
             for (std::map<proton::value, proton::value>::const_iterator i = msgMap.begin(); i != msgMap.end(); ++i) {
                 switch (i->second.type()) {
                 case proton::LIST:
                 {
                     Json::Value jsonSubList(Json::arrayValue);
-                    jsonMap[i->first.get<std::string>()] = getSequence(jsonSubList, i->second);
+                    jsonMap[proton::get<std::string>(i->first)] = getSequence(jsonSubList, i->second);
                     break;
                 }
                 case proton::MAP:
                 {
                     Json::Value jsonSubMap(Json::objectValue);
-                    jsonMap[i->first.get<std::string>()] = getMap(jsonSubMap, i->second);
+                    jsonMap[proton::get<std::string>(i->first)] = getMap(jsonSubMap, i->second);
                     break;
                 }
                 case proton::ARRAY:
                     break;
                 case proton::STRING:
-                    jsonMap[i->first.get<std::string>()] = Json::Value(i->second.get<std::string>());
+                    jsonMap[proton::get<std::string>(i->first)] = Json::Value(proton::get<std::string>(i->second));
                     break;
                 default:
                     throw qpidit::IncorrectValueTypeError(i->second);
@@ -230,7 +230,7 @@
         //static
         Json::Value& Receiver::getSequence(Json::Value& jsonList, const proton::value& val) {
             std::vector<proton::value> msgList;
-            val.get(msgList);
+            proton::get(val, msgList);
             for (std::vector<proton::value>::const_iterator i=msgList.begin(); i!=msgList.end(); ++i) {
                 switch ((*i).type()) {
                 case proton::LIST:
@@ -248,7 +248,7 @@
                 case proton::ARRAY:
                     break;
                 case proton::STRING:
-                    jsonList.append(Json::Value((*i).get<std::string>()));
+                    jsonList.append(Json::Value(proton::get<std::string>(*i)));
                     break;
                 default:
                     throw qpidit::IncorrectValueTypeError(*i);
diff --git a/shims/qpid-proton-cpp/src/qpidit/jms_hdrs_props_test/Receiver.cpp b/shims/qpid-proton-cpp/src/qpidit/jms_hdrs_props_test/Receiver.cpp
index 269a47e..3581b0f 100644
--- a/shims/qpid-proton-cpp/src/qpidit/jms_hdrs_props_test/Receiver.cpp
+++ b/shims/qpid-proton-cpp/src/qpidit/jms_hdrs_props_test/Receiver.cpp
@@ -82,7 +82,7 @@
                 if (_received < _expected) {
                     int8_t t = qpidit::JMS_MESSAGE_TYPE; // qpidit::JMS_MESSAGE_TYPE has value 0
                     try {
-                        t = m.message_annotations().get(proton::symbol("x-opt-jms-msg-type")).get<int8_t>();
+                        t = proton::get<int8_t>(m.message_annotations().get(proton::symbol("x-opt-jms-msg-type")));
                     } catch (const proton::conversion_error& e) {
                         std::cout << "JmsReceiver::on_message(): Error converting value for annotation \"x-opt-jms-msg-type\": " << e.what() << std::endl;
                         throw;
@@ -163,7 +163,7 @@
             }
             std::string subType(_subTypeList[_subTypeIndex]);
             std::map<std::string, proton::value> m;
-            msg.body().get(m);
+            proton::get(msg.body(), m);
             for (std::map<std::string, proton::value>::const_iterator i=m.begin(); i!=m.end(); ++i) {
                 std::string key = i->first;
                 if (subType.compare(key.substr(0, key.size()-3)) != 0) {
@@ -171,29 +171,29 @@
                 }
                 proton::value val = i->second;
                 if (subType.compare("boolean") == 0) {
-                    _receivedSubTypeList.append(val.get<bool>() ? Json::Value("True") : Json::Value("False"));
+                    _receivedSubTypeList.append(proton::get<bool>(val) ? Json::Value("True") : Json::Value("False"));
                 } else if (subType.compare("byte") == 0) {
-                    _receivedSubTypeList.append(Json::Value(toHexStr<int8_t>(val.get<int8_t>())));
+                    _receivedSubTypeList.append(Json::Value(toHexStr<int8_t>(proton::get<int8_t>(val))));
                 } else if (subType.compare("bytes") == 0) {
-                    _receivedSubTypeList.append(Json::Value(std::string(val.get<proton::binary>())));
+                    _receivedSubTypeList.append(Json::Value(std::string(proton::get<proton::binary>(val))));
                 } else if (subType.compare("char") == 0) {
                     std::ostringstream oss;
-                    oss << (char)val.get<wchar_t>();
+                    oss << (char)proton::get<wchar_t>(val);
                     _receivedSubTypeList.append(Json::Value(oss.str()));
                 } else if (subType.compare("double") == 0) {
-                    double d = val.get<double>();
+                    double d = proton::get<double>(val);
                     _receivedSubTypeList.append(Json::Value(toHexStr<int64_t>(*((int64_t*)&d), true, false)));
                 } else if (subType.compare("float") == 0) {
-                    float f = val.get<float>();
+                    float f = proton::get<float>(val);
                     _receivedSubTypeList.append(Json::Value(toHexStr<int32_t>(*((int32_t*)&f), true, false)));
                 } else if (subType.compare("int") == 0) {
-                    _receivedSubTypeList.append(Json::Value(toHexStr<int32_t>(val.get<int32_t>())));
+                    _receivedSubTypeList.append(Json::Value(toHexStr<int32_t>(proton::get<int32_t>(val))));
                 } else if (subType.compare("long") == 0) {
-                    _receivedSubTypeList.append(Json::Value(toHexStr<int64_t>(val.get<int64_t>())));
+                    _receivedSubTypeList.append(Json::Value(toHexStr<int64_t>(proton::get<int64_t>(val))));
                 } else if (subType.compare("short") == 0) {
-                    _receivedSubTypeList.append(Json::Value(toHexStr<int16_t>(val.get<int16_t>())));
+                    _receivedSubTypeList.append(Json::Value(toHexStr<int16_t>(proton::get<int16_t>(val))));
                 } else if (subType.compare("string") == 0) {
-                    _receivedSubTypeList.append(Json::Value(val.get<std::string>()));
+                    _receivedSubTypeList.append(Json::Value(proton::get<std::string>(val)));
                 } else {
                     throw qpidit::UnknownJmsMessageSubTypeError(subType);
                 }
@@ -205,7 +205,7 @@
                 throw qpidit::IncorrectMessageBodyTypeError(_jmsMessageType, "JMS_BYTESMESSAGE_TYPE");
             }
             std::string subType(_subTypeList[_subTypeIndex]);
-            proton::binary body = msg.body().get<proton::binary>();
+            proton::binary body = proton::get<proton::binary>(msg.body());
             if (subType.compare("boolean") == 0) {
                 if (body.size() != 1) throw IncorrectMessageBodyLengthError("JmsReceiver::receiveJmsBytesMessage, subType=boolean", 1, body.size());
                 _receivedSubTypeList.append(body[0] ? Json::Value("True") : Json::Value("False"));
@@ -256,32 +256,32 @@
             }
             std::string subType(_subTypeList[_subTypeIndex]);
             std::vector<proton::value> l;
-            msg.body().get(l);
+            proton::get(msg.body(), l);
             for (std::vector<proton::value>::const_iterator i=l.begin(); i!=l.end(); ++i) {
                 if (subType.compare("boolean") == 0) {
-                    _receivedSubTypeList.append(i->get<bool>() ? Json::Value("True") : Json::Value("False"));
+                    _receivedSubTypeList.append(proton::get<bool>(*i) ? Json::Value("True") : Json::Value("False"));
                 } else if (subType.compare("byte") == 0) {
-                    _receivedSubTypeList.append(Json::Value(toHexStr<int8_t>(i->get<int8_t>())));
+                    _receivedSubTypeList.append(Json::Value(toHexStr<int8_t>(proton::get<int8_t>(*i))));
                 } else if (subType.compare("bytes") == 0) {
-                    _receivedSubTypeList.append(Json::Value(std::string(i->get<proton::binary>())));
+                    _receivedSubTypeList.append(Json::Value(std::string(proton::get<proton::binary>(*i))));
                 } else if (subType.compare("char") == 0) {
                     std::ostringstream oss;
-                    oss << (char)i->get<wchar_t>();
+                    oss << (char)proton::get<wchar_t>(*i);
                     _receivedSubTypeList.append(Json::Value(oss.str()));
                 } else if (subType.compare("double") == 0) {
-                    double d = i->get<double>();
+                    double d = proton::get<double>(*i);
                     _receivedSubTypeList.append(Json::Value(toHexStr<int64_t>(*((int64_t*)&d), true, false)));
                 } else if (subType.compare("float") == 0) {
-                    float f = i->get<float>();
+                    float f = proton::get<float>(*i);
                     _receivedSubTypeList.append(Json::Value(toHexStr<int32_t>(*((int32_t*)&f), true, false)));
                 } else if (subType.compare("int") == 0) {
-                    _receivedSubTypeList.append(Json::Value(toHexStr<int32_t>(i->get<int32_t>())));
+                    _receivedSubTypeList.append(Json::Value(toHexStr<int32_t>(proton::get<int32_t>(*i))));
                 } else if (subType.compare("long") == 0) {
-                    _receivedSubTypeList.append(Json::Value(toHexStr<int64_t>(i->get<int64_t>())));
+                    _receivedSubTypeList.append(Json::Value(toHexStr<int64_t>(proton::get<int64_t>(*i))));
                 } else if (subType.compare("short") == 0) {
-                    _receivedSubTypeList.append(Json::Value(toHexStr<int16_t>(i->get<int16_t>())));
+                    _receivedSubTypeList.append(Json::Value(toHexStr<int16_t>(proton::get<int16_t>(*i))));
                 } else if (subType.compare("string") == 0) {
-                    _receivedSubTypeList.append(Json::Value(i->get<std::string>()));
+                    _receivedSubTypeList.append(Json::Value(proton::get<std::string>(*i)));
                 } else {
                     throw qpidit::UnknownJmsMessageSubTypeError(subType);
                 }
@@ -293,7 +293,7 @@
             if(_jmsMessageType.compare("JMS_TEXTMESSAGE_TYPE") != 0) {
                 throw qpidit::IncorrectMessageBodyTypeError(_jmsMessageType, "JMS_TEXTMESSAGE_TYPE");
             }
-            _receivedSubTypeList.append(Json::Value(msg.body().get<std::string>()));
+            _receivedSubTypeList.append(Json::Value(proton::get<std::string>(msg.body())));
         }
 
         void Receiver::processMessageHeaders(const proton::message& msg) {
diff --git a/shims/qpid-proton-cpp/src/qpidit/jms_messages_test/Receiver.cpp b/shims/qpid-proton-cpp/src/qpidit/jms_messages_test/Receiver.cpp
index 7b2f058..2fdc526 100644
--- a/shims/qpid-proton-cpp/src/qpidit/jms_messages_test/Receiver.cpp
+++ b/shims/qpid-proton-cpp/src/qpidit/jms_messages_test/Receiver.cpp
@@ -67,7 +67,7 @@
                 if (_received < _expected) {
                     int8_t t = qpidit::JMS_MESSAGE_TYPE; // qpidit::JMS_MESSAGE_TYPE has value 0
                     try {
-                        t = m.message_annotations().get(proton::symbol("x-opt-jms-msg-type")).get<int8_t>();
+                        t = proton::get<int8_t>(m.message_annotations().get(proton::symbol("x-opt-jms-msg-type")));
                     } catch (const proton::conversion_error& e) {
                         std::cout << "JmsReceiver::on_message(): Error converting value for annotation \"x-opt-jms-msg-type\": " << e.what() << std::endl;
                         throw;
@@ -145,7 +145,7 @@
             }
             std::string subType(_subTypeList[_subTypeIndex]);
             std::map<std::string, proton::value> m;
-            msg.body().get(m);
+            proton::get(msg.body(), m);
             for (std::map<std::string, proton::value>::const_iterator i=m.begin(); i!=m.end(); ++i) {
                 std::string key = i->first;
                 if (subType.compare(key.substr(0, key.size()-3)) != 0) {
@@ -153,29 +153,29 @@
                 }
                 proton::value val = i->second;
                 if (subType.compare("boolean") == 0) {
-                    _receivedSubTypeList.append(val.get<bool>() ? Json::Value("True") : Json::Value("False"));
+                    _receivedSubTypeList.append(proton::get<bool>(val) ? Json::Value("True") : Json::Value("False"));
                 } else if (subType.compare("byte") == 0) {
-                    _receivedSubTypeList.append(Json::Value(toHexStr<int8_t>(val.get<int8_t>())));
+                    _receivedSubTypeList.append(Json::Value(toHexStr<int8_t>(proton::get<int8_t>(val))));
                 } else if (subType.compare("bytes") == 0) {
-                    _receivedSubTypeList.append(Json::Value(std::string(val.get<proton::binary>())));
+                    _receivedSubTypeList.append(Json::Value(std::string(proton::get<proton::binary>(val))));
                 } else if (subType.compare("char") == 0) {
                     std::ostringstream oss;
-                    oss << (char)val.get<wchar_t>();
+                    oss << (char)proton::get<wchar_t>(val);
                     _receivedSubTypeList.append(Json::Value(oss.str()));
                 } else if (subType.compare("double") == 0) {
-                    double d = val.get<double>();
+                    double d = proton::get<double>(val);
                     _receivedSubTypeList.append(Json::Value(toHexStr<int64_t>(*((int64_t*)&d), true, false)));
                 } else if (subType.compare("float") == 0) {
-                    float f = val.get<float>();
+                    float f = proton::get<float>(val);
                     _receivedSubTypeList.append(Json::Value(toHexStr<int32_t>(*((int32_t*)&f), true, false)));
                 } else if (subType.compare("int") == 0) {
-                    _receivedSubTypeList.append(Json::Value(toHexStr<int32_t>(val.get<int32_t>())));
+                    _receivedSubTypeList.append(Json::Value(toHexStr<int32_t>(proton::get<int32_t>(val))));
                 } else if (subType.compare("long") == 0) {
-                    _receivedSubTypeList.append(Json::Value(toHexStr<int64_t>(val.get<int64_t>())));
+                    _receivedSubTypeList.append(Json::Value(toHexStr<int64_t>(proton::get<int64_t>(val))));
                 } else if (subType.compare("short") == 0) {
-                    _receivedSubTypeList.append(Json::Value(toHexStr<int16_t>(val.get<int16_t>())));
+                    _receivedSubTypeList.append(Json::Value(toHexStr<int16_t>(proton::get<int16_t>(val))));
                 } else if (subType.compare("string") == 0) {
-                    _receivedSubTypeList.append(Json::Value(val.get<std::string>()));
+                    _receivedSubTypeList.append(Json::Value(proton::get<std::string>(val)));
                 } else {
                     throw qpidit::UnknownJmsMessageSubTypeError(subType);
                 }
@@ -187,7 +187,7 @@
                 throw qpidit::IncorrectMessageBodyTypeError(_jmsMessageType, "JMS_BYTESMESSAGE_TYPE");
             }
             std::string subType(_subTypeList[_subTypeIndex]);
-            proton::binary body = msg.body().get<proton::binary>();
+            proton::binary body = proton::get<proton::binary>(msg.body());
             if (subType.compare("boolean") == 0) {
                 if (body.size() != 1) throw IncorrectMessageBodyLengthError("JmsReceiver::receiveJmsBytesMessage, subType=boolean", 1, body.size());
                 _receivedSubTypeList.append(body[0] ? Json::Value("True") : Json::Value("False"));
@@ -238,32 +238,32 @@
             }
             std::string subType(_subTypeList[_subTypeIndex]);
             std::vector<proton::value> l;
-            msg.body().get(l);
+            proton::get(msg.body(), l);
             for (std::vector<proton::value>::const_iterator i=l.begin(); i!=l.end(); ++i) {
                 if (subType.compare("boolean") == 0) {
-                    _receivedSubTypeList.append(i->get<bool>() ? Json::Value("True") : Json::Value("False"));
+                    _receivedSubTypeList.append(proton::get<bool>(*i) ? Json::Value("True") : Json::Value("False"));
                 } else if (subType.compare("byte") == 0) {
-                    _receivedSubTypeList.append(Json::Value(toHexStr<int8_t>(i->get<int8_t>())));
+                    _receivedSubTypeList.append(Json::Value(toHexStr<int8_t>(proton::get<int8_t>(*i))));
                 } else if (subType.compare("bytes") == 0) {
-                    _receivedSubTypeList.append(Json::Value(std::string(i->get<proton::binary>())));
+                    _receivedSubTypeList.append(Json::Value(std::string(proton::get<proton::binary>(*i))));
                 } else if (subType.compare("char") == 0) {
                     std::ostringstream oss;
-                    oss << (char)i->get<wchar_t>();
+                    oss << (char)proton::get<wchar_t>(*i);
                     _receivedSubTypeList.append(Json::Value(oss.str()));
                 } else if (subType.compare("double") == 0) {
-                    double d = i->get<double>();
+                    double d = proton::get<double>(*i);
                     _receivedSubTypeList.append(Json::Value(toHexStr<int64_t>(*((int64_t*)&d), true, false)));
                 } else if (subType.compare("float") == 0) {
-                    float f = i->get<float>();
+                    float f = proton::get<float>(*i);
                     _receivedSubTypeList.append(Json::Value(toHexStr<int32_t>(*((int32_t*)&f), true, false)));
                 } else if (subType.compare("int") == 0) {
-                    _receivedSubTypeList.append(Json::Value(toHexStr<int32_t>(i->get<int32_t>())));
+                    _receivedSubTypeList.append(Json::Value(toHexStr<int32_t>(proton::get<int32_t>(*i))));
                 } else if (subType.compare("long") == 0) {
-                    _receivedSubTypeList.append(Json::Value(toHexStr<int64_t>(i->get<int64_t>())));
+                    _receivedSubTypeList.append(Json::Value(toHexStr<int64_t>(proton::get<int64_t>(*i))));
                 } else if (subType.compare("short") == 0) {
-                    _receivedSubTypeList.append(Json::Value(toHexStr<int16_t>(i->get<int16_t>())));
+                    _receivedSubTypeList.append(Json::Value(toHexStr<int16_t>(proton::get<int16_t>(*i))));
                 } else if (subType.compare("string") == 0) {
-                    _receivedSubTypeList.append(Json::Value(i->get<std::string>()));
+                    _receivedSubTypeList.append(Json::Value(proton::get<std::string>(*i)));
                 } else {
                     throw qpidit::UnknownJmsMessageSubTypeError(subType);
                 }
@@ -275,7 +275,7 @@
             if(_jmsMessageType.compare("JMS_TEXTMESSAGE_TYPE") != 0) {
                 throw qpidit::IncorrectMessageBodyTypeError(_jmsMessageType, "JMS_TEXTMESSAGE_TYPE");
             }
-            _receivedSubTypeList.append(Json::Value(msg.body().get<std::string>()));
+            _receivedSubTypeList.append(Json::Value(proton::get<std::string>(msg.body())));
         }
 
     } /* namespace jms_messages_test */