Add-on Manager/fr
Contents |
Comment compiler l'Add-on Manager
Prerequisites:
- Linux, Mac (Windows not yet tested)
- cvs
- jdk 1.6
- maven 2
Checkout:
export CVSROOT=:ext:user@cvs.labs.libre-entreprise.org:/cvsroot/neogia cvs co addonmanager
Compilation:
cd addonmanager mvn clean install
Final jar generation:
cd addonmanager-cli mvn assembly:assembly -DdescriptorId=jar-with-dependencies
Comment installer le gestionnaire d'Addon
Vous pouvez compiler l'addon manager via la procédure décrite ci-dessus ou vous pouvez utiliser une version déjà compilée qui se trouve à la racine du projet ofbizAddon (il contient quelques addons)
alias adm='java -jar <path_to_addonmanager>/addonmanager/addonmanager-cli/target/addonmanager.jar'
Astuce
Auto-complétion (Ne marche pas pour le moment, à finir)
Pour avoir l'auto-complétion avec le gestionnaire d'addon vous pouvez ajouter à votre /etc/bash_completion la partie suivante :
# adm completion
_adm_options() {
local cur prev
COMPREPLY=()
cur=`_get_cword`
prev=${COMP_WORDS[COMP_CWORD-1]}
# no more option needed
case $prev in
uninstall-all)
return 0
;;
init)
return 0
;;
list)
return 0
;;
status)
return 0
;;
esac
# there is yet an option so we just do a file complete
if [ $COMP_CWORD -ge 2 ]; then
_filedir
return 0
fi
# else no option are given
COMPREPLY=( $( compgen -W 'init install uninstall uninstall-all list\
status diff revert new-addon add-file remove-file seal' -- $cur ) )
}
complete -F _adm_options $filenames adm
et vérifier dans ~/.bashrc que les lignes suivantes sont décommentées ou présentes :
if [ -f /etc/bash_completion ]; then
. /etc/bash_completion
fi
Ajout de tous les fichiers modifiés
Pour ajouter en une commande tous les fichiers modifié la commande suivante suffit :
adm status | grep -v "Add-On Manager for " | cut -d" " -f 3 | xargs java -jar /chemin/vers/addonmanager/addonmanager.jar add-file
How to create an Add-on
- Checkout a fresh ofbiz tree and prepare a new add-on:
cd ofbiz adm new-addon my-addon
- Implement the add-on's feature directly in ofbiz tree
- List all files modified since last add-on creation :
adm status
- Add each file modified for the add-on's feature to the list of files modified by add-on =
adm add-file <file path>
- Once the add-on is considered feature-complete, you must give a version number to the add-on
adm seal 1.0
The last command will generate a file .addons/my-addon-1.0.zip that contains all patchs required to install the add-on on a fresh ofbiz installation.
example
For manager supported commands:
youssef@goree:~/CompactWS/ofbizforaddon$ adm help [INFO] Add-On Manager for /home/youssef/CompactWS/ofbizforaddon [INFO] Usage: java -jar org.neogia.addonmanager.AddOnManager command [command args] [INFO] [INFO] Supported Commands : [INFO] - init [INFO] - install <addon-path> [INFO] - uninstall <addon-name> [INFO] - list [INFO] - status [INFO] - diff <path> [<path> [<path> ...]] [INFO] - revert <path> [<path> [<path> ...]] [INFO] - new-addon [-d addon-location] <addon-name> [INFO] - add-file [-f] <path> [<path> [...]] [INFO] - remove-file [-f] <path> [<path> [...]] [INFO] - seal <version>
This example demonstrate how alternate-config add-on has been created :
Peter@garfield:~/Projects/ofbiz$ svn status Peter@garfield:~/Projects/ofbiz$ adm new-addon alternate-config [INFO] Add-On Manager for /Users/Peter/Projects/ofbiz [INFO] Initializing registry ... [INFO] Indexing ofbiz tree ... [INFO] Initializing repository database ... [INFO] Add-on alternate-config registered Peter@garfield:~/Projects/ofbiz$ patch -p0 < ../alternate-config-addon.patch2 patching file framework/start/src/org/ofbiz/base/start/install.properties patching file framework/start/src/org/ofbiz/base/start/rmi.properties patching file framework/start/src/org/ofbiz/base/start/start.properties patching file framework/start/src/org/ofbiz/base/start/jetty.properties patching file framework/start/src/org/ofbiz/base/start/test.properties patching file framework/start/src/org/ofbiz/base/start/setup.properties patching file framework/start/src/org/ofbiz/base/start/pos.properties patching file framework/start/src/org/ofbiz/base/start/Start.java Peter@garfield:~/Projects/ofbiz$ adm status [INFO] Add-On Manager for /Users/Peter/Projects/ofbiz [INFO] M framework/start/src/org/ofbiz/base/start/Start.java [INFO] M framework/start/src/org/ofbiz/base/start/install.properties [INFO] M framework/start/src/org/ofbiz/base/start/jetty.properties [INFO] M framework/start/src/org/ofbiz/base/start/pos.properties [INFO] M framework/start/src/org/ofbiz/base/start/rmi.properties [INFO] M framework/start/src/org/ofbiz/base/start/setup.properties [INFO] M framework/start/src/org/ofbiz/base/start/start.properties [INFO] M framework/start/src/org/ofbiz/base/start/test.properties Peter@garfield:~/Projects/ofbiz$ adm add-file framework/start/src/org/ofbiz/base/start/Start.java [INFO] Add-On Manager for /Users/Peter/Projects/ofbiz [INFO] P framework/start/src/org/ofbiz/base/start/Start.java Peter@garfield:~/Projects/ofbiz$ adm add-file framework/start/src/org/ofbiz/base/start/*.properties [INFO] Add-On Manager for /Users/Peter/Projects/ofbiz [INFO] P framework/start/src/org/ofbiz/base/start/install.properties [INFO] P framework/start/src/org/ofbiz/base/start/jetty.properties [INFO] P framework/start/src/org/ofbiz/base/start/pos.properties [INFO] P framework/start/src/org/ofbiz/base/start/rmi.properties [INFO] P framework/start/src/org/ofbiz/base/start/setup.properties [INFO] P framework/start/src/org/ofbiz/base/start/start.properties [INFO] P framework/start/src/org/ofbiz/base/start/test.properties Peter@garfield:~/Projects/ofbiz$ adm status [INFO] Add-On Manager for /Users/Peter/Projects/ofbiz Peter@garfield:~/Projects/ofbiz$ adm seal 1.0 [INFO] Add-On Manager for /Users/Peter/Projects/ofbiz [INFO] add-on 'alternate-config' sealed to version '1.0' Peter@garfield:~/Projects/ofbiz$ ls -l .addons/ total 32 -rw-r--r-- 1 Peter staff 111 7 mar 16:54 add-ons.xml drwxr-xr-x 4 Peter staff 136 7 mar 16:53 alternate-config -rw-r--r-- 1 Peter staff 4914 7 mar 16:54 alternate-config-1.0.zip -rw-r--r-- 1 Peter staff 281 7 mar 16:51 default-exclude-filters.txt Peter@garfield:~/Projects/ofbiz$
Advice, Howto use (cf Mail form Peter Goron 10/04/2009)
Il n'est plus possible d'ajouter des fichiers à ton add-on sûrement parce qu'il est au statut "sealed". Un add-on est au statut sealed dès lors qu'il est packagé sous la forme d'un fichier .zip.
Je vais profiter de ton mail pour préciser un peu le fonctionnement de l'add-on manager.
Quand tu as exécuté la commande 'adm new-addon my-add-on', l'add-on manager a créé un dossier my-add-on sous ofbiz/.addons et a enregistré l'add-on dans son registre sous ofbiz/.addons/add-ons.xml. À ce moment là, si tu exécutes la commande 'adm list' l'add-on manager te listera ton add-on avec une petite étoile indiquant qu'il est éditable :
Peter@garfield:~/Projects/ofbiz$ adm list [INFO] Add-On Manager for /Users/Peter/Projects/ofbiz Installed add-ons: - my-add-on (*)
À tout instant, il ne peut y avoir qu'un seul add-on éditable. C'est toujours le dernier add-on créé jusqu'à ce qu'il soit transformé sous la forme d'une archive .zip.
Ensuite tu as modifié des fichiers ofbiz, et tu les as rajoutés à l'add-on via la commande 'adm add-file'. À chaque appel de cette commande, l'add-on manager regénère le patch correspondant aux modifications introduites dans le fichier depuis la création de l'add-on.
Une fois tes modifications terminées, tu as dû créer une version distribuable de ton add-on à l'aide de la commande 'adm seal 1.0'. Cette commande a généré un fichier ofbiz/.addons/my-add-on-1.0.zip et a fait pointer le registre de l'add-on manager vers cette version au lieu du dossier ofbiz/.addons/my-add-on.
À partir de ce moment, il n'est plus possible d'éditer l'add-on.
Peter@garfield:~/Projects/ofbiz$ adm list [INFO] Add-On Manager for /Users/Peter/Projects/ofbiz Installed add-ons: - my-add-on
Si tu essaies d'ajouter un fichier, tu obtiens l'erreur que tu cites.
youssef@goree:~/CompactWS/ofbizforaddon$ adm add-file > framework/common/webcommon/includes/header.ftl > [INFO] Add-On Manager for /home/youssef/CompactWS/ofbizforaddon > [ERROR] Unable to add file(s) without an add-on being edited
Il n'y a actuellement aucune commande permettant de rebasculer le registre de l'add-on manager vers la version non scellée de l'add-on (sauf à désinstaller l'add-on et à le réinstaller en spécifiant la version non scellée, ou à éditer manuellement le registre .addons/add-ons.xml).
Je me laisse un peu de temps de réflexion, mais je pense qu'il sera judicieux de modifier la commande seal pour ne pas faire pointer le registre vers la version scellée.
Je conseille vivement aux développeurs d'add-ons pour neogia d'avoir l'arborescence suivante :
~/Projets/ofbiz ~/Projets/ofbizAddOn (projet à récupérer depuis le cvs de neogia)
et de créer un add-on de la manière suivante à partir de la racine d'ofbiz :
adm new-addon -d ../ofbizAddOn/my-add-on my-add-on
Le paramètre -d permet de spécifier l'emplacement des sources de l'add-on à l'extérieur de l'arborescence d'ofbiz.
Howto Add documentation in Addon
Chaque add-on embarque un fichier add-on.xml à la racine de son archive. Ce but de ce fichier est de contenir un maximum d'informations sur l'add-on en lui-même, un peu à l'image des fichiers pom.xml des projets maven.
Ce fichier est créé lors de la création de l'add-on (adm new-addon my-add-on) et il peut, ensuite, être éditer sans risque de conflit avec l'add-on manager. Je propose de suivre le schéma de pom maven en attendant que nous définitions quelque chose.
How to install an Add-on
cd ofbiz adm install my-addon-1.0.zip


