Added: 
qpid/site/input/releases/qpid-proton-master/proton/python/examples/test_examples.py.html.in
URL: 
http://svn.apache.org/viewvc/qpid/site/input/releases/qpid-proton-master/proton/python/examples/test_examples.py.html.in?rev=1705923&view=auto
==============================================================================
--- 
qpid/site/input/releases/qpid-proton-master/proton/python/examples/test_examples.py.html.in
 (added)
+++ 
qpid/site/input/releases/qpid-proton-master/proton/python/examples/test_examples.py.html.in
 Tue Sep 29 20:27:56 2015
@@ -0,0 +1,137 @@
+
+<h1>test_examples.py</h1>
+<div class="highlight"><pre><span class="kn">import</span> <span 
class="nn">sys</span>
+<span class="kn">import</span> <span class="nn">subprocess</span>
+<span class="kn">import</span> <span class="nn">time</span>
+<span class="kn">import</span> <span class="nn">unittest</span>
+
+<span class="k">if</span> <span class="n">sys</span><span 
class="o">.</span><span class="n">version_info</span><span 
class="p">[</span><span class="mi">0</span><span class="p">]</span> <span 
class="o">==</span> <span class="mi">2</span><span class="p">:</span>
+    <span class="n">_unicode_prefix</span> <span class="o">=</span> <span 
class="s">&#39;u&#39;</span>
+<span class="k">else</span><span class="p">:</span>
+    <span class="n">_unicode_prefix</span> <span class="o">=</span> <span 
class="s">&#39;&#39;</span>
+
+
+<span class="k">class</span> <span class="nc">ExamplesTest</span><span 
class="p">(</span><span class="n">unittest</span><span class="o">.</span><span 
class="n">TestCase</span><span class="p">):</span>
+    <span class="k">def</span> <span class="nf">test_helloworld</span><span 
class="p">(</span><span class="bp">self</span><span class="p">,</span> <span 
class="n">example</span><span class="o">=</span><span 
class="s">&quot;helloworld.py&quot;</span><span class="p">):</span>
+        <span class="n">p</span> <span class="o">=</span> <span 
class="n">subprocess</span><span class="o">.</span><span 
class="n">Popen</span><span class="p">([</span><span 
class="n">example</span><span class="p">],</span> <span 
class="n">stderr</span><span class="o">=</span><span 
class="n">subprocess</span><span class="o">.</span><span 
class="n">STDOUT</span><span class="p">,</span> <span 
class="n">stdout</span><span class="o">=</span><span 
class="n">subprocess</span><span class="o">.</span><span 
class="n">PIPE</span><span class="p">,</span>
+                             <span class="n">universal_newlines</span><span 
class="o">=</span><span class="bp">True</span><span class="p">)</span>
+        <span class="n">p</span><span class="o">.</span><span 
class="n">wait</span><span class="p">()</span>
+        <span class="n">output</span> <span class="o">=</span> <span 
class="p">[</span><span class="n">l</span><span class="o">.</span><span 
class="n">strip</span><span class="p">()</span> <span class="k">for</span> 
<span class="n">l</span> <span class="ow">in</span> <span 
class="n">p</span><span class="o">.</span><span class="n">stdout</span><span 
class="p">]</span>
+        <span class="bp">self</span><span class="o">.</span><span 
class="n">assertEqual</span><span class="p">(</span><span 
class="n">output</span><span class="p">,</span> <span class="p">[</span><span 
class="s">&#39;Hello World!&#39;</span><span class="p">])</span>
+
+    <span class="k">def</span> <span 
class="nf">test_helloworld_direct</span><span class="p">(</span><span 
class="bp">self</span><span class="p">):</span>
+        <span class="bp">self</span><span class="o">.</span><span 
class="n">test_helloworld</span><span class="p">(</span><span 
class="s">&#39;helloworld_direct.py&#39;</span><span class="p">)</span>
+
+    <span class="k">def</span> <span 
class="nf">test_helloworld_blocking</span><span class="p">(</span><span 
class="bp">self</span><span class="p">):</span>
+        <span class="bp">self</span><span class="o">.</span><span 
class="n">test_helloworld</span><span class="p">(</span><span 
class="s">&#39;helloworld_blocking.py&#39;</span><span class="p">)</span>
+
+    <span class="k">def</span> <span 
class="nf">test_helloworld_tornado</span><span class="p">(</span><span 
class="bp">self</span><span class="p">):</span>
+        <span class="bp">self</span><span class="o">.</span><span 
class="n">test_helloworld</span><span class="p">(</span><span 
class="s">&#39;helloworld_tornado.py&#39;</span><span class="p">)</span>
+
+    <span class="k">def</span> <span 
class="nf">test_helloworld_direct_tornado</span><span class="p">(</span><span 
class="bp">self</span><span class="p">):</span>
+        <span class="bp">self</span><span class="o">.</span><span 
class="n">test_helloworld</span><span class="p">(</span><span 
class="s">&#39;helloworld_direct_tornado.py&#39;</span><span class="p">)</span>
+
+    <span class="k">def</span> <span 
class="nf">test_simple_send_recv</span><span class="p">(</span><span 
class="bp">self</span><span class="p">,</span> <span class="n">recv</span><span 
class="o">=</span><span class="s">&#39;simple_recv.py&#39;</span><span 
class="p">,</span> <span class="n">send</span><span class="o">=</span><span 
class="s">&#39;simple_send.py&#39;</span><span class="p">):</span>
+        <span class="n">r</span> <span class="o">=</span> <span 
class="n">subprocess</span><span class="o">.</span><span 
class="n">Popen</span><span class="p">([</span><span class="n">recv</span><span 
class="p">],</span> <span class="n">stderr</span><span class="o">=</span><span 
class="n">subprocess</span><span class="o">.</span><span 
class="n">STDOUT</span><span class="p">,</span> <span 
class="n">stdout</span><span class="o">=</span><span 
class="n">subprocess</span><span class="o">.</span><span 
class="n">PIPE</span><span class="p">,</span>
+                             <span class="n">universal_newlines</span><span 
class="o">=</span><span class="bp">True</span><span class="p">)</span>
+        <span class="n">s</span> <span class="o">=</span> <span 
class="n">subprocess</span><span class="o">.</span><span 
class="n">Popen</span><span class="p">([</span><span class="n">send</span><span 
class="p">],</span> <span class="n">stderr</span><span class="o">=</span><span 
class="n">subprocess</span><span class="o">.</span><span 
class="n">STDOUT</span><span class="p">,</span> <span 
class="n">stdout</span><span class="o">=</span><span 
class="n">subprocess</span><span class="o">.</span><span 
class="n">PIPE</span><span class="p">,</span>
+                             <span class="n">universal_newlines</span><span 
class="o">=</span><span class="bp">True</span><span class="p">)</span>
+        <span class="n">s</span><span class="o">.</span><span 
class="n">wait</span><span class="p">()</span>
+        <span class="n">r</span><span class="o">.</span><span 
class="n">wait</span><span class="p">()</span>
+        <span class="n">actual</span> <span class="o">=</span> <span 
class="p">[</span><span class="n">l</span><span class="o">.</span><span 
class="n">strip</span><span class="p">()</span> <span class="k">for</span> 
<span class="n">l</span> <span class="ow">in</span> <span 
class="n">r</span><span class="o">.</span><span class="n">stdout</span><span 
class="p">]</span>
+        <span class="n">expected</span> <span class="o">=</span> <span 
class="p">[</span><span class="s">&quot;{</span><span class="si">%s</span><span 
class="s">&#39;sequence&#39;: </span><span class="si">%i</span><span 
class="s">}&quot;</span> <span class="o">%</span> <span class="p">(</span><span 
class="n">_unicode_prefix</span><span class="p">,</span> <span 
class="p">(</span><span class="n">i</span><span class="o">+</span><span 
class="mi">1</span><span class="p">))</span> <span class="k">for</span> <span 
class="n">i</span> <span class="ow">in</span> <span 
class="nb">range</span><span class="p">(</span><span class="mi">100</span><span 
class="p">)]</span>
+        <span class="bp">self</span><span class="o">.</span><span 
class="n">assertEqual</span><span class="p">(</span><span 
class="n">actual</span><span class="p">,</span> <span 
class="n">expected</span><span class="p">)</span>
+
+    <span class="k">def</span> <span class="nf">test_client_server</span><span 
class="p">(</span><span class="bp">self</span><span class="p">,</span> <span 
class="n">client</span><span class="o">=</span><span class="p">[</span><span 
class="s">&#39;client.py&#39;</span><span class="p">],</span> <span 
class="n">server</span><span class="o">=</span><span class="p">[</span><span 
class="s">&#39;server.py&#39;</span><span class="p">],</span> <span 
class="n">sleep</span><span class="o">=</span><span class="mi">0</span><span 
class="p">):</span>
+        <span class="n">s</span> <span class="o">=</span> <span 
class="n">subprocess</span><span class="o">.</span><span 
class="n">Popen</span><span class="p">(</span><span 
class="n">server</span><span class="p">,</span> <span 
class="n">stderr</span><span class="o">=</span><span 
class="n">subprocess</span><span class="o">.</span><span 
class="n">STDOUT</span><span class="p">,</span> <span 
class="n">stdout</span><span class="o">=</span><span 
class="n">subprocess</span><span class="o">.</span><span 
class="n">PIPE</span><span class="p">,</span>
+                             <span class="n">universal_newlines</span><span 
class="o">=</span><span class="bp">True</span><span class="p">)</span>
+        <span class="k">if</span> <span class="n">sleep</span><span 
class="p">:</span>
+            <span class="n">time</span><span class="o">.</span><span 
class="n">sleep</span><span class="p">(</span><span class="n">sleep</span><span 
class="p">)</span>
+        <span class="n">c</span> <span class="o">=</span> <span 
class="n">subprocess</span><span class="o">.</span><span 
class="n">Popen</span><span class="p">(</span><span 
class="n">client</span><span class="p">,</span> <span 
class="n">stderr</span><span class="o">=</span><span 
class="n">subprocess</span><span class="o">.</span><span 
class="n">STDOUT</span><span class="p">,</span> <span 
class="n">stdout</span><span class="o">=</span><span 
class="n">subprocess</span><span class="o">.</span><span 
class="n">PIPE</span><span class="p">,</span>
+                             <span class="n">universal_newlines</span><span 
class="o">=</span><span class="bp">True</span><span class="p">)</span>
+        <span class="n">c</span><span class="o">.</span><span 
class="n">wait</span><span class="p">()</span>
+        <span class="n">s</span><span class="o">.</span><span 
class="n">terminate</span><span class="p">()</span>
+        <span class="n">actual</span> <span class="o">=</span> <span 
class="p">[</span><span class="n">l</span><span class="o">.</span><span 
class="n">strip</span><span class="p">()</span> <span class="k">for</span> 
<span class="n">l</span> <span class="ow">in</span> <span 
class="n">c</span><span class="o">.</span><span class="n">stdout</span><span 
class="p">]</span>
+        <span class="n">inputs</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="n">expected</span> <span class="o">=</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">l</span><span 
class="p">,</span> <span class="n">l</span><span class="o">.</span><span 
class="n">upper</span><span class="p">())</span> <span class="k">for</span> 
<span class="n">l</span> <span class="ow">in</span> <span 
class="n">inputs</span><span class="p">]</span>
+        <span class="bp">self</span><span class="o">.</span><span 
class="n">assertEqual</span><span class="p">(</span><span 
class="n">actual</span><span class="p">,</span> <span 
class="n">expected</span><span class="p">)</span>
+
+    <span class="k">def</span> <span 
class="nf">test_sync_client_server</span><span class="p">(</span><span 
class="bp">self</span><span class="p">):</span>
+        <span class="bp">self</span><span class="o">.</span><span 
class="n">test_client_server</span><span class="p">(</span><span 
class="n">client</span><span class="o">=</span><span class="p">[</span><span 
class="s">&#39;sync_client.py&#39;</span><span class="p">])</span>
+
+    <span class="k">def</span> <span 
class="nf">test_client_server_tx</span><span class="p">(</span><span 
class="bp">self</span><span class="p">):</span>
+        <span class="bp">self</span><span class="o">.</span><span 
class="n">test_client_server</span><span class="p">(</span><span 
class="n">server</span><span class="o">=</span><span class="p">[</span><span 
class="s">&#39;server_tx.py&#39;</span><span class="p">])</span>
+
+    <span class="k">def</span> <span 
class="nf">test_sync_client_server_tx</span><span class="p">(</span><span 
class="bp">self</span><span class="p">):</span>
+        <span class="bp">self</span><span class="o">.</span><span 
class="n">test_client_server</span><span class="p">(</span><span 
class="n">client</span><span class="o">=</span><span class="p">[</span><span 
class="s">&#39;sync_client.py&#39;</span><span class="p">],</span> <span 
class="n">server</span><span class="o">=</span><span class="p">[</span><span 
class="s">&#39;server_tx.py&#39;</span><span class="p">])</span>
+
+    <span class="k">def</span> <span 
class="nf">test_client_server_direct</span><span class="p">(</span><span 
class="bp">self</span><span class="p">):</span>
+        <span class="bp">self</span><span class="o">.</span><span 
class="n">test_client_server</span><span class="p">(</span><span 
class="n">client</span><span class="o">=</span><span class="p">[</span><span 
class="s">&#39;client.py&#39;</span><span class="p">,</span> <span 
class="s">&#39;-a&#39;</span><span class="p">,</span> <span 
class="s">&#39;localhost:8888/examples&#39;</span><span class="p">],</span> 
<span class="n">server</span><span class="o">=</span><span 
class="p">[</span><span class="s">&#39;server_direct.py&#39;</span><span 
class="p">],</span> <span class="n">sleep</span><span class="o">=</span><span 
class="mf">0.5</span><span class="p">)</span>
+
+    <span class="k">def</span> <span 
class="nf">test_sync_client_server_direct</span><span class="p">(</span><span 
class="bp">self</span><span class="p">):</span>
+        <span class="bp">self</span><span class="o">.</span><span 
class="n">test_client_server</span><span class="p">(</span><span 
class="n">client</span><span class="o">=</span><span class="p">[</span><span 
class="s">&#39;sync_client.py&#39;</span><span class="p">,</span> <span 
class="s">&#39;-a&#39;</span><span class="p">,</span> <span 
class="s">&#39;localhost:8888/examples&#39;</span><span class="p">],</span> 
<span class="n">server</span><span class="o">=</span><span 
class="p">[</span><span class="s">&#39;server_direct.py&#39;</span><span 
class="p">],</span> <span class="n">sleep</span><span class="o">=</span><span 
class="mf">0.5</span><span class="p">)</span>
+
+    <span class="k">def</span> <span class="nf">test_db_send_recv</span><span 
class="p">(</span><span class="bp">self</span><span class="p">):</span>
+        <span class="bp">self</span><span class="o">.</span><span 
class="n">maxDiff</span> <span class="o">=</span> <span class="bp">None</span>
+        <span class="c"># setup databases</span>
+        <span class="n">subprocess</span><span class="o">.</span><span 
class="n">check_call</span><span class="p">([</span><span 
class="s">&#39;db_ctrl.py&#39;</span><span class="p">,</span> <span 
class="s">&#39;init&#39;</span><span class="p">,</span> <span 
class="s">&#39;./src_db&#39;</span><span class="p">])</span>
+        <span class="n">subprocess</span><span class="o">.</span><span 
class="n">check_call</span><span class="p">([</span><span 
class="s">&#39;db_ctrl.py&#39;</span><span class="p">,</span> <span 
class="s">&#39;init&#39;</span><span class="p">,</span> <span 
class="s">&#39;./dst_db&#39;</span><span class="p">])</span>
+        <span class="n">fill</span> <span class="o">=</span> <span 
class="n">subprocess</span><span class="o">.</span><span 
class="n">Popen</span><span class="p">([</span><span 
class="s">&#39;db_ctrl.py&#39;</span><span class="p">,</span> <span 
class="s">&#39;insert&#39;</span><span class="p">,</span> <span 
class="s">&#39;./src_db&#39;</span><span class="p">],</span>
+                                <span class="n">stdin</span><span 
class="o">=</span><span class="n">subprocess</span><span 
class="o">.</span><span class="n">PIPE</span><span class="p">,</span> <span 
class="n">stderr</span><span class="o">=</span><span 
class="n">subprocess</span><span class="o">.</span><span 
class="n">STDOUT</span><span class="p">,</span> <span 
class="n">stdout</span><span class="o">=</span><span 
class="n">subprocess</span><span class="o">.</span><span 
class="n">PIPE</span><span class="p">,</span>
+                                <span class="n">universal_newlines</span><span 
class="o">=</span><span class="bp">True</span><span class="p">)</span>
+        <span class="k">for</span> <span class="n">i</span> <span 
class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span 
class="mi">100</span><span class="p">):</span>
+            <span class="n">fill</span><span class="o">.</span><span 
class="n">stdin</span><span class="o">.</span><span class="n">write</span><span 
class="p">(</span><span class="s">&quot;Message-</span><span 
class="si">%i</span><span class="se">\n</span><span class="s">&quot;</span> 
<span class="o">%</span> <span class="p">(</span><span class="n">i</span><span 
class="o">+</span><span class="mi">1</span><span class="p">))</span>
+        <span class="n">fill</span><span class="o">.</span><span 
class="n">stdin</span><span class="o">.</span><span class="n">close</span><span 
class="p">()</span>
+        <span class="n">fill</span><span class="o">.</span><span 
class="n">wait</span><span class="p">()</span>
+        <span class="c"># run send and recv</span>
+        <span class="n">r</span> <span class="o">=</span> <span 
class="n">subprocess</span><span class="o">.</span><span 
class="n">Popen</span><span class="p">([</span><span 
class="s">&#39;db_recv.py&#39;</span><span class="p">,</span> <span 
class="s">&#39;-m&#39;</span><span class="p">,</span> <span 
class="s">&#39;100&#39;</span><span class="p">],</span> <span 
class="n">stderr</span><span class="o">=</span><span 
class="n">subprocess</span><span class="o">.</span><span 
class="n">STDOUT</span><span class="p">,</span> <span 
class="n">stdout</span><span class="o">=</span><span 
class="n">subprocess</span><span class="o">.</span><span 
class="n">PIPE</span><span class="p">,</span>
+                             <span class="n">universal_newlines</span><span 
class="o">=</span><span class="bp">True</span><span class="p">)</span>
+        <span class="n">s</span> <span class="o">=</span> <span 
class="n">subprocess</span><span class="o">.</span><span 
class="n">Popen</span><span class="p">([</span><span 
class="s">&#39;db_send.py&#39;</span><span class="p">,</span> <span 
class="s">&#39;-m&#39;</span><span class="p">,</span> <span 
class="s">&#39;100&#39;</span><span class="p">],</span> <span 
class="n">stderr</span><span class="o">=</span><span 
class="n">subprocess</span><span class="o">.</span><span 
class="n">STDOUT</span><span class="p">,</span> <span 
class="n">stdout</span><span class="o">=</span><span 
class="n">subprocess</span><span class="o">.</span><span 
class="n">PIPE</span><span class="p">,</span>
+                             <span class="n">universal_newlines</span><span 
class="o">=</span><span class="bp">True</span><span class="p">)</span>
+        <span class="n">s</span><span class="o">.</span><span 
class="n">wait</span><span class="p">()</span>
+        <span class="n">r</span><span class="o">.</span><span 
class="n">wait</span><span class="p">()</span>
+        <span class="c"># verify output of receive</span>
+        <span class="n">actual</span> <span class="o">=</span> <span 
class="p">[</span><span class="n">l</span><span class="o">.</span><span 
class="n">strip</span><span class="p">()</span> <span class="k">for</span> 
<span class="n">l</span> <span class="ow">in</span> <span 
class="n">r</span><span class="o">.</span><span class="n">stdout</span><span 
class="p">]</span>
+        <span class="n">expected</span> <span class="o">=</span> <span 
class="p">[</span><span class="s">&quot;inserted message </span><span 
class="si">%i</span><span class="s">&quot;</span> <span class="o">%</span> 
<span class="p">(</span><span class="n">i</span><span class="o">+</span><span 
class="mi">1</span><span class="p">)</span> <span class="k">for</span> <span 
class="n">i</span> <span class="ow">in</span> <span 
class="nb">range</span><span class="p">(</span><span class="mi">100</span><span 
class="p">)]</span>
+        <span class="bp">self</span><span class="o">.</span><span 
class="n">assertEqual</span><span class="p">(</span><span 
class="n">actual</span><span class="p">,</span> <span 
class="n">expected</span><span class="p">)</span>
+        <span class="c"># verify state of databases</span>
+        <span class="n">v</span> <span class="o">=</span> <span 
class="n">subprocess</span><span class="o">.</span><span 
class="n">Popen</span><span class="p">([</span><span 
class="s">&#39;db_ctrl.py&#39;</span><span class="p">,</span> <span 
class="s">&#39;list&#39;</span><span class="p">,</span> <span 
class="s">&#39;./dst_db&#39;</span><span class="p">],</span> <span 
class="n">stderr</span><span class="o">=</span><span 
class="n">subprocess</span><span class="o">.</span><span 
class="n">STDOUT</span><span class="p">,</span> <span 
class="n">stdout</span><span class="o">=</span><span 
class="n">subprocess</span><span class="o">.</span><span 
class="n">PIPE</span><span class="p">,</span>
+                             <span class="n">universal_newlines</span><span 
class="o">=</span><span class="bp">True</span><span class="p">)</span>
+        <span class="n">v</span><span class="o">.</span><span 
class="n">wait</span><span class="p">()</span>
+        <span class="n">expected</span> <span class="o">=</span> <span 
class="p">[</span><span class="s">&quot;(</span><span class="si">%i</span><span 
class="s">, </span><span class="si">%s</span><span 
class="s">&#39;Message-</span><span class="si">%i</span><span 
class="s">&#39;)&quot;</span> <span class="o">%</span> <span 
class="p">((</span><span class="n">i</span><span class="o">+</span><span 
class="mi">1</span><span class="p">),</span> <span 
class="n">_unicode_prefix</span><span class="p">,</span> <span 
class="p">(</span><span class="n">i</span><span class="o">+</span><span 
class="mi">1</span><span class="p">))</span> <span class="k">for</span> <span 
class="n">i</span> <span class="ow">in</span> <span 
class="nb">range</span><span class="p">(</span><span class="mi">100</span><span 
class="p">)]</span>
+        <span class="n">actual</span> <span class="o">=</span> <span 
class="p">[</span><span class="n">l</span><span class="o">.</span><span 
class="n">strip</span><span class="p">()</span> <span class="k">for</span> 
<span class="n">l</span> <span class="ow">in</span> <span 
class="n">v</span><span class="o">.</span><span class="n">stdout</span><span 
class="p">]</span>
+        <span class="bp">self</span><span class="o">.</span><span 
class="n">assertEqual</span><span class="p">(</span><span 
class="n">actual</span><span class="p">,</span> <span 
class="n">expected</span><span class="p">)</span>
+
+    <span class="k">def</span> <span 
class="nf">test_tx_send_tx_recv</span><span class="p">(</span><span 
class="bp">self</span><span class="p">):</span>
+        <span class="bp">self</span><span class="o">.</span><span 
class="n">test_simple_send_recv</span><span class="p">(</span><span 
class="n">recv</span><span class="o">=</span><span 
class="s">&#39;tx_recv.py&#39;</span><span class="p">,</span> <span 
class="n">send</span><span class="o">=</span><span 
class="s">&#39;tx_send.py&#39;</span><span class="p">)</span>
+
+    <span class="k">def</span> <span 
class="nf">test_simple_send_direct_recv</span><span class="p">(</span><span 
class="bp">self</span><span class="p">):</span>
+        <span class="bp">self</span><span class="o">.</span><span 
class="n">maxDiff</span> <span class="o">=</span> <span class="bp">None</span>
+        <span class="n">r</span> <span class="o">=</span> <span 
class="n">subprocess</span><span class="o">.</span><span 
class="n">Popen</span><span class="p">([</span><span 
class="s">&#39;direct_recv.py&#39;</span><span class="p">,</span> <span 
class="s">&#39;-a&#39;</span><span class="p">,</span> <span 
class="s">&#39;localhost:8888&#39;</span><span class="p">],</span> <span 
class="n">stderr</span><span class="o">=</span><span 
class="n">subprocess</span><span class="o">.</span><span 
class="n">STDOUT</span><span class="p">,</span> <span 
class="n">stdout</span><span class="o">=</span><span 
class="n">subprocess</span><span class="o">.</span><span 
class="n">PIPE</span><span class="p">,</span>
+                             <span class="n">universal_newlines</span><span 
class="o">=</span><span class="bp">True</span><span class="p">)</span>
+        <span class="n">time</span><span class="o">.</span><span 
class="n">sleep</span><span class="p">(</span><span class="mf">0.5</span><span 
class="p">)</span>
+        <span class="n">s</span> <span class="o">=</span> <span 
class="n">subprocess</span><span class="o">.</span><span 
class="n">Popen</span><span class="p">([</span><span 
class="s">&#39;simple_send.py&#39;</span><span class="p">,</span> <span 
class="s">&#39;-a&#39;</span><span class="p">,</span> <span 
class="s">&#39;localhost:8888&#39;</span><span class="p">],</span> <span 
class="n">stderr</span><span class="o">=</span><span 
class="n">subprocess</span><span class="o">.</span><span 
class="n">STDOUT</span><span class="p">,</span> <span 
class="n">stdout</span><span class="o">=</span><span 
class="n">subprocess</span><span class="o">.</span><span 
class="n">PIPE</span><span class="p">,</span>
+                             <span class="n">universal_newlines</span><span 
class="o">=</span><span class="bp">True</span><span class="p">)</span>
+        <span class="n">s</span><span class="o">.</span><span 
class="n">wait</span><span class="p">()</span>
+        <span class="n">r</span><span class="o">.</span><span 
class="n">wait</span><span class="p">()</span>
+        <span class="n">actual</span> <span class="o">=</span> <span 
class="p">[</span><span class="n">l</span><span class="o">.</span><span 
class="n">strip</span><span class="p">()</span> <span class="k">for</span> 
<span class="n">l</span> <span class="ow">in</span> <span 
class="n">r</span><span class="o">.</span><span class="n">stdout</span><span 
class="p">]</span>
+        <span class="n">expected</span> <span class="o">=</span> <span 
class="p">[</span><span class="s">&quot;{</span><span class="si">%s</span><span 
class="s">&#39;sequence&#39;: </span><span class="si">%i</span><span 
class="s">}&quot;</span> <span class="o">%</span> <span class="p">(</span><span 
class="n">_unicode_prefix</span><span class="p">,</span> <span 
class="p">(</span><span class="n">i</span><span class="o">+</span><span 
class="mi">1</span><span class="p">))</span> <span class="k">for</span> <span 
class="n">i</span> <span class="ow">in</span> <span 
class="nb">range</span><span class="p">(</span><span class="mi">100</span><span 
class="p">)]</span>
+        <span class="bp">self</span><span class="o">.</span><span 
class="n">assertEqual</span><span class="p">(</span><span 
class="n">actual</span><span class="p">,</span> <span 
class="n">expected</span><span class="p">)</span>
+
+    <span class="k">def</span> <span 
class="nf">test_direct_send_simple_recv</span><span class="p">(</span><span 
class="bp">self</span><span class="p">):</span>
+        <span class="n">s</span> <span class="o">=</span> <span 
class="n">subprocess</span><span class="o">.</span><span 
class="n">Popen</span><span class="p">([</span><span 
class="s">&#39;direct_send.py&#39;</span><span class="p">,</span> <span 
class="s">&#39;-a&#39;</span><span class="p">,</span> <span 
class="s">&#39;localhost:8888&#39;</span><span class="p">],</span> <span 
class="n">stderr</span><span class="o">=</span><span 
class="n">subprocess</span><span class="o">.</span><span 
class="n">STDOUT</span><span class="p">,</span> <span 
class="n">stdout</span><span class="o">=</span><span 
class="n">subprocess</span><span class="o">.</span><span 
class="n">PIPE</span><span class="p">,</span>
+                             <span class="n">universal_newlines</span><span 
class="o">=</span><span class="bp">True</span><span class="p">)</span>
+        <span class="n">time</span><span class="o">.</span><span 
class="n">sleep</span><span class="p">(</span><span class="mf">0.5</span><span 
class="p">)</span>
+        <span class="n">r</span> <span class="o">=</span> <span 
class="n">subprocess</span><span class="o">.</span><span 
class="n">Popen</span><span class="p">([</span><span 
class="s">&#39;simple_recv.py&#39;</span><span class="p">,</span> <span 
class="s">&#39;-a&#39;</span><span class="p">,</span> <span 
class="s">&#39;localhost:8888&#39;</span><span class="p">],</span> <span 
class="n">stderr</span><span class="o">=</span><span 
class="n">subprocess</span><span class="o">.</span><span 
class="n">STDOUT</span><span class="p">,</span> <span 
class="n">stdout</span><span class="o">=</span><span 
class="n">subprocess</span><span class="o">.</span><span 
class="n">PIPE</span><span class="p">,</span>
+                             <span class="n">universal_newlines</span><span 
class="o">=</span><span class="bp">True</span><span class="p">)</span>
+        <span class="n">r</span><span class="o">.</span><span 
class="n">wait</span><span class="p">()</span>
+        <span class="n">s</span><span class="o">.</span><span 
class="n">wait</span><span class="p">()</span>
+        <span class="n">actual</span> <span class="o">=</span> <span 
class="p">[</span><span class="n">l</span><span class="o">.</span><span 
class="n">strip</span><span class="p">()</span> <span class="k">for</span> 
<span class="n">l</span> <span class="ow">in</span> <span 
class="n">r</span><span class="o">.</span><span class="n">stdout</span><span 
class="p">]</span>
+        <span class="n">expected</span> <span class="o">=</span> <span 
class="p">[</span><span class="s">&quot;{</span><span class="si">%s</span><span 
class="s">&#39;sequence&#39;: </span><span class="si">%i</span><span 
class="s">}&quot;</span> <span class="o">%</span> <span class="p">(</span><span 
class="n">_unicode_prefix</span><span class="p">,</span> <span 
class="p">(</span><span class="n">i</span><span class="o">+</span><span 
class="mi">1</span><span class="p">))</span> <span class="k">for</span> <span 
class="n">i</span> <span class="ow">in</span> <span 
class="nb">range</span><span class="p">(</span><span class="mi">100</span><span 
class="p">)]</span>
+        <span class="bp">self</span><span class="o">.</span><span 
class="n">assertEqual</span><span class="p">(</span><span 
class="n">actual</span><span class="p">,</span> <span 
class="n">expected</span><span class="p">)</span>
+</pre></div>
+
+<p><a href="test_examples.py">Download this file</a></p>

Added: 
qpid/site/input/releases/qpid-proton-master/proton/python/examples/tx_recv.py
URL: 
http://svn.apache.org/viewvc/qpid/site/input/releases/qpid-proton-master/proton/python/examples/tx_recv.py?rev=1705923&view=auto
==============================================================================
--- 
qpid/site/input/releases/qpid-proton-master/proton/python/examples/tx_recv.py 
(added)
+++ 
qpid/site/input/releases/qpid-proton-master/proton/python/examples/tx_recv.py 
Tue Sep 29 20:27:56 2015
@@ -0,0 +1,80 @@
+#!/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 import Url
+from proton.reactor import Container
+from proton.handlers import MessagingHandler, TransactionHandler
+
+class TxRecv(MessagingHandler, TransactionHandler):
+    def __init__(self, url, messages, batch_size):
+        super(TxRecv, self).__init__(prefetch=0, auto_accept=False)
+        self.url = Url(url)
+        self.expected = messages
+        self.batch_size = batch_size
+        self.current_batch = 0
+        self.committed = 0
+
+    def on_start(self, event):
+        self.container = event.container
+        self.conn = self.container.connect(self.url)
+        self.receiver = self.container.create_receiver(self.conn, 
self.url.path)
+        self.container.declare_transaction(self.conn, handler=self)
+        self.transaction = None
+
+    def on_message(self, event):
+        print(event.message.body)
+        self.transaction.accept(event.delivery)
+        self.current_batch += 1
+        if self.current_batch == self.batch_size:
+            self.transaction.commit()
+            self.transaction = None
+
+    def on_transaction_declared(self, event):
+        self.receiver.flow(self.batch_size)
+        self.transaction = event.transaction
+
+    def on_transaction_committed(self, event):
+        self.committed += self.current_batch
+        self.current_batch = 0
+        if self.expected == 0 or self.committed < self.expected:
+            self.container.declare_transaction(self.conn, handler=self)
+        else:
+            event.connection.close()
+
+    def on_disconnected(self, event):
+        self.current_batch = 0
+
+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)")
+parser.add_option("-b", "--batch-size", type="int", default=10,
+                  help="number of messages in each transaction (default 
%default)")
+opts, args = parser.parse_args()
+
+try:
+    Container(TxRecv(opts.address, opts.messages, opts.batch_size)).run()
+except KeyboardInterrupt: pass
+
+
+

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

Added: 
qpid/site/input/releases/qpid-proton-master/proton/python/examples/tx_recv.py.html.in
URL: 
http://svn.apache.org/viewvc/qpid/site/input/releases/qpid-proton-master/proton/python/examples/tx_recv.py.html.in?rev=1705923&view=auto
==============================================================================
--- 
qpid/site/input/releases/qpid-proton-master/proton/python/examples/tx_recv.py.html.in
 (added)
+++ 
qpid/site/input/releases/qpid-proton-master/proton/python/examples/tx_recv.py.html.in
 Tue Sep 29 20:27:56 2015
@@ -0,0 +1,62 @@
+
+<h1>tx_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</span> <span 
class="kn">import</span> <span class="n">Url</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">TxRecv</span><span 
class="p">(</span><span class="n">MessagingHandler</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">url</span><span class="p">,</span> <span 
class="n">messages</span><span class="p">,</span> <span 
class="n">batch_size</span><span class="p">):</span>
+        <span class="nb">super</span><span class="p">(</span><span 
class="n">TxRecv</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">prefetch</span><span class="o">=</span><span class="mi">0</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">url</span> <span class="o">=</span> <span class="n">Url</span><span 
class="p">(</span><span class="n">url</span><span class="p">)</span>
+        <span class="bp">self</span><span class="o">.</span><span 
class="n">expected</span> <span class="o">=</span> <span 
class="n">messages</span>
+        <span class="bp">self</span><span class="o">.</span><span 
class="n">batch_size</span> <span class="o">=</span> <span 
class="n">batch_size</span>
+        <span class="bp">self</span><span class="o">.</span><span 
class="n">current_batch</span> <span class="o">=</span> <span 
class="mi">0</span>
+        <span class="bp">self</span><span class="o">.</span><span 
class="n">committed</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="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="bp">self</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">url</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="bp">self</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">url</span><span class="o">.</span><span class="n">path</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="bp">self</span><span class="p">)</span>
+        <span class="bp">self</span><span class="o">.</span><span 
class="n">transaction</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="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">transaction</span><span class="o">.</span><span 
class="n">accept</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="bp">self</span><span class="o">.</span><span 
class="n">current_batch</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">current_batch</span> <span 
class="o">==</span> <span class="bp">self</span><span class="o">.</span><span 
class="n">batch_size</span><span class="p">:</span>
+            <span class="bp">self</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="bp">self</span><span class="o">.</span><span 
class="n">transaction</span> <span class="o">=</span> <span 
class="bp">None</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="bp">self</span><span class="o">.</span><span 
class="n">receiver</span><span class="o">.</span><span 
class="n">flow</span><span class="p">(</span><span class="bp">self</span><span 
class="o">.</span><span class="n">batch_size</span><span class="p">)</span>
+        <span class="bp">self</span><span class="o">.</span><span 
class="n">transaction</span> <span class="o">=</span> <span 
class="n">event</span><span class="o">.</span><span class="n">transaction</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="bp">self</span><span class="o">.</span><span 
class="n">committed</span> <span class="o">+=</span> <span 
class="bp">self</span><span class="o">.</span><span 
class="n">current_batch</span>
+        <span class="bp">self</span><span class="o">.</span><span 
class="n">current_batch</span> <span class="o">=</span> <span 
class="mi">0</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">committed</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="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="bp">self</span><span class="p">)</span>
+        <span class="k">else</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">current_batch</span> <span class="o">=</span> <span 
class="mi">0</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">parser</span><span class="o">.</span><span 
class="n">add_option</span><span class="p">(</span><span 
class="s">&quot;-b&quot;</span><span class="p">,</span> <span 
class="s">&quot;--batch-size&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">10</span><span 
class="p">,</span>
+                  <span class="n">help</span><span class="o">=</span><span 
class="s">&quot;number of messages in each transaction (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">TxRecv</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="n">opts</span><span class="o">.</span><span 
class="n">batch_size</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="tx_recv.py">Download this file</a></p>

Added: 
qpid/site/input/releases/qpid-proton-master/proton/python/examples/tx_recv_interactive.py
URL: 
http://svn.apache.org/viewvc/qpid/site/input/releases/qpid-proton-master/proton/python/examples/tx_recv_interactive.py?rev=1705923&view=auto
==============================================================================
--- 
qpid/site/input/releases/qpid-proton-master/proton/python/examples/tx_recv_interactive.py
 (added)
+++ 
qpid/site/input/releases/qpid-proton-master/proton/python/examples/tx_recv_interactive.py
 Tue Sep 29 20:27:56 2015
@@ -0,0 +1,84 @@
+#!/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 sys
+import threading
+from proton.reactor import ApplicationEvent, Container
+from proton.handlers import MessagingHandler, TransactionHandler
+
+class TxRecv(MessagingHandler, TransactionHandler):
+    def __init__(self):
+        super(TxRecv, self).__init__(prefetch=0, auto_accept=False)
+
+    def on_start(self, event):
+        self.container = event.container
+        self.conn = self.container.connect("localhost:5672")
+        self.receiver = self.container.create_receiver(self.conn, "examples")
+        self.container.declare_transaction(self.conn, handler=self, 
settle_before_discharge=True)
+        self.transaction = None
+
+    def on_message(self, event):
+        print(event.message.body)
+        self.transaction.accept(event.delivery)
+
+    def on_transaction_declared(self, event):
+        self.transaction = event.transaction
+        print("transaction declared")
+
+    def on_transaction_committed(self, event):
+        print("transaction committed")
+        self.container.declare_transaction(self.conn, handler=self)
+
+    def on_transaction_aborted(self, event):
+        print("transaction aborted")
+        self.container.declare_transaction(self.conn, handler=self)
+
+    def on_commit(self, event):
+        self.transaction.commit()
+
+    def on_abort(self, event):
+        self.transaction.abort()
+
+    def on_fetch(self, event):
+        self.receiver.flow(1)
+
+    def on_quit(self, event):
+        c = self.receiver.connection
+        self.receiver.close()
+        c.close()
+
+try:
+    reactor = Container(TxRecv())
+    events = reactor.get_event_trigger()
+    thread = threading.Thread(target=reactor.run)
+    thread.daemon=True
+    thread.start()
+
+    print("Enter 'fetch', 'commit' or 'abort'")
+    while True:
+        line = sys.stdin.readline()
+        if line:
+            events.trigger(ApplicationEvent(line.strip()))
+        else:
+            break
+except KeyboardInterrupt: pass
+
+

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

Added: 
qpid/site/input/releases/qpid-proton-master/proton/python/examples/tx_recv_interactive.py.html.in
URL: 
http://svn.apache.org/viewvc/qpid/site/input/releases/qpid-proton-master/proton/python/examples/tx_recv_interactive.py.html.in?rev=1705923&view=auto
==============================================================================
--- 
qpid/site/input/releases/qpid-proton-master/proton/python/examples/tx_recv_interactive.py.html.in
 (added)
+++ 
qpid/site/input/releases/qpid-proton-master/proton/python/examples/tx_recv_interactive.py.html.in
 Tue Sep 29 20:27:56 2015
@@ -0,0 +1,67 @@
+
+<h1>tx_recv_interactive.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">sys</span>
+<span class="kn">import</span> <span class="nn">threading</span>
+<span class="kn">from</span> <span class="nn">proton.reactor</span> <span 
class="kn">import</span> <span class="n">ApplicationEvent</span><span 
class="p">,</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">TxRecv</span><span 
class="p">(</span><span class="n">MessagingHandler</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="nb">super</span><span class="p">(</span><span 
class="n">TxRecv</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">prefetch</span><span class="o">=</span><span class="mi">0</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="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="bp">self</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="s">&quot;localhost:5672&quot;</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="bp">self</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="s">&quot;examples&quot;</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="bp">self</span><span class="p">,</span> <span 
class="n">settle_before_discharge</span><span class="o">=</span><span 
class="bp">True</span><span class="p">)</span>
+        <span class="bp">self</span><span class="o">.</span><span 
class="n">transaction</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="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">transaction</span><span class="o">.</span><span 
class="n">accept</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_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="bp">self</span><span class="o">.</span><span 
class="n">transaction</span> <span class="o">=</span> <span 
class="n">event</span><span class="o">.</span><span class="n">transaction</span>
+        <span class="k">print</span><span class="p">(</span><span 
class="s">&quot;transaction declared&quot;</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;transaction committed&quot;</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="bp">self</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;transaction aborted&quot;</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="bp">self</span><span class="p">)</span>
+
+    <span class="k">def</span> <span class="nf">on_commit</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">transaction</span><span class="o">.</span><span 
class="n">commit</span><span class="p">()</span>
+
+    <span class="k">def</span> <span class="nf">on_abort</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">transaction</span><span class="o">.</span><span 
class="n">abort</span><span class="p">()</span>
+
+    <span class="k">def</span> <span class="nf">on_fetch</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">receiver</span><span class="o">.</span><span 
class="n">flow</span><span class="p">(</span><span class="mi">1</span><span 
class="p">)</span>
+
+    <span class="k">def</span> <span class="nf">on_quit</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">c</span> <span class="o">=</span> <span 
class="bp">self</span><span class="o">.</span><span 
class="n">receiver</span><span class="o">.</span><span 
class="n">connection</span>
+        <span class="bp">self</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">c</span><span class="o">.</span><span 
class="n">close</span><span class="p">()</span>
+
+<span class="k">try</span><span class="p">:</span>
+    <span class="n">reactor</span> <span class="o">=</span> <span 
class="n">Container</span><span class="p">(</span><span 
class="n">TxRecv</span><span class="p">())</span>
+    <span class="n">events</span> <span class="o">=</span> <span 
class="n">reactor</span><span class="o">.</span><span 
class="n">get_event_trigger</span><span class="p">()</span>
+    <span class="n">thread</span> <span class="o">=</span> <span 
class="n">threading</span><span class="o">.</span><span 
class="n">Thread</span><span class="p">(</span><span 
class="n">target</span><span class="o">=</span><span 
class="n">reactor</span><span class="o">.</span><span class="n">run</span><span 
class="p">)</span>
+    <span class="n">thread</span><span class="o">.</span><span 
class="n">daemon</span><span class="o">=</span><span class="bp">True</span>
+    <span class="n">thread</span><span class="o">.</span><span 
class="n">start</span><span class="p">()</span>
+
+    <span class="k">print</span><span class="p">(</span><span 
class="s">&quot;Enter &#39;fetch&#39;, &#39;commit&#39; or 
&#39;abort&#39;&quot;</span><span class="p">)</span>
+    <span class="k">while</span> <span class="bp">True</span><span 
class="p">:</span>
+        <span class="n">line</span> <span class="o">=</span> <span 
class="n">sys</span><span class="o">.</span><span class="n">stdin</span><span 
class="o">.</span><span class="n">readline</span><span class="p">()</span>
+        <span class="k">if</span> <span class="n">line</span><span 
class="p">:</span>
+            <span class="n">events</span><span class="o">.</span><span 
class="n">trigger</span><span class="p">(</span><span 
class="n">ApplicationEvent</span><span class="p">(</span><span 
class="n">line</span><span class="o">.</span><span class="n">strip</span><span 
class="p">()))</span>
+        <span class="k">else</span><span class="p">:</span>
+            <span class="k">break</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="tx_recv_interactive.py">Download this file</a></p>

Added: 
qpid/site/input/releases/qpid-proton-master/proton/python/examples/tx_send.py
URL: 
http://svn.apache.org/viewvc/qpid/site/input/releases/qpid-proton-master/proton/python/examples/tx_send.py?rev=1705923&view=auto
==============================================================================
--- 
qpid/site/input/releases/qpid-proton-master/proton/python/examples/tx_send.py 
(added)
+++ 
qpid/site/input/releases/qpid-proton-master/proton/python/examples/tx_send.py 
Tue Sep 29 20:27:56 2015
@@ -0,0 +1,89 @@
+#!/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, Url
+from proton.reactor import Container
+from proton.handlers import MessagingHandler, TransactionHandler
+
+class TxSend(MessagingHandler, TransactionHandler):
+    def __init__(self, url, messages, batch_size):
+        super(TxSend, self).__init__()
+        self.url = Url(url)
+        self.current_batch = 0
+        self.committed = 0
+        self.confirmed = 0
+        self.total = messages
+        self.batch_size = batch_size
+
+    def on_start(self, event):
+        self.container = event.container
+        self.conn = self.container.connect(self.url)
+        self.sender = self.container.create_sender(self.conn, self.url.path)
+        self.container.declare_transaction(self.conn, handler=self)
+        self.transaction = None
+
+    def on_transaction_declared(self, event):
+        self.transaction = event.transaction
+        self.send()
+
+    def on_sendable(self, event):
+        self.send()
+
+    def send(self):
+        while self.transaction and self.sender.credit and (self.committed + 
self.current_batch) < self.total:
+            seq = self.committed + self.current_batch + 1
+            msg = Message(id=seq, body={'sequence':seq})
+            self.transaction.send(self.sender, msg)
+            self.current_batch += 1
+            if self.current_batch == self.batch_size:
+                self.transaction.commit()
+                self.transaction = None
+
+    def on_accepted(self, event):
+        if event.sender == self.sender:
+            self.confirmed += 1
+
+    def on_transaction_committed(self, event):
+        self.committed += self.current_batch
+        if self.committed == self.total:
+            print("all messages committed")
+            event.connection.close()
+        else:
+            self.current_batch = 0
+            self.container.declare_transaction(self.conn, handler=self)
+
+    def on_disconnected(self, event):
+        self.current_batch = 0
+
+parser = optparse.OptionParser(usage="usage: %prog [options]",
+                               description="Send messages transactionally 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)")
+parser.add_option("-b", "--batch-size", type="int", default=10,
+                  help="number of messages in each transaction (default 
%default)")
+opts, args = parser.parse_args()
+
+try:
+    Container(TxSend(opts.address, opts.messages, opts.batch_size)).run()
+except KeyboardInterrupt: pass

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

Added: 
qpid/site/input/releases/qpid-proton-master/proton/python/examples/tx_send.py.html.in
URL: 
http://svn.apache.org/viewvc/qpid/site/input/releases/qpid-proton-master/proton/python/examples/tx_send.py.html.in?rev=1705923&view=auto
==============================================================================
--- 
qpid/site/input/releases/qpid-proton-master/proton/python/examples/tx_send.py.html.in
 (added)
+++ 
qpid/site/input/releases/qpid-proton-master/proton/python/examples/tx_send.py.html.in
 Tue Sep 29 20:27:56 2015
@@ -0,0 +1,74 @@
+
+<h1>tx_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="p">,</span> 
<span class="n">Url</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">TxSend</span><span 
class="p">(</span><span class="n">MessagingHandler</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">url</span><span class="p">,</span> <span 
class="n">messages</span><span class="p">,</span> <span 
class="n">batch_size</span><span class="p">):</span>
+        <span class="nb">super</span><span class="p">(</span><span 
class="n">TxSend</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="p">(</span><span class="n">url</span><span class="p">)</span>
+        <span class="bp">self</span><span class="o">.</span><span 
class="n">current_batch</span> <span class="o">=</span> <span 
class="mi">0</span>
+        <span class="bp">self</span><span class="o">.</span><span 
class="n">committed</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="bp">self</span><span class="o">.</span><span 
class="n">batch_size</span> <span class="o">=</span> <span 
class="n">batch_size</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="bp">self</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">url</span><span 
class="p">)</span>
+        <span class="bp">self</span><span class="o">.</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="bp">self</span><span class="o">.</span><span 
class="n">url</span><span class="o">.</span><span class="n">path</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="bp">self</span><span class="p">)</span>
+        <span class="bp">self</span><span class="o">.</span><span 
class="n">transaction</span> <span class="o">=</span> <span 
class="bp">None</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="bp">self</span><span class="o">.</span><span 
class="n">transaction</span> <span class="o">=</span> <span 
class="n">event</span><span class="o">.</span><span class="n">transaction</span>
+        <span class="bp">self</span><span class="o">.</span><span 
class="n">send</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="bp">self</span><span class="o">.</span><span 
class="n">send</span><span class="p">()</span>
+
+    <span class="k">def</span> <span class="nf">send</span><span 
class="p">(</span><span class="bp">self</span><span class="p">):</span>
+        <span class="k">while</span> <span class="bp">self</span><span 
class="o">.</span><span class="n">transaction</span> <span 
class="ow">and</span> <span class="bp">self</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="p">(</span><span 
class="bp">self</span><span class="o">.</span><span class="n">committed</span> 
<span class="o">+</span> <span class="bp">self</span><span 
class="o">.</span><span class="n">current_batch</span><span class="p">)</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">seq</span> <span class="o">=</span> <span 
class="bp">self</span><span class="o">.</span><span class="n">committed</span> 
<span class="o">+</span> <span class="bp">self</span><span 
class="o">.</span><span class="n">current_batch</span> <span class="o">+</span> 
<span class="mi">1</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="n">seq</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="n">seq</span><span class="p">})</span>
+            <span class="bp">self</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="n">msg</span><span class="p">)</span>
+            <span class="bp">self</span><span class="o">.</span><span 
class="n">current_batch</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">current_batch</span> <span 
class="o">==</span> <span class="bp">self</span><span class="o">.</span><span 
class="n">batch_size</span><span class="p">:</span>
+                <span class="bp">self</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="bp">self</span><span class="o">.</span><span 
class="n">transaction</span> <span class="o">=</span> <span 
class="bp">None</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="k">if</span> <span class="n">event</span><span 
class="o">.</span><span class="n">sender</span> <span class="o">==</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">confirmed</span> <span class="o">+=</span> <span class="mi">1</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="bp">self</span><span class="o">.</span><span 
class="n">committed</span> <span class="o">+=</span> <span 
class="bp">self</span><span class="o">.</span><span 
class="n">current_batch</span>
+        <span class="k">if</span> <span class="bp">self</span><span 
class="o">.</span><span class="n">committed</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 committed&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">else</span><span class="p">:</span>
+            <span class="bp">self</span><span class="o">.</span><span 
class="n">current_batch</span> <span class="o">=</span> <span 
class="mi">0</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="bp">self</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">current_batch</span> <span class="o">=</span> <span 
class="mi">0</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 transactionally 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">parser</span><span class="o">.</span><span 
class="n">add_option</span><span class="p">(</span><span 
class="s">&quot;-b&quot;</span><span class="p">,</span> <span 
class="s">&quot;--batch-size&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">10</span><span 
class="p">,</span>
+                  <span class="n">help</span><span class="o">=</span><span 
class="s">&quot;number of messages in each transaction (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">TxSend</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="n">opts</span><span class="o">.</span><span 
class="n">batch_size</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="tx_send.py">Download this file</a></p>

Modified: qpid/site/python/qpid_site/generate.py
URL: 
http://svn.apache.org/viewvc/qpid/site/python/qpid_site/generate.py?rev=1705923&r1=1705922&r2=1705923&view=diff
==============================================================================
--- qpid/site/python/qpid_site/generate.py (original)
+++ qpid/site/python/qpid_site/generate.py Tue Sep 29 20:27:56 2015
@@ -57,6 +57,7 @@ def setup_release_script():
     call("gcc --version > /dev/null")
     call("make --version > /dev/null")
     call("rdoc --version > /dev/null")
+    call("sphinx-build --version > /dev/null")
     call("svn --version > /dev/null")
     call("which javadoc > /dev/null")
     call("xsltproc --version > /dev/null")

Modified: qpid/site/scripts/gen-cpp-release-page
URL: 
http://svn.apache.org/viewvc/qpid/site/scripts/gen-cpp-release-page?rev=1705923&r1=1705922&r2=1705923&view=diff
==============================================================================
--- qpid/site/scripts/gen-cpp-release-page (original)
+++ qpid/site/scripts/gen-cpp-release-page Tue Sep 29 20:27:56 2015
@@ -30,6 +30,24 @@ component_records = (
     ("messaging-api", "Qpid Messaging API", "C++, Perl, Python, Ruby, .NET", 
"Linux, Windows", "1.0, 0-10"),
 )
 
+documentation = \
+"""
+<div class="two-column" markdown="1">
+
+ - [Installing Qpid 
C++](http://svn.apache.org/repos/asf/qpid/trunk/qpid/cpp/INSTALL)
+ - [C++ broker book](cpp-broker/book/index.html) 
([PDF](cpp-broker/cpp-broker-book.pdf))
+ - [.NET API reference](messaging-api/dotnet/api/index.html)
+ - [.NET examples](messaging-api/dotnet/examples/index.html)
+ - [C++ API reference](messaging-api/cpp/api/index.html)
+ - [C++ examples](messaging-api/cpp/examples/index.html)
+ - [Python API reference](messaging-api/python/api/index.html)
+ - [Python examples](messaging-api/python/examples/index.html)
+ - [Ruby API reference](messaging-api/ruby/api/index.html)
+ - [Ruby examples](messaging-api/ruby/examples/index.html)
+
+</div>
+"""
+
 template = \
 """
 ;;
@@ -51,14 +69,6 @@ template = \
 ;; under the License.
 ;;
 
-<script type="text/javascript">
-  _deferredFunctions.push(function() {{
-      if ("{release}" === "{{{{current_cpp_release}}}}") {{
-          _modifyCurrentReleaseLinks();
-      }}
-  }});
-</script>
-
 # Qpid C++ {release}
 
 Qpid C++ offers a connection-oriented messaging API supporting many
@@ -87,25 +97,20 @@ files you download.
 
 ## Documentation
 
-<div class="two-column" markdown="1">
-
- - [Installing Qpid 
C++](http://svn.apache.org/repos/asf/qpid/tags/qpid-cpp-{release}/qpid/cpp/INSTALL)
- - [C++ broker book](cpp-broker/book/index.html) 
([PDF](cpp-broker/cpp-broker-book.pdf))
- - [.NET API reference](messaging-api/dotnet/api/index.html)
- - [.NET examples](messaging-api/dotnet/examples/index.html)
- - [C++ API reference](messaging-api/cpp/api/index.html)
- - [C++ examples](messaging-api/cpp/examples/index.html)
- - [Python API reference](messaging-api/python/api/index.html)
- - [Python examples](messaging-api/python/examples/index.html)
- - [Ruby API reference](messaging-api/ruby/api/index.html)
- - [Ruby examples](messaging-api/ruby/examples/index.html)
-
-</div>
+{documentation}
 
 ## More information
 
  - [Resolved issues in JIRA]({issues_url})
  - [Source repository 
tag](http://svn.apache.org/repos/asf/qpid/tags/qpid-cpp-{release})
+
+<script type="text/javascript">
+  _deferredFunctions.push(function() {{
+      if ("{release}" === "{{{{current_cpp_release}}}}") {{
+          _modifyCurrentReleaseLinks();
+      }}
+  }});
+</script>
 """
 
 def gen_release_page(release, release_dir):
@@ -139,7 +144,10 @@ def gen_release_page(release, release_di
     jql = "project = QPID AND fixVersion = 'qpid-cpp-{}' ORDER BY priority 
DESC".format(release)
     issues_url = 
"https://issues.apache.org/jira/issues/?jql={}".format(urllib.quote_plus(jql))
 
-    output = template.format(**locals())
+    vars = locals()
+    vars["documentation"] = documentation
+
+    output = template.format(**vars)
     output = output.strip()
 
     write(output_path, output)
@@ -180,20 +188,7 @@ This content was generated at {time} on
 
 ## Documentation
 
-<div class="two-column" markdown="1">
-
- - [Installing Qpid 
C++](http://svn.apache.org/repos/asf/qpid/trunk/qpid/cpp/INSTALL)
- - [C++ broker book](cpp-broker/book/index.html) 
([PDF](cpp-broker/cpp-broker-book.pdf))
- - [.NET API reference](messaging-api/dotnet/api/index.html)
- - [.NET examples](messaging-api/dotnet/examples/index.html)
- - [C++ API reference](messaging-api/cpp/api/index.html)
- - [C++ examples](messaging-api/cpp/examples/index.html)
- - [Python API reference](messaging-api/python/api/index.html)
- - [Python examples](messaging-api/python/examples/index.html)
- - [Ruby API reference](messaging-api/ruby/api/index.html)
- - [Ruby examples](messaging-api/ruby/examples/index.html)
-
-</div>
+{documentation}
 
 ## More information
 
@@ -209,7 +204,10 @@ def gen_trunk_release_page(release_dir):
     date = now.strftime("%d %B %Y")
     time = now.strftime("%H:%M %Z")
 
-    output = trunk_template.format(**locals())
+    vars = locals()
+    vars["documentation"] = documentation
+    
+    output = trunk_template.format(**vars)
     output = output.strip()
 
     write(output_path, output)

Modified: qpid/site/scripts/gen-dispatch-release-page
URL: 
http://svn.apache.org/viewvc/qpid/site/scripts/gen-dispatch-release-page?rev=1705923&r1=1705922&r2=1705923&view=diff
==============================================================================
--- qpid/site/scripts/gen-dispatch-release-page (original)
+++ qpid/site/scripts/gen-dispatch-release-page Tue Sep 29 20:27:56 2015
@@ -64,14 +64,6 @@ template = \
 ;; under the License.
 ;;
 
-<script type="text/javascript">
-  _deferredFunctions.push(function() {{
-      if ("{release}" === "{{{{current_dispatch_release}}}}") {{
-          _modifyCurrentReleaseLinks();
-      }}
-  }});
-</script>
-
 # Qpid Dispatch {release}
 
 Dispatch is a lightweight AMQP message router library. More about
@@ -100,6 +92,14 @@ the files you download.
  - [All release 
artefacts](http://archive.apache.org/dist/qpid/dispatch/{release})
  - [Resolved issues in JIRA]({issues_url})
  - [Source repository 
tag](https://git-wip-us.apache.org/repos/asf/qpid-dispatch.git/tree/refs/tags/{release})
+
+<script type="text/javascript">
+  _deferredFunctions.push(function() {{
+      if ("{release}" === "{{{{current_dispatch_release}}}}") {{
+          _modifyCurrentReleaseLinks();
+      }}
+  }});
+</script>
 """
 
 def gen_release_page(release, release_dir):
@@ -129,7 +129,10 @@ def gen_release_page(release, release_di
     jql = "project = DISPATCH AND fixVersion = '{}' ORDER BY priority 
DESC".format(release)
     issues_url = 
"https://issues.apache.org/jira/issues/?jql={}".format(urllib.quote_plus(jql))
 
-    output = template.format(documentation=documentation, **locals())
+    vars = locals()
+    vars["documentation"] = documentation.format(release=release)
+    
+    output = template.format(**vars)
     output = output.strip()
 
     write(output_path, output)
@@ -154,7 +157,7 @@ master_template = """
 ;; under the License.
 ;;
 
-# Qpid Dispatch Development
+# Qpid Dispatch Master
 
 <div class="feature" markdown="1">
 
@@ -174,7 +177,7 @@ This content was generated at {time} on
 
 ## More information
 
-- [Source 
repository](https://git-wip-us.apache.org/repos/asf/qpid-dispatch.git)
+ - [Source 
repository](https://git-wip-us.apache.org/repos/asf/qpid-dispatch.git)
 """
 
 def gen_master_release_page(release_dir):
@@ -186,7 +189,10 @@ def gen_master_release_page(release_dir)
     date = now.strftime("%d %B %Y")
     time = now.strftime("%H:%M %Z")
 
-    output = master_template.format(documentation=documentation, **locals())
+    vars = locals()
+    vars["documentation"] = documentation.format(release="master")
+    
+    output = master_template.format(**vars)
     output = output.strip()
 
     write(output_path, output)




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

Reply via email to