Author: robbie
Date: Wed Jul 2 15:20:13 2014
New Revision: 1607394
URL: http://svn.apache.org/r1607394
Log:
PROTON-474: update mapping of JMSExpiration <-> absolute-expiry-time/ttl in
contrib/proton-jms transformers
Modified:
qpid/proton/trunk/contrib/proton-jms/src/main/java/org/apache/qpid/proton/jms/InboundTransformer.java
qpid/proton/trunk/contrib/proton-jms/src/main/java/org/apache/qpid/proton/jms/JMSMappingOutboundTransformer.java
Modified:
qpid/proton/trunk/contrib/proton-jms/src/main/java/org/apache/qpid/proton/jms/InboundTransformer.java
URL:
http://svn.apache.org/viewvc/qpid/proton/trunk/contrib/proton-jms/src/main/java/org/apache/qpid/proton/jms/InboundTransformer.java?rev=1607394&r1=1607393&r2=1607394&view=diff
==============================================================================
---
qpid/proton/trunk/contrib/proton-jms/src/main/java/org/apache/qpid/proton/jms/InboundTransformer.java
(original)
+++
qpid/proton/trunk/contrib/proton-jms/src/main/java/org/apache/qpid/proton/jms/InboundTransformer.java
Wed Jul 2 15:20:13 2014
@@ -115,11 +115,6 @@ public abstract class InboundTransformer
} else {
jms.setJMSPriority(defaultPriority);
}
- if( header.getTtl()!=null ) {
- jms.setJMSExpiration(header.getTtl().longValue());
- } else {
- jms.setJMSExpiration(defaultTtl);
- }
if( header.getFirstAcquirer() !=null ) {
jms.setBooleanProperty(prefixVendor + "FirstAcquirer",
header.getFirstAcquirer());
}
@@ -209,6 +204,23 @@ public abstract class InboundTransformer
if( properties.getReplyToGroupId()!=null ) {
jms.setStringProperty(prefixVendor + "ReplyToGroupID",
properties.getReplyToGroupId());
}
+ if( properties.getAbsoluteExpiryTime()!=null ) {
+
jms.setJMSExpiration(properties.getAbsoluteExpiryTime().getTime());
+ }
+ }
+
+ // If the jms expiration has not yet been set...
+ if( jms.getJMSExpiration()==0 ) {
+ // Then lets try to set it based on the message ttl.
+ long ttl = defaultTtl;
+ if( header.getTtl()!=null ) {
+ ttl = header.getTtl().longValue();
+ }
+ if( ttl == 0 ) {
+ jms.setJMSExpiration(0);
+ } else {
+ jms.setJMSExpiration(System.currentTimeMillis()+ttl);
+ }
}
final Footer fp = amqp.getFooter();
Modified:
qpid/proton/trunk/contrib/proton-jms/src/main/java/org/apache/qpid/proton/jms/JMSMappingOutboundTransformer.java
URL:
http://svn.apache.org/viewvc/qpid/proton/trunk/contrib/proton-jms/src/main/java/org/apache/qpid/proton/jms/JMSMappingOutboundTransformer.java?rev=1607394&r1=1607393&r2=1607394&view=diff
==============================================================================
---
qpid/proton/trunk/contrib/proton-jms/src/main/java/org/apache/qpid/proton/jms/JMSMappingOutboundTransformer.java
(original)
+++
qpid/proton/trunk/contrib/proton-jms/src/main/java/org/apache/qpid/proton/jms/JMSMappingOutboundTransformer.java
Wed Jul 2 15:20:13 2014
@@ -121,9 +121,6 @@ public class JMSMappingOutboundTransform
header.setDurable(msg.getJMSDeliveryMode() == DeliveryMode.PERSISTENT
? true : false);
header.setPriority(new UnsignedByte((byte) msg.getJMSPriority()));
- if( msg.getJMSExpiration() != 0 ) {
- header.setTtl(new UnsignedInteger((int) msg.getJMSExpiration()));
- }
if( msg.getJMSType()!=null ) {
if( maMap==null ) maMap = new HashMap<Symbol, Object>();
maMap.put(Symbol.valueOf("x-opt-jms-type"), msg.getJMSType());
@@ -145,6 +142,12 @@ public class JMSMappingOutboundTransform
props.setCorrelationId(msg.getJMSCorrelationID());
}
if( msg.getJMSExpiration() != 0 ) {
+ long ttl = msg.getJMSExpiration() - System.currentTimeMillis();
+ if (ttl < 0) {
+ ttl = 1;
+ }
+ header.setTtl(new UnsignedInteger((int)ttl));
+
props.setAbsoluteExpiryTime(new Date(msg.getJMSExpiration()));
}
if( msg.getJMSTimestamp()!= 0 ) {
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]