# HG changeset patch # User Thierry Florac # Date 1333350448 -7200 # Node ID 05cfdcb2418dae99fc74c8ac6d8b8725c0663f13 # Parent 8e70a18787e1566c1a2215f656894c0d908c9b2a Move ITransactionManager adapter from ztfy.scheduler diff -r 8e70a18787e1 -r 05cfdcb2418d ztfy/utils/configure.zcml --- a/ztfy/utils/configure.zcml Sat Mar 31 01:32:08 2012 +0200 +++ b/ztfy/utils/configure.zcml Mon Apr 02 09:07:28 2012 +0200 @@ -5,6 +5,10 @@ + + + +# All Rights Reserved. +# +# This software is subject to the provisions of the Zope Public License, +# Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution. +# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED +# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS +# FOR A PARTICULAR PURPOSE. +# +############################################################################## + +__docformat__ = "restructuredtext" + +# import standard packages + +# import Zope3 interfaces +from persistent.interfaces import IPersistent +from transaction.interfaces import ITransactionManager +from ZODB.interfaces import IConnection + +# import local interfaces + +# import Zope3 packages +from zope.component import adapter +from zope.interface import implementer + +# import local packages + + +# IPersistent adapters copied from zc.twist package +# also register this for adapting from IConnection +@adapter(IPersistent) +@implementer(ITransactionManager) +def transactionManager(obj): + conn = IConnection(obj) # typically this will be + # zope.app.keyreference.persistent.connectionOfPersistent + try: + return conn.transaction_manager + except AttributeError: + return conn._txn_mgr + # or else we give up; who knows. transaction_manager is the more + # recent spelling.