letellier a écrit :
Le 26/02/2010 11:35, Stephane CHORLET a écrit :
Arnaud Thimel a écrit :
Le 26.02.2010 10:46, Stephane CHORLET a écrit :
Arnaud Thimel a écrit :
Euh, non, au contraire je dirais ! /etc/ sert à surcharger la conf par défaut...
Justement, je pense que /etc/ devrait être la conf par défaut et que tout ce qui est dans le classpath ou variable d'environnement ou fichier dans le home de l'utilisateur devrait avoir une priorité supérieure à /etc/
J'entends bien c'que tu dis et pourtant, je continues de penser le contraire.
Je prends un exemple :
classpath:mail.properties =========================
smtp.host: smtp.free.fr
/etc/mail.properties ====================
smtp.host: 10.50.3.2
Avec ce que tu proposes, lors d'un déploiement sur le serveur, la valeur qui sera prise est celle dans le classpath. Or au build de mon JAR, je ne peux pas anticiper l'environnement de runtime de mon appli et donc l'adresse du smtp à utiliser ? Ou je me vois mal forcer les gens qui veulent déployer notre appli à ajouter une entrée "10.50.3.2 smtp.free.fr" dans leur /etc/hosts pour pouvoir envoyer des mails ??
Arnaud.
Au build du jar, tu met une conf par défaut, genre une base h2 ou derby. Lors d'une installation, une pratique courante est de dezipper le jar ou le war et de modifier les fichiers de conf présents et de repackager le tout. Je me vois mal, à chaque fois que je déploie quelque chose, modifier le fichier de properties du war/jar, heureusement qu'il prend celui dans /etc ! Je comprend bien que donner une priorité supérieure à /etc/ représente une facilité, mais cela introduit un comportement inhabituel.
Ca pose des problèmes pour les tests (le problème de eric) et ça en posera si tu souhaites installer 2 instances de ton application sur un même serveur. Non, car tes 2 instances n'auront pas le même nom ;) Sur orion (qui n'est peut être pas un bon exemple ?) j'ai plusieurs instances et dans /etc j'ai :
orion-bms-buy.properties orion-bms.properties orion-glon.properties orion.properties
Je pense que la variable d'environnement est une bonne idée pour palier au problème.
Sylvain
Bah moi je laisse tomber. Je pense que ce comportement est bug qui constitue une fonctionnalité de ApplicationConfig, soit.