Plugin Overview

Qcadoo application plugin is a ordinary Maven project.

Project structure

Please find attached file as a base of the new plugin. 

  • src/main/java/pluginpackage/
  • src/main/resources/pluginidentifier/locales/pluginidentifier_en.properties
  • src/main/resources/pluginidentifier/model/*.xml
  • src/main/resources/pluginidentifier/view/*.xml
  • src/main/resources/pluginidentifier/public/css/
  • src/main/resources/pluginidentifier/public/img/
  • src/main/resources/pluginidentifier/public/js/
  • src/main/resources/WEB-INF/jsp/pluginidentifier/
  • src/main/resources/root-context.xml
  • src/main/resources/web-context.xml
  • src/main/resources/qcadoo-plugin.xml
  • pom.xml 

Plugin inner structure

There is a plugin inner structure on the picture below.

Plugin state flow

There is a plugin state flow on the picture below.

Plugin state transitions

All operations below check plugin dependencies, framework version and other conditions. When all conditions are met then operation succeed, otherwise failed and appropriate state is returned. More infromations you could find in QCADOO API.

  • Download
    • This operation download plugin jar file to the application tmp directory and create database record on the data in plugin descriptor with state "temporary". After this operation jar views aren't active.
  • Install
    • This operation move plugin jar file from the application tmp directory to the application context and change database record state to the "enabled". After this operation server is restarted. When server starts up plugin jar file is deployed. After this operation jar views are active.
  • Disable
    • This operation change database record state to the "disabled". After this operation jar views aren't active.
  • Enable
    • This operation change database record state to the "enabled". After this operation jar views are active.
  • Uninstall
    • This operation remove plugin jar file and its deployed resources from the application context and delete database record.
      After this operation server is restarted and jar views aren't active.
  • Update
    • This operation check the plugin version, if its version is lower than in plugin jar file, operation can update plugin. After this check old plugin jar file and its deployed resources are removed from the application context. New plugin jar is downloaded to the application context and database record version is changed to this from plugin jar file. Plugin state is exactly the same as before update. After this operation server could be restarted. When server starts up plugin jar file is deployed. After deploy jar views are active if state is "enabled".