Details

    Description

      Plugins need to be able to execute explicit installation/uninstallation/update code. At least, this is necessary to install/uninstall/update the plugin's DB subschema, but maybe we will also automatically maintain a plugin's settings. Maybe we also need it for other aspects.

      I want to do it like this:
      - MP tracks collections of installed, uninstalled and disabled plugins
      - To install a plugin, it simply has to be present in the plugins directory -> MP will automatically execute its installation code (if present) and start it if it is not contained in the collection of uninstalled plugins
      - To uninstall it, MP will stop it, explicitly execute the uninstall code of the plugin (if present) and will put it in the collection of uninstalled plugins
      - MP will skip loading plugins which are in the collection of uninstalled plugins
      - If the plugin directory gets removed, MP will delete the plugin from the collection of uninstalled plugins. If it is contained in the collection of installed plugins, MP will give a warning: "plugin was removed and not uninstalled"
      - We need a cleanup mechanism to remove directories of uninstalled plugins (maybe at system start)
      - The collection of installed plugins tracks their plugin id and version -> so it is possible to track plugin updates
      - A plugin update is simply an overwrite of the old plugin's directory. MP will automatically track the new version number and call its update code (if present).
      - To provide the install/uninstall/update code, the plugin descriptor gets an additional "Deployment" element which contains a reference to a deployment class containing the installation/uninstallation/update code, similar to the "Runtime" element

      Attachments

        Activity

          People

            morpheus_xx morpheus_xx
            Albert78 Daniel Hoeh (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated: