Version 2 (modified by boyan, 16 years ago) (diff) |
---|
Analysis
Overview
This group of tasks is about providing internal support for plugin configuration that is needed for the release of the pre-alpha-4 version. A library supporting plugin configuration should be written and its use should be demonstrated.
Task requirements
- Provide an API for dealing with shared resources:
- Resources that will be used by the application should go in the /src/main/resources/distrib folder of each module.
- A resource manager should be implemented - it should be able to get these resources.
- All existing static paths should be changed to use the newly written functionality.
- Both the Fake and True launchers should correctly handle these.
- Provide an API that allows some kind of plugin configuration:
- Define how plugins will be configured.
- Provide the classes/iterfaces necessary for plugin configuration support.
- Choose a plugin that will be configured and define what will be configured about it.
- Add a plugin configuration palette to the application:
- Make sure it works in the TrueAuthorMain (currently the plugin info palette that exist works in the FakeAuthor only).
- It should allow configuring of the selected plugin if the plugin supports it.
- At least one plugin should be configurable at this iteration.
Task result
Source code
Implementation idea
- Consider using a config file for each plugin and loading it as a resource.
- See if you can use the OSGi plugin configuration service.
- A plugin might provide a list of all configuration options that can be configured (just a list, no GUI elements).
- Another option is for the plugin to provide the GUI configuration elements - a panel, dialogs or whatever is needed.
Related
PLUGIN_SUPPORT_LIB_BASE_R1
APP_PLUGIN_MANAGER_CONFIGURE_R0
How to demo
- Configure a plugin from the plugin configuration palette.
- Show and briefly describe the code of the plugin support library.
Design
Describe your design here.
Implementation
Describe and link the implementation results here (from the wiki or the repository).
Testing
Place the testing results here.
Comments
Write comments for this or later revisions here.