This change is way too big to land at this point. Work of this kind needs to land on trunk before alpha, or before beta with an exception. I think it should wait for the next release.
On Tue, Mar 3, 2015 at 8:43 AM, Gordon Sim <[email protected]> wrote: > On 02/27/2015 04:49 PM, Alan Conway wrote: > >> gsim could you review this please? >> > > Looks good to me. All my proton python tx examples pass against it also. > I'd be in favour of merging it to 0.32 branch. > > > >> ------------------------------------------------------------------------ >> r1662743 | aconway | 2015-02-27 11:37:06 -0500 (Fri, 27 Feb 2015) | 59 >> lines >> >> QPID-4710: [AMQP 1.0] Support for transactions in qpid::messaging C++ >> client. >> >> 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. >> >> ------------------------------------------------------------------------ >> >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: [email protected] >> For additional commands, e-mail: [email protected] >> >> > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [email protected] > For additional commands, e-mail: [email protected] > >
