diff options
| author | Andrew Donald Kennedy <grkvlt@apache.org> | 2010-09-17 13:42:35 +0000 |
|---|---|---|
| committer | Andrew Donald Kennedy <grkvlt@apache.org> | 2010-09-17 13:42:35 +0000 |
| commit | b2248cf03878965fb26d117eed764fe38c3bc982 (patch) | |
| tree | e53102dddc974e8a4c59cc368d5511223ca72e37 /qpid/java | |
| parent | 2ee8be40abc81649c0f0e29ea912ddc061dafb8a (diff) | |
| download | qpid-python-b2248cf03878965fb26d117eed764fe38c3bc982.tar.gz | |
QPID-2858: Implement FilterManager for 0-10 subscriptions
Applying patch from <sorins@gmail.com>
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@998126 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/java')
| -rw-r--r-- | qpid/java/broker/src/main/java/org/apache/qpid/server/transport/ServerSessionDelegate.java | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/transport/ServerSessionDelegate.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/transport/ServerSessionDelegate.java index 84601b1b7a..04337c08df 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/transport/ServerSessionDelegate.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/transport/ServerSessionDelegate.java @@ -30,6 +30,8 @@ import org.apache.qpid.AMQUnknownExchangeType; import org.apache.qpid.framing.AMQShortString; import org.apache.qpid.framing.FieldTable; import org.apache.qpid.server.exchange.*; +import org.apache.qpid.server.filter.FilterManager; +import org.apache.qpid.server.filter.FilterManagerFactory; import org.apache.qpid.server.flow.FlowCreditManager_0_10; import org.apache.qpid.server.flow.WindowCreditManager; import org.apache.qpid.server.message.MessageMetaData_0_10; @@ -228,7 +230,22 @@ public class ServerSessionDelegate extends SessionDelegate FlowCreditManager_0_10 creditManager = new WindowCreditManager(0L,0L); - // TODO filters + FieldTable filters = new FieldTable(); + Map<String,Object> fields = method.getFields(); + for (String key: fields.keySet()) + { + filters.setObject(key, fields.get(key)); + } + FilterManager filterManager = null; + try + { + filterManager = FilterManagerFactory.createManager(filters); + } + catch (AMQException amqe) + { + exception(session, method, ExecutionErrorCode.ILLEGAL_ARGUMENT, "Exception Creating FilterManager"); + return; + } Subscription_0_10 sub = new Subscription_0_10((ServerSession)session, destination, |
