diff options
| author | Robert Godfrey <rgodfrey@apache.org> | 2015-02-17 17:41:28 +0000 |
|---|---|---|
| committer | Robert Godfrey <rgodfrey@apache.org> | 2015-02-17 17:41:28 +0000 |
| commit | 2d3a1f587a2201eed232cdc4b4ee589ea52e3606 (patch) | |
| tree | df3ffc561d223df11e6c5d1034f855a4da97549f /qpid/java/common | |
| parent | 2e60cf6ce254d749890c5740d0d3b15e2b1e41a3 (diff) | |
| download | qpid-python-2d3a1f587a2201eed232cdc4b4ee589ea52e3606.tar.gz | |
QPID-6395 : [Java Broker] add support for queue default filters, and filters solely on arrival time
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1660458 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/java/common')
3 files changed, 41 insertions, 4 deletions
diff --git a/qpid/java/common/src/main/java/org/apache/qpid/common/AMQPFilterTypes.java b/qpid/java/common/src/main/java/org/apache/qpid/common/AMQPFilterTypes.java index 483fbaea50..d033bf86c2 100644 --- a/qpid/java/common/src/main/java/org/apache/qpid/common/AMQPFilterTypes.java +++ b/qpid/java/common/src/main/java/org/apache/qpid/common/AMQPFilterTypes.java @@ -30,7 +30,8 @@ public enum AMQPFilterTypes JMS_SELECTOR("x-filter-jms-selector"), NO_CONSUME("x-filter-no-consume"), AUTO_CLOSE("x-filter-auto-close"), - NO_LOCAL("x-qpid-no-local"); + NO_LOCAL("x-qpid-no-local"), + REPLAY_PERIOD("x-qpid-replay-period"); /** The identifying string for the filter type. */ private final AMQShortString _value; diff --git a/qpid/java/common/src/main/java/org/apache/qpid/url/AMQBindingURL.java b/qpid/java/common/src/main/java/org/apache/qpid/url/AMQBindingURL.java index 77902c3531..3ea99ce4ab 100644 --- a/qpid/java/common/src/main/java/org/apache/qpid/url/AMQBindingURL.java +++ b/qpid/java/common/src/main/java/org/apache/qpid/url/AMQBindingURL.java @@ -20,15 +20,16 @@ */ package org.apache.qpid.url; +import java.net.URISyntaxException; +import java.util.HashMap; +import java.util.Map; + import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.apache.qpid.exchange.ExchangeDefaults; import org.apache.qpid.framing.AMQShortString; -import java.net.URISyntaxException; -import java.util.HashMap; - public class AMQBindingURL implements BindingURL { private static final Logger _logger = LoggerFactory.getLogger(AMQBindingURL.class); @@ -135,6 +136,20 @@ public class AMQBindingURL implements BindingURL return _options.get(key); } + @Override + public Map<String,Object> getConsumerOptions() + { + Map<String,Object> options = new HashMap<>(); + for(Map.Entry<String,String> option : _options.entrySet()) + { + if(!NON_CONSUMER_OPTIONS.contains(option.getKey())) + { + options.put(option.getKey(), option.getValue()); + } + } + return options; + } + public void setOption(String key, String value) { _options.put(key, value); diff --git a/qpid/java/common/src/main/java/org/apache/qpid/url/BindingURL.java b/qpid/java/common/src/main/java/org/apache/qpid/url/BindingURL.java index 80a1ae540b..91f80ff88c 100644 --- a/qpid/java/common/src/main/java/org/apache/qpid/url/BindingURL.java +++ b/qpid/java/common/src/main/java/org/apache/qpid/url/BindingURL.java @@ -20,6 +20,12 @@ */ package org.apache.qpid.url; +import java.util.Arrays; +import java.util.Collections; +import java.util.HashSet; +import java.util.Map; +import java.util.Set; + import org.apache.qpid.framing.AMQShortString; /* @@ -47,6 +53,18 @@ public interface BindingURL */ public static final String OPTION_REJECT_BEHAVIOUR = "rejectbehaviour"; + public static final Set<String> NON_CONSUMER_OPTIONS = + Collections.unmodifiableSet(new HashSet<String>(Arrays.asList(OPTION_EXCLUSIVE, + OPTION_AUTODELETE, + OPTION_DURABLE, + OPTION_BROWSE, + OPTION_ROUTING_KEY, + OPTION_BINDING_KEY, + OPTION_EXCHANGE_AUTODELETE, + OPTION_EXCHANGE_DURABLE, + OPTION_EXCHANGE_DURABLE, + OPTION_REJECT_BEHAVIOUR))); + String getURL(); @@ -60,6 +78,9 @@ public interface BindingURL String getOption(String key); + Map<String,Object> getConsumerOptions(); + + boolean containsOption(String key); AMQShortString getRoutingKey(); |
