whit wrote: > sorry for the cross post, but I know there are a number of other > reference engines out there and I would like to get input as we look > at moving the AT ref engine being a component. > > here is a rough list of steps: > > 1) move current storage of references to use IAnnotations for new > content / reference classes. Create a layer of indirection, making > reference storage a configurable option. > > 2) refactor UID storage to use IAnnotations
I don't think neither references nor UID capabilities have to do with annotations. In fact, Zope 3 doesn't use annotations for either one: - UID capabilities: Zope 3 has the intid utility which allows one to assign any object a unique integer id. This should be adopted for Zope 2 and I think it would be fairly easy to do wrt persistent objects (as the ZODB is the same) - Extrinsic references: AT lets us add extrinsic references of one object to another. A Zope 3 implementation for this kind of references based on key references (zope.app.keyreference) is available in the ZC sandbox repository: http://svn.zope.org/Sandbox/zc/extrinsicreference/. With a bit of cleaning up and some docs I think it could very well become zope.extrinsicreference for Zope 3.3. Something that the CMF and Plone *could* start using annotations for is metadata such as DublinCore. In particular, every time some code is accessing DublinCore metadata, it should be changed to adapt to ICMFDublinCore first, even if that adaption might be a null-adaption for now (meaning, for now CMF content types always provide ICMFDublinCore). Note that ICMFDublinCore, despite its name, is part of Zope 3. > 3) implement IReferenceable to replace Referenceable mixin, implement > IReference to coexist with Reference class By "implementing" IReference / IReferenceable you probably don't mean the interface itself (there isn't much to implement) but the necessary adapter logic that lets us get rid of the mix-in. I think the default adapter should use the reference "engine" based on key references. Thank God we have GenericSetup coming along, otherwise the ZODB upgrade script would be pretty nasty ;) Philipp _______________________________________________ Zope-CMF maillist - [email protected] http://mail.zope.org/mailman/listinfo/zope-cmf See http://collector.zope.org/CMF for bug reports and feature requests
