diff options
| author | Andrew Donald Kennedy <grkvlt@apache.org> | 2010-09-26 22:17:21 +0000 |
|---|---|---|
| committer | Andrew Donald Kennedy <grkvlt@apache.org> | 2010-09-26 22:17:21 +0000 |
| commit | db8395c5f4ebdf37bbc9bef8bb4d44ee8bdb8c40 (patch) | |
| tree | 8208398d0435fc598c28daeced6d9d6e7f87d992 /java | |
| parent | 8074333980d656c0075ab319f89e12841ea32a57 (diff) | |
| download | qpid-python-db8395c5f4ebdf37bbc9bef8bb4d44ee8bdb8c40.tar.gz | |
QPID-2884: Pass the method arguments on Subscription_0_10 upon creation
Patch from SorinS <ssuciu@gmail.com>
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1001537 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'java')
3 files changed, 14 insertions, 6 deletions
diff --git a/java/broker/src/main/java/org/apache/qpid/server/federation/Bridge.java b/java/broker/src/main/java/org/apache/qpid/server/federation/Bridge.java index befa979d37..fbc5387daf 100644 --- a/java/broker/src/main/java/org/apache/qpid/server/federation/Bridge.java +++ b/java/broker/src/main/java/org/apache/qpid/server/federation/Bridge.java @@ -694,12 +694,14 @@ public class Bridge implements BridgeConfig FlowCreditManager_0_10 creditManager = new WindowCreditManager(0xFFFFFFFF,getMessageWindowSize()); + //TODO Handle the passing of non-null Filters and Arguments here + Subscription_0_10 sub = new Subscription_0_10((ServerSession)session, _destination, MessageAcceptMode.NONE, MessageAcquireMode.PRE_ACQUIRED, MessageFlowMode.WINDOW, - creditManager, null); + creditManager, null,null); ((ServerSession)session).register(_destination, sub); @@ -764,12 +766,14 @@ public class Bridge implements BridgeConfig FlowCreditManager_0_10 creditManager = new WindowCreditManager(0xFFFFFFFF,getMessageWindowSize()); + //TODO Handle the passing of non-null Filters and Arguments here + Subscription_0_10 sub = new Subscription_0_10((ServerSession)session, _destination, MessageAcceptMode.NONE, MessageAcquireMode.PRE_ACQUIRED, MessageFlowMode.WINDOW, - creditManager, null); + creditManager, null,null); ((ServerSession)session).register(_destination, sub); diff --git a/java/broker/src/main/java/org/apache/qpid/server/subscription/Subscription_0_10.java b/java/broker/src/main/java/org/apache/qpid/server/subscription/Subscription_0_10.java index 8b5064e19d..2510c12eae 100644 --- a/java/broker/src/main/java/org/apache/qpid/server/subscription/Subscription_0_10.java +++ b/java/broker/src/main/java/org/apache/qpid/server/subscription/Subscription_0_10.java @@ -102,13 +102,14 @@ public class Subscription_0_10 implements Subscription, FlowCreditManager.FlowCr private String _trace; private long _createTime = System.currentTimeMillis(); private final AtomicLong _deliveredCount = new AtomicLong(0); + private final Map<String, Object> _arguments; public Subscription_0_10(ServerSession session, String destination, MessageAcceptMode acceptMode, MessageAcquireMode acquireMode, MessageFlowMode flowMode, FlowCreditManager_0_10 creditManager, - FilterManager filters) + FilterManager filters,Map<String, Object> arguments) { _session = session; _destination = destination; @@ -118,6 +119,8 @@ public class Subscription_0_10 implements Subscription, FlowCreditManager.FlowCr _flowMode = flowMode; _filters = filters; _creditManager.addStateListener(this); + _arguments = arguments == null ? Collections.<String, Object> emptyMap() : + Collections.<String, Object> unmodifiableMap(arguments); _state.set(_creditManager.hasCredit() ? State.ACTIVE : State.SUSPENDED); } @@ -859,8 +862,7 @@ public class Subscription_0_10 implements Subscription, FlowCreditManager.FlowCr public Map<String, Object> getArguments() { - //TODO - return Collections.EMPTY_MAP; + return _arguments; } public boolean isSessionTransactional() 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 53dad0fcfe..209bee4565 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 @@ -247,7 +247,9 @@ public class ServerSessionDelegate extends SessionDelegate method.getAcceptMode(), method.getAcquireMode(), MessageFlowMode.WINDOW, - creditManager, filterManager); + creditManager, + filterManager, + method.getArguments()); ((ServerSession)session).register(destination, sub); try |
