[Zope-dev] Changes to ZCatalog

Casey Duncan casey@zope.com
12 Jun 2002 12:58:53 -0400


I made several changes yesterday to ZCatalog that may be of interest to
you if you have a product that subclasses or embeds ZCatalogs/Catalogs.

For eternity, ZCatalog has, when instantiated, created a set of
predefined indexes and metadata. Back in the day when we had only three
index types, this made some sense. Also, some of the indexes were less
than useful. For instance, bobobase_modification_time is really too low
level to be used for what the Catalog suggests we use it for. Summary
only exists in CatalogAware objects, etc. etc. Now that we have plug-in
indexes, it makes even less sense to guess what people are going to use
their catalogs for.

The current code in the trunk no longer populates the ZCatalog with a
predefined set of indexes or metadata. It is up to the user or
application to do this now. Realizing that some products may rely on
this behavior, I am sending this warning so that you have an opportunity
to test it for yourself.

Another anachronism in the Catalog was that it automatically created and
maintained a reference to a Vocabulary/Lexicon object to be used by the
TextIndexes. Now that we have 3 different kinds of TextIndex available,
one of which (ZCTextIndex) does not even use the same type of lexicon
objects, this makes no sense anymore. Besides the fact that TextIndex
already can manage its vocabulary association by itself anyhow.

So, I have removed the dependency of Catalog on Vocabulary. Catalogs no
longer store a reference to or care about vocabularies. Also, vocabulary
objects are not created or chosen when instantiating a new ZCatalog.
Like with indexes, this is now up to the user or application code.

-Casey