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 |