[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
[equinox-dev] dynamic plugins
|
Please excuse me if this has been addressed already. In which case just
point me to the relevant info.
As we move forward, I believe it is a generally accepted goal that we want
to be able to support 'live' install/update of plugins in the platform
instead of having to restart when we change the configuration. And in a
sense we already can do that, with care.
One of the hurdles to overcome to make this a reality is the fact that
individual plugins themselves sometimes may need to be rewritten in order
to be 'dynamic'. That is, they need to be a) able to startup/shutdown
independent of the platform lifecycle and b) either insulated against
changes to the configuration or appropriately responsive to changes via
listener/event model.
When a configuration is changed, currently we just assume (rightly so) that
many if not most plugins will not meet these conditions and simply do a
restart.
In the future, how do we know that all plugins meet these conditions?
It seems we should have an attribute added to the eclipse plugin.xml that
indicates a plugin is 'dynamic', that it says it can work just fine with
dynamic changes to the configuration. The way things would work then is
that, upon a configuration change, before ordering the the platform
restart, we would look at all the plugins in the new configuration. If ALL
of them had 'dynamic="true"', then we would simply do the appropriate
install/uninstalls to realize the new configuration. If any of the plugins
did not have this set, we would do a restart.
This is probably an oversimplification. My main concern here is that I
think we need to have some indication in the plugin.xml that indicates
compatibility with dynamic configuration changes. This is a packaging
issue that I need to start getting into plan for us.
Comments?
-mel