beagle r4001 - in branches/beagle-cutting-edge-branch: Filters Util beagled beagled/FileSystemQueryable beagled/KMailQueryable tools tools/config-files



Author: dbera
Date: 2007-09-29 23:40:50 +0100 (Sat, 29 Sep 2007)
New Revision: 4001
ViewCVS link: http://svn.gnome.org/viewcvs/beagle?rev=4001&view=rev

Added:
   branches/beagle-cutting-edge-branch/Util/Config.cs
   branches/beagle-cutting-edge-branch/tools/config-files/
   branches/beagle-cutting-edge-branch/tools/config-files/BeagleSearch.xml
   branches/beagle-cutting-edge-branch/tools/config-files/Daemon.xml
   branches/beagle-cutting-edge-branch/tools/config-files/FilesQueryable.xml
   branches/beagle-cutting-edge-branch/tools/config-files/Networking.xml
Modified:
   branches/beagle-cutting-edge-branch/Filters/FilterMail.cs
   branches/beagle-cutting-edge-branch/Util/Conf.cs
   branches/beagle-cutting-edge-branch/Util/Makefile.am
   branches/beagle-cutting-edge-branch/Util/PathFinder.cs
   branches/beagle-cutting-edge-branch/Util/SystemInformation.cs
   branches/beagle-cutting-edge-branch/beagled/BeagleDaemon.cs
   branches/beagle-cutting-edge-branch/beagled/FileSystemQueryable/FileNameFilter.cs
   branches/beagle-cutting-edge-branch/beagled/FileSystemQueryable/FileSystemQueryable.cs
   branches/beagle-cutting-edge-branch/beagled/KMailQueryable/KMailIndexer.cs
   branches/beagle-cutting-edge-branch/beagled/QueryDriver.cs
   branches/beagle-cutting-edge-branch/beagled/RemoteControlExecutors.cs
   branches/beagle-cutting-edge-branch/beagled/Server.cs
   branches/beagle-cutting-edge-branch/beagled/Zeroconf.cs
   branches/beagle-cutting-edge-branch/tools/Config.cs
   branches/beagle-cutting-edge-branch/tools/Info.cs
   branches/beagle-cutting-edge-branch/tools/Makefile.am
Log:
Rewrite of configuration system. ** BEWARE ** The GUI parts and some backends will not compile **
Details:
* Configuration now belongs to the consumer and is not bunched at one place. Filters/backends/UIs can store their own configuration.
* Unified API for configuration (libbeagle API will come soon, it will mirror Beagle.Util.Config API). So even the KDE clients can reliably store/retrieve configuration items.
* Currently the files are stored as XML, because serialization/deseriazation is easy. Could be changed easily.
* Check the beginning comment in Util/Config.cs how to use get values using the new system. Its mostly similar, and generally requires about 1 to 3 extra lines.
* There can be a system-wide configuration file which will be overriden by the per-user file. Now all the hardcoded excludes can be moved to the system-wide config file.
* tools/config-files/*.xml will act as the schema for anyone wanting to see the config options
* Provide convenience routines in Config.cs:ConfigManager; use that as the gateway for all the configuration related methods.
* The only thing I dont like about this is the API doesnt fix any schema for the configuration options (unlike previous system). The consolation is the global config files will.
* It is important to run "make install" at least once in tools/ so that the global config files are copied. The system wont crash without it but might behave weirdly.

TODO:
- Make changes in beagle-settings
- Changes in beagle-search
- Changes in Evo* backends (or other backends that I dont build)
- libbeagle/python bindings API





[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]