You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by ro...@apache.org on 2015/03/04 20:38:41 UTC
qpid-jms git commit: update mapping for JMSType to the message
Subject field
Repository: qpid-jms
Updated Branches:
refs/heads/master af8bf0ded -> 31dccb73a
update mapping for JMSType to the message Subject field
Project: http://git-wip-us.apache.org/repos/asf/qpid-jms/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-jms/commit/31dccb73
Tree: http://git-wip-us.apache.org/repos/asf/qpid-jms/tree/31dccb73
Diff: http://git-wip-us.apache.org/repos/asf/qpid-jms/diff/31dccb73
Branch: refs/heads/master
Commit: 31dccb73a56d383d813a842248dc8e22e755d021
Parents: af8bf0d
Author: Robert Gemmell <ro...@apache.org>
Authored: Wed Mar 4 19:33:48 2015 +0000
Committer: Robert Gemmell <ro...@apache.org>
Committed: Wed Mar 4 19:37:57 2015 +0000
----------------------------------------------------------------------
.../jms/message/facade/JmsMessageFacade.java | 8 ++---
.../amqp/message/AmqpJmsMessageFacade.java | 9 ++---
.../amqp/message/AmqpMessageSupport.java | 6 ----
.../amqp/message/AmqpJmsMessageFacadeTest.java | 26 ++++++--------
.../qpid-jms-activemq-tests/pom.xml | 9 +++++
.../jms/consumer/JmsMessageConsumerTest.java | 37 +++++++++++++++++++-
6 files changed, 64 insertions(+), 31 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/31dccb73/qpid-jms-client/src/main/java/org/apache/qpid/jms/message/facade/JmsMessageFacade.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/main/java/org/apache/qpid/jms/message/facade/JmsMessageFacade.java b/qpid-jms-client/src/main/java/org/apache/qpid/jms/message/facade/JmsMessageFacade.java
index 348311a..34079cb 100644
--- a/qpid-jms-client/src/main/java/org/apache/qpid/jms/message/facade/JmsMessageFacade.java
+++ b/qpid-jms-client/src/main/java/org/apache/qpid/jms/message/facade/JmsMessageFacade.java
@@ -276,17 +276,17 @@ public interface JmsMessageFacade {
void setRedelivered(boolean redelivered);
/**
- * Returns the Type values as defined by the provider or set by the sending client.
+ * Returns the JMSType value as defined by the provider or set by the sending client.
*
- * @return a String value that defines the message type.
+ * @return a String value that defines the message JMSType.
*/
String getType();
/**
- * Sets the String value used to define the Message type by the client.
+ * Sets the String value used to define the Message JMSType by the client.
*
* @param type
- * the type value the client assigns to this message.
+ * the JMSType value the client assigns to this message.
*/
void setType(String type);
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/31dccb73/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/amqp/message/AmqpJmsMessageFacade.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/amqp/message/AmqpJmsMessageFacade.java b/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/amqp/message/AmqpJmsMessageFacade.java
index 9ee57eb..cca2683 100644
--- a/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/amqp/message/AmqpJmsMessageFacade.java
+++ b/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/amqp/message/AmqpJmsMessageFacade.java
@@ -19,7 +19,6 @@ package org.apache.qpid.jms.provider.amqp.message;
import static org.apache.qpid.jms.provider.amqp.message.AmqpMessageSupport.JMS_AMQP_TTL;
import static org.apache.qpid.jms.provider.amqp.message.AmqpMessageSupport.JMS_MESSAGE;
import static org.apache.qpid.jms.provider.amqp.message.AmqpMessageSupport.JMS_MSG_TYPE;
-import static org.apache.qpid.jms.provider.amqp.message.AmqpMessageSupport.JMS_TYPE;
import java.nio.ByteBuffer;
import java.nio.charset.Charset;
@@ -538,15 +537,17 @@ public class AmqpJmsMessageFacade implements JmsMessageFacade {
@Override
public String getType() {
- return (String) getMessageAnnotation(JMS_TYPE);
+ return message.getSubject();
}
@Override
public void setType(String type) {
if (type != null) {
- setMessageAnnotation(JMS_TYPE, type);
+ message.setSubject(type);
} else {
- removeMessageAnnotation(JMS_TYPE);
+ if (message.getProperties() != null) {
+ message.getProperties().setSubject(null);
+ }
}
}
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/31dccb73/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/amqp/message/AmqpMessageSupport.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/amqp/message/AmqpMessageSupport.java b/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/amqp/message/AmqpMessageSupport.java
index 842cda9..644d50f 100644
--- a/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/amqp/message/AmqpMessageSupport.java
+++ b/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/amqp/message/AmqpMessageSupport.java
@@ -34,12 +34,6 @@ public final class AmqpMessageSupport {
public static final String JMS_APP_CORRELATION_ID = "x-opt-app-correlation-id";
/**
- * Attribute used to mark the JMSType header string value set on the message by
- * an application.
- */
- public static final String JMS_TYPE = "x-opt-jms-type";
-
- /**
* Attribute used to mark the class type of JMS message that a particular message
* instance represents, used internally by the client.
*/
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/31dccb73/qpid-jms-client/src/test/java/org/apache/qpid/jms/provider/amqp/message/AmqpJmsMessageFacadeTest.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/test/java/org/apache/qpid/jms/provider/amqp/message/AmqpJmsMessageFacadeTest.java b/qpid-jms-client/src/test/java/org/apache/qpid/jms/provider/amqp/message/AmqpJmsMessageFacadeTest.java
index 81fb84b..6c364c9 100644
--- a/qpid-jms-client/src/test/java/org/apache/qpid/jms/provider/amqp/message/AmqpJmsMessageFacadeTest.java
+++ b/qpid-jms-client/src/test/java/org/apache/qpid/jms/provider/amqp/message/AmqpJmsMessageFacadeTest.java
@@ -1579,43 +1579,37 @@ public class AmqpJmsMessageFacadeTest extends AmqpJmsMessageTypesTestCase {
}
@Test
- public void testSetJMSTypeSetsUnderlyingMessageAnnotation() throws Exception {
+ public void testSetJMSTypeSetsUnderlyingMessageSubject() throws Exception {
String jmsType = "myJMSType";
AmqpJmsMessageFacade amqpMessageFacade = createNewMessageFacade();
amqpMessageFacade.setType(jmsType);
- assertTrue("MessageAnnotation should exist to hold JMSType value",
- amqpMessageFacade.messageAnnotationExists(AmqpMessageSupport.JMS_TYPE));
- assertEquals("MessageAnnotation should be set to the provded JMSType string", jmsType,
- amqpMessageFacade.getMessageAnnotation(AmqpMessageSupport.JMS_TYPE));
+ assertEquals("Subject should be set to the provded JMSType string", jmsType,
+ amqpMessageFacade.getAmqpMessage().getSubject());
}
@Test
- public void testSetTypeNullClearsExistingValue() throws Exception {
+ public void testSetTypeNullClearsExistingSubjectValue() throws Exception {
String jmsType = "myJMSType";
AmqpJmsMessageFacade amqpMessageFacade = createNewMessageFacade();
amqpMessageFacade.setType(jmsType);
- assertTrue("MessageAnnotation should exist to hold JMSType value",
- amqpMessageFacade.messageAnnotationExists(AmqpMessageSupport.JMS_TYPE));
+ assertEquals("Subject should be set to the provded JMSType string", jmsType,
+ amqpMessageFacade.getAmqpMessage().getSubject());
amqpMessageFacade.setType(null);
- assertNull("JMSType value was not as expected", amqpMessageFacade.getType());
- assertFalse("MessageAnnotation should exist to hold JMSType value",
- amqpMessageFacade.messageAnnotationExists(AmqpMessageSupport.JMS_TYPE));
+ assertNull("Subject should be clear", amqpMessageFacade.getAmqpMessage().getSubject());
}
/**
- * Test that {@link AmqpJmsMessageFacade#getType()} returns the expected value for a message
- * received with the {@link AmqpMessageSupport#JMS_TYPE} message annotation set.
+ * Test that {@link AmqpJmsMessageFacade#getType()} returns the expected value
+ * for a message received with the message Subject set.
*/
@Test
public void testGetJMSTypeWithReceivedMessage() throws Exception {
String myJMSType = "myJMSType";
Message message = Proton.message();
- Map<Symbol, Object> annotationsMap = new HashMap<Symbol, Object>();
- annotationsMap.put(Symbol.valueOf(AmqpMessageSupport.JMS_TYPE), myJMSType);
- message.setMessageAnnotations(new MessageAnnotations(annotationsMap));
+ message.setSubject(myJMSType);
AmqpJmsMessageFacade amqpMessageFacade = createReceivedMessageFacade(createMockAmqpConsumer(), message);
assertEquals("JMSType value was not as expected", myJMSType, amqpMessageFacade.getType());
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/31dccb73/qpid-jms-interop-tests/qpid-jms-activemq-tests/pom.xml
----------------------------------------------------------------------
diff --git a/qpid-jms-interop-tests/qpid-jms-activemq-tests/pom.xml b/qpid-jms-interop-tests/qpid-jms-activemq-tests/pom.xml
index cb1d7e5..1a01288 100644
--- a/qpid-jms-interop-tests/qpid-jms-activemq-tests/pom.xml
+++ b/qpid-jms-interop-tests/qpid-jms-activemq-tests/pom.xml
@@ -112,6 +112,15 @@
<build>
<plugins>
<plugin>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <configuration>
+ <excludes>
+ <!-- Need 5.12 snapshot -->
+ <exclude>**/JoramSelectorTest.java</exclude>
+ </excludes>
+ </configuration>
+ </plugin>
+ <plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId>
<configuration>
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/31dccb73/qpid-jms-interop-tests/qpid-jms-activemq-tests/src/test/java/org/apache/qpid/jms/consumer/JmsMessageConsumerTest.java
----------------------------------------------------------------------
diff --git a/qpid-jms-interop-tests/qpid-jms-activemq-tests/src/test/java/org/apache/qpid/jms/consumer/JmsMessageConsumerTest.java b/qpid-jms-interop-tests/qpid-jms-activemq-tests/src/test/java/org/apache/qpid/jms/consumer/JmsMessageConsumerTest.java
index d2a3b4d..e8b8fd4 100644
--- a/qpid-jms-interop-tests/qpid-jms-activemq-tests/src/test/java/org/apache/qpid/jms/consumer/JmsMessageConsumerTest.java
+++ b/qpid-jms-interop-tests/qpid-jms-activemq-tests/src/test/java/org/apache/qpid/jms/consumer/JmsMessageConsumerTest.java
@@ -47,6 +47,7 @@ import org.apache.qpid.jms.JmsMessageAvailableListener;
import org.apache.qpid.jms.JmsMessageConsumer;
import org.apache.qpid.jms.support.AmqpTestSupport;
import org.apache.qpid.jms.support.Wait;
+import org.junit.Ignore;
import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -442,17 +443,51 @@ public class JmsMessageConsumerTest extends AmqpTestSupport {
message.setText("hello + 9");
p.send(message, DeliveryMode.PERSISTENT, 9, 0);
+ p.close();
+
QueueViewMBean proxy = getProxyToQueue(name.getMethodName());
assertEquals(2, proxy.getQueueSize());
MessageConsumer consumer = session.createConsumer(queue, "JMSPriority > 8");
Message msg = consumer.receive(5000);
- assertNotNull(msg);
+ assertNotNull("No message was recieved", msg);
assertTrue(msg instanceof TextMessage);
assertEquals("hello + 9", ((TextMessage) msg).getText());
assertNull(consumer.receive(1000));
}
+ @Ignore //TODO: needs 5.12 snapshot
+ @Test(timeout=30000)
+ public void testSelectorsWithJMSType() throws Exception {
+ connection = createAmqpConnection();
+ connection.start();
+ Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
+ Queue queue = session.createQueue(name.getMethodName());
+ MessageProducer p = session.createProducer(queue);
+
+ TextMessage message = session.createTextMessage();
+ message.setText("text");
+ p.send(message, DeliveryMode.NON_PERSISTENT, Message.DEFAULT_PRIORITY, Message.DEFAULT_TIME_TO_LIVE);
+
+ TextMessage message2 = session.createTextMessage();
+ String type = "myJMSType";
+ message2.setJMSType(type);
+ message2.setText("text + type");
+ p.send(message2, DeliveryMode.NON_PERSISTENT, Message.DEFAULT_PRIORITY, Message.DEFAULT_TIME_TO_LIVE);
+
+ p.close();
+
+ QueueViewMBean proxy = getProxyToQueue(name.getMethodName());
+ assertEquals(2, proxy.getQueueSize());
+
+ MessageConsumer consumer = session.createConsumer(queue, "JMSType = '" + type + "'");
+ Message msg = consumer.receive(5000);
+ assertNotNull("No message was recieved", msg);
+ assertTrue(msg instanceof TextMessage);
+ assertEquals("Unexpected JMSType value", type, msg.getJMSType());
+ assertEquals("Unexpected message content", "text + type", ((TextMessage) msg).getText());
+ }
+
@Test(timeout=90000, expected=JMSSecurityException.class)
public void testConsumerNotAuthorized() throws Exception{
connection = createAmqpConnection("guest", "password");
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org