Structure
Any repository with a plugin.xml and plugin.properties files is considered as a plugin by GroIMP.
To be properly loadable though, the plugin.xml needs to include:
<?xml version="1.0" encoding="UTF-8"?> <plugin id="your.plugin.id" version="x.x" xmlns="http://grogra.de/registry" >
where plugin id and version need to be filled with the plugin information.
A plugin has to have a special directory layout. The layout depends on how you run GroIMP. There are currently two layout:
- As compiled plugin.
- As compiled classes.
In the compiled version of GroIMP (the one deployed and installed with the executable files) the plugins are loaded as:
- MyPlugin
- MyPlugin.jar
- plugin.properties
- plugin.xml
- doc/
- dependencies.jar …
In the development version of GroIMP (usually what you get from the source code, and using the –project-tree argument) the plugins are loaded as:
- MyPlugin
- target
- classes
- plugin.properties
- plugin.xml
- <compiled class files>
- <additional files copied from the src-directory>
- lib
- <needed jar-files>
Important: Note that the files plugin.xml, and plugin.properties are required.
By default GroIMP load plugins from its root/plugins directory. During development, usually the –project-tree argument is used, making GroIMP load plugin from the same directory as the needed GroIMP plugins and projects (e.g., Graph, XL-Core, IMP-3D, …). It is also possible to set an additional directory where GroIMP look for plugins in the GroIMP preferences. Or by passing the command line argument -p when starting groimp.
