summaryrefslogtreecommitdiff
path: root/qpid/cpp/src/tests/CMakeLists.txt
Commit message (Collapse)AuthorAgeFilesLines
* QPID-7207: remove cpp and python subdirs from svn trunk, they have migrated ↵Robert Gemmell2016-07-051-323/+0
| | | | | | to their own git repositories git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1751566 13f79535-47bb-0310-9956-ffa450edef68
* QPID-7306: Conditional compile mismatch in broker and common libs.Alan Conway2016-06-221-2/+0
| | | | | | | | | | | | | | | | | | | Removed _IN_QPID_BROKER compile definition: Inconsistently set for libqpidcommon (compiled .cpp files) and libqpidbroker (uses .h) files - The broker has a binary incompatible notion of what is in the library. It sort-of works by accident: - shared_ptr<T> only contains a T*, the mismatch is effectively doing reinterpret_cast<T*> - plain T* works for op->, but doesn't guarantee no concurrent deletes. - we create and destroy shared_ptr in libraries with _IN_QPID_BROKER set so we get cleanup, and no cores if we're lucky but there is limited protection from races. Was only used by management: - I think exposing non-shared ptr GetObject was a feature that never materialized, - if not we need a separate function or class for non-shared-ptr users. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1749781 13f79535-47bb-0310-9956-ffa450edef68
* QPID-7281: Various fixes for the tests on windowsJustin Ross2016-06-011-9/+4
| | | | | | | | | | - Adjust environment script for windows paths - Pythonify the test runner for the windows store tests - Run the HA tests only on posix systems - Remove a finicky assertion in brokertest.py git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1746375 13f79535-47bb-0310-9956-ffa450edef68
* QPID-7207: Create independent cpp and python subtrees, with content from ↵Justin Ross2016-04-211-196/+155
| | | | | | tools and extras git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1740289 13f79535-47bb-0310-9956-ffa450edef68
* QPID-7148: Update CMake files to use better more modern style and featuresAndrew Stitcher2016-03-161-48/+17
| | | | | | | - This is already the way we do this stuff in Qpid Proton - Upgrade minimum version of CMake to 2.8.7 git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1735324 13f79535-47bb-0310-9956-ffa450edef68
* Align run_test shell and Powershell versions. Changes the option syntax from ↵Stephen D. Huston2015-03-171-12/+12
| | | | | | two-hyphen to one. Fixes QPID-6399. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1667349 13f79535-47bb-0310-9956-ffa450edef68
* QPID-4710: [AMQP 1.0] Support for transactions in qpid::messaging C++ client.Alan Conway2015-02-271-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Implements the "transactional retire and settle immediately" option for transactions as specified in AMQP 1.0 in the qpid::messaging C++ client. NOTE: Transactions over AMQP 1.0 require proton 0.9 or greater. With older versions, attempting a transactions over AMQP 1.0 will raise a link-detached exception "Node not found: tx-transaction" 1. Added descriptor list to Variant with support in Encoder and PnData. Required to support transactions, need to be able to create described lists. Variant changes are source and binary compatible. A Variant now has a Variant::List of descripors which can be numeric or string. Nested descriptors are implemented by putting multiple descriptors in the list. Other minor changes: - Variant refactor: don't delete impl on every assignment. - Add Variant constructors that take a string encoding. (new constructors, not defaulted arguments, so the change is binary and source compatible.) - Growable buffer support for Encoder. - Printing described Variant prints descriptors in form @descriptor value 2. Added transaction support to AMQP 1.0 client code Added messaging/amqp/Transaction.h,cpp: transaction logic - communicate with coordinator, send declare/dischange messages. - add tx state info to transfers and acknowledgements. - Sync session after discharge. - A transactional session automatically acks any message retrieved by fetch/get to bring them into the transaction. This is consistent the 0-10 client. Minor fixes to existing client code: - Fix use of pn_drain API in C++ client to work with C++ and Java brokers. - Make amqp::Exception derive from qpid::Exception 3. Fixes to existing broker code: - Incoming.cpp fix: start async completion before processing message. - Delay accept of dischage message till commit is complete. - newSession - handle failover during session creation. 4. Added tests interop_tests.py: transaction tests that can run against an external broker, see comments. ha_tests.py: Enable transaction tests over AMQP 1.0. Minor test fixes: - brokertest.py don't set default logging if QPID_LOG env vars set. - brokertest.py Pass kwargs to broker() create function. - qpid-receive: capacity should never be larger than message count. - Accept user:pass as well as user/pass in Url. - brokertest.py: Always do a ready() check on all brokers. If proton < 0.9 is used, transaction tests will be skipped or will downgrade to the amqp0-10 protocol with a printed warning. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1662743 13f79535-47bb-0310-9956-ffa450edef68
* QPID-5538: Implement AMQP 1.0 connection idle-timeout.Ken Giusti2015-02-021-0/+1
| | | | | | Original patch by Gordon Sim. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1656505 13f79535-47bb-0310-9956-ffa450edef68
* QPID-5887: allow qpid-txtest2 to be run by make testGordon Sim2014-07-161-0/+1
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1610959 13f79535-47bb-0310-9956-ffa450edef68
* QPID-4947: C++ Broker ACL restricts hosts from which users may connect.Charles E. Rolke2014-07-151-0/+1
| | | | | | | | | | | | | | | | | This commit adds: * Acl rule file "create connection host=hostname" support for allowing and denying connections. * AclHost class to represent a host specified in the rule file. * Global and user-specific lists of AclHost rules. Created by AclReader and consumed by AclConnectionCounter. * Address range checks and other giblets in SocketAddress: ** asString support to hide IPv6 decoration and service (port) details. ** binary comparison of network addresses. ** new firstAddress function to complement existing nextAddress. Socket addrinfo for AclHost objects is computed once only for lifetime of Acl file load. ** Posix and Windows implementations are identical. * New unit test for address comparisons. Testing a live broker is great but forcing connections to be from some arbitrary IPv4 or IPv6 address is hard. So there's a unit test for that. Further discussion about this feature is in https://reviews.apache.org/r/23322 git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1610874 13f79535-47bb-0310-9956-ffa450edef68
* QPID-5890: Refactoring AclModule.hCharles E. Rolke2014-07-111-0/+1
| | | | | | | | | | | | | * make single instances of strings associated with enums * make more compact search functions * make string definitions const * return 'const string&' instead of copies of temporaries * add self test as string defs sanity check * export AclHelper to satisfy tests (!!) git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1609828 13f79535-47bb-0310-9956-ffa450edef68
* QPID-5887: abort transactional session on failover; added equivalent of ↵Gordon Sim2014-07-111-1/+5
| | | | | | txtest using messaging API git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1609748 13f79535-47bb-0310-9956-ffa450edef68
* QPID-5807: Remove boost::program_options as a header file dependency of ↵Andrew Stitcher2014-06-111-23/+23
| | | | | | | | | qpid/Options.h - The intent here is to remove the necessity for things using qpid::Options to need to link boost::program_options directly. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1602021 13f79535-47bb-0310-9956-ffa450edef68
* Revert "NO-JIRA: CMakelists.txt check that ../python exists before building it."Alan Conway2014-03-051-6/+16
| | | | | | | | | | | | | | | | This reverts most of commit r1574138. The changes were intended to simplify handling of setup.py by letting it detect when things were out of date, but even when there are no changes setup.py does touch some files: changing mode of /home/andrew/Work/qpid/bld-ninja/src/tests/python/commands/qpid-python-trunning install_egg_info removing /home/andrew/Work/qpid/bld-ninja/src/tests/python/qpid_python-0.27-py2.7.egg-info writing /home/andrew/Work/qpid/bld-ninja/src/tests/python/qpid_python-0.27-py2.7.egg-info This commit restores the previous logic that avoids running setup.py if not needed but retains the if (EXISTS ${python_src}) check to avoid all this logic if there is no python source directory available. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1574656 13f79535-47bb-0310-9956-ffa450edef68
* NO-JIRA: CMakelists.txt check that ../python exists before building it.Alan Conway2014-03-041-20/+11
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1574138 13f79535-47bb-0310-9956-ffa450edef68
* QPID-5568: HA C++ qpid::messaging AMQP 1.0 client failover logging is not clearAlan Conway2014-02-201-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The qpid::messaging AMQP 1.0 protocol logging did not give clear information about reconnection during failover. This patch simplifies the reconnect logic by collapsing all known addresses from broker URL and reconnect URLs into a single URL with no duplicates. It rationalizes the info and notice logging as follows: # Initial connection with multiple addresses, info logs show the # full URL, each attempt to connect and the finally connected address. [Messaging] info Starting connection to amqp:tcp:20.0.10.33:5672,tcp:20.0.10.34:5672,tcp:20.0.10.35:5672 [Messaging] info Connecting to tcp:20.0.10.33:5672 [Messaging] info Failed to connect to tcp:20.0.10.33:5672 [Messaging] info Connecting to tcp:20.0.10.34:5672 [Messaging] info Failed to connect to tcp:20.0.10.34:5672 [Messaging] info Connecting to tcp:20.0.10.35:5672 [Messaging] info Connected to tcp:20.0.10.35:5672 # Re-connection due to a failure. notice logs for the start of reconnection (with full URL) # and eventual sucess (with individual address). info logs for individual connection attempts. [Messaging] notice Auto-reconnecting to amqp:tcp:20.0.10.33:5672,tcp:20.0.10.34:5672,tcp:20.0.10.35:5672 [Messaging] info Connecting to tcp:20.0.10.33:5672 [Messaging] info Failed to connect to tcp:20.0.10.33:5672 .... [Messaging] info Connected to tcp:20.0.10.33:5672 [Messaging] notice Auto-reconnected to amqp:tcp:20.0.10.33:5672 The idea here is that there are no logs by default (info is not on by default) for "normal" behavior, but failover does get a (short) notice log by default. By turning on info logs you can follow the detailed blow-by-blow of failover without getting drowned in the detail of debug logs. Note that final failure to connect is signalled to the application via an exception. There was not previously any log message for that and I didn't add one. Additional changes: updated qpid-ping test client to use the messaging library. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1570231 13f79535-47bb-0310-9956-ffa450edef68
* QPID-5513: HA backup fails if number of replicated queues exceeds number of ↵Alan Conway2014-01-271-1/+1
| | | | | | | | channels. Fix link error (incorrect libraries listed) in ha_test_max_queues on windows. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1561754 13f79535-47bb-0310-9956-ffa450edef68
* QPID-5513: HA backup fails if number of replicated queues exceeds number of ↵Alan Conway2014-01-241-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | channels. The problem: - create cluster of 2 brokers. - create more than 32768 queues (exceeds number of channels on a connection) - backup exits with critical error but - client creating queues receives no error, primary continues with unreplicated queue. The solution: Primary raises an error to the client if it attempts to create queues in excess of the channel limit. The queue is not created on primary or backup, primary and backup continue as normal. In addition: raised the channel limit from 32k to 64k. There was no reason for the smaller limit. See discussion: http://qpid.2158936.n2.nabble.com/CHANNEL-MAX-and-CHANNEL-HIGH-BIT-question-tp7603121p7603138.html New unit test to reproduce the issue, must create > 64k queues. Other minor improvements: - brokertest framework doesn't override --log options in the arguments. - increased default heartbeat in test framework for tests that have busy brokers. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1561206 13f79535-47bb-0310-9956-ffa450edef68
* NO-JIRA: Make the python test install depend on the python files.Andrew Stitcher2014-01-241-2/+5
| | | | | | | | - So just after the previous checkin Gordon changed the python code. This made me think that the python install needs to have the dependencies! git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1561130 13f79535-47bb-0310-9956-ffa450edef68
* NO-JIRA: Changes to python related build processes:Andrew Stitcher2014-01-231-4/+16
| | | | | | | | | | - Use an intermediate build area in the build area not in the source. -- With this change the source tree is now completely untouched during a build. - Fiddle with CMake so that the python install into the build area doesn't happen on every build. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1560851 13f79535-47bb-0310-9956-ffa450edef68
* QPID-5489: Uuid code improvementsAndrew Stitcher2014-01-171-2/+2
| | | | | | | | | | | | | - Don't use uuid_compare() as it will get the wrong version of the function under FreeBSD which has a uuid library build into libc with different function signatures from libuuid but some overlapping names. - Reorganise the uuid code to limit the used external symbols to uuid_generate(), uuid_parse(), uuid_unparse() - Minimise the framing::Uuid code so that it is a simple wrapper around types::Uuid - Use uuid_generate() as the symbol to search in CMake (uuid_compare() isn't used in qpid anymore). git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1559017 13f79535-47bb-0310-9956-ffa450edef68
* QPID-5452: Change installation directory for qpid-send/qpid-receiveAndrew Stitcher2014-01-141-9/+13
| | | | | | | | | | qpid-send/qpid/receive are useful utilities in their own right and not just used for testing so install them in an easily accessible location. Patch from Irina Boverman git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1558193 13f79535-47bb-0310-9956-ffa450edef68
* NO-JIRA: Install python code as part of cmake make phaseAlan Conway2014-01-061-9/+5
| | | | | | | | | Previosly the qpid/python code was being installed only during cmake configuration phase and was not updated if the python code changed later. Added a custom target to run setup.py whenever make is run. setup.py is smart enough not to do un-necessary work if the python files have not changed. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1555989 13f79535-47bb-0310-9956-ffa450edef68
* QPID-5415: Implement control of internal log output in qpid::messaging APIAndrew Stitcher2014-01-031-0/+6
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1555202 13f79535-47bb-0310-9956-ffa450edef68
* NO-JIRA: Remove useless commentsAndrew Stitcher2013-12-091-6/+0
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1549638 13f79535-47bb-0310-9956-ffa450edef68
* NO-JIRA: Don't need full trace for regular test runsAndrew Stitcher2013-11-141-1/+1
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1541766 13f79535-47bb-0310-9956-ffa450edef68
* QPID-5306: Improve test wrapper to avoid using getopt for long optionsAndrew Stitcher2013-11-141-1/+1
| | | | | | | Using getopt with long options is a gnu extension and so best avoided for portability reasons. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1541764 13f79535-47bb-0310-9956-ffa450edef68
* QPID-5330: Simplify testing for presence of python testing code -Andrew Stitcher2013-11-121-8/+12
| | | | | | | this makes it much easier not to call the python testing code when it isn't available git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1541241 13f79535-47bb-0310-9956-ffa450edef68
* QPID-5308: Allow various bits of the test outputs to be XMLAndrew Stitcher2013-11-071-1/+1
| | | | | | | - This meshes nicely with the Jenkins CI system which can better display tests results generated in XML. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1539686 13f79535-47bb-0310-9956-ffa450edef68
* QPID-5306: Python isn't optional in build, so don't need to test for it.Andrew Stitcher2013-11-071-17/+11
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1539511 13f79535-47bb-0310-9956-ffa450edef68
* QPID-5306: Improve c++ tests some more:Andrew Stitcher2013-11-071-16/+18
| | | | | | | | | | | | | | Add options to run_test script: --working-dir - run the test in this directory --build-dir - set the top of the build tree --source-dir - set the top of the source tree --python - run a python test --start-broker - start/stop broker before and after test --broker-options - allow non default broker options Remove a bunch of now obsolete testing related scripts git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1539510 13f79535-47bb-0310-9956-ffa450edef68
* QPID-5277: remove install directive for qpidtGordon Sim2013-11-041-2/+0
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1538656 13f79535-47bb-0310-9956-ffa450edef68
* QPID-5260: Significant tidy up of cmake buildAndrew Stitcher2013-10-281-12/+17
| | | | | | | | | | | | | | | | | | | | | * Move to cmake 2.6 as minimum required version (2.4 is extremely long in the tooth now) * Add control over building individual language bindings * Make settings you don't usually want to change advanced so they are hidden by default * Changed to a uniform naming scheme for options: ** Options controlling what to build are all BUILD_ ** Options controlling features of he build are ENABLE_ ** Options controlling internal aspects of the qpid runtime are QPID_ * Respect the BUILD_TESTING option so that we won't build the tests unless it is set (it is by default) * If we don't find the boost_unit_test_framework then don't fail, just don't build the unit tests (this is motivated by one of the Apache Jenkins ubuntu builders which has this set up) * Tidied up some of the detection of external dependencies to make it more idiomatic cmake (but there is more to do here) git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1536329 13f79535-47bb-0310-9956-ffa450edef68
* QPID-4927: paged queue tests take too long under valgrind, so run them ↵Gordon Sim2013-10-251-4/+4
| | | | | | separately git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1535750 13f79535-47bb-0310-9956-ffa450edef68
* QPID-4927: Get cmake testing working with valgrindAndrew Stitcher2013-10-241-104/+86
| | | | | | [also remove unused files] git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1535398 13f79535-47bb-0310-9956-ffa450edef68
* QPID-5111: Make library dependencies clearer in build systemAndrew Stitcher2013-09-031-25/+24
| | | | | | | - Use -as-needed to link libraries to avoid unnecessary libraries - Tidyup mess with nss and qpid-proton libraries git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1519866 13f79535-47bb-0310-9956-ffa450edef68
* QPID-4327: HA TX transactions: basic replication.Alan Conway2013-08-011-18/+1
| | | | | | | | | | | | | | | On primary a PrimaryTxObserver observes a transaction's TxBuffer and generates transaction events on a tx-replication-queue. On the backup a TxReplicator receives the events and constructs a TxBuffer equivalent to the one in the primary. Unfinished: - Primary does not wait for backups to prepare() before committing. - All connected backups are assumed to be in the transaction, there are race conditions around brokers joining/leavinv where this assumption is invalid. - Need more tests. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1509423 13f79535-47bb-0310-9956-ffa450edef68
* QPID-4327: Added TransactionObserver interface.Alan Conway2013-08-011-0/+1
| | | | | | | | | | | Added TransactionObserver interface, called at each point in a transaction's lifecycle. Currently only a single observer can be associated with a transaction. Added startTx, startDtx to BrokerObserver so plugins can observe transactions starting and set a TransactionObserver. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1509421 13f79535-47bb-0310-9956-ffa450edef68
* QPID-4940: Remove qmf1 console codeAndrew Stitcher2013-07-261-2/+1
| | | | | | QPID-4941: Remove qmf1 console examples git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1507467 13f79535-47bb-0310-9956-ffa450edef68
* QPID-4988: Add test runs using swigged python clientGordon Sim2013-07-161-0/+1
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1503652 13f79535-47bb-0310-9956-ffa450edef68
* QPID-4745: Alternative port allocation for tests, instead of 'qpidd --port=0'Alan Conway2013-06-181-0/+2
| | | | | | | | | | | | | | | | | | qpidd-p0 script binds a new port to a socket using bind(0), and then execs qpidd using the --socket-fd option to pass the socket to qpidd. It is intended to replace /path/to/qpidd --port 0 <args...> with qpidd-p0 /path/to/qpidd <args...> Most tests do not yet use qpidd-p0, they will be updated in a future commit. Changes: - Added qpidd-p0 - Fixed qpidd port printing logic: print port only if --port=0, regardless of --transport. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1494306 13f79535-47bb-0310-9956-ffa450edef68
* QPID-4926: Add path when invoking sasl_test_setup.shAlan Conway2013-06-181-1/+1
| | | | | | Build was failing with "sasl_test_setup.sh not found", added an explict path. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1494305 13f79535-47bb-0310-9956-ffa450edef68
* QPID-4926: Get Unix sasl/ssl test workingAndrew Stitcher2013-06-171-13/+24
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1493903 13f79535-47bb-0310-9956-ffa450edef68
* QPID-4926: Add in overlooked cli_testsAndrew Stitcher2013-06-141-0/+1
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1493267 13f79535-47bb-0310-9956-ffa450edef68
* QPID-4926: Add in tests missing from the cmake buildAndrew Stitcher2013-06-141-5/+15
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1493264 13f79535-47bb-0310-9956-ffa450edef68
* NO-JIRA: CMake: Added missing test_wrap around stop_broker test.Alan Conway2013-05-291-1/+1
| | | | | | | | The stop_broker test was being run without the test_wrap wrapper. That meant it was loading the default /etc/qpidd.conf, so the test would fail if that config had any options defined by a module (since the tests dont load default modules.) git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1487501 13f79535-47bb-0310-9956-ffa450edef68
* QPID-4650: C++ Broker method to redirect messages between two queues.Charles E. Rolke2013-05-231-0/+1
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1485836 13f79535-47bb-0310-9956-ffa450edef68
* NO-JIRA: HA moved ha_store_tests.py into ha_tests.py test suite.Alan Conway2013-05-131-3/+0
| | | | | | It was too easy to forget the store tests in a separate file. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1482023 13f79535-47bb-0310-9956-ffa450edef68
* QPID-4790: replace old client queue.delete api with QMF callKenneth Anthony Giusti2013-05-011-0/+1
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1477979 13f79535-47bb-0310-9956-ffa450edef68
* QPID-4339: simple paged queue implementationGordon Sim2013-04-291-0/+4
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1477236 13f79535-47bb-0310-9956-ffa450edef68