Show Table of Contents
20.7. JMS MapMessage Types
qpid-java supports the Java JMS
MapMessage interface, which provides support for maps in messages. The following code shows how to send a MapMessage in Java JMS.
Example 20.2. Sending a Java JMS MapMessage
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.jms.Connection;
import javax.jms.Destination;
import javax.jms.MapMessage;
import javax.jms.MessageProducer;
import javax.jms.Session;
import org.apache.qpid.client.AMQAnyDestination;
import org.apache.qpid.client.AMQConnection;
import edu.emory.mathcs.backport.java.util.Arrays;
// !!! SNIP !!!
MessageProducer producer = session.createProducer(queue);
MapMessage m = session.createMapMessage();
m.setIntProperty("Id", 987654321);
m.setStringProperty("name", "Widget");
m.setDoubleProperty("price", 0.99);
List<String> colors = new ArrayList<String>();
colors.add("red");
colors.add("green");
colors.add("white");
m.setObject("colours", colors);
Map<String,Double> dimensions = new HashMap<String,Double>();
dimensions.put("length",10.2);
dimensions.put("width",5.1);
dimensions.put("depth",2.0);
m.setObject("dimensions",dimensions);
List<List<Integer>> parts = new ArrayList<List<Integer>>();
parts.add(Arrays.asList(new Integer[] {1,2,5}));
parts.add(Arrays.asList(new Integer[] {8,2,5}));
m.setObject("parts", parts);
Map<String,Object> specs = new HashMap<String,Object>();
specs.put("colours", colors);
specs.put("dimensions", dimensions);
specs.put("parts", parts);
m.setObject("specs",specs);
producer.send(m);
The following table shows the data types that can be sent in a
MapMessage, and the corresponding data types that will be received by clients in Python or C++.
Table 20.4. Java Data Types in Maps
Java Data Type | ? Python | ? C++ |
|---|---|---|
boolean | bool | bool |
short | int | long | int16 |
int | int | long | int32 |
long | int | long | int64 |
float | float | float |
double | float | double |
java.lang.String | unicode | std::string |
java.util.UUID | uuid | qpid::types::Uuid |
java.util.Map [a] | dict | Variant::Map |
java.util.List | list | Variant::List |
[a]
In Qpid, maps can nest. This goes beyond the functionality required by the JMS specification.
| ||

Where did the comment section go?
Red Hat's documentation publication system recently went through an upgrade to enable speedier, more mobile-friendly content. We decided to re-evaluate our commenting platform to ensure that it meets your expectations and serves as an optimal feedback mechanism. During this redesign, we invite your input on providing feedback on Red Hat documentation via the discussion platform.