package org.stagemonitor.os; import org.stagemonitor.core.StagemonitorConfigurationSourceInitializer; import org.stagemonitor.configuration.source.ConfigurationSource; import org.stagemonitor.configuration.source.SimpleSource; public class OsConfigurationSourceInitializer extends StagemonitorConfigurationSourceInitializer { private static ConfigurationSource argsConfigurationSource; @Override public void modifyConfigurationSources(ModifyArguments modifyArguments) { if (argsConfigurationSource != null) { modifyArguments.addConfigurationSourceAsFirst(argsConfigurationSource); } } static void addConfigurationSource(String[] args) { final SimpleSource source = getConfiguration(args); argsConfigurationSource = source; } public static SimpleSource getConfiguration(String[] args) { final SimpleSource source = new SimpleSource("Process Arguments"); for (String arg : args) { if (!arg.matches("(.+)=(.+)")) { throw new IllegalArgumentException("Illegal argument '" + arg + "'. Arguments must be in form '<config-key>=<config-value>'"); } final String[] split = arg.split("="); source.add(split[0], split[1]); } return source; } }