PluginConcept » History » Version 9
Version 8 (J. Moringen, 06/27/2011 05:13 AM) → Version 9/10 (J. Moringen, 09/15/2011 05:28 PM)
h1. Plugins
{{>toc}}
h2. 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 [[Configuration|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
h2. 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 searched
** @plugins.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:
<pre>
[plugins.cpp]
path = /vol/vampire/lib:/vol/cor/lib
load = rsbspread:rsbvampire # no filetype suffix
</pre>
<pre>
RSB_PLUGINS_CPP_PATH=/vol/cor/lib
</pre>
h2. Java Plugins
* Are Jar files?
* Configuration via options
** @plugins.java.path@
** @plugins.java.load@: Colon separated list of plugins that should be loaded.
h2. Python Plugins
* Are eggs?
* Configuration via options
** @plugins.python.path@: @plugins.lisp.path@: Colon separated list of directories which get added to @sys.path@?
** @plugins.python.load@: @plugins.lisp.load@: Colon separated list of plugins that should be loaded.
h2. Common Lisp Plugins
* Are "ASDF-Systems":http://common-lisp.net/project/asdf/
* Configuration via options
** @plugins.lisp.path@
** @plugins.lisp.load@: Colon separated list of plugins that should be loaded.
h2. 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
{{>toc}}
h2. 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 [[Configuration|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
h2. 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 searched
** @plugins.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:
<pre>
[plugins.cpp]
path = /vol/vampire/lib:/vol/cor/lib
load = rsbspread:rsbvampire # no filetype suffix
</pre>
<pre>
RSB_PLUGINS_CPP_PATH=/vol/cor/lib
</pre>
h2. Java Plugins
* Are Jar files?
* Configuration via options
** @plugins.java.path@
** @plugins.java.load@: Colon separated list of plugins that should be loaded.
h2. Python Plugins
* Are eggs?
* Configuration via options
** @plugins.python.path@: @plugins.lisp.path@: Colon separated list of directories which get added to @sys.path@?
** @plugins.python.load@: @plugins.lisp.load@: Colon separated list of plugins that should be loaded.
h2. Common Lisp Plugins
* Are "ASDF-Systems":http://common-lisp.net/project/asdf/
* Configuration via options
** @plugins.lisp.path@
** @plugins.lisp.load@: Colon separated list of plugins that should be loaded.
h2. 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