[Zope3-checkins] CVS: Zope3/src/zope/component - adapter.py:1.2.6.1 factory.py:1.2.6.1 interfaces.py:1.3.4.1 resource.py:1.2.6.1 service.py:1.3.6.1 skin.py:1.2.6.1 utility.py:1.2.6.1 view.py:1.2.6.1

Tim Peters tim.one@comcast.net
Wed, 26 Feb 2003 16:20:04 -0500


Update of /cvs-repository/Zope3/src/zope/component
In directory cvs.zope.org:/tmp/cvs-serv23093/src/zope/component

Modified Files:
      Tag: use-config-branch
	adapter.py factory.py interfaces.py resource.py service.py 
	skin.py utility.py view.py 
Log Message:
Added IService marker interface, and ISimpleService.  It's intended that
services implement ISimpleService, and this code also changes a number
of services to do so.  A number of services do not yet do so.  Guido
and I will tackle those in parallel next.


=== Zope3/src/zope/component/adapter.py 1.2 => 1.2.6.1 ===
--- Zope3/src/zope/component/adapter.py:1.2	Wed Dec 25 09:13:31 2002
+++ Zope3/src/zope/component/adapter.py	Wed Feb 26 16:19:32 2003
@@ -16,7 +16,7 @@
 
 from zope.interface.adapter import AdapterRegistry
 from zope.component.exceptions import ComponentLookupError
-from zope.component.interfaces import IAdapterService
+from zope.component.interfaces import IAdapterService, IService
 
 class IGlobalAdapterService(IAdapterService):
 
@@ -52,7 +52,7 @@
 
 class GlobalAdapterService:
 
-    __implements__ = IGlobalAdapterService
+    __implements__ = IGlobalAdapterService, IService
 
     def __init__(self):
         self.__adapters = {}


=== Zope3/src/zope/component/factory.py 1.2 => 1.2.6.1 ===
--- Zope3/src/zope/component/factory.py:1.2	Wed Dec 25 09:13:31 2002
+++ Zope3/src/zope/component/factory.py	Wed Feb 26 16:19:32 2003
@@ -17,7 +17,7 @@
 
 from zope.interface.verify import verifyObject
 from zope.component.interfaces import IFactory
-from zope.component.interfaces import IFactoryService
+from zope.component.interfaces import IFactoryService, IService
 from zope.component.exceptions import ComponentLookupError
 
 class IGlobalFactoryService(IFactoryService):
@@ -28,7 +28,7 @@
 
 class GlobalFactoryService:
 
-    __implements__ = IGlobalFactoryService
+    __implements__ = IGlobalFactoryService, IService
 
     def __init__(self):
         self.__factories={}


=== Zope3/src/zope/component/interfaces.py 1.3 => 1.3.4.1 ===
--- Zope3/src/zope/component/interfaces.py:1.3	Fri Jan 10 13:44:23 2003
+++ Zope3/src/zope/component/interfaces.py	Wed Feb 26 16:19:32 2003
@@ -201,6 +201,10 @@
         """
 
 
+class IService(Interface):
+    """A marker interface that all services must implement."""
+
+
 class IFactory(Interface):
 
     def __call__():


=== Zope3/src/zope/component/resource.py 1.2 => 1.2.6.1 ===
--- Zope3/src/zope/component/resource.py:1.2	Wed Dec 25 09:13:31 2002
+++ Zope3/src/zope/component/resource.py	Wed Feb 26 16:19:32 2003
@@ -19,7 +19,7 @@
 from zope.interface.implementor import ImplementorRegistry
 from zope.component.exceptions import ComponentLookupError
 from zope.component import getSkin
-from zope.component.interfaces import IResourceService
+from zope.component.interfaces import IResourceService, IService
 
 class IGlobalResourceService(IResourceService):
 
@@ -44,10 +44,10 @@
 
 class GlobalResourceService:
 
+    __implements__ = IGlobalResourceService, IService
+
     def __init__(self):
         self.__layers = {}
-
-    __implements__ = IGlobalResourceService
 
     def getResource(self, object, name, request):
         '''See interface IResourceService'''


=== Zope3/src/zope/component/service.py 1.3 => 1.3.6.1 ===
--- Zope3/src/zope/component/service.py:1.3	Fri Dec 27 20:42:21 2002
+++ Zope3/src/zope/component/service.py	Wed Feb 26 16:19:32 2003
@@ -18,9 +18,9 @@
 
 from zope.exceptions import DuplicationError
 from zope.component.interfaces import IServiceService
+from zope.component.interfaces import IService
 from zope.component.exceptions import ComponentLookupError
 
-
 class IGlobalServiceManager(IServiceService):
 
     def defineService(name, interface):
@@ -49,6 +49,11 @@
        the required interface
     """
 
+class InvalidServiceDefinition(Exception):
+    """An attempt to define a service using an interface that doesn't
+       inherit from IService.
+    """
+
 class GlobalServiceManager:
     """service manager"""
 
@@ -72,7 +77,7 @@
 
     def provideService(self, name, component, force=False):
         """see IGlobalServiceManager interface, above
-        
+
         The force keyword allows one to replace an existing
         service.  This is mostly useful in testing scenarios.
         """
@@ -85,6 +90,9 @@
 
         if not self.__defs[name].isImplementedBy(component):
             raise InvalidService(name, component, self.__defs[name])
+
+        if not IService.isImplementedBy(component):
+            raise InvalidServiceDefinition(name, component)
 
         self.__services[name] = component
 


=== Zope3/src/zope/component/skin.py 1.2 => 1.2.6.1 ===
--- Zope3/src/zope/component/skin.py:1.2	Wed Dec 25 09:13:31 2002
+++ Zope3/src/zope/component/skin.py	Wed Feb 26 16:19:32 2003
@@ -18,7 +18,7 @@
 
 from zope.interface.implementor import ImplementorRegistry
 from zope.component.exceptions import ComponentLookupError
-from zope.component.interfaces import ISkinService
+from zope.component.interfaces import ISkinService, IService
 
 class IGlobalSkinService(ISkinService):
 
@@ -32,10 +32,10 @@
 
 class GlobalSkinService:
 
+    __implements__ = IGlobalSkinService, IService
+
     def __init__(self):
         self.__skins = {}
-
-    __implements__ = IGlobalSkinService
 
     def defineSkin(self, name, view_type, layers):
         '''See interface IGlobalSkinService'''


=== Zope3/src/zope/component/utility.py 1.2 => 1.2.6.1 ===
--- Zope3/src/zope/component/utility.py:1.2	Wed Dec 25 09:13:31 2002
+++ Zope3/src/zope/component/utility.py	Wed Feb 26 16:19:33 2003
@@ -19,6 +19,7 @@
 from zope.interface.implementor import ImplementorRegistry
 from zope.component.interfaces import IUtilityService
 from zope.component.exceptions import ComponentLookupError
+from zope.app.interfaces.services.interfaces import ISimpleService
 
 class IGlobalUtilityService(IUtilityService):
 
@@ -30,7 +31,7 @@
 
 class GlobalUtilityService:
 
-    __implements__=IGlobalUtilityService
+    __implements__ = IGlobalUtilityService, ISimpleService
 
     def __init__(self):
         self.__utilities = {}


=== Zope3/src/zope/component/view.py 1.2 => 1.2.6.1 ===
--- Zope3/src/zope/component/view.py:1.2	Wed Dec 25 09:13:31 2002
+++ Zope3/src/zope/component/view.py	Wed Feb 26 16:19:33 2003
@@ -19,7 +19,7 @@
 from zope.interface.adapter import AdapterRegistry
 from zope.component.exceptions import ComponentLookupError
 from zope.component import getSkin
-from zope.component.interfaces import IViewService
+from zope.component.interfaces import IViewService, IService
 from zope.exceptions import NotFoundError
 
 class IGlobalViewService(IViewService):
@@ -39,7 +39,7 @@
 
 class GlobalViewService:
 
-    __implements__ = IGlobalViewService
+    __implements__ = IGlobalViewService, IService
 
     def __init__(self):
         self.__layers = {}