Log message for revision 67200: Using a new ITraversalRequest adapter to adapt the Zope2 requests.traversal method to the Zope3 version.
Changed: U Zope/branches/publication-refactor/lib/python/Products/Five/configure.zcml U Zope/branches/publication-refactor/lib/python/Products/Five/interfaces.py U Zope/branches/publication-refactor/lib/python/ZPublisher/Publication.py -=- Modified: Zope/branches/publication-refactor/lib/python/Products/Five/configure.zcml =================================================================== --- Zope/branches/publication-refactor/lib/python/Products/Five/configure.zcml 2006-04-21 09:38:13 UTC (rev 67199) +++ Zope/branches/publication-refactor/lib/python/Products/Five/configure.zcml 2006-04-21 09:51:55 UTC (rev 67200) @@ -50,5 +50,14 @@ <five:implements class="ZPublisher.HTTPRequest.HTTPRequest" interface="zope.publisher.interfaces.browser.IBrowserRequest" /> + + <five:implements class="ZPublisher.HTTPRequest.HTTPRequest" + interface=".interfaces.IZope2Request" + /> + <adapter + for=".interfaces.IZope2Request" + factory="ZPublisher.Publication.Zope3HTTPRequestTraverser" + provides="zope.publisher.interfaces.ITraversingRequest" + /> </configure> Modified: Zope/branches/publication-refactor/lib/python/Products/Five/interfaces.py =================================================================== --- Zope/branches/publication-refactor/lib/python/Products/Five/interfaces.py 2006-04-21 09:38:13 UTC (rev 67199) +++ Zope/branches/publication-refactor/lib/python/Products/Five/interfaces.py 2006-04-21 09:51:55 UTC (rev 67200) @@ -27,6 +27,10 @@ find the method to be published. """ +class IZope2Request(Interface): + """Marks the Zope2 request""" + pass + class IMenuItemType(IInterface): """Menu item type Modified: Zope/branches/publication-refactor/lib/python/ZPublisher/Publication.py =================================================================== --- Zope/branches/publication-refactor/lib/python/ZPublisher/Publication.py 2006-04-21 09:38:13 UTC (rev 67199) +++ Zope/branches/publication-refactor/lib/python/ZPublisher/Publication.py 2006-04-21 09:51:55 UTC (rev 67200) @@ -49,7 +49,7 @@ _marker = object() class Zope3HTTPRequestTraverser(object): - implements(IPublisherRequest) + implements(zope.publisher.interfaces.ITraversingRequest) def __init__(self, request): self.request = request @@ -61,12 +61,7 @@ return self.request.traverse(path, self.request.response, self.request.publication.validated_hook) -## XXX - Five declares that HTTPRequest implements IPublisherRequest -## but in fact it doesn't, the traverse method API is all wrong. -## component.provideAdapter(Zope3HTTPRequestTraverser, (HTTPRequest,), -## IPublisherRequest) - class ZopePublication(object): """Base Zope2 publication specification. """ @@ -229,7 +224,8 @@ sys.exc_info()[2], ) except: - return request.response.exception() + request.response.exception() + return request.response finally: self._abort() _______________________________________________ Zope-Checkins maillist - Zope-Checkins@zope.org http://mail.zope.org/mailman/listinfo/zope-checkins