You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by ro...@apache.org on 2016/12/13 17:10:13 UTC

[1/2] qpid-jms git commit: QPIDJMS-207: remove redundant test, covered in client module, and elsewhere using proper ActiveMQ messages

Repository: qpid-jms
Updated Branches:
  refs/heads/master b558fff36 -> 56d1622a6


QPIDJMS-207: remove redundant test, covered in client module, and elsewhere using proper ActiveMQ 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/720c6501
Tree: http://git-wip-us.apache.org/repos/asf/qpid-jms/tree/720c6501
Diff: http://git-wip-us.apache.org/repos/asf/qpid-jms/diff/720c6501

Branch: refs/heads/master
Commit: 720c65010a6e61483402693e8f58093c96b763ec
Parents: b558fff
Author: Robert Gemmell <ro...@apache.org>
Authored: Tue Dec 13 16:50:14 2016 +0000
Committer: Robert Gemmell <ro...@apache.org>
Committed: Tue Dec 13 16:50:14 2016 +0000

----------------------------------------------------------------------
 .../qpid/jms/JmsMessageIntegrityTest.java       | 314 -------------------
 1 file changed, 314 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/720c6501/qpid-jms-interop-tests/qpid-jms-activemq-tests/src/test/java/org/apache/qpid/jms/JmsMessageIntegrityTest.java
----------------------------------------------------------------------
diff --git a/qpid-jms-interop-tests/qpid-jms-activemq-tests/src/test/java/org/apache/qpid/jms/JmsMessageIntegrityTest.java b/qpid-jms-interop-tests/qpid-jms-activemq-tests/src/test/java/org/apache/qpid/jms/JmsMessageIntegrityTest.java
index c9ca39e..f6f96de 100644
--- a/qpid-jms-interop-tests/qpid-jms-activemq-tests/src/test/java/org/apache/qpid/jms/JmsMessageIntegrityTest.java
+++ b/qpid-jms-interop-tests/qpid-jms-activemq-tests/src/test/java/org/apache/qpid/jms/JmsMessageIntegrityTest.java
@@ -22,18 +22,13 @@ import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 
-import java.util.Enumeration;
-import java.util.HashMap;
 import java.util.UUID;
-import java.util.Vector;
 
 import javax.jms.BytesMessage;
 import javax.jms.Destination;
-import javax.jms.JMSException;
 import javax.jms.MapMessage;
 import javax.jms.MessageConsumer;
 import javax.jms.MessageEOFException;
-import javax.jms.MessageFormatException;
 import javax.jms.MessageProducer;
 import javax.jms.ObjectMessage;
 import javax.jms.Session;
@@ -208,313 +203,4 @@ public class JmsMessageIntegrityTest extends AmqpTestSupport {
         }
         assertNull(consumer.receiveNoWait());
     }
-
-    static class ForeignMessage implements TextMessage {
-
-        public int deliveryMode;
-
-        private long deliveryTime;
-        private String messageId;
-        private long timestamp;
-        private String correlationId;
-        private Destination replyTo;
-        private Destination destination;
-        private boolean redelivered;
-        private String type;
-        private long expiration;
-        private int priority;
-        private String text;
-        private final HashMap<String, Object> props = new HashMap<String, Object>();
-
-        @Override
-        public String getJMSMessageID() throws JMSException {
-            return messageId;
-        }
-
-        @Override
-        public void setJMSMessageID(String arg0) throws JMSException {
-            messageId = arg0;
-        }
-
-        @Override
-        public long getJMSTimestamp() throws JMSException {
-            return timestamp;
-        }
-
-        @Override
-        public void setJMSTimestamp(long arg0) throws JMSException {
-            timestamp = arg0;
-        }
-
-        @Override
-        public byte[] getJMSCorrelationIDAsBytes() throws JMSException {
-            return null;
-        }
-
-        @Override
-        public void setJMSCorrelationIDAsBytes(byte[] arg0) throws JMSException {
-        }
-
-        @Override
-        public void setJMSCorrelationID(String arg0) throws JMSException {
-            correlationId = arg0;
-        }
-
-        @Override
-        public String getJMSCorrelationID() throws JMSException {
-            return correlationId;
-        }
-
-        @Override
-        public Destination getJMSReplyTo() throws JMSException {
-            return replyTo;
-        }
-
-        @Override
-        public void setJMSReplyTo(Destination arg0) throws JMSException {
-            replyTo = arg0;
-        }
-
-        @Override
-        public Destination getJMSDestination() throws JMSException {
-            return destination;
-        }
-
-        @Override
-        public void setJMSDestination(Destination arg0) throws JMSException {
-            destination = arg0;
-        }
-
-        @Override
-        public int getJMSDeliveryMode() throws JMSException {
-            return deliveryMode;
-        }
-
-        @Override
-        public void setJMSDeliveryMode(int arg0) throws JMSException {
-            deliveryMode = arg0;
-        }
-
-        @Override
-        public boolean getJMSRedelivered() throws JMSException {
-            return redelivered;
-        }
-
-        @Override
-        public void setJMSRedelivered(boolean arg0) throws JMSException {
-            redelivered = arg0;
-        }
-
-        @Override
-        public String getJMSType() throws JMSException {
-            return type;
-        }
-
-        @Override
-        public void setJMSType(String arg0) throws JMSException {
-            type = arg0;
-        }
-
-        @Override
-        public long getJMSExpiration() throws JMSException {
-            return expiration;
-        }
-
-        @Override
-        public void setJMSExpiration(long arg0) throws JMSException {
-            expiration = arg0;
-        }
-
-        @Override
-        public int getJMSPriority() throws JMSException {
-            return priority;
-        }
-
-        @Override
-        public void setJMSPriority(int arg0) throws JMSException {
-            priority = arg0;
-        }
-
-        @Override
-        public void clearProperties() throws JMSException {
-        }
-
-        @Override
-        public boolean propertyExists(String arg0) throws JMSException {
-            return false;
-        }
-
-        @Override
-        public boolean getBooleanProperty(String arg0) throws JMSException {
-            return false;
-        }
-
-        @Override
-        public byte getByteProperty(String arg0) throws JMSException {
-            return 0;
-        }
-
-        @Override
-        public short getShortProperty(String arg0) throws JMSException {
-            return 0;
-        }
-
-        @Override
-        public int getIntProperty(String arg0) throws JMSException {
-            return 0;
-        }
-
-        @Override
-        public long getLongProperty(String arg0) throws JMSException {
-            return 0;
-        }
-
-        @Override
-        public float getFloatProperty(String arg0) throws JMSException {
-            return 0;
-        }
-
-        @Override
-        public double getDoubleProperty(String arg0) throws JMSException {
-            return 0;
-        }
-
-        @Override
-        public String getStringProperty(String arg0) throws JMSException {
-            return (String)props.get(arg0);
-        }
-
-        @Override
-        public Object getObjectProperty(String arg0) throws JMSException {
-            return props.get(arg0);
-        }
-
-        @Override
-        public Enumeration<?> getPropertyNames() throws JMSException {
-            return new Vector<String>(props.keySet()).elements();
-        }
-
-        @Override
-        public void setBooleanProperty(String arg0, boolean arg1) throws JMSException {
-        }
-
-        @Override
-        public void setByteProperty(String arg0, byte arg1) throws JMSException {
-        }
-
-        @Override
-        public void setShortProperty(String arg0, short arg1) throws JMSException {
-        }
-
-        @Override
-        public void setIntProperty(String arg0, int arg1) throws JMSException {
-        }
-
-        @Override
-        public void setLongProperty(String arg0, long arg1) throws JMSException {
-        }
-
-        @Override
-        public void setFloatProperty(String arg0, float arg1) throws JMSException {
-        }
-
-        @Override
-        public void setDoubleProperty(String arg0, double arg1) throws JMSException {
-        }
-
-        @Override
-        public void setStringProperty(String arg0, String arg1) throws JMSException {
-            props.put(arg0, arg1);
-        }
-
-        @Override
-        public void setObjectProperty(String arg0, Object arg1) throws JMSException {
-            props.put(arg0, arg1);
-        }
-
-        @Override
-        public void acknowledge() throws JMSException {
-        }
-
-        @Override
-        public void clearBody() throws JMSException {
-        }
-
-        @Override
-        public void setText(String arg0) throws JMSException {
-            text = arg0;
-        }
-
-        @Override
-        public String getText() throws JMSException {
-            return text;
-        }
-
-        @Override
-        public void setJMSDeliveryTime(long deliveryTime) throws JMSException {
-            this.deliveryTime = deliveryTime;
-        }
-
-        @Override
-        public long getJMSDeliveryTime() throws JMSException {
-            return deliveryTime;
-        }
-
-        @SuppressWarnings("unchecked")
-        @Override
-        public <T> T getBody(Class<T> target) throws JMSException {
-            if (isBodyAssignableTo(target)) {
-                return (T) text;
-            }
-
-            throw new MessageFormatException("Cannot covert body to type: " + target.getName());
-        }
-
-        @SuppressWarnings("unchecked")
-        @Override
-        public boolean isBodyAssignableTo(@SuppressWarnings("rawtypes") Class target) throws JMSException {
-            return target.isAssignableFrom(String.class);
-        }
-    }
-
-    // TODO - implement proper handling of foreign JMS Message and Destination types.
-    @Test
-    public void testForeignMessage() throws Exception {
-        connection.start();
-        Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
-        Destination destination = session.createQueue(name.getMethodName());
-        MessageConsumer consumer = session.createConsumer(destination);
-        MessageProducer producer = session.createProducer(destination);
-
-        {
-            ForeignMessage message = new ForeignMessage();
-            message.text = "Hello";
-            message.setStringProperty("test", "value");
-            long timeToLive = 10000L;
-            long start = System.currentTimeMillis();
-            producer.send(message, Session.AUTO_ACKNOWLEDGE, 7, timeToLive);
-            long end = System.currentTimeMillis();
-
-            // validate jms spec 1.1 section 3.4.11 table 3.1
-            // JMSDestination, JMSDeliveryMode,  JMSExpiration, JMSPriority, JMSMessageID, and JMSTimestamp
-            // must be set by sending a message.
-
-            assertNotNull(message.getJMSDestination());
-            assertEquals(Session.AUTO_ACKNOWLEDGE, message.getJMSDeliveryMode());
-            assertTrue(start  + timeToLive <= message.getJMSExpiration());
-            assertTrue(end + timeToLive >= message.getJMSExpiration());
-            assertEquals(7, message.getJMSPriority());
-            assertNotNull(message.getJMSMessageID());
-            assertTrue(start <= message.getJMSTimestamp());
-            assertTrue(end >= message.getJMSTimestamp());
-        }
-        {
-            TextMessage message = (TextMessage)consumer.receive(10000);
-            assertNotNull(message);
-            assertEquals("Hello", message.getText());
-            assertEquals("value", message.getStringProperty("test"));
-        }
-
-        assertNull(consumer.receiveNoWait());
-    }
 }


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org


[2/2] qpid-jms git commit: QPIDJMS-207: have deliveryTime handling cope with situations where the JMS 1.1 API is also on classpath and taking order precedence

Posted by ro...@apache.org.
QPIDJMS-207: have deliveryTime handling cope with situations where the JMS 1.1 API is also on classpath and taking order precedence


Project: http://git-wip-us.apache.org/repos/asf/qpid-jms/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-jms/commit/56d1622a
Tree: http://git-wip-us.apache.org/repos/asf/qpid-jms/tree/56d1622a
Diff: http://git-wip-us.apache.org/repos/asf/qpid-jms/diff/56d1622a

Branch: refs/heads/master
Commit: 56d1622a65618cec8cd9bebd86e23ae50c5f6955
Parents: 720c650
Author: Robert Gemmell <ro...@apache.org>
Authored: Tue Dec 13 17:09:30 2016 +0000
Committer: Robert Gemmell <ro...@apache.org>
Committed: Tue Dec 13 17:09:30 2016 +0000

----------------------------------------------------------------------
 .../java/org/apache/qpid/jms/JmsSession.java    | 28 ++++++++++++--------
 .../jms/message/JmsMessageTransformation.java   |  2 +-
 .../qpid-jms-activemq-tests/pom.xml             | 11 +++++++-
 3 files changed, 28 insertions(+), 13 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/56d1622a/qpid-jms-client/src/main/java/org/apache/qpid/jms/JmsSession.java
----------------------------------------------------------------------
diff --git a/qpid-jms-client/src/main/java/org/apache/qpid/jms/JmsSession.java b/qpid-jms-client/src/main/java/org/apache/qpid/jms/JmsSession.java
index 604d92f..deca6b5 100644
--- a/qpid-jms-client/src/main/java/org/apache/qpid/jms/JmsSession.java
+++ b/qpid-jms-client/src/main/java/org/apache/qpid/jms/JmsSession.java
@@ -770,17 +770,6 @@ public class JmsSession implements AutoCloseable, Session, QueueSession, TopicSe
                 original.setJMSExpiration(0);
             }
 
-            long deliveryTime = 0;
-            if (hasDelay) {
-                deliveryTime = timeStamp + deliveryDelay;
-            }
-
-            if(isJmsMessage) {
-                original.setJMSDeliveryTime(deliveryTime);
-            } else {
-                setForeignMessageDeliveryTime(original, deliveryTime);
-            }
-
             long messageSequence = producer.getNextMessageSequence();
             Object messageId = null;
             if (!disableMsgId) {
@@ -796,6 +785,23 @@ public class JmsSession implements AutoCloseable, Session, QueueSession, TopicSe
                 outbound.setJMSDestination(destination);
             }
 
+            // Set the delivery time. Purposefully avoided doing this earlier so
+            // that we use the 'outbound' JmsMessage object reference when
+            // updating our own message instances, avoids using the interface
+            // in case the JMS 1.1 Message API is actually being used due to
+            // being on the classpath too.
+            long deliveryTime = 0;
+            if (hasDelay) {
+                deliveryTime = timeStamp + deliveryDelay;
+            }
+
+            outbound.setJMSDeliveryTime(deliveryTime);
+            if(!isJmsMessage) {
+                // If the original was a foreign message, we still need to update it too.
+                setForeignMessageDeliveryTime(original, deliveryTime);
+            }
+
+            // Set the message ID
             outbound.getFacade().setProviderMessageIdObject(messageId);
             if (!isJmsMessage) {
                 // If the original was a foreign message, we still need to update it

http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/56d1622a/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 4f94db7..405f9ef 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
@@ -190,7 +190,7 @@ public final class JmsMessageTransformation {
      *
      * @throws JMSException if an error occurs during the copy of message properties.
      */
-    public static void copyProperties(JmsConnection connection, Message source, Message target) throws JMSException {
+    public static void copyProperties(JmsConnection connection, Message source, JmsMessage target) throws JMSException {
         target.setJMSMessageID(source.getJMSMessageID());
         target.setJMSCorrelationID(source.getJMSCorrelationID());
         target.setJMSReplyTo(transformDestination(connection, source.getJMSReplyTo()));

http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/56d1622a/qpid-jms-interop-tests/qpid-jms-activemq-tests/pom.xml
----------------------------------------------------------------------
diff --git a/qpid-jms-interop-tests/qpid-jms-activemq-tests/pom.xml b/qpid-jms-interop-tests/qpid-jms-activemq-tests/pom.xml
index 0a72ad4..516651e 100644
--- a/qpid-jms-interop-tests/qpid-jms-activemq-tests/pom.xml
+++ b/qpid-jms-interop-tests/qpid-jms-activemq-tests/pom.xml
@@ -33,8 +33,17 @@
 
   <dependencies>
     <!-- =================================== -->
-    <!-- Required Dependencies                -->
+    <!-- Required Dependencies               -->
     <!-- =================================== -->
+
+    <!-- Adding the JMS 1.1 API jar for these tests explicitly, first,
+         since its whats implemented by ActiveMQ, and also helps to
+         verify the client works when both APIs are on the classpath -->
+    <dependency>
+      <groupId>org.apache.geronimo.specs</groupId>
+      <artifactId>geronimo-jms_1.1_spec</artifactId>
+      <version>1.1.1</version>
+    </dependency>
     <dependency>
       <groupId>org.apache.qpid</groupId>
       <artifactId>qpid-jms-client</artifactId>


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org