Detect changes to plugin zip files (i.e use a glob pattern like /plugins/*.zip)
Process them by:
Extract the ZIP contents to a shadow directory
Read the manifest to identify the plugin
Unloading the currently loaded ALC for the plugin (if for example a currently loaded plugin is being updated)
Load the plugin from the shadow directory into a new ALC.
This pipeline will take input glob to watch for plugins: e.g '/plugins/*.zip'
This pipeline will allow an implementation of IPluginEvents to be passed, which will allow the caller to hook into following events:
Plugin detected
Plugin Extracted
Plugin being unloaded
Plugin unloaded
Plugin being loaded
Plugin loaded
These events will allow:
Caller could send notification events to update status of plugin installation.
Caller could do some additional unloading / cleanup when a module is being unloaded (could perhaps support allowing the plugin itself to run some actions pre unload)
Caller could take some actions immediately after new plugin is loaded.
Caller can configure which module contents to expose as StaticFiles? and which to expose via Content IFileProvider.
Create a pipeline that can:-
This pipeline will take input glob to watch for plugins: e.g '/plugins/*.zip' This pipeline will allow an implementation of
IPluginEvents
to be passed, which will allow the caller to hook into following events:These events will allow:
Caller could send notification events to update status of plugin installation. Caller could do some additional unloading / cleanup when a module is being unloaded (could perhaps support allowing the plugin itself to run some actions pre unload) Caller could take some actions immediately after new plugin is loaded. Caller can configure which module contents to expose as StaticFiles? and which to expose via Content IFileProvider.