[Checkins] SVN: z3c.sqlalchemy/trunk/src/z3c/sqlalchemy/util.py
fixes for utility registration
Andreas Jung
andreas at andreas-jung.com
Wed Mar 28 07:07:09 EDT 2007
Log message for revision 73841:
fixes for utility registration
Changed:
U z3c.sqlalchemy/trunk/src/z3c/sqlalchemy/util.py
-=-
Modified: z3c.sqlalchemy/trunk/src/z3c/sqlalchemy/util.py
===================================================================
--- z3c.sqlalchemy/trunk/src/z3c/sqlalchemy/util.py 2007-03-28 10:53:16 UTC (rev 73840)
+++ z3c.sqlalchemy/trunk/src/z3c/sqlalchemy/util.py 2007-03-28 11:07:09 UTC (rev 73841)
@@ -16,7 +16,7 @@
from zope.component import getService, getGlobalServices, getUtilitiesFor
from zope.component.utility import GlobalUtilityService
-from zope.component.interfaces import IUtilityService
+from zope.component.interfaces import IUtilityService, ComponentLookupError
from zope.component.servicenames import Utilities
from z3c.sqlalchemy.interfaces import ISQLAlchemyWrapper
@@ -46,22 +46,25 @@
def registerSQLAlchemyWrapper(wrapper, name):
""" register a SQLAlchemyWrapper as named utility """
- # Bootstrap utility service
try:
+ # Zope 2.9
+ from zope.component import provideUtility
+ provideUtility(wrapper, name=name)
+ except ImportError:
# Zope 2.8
+ from zope.component import getService, getGlobalServices, getUtilitiesFor
+ from zope.component.utility import GlobalUtilityService
+ from zope.component.interfaces import IUtilityService
+ from zope.component.servicenames import Utilities
sm = getGlobalServices()
- sm.defineService(Utilities, IUtilityService)
- sm.provideService(Utilities, GlobalUtilityService())
+ try:
+ utilityService = getService(Utilities)
+ except ComponentLookupError:
+ sm.defineService(Utilities, IUtilityService)
+ sm.provideService(Utilities, GlobalUtilityService())
+ utilityService = getService(Utilities)
+ utilityService.provideUtility(ISQLAlchemyWrapper, wrapper, name)
- # register wrapper
- utilityService = getService(Utilities)
- utilityService.provideUtility(ISQLAlchemyWrapper, wrapper, name)
-
- except NotImplementedError:
- # Zope 2.9+
- from zope.component import provideUtility
- provideUtility(wrapper, name=name)
-
def allRegisteredSQLAlchemyWrappers():
""" return a dict containing information for all
registered wrappers.
More information about the Checkins
mailing list