[z3-checkins] r13978 - z3/pipelines/trunk/src/pipelines/example

ivo at codespeak.net ivo at codespeak.net
Sun Jun 26 18:09:49 CEST 2005


Author: ivo
Date: Sun Jun 26 18:09:48 2005
New Revision: 13978

Modified:
   z3/pipelines/trunk/src/pipelines/example/configure.zcml
   z3/pipelines/trunk/src/pipelines/example/pipeutility.py
Log:
zcml based subscription registration

Modified: z3/pipelines/trunk/src/pipelines/example/configure.zcml
==============================================================================
--- z3/pipelines/trunk/src/pipelines/example/configure.zcml	(original)
+++ z3/pipelines/trunk/src/pipelines/example/configure.zcml	Sun Jun 26 18:09:48 2005
@@ -11,12 +11,12 @@
       />
 
   <implements
-      interface="pipelines.interfaces.IPipeline"
+      interface=".pipeutility.IPipeUtility"
       />
 </localUtility>
 
 <browser:tool
-    interface="..interfaces.IPipeline"
+    interface=".pipeutility.IPipeUtility"
     title="Local Pipeline"
     description="A local pipeline utility"
     />
@@ -44,6 +44,7 @@
     />
 </pipeline:pipeline>
 
+<!--
 <utility
  provides="pipelines.interfaces.IPipeline"
  component="pipelines.example.foo" 
@@ -52,4 +53,9 @@
 <subscriber
  for="zope.app.publication.interfaces.IEndRequestEvent"
  handler="pipelines.example.foo" />
+-->
+
+<subscriber
+ for="zope.app.publication.interfaces.IEndRequestEvent"
+ handler=".pipeutility.executePipeline" />
 </configure>

Modified: z3/pipelines/trunk/src/pipelines/example/pipeutility.py
==============================================================================
--- z3/pipelines/trunk/src/pipelines/example/pipeutility.py	(original)
+++ z3/pipelines/trunk/src/pipelines/example/pipeutility.py	Sun Jun 26 18:09:48 2005
@@ -1,16 +1,26 @@
+from zope.app import zapi
+from zope.interface import Interface, implements
+from persistent import Persistent
+from zope.app.container.contained import Contained
+
 from pipelines.pipeline import Pipeline
 from pipelines.example.filters import domify, addlocalremark, stringify
 from zope.app.publication.interfaces import IEndRequestEvent
 from zope.app.component.site import LocalSiteManager
 
-from zope.app.zapi import getGlobalSiteManager
 
-from persistent import Persistent
-from zope.app.container.contained import Contained
+
+def executePipeline(event):
+
+    pipe = zapi.queryUtility(IPipeUtility, '', None, event.object)
+    if pipe is not None:
+        pipe(event)
+
+class IPipeUtility(Interface):
+    pass
 
 class PipeUtility(Pipeline, Persistent, Contained):
+    implements(IPipeUtility)
+
     def __init__(self):
         self._filters = (domify(), addlocalremark(), stringify())
-        #lsm = LocalSiteManager(self)
-        lsm = getGlobalSiteManager()
-        lsm.subscribe((IEndRequestEvent,), None, self)


More information about the z3-checkins mailing list