QUICKSTART GUIDE

All these instructions depend on choosing an install mechanism. Two options exist: A: Install to default locations using root privileges (TODO: I have not tested this option!) B: Install to custom local location which don't require privileges (and is safer for testing). In each case, you should select the SAME prefix or install path for each component. The text below assumes you have chosen one of these. Your choice should be consistent for all components.

These are the install steps:

  1. Install and build packages required for qpid-interop-test
    • Qpid Proton (includes C++ Proton API)
    • Qpid Python
    • Qpid JMS
    • Rhea
  2. Download and build qpid-interop-test
  3. Install or download / build AMQP brokers to test against
  4. Run the tests

0. Prerequisites

  • Necessary packages for building and running qpid-interop-test and its dependencies: TODO: Complete this list

  • C++: json-cpp-devel and packages required for qpid-proton

  • Python: Nothing special, should be all installed standard on Lunux

  • Maven: mvn

  • Rhea: node npm

1. Install and build packages required for qpid-interop-test

a. Get and build Qpid Proton

git clone https://git-wip-us.apache.org/repos/asf/qpid-proton.git
cd qpid-proton

Build and install C++ components:

mkdir build
cd build

INSTALL OPTION A: (TODO: I have not tested this option!)

cmake ..
make
sudo make install

INSTALL OPTION B:

cmake -DCMAKE_INSTALL_PREFIX=/abs/path/to/local/install/dir ..
make install
cd ..

Build and install Java components:

mvn -DskipTests install
cd ..

b. Get and install Qpid Python

git clone https://git-wip-us.apache.org/repos/asf/qpid-python.git
cd qpid-python

INSTALL OPTION A: (TODO: I have not tested this option!)

sudo python setup.py install

INSTALL OPTION B:

python setup.py install --prefix=/abs/path/to/local/install/dir
cd ..

c. Get and build Qpid JMS

git clone https://git-wip-us.apache.org/repos/asf/qpid-jms.git
cd qpid-jms

mvn -DskipTests install
cd ..

d. Get and install Rhea

git clone https://github.com/grs/rhea.git
cd rhea

npm install debug
* NOTE: This step requires root privileges, I can't find a way around it (as it needs to install the
  link into the folders where node is installed, and I can't get a local link to work):
sudo npm link
cd ..

2. Download and build qpid-interop-test

git clone https://git-wip-us.apache.org/repos/asf/qpid-interop-test.git
cd qpid-interop-test
mkdir build
cd build

INSTALL OPTION A: (TODO: I have not tested this option!)

cmake ..
make
sudo make install

INSTALL OPTION B:

cmake -DPROTON_INSTALL_DIR=/abs/path/to/local/install/dir -DCMAKE_INSTALL_PREFIX=/abs/path/to/local/install/dir ..
make install

3. Install or build AMQP brokers to test against

The following are possible brokers to install or build for testing against:

a. Artemis

TODO: Helpful hints on obtaining/building Make the following changes to the broker.xml file:

configuration.core.address-settings.address-setting for match="#":
  add the following:
    <auto-create-jms-queues>true</auto-create-jms-queues>

b. ActiveMQ

TODO: Helpful hints on obtaining/building Make the following changes to the activemq.xml config file:

broker.transportConnectors.transportConnector for name "amqp": add "wireFormat.allowNonSaslConnections=true"; ie:
<transportConnector name="amqp" uri="amqp://0.0.0.0:5672?maximumConnections=1000&amp;wireFormat.maxFrameSize=1048576000&amp;wireFormat.allowNonSaslConnections=true"/>

c. Qpid C++

TODO: Helpful hints on obtaining/building When starting the broker, configure or use the following parameters:

*  --load-module amqp : will enable the AMQP 1.0 protocol
*  --queue-pattern jms.queue.qpid-interop: will automatically create queues using this prefix as needed
*  --auth no : will disable authentication (which these tests do not use).

d. Qpid Java

TODO: Helpful hints on obtaining/building TODO: Not yet tested

e. Qpid Dispatch Router

TODO: Helpful hints on obtaining/building

  • Configure the router to listen on both IP4 and IP6 ports (ie one listener for 127.0.0.1 and one for ::1 respectively).
  • Set authenticatePeer to no and make sure saslMechanisms: ANONYMOUS is present (even though there is no authentication).

4. Run the tests

The following depend on which choice was made for installation above:

OPTION A (root install default locations):

TODO: Still needs testing

OPTION B (local install)

Set environment (use this in a script file)

INSTALL_PATH=/abs/path/to/local/install/dir
export QPID_INTEROP_TEST_HOME=/abs/path/to/local/qpid-interop-test
export PYTHONPATH=${INSTALL_PATH}/lib64/proton/bindings/python:${INSTALL_PATH}/lib/python2.7/site-packages:${QPID_INTEROP_TEST_HOME}/src/python
export LD_LIBRARY_PATH=${INSTALL_PATH}/lib64

Start the test broker

All of the tests are located in ${QPID_INTEROP_TEST_HOME}/src/python/qpid_interop_test, and can be directly called:

./src/python/qpid_interop_test/amqp_types_test.py 
./src/python/qpid_interop_test/jms_messages_test.py

etc.