<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
    xmlns:content="http://purl.org/rss/1.0/modules/content/"
    xmlns:wfw="http://wellformedweb.org/CommentAPI/"
    xmlns:dc="http://purl.org/dc/elements/1.1/"
    xmlns:atom="http://www.w3.org/2005/Atom"
    xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
>
    <channel>
        <title>Silas Sewell - Qpid</title>
        <atom:link href="http://www.silassewell.com/blog/tag/qpid/rss2.xml" rel="self" type="application/rss+xml" />
        <link>http://www.silassewell.com/blog/tag/qpid</link>
        <description>Infrastructure Development</description>
        <lastBuildDate>Sat, 21 Aug 2010 00:00:00 GMT</lastBuildDate>
        <generator>http://www.silassewell.com/</generator>
        <language>en</language>
        <sy:updatePeriod>hourly</sy:updatePeriod>
        <sy:updateFrequency>1</sy:updateFrequency>

        <item>
            <title>Qpid on CentOS 5</title>
            <link>http://www.silassewell.com/blog/2009/06/16/qpid-on-centos-5/</link>
            <pubDate>Tue, 16 Jun 2009 00:00:00 GMT</pubDate>
            <dc:creator>silas</dc:creator>
            <category><![CDATA[CentOS]]></category><category><![CDATA[Fedora]]></category><category><![CDATA[Qpid]]></category><category><![CDATA[RPM]]></category><category><![CDATA[Systems Administration]]></category>
            <guid isPermaLink="true">http://www.silassewell.com/blog/2009/06/16/qpid-on-centos-5/</guid>
            <description><![CDATA[<h3>Build using Fedora</h3>

<ol>
<li><p>Install the RPM development tools</p>

<pre><code class="prettyprint">sudo yum install rpmdevtools mock
</code></pre></li>
<li><p>Add yourself to the <code class="prettyprint">mock</code> group</p>

<pre><code class="prettyprint">sudo /usr/sbin/usermod --groups mock --append $USER
</code></pre></li>
<li><p>Setup build directories</p>

<pre><code class="prettyprint">rpmdev-setuptree
</code></pre></li>
<li><p>Install spec and source files (or get latest <a href="ftp://ftp.redhat.com/pub/redhat/linux/enterprise/5Server/en/RHEMRG/SRPMS/" title="RHEMRG SRPMS">here</a>)</p>

<pre><code class="prettyprint">rpm -i ftp://ftp.redhat.com/pub/redhat/linux/enterprise/5Server/en/RHEMRG/SRPMS/qpidc-0.5.752581-17.el5.src.rpm
rpm -i ftp://ftp.redhat.com/pub/redhat/linux/enterprise/5Server/en/RHEMRG/SRPMS/amqp-1.0.750054-1.el5.src.rpm
rpm -i ftp://ftp.redhat.com/pub/redhat/linux/enterprise/5Server/en/RHEMRG/SRPMS/python-qpid-0.5.752581-3.el5.src.rpm
</code></pre></li>
<li><p>Build qpidc</p>

<pre><code class="prettyprint">rpmbuild -bs --nodeps ~/rpmbuild/SRPM/qpidc.spec
mock -vr epel-5-x86_64 ~/rpmbuild/SRPMS/qpidc-*.src.rpm
scp /var/lib/mock/epel-5-x86_64/result/*.rpm CENTOS_HOST:SOME_PATH
</code></pre></li>
<li><p>Build amqp</p>

<pre><code class="prettyprint">rpmbuild -bs --nodeps ~/rpmbuild/SPECS/amqp.spec
mock -vr epel-5-x86_64 ~/rpmbuild/SRPMS/amqp-*.src.rpm
scp /var/lib/mock/epel-5-x86_64/result/*.rpm CENTOS_HOST:SOME_PATH
</code></pre></li>
<li><p>Build python-qpid</p>

<pre><code class="prettyprint">rpmbuild -bs --nodeps ~/rpmbuild/SPECS/python-qpid.spec
mock -vr epel-5-x86_64 ~/rpmbuild/SRPMS/python-qpid-*.src.rpm
scp /var/lib/mock/epel-5-x86_64/result/*.rpm CENTOS_HOST:SOME_PATH
</code></pre></li>
</ol>

<h3>Install on CentOS</h3>

<ol>
<li><p>Become root</p>

<pre><code class="prettyprint">sudo su -
</code></pre></li>
<li><p>Install Qpid server and Python client packages</p>

<pre><code class="prettyprint">cd SOME_PATH
yum localinstall --nogpgcheck qpidc-*.el5.x86_64.rpm qpidd-*.el5.x86_64.rpm amqp-*.el5.noarch.rpm python-qpid-*.el5.noarch.rpm
</code></pre></li>
<li><p>Disable auth for testing</p>

<pre><code class="prettyprint">echo 'auth=no' &gt;&gt; /etc/qpidd.conf
</code></pre></li>
<li><p>Start qpidd</p>

<pre><code class="prettyprint">service qpidd start
</code></pre></li>
<li><p>Test using these <a href="http://www.silassewell.com/blog/2009/03/29/getting-started-with-amqp-qpid-python-fedora/" title="Getting Started with AMQP with Python">instructions</a>.</p></li>
</ol>

<p>NOTE: I realize you can build the SRPMs without installing them.</p>]]></description>
        </item>

        <item>
            <title>Getting Started with AMQP, Qpid, Python &amp; Fedora</title>
            <link>http://www.silassewell.com/blog/2009/03/29/getting-started-with-amqp-qpid-python-fedora/</link>
            <pubDate>Sun, 29 Mar 2009 00:00:00 GMT</pubDate>
            <dc:creator>silas</dc:creator>
            <category><![CDATA[AMQP]]></category><category><![CDATA[Enterprise Messaging]]></category><category><![CDATA[Fedora]]></category><category><![CDATA[Programming]]></category><category><![CDATA[python-qpid]]></category><category><![CDATA[Qpid]]></category>
            <guid isPermaLink="true">http://www.silassewell.com/blog/2009/03/29/getting-started-with-amqp-qpid-python-fedora/</guid>
            <description><![CDATA[<p>The <a href="http://en.wikipedia.org/wiki/AMQP" title="Advanced Message Queuing Protocol">Advanced Message Queuing Protocol</a> (AMQP) is the first open
standard for Enterprise Messaging and has been adopted by Cisco,
[Microsoft][microsoft], Novel, <a href="http://www.redhat.com/solutions/specifications/amqp/" title="Red Hat">Red Hat</a> and <a href="http://jira.amqp.org/confluence/display/AMQP/AMQP+Working+Group" title="others">others</a>.</p>

<p>One implementation of AMQP currently packaged by <a href="http://www.redhat.com/mrg/messaging/" title="Red Hat">Red Hat</a> and Fedora is
Qpid. <a href="http://qpid.apache.org/" title="Qpid">Qpid</a> is a collection of brokers (C++, Java) and clients (C++,
Java, Python, Ruby) which <a href="http://qpid.apache.org/amqp-compatibility.html">aims to be 100% AMQP Compliant</a>.</p>

<p>Below is a step-by-step tutorial on getting started with Qpid and the Python
client in Fedora.</p>

<ol>
<li><p>Install the Qpid broker and Python client</p>

<pre><code class="prettyprint">yum install qpidd python-qpid
</code></pre></li>
<li><p>Start the broker</p>

<pre><code class="prettyprint">service qpidd start
</code></pre></li>
<li><p>Create a message producer (<code class="prettyprint">producer.py</code>)</p>

<pre><code class="prettyprint">from qpid.connection import Connection
from qpid.datatypes import Message, uuid4
from qpid.util import connect

# Create connection and session
socket = connect('localhost', 5672)
connection = Connection(sock=socket, username='guest', password='guest')
connection.start()
session = connection.session(str(uuid4()))

# Setup queue
session.queue_declare(queue='message_queue')
session.exchange_bind(exchange='amq.direct', queue='message_queue', binding_key='routing_key')

# Setup routing properties
properties = session.delivery_properties(routing_key='routing_key')

# Send messages
session.message_transfer(destination='amq.direct', message=Message(properties, 'Message one'))
session.message_transfer(destination='amq.direct', message=Message(properties, 'Message two'))
session.message_transfer(destination='amq.direct', message=Message(properties, 'Done'))

# Close session
session.close(timeout=10)
</code></pre></li>
<li><p>Create a message consumer (<code class="prettyprint">consumer.py</code>)</p>

<pre><code class="prettyprint">from qpid.connection import Connection
from qpid.datatypes import RangedSet, uuid4
from qpid.util import connect

# Create connection and session
socket = connect('localhost', 5672)
connection = Connection(sock=socket, username='guest', password='guest')
connection.start()
session = connection.session(str(uuid4()))

# Define local queue
local_queue_name = 'my_local_queue'

# Create local queue
queue = session.incoming(local_queue_name)

# Route messages from message_queue to my_local_queue
session.message_subscribe(queue='message_queue', destination=local_queue_name)
queue.start()

content = ''

while content != 'Done':
    # Get message from the local queue
    message = queue.get(timeout=10)
    # Get body of the message
    content = message.body
    # Accept message (removes it from the queue)
    session.message_accept(RangedSet(message.id))
    # Print message content
    print content

# Close session
session.close(timeout=10)
</code></pre></li>
<li><p>First run the producer and then the consumer</p>

<pre><code class="prettyprint">Message one
Message two
Done
</code></pre></li>
</ol>

<p>Source: <a href="https://svn.apache.org/repos/asf/qpid/trunk/qpid/python/examples/direct/" title="Qpid direct example">Qpid direct example</a></p>]]></description>
        </item>

    </channel>
</rss>