[Zope3-dev] Twisted Publisher and Zope 2

Jim Fulton jim at zope.com
Mon Dec 12 16:53:11 EST 2005


Sidnei da Silva wrote:
> On Mon, Dec 12, 2005 at 09:19:39AM -0500, Jim Fulton wrote:
> | >| Note that the Z3 publication framework splits functionality
> | >| currently provided by the Z2 publisher into a publisher and a
> | >| publication object.  An initial step might be top come up with
> | >| a Z2 publication object that works with the Z3 publisher.
> 
> Here's a status report:
> 
> I've started a Z2 publication object in the 'publication-refactor'
> branch of Zope 2.

Awesome!

> I am not 100% sure this is what you had in mind, but basically i've
> broke down the 'publish' method from ZPublisher.Publish into the
> methods of IPublication, and it seems to have mapped quite well with
> some minor exceptions.

Cool. It should.  IPublication was designed by insoecting all
the odd hooks in Zope 2.

> I haven't gotten around to implementing the traverseName method, which
> will need some deep surgery on ZPublisher.BaseRequest.
> 
> Now, what I have in mind moving forward is to replace the code in
> ZPublisher.Publish and ZPublisher.BaseRequest to use the Zope 2
> IPublication instead of duplicating code once I'm done with
> implementing the interface.
> 
> My only fear so far is that there might be some issues with the
> request object itself being not 100% backwards compatible, but I think
> we can have backwards compatibility implemented as an adapter from the
> Zope 3 request to Zope 2 request.

Possibly.  Note that the request itself is pluggable.  Zope 3 has a
notion of request factories.  When you set up a particular server,
you can specify which request factory is used.  It would be nice though
of Zope 2 and Zope 3 requests could be handled by the same server
(host/port).

Adaptation may be a good way to start, although arranging for the
adaptation to happen could get interesting.

It might be better to see if we can come up with a request that provides
both Z2 and Z3 request APIs, if possible and then start a process of
deprecation of features we don't want in the future.  This might
be easier and simpler than adaptation.

> How does that sound?

Sounds like a great start.

Later Sidnei da Silva wrote:
 > Another update:
 >
 > On Mon, Dec 12, 2005 at 04:18:48PM -0200, Sidnei da Silva wrote:
 > | I haven't gotten around to implementing the traverseName method, which
 > | will need some deep surgery on ZPublisher.BaseRequest.
 >
 > This is done now.

cool

 > | Now, what I have in mind moving forward is to replace the code in
 > | ZPublisher.Publish and ZPublisher.BaseRequest to use the Zope 2
 > | IPublication instead of duplicating code once I'm done with
 > | implementing the interface.
 >
 > This is done too.

Great.

Jim

-- 
Jim Fulton           mailto:jim at zope.com       Python Powered!
CTO                  (540) 361-1714            http://www.python.org
Zope Corporation     http://www.zope.com       http://www.zope.org


More information about the Zope3-dev mailing list