You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by de...@apache.org on 2013/05/08 11:15:17 UTC

svn commit: r1480189 - in /activemq/trunk: activemq-broker/src/main/java/org/apache/activemq/broker/jmx/ activemq-unit-tests/src/test/java/org/apache/activemq/security/

Author: dejanb
Date: Wed May  8 09:15:17 2013
New Revision: 1480189

URL: http://svn.apache.org/r1480189
Log:
https://issues.apache.org/jira/browse/AMQ-4522 - set timeToLive when sending a message using JMX

Modified:
    activemq/trunk/activemq-broker/src/main/java/org/apache/activemq/broker/jmx/DestinationView.java
    activemq/trunk/activemq-broker/src/main/java/org/apache/activemq/broker/jmx/DestinationViewMBean.java
    activemq/trunk/activemq-unit-tests/src/test/java/org/apache/activemq/security/SecurityJMXTest.java

Modified: activemq/trunk/activemq-broker/src/main/java/org/apache/activemq/broker/jmx/DestinationView.java
URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-broker/src/main/java/org/apache/activemq/broker/jmx/DestinationView.java?rev=1480189&r1=1480188&r2=1480189&view=diff
==============================================================================
--- activemq/trunk/activemq-broker/src/main/java/org/apache/activemq/broker/jmx/DestinationView.java (original)
+++ activemq/trunk/activemq-broker/src/main/java/org/apache/activemq/broker/jmx/DestinationView.java Wed May  8 09:15:17 2013
@@ -299,7 +299,7 @@ public class DestinationView implements 
     }
 
     @Override
-    public String sendTextMessage(Map headers, String body, String userName, String password) throws Exception {
+    public String sendTextMessage(Map<String, String> headers, String body, String userName, String password) throws Exception {
 
         String brokerUrl = "vm://" + broker.getBrokerName();
         ActiveMQDestination dest = destination.getActiveMQDestination();
@@ -320,7 +320,15 @@ public class DestinationView implements 
 
             producer.setDeliveryMode(msg.getJMSDeliveryMode());
             producer.setPriority(msg.getPriority());
-            long ttl = msg.getExpiration() - System.currentTimeMillis();
+            long ttl = 0;
+            if (msg.getExpiration() != 0) {
+                ttl = msg.getExpiration() - System.currentTimeMillis();
+            } else {
+                String timeToLive = headers.get("timeToLive");
+                if (timeToLive != null) {
+                    ttl = Integer.valueOf(timeToLive);
+                }
+            }
             producer.setTimeToLive(ttl > 0 ? ttl : 0);
             producer.send(msg);
 

Modified: activemq/trunk/activemq-broker/src/main/java/org/apache/activemq/broker/jmx/DestinationViewMBean.java
URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-broker/src/main/java/org/apache/activemq/broker/jmx/DestinationViewMBean.java?rev=1480189&r1=1480188&r2=1480189&view=diff
==============================================================================
--- activemq/trunk/activemq-broker/src/main/java/org/apache/activemq/broker/jmx/DestinationViewMBean.java (original)
+++ activemq/trunk/activemq-broker/src/main/java/org/apache/activemq/broker/jmx/DestinationViewMBean.java Wed May  8 09:15:17 2013
@@ -181,7 +181,7 @@ public interface DestinationViewMBean {
      * @throws Exception
      */
     @MBeanInfo("Sends a TextMessage to a password-protected destination.")
-    String sendTextMessage(@MBeanInfo("headers") Map<?,?> headers, @MBeanInfo("body") String body, @MBeanInfo("user") String user, @MBeanInfo("password") String password) throws Exception;
+    String sendTextMessage(@MBeanInfo("headers") Map<String,String> headers, @MBeanInfo("body") String body, @MBeanInfo("user") String user, @MBeanInfo("password") String password) throws Exception;
     /**
      * @return the percentage of amount of memory used
      */

Modified: activemq/trunk/activemq-unit-tests/src/test/java/org/apache/activemq/security/SecurityJMXTest.java
URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-unit-tests/src/test/java/org/apache/activemq/security/SecurityJMXTest.java?rev=1480189&r1=1480188&r2=1480189&view=diff
==============================================================================
--- activemq/trunk/activemq-unit-tests/src/test/java/org/apache/activemq/security/SecurityJMXTest.java (original)
+++ activemq/trunk/activemq-unit-tests/src/test/java/org/apache/activemq/security/SecurityJMXTest.java Wed May  8 09:15:17 2013
@@ -79,7 +79,7 @@ public class SecurityJMXTest extends Tes
                 "destinationType=Queue,destinationName=TEST.Q");
         QueueViewMBean queueMbean = MBeanServerInvocationHandler.newProxyInstance(connection, name, QueueViewMBean.class, true);
         HashMap<String, String> headers = new HashMap<String, String>();
-        headers.put("JMSExpiration", Long.toString(System.currentTimeMillis() + 2000));
+        headers.put("timeToLive", Long.toString(2000));
         headers.put("JMSDeliveryMode", Integer.toString(DeliveryMode.PERSISTENT));
         queueMbean.sendTextMessage(headers, "test", "system", "manager");
         // allow message to expire on the queue