freeride-devel
[Top][All Lists]
Advanced

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

[FR-devel] Status of plugin failure handling, logging, property values.


From: Rich Kilmer
Subject: [FR-devel] Status of plugin failure handling, logging, property values.
Date: Tue, 12 Nov 2002 00:32:36 -0500

Team,

I finished in the abilty for FreeBASE to handle failed plugin
load/starts gracefully.  If a plugin fails to load (because of a failed
require statement like ripper.rb ;-) it will perform a
transition_failure.  If this happens, the Configuration object will
remove it from the load list, and all plugins that are dependent on it
(cascading to other dependencies).  It will also remove those same
plugins from the start list (since you cannot start if you did not
load).  It will report whatever exception occurs to the log file (full
stack trace) for dubugging.

Speaking of which...I enabled logging levels and set the logging level
to 2 (was 0).  This disables all DEBUG log messages (which at least adds
20kb of log data per run).  There is now very little data written out.
To use this you need to delete your config/properties.yaml file and
check out the new default.yaml file.  This will ensure that your
config/properties.yaml file is rebuilt from the default.  If you want to
reenable DEBUG messages later just set the log level to 0 again (in your
config/properties.yaml file).

Back to plugins dependencies...if all loads work, yet a plugin fails to
start (exception, etc) it will create the same sort of cascade effect
but only for the start list (since loading worked already).

One last thing...properties no longer have to be just Strings.  One nice
thing about the move to YAML for properties is we get correct round-trip
on property values so I don't have to force them to be strings (then
cast them back in code).  Feel free to set properties to booleans,
integers, strings, or even hashes and arrays.

_______________________________
Rich Kilmer, InfoEther LLC
trap("SIGINT") { raise [104, 101, 108, 108].pack("cccc") }






reply via email to

[Prev in Thread] Current Thread [Next in Thread]