QPID-7432: Make python management tools work over AMQP 1.0

Two bugs in qpid_messaging found and fixed, required for qpidtoollibs to work:

- incorrect encoding of python Unicode strings, assumed default-encoding=UTF8.
- bug in Message.content decoding an empty list or map body.

With those fixes, the existing qpidtoollibs works with AMQP 1.0 if you use a
qpid_messaging.Connection instead of a qpid.messaging.Connection.

qpid_messaging implements the same API as qpid.messaging, but using SWIG over
the C++ codec which supports AMQP 1.0. An existing tool can be updated to prefer
qpid_messaging as follows:

    try:
        from qpid_messaging import Connection
    except:
        from qpid.messaging import Connection

Or if you don't care about qpid.messaging you can simply import qpid_messaging.

NOTE: qpid-route does NOT work on AMQP1.0, as it is based on an older client.
Raise a new issue if that also needs to be ported to qpidtoollibs for 1.0 support.
9 files changed
tree: 32173e26f74eb981c65b2f01c978194838192c90
  1. bindings/
  2. CMakeModules/
  3. docs/
  4. etc/
  5. examples/
  6. include/
  7. management/
  8. managementgen/
  9. packaging/
  10. rubygen/
  11. specs/
  12. src/
  13. .gitignore
  14. .travis.yml
  15. appveyor.yml
  16. BuildInstallSettings.cmake
  17. cmake_uninstall.cmake.in
  18. CMakeLists.txt
  19. CTestConfig.cmake
  20. CTestCustom.cmake
  21. INSTALL-WINDOWS.txt
  22. INSTALL.txt
  23. LICENSE.txt
  24. NOTICE.txt
  25. README.md
  26. VERSION.txt
README.md

Qpid C++

Introduction

Qpid C++ is a C++ implementation of the AMQP protocol described at http://amqp.org/.

For additional software or information on the Qpid project go to:

http://qpid.apache.org

For documentation, go to:

http://qpid.apache.org/documentation

Available documentation

  • INSTALL.txt - How to install Qpid C++
  • LICENSE.txt - The Apache license
  • NOTICE.txt - Corresponds to the section 4 d of the Apache License, Version 2.0
  • docs/ - Feature and design notes, other documentation

Quick start

In C++ distributions:

mkdir BLD      # The recommended way to use cmake is in a separate
               # build directory
cd BLD
cmake ..       # Generates code and makefiles
make test      # Runs tests
make install   # Installs the client and daemon

The INSTALL.txt notes contain more detailed information on compiling and installing this software.

examples/README.txt describes the C++ client API examples.