[Zope-dev] Re: [Zope] Re: [Warning] Zope 3 component architecture
(CA) not reliably usable for registrations from Python
dieter at handshake.de
Wed Jan 10 16:08:38 EST 2007
Martijn Faassen wrote at 2007-1-10 11:45 +0100:
>I'm a bit surprised why the huge [warning] is necessary. What I
>understand you're saying is that you cannot use the component
>architecture before it's done initializing.
The warning comes from bad experience.
I have tested my registration and in my test it worked because
"Products.Five.initialize" happened to be called before.
But during real use, my module was imported before
"Products.Five.initialize" has been called -- leading to strange
and not immediately recognizable errors.
>You also assert that you
>need a registration to happen at Python import time. I'm curious to hear
>more about why you need to do this
I know that the module needs to get informed about request starts.
What is more natural than registering for this event when
the module is imported?
> ... some complex delaying of registrations ...
>Perhaps you can use a similar strategy.
Probably I could but it seems quite complex compared to
a slightly more complete initialization of the CA via Python
(rather then the late initialization via Five).
Moreover, I would have to find the correct time to activate
the delayed registrations. This time must be after
"Products.Five.initialize" is called -- and nothing specifies
the order in which products are initialized.
More information about the Zope-Dev