You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by ta...@apache.org on 2011/08/26 21:18:34 UTC
svn commit: r1162215 - in /activemq/trunk/activemq-core/src:
main/java/org/apache/activemq/transport/stomp/FrameTranslator.java
main/java/org/apache/activemq/transport/stomp/Stomp.java
test/java/org/apache/activemq/transport/stomp/StompTest.java
Author: tabish
Date: Fri Aug 26 19:18:34 2011
New Revision: 1162215
URL: http://svn.apache.org/viewvc?rev=1162215&view=rev
Log:
fix for https://issues.apache.org/jira/browse/AMQ-3475
Modified:
activemq/trunk/activemq-core/src/main/java/org/apache/activemq/transport/stomp/FrameTranslator.java
activemq/trunk/activemq-core/src/main/java/org/apache/activemq/transport/stomp/Stomp.java
activemq/trunk/activemq-core/src/test/java/org/apache/activemq/transport/stomp/StompTest.java
Modified: activemq/trunk/activemq-core/src/main/java/org/apache/activemq/transport/stomp/FrameTranslator.java
URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/transport/stomp/FrameTranslator.java?rev=1162215&r1=1162214&r2=1162215&view=diff
==============================================================================
--- activemq/trunk/activemq-core/src/main/java/org/apache/activemq/transport/stomp/FrameTranslator.java (original)
+++ activemq/trunk/activemq-core/src/main/java/org/apache/activemq/transport/stomp/FrameTranslator.java Fri Aug 26 19:18:34 2011
@@ -82,6 +82,10 @@ public interface FrameTranslator {
headers.put(Stomp.Headers.Message.ORIGINAL_DESTINATION, ft.convertDestination(converter, message.getOriginalDestination()));
}
+ if (message.isPersistent()) {
+ headers.put(Stomp.Headers.Message.PERSISTENT, Stomp.TRUE);
+ }
+
// now lets add all the message headers
final Map<String, Object> properties = message.getProperties();
if (properties != null) {
Modified: activemq/trunk/activemq-core/src/main/java/org/apache/activemq/transport/stomp/Stomp.java
URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/transport/stomp/Stomp.java?rev=1162215&r1=1162214&r2=1162215&view=diff
==============================================================================
--- activemq/trunk/activemq-core/src/main/java/org/apache/activemq/transport/stomp/Stomp.java (original)
+++ activemq/trunk/activemq-core/src/main/java/org/apache/activemq/transport/stomp/Stomp.java Fri Aug 26 19:18:34 2011
@@ -110,6 +110,7 @@ public interface Stomp {
String BROWSER = "browser";
String USERID = "JMSXUserID";
String ORIGINAL_DESTINATION = "original-destination";
+ String PERSISTENT = "persistent";
}
public interface Subscribe {
Modified: activemq/trunk/activemq-core/src/test/java/org/apache/activemq/transport/stomp/StompTest.java
URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-core/src/test/java/org/apache/activemq/transport/stomp/StompTest.java?rev=1162215&r1=1162214&r2=1162215&view=diff
==============================================================================
--- activemq/trunk/activemq-core/src/test/java/org/apache/activemq/transport/stomp/StompTest.java (original)
+++ activemq/trunk/activemq-core/src/test/java/org/apache/activemq/transport/stomp/StompTest.java Fri Aug 26 19:18:34 2011
@@ -1522,7 +1522,6 @@ public class StompTest extends Combinati
headers.put(Stomp.Headers.Message.EXPIRATION_TIME, String.valueOf(timestamp));
headers.put(Stomp.Headers.Send.PERSISTENT, "true");
-
stompConnection.send("/queue/" + getQueueName(), "msg", null, headers);
stompConnection.subscribe("/queue/ActiveMQ.DLQ");
@@ -1531,8 +1530,35 @@ public class StompTest extends Combinati
assertEquals(stompMessage.getHeaders().get(Stomp.Headers.Message.ORIGINAL_DESTINATION), "/queue/" + getQueueName());
}
+ public void testPersistent() throws Exception {
+ stompConnection.connect("system", "manager");
+
+ HashMap<String, String> headers = new HashMap<String, String>();
+ headers.put(Stomp.Headers.Message.PERSISTENT, "true");
+
+ stompConnection.send("/queue/" + getQueueName(), "hello", null, headers);
+
+ stompConnection.subscribe("/queue/" + getQueueName());
+
+ StompFrame stompMessage = stompConnection.receive();
+ assertNotNull(stompMessage);
+ assertNotNull(stompMessage.getHeaders().get(Stomp.Headers.Message.PERSISTENT));
+ assertEquals(stompMessage.getHeaders().get(Stomp.Headers.Message.PERSISTENT), "true");
+ }
+
+ public void testPersistentDefaultValue() throws Exception {
+ stompConnection.connect("system", "manager");
+
+ HashMap<String, String> headers = new HashMap<String, String>();
+ stompConnection.send("/queue/" + getQueueName(), "hello", null, headers);
+ stompConnection.subscribe("/queue/" + getQueueName());
+
+ StompFrame stompMessage = stompConnection.receive();
+ assertNotNull(stompMessage);
+ assertNull(stompMessage.getHeaders().get(Stomp.Headers.Message.PERSISTENT));
+ }
protected void assertClients(int expected) throws Exception {
org.apache.activemq.broker.Connection[] clients = broker.getBroker().getClients();