blob: 39ff34912ac2c0d6cfc261c7890738c2b00ccdb0 [file] [log] [blame]
<!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>QUICKSTART GUIDE - 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/broker-j/index.html">Broker-J</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-interop-test-0.1.0/index.html">Qpid Interop Test 0.1.0</a></li><li>QUICKSTART GUIDE</li></ul>
<div id="-middle-content">
<!--
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.
-->
<h1 id="quickstart-guide">QUICKSTART GUIDE</h1>
<p>You must build <em>and install</em> qpid-interop-test before you can run the tests.</p>
<p>By default, qpid-interop-test will install to /usr/local, but you can set any
non-priviedged directory as the install prefix using the CMAKE_INSTALL_PREFIX
environment variable, for example $HOME/install.</p>
<p>The following tools are needed to build qpid-interop-test:</p>
<ul>
<li>git</li>
<li>gcc-c++</li>
<li>Python 2.7.x</li>
<li>cmake</li>
<li>Java JDK</li>
<li>Maven</li>
<li>JSON cpp</li>
</ul>
<p>The following Qpid components must be installed <em>before</em> you build and install
qpid-interop-test:</p>
<ul>
<li>Qpid Proton (including C++ Proton API)</li>
<li>Qpid Python</li>
</ul>
<p>The following are not required, but if installed and present, will be tested:</p>
<ul>
<li>Rhea (a Javascript client, also requires npm and nodejs)</li>
<li>AMQP.Net Lite (requires mono)</li>
</ul>
<p>Pre-requisites can be installed using the standard system package manager (yum,
dnf, apt-get etc.) OR built from source and installed.</p>
<p>These are the install steps:</p>
<ol>
<li>Install prerequisites, from packages or source</li>
<li>Install or download / build AMQP brokers to test against (or set up networked brokers)</li>
<li>Build qpid-interop-test</li>
<li>Run the tests</li>
</ol>
<h2 id="1-install-prerequisites">1. Install prerequisites</h2>
<h3 id="11-rhel6">1.1 RHEL6</h3>
<p>Currently RHEL6 is not supported because it uses Python 2.6.x, and the test code uses
features of Python 2.7.x. This may be supported in a future release.</p>
<h3 id="12-rhel7">1.2 RHEL7</h3>
<p>From a clean install:</p>
<p><code>
yum install cmake maven java-1.8.0-openjdk-devel perl-XML-XPath
</code></p>
<p>Some packages will need to be downloaded from <a href="https://fedoraproject.org/wiki/EPEL">EPEL</a>.
To set up the EPEL repo in yum:</p>
<p><code>
wget https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
rpm -ivh epel-release-latest-6.noarch.rpm
</code></p>
<p>then install the following packages:</p>
<p><code>
yum install jsoncpp-devel nodejs-rhea qpid-proton-cpp-devel python-qpid-proton
</code></p>
<h3 id="13-fedora-26">1.3 Fedora 26</h3>
<p>All packages are available directly from the Fedora repositories:</p>
<p><code>
dnf install gcc-c++ cmake maven java-1.8.0-openjdk-devel perl-XML-XPath jsoncpp-devel nodejs-rhea qpid-proton-cpp-devel python-qpid-proton
</code></p>
<h2 id="2-obtaining-a-broker">2. Obtaining a broker</h2>
<p>Qpid-interop-test requires a running broker to be available. This
may be on localhost as a local install or build, or on another machine, in which case its
IP addresss must be known. Some local broker install options are:</p>
<h3 id="21-activemq-5">2.1 ActiveMQ 5</h3>
<p>Download from <a href="http://activemq.apache.org/download.html">Apache</a>.</p>
<p>Make the following changes to the <code>activemq.xml</code> config file: For XML element
<code>broker.transportConnectors.transportConnector@name="amqp"</code> add the attribute
<code>wireFormat.allowNonSaslConnections=true</code>. ie:</p>
<p><code>
&lt;transportConnector name="amqp" uri="amqp://0.0.0.0:5672?maximumConnections=1000&amp;amp;wireFormat.maxFrameSize=1048576000&amp;amp;wireFormat.allowNonSaslConnections=true"/&gt;
</code></p>
<h3 id="22-artemis">2.2 Artemis</h3>
<p>Download from <a href="https://activemq.apache.org/artemis/download.html">Apache</a>.</p>
<h3 id="23-qpid-cpp-broker">2.3 Qpid cpp broker</h3>
<pre><code>yum install qpid-cpp-server
</code></pre>
<p>and set the configuration file in /etc/qpid/qpidd.conf as follows:</p>
<p><code>
auth=no
queue-patterns=jms.queue.qpid-interop
</code></p>
<h3 id="24-qpid-dispatch-router">2.4 Qpid Dispatch Router</h3>
<pre><code>yum install qpid-dispatch-router
</code></pre>
<p>and add the following to the config file in /etc/qpid-dispatch/qdrouterd.conf:</p>
<p>````
listener {
host: ::1
port: amqp
authenticatePeer: no
saslMechanisms: ANONYMOUS
}</p>
<p>````</p>
<h2 id="3-install-qpid-interop-test">3. Install qpid-interop-test</h2>
<p>Qpid-interop-test may be installed locally (preferred for local builds) or to the system
(which requires root privileges). For a local install, use the <code>-DCMAKE_INSTALL_PREFIX</code>
option to the <code>cmake</code> command. If it is omitted, then qpid-interop-test will be installed
into the default system directories. The source may be unpacked, or (if you need to use the
latest and greatest), cloned from git:</p>
<p><code>
git clone https://git-wip-us.apache.org/repos/asf/qpid-interop-test.git
</code></p>
<p>Assuming the source tree is located in directory <code>qpid-interop-test</code>:</p>
<p><code>
cd qpid-interop-test
mkdir build
cd build
</code>
For a local install:</p>
<p><code>
cmake -DCMAKE_INSTALL_PREFIX=&lt;abs-path-to-local-install-dir&gt; ..
make install
</code></p>
<p>For a system install, root privileges are required:</p>
<p>````
cmake ..
make
sudo make install</p>
<p>````</p>
<h2 id="4-run-the-tests">4. Run the tests</h2>
<h3 id="41-set-the-environment">4.1 Set the environment</h3>
<p>The config.sh script is in the qpid-interop-test build directory: </p>
<p><code>
source build/config.sh
</code></p>
<h3 id="42-start-the-test-broker">4.2 Start the test broker</h3>
<p>If the broker is at a remote location rather than localhost, the IP address must be known. In tests using
the Qpid Dispatch Router, then the entire broker network must be running before the tests are run. The IP
addresses of the sender (the broker to which messages are being sent) and receiver (the broker from which
messages will be received) must be known.</p>
<h3 id="43-run-chosen-tests">4.3 Run chosen tests</h3>
<p>The available tests are:</p>
<table>
<thead>
<tr>
<th>Module</th>
<th>Description</th>
<th>Clients</th>
</tr>
</thead>
<tbody>
<tr>
<td>amqp_large_content_test</td>
<td>Tests implementation of large messages up to 10MB</td>
<td>C++ Python AMQP.NetLite</td>
</tr>
<tr>
<td>amqp_types_test</td>
<td>Tests the implementation of AMQP 1.0 types</td>
<td>C++ Python Rhea AMQP.NetLite</td>
</tr>
<tr>
<td>jms_hdrs_props_test</td>
<td>Tests JMS headers and properties</td>
<td>C++ JMS Python</td>
</tr>
<tr>
<td>jms_messages_test</td>
<td>Tests all JMS message types (except ObjectMessage)</td>
<td>C++ JMS Python</td>
</tr>
</tbody>
</table>
<p>The preferred method to run the tests is using the Python module option as follows:</p>
<p><code>
python -m qpid_interop_test.amqp_types_test
python -m qpid_interop_test.jms_messages_test
...
</code></p>
<p>If the broker is remote, use the following to point to the broker(s):</p>
<p><code>
python -m qpid_interop_test.amqp_types_test --sender &lt;broker-ip-addr&gt; --receiver &lt;broker-ip-addr&gt;
python -m qpid_interop_test.jms_messages_test --sender &lt;broker-ip-addr&gt; --receiver &lt;broker-ip-addr&gt;
...
</code></p>
<p>In tests using the Qpid dispatch router, a multi-node configuration may be set up such that messages
are sent to a different broker to that from which they will be received. For example, to send to
broker A and receive from broker B:</p>
<p><code>
python -m qpid_interop_test.amqp_types_test --sender &lt;broker-ip-addr-A&gt; --receiver &lt;broker-ip-addr-B&gt;
python -m qpid_interop_test.jms_messages_test --sender &lt;broker-ip-addr-A&gt; --receiver &lt;broker-ip-addr-B&gt;
...
</code></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>