While trying to use storm.zope in a zope2 application (zope 2.10.7), I got this error:
fcorrea@fcbook:~/zope2/libenv/3.2: ./bin/paster serve etc/zope2.ini
2009-06-02 11:33:00 INFO Marshall libxml2-python not available. Unable to register libxml2 based marshallers.
2009-06-02 11:33:04 INFO ZEO.ClientStorage (98443) ClientStorage (pid=98443) created RW/normal for storage: '1'
2009-06-02 11:33:04 INFO ZEO.cache created temporary cache file '<fdopen>'
2009-06-02 11:33:04 INFO ZEO.ClientStorage (98443) Testing connection <ManagedClientConnection ('127.0.0.1', 8881)>
2009-06-02 11:33:04 INFO ZEO.zrpc.Connection(C) (localhost:8881) received handshake 'Z303'
2009-06-02 11:33:04 INFO ZEO.ClientStorage (98443) Server authentication protocol None
2009-06-02 11:33:04 INFO ZEO.ClientStorage (98443) Connected to storage: ('perf.liberiun.com', 8881)
2009-06-02 11:33:04 INFO ZEO.ClientStorage (98443) Verifying cache
2009-06-02 11:33:04 INFO ZEO.ClientStorage (98443) endVerify finishing
2009-06-02 11:33:04 INFO ZEO.ClientStorage (98443) endVerify finished
2009-06-02 11:33:05 ERROR Application Couldn't install Five
Traceback (most recent call last):
File "/Users/fcorrea/zope2/libenv/3.2/eggs/zopelib-2.10.7.0-py2.4-macosx-10.3-i386.egg/OFS/Application.py", line 786, in install_product
initmethod(context)
File "/Users/fcorrea/zope2/libenv/3.2/eggs/zopelib-2.10.7.0-py2.4-macosx-10.3-i386.egg/Products/Five/__init__.py", line 28, in initialize
zcml.load_site()
File "/Users/fcorrea/zope2/libenv/3.2/eggs/zopelib-2.10.7.0-py2.4-macosx-10.3-i386.egg/Products/Five/zcml.py", line 53, in load_site
_context = xmlconfig.file(file)
File "/Users/fcorrea/zope2/libenv/3.2/eggs/zopelib-2.10.7.0-py2.4-macosx-10.3-i386.egg/zope/configuration/xmlconfig.py", line 579, in file
include(context, name, package)
File "/Users/fcorrea/zope2/libenv/3.2/eggs/zopelib-2.10.7.0-py2.4-macosx-10.3-i386.egg/zope/configuration/xmlconfig.py", line 515, in include
processxmlfile(f, context)
File "/Users/fcorrea/zope2/libenv/3.2/eggs/zopelib-2.10.7.0-py2.4-macosx-10.3-i386.egg/zope/configuration/xmlconfig.py", line 370, in processxmlfile
parser.parse(src)
File "/Users/fcorrea/zope2/libenv/lib/python2.4/site-packages/PyXML-0.8.4-py2.4-macosx-10.3-i386.egg/_xmlplus/sax/expatreader.py", line 109, in parse
xmlreader.IncrementalParser.parse(self, source)
File "/Users/fcorrea/zope2/libenv/lib/python2.4/site-packages/PyXML-0.8.4-py2.4-macosx-10.3-i386.egg/_xmlplus/sax/xmlreader.py", line 123, in parse
self.feed(buffer)
File "/Users/fcorrea/zope2/libenv/lib/python2.4/site-packages/PyXML-0.8.4-py2.4-macosx-10.3-i386.egg/_xmlplus/sax/expatreader.py", line 216, in feed
self._parser.Parse(data, isFinal)
File "/Users/fcorrea/zope2/libenv/lib/python2.4/site-packages/PyXML-0.8.4-py2.4-macosx-10.3-i386.egg/_xmlplus/sax/expatreader.py", line 364, in end_element_ns
self._cont_handler.endElementNS(pair, None)
File "/Users/fcorrea/zope2/libenv/3.2/eggs/zopelib-2.10.7.0-py2.4-macosx-10.3-i386.egg/zope/configuration/xmlconfig.py", line 349, in endElementNS
self.context.end()
File "/Users/fcorrea/zope2/libenv/3.2/eggs/zopelib-2.10.7.0-py2.4-macosx-10.3-i386.egg/zope/configuration/config.py", line 544, in end
self.stack.pop().finish()
File "/Users/fcorrea/zope2/libenv/3.2/eggs/zopelib-2.10.7.0-py2.4-macosx-10.3-i386.egg/zope/configuration/config.py", line 692, in finish
actions = self.handler(context, **args)
File "/Users/fcorrea/zope2/libenv/3.2/eggs/zopelib-2.10.7.0-py2.4-macosx-10.3-i386.egg/zope/configuration/xmlconfig.py", line 515, in include
processxmlfile(f, context)
File "/Users/fcorrea/zope2/libenv/3.2/eggs/zopelib-2.10.7.0-py2.4-macosx-10.3-i386.egg/zope/configuration/xmlconfig.py", line 370, in processxmlfile
parser.parse(src)
File "/Users/fcorrea/zope2/libenv/lib/python2.4/site-packages/PyXML-0.8.4-py2.4-macosx-10.3-i386.egg/_xmlplus/sax/expatreader.py", line 109, in parse
xmlreader.IncrementalParser.parse(self, source)
File "/Users/fcorrea/zope2/libenv/lib/python2.4/site-packages/PyXML-0.8.4-py2.4-macosx-10.3-i386.egg/_xmlplus/sax/xmlreader.py", line 123, in parse
self.feed(buffer)
File "/Users/fcorrea/zope2/libenv/lib/python2.4/site-packages/PyXML-0.8.4-py2.4-macosx-10.3-i386.egg/_xmlplus/sax/expatreader.py", line 216, in feed
self._parser.Parse(data, isFinal)
File "/Users/fcorrea/zope2/libenv/lib/python2.4/site-packages/PyXML-0.8.4-py2.4-macosx-10.3-i386.egg/_xmlplus/sax/expatreader.py", line 364, in end_element_ns
self._cont_handler.endElementNS(pair, None)
File "/Users/fcorrea/zope2/libenv/3.2/eggs/zopelib-2.10.7.0-py2.4-macosx-10.3-i386.egg/zope/configuration/xmlconfig.py", line 349, in endElementNS
self.context.end()
File "/Users/fcorrea/zope2/libenv/3.2/eggs/zopelib-2.10.7.0-py2.4-macosx-10.3-i386.egg/zope/configuration/config.py", line 544, in end
self.stack.pop().finish()
File "/Users/fcorrea/zope2/libenv/3.2/eggs/zopelib-2.10.7.0-py2.4-macosx-10.3-i386.egg/zope/configuration/config.py", line 692, in finish
actions = self.handler(context, **args)
File "/Users/fcorrea/zope2/libenv/3.2/eggs/zopelib-2.10.7.0-py2.4-macosx-10.3-i386.egg/zope/configuration/xmlconfig.py", line 515, in include
processxmlfile(f, context)
File "/Users/fcorrea/zope2/libenv/3.2/eggs/zopelib-2.10.7.0-py2.4-macosx-10.3-i386.egg/zope/configuration/xmlconfig.py", line 370, in processxmlfile
parser.parse(src)
File "/Users/fcorrea/zope2/libenv/lib/python2.4/site-packages/PyXML-0.8.4-py2.4-macosx-10.3-i386.egg/_xmlplus/sax/expatreader.py", line 109, in parse
xmlreader.IncrementalParser.parse(self, source)
File "/Users/fcorrea/zope2/libenv/lib/python2.4/site-packages/PyXML-0.8.4-py2.4-macosx-10.3-i386.egg/_xmlplus/sax/xmlreader.py", line 123, in parse
self.feed(buffer)
File "/Users/fcorrea/zope2/libenv/lib/python2.4/site-packages/PyXML-0.8.4-py2.4-macosx-10.3-i386.egg/_xmlplus/sax/expatreader.py", line 216, in feed
self._parser.Parse(data, isFinal)
File "/Users/fcorrea/zope2/libenv/lib/python2.4/site-packages/PyXML-0.8.4-py2.4-macosx-10.3-i386.egg/_xmlplus/sax/expatreader.py", line 364, in end_element_ns
self._cont_handler.endElementNS(pair, None)
File "/Users/fcorrea/zope2/libenv/3.2/eggs/zopelib-2.10.7.0-py2.4-macosx-10.3-i386.egg/zope/configuration/xmlconfig.py", line 349, in endElementNS
self.context.end()
File "/Users/fcorrea/zope2/libenv/3.2/eggs/zopelib-2.10.7.0-py2.4-macosx-10.3-i386.egg/zope/configuration/config.py", line 544, in end
self.stack.pop().finish()
File "/Users/fcorrea/zope2/libenv/3.2/eggs/zopelib-2.10.7.0-py2.4-macosx-10.3-i386.egg/zope/configuration/config.py", line 692, in finish
actions = self.handler(context, **args)
File "/Users/fcorrea/zope2/libenv/3.2/eggs/zopelib-2.10.7.0-py2.4-macosx-10.3-i386.egg/zope/app/component/contentdirective.py", line 77, in require
self.__mimic(_context, like_class)
File "/Users/fcorrea/zope2/libenv/3.2/eggs/zopelib-2.10.7.0-py2.4-macosx-10.3-i386.egg/Products/Five/metaconfigure.py", line 39, in __mimic
raise ConfigurationError('like_class parameter not supported.')
ZopeXMLConfigurationError: File "/Users/fcorrea/zope2/libenv/3.2/etc/site.zcml", line 18.2-18.47
ZopeXMLConfigurationError: File "/Users/fcorrea/zope2/libenv/3.2/src/liberiun.portal.content/liberiun/portal/content/configure.zcml", line 7.4-7.51
ZopeXMLConfigurationError: File "/Users/fcorrea/zope2/libenv/3.2/eggs/storm-0.14-py2.4-macosx-10.3-i386.egg/storm/zope/configure.zcml", line 32.8-32.67
ConfigurationError: like_class parameter not supported.
Traceback (most recent call last):
File "./bin/paster", line 150, in ?
paste.script.command.run()
File "/Users/fcorrea/zope2/libenv/3.2/eggs/PasteScript-1.7.3-py2.4.egg/paste/script/command.py", line 84, in run
invoke(command, command_name, options, args[1:])
File "/Users/fcorrea/zope2/libenv/3.2/eggs/PasteScript-1.7.3-py2.4.egg/paste/script/command.py", line 123, in invoke
exit_code = runner.run(args)
File "/Users/fcorrea/zope2/libenv/3.2/eggs/PasteScript-1.7.3-py2.4.egg/paste/script/command.py", line 218, in run
result = self.command()
File "/Users/fcorrea/zope2/libenv/3.2/eggs/PasteScript-1.7.3-py2.4.egg/paste/script/serve.py", line 276, in command
relative_to=base, global_conf=vars)
File "/Users/fcorrea/zope2/libenv/3.2/eggs/PasteScript-1.7.3-py2.4.egg/paste/script/serve.py", line 311, in loadapp
return loadapp(
File "/Users/fcorrea/zope2/libenv/3.2/eggs/PasteDeploy-1.3.3-py2.4.egg/paste/deploy/loadwsgi.py", line 204, in loadapp
return loadobj(APP, uri, name=name, **kw)
File "/Users/fcorrea/zope2/libenv/3.2/eggs/PasteDeploy-1.3.3-py2.4.egg/paste/deploy/loadwsgi.py", line 225, in loadobj
return context.create()
File "/Users/fcorrea/zope2/libenv/3.2/eggs/PasteDeploy-1.3.3-py2.4.egg/paste/deploy/loadwsgi.py", line 625, in create
return self.object_type.invoke(self)
File "/Users/fcorrea/zope2/libenv/3.2/eggs/PasteDeploy-1.3.3-py2.4.egg/paste/deploy/loadwsgi.py", line 107, in invoke
context.loader, context.global_conf,
File "/Users/fcorrea/zope2/libenv/3.2/eggs/PasteDeploy-1.3.3-py2.4.egg/paste/deploy/util/fixtypeerror.py", line 57, in fix_call
val = callable(*args, **kw)
File "/Users/fcorrea/zope2/libenv/3.2/eggs/Paste-1.7.2-py2.4.egg/paste/urlmap.py", line 24, in urlmap_factory
app = loader.get_app(app_name, global_conf=global_conf)
File "/Users/fcorrea/zope2/libenv/3.2/eggs/PasteDeploy-1.3.3-py2.4.egg/paste/deploy/loadwsgi.py", line 296, in get_app
return self.app_context(
File "/Users/fcorrea/zope2/libenv/3.2/eggs/PasteDeploy-1.3.3-py2.4.egg/paste/deploy/loadwsgi.py", line 625, in create
return self.object_type.invoke(self)
File "/Users/fcorrea/zope2/libenv/3.2/eggs/PasteDeploy-1.3.3-py2.4.egg/paste/deploy/loadwsgi.py", line 164, in invoke
app = context.app_context.create()
File "/Users/fcorrea/zope2/libenv/3.2/eggs/PasteDeploy-1.3.3-py2.4.egg/paste/deploy/loadwsgi.py", line 625, in create
return self.object_type.invoke(self)
File "/Users/fcorrea/zope2/libenv/3.2/eggs/PasteDeploy-1.3.3-py2.4.egg/paste/deploy/loadwsgi.py", line 110, in invoke
return fix_call(context.object, context.global_conf, **context.local_conf)
File "/Users/fcorrea/zope2/libenv/3.2/eggs/PasteDeploy-1.3.3-py2.4.egg/paste/deploy/util/fixtypeerror.py", line 57, in fix_call
val = callable(*args, **kw)
File "/Users/fcorrea/zope2/libenv/3.2/eggs/repoze.obob-0.4-py2.4.egg/repoze/obob/publisher.py", line 252, in make_obob
return ObobPublisher(**new_kw)
File "/Users/fcorrea/zope2/libenv/3.2/eggs/repoze.obob-0.4-py2.4.egg/repoze/obob/publisher.py", line 132, in __init__
initializer(**extras)
File "/Users/fcorrea/zope2/libenv/3.2/eggs/repoze.zope2-1.0-py2.4.egg/repoze/zope2/z2bob.py", line 686, in initialize
db = getDB(config)
File "/Users/fcorrea/zope2/libenv/3.2/eggs/repoze.zope2-1.0-py2.4.egg/repoze/zope2/db.py", line 45, in getDB
Zope2.App.startup.startup()
File "/Users/fcorrea/zope2/libenv/3.2/eggs/zopelib-2.10.7.0-py2.4-macosx-10.3-i386.egg/Zope2/App/startup.py", line 102, in startup
OFS.Application.initialize(application)
File "/Users/fcorrea/zope2/libenv/3.2/eggs/zopelib-2.10.7.0-py2.4-macosx-10.3-i386.egg/OFS/Application.py", line 309, in initialize
initializer.initialize()
File "/Users/fcorrea/zope2/libenv/3.2/eggs/zopelib-2.10.7.0-py2.4-macosx-10.3-i386.egg/OFS/Application.py", line 338, in initialize
self.install_products()
File "/Users/fcorrea/zope2/libenv/3.2/eggs/zopelib-2.10.7.0-py2.4-macosx-10.3-i386.egg/OFS/Application.py", line 603, in install_products
return install_products(app)
File "/Users/fcorrea/zope2/libenv/3.2/eggs/zopelib-2.10.7.0-py2.4-macosx-10.3-i386.egg/OFS/Application.py", line 634, in install_products
folder_permissions, raise_exc=debug_mode)
File "/Users/fcorrea/zope2/libenv/3.2/eggs/zopelib-2.10.7.0-py2.4-macosx-10.3-i386.egg/OFS/Application.py", line 786, in install_product
initmethod(context)
File "/Users/fcorrea/zope2/libenv/3.2/eggs/zopelib-2.10.7.0-py2.4-macosx-10.3-i386.egg/Products/Five/__init__.py", line 28, in initialize
zcml.load_site()
File "/Users/fcorrea/zope2/libenv/3.2/eggs/zopelib-2.10.7.0-py2.4-macosx-10.3-i386.egg/Products/Five/zcml.py", line 53, in load_site
_context = xmlconfig.file(file)
File "/Users/fcorrea/zope2/libenv/3.2/eggs/zopelib-2.10.7.0-py2.4-macosx-10.3-i386.egg/zope/configuration/xmlconfig.py", line 579, in file
include(context, name, package)
File "/Users/fcorrea/zope2/libenv/3.2/eggs/zopelib-2.10.7.0-py2.4-macosx-10.3-i386.egg/zope/configuration/xmlconfig.py", line 515, in include
processxmlfile(f, context)
File "/Users/fcorrea/zope2/libenv/3.2/eggs/zopelib-2.10.7.0-py2.4-macosx-10.3-i386.egg/zope/configuration/xmlconfig.py", line 370, in processxmlfile
parser.parse(src)
File "/Users/fcorrea/zope2/libenv/lib/python2.4/site-packages/PyXML-0.8.4-py2.4-macosx-10.3-i386.egg/_xmlplus/sax/expatreader.py", line 109, in parse
xmlreader.IncrementalParser.parse(self, source)
File "/Users/fcorrea/zope2/libenv/lib/python2.4/site-packages/PyXML-0.8.4-py2.4-macosx-10.3-i386.egg/_xmlplus/sax/xmlreader.py", line 123, in parse
self.feed(buffer)
File "/Users/fcorrea/zope2/libenv/lib/python2.4/site-packages/PyXML-0.8.4-py2.4-macosx-10.3-i386.egg/_xmlplus/sax/expatreader.py", line 216, in feed
self._parser.Parse(data, isFinal)
File "/Users/fcorrea/zope2/libenv/lib/python2.4/site-packages/PyXML-0.8.4-py2.4-macosx-10.3-i386.egg/_xmlplus/sax/expatreader.py", line 364, in end_element_ns
self._cont_handler.endElementNS(pair, None)
File "/Users/fcorrea/zope2/libenv/3.2/eggs/zopelib-2.10.7.0-py2.4-macosx-10.3-i386.egg/zope/configuration/xmlconfig.py", line 349, in endElementNS
self.context.end()
File "/Users/fcorrea/zope2/libenv/3.2/eggs/zopelib-2.10.7.0-py2.4-macosx-10.3-i386.egg/zope/configuration/config.py", line 544, in end
self.stack.pop().finish()
File "/Users/fcorrea/zope2/libenv/3.2/eggs/zopelib-2.10.7.0-py2.4-macosx-10.3-i386.egg/zope/configuration/config.py", line 692, in finish
actions = self.handler(context, **args)
File "/Users/fcorrea/zope2/libenv/3.2/eggs/zopelib-2.10.7.0-py2.4-macosx-10.3-i386.egg/zope/configuration/xmlconfig.py", line 515, in include
processxmlfile(f, context)
File "/Users/fcorrea/zope2/libenv/3.2/eggs/zopelib-2.10.7.0-py2.4-macosx-10.3-i386.egg/zope/configuration/xmlconfig.py", line 370, in processxmlfile
parser.parse(src)
File "/Users/fcorrea/zope2/libenv/lib/python2.4/site-packages/PyXML-0.8.4-py2.4-macosx-10.3-i386.egg/_xmlplus/sax/expatreader.py", line 109, in parse
xmlreader.IncrementalParser.parse(self, source)
File "/Users/fcorrea/zope2/libenv/lib/python2.4/site-packages/PyXML-0.8.4-py2.4-macosx-10.3-i386.egg/_xmlplus/sax/xmlreader.py", line 123, in parse
self.feed(buffer)
File "/Users/fcorrea/zope2/libenv/lib/python2.4/site-packages/PyXML-0.8.4-py2.4-macosx-10.3-i386.egg/_xmlplus/sax/expatreader.py", line 216, in feed
self._parser.Parse(data, isFinal)
File "/Users/fcorrea/zope2/libenv/lib/python2.4/site-packages/PyXML-0.8.4-py2.4-macosx-10.3-i386.egg/_xmlplus/sax/expatreader.py", line 364, in end_element_ns
self._cont_handler.endElementNS(pair, None)
File "/Users/fcorrea/zope2/libenv/3.2/eggs/zopelib-2.10.7.0-py2.4-macosx-10.3-i386.egg/zope/configuration/xmlconfig.py", line 349, in endElementNS
self.context.end()
File "/Users/fcorrea/zope2/libenv/3.2/eggs/zopelib-2.10.7.0-py2.4-macosx-10.3-i386.egg/zope/configuration/config.py", line 544, in end
self.stack.pop().finish()
File "/Users/fcorrea/zope2/libenv/3.2/eggs/zopelib-2.10.7.0-py2.4-macosx-10.3-i386.egg/zope/configuration/config.py", line 692, in finish
actions = self.handler(context, **args)
File "/Users/fcorrea/zope2/libenv/3.2/eggs/zopelib-2.10.7.0-py2.4-macosx-10.3-i386.egg/zope/configuration/xmlconfig.py", line 515, in include
processxmlfile(f, context)
File "/Users/fcorrea/zope2/libenv/3.2/eggs/zopelib-2.10.7.0-py2.4-macosx-10.3-i386.egg/zope/configuration/xmlconfig.py", line 370, in processxmlfile
parser.parse(src)
File "/Users/fcorrea/zope2/libenv/lib/python2.4/site-packages/PyXML-0.8.4-py2.4-macosx-10.3-i386.egg/_xmlplus/sax/expatreader.py", line 109, in parse
xmlreader.IncrementalParser.parse(self, source)
File "/Users/fcorrea/zope2/libenv/lib/python2.4/site-packages/PyXML-0.8.4-py2.4-macosx-10.3-i386.egg/_xmlplus/sax/xmlreader.py", line 123, in parse
self.feed(buffer)
File "/Users/fcorrea/zope2/libenv/lib/python2.4/site-packages/PyXML-0.8.4-py2.4-macosx-10.3-i386.egg/_xmlplus/sax/expatreader.py", line 216, in feed
self._parser.Parse(data, isFinal)
File "/Users/fcorrea/zope2/libenv/lib/python2.4/site-packages/PyXML-0.8.4-py2.4-macosx-10.3-i386.egg/_xmlplus/sax/expatreader.py", line 364, in end_element_ns
self._cont_handler.endElementNS(pair, None)
File "/Users/fcorrea/zope2/libenv/3.2/eggs/zopelib-2.10.7.0-py2.4-macosx-10.3-i386.egg/zope/configuration/xmlconfig.py", line 349, in endElementNS
self.context.end()
File "/Users/fcorrea/zope2/libenv/3.2/eggs/zopelib-2.10.7.0-py2.4-macosx-10.3-i386.egg/zope/configuration/config.py", line 544, in end
self.stack.pop().finish()
File "/Users/fcorrea/zope2/libenv/3.2/eggs/zopelib-2.10.7.0-py2.4-macosx-10.3-i386.egg/zope/configuration/config.py", line 692, in finish
actions = self.handler(context, **args)
File "/Users/fcorrea/zope2/libenv/3.2/eggs/zopelib-2.10.7.0-py2.4-macosx-10.3-i386.egg/zope/app/component/contentdirective.py", line 77, in require
self.__mimic(_context, like_class)
File "/Users/fcorrea/zope2/libenv/3.2/eggs/zopelib-2.10.7.0-py2.4-macosx-10.3-i386.egg/Products/Five/metaconfigure.py", line 39, in __mimic
raise ConfigurationError('like_class parameter not supported.')
zope.configuration.xmlconfig.ZopeXMLConfigurationError: File "/Users/fcorrea/zope2/libenv/3.2/etc/site.zcml", line 18.2-18.47
ZopeXMLConfigurationError: File "/Users/fcorrea/zope2/libenv/3.2/src/liberiun.portal.content/liberiun/portal/content/configure.zcml", line 7.4-7.51
ZopeXMLConfigurationError: File "/Users/fcorrea/zope2/libenv/3.2/eggs/storm-0.14-py2.4-macosx-10.3-i386.egg/storm/zope/configure.zcml", line 32.8-32.67
ConfigurationError: like_class parameter not supported.
The store configuration used in configure.zcml was:
<!-- include storm configuration directives -->
<include package="storm.zope" files="*.zcml" />
<store name="storm.store"
uri="postgres://postgres@localhost/testdb"
/>
After replacing the following zcml in storm/zope/configure.zcml as James Henstridge suggested:
<class class="storm.references.BoundIndirectReferenceSet">
<require like_class="storm.references.BoundReferenceSet" />
</class>
By this:
<class class="storm.references.BoundIndirectReferenceSet">
<allow attributes="__iter__ find first last one any values order_by
count __contains__" />
</class>
The problem seems to be fixed
Small patch to make it work in both zope2 and zope3