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