Author: rajith
Date: Tue Mar 1 18:21:27 2011
New Revision: 1075961
URL: http://svn.apache.org/viewvc?rev=1075961&view=rev
Log:
QPID-3098
This commit allows a MapMessage to accept an UUID object in it's setObject
method.
Added test cases for directly setting UUID objects or inside Maps and Lists
that gets set into the MapMessage body.
Modified:
qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/client/message/AMQPEncodedMapMessage.java
qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/codec/AbstractEncoder.java
qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/client/message/AMQPEncodedMapMessageTest.java
Modified:
qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/client/message/AMQPEncodedMapMessage.java
URL:
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/client/message/AMQPEncodedMapMessage.java?rev=1075961&r1=1075960&r2=1075961&view=diff
==============================================================================
---
qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/client/message/AMQPEncodedMapMessage.java
(original)
+++
qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/client/message/AMQPEncodedMapMessage.java
Tue Mar 1 18:21:27 2011
@@ -23,6 +23,7 @@ package org.apache.qpid.client.message;
import java.util.List;
import java.util.Map;
+import java.util.UUID;
import javax.jms.JMSException;
import javax.jms.MessageFormatException;
@@ -65,7 +66,7 @@ public class AMQPEncodedMapMessage exten
if ((value instanceof Boolean) || (value instanceof Byte) || (value
instanceof Short) || (value instanceof Integer)
|| (value instanceof Long) || (value instanceof Character) ||
(value instanceof Float)
|| (value instanceof Double) || (value instanceof String) ||
(value instanceof byte[])
- || (value instanceof List) || (value instanceof Map) || (value
== null))
+ || (value instanceof List) || (value instanceof Map) || (value
instanceof UUID) || (value == null))
{
_map.put(propName, value);
}
Modified:
qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/codec/AbstractEncoder.java
URL:
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/codec/AbstractEncoder.java?rev=1075961&r1=1075960&r2=1075961&view=diff
==============================================================================
---
qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/codec/AbstractEncoder.java
(original)
+++
qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/codec/AbstractEncoder.java
Tue Mar 1 18:21:27 2011
@@ -63,6 +63,7 @@ abstract class AbstractEncoder implement
ENCODINGS.put(Double.class, Type.DOUBLE);
ENCODINGS.put(Character.class, Type.CHAR);
ENCODINGS.put(byte[].class, Type.VBIN32);
+ ENCODINGS.put(UUID.class, Type.UUID);
}
private final Map<String,byte[]> str8cache = new
LinkedHashMap<String,byte[]>()
Modified:
qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/client/message/AMQPEncodedMapMessageTest.java
URL:
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/client/message/AMQPEncodedMapMessageTest.java?rev=1075961&r1=1075960&r2=1075961&view=diff
==============================================================================
---
qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/client/message/AMQPEncodedMapMessageTest.java
(original)
+++
qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/client/message/AMQPEncodedMapMessageTest.java
Tue Mar 1 18:21:27 2011
@@ -27,6 +27,7 @@ import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.util.UUID;
import javax.jms.Connection;
import javax.jms.JMSException;
@@ -51,6 +52,7 @@ public class AMQPEncodedMapMessageTest e
private Session _session;
MessageConsumer _consumer;
MessageProducer _producer;
+ UUID myUUID = UUID.randomUUID();
public void setUp() throws Exception
{
@@ -119,7 +121,8 @@ public class AMQPEncodedMapMessageTest e
m.setFloat("Float", Integer.MAX_VALUE + 5000);
m.setInt("Int", Integer.MAX_VALUE - 5000);
m.setShort("Short", (short)58);
- m.setString("String", "Hello");
+ m.setString("String", "Hello");
+ m.setObject("uuid", myUUID);
_producer.send(m);
AMQPEncodedMapMessage msg =
(AMQPEncodedMapMessage)_consumer.receive(RECEIVE_TIMEOUT);
@@ -140,6 +143,7 @@ public class AMQPEncodedMapMessageTest e
assertEquals(Integer.MAX_VALUE - 5000,m.getInt("Int"));
assertEquals((short)58,m.getShort("Short"));
assertEquals("Hello",m.getString("String"));
+ assertEquals(myUUID,(UUID)m.getObject("uuid"));
}
@@ -149,7 +153,11 @@ public class AMQPEncodedMapMessageTest e
List<Integer> myList = getList();
- m.setObject("List", myList);
+ m.setObject("List", myList);
+
+ List<UUID> uuidList = new ArrayList<UUID>();
+ uuidList.add(myUUID);
+ m.setObject("uuid-list", uuidList);
_producer.send(m);
AMQPEncodedMapMessage msg =
(AMQPEncodedMapMessage)_consumer.receive(RECEIVE_TIMEOUT);
@@ -167,6 +175,10 @@ public class AMQPEncodedMapMessageTest e
assertEquals(i,j.intValue());
i++;
}
+
+ List<UUID> list2 = (List<UUID>)msg.getObject("uuid-list");
+ assertNotNull("UUID List not received",list2);
+ assertEquals(myUUID,list2.get(0));
}
public void testMessageWithMapEntries() throws JMSException
@@ -174,8 +186,12 @@ public class AMQPEncodedMapMessageTest e
MapMessage m = _session.createMapMessage();
Map<String,String> myMap = getMap();
+ m.setObject("Map", myMap);
+
+ Map<String,UUID> uuidMap = new HashMap<String,UUID>();
+ uuidMap.put("uuid", myUUID);
+ m.setObject("uuid-map", uuidMap);
- m.setObject("Map", myMap);
_producer.send(m);
AMQPEncodedMapMessage msg =
(AMQPEncodedMapMessage)_consumer.receive(RECEIVE_TIMEOUT);
@@ -191,6 +207,10 @@ public class AMQPEncodedMapMessageTest e
assertEquals("String" + i,map.get("Key" + i));
i++;
}
+
+ Map<String,UUID> map2 = (Map<String,UUID>)msg.getObject("uuid-map");
+ assertNotNull("Map not received",map2);
+ assertEquals(myUUID,map2.get("uuid"));
}
public void testMessageWithNestedListsAndMaps() throws JMSException
---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project: http://qpid.apache.org
Use/Interact: mailto:[email protected]