<div class="docbook"><div class="navheader"><table summary="Navigation header" width="100%"><tr><th align="center" colspan="3">3.2. JMS MapMessage Types</th></tr><tr><td align="left" width="20%"><a accesskey="p" href="JMS-Client-0-10-Miscellaneous.html">Prev</a> </td><th align="center" width="60%">Chapter 3. Miscellaneous</th><td align="right" width="20%"> </td></tr></table><hr /></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="JMS-Client-0-10-Miscellaneous-MapMessages"></a>3.2. JMS MapMessage Types</h2></div></div></div><p>Qpid supports the JMS <code class="classname">MapMessage</code> interface, which provides support for maps in messages. The following code shows how to send a <code class="classname">MapMessage</code> in JMS.</p><div class="example"><a id="d0e2269"></a><p class="title"><strong>Example 3.1. Sending a JMS MapMessage</strong></p><div class="example-contents"><pre class="programlisting"> | |
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 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); | |
</pre></div></div><br class="example-break" /><p>The following table shows the datatypes that can be sent in a <code class="classname">MapMessage</code>, and the corresponding datatypes that will be received by clients in Python or C++.</p><div class="table"><a id="table-Java-Maps"></a><p class="title"><strong>Table 3.2. Java Datatypes in Maps</strong></p><div class="table-contents"><table border="1" summary="Java Datatypes in Maps"><colgroup><col /><col /><col /></colgroup><thead><tr><th>Java Datatype</th><th>Python</th><th>C++</th></tr></thead><tbody><tr><td>boolean</td><td>bool</td><td>bool</td></tr><tr><td>short</td><td>int | long</td><td>int16</td></tr><tr><td>int</td><td>int | long</td><td>int32</td></tr><tr><td>long</td><td>int | long</td><td>int64</td></tr><tr><td>float</td><td>float</td><td>float</td></tr><tr><td>double</td><td>float</td><td>double</td></tr><tr><td>java.lang.String</td><td>unicode</td><td>std::string</td></tr><tr><td>java.util.UUID</td><td>uuid</td><td>qpid::types::Uuid</td></tr><tr><td>java.util.Map<a class="footnote" href="#ftn.d0e2351" id="d0e2351"><sup class="footnote">[a]</sup></a></td><td>dict</td><td>Variant::Map</td></tr><tr><td>java.util.List</td><td>list</td><td>Variant::List</td></tr></tbody><tbody class="footnotes"><tr><td colspan="3"><div class="footnote" id="ftn.d0e2351"><p><a class="para" href="#d0e2351"><sup class="para">[a] </sup></a>In Qpid, maps can nest. This goes beyond the functionality required by the JMS specification.</p></div></td></tr></tbody></table></div></div><br class="table-break" /></div><div class="navfooter"><hr /><table summary="Navigation footer" width="100%"><tr><td align="left" width="40%"><a accesskey="p" href="JMS-Client-0-10-Miscellaneous.html">Prev</a> </td><td align="center" width="20%"><a accesskey="u" href="JMS-Client-0-10-Miscellaneous.html">Up</a></td><td align="right" width="40%"> </td></tr><tr><td align="left" valign="top" width="40%">Chapter 3. Miscellaneous </td><td align="center" width="20%"><a accesskey="h" href="JMS-Client-0-10-Book.html">Home</a></td><td align="right" valign="top" width="40%"> </td></tr></table></div></div> |