PluginConcept » History » Version 8

J. Moringen, 06/27/2011 05:13 AM
fixed headlines

1 8 J. Moringen
h1. Plugins
2 1 J. Wienke
3 1 J. Wienke
{{>toc}}
4 8 J. Moringen
5 8 J. Moringen
h2. Overview
6 7 J. Moringen
7 2 J. Moringen
* Plugins are loaded at initialization time
8 2 J. Moringen
** This means, registration of provided converters and connectors happens during initialization
9 2 J. Moringen
** This is required in order for RSB to be able inquire about capabilities and configuration of converters and connectors
10 2 J. Moringen
* Selection and loading of plugins is configured using the [[Configuration|usual mechanism]]
11 2 J. Moringen
** An implementation-language-specific section configures
12 2 J. Moringen
*** Means of locating plugins (e.g. searchpath, classpath, PYTHONPATH)
13 2 J. Moringen
*** Names of the plugins that should be loaded
14 2 J. Moringen
15 2 J. Moringen
h2. C++ Plugins
16 2 J. Moringen
17 2 J. Moringen
* Are shared objects
18 2 J. Moringen
* Configuration via options
19 5 J. Moringen
** @plugins.cpp.path@: Colon separated list of directories in which expanded (e.g. @rsbspread DIRECTORY/librsbspread.so@ on linux) plugin libraries will be searched
20 5 J. Moringen
** @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")
21 2 J. Moringen
22 3 J. Moringen
Configuration Examples:
23 2 J. Moringen
<pre>
24 3 J. Moringen
[plugins.cpp]
25 1 J. Wienke
path = /vol/vampire/lib:/vol/cor/lib
26 5 J. Moringen
load = rsbspread:rsbvampire     # no filetype suffix
27 3 J. Moringen
</pre>
28 3 J. Moringen
29 3 J. Moringen
<pre>
30 3 J. Moringen
RSB_PLUGINS_CPP_PATH=/vol/cor/lib
31 2 J. Moringen
</pre>
32 4 J. Moringen
33 6 J. Moringen
h2. Java Plugins
34 6 J. Moringen
35 6 J. Moringen
* Are Jar files?
36 6 J. Moringen
* Configuration via options
37 6 J. Moringen
** @plugins.java.path@
38 6 J. Moringen
** @plugins.java.load@: Colon separated list of plugins that should be loaded.
39 6 J. Moringen
40 6 J. Moringen
h2. Python Plugins
41 6 J. Moringen
42 6 J. Moringen
* Are eggs?
43 6 J. Moringen
* Configuration via options
44 6 J. Moringen
** @plugins.lisp.path@: Colon separated list of directories which get added to @sys.path@?
45 6 J. Moringen
** @plugins.lisp.load@: Colon separated list of plugins that should be loaded.
46 6 J. Moringen
47 6 J. Moringen
h2. Common Lisp Plugins
48 6 J. Moringen
49 6 J. Moringen
* Are "ASDF-Systems":http://common-lisp.net/project/asdf/
50 6 J. Moringen
* Configuration via options
51 6 J. Moringen
** @plugins.lisp.path@
52 6 J. Moringen
** @plugins.lisp.load@: Colon separated list of plugins that should be loaded.
53 6 J. Moringen
54 5 J. Moringen
h2. Interaction with Introspection of Configuration Options
55 4 J. Moringen
56 4 J. Moringen
The following protocol should be sufficient
57 4 J. Moringen
58 4 J. Moringen
# Setup fundamental configuration options (debugging, plugin loading, etc.)
59 4 J. Moringen
# Process configuration sources
60 4 J. Moringen
# Load requested plugins
61 4 J. Moringen
#* Plugins register connector implementations, converters, etc.
62 4 J. Moringen
# Introspect connector implementations to discover additional configuration options
63 4 J. Moringen
# Update configuration options
64 4 J. Moringen
# Process configuration sources again