[prev in list] [next in list] [prev in thread] [next in thread]
List: zope-cvs
Subject: [Zope-Checkins] CVS: Zope3/lib/python/Zope/Event - GlobalEventService.py:1.1.2.1 __init__.py:1.1.2.6
From: Gary Poster <garyposter () earthlink ! net>
Date: 2002-04-29 23:20:42
[Download RAW message or body]
Update of /cvs-repository/Zope3/lib/python/Zope/Event
In directory cvs.zope.org:/tmp/cvs-serv1556/Event
Modified Files:
Tag: Zope-3x-branch
__init__.py event.zcml
Added Files:
Tag: Zope-3x-branch
GlobalEventService.py
Removed Files:
Tag: Zope-3x-branch
EventService.py hooks.py
Log Message:
ComponentArchitecture reorganization; addition of for_container; addition of \
IWriteContainer.isAddable.
good news: all tests pass; bad news: after the new security system, my changes have \
some problems. I had to punt on the default contents view of all folders for \
instance--hasServiceManager is causing a problem for some reason I couldn't divine, \
even with Shane's Checker tool. I commented out the offending code on the \
contents.pt just to keep things up.
I tagged before committing: gary_CA-reorganization
changes more in depth (as I understand it, all or most approved :-) ):
(in ComponentArchitecture:)
* changing implementation names to Global* (i.e., AdapterService becomes
GlobalAdapterService) and giving each its own file (many are clumped together
in hooks.py)
* removing hooks.py in ComponentArchitecture, putting all functions in appropriate \
module above (i.e. getAdapter will be in the adapter module)
* largely removing indirection (_hook) except for getService and
getNextService
* changing IServiceService.py to IServiceManager
* changing Service.py to GlobalServiceManager.py (and class name too)
* removing "provide*" functions (i.e., provideAdapter, provideUtility, etc.)
and "defineService" from the __init__.py imports
* change all global services to classes with appropriate methods as per
interfaces
* update all tests
* remove all of the "provide*" functions from the interfaces
* renamed IComponentArchitecture to IPlacefulComponentArchitecture (hereafter IPCA), \
after long discussion with SteveA
* list Resources as one of core CA services in IPlacefulComponentArchitecture
* build actual IPCA interface, not just import of service interfaces (because we \
want IPCA to be placeful, but the service interfaces do not need to \
be)
* place functions implementing ICA actually in __init__
* explicitly setting up services in zcml
* created Global service interfaces, and placed the "provides" and "set" and \
"define" functions there: however, to keep the main interfaces clean and clear, I \
placed these global interfaces in the same file as the global implementations, hoping \
to clarify that these are not reusable interfaces but descriptive, one-time \
interfaces
* built PlacefulSetup in Zope.ComponentArchitecture.tests for more specific CleanUp \
(a subclass). PlacefulSetup is in the tests folder of the local ServiceManager. \
AddableSetup also is available, in the AddableService tests.
(elsewhere in Zope3)
* built for_container in addables
* built isAddable for containers (after discussion with Jim, we decided an addable \
"contains" attribute in the zcml might not be the way to go. I chose the isAddable \
approach for a number of reasons)
* addableservice does some more checks in getting the addable list, pertinent to the \
above and to whether it can find the appropriate factories
* a few more tests: a start of one in the local event service, and some more here \
and there
I'm sorry to add to the confusion of the big security changes, but I needed to either \
trash these changes or commit them: I'm a bit out of time for the moment. If all \
else fails, again, I did tag the previous version.
=== Added File Zope3/lib/python/Zope/Event/GlobalEventService.py ===
##############################################################################
#
# Copyright (c) 2001, 2002 Zope Corporation and Contributors.
# All Rights Reserved.
#
# This software is subject to the provisions of the Zope Public License,
# Version 2.0 (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.
#
##############################################################################
"""
Revision information:
$Id: GlobalEventService.py,v 1.1.2.1 2002/04/29 23:20:11 poster Exp $
"""
from IEventService import IEventService
from EventChannel import EventChannel
class GlobalEventService(EventChannel):
__implements__ = IEventService
def publishEvent(self, event):
self.notify(event)
eventService = GlobalEventService()
_clear = eventService._clear
# Register our cleanup with Testing.CleanUp to make writing unit tests simpler.
from Zope.Testing.CleanUp import addCleanUp
addCleanUp(_clear)
del addCleanUp
=== Zope3/lib/python/Zope/Event/__init__.py 1.1.2.5 => 1.1.2.6 ===
"""
-from hooks import getEventService, publishEvent, subscribe, unsubscribe
+from Zope.ComponentArchitecture import getService
+
+
+def getEventService(context):
+ return getService(context, 'EventService')
+
+def publishEvent(context, event):
+ return getEventService(context).publishEvent(event)
+
+def subscribe(context, subscriber, event_types=(None,), filter=None):
+ return getEventService(context).subscribe(subscriber, event_types, filter)
+
+def unsubscribe(context, subscriber):
+ return getEventService(context).unsubscribe(subscriber)
+
+
def _clear():
from EventService import _clear; _clear()
-
=== Zope3/lib/python/Zope/Event/event.zcml 1.1.2.1 => 1.1.2.2 ===
<service name='EventService'
- component='Zope.Event.EventService.eventService' />
-
-<hookable module=".hooks" name="getEventService" />
-<hookable module=".hooks" name="publishEvent" />
-<hookable module=".hooks" name="subscribe" />
-<hookable module=".hooks" name="unsubscribe" />
+ component='Zope.Event.GlobalEventService.eventService' />
</zopeConfigure>
=== Removed File Zope3/lib/python/Zope/Event/EventService.py ===
=== Removed File Zope3/lib/python/Zope/Event/hooks.py ===
_______________________________________________
Zope-Checkins maillist - Zope-Checkins@zope.org
http://lists.zope.org/mailman/listinfo/zope-checkins
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic