From 4f8190be35857dec2e6e159896bbbe06e7eb3954 Mon Sep 17 00:00:00 2001 From: Andrew Donald Kennedy Date: Fri, 17 Sep 2010 13:42:35 +0000 Subject: QPID-2858: Implement FilterManager for 0-10 subscriptions Applying patch from git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@998126 13f79535-47bb-0310-9956-ffa450edef68 --- .../qpid/server/transport/ServerSessionDelegate.java | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) (limited to 'java/broker/src') diff --git a/java/broker/src/main/java/org/apache/qpid/server/transport/ServerSessionDelegate.java b/java/broker/src/main/java/org/apache/qpid/server/transport/ServerSessionDelegate.java index 84601b1b7a..04337c08df 100644 --- a/java/broker/src/main/java/org/apache/qpid/server/transport/ServerSessionDelegate.java +++ b/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 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, -- cgit v1.2.1