[Repoze-checkins] r1242 - in repoze.bfg/trunk: . repoze/bfg repoze/bfg/sampleapp

Chris McDonough chrism at agendaless.com
Mon Jul 7 18:52:40 EDT 2008


Author: Chris McDonough <chrism at agendaless.com>
Date: Mon Jul  7 18:52:39 2008
New Revision: 1242

Log:
Depend on z3c.pt.

Use ZCML to configure applications.


Added:
   repoze.bfg/trunk/repoze/bfg/configure.zcml   (contents, props changed)
   repoze.bfg/trunk/repoze/bfg/sampleapp/configure.zcml   (contents, props changed)
   repoze.bfg/trunk/repoze/bfg/sampleapp/models.py   (contents, props changed)
Modified:
   repoze.bfg/trunk/repoze/bfg/router.py
   repoze.bfg/trunk/repoze/bfg/sampleapp/app.py
   repoze.bfg/trunk/setup.py

Added: repoze.bfg/trunk/repoze/bfg/configure.zcml
==============================================================================
--- (empty file)
+++ repoze.bfg/trunk/repoze/bfg/configure.zcml	Mon Jul  7 18:52:39 2008
@@ -0,0 +1,18 @@
+<configure xmlns="http://namespaces.zope.org/zope"
+	           i18n_domain="repoze.bfg">
+
+  <include package="z3c.pt" />
+
+  <adapter
+      factory=".traversal.NaivePublishTraverser"
+      provides=".interfaces.IPublishTraverserFactory"
+      for="* *"
+  />
+
+  <adapter
+      factory=".wsgiadapter.NaiveWSGIViewAdapter"
+      provides=".interfaces.IWSGIApplicationFactory"
+      for="* *"
+   />
+
+</configure>

Modified: repoze.bfg/trunk/repoze/bfg/router.py
==============================================================================
--- repoze.bfg/trunk/repoze/bfg/router.py	(original)
+++ repoze.bfg/trunk/repoze/bfg/router.py	Mon Jul  7 18:52:39 2008
@@ -33,22 +33,9 @@
             app = getMultiAdapter((app, request), IWSGIApplicationFactory)
         return app(environ, start_response)
 
-def make_app(root_policy,
-             default_publish_traverser_factory=None,
-             default_wsgi_application_factory=None
-             ):
-    if default_publish_traverser_factory is None:
-        from repoze.bfg.traversal import NaivePublishTraverser
-        default_publish_traverser_factory = NaivePublishTraverser
-    if default_wsgi_application_factory is None:
-        from repoze.bfg.wsgiadapter import NaiveWSGIViewAdapter
-        default_wsgi_application_factory = NaiveWSGIViewAdapter
-    from zope.component import getGlobalSiteManager
-    gsm = getGlobalSiteManager()
-    gsm.registerAdapter(default_publish_traverser_factory, (None, None),
-                        IPublishTraverserFactory)
-    gsm.registerAdapter(default_wsgi_application_factory, (None, None),
-                        IWSGIApplicationFactory)
+def make_app(root_policy, package=None, filename='configure.zcml'):
+    import zope.configuration.xmlconfig
+    zope.configuration.xmlconfig.file(filename, package=package)
     return Router(root_policy)
 
     

Modified: repoze.bfg/trunk/repoze/bfg/sampleapp/app.py
==============================================================================
--- repoze.bfg/trunk/repoze/bfg/sampleapp/app.py	(original)
+++ repoze.bfg/trunk/repoze/bfg/sampleapp/app.py	Mon Jul  7 18:52:39 2008
@@ -1,23 +1,11 @@
-import UserDict
-
 from zope.interface import classProvides
 from zope.interface import implements
-from zope.interface import Interface
-from zope.interface import Attribute
 
 from repoze.bfg.interfaces import IViewFactory
 from repoze.bfg.interfaces import IView
 
 from webob import Response
 
-class IBlogModel(Interface):
-    id = Attribute('id')
-
-class BlogModel(UserDict):
-    implements(IBlogModel)
-    def __init__(self, id):
-        self.id = id
-
 class View(object):
     classProvides(IViewFactory)
     implements(IView)
@@ -37,21 +25,17 @@
 class DefaultView(View):
     def __call__(self):
         return Response('Default page, context is %s' % self.context)
-    
+
+
 if __name__ == '__main__':
-    from repoze.bfg.interfaces import IViewFactory
-    from repoze.bfg.interfaces import IRequest
-    from zope.component import getGlobalSiteManager
-    gsm = getGlobalSiteManager()
-    gsm.registerAdapter(BlogDefaultView, (IBlogModel, IRequest), IViewFactory)
-    gsm.registerAdapter(BlogWooHooView, (IBlogModel, IRequest), IViewFactory,
-                        name='woohoo.html')
-    gsm.registerAdapter(DefaultView, (None, IRequest), IViewFactory, '')
+    from repoze.bfg import sampleapp
+    from repoze.bfg.sampleapp.models import BlogModel
     from repoze.bfg.router import make_app
-    root = {'blog':BlogModel('myblog')}
+    blog = BlogModel('myblog')
+    root = {'blog':blog}
     def get_root(environ):
         return root
-    app = make_app(get_root)
+    app = make_app(get_root, sampleapp)
     from paste import httpserver
     httpserver.serve(app, host='0.0.0.0', port='5432')
     

Added: repoze.bfg/trunk/repoze/bfg/sampleapp/configure.zcml
==============================================================================
--- (empty file)
+++ repoze.bfg/trunk/repoze/bfg/sampleapp/configure.zcml	Mon Jul  7 18:52:39 2008
@@ -0,0 +1,25 @@
+<configure xmlns="http://namespaces.zope.org/zope"
+	           i18n_domain="repoze.bfg">
+
+  <include package="repoze.bfg" />
+
+  <adapter
+        factory=".app.BlogDefaultView"
+        provides="repoze.bfg.interfaces.IViewFactory"
+        for=".models.IBlogModel repoze.bfg.interfaces.IRequest"
+   />
+
+  <adapter
+        factory=".app.BlogWooHooView"
+        provides="repoze.bfg.interfaces.IViewFactory"
+        for=".models.IBlogModel repoze.bfg.interfaces.IRequest"
+        name="woohoo.html"
+   />
+
+  <adapter
+        factory=".app.DefaultView"
+        provides="repoze.bfg.interfaces.IViewFactory"
+        for="* repoze.bfg.interfaces.IRequest"
+   />
+
+</configure>

Added: repoze.bfg/trunk/repoze/bfg/sampleapp/models.py
==============================================================================
--- (empty file)
+++ repoze.bfg/trunk/repoze/bfg/sampleapp/models.py	Mon Jul  7 18:52:39 2008
@@ -0,0 +1,12 @@
+from zope.interface import Interface
+from zope.interface import Attribute
+from zope.interface import implements
+
+class IBlogModel(Interface):
+    id = Attribute('id')
+
+class BlogModel(object):
+    implements(IBlogModel)
+    def __init__(self, id):
+        self.id = id
+

Modified: repoze.bfg/trunk/setup.py
==============================================================================
--- repoze.bfg/trunk/setup.py	(original)
+++ repoze.bfg/trunk/setup.py	Mon Jul  7 18:52:39 2008
@@ -53,6 +53,7 @@
             'zope.testing',
             'WebOb',
             'Paste',
+            'z3c.pt',
             ],
       tests_require=[
             'zope.interface',
@@ -60,6 +61,7 @@
             'zope.testing',
             'WebOb',
             'Paste',
+            'z3c.pt',
             ],
       test_suite="repoze.bfg.tests",
       entry_points = """\


More information about the Repoze-checkins mailing list