[Zope-CMF] Re: Plone needs a release this week

Wichert Akkerman wichert at wiggy.net
Tue Aug 7 05:18:07 EDT 2007


Previously yuppie wrote:
> Wichert Akkerman wrote:
> >Previously yuppie wrote:
> >>- The exports created by the new components handler are still flawed, 
> >>ISiteRoot and placeless components are not exported correctly.
> >
> >I'm quite sure I fixed that: I was able to export the components and
> >import them again. Has that been broken since?
> 
> Don't know since when these things are broken, but in the latest code 
> there are these 2 bugs:
> 
> 
> 1.) Exporting the ISiteRoot utility, 'object' should be empty. But I get 
> this instead:
> 
>   <utility interface="Products.CMFCore.interfaces._content.ISiteRoot"
>      object="SITE_ID"/>
> 
> 
> 2.) By placeless components I mean something like this:
> 
>   <utility component="foo.bar" interface="foo.IBar"/>
> 
> The import works fine, but the export looks like this:
> 
>   <utility factory="foo.Bar" interface="foo.IBar"/>

I get something else: if I import this:

  <utility interface="foo.IBar" factory="foo.bar"/>

the export looks like this:

  <utility interface="foo.IBar" object=""/>

this is caused by the zope.component.registerUtility not storing the
factory method but the return value from the factory, so we no longer
have the factory method available when we export.

The only way to fix that appears to be for us to keep a a registry of
factory methods in the setup tool. That may be too big of a change
in a minor release though.

So my vote would be: document that exporting of utility factories is
currently not supported and will be fixed in GenericSetup 1.4 and
tag the current code as 1.3.1.

Wichert.

-- 
Wichert Akkerman <wichert at wiggy.net>    It is simple to make things.
http://www.wiggy.net/                   It is hard to make things simple.


More information about the Zope-CMF mailing list