blob: bab2081aa5ac6ba14ce7a4b5972379a0b5b8f179 [file] [log] [blame]
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
a. Qpid Proton (includes C++ Proton API)
b. Qpid Python
c. Qpid JMS
d. 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.