Repository: qpid-interop-test Updated Branches: refs/heads/master 1c1ec1725 -> fc29349e0
NO_JIRA: Update instructions in QUICKSTART Project: http://git-wip-us.apache.org/repos/asf/qpid-interop-test/repo Commit: http://git-wip-us.apache.org/repos/asf/qpid-interop-test/commit/fc29349e Tree: http://git-wip-us.apache.org/repos/asf/qpid-interop-test/tree/fc29349e Diff: http://git-wip-us.apache.org/repos/asf/qpid-interop-test/diff/fc29349e Branch: refs/heads/master Commit: fc29349e053f5ef20e6e6cbd6fcf10bc81cfdb6a Parents: 1c1ec17 Author: Kim van der Riet <[email protected]> Authored: Fri Nov 18 13:06:17 2016 -0500 Committer: Kim van der Riet <[email protected]> Committed: Fri Nov 18 13:06:17 2016 -0500 ---------------------------------------------------------------------- QUICKSTART | 209 +++++++++++++++++++++++++++++++++++++++++--------------- 1 file changed, 153 insertions(+), 56 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/qpid-interop-test/blob/fc29349e/QUICKSTART ---------------------------------------------------------------------- diff --git a/QUICKSTART b/QUICKSTART index 7d820d5..84910c3 100644 --- a/QUICKSTART +++ b/QUICKSTART @@ -1,92 +1,189 @@ 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. Install and build qpid-interop-test +3. Install or build AMQP brokers to test against +4. Run the tests + + 0. Prerequisites ----------------- -* qpid-proton built and installed -* For JMS testing, qpid-jms built and installed +================ +* Necessary packages for building and running qpid-interop-test and its dependencies: +TODO: Complete this list +** C++: the usual suspects +** Python: Nothing special, should be all installed standard on Lunux +** Maven: mvn +** Rhea: node npm -1. Get the source ------------------ -git clone https://git-wip-us.apache.org/repos/asf/qpid-interop-test.git +1. Install and build packages required for qpid-interop-test +============================================================ -2. Get and build Qpid Proton +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 -# installing is optional, if you want to install, then the following line: 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 .. -3. Get and build Qpid JMS + +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 .. -3 Prepare the tests -------------------- -(ONLY IF NEEDED): Edit src/python/qpid_interop/types/simple_type_tests.py as -needed, particularly AmqpPrimitiveTypes.TYPE_MAP which controls the AMQP types -and test values for each type. +d. Get and install Rhea +----------------------- +git clone https://github.com/grs/rhea.git +cd rhea -4. Build qpid-interop-test components: --------------------------------------- +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. Install and build qpid-interop-test +====================================== +git clone https://git-wip-us.apache.org/repos/asf/qpid-interop-test.git cd qpid-interop-test -./java-clean.sh -./java-buuld.sh -cd shims/qpid-jms -./java-clean.sh -./java-buuld.sh -cd ../qpid-proton-cpp + +a. Build Java shims +------------------- +Java shims: +mvn -DskipTests install + +b. Build C++ shims +------------------ +cd shims/qpid-proton-cpp mkdir build cd build -ccmake .. -make clean + +# 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 .. +make + cd ../../.. -5. Run the tests (uninstalled) ------------------------------- -Note that installation is still to be completed, this section will change to -reflect installation details when complete. - -Select one of the following two options: - -a. qpid-proton installed (default install location): -Assuming proton's "make install" has been run, from top level qpid-interop-test directory: -export PYTHONPATH=/usr/local/lib64/proton/bindings/python:src/py/qpid-interop-test -export LD_LIBRARY_PATH=/usr/local/lib64 -export QPID_INTEROP_TEST_HOME=<abs path to top level qpid-interop-test directory> - -b. qpid-proton installed to local directory <abs-path-to-local-proton-install-dir>: -Assuming proton's "make install" has been run, from top level qpid-interop-test directory: -export PYTHONPATH=<abs-path-to-local-proton-install-dir>/lib64/proton/bindings/python:src/python/qpid-interop-test -export LD_LIBRARY_PATH=<abs-path-to-local-proton-install-dir>/lib64 -export QPID_INTEROP_TEST_HOME=<abs path to top level qpid-interop-test directory> - -c. qpid-proton built but not installed: -Assuming proton's "make" has been run from a "build" directory as described in the proton README (but not make install), from top level qpid-interop-test directory: -export PYTHONPATH=<abs path to top level qpid-proton directory>/proton-c/bindings/python:<abs path to top level qpid-proton directory>/build/proton-c/bindings/python:src/python/qpid-interop-test -export LD_LIBRARY_PATH=<abs path to top level qpid-proton directory>/build/proton-c -export QPID_INTEROP_TEST_HOME=<abs path to top level qpid-interop-test directory> - -Start a broker (Artemis, Active-MQ or Qpid). -NOTE: For qpidd, YOU MUST USE THE FOLLOWING PARAMETERS: +c. Prepare Rhea shims +--------------------- +cd shims/rhea-js/amqp_types_test +npm install node-uuid +npm link rhea +cd ../../../.. + + +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&wireFormat.maxFrameSize=1048576000&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). -From top level directory: -AMQP type tests: -./src/python/qpid-interop-test/types/simple_type_tests.py +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. -JMS message tests: -./src/python/qpid-interop-test/jms/jms_message_tests.py --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
