PluginConcept » History » Version 6
« Previous -
Version 6/10
(diff) -
Next » -
Current version
J. Moringen, 05/26/2011 08:28 PM
added other languages
Overview¶
- Plugins are loaded at initialization time
- This means, registration of provided converters and connectors happens during initialization
- This is required in order for RSB to be able inquire about capabilities and configuration of converters and connectors
- Selection and loading of plugins is configured using the usual mechanism
- An implementation-language-specific section configures
- Means of locating plugins (e.g. searchpath, classpath, PYTHONPATH)
- Names of the plugins that should be loaded
- An implementation-language-specific section configures
C++ Plugins¶
- Are shared objects
- Configuration via options
plugins.cpp.path
: Colon separated list of directories in which expanded (e.g.rsbspread DIRECTORY/librsbspread.so
on linux) plugin libraries will be searchedplugins.cpp.load
: Colon separated list of plugins that should be loaded. (Names do not include prefixes like "lib" of suffixes like ".so" or ".dll")
Configuration Examples:
[plugins.cpp] path = /vol/vampire/lib:/vol/cor/lib load = rsbspread:rsbvampire # no filetype suffix
RSB_PLUGINS_CPP_PATH=/vol/cor/lib
Java Plugins¶
- Are Jar files?
- Configuration via options
plugins.java.path
plugins.java.load
: Colon separated list of plugins that should be loaded.
Python Plugins¶
- Are eggs?
- Configuration via options
plugins.lisp.path
: Colon separated list of directories which get added tosys.path
?plugins.lisp.load
: Colon separated list of plugins that should be loaded.
Common Lisp Plugins¶
- Are ASDF-Systems
- Configuration via options
plugins.lisp.path
plugins.lisp.load
: Colon separated list of plugins that should be loaded.
Interaction with Introspection of Configuration Options¶
The following protocol should be sufficient
- Setup fundamental configuration options (debugging, plugin loading, etc.)
- Process configuration sources
- Load requested plugins
- Plugins register connector implementations, converters, etc.
- Introspect connector implementations to discover additional configuration options
- Update configuration options
- Process configuration sources again