git-svn-id: https://svn.apache.org/repos/asf/activemq/trunk@1387851 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Timothy A. Bish 2012-09-20 04:05:26 +00:00
parent 67b0c1861f
commit 620d26d494
1 changed files with 33 additions and 3 deletions

View File

@ -34,15 +34,17 @@ public class IndividualDeadLetterStrategy extends AbstractDeadLetterStrategy {
private String topicPrefix = "ActiveMQ.DLQ.Topic."; private String topicPrefix = "ActiveMQ.DLQ.Topic.";
private String queuePrefix = "ActiveMQ.DLQ.Queue."; private String queuePrefix = "ActiveMQ.DLQ.Queue.";
private String topicSuffix;
private String queueSuffix;
private boolean useQueueForQueueMessages = true; private boolean useQueueForQueueMessages = true;
private boolean useQueueForTopicMessages = true; private boolean useQueueForTopicMessages = true;
private boolean destinationPerDurableSubscriber; private boolean destinationPerDurableSubscriber;
public ActiveMQDestination getDeadLetterQueueFor(Message message, Subscription subscription) { public ActiveMQDestination getDeadLetterQueueFor(Message message, Subscription subscription) {
if (message.getDestination().isQueue()) { if (message.getDestination().isQueue()) {
return createDestination(message, queuePrefix, useQueueForQueueMessages, subscription); return createDestination(message, queuePrefix, queueSuffix, useQueueForQueueMessages, subscription);
} else { } else {
return createDestination(message, topicPrefix, useQueueForTopicMessages, subscription); return createDestination(message, topicPrefix, topicSuffix, useQueueForTopicMessages, subscription);
} }
} }
@ -71,6 +73,28 @@ public class IndividualDeadLetterStrategy extends AbstractDeadLetterStrategy {
this.topicPrefix = topicPrefix; this.topicPrefix = topicPrefix;
} }
public String getQueueSuffix() {
return queueSuffix;
}
/**
* Sets the suffix to use for all dead letter queues for queue messages
*/
public void setQueueSuffix(String queueSuffix) {
this.queueSuffix = queueSuffix;
}
public String getTopicSuffix() {
return topicSuffix;
}
/**
* Sets the suffix to use for all dead letter queues for topic messages
*/
public void setTopicSuffix(String topicSuffix) {
this.topicSuffix = topicSuffix;
}
public boolean isUseQueueForQueueMessages() { public boolean isUseQueueForQueueMessages() {
return useQueueForQueueMessages; return useQueueForQueueMessages;
} }
@ -113,6 +137,7 @@ public class IndividualDeadLetterStrategy extends AbstractDeadLetterStrategy {
// ------------------------------------------------------------------------- // -------------------------------------------------------------------------
protected ActiveMQDestination createDestination(Message message, protected ActiveMQDestination createDestination(Message message,
String prefix, String prefix,
String suffix,
boolean useQueue, boolean useQueue,
Subscription subscription ) { Subscription subscription ) {
String name = null; String name = null;
@ -129,6 +154,11 @@ public class IndividualDeadLetterStrategy extends AbstractDeadLetterStrategy {
if (destinationPerDurableSubscriber && subscription instanceof DurableTopicSubscription) { if (destinationPerDurableSubscriber && subscription instanceof DurableTopicSubscription) {
name += "." + ((DurableTopicSubscription)subscription).getSubscriptionKey(); name += "." + ((DurableTopicSubscription)subscription).getSubscriptionKey();
} }
if (suffix != null && !suffix.isEmpty()) {
name += suffix;
}
if (useQueue) { if (useQueue) {
return new ActiveMQQueue(name); return new ActiveMQQueue(name);
} else { } else {