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
Download
- This operation download plugin jar file to the application tmp directory and create database record on the data in plugin descriptor with status "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 status 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.
Deactivate
- This operation change database record status to the "disabled". After this operation jar views aren't active.
Activate
- This operation change database record status 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.
- This operation remove plugin jar file and its deployed resources from the application context and delete database record.
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 status is exactly the same as before update. After this operation server is restarted. When server starts up plugin jar file is deployed. After deploy jar views are active.