You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by ta...@apache.org on 2014/10/01 00:43:23 UTC
git commit: Move all the default implementations now used only for
tests into the tests package.
Repository: qpid-jms
Updated Branches:
refs/heads/master c695388b1 -> 9064cc8a5
Move all the default implementations now used only for tests into the
tests package.
Project: http://git-wip-us.apache.org/repos/asf/qpid-jms/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-jms/commit/9064cc8a
Tree: http://git-wip-us.apache.org/repos/asf/qpid-jms/tree/9064cc8a
Diff: http://git-wip-us.apache.org/repos/asf/qpid-jms/diff/9064cc8a
Branch: refs/heads/master
Commit: 9064cc8a515f05475f90fbdb2b920dd29b148bfa
Parents: c695388
Author: Timothy Bish <ta...@gmail.com>
Authored: Tue Sep 30 18:43:15 2014 -0400
Committer: Timothy Bish <ta...@gmail.com>
Committed: Tue Sep 30 18:43:15 2014 -0400
----------------------------------------------------------------------
.../jms/message/JmsDefaultMessageFactory.java | 94 ------
.../defaults/JmsDefaultBytesMessageFacade.java | 69 ----
.../defaults/JmsDefaultMapMessageFacade.java | 75 -----
.../defaults/JmsDefaultMessageFacade.java | 328 -------------------
.../defaults/JmsDefaultObjectMessageFacade.java | 105 ------
.../defaults/JmsDefaultStreamMessageFacade.java | 85 -----
.../defaults/JmsDefaultTextMessageFacade.java | 62 ----
.../qpid/jms/message/JmsBytesMessageTest.java | 1 +
.../qpid/jms/message/JmsMapMessageTest.java | 2 +-
.../apache/qpid/jms/message/JmsMessageTest.java | 2 +-
.../qpid/jms/message/JmsObjectMessageTest.java | 2 +-
.../qpid/jms/message/JmsStreamMessageTest.java | 2 +-
.../qpid/jms/message/JmsTextMessageTest.java | 2 +-
.../defaults/JmsDefaultBytesMessageFacade.java | 69 ++++
.../defaults/JmsDefaultMapMessageFacade.java | 75 +++++
.../defaults/JmsDefaultMessageFacade.java | 328 +++++++++++++++++++
.../defaults/JmsDefaultMessageFactory.java | 95 ++++++
.../defaults/JmsDefaultObjectMessageFacade.java | 105 ++++++
.../defaults/JmsDefaultStreamMessageFacade.java | 85 +++++
.../defaults/JmsDefaultTextMessageFacade.java | 62 ++++
20 files changed, 825 insertions(+), 823 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/9064cc8a/qpid-jms-client/src/main/java/org/apache/qpid/jms/message/JmsDefaultMessageFactory.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/main/java/org/apache/qpid/jms/message/JmsDefaultMessageFactory.java b/qpid-jms-client/src/main/java/org/apache/qpid/jms/message/JmsDefaultMessageFactory.java
deleted file mode 100644
index c909f2d..0000000
--- a/qpid-jms-client/src/main/java/org/apache/qpid/jms/message/JmsDefaultMessageFactory.java
+++ /dev/null
@@ -1,94 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.qpid.jms.message;
-
-import java.io.Serializable;
-
-import javax.jms.JMSException;
-
-import org.apache.qpid.jms.message.facade.defaults.JmsDefaultBytesMessageFacade;
-import org.apache.qpid.jms.message.facade.defaults.JmsDefaultMapMessageFacade;
-import org.apache.qpid.jms.message.facade.defaults.JmsDefaultMessageFacade;
-import org.apache.qpid.jms.message.facade.defaults.JmsDefaultObjectMessageFacade;
-import org.apache.qpid.jms.message.facade.defaults.JmsDefaultStreamMessageFacade;
-import org.apache.qpid.jms.message.facade.defaults.JmsDefaultTextMessageFacade;
-
-/**
- * Default implementation of the ProviderMessageFactory that create simple
- * generic javax.jms.Message types that can be sent to any Provider instance.
- *
- * TODO: Once the AMQP Message Facade stuff is done we should move this factory
- * and the default JmsMessageFacade implementations into the test package
- * since their primary use will be to test the JMS spec compliance of the
- * JmsMessage classes.
- */
-public class JmsDefaultMessageFactory implements JmsMessageFactory {
-
- @Override
- public JmsMessage createMessage() throws UnsupportedOperationException {
- return new JmsMessage(new JmsDefaultMessageFacade());
- }
-
- @Override
- public JmsTextMessage createTextMessage() throws UnsupportedOperationException {
- return createTextMessage(null);
- }
-
- @Override
- public JmsTextMessage createTextMessage(String payload) throws UnsupportedOperationException {
- JmsTextMessage result = new JmsTextMessage(new JmsDefaultTextMessageFacade());
- if (payload != null) {
- try {
- result.setText(payload);
- } catch (JMSException e) {
- }
- }
- return result;
- }
-
- @Override
- public JmsBytesMessage createBytesMessage() throws UnsupportedOperationException {
- return new JmsBytesMessage(new JmsDefaultBytesMessageFacade());
- }
-
- @Override
- public JmsMapMessage createMapMessage() throws UnsupportedOperationException {
- return new JmsMapMessage(new JmsDefaultMapMessageFacade());
- }
-
- @Override
- public JmsStreamMessage createStreamMessage() throws UnsupportedOperationException {
- return new JmsStreamMessage(new JmsDefaultStreamMessageFacade());
- }
-
- @Override
- public JmsObjectMessage createObjectMessage() throws UnsupportedOperationException {
- return createObjectMessage(null);
- }
-
- @Override
- public JmsObjectMessage createObjectMessage(Serializable payload) throws UnsupportedOperationException {
- JmsObjectMessage result = new JmsObjectMessage(new JmsDefaultObjectMessageFacade());
- if (payload != null) {
- try {
- result.setObject(payload);
- } catch (Exception e) {
- }
- }
- return result;
- }
-}
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/9064cc8a/qpid-jms-client/src/main/java/org/apache/qpid/jms/message/facade/defaults/JmsDefaultBytesMessageFacade.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/main/java/org/apache/qpid/jms/message/facade/defaults/JmsDefaultBytesMessageFacade.java b/qpid-jms-client/src/main/java/org/apache/qpid/jms/message/facade/defaults/JmsDefaultBytesMessageFacade.java
deleted file mode 100644
index 23f1817..0000000
--- a/qpid-jms-client/src/main/java/org/apache/qpid/jms/message/facade/defaults/JmsDefaultBytesMessageFacade.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.qpid.jms.message.facade.defaults;
-
-import io.netty.buffer.ByteBuf;
-
-import org.apache.qpid.jms.message.facade.JmsBytesMessageFacade;
-
-/**
- * A default implementation of the JmsBytesMessageFacade that simply holds a raw Buffer
- */
-public final class JmsDefaultBytesMessageFacade extends JmsDefaultMessageFacade implements JmsBytesMessageFacade {
-
- private ByteBuf content;
-
- @Override
- public JmsMsgType getMsgType() {
- return JmsMsgType.BYTES;
- }
-
- @Override
- public JmsDefaultBytesMessageFacade copy() {
- JmsDefaultBytesMessageFacade copy = new JmsDefaultBytesMessageFacade();
- copyInto(copy);
- if (this.content != null) {
- copy.setContent(this.content.copy());
- }
-
- return copy;
- }
-
- @Override
- public boolean isEmpty() {
- if (content == null || content.readableBytes() == 0) {
- return true;
- }
-
- return false;
- }
-
- @Override
- public void clearBody() {
- this.content = null;
- }
-
- @Override
- public ByteBuf getContent() {
- return content;
- }
-
- @Override
- public void setContent(ByteBuf content) {
- this.content = content;
- }
-}
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/9064cc8a/qpid-jms-client/src/main/java/org/apache/qpid/jms/message/facade/defaults/JmsDefaultMapMessageFacade.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/main/java/org/apache/qpid/jms/message/facade/defaults/JmsDefaultMapMessageFacade.java b/qpid-jms-client/src/main/java/org/apache/qpid/jms/message/facade/defaults/JmsDefaultMapMessageFacade.java
deleted file mode 100644
index 33da603..0000000
--- a/qpid-jms-client/src/main/java/org/apache/qpid/jms/message/facade/defaults/JmsDefaultMapMessageFacade.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.qpid.jms.message.facade.defaults;
-
-import java.util.Collections;
-import java.util.Enumeration;
-import java.util.HashMap;
-import java.util.Map;
-
-import org.apache.qpid.jms.message.facade.JmsMapMessageFacade;
-
-/**
- * Simple implementation of the JmsMapMessageFacade used for testing.
- */
-public class JmsDefaultMapMessageFacade extends JmsDefaultMessageFacade implements JmsMapMessageFacade {
-
- protected final Map<String, Object> map = new HashMap<String, Object>();
-
- @Override
- public JmsMsgType getMsgType() {
- return JmsMsgType.MAP;
- }
-
- @Override
- public JmsDefaultMapMessageFacade copy() {
- JmsDefaultMapMessageFacade copy = new JmsDefaultMapMessageFacade();
- copyInto(copy);
- copy.map.putAll(map);
- return copy;
- }
-
- @Override
- public Enumeration<String> getMapNames() {
- return Collections.enumeration(map.keySet());
- }
-
- @Override
- public boolean itemExists(String key) {
- return map.containsKey(key);
- }
-
- @Override
- public Object get(String key) {
- return map.get(key);
- }
-
- @Override
- public void put(String key, Object value) {
- map.put(key, value);
- }
-
- @Override
- public Object remove(String key) {
- return map.remove(key);
- }
-
- @Override
- public void clearBody() {
- map.clear();
- }
-}
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/9064cc8a/qpid-jms-client/src/main/java/org/apache/qpid/jms/message/facade/defaults/JmsDefaultMessageFacade.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/main/java/org/apache/qpid/jms/message/facade/defaults/JmsDefaultMessageFacade.java b/qpid-jms-client/src/main/java/org/apache/qpid/jms/message/facade/defaults/JmsDefaultMessageFacade.java
deleted file mode 100644
index eff3ad7..0000000
--- a/qpid-jms-client/src/main/java/org/apache/qpid/jms/message/facade/defaults/JmsDefaultMessageFacade.java
+++ /dev/null
@@ -1,328 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.qpid.jms.message.facade.defaults;
-
-import java.nio.charset.Charset;
-import java.util.HashMap;
-import java.util.Map;
-
-import javax.jms.JMSException;
-
-import org.apache.qpid.jms.JmsDestination;
-import org.apache.qpid.jms.message.facade.JmsMessageFacade;
-
-/**
- * A default implementation of the JmsMessageFaceade that provides a generic
- * message instance which can be used instead of implemented in Provider specific
- * version that maps to a Provider message object.
- */
-public class JmsDefaultMessageFacade implements JmsMessageFacade {
-
- private static final Charset UTF8 = Charset.forName("UTF-8");
-
- public static enum JmsMsgType {
- MESSAGE("jms/message"),
- BYTES("jms/bytes-message"),
- MAP("jms/map-message"),
- OBJECT("jms/object-message"),
- STREAM("jms/stream-message"),
- TEXT("jms/text-message"),
- TEXT_NULL("jms/text-message-null");
-
- public final String buffer = new String(this.name());
- public final String mime;
-
- JmsMsgType(String mime) {
- this.mime = mime;
- }
- }
-
- protected Map<String, Object> properties = new HashMap<String, Object>();
-
- protected byte priority = javax.jms.Message.DEFAULT_PRIORITY;
- protected String groupId;
- protected int groupSequence;
- protected String messageId;
- protected long expiration;
- protected long timestamp;
- protected String correlationId;
- protected boolean persistent;
- protected int redeliveryCount;
- protected String type;
- protected JmsDestination destination;
- protected JmsDestination replyTo;
- protected String userId;
-
- public JmsMsgType getMsgType() {
- return JmsMsgType.MESSAGE;
- }
-
- @Override
- public JmsDefaultMessageFacade copy() {
- JmsDefaultMessageFacade copy = new JmsDefaultMessageFacade();
- copyInto(copy);
- return copy;
- }
-
- protected void copyInto(JmsDefaultMessageFacade target) {
- target.priority = this.priority;
- target.groupSequence = this.groupSequence;
- target.groupId = this.groupId;
- target.expiration = this.expiration;
- target.timestamp = this.timestamp;
- target.correlationId = this.correlationId;
- target.persistent = this.persistent;
- target.redeliveryCount = this.redeliveryCount;
- target.type = this.type;
- target.destination = this.destination;
- target.replyTo = this.replyTo;
- target.userId = this.userId;
- target.messageId = this.messageId;
-
- if (this.properties != null) {
- target.properties = new HashMap<String, Object>(this.properties);
- } else {
- target.properties = null;
- }
- }
-
- @Override
- public Map<String, Object> getProperties() throws JMSException {
- lazyCreateProperties();
- return properties;
- }
-
- @Override
- public boolean propertyExists(String key) throws JMSException {
- return this.properties.containsKey(key);
- }
-
- @Override
- public Object getProperty(String key) throws JMSException {
- return this.properties.get(key);
- }
-
- @Override
- public void setProperty(String key, Object value) throws JMSException {
- this.properties.put(key, value);
- }
-
- @Override
- public void onSend() throws JMSException {
- }
-
- @Override
- public void onDispatch() throws JMSException {
- }
-
- @Override
- public boolean isEmpty() {
- return true;
- }
-
- @Override
- public void clearBody() {
- }
-
- @Override
- public void clearProperties() {
- properties.clear();
- }
-
- @Override
- public String getMessageId() {
- return messageId;
- }
-
- @Override
- public Object getProviderMessageIdObject() {
- return messageId;
- }
-
- @Override
- public void setMessageId(String messageId) {
- this.messageId = messageId;
- }
-
- @Override
- public long getTimestamp() {
- return this.timestamp;
- }
-
- @Override
- public void setTimestamp(long timestamp) {
- this.timestamp = timestamp;
- }
-
- @Override
- public String getCorrelationId() {
- return correlationId;
- }
-
- @Override
- public void setCorrelationId(String correlationId) {
- this.correlationId = correlationId;
- }
-
- @Override
- public byte[] getCorrelationIdBytes() {
- return correlationId.getBytes(UTF8);
- }
-
- @Override
- public void setCorrelationIdBytes(byte[] correlationId) {
- if (correlationId != null && correlationId.length > 0) {
- this.correlationId = new String(correlationId, UTF8);
- } else {
- this.correlationId = null;
- }
- }
-
- @Override
- public boolean isPersistent() {
- return this.persistent;
- }
-
- @Override
- public void setPersistent(boolean value) {
- this.persistent = value;
- }
-
- @Override
- public int getDeliveryCount() {
- return this.redeliveryCount + 1;
- }
-
- @Override
- public void setDeliveryCount(int deliveryCount) {
- this.redeliveryCount = deliveryCount - 1;
- }
-
- @Override
- public int getRedeliveryCount() {
- return this.redeliveryCount;
- }
-
- @Override
- public void setRedeliveryCount(int redeliveryCount) {
- this.redeliveryCount = redeliveryCount;
- }
-
- @Override
- public boolean isRedelivered() {
- return redeliveryCount > 0;
- }
-
- @Override
- public void setRedelivered(boolean redelivered) {
- if (redelivered) {
- if (!isRedelivered()) {
- setRedeliveryCount(1);
- }
- } else {
- if (isRedelivered()) {
- setRedeliveryCount(0);
- }
- }
- }
-
- @Override
- public String getType() {
- return type;
- }
-
- @Override
- public void setType(String type) {
- this.type = type;
- }
-
- @Override
- public byte getPriority() {
- return priority;
- }
-
- @Override
- public void setPriority(byte priority) {
- this.priority = priority;
- }
-
- @Override
- public long getExpiration() {
- return expiration;
- }
-
- @Override
- public void setExpiration(long expiration) {
- this.expiration = expiration;
- }
-
- @Override
- public JmsDestination getDestination() {
- return this.destination;
- }
-
- @Override
- public void setDestination(JmsDestination destination) {
- this.destination = destination;
- }
-
- @Override
- public JmsDestination getReplyTo() {
- return this.replyTo;
- }
-
- @Override
- public void setReplyTo(JmsDestination replyTo) {
- this.replyTo = replyTo;
- }
-
- @Override
- public String getUserId() {
- return this.userId;
- }
-
- @Override
- public void setUserId(String userId) {
- this.userId = userId;
- }
-
- @Override
- public String getGroupId() {
- return this.groupId;
- }
-
- @Override
- public void setGroupId(String groupId) {
- this.groupId = groupId;
- }
-
- @Override
- public int getGroupSequence() {
- return this.groupSequence;
- }
-
- @Override
- public void setGroupSequence(int groupSequence) {
- this.groupSequence = groupSequence;
- }
-
- private void lazyCreateProperties() {
- if (properties == null) {
- properties = new HashMap<String, Object>();
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/9064cc8a/qpid-jms-client/src/main/java/org/apache/qpid/jms/message/facade/defaults/JmsDefaultObjectMessageFacade.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/main/java/org/apache/qpid/jms/message/facade/defaults/JmsDefaultObjectMessageFacade.java b/qpid-jms-client/src/main/java/org/apache/qpid/jms/message/facade/defaults/JmsDefaultObjectMessageFacade.java
deleted file mode 100644
index f9bf220..0000000
--- a/qpid-jms-client/src/main/java/org/apache/qpid/jms/message/facade/defaults/JmsDefaultObjectMessageFacade.java
+++ /dev/null
@@ -1,105 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.qpid.jms.message.facade.defaults;
-
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.ObjectOutputStream;
-import java.io.Serializable;
-import java.util.Arrays;
-
-import org.apache.qpid.jms.message.facade.JmsObjectMessageFacade;
-import org.apache.qpid.jms.util.ClassLoadingAwareObjectInputStream;
-
-/**
- * Default implementation for a JMS Object Message Facade.
- */
-public class JmsDefaultObjectMessageFacade extends JmsDefaultMessageFacade implements JmsObjectMessageFacade {
-
- private byte[] object;
-
- public byte[] getSerializedObject() {
- return object;
- }
-
- public void setSerializedObject(byte[] object) {
- this.object = object;
- }
-
- @Override
- public JmsMsgType getMsgType() {
- return JmsMsgType.OBJECT;
- }
-
- @Override
- public boolean isEmpty() {
- return object == null || object.length == 0;
- }
-
- @Override
- public JmsDefaultObjectMessageFacade copy() {
- JmsDefaultObjectMessageFacade copy = new JmsDefaultObjectMessageFacade();
- copyInto(copy);
- if (!isEmpty()) {
- copy.object = Arrays.copyOf(object, object.length);
- }
-
- return copy;
- }
-
- @Override
- public void clearBody() {
- this.object = null;
- }
-
- @Override
- public Serializable getObject() throws IOException, ClassNotFoundException {
-
- if (isEmpty()) {
- return null;
- }
-
- Serializable serialized = null;
-
- try (ByteArrayInputStream dataIn = new ByteArrayInputStream(object);
- ClassLoadingAwareObjectInputStream objIn = new ClassLoadingAwareObjectInputStream(dataIn)) {
-
- serialized = (Serializable) objIn.readObject();
- }
-
- return serialized;
- }
-
- @Override
- public void setObject(Serializable value) throws IOException {
- byte[] serialized = null;
- if (value != null) {
- try (ByteArrayOutputStream baos = new ByteArrayOutputStream();
- ObjectOutputStream oos = new ObjectOutputStream(baos)) {
-
- oos.writeObject(value);
- oos.flush();
- oos.close();
-
- serialized = baos.toByteArray();
- }
- }
-
- this.object = serialized;
- }
-}
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/9064cc8a/qpid-jms-client/src/main/java/org/apache/qpid/jms/message/facade/defaults/JmsDefaultStreamMessageFacade.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/main/java/org/apache/qpid/jms/message/facade/defaults/JmsDefaultStreamMessageFacade.java b/qpid-jms-client/src/main/java/org/apache/qpid/jms/message/facade/defaults/JmsDefaultStreamMessageFacade.java
deleted file mode 100644
index 1a0a17a..0000000
--- a/qpid-jms-client/src/main/java/org/apache/qpid/jms/message/facade/defaults/JmsDefaultStreamMessageFacade.java
+++ /dev/null
@@ -1,85 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.qpid.jms.message.facade.defaults;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import javax.jms.MessageEOFException;
-
-import org.apache.qpid.jms.message.facade.JmsStreamMessageFacade;
-
-/**
- * Default implementation of the JmsStreamMessageFacade
- */
-public class JmsDefaultStreamMessageFacade extends JmsDefaultMessageFacade implements JmsStreamMessageFacade {
-
- private final List<Object> stream = new ArrayList<Object>();
- private int index = -1;
-
- @Override
- public JmsMsgType getMsgType() {
- return JmsMsgType.STREAM;
- }
-
- @Override
- public JmsDefaultStreamMessageFacade copy() {
- JmsDefaultStreamMessageFacade copy = new JmsDefaultStreamMessageFacade();
- copyInto(copy);
- copy.stream.addAll(stream);
- return copy;
- }
-
- @Override
- public boolean hasNext() {
- return !stream.isEmpty() && index < stream.size();
- }
-
- @Override
- public Object peek() throws MessageEOFException {
- if (stream.isEmpty() || index + 1 >= stream.size()) {
- throw new MessageEOFException("Attempted to read past the end of the stream");
- }
-
- return stream.get(index + 1);
- }
-
- @Override
- public void pop() throws MessageEOFException {
- if (stream.isEmpty() || index + 1 >= stream.size()) {
- throw new MessageEOFException("Attempted to read past the end of the stream");
- }
-
- index++;
- }
-
- @Override
- public void put(Object value) {
- stream.add(value);
- }
-
- @Override
- public void clearBody() {
- stream.clear();
- index = -1;
- }
-
- @Override
- public void reset() {
- index = -1;
- }
-}
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/9064cc8a/qpid-jms-client/src/main/java/org/apache/qpid/jms/message/facade/defaults/JmsDefaultTextMessageFacade.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/main/java/org/apache/qpid/jms/message/facade/defaults/JmsDefaultTextMessageFacade.java b/qpid-jms-client/src/main/java/org/apache/qpid/jms/message/facade/defaults/JmsDefaultTextMessageFacade.java
deleted file mode 100644
index c21d5c1..0000000
--- a/qpid-jms-client/src/main/java/org/apache/qpid/jms/message/facade/defaults/JmsDefaultTextMessageFacade.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.qpid.jms.message.facade.defaults;
-
-import org.apache.qpid.jms.message.facade.JmsTextMessageFacade;
-
-/**
- * Default implementation of the JmsTextMessageFacade.
- */
-public final class JmsDefaultTextMessageFacade extends JmsDefaultMessageFacade implements JmsTextMessageFacade {
-
- private String text;
-
- @Override
- public JmsMsgType getMsgType() {
- return JmsMsgType.TEXT;
- }
-
- @Override
- public boolean isEmpty() {
- return text != null && !text.isEmpty();
- }
-
- @Override
- public JmsDefaultTextMessageFacade copy() {
- JmsDefaultTextMessageFacade copy = new JmsDefaultTextMessageFacade();
- copyInto(copy);
- if (text != null) {
- copy.setText(text);
- }
- return copy;
- }
-
- @Override
- public void clearBody() {
- this.text = null;
- }
-
- @Override
- public String getText() {
- return text;
- }
-
- @Override
- public void setText(String text) {
- this.text = text;
- }
-}
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/9064cc8a/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/JmsBytesMessageTest.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/JmsBytesMessageTest.java b/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/JmsBytesMessageTest.java
index 9314821..e3f1ac5 100644
--- a/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/JmsBytesMessageTest.java
+++ b/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/JmsBytesMessageTest.java
@@ -34,6 +34,7 @@ import javax.jms.MessageNotReadableException;
import javax.jms.MessageNotWriteableException;
import org.apache.qpid.jms.message.facade.defaults.JmsDefaultBytesMessageFacade;
+import org.apache.qpid.jms.message.facade.defaults.JmsDefaultMessageFactory;
import org.junit.Test;
/**
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/9064cc8a/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/JmsMapMessageTest.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/JmsMapMessageTest.java b/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/JmsMapMessageTest.java
index 9b335af..648ab7d 100644
--- a/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/JmsMapMessageTest.java
+++ b/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/JmsMapMessageTest.java
@@ -31,11 +31,11 @@ import javax.jms.JMSException;
import javax.jms.MessageFormatException;
import javax.jms.MessageNotWriteableException;
-import org.apache.qpid.jms.message.JmsDefaultMessageFactory;
import org.apache.qpid.jms.message.JmsMapMessage;
import org.apache.qpid.jms.message.JmsMessageFactory;
import org.apache.qpid.jms.message.facade.JmsMapMessageFacade;
import org.apache.qpid.jms.message.facade.defaults.JmsDefaultMapMessageFacade;
+import org.apache.qpid.jms.message.facade.defaults.JmsDefaultMessageFactory;
import org.junit.Test;
/**
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/9064cc8a/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/JmsMessageTest.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/JmsMessageTest.java b/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/JmsMessageTest.java
index 174ba32..a60b676 100644
--- a/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/JmsMessageTest.java
+++ b/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/JmsMessageTest.java
@@ -34,9 +34,9 @@ import javax.jms.MessageNotWriteableException;
import org.apache.qpid.jms.JmsDestination;
import org.apache.qpid.jms.JmsTopic;
import org.apache.qpid.jms.message.JmsBytesMessage;
-import org.apache.qpid.jms.message.JmsDefaultMessageFactory;
import org.apache.qpid.jms.message.JmsMessage;
import org.apache.qpid.jms.message.JmsMessageFactory;
+import org.apache.qpid.jms.message.facade.defaults.JmsDefaultMessageFactory;
import org.junit.Before;
import org.junit.Test;
import org.slf4j.Logger;
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/9064cc8a/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/JmsObjectMessageTest.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/JmsObjectMessageTest.java b/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/JmsObjectMessageTest.java
index b5e2e98..7ca6b79 100644
--- a/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/JmsObjectMessageTest.java
+++ b/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/JmsObjectMessageTest.java
@@ -36,10 +36,10 @@ import javax.jms.MessageNotReadableException;
import javax.jms.MessageNotWriteableException;
import javax.jms.ObjectMessage;
-import org.apache.qpid.jms.message.JmsDefaultMessageFactory;
import org.apache.qpid.jms.message.JmsMessageFactory;
import org.apache.qpid.jms.message.JmsObjectMessage;
import org.apache.qpid.jms.message.facade.JmsObjectMessageFacade;
+import org.apache.qpid.jms.message.facade.defaults.JmsDefaultMessageFactory;
import org.apache.qpid.jms.message.facade.defaults.JmsDefaultObjectMessageFacade;
import org.junit.Test;
import org.mockito.Mockito;
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/9064cc8a/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/JmsStreamMessageTest.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/JmsStreamMessageTest.java b/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/JmsStreamMessageTest.java
index b21068b..ff9c390 100644
--- a/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/JmsStreamMessageTest.java
+++ b/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/JmsStreamMessageTest.java
@@ -34,9 +34,9 @@ import javax.jms.MessageNotReadableException;
import javax.jms.MessageNotWriteableException;
import javax.jms.StreamMessage;
-import org.apache.qpid.jms.message.JmsDefaultMessageFactory;
import org.apache.qpid.jms.message.JmsMessageFactory;
import org.apache.qpid.jms.message.JmsStreamMessage;
+import org.apache.qpid.jms.message.facade.defaults.JmsDefaultMessageFactory;
import org.junit.Ignore;
import org.junit.Test;
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/9064cc8a/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/JmsTextMessageTest.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/JmsTextMessageTest.java b/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/JmsTextMessageTest.java
index 6757ab8..605143a 100644
--- a/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/JmsTextMessageTest.java
+++ b/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/JmsTextMessageTest.java
@@ -28,9 +28,9 @@ import javax.jms.JMSException;
import javax.jms.MessageNotReadableException;
import javax.jms.MessageNotWriteableException;
-import org.apache.qpid.jms.message.JmsDefaultMessageFactory;
import org.apache.qpid.jms.message.JmsMessageFactory;
import org.apache.qpid.jms.message.JmsTextMessage;
+import org.apache.qpid.jms.message.facade.defaults.JmsDefaultMessageFactory;
import org.junit.Test;
/**
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/9064cc8a/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/facade/defaults/JmsDefaultBytesMessageFacade.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/facade/defaults/JmsDefaultBytesMessageFacade.java b/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/facade/defaults/JmsDefaultBytesMessageFacade.java
new file mode 100644
index 0000000..23f1817
--- /dev/null
+++ b/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/facade/defaults/JmsDefaultBytesMessageFacade.java
@@ -0,0 +1,69 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.qpid.jms.message.facade.defaults;
+
+import io.netty.buffer.ByteBuf;
+
+import org.apache.qpid.jms.message.facade.JmsBytesMessageFacade;
+
+/**
+ * A default implementation of the JmsBytesMessageFacade that simply holds a raw Buffer
+ */
+public final class JmsDefaultBytesMessageFacade extends JmsDefaultMessageFacade implements JmsBytesMessageFacade {
+
+ private ByteBuf content;
+
+ @Override
+ public JmsMsgType getMsgType() {
+ return JmsMsgType.BYTES;
+ }
+
+ @Override
+ public JmsDefaultBytesMessageFacade copy() {
+ JmsDefaultBytesMessageFacade copy = new JmsDefaultBytesMessageFacade();
+ copyInto(copy);
+ if (this.content != null) {
+ copy.setContent(this.content.copy());
+ }
+
+ return copy;
+ }
+
+ @Override
+ public boolean isEmpty() {
+ if (content == null || content.readableBytes() == 0) {
+ return true;
+ }
+
+ return false;
+ }
+
+ @Override
+ public void clearBody() {
+ this.content = null;
+ }
+
+ @Override
+ public ByteBuf getContent() {
+ return content;
+ }
+
+ @Override
+ public void setContent(ByteBuf content) {
+ this.content = content;
+ }
+}
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/9064cc8a/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/facade/defaults/JmsDefaultMapMessageFacade.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/facade/defaults/JmsDefaultMapMessageFacade.java b/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/facade/defaults/JmsDefaultMapMessageFacade.java
new file mode 100644
index 0000000..33da603
--- /dev/null
+++ b/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/facade/defaults/JmsDefaultMapMessageFacade.java
@@ -0,0 +1,75 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.qpid.jms.message.facade.defaults;
+
+import java.util.Collections;
+import java.util.Enumeration;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.apache.qpid.jms.message.facade.JmsMapMessageFacade;
+
+/**
+ * Simple implementation of the JmsMapMessageFacade used for testing.
+ */
+public class JmsDefaultMapMessageFacade extends JmsDefaultMessageFacade implements JmsMapMessageFacade {
+
+ protected final Map<String, Object> map = new HashMap<String, Object>();
+
+ @Override
+ public JmsMsgType getMsgType() {
+ return JmsMsgType.MAP;
+ }
+
+ @Override
+ public JmsDefaultMapMessageFacade copy() {
+ JmsDefaultMapMessageFacade copy = new JmsDefaultMapMessageFacade();
+ copyInto(copy);
+ copy.map.putAll(map);
+ return copy;
+ }
+
+ @Override
+ public Enumeration<String> getMapNames() {
+ return Collections.enumeration(map.keySet());
+ }
+
+ @Override
+ public boolean itemExists(String key) {
+ return map.containsKey(key);
+ }
+
+ @Override
+ public Object get(String key) {
+ return map.get(key);
+ }
+
+ @Override
+ public void put(String key, Object value) {
+ map.put(key, value);
+ }
+
+ @Override
+ public Object remove(String key) {
+ return map.remove(key);
+ }
+
+ @Override
+ public void clearBody() {
+ map.clear();
+ }
+}
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/9064cc8a/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/facade/defaults/JmsDefaultMessageFacade.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/facade/defaults/JmsDefaultMessageFacade.java b/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/facade/defaults/JmsDefaultMessageFacade.java
new file mode 100644
index 0000000..eff3ad7
--- /dev/null
+++ b/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/facade/defaults/JmsDefaultMessageFacade.java
@@ -0,0 +1,328 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.qpid.jms.message.facade.defaults;
+
+import java.nio.charset.Charset;
+import java.util.HashMap;
+import java.util.Map;
+
+import javax.jms.JMSException;
+
+import org.apache.qpid.jms.JmsDestination;
+import org.apache.qpid.jms.message.facade.JmsMessageFacade;
+
+/**
+ * A default implementation of the JmsMessageFaceade that provides a generic
+ * message instance which can be used instead of implemented in Provider specific
+ * version that maps to a Provider message object.
+ */
+public class JmsDefaultMessageFacade implements JmsMessageFacade {
+
+ private static final Charset UTF8 = Charset.forName("UTF-8");
+
+ public static enum JmsMsgType {
+ MESSAGE("jms/message"),
+ BYTES("jms/bytes-message"),
+ MAP("jms/map-message"),
+ OBJECT("jms/object-message"),
+ STREAM("jms/stream-message"),
+ TEXT("jms/text-message"),
+ TEXT_NULL("jms/text-message-null");
+
+ public final String buffer = new String(this.name());
+ public final String mime;
+
+ JmsMsgType(String mime) {
+ this.mime = mime;
+ }
+ }
+
+ protected Map<String, Object> properties = new HashMap<String, Object>();
+
+ protected byte priority = javax.jms.Message.DEFAULT_PRIORITY;
+ protected String groupId;
+ protected int groupSequence;
+ protected String messageId;
+ protected long expiration;
+ protected long timestamp;
+ protected String correlationId;
+ protected boolean persistent;
+ protected int redeliveryCount;
+ protected String type;
+ protected JmsDestination destination;
+ protected JmsDestination replyTo;
+ protected String userId;
+
+ public JmsMsgType getMsgType() {
+ return JmsMsgType.MESSAGE;
+ }
+
+ @Override
+ public JmsDefaultMessageFacade copy() {
+ JmsDefaultMessageFacade copy = new JmsDefaultMessageFacade();
+ copyInto(copy);
+ return copy;
+ }
+
+ protected void copyInto(JmsDefaultMessageFacade target) {
+ target.priority = this.priority;
+ target.groupSequence = this.groupSequence;
+ target.groupId = this.groupId;
+ target.expiration = this.expiration;
+ target.timestamp = this.timestamp;
+ target.correlationId = this.correlationId;
+ target.persistent = this.persistent;
+ target.redeliveryCount = this.redeliveryCount;
+ target.type = this.type;
+ target.destination = this.destination;
+ target.replyTo = this.replyTo;
+ target.userId = this.userId;
+ target.messageId = this.messageId;
+
+ if (this.properties != null) {
+ target.properties = new HashMap<String, Object>(this.properties);
+ } else {
+ target.properties = null;
+ }
+ }
+
+ @Override
+ public Map<String, Object> getProperties() throws JMSException {
+ lazyCreateProperties();
+ return properties;
+ }
+
+ @Override
+ public boolean propertyExists(String key) throws JMSException {
+ return this.properties.containsKey(key);
+ }
+
+ @Override
+ public Object getProperty(String key) throws JMSException {
+ return this.properties.get(key);
+ }
+
+ @Override
+ public void setProperty(String key, Object value) throws JMSException {
+ this.properties.put(key, value);
+ }
+
+ @Override
+ public void onSend() throws JMSException {
+ }
+
+ @Override
+ public void onDispatch() throws JMSException {
+ }
+
+ @Override
+ public boolean isEmpty() {
+ return true;
+ }
+
+ @Override
+ public void clearBody() {
+ }
+
+ @Override
+ public void clearProperties() {
+ properties.clear();
+ }
+
+ @Override
+ public String getMessageId() {
+ return messageId;
+ }
+
+ @Override
+ public Object getProviderMessageIdObject() {
+ return messageId;
+ }
+
+ @Override
+ public void setMessageId(String messageId) {
+ this.messageId = messageId;
+ }
+
+ @Override
+ public long getTimestamp() {
+ return this.timestamp;
+ }
+
+ @Override
+ public void setTimestamp(long timestamp) {
+ this.timestamp = timestamp;
+ }
+
+ @Override
+ public String getCorrelationId() {
+ return correlationId;
+ }
+
+ @Override
+ public void setCorrelationId(String correlationId) {
+ this.correlationId = correlationId;
+ }
+
+ @Override
+ public byte[] getCorrelationIdBytes() {
+ return correlationId.getBytes(UTF8);
+ }
+
+ @Override
+ public void setCorrelationIdBytes(byte[] correlationId) {
+ if (correlationId != null && correlationId.length > 0) {
+ this.correlationId = new String(correlationId, UTF8);
+ } else {
+ this.correlationId = null;
+ }
+ }
+
+ @Override
+ public boolean isPersistent() {
+ return this.persistent;
+ }
+
+ @Override
+ public void setPersistent(boolean value) {
+ this.persistent = value;
+ }
+
+ @Override
+ public int getDeliveryCount() {
+ return this.redeliveryCount + 1;
+ }
+
+ @Override
+ public void setDeliveryCount(int deliveryCount) {
+ this.redeliveryCount = deliveryCount - 1;
+ }
+
+ @Override
+ public int getRedeliveryCount() {
+ return this.redeliveryCount;
+ }
+
+ @Override
+ public void setRedeliveryCount(int redeliveryCount) {
+ this.redeliveryCount = redeliveryCount;
+ }
+
+ @Override
+ public boolean isRedelivered() {
+ return redeliveryCount > 0;
+ }
+
+ @Override
+ public void setRedelivered(boolean redelivered) {
+ if (redelivered) {
+ if (!isRedelivered()) {
+ setRedeliveryCount(1);
+ }
+ } else {
+ if (isRedelivered()) {
+ setRedeliveryCount(0);
+ }
+ }
+ }
+
+ @Override
+ public String getType() {
+ return type;
+ }
+
+ @Override
+ public void setType(String type) {
+ this.type = type;
+ }
+
+ @Override
+ public byte getPriority() {
+ return priority;
+ }
+
+ @Override
+ public void setPriority(byte priority) {
+ this.priority = priority;
+ }
+
+ @Override
+ public long getExpiration() {
+ return expiration;
+ }
+
+ @Override
+ public void setExpiration(long expiration) {
+ this.expiration = expiration;
+ }
+
+ @Override
+ public JmsDestination getDestination() {
+ return this.destination;
+ }
+
+ @Override
+ public void setDestination(JmsDestination destination) {
+ this.destination = destination;
+ }
+
+ @Override
+ public JmsDestination getReplyTo() {
+ return this.replyTo;
+ }
+
+ @Override
+ public void setReplyTo(JmsDestination replyTo) {
+ this.replyTo = replyTo;
+ }
+
+ @Override
+ public String getUserId() {
+ return this.userId;
+ }
+
+ @Override
+ public void setUserId(String userId) {
+ this.userId = userId;
+ }
+
+ @Override
+ public String getGroupId() {
+ return this.groupId;
+ }
+
+ @Override
+ public void setGroupId(String groupId) {
+ this.groupId = groupId;
+ }
+
+ @Override
+ public int getGroupSequence() {
+ return this.groupSequence;
+ }
+
+ @Override
+ public void setGroupSequence(int groupSequence) {
+ this.groupSequence = groupSequence;
+ }
+
+ private void lazyCreateProperties() {
+ if (properties == null) {
+ properties = new HashMap<String, Object>();
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/9064cc8a/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/facade/defaults/JmsDefaultMessageFactory.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/facade/defaults/JmsDefaultMessageFactory.java b/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/facade/defaults/JmsDefaultMessageFactory.java
new file mode 100644
index 0000000..2e8aa0b
--- /dev/null
+++ b/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/facade/defaults/JmsDefaultMessageFactory.java
@@ -0,0 +1,95 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.qpid.jms.message.facade.defaults;
+
+import java.io.Serializable;
+
+import javax.jms.JMSException;
+
+import org.apache.qpid.jms.message.JmsBytesMessage;
+import org.apache.qpid.jms.message.JmsMapMessage;
+import org.apache.qpid.jms.message.JmsMessage;
+import org.apache.qpid.jms.message.JmsMessageFactory;
+import org.apache.qpid.jms.message.JmsObjectMessage;
+import org.apache.qpid.jms.message.JmsStreamMessage;
+import org.apache.qpid.jms.message.JmsTextMessage;
+
+/**
+ * Default implementation of the ProviderMessageFactory that create simple
+ * generic javax.jms.Message types that can be sent to any Provider instance.
+ *
+ * TODO: Once the AMQP Message Facade stuff is done we should move this factory
+ * and the default JmsMessageFacade implementations into the test package
+ * since their primary use will be to test the JMS spec compliance of the
+ * JmsMessage classes.
+ */
+public class JmsDefaultMessageFactory implements JmsMessageFactory {
+
+ @Override
+ public JmsMessage createMessage() throws UnsupportedOperationException {
+ return new JmsMessage(new JmsDefaultMessageFacade());
+ }
+
+ @Override
+ public JmsTextMessage createTextMessage() throws UnsupportedOperationException {
+ return createTextMessage(null);
+ }
+
+ @Override
+ public JmsTextMessage createTextMessage(String payload) throws UnsupportedOperationException {
+ JmsTextMessage result = new JmsTextMessage(new JmsDefaultTextMessageFacade());
+ if (payload != null) {
+ try {
+ result.setText(payload);
+ } catch (JMSException e) {
+ }
+ }
+ return result;
+ }
+
+ @Override
+ public JmsBytesMessage createBytesMessage() throws UnsupportedOperationException {
+ return new JmsBytesMessage(new JmsDefaultBytesMessageFacade());
+ }
+
+ @Override
+ public JmsMapMessage createMapMessage() throws UnsupportedOperationException {
+ return new JmsMapMessage(new JmsDefaultMapMessageFacade());
+ }
+
+ @Override
+ public JmsStreamMessage createStreamMessage() throws UnsupportedOperationException {
+ return new JmsStreamMessage(new JmsDefaultStreamMessageFacade());
+ }
+
+ @Override
+ public JmsObjectMessage createObjectMessage() throws UnsupportedOperationException {
+ return createObjectMessage(null);
+ }
+
+ @Override
+ public JmsObjectMessage createObjectMessage(Serializable payload) throws UnsupportedOperationException {
+ JmsObjectMessage result = new JmsObjectMessage(new JmsDefaultObjectMessageFacade());
+ if (payload != null) {
+ try {
+ result.setObject(payload);
+ } catch (Exception e) {
+ }
+ }
+ return result;
+ }
+}
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/9064cc8a/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/facade/defaults/JmsDefaultObjectMessageFacade.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/facade/defaults/JmsDefaultObjectMessageFacade.java b/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/facade/defaults/JmsDefaultObjectMessageFacade.java
new file mode 100644
index 0000000..f9bf220
--- /dev/null
+++ b/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/facade/defaults/JmsDefaultObjectMessageFacade.java
@@ -0,0 +1,105 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.qpid.jms.message.facade.defaults;
+
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.ObjectOutputStream;
+import java.io.Serializable;
+import java.util.Arrays;
+
+import org.apache.qpid.jms.message.facade.JmsObjectMessageFacade;
+import org.apache.qpid.jms.util.ClassLoadingAwareObjectInputStream;
+
+/**
+ * Default implementation for a JMS Object Message Facade.
+ */
+public class JmsDefaultObjectMessageFacade extends JmsDefaultMessageFacade implements JmsObjectMessageFacade {
+
+ private byte[] object;
+
+ public byte[] getSerializedObject() {
+ return object;
+ }
+
+ public void setSerializedObject(byte[] object) {
+ this.object = object;
+ }
+
+ @Override
+ public JmsMsgType getMsgType() {
+ return JmsMsgType.OBJECT;
+ }
+
+ @Override
+ public boolean isEmpty() {
+ return object == null || object.length == 0;
+ }
+
+ @Override
+ public JmsDefaultObjectMessageFacade copy() {
+ JmsDefaultObjectMessageFacade copy = new JmsDefaultObjectMessageFacade();
+ copyInto(copy);
+ if (!isEmpty()) {
+ copy.object = Arrays.copyOf(object, object.length);
+ }
+
+ return copy;
+ }
+
+ @Override
+ public void clearBody() {
+ this.object = null;
+ }
+
+ @Override
+ public Serializable getObject() throws IOException, ClassNotFoundException {
+
+ if (isEmpty()) {
+ return null;
+ }
+
+ Serializable serialized = null;
+
+ try (ByteArrayInputStream dataIn = new ByteArrayInputStream(object);
+ ClassLoadingAwareObjectInputStream objIn = new ClassLoadingAwareObjectInputStream(dataIn)) {
+
+ serialized = (Serializable) objIn.readObject();
+ }
+
+ return serialized;
+ }
+
+ @Override
+ public void setObject(Serializable value) throws IOException {
+ byte[] serialized = null;
+ if (value != null) {
+ try (ByteArrayOutputStream baos = new ByteArrayOutputStream();
+ ObjectOutputStream oos = new ObjectOutputStream(baos)) {
+
+ oos.writeObject(value);
+ oos.flush();
+ oos.close();
+
+ serialized = baos.toByteArray();
+ }
+ }
+
+ this.object = serialized;
+ }
+}
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/9064cc8a/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/facade/defaults/JmsDefaultStreamMessageFacade.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/facade/defaults/JmsDefaultStreamMessageFacade.java b/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/facade/defaults/JmsDefaultStreamMessageFacade.java
new file mode 100644
index 0000000..1a0a17a
--- /dev/null
+++ b/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/facade/defaults/JmsDefaultStreamMessageFacade.java
@@ -0,0 +1,85 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.qpid.jms.message.facade.defaults;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.jms.MessageEOFException;
+
+import org.apache.qpid.jms.message.facade.JmsStreamMessageFacade;
+
+/**
+ * Default implementation of the JmsStreamMessageFacade
+ */
+public class JmsDefaultStreamMessageFacade extends JmsDefaultMessageFacade implements JmsStreamMessageFacade {
+
+ private final List<Object> stream = new ArrayList<Object>();
+ private int index = -1;
+
+ @Override
+ public JmsMsgType getMsgType() {
+ return JmsMsgType.STREAM;
+ }
+
+ @Override
+ public JmsDefaultStreamMessageFacade copy() {
+ JmsDefaultStreamMessageFacade copy = new JmsDefaultStreamMessageFacade();
+ copyInto(copy);
+ copy.stream.addAll(stream);
+ return copy;
+ }
+
+ @Override
+ public boolean hasNext() {
+ return !stream.isEmpty() && index < stream.size();
+ }
+
+ @Override
+ public Object peek() throws MessageEOFException {
+ if (stream.isEmpty() || index + 1 >= stream.size()) {
+ throw new MessageEOFException("Attempted to read past the end of the stream");
+ }
+
+ return stream.get(index + 1);
+ }
+
+ @Override
+ public void pop() throws MessageEOFException {
+ if (stream.isEmpty() || index + 1 >= stream.size()) {
+ throw new MessageEOFException("Attempted to read past the end of the stream");
+ }
+
+ index++;
+ }
+
+ @Override
+ public void put(Object value) {
+ stream.add(value);
+ }
+
+ @Override
+ public void clearBody() {
+ stream.clear();
+ index = -1;
+ }
+
+ @Override
+ public void reset() {
+ index = -1;
+ }
+}
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/9064cc8a/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/facade/defaults/JmsDefaultTextMessageFacade.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/facade/defaults/JmsDefaultTextMessageFacade.java b/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/facade/defaults/JmsDefaultTextMessageFacade.java
new file mode 100644
index 0000000..c21d5c1
--- /dev/null
+++ b/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/facade/defaults/JmsDefaultTextMessageFacade.java
@@ -0,0 +1,62 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.qpid.jms.message.facade.defaults;
+
+import org.apache.qpid.jms.message.facade.JmsTextMessageFacade;
+
+/**
+ * Default implementation of the JmsTextMessageFacade.
+ */
+public final class JmsDefaultTextMessageFacade extends JmsDefaultMessageFacade implements JmsTextMessageFacade {
+
+ private String text;
+
+ @Override
+ public JmsMsgType getMsgType() {
+ return JmsMsgType.TEXT;
+ }
+
+ @Override
+ public boolean isEmpty() {
+ return text != null && !text.isEmpty();
+ }
+
+ @Override
+ public JmsDefaultTextMessageFacade copy() {
+ JmsDefaultTextMessageFacade copy = new JmsDefaultTextMessageFacade();
+ copyInto(copy);
+ if (text != null) {
+ copy.setText(text);
+ }
+ return copy;
+ }
+
+ @Override
+ public void clearBody() {
+ this.text = null;
+ }
+
+ @Override
+ public String getText() {
+ return text;
+ }
+
+ @Override
+ public void setText(String text) {
+ this.text = text;
+ }
+}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org