ignite-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Nikolay Tikhonov (JIRA)" <j...@apache.org>
Subject [jira] [Comment Edited] (IGNITE-1108) Additional lifecycle callbacks in PluginProvider interface.
Date Tue, 11 Aug 2015 14:44:45 GMT

    [ https://issues.apache.org/jira/browse/IGNITE-1108?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14681781#comment-14681781

Nikolay Tikhonov edited comment on IGNITE-1108 at 8/11/15 2:44 PM:

Thank you for review! I've fixed notes. Pls, look again.

was (Author: ntikhonov):
Thanks for your review! I've fixed notes. Pls, look again.

> 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
>            Assignee: Nikolay Tikhonov
>            Priority: Critical
>             Fix For: ignite-1.4
>         Attachments: ignite-1108.patch
> 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

View raw message