Permet de telecharger des mises a jour d'application.
Le principe est qu'un fichier properties pointe par une URL indique les
information necessaire pour la recuperation de l'application.
Si une nouvelle version de l'application existe, elle est alors telechargee
et decompressee dans un repertoire specifique (elle ne remplace pas l'application
courante).
Il est alors a la charge d'un script de mettre en place cette nouvelle application
a la place de l'ancienne.
Il est possible d'interagir avec ApplicationUpdater via l'implantation d'un
ApplicationUpdaterCallback passer en parametre de la methode
update(java.lang.String, java.io.File, java.io.File, boolean, org.nuiton.updater.ApplicationUpdaterCallback)
Configuration possible
Vous pouvez passer un ApplicationConfig dans le constructeur ou utiliser
la recherche du fichier de configuration par defaut (ApplicationUpdater.properties)
Cette configuration permet de récupérer les informations suivantes:
http_proxy: le proxy a utiliser pour l'acces au reseau (ex: squid.chezmoi.fr:8080)
os.name: le nom du systeme d'exploitation sur lequel l'application fonctionne (ex: Linux)
os.arch: l'architecture du systeme d'exploitation sur lequel l'application fonctionne (ex: amd64)
format du fichier de properties
[osName.][osArch.]appName.version=version de l'application
[osName.][osArch.]appName.auth=true ou false selon que l'acces a l'url
demande une authentification a fournir par le callback
(voir ApplicationUpdaterCallback.updateToDo(java.util.Map<java.lang.String, org.nuiton.updater.ApplicationInfo>))
[osName.][osArch.]appName.url=url du fichier compresse de la nouvelle version
(format commons-vfs2)
appName est a remplacer par le nom de l'application. Il est possible
d'avoir plusieurs application dans le meme fichier ou plusieurs version
en fonction de l'os et de l'architecture.
osName et osArch sont toujours en minuscule
format des fichiers compresses
Le fichier compresse doit avoir un repertoire racine qui contient l'ensemble de l'application
c-a-d que les fichiers ne doivent pas etre directement a la racine lorsqu'on
decompresse le fichier.
exemple de contenu de fichier compresse convenable
MonApp-0.3/Readme.txt
MonApp-0.3/License.txt
Ceci est du au fait qu'on renomme le repertoire racine avec le nom de l'application,
donc si le repertoire racine n'existe pas ou qu'il y a plusieurs repertoires
a la racine le resultat de l'operation n'est pas celui souhaite
os.name and os.arch
| os.name | os.arch |
| linux | amd64 |
| linux | i386 |
| mac | ppc |
| windows | x86 |
| solaris | sparc |
os.name est tronque apres le 1er mot donc "windows 2000" et "windows 2003"
deviennet tous les deux "windows". Si vous souhaitez gérer plus finement vos
url de telechargement vous pouvez modifier les donnees via
ApplicationUpdaterCallback.updateToDo(java.util.Map) en modifiant
l'url avant de retourner la map