branch feature/4059 updated (471d063 -> c9d94d7)
This is an automated email from the git hooks/post-receive script. New change to branch feature/4059 in repository nuiton-config. See https://gitlab.nuiton.org/nuiton/nuiton-config.git from 471d063 Add ini io implementation new 09a4aed Improve methods new c9d94d7 Add doc for ini format usage The 2 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "adds" were already present in the repository and have only been added to this reference. Detailed log of new commits: commit c9d94d72c329bca0980b70138b6125feabf33c3a Author: Tony CHEMIT <chemit@codelutin.com> Date: Fri Oct 7 16:47:39 2016 +0200 Add doc for ini format usage commit 09a4aedd7bce19a28a26805c664bcb7de03d4309 Author: Tony CHEMIT <chemit@codelutin.com> Date: Fri Oct 7 16:42:20 2016 +0200 Improve methods Summary of changes: .../org/nuiton/config/ApplicationConfigInit.java | 12 ++--- nuiton-config/src/site/apt/index.apt | 56 +++++++++++++--------- src/site/apt/usage.apt.vm | 10 ++++ 3 files changed, 49 insertions(+), 29 deletions(-) -- To stop receiving notification emails like this one, please contact nuiton.org SCM administrator <admin+scm@nuiton.org>.
This is an automated email from the git hooks/post-receive script. New commit to branch feature/4059 in repository nuiton-config. See https://gitlab.nuiton.org/nuiton/nuiton-config.git commit 09a4aedd7bce19a28a26805c664bcb7de03d4309 Author: Tony CHEMIT <chemit@codelutin.com> Date: Fri Oct 7 16:42:20 2016 +0200 Improve methods --- .../main/java/org/nuiton/config/ApplicationConfigInit.java | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/nuiton-config/src/main/java/org/nuiton/config/ApplicationConfigInit.java b/nuiton-config/src/main/java/org/nuiton/config/ApplicationConfigInit.java index 7a627f2..a2e1b92 100644 --- a/nuiton-config/src/main/java/org/nuiton/config/ApplicationConfigInit.java +++ b/nuiton-config/src/main/java/org/nuiton/config/ApplicationConfigInit.java @@ -40,7 +40,7 @@ import java.util.Set; public class ApplicationConfigInit { public static ApplicationConfigInit defaultInit() { - return forAllScopes().setReadFormat(ApplicationConfigReadFormat.properties); + return forAllScopes(); } public static ApplicationConfigInit forAllScopes() { @@ -61,10 +61,10 @@ public class ApplicationConfigInit { protected String configFilename; protected Properties defaults; - protected final Set<ApplicationConfigScope> scopes ; - protected ApplicationConfigReadFormat readFormat; + protected final Set<ApplicationConfigScope> scopes; + protected ApplicationConfigReadFormat readFormat = ApplicationConfigReadFormat.properties; - protected ApplicationConfigInit(ApplicationConfigScope...scopes) { + protected ApplicationConfigInit(ApplicationConfigScope... scopes) { this.scopes = Collections.unmodifiableSet(EnumSet.copyOf(Arrays.asList(scopes))); } @@ -94,8 +94,8 @@ public class ApplicationConfigInit { return readFormat; } - public ApplicationConfigInit setReadFormat(ApplicationConfigReadFormat readFormat) { - this.readFormat = readFormat; + public ApplicationConfigInit useIniFormat() { + this.readFormat = ApplicationConfigReadFormat.ini; return this; } } -- To stop receiving notification emails like this one, please contact nuiton.org SCM administrator <admin+scm@nuiton.org>.
This is an automated email from the git hooks/post-receive script. New commit to branch feature/4059 in repository nuiton-config. See https://gitlab.nuiton.org/nuiton/nuiton-config.git commit c9d94d72c329bca0980b70138b6125feabf33c3a Author: Tony CHEMIT <chemit@codelutin.com> Date: Fri Oct 7 16:47:39 2016 +0200 Add doc for ini format usage --- nuiton-config/src/site/apt/index.apt | 56 +++++++++++++++++++++--------------- src/site/apt/usage.apt.vm | 10 +++++++ 2 files changed, 43 insertions(+), 23 deletions(-) diff --git a/nuiton-config/src/site/apt/index.apt b/nuiton-config/src/site/apt/index.apt index 7f808e6..60e9f65 100644 --- a/nuiton-config/src/site/apt/index.apt +++ b/nuiton-config/src/site/apt/index.apt @@ -33,7 +33,7 @@ Présentation * la lecture de fichier de configuration ; - * le parsage de la ligne de commande ; + * le parsing de la ligne de commande ; * l'execution des actions ; @@ -44,31 +44,31 @@ Lecture/écriture * Lecture des fichiers de configuration La lecture des fichiers de configuration est effectuée lors de l'appel - à la methode <<<parse(String...)>>> en utilisant la valeur de + à la méthode <<<parse(String...)>>> en utilisant la valeur de <<<getConfigFileName()>>> pour trouver les fichiers à lire. * La sauvegarde - La sauvegarde des options se fait via une des trois methodes disponibles : + La sauvegarde des options se fait via une des trois méthodes disponibles : - * <<<save>>> : sauvegarde dans un fichier specifique ; + * <<<save>>> : sauvegarde dans un fichier spécifique ; - * <<<saveForSystem>>> : sauvegarde les donnees dans /etc ; + * <<<saveForSystem>>> : sauvegarde les données dans /etc ; - * <<<saveForUser>>> : sauvegarde les donnees dans $HOME. + * <<<saveForUser>>> : sauvegarde les données dans $HOME. [] - Seules les options qui ont été modifiées par l'application (par la methode + Seules les options qui ont été modifiées par l'application (par la méthode <<<setOption()>>>) seront sauvegardées. Les variables d'environnement, les arguments de la ligne de commandes(etc...) ne seront pas sauvegardés. * Configuration multi instance Il est possible d'associer un nom de contexte à une configuration via la - methode <<<setAppName("azerty")>>>. Ainsi, les fichiers seront cherchés + méthode <<<setAppName("azerty")>>>. Ainsi, les fichiers seront cherchés dans le dossier défini par l'option <<<azerty.config.path>>> si elle existe - (sinon, dans le dossier par défaut) et le nom du fichier cherché defini + (sinon, dans le dossier par défaut) et le nom du fichier cherché défini par l'option <<<azerty.config.file>>>. Cette option est utilisée par exemple pour installer plusieurs instances @@ -111,8 +111,8 @@ Fonctionnalités --org.nuiton.test.Test#doLogin user password true +------------------------------------------------ - Une action est donc définie par le chemin complet de la methode qui traitera - l'action. Si la methode est statique, elle sera appelée directement. Dans le + Une action est donc définie par le chemin complet de la méthode qui traitera + l'action. Si la méthode est statique, elle sera appelée directement. Dans le cas contraire, la classe contenant la méthode sera instanciée à partir d'un constructeur prenant en paramètre seulement la configuration, ou, s'il n'est pas disponible, le constructeur par défaut. La méthode sera ensuite @@ -127,7 +127,7 @@ Fonctionnalités Si vous avez des paramètres optionnels, le seul moyen est d'utiliser des arguments variants. - Par exemple, la ligne de commande précédente appelera la methode : + Par exemple, la ligne de commande précédente appellera la méthode : +------------------------------------------- public class Test { @@ -137,10 +137,10 @@ public class Test { } +------------------------------------------- - Les actions ne sont pas executées, mais seulement parsées. Cela signifie - qu'elles seront executées seulement lorsque l'application appelera la méthode + Les actions ne sont pas exécutées, mais seulement parsées. Cela signifie + qu'elles seront exécutées seulement lorsque l'application appellera la méthode <<<doAction(int)>>>. - Par défaut, toutes les actions sont de niveau 0 et sont executées dans leur + Par défaut, toutes les actions sont de niveau 0 et sont exécutées dans leur ordre d'apparition sur la ligne de commande. Il est possible de différencier les différentes actions en utilisant l'annotation <<<@Step>>> @@ -152,13 +152,13 @@ doAction(1); +------------------------------------------- Dans cet exemple, les actions 0 et 1 ne sont pas effectuées au même moment. - C'est très utile par exemple pour éxecuter certaines actions avant le démarrage + C'est très utile par exemple pour exécuter certaines actions avant le démarrage de l'UI par exemple, et d'autres après... * Les arguments non parsés La configuration 'consomme' les arguments de la ligne de commande qu'elle a - réussie à traiter. Pour recupérer les autres arguments propres à l'application + réussie à traiter. Pour récupérer les autres arguments propres à l'application il est possible de les obtenir grace à la méthode <<<getUnparsed()>>>. Si l'on souhaite forcer la fin du parsing de la ligne de commande il est possible de mettre <<<-->>>. @@ -177,8 +177,8 @@ monApplication "mon arg" --option k1 v1 -- --option k2 v2 -- autre * Les alias - Il est possible d'utiliser des alias pour definir les options et les actions. - Ces alias doivent être renseignés par la methode <<<addAlias(String, String>>>: + Il est possible d'utiliser des alias pour définir les options et les actions. + Ces alias doivent être renseignés par la méthode <<<addAlias(String, String>>>: +------------------------------------------- addAlias("-v", "--option", "verbose", "true"); @@ -188,12 +188,12 @@ addAlias("-i", "--mon.package.MaClass#MaMethode", "import"); Dans le premier exemple on simplifie une option de flags l'option -v n'attend donc plus d'argument. Dans le second exemple on simplifie une option qui - attend encore un argment de type File. Enfin dans le troisieme exemple + attend encore un argument de type File. Enfin dans le troisième exemple on simplifie la syntaxe d'une action et on force le premier argument de l'action à être "import". Lors du parsing de la ligne de commande, tous les alias sont remplacés par - leur correspondance. Il est donc possible d'utiliser ce mecanisme pour + leur correspondance. Il est donc possible d'utiliser ce mécanisme pour autre chose : +------------------------------------------- @@ -244,7 +244,7 @@ application.version = 1.2.3 application.info = ${application.name} ${application.version} (${java.version}) +------------------------------------------- - L'appel de l'option <<<application.info>>> via la methode <<<getOption()>>> + L'appel de l'option <<<application.info>>> via la méthode <<<getOption()>>> retournera une chaîne de la forme : +------------------------------------------- @@ -309,7 +309,7 @@ public class MyConfig extends ApplicationConfig { * Usage - La configuration doit principalement être initilalisée grâce à la méthode + La configuration doit principalement être initialisée grâce à la méthode <<<parse(String[])>>> avant d'être utilisée. +------------------------------------------- @@ -369,3 +369,13 @@ org.chorem.pollen.PollenApplicationConfigProvider Cela permet ensuite, par exemple, de générer un rapport contenant toutes les options disponibles dans l'application. + +* Lire/Écrire des fichiers au format ini + + Depuis la version <<3.1>>, il est possible de lire/écrire les configuration au format <ini>. + + Pour ce faire, il faut indiquer à ApplicationConfig via son objet d'initialisation qu'on veut utiliser ce format : + ++------------------------------------------------ +ApplicationConfig applicationConfig = new ApplicationConfig(ApplicationConfigInit.forAllScopes().useIniFormat()); ++------------------------------------------------ diff --git a/src/site/apt/usage.apt.vm b/src/site/apt/usage.apt.vm index baeae89..fca9018 100644 --- a/src/site/apt/usage.apt.vm +++ b/src/site/apt/usage.apt.vm @@ -363,3 +363,13 @@ src +------------------------------------------------ Vous pouvez aussi choisir le format <toml> ou <yaml> en passant l'option <<-Dconfig.format=ini|toml|yaml>>. + +Lire et enregistrer ApplicationConfig au format ini + + Depuis la version <<3.1>>, il est possible de lire et d'enregistrer sa configuration au format <ini>. + + Pour ce faire, il faut indiquer à ApplicationConfig via son objet d'initialisation qu'on veut utiliser ce format : + ++------------------------------------------------ +ApplicationConfig applicationConfig = new ApplicationConfig(ApplicationConfigInit.forAllScopes().useIniFormat()); ++------------------------------------------------ -- To stop receiving notification emails like this one, please contact nuiton.org SCM administrator <admin+scm@nuiton.org>.
participants (1)
-
nuiton.org scm