[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