Modification des fichiers *.properties
4 participants
Page 1 sur 1
Modification des fichiers *.properties
J'ai besoin de modifier tout un tas de propriétés (entre autre dans emxProductCentralStringResource_en.properties). Je peux bien sur modifier ces fichiers directement, mais je me dit qu'a chaque mise a jour, il faudra que je compare les nouveaux fichiers de propriétés aux anciens, que je les merge, etc, ce qui n'est pas tres pratique.
J'aimerai donc ne pas modifier les fichiers de propriétés existants et pouvoir spécifier dans d'autres fichiers les modifications/ajouts que je souhaite effectuer.
Je pense qu'il doit etre possible d'ajouter un filtre dans web.xml pour que si un fichier *.properties possede tel préfixe ou soit dans tel répertoire, alors il soit utiliser plutot que celui par défaut.
Il me semble également qu'il est possible d'inclure un fichier de propriétés dans un autre (include = leFichierAInclure).
Si tout cela est bien possible, pour modifier emxProductCentralStringResource_en.propertie, il suffirait que je crée un nouveau fichier qui inclue le fichier de base, et que j'ajoute mes modifications a la suite.
Je me demande par contre s'il est possible de redéfinir une propriété, et si je ne vais pas avoir des messages d'erreurs me disant que certaines propriétés sont en double (a essayer). Je me demande aussi surtout si quelqu'un a déja fait quelques chose de similaire, ou a une meilleure idée.
J'aimerai donc ne pas modifier les fichiers de propriétés existants et pouvoir spécifier dans d'autres fichiers les modifications/ajouts que je souhaite effectuer.
Je pense qu'il doit etre possible d'ajouter un filtre dans web.xml pour que si un fichier *.properties possede tel préfixe ou soit dans tel répertoire, alors il soit utiliser plutot que celui par défaut.
Il me semble également qu'il est possible d'inclure un fichier de propriétés dans un autre (include = leFichierAInclure).
Si tout cela est bien possible, pour modifier emxProductCentralStringResource_en.propertie, il suffirait que je crée un nouveau fichier qui inclue le fichier de base, et que j'ajoute mes modifications a la suite.
Je me demande par contre s'il est possible de redéfinir une propriété, et si je ne vais pas avoir des messages d'erreurs me disant que certaines propriétés sont en double (a essayer). Je me demande aussi surtout si quelqu'un a déja fait quelques chose de similaire, ou a une meilleure idée.
Francois Birot- Débutant
- Nombre de messages : 41
Date d'inscription : 04/09/2008
Re: Modification des fichiers *.properties
Ce que tu peux faire, mais ca demande un peu de developpement, c'est de créer un petit outil avec java, qui permet de concatener tes fichiers customisés avec ceux du standard (ajouter à la fin des fichiers standard les lignes customisées).
Le fait qu'il y a un doublon dans le fichier resultat (apres concatenation) ne pose pas de pb, car le serveur va afficher la dernier valeur qui se trouve dans le fichier.
L'avantage de cette methode, il y a pas de merge à faire lors d'une migration vers une nouvelle version.
Le fait qu'il y a un doublon dans le fichier resultat (apres concatenation) ne pose pas de pb, car le serveur va afficher la dernier valeur qui se trouve dans le fichier.
L'avantage de cette methode, il y a pas de merge à faire lors d'une migration vers une nouvelle version.
mradi- Novice
- Nombre de messages : 18
Date d'inscription : 12/12/2007
ou en TCL
Une petite méthode Tcl pour illustrer les propos du post précédent :
set extADD "properties.ADDON"
set l_propertiesfile [ glob *.properties ]
foreach sPropertiesFile $l_propertiesfile {
puts "Processing $sPropertiesFile ..."
# Trouver le fichier ADD correspondant
set sBasename [ file tail [ file rootname $sPropertiesFile ] ]
set sFileADDON [ format "%s.%s" $sBasename $extADD ]
puts ">>> Search $sFileADDON ..."
if { [ file exists $sFileADDON ] == 1 } {
puts ">>> Find ADDON file : $sFileADDON"
set channelProperties [ open $sPropertiesFile a ]
set channelAddOn [ open $sFileADDON r ]
# Lit l'integralite du AddOn
set lAllLineAddOn [ split [ read $channelAddOn ] \n ]
close $channelAddOn
# Rajouter le ADD
foreach sLineAddOn $lAllLineAddOn {
puts $channelProperties $sLineAddOn
flush $channelProperties
}
puts ">>> Concatenation finished."
close $channelProperties
}
}
set extADD "properties.ADDON"
set l_propertiesfile [ glob *.properties ]
foreach sPropertiesFile $l_propertiesfile {
puts "Processing $sPropertiesFile ..."
# Trouver le fichier ADD correspondant
set sBasename [ file tail [ file rootname $sPropertiesFile ] ]
set sFileADDON [ format "%s.%s" $sBasename $extADD ]
puts ">>> Search $sFileADDON ..."
if { [ file exists $sFileADDON ] == 1 } {
puts ">>> Find ADDON file : $sFileADDON"
set channelProperties [ open $sPropertiesFile a ]
set channelAddOn [ open $sFileADDON r ]
# Lit l'integralite du AddOn
set lAllLineAddOn [ split [ read $channelAddOn ] \n ]
close $channelAddOn
# Rajouter le ADD
foreach sLineAddOn $lAllLineAddOn {
puts $channelProperties $sLineAddOn
flush $channelProperties
}
puts ">>> Concatenation finished."
close $channelProperties
}
}
jayjay- Nombre de messages : 1
Date d'inscription : 24/10/2007
Re: Modification des fichiers *.properties
Hum oui, mais est il possible de spécifier a Tomcat de lancer ce programme quand il se lance ? (parce que sinon ca reste pas tres pratique)
Francois Birot- Débutant
- Nombre de messages : 41
Date d'inscription : 04/09/2008
Re: Modification des fichiers *.properties
tu peux faire un petit script batch, qui va executer ton script tcl et redemarre tomcat.
mradi- Novice
- Nombre de messages : 18
Date d'inscription : 12/12/2007
Re: Modification des fichiers *.properties
Ouais ca peut etre pas mal. Mais par contre dans le script tcl proposé, si on execute le script deux fois les propriétés sont ajoutés une deuxieme fois (donc pas possible de lancer le script au démarage de Tomcat).
Francois Birot- Débutant
- Nombre de messages : 41
Date d'inscription : 04/09/2008
Re: Modification des fichiers *.properties
Pas forcement, si tu vide ton repertoir properties de tes fichiers customisés apres chaque concatenation. A la 2eme execution le script tcl ne va pas trouver des fichiers à concaténer et il aura que le demarrage de tomcat à faire
mradi- Novice
- Nombre de messages : 18
Date d'inscription : 12/12/2007
Re: Modification des fichiers *.properties
Ouais mais l'intéret était justement de ne pas changer les fichier *.properties de Matrix, ce qui n'est plus le cas. Et puis avoir a supprimer les fichiers de customisation a chaque redémarage de Tomcat, je trouve qu'au final c'est une plus grosse contrainte qu'editer les fichiers properties directement et les comparer/merger lors des mises a jour.
Francois Birot- Débutant
- Nombre de messages : 41
Date d'inscription : 04/09/2008
Re: Modification des fichiers *.properties
Perso, je resterais simple
Tu mets deux balises, à la fin du fichier, du type :
Comme ça tu les retrouves simplement et si tu changes des balises standards, c'est toujours la dernière ligne qui compte.
Ensuite en cas de migration, il te suffit de comparer le fichier (avec un outil comme winmerge http://www.winmerge.org) et tu retrouves tout ce qui a changé sans créer d'interférences avec tes custos.
Effectivement, si tu changes beaucoup de balises standard, il va falloir vérifier toutes les lignes différentes, mais par expérience il n'y a rien d'insurmontable. En passant de la version 10.5 à la 10.7, nous avons eu une centaine de lignes à vérifier, c'est assez rapide et simple.
Tu mets deux balises, à la fin du fichier, du type :
- Code:
##################################[...]####
# ICI MES CUSTOS [...]début
emxInfoCentral.maproperties.action.label1 = C'est mon label
[...]
# ICI MES CUSTOS [...]fin
##################################[...]####
Comme ça tu les retrouves simplement et si tu changes des balises standards, c'est toujours la dernière ligne qui compte.
Ensuite en cas de migration, il te suffit de comparer le fichier (avec un outil comme winmerge http://www.winmerge.org) et tu retrouves tout ce qui a changé sans créer d'interférences avec tes custos.
Effectivement, si tu changes beaucoup de balises standard, il va falloir vérifier toutes les lignes différentes, mais par expérience il n'y a rien d'insurmontable. En passant de la version 10.5 à la 10.7, nous avons eu une centaine de lignes à vérifier, c'est assez rapide et simple.
Re: Modification des fichiers *.properties
Avec plusieurs langues moi je trouve que ca devient vite la galere ces propriétés, mais bon je crois que c'est ce que je vais finir par faire.
Merci en tout cas
Merci en tout cas
Francois Birot- Débutant
- Nombre de messages : 41
Date d'inscription : 04/09/2008
Re: Modification des fichiers *.properties
Dois-tu vraiment gérer toutes les langues?
Sur nos application, on gère en général la propriété par défaut (sans extension) et la _fr.
Ensuite, pour être sûr de ne pas avoir de problème, on supprime les autres _* comme ça, soit IE/OS est en français et on affiche la _fr, soit IE/OS est dans une autre langue et on affiche la page par défaut.
C'est brutal mais, pour le moment, tous nos clients ont imposé une langue, donc ça fonctionne très bien et c'est simple et efficace.
Sur nos application, on gère en général la propriété par défaut (sans extension) et la _fr.
Ensuite, pour être sûr de ne pas avoir de problème, on supprime les autres _* comme ça, soit IE/OS est en français et on affiche la _fr, soit IE/OS est dans une autre langue et on affiche la page par défaut.
C'est brutal mais, pour le moment, tous nos clients ont imposé une langue, donc ça fonctionne très bien et c'est simple et efficace.
Re: Modification des fichiers *.properties
Pas toutes les langues mais l'Anglais, le Français, l'Allemand et l'Espagnol (et peut être une autre).
Francois Birot- Débutant
- Nombre de messages : 41
Date d'inscription : 04/09/2008
Re: Modification des fichiers *.properties
Effectivement, çà commence à en faire des fichiers à reprendre et à traduire
Re: Modification des fichiers *.properties
Apparement il est possible de définir un fichier de customisation pour les propriétés dans emxSystem.properties comme définis page 35 de https://thelink.matrixone.com/custlink/servlet/checkout/62104.18481.10108.58423/FrameworkAdmin107SP1.pdf?format=Adobe%20PDF&file=FrameworkAdmin107SP1.pdf
Malheuresement cela ne marche par pour les Resource Strings (l'internationalisation), mais uniquement pour les propriétés de chaque application.
Je vais donc bien mettre toutes mes customisation a la fin.
Malheuresement cela ne marche par pour les Resource Strings (l'internationalisation), mais uniquement pour les propriétés de chaque application.
Je vais donc bien mettre toutes mes customisation a la fin.
Francois Birot- Débutant
- Nombre de messages : 41
Date d'inscription : 04/09/2008
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
|
|