You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by gt...@apache.org on 2010/05/27 17:22:45 UTC

svn commit: r948858 - /activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/util/TimeStampingBrokerPlugin.java

Author: gtully
Date: Thu May 27 15:22:43 2010
New Revision: 948858

URL: http://svn.apache.org/viewvc?rev=948858&view=rev
Log:
resolve https://issues.apache.org/activemq/browse/AMQ-2752 - allow timestamp broker plugin to optinally modify network messages, processNetworkMessages attribute

Modified:
    activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/util/TimeStampingBrokerPlugin.java

Modified: activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/util/TimeStampingBrokerPlugin.java
URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/util/TimeStampingBrokerPlugin.java?rev=948858&r1=948857&r2=948858&view=diff
==============================================================================
--- activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/util/TimeStampingBrokerPlugin.java (original)
+++ activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/util/TimeStampingBrokerPlugin.java Thu May 27 15:22:43 2010
@@ -64,6 +64,13 @@ public class TimeStampingBrokerPlugin ex
      * False by default
      */
     boolean futureOnly = false;
+    
+    
+    /**
+     * if true, update timestamp even if message has passed through a network
+     * default false
+     */
+    boolean processNetworkMessages = false;
 
     /** 
     * setter method for zeroExpirationOverride
@@ -84,12 +91,16 @@ public class TimeStampingBrokerPlugin ex
 	public void setFutureOnly(boolean futureOnly) {
 		this.futureOnly = futureOnly;
 	}
+	
+	public void setProcessNetworkMessages(Boolean processNetworkMessages) {
+	    this.processNetworkMessages = processNetworkMessages;
+	}
 
 	@Override
     public void send(ProducerBrokerExchange producerExchange, Message message) throws Exception {
         if (message.getTimestamp() > 0
-            && (message.getBrokerPath() == null || message.getBrokerPath().length == 0)) {
-            // timestamp not been disabled and has not passed through a network
+            && (processNetworkMessages || (message.getBrokerPath() == null || message.getBrokerPath().length == 0))) {
+            // timestamp not been disabled and has not passed through a network or processNetworkMessages=true
             long oldExpiration = message.getExpiration();
             long newTimeStamp = System.currentTimeMillis();
             long timeToLive = zeroExpirationOverride;