Repository: qpid-proton Updated Branches: refs/heads/master f16eb77ca -> 0b68dec4e
PROTON-816: Added option class for setting dynamic-node-properties field on a terminus (based on patch from Ted Ross) Project: http://git-wip-us.apache.org/repos/asf/qpid-proton/repo Commit: http://git-wip-us.apache.org/repos/asf/qpid-proton/commit/0b68dec4 Tree: http://git-wip-us.apache.org/repos/asf/qpid-proton/tree/0b68dec4 Diff: http://git-wip-us.apache.org/repos/asf/qpid-proton/diff/0b68dec4 Branch: refs/heads/master Commit: 0b68dec4ece589a88f3ef8ba1871b206ba8be798 Parents: f16eb77 Author: Gordon Sim <[email protected]> Authored: Thu Feb 5 16:14:35 2015 +0000 Committer: Gordon Sim <[email protected]> Committed: Thu Feb 5 16:14:35 2015 +0000 ---------------------------------------------------------------------- examples/engine/py/client.py | 6 +++--- proton-c/bindings/python/proton/reactors.py | 15 +++++++++++++++ 2 files changed, 18 insertions(+), 3 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/0b68dec4/examples/engine/py/client.py ---------------------------------------------------------------------- diff --git a/examples/engine/py/client.py b/examples/engine/py/client.py index 0bc6bec..1975834 100755 --- a/examples/engine/py/client.py +++ b/examples/engine/py/client.py @@ -21,7 +21,7 @@ import optparse from proton import Message from proton.handlers import MessagingHandler -from proton.reactors import Container +from proton.reactors import Container, DynamicNodeProperties class Client(MessagingHandler): def __init__(self, url, requests): @@ -30,8 +30,8 @@ class Client(MessagingHandler): self.requests = requests def on_start(self, event): - self.sender = event.container.create_sender(self.url) - self.receiver = event.container.create_receiver(self.sender.connection, None, dynamic=True) + self.sender = event.container.create_sender(self.url, options=DynamicNodeProperties({"foo":u"bar"})) + self.receiver = event.container.create_receiver(self.sender.connection, None, dynamic=True, options=DynamicNodeProperties({"x-opt-qd.address":u"qmf.default.direct"})) def next_request(self): if self.receiver.remote_source.address: http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/0b68dec4/proton-c/bindings/python/proton/reactors.py ---------------------------------------------------------------------- diff --git a/proton-c/bindings/python/proton/reactors.py b/proton-c/bindings/python/proton/reactors.py index b294f8a..4fb53ae 100644 --- a/proton-c/bindings/python/proton/reactors.py +++ b/proton-c/bindings/python/proton/reactors.py @@ -587,6 +587,21 @@ class ReceiverOption(LinkOption): def apply(self, receiver): pass def test(self, link): return link.is_receiver +class DynamicNodeProperties(LinkOption): + def __init__(self, props={}): + self.properties = {} + for k in props: + if isinstance(k, symbol): + self.properties[k] = props[k] + else: + self.properties[symbol(k)] = props[k] + + def apply(self, link): + if link.is_receiver: + link.source.properties.put_dict(self.properties) + else: + link.target.properties.put_dict(self.properties) + class Filter(ReceiverOption): def __init__(self, filter_set={}): self.filter_set = filter_set --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
