Added: 
qpid/site/input/releases/qpid-proton-master/proton/python/examples/server_direct.py.html.in
URL: 
http://svn.apache.org/viewvc/qpid/site/input/releases/qpid-proton-master/proton/python/examples/server_direct.py.html.in?rev=1705923&view=auto
==============================================================================
--- 
qpid/site/input/releases/qpid-proton-master/proton/python/examples/server_direct.py.html.in
 (added)
+++ 
qpid/site/input/releases/qpid-proton-master/proton/python/examples/server_direct.py.html.in
 Tue Sep 29 20:27:56 2015
@@ -0,0 +1,46 @@
+
+<h1>server_direct.py</h1>
+<div class="highlight"><pre><span class="kn">from</span> <span 
class="nn">__future__</span> <span class="kn">import</span> <span 
class="n">print_function</span>
+<span class="kn">from</span> <span class="nn">proton</span> <span 
class="kn">import</span> <span class="n">generate_uuid</span><span 
class="p">,</span> <span class="n">Message</span>
+<span class="kn">from</span> <span class="nn">proton.handlers</span> <span 
class="kn">import</span> <span class="n">MessagingHandler</span>
+<span class="kn">from</span> <span class="nn">proton.reactor</span> <span 
class="kn">import</span> <span class="n">Container</span>
+
+<span class="k">class</span> <span class="nc">Server</span><span 
class="p">(</span><span class="n">MessagingHandler</span><span 
class="p">):</span>
+    <span class="k">def</span> <span class="nf">__init__</span><span 
class="p">(</span><span class="bp">self</span><span class="p">,</span> <span 
class="n">url</span><span class="p">):</span>
+        <span class="nb">super</span><span class="p">(</span><span 
class="n">Server</span><span class="p">,</span> <span 
class="bp">self</span><span class="p">)</span><span class="o">.</span><span 
class="n">__init__</span><span class="p">()</span>
+        <span class="bp">self</span><span class="o">.</span><span 
class="n">url</span> <span class="o">=</span> <span class="n">url</span>
+        <span class="bp">self</span><span class="o">.</span><span 
class="n">senders</span> <span class="o">=</span> <span class="p">{}</span>
+
+    <span class="k">def</span> <span class="nf">on_start</span><span 
class="p">(</span><span class="bp">self</span><span class="p">,</span> <span 
class="n">event</span><span class="p">):</span>
+        <span class="k">print</span><span class="p">(</span><span 
class="s">&quot;Listening on&quot;</span><span class="p">,</span> <span 
class="bp">self</span><span class="o">.</span><span class="n">url</span><span 
class="p">)</span>
+        <span class="bp">self</span><span class="o">.</span><span 
class="n">container</span> <span class="o">=</span> <span 
class="n">event</span><span class="o">.</span><span class="n">container</span>
+        <span class="bp">self</span><span class="o">.</span><span 
class="n">acceptor</span> <span class="o">=</span> <span 
class="n">event</span><span class="o">.</span><span 
class="n">container</span><span class="o">.</span><span 
class="n">listen</span><span class="p">(</span><span 
class="bp">self</span><span class="o">.</span><span class="n">url</span><span 
class="p">)</span>
+
+    <span class="k">def</span> <span class="nf">on_link_opening</span><span 
class="p">(</span><span class="bp">self</span><span class="p">,</span> <span 
class="n">event</span><span class="p">):</span>
+        <span class="k">if</span> <span class="n">event</span><span 
class="o">.</span><span class="n">link</span><span class="o">.</span><span 
class="n">is_sender</span><span class="p">:</span>
+            <span class="k">if</span> <span class="n">event</span><span 
class="o">.</span><span class="n">link</span><span class="o">.</span><span 
class="n">remote_source</span> <span class="ow">and</span> <span 
class="n">event</span><span class="o">.</span><span class="n">link</span><span 
class="o">.</span><span class="n">remote_source</span><span 
class="o">.</span><span class="n">dynamic</span><span class="p">:</span>
+                <span class="n">event</span><span class="o">.</span><span 
class="n">link</span><span class="o">.</span><span class="n">source</span><span 
class="o">.</span><span class="n">address</span> <span class="o">=</span> <span 
class="nb">str</span><span class="p">(</span><span 
class="n">generate_uuid</span><span class="p">())</span>
+                <span class="bp">self</span><span class="o">.</span><span 
class="n">senders</span><span class="p">[</span><span 
class="n">event</span><span class="o">.</span><span class="n">link</span><span 
class="o">.</span><span class="n">source</span><span class="o">.</span><span 
class="n">address</span><span class="p">]</span> <span class="o">=</span> <span 
class="n">event</span><span class="o">.</span><span class="n">link</span>
+            <span class="k">elif</span> <span class="n">event</span><span 
class="o">.</span><span class="n">link</span><span class="o">.</span><span 
class="n">remote_target</span> <span class="ow">and</span> <span 
class="n">event</span><span class="o">.</span><span class="n">link</span><span 
class="o">.</span><span class="n">remote_target</span><span 
class="o">.</span><span class="n">address</span><span class="p">:</span>
+                <span class="n">event</span><span class="o">.</span><span 
class="n">link</span><span class="o">.</span><span class="n">target</span><span 
class="o">.</span><span class="n">address</span> <span class="o">=</span> <span 
class="n">event</span><span class="o">.</span><span class="n">link</span><span 
class="o">.</span><span class="n">remote_target</span><span 
class="o">.</span><span class="n">address</span>
+                <span class="bp">self</span><span class="o">.</span><span 
class="n">senders</span><span class="p">[</span><span 
class="n">event</span><span class="o">.</span><span class="n">link</span><span 
class="o">.</span><span class="n">remote_target</span><span 
class="o">.</span><span class="n">address</span><span class="p">]</span> <span 
class="o">=</span> <span class="n">event</span><span class="o">.</span><span 
class="n">link</span>
+            <span class="k">elif</span> <span class="n">event</span><span 
class="o">.</span><span class="n">link</span><span class="o">.</span><span 
class="n">remote_source</span><span class="p">:</span>
+                <span class="n">event</span><span class="o">.</span><span 
class="n">link</span><span class="o">.</span><span class="n">source</span><span 
class="o">.</span><span class="n">address</span> <span class="o">=</span> <span 
class="n">event</span><span class="o">.</span><span class="n">link</span><span 
class="o">.</span><span class="n">remote_source</span><span 
class="o">.</span><span class="n">address</span>
+        <span class="k">elif</span> <span class="n">event</span><span 
class="o">.</span><span class="n">link</span><span class="o">.</span><span 
class="n">remote_target</span><span class="p">:</span>
+            <span class="n">event</span><span class="o">.</span><span 
class="n">link</span><span class="o">.</span><span class="n">target</span><span 
class="o">.</span><span class="n">address</span> <span class="o">=</span> <span 
class="n">event</span><span class="o">.</span><span class="n">link</span><span 
class="o">.</span><span class="n">remote_target</span><span 
class="o">.</span><span class="n">address</span>
+
+    <span class="k">def</span> <span class="nf">on_message</span><span 
class="p">(</span><span class="bp">self</span><span class="p">,</span> <span 
class="n">event</span><span class="p">):</span>
+        <span class="k">print</span><span class="p">(</span><span 
class="s">&quot;Received&quot;</span><span class="p">,</span> <span 
class="n">event</span><span class="o">.</span><span 
class="n">message</span><span class="p">)</span>
+        <span class="n">sender</span> <span class="o">=</span> <span 
class="bp">self</span><span class="o">.</span><span 
class="n">senders</span><span class="o">.</span><span class="n">get</span><span 
class="p">(</span><span class="n">event</span><span class="o">.</span><span 
class="n">message</span><span class="o">.</span><span 
class="n">reply_to</span><span class="p">)</span>
+        <span class="k">if</span> <span class="ow">not</span> <span 
class="n">sender</span><span class="p">:</span>
+            <span class="k">print</span><span class="p">(</span><span 
class="s">&quot;No link for reply&quot;</span><span class="p">)</span>
+            <span class="k">return</span>
+        <span class="n">sender</span><span class="o">.</span><span 
class="n">send</span><span class="p">(</span><span 
class="n">Message</span><span class="p">(</span><span 
class="n">address</span><span class="o">=</span><span 
class="n">event</span><span class="o">.</span><span 
class="n">message</span><span class="o">.</span><span 
class="n">reply_to</span><span class="p">,</span> <span 
class="n">body</span><span class="o">=</span><span class="n">event</span><span 
class="o">.</span><span class="n">message</span><span class="o">.</span><span 
class="n">body</span><span class="o">.</span><span class="n">upper</span><span 
class="p">(),</span>
+                            <span class="n">correlation_id</span><span 
class="o">=</span><span class="n">event</span><span class="o">.</span><span 
class="n">message</span><span class="o">.</span><span 
class="n">correlation_id</span><span class="p">))</span>
+
+<span class="k">try</span><span class="p">:</span>
+    <span class="n">Container</span><span class="p">(</span><span 
class="n">Server</span><span class="p">(</span><span 
class="s">&quot;0.0.0.0:8888&quot;</span><span class="p">))</span><span 
class="o">.</span><span class="n">run</span><span class="p">()</span>
+<span class="k">except</span> <span class="ne">KeyboardInterrupt</span><span 
class="p">:</span> <span class="k">pass</span>
+</pre></div>
+
+<p><a href="server_direct.py">Download this file</a></p>

Added: 
qpid/site/input/releases/qpid-proton-master/proton/python/examples/server_tx.py
URL: 
http://svn.apache.org/viewvc/qpid/site/input/releases/qpid-proton-master/proton/python/examples/server_tx.py?rev=1705923&view=auto
==============================================================================
--- 
qpid/site/input/releases/qpid-proton-master/proton/python/examples/server_tx.py 
(added)
+++ 
qpid/site/input/releases/qpid-proton-master/proton/python/examples/server_tx.py 
Tue Sep 29 20:27:56 2015
@@ -0,0 +1,79 @@
+#!/usr/bin/env python
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+from __future__ import print_function
+from proton import Message
+from proton.reactor import Container
+from proton.handlers import MessagingHandler, TransactionHandler
+
+class TxRequest(TransactionHandler):
+    def __init__(self, response, sender, request_delivery):
+        super(TxRequest, self).__init__()
+        self.response = response
+        self.sender = sender
+        self.request_delivery = request_delivery
+
+    def on_transaction_declared(self, event):
+        event.transaction.send(self.sender, self.response)
+        event.transaction.accept(self.request_delivery)
+        event.transaction.commit()
+
+    def on_transaction_committed(self, event):
+        print("Request processed successfully")
+
+    def on_transaction_aborted(self, event):
+        print("Request processing aborted")
+
+
+class TxServer(MessagingHandler):
+    def __init__(self, host, address):
+        super(TxServer, self).__init__(auto_accept=False)
+        self.host = host
+        self.address = address
+
+    def on_start(self, event):
+        self.container = event.container
+        self.conn = event.container.connect(self.host, reconnect=False)
+        self.receiver = event.container.create_receiver(self.conn, 
self.address)
+        self.senders = {}
+        self.relay = None
+
+    def on_message(self, event):
+        sender = self.relay
+        if not sender:
+            sender = self.senders.get(event.message.reply_to)
+        if not sender:
+            sender = self.container.create_sender(self.conn, 
event.message.reply_to)
+            self.senders[event.message.reply_to] = sender
+
+        response = Message(address=event.message.reply_to, 
body=event.message.body.upper(),
+                           correlation_id=event.message.correlation_id)
+        self.container.declare_transaction(self.conn, 
handler=TxRequest(response, sender, event.delivery))
+
+    def on_connection_open(self, event):
+        if event.connection.remote_offered_capabilities and 'ANONYMOUS-RELAY' 
in event.connection.remote_offered_capabilities:
+            self.relay = self.container.create_sender(self.conn, None)
+
+try:
+    Container(TxServer("localhost:5672", "examples")).run()
+except KeyboardInterrupt: pass
+
+
+

Propchange: 
qpid/site/input/releases/qpid-proton-master/proton/python/examples/server_tx.py
------------------------------------------------------------------------------
    svn:executable = *

Added: 
qpid/site/input/releases/qpid-proton-master/proton/python/examples/server_tx.py.html.in
URL: 
http://svn.apache.org/viewvc/qpid/site/input/releases/qpid-proton-master/proton/python/examples/server_tx.py.html.in?rev=1705923&view=auto
==============================================================================
--- 
qpid/site/input/releases/qpid-proton-master/proton/python/examples/server_tx.py.html.in
 (added)
+++ 
qpid/site/input/releases/qpid-proton-master/proton/python/examples/server_tx.py.html.in
 Tue Sep 29 20:27:56 2015
@@ -0,0 +1,61 @@
+
+<h1>server_tx.py</h1>
+<div class="highlight"><pre><span class="kn">from</span> <span 
class="nn">__future__</span> <span class="kn">import</span> <span 
class="n">print_function</span>
+<span class="kn">from</span> <span class="nn">proton</span> <span 
class="kn">import</span> <span class="n">Message</span>
+<span class="kn">from</span> <span class="nn">proton.reactor</span> <span 
class="kn">import</span> <span class="n">Container</span>
+<span class="kn">from</span> <span class="nn">proton.handlers</span> <span 
class="kn">import</span> <span class="n">MessagingHandler</span><span 
class="p">,</span> <span class="n">TransactionHandler</span>
+
+<span class="k">class</span> <span class="nc">TxRequest</span><span 
class="p">(</span><span class="n">TransactionHandler</span><span 
class="p">):</span>
+    <span class="k">def</span> <span class="nf">__init__</span><span 
class="p">(</span><span class="bp">self</span><span class="p">,</span> <span 
class="n">response</span><span class="p">,</span> <span 
class="n">sender</span><span class="p">,</span> <span 
class="n">request_delivery</span><span class="p">):</span>
+        <span class="nb">super</span><span class="p">(</span><span 
class="n">TxRequest</span><span class="p">,</span> <span 
class="bp">self</span><span class="p">)</span><span class="o">.</span><span 
class="n">__init__</span><span class="p">()</span>
+        <span class="bp">self</span><span class="o">.</span><span 
class="n">response</span> <span class="o">=</span> <span 
class="n">response</span>
+        <span class="bp">self</span><span class="o">.</span><span 
class="n">sender</span> <span class="o">=</span> <span class="n">sender</span>
+        <span class="bp">self</span><span class="o">.</span><span 
class="n">request_delivery</span> <span class="o">=</span> <span 
class="n">request_delivery</span>
+
+    <span class="k">def</span> <span 
class="nf">on_transaction_declared</span><span class="p">(</span><span 
class="bp">self</span><span class="p">,</span> <span 
class="n">event</span><span class="p">):</span>
+        <span class="n">event</span><span class="o">.</span><span 
class="n">transaction</span><span class="o">.</span><span 
class="n">send</span><span class="p">(</span><span class="bp">self</span><span 
class="o">.</span><span class="n">sender</span><span class="p">,</span> <span 
class="bp">self</span><span class="o">.</span><span 
class="n">response</span><span class="p">)</span>
+        <span class="n">event</span><span class="o">.</span><span 
class="n">transaction</span><span class="o">.</span><span 
class="n">accept</span><span class="p">(</span><span 
class="bp">self</span><span class="o">.</span><span 
class="n">request_delivery</span><span class="p">)</span>
+        <span class="n">event</span><span class="o">.</span><span 
class="n">transaction</span><span class="o">.</span><span 
class="n">commit</span><span class="p">()</span>
+
+    <span class="k">def</span> <span 
class="nf">on_transaction_committed</span><span class="p">(</span><span 
class="bp">self</span><span class="p">,</span> <span 
class="n">event</span><span class="p">):</span>
+        <span class="k">print</span><span class="p">(</span><span 
class="s">&quot;Request processed successfully&quot;</span><span 
class="p">)</span>
+
+    <span class="k">def</span> <span 
class="nf">on_transaction_aborted</span><span class="p">(</span><span 
class="bp">self</span><span class="p">,</span> <span 
class="n">event</span><span class="p">):</span>
+        <span class="k">print</span><span class="p">(</span><span 
class="s">&quot;Request processing aborted&quot;</span><span class="p">)</span>
+
+
+<span class="k">class</span> <span class="nc">TxServer</span><span 
class="p">(</span><span class="n">MessagingHandler</span><span 
class="p">):</span>
+    <span class="k">def</span> <span class="nf">__init__</span><span 
class="p">(</span><span class="bp">self</span><span class="p">,</span> <span 
class="n">host</span><span class="p">,</span> <span 
class="n">address</span><span class="p">):</span>
+        <span class="nb">super</span><span class="p">(</span><span 
class="n">TxServer</span><span class="p">,</span> <span 
class="bp">self</span><span class="p">)</span><span class="o">.</span><span 
class="n">__init__</span><span class="p">(</span><span 
class="n">auto_accept</span><span class="o">=</span><span 
class="bp">False</span><span class="p">)</span>
+        <span class="bp">self</span><span class="o">.</span><span 
class="n">host</span> <span class="o">=</span> <span class="n">host</span>
+        <span class="bp">self</span><span class="o">.</span><span 
class="n">address</span> <span class="o">=</span> <span class="n">address</span>
+
+    <span class="k">def</span> <span class="nf">on_start</span><span 
class="p">(</span><span class="bp">self</span><span class="p">,</span> <span 
class="n">event</span><span class="p">):</span>
+        <span class="bp">self</span><span class="o">.</span><span 
class="n">container</span> <span class="o">=</span> <span 
class="n">event</span><span class="o">.</span><span class="n">container</span>
+        <span class="bp">self</span><span class="o">.</span><span 
class="n">conn</span> <span class="o">=</span> <span 
class="n">event</span><span class="o">.</span><span 
class="n">container</span><span class="o">.</span><span 
class="n">connect</span><span class="p">(</span><span 
class="bp">self</span><span class="o">.</span><span class="n">host</span><span 
class="p">,</span> <span class="n">reconnect</span><span 
class="o">=</span><span class="bp">False</span><span class="p">)</span>
+        <span class="bp">self</span><span class="o">.</span><span 
class="n">receiver</span> <span class="o">=</span> <span 
class="n">event</span><span class="o">.</span><span 
class="n">container</span><span class="o">.</span><span 
class="n">create_receiver</span><span class="p">(</span><span 
class="bp">self</span><span class="o">.</span><span class="n">conn</span><span 
class="p">,</span> <span class="bp">self</span><span class="o">.</span><span 
class="n">address</span><span class="p">)</span>
+        <span class="bp">self</span><span class="o">.</span><span 
class="n">senders</span> <span class="o">=</span> <span class="p">{}</span>
+        <span class="bp">self</span><span class="o">.</span><span 
class="n">relay</span> <span class="o">=</span> <span class="bp">None</span>
+
+    <span class="k">def</span> <span class="nf">on_message</span><span 
class="p">(</span><span class="bp">self</span><span class="p">,</span> <span 
class="n">event</span><span class="p">):</span>
+        <span class="n">sender</span> <span class="o">=</span> <span 
class="bp">self</span><span class="o">.</span><span class="n">relay</span>
+        <span class="k">if</span> <span class="ow">not</span> <span 
class="n">sender</span><span class="p">:</span>
+            <span class="n">sender</span> <span class="o">=</span> <span 
class="bp">self</span><span class="o">.</span><span 
class="n">senders</span><span class="o">.</span><span class="n">get</span><span 
class="p">(</span><span class="n">event</span><span class="o">.</span><span 
class="n">message</span><span class="o">.</span><span 
class="n">reply_to</span><span class="p">)</span>
+        <span class="k">if</span> <span class="ow">not</span> <span 
class="n">sender</span><span class="p">:</span>
+            <span class="n">sender</span> <span class="o">=</span> <span 
class="bp">self</span><span class="o">.</span><span 
class="n">container</span><span class="o">.</span><span 
class="n">create_sender</span><span class="p">(</span><span 
class="bp">self</span><span class="o">.</span><span class="n">conn</span><span 
class="p">,</span> <span class="n">event</span><span class="o">.</span><span 
class="n">message</span><span class="o">.</span><span 
class="n">reply_to</span><span class="p">)</span>
+            <span class="bp">self</span><span class="o">.</span><span 
class="n">senders</span><span class="p">[</span><span 
class="n">event</span><span class="o">.</span><span 
class="n">message</span><span class="o">.</span><span 
class="n">reply_to</span><span class="p">]</span> <span class="o">=</span> 
<span class="n">sender</span>
+
+        <span class="n">response</span> <span class="o">=</span> <span 
class="n">Message</span><span class="p">(</span><span 
class="n">address</span><span class="o">=</span><span 
class="n">event</span><span class="o">.</span><span 
class="n">message</span><span class="o">.</span><span 
class="n">reply_to</span><span class="p">,</span> <span 
class="n">body</span><span class="o">=</span><span class="n">event</span><span 
class="o">.</span><span class="n">message</span><span class="o">.</span><span 
class="n">body</span><span class="o">.</span><span class="n">upper</span><span 
class="p">(),</span>
+                           <span class="n">correlation_id</span><span 
class="o">=</span><span class="n">event</span><span class="o">.</span><span 
class="n">message</span><span class="o">.</span><span 
class="n">correlation_id</span><span class="p">)</span>
+        <span class="bp">self</span><span class="o">.</span><span 
class="n">container</span><span class="o">.</span><span 
class="n">declare_transaction</span><span class="p">(</span><span 
class="bp">self</span><span class="o">.</span><span class="n">conn</span><span 
class="p">,</span> <span class="n">handler</span><span class="o">=</span><span 
class="n">TxRequest</span><span class="p">(</span><span 
class="n">response</span><span class="p">,</span> <span 
class="n">sender</span><span class="p">,</span> <span 
class="n">event</span><span class="o">.</span><span 
class="n">delivery</span><span class="p">))</span>
+
+    <span class="k">def</span> <span class="nf">on_connection_open</span><span 
class="p">(</span><span class="bp">self</span><span class="p">,</span> <span 
class="n">event</span><span class="p">):</span>
+        <span class="k">if</span> <span class="n">event</span><span 
class="o">.</span><span class="n">connection</span><span 
class="o">.</span><span class="n">remote_offered_capabilities</span> <span 
class="ow">and</span> <span class="s">&#39;ANONYMOUS-RELAY&#39;</span> <span 
class="ow">in</span> <span class="n">event</span><span class="o">.</span><span 
class="n">connection</span><span class="o">.</span><span 
class="n">remote_offered_capabilities</span><span class="p">:</span>
+            <span class="bp">self</span><span class="o">.</span><span 
class="n">relay</span> <span class="o">=</span> <span 
class="bp">self</span><span class="o">.</span><span 
class="n">container</span><span class="o">.</span><span 
class="n">create_sender</span><span class="p">(</span><span 
class="bp">self</span><span class="o">.</span><span class="n">conn</span><span 
class="p">,</span> <span class="bp">None</span><span class="p">)</span>
+
+<span class="k">try</span><span class="p">:</span>
+    <span class="n">Container</span><span class="p">(</span><span 
class="n">TxServer</span><span class="p">(</span><span 
class="s">&quot;localhost:5672&quot;</span><span class="p">,</span> <span 
class="s">&quot;examples&quot;</span><span class="p">))</span><span 
class="o">.</span><span class="n">run</span><span class="p">()</span>
+<span class="k">except</span> <span class="ne">KeyboardInterrupt</span><span 
class="p">:</span> <span class="k">pass</span>
+</pre></div>
+
+<p><a href="server_tx.py">Download this file</a></p>

Added: 
qpid/site/input/releases/qpid-proton-master/proton/python/examples/simple_recv.py
URL: 
http://svn.apache.org/viewvc/qpid/site/input/releases/qpid-proton-master/proton/python/examples/simple_recv.py?rev=1705923&view=auto
==============================================================================
--- 
qpid/site/input/releases/qpid-proton-master/proton/python/examples/simple_recv.py
 (added)
+++ 
qpid/site/input/releases/qpid-proton-master/proton/python/examples/simple_recv.py
 Tue Sep 29 20:27:56 2015
@@ -0,0 +1,59 @@
+#!/usr/bin/env python
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+from __future__ import print_function
+import optparse
+from proton.handlers import MessagingHandler
+from proton.reactor import Container
+
+class Recv(MessagingHandler):
+    def __init__(self, url, count):
+        super(Recv, self).__init__()
+        self.url = url
+        self.expected = count
+        self.received = 0
+
+    def on_start(self, event):
+        event.container.create_receiver(self.url)
+
+    def on_message(self, event):
+        if event.message.id and event.message.id < self.received:
+            # ignore duplicate message
+            return
+        if self.expected == 0 or self.received < self.expected:
+            print(event.message.body)
+            self.received += 1
+            if self.received == self.expected:
+                event.receiver.close()
+                event.connection.close()
+
+parser = optparse.OptionParser(usage="usage: %prog [options]")
+parser.add_option("-a", "--address", default="localhost:5672/examples",
+                  help="address from which messages are received (default 
%default)")
+parser.add_option("-m", "--messages", type="int", default=100,
+                  help="number of messages to receive; 0 receives indefinitely 
(default %default)")
+opts, args = parser.parse_args()
+
+try:
+    Container(Recv(opts.address, opts.messages)).run()
+except KeyboardInterrupt: pass
+
+
+

Propchange: 
qpid/site/input/releases/qpid-proton-master/proton/python/examples/simple_recv.py
------------------------------------------------------------------------------
    svn:executable = *

Added: 
qpid/site/input/releases/qpid-proton-master/proton/python/examples/simple_recv.py.html.in
URL: 
http://svn.apache.org/viewvc/qpid/site/input/releases/qpid-proton-master/proton/python/examples/simple_recv.py.html.in?rev=1705923&view=auto
==============================================================================
--- 
qpid/site/input/releases/qpid-proton-master/proton/python/examples/simple_recv.py.html.in
 (added)
+++ 
qpid/site/input/releases/qpid-proton-master/proton/python/examples/simple_recv.py.html.in
 Tue Sep 29 20:27:56 2015
@@ -0,0 +1,41 @@
+
+<h1>simple_recv.py</h1>
+<div class="highlight"><pre><span class="kn">from</span> <span 
class="nn">__future__</span> <span class="kn">import</span> <span 
class="n">print_function</span>
+<span class="kn">import</span> <span class="nn">optparse</span>
+<span class="kn">from</span> <span class="nn">proton.handlers</span> <span 
class="kn">import</span> <span class="n">MessagingHandler</span>
+<span class="kn">from</span> <span class="nn">proton.reactor</span> <span 
class="kn">import</span> <span class="n">Container</span>
+
+<span class="k">class</span> <span class="nc">Recv</span><span 
class="p">(</span><span class="n">MessagingHandler</span><span 
class="p">):</span>
+    <span class="k">def</span> <span class="nf">__init__</span><span 
class="p">(</span><span class="bp">self</span><span class="p">,</span> <span 
class="n">url</span><span class="p">,</span> <span class="n">count</span><span 
class="p">):</span>
+        <span class="nb">super</span><span class="p">(</span><span 
class="n">Recv</span><span class="p">,</span> <span class="bp">self</span><span 
class="p">)</span><span class="o">.</span><span class="n">__init__</span><span 
class="p">()</span>
+        <span class="bp">self</span><span class="o">.</span><span 
class="n">url</span> <span class="o">=</span> <span class="n">url</span>
+        <span class="bp">self</span><span class="o">.</span><span 
class="n">expected</span> <span class="o">=</span> <span class="n">count</span>
+        <span class="bp">self</span><span class="o">.</span><span 
class="n">received</span> <span class="o">=</span> <span class="mi">0</span>
+
+    <span class="k">def</span> <span class="nf">on_start</span><span 
class="p">(</span><span class="bp">self</span><span class="p">,</span> <span 
class="n">event</span><span class="p">):</span>
+        <span class="n">event</span><span class="o">.</span><span 
class="n">container</span><span class="o">.</span><span 
class="n">create_receiver</span><span class="p">(</span><span 
class="bp">self</span><span class="o">.</span><span class="n">url</span><span 
class="p">)</span>
+
+    <span class="k">def</span> <span class="nf">on_message</span><span 
class="p">(</span><span class="bp">self</span><span class="p">,</span> <span 
class="n">event</span><span class="p">):</span>
+        <span class="k">if</span> <span class="n">event</span><span 
class="o">.</span><span class="n">message</span><span class="o">.</span><span 
class="n">id</span> <span class="ow">and</span> <span 
class="n">event</span><span class="o">.</span><span 
class="n">message</span><span class="o">.</span><span class="n">id</span> <span 
class="o">&lt;</span> <span class="bp">self</span><span class="o">.</span><span 
class="n">received</span><span class="p">:</span>
+            <span class="c"># ignore duplicate message</span>
+            <span class="k">return</span>
+        <span class="k">if</span> <span class="bp">self</span><span 
class="o">.</span><span class="n">expected</span> <span class="o">==</span> 
<span class="mi">0</span> <span class="ow">or</span> <span 
class="bp">self</span><span class="o">.</span><span class="n">received</span> 
<span class="o">&lt;</span> <span class="bp">self</span><span 
class="o">.</span><span class="n">expected</span><span class="p">:</span>
+            <span class="k">print</span><span class="p">(</span><span 
class="n">event</span><span class="o">.</span><span 
class="n">message</span><span class="o">.</span><span 
class="n">body</span><span class="p">)</span>
+            <span class="bp">self</span><span class="o">.</span><span 
class="n">received</span> <span class="o">+=</span> <span class="mi">1</span>
+            <span class="k">if</span> <span class="bp">self</span><span 
class="o">.</span><span class="n">received</span> <span class="o">==</span> 
<span class="bp">self</span><span class="o">.</span><span 
class="n">expected</span><span class="p">:</span>
+                <span class="n">event</span><span class="o">.</span><span 
class="n">receiver</span><span class="o">.</span><span 
class="n">close</span><span class="p">()</span>
+                <span class="n">event</span><span class="o">.</span><span 
class="n">connection</span><span class="o">.</span><span 
class="n">close</span><span class="p">()</span>
+
+<span class="n">parser</span> <span class="o">=</span> <span 
class="n">optparse</span><span class="o">.</span><span 
class="n">OptionParser</span><span class="p">(</span><span 
class="n">usage</span><span class="o">=</span><span class="s">&quot;usage: 
%prog [options]&quot;</span><span class="p">)</span>
+<span class="n">parser</span><span class="o">.</span><span 
class="n">add_option</span><span class="p">(</span><span 
class="s">&quot;-a&quot;</span><span class="p">,</span> <span 
class="s">&quot;--address&quot;</span><span class="p">,</span> <span 
class="n">default</span><span class="o">=</span><span 
class="s">&quot;localhost:5672/examples&quot;</span><span class="p">,</span>
+                  <span class="n">help</span><span class="o">=</span><span 
class="s">&quot;address from which messages are received (default </span><span 
class="si">%d</span><span class="s">efault)&quot;</span><span class="p">)</span>
+<span class="n">parser</span><span class="o">.</span><span 
class="n">add_option</span><span class="p">(</span><span 
class="s">&quot;-m&quot;</span><span class="p">,</span> <span 
class="s">&quot;--messages&quot;</span><span class="p">,</span> <span 
class="nb">type</span><span class="o">=</span><span 
class="s">&quot;int&quot;</span><span class="p">,</span> <span 
class="n">default</span><span class="o">=</span><span 
class="mi">100</span><span class="p">,</span>
+                  <span class="n">help</span><span class="o">=</span><span 
class="s">&quot;number of messages to receive; 0 receives indefinitely (default 
</span><span class="si">%d</span><span class="s">efault)&quot;</span><span 
class="p">)</span>
+<span class="n">opts</span><span class="p">,</span> <span 
class="n">args</span> <span class="o">=</span> <span 
class="n">parser</span><span class="o">.</span><span 
class="n">parse_args</span><span class="p">()</span>
+
+<span class="k">try</span><span class="p">:</span>
+    <span class="n">Container</span><span class="p">(</span><span 
class="n">Recv</span><span class="p">(</span><span class="n">opts</span><span 
class="o">.</span><span class="n">address</span><span class="p">,</span> <span 
class="n">opts</span><span class="o">.</span><span 
class="n">messages</span><span class="p">))</span><span class="o">.</span><span 
class="n">run</span><span class="p">()</span>
+<span class="k">except</span> <span class="ne">KeyboardInterrupt</span><span 
class="p">:</span> <span class="k">pass</span>
+</pre></div>
+
+<p><a href="simple_recv.py">Download this file</a></p>

Added: 
qpid/site/input/releases/qpid-proton-master/proton/python/examples/simple_send.py
URL: 
http://svn.apache.org/viewvc/qpid/site/input/releases/qpid-proton-master/proton/python/examples/simple_send.py?rev=1705923&view=auto
==============================================================================
--- 
qpid/site/input/releases/qpid-proton-master/proton/python/examples/simple_send.py
 (added)
+++ 
qpid/site/input/releases/qpid-proton-master/proton/python/examples/simple_send.py
 Tue Sep 29 20:27:56 2015
@@ -0,0 +1,63 @@
+#!/usr/bin/env python
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+from __future__ import print_function, unicode_literals
+import optparse
+from proton import Message
+from proton.handlers import MessagingHandler
+from proton.reactor import Container
+
+class Send(MessagingHandler):
+    def __init__(self, url, messages):
+        super(Send, self).__init__()
+        self.url = url
+        self.sent = 0
+        self.confirmed = 0
+        self.total = messages
+
+    def on_start(self, event):
+        event.container.create_sender(self.url)
+
+    def on_sendable(self, event):
+        while event.sender.credit and self.sent < self.total:
+            msg = Message(id=(self.sent+1), body={'sequence':(self.sent+1)})
+            event.sender.send(msg)
+            self.sent += 1
+
+    def on_accepted(self, event):
+        self.confirmed += 1
+        if self.confirmed == self.total:
+            print("all messages confirmed")
+            event.connection.close()
+
+    def on_disconnected(self, event):
+        self.sent = self.confirmed
+
+parser = optparse.OptionParser(usage="usage: %prog [options]",
+                               description="Send messages to the supplied 
address.")
+parser.add_option("-a", "--address", default="localhost:5672/examples",
+                  help="address to which messages are sent (default %default)")
+parser.add_option("-m", "--messages", type="int", default=100,
+                  help="number of messages to send (default %default)")
+opts, args = parser.parse_args()
+
+try:
+    Container(Send(opts.address, opts.messages)).run()
+except KeyboardInterrupt: pass

Propchange: 
qpid/site/input/releases/qpid-proton-master/proton/python/examples/simple_send.py
------------------------------------------------------------------------------
    svn:executable = *

Added: 
qpid/site/input/releases/qpid-proton-master/proton/python/examples/simple_send.py.html.in
URL: 
http://svn.apache.org/viewvc/qpid/site/input/releases/qpid-proton-master/proton/python/examples/simple_send.py.html.in?rev=1705923&view=auto
==============================================================================
--- 
qpid/site/input/releases/qpid-proton-master/proton/python/examples/simple_send.py.html.in
 (added)
+++ 
qpid/site/input/releases/qpid-proton-master/proton/python/examples/simple_send.py.html.in
 Tue Sep 29 20:27:56 2015
@@ -0,0 +1,48 @@
+
+<h1>simple_send.py</h1>
+<div class="highlight"><pre><span class="kn">from</span> <span 
class="nn">__future__</span> <span class="kn">import</span> <span 
class="n">print_function</span><span class="p">,</span> <span 
class="n">unicode_literals</span>
+<span class="kn">import</span> <span class="nn">optparse</span>
+<span class="kn">from</span> <span class="nn">proton</span> <span 
class="kn">import</span> <span class="n">Message</span>
+<span class="kn">from</span> <span class="nn">proton.handlers</span> <span 
class="kn">import</span> <span class="n">MessagingHandler</span>
+<span class="kn">from</span> <span class="nn">proton.reactor</span> <span 
class="kn">import</span> <span class="n">Container</span>
+
+<span class="k">class</span> <span class="nc">Send</span><span 
class="p">(</span><span class="n">MessagingHandler</span><span 
class="p">):</span>
+    <span class="k">def</span> <span class="nf">__init__</span><span 
class="p">(</span><span class="bp">self</span><span class="p">,</span> <span 
class="n">url</span><span class="p">,</span> <span 
class="n">messages</span><span class="p">):</span>
+        <span class="nb">super</span><span class="p">(</span><span 
class="n">Send</span><span class="p">,</span> <span class="bp">self</span><span 
class="p">)</span><span class="o">.</span><span class="n">__init__</span><span 
class="p">()</span>
+        <span class="bp">self</span><span class="o">.</span><span 
class="n">url</span> <span class="o">=</span> <span class="n">url</span>
+        <span class="bp">self</span><span class="o">.</span><span 
class="n">sent</span> <span class="o">=</span> <span class="mi">0</span>
+        <span class="bp">self</span><span class="o">.</span><span 
class="n">confirmed</span> <span class="o">=</span> <span class="mi">0</span>
+        <span class="bp">self</span><span class="o">.</span><span 
class="n">total</span> <span class="o">=</span> <span class="n">messages</span>
+
+    <span class="k">def</span> <span class="nf">on_start</span><span 
class="p">(</span><span class="bp">self</span><span class="p">,</span> <span 
class="n">event</span><span class="p">):</span>
+        <span class="n">event</span><span class="o">.</span><span 
class="n">container</span><span class="o">.</span><span 
class="n">create_sender</span><span class="p">(</span><span 
class="bp">self</span><span class="o">.</span><span class="n">url</span><span 
class="p">)</span>
+
+    <span class="k">def</span> <span class="nf">on_sendable</span><span 
class="p">(</span><span class="bp">self</span><span class="p">,</span> <span 
class="n">event</span><span class="p">):</span>
+        <span class="k">while</span> <span class="n">event</span><span 
class="o">.</span><span class="n">sender</span><span class="o">.</span><span 
class="n">credit</span> <span class="ow">and</span> <span 
class="bp">self</span><span class="o">.</span><span class="n">sent</span> <span 
class="o">&lt;</span> <span class="bp">self</span><span class="o">.</span><span 
class="n">total</span><span class="p">:</span>
+            <span class="n">msg</span> <span class="o">=</span> <span 
class="n">Message</span><span class="p">(</span><span class="nb">id</span><span 
class="o">=</span><span class="p">(</span><span class="bp">self</span><span 
class="o">.</span><span class="n">sent</span><span class="o">+</span><span 
class="mi">1</span><span class="p">),</span> <span class="n">body</span><span 
class="o">=</span><span class="p">{</span><span 
class="s">&#39;sequence&#39;</span><span class="p">:(</span><span 
class="bp">self</span><span class="o">.</span><span class="n">sent</span><span 
class="o">+</span><span class="mi">1</span><span class="p">)})</span>
+            <span class="n">event</span><span class="o">.</span><span 
class="n">sender</span><span class="o">.</span><span class="n">send</span><span 
class="p">(</span><span class="n">msg</span><span class="p">)</span>
+            <span class="bp">self</span><span class="o">.</span><span 
class="n">sent</span> <span class="o">+=</span> <span class="mi">1</span>
+
+    <span class="k">def</span> <span class="nf">on_accepted</span><span 
class="p">(</span><span class="bp">self</span><span class="p">,</span> <span 
class="n">event</span><span class="p">):</span>
+        <span class="bp">self</span><span class="o">.</span><span 
class="n">confirmed</span> <span class="o">+=</span> <span class="mi">1</span>
+        <span class="k">if</span> <span class="bp">self</span><span 
class="o">.</span><span class="n">confirmed</span> <span class="o">==</span> 
<span class="bp">self</span><span class="o">.</span><span 
class="n">total</span><span class="p">:</span>
+            <span class="k">print</span><span class="p">(</span><span 
class="s">&quot;all messages confirmed&quot;</span><span class="p">)</span>
+            <span class="n">event</span><span class="o">.</span><span 
class="n">connection</span><span class="o">.</span><span 
class="n">close</span><span class="p">()</span>
+
+    <span class="k">def</span> <span class="nf">on_disconnected</span><span 
class="p">(</span><span class="bp">self</span><span class="p">,</span> <span 
class="n">event</span><span class="p">):</span>
+        <span class="bp">self</span><span class="o">.</span><span 
class="n">sent</span> <span class="o">=</span> <span 
class="bp">self</span><span class="o">.</span><span class="n">confirmed</span>
+
+<span class="n">parser</span> <span class="o">=</span> <span 
class="n">optparse</span><span class="o">.</span><span 
class="n">OptionParser</span><span class="p">(</span><span 
class="n">usage</span><span class="o">=</span><span class="s">&quot;usage: 
%prog [options]&quot;</span><span class="p">,</span>
+                               <span class="n">description</span><span 
class="o">=</span><span class="s">&quot;Send messages to the supplied 
address.&quot;</span><span class="p">)</span>
+<span class="n">parser</span><span class="o">.</span><span 
class="n">add_option</span><span class="p">(</span><span 
class="s">&quot;-a&quot;</span><span class="p">,</span> <span 
class="s">&quot;--address&quot;</span><span class="p">,</span> <span 
class="n">default</span><span class="o">=</span><span 
class="s">&quot;localhost:5672/examples&quot;</span><span class="p">,</span>
+                  <span class="n">help</span><span class="o">=</span><span 
class="s">&quot;address to which messages are sent (default </span><span 
class="si">%d</span><span class="s">efault)&quot;</span><span class="p">)</span>
+<span class="n">parser</span><span class="o">.</span><span 
class="n">add_option</span><span class="p">(</span><span 
class="s">&quot;-m&quot;</span><span class="p">,</span> <span 
class="s">&quot;--messages&quot;</span><span class="p">,</span> <span 
class="nb">type</span><span class="o">=</span><span 
class="s">&quot;int&quot;</span><span class="p">,</span> <span 
class="n">default</span><span class="o">=</span><span 
class="mi">100</span><span class="p">,</span>
+                  <span class="n">help</span><span class="o">=</span><span 
class="s">&quot;number of messages to send (default </span><span 
class="si">%d</span><span class="s">efault)&quot;</span><span class="p">)</span>
+<span class="n">opts</span><span class="p">,</span> <span 
class="n">args</span> <span class="o">=</span> <span 
class="n">parser</span><span class="o">.</span><span 
class="n">parse_args</span><span class="p">()</span>
+
+<span class="k">try</span><span class="p">:</span>
+    <span class="n">Container</span><span class="p">(</span><span 
class="n">Send</span><span class="p">(</span><span class="n">opts</span><span 
class="o">.</span><span class="n">address</span><span class="p">,</span> <span 
class="n">opts</span><span class="o">.</span><span 
class="n">messages</span><span class="p">))</span><span class="o">.</span><span 
class="n">run</span><span class="p">()</span>
+<span class="k">except</span> <span class="ne">KeyboardInterrupt</span><span 
class="p">:</span> <span class="k">pass</span>
+</pre></div>
+
+<p><a href="simple_send.py">Download this file</a></p>

Added: 
qpid/site/input/releases/qpid-proton-master/proton/python/examples/sync_client.py
URL: 
http://svn.apache.org/viewvc/qpid/site/input/releases/qpid-proton-master/proton/python/examples/sync_client.py?rev=1705923&view=auto
==============================================================================
--- 
qpid/site/input/releases/qpid-proton-master/proton/python/examples/sync_client.py
 (added)
+++ 
qpid/site/input/releases/qpid-proton-master/proton/python/examples/sync_client.py
 Tue Sep 29 20:27:56 2015
@@ -0,0 +1,55 @@
+#!/usr/bin/env python
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+"""
+Demonstrates the client side of the synchronous request-response pattern
+(also known as RPC or Remote Procecure Call) using proton.
+
+"""
+from __future__ import print_function
+
+import optparse
+from proton import Message, Url, ConnectionException, Timeout
+from proton.utils import SyncRequestResponse, BlockingConnection
+from proton.handlers import IncomingMessageHandler
+import sys
+
+parser = optparse.OptionParser(usage="usage: %prog [options]",
+                               description="Send requests to the supplied 
address and print responses.")
+parser.add_option("-a", "--address", default="localhost:5672/examples",
+                  help="address to which messages are sent (default %default)")
+parser.add_option("-t", "--timeout", type="float", default=5,
+                  help="Give up after this time out (default %default)")
+opts, args = parser.parse_args()
+
+url = Url(opts.address)
+client = SyncRequestResponse(BlockingConnection(url, timeout=opts.timeout), 
url.path)
+
+try:
+    REQUESTS= ["Twas brillig, and the slithy toves",
+               "Did gire and gymble in the wabe.",
+               "All mimsy were the borogroves,",
+               "And the mome raths outgrabe."]
+    for request in REQUESTS:
+        response = client.call(Message(body=request))
+        print("%s => %s" % (request, response.body))
+finally:
+    client.connection.close()
+

Propchange: 
qpid/site/input/releases/qpid-proton-master/proton/python/examples/sync_client.py
------------------------------------------------------------------------------
    svn:executable = *

Added: 
qpid/site/input/releases/qpid-proton-master/proton/python/examples/sync_client.py.html.in
URL: 
http://svn.apache.org/viewvc/qpid/site/input/releases/qpid-proton-master/proton/python/examples/sync_client.py.html.in?rev=1705923&view=auto
==============================================================================
--- 
qpid/site/input/releases/qpid-proton-master/proton/python/examples/sync_client.py.html.in
 (added)
+++ 
qpid/site/input/releases/qpid-proton-master/proton/python/examples/sync_client.py.html.in
 Tue Sep 29 20:27:56 2015
@@ -0,0 +1,39 @@
+
+<h1>sync_client.py</h1>
+<div class="highlight"><pre><span class="sd">&quot;&quot;&quot;</span>
+<span class="sd">Demonstrates the client side of the synchronous 
request-response pattern</span>
+<span class="sd">(also known as RPC or Remote Procecure Call) using 
proton.</span>
+
+<span class="sd">&quot;&quot;&quot;</span>
+<span class="kn">from</span> <span class="nn">__future__</span> <span 
class="kn">import</span> <span class="n">print_function</span>
+
+<span class="kn">import</span> <span class="nn">optparse</span>
+<span class="kn">from</span> <span class="nn">proton</span> <span 
class="kn">import</span> <span class="n">Message</span><span class="p">,</span> 
<span class="n">Url</span><span class="p">,</span> <span 
class="n">ConnectionException</span><span class="p">,</span> <span 
class="n">Timeout</span>
+<span class="kn">from</span> <span class="nn">proton.utils</span> <span 
class="kn">import</span> <span class="n">SyncRequestResponse</span><span 
class="p">,</span> <span class="n">BlockingConnection</span>
+<span class="kn">from</span> <span class="nn">proton.handlers</span> <span 
class="kn">import</span> <span class="n">IncomingMessageHandler</span>
+<span class="kn">import</span> <span class="nn">sys</span>
+
+<span class="n">parser</span> <span class="o">=</span> <span 
class="n">optparse</span><span class="o">.</span><span 
class="n">OptionParser</span><span class="p">(</span><span 
class="n">usage</span><span class="o">=</span><span class="s">&quot;usage: 
%prog [options]&quot;</span><span class="p">,</span>
+                               <span class="n">description</span><span 
class="o">=</span><span class="s">&quot;Send requests to the supplied address 
and print responses.&quot;</span><span class="p">)</span>
+<span class="n">parser</span><span class="o">.</span><span 
class="n">add_option</span><span class="p">(</span><span 
class="s">&quot;-a&quot;</span><span class="p">,</span> <span 
class="s">&quot;--address&quot;</span><span class="p">,</span> <span 
class="n">default</span><span class="o">=</span><span 
class="s">&quot;localhost:5672/examples&quot;</span><span class="p">,</span>
+                  <span class="n">help</span><span class="o">=</span><span 
class="s">&quot;address to which messages are sent (default </span><span 
class="si">%d</span><span class="s">efault)&quot;</span><span class="p">)</span>
+<span class="n">parser</span><span class="o">.</span><span 
class="n">add_option</span><span class="p">(</span><span 
class="s">&quot;-t&quot;</span><span class="p">,</span> <span 
class="s">&quot;--timeout&quot;</span><span class="p">,</span> <span 
class="nb">type</span><span class="o">=</span><span 
class="s">&quot;float&quot;</span><span class="p">,</span> <span 
class="n">default</span><span class="o">=</span><span class="mi">5</span><span 
class="p">,</span>
+                  <span class="n">help</span><span class="o">=</span><span 
class="s">&quot;Give up after this time out (default </span><span 
class="si">%d</span><span class="s">efault)&quot;</span><span class="p">)</span>
+<span class="n">opts</span><span class="p">,</span> <span 
class="n">args</span> <span class="o">=</span> <span 
class="n">parser</span><span class="o">.</span><span 
class="n">parse_args</span><span class="p">()</span>
+
+<span class="n">url</span> <span class="o">=</span> <span 
class="n">Url</span><span class="p">(</span><span class="n">opts</span><span 
class="o">.</span><span class="n">address</span><span class="p">)</span>
+<span class="n">client</span> <span class="o">=</span> <span 
class="n">SyncRequestResponse</span><span class="p">(</span><span 
class="n">BlockingConnection</span><span class="p">(</span><span 
class="n">url</span><span class="p">,</span> <span 
class="n">timeout</span><span class="o">=</span><span 
class="n">opts</span><span class="o">.</span><span 
class="n">timeout</span><span class="p">),</span> <span 
class="n">url</span><span class="o">.</span><span class="n">path</span><span 
class="p">)</span>
+
+<span class="k">try</span><span class="p">:</span>
+    <span class="n">REQUESTS</span><span class="o">=</span> <span 
class="p">[</span><span class="s">&quot;Twas brillig, and the slithy 
toves&quot;</span><span class="p">,</span>
+               <span class="s">&quot;Did gire and gymble in the 
wabe.&quot;</span><span class="p">,</span>
+               <span class="s">&quot;All mimsy were the 
borogroves,&quot;</span><span class="p">,</span>
+               <span class="s">&quot;And the mome raths 
outgrabe.&quot;</span><span class="p">]</span>
+    <span class="k">for</span> <span class="n">request</span> <span 
class="ow">in</span> <span class="n">REQUESTS</span><span class="p">:</span>
+        <span class="n">response</span> <span class="o">=</span> <span 
class="n">client</span><span class="o">.</span><span class="n">call</span><span 
class="p">(</span><span class="n">Message</span><span class="p">(</span><span 
class="n">body</span><span class="o">=</span><span 
class="n">request</span><span class="p">))</span>
+        <span class="k">print</span><span class="p">(</span><span 
class="s">&quot;</span><span class="si">%s</span><span class="s"> =&gt; 
</span><span class="si">%s</span><span class="s">&quot;</span> <span 
class="o">%</span> <span class="p">(</span><span class="n">request</span><span 
class="p">,</span> <span class="n">response</span><span class="o">.</span><span 
class="n">body</span><span class="p">))</span>
+<span class="k">finally</span><span class="p">:</span>
+    <span class="n">client</span><span class="o">.</span><span 
class="n">connection</span><span class="o">.</span><span 
class="n">close</span><span class="p">()</span>
+</pre></div>
+
+<p><a href="sync_client.py">Download this file</a></p>

Added: 
qpid/site/input/releases/qpid-proton-master/proton/python/examples/test_examples.py
URL: 
http://svn.apache.org/viewvc/qpid/site/input/releases/qpid-proton-master/proton/python/examples/test_examples.py?rev=1705923&view=auto
==============================================================================
--- 
qpid/site/input/releases/qpid-proton-master/proton/python/examples/test_examples.py
 (added)
+++ 
qpid/site/input/releases/qpid-proton-master/proton/python/examples/test_examples.py
 Tue Sep 29 20:27:56 2015
@@ -0,0 +1,151 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+import sys
+import subprocess
+import time
+import unittest
+
+if sys.version_info[0] == 2:
+    _unicode_prefix = 'u'
+else:
+    _unicode_prefix = ''
+
+
+class ExamplesTest(unittest.TestCase):
+    def test_helloworld(self, example="helloworld.py"):
+        p = subprocess.Popen([example], stderr=subprocess.STDOUT, 
stdout=subprocess.PIPE,
+                             universal_newlines=True)
+        p.wait()
+        output = [l.strip() for l in p.stdout]
+        self.assertEqual(output, ['Hello World!'])
+
+    def test_helloworld_direct(self):
+        self.test_helloworld('helloworld_direct.py')
+
+    def test_helloworld_blocking(self):
+        self.test_helloworld('helloworld_blocking.py')
+
+    def test_helloworld_tornado(self):
+        self.test_helloworld('helloworld_tornado.py')
+
+    def test_helloworld_direct_tornado(self):
+        self.test_helloworld('helloworld_direct_tornado.py')
+
+    def test_simple_send_recv(self, recv='simple_recv.py', 
send='simple_send.py'):
+        r = subprocess.Popen([recv], stderr=subprocess.STDOUT, 
stdout=subprocess.PIPE,
+                             universal_newlines=True)
+        s = subprocess.Popen([send], stderr=subprocess.STDOUT, 
stdout=subprocess.PIPE,
+                             universal_newlines=True)
+        s.wait()
+        r.wait()
+        actual = [l.strip() for l in r.stdout]
+        expected = ["{%s'sequence': %i}" % (_unicode_prefix, (i+1)) for i in 
range(100)]
+        self.assertEqual(actual, expected)
+
+    def test_client_server(self, client=['client.py'], server=['server.py'], 
sleep=0):
+        s = subprocess.Popen(server, stderr=subprocess.STDOUT, 
stdout=subprocess.PIPE,
+                             universal_newlines=True)
+        if sleep:
+            time.sleep(sleep)
+        c = subprocess.Popen(client, stderr=subprocess.STDOUT, 
stdout=subprocess.PIPE,
+                             universal_newlines=True)
+        c.wait()
+        s.terminate()
+        actual = [l.strip() for l in c.stdout]
+        inputs = ["Twas brillig, and the slithy toves",
+                    "Did gire and gymble in the wabe.",
+                    "All mimsy were the borogroves,",
+                    "And the mome raths outgrabe."]
+        expected = ["%s => %s" % (l, l.upper()) for l in inputs]
+        self.assertEqual(actual, expected)
+
+    def test_sync_client_server(self):
+        self.test_client_server(client=['sync_client.py'])
+
+    def test_client_server_tx(self):
+        self.test_client_server(server=['server_tx.py'])
+
+    def test_sync_client_server_tx(self):
+        self.test_client_server(client=['sync_client.py'], 
server=['server_tx.py'])
+
+    def test_client_server_direct(self):
+        self.test_client_server(client=['client.py', '-a', 
'localhost:8888/examples'], server=['server_direct.py'], sleep=0.5)
+
+    def test_sync_client_server_direct(self):
+        self.test_client_server(client=['sync_client.py', '-a', 
'localhost:8888/examples'], server=['server_direct.py'], sleep=0.5)
+
+    def test_db_send_recv(self):
+        self.maxDiff = None
+        # setup databases
+        subprocess.check_call(['db_ctrl.py', 'init', './src_db'])
+        subprocess.check_call(['db_ctrl.py', 'init', './dst_db'])
+        fill = subprocess.Popen(['db_ctrl.py', 'insert', './src_db'],
+                                stdin=subprocess.PIPE, 
stderr=subprocess.STDOUT, stdout=subprocess.PIPE,
+                                universal_newlines=True)
+        for i in range(100):
+            fill.stdin.write("Message-%i\n" % (i+1))
+        fill.stdin.close()
+        fill.wait()
+        # run send and recv
+        r = subprocess.Popen(['db_recv.py', '-m', '100'], 
stderr=subprocess.STDOUT, stdout=subprocess.PIPE,
+                             universal_newlines=True)
+        s = subprocess.Popen(['db_send.py', '-m', '100'], 
stderr=subprocess.STDOUT, stdout=subprocess.PIPE,
+                             universal_newlines=True)
+        s.wait()
+        r.wait()
+        # verify output of receive
+        actual = [l.strip() for l in r.stdout]
+        expected = ["inserted message %i" % (i+1) for i in range(100)]
+        self.assertEqual(actual, expected)
+        # verify state of databases
+        v = subprocess.Popen(['db_ctrl.py', 'list', './dst_db'], 
stderr=subprocess.STDOUT, stdout=subprocess.PIPE,
+                             universal_newlines=True)
+        v.wait()
+        expected = ["(%i, %s'Message-%i')" % ((i+1), _unicode_prefix, (i+1)) 
for i in range(100)]
+        actual = [l.strip() for l in v.stdout]
+        self.assertEqual(actual, expected)
+
+    def test_tx_send_tx_recv(self):
+        self.test_simple_send_recv(recv='tx_recv.py', send='tx_send.py')
+
+    def test_simple_send_direct_recv(self):
+        self.maxDiff = None
+        r = subprocess.Popen(['direct_recv.py', '-a', 'localhost:8888'], 
stderr=subprocess.STDOUT, stdout=subprocess.PIPE,
+                             universal_newlines=True)
+        time.sleep(0.5)
+        s = subprocess.Popen(['simple_send.py', '-a', 'localhost:8888'], 
stderr=subprocess.STDOUT, stdout=subprocess.PIPE,
+                             universal_newlines=True)
+        s.wait()
+        r.wait()
+        actual = [l.strip() for l in r.stdout]
+        expected = ["{%s'sequence': %i}" % (_unicode_prefix, (i+1)) for i in 
range(100)]
+        self.assertEqual(actual, expected)
+
+    def test_direct_send_simple_recv(self):
+        s = subprocess.Popen(['direct_send.py', '-a', 'localhost:8888'], 
stderr=subprocess.STDOUT, stdout=subprocess.PIPE,
+                             universal_newlines=True)
+        time.sleep(0.5)
+        r = subprocess.Popen(['simple_recv.py', '-a', 'localhost:8888'], 
stderr=subprocess.STDOUT, stdout=subprocess.PIPE,
+                             universal_newlines=True)
+        r.wait()
+        s.wait()
+        actual = [l.strip() for l in r.stdout]
+        expected = ["{%s'sequence': %i}" % (_unicode_prefix, (i+1)) for i in 
range(100)]
+        self.assertEqual(actual, expected)



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to