[New] Added a configuration option for the app locale in runtime config

This commit is contained in:
Robert von Burg 2014-08-07 16:26:25 +02:00
parent 9470b43e0d
commit 941665753c
2 changed files with 19 additions and 1 deletions

View File

@ -19,6 +19,7 @@ import java.lang.reflect.Constructor;
import java.lang.reflect.InvocationTargetException;
import java.text.MessageFormat;
import java.util.HashMap;
import java.util.Locale;
import java.util.Map;
import java.util.Set;
@ -30,6 +31,7 @@ import li.strolch.agent.api.StrolchComponent;
import li.strolch.agent.api.StrolchRealm;
import li.strolch.exception.StrolchException;
import li.strolch.runtime.configuration.ComponentConfiguration;
import li.strolch.runtime.configuration.RuntimeConfiguration;
import li.strolch.runtime.configuration.StrolchConfiguration;
import li.strolch.runtime.configuration.StrolchConfigurationException;
@ -244,7 +246,14 @@ public class ComponentContainerImpl implements ComponentContainer {
public void setup(StrolchConfiguration strolchConfiguration) {
// first set up the container itself
// set the application locale
RuntimeConfiguration runtimeConfiguration = strolchConfiguration.getRuntimeConfiguration();
Locale locale = runtimeConfiguration.getLocale();
Locale.setDefault(locale);
String localeMsg = "Application {0} is using locale {1}";
logger.info(MessageFormat.format(localeMsg, runtimeConfiguration.getApplicationName(), Locale.getDefault()));
// set up the container itself
this.strolchConfiguration = strolchConfiguration;
Map<Class<?>, StrolchComponent> componentMap = new HashMap<>();
Map<String, ComponentController> controllerMap = new HashMap<>();

View File

@ -17,15 +17,18 @@ package li.strolch.runtime.configuration;
import java.io.File;
import java.text.MessageFormat;
import java.util.Locale;
import java.util.Map;
public class RuntimeConfiguration extends AbstractionConfiguration {
public static final String PROP_LOCALE = "locale";
public static final String RUNTIME = "Runtime"; //$NON-NLS-1$
public static final String PATH_CONFIG = "config"; //$NON-NLS-1$
public static final String PATH_DATA = "data"; //$NON-NLS-1$
private final String applicationName;
private Locale locale;
private final File rootPath;
private final File configPath;
private final File dataPath;
@ -62,6 +65,8 @@ public class RuntimeConfiguration extends AbstractionConfiguration {
this.rootPath = rootPathF;
this.configPath = configPathF;
this.dataPath = dataPathF;
this.locale = new Locale(getString(PROP_LOCALE, Locale.getDefault().toString()));
}
public String getApplicationName() {
@ -80,6 +85,10 @@ public class RuntimeConfiguration extends AbstractionConfiguration {
return this.dataPath;
}
public Locale getLocale() {
return this.locale;
}
/**
* Returns the file in the config directory of the root of the application
*