Author: tchemit Date: 2014-07-30 15:16:00 +0200 (Wed, 30 Jul 2014) New Revision: 2614 Url: http://forge.nuiton.org/projects/nuiton-config/repository/revisions/2614 Log: fixes #3292: Setting application name requires to provide encoding Added: trunk/src/test/java/org/nuiton/config/ChangeApplicationNameTest.java trunk/src/test/resources/wao.properties Modified: trunk/src/main/java/org/nuiton/config/ApplicationConfig.java Modified: trunk/src/main/java/org/nuiton/config/ApplicationConfig.java =================================================================== --- trunk/src/main/java/org/nuiton/config/ApplicationConfig.java 2014-07-30 09:12:25 UTC (rev 2613) +++ trunk/src/main/java/org/nuiton/config/ApplicationConfig.java 2014-07-30 13:16:00 UTC (rev 2614) @@ -990,7 +990,30 @@ * @since 1.2.1 */ public void setAppName(String appName) { + + // encoding option can use appName as prefix + // so a side effect is to have + String oldEncoding = getEncoding(); + + // config gile option can use appName as prefix + String oldConfigFile = getConfigFileName(); setDefaultOption(APP_NAME, appName); + + String newEncoding = getEncoding(); + String newConfigFile = getConfigFileName(); + if (newEncoding == null) { + + // push back old encoding + setEncoding(oldEncoding); + + } + if (newConfigFile == null) { + + // push back old config file + setConfigFileName(oldConfigFile); + + } + } /** Added: trunk/src/test/java/org/nuiton/config/ChangeApplicationNameTest.java =================================================================== --- trunk/src/test/java/org/nuiton/config/ChangeApplicationNameTest.java (rev 0) +++ trunk/src/test/java/org/nuiton/config/ChangeApplicationNameTest.java 2014-07-30 13:16:00 UTC (rev 2614) @@ -0,0 +1,101 @@ +package org.nuiton.config; + +import org.junit.Assert; +import org.junit.Test; + +/** + * Created on 7/30/14. + * + * Check fix of https://forge.nuiton.org/issues/3292 + * + * @author Tony Chemit - chemit@codelutin.com + * @since 3.0 + */ +public class ChangeApplicationNameTest { + + enum WaoApplicationConfigOption implements ConfigOptionDef { + INSTANCE_URL("wao.instanceUrl", + "URL à laquelle on peut accéder à l'instance de WAO", + "http://localhost:8080/wao", String.class); + + protected final String key; + + protected final String description; + + protected final Class<?> type; + + protected String defaultValue; + + private WaoApplicationConfigOption(String key, String description, + String defaultValue, Class<?> type) { + this.key = key; + this.description = description; + this.defaultValue = defaultValue; + this.type = type; + } + + @Override + public String getKey() { + return key; + } + + @Override + public Class<?> getType() { + return type; + } + + @Override + public String getDescription() { + return description; + } + + @Override + public String getDefaultValue() { + return defaultValue; + } + + @Override + public boolean isTransient() { + return false; + } + + @Override + public boolean isFinal() { + return false; + } + + @Override + public void setDefaultValue(String defaultValue) { + this.defaultValue = defaultValue; + } + + @Override + public void setTransient(boolean isTransient) { + // Nothing to do + } + + @Override + public void setFinal(boolean isFinal) { + // Nothing to do + } + + } + + @Test + public void changeApplicationName() throws ArgumentsParserException { + + ApplicationConfig applicationConfig = new ApplicationConfig(); + + // to allow using wao.config.path environment variable + applicationConfig.setAppName("wao"); + + applicationConfig.loadDefaultOptions(WaoApplicationConfigOption.values()); + applicationConfig.setConfigFileName("wao.properties"); + + applicationConfig.parse(); + + // This option is overidde by the config file + String option = applicationConfig.getOption(String.class, WaoApplicationConfigOption.INSTANCE_URL.key); + Assert.assertEquals("http://localhost:9090/wao", option); + } +} Property changes on: trunk/src/test/java/org/nuiton/config/ChangeApplicationNameTest.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision Added: svn:eol-style + native Added: trunk/src/test/resources/wao.properties =================================================================== --- trunk/src/test/resources/wao.properties (rev 0) +++ trunk/src/test/resources/wao.properties 2014-07-30 13:16:00 UTC (rev 2614) @@ -0,0 +1 @@ +wao.instanceUrl=http://localhost:9090/wao \ No newline at end of file Property changes on: trunk/src/test/resources/wao.properties ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision Added: svn:eol-style + native