The following state diagram describes the various states plugins go through. While these states can be attributed to a given plugin, some states are relative to a given context. For example, a plugin may be enabled in one context and disabled in another.
The red arrows indicate state transitions which are currently not possible or require the platform to be shutdown and restarted.The events that triggers state changes can be partitioned into three sets relative to the action and the processing done in response to the events. For example, few plugins are interested in the "installation" or "configuration" events. And, the reaction to a "deactivation" event is likely different than the processing of an "unresolved" event. These event are typically triggered from different roles within the system. For example, someone installing plugins causes install, configure, enable events while system startup triggers resolution and system execution kicks off activation events. The resulting partitions are: