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]

Reply via email to