[Zope] HOWTO: Using Xron on Zope 2.4.x

Jean Jordaan jean@upfrontsystems.co.za
Sun, 16 Dec 2001 17:34:08 +0200


Hi all .. I struggled with this myself today, so I summed up the
wisdom of the archives for those who come after ;)

To use Xron on Zope 2.4.x, some hackery is required ..

1. Import DateTime correctly. Instead of:

        from Globals import DateTime

   do this:

        from DateTime import DateTime

   You need to do that once each in 'Dispatcher.py' and in
'XronDTMLMethod.py'

2. Implement the patches in this thread:
   http://lists.zope.org/pipermail/zope-dev/2001-July/012486.html

   In short: you need to do this:

     from Products.PluginIndexes.FieldIndex.FieldIndex import FieldIndex

   and instead of this:

    self._catalog.addIndex('name', 'FieldIndex')

   you now need to do this in a couple of places:

    self._catalog.addIndex('name', UnIndex('name'))

3. Follow the workaround described here:
   http://lists.zope.org/pipermail/zope/2001-April/087151.html

   (To get around bad interaction between Xron and 'Z2.py' on startup.)
   This is a drag. It has to happen every time you restart Zope. Yawn. I
   tried to mitigate it by running something like this::

    cd lib/python/Products/Xron
    mv __init__.py __init__.py.not
    rm -f __init__.pyc
    cd ../../../../

   (which I called called './xron_begone') from './start'.
   Then call
   http://server/Control_Panel/Products/Xron/manage_performRefresh
   and finally run './xron_comeback', which is the inverse of
   './xron_begone'. (Anyone have any better suggestions?)

4. Slay the dragon hinted at here:
   http://lists.zope.org/pipermail/zope-dev/2001-July/012502.html

   AFAIK, this is fixed by providing authentication information in
   'Dispatcher.py'::

     (headers,response)=rpc(furl,'username','password') # Fire event

You should now be running Xron without any more problems. Unless I
missed something, of course! Corrections and elaborations welcome.

Regards,
Jean Jordaan