You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by js...@apache.org on 2006/03/01 18:05:20 UTC
svn commit: r382083 - in /incubator/activemq/trunk/activemq-core/src:
main/java/org/apache/activemq/command/ActiveMQMessage.java
main/java/org/apache/activemq/command/Message.java
test/java/org/apache/activemq/transport/stomp/StompTest.java
Author: jstrachan
Date: Wed Mar 1 09:05:17 2006
New Revision: 382083
URL: http://svn.apache.org/viewcvs?rev=382083&view=rev
Log:
test case and patch to ensure that the JMSXGroupID can be specified in Stomp together with testing for the use of correlation-id
Modified:
incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/command/ActiveMQMessage.java
incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/command/Message.java
incubator/activemq/trunk/activemq-core/src/test/java/org/apache/activemq/transport/stomp/StompTest.java
Modified: incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/command/ActiveMQMessage.java
URL: http://svn.apache.org/viewcvs/incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/command/ActiveMQMessage.java?rev=382083&r1=382082&r2=382083&view=diff
==============================================================================
--- incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/command/ActiveMQMessage.java (original)
+++ incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/command/ActiveMQMessage.java Wed Mar 1 09:05:17 2006
@@ -20,6 +20,8 @@
import java.io.UnsupportedEncodingException;
import java.util.Enumeration;
import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Map;
import java.util.Vector;
import javax.jms.DeliveryMode;
@@ -322,6 +324,16 @@
}
}
}
+
+ public void setProperties(Map properties) throws JMSException {
+ for (Iterator iter = properties.entrySet().iterator(); iter.hasNext();) {
+ Map.Entry entry = (Map.Entry) iter.next();
+
+ // Lets use the object property method as we may contain standard extension headers like JMSXGroupID
+ setObjectProperty((String) entry.getKey(), entry.getValue());
+ }
+ }
+
private void checkValidObject(Object value) throws MessageFormatException {
if(!(value instanceof Boolean || value instanceof Byte || value instanceof Short || value instanceof Integer ||
Modified: incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/command/Message.java
URL: http://svn.apache.org/viewcvs/incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/command/Message.java?rev=382083&r1=382082&r2=382083&view=diff
==============================================================================
--- incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/command/Message.java (original)
+++ incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/command/Message.java Wed Mar 1 09:05:17 2006
@@ -140,11 +140,7 @@
properties=null;
}
- public void setProperties(Map properties) throws IOException {
- lazyCreateProperties();
- this.properties.putAll(properties);
- }
-
+
public void setProperty(String name, Object value) throws IOException {
lazyCreateProperties();
properties.put(name, value);
Modified: incubator/activemq/trunk/activemq-core/src/test/java/org/apache/activemq/transport/stomp/StompTest.java
URL: http://svn.apache.org/viewcvs/incubator/activemq/trunk/activemq-core/src/test/java/org/apache/activemq/transport/stomp/StompTest.java?rev=382083&r1=382082&r2=382083&view=diff
==============================================================================
--- incubator/activemq/trunk/activemq-core/src/test/java/org/apache/activemq/transport/stomp/StompTest.java (original)
+++ incubator/activemq/trunk/activemq-core/src/test/java/org/apache/activemq/transport/stomp/StompTest.java Wed Mar 1 09:05:17 2006
@@ -21,6 +21,7 @@
import org.apache.activemq.broker.BrokerService;
import org.apache.activemq.broker.TransportConnector;
import org.apache.activemq.command.ActiveMQQueue;
+import org.apache.activemq.command.ActiveMQTextMessage;
import javax.jms.Connection;
import javax.jms.JMSException;
@@ -155,7 +156,7 @@
}
- public void testSendMessageWithHeaders() throws Exception {
+ public void testSendMessageWithCustomHeadersAndSelector() throws Exception {
MessageConsumer consumer = session.createConsumer(queue, "foo = 'abc'");
@@ -182,6 +183,46 @@
TextMessage message = (TextMessage) consumer.receive(1000);
assertNotNull(message);
assertEquals("Hello World", message.getText());
+ assertEquals("foo", "abc", message.getStringProperty("foo"));
+ assertEquals("bar", "123", message.getStringProperty("bar"));
+ }
+
+ public void testSendMessageWithStandardHeaders() throws Exception {
+
+ MessageConsumer consumer = session.createConsumer(queue);
+
+ String frame =
+ "CONNECT\n" +
+ "login: brianm\n" +
+ "passcode: wombats\n\n"+
+ Stomp.NULL;
+ sendFrame(frame);
+
+ frame = receiveFrame(10000);
+ assertTrue(frame.startsWith("CONNECTED"));
+
+ frame =
+ "SEND\n" +
+ "correlation-id:c123\n" +
+ "JMSXGroupID:abc\n" +
+ "foo:abc\n" +
+ "bar:123\n" +
+ "destination:/queue/" + getQueueName() + "\n\n" +
+ "Hello World" +
+ Stomp.NULL;
+
+ sendFrame(frame);
+
+ TextMessage message = (TextMessage) consumer.receive(1000);
+ assertNotNull(message);
+ assertEquals("Hello World", message.getText());
+ assertEquals("JMSCorrelationID", "c123", message.getJMSCorrelationID());
+ assertEquals("foo", "abc", message.getStringProperty("foo"));
+ assertEquals("bar", "123", message.getStringProperty("bar"));
+
+ assertEquals("JMSXGroupID", "abc", message.getStringProperty("JMSXGroupID"));
+ ActiveMQTextMessage amqMessage = (ActiveMQTextMessage) message;
+ assertEquals("GroupID", "abc", amqMessage.getGroupID());
}
public void testSubscribeWithAutoAck() throws Exception {