[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