Vladimir Ozerov created IGNITE-1108:
---------------------------------------
Summary: Additional lifecycle callbacks in PluginProvider
interface.
Key: IGNITE-1108
URL: https://issues.apache.org/jira/browse/IGNITE-1108
Project: Ignite
Issue Type: Task
Components: general
Affects Versions: 1.1.4
Reporter: Vladimir Ozerov
Priority: Critical
Fix For: sprint-7
Currently plugins are started at the very end of start process, and they are
stopped before all other components.
This is a problem because sometimes we need to stop plugin AFTER all other
components. not BEFORE. E.g. consider a plugin which provides an environment
for custom cache store, and this store has "write-behind" enabled. In this case
we will stop plugin before write-behind store flushed all data what leads to
unexpected behavior.
It seems that we must provide more callbacks so that plugins could be notified
both before and after all other components are started/stopped.
Proposed design:
1) Start:
- PluginProvider.onBeforeStart() - called from IgnitePluginProcessor.start();
- PluginProvider.start() - already exists, unchanged;
- PluginProvider.onAfterStart() - just rename onIgniteStart() for consistency
with onBeforeStart();
2) Stop procedure is mirrored from start: onBeforeStop(), stop(), onAfterStop().
3) Introduce PluginProviderAdapter where methods will be no-op. This way user
plugins will continue compile in case of further changes to PluginProvider
interfaces provided that method names are unchanged.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)