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