La plupart des scripts nécessitent de définir certaines variables et de les adapter à environnement d’exécution. Afin de centraliser l’ensemble des variables personnalisables, les fichiers propertiers s’avère très utiles. Un fichier properties contient des données sous forme de clé = valeur.
Parmi les points fort de Jython, sa possibilité de lire les fichier properties via la classe Properties du package java.util. La déclaration d’un fichier properties peut se faire à l’aide de :
Pour lire les données on aura besoin de flux d’entrée, et puisque Jython porte son J depuis JAVA, il est possible d’utiliser la classe FileInputStream de package java.io :
La classe properties dispose d’une méthode permettant de charger les données (clé, valeur) à partir d’un flux d’entrée :
NB :
Penser à la gestion des exceptions dans le cas où le fichier n’existe pas.
Pour parcourir les entrés, il faut faire appel à la méthode entrySet qui permet de retourner une set des entrées.
Voici un petit code permettant de charger et lire un fichier properties :
import java.util as util
import java.io as io
import sys
# Méthode permettant de charger et
# construire une map (clé, valeur)
# @param propertiesFileName le chemin
# du fichier properties
def loadProperties(propertiesFileName):
properties = util.Properties()
try :
fileInputStream = io.FileInputStream(propertiesFileName)
properties.load(fileInputStream)
fileInputStream.close()
result= {}
for entry in properties.entrySet():
result[entry.key] = entry.value
return result
except IOError:
print ‘File not found’
sys.exit(0)
un exemple d’appel à partir de fonction main() peut être comme suit :
properties = loadProperties(‘configFile.properties’)
print properties[‘factory.name’]