Add-on Manager Design
Contents |
Purpose
Add-on manager is a tool to develop and manage add-ons for Apache OFBiz project.
An add-on is basically a set of changes to apply on an Apache OFBiz installation to provide a new feature. The changes may concern every parts of a typical OFBiz application : java files, entities, services, screens, menu, data, etc. The scope of an add-on can range from a small feature to a full new application.
Use Cases
Apache OFBiz User Use Cases
- Install add-ons on a fresh OFBiz installation
- the first addon
- created the add-on repository
- other addon on other files
- the first addon
- List all addons installed on a ofbiz installation
- Uninstall addon
- uninstall the last addon installed
- uninstall all the installed addon
- uninstall one addon from the list of installed addon
- install a list of addon
- list on webtools, all addons installed with the detailled description
- Update an add-on for which a new version is available
- uninstall, install
- add-on dependencies
- Install addon with an addon's dependencies (no modification on same files)
- Install addon with an addon's dependencies (modifications on same files)
- Install an addon with file modifications on an already modified file (a previous installed addon)
- Update OFBiz installation to a newer version
- uninstall all addon and save list
- update ofbiz
- re-initialize local addon repository
- install all addon from the save list
- List all addons installed but with a new version available
Some open questions that are not yet covered by use cases :
- How to locate existing add-ons ? neogia.org/addons
- How to handle multiple development / production environments (updates, consistency, etc) ? addon version management
- How to integrate add-ons in production release process ?
- How to handle installed add-ons in integrator version control ?
Add-on Developer Use Cases
- Create add-on
- Test add-on
- Update an add-on to a new version of OFBiz
Architecture
Add-on Manager Objects
- AddOnManager
- Repository
- Tree
- AddOn
- AddOnArchive
- Patch
- Registry
- RegisteredAddOn
Detail on .addon directory
Le répertoire .addons se trouve à la racine d'ofbiz.
Ce dossier contient en premier lieu les informations nécessaires à la gestion des add-ons installés :
- le fichier .addons/add-ons.xml liste les add-ons installés
- le dossier .addons/.db contient toutes les informations permettant de reconstruire l'arborescence d'ofbiz avant/après l'installation de chaque add-on
- le dossier .addons/.revert contient toutes les informations permettant de désinstaller un add-on
Ces informations sont spécifiques à une installation d'ofbiz. Elles dépendent de la version de départ d'ofbiz et des add-ons installés, et ne peuvent être partagées que si ces deux propriétés sont communes.
Le dossier .addons est aussi utilisé comme dossier par défaut pour stocker l'archive des add-on.
Registry Class Diagram
PatchService Class Diagram
Roadmap
addon-manager-1.0
add-on creation
| ok |
| add-on edition | ok |
| add-on installation | ok |
| add-on un-instal | ok |
| add-on publishing | ok |
addon-manager-1.1
- integrate add-on manager into ofbiz framework :
- add-on manager installer
- webtools integration :
- screens to list/find add-ons or updates
- screens to list installed add-ons
- setup screens
- integrate add-on installation into ofbiz build process and first run :
- recompile ofbiz after add-on installation
- apply database schema update
- insert seed-data
- run post-install actions :
- run setup screens
- run initialization services, data migration services, etc
- run add-on unit / integration tests
- allow installation of add-ons from remote repository
- basic add-on dependencies management (based on a dependency file)
- support semantic patch (property patch, entity patch, service patch, menu patch, screen patch)
addon-manager-1.2
- integration with version control





