[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