[Zope] RE[2]: Zope Good/Bad News Article

Thierry Nabeth thierry.nabeth@insead.fr
Wed, 28 Feb 2001 12:32:09 +0100


Hello Brian and Paul,

I would like to remind you a relately nasty
bug that considerably reduce the potential
of Code Reuse for the product.

The bug is the following.

Because of Export/Import (that you have to use for instance
if you upgrade the Zope version),
"you can not define in a product a class that inherits another
class that is defined in another product." !!!!
(if you try, you just kind of create some Zombi class).


Which means that you can not use inheritance between components
that are defined in a products !!!


Thierry Nabeth
INSEAD CALT
http://www.insead.edu/CALT/


PS:
You can see the reason if you examin the exported package in xml
-------- exported package extract----
<record ...>   (Class TB definition that inherits
                  from class TA of another product)
....
<tuple id="24671.6">
     <global id="24671.3" name="PersistentClass" module="ZClasses.ZClass"/>
     <persistent>
       <string id="24671.4" encoding="base64">AAAAAAAAYFE=</string>
              ######   ==> class in other package. #####
     </persistent>
     <global id="24671.5" name="SimpleItem" module="OFS.SimpleItem"/>
</tuple>
--------

As you see, the module of class TA is not define.
Actually, a TA zombi is defined in the Product in which TB
is defined.
You should have instead something for TA such as
<global id="24671.3" name="TA" module="TA_Product"/>

The problem comes from the (bad) use of the Python
Marchalling/unMarchaling functions.