Martijn Faasen helped me meanwhile to resolve this issue. The problem was that the Python package
was sitting directly in the Products/XXXX directory instead of Products/XXXX/src directory..this
caused obviously the confusion of the interface matching machinery.


--On Montag, 2. Mai 2005 18:42 Uhr +0200 Dominik Huber <[EMAIL PROTECTED]> wrote:

Andreas Jung wrote:


I restructured the TXNG 3 source so that the core implementation can
be used as package (within Zope 2.8/Five) far so good.

The configure.zcml under Products/TextIndexNG3 contains several
statements of the form:

<utility provides="textindexng.interfaces.IConverter" component="textindexng.converters.doc.DocConverter" name="application/" />

Inside a browser view class there is the following method:

   def get_converters(self):
       """ return all available converters """

       from import zapi
       from textindexng.interfaces import IConverter
       print [x for x in zapi.getUtilitiesFor(IConverter)]
       return zapi.getUtilitiesFor(IConverter)

But the getUtilitiesFor() call always returns nothing. In my case textindexng/interfaces contains several files with interfaces and all interfaces are aliased in interfaces/ The "textindexng" package itself lives unter Products/TextIndexNG3 and sys.path is extended in Products/TextIndexNG3/ to be able to import the "textindexng" package without the need to use "Products.TextIndexNG3" in any ideas why the utility machinery refuses to return the registered utilities for the given interface? A

Did you include the configure.zcml by a file (for example
textindexng-configure.zcml) within zope3/package-includes folder?

content of textindexng-configure.zcml
<include package="textindexng"/>

Dominik Huber

Attachment: pgp4e0ZkE9JsW.pgp
Description: PGP signature

Zope3-dev mailing list

Reply via email to