wiki:GROUP_PLUGINS_ENABLE_DISABLE_R0

Version 3 (modified by pav, 16 years ago) (diff)

--

Error: Macro BackLinksMenu(None) failed
compressed data is corrupt

Error: Macro TicketQuery(summary=GROUP_PLUGINS_ENABLE_DISABLE_R0, format=table, col=summary|owner|status|type|component|priority|effort|importance, rows=description|analysis_owners|analysis_reviewers|analysis_score|design_owners|design_reviewers|design_score|implementation_owners|implementation_reviewers|implementation_score|test_owners|test_reviewers|test_score|) failed
current transaction is aborted, commands ignored until end of transaction block

Analysis

Overview

Plugins (or modules) are one of the main important parts which increase sophie platform flexibility and extensibility. The main purpose of this group of tasks is to provide functionality for enabling/disabling sophie modules while the application is running (in this revision the application has to be restarted to enable/disable a plugin). The config plugin palette will be improved to show more information about sophie plugins.

Task requirements

  • In the plugin config palette when you click a module name a button 'enable' or 'disable' has to be shown depending on the plugin state.
    • When enable/disable option is activated the effect will show after restarting sophie application.
    • If the selected plugin cannot be disabled because some of the plugins depends on it, it can't be disabled. The user has to be informed about it with a dialog.
    • If there are plugin dependencies which are needed for enabling the plugin they also become enabled after the restart.
    • (optional) Make a dialog with yes/no buttons so the user can choose what will be the behaviour when dependencies are shown.(i.e. if the plugin will be enabled with its dependencies or not enabled at all)
  • Some of the plugins can't be disabled in any case.(i.e. core.modularity or core). Think if there is a need to show these plugins on the config palette.
  • Internal managing/configuration of the plugins has to be implemented - this is connected with the upper functionality
  • Already implemented support of the sorting of plugins has to be reviewed and improved.
  • The about information of each plugin has to be updated and rewritten.

Task result

  • improved config palette
  • source code - tests and implementation

Implementation idea

  • Do not forget that there should be fake and true implementations of internal plugin configuration and managing.
  • Create new module where plugin manager should be implemented - it will take care of enabling/disabling of the plugins.
  • Research OSGI bundles and how to use them for dynamic plugin switching.

GROUP_PLUGINS_R0
APP_PLUGIN_MANAGER_LIST_R0
APP_PLUGIN_MANAGER_CONFIGURE_R0
PLUGIN_SUPPORT_LIB_BASE_R1

How to demo

(Provide instructions for demonstration of the task.)

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.)