Bonjour,
j'utilise l'API Configuration du framework Jakarta Commons. J'ai un fichier XML dans lequel je souhaite placer toute la configuration de l'application. Pour me faciliter la tâche, et au vu du nombre peu important de modifications d'élements de configuration, j'ai fait activé l'auto-save sur cette configuration. Ceci fonctionne très bien jusqu'à ce que je joue avec les subset. Pour chaque partie de mon application, je crée un subset spécifique (gui, core, plugins, ...).
Or, lorsque l'un de ces sous-éléments modifie ses propriétés, celles-ci ne sont pas automatiquement sauvées. Je n'ai rien trouvé dans la documentation expliquant ce phénomène.
Voici le code que j'utilise :
Voici donc le fichier XML produit pas cette portion de code.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 File configurationFile = new File("configuration.properties"); FileConfiguration config = null; try { config = new XMLConfiguration(configurationFile); } catch (ConfigurationException e) { System.err .println("Une erreur est survenue lors du chargement de la configuration."); System.err.println("L'application ne peut continuer plus loin."); e.printStackTrace(); System.exit(1); } config.setAutoSave(true); // L'enregistrement suivant sera bien reporté dans le fichier. config.setProperty("useSSL", Boolean.TRUE); // Les enregistrements suivants ne seront pas reportés dans le fichier. Configuration mainWindowConf = config.subset("gui").subset("mainWindow"); mainWindowConf.setProperty("x", new Integer(100)); mainWindowConf.setProperty("y", new Integer(100)); mainWindowConf.setProperty("width", new Integer(250)); mainWindowConf.setProperty("height", new Integer(250));
L'on voit bien que seul le premier enregistrement est réalisé, et pas les suivants (qui sont pourtant effectués). Comment faire en sorte que tous les enregistrements soient bien reportés au niveau du fichier XML ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 <?xml version="1.0" encoding="UTF-8"?> <configuration> <useSSL>true</useSSL> </configuration>
Partager