Author: bpoussin Date: 2011-04-13 23:44:26 +0200 (Wed, 13 Apr 2011) New Revision: 77 Url: http://chorem.org/repositories/revision/chorem/77 Log: Utilisation de ApplicationConfig de la bonne facon (pas d'heritage) Modified: trunk/chorem-web/src/main/java/org/chorem/ChoremConfig.java trunk/chorem-web/src/main/java/org/chorem/ChoremProxy.java trunk/pom.xml Modified: trunk/chorem-web/src/main/java/org/chorem/ChoremConfig.java =================================================================== --- trunk/chorem-web/src/main/java/org/chorem/ChoremConfig.java 2011-04-13 12:59:49 UTC (rev 76) +++ trunk/chorem-web/src/main/java/org/chorem/ChoremConfig.java 2011-04-13 21:44:26 UTC (rev 77) @@ -1,39 +1,55 @@ package org.chorem; -import org.apache.commons.lang.UnhandledException; +import java.util.Properties; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; import org.nuiton.util.ApplicationConfig; -import org.nuiton.util.StringUtil; +import org.nuiton.util.ArgumentsParserException; import static org.nuiton.i18n.I18n._; /** * Inits chorem configuration */ -public class ChoremConfig extends ApplicationConfig { +public class ChoremConfig { - protected static ChoremConfig instance; + /** to use log facility, just put in your code: log.info(\"...\"); */ + static private Log log = LogFactory.getLog(ChoremConfig.class); + + static protected ApplicationConfig instance = null; - public ChoremConfig() { + private ChoremConfig() { + } - //Sets default option (including configuration file name : important) - for (Option o : Option.values()) { - if (o.defaultValue != null) { - setDefaultOption(o.key, o.defaultValue); + static public ApplicationConfig getConfig() { + return getConfig(null, null); + } + + static public ApplicationConfig getConfig( + Properties props, String configFilename, String ... args) { + ApplicationConfig conf = new ApplicationConfig( + Option.class, null, props, configFilename); + + try { + conf.parse(args); + } catch (ArgumentsParserException eee) { + if (log.isErrorEnabled()) { + log.error("Can't load chorem configuration", eee); } } - } + return conf; + } /** * Returns config instance (singleton) * @return ChoremConfig instance */ - public static synchronized ChoremConfig getInstance() { + public static ApplicationConfig getInstance() { if (instance == null) { - try { - instance = new ChoremConfig(); - instance.parse(StringUtil.EMPTY_STRING_ARRAY); - } catch (Exception e) { - throw new UnhandledException(e); + synchronized(ChoremConfig.class) { + if (instance == null) { + instance = ChoremConfig.getConfig(); + } } } return instance; @@ -42,16 +58,18 @@ /** * Vradi option definition. */ - public enum Option { - CONFIG_FILE(CONFIG_FILE_NAME, _("chorem.config.configFileName.description"), - "chorem.properties", String.class, false, false); + public enum Option implements ApplicationConfig.OptionDef { + CONFIG_FILE( + ApplicationConfig.CONFIG_FILE_NAME, + _("chorem.config.configFileName.description"), + "chorem.properties", String.class, false, false); public final String key; public final String description; - public final String defaultValue; + public String defaultValue; public final Class<?> type; - public final boolean isTransient; - public final boolean isFinal; + public boolean isTransient; + public boolean isFinal; Option(String key, String description, String defaultValue, Class<?> type, boolean isTransient, boolean isFinal) { @@ -62,5 +80,41 @@ this.isFinal = isFinal; this.isTransient = isTransient; } + + public String getKey() { + return key; + } + + public Class<?> getType() { + return type; + } + + public String getDescription() { + return description; + } + + public String getDefaultValue() { + return defaultValue; + } + + public boolean isTransient() { + return isTransient; + } + + public boolean isFinal() { + return isFinal; + } + + public void setDefaultValue(String defaultValue) { + this.defaultValue = defaultValue; + } + + public void setTransient(boolean isTransient) { + this.isTransient = isTransient; + } + + public void setFinal(boolean isFinal) { + this.isFinal = isFinal; + } } } Modified: trunk/chorem-web/src/main/java/org/chorem/ChoremProxy.java =================================================================== --- trunk/chorem-web/src/main/java/org/chorem/ChoremProxy.java 2011-04-13 12:59:49 UTC (rev 76) +++ trunk/chorem-web/src/main/java/org/chorem/ChoremProxy.java 2011-04-13 21:44:26 UTC (rev 77) @@ -32,7 +32,7 @@ * @return */ static public ChoremProxy getInstance(String token) { - ChoremConfig config = ChoremConfig.getInstance(); + ApplicationConfig config = ChoremConfig.getInstance(); WikittyService ws = getWikittyService(config); ChoremProxy result = new ChoremProxy(config, ws); result.setSecurityToken(token); Modified: trunk/pom.xml =================================================================== --- trunk/pom.xml 2011-04-13 12:59:49 UTC (rev 76) +++ trunk/pom.xml 2011-04-13 21:44:26 UTC (rev 77) @@ -50,9 +50,9 @@ <projectId>chorem</projectId> <eugenePluginVersion>2.3.2</eugenePluginVersion> - <nuitonUtilsVersion>2.1-SNAPSHOT</nuitonUtilsVersion> + <nuitonUtilsVersion>2.2-SNAPSHOT</nuitonUtilsVersion> <nuitonI18nVersion>2.3.1</nuitonI18nVersion> - <wikittyVersion>3.0.5-SNAPSHOT</wikittyVersion> + <wikittyVersion>3.0.5</wikittyVersion> <slf4jVersion>1.6.1</slf4jVersion> <struts2Version>2.2.1.1</struts2Version> <xWorkCoreVersion>2.1.6</xWorkCoreVersion>
participants (1)
-
bpoussin@users.chorem.org