* Implemneted saving the plugin bundle on the file store upon plugin upload
* Fixed compilation error
* Fixed compilation issue
* Added deletion from file store upon plugin uninstall
* Added condition to delete from store only when exists. Added case of saving the bundle to the store when uploading from url. Added checks in plugin tests
* Fixed compilation error
* Moved storage of plugin bundle within app/installPlugin
* Moved storing to filestore before enabling the plugin
* Fixed error handling
* Code styling improvements
* Minor styling fix
* Move State property from activePlugin to PluginHealthStatus. env.activePlugins is now reserved for healthy running plugins.
* Add comments for function declarations
* Combine activePlugins and pluginHealthStatuses into a common structure, registeredPlugins
* Add check to see if plugin is active before deactivating it
* Make `Deactivate` set plugin status
* Add comment explaining the `registeredPlugins` map
* Give responsibility to set plugin disabled status upon deactivation back to `env.Deactivate`
* check if plugin needs to be deactivated before setting status
* guard app plugins with mutex
Shutting down the app could race with a goroutine that uses the plugins environment, since we shut down the plugins first before cleaning up goroutines.
* fix go vet issues
* Moving goroutine pool
* Auto refactor
* Moving plugins.
* Auto refactor
* Moving fields to server
* Auto refactor
* Removing siteurl duplication.
* Moving reset of app fields
* Auto refactor
* Formatting
* Moving niling of Server to after last use
* Fixing unit tests.
Plugins that listen for config changes might incorrectly re-register
their commands before being /actually/ deactivated, leaving the new
commands alive thereafter.
* clean up plugins GoDoc:
- eliminate plugin.NewBlankContext() as unnecessary
- export ValidIdRegex as a string vs. the less readable var
- add/update various documentation strings
- hide everything by default, except where used by client plugins or the mattermost-server. The exception to this rule are the `*(Args|Returns)` structs which must be public for go-plugin, but are now prefixed with `Z_` with a warning not to use.
- include a top-level example to get plugin authors started
This is not a breaking change for existing plugins compiled against
plugins-v2.
* remove commented out ServeHTTPResponseWriter
* update examples to match developer docs
* add missing plugin/doc.go license header