Repository: activemq
Updated Branches:
  refs/heads/master 8023b9ee4 -> d2c0eddaa


[AMQ-6691] allow dlq flag to be set via jmx to allow retry op after a restart - 
use destinations element for long term persistence


Project: http://git-wip-us.apache.org/repos/asf/activemq/repo
Commit: http://git-wip-us.apache.org/repos/asf/activemq/commit/d2c0edda
Tree: http://git-wip-us.apache.org/repos/asf/activemq/tree/d2c0edda
Diff: http://git-wip-us.apache.org/repos/asf/activemq/diff/d2c0edda

Branch: refs/heads/master
Commit: d2c0eddaad7a5633d50c9a1fef2014b9fc0fb5bc
Parents: 8023b9e
Author: gtully <gary.tu...@gmail.com>
Authored: Wed May 31 12:39:48 2017 +0100
Committer: gtully <gary.tu...@gmail.com>
Committed: Wed May 31 12:39:48 2017 +0100

----------------------------------------------------------------------
 .../org/apache/activemq/broker/jmx/DestinationView.java |  5 +++++
 .../activemq/broker/jmx/DestinationViewMBean.java       |  6 ++++++
 .../org/apache/activemq/broker/region/RegionBroker.java |  2 +-
 .../apache/activemq/command/ActiveMQDestination.java    |  4 ++--
 .../test/java/org/apache/activemq/bugs/AMQ6059Test.java | 12 ++++++++++++
 5 files changed, 26 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/activemq/blob/d2c0edda/activemq-broker/src/main/java/org/apache/activemq/broker/jmx/DestinationView.java
----------------------------------------------------------------------
diff --git 
a/activemq-broker/src/main/java/org/apache/activemq/broker/jmx/DestinationView.java
 
b/activemq-broker/src/main/java/org/apache/activemq/broker/jmx/DestinationView.java
index f701ebc..769d796 100644
--- 
a/activemq-broker/src/main/java/org/apache/activemq/broker/jmx/DestinationView.java
+++ 
b/activemq-broker/src/main/java/org/apache/activemq/broker/jmx/DestinationView.java
@@ -536,6 +536,11 @@ public class DestinationView implements 
DestinationViewMBean {
     }
 
     @Override
+    public void setDLQ(boolean val) {
+         destination.getActiveMQDestination().setDLQ(val);
+    }
+
+    @Override
     public long getBlockedSends() {
         return 
destination.getDestinationStatistics().getBlockedSends().getCount();
     }

http://git-wip-us.apache.org/repos/asf/activemq/blob/d2c0edda/activemq-broker/src/main/java/org/apache/activemq/broker/jmx/DestinationViewMBean.java
----------------------------------------------------------------------
diff --git 
a/activemq-broker/src/main/java/org/apache/activemq/broker/jmx/DestinationViewMBean.java
 
b/activemq-broker/src/main/java/org/apache/activemq/broker/jmx/DestinationViewMBean.java
index fc014a2..7e09948 100644
--- 
a/activemq-broker/src/main/java/org/apache/activemq/broker/jmx/DestinationViewMBean.java
+++ 
b/activemq-broker/src/main/java/org/apache/activemq/broker/jmx/DestinationViewMBean.java
@@ -409,6 +409,12 @@ public interface DestinationViewMBean {
     @MBeanInfo("Dead Letter Queue")
     boolean isDLQ();
 
+    /**
+     * @param value
+     * enable/disable the DLQ flag
+     */
+    void setDLQ(boolean value);
+
     @MBeanInfo("Number of messages blocked for flow control")
     long getBlockedSends();
 

http://git-wip-us.apache.org/repos/asf/activemq/blob/d2c0edda/activemq-broker/src/main/java/org/apache/activemq/broker/region/RegionBroker.java
----------------------------------------------------------------------
diff --git 
a/activemq-broker/src/main/java/org/apache/activemq/broker/region/RegionBroker.java
 
b/activemq-broker/src/main/java/org/apache/activemq/broker/region/RegionBroker.java
index 9847550..32efab4 100644
--- 
a/activemq-broker/src/main/java/org/apache/activemq/broker/region/RegionBroker.java
+++ 
b/activemq-broker/src/main/java/org/apache/activemq/broker/region/RegionBroker.java
@@ -786,7 +786,7 @@ public class RegionBroker extends EmptyBroker {
                             if (context.getSecurityContext() == null || 
!context.getSecurityContext().isBrokerContext()) {
                                 adminContext = 
BrokerSupport.getConnectionContext(this);
                             }
-                            addDestination(adminContext, 
deadLetterDestination, false).getActiveMQDestination().setDLQ();
+                            addDestination(adminContext, 
deadLetterDestination, false).getActiveMQDestination().setDLQ(true);
                             BrokerSupport.resendNoCopy(adminContext, message, 
deadLetterDestination);
                             return true;
                         }

http://git-wip-us.apache.org/repos/asf/activemq/blob/d2c0edda/activemq-client/src/main/java/org/apache/activemq/command/ActiveMQDestination.java
----------------------------------------------------------------------
diff --git 
a/activemq-client/src/main/java/org/apache/activemq/command/ActiveMQDestination.java
 
b/activemq-client/src/main/java/org/apache/activemq/command/ActiveMQDestination.java
index 149145d..c63fd1e 100644
--- 
a/activemq-client/src/main/java/org/apache/activemq/command/ActiveMQDestination.java
+++ 
b/activemq-client/src/main/java/org/apache/activemq/command/ActiveMQDestination.java
@@ -425,11 +425,11 @@ public abstract class ActiveMQDestination extends 
JNDIBaseStorable implements Da
         return options != null && options.containsKey(IS_DLQ);
     }
 
-    public void setDLQ() {
+    public void setDLQ(boolean val) {
         if (options == null) {
             options = new HashMap<String, String>();
         }
-        options.put(IS_DLQ, String.valueOf(true));
+        options.put(IS_DLQ, String.valueOf(val));
     }
 
     public static UnresolvedDestinationTransformer 
getUnresolvableDestinationTransformer() {

http://git-wip-us.apache.org/repos/asf/activemq/blob/d2c0edda/activemq-unit-tests/src/test/java/org/apache/activemq/bugs/AMQ6059Test.java
----------------------------------------------------------------------
diff --git 
a/activemq-unit-tests/src/test/java/org/apache/activemq/bugs/AMQ6059Test.java 
b/activemq-unit-tests/src/test/java/org/apache/activemq/bugs/AMQ6059Test.java
index 44053d0..0f6b9f5 100644
--- 
a/activemq-unit-tests/src/test/java/org/apache/activemq/bugs/AMQ6059Test.java
+++ 
b/activemq-unit-tests/src/test/java/org/apache/activemq/bugs/AMQ6059Test.java
@@ -16,6 +16,7 @@
  */
 package org.apache.activemq.bugs;
 
+import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
 
@@ -107,6 +108,17 @@ public class AMQ6059Test {
         verifyMessageIsRecovered(dlqQueue);
     }
 
+    @Test
+    public void testSetDlqFlag() throws Exception {
+        final ActiveMQQueue toFlp = new ActiveMQQueue("QNameToFlip");
+        sendMessage(toFlp);
+
+        final QueueViewMBean queueViewMBean = 
getProxyToQueue(toFlp.getQueueName());
+        assertFalse(queueViewMBean.isDLQ());
+        queueViewMBean.setDLQ(true);
+        assertTrue(queueViewMBean.isDLQ());
+    }
+
     protected BrokerService createBroker() throws Exception {
         return createBrokerWithDLQ(true);
     }

Reply via email to