Index: maven-commandline-plugin/src/java/org/codelutin/option/def/DefinitionParserFromProperties.java diff -u maven-commandline-plugin/src/java/org/codelutin/option/def/DefinitionParserFromProperties.java:1.1 maven-commandline-plugin/src/java/org/codelutin/option/def/DefinitionParserFromProperties.java:1.2 --- maven-commandline-plugin/src/java/org/codelutin/option/def/DefinitionParserFromProperties.java:1.1 Sun Mar 23 00:22:36 2008 +++ maven-commandline-plugin/src/java/org/codelutin/option/def/DefinitionParserFromProperties.java Sun Mar 23 23:48:46 2008 @@ -29,7 +29,6 @@ import java.io.BufferedInputStream; import java.io.File; import java.io.FileInputStream; -import java.io.IOException; import java.io.InputStream; import java.util.ArrayList; import java.util.Collections; @@ -52,15 +51,17 @@ * Initialise un contexte de parseur à partir d'un fichier de propriétés. * * @param src la source où lire les définitions (un fichier de propriétés) + * * @param injects values to inject in main config default properties * @return un contexte de parseur avec les définitions lues * @throws java.io.IOException if any problem while reading source */ - protected ParserContext init(Object src) throws IOException { + protected ParserContext init(Object src, Map injects) throws Exception { File source = (File) src; if (!source.exists()) { throw new IllegalArgumentException(_("lutinutil.parserdef.unfound.source", source)); } + // load properties file Properties properties = new Properties(); InputStream stream = null; @@ -73,6 +74,10 @@ } } + ConfigLoader configLoader = new ConfigLoader(injects); + OptionLoader optionLoader = new OptionLoader(); + load(properties, configLoader, optionLoader); + // récupération des clefs d'options List categories; Map> cdefinitions; @@ -191,8 +196,6 @@ protected void detectConfigs(Properties properties, List categories, Map> cdefinitions, Map> cmodifiers) { - List defaultOptions = MandatoryConfigProperty.getConfigPropertyKeys(); - for (Object o : properties.keySet()) { String key = o.toString(); if (!key.contains(DefinitionParserUtil.CDEFINITION_KEY_FACTOR)) { Index: maven-commandline-plugin/src/java/org/codelutin/option/def/MandatoryConfigProperty.java diff -u maven-commandline-plugin/src/java/org/codelutin/option/def/MandatoryConfigProperty.java:1.1 maven-commandline-plugin/src/java/org/codelutin/option/def/MandatoryConfigProperty.java:1.2 --- maven-commandline-plugin/src/java/org/codelutin/option/def/MandatoryConfigProperty.java:1.1 Sun Mar 23 00:28:41 2008 +++ maven-commandline-plugin/src/java/org/codelutin/option/def/MandatoryConfigProperty.java Sun Mar 23 23:48:46 2008 @@ -55,7 +55,7 @@ } public String getEntryKey() { - return category() + '.' + DefinitionParserUtil.CDEFINITION_KEY_FACTOR + name(); + return category() + DefinitionParserUtil.CDEFINITION_KEY_FACTOR + name(); } public static List getConfigPropertyKeys() { Index: maven-commandline-plugin/src/java/org/codelutin/option/def/DefinitionParser.java diff -u maven-commandline-plugin/src/java/org/codelutin/option/def/DefinitionParser.java:1.1 maven-commandline-plugin/src/java/org/codelutin/option/def/DefinitionParser.java:1.2 --- maven-commandline-plugin/src/java/org/codelutin/option/def/DefinitionParser.java:1.1 Sun Mar 23 00:51:21 2008 +++ maven-commandline-plugin/src/java/org/codelutin/option/def/DefinitionParser.java Sun Mar 23 23:48:46 2008 @@ -28,12 +28,13 @@ import java.io.IOException; import java.io.Writer; +import java.util.Map; /** * Parseur de définitions. TODO Revoir javadoc non correcte *

* La classe contient une méthode statique publique : - * {@link #doParse(Class,Object)} + * {@link #doParse(Class,Object,Map)} * pour lancer un parsing sur une source de définitions donnée. *

* Dans ce fichier chaque option est représentée par 1 entrée : @@ -51,11 +52,12 @@ /** * Initialise le parser avec son context remplit avec les données de la source. * - * @param source la source de donnée + * @param source la source de donnée + * @param injects values to inject in main config default properties * @return le context de parseur initilisé avec les données de la source * @throws IOException si problème pendant lecture de la source */ - protected abstract ParserContext init(Object source) throws IOException; + protected abstract ParserContext init(Object source, Map injects) throws Exception; /** * Effectue la parsing d'un fichier contenant les définitions des options. @@ -66,14 +68,15 @@ * uniquement les contexts d'options valides. *

* - * @param type le type de source à traiter. - * @param src la source contenant les définitions des options + * @param type le type de source à traiter. + * @param src la source contenant les définitions des options + * @param injects values to inject in main config default properties * @return le parseur après parsing du fichier * @throws IOException if any problem when reading source * @throws IllegalAccessException if pb while init * @throws InstantiationException if pb while init */ - public static

P doParse(Class

type, Object src) throws IOException, IllegalAccessException, InstantiationException { + public static

P doParse(Class

type, Object src, Map injects) throws Exception { if (type == null) { throw new IllegalArgumentException(_("lutinutil.parserdef.null.sourceType")); } @@ -85,7 +88,7 @@ P parser = type.newInstance(); // init parser parser : reading from source - ParserContext context = parser.init(src); + ParserContext context = parser.init(src, injects); // parse and build options and configs contexts context.parse();