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:
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
git clone https://git-wip-us.apache.org/repos/asf/qpid-proton.git cd qpid-proton
mkdir build cd build
cmake .. make sudo make install
cmake -DCMAKE_INSTALL_PREFIX=/abs/path/to/local/install/dir .. make install cd ..
mvn -DskipTests install cd ..
git clone https://git-wip-us.apache.org/repos/asf/qpid-python.git cd qpid-python
sudo python setup.py install
python setup.py install --prefix=/abs/path/to/local/install/dir cd ..
git clone https://git-wip-us.apache.org/repos/asf/qpid-jms.git cd qpid-jms mvn -DskipTests install cd ..
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 ..
git clone https://git-wip-us.apache.org/repos/asf/qpid-interop-test.git cd qpid-interop-test mkdir build cd build
cmake .. make sudo make install
cmake -DPROTON_INSTALL_DIR=/abs/path/to/local/install/dir -DCMAKE_INSTALL_PREFIX=/abs/path/to/local/install/dir .. make install
The following are possible brokers to install or build for testing against:
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>
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&wireFormat.maxFrameSize=1048576000&wireFormat.allowNonSaslConnections=true"/>
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).
TODO: Helpful hints on obtaining/building TODO: Not yet tested
TODO: Helpful hints on obtaining/building
The following depend on which choice was made for installation above:
TODO: Still needs testing
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.