----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/28209/ -----------------------------------------------------------
(Updated Nov. 27, 2014, 4:17 p.m.) Review request for qpid and Gordon Sim. Summary (updated) ----------------- QPID-4710: [AMQP 1.0] Support for transactions in qpid::messaging C++ client. Repository: qpid Description (updated) ------- Notes: - the basic interop_tests are passing on qpidd, not on active or java broker. - this branch requires the proton examples branch, won't work on proton master till all the blocking proton JIRAS for QPID-4710 are fixed. - several tests are still failing including ha_tests, swig_python_tests, interlink_tests QPID-4710: 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 QPID-4710: [AMQP 1.0] Support for transactions in qpid::messaging C++ client. Implements the "transactoinal retire and settle immediately" option for transactions as specified in AMQP 1.0 in the qpid::messaging C++ client. 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. Added interop_tests.py: transaction tests that can be run against any broker (env QPID_INTEROP_URL) Fixes to existing client code: - Fix use of pn_drain API in C++ client to work with C++ and Java brokers. - amqp::Exception derive from qpid::Exception 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. QPID-4710: Additional transaction tests Enable transaction tests in ha_tests over AMQP 1.0. Minor fixes - Only run interop tests if AMQP built. - Skip interop tests if no URL. - 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. Diffs (updated) ----- trunk/qpid/cpp/include/qpid/types/Variant.h 1641910 trunk/qpid/cpp/src/amqp.cmake 1641910 trunk/qpid/cpp/src/qpid/amqp/CharSequence.cpp 1641910 trunk/qpid/cpp/src/qpid/amqp/Descriptor.h 1641910 trunk/qpid/cpp/src/qpid/amqp/Descriptor.cpp 1641910 trunk/qpid/cpp/src/qpid/amqp/Encoder.h 1641910 trunk/qpid/cpp/src/qpid/amqp/Encoder.cpp 1641910 trunk/qpid/cpp/src/qpid/amqp/descriptors.h 1641910 trunk/qpid/cpp/src/qpid/broker/Queue.cpp 1641910 trunk/qpid/cpp/src/qpid/broker/amqp/Exception.h 1641910 trunk/qpid/cpp/src/qpid/broker/amqp/Incoming.cpp 1641910 trunk/qpid/cpp/src/qpid/broker/amqp/Outgoing.cpp 1641910 trunk/qpid/cpp/src/qpid/broker/amqp/Session.h 1641910 trunk/qpid/cpp/src/qpid/broker/amqp/Session.cpp 1641910 trunk/qpid/cpp/src/qpid/messaging/amqp/AddressHelper.cpp 1641910 trunk/qpid/cpp/src/qpid/messaging/amqp/ConnectionContext.h 1641910 trunk/qpid/cpp/src/qpid/messaging/amqp/ConnectionContext.cpp 1641910 trunk/qpid/cpp/src/qpid/messaging/amqp/PnData.h 1641910 trunk/qpid/cpp/src/qpid/messaging/amqp/PnData.cpp 1641910 trunk/qpid/cpp/src/qpid/messaging/amqp/SenderContext.h 1641910 trunk/qpid/cpp/src/qpid/messaging/amqp/SenderContext.cpp 1641910 trunk/qpid/cpp/src/qpid/messaging/amqp/SenderHandle.cpp 1641910 trunk/qpid/cpp/src/qpid/messaging/amqp/SessionContext.h 1641910 trunk/qpid/cpp/src/qpid/messaging/amqp/SessionContext.cpp 1641910 trunk/qpid/cpp/src/qpid/messaging/amqp/SessionHandle.cpp 1641910 trunk/qpid/cpp/src/qpid/messaging/amqp/Transaction.h PRE-CREATION trunk/qpid/cpp/src/qpid/messaging/amqp/Transaction.cpp PRE-CREATION trunk/qpid/cpp/src/qpid/types/Variant.cpp 1641910 trunk/qpid/cpp/src/qpid/types/encodings.h 1641910 trunk/qpid/cpp/src/tests/CMakeLists.txt 1641910 trunk/qpid/cpp/src/tests/Variant.cpp 1641910 trunk/qpid/cpp/src/tests/brokertest.py 1641910 trunk/qpid/cpp/src/tests/ha_test.py 1641910 trunk/qpid/cpp/src/tests/ha_tests.py 1641910 trunk/qpid/cpp/src/tests/interop_tests.py PRE-CREATION trunk/qpid/cpp/src/tests/qpid-receive.cpp 1641910 trunk/qpid/cpp/src/tests/test_store.cpp 1641910 trunk/qpid/tests/src/py/qpid_tests/broker_1_0/__init__.py 1641910 trunk/qpid/tests/src/py/qpid_tests/broker_1_0/tx.py PRE-CREATION Diff: https://reviews.apache.org/r/28209/diff/ Testing ------- Thanks, Alan Conway
