ERP en LOGICIEL LIBRE dédié aux PME-PMI

           Devenez partenaire Principal ou Majeur de Neogia

Add-on Manager/fr


Contents

Comment compiler l'Add-on Manager

Prerequisites:

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

cd ofbiz
adm new-addon my-addon
adm status
adm add-file <file path>
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