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 |