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/15 23:24:37 UTC
[1/2] git commit: Add a set of JMS Message implementations that can
be used to test support for Foreign JMS Types.
Repository: qpid-jms
Updated Branches:
refs/heads/master c6618625d -> 6a221b168
Add a set of JMS Message implementations that can be used to test
support for Foreign JMS Types.
Project: http://git-wip-us.apache.org/repos/asf/qpid-jms/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-jms/commit/12cc2f37
Tree: http://git-wip-us.apache.org/repos/asf/qpid-jms/tree/12cc2f37
Diff: http://git-wip-us.apache.org/repos/asf/qpid-jms/diff/12cc2f37
Branch: refs/heads/master
Commit: 12cc2f37c03984817213ce1c9d03a0ceb2c7eca8
Parents: c661862
Author: Timothy Bish <ta...@gmail.com>
Authored: Wed Oct 15 15:12:32 2014 -0400
Committer: Timothy Bish <ta...@gmail.com>
Committed: Wed Oct 15 15:12:32 2014 -0400
----------------------------------------------------------------------
.../message/JmsMessageTransformationTest.java | 13 +
.../message/foreign/ForeignJmsBytesMessage.java | 171 ++++++++++++
.../message/foreign/ForeignJmsMapMessage.java | 163 +++++++++++
.../jms/message/foreign/ForeignJmsMessage.java | 268 +++++++++++++++++++
.../foreign/ForeignJmsObjectMessage.java | 48 ++++
.../foreign/ForeignJmsStreamMessage.java | 156 +++++++++++
.../message/foreign/ForeignJmsTextMessage.java | 46 ++++
7 files changed, 865 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/12cc2f37/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/JmsMessageTransformationTest.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/JmsMessageTransformationTest.java b/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/JmsMessageTransformationTest.java
index 8dc485b..9893946 100644
--- a/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/JmsMessageTransformationTest.java
+++ b/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/JmsMessageTransformationTest.java
@@ -36,6 +36,8 @@ import org.apache.qpid.jms.JmsConnection;
import org.apache.qpid.jms.JmsDestination;
import org.apache.qpid.jms.JmsTopic;
import org.apache.qpid.jms.message.facade.defaults.JmsDefaultMessageFacade;
+import org.apache.qpid.jms.message.facade.defaults.JmsDefaultMessageFactory;
+import org.apache.qpid.jms.message.foreign.ForeignJmsMessage;
import org.junit.Test;
import org.mockito.Mockito;
@@ -65,6 +67,15 @@ public class JmsMessageTransformationTest {
assertNotSame(source, copy);
}
+ @Test
+ public void testBasicMessageTransformCreateNewMessage() throws JMSException {
+ ForeignJmsMessage foreignMessage = new ForeignJmsMessage();
+
+ JmsMessage transformed = JmsMessageTransformation.transformMessage(createMockJmsConnection(), foreignMessage);
+ assertNotSame(foreignMessage, transformed);
+ assertFalse(transformed.equals(foreignMessage));
+ }
+
//---------- Test Generic Property Copy ----------------------------------//
@Test
@@ -205,6 +216,8 @@ public class JmsMessageTransformationTest {
private JmsConnection createMockJmsConnection() {
JmsConnection connection = Mockito.mock(JmsConnection.class);
+ Mockito.when(connection.getMessageFactory()).thenReturn(new JmsDefaultMessageFactory());
+
return connection;
}
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/12cc2f37/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/foreign/ForeignJmsBytesMessage.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/foreign/ForeignJmsBytesMessage.java b/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/foreign/ForeignJmsBytesMessage.java
new file mode 100644
index 0000000..d8ea4be
--- /dev/null
+++ b/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/foreign/ForeignJmsBytesMessage.java
@@ -0,0 +1,171 @@
+/**
+ * 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.foreign;
+
+import javax.jms.BytesMessage;
+import javax.jms.JMSException;
+
+import org.apache.qpid.jms.message.JmsBytesMessage;
+import org.apache.qpid.jms.message.facade.defaults.JmsDefaultBytesMessageFacade;
+
+/**
+ * Foreign JMS BytesMessage type.
+ */
+public class ForeignJmsBytesMessage extends ForeignJmsMessage implements BytesMessage {
+
+ private final JmsBytesMessage message;
+
+ public ForeignJmsBytesMessage() {
+ super(new JmsBytesMessage(new JmsDefaultBytesMessageFacade()));
+ this.message = (JmsBytesMessage) super.message;
+ }
+
+ @Override
+ public long getBodyLength() throws JMSException {
+ return message.getBodyLength();
+ }
+
+ @Override
+ public boolean readBoolean() throws JMSException {
+ return message.readBoolean();
+ }
+
+ @Override
+ public byte readByte() throws JMSException {
+ return message.readByte();
+ }
+
+ @Override
+ public int readUnsignedByte() throws JMSException {
+ return message.readUnsignedByte();
+ }
+
+ @Override
+ public short readShort() throws JMSException {
+ return message.readShort();
+ }
+
+ @Override
+ public int readUnsignedShort() throws JMSException {
+ return message.readUnsignedShort();
+ }
+
+ @Override
+ public char readChar() throws JMSException {
+ return message.readChar();
+ }
+
+ @Override
+ public int readInt() throws JMSException {
+ return message.readInt();
+ }
+
+ @Override
+ public long readLong() throws JMSException {
+ return message.readLong();
+ }
+
+ @Override
+ public float readFloat() throws JMSException {
+ return message.readFloat();
+ }
+
+ @Override
+ public double readDouble() throws JMSException {
+ return message.readDouble();
+ }
+
+ @Override
+ public String readUTF() throws JMSException {
+ return message.readUTF();
+ }
+
+ @Override
+ public int readBytes(byte[] value) throws JMSException {
+ return message.readBytes(value);
+ }
+
+ @Override
+ public int readBytes(byte[] value, int length) throws JMSException {
+ return message.readBytes(value, length);
+ }
+
+ @Override
+ public void writeBoolean(boolean value) throws JMSException {
+ message.writeBoolean(value);
+ }
+
+ @Override
+ public void writeByte(byte value) throws JMSException {
+ message.writeByte(value);
+ }
+
+ @Override
+ public void writeShort(short value) throws JMSException {
+ message.writeShort(value);
+ }
+
+ @Override
+ public void writeChar(char value) throws JMSException {
+ message.writeChar(value);
+ }
+
+ @Override
+ public void writeInt(int value) throws JMSException {
+ message.writeInt(value);
+ }
+
+ @Override
+ public void writeLong(long value) throws JMSException {
+ message.writeLong(value);
+ }
+
+ @Override
+ public void writeFloat(float value) throws JMSException {
+ message.writeFloat(value);
+ }
+
+ @Override
+ public void writeDouble(double value) throws JMSException {
+ message.writeDouble(value);
+ }
+
+ @Override
+ public void writeUTF(String value) throws JMSException {
+ message.writeUTF(value);
+ }
+
+ @Override
+ public void writeBytes(byte[] value) throws JMSException {
+ message.writeBytes(value);
+ }
+
+ @Override
+ public void writeBytes(byte[] value, int offset, int length) throws JMSException {
+ message.writeBytes(value, offset, length);
+ }
+
+ @Override
+ public void writeObject(Object value) throws JMSException {
+ message.writeObject(value);
+ }
+
+ @Override
+ public void reset() throws JMSException {
+ message.reset();
+ }
+}
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/12cc2f37/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/foreign/ForeignJmsMapMessage.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/foreign/ForeignJmsMapMessage.java b/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/foreign/ForeignJmsMapMessage.java
new file mode 100644
index 0000000..9d31868
--- /dev/null
+++ b/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/foreign/ForeignJmsMapMessage.java
@@ -0,0 +1,163 @@
+/**
+ * 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.foreign;
+
+import java.util.Enumeration;
+
+import javax.jms.JMSException;
+import javax.jms.MapMessage;
+
+import org.apache.qpid.jms.message.JmsMapMessage;
+import org.apache.qpid.jms.message.facade.defaults.JmsDefaultMapMessageFacade;
+
+/**
+ * Foreign JMS MapMessage class
+ */
+public class ForeignJmsMapMessage extends ForeignJmsMessage implements MapMessage {
+
+ private final JmsMapMessage message;
+
+ public ForeignJmsMapMessage() {
+ super(new JmsMapMessage(new JmsDefaultMapMessageFacade()));
+ this.message = (JmsMapMessage) super.message;
+ }
+
+ @Override
+ public boolean getBoolean(String name) throws JMSException {
+ return message.getBoolean(name);
+ }
+
+ @Override
+ public byte getByte(String name) throws JMSException {
+ return message.getByte(name);
+ }
+
+ @Override
+ public short getShort(String name) throws JMSException {
+ return message.getShort(name);
+ }
+
+ @Override
+ public char getChar(String name) throws JMSException {
+ return message.getChar(name);
+ }
+
+ @Override
+ public int getInt(String name) throws JMSException {
+ return message.getInt(name);
+ }
+
+ @Override
+ public long getLong(String name) throws JMSException {
+ return message.getLong(name);
+ }
+
+ @Override
+ public float getFloat(String name) throws JMSException {
+ return message.getFloat(name);
+ }
+
+ @Override
+ public double getDouble(String name) throws JMSException {
+ return message.getDouble(name);
+ }
+
+ @Override
+ public String getString(String name) throws JMSException {
+ return message.getString(name);
+ }
+
+ @Override
+ public byte[] getBytes(String name) throws JMSException {
+ return message.getBytes(name);
+ }
+
+ @Override
+ public Object getObject(String name) throws JMSException {
+ return message.getObject(name);
+ }
+
+ @Override
+ public Enumeration<String> getMapNames() throws JMSException {
+ return message.getMapNames();
+ }
+
+ @Override
+ public void setBoolean(String name, boolean value) throws JMSException {
+ message.setBoolean(name, value);
+ }
+
+ @Override
+ public void setByte(String name, byte value) throws JMSException {
+ message.setByteProperty(name, value);
+ }
+
+ @Override
+ public void setShort(String name, short value) throws JMSException {
+ message.setShort(name, value);
+ }
+
+ @Override
+ public void setChar(String name, char value) throws JMSException {
+ message.setChar(name, value);
+ }
+
+ @Override
+ public void setInt(String name, int value) throws JMSException {
+ message.setInt(name, value);
+ }
+
+ @Override
+ public void setLong(String name, long value) throws JMSException {
+ message.setLong(name, value);
+ }
+
+ @Override
+ public void setFloat(String name, float value) throws JMSException {
+ message.setFloat(name, value);
+ }
+
+ @Override
+ public void setDouble(String name, double value) throws JMSException {
+ message.setDouble(name, value);
+ }
+
+ @Override
+ public void setString(String name, String value) throws JMSException {
+ message.setString(name, value);
+ }
+
+ @Override
+ public void setBytes(String name, byte[] value) throws JMSException {
+ message.setBytes(name, value);
+ }
+
+ @Override
+ public void setBytes(String name, byte[] value, int offset, int length) throws JMSException {
+ message.setBytes(name, value, offset, length);
+ }
+
+ @Override
+ public void setObject(String name, Object value) throws JMSException {
+ message.setObject(name, value);
+ }
+
+ @Override
+ public boolean itemExists(String name) throws JMSException {
+ return message.itemExists(name);
+ }
+}
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/12cc2f37/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/foreign/ForeignJmsMessage.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/foreign/ForeignJmsMessage.java b/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/foreign/ForeignJmsMessage.java
new file mode 100644
index 0000000..3ce20a0
--- /dev/null
+++ b/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/foreign/ForeignJmsMessage.java
@@ -0,0 +1,268 @@
+/**
+ * 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.foreign;
+
+import java.util.Enumeration;
+
+import javax.jms.Destination;
+import javax.jms.JMSException;
+import javax.jms.Message;
+
+import org.apache.qpid.jms.message.JmsMessage;
+import org.apache.qpid.jms.message.facade.defaults.JmsDefaultMessageFactory;
+
+/**
+ * Test class used to simulate receipt of a JMS Message from another
+ * client library.
+ */
+public class ForeignJmsMessage implements Message {
+
+ protected final JmsMessage message;
+
+ public ForeignJmsMessage() {
+ this.message = new JmsDefaultMessageFactory().createMessage();
+ }
+
+ protected ForeignJmsMessage(JmsMessage message) {
+ this.message = message;
+ }
+
+ @Override
+ public String getJMSMessageID() throws JMSException {
+ return message.getJMSMessageID();
+ }
+
+ @Override
+ public void setJMSMessageID(String messageId) throws JMSException {
+ message.setJMSMessageID(messageId);
+ }
+
+ @Override
+ public long getJMSTimestamp() throws JMSException {
+ return message.getJMSTimestamp();
+ }
+
+ @Override
+ public void setJMSTimestamp(long timestamp) throws JMSException {
+ message.setJMSTimestamp(timestamp);
+ }
+
+ @Override
+ public byte[] getJMSCorrelationIDAsBytes() throws JMSException {
+ return message.getJMSCorrelationIDAsBytes();
+ }
+
+ @Override
+ public void setJMSCorrelationIDAsBytes(byte[] correlationID) throws JMSException {
+ message.setJMSCorrelationIDAsBytes(correlationID);
+ }
+
+ @Override
+ public void setJMSCorrelationID(String correlationID) throws JMSException {
+ message.setJMSCorrelationID(correlationID);
+ }
+
+ @Override
+ public String getJMSCorrelationID() throws JMSException {
+ return message.getJMSCorrelationID();
+ }
+
+ @Override
+ public Destination getJMSReplyTo() throws JMSException {
+ return message.getJMSReplyTo();
+ }
+
+ @Override
+ public void setJMSReplyTo(Destination replyTo) throws JMSException {
+ message.setJMSReplyTo(replyTo);
+ }
+
+ @Override
+ public Destination getJMSDestination() throws JMSException {
+ return message.getJMSDestination();
+ }
+
+ @Override
+ public void setJMSDestination(Destination destination) throws JMSException {
+ message.setJMSDestination(destination);
+ }
+
+ @Override
+ public int getJMSDeliveryMode() throws JMSException {
+ return message.getJMSDeliveryMode();
+ }
+
+ @Override
+ public void setJMSDeliveryMode(int deliveryMode) throws JMSException {
+ message.setJMSDeliveryMode(deliveryMode);
+ }
+
+ @Override
+ public boolean getJMSRedelivered() throws JMSException {
+ return message.getJMSRedelivered();
+ }
+
+ @Override
+ public void setJMSRedelivered(boolean redelivered) throws JMSException {
+ message.setJMSRedelivered(redelivered);
+ }
+
+ @Override
+ public String getJMSType() throws JMSException {
+ return message.getJMSType();
+ }
+
+ @Override
+ public void setJMSType(String type) throws JMSException {
+ message.setJMSType(type);
+ }
+
+ @Override
+ public long getJMSExpiration() throws JMSException {
+ return message.getJMSExpiration();
+ }
+
+ @Override
+ public void setJMSExpiration(long expiration) throws JMSException {
+ message.setJMSExpiration(expiration);
+ }
+
+ @Override
+ public int getJMSPriority() throws JMSException {
+ return message.getJMSPriority();
+ }
+
+ @Override
+ public void setJMSPriority(int priority) throws JMSException {
+ message.setJMSPriority(priority);
+ }
+
+ @Override
+ public void clearProperties() throws JMSException {
+ message.clearProperties();
+ }
+
+ @Override
+ public boolean propertyExists(String name) throws JMSException {
+ return message.propertyExists(name);
+ }
+
+ @Override
+ public boolean getBooleanProperty(String name) throws JMSException {
+ return message.getBooleanProperty(name);
+ }
+
+ @Override
+ public byte getByteProperty(String name) throws JMSException {
+ return getByteProperty(name);
+ }
+
+ @Override
+ public short getShortProperty(String name) throws JMSException {
+ return getShortProperty(name);
+ }
+
+ @Override
+ public int getIntProperty(String name) throws JMSException {
+ return getIntProperty(name);
+ }
+
+ @Override
+ public long getLongProperty(String name) throws JMSException {
+ return message.getLongProperty(name);
+ }
+
+ @Override
+ public float getFloatProperty(String name) throws JMSException {
+ return message.getFloatProperty(name);
+ }
+
+ @Override
+ public double getDoubleProperty(String name) throws JMSException {
+ return message.getDoubleProperty(name);
+ }
+
+ @Override
+ public String getStringProperty(String name) throws JMSException {
+ return message.getStringProperty(name);
+ }
+
+ @Override
+ public Object getObjectProperty(String name) throws JMSException {
+ return message.getObjectProperty(name);
+ }
+
+ @Override
+ public Enumeration<?> getPropertyNames() throws JMSException {
+ return message.getPropertyNames();
+ }
+
+ @Override
+ public void setBooleanProperty(String name, boolean value) throws JMSException {
+ message.setBooleanProperty(name, value);
+ }
+
+ @Override
+ public void setByteProperty(String name, byte value) throws JMSException {
+ message.setByteProperty(name, value);
+ }
+
+ @Override
+ public void setShortProperty(String name, short value) throws JMSException {
+ message.setShortProperty(name, value);
+ }
+
+ @Override
+ public void setIntProperty(String name, int value) throws JMSException {
+ message.setIntProperty(name, value);
+ }
+
+ @Override
+ public void setLongProperty(String name, long value) throws JMSException {
+ message.setLongProperty(name, value);
+ }
+
+ @Override
+ public void setFloatProperty(String name, float value) throws JMSException {
+ message.setFloatProperty(name, value);
+ }
+
+ @Override
+ public void setDoubleProperty(String name, double value) throws JMSException {
+ message.setDoubleProperty(name, value);
+ }
+
+ @Override
+ public void setStringProperty(String name, String value) throws JMSException {
+ message.setStringProperty(name, value);
+ }
+
+ @Override
+ public void setObjectProperty(String name, Object value) throws JMSException {
+ message.setObjectProperty(name, value);
+ }
+
+ @Override
+ public void acknowledge() throws JMSException {
+ message.acknowledge();
+ }
+
+ @Override
+ public void clearBody() throws JMSException {
+ message.clearBody();
+ }
+}
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/12cc2f37/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/foreign/ForeignJmsObjectMessage.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/foreign/ForeignJmsObjectMessage.java b/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/foreign/ForeignJmsObjectMessage.java
new file mode 100644
index 0000000..dcce895
--- /dev/null
+++ b/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/foreign/ForeignJmsObjectMessage.java
@@ -0,0 +1,48 @@
+/**
+ * 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.foreign;
+
+import java.io.Serializable;
+
+import javax.jms.JMSException;
+import javax.jms.ObjectMessage;
+
+import org.apache.qpid.jms.message.JmsObjectMessage;
+import org.apache.qpid.jms.message.facade.defaults.JmsDefaultObjectMessageFacade;
+
+/**
+ * Foreign JMS ObjectMessage class
+ */
+public class ForeignJmsObjectMessage extends ForeignJmsMessage implements ObjectMessage {
+
+ private final JmsObjectMessage message;
+
+ public ForeignJmsObjectMessage() {
+ super(new JmsObjectMessage(new JmsDefaultObjectMessageFacade()));
+ this.message = (JmsObjectMessage) super.message;
+ }
+
+ @Override
+ public void setObject(Serializable object) throws JMSException {
+ message.setObject(object);
+ }
+
+ @Override
+ public Serializable getObject() throws JMSException {
+ return message.getObject();
+ }
+}
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/12cc2f37/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/foreign/ForeignJmsStreamMessage.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/foreign/ForeignJmsStreamMessage.java b/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/foreign/ForeignJmsStreamMessage.java
new file mode 100644
index 0000000..b35f455
--- /dev/null
+++ b/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/foreign/ForeignJmsStreamMessage.java
@@ -0,0 +1,156 @@
+/**
+ * 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.foreign;
+
+import javax.jms.JMSException;
+import javax.jms.StreamMessage;
+
+import org.apache.qpid.jms.message.JmsStreamMessage;
+import org.apache.qpid.jms.message.facade.defaults.JmsDefaultStreamMessageFacade;
+
+/**
+ * Foreign JMS StreamMessage class
+ */
+public class ForeignJmsStreamMessage extends ForeignJmsMessage implements StreamMessage {
+
+ private final JmsStreamMessage message;
+
+ public ForeignJmsStreamMessage() {
+ super(new JmsStreamMessage(new JmsDefaultStreamMessageFacade()));
+ this.message = (JmsStreamMessage) super.message;
+ }
+
+ @Override
+ public boolean readBoolean() throws JMSException {
+ return message.readBoolean();
+ }
+
+ @Override
+ public byte readByte() throws JMSException {
+ return message.readByte();
+ }
+
+ @Override
+ public short readShort() throws JMSException {
+ return message.readShort();
+ }
+
+ @Override
+ public char readChar() throws JMSException {
+ return message.readChar();
+ }
+
+ @Override
+ public int readInt() throws JMSException {
+ return message.readInt();
+ }
+
+ @Override
+ public long readLong() throws JMSException {
+ return message.readLong();
+ }
+
+ @Override
+ public float readFloat() throws JMSException {
+ return message.readFloat();
+ }
+
+ @Override
+ public double readDouble() throws JMSException {
+ return message.readDouble();
+ }
+
+ @Override
+ public String readString() throws JMSException {
+ return message.readString();
+ }
+
+ @Override
+ public int readBytes(byte[] value) throws JMSException {
+ return message.readBytes(value);
+ }
+
+ @Override
+ public Object readObject() throws JMSException {
+ return message.readObject();
+ }
+
+ @Override
+ public void writeBoolean(boolean value) throws JMSException {
+ message.writeBoolean(value);
+ }
+
+ @Override
+ public void writeByte(byte value) throws JMSException {
+ message.writeByte(value);
+ }
+
+ @Override
+ public void writeShort(short value) throws JMSException {
+ message.writeShort(value);
+ }
+
+ @Override
+ public void writeChar(char value) throws JMSException {
+ message.writeChar(value);
+ }
+
+ @Override
+ public void writeInt(int value) throws JMSException {
+ message.writeInt(value);
+ }
+
+ @Override
+ public void writeLong(long value) throws JMSException {
+ message.writeLong(value);
+ }
+
+ @Override
+ public void writeFloat(float value) throws JMSException {
+ message.writeFloat(value);
+ }
+
+ @Override
+ public void writeDouble(double value) throws JMSException {
+ message.writeDouble(value);
+ }
+
+ @Override
+ public void writeString(String value) throws JMSException {
+ message.writeString(value);
+ }
+
+ @Override
+ public void writeBytes(byte[] value) throws JMSException {
+ message.writeBytes(value);
+ }
+
+ @Override
+ public void writeBytes(byte[] value, int offset, int length) throws JMSException {
+ message.writeBytes(value, offset, length);
+ }
+
+ @Override
+ public void writeObject(Object value) throws JMSException {
+ message.writeObject(value);
+ }
+
+ @Override
+ public void reset() throws JMSException {
+ message.reset();
+ }
+}
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/12cc2f37/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/foreign/ForeignJmsTextMessage.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/foreign/ForeignJmsTextMessage.java b/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/foreign/ForeignJmsTextMessage.java
new file mode 100644
index 0000000..1fd2c11
--- /dev/null
+++ b/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/foreign/ForeignJmsTextMessage.java
@@ -0,0 +1,46 @@
+/**
+ * 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.foreign;
+
+import javax.jms.JMSException;
+import javax.jms.TextMessage;
+
+import org.apache.qpid.jms.message.JmsTextMessage;
+import org.apache.qpid.jms.message.facade.defaults.JmsDefaultTextMessageFacade;
+
+/**
+ * Foreign JMS TextMessage class
+ */
+public class ForeignJmsTextMessage extends ForeignJmsMessage implements TextMessage {
+
+ private final JmsTextMessage message;
+
+ public ForeignJmsTextMessage() {
+ super(new JmsTextMessage(new JmsDefaultTextMessageFacade()));
+ this.message = (JmsTextMessage) super.message;
+ }
+
+ @Override
+ public void setText(String string) throws JMSException {
+ message.setText(string);
+ }
+
+ @Override
+ public String getText() throws JMSException {
+ return message.getText();
+ }
+}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org
[2/2] git commit: Test and cleanup the transformation of Foreign
messages.
Posted by ta...@apache.org.
Test and cleanup the transformation of Foreign messages.
Project: http://git-wip-us.apache.org/repos/asf/qpid-jms/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-jms/commit/6a221b16
Tree: http://git-wip-us.apache.org/repos/asf/qpid-jms/tree/6a221b16
Diff: http://git-wip-us.apache.org/repos/asf/qpid-jms/diff/6a221b16
Branch: refs/heads/master
Commit: 6a221b1686f454cbeb35092ae0baf9909faaca4e
Parents: 12cc2f3
Author: Timothy Bish <ta...@gmail.com>
Authored: Wed Oct 15 17:24:29 2014 -0400
Committer: Timothy Bish <ta...@gmail.com>
Committed: Wed Oct 15 17:24:29 2014 -0400
----------------------------------------------------------------------
.../jms/message/JmsMessageTransformation.java | 2 -
.../message/JmsMessageTransformationTest.java | 199 ++++++++++++++++++-
2 files changed, 198 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/6a221b16/qpid-jms-client/src/main/java/org/apache/qpid/jms/message/JmsMessageTransformation.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/main/java/org/apache/qpid/jms/message/JmsMessageTransformation.java b/qpid-jms-client/src/main/java/org/apache/qpid/jms/message/JmsMessageTransformation.java
index 9dfd85b..896bc6a 100644
--- a/qpid-jms-client/src/main/java/org/apache/qpid/jms/message/JmsMessageTransformation.java
+++ b/qpid-jms-client/src/main/java/org/apache/qpid/jms/message/JmsMessageTransformation.java
@@ -124,7 +124,6 @@ public final class JmsMessageTransformation {
}
} catch (MessageEOFException e) {
// Indicates all the bytes have been read from the source.
- } catch (JMSException e) {
}
activeMessage = msg;
@@ -156,7 +155,6 @@ public final class JmsMessageTransformation {
}
} catch (MessageEOFException e) {
// Indicates all the stream values have been read from the source.
- } catch (JMSException e) {
}
activeMessage = msg;
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/6a221b16/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/JmsMessageTransformationTest.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/JmsMessageTransformationTest.java b/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/JmsMessageTransformationTest.java
index 9893946..f974e03 100644
--- a/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/JmsMessageTransformationTest.java
+++ b/qpid-jms-client/src/test/java/org/apache/qpid/jms/message/JmsMessageTransformationTest.java
@@ -27,6 +27,7 @@ import static org.junit.Assert.fail;
import javax.jms.Destination;
import javax.jms.JMSException;
+import javax.jms.MessageEOFException;
import javax.jms.Queue;
import javax.jms.TemporaryQueue;
import javax.jms.TemporaryTopic;
@@ -37,7 +38,12 @@ import org.apache.qpid.jms.JmsDestination;
import org.apache.qpid.jms.JmsTopic;
import org.apache.qpid.jms.message.facade.defaults.JmsDefaultMessageFacade;
import org.apache.qpid.jms.message.facade.defaults.JmsDefaultMessageFactory;
+import org.apache.qpid.jms.message.foreign.ForeignJmsBytesMessage;
+import org.apache.qpid.jms.message.foreign.ForeignJmsMapMessage;
import org.apache.qpid.jms.message.foreign.ForeignJmsMessage;
+import org.apache.qpid.jms.message.foreign.ForeignJmsObjectMessage;
+import org.apache.qpid.jms.message.foreign.ForeignJmsStreamMessage;
+import org.apache.qpid.jms.message.foreign.ForeignJmsTextMessage;
import org.junit.Test;
import org.mockito.Mockito;
@@ -68,7 +74,7 @@ public class JmsMessageTransformationTest {
}
@Test
- public void testBasicMessageTransformCreateNewMessage() throws JMSException {
+ public void testForeignMessageTransformCreateNewMessage() throws JMSException {
ForeignJmsMessage foreignMessage = new ForeignJmsMessage();
JmsMessage transformed = JmsMessageTransformation.transformMessage(createMockJmsConnection(), foreignMessage);
@@ -76,6 +82,197 @@ public class JmsMessageTransformationTest {
assertFalse(transformed.equals(foreignMessage));
}
+ @Test
+ public void testEmptyForeignBytesMessageTransformCreateNewMessage() throws JMSException {
+ ForeignJmsBytesMessage foreignMessage = new ForeignJmsBytesMessage();
+
+ JmsMessage transformed = JmsMessageTransformation.transformMessage(createMockJmsConnection(), foreignMessage);
+ assertNotSame(foreignMessage, transformed);
+ assertFalse(transformed.equals(foreignMessage));
+
+ assertTrue(transformed instanceof JmsBytesMessage);
+ JmsBytesMessage message = (JmsBytesMessage) transformed;
+ message.reset();
+ assertEquals(0, message.getBodyLength());
+ }
+
+ @Test
+ public void testForeignBytesMessageTransformCreateNewMessage() throws JMSException {
+ ForeignJmsBytesMessage foreignMessage = new ForeignJmsBytesMessage();
+ foreignMessage.writeBoolean(true);
+ foreignMessage.setBooleanProperty("boolProperty", true);
+
+ JmsMessage transformed = JmsMessageTransformation.transformMessage(createMockJmsConnection(), foreignMessage);
+ assertNotSame(foreignMessage, transformed);
+ assertFalse(transformed.equals(foreignMessage));
+
+ assertTrue(transformed instanceof JmsBytesMessage);
+ JmsBytesMessage message = (JmsBytesMessage) transformed;
+ message.reset();
+ assertTrue(message.getBodyLength() > 0);
+ assertTrue(message.propertyExists("boolProperty"));
+ }
+
+ @Test
+ public void testEmptyForeignTextMessageTransformCreateNewMessage() throws JMSException {
+ ForeignJmsTextMessage foreignMessage = new ForeignJmsTextMessage();
+
+ JmsMessage transformed = JmsMessageTransformation.transformMessage(createMockJmsConnection(), foreignMessage);
+ assertNotSame(foreignMessage, transformed);
+ assertFalse(transformed.equals(foreignMessage));
+
+ assertTrue(transformed instanceof JmsTextMessage);
+ JmsTextMessage message = (JmsTextMessage) transformed;
+ assertNull(message.getText());
+ }
+
+ @Test
+ public void testForeignTextMessageTransformCreateNewMessage() throws JMSException {
+ final String MESSAGE_BODY = "TEST-MESSAGE-BODY";
+
+ ForeignJmsTextMessage foreignMessage = new ForeignJmsTextMessage();
+ foreignMessage.setText(MESSAGE_BODY);
+ foreignMessage.setBooleanProperty("boolProperty", true);
+
+ JmsMessage transformed = JmsMessageTransformation.transformMessage(createMockJmsConnection(), foreignMessage);
+ assertNotSame(foreignMessage, transformed);
+ assertFalse(transformed.equals(foreignMessage));
+
+ assertTrue(transformed instanceof JmsTextMessage);
+ JmsTextMessage message = (JmsTextMessage) transformed;
+ assertEquals(MESSAGE_BODY, message.getText());
+ assertTrue(message.propertyExists("boolProperty"));
+ }
+
+ @Test
+ public void testEmptyForeignMapMessageTransformCreateNewMessage() throws JMSException {
+ ForeignJmsMapMessage foreignMessage = new ForeignJmsMapMessage();
+
+ JmsMessage transformed = JmsMessageTransformation.transformMessage(createMockJmsConnection(), foreignMessage);
+ assertNotSame(foreignMessage, transformed);
+ assertFalse(transformed.equals(foreignMessage));
+
+ assertTrue(transformed instanceof JmsMapMessage);
+ JmsMapMessage message = (JmsMapMessage) transformed;
+ assertFalse(message.getMapNames().hasMoreElements());
+ }
+
+ @Test
+ public void testForeignMapMessageTransformCreateNewMessage() throws JMSException {
+ ForeignJmsMapMessage foreignMessage = new ForeignJmsMapMessage();
+ foreignMessage.setBoolean("property1", true);
+ foreignMessage.setShort("property2", (short) 65535);
+ foreignMessage.setBooleanProperty("boolProperty", true);
+
+ JmsMessage transformed = JmsMessageTransformation.transformMessage(createMockJmsConnection(), foreignMessage);
+ assertNotSame(foreignMessage, transformed);
+ assertFalse(transformed.equals(foreignMessage));
+
+ assertTrue(transformed instanceof JmsMapMessage);
+ JmsMapMessage message = (JmsMapMessage) transformed;
+ assertTrue(message.propertyExists("boolProperty"));
+ assertTrue(message.getMapNames().hasMoreElements());
+ assertTrue(message.itemExists("property1"));
+ assertTrue(message.itemExists("property2"));
+ }
+
+ @Test
+ public void testEmptyForeignStreamMessageTransformCreateNewMessage() throws JMSException {
+ ForeignJmsStreamMessage foreignMessage = new ForeignJmsStreamMessage();
+
+ JmsMessage transformed = JmsMessageTransformation.transformMessage(createMockJmsConnection(), foreignMessage);
+ assertNotSame(foreignMessage, transformed);
+ assertFalse(transformed.equals(foreignMessage));
+
+ assertTrue(transformed instanceof JmsStreamMessage);
+ JmsStreamMessage message = (JmsStreamMessage) transformed;
+ message.reset();
+ try {
+ message.readBoolean();
+ } catch (MessageEOFException ex) {}
+ }
+
+ @Test
+ public void tesAbnormalForeignStreamMessageTransformCreateNewMessage() throws JMSException {
+ ForeignJmsStreamMessage foreignMessage = new ForeignJmsStreamMessage();
+ foreignMessage.writeObject(true);
+ foreignMessage.reset();
+ foreignMessage = Mockito.spy(foreignMessage);
+
+ // Test for an odd StreamMessage that return null instead of throwing a MessageEOFException
+ Mockito.when(foreignMessage.readObject()).thenReturn(true).
+ thenReturn(false).
+ thenReturn(true).
+ thenReturn(null);
+
+ JmsMessage transformed = JmsMessageTransformation.transformMessage(createMockJmsConnection(), foreignMessage);
+ assertNotSame(foreignMessage, transformed);
+ assertFalse(transformed.equals(foreignMessage));
+
+ assertTrue(transformed instanceof JmsStreamMessage);
+ JmsStreamMessage message = (JmsStreamMessage) transformed;
+ message.reset();
+
+ assertTrue(message.readBoolean());
+ assertFalse(message.readBoolean());
+ assertTrue(message.readBoolean());
+ try {
+ message.readBoolean();
+ } catch (MessageEOFException ex) {}
+ }
+
+ @Test
+ public void testForeignStreamMessageTransformCreateNewMessage() throws JMSException {
+ ForeignJmsStreamMessage foreignMessage = new ForeignJmsStreamMessage();
+ foreignMessage.writeBoolean(true);
+ foreignMessage.writeString("test");
+ foreignMessage.writeBoolean(true);
+ foreignMessage.setBooleanProperty("boolProperty", true);
+
+ JmsMessage transformed = JmsMessageTransformation.transformMessage(createMockJmsConnection(), foreignMessage);
+ assertNotSame(foreignMessage, transformed);
+ assertFalse(transformed.equals(foreignMessage));
+
+ assertTrue(transformed instanceof JmsStreamMessage);
+ JmsStreamMessage message = (JmsStreamMessage) transformed;
+ assertTrue(message.propertyExists("boolProperty"));
+ message.reset();
+ assertTrue(message.readBoolean());
+ assertEquals("test", message.readString());
+ assertTrue(message.readBoolean());
+ }
+
+ @Test
+ public void testEmptyForeignObjectMessageTransformCreateNewMessage() throws JMSException {
+ ForeignJmsObjectMessage foreignMessage = new ForeignJmsObjectMessage();
+
+ JmsMessage transformed = JmsMessageTransformation.transformMessage(createMockJmsConnection(), foreignMessage);
+ assertNotSame(foreignMessage, transformed);
+ assertFalse(transformed.equals(foreignMessage));
+
+ assertTrue(transformed instanceof JmsObjectMessage);
+ JmsObjectMessage message = (JmsObjectMessage) transformed;
+ assertNull(message.getObject());
+ }
+
+ @Test
+ public void testForeignObjectMessageTransformCreateNewMessage() throws JMSException {
+ final String MESSAGE_BODY = "TEST-MESSAGE-BODY";
+
+ ForeignJmsObjectMessage foreignMessage = new ForeignJmsObjectMessage();
+ foreignMessage.setBooleanProperty("boolProperty", true);
+ foreignMessage.setObject(MESSAGE_BODY);
+
+ JmsMessage transformed = JmsMessageTransformation.transformMessage(createMockJmsConnection(), foreignMessage);
+ assertNotSame(foreignMessage, transformed);
+ assertFalse(transformed.equals(foreignMessage));
+
+ assertTrue(transformed instanceof JmsObjectMessage);
+ JmsObjectMessage message = (JmsObjectMessage) transformed;
+ assertTrue(message.propertyExists("boolProperty"));
+ assertEquals(MESSAGE_BODY, message.getObject());
+ }
+
//---------- Test Generic Property Copy ----------------------------------//
@Test
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org