You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by ro...@apache.org on 2017/02/03 15:49:13 UTC

[48/51] [abbrv] [partial] qpid-site git commit: add temp 0.17.0'ish release content for viewing

http://git-wip-us.apache.org/repos/asf/qpid-site/blob/1859e58c/content/releases/qpid-proton-0.17.0/messenger/perl/examples/index.html
----------------------------------------------------------------------
diff --git a/content/releases/qpid-proton-0.17.0/messenger/perl/examples/index.html b/content/releases/qpid-proton-0.17.0/messenger/perl/examples/index.html
new file mode 100644
index 0000000..c46ec59
--- /dev/null
+++ b/content/releases/qpid-proton-0.17.0/messenger/perl/examples/index.html
@@ -0,0 +1,162 @@
+<!DOCTYPE html>
+<!--
+ -
+ - 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.
+ -
+-->
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
+  <head>
+    <title>Perl AMQP Messenger Examples - Apache Qpid&#8482;</title>
+    <meta http-equiv="X-UA-Compatible" content="IE=edge"/>
+    <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
+    <link rel="stylesheet" href="/site.css" type="text/css" async="async"/>
+    <link rel="stylesheet" href="/deferred.css" type="text/css" defer="defer"/>
+    <script type="text/javascript">var _deferredFunctions = [];</script>
+    <script type="text/javascript" src="/deferred.js" defer="defer"></script>
+    <!--[if lte IE 8]>
+      <link rel="stylesheet" href="/ie.css" type="text/css"/>
+      <script type="text/javascript" src="/html5shiv.js"></script>
+    <![endif]-->
+
+    <!-- Redirects for `go get` and godoc.org -->
+    <meta name="go-import"
+          content="qpid.apache.org git https://git-wip-us.apache.org/repos/asf/qpid-proton.git"/>
+    <meta name="go-source"
+          content="qpid.apache.org
+https://github.com/apache/qpid-proton/blob/go1/README.md
+https://github.com/apache/qpid-proton/tree/go1{/dir}
+https://github.com/apache/qpid-proton/blob/go1{/dir}/{file}#L{line}"/>
+  </head>
+  <body>
+    <div id="-content">
+      <div id="-top" class="panel">
+        <a id="-menu-link"><img width="16" height="16" src="" alt="Menu"/></a>
+
+        <a id="-search-link"><img width="22" height="16" src="" alt="Search"/></a>
+
+        <ul id="-global-navigation">
+          <li><a id="-logotype" href="/index.html">Apache Qpid<sup>&#8482;</sup></a></li>
+          <li><a href="/documentation.html">Documentation</a></li>
+          <li><a href="/download.html">Download</a></li>
+          <li><a href="/discussion.html">Discussion</a></li>
+        </ul>
+      </div>
+
+      <div id="-menu" class="panel" style="display: none;">
+        <div class="flex">
+          <section>
+            <h3>Project</h3>
+
+            <ul>
+              <li><a href="/overview.html">Overview</a></li>
+              <li><a href="/components/index.html">Components</a></li>
+              <li><a href="/releases/index.html">Releases</a></li>
+            </ul>
+          </section>
+
+          <section>
+            <h3>Messaging APIs</h3>
+
+            <ul>
+              <li><a href="/proton/index.html">Qpid Proton</a></li>
+              <li><a href="/components/jms/index.html">Qpid JMS</a></li>
+              <li><a href="/components/messaging-api/index.html">Qpid Messaging API</a></li>
+            </ul>
+          </section>
+
+          <section>
+            <h3>Servers and tools</h3>
+
+            <ul>
+              <li><a href="/components/java-broker/index.html">Broker for Java</a></li>
+              <li><a href="/components/cpp-broker/index.html">C++ broker</a></li>
+              <li><a href="/components/dispatch-router/index.html">Dispatch router</a></li>
+            </ul>
+          </section>
+
+          <section>
+            <h3>Resources</h3>
+
+            <ul>
+              <li><a href="/dashboard.html">Dashboard</a></li>
+              <li><a href="https://cwiki.apache.org/confluence/display/qpid/Index">Wiki</a></li>
+              <li><a href="/resources.html">More resources</a></li>
+            </ul>
+          </section>
+        </div>
+      </div>
+
+      <div id="-search" class="panel" style="display: none;">
+        <form action="http://www.google.com/search" method="get">
+          <input type="hidden" name="sitesearch" value="qpid.apache.org"/>
+          <input type="text" name="q" maxlength="255" autofocus="autofocus" tabindex="1"/>
+          <button type="submit">Search</button>
+          <a href="/search.html">More ways to search</a>
+        </form>
+      </div>
+
+      <div id="-middle" class="panel">
+        <ul id="-path-navigation"><li><a href="/index.html">Home</a></li><li><a href="/releases/index.html">Releases</a></li><li><a href="/releases/qpid-proton-0.17.0/index.html">Qpid Proton 0.17.0</a></li><li>Perl AMQP Messenger Examples</li></ul>
+
+        <div id="-middle-content">
+          <h1 id="perl-amqp-messenger-examples">Perl AMQP Messenger Examples</h1>
+
+<h2 id="example-files">Example files</h2>
+
+<ul>
+<li><a href="client.pl.html">client.pl</a></li>
+<li><a href="recv.pl.html">recv.pl</a></li>
+<li><a href="recv_async.pl.html">recv_async.pl</a></li>
+<li><a href="send.pl.html">send.pl</a></li>
+<li><a href="send_async.pl.html">send_async.pl</a></li>
+<li><a href="server.pl.html">server.pl</a></li>
+</ul>
+
+<h2 id="more-information">More information</h2>
+
+<ul>
+<li><a href="https://github.com/apache/qpid-proton/tree/0.17.0/examples/perl/messenger">Source location</a></li>
+</ul>
+
+
+          <hr/>
+
+          <ul id="-apache-navigation">
+            <li><a href="http://www.apache.org/">Apache</a></li>
+            <li><a href="http://www.apache.org/licenses/">License</a></li>
+            <li><a href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
+            <li><a href="http://www.apache.org/foundation/thanks.html">Thanks!</a></li>
+            <li><a href="/security.html">Security</a></li>
+            <li><a href="http://www.apache.org/"><img id="-apache-feather" width="48" height="14" src="" alt="Apache"/></a></li>
+          </ul>
+
+          <p id="-legal">
+            Apache Qpid, Messaging built on AMQP; Copyright &#169; 2015
+            The Apache Software Foundation; Licensed under
+            the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache
+            License, Version 2.0</a>; Apache Qpid, Qpid, Qpid Proton,
+            Proton, Apache, the Apache feather logo, and the Apache Qpid
+            project logo are trademarks of The Apache Software
+            Foundation; All other marks mentioned may be trademarks or
+            registered trademarks of their respective owners
+          </p>
+        </div>
+      </div>
+    </div>
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/qpid-site/blob/1859e58c/content/releases/qpid-proton-0.17.0/messenger/perl/examples/recv.pl
----------------------------------------------------------------------
diff --git a/content/releases/qpid-proton-0.17.0/messenger/perl/examples/recv.pl b/content/releases/qpid-proton-0.17.0/messenger/perl/examples/recv.pl
new file mode 100755
index 0000000..801f6a2
--- /dev/null
+++ b/content/releases/qpid-proton-0.17.0/messenger/perl/examples/recv.pl
@@ -0,0 +1,99 @@
+#!/usr/bin/env perl
+#
+# 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.
+#
+
+use warnings;
+
+use Scalar::Util qw(reftype);
+use Data::Dumper;
+
+use qpid_proton;
+
+sub usage {
+    exit(0);
+}
+
+my @addresses = @ARGV;
+@addresses = ("~0.0.0.0") unless $addresses[0];
+
+my $messenger = new qpid::proton::Messenger();
+my $msg = new qpid::proton::Message();
+
+$messenger->start();
+
+foreach (@addresses)
+{
+    print "Subscribing to $_\n";
+    $messenger->subscribe($_);
+}
+
+for(;;)
+{
+    $messenger->receive(10);
+
+    while ($messenger->incoming() > 0)
+    {
+        $messenger->get($msg);
+
+        print "\n";
+        print "Address: " . $msg->get_address() . "\n";
+        print "Subject: " . $msg->get_subject() . "\n" unless !defined($msg->get_subject());
+        print "Body:    ";
+
+        my $body = $msg->get_body();
+        my $body_type = $msg->get_body_type();
+
+        if (!defined($body_type)) {
+            print "The body type wasn't defined!\n";
+        } elsif ($body_type == qpid::proton::BOOL) {
+            print "[BOOL]\n";
+            print "" . ($body ? "TRUE" : "FALSE") . "\n";
+        } elsif ($body_type == qpid::proton::MAP) {
+            print "[HASH]\n";
+            print Dumper(\%{$body}) . "\n";
+        } elsif ($body_type == qpid::proton::ARRAY) {
+            print "[ARRAY]\n";
+            print Data::Dumper->Dump($body) . "\n";
+        } elsif ($body_type == qpid::proton::LIST) {
+            print "[LIST]\n";
+            print Data::Dumper->Dump($body) . "\n";
+        } else {
+            print "[$body_type]\n";
+            print "$body\n";
+        }
+
+        print "Properties:\n";
+        my $props = $msg->get_properties();
+        foreach (keys $props) {
+            print "\t$_=$props->{$_}\n";
+        }
+        print "Instructions:\n";
+        my $instructions = $msg->get_instructions;
+        foreach (keys $instructions) {
+            print "\t$_=" . $instructions->{$_} . "\n";
+        }
+        print "Annotations:\n";
+        my $annotations = $msg->get_annotations();
+        foreach (keys $annotations) {
+            print "\t$_=" . $annotations->{$_} . "\n";
+        }
+    }
+}
+
+die $@ if ($@);

http://git-wip-us.apache.org/repos/asf/qpid-site/blob/1859e58c/content/releases/qpid-proton-0.17.0/messenger/perl/examples/recv.pl.html
----------------------------------------------------------------------
diff --git a/content/releases/qpid-proton-0.17.0/messenger/perl/examples/recv.pl.html b/content/releases/qpid-proton-0.17.0/messenger/perl/examples/recv.pl.html
new file mode 100644
index 0000000..2727713
--- /dev/null
+++ b/content/releases/qpid-proton-0.17.0/messenger/perl/examples/recv.pl.html
@@ -0,0 +1,228 @@
+<!DOCTYPE html>
+<!--
+ -
+ - 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.
+ -
+-->
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
+  <head>
+    <title>recv.pl - Apache Qpid&#8482;</title>
+    <meta http-equiv="X-UA-Compatible" content="IE=edge"/>
+    <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
+    <link rel="stylesheet" href="/site.css" type="text/css" async="async"/>
+    <link rel="stylesheet" href="/deferred.css" type="text/css" defer="defer"/>
+    <script type="text/javascript">var _deferredFunctions = [];</script>
+    <script type="text/javascript" src="/deferred.js" defer="defer"></script>
+    <!--[if lte IE 8]>
+      <link rel="stylesheet" href="/ie.css" type="text/css"/>
+      <script type="text/javascript" src="/html5shiv.js"></script>
+    <![endif]-->
+
+    <!-- Redirects for `go get` and godoc.org -->
+    <meta name="go-import"
+          content="qpid.apache.org git https://git-wip-us.apache.org/repos/asf/qpid-proton.git"/>
+    <meta name="go-source"
+          content="qpid.apache.org
+https://github.com/apache/qpid-proton/blob/go1/README.md
+https://github.com/apache/qpid-proton/tree/go1{/dir}
+https://github.com/apache/qpid-proton/blob/go1{/dir}/{file}#L{line}"/>
+  </head>
+  <body>
+    <div id="-content">
+      <div id="-top" class="panel">
+        <a id="-menu-link"><img width="16" height="16" src="" alt="Menu"/></a>
+
+        <a id="-search-link"><img width="22" height="16" src="" alt="Search"/></a>
+
+        <ul id="-global-navigation">
+          <li><a id="-logotype" href="/index.html">Apache Qpid<sup>&#8482;</sup></a></li>
+          <li><a href="/documentation.html">Documentation</a></li>
+          <li><a href="/download.html">Download</a></li>
+          <li><a href="/discussion.html">Discussion</a></li>
+        </ul>
+      </div>
+
+      <div id="-menu" class="panel" style="display: none;">
+        <div class="flex">
+          <section>
+            <h3>Project</h3>
+
+            <ul>
+              <li><a href="/overview.html">Overview</a></li>
+              <li><a href="/components/index.html">Components</a></li>
+              <li><a href="/releases/index.html">Releases</a></li>
+            </ul>
+          </section>
+
+          <section>
+            <h3>Messaging APIs</h3>
+
+            <ul>
+              <li><a href="/proton/index.html">Qpid Proton</a></li>
+              <li><a href="/components/jms/index.html">Qpid JMS</a></li>
+              <li><a href="/components/messaging-api/index.html">Qpid Messaging API</a></li>
+            </ul>
+          </section>
+
+          <section>
+            <h3>Servers and tools</h3>
+
+            <ul>
+              <li><a href="/components/java-broker/index.html">Broker for Java</a></li>
+              <li><a href="/components/cpp-broker/index.html">C++ broker</a></li>
+              <li><a href="/components/dispatch-router/index.html">Dispatch router</a></li>
+            </ul>
+          </section>
+
+          <section>
+            <h3>Resources</h3>
+
+            <ul>
+              <li><a href="/dashboard.html">Dashboard</a></li>
+              <li><a href="https://cwiki.apache.org/confluence/display/qpid/Index">Wiki</a></li>
+              <li><a href="/resources.html">More resources</a></li>
+            </ul>
+          </section>
+        </div>
+      </div>
+
+      <div id="-search" class="panel" style="display: none;">
+        <form action="http://www.google.com/search" method="get">
+          <input type="hidden" name="sitesearch" value="qpid.apache.org"/>
+          <input type="text" name="q" maxlength="255" autofocus="autofocus" tabindex="1"/>
+          <button type="submit">Search</button>
+          <a href="/search.html">More ways to search</a>
+        </form>
+      </div>
+
+      <div id="-middle" class="panel">
+        <ul id="-path-navigation"><li><a href="/index.html">Home</a></li><li><a href="/releases/index.html">Releases</a></li><li><a href="/releases/qpid-proton-0.17.0/index.html">Qpid Proton 0.17.0</a></li><li><a href="/releases/qpid-proton-0.17.0/messenger/perl/examples/index.html">Perl AMQP Messenger Examples</a></li><li>recv.pl</li></ul>
+
+        <div id="-middle-content">
+          
+<h1>recv.pl</h1>
+<div class="highlight"><pre><span class="k">use</span> <span class="n">warnings</span><span class="p">;</span>
+
+<span class="k">use</span> <span class="nn">Scalar::</span><span class="n">Util</span> <span class="sx">qw(reftype)</span><span class="p">;</span>
+<span class="k">use</span> <span class="nn">Data::</span><span class="n">Dumper</span><span class="p">;</span>
+
+<span class="k">use</span> <span class="n">qpid_proton</span><span class="p">;</span>
+
+<span class="k">sub </span><span class="nf">usage</span> <span class="p">{</span>
+    <span class="nb">exit</span><span class="p">(</span><span class="mi">0</span><span class="p">);</span>
+<span class="p">}</span>
+
+<span class="k">my</span> <span class="nv">@addresses</span> <span class="o">=</span> <span class="nv">@ARGV</span><span class="p">;</span>
+<span class="nv">@addresses</span> <span class="o">=</span> <span class="p">(</span><span class="s">&quot;~0.0.0.0&quot;</span><span class="p">)</span> <span class="k">unless</span> <span class="nv">$addresses</span><span class="p">[</span><span class="mi">0</span><span class="p">];</span>
+
+<span class="k">my</span> <span class="nv">$messenger</span> <span class="o">=</span> <span class="k">new</span> <span class="nn">qpid::proton::</span><span class="n">Messenger</span><span class="p">();</span>
+<span class="k">my</span> <span class="nv">$msg</span> <span class="o">=</span> <span class="k">new</span> <span class="nn">qpid::proton::</span><span class="n">Message</span><span class="p">();</span>
+
+<span class="nv">$messenger</span><span class="o">-&gt;</span><span class="n">start</span><span class="p">();</span>
+
+<span class="k">foreach</span> <span class="p">(</span><span class="nv">@addresses</span><span class="p">)</span>
+<span class="p">{</span>
+    <span class="k">print</span> <span class="s">&quot;Subscribing to $_\n&quot;</span><span class="p">;</span>
+    <span class="nv">$messenger</span><span class="o">-&gt;</span><span class="n">subscribe</span><span class="p">(</span><span class="nv">$_</span><span class="p">);</span>
+<span class="p">}</span>
+
+<span class="k">for</span><span class="p">(;;)</span>
+<span class="p">{</span>
+    <span class="nv">$messenger</span><span class="o">-&gt;</span><span class="n">receive</span><span class="p">(</span><span class="mi">10</span><span class="p">);</span>
+
+    <span class="k">while</span> <span class="p">(</span><span class="nv">$messenger</span><span class="o">-&gt;</span><span class="n">incoming</span><span class="p">()</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">)</span>
+    <span class="p">{</span>
+        <span class="nv">$messenger</span><span class="o">-&gt;</span><span class="n">get</span><span class="p">(</span><span class="nv">$msg</span><span class="p">);</span>
+
+        <span class="k">print</span> <span class="s">&quot;\n&quot;</span><span class="p">;</span>
+        <span class="k">print</span> <span class="s">&quot;Address: &quot;</span> <span class="o">.</span> <span class="nv">$msg</span><span class="o">-&gt;</span><span class="n">get_address</span><span class="p">()</span> <span class="o">.</span> <span class="s">&quot;\n&quot;</span><span class="p">;</span>
+        <span class="k">print</span> <span class="s">&quot;Subject: &quot;</span> <span class="o">.</span> <span class="nv">$msg</span><span class="o">-&gt;</span><span class="n">get_subject</span><span class="p">()</span> <span class="o">.</span> <span class="s">&quot;\n&quot;</span> <span class="k">unless</span> <span class="o">!</span><span class="nb">defined</span><span class="p">(</span><span class="nv">$msg</span><span class="o">-&gt;</span><span class="n">get_subject</span><span class="p">());</span>
+        <span class="k">print</span> <span class="s">&quot;Body:    &quot;</span><span class="p">;</span>
+
+        <span class="k">my</span> <span class="nv">$body</span> <span class="o">=</span> <span class="nv">$msg</span><span class="o">-&gt;</span><span class="n">get_body</span><span class="p">();</span>
+        <span class="k">my</span> <span class="nv">$body_type</span> <span class="o">=</span> <span class="nv">$msg</span><span class="o">-&gt;</span><span class="n">get_body_type</span><span class="p">();</span>
+
+        <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nb">defined</span><span class="p">(</span><span class="nv">$body_type</span><span class="p">))</span> <span class="p">{</span>
+            <span class="k">print</span> <span class="s">&quot;The body type wasn&#39;t defined!\n&quot;</span><span class="p">;</span>
+        <span class="p">}</span> <span class="k">elsif</span> <span class="p">(</span><span class="nv">$body_type</span> <span class="o">==</span> <span class="nn">qpid::proton::</span><span class="n">BOOL</span><span class="p">)</span> <span class="p">{</span>
+            <span class="k">print</span> <span class="s">&quot;[BOOL]\n&quot;</span><span class="p">;</span>
+            <span class="k">print</span> <span class="s">&quot;&quot;</span> <span class="o">.</span> <span class="p">(</span><span class="nv">$body</span> <span class="p">?</span> <span class="s">&quot;TRUE&quot;</span> <span class="p">:</span> <span class="s">&quot;FALSE&quot;</span><span class="p">)</span> <span class="o">.</span> <span class="s">&quot;\n&quot;</span><span class="p">;</span>
+        <span class="p">}</span> <span class="k">elsif</span> <span class="p">(</span><span class="nv">$body_type</span> <span class="o">==</span> <span class="nn">qpid::proton::</span><span class="n">MAP</span><span class="p">)</span> <span class="p">{</span>
+            <span class="k">print</span> <span class="s">&quot;[HASH]\n&quot;</span><span class="p">;</span>
+            <span class="k">print</span> <span class="n">Dumper</span><span class="p">(</span><span class="o">\</span><span class="nv">%</span><span class="p">{</span><span class="nv">$body</span><span class="p">})</span> <span class="o">.</span> <span class="s">&quot;\n&quot;</span><span class="p">;</span>
+        <span class="p">}</span> <span class="k">elsif</span> <span class="p">(</span><span class="nv">$body_type</span> <span class="o">==</span> <span class="nn">qpid::proton::</span><span class="n">ARRAY</span><span class="p">)</span> <span class="p">{</span>
+            <span class="k">print</span> <span class="s">&quot;[ARRAY]\n&quot;</span><span class="p">;</span>
+            <span class="k">print</span> <span class="nn">Data::</span><span class="n">Dumper</span><span class="o">-&gt;</span><span class="n">Dump</span><span class="p">(</span><span class="nv">$body</span><span class="p">)</span> <span class="o">.</span> <span class="s">&quot;\n&quot;</span><span class="p">;</span>
+        <span class="p">}</span> <span class="k">elsif</span> <span class="p">(</span><span class="nv">$body_type</span> <span class="o">==</span> <span class="nn">qpid::proton::</span><span class="n">LIST</span><span class="p">)</span> <span class="p">{</span>
+            <span class="k">print</span> <span class="s">&quot;[LIST]\n&quot;</span><span class="p">;</span>
+            <span class="k">print</span> <span class="nn">Data::</span><span class="n">Dumper</span><span class="o">-&gt;</span><span class="n">Dump</span><span class="p">(</span><span class="nv">$body</span><span class="p">)</span> <span class="o">.</span> <span class="s">&quot;\n&quot;</span><span class="p">;</span>
+        <span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
+            <span class="k">print</span> <span class="s">&quot;[$body_type]\n&quot;</span><span class="p">;</span>
+            <span class="k">print</span> <span class="s">&quot;$body\n&quot;</span><span class="p">;</span>
+        <span class="p">}</span>
+
+        <span class="k">print</span> <span class="s">&quot;Properties:\n&quot;</span><span class="p">;</span>
+        <span class="k">my</span> <span class="nv">$props</span> <span class="o">=</span> <span class="nv">$msg</span><span class="o">-&gt;</span><span class="n">get_properties</span><span class="p">();</span>
+        <span class="k">foreach</span> <span class="p">(</span><span class="nb">keys</span> <span class="nv">$props</span><span class="p">)</span> <span class="p">{</span>
+            <span class="k">print</span> <span class="s">&quot;\t$_=$props-&gt;{$_}\n&quot;</span><span class="p">;</span>
+        <span class="p">}</span>
+        <span class="k">print</span> <span class="s">&quot;Instructions:\n&quot;</span><span class="p">;</span>
+        <span class="k">my</span> <span class="nv">$instructions</span> <span class="o">=</span> <span class="nv">$msg</span><span class="o">-&gt;</span><span class="n">get_instructions</span><span class="p">;</span>
+        <span class="k">foreach</span> <span class="p">(</span><span class="nb">keys</span> <span class="nv">$instructions</span><span class="p">)</span> <span class="p">{</span>
+            <span class="k">print</span> <span class="s">&quot;\t$_=&quot;</span> <span class="o">.</span> <span class="nv">$instructions</span><span class="o">-&gt;</span><span class="p">{</span><span class="nv">$_</span><span class="p">}</span> <span class="o">.</span> <span class="s">&quot;\n&quot;</span><span class="p">;</span>
+        <span class="p">}</span>
+        <span class="k">print</span> <span class="s">&quot;Annotations:\n&quot;</span><span class="p">;</span>
+        <span class="k">my</span> <span class="nv">$annotations</span> <span class="o">=</span> <span class="nv">$msg</span><span class="o">-&gt;</span><span class="n">get_annotations</span><span class="p">();</span>
+        <span class="k">foreach</span> <span class="p">(</span><span class="nb">keys</span> <span class="nv">$annotations</span><span class="p">)</span> <span class="p">{</span>
+            <span class="k">print</span> <span class="s">&quot;\t$_=&quot;</span> <span class="o">.</span> <span class="nv">$annotations</span><span class="o">-&gt;</span><span class="p">{</span><span class="nv">$_</span><span class="p">}</span> <span class="o">.</span> <span class="s">&quot;\n&quot;</span><span class="p">;</span>
+        <span class="p">}</span>
+    <span class="p">}</span>
+<span class="p">}</span>
+
+<span class="nb">die</span> <span class="vg">$@</span> <span class="k">if</span> <span class="p">(</span><span class="vg">$@</span><span class="p">);</span>
+</pre></div>
+
+<p><a href="recv.pl">Download this file</a></p>
+
+
+          <hr/>
+
+          <ul id="-apache-navigation">
+            <li><a href="http://www.apache.org/">Apache</a></li>
+            <li><a href="http://www.apache.org/licenses/">License</a></li>
+            <li><a href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
+            <li><a href="http://www.apache.org/foundation/thanks.html">Thanks!</a></li>
+            <li><a href="/security.html">Security</a></li>
+            <li><a href="http://www.apache.org/"><img id="-apache-feather" width="48" height="14" src="" alt="Apache"/></a></li>
+          </ul>
+
+          <p id="-legal">
+            Apache Qpid, Messaging built on AMQP; Copyright &#169; 2015
+            The Apache Software Foundation; Licensed under
+            the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache
+            License, Version 2.0</a>; Apache Qpid, Qpid, Qpid Proton,
+            Proton, Apache, the Apache feather logo, and the Apache Qpid
+            project logo are trademarks of The Apache Software
+            Foundation; All other marks mentioned may be trademarks or
+            registered trademarks of their respective owners
+          </p>
+        </div>
+      </div>
+    </div>
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/qpid-site/blob/1859e58c/content/releases/qpid-proton-0.17.0/messenger/perl/examples/recv_async.pl
----------------------------------------------------------------------
diff --git a/content/releases/qpid-proton-0.17.0/messenger/perl/examples/recv_async.pl b/content/releases/qpid-proton-0.17.0/messenger/perl/examples/recv_async.pl
new file mode 100755
index 0000000..9a2195a
--- /dev/null
+++ b/content/releases/qpid-proton-0.17.0/messenger/perl/examples/recv_async.pl
@@ -0,0 +1,84 @@
+#
+# 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.
+#
+
+use qpid_proton;
+use async;
+
+package async::Receiver;
+
+@ISA = (async::CallbackAdapter);
+
+sub on_start {
+    my ($self) = @_;
+    my $args = $_[1] || ("amqp://~0.0.0.0");
+    my $messenger = $self->{_messenger};
+
+    foreach $arg ($args) {
+        $messenger->subscribe($arg);
+    }
+
+    $messenger->receive();
+}
+
+sub on_receive {
+    my ($self) = @_;
+    my $msg = $_[1];
+    my $message = $self->{_message};
+    my $text = "";
+
+    if (defined($msg->get_body)) {
+        $text = $msg->get_body;
+        if ($text eq "die") {
+            $self->stop;
+        }
+    } else {
+        $text = $message->get_subject;
+    }
+
+    $text = "" if (!defined($text));
+
+    print "Received: $text\n";
+
+    if ($msg->get_reply_to) {
+        print "Sending reply to: " . $msg->get_reply_to . "\n";
+        $message->clear;
+        $message->set_address($msg->get_reply_to());
+        $message->set_body("Reply for ", $msg->get_body);
+        $self->send($message);
+    }
+}
+
+sub on_status {
+    my ($self) = @_;
+    my $messenger = $self->{_messenger};
+    my $status = $_[1];
+
+    print "Status: ", $status, "\n";
+}
+
+sub on_stop {
+    print "Stopped.\n"
+}
+
+package main;
+
+our $messenger = new qpid::proton::Messenger();
+our $app = new async::Receiver($messenger);
+
+$app->run();

http://git-wip-us.apache.org/repos/asf/qpid-site/blob/1859e58c/content/releases/qpid-proton-0.17.0/messenger/perl/examples/recv_async.pl.html
----------------------------------------------------------------------
diff --git a/content/releases/qpid-proton-0.17.0/messenger/perl/examples/recv_async.pl.html b/content/releases/qpid-proton-0.17.0/messenger/perl/examples/recv_async.pl.html
new file mode 100644
index 0000000..9149553
--- /dev/null
+++ b/content/releases/qpid-proton-0.17.0/messenger/perl/examples/recv_async.pl.html
@@ -0,0 +1,214 @@
+<!DOCTYPE html>
+<!--
+ -
+ - 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.
+ -
+-->
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
+  <head>
+    <title>recv_async.pl - Apache Qpid&#8482;</title>
+    <meta http-equiv="X-UA-Compatible" content="IE=edge"/>
+    <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
+    <link rel="stylesheet" href="/site.css" type="text/css" async="async"/>
+    <link rel="stylesheet" href="/deferred.css" type="text/css" defer="defer"/>
+    <script type="text/javascript">var _deferredFunctions = [];</script>
+    <script type="text/javascript" src="/deferred.js" defer="defer"></script>
+    <!--[if lte IE 8]>
+      <link rel="stylesheet" href="/ie.css" type="text/css"/>
+      <script type="text/javascript" src="/html5shiv.js"></script>
+    <![endif]-->
+
+    <!-- Redirects for `go get` and godoc.org -->
+    <meta name="go-import"
+          content="qpid.apache.org git https://git-wip-us.apache.org/repos/asf/qpid-proton.git"/>
+    <meta name="go-source"
+          content="qpid.apache.org
+https://github.com/apache/qpid-proton/blob/go1/README.md
+https://github.com/apache/qpid-proton/tree/go1{/dir}
+https://github.com/apache/qpid-proton/blob/go1{/dir}/{file}#L{line}"/>
+  </head>
+  <body>
+    <div id="-content">
+      <div id="-top" class="panel">
+        <a id="-menu-link"><img width="16" height="16" src="" alt="Menu"/></a>
+
+        <a id="-search-link"><img width="22" height="16" src="" alt="Search"/></a>
+
+        <ul id="-global-navigation">
+          <li><a id="-logotype" href="/index.html">Apache Qpid<sup>&#8482;</sup></a></li>
+          <li><a href="/documentation.html">Documentation</a></li>
+          <li><a href="/download.html">Download</a></li>
+          <li><a href="/discussion.html">Discussion</a></li>
+        </ul>
+      </div>
+
+      <div id="-menu" class="panel" style="display: none;">
+        <div class="flex">
+          <section>
+            <h3>Project</h3>
+
+            <ul>
+              <li><a href="/overview.html">Overview</a></li>
+              <li><a href="/components/index.html">Components</a></li>
+              <li><a href="/releases/index.html">Releases</a></li>
+            </ul>
+          </section>
+
+          <section>
+            <h3>Messaging APIs</h3>
+
+            <ul>
+              <li><a href="/proton/index.html">Qpid Proton</a></li>
+              <li><a href="/components/jms/index.html">Qpid JMS</a></li>
+              <li><a href="/components/messaging-api/index.html">Qpid Messaging API</a></li>
+            </ul>
+          </section>
+
+          <section>
+            <h3>Servers and tools</h3>
+
+            <ul>
+              <li><a href="/components/java-broker/index.html">Broker for Java</a></li>
+              <li><a href="/components/cpp-broker/index.html">C++ broker</a></li>
+              <li><a href="/components/dispatch-router/index.html">Dispatch router</a></li>
+            </ul>
+          </section>
+
+          <section>
+            <h3>Resources</h3>
+
+            <ul>
+              <li><a href="/dashboard.html">Dashboard</a></li>
+              <li><a href="https://cwiki.apache.org/confluence/display/qpid/Index">Wiki</a></li>
+              <li><a href="/resources.html">More resources</a></li>
+            </ul>
+          </section>
+        </div>
+      </div>
+
+      <div id="-search" class="panel" style="display: none;">
+        <form action="http://www.google.com/search" method="get">
+          <input type="hidden" name="sitesearch" value="qpid.apache.org"/>
+          <input type="text" name="q" maxlength="255" autofocus="autofocus" tabindex="1"/>
+          <button type="submit">Search</button>
+          <a href="/search.html">More ways to search</a>
+        </form>
+      </div>
+
+      <div id="-middle" class="panel">
+        <ul id="-path-navigation"><li><a href="/index.html">Home</a></li><li><a href="/releases/index.html">Releases</a></li><li><a href="/releases/qpid-proton-0.17.0/index.html">Qpid Proton 0.17.0</a></li><li><a href="/releases/qpid-proton-0.17.0/messenger/perl/examples/index.html">Perl AMQP Messenger Examples</a></li><li>recv_async.pl</li></ul>
+
+        <div id="-middle-content">
+          
+<h1>recv_async.pl</h1>
+<div class="highlight"><pre><span class="k">use</span> <span class="n">qpid_proton</span><span class="p">;</span>
+<span class="k">use</span> <span class="n">async</span><span class="p">;</span>
+
+<span class="nb">package</span> <span class="nn">async::</span><span class="n">Receiver</span><span class="p">;</span>
+
+<span class="nv">@ISA</span> <span class="o">=</span> <span class="p">(</span><span class="nn">async::</span><span class="n">CallbackAdapter</span><span class="p">);</span>
+
+<span class="k">sub </span><span class="nf">on_start</span> <span class="p">{</span>
+    <span class="k">my</span> <span class="p">(</span><span class="nv">$self</span><span class="p">)</span> <span class="o">=</span> <span class="nv">@_</span><span class="p">;</span>
+    <span class="k">my</span> <span class="nv">$args</span> <span class="o">=</span> <span class="nv">$_</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">||</span> <span class="p">(</span><span class="s">&quot;amqp://~0.0.0.0&quot;</span><span class="p">);</span>
+    <span class="k">my</span> <span class="nv">$messenger</span> <span class="o">=</span> <span class="nv">$self</span><span class="o">-&gt;</span><span class="p">{</span><span class="n">_messenger</span><span class="p">};</span>
+
+    <span class="k">foreach</span> <span class="nv">$arg</span> <span class="p">(</span><span class="nv">$args</span><span class="p">)</span> <span class="p">{</span>
+        <span class="nv">$messenger</span><span class="o">-&gt;</span><span class="n">subscribe</span><span class="p">(</span><span class="nv">$arg</span><span class="p">);</span>
+    <span class="p">}</span>
+
+    <span class="nv">$messenger</span><span class="o">-&gt;</span><span class="n">receive</span><span class="p">();</span>
+<span class="p">}</span>
+
+<span class="k">sub </span><span class="nf">on_receive</span> <span class="p">{</span>
+    <span class="k">my</span> <span class="p">(</span><span class="nv">$self</span><span class="p">)</span> <span class="o">=</span> <span class="nv">@_</span><span class="p">;</span>
+    <span class="k">my</span> <span class="nv">$msg</span> <span class="o">=</span> <span class="nv">$_</span><span class="p">[</span><span class="mi">1</span><span class="p">];</span>
+    <span class="k">my</span> <span class="nv">$message</span> <span class="o">=</span> <span class="nv">$self</span><span class="o">-&gt;</span><span class="p">{</span><span class="n">_message</span><span class="p">};</span>
+    <span class="k">my</span> <span class="nv">$text</span> <span class="o">=</span> <span class="s">&quot;&quot;</span><span class="p">;</span>
+
+    <span class="k">if</span> <span class="p">(</span><span class="nb">defined</span><span class="p">(</span><span class="nv">$msg</span><span class="o">-&gt;</span><span class="n">get_body</span><span class="p">))</span> <span class="p">{</span>
+        <span class="nv">$text</span> <span class="o">=</span> <span class="nv">$msg</span><span class="o">-&gt;</span><span class="n">get_body</span><span class="p">;</span>
+        <span class="k">if</span> <span class="p">(</span><span class="nv">$text</span> <span class="ow">eq</span> <span class="s">&quot;die&quot;</span><span class="p">)</span> <span class="p">{</span>
+            <span class="nv">$self</span><span class="o">-&gt;</span><span class="n">stop</span><span class="p">;</span>
+        <span class="p">}</span>
+    <span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
+        <span class="nv">$text</span> <span class="o">=</span> <span class="nv">$message</span><span class="o">-&gt;</span><span class="n">get_subject</span><span class="p">;</span>
+    <span class="p">}</span>
+
+    <span class="nv">$text</span> <span class="o">=</span> <span class="s">&quot;&quot;</span> <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nb">defined</span><span class="p">(</span><span class="nv">$text</span><span class="p">));</span>
+
+    <span class="k">print</span> <span class="s">&quot;Received: $text\n&quot;</span><span class="p">;</span>
+
+    <span class="k">if</span> <span class="p">(</span><span class="nv">$msg</span><span class="o">-&gt;</span><span class="n">get_reply_to</span><span class="p">)</span> <span class="p">{</span>
+        <span class="k">print</span> <span class="s">&quot;Sending reply to: &quot;</span> <span class="o">.</span> <span class="nv">$msg</span><span class="o">-&gt;</span><span class="n">get_reply_to</span> <span class="o">.</span> <span class="s">&quot;\n&quot;</span><span class="p">;</span>
+        <span class="nv">$message</span><span class="o">-&gt;</span><span class="n">clear</span><span class="p">;</span>
+        <span class="nv">$message</span><span class="o">-&gt;</span><span class="n">set_address</span><span class="p">(</span><span class="nv">$msg</span><span class="o">-&gt;</span><span class="n">get_reply_to</span><span class="p">());</span>
+        <span class="nv">$message</span><span class="o">-&gt;</span><span class="n">set_body</span><span class="p">(</span><span class="s">&quot;Reply for &quot;</span><span class="p">,</span> <span class="nv">$msg</span><span class="o">-&gt;</span><span class="n">get_body</span><span class="p">);</span>
+        <span class="nv">$self</span><span class="o">-&gt;</span><span class="nb">send</span><span class="p">(</span><span class="nv">$message</span><span class="p">);</span>
+    <span class="p">}</span>
+<span class="p">}</span>
+
+<span class="k">sub </span><span class="nf">on_status</span> <span class="p">{</span>
+    <span class="k">my</span> <span class="p">(</span><span class="nv">$self</span><span class="p">)</span> <span class="o">=</span> <span class="nv">@_</span><span class="p">;</span>
+    <span class="k">my</span> <span class="nv">$messenger</span> <span class="o">=</span> <span class="nv">$self</span><span class="o">-&gt;</span><span class="p">{</span><span class="n">_messenger</span><span class="p">};</span>
+    <span class="k">my</span> <span class="nv">$status</span> <span class="o">=</span> <span class="nv">$_</span><span class="p">[</span><span class="mi">1</span><span class="p">];</span>
+
+    <span class="k">print</span> <span class="s">&quot;Status: &quot;</span><span class="p">,</span> <span class="nv">$status</span><span class="p">,</span> <span class="s">&quot;\n&quot;</span><span class="p">;</span>
+<span class="p">}</span>
+
+<span class="k">sub </span><span class="nf">on_stop</span> <span class="p">{</span>
+    <span class="k">print</span> <span class="s">&quot;Stopped.\n&quot;</span>
+<span class="p">}</span>
+
+<span class="nb">package</span> <span class="n">main</span><span class="p">;</span>
+
+<span class="k">our</span> <span class="nv">$messenger</span> <span class="o">=</span> <span class="k">new</span> <span class="nn">qpid::proton::</span><span class="n">Messenger</span><span class="p">();</span>
+<span class="k">our</span> <span class="nv">$app</span> <span class="o">=</span> <span class="k">new</span> <span class="nn">async::</span><span class="n">Receiver</span><span class="p">(</span><span class="nv">$messenger</span><span class="p">);</span>
+
+<span class="nv">$app</span><span class="o">-&gt;</span><span class="n">run</span><span class="p">();</span>
+</pre></div>
+
+<p><a href="recv_async.pl">Download this file</a></p>
+
+
+          <hr/>
+
+          <ul id="-apache-navigation">
+            <li><a href="http://www.apache.org/">Apache</a></li>
+            <li><a href="http://www.apache.org/licenses/">License</a></li>
+            <li><a href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
+            <li><a href="http://www.apache.org/foundation/thanks.html">Thanks!</a></li>
+            <li><a href="/security.html">Security</a></li>
+            <li><a href="http://www.apache.org/"><img id="-apache-feather" width="48" height="14" src="" alt="Apache"/></a></li>
+          </ul>
+
+          <p id="-legal">
+            Apache Qpid, Messaging built on AMQP; Copyright &#169; 2015
+            The Apache Software Foundation; Licensed under
+            the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache
+            License, Version 2.0</a>; Apache Qpid, Qpid, Qpid Proton,
+            Proton, Apache, the Apache feather logo, and the Apache Qpid
+            project logo are trademarks of The Apache Software
+            Foundation; All other marks mentioned may be trademarks or
+            registered trademarks of their respective owners
+          </p>
+        </div>
+      </div>
+    </div>
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/qpid-site/blob/1859e58c/content/releases/qpid-proton-0.17.0/messenger/perl/examples/send.pl
----------------------------------------------------------------------
diff --git a/content/releases/qpid-proton-0.17.0/messenger/perl/examples/send.pl b/content/releases/qpid-proton-0.17.0/messenger/perl/examples/send.pl
new file mode 100755
index 0000000..27893ce
--- /dev/null
+++ b/content/releases/qpid-proton-0.17.0/messenger/perl/examples/send.pl
@@ -0,0 +1,88 @@
+#!/usr/bin/env perl
+#
+# 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.
+#
+
+use strict;
+use warnings;
+use Getopt::Std;
+
+use qpid_proton;
+
+$Getopt::Std::STANDARD_HELP_VERSION = 1;
+
+sub VERSION_MESSAGE() {
+}
+
+sub HELP_MESSAGE() {
+    print "Usage: send.pl [OPTIONS] -a <ADDRESS>\n";
+    print "Options:\n";
+    print "\t-s        - the message subject\n";
+    print "\t-C        - the message content\n";
+    print "\t<ADDRESS> - amqp://<domain>[/<name>]\n";
+    print "\t-h        - this message\n";
+
+    exit;
+}
+
+my %options = ();
+getopts("a:C:s:h:", \%options) or HELP_MESSAGE();
+
+my $address = $options{a} || "amqp://0.0.0.0";
+my $subject = $options{s} || localtime(time);
+my $content = $options{C} || "";
+
+my $msg  = new qpid::proton::Message();
+my $messenger = new qpid::proton::Messenger();
+
+$messenger->start();
+
+my @messages = @ARGV;
+@messages = ("This is a test. " . localtime(time)) unless $messages[0];
+
+foreach (@messages)
+{
+    $msg->set_address($address);
+    $msg->set_subject($subject);
+    $msg->set_body($content);
+    # try a few different body types
+    my $body_type = int(rand(6));
+    $msg->set_property("sent", "" . localtime(time));
+    $msg->get_instructions->{"fold"} = "yes";
+    $msg->get_instructions->{"spindle"} = "no";
+    $msg->get_instructions->{"mutilate"} = "no";
+    $msg->get_annotations->{"version"} = 1.0;
+    $msg->get_annotations->{"pill"} = "RED";
+
+  SWITCH: {
+      $body_type == 0 && do { $msg->set_body("It is now " . localtime(time));};
+      $body_type == 1 && do { $msg->set_body(rand(65536)); };
+      $body_type == 2 && do { $msg->set_body(int(rand(2)), qpid::proton::BOOL); };
+      $body_type == 3 && do { $msg->set_body({"foo" => "bar"}); };
+      $body_type == 4 && do { $msg->set_body([4, [1, 2, 3.1, 3.4E-5], 8, 15, 16, 23, 42]); };
+      $body_type == 5 && do { $msg->set_body(int(rand(65535))); }
+    }
+
+    $messenger->put($msg);
+    print "Sent: " . $msg->get_body . " [CONTENT TYPE: " . $msg->get_body_type . "]\n";
+}
+
+$messenger->send();
+$messenger->stop();
+
+die $@ if ($@);

http://git-wip-us.apache.org/repos/asf/qpid-site/blob/1859e58c/content/releases/qpid-proton-0.17.0/messenger/perl/examples/send.pl.html
----------------------------------------------------------------------
diff --git a/content/releases/qpid-proton-0.17.0/messenger/perl/examples/send.pl.html b/content/releases/qpid-proton-0.17.0/messenger/perl/examples/send.pl.html
new file mode 100644
index 0000000..f6a8c42
--- /dev/null
+++ b/content/releases/qpid-proton-0.17.0/messenger/perl/examples/send.pl.html
@@ -0,0 +1,217 @@
+<!DOCTYPE html>
+<!--
+ -
+ - 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.
+ -
+-->
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
+  <head>
+    <title>send.pl - Apache Qpid&#8482;</title>
+    <meta http-equiv="X-UA-Compatible" content="IE=edge"/>
+    <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
+    <link rel="stylesheet" href="/site.css" type="text/css" async="async"/>
+    <link rel="stylesheet" href="/deferred.css" type="text/css" defer="defer"/>
+    <script type="text/javascript">var _deferredFunctions = [];</script>
+    <script type="text/javascript" src="/deferred.js" defer="defer"></script>
+    <!--[if lte IE 8]>
+      <link rel="stylesheet" href="/ie.css" type="text/css"/>
+      <script type="text/javascript" src="/html5shiv.js"></script>
+    <![endif]-->
+
+    <!-- Redirects for `go get` and godoc.org -->
+    <meta name="go-import"
+          content="qpid.apache.org git https://git-wip-us.apache.org/repos/asf/qpid-proton.git"/>
+    <meta name="go-source"
+          content="qpid.apache.org
+https://github.com/apache/qpid-proton/blob/go1/README.md
+https://github.com/apache/qpid-proton/tree/go1{/dir}
+https://github.com/apache/qpid-proton/blob/go1{/dir}/{file}#L{line}"/>
+  </head>
+  <body>
+    <div id="-content">
+      <div id="-top" class="panel">
+        <a id="-menu-link"><img width="16" height="16" src="" alt="Menu"/></a>
+
+        <a id="-search-link"><img width="22" height="16" src="" alt="Search"/></a>
+
+        <ul id="-global-navigation">
+          <li><a id="-logotype" href="/index.html">Apache Qpid<sup>&#8482;</sup></a></li>
+          <li><a href="/documentation.html">Documentation</a></li>
+          <li><a href="/download.html">Download</a></li>
+          <li><a href="/discussion.html">Discussion</a></li>
+        </ul>
+      </div>
+
+      <div id="-menu" class="panel" style="display: none;">
+        <div class="flex">
+          <section>
+            <h3>Project</h3>
+
+            <ul>
+              <li><a href="/overview.html">Overview</a></li>
+              <li><a href="/components/index.html">Components</a></li>
+              <li><a href="/releases/index.html">Releases</a></li>
+            </ul>
+          </section>
+
+          <section>
+            <h3>Messaging APIs</h3>
+
+            <ul>
+              <li><a href="/proton/index.html">Qpid Proton</a></li>
+              <li><a href="/components/jms/index.html">Qpid JMS</a></li>
+              <li><a href="/components/messaging-api/index.html">Qpid Messaging API</a></li>
+            </ul>
+          </section>
+
+          <section>
+            <h3>Servers and tools</h3>
+
+            <ul>
+              <li><a href="/components/java-broker/index.html">Broker for Java</a></li>
+              <li><a href="/components/cpp-broker/index.html">C++ broker</a></li>
+              <li><a href="/components/dispatch-router/index.html">Dispatch router</a></li>
+            </ul>
+          </section>
+
+          <section>
+            <h3>Resources</h3>
+
+            <ul>
+              <li><a href="/dashboard.html">Dashboard</a></li>
+              <li><a href="https://cwiki.apache.org/confluence/display/qpid/Index">Wiki</a></li>
+              <li><a href="/resources.html">More resources</a></li>
+            </ul>
+          </section>
+        </div>
+      </div>
+
+      <div id="-search" class="panel" style="display: none;">
+        <form action="http://www.google.com/search" method="get">
+          <input type="hidden" name="sitesearch" value="qpid.apache.org"/>
+          <input type="text" name="q" maxlength="255" autofocus="autofocus" tabindex="1"/>
+          <button type="submit">Search</button>
+          <a href="/search.html">More ways to search</a>
+        </form>
+      </div>
+
+      <div id="-middle" class="panel">
+        <ul id="-path-navigation"><li><a href="/index.html">Home</a></li><li><a href="/releases/index.html">Releases</a></li><li><a href="/releases/qpid-proton-0.17.0/index.html">Qpid Proton 0.17.0</a></li><li><a href="/releases/qpid-proton-0.17.0/messenger/perl/examples/index.html">Perl AMQP Messenger Examples</a></li><li>send.pl</li></ul>
+
+        <div id="-middle-content">
+          
+<h1>send.pl</h1>
+<div class="highlight"><pre><span class="k">use</span> <span class="n">strict</span><span class="p">;</span>
+<span class="k">use</span> <span class="n">warnings</span><span class="p">;</span>
+<span class="k">use</span> <span class="nn">Getopt::</span><span class="n">Std</span><span class="p">;</span>
+
+<span class="k">use</span> <span class="n">qpid_proton</span><span class="p">;</span>
+
+<span class="nv">$</span><span class="nn">Getopt::Std::</span><span class="nv">STANDARD_HELP_VERSION</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span>
+
+<span class="k">sub </span><span class="nf">VERSION_MESSAGE</span><span class="p">()</span> <span class="p">{</span>
+<span class="p">}</span>
+
+<span class="k">sub </span><span class="nf">HELP_MESSAGE</span><span class="p">()</span> <span class="p">{</span>
+    <span class="k">print</span> <span class="s">&quot;Usage: send.pl [OPTIONS] -a &lt;ADDRESS&gt;\n&quot;</span><span class="p">;</span>
+    <span class="k">print</span> <span class="s">&quot;Options:\n&quot;</span><span class="p">;</span>
+    <span class="k">print</span> <span class="s">&quot;\t-s        - the message subject\n&quot;</span><span class="p">;</span>
+    <span class="k">print</span> <span class="s">&quot;\t-C        - the message content\n&quot;</span><span class="p">;</span>
+    <span class="k">print</span> <span class="s">&quot;\t&lt;ADDRESS&gt; - amqp://&lt;domain&gt;[/&lt;name&gt;]\n&quot;</span><span class="p">;</span>
+    <span class="k">print</span> <span class="s">&quot;\t-h        - this message\n&quot;</span><span class="p">;</span>
+
+    <span class="nb">exit</span><span class="p">;</span>
+<span class="p">}</span>
+
+<span class="k">my</span> <span class="nv">%options</span> <span class="o">=</span> <span class="p">();</span>
+<span class="n">getopts</span><span class="p">(</span><span class="s">&quot;a:C:s:h:&quot;</span><span class="p">,</span> <span class="o">\</span><span class="nv">%options</span><span class="p">)</span> <span class="ow">or</span> <span class="n">HELP_MESSAGE</span><span class="p">();</span>
+
+<span class="k">my</span> <span class="nv">$address</span> <span class="o">=</span> <span class="nv">$options</span><span class="p">{</span><span class="n">a</span><span class="p">}</span> <span class="o">||</span> <span class="s">&quot;amqp://0.0.0.0&quot;</span><span class="p">;</span>
+<span class="k">my</span> <span class="nv">$subject</span> <span class="o">=</span> <span class="nv">$options</span><span class="p">{</span><span class="n">s</span><span class="p">}</span> <span class="o">||</span> <span class="nb">localtime</span><span class="p">(</span><span class="nb">time</span><span class="p">);</span>
+<span class="k">my</span> <span class="nv">$content</span> <span class="o">=</span> <span class="nv">$options</span><span class="p">{</span><span class="n">C</span><span class="p">}</span> <span class="o">||</span> <span class="s">&quot;&quot;</span><span class="p">;</span>
+
+<span class="k">my</span> <span class="nv">$msg</span>  <span class="o">=</span> <span class="k">new</span> <span class="nn">qpid::proton::</span><span class="n">Message</span><span class="p">();</span>
+<span class="k">my</span> <span class="nv">$messenger</span> <span class="o">=</span> <span class="k">new</span> <span class="nn">qpid::proton::</span><span class="n">Messenger</span><span class="p">();</span>
+
+<span class="nv">$messenger</span><span class="o">-&gt;</span><span class="n">start</span><span class="p">();</span>
+
+<span class="k">my</span> <span class="nv">@messages</span> <span class="o">=</span> <span class="nv">@ARGV</span><span class="p">;</span>
+<span class="nv">@messages</span> <span class="o">=</span> <span class="p">(</span><span class="s">&quot;This is a test. &quot;</span> <span class="o">.</span> <span class="nb">localtime</span><span class="p">(</span><span class="nb">time</span><span class="p">))</span> <span class="k">unless</span> <span class="nv">$messages</span><span class="p">[</span><span class="mi">0</span><span class="p">];</span>
+
+<span class="k">foreach</span> <span class="p">(</span><span class="nv">@messages</span><span class="p">)</span>
+<span class="p">{</span>
+    <span class="nv">$msg</span><span class="o">-&gt;</span><span class="n">set_address</span><span class="p">(</span><span class="nv">$address</span><span class="p">);</span>
+    <span class="nv">$msg</span><span class="o">-&gt;</span><span class="n">set_subject</span><span class="p">(</span><span class="nv">$subject</span><span class="p">);</span>
+    <span class="nv">$msg</span><span class="o">-&gt;</span><span class="n">set_body</span><span class="p">(</span><span class="nv">$content</span><span class="p">);</span>
+    <span class="c1"># try a few different body types</span>
+    <span class="k">my</span> <span class="nv">$body_type</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="nb">rand</span><span class="p">(</span><span class="mi">6</span><span class="p">));</span>
+    <span class="nv">$msg</span><span class="o">-&gt;</span><span class="n">set_property</span><span class="p">(</span><span class="s">&quot;sent&quot;</span><span class="p">,</span> <span class="s">&quot;&quot;</span> <span class="o">.</span> <span class="nb">localtime</span><span class="p">(</span><span class="nb">time</span><span class="p">));</span>
+    <span class="nv">$msg</span><span class="o">-&gt;</span><span class="n">get_instructions</span><span class="o">-&gt;</span><span class="p">{</span><span class="s">&quot;fold&quot;</span><span class="p">}</span> <span class="o">=</span> <span class="s">&quot;yes&quot;</span><span class="p">;</span>
+    <span class="nv">$msg</span><span class="o">-&gt;</span><span class="n">get_instructions</span><span class="o">-&gt;</span><span class="p">{</span><span class="s">&quot;spindle&quot;</span><span class="p">}</span> <span class="o">=</span> <span class="s">&quot;no&quot;</span><span class="p">;</span>
+    <span class="nv">$msg</span><span class="o">-&gt;</span><span class="n">get_instructions</span><span class="o">-&gt;</span><span class="p">{</span><span class="s">&quot;mutilate&quot;</span><span class="p">}</span> <span class="o">=</span> <span class="s">&quot;no&quot;</span><span class="p">;</span>
+    <span class="nv">$msg</span><span class="o">-&gt;</span><span class="n">get_annotations</span><span class="o">-&gt;</span><span class="p">{</span><span class="s">&quot;version&quot;</span><span class="p">}</span> <span class="o">=</span> <span class="mf">1.0</span><span class="p">;</span>
+    <span class="nv">$msg</span><span class="o">-&gt;</span><span class="n">get_annotations</span><span class="o">-&gt;</span><span class="p">{</span><span class="s">&quot;pill&quot;</span><span class="p">}</span> <span class="o">=</span> <span class="s">&quot;RED&quot;</span><span class="p">;</span>
+
+  <span class="n">SWITCH:</span> <span class="p">{</span>
+      <span class="nv">$body_type</span> <span class="o">==</span> <span class="mi">0</span> <span class="o">&amp;&amp;</span> <span class="k">do</span> <span class="p">{</span> <span class="nv">$msg</span><span class="o">-&gt;</span><span class="n">set_body</span><span class="p">(</span><span class="s">&quot;It is now &quot;</span> <span class="o">.</span> <span class="nb">localtime</span><span class="p">(</span><span class="nb">time</span><span class="p">));};</span>
+      <span class="nv">$body_type</span> <span class="o">==</span> <span class="mi">1</span> <span class="o">&amp;&amp;</span> <span class="k">do</span> <span class="p">{</span> <span class="nv">$msg</span><span class="o">-&gt;</span><span class="n">set_body</span><span class="p">(</span><span class="nb">rand</span><span class="p">(</span><span class="mi">65536</span><span class="p">));</span> <span class="p">};</span>
+      <span class="nv">$body_type</span> <span class="o">==</span> <span class="mi">2</span> <span class="o">&amp;&amp;</span> <span class="k">do</span> <span class="p">{</span> <span class="nv">$msg</span><span class="o">-&gt;</span><span class="n">set_body</span><span class="p">(</span><span class="nb">int</span><span class="p">(</span><span class="nb">rand</span><span class="p">(</span><span class="mi">2</span><span class="p">)),</span> <span class="nn">qpid::proton::</span><span class="n">BOOL</span><span class="p">);</span> <span class="p">};</span>
+      <span class="nv">$body_type</span> <span class="o">==</span> <span class="mi">3</span> <span class="o">&amp;&amp;</span> <span class="k">do</span> <span class="p">{</span> <span class="nv">$msg</span><span class="o">-&gt;</span><span class="n">set_body</span><span class="p">({</span><span class="s">&quot;foo&quot;</span> <span class="o">=&gt;</span> <span class="s">&quot;bar&quot;</span><span class="p">});</span> <span class="p">};</span>
+      <span class="nv">$body_type</span> <span class="o">==</span> <span class="mi">4</span> <span class="o">&amp;&amp;</span> <span class="k">do</span> <span class="p">{</span> <span class="nv">$msg</span><span class="o">-&gt;</span><span class="n">set_body</span><span class="p">([</span><span class="mi">4</span><span class="p">,</span> <span class="p">[</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mf">3.1</span><span class="p">,</span> <span class="mf">3.4E-5</span><span class="p">],</span> <span class="mi">8</span><span class="p">,</span> <span class="mi">15</span><span class="p">,</span> <span class="mi">16</span><span class="p">,</span> <span class="mi">23</span><span class="p">,</span> <span class="mi">42</span><span class="p">]);</span> <span class="p">};</span>
+      <span class="nv">$body_type</span> <span class="o">==</span> <span class="mi">5</span> <span class="o">&amp;&amp;</span> <span class="k">do</span> <span class="p">{</span> <span class="nv">$msg</span><span class="o">-&gt;</span><span class="n">set_body</span><span class="p">(</span><span class="nb">int</span><span class="p">(</span><span class="nb">rand</span><span class="p">(</span><span class="mi">65535</span><span class="p">)));</span> <span class="p">}</span>
+    <span class="p">}</span>
+
+    <span class="nv">$messenger</span><span class="o">-&gt;</span><span class="n">put</span><span class="p">(</span><span class="nv">$msg</span><span class="p">);</span>
+    <span class="k">print</span> <span class="s">&quot;Sent: &quot;</span> <span class="o">.</span> <span class="nv">$msg</span><span class="o">-&gt;</span><span class="n">get_body</span> <span class="o">.</span> <span class="s">&quot; [CONTENT TYPE: &quot;</span> <span class="o">.</span> <span class="nv">$msg</span><span class="o">-&gt;</span><span class="n">get_body_type</span> <span class="o">.</span> <span class="s">&quot;]\n&quot;</span><span class="p">;</span>
+<span class="p">}</span>
+
+<span class="nv">$messenger</span><span class="o">-&gt;</span><span class="nb">send</span><span class="p">();</span>
+<span class="nv">$messenger</span><span class="o">-&gt;</span><span class="n">stop</span><span class="p">();</span>
+
+<span class="nb">die</span> <span class="vg">$@</span> <span class="k">if</span> <span class="p">(</span><span class="vg">$@</span><span class="p">);</span>
+</pre></div>
+
+<p><a href="send.pl">Download this file</a></p>
+
+
+          <hr/>
+
+          <ul id="-apache-navigation">
+            <li><a href="http://www.apache.org/">Apache</a></li>
+            <li><a href="http://www.apache.org/licenses/">License</a></li>
+            <li><a href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
+            <li><a href="http://www.apache.org/foundation/thanks.html">Thanks!</a></li>
+            <li><a href="/security.html">Security</a></li>
+            <li><a href="http://www.apache.org/"><img id="-apache-feather" width="48" height="14" src="" alt="Apache"/></a></li>
+          </ul>
+
+          <p id="-legal">
+            Apache Qpid, Messaging built on AMQP; Copyright &#169; 2015
+            The Apache Software Foundation; Licensed under
+            the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache
+            License, Version 2.0</a>; Apache Qpid, Qpid, Qpid Proton,
+            Proton, Apache, the Apache feather logo, and the Apache Qpid
+            project logo are trademarks of The Apache Software
+            Foundation; All other marks mentioned may be trademarks or
+            registered trademarks of their respective owners
+          </p>
+        </div>
+      </div>
+    </div>
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/qpid-site/blob/1859e58c/content/releases/qpid-proton-0.17.0/messenger/perl/examples/send_async.pl
----------------------------------------------------------------------
diff --git a/content/releases/qpid-proton-0.17.0/messenger/perl/examples/send_async.pl b/content/releases/qpid-proton-0.17.0/messenger/perl/examples/send_async.pl
new file mode 100755
index 0000000..2f9408a
--- /dev/null
+++ b/content/releases/qpid-proton-0.17.0/messenger/perl/examples/send_async.pl
@@ -0,0 +1,97 @@
+#
+# 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.
+#
+
+use Getopt::Std;
+use qpid_proton;
+use async;
+
+$Getopt::Std::STANDARD_HELP_VERSION = 1;
+
+sub VERSION_MESSAGE() {}
+
+sub HELP_MESSAGE() {
+    print "Usage: send_async.pl [OPTIONS] <msg_0> <msg_1> ...\n";
+    print "Options:\n";
+    print "\t-a     - the message address (def. amqp://0.0.0.0)\n";
+    print "\t-r     - the reply-to address: //<domain>[/<name>]\n";
+    print "\t msg_# - a text string to send\n";
+}
+
+my %optons = ();
+getopts("a:r:", \%options) or usage();
+
+our $address = $options{a} || "amqp://0.0.0.0";
+our $replyto = $options{r} || "~/#";
+
+package async::Sender;
+
+@ISA = (async::CallbackAdapter);
+
+sub on_start {
+    my ($self) = @_;
+    my $message = $self->{_message};
+    my $messenger = $self->{_messenger};
+    my $args = $_[1] || ("Hello world!");
+
+    print "Started\n";
+
+    $message->clear;
+    $message->set_address("amqp://0.0.0.0");
+    $message->set_reply_to($replyto) if (defined($replyto));
+
+    foreach $arg ($args) {
+        $message->set_body($arg);
+        if ($replyto) {
+            $message->set_reply_to($replyto);
+        }
+        $self->send($message, "on_status");
+    }
+
+    $messenger->receive() if (defined($replyto));
+}
+
+sub on_status {
+    my ($self) = @_;
+    my $messenger = $self->{_messenger};
+    my $status = $_[1] || "";
+
+    print "Status: ", $status, "\n";
+}
+
+sub on_receive {
+    my ($self) = @_;
+    my $message = $_[1];
+    my $text = $message->get_body || "[empty]";
+
+    print "Received: " . $text . "\n";
+
+    $self->stop();
+}
+
+sub on_stop {
+    print "Stopped\n";
+}
+
+
+package main;
+
+our $msgr = new qpid::proton::Messenger();
+our $app = async::Sender->new($msgr);
+
+$app->run;

http://git-wip-us.apache.org/repos/asf/qpid-site/blob/1859e58c/content/releases/qpid-proton-0.17.0/messenger/perl/examples/send_async.pl.html
----------------------------------------------------------------------
diff --git a/content/releases/qpid-proton-0.17.0/messenger/perl/examples/send_async.pl.html b/content/releases/qpid-proton-0.17.0/messenger/perl/examples/send_async.pl.html
new file mode 100644
index 0000000..fe312c8
--- /dev/null
+++ b/content/releases/qpid-proton-0.17.0/messenger/perl/examples/send_async.pl.html
@@ -0,0 +1,227 @@
+<!DOCTYPE html>
+<!--
+ -
+ - 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.
+ -
+-->
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
+  <head>
+    <title>send_async.pl - Apache Qpid&#8482;</title>
+    <meta http-equiv="X-UA-Compatible" content="IE=edge"/>
+    <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
+    <link rel="stylesheet" href="/site.css" type="text/css" async="async"/>
+    <link rel="stylesheet" href="/deferred.css" type="text/css" defer="defer"/>
+    <script type="text/javascript">var _deferredFunctions = [];</script>
+    <script type="text/javascript" src="/deferred.js" defer="defer"></script>
+    <!--[if lte IE 8]>
+      <link rel="stylesheet" href="/ie.css" type="text/css"/>
+      <script type="text/javascript" src="/html5shiv.js"></script>
+    <![endif]-->
+
+    <!-- Redirects for `go get` and godoc.org -->
+    <meta name="go-import"
+          content="qpid.apache.org git https://git-wip-us.apache.org/repos/asf/qpid-proton.git"/>
+    <meta name="go-source"
+          content="qpid.apache.org
+https://github.com/apache/qpid-proton/blob/go1/README.md
+https://github.com/apache/qpid-proton/tree/go1{/dir}
+https://github.com/apache/qpid-proton/blob/go1{/dir}/{file}#L{line}"/>
+  </head>
+  <body>
+    <div id="-content">
+      <div id="-top" class="panel">
+        <a id="-menu-link"><img width="16" height="16" src="" alt="Menu"/></a>
+
+        <a id="-search-link"><img width="22" height="16" src="" alt="Search"/></a>
+
+        <ul id="-global-navigation">
+          <li><a id="-logotype" href="/index.html">Apache Qpid<sup>&#8482;</sup></a></li>
+          <li><a href="/documentation.html">Documentation</a></li>
+          <li><a href="/download.html">Download</a></li>
+          <li><a href="/discussion.html">Discussion</a></li>
+        </ul>
+      </div>
+
+      <div id="-menu" class="panel" style="display: none;">
+        <div class="flex">
+          <section>
+            <h3>Project</h3>
+
+            <ul>
+              <li><a href="/overview.html">Overview</a></li>
+              <li><a href="/components/index.html">Components</a></li>
+              <li><a href="/releases/index.html">Releases</a></li>
+            </ul>
+          </section>
+
+          <section>
+            <h3>Messaging APIs</h3>
+
+            <ul>
+              <li><a href="/proton/index.html">Qpid Proton</a></li>
+              <li><a href="/components/jms/index.html">Qpid JMS</a></li>
+              <li><a href="/components/messaging-api/index.html">Qpid Messaging API</a></li>
+            </ul>
+          </section>
+
+          <section>
+            <h3>Servers and tools</h3>
+
+            <ul>
+              <li><a href="/components/java-broker/index.html">Broker for Java</a></li>
+              <li><a href="/components/cpp-broker/index.html">C++ broker</a></li>
+              <li><a href="/components/dispatch-router/index.html">Dispatch router</a></li>
+            </ul>
+          </section>
+
+          <section>
+            <h3>Resources</h3>
+
+            <ul>
+              <li><a href="/dashboard.html">Dashboard</a></li>
+              <li><a href="https://cwiki.apache.org/confluence/display/qpid/Index">Wiki</a></li>
+              <li><a href="/resources.html">More resources</a></li>
+            </ul>
+          </section>
+        </div>
+      </div>
+
+      <div id="-search" class="panel" style="display: none;">
+        <form action="http://www.google.com/search" method="get">
+          <input type="hidden" name="sitesearch" value="qpid.apache.org"/>
+          <input type="text" name="q" maxlength="255" autofocus="autofocus" tabindex="1"/>
+          <button type="submit">Search</button>
+          <a href="/search.html">More ways to search</a>
+        </form>
+      </div>
+
+      <div id="-middle" class="panel">
+        <ul id="-path-navigation"><li><a href="/index.html">Home</a></li><li><a href="/releases/index.html">Releases</a></li><li><a href="/releases/qpid-proton-0.17.0/index.html">Qpid Proton 0.17.0</a></li><li><a href="/releases/qpid-proton-0.17.0/messenger/perl/examples/index.html">Perl AMQP Messenger Examples</a></li><li>send_async.pl</li></ul>
+
+        <div id="-middle-content">
+          
+<h1>send_async.pl</h1>
+<div class="highlight"><pre><span class="k">use</span> <span class="nn">Getopt::</span><span class="n">Std</span><span class="p">;</span>
+<span class="k">use</span> <span class="n">qpid_proton</span><span class="p">;</span>
+<span class="k">use</span> <span class="n">async</span><span class="p">;</span>
+
+<span class="nv">$</span><span class="nn">Getopt::Std::</span><span class="nv">STANDARD_HELP_VERSION</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span>
+
+<span class="k">sub </span><span class="nf">VERSION_MESSAGE</span><span class="p">()</span> <span class="p">{}</span>
+
+<span class="k">sub </span><span class="nf">HELP_MESSAGE</span><span class="p">()</span> <span class="p">{</span>
+    <span class="k">print</span> <span class="s">&quot;Usage: send_async.pl [OPTIONS] &lt;msg_0&gt; &lt;msg_1&gt; ...\n&quot;</span><span class="p">;</span>
+    <span class="k">print</span> <span class="s">&quot;Options:\n&quot;</span><span class="p">;</span>
+    <span class="k">print</span> <span class="s">&quot;\t-a     - the message address (def. amqp://0.0.0.0)\n&quot;</span><span class="p">;</span>
+    <span class="k">print</span> <span class="s">&quot;\t-r     - the reply-to address: //&lt;domain&gt;[/&lt;name&gt;]\n&quot;</span><span class="p">;</span>
+    <span class="k">print</span> <span class="s">&quot;\t msg_# - a text string to send\n&quot;</span><span class="p">;</span>
+<span class="p">}</span>
+
+<span class="k">my</span> <span class="nv">%optons</span> <span class="o">=</span> <span class="p">();</span>
+<span class="n">getopts</span><span class="p">(</span><span class="s">&quot;a:r:&quot;</span><span class="p">,</span> <span class="o">\</span><span class="nv">%options</span><span class="p">)</span> <span class="ow">or</span> <span class="n">usage</span><span class="p">();</span>
+
+<span class="k">our</span> <span class="nv">$address</span> <span class="o">=</span> <span class="nv">$options</span><span class="p">{</span><span class="n">a</span><span class="p">}</span> <span class="o">||</span> <span class="s">&quot;amqp://0.0.0.0&quot;</span><span class="p">;</span>
+<span class="k">our</span> <span class="nv">$replyto</span> <span class="o">=</span> <span class="nv">$options</span><span class="p">{</span><span class="n">r</span><span class="p">}</span> <span class="o">||</span> <span class="s">&quot;~/#&quot;</span><span class="p">;</span>
+
+<span class="nb">package</span> <span class="nn">async::</span><span class="n">Sender</span><span class="p">;</span>
+
+<span class="nv">@ISA</span> <span class="o">=</span> <span class="p">(</span><span class="nn">async::</span><span class="n">CallbackAdapter</span><span class="p">);</span>
+
+<span class="k">sub </span><span class="nf">on_start</span> <span class="p">{</span>
+    <span class="k">my</span> <span class="p">(</span><span class="nv">$self</span><span class="p">)</span> <span class="o">=</span> <span class="nv">@_</span><span class="p">;</span>
+    <span class="k">my</span> <span class="nv">$message</span> <span class="o">=</span> <span class="nv">$self</span><span class="o">-&gt;</span><span class="p">{</span><span class="n">_message</span><span class="p">};</span>
+    <span class="k">my</span> <span class="nv">$messenger</span> <span class="o">=</span> <span class="nv">$self</span><span class="o">-&gt;</span><span class="p">{</span><span class="n">_messenger</span><span class="p">};</span>
+    <span class="k">my</span> <span class="nv">$args</span> <span class="o">=</span> <span class="nv">$_</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">||</span> <span class="p">(</span><span class="s">&quot;Hello world!&quot;</span><span class="p">);</span>
+
+    <span class="k">print</span> <span class="s">&quot;Started\n&quot;</span><span class="p">;</span>
+
+    <span class="nv">$message</span><span class="o">-&gt;</span><span class="n">clear</span><span class="p">;</span>
+    <span class="nv">$message</span><span class="o">-&gt;</span><span class="n">set_address</span><span class="p">(</span><span class="s">&quot;amqp://0.0.0.0&quot;</span><span class="p">);</span>
+    <span class="nv">$message</span><span class="o">-&gt;</span><span class="n">set_reply_to</span><span class="p">(</span><span class="nv">$replyto</span><span class="p">)</span> <span class="k">if</span> <span class="p">(</span><span class="nb">defined</span><span class="p">(</span><span class="nv">$replyto</span><span class="p">));</span>
+
+    <span class="k">foreach</span> <span class="nv">$arg</span> <span class="p">(</span><span class="nv">$args</span><span class="p">)</span> <span class="p">{</span>
+        <span class="nv">$message</span><span class="o">-&gt;</span><span class="n">set_body</span><span class="p">(</span><span class="nv">$arg</span><span class="p">);</span>
+        <span class="k">if</span> <span class="p">(</span><span class="nv">$replyto</span><span class="p">)</span> <span class="p">{</span>
+            <span class="nv">$message</span><span class="o">-&gt;</span><span class="n">set_reply_to</span><span class="p">(</span><span class="nv">$replyto</span><span class="p">);</span>
+        <span class="p">}</span>
+        <span class="nv">$self</span><span class="o">-&gt;</span><span class="nb">send</span><span class="p">(</span><span class="nv">$message</span><span class="p">,</span> <span class="s">&quot;on_status&quot;</span><span class="p">);</span>
+    <span class="p">}</span>
+
+    <span class="nv">$messenger</span><span class="o">-&gt;</span><span class="n">receive</span><span class="p">()</span> <span class="k">if</span> <span class="p">(</span><span class="nb">defined</span><span class="p">(</span><span class="nv">$replyto</span><span class="p">));</span>
+<span class="p">}</span>
+
+<span class="k">sub </span><span class="nf">on_status</span> <span class="p">{</span>
+    <span class="k">my</span> <span class="p">(</span><span class="nv">$self</span><span class="p">)</span> <span class="o">=</span> <span class="nv">@_</span><span class="p">;</span>
+    <span class="k">my</span> <span class="nv">$messenger</span> <span class="o">=</span> <span class="nv">$self</span><span class="o">-&gt;</span><span class="p">{</span><span class="n">_messenger</span><span class="p">};</span>
+    <span class="k">my</span> <span class="nv">$status</span> <span class="o">=</span> <span class="nv">$_</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">||</span> <span class="s">&quot;&quot;</span><span class="p">;</span>
+
+    <span class="k">print</span> <span class="s">&quot;Status: &quot;</span><span class="p">,</span> <span class="nv">$status</span><span class="p">,</span> <span class="s">&quot;\n&quot;</span><span class="p">;</span>
+<span class="p">}</span>
+
+<span class="k">sub </span><span class="nf">on_receive</span> <span class="p">{</span>
+    <span class="k">my</span> <span class="p">(</span><span class="nv">$self</span><span class="p">)</span> <span class="o">=</span> <span class="nv">@_</span><span class="p">;</span>
+    <span class="k">my</span> <span class="nv">$message</span> <span class="o">=</span> <span class="nv">$_</span><span class="p">[</span><span class="mi">1</span><span class="p">];</span>
+    <span class="k">my</span> <span class="nv">$text</span> <span class="o">=</span> <span class="nv">$message</span><span class="o">-&gt;</span><span class="n">get_body</span> <span class="o">||</span> <span class="s">&quot;[empty]&quot;</span><span class="p">;</span>
+
+    <span class="k">print</span> <span class="s">&quot;Received: &quot;</span> <span class="o">.</span> <span class="nv">$text</span> <span class="o">.</span> <span class="s">&quot;\n&quot;</span><span class="p">;</span>
+
+    <span class="nv">$self</span><span class="o">-&gt;</span><span class="n">stop</span><span class="p">();</span>
+<span class="p">}</span>
+
+<span class="k">sub </span><span class="nf">on_stop</span> <span class="p">{</span>
+    <span class="k">print</span> <span class="s">&quot;Stopped\n&quot;</span><span class="p">;</span>
+<span class="p">}</span>
+
+
+<span class="nb">package</span> <span class="n">main</span><span class="p">;</span>
+
+<span class="k">our</span> <span class="nv">$msgr</span> <span class="o">=</span> <span class="k">new</span> <span class="nn">qpid::proton::</span><span class="n">Messenger</span><span class="p">();</span>
+<span class="k">our</span> <span class="nv">$app</span> <span class="o">=</span> <span class="nn">async::</span><span class="n">Sender</span><span class="o">-&gt;</span><span class="k">new</span><span class="p">(</span><span class="nv">$msgr</span><span class="p">);</span>
+
+<span class="nv">$app</span><span class="o">-&gt;</span><span class="n">run</span><span class="p">;</span>
+</pre></div>
+
+<p><a href="send_async.pl">Download this file</a></p>
+
+
+          <hr/>
+
+          <ul id="-apache-navigation">
+            <li><a href="http://www.apache.org/">Apache</a></li>
+            <li><a href="http://www.apache.org/licenses/">License</a></li>
+            <li><a href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
+            <li><a href="http://www.apache.org/foundation/thanks.html">Thanks!</a></li>
+            <li><a href="/security.html">Security</a></li>
+            <li><a href="http://www.apache.org/"><img id="-apache-feather" width="48" height="14" src="" alt="Apache"/></a></li>
+          </ul>
+
+          <p id="-legal">
+            Apache Qpid, Messaging built on AMQP; Copyright &#169; 2015
+            The Apache Software Foundation; Licensed under
+            the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache
+            License, Version 2.0</a>; Apache Qpid, Qpid, Qpid Proton,
+            Proton, Apache, the Apache feather logo, and the Apache Qpid
+            project logo are trademarks of The Apache Software
+            Foundation; All other marks mentioned may be trademarks or
+            registered trademarks of their respective owners
+          </p>
+        </div>
+      </div>
+    </div>
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/qpid-site/blob/1859e58c/content/releases/qpid-proton-0.17.0/messenger/perl/examples/server.pl
----------------------------------------------------------------------
diff --git a/content/releases/qpid-proton-0.17.0/messenger/perl/examples/server.pl b/content/releases/qpid-proton-0.17.0/messenger/perl/examples/server.pl
new file mode 100755
index 0000000..c13d4d5
--- /dev/null
+++ b/content/releases/qpid-proton-0.17.0/messenger/perl/examples/server.pl
@@ -0,0 +1,123 @@
+#!/usr/bin/env perl
+#
+# 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.
+#
+
+use strict;
+use warnings;
+use Getopt::Long;
+use Pod::Usage;
+
+use qpid_proton;
+
+my $help = 0;
+my $man = 0;
+
+GetOptions(
+    man => \$man,
+    "help|?" => \$help
+    ) or pod2usage(2);
+
+pod2usage(1) if $help;
+pod2usage(-exitval => 0, -verbose => 2) if $man;
+
+pod2usage(2) unless scalar(@ARGV);
+
+# create a messenger for receiving and holding
+# incoming messages
+our $messenger = new qpid::proton::Messenger;
+$messenger->start;
+
+# subscribe the messenger to all addresses specified sources
+foreach (@ARGV) {
+    $messenger->subscribe($_);
+}
+
+sub dispatch {
+    my $request = $_[0];
+    my $reply   = $_[1];
+
+    if ($request->get_subject) {
+        $reply->set_subject("Re: " . $request->get_subject);
+    }
+
+    $reply->set_properties($request->get_properties);
+    print "Dispatched " . $request->get_subject . "\n";
+    my $properties = $request->get_properties;
+    foreach (keys %{$properties}) {
+        my $value = $properties->{%_};
+        print "\t$_: $value\n";
+    }
+}
+
+our $message = new qpid::proton::Message;
+our $reply   = new qpid::proton::Message;
+
+while(1) {
+    $messenger->receive(1) if $messenger->incoming < 10;
+
+    if ($messenger->incoming > 0) {
+        $messenger->get($message);
+
+        if ($message->get_reply_to) {
+            print $message->get_reply_to . "\n";
+            $reply->set_address($message->get_reply_to);
+            $reply->set_correlation_id($message->get_correlation_id);
+            $reply->set_body($message->get_body);
+        }
+        dispatch($message, $reply);
+        $messenger->put($reply);
+        $messenger->send;
+    }
+}
+
+$message->stop;
+
+__END__
+
+=head1 NAME
+
+server - Proton example server application for Perl.
+
+=head1 SYNOPSIS
+
+server.pl [OPTIONS] <addr1> ... <addrn>
+
+ Options:
+   --help - This help message.
+   --man  - Show the full documentation.
+
+=over 8
+
+=item B<--help>
+
+Prints a brief help message and exits.
+
+=item B<--man>
+
+Prints the man page and exits.
+
+=back
+
+=head2 ADDRESS
+
+The form an address takes is:
+
+[amqp://]<domain>[/name]
+
+=cut


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org