[Zope3-checkins] CVS: Zope3/src/zope/app/services - service.py:1.30

Jim Fulton jim at zope.com
Sun Sep 21 13:33:01 EDT 2003


Update of /cvs-repository/Zope3/src/zope/app/services
In directory cvs.zope.org:/tmp/cvs-serv14829/src/zope/app/services

Modified Files:
	service.py 
Log Message:
Got rid of the SiteManagementFolders class (aka Packages).
Site managers now contain site-management folders directly.

No-longer use context wrappers.


=== Zope3/src/zope/app/services/service.py 1.29 => 1.30 ===
--- Zope3/src/zope/app/services/service.py:1.29	Fri Jul  4 06:59:16 2003
+++ Zope3/src/zope/app/services/service.py	Sun Sep 21 13:33:00 2003
@@ -35,8 +35,6 @@
 from zope.component import getServiceManager
 from zope.component.exceptions import ComponentLookupError
 
-from zope.context import ContextMethod
-from zope.app.context import ContextWrapper
 from zope.proxy import removeAllProxies
 
 from zope.app.component.nextservice import getNextService
@@ -49,19 +47,27 @@
 
 from zope.app.services.registration import NameComponentRegistry
 from zope.app.services.registration import NamedComponentRegistration
-from zope.app.services.folder import SiteManagementFolders
+from zope.app.services.folder import SiteManagementFolder
 from zope.app.interfaces.services.service import ILocalService
 
 from zope.app.traversing import getPath
+from zope.app.container.contained import Contained
+from zope.app.container.btree import BTreeContainer
 
-class ServiceManager(PersistentModuleRegistry, NameComponentRegistry):
-
-    implements(IServiceManager, IContainer)
-
-    def __init__(self):
+class ServiceManager(BTreeContainer,
+                     PersistentModuleRegistry,
+                     NameComponentRegistry,
+                     ):
+
+    implements(IServiceManager)
+
+    def __init__(self, site):
+        self.__parent__ = site
+        self.__name__ = '++etc++site'
+        BTreeContainer.__init__(self)
         PersistentModuleRegistry.__init__(self)
         NameComponentRegistry.__init__(self)
-        self.Packages = SiteManagementFolders()
+        self['default'] = SiteManagementFolder()
 
     def getServiceDefinitions(wrapped_self):
         "See IServiceService"
@@ -74,7 +80,6 @@
         else: serviceDefs = {}
 
         return serviceDefs
-    getServiceDefinitions = ContextMethod(getServiceDefinitions)
 
     def queryService(wrapped_self, name, default=None):
         "See IServiceService"
@@ -82,7 +87,6 @@
             return wrapped_self.getService(name)
         except ComponentLookupError:
             return default
-    queryService = ContextMethod(queryService)
 
     def getService(wrapped_self, name):
         "See IServiceService"
@@ -108,7 +112,6 @@
                 wrapped_self._v_calling = 0
 
         return getNextService(wrapped_self, name)
-    getService = ContextMethod(getService)
 
 
     def queryLocalService(wrapped_self, name, default=None):
@@ -137,7 +140,6 @@
 
         return default
 
-    queryLocalService = ContextMethod(queryLocalService)
 
 
     def getInterfaceFor(wrapped_self, service_type):
@@ -147,22 +149,20 @@
                 return interface
 
         raise NameError(service_type)
-    getInterfaceFor = ContextMethod(getInterfaceFor)
 
     def queryComponent(self, type=None, filter=None, all=0):
         local = []
         path = getPath(self)
         for pkg_name in self:
-            package = ContextWrapper(self[pkg_name], self, name=pkg_name)
+            package = self[pkg_name]
             for name in package:
                 component = package[name]
                 if type is not None and not type.isImplementedBy(component):
                     continue
                 if filter is not None and not filter(component):
                     continue
-                wrapper =  ContextWrapper(component, package, name=name)
                 local.append({'path': "%s/%s/%s" % (path, pkg_name, name),
-                              'component': wrapper,
+                              'component': component,
                               })
 
         if all:
@@ -174,60 +174,6 @@
 
         return local
 
-    queryComponent = ContextMethod(queryComponent)
-
-    # We provide a mapping interface for traversal, but we only expose
-    # local services through the mapping interface.
-
-    def __getitem__(self, key):
-        "See Interface.Common.Mapping.IReadMapping"
-
-        result = self.get(key)
-        if result is None:
-            raise KeyError(key)
-
-        return result
-
-    def get(wrapped_self, key, default=None):
-        "See Interface.Common.Mapping.IReadMapping"
-
-        if key == 'Packages':
-            return wrapped_self.Packages
-
-        return wrapped_self.Packages.get(key, default)
-
-    get = ContextMethod(get)
-
-    def __contains__(self, key):
-        "See Interface.Common.Mapping.IReadMapping"
-
-        return self.get(key) is not None
-
-    def __iter__(self):
-        return iter(self.keys())
-
-    def keys(self):
-        return self.Packages.keys()
-
-    def values(self):
-        return map(self.get, self.keys())
-
-    values = ContextMethod(values)
-
-    def items(self):
-        return [(key, self.get(key)) for key in self.keys()]
-
-    items = ContextMethod(items)
-
-    def __len__(self):
-        return len(self.Packages)
-
-    def setObject(self, name, value):
-        return self.Packages.setObject(name, value)
-
-    def __delitem__(self, key):
-        return self.Packages.__delitem__(key)
-
     def findModule(wrapped_self, name):
         # override to pass call up to next service manager
         mod = super(ServiceManager,
@@ -244,7 +190,6 @@
             # direct way to ask if sm is the global service manager.
             return None
         return findModule(name)
-    findModule = ContextMethod(findModule)
 
     def __import(wrapped_self, module_name):
 
@@ -255,7 +200,6 @@
                 raise ImportError(module_name)
 
         return mod
-    __import = ContextMethod(__import)
 
 
 class ServiceRegistration(NamedComponentRegistration):
@@ -272,8 +216,8 @@
         super(ServiceRegistration, self).__init__(name, path)
         if context is not None:
             # Check that the object implements stuff we need
-            wrapped_self = ContextWrapper(self, context)
-            service = wrapped_self.getComponent()
+            self.__parent__ = context
+            service = self.getComponent()
             if not ILocalService.isImplementedBy(service):
                 raise TypeError("service %r doesn't implement ILocalService" %
                                 service)
@@ -283,21 +227,18 @@
         service_manager = getServiceManager(self)
         return service_manager.getInterfaceFor(self.name)
 
-    getInterface = ContextMethod(getInterface)
 
     def activated(self):
         service = self.getComponent()
         if IBindingAware.isImplementedBy(service):
             service.bound(self.name)
 
-    activated = ContextMethod(activated)
 
     def deactivated(self):
         service = self.getComponent()
         if IBindingAware.isImplementedBy(service):
             service.unbound(self.name)
 
-    deactivated = ContextMethod(deactivated)
 
     def usageSummary(self):
         return self.name + " Service"




More information about the Zope3-Checkins mailing list