There's a bug in the ScriptablePlugin, which might render a PAS-enabled instance useless. In manage_updateInterfaces, the call to 'directlyProvides' passes *all* provided interfaces, and not only the ones previously directlyProvided.
klass_interfaces = [x for x in implementedBy(ScriptablePlugin)] directlyProvides( self, *(klass_interfaces + new_interfaces) ) While this is not completely wrong, it has caused me lots of grief, because some references to interfaces in Products.Five.bbb got persisted that way, and now that Five.bbb is gone those instances of the ScriptablePlugin are broken, and you can't get in through the ZMI to remove them. Even after that is corrected there is still an issue if some directlyProvided interface goes away, because zope.interface.declarations.Provides doesn't cope with this. I've reported this other issue on the zope3-dev list a few minutes ago. A workaround for PAS would be to define __setstate__/__getstate__ on ScriptablePlugin and 'clean up' the Provides declaration. -- Sidnei da Silva Enfold Systems http://enfoldsystems.com Fax +1 832 201 8856 Office +1 713 942 2377 Ext 214 _______________________________________________ Zope-PAS mailing list Zope-PAS@zope.org http://mail.zope.org/mailman/listinfo/zope-pas