[Zope-dev] Re: Proposal: Merge philikon-aq branch into Zope trunk
Tres Seaver
tseaver at palladion.com
Fri Apr 18 10:15:22 EDT 2008
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Philipp von Weitershausen wrote:
> Tres Seaver wrote:
>>> The second problem that might arise, is that the implicit assumption
>>> that every object inside Zope 2 inherits from Acquisition base classes
>>> no longer holds. Code that relies on the various aq_* attributes to be
>>> there need to be adjusted to use the Acquisition methods instead.
>> The major downside here is that restricted code doesn't have access to
>> the required functions ('aq_inner', 'aq_parent', 'aq_acquire'), and
>> hence use the attributes. ('aq_base' should not be allowewd at all, as
>> it strips away security context).
>>
>> There are probably thousands (or even tens of thousands) of templates
>> and scripts "in the wild" which use these attributes. I don't think we
>> can break them in a single release: we need to deprecate them first
>> (with suitalbe logging output), and maybe even provide
>> '__parent__'-aware workarounds / fallbacks in their implementations.
>
> Here's the deal:
>
> * Instances of (subclasses of) Acquisition.Implicit and .Explicit still
> have those aq_* attributes. So basically all content objects still have
> them, no change there.
>
> * Five's BrowserView class doesn't inherit from Acquisition.Explicit
> anymore, but we've provided the aq_* attributes for backward
> compatibility. So if a template does view/aq_parent, it will still work
> (we have tests for this). We haven't set an expiry date for this BBB,
> nor are we logging a warning. We probably should, though, if we
> eventually want to phase out Five's BrowserView class.
>
>
> So, off the line there's no backward-compatibility problem. Now if
> people decide to implement their content objects without Acquisition
> (which they now can), then it's their problem if their templates still
> do obj/aq_*. This can be alleviated with a mix-in that Five has, which
> makes classes regain the aq_* attributes. Not sure if we want to make
> this public in any way, currently it's basically used for BrowserView
> and ViewletBase.
I realized after I sent it that BBB was "automatic" for the content
objects, making only views a possible issue: I'm glad to learn that the
views have the attributes available. I would recommend a "perpetual
deprecation" for the view BBB (log the warning with a note of the
recommended change, but don't indicate a removal release).
In any case, given the clarification, +1 to the merge.
Tres.
- --
===================================================================
Tres Seaver +1 540-429-0999 tseaver at palladion.com
Palladion Software "Excellence by Design" http://palladion.com
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
iD8DBQFICKz6+gerLs4ltQ4RAqI9AJ9wWjhsca8iljbeb8z77eHMHgBv/gCdHfa4
SkkZqvDRAxPLPicSQM8ZCPQ=
=o+xz
-----END PGP SIGNATURE-----
More information about the Zope-Dev
mailing list