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 2014/09/29 18:27:08 UTC
[07/11] git commit: add support for [single] amqp-sequence bodies
add support for [single] amqp-sequence bodies
Project: http://git-wip-us.apache.org/repos/asf/qpid-jms/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-jms/commit/161bba63
Tree: http://git-wip-us.apache.org/repos/asf/qpid-jms/tree/161bba63
Diff: http://git-wip-us.apache.org/repos/asf/qpid-jms/diff/161bba63
Branch: refs/heads/master
Commit: 161bba63398f5f92083428d9509f6fbd02935c4b
Parents: 88945f1
Author: Robert Gemmell <ro...@apache.org>
Authored: Sat Sep 27 17:48:24 2014 +0100
Committer: Robert Gemmell <ro...@apache.org>
Committed: Mon Sep 29 17:09:37 2014 +0100
----------------------------------------------------------------------
.../amqp/message/AmqpJmsMessageBuilder.java | 5 ++--
.../message/AmqpJmsStreamMessageFacade.java | 24 ++++++++++++++++----
2 files changed, 22 insertions(+), 7 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/161bba63/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/amqp/message/AmqpJmsMessageBuilder.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/amqp/message/AmqpJmsMessageBuilder.java b/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/amqp/message/AmqpJmsMessageBuilder.java
index 9eeef20..889a27e 100644
--- a/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/amqp/message/AmqpJmsMessageBuilder.java
+++ b/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/amqp/message/AmqpJmsMessageBuilder.java
@@ -38,6 +38,7 @@ import org.apache.qpid.jms.message.JmsStreamMessage;
import org.apache.qpid.jms.message.JmsTextMessage;
import org.apache.qpid.jms.provider.amqp.AmqpConsumer;
import org.apache.qpid.proton.amqp.Binary;
+import org.apache.qpid.proton.amqp.messaging.AmqpSequence;
import org.apache.qpid.proton.amqp.messaging.AmqpValue;
import org.apache.qpid.proton.amqp.messaging.Data;
import org.apache.qpid.proton.amqp.messaging.Section;
@@ -143,8 +144,8 @@ public class AmqpJmsMessageBuilder {
} else {
return createObjectMessage(consumer, message);
}
- } else {
- // TODO: AmqpSequence support
+ } else if (body instanceof AmqpSequence) {
+ return createStreamMessage(consumer, message);
}
return null;
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/161bba63/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/amqp/message/AmqpJmsStreamMessageFacade.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/amqp/message/AmqpJmsStreamMessageFacade.java b/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/amqp/message/AmqpJmsStreamMessageFacade.java
index 0955aed..fae76e6 100644
--- a/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/amqp/message/AmqpJmsStreamMessageFacade.java
+++ b/qpid-jms-client/src/main/java/org/apache/qpid/jms/provider/amqp/message/AmqpJmsStreamMessageFacade.java
@@ -29,6 +29,7 @@ import org.apache.qpid.jms.message.facade.JmsStreamMessageFacade;
import org.apache.qpid.jms.provider.amqp.AmqpConnection;
import org.apache.qpid.jms.provider.amqp.AmqpConsumer;
import org.apache.qpid.proton.amqp.Binary;
+import org.apache.qpid.proton.amqp.messaging.AmqpSequence;
import org.apache.qpid.proton.amqp.messaging.AmqpValue;
import org.apache.qpid.proton.amqp.messaging.Section;
import org.apache.qpid.proton.message.Message;
@@ -50,7 +51,7 @@ public class AmqpJmsStreamMessageFacade extends AmqpJmsMessageFacade implements
*/
public AmqpJmsStreamMessageFacade(AmqpConnection connection) {
super(connection);
- list = initializeEmptyList();
+ list = initializeEmptyBodyList(false);
setAnnotation(JMS_MSG_TYPE, JMS_STREAM_MESSAGE);
}
@@ -69,17 +70,25 @@ public class AmqpJmsStreamMessageFacade extends AmqpJmsMessageFacade implements
Section body = getAmqpMessage().getBody();
if (body == null) {
- list = initializeEmptyList();
+ list = initializeEmptyBodyList(false);
} else if (body instanceof AmqpValue) {
Object value = ((AmqpValue) body).getValue();
if (value == null) {
- list = initializeEmptyList();
+ list = initializeEmptyBodyList(false);
} else if (value instanceof List) {
list = (List<Object>) value;
} else {
throw new IllegalStateException("Unexpected amqp-value body content type: " + value.getClass().getSimpleName());
}
+ } else if (body instanceof AmqpSequence) {
+ List<?> value = ((AmqpSequence) body).getValue();
+
+ if (value == null) {
+ list = initializeEmptyBodyList(true);
+ } else {
+ list = (List<Object>) value;
+ }
} else {
throw new IllegalStateException("Unexpected message body type: " + body.getClass().getSimpleName());
}
@@ -157,9 +166,14 @@ public class AmqpJmsStreamMessageFacade extends AmqpJmsMessageFacade implements
return list.isEmpty();
}
- private List<Object> initializeEmptyList() {
+ private List<Object> initializeEmptyBodyList(boolean useSequenceBody) {
List<Object> emptyList = new ArrayList<Object>();
- message.setBody(new AmqpValue(emptyList));
+
+ if (useSequenceBody) {
+ message.setBody(new AmqpSequence(emptyList));
+ } else {
+ message.setBody(new AmqpValue(emptyList));
+ }
return emptyList;
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org