PluginConcept » History » Version 6

J. Moringen, 05/26/2011 08:28 PM
added other languages

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