private static boolean setApplicationConfigurationValues() {

    try {
      flushTimeAgg_ = applicationConfiguration_.safeGetInteger("flush_time_agg", 10000);
      debugModeEnabled_ = applicationConfiguration_.safeGetBoolean("debug_mode_enabled", false);

      // graphite output configuration
      graphiteOutputModules_.addAll(readGraphiteOutputModules());

      // opentsdb telnet output configuration
      openTsdbTelnetOutputModules_.addAll(readOpenTsdbTelnetOutputModules());

      // opentsdb http output configuration
      openTsdbHttpOutputModules_.addAll(readOpenTsdbHttpOutputModules());

      // opentsdb configuration
      influxdbV1HttpOutputModules_.addAll(readInfluxdbV1HttpOutputModules());

      // listener config
      statsdTcpListenerEnabled_ =
          applicationConfiguration_.safeGetBoolean("statsd_tcp_listener_enabled", true);
      statsdTcpListenerPort_ =
          applicationConfiguration_.safeGetInt("statsd_tcp_listener_port", 8125);
      statsdUdpListenerEnabled_ =
          applicationConfiguration_.safeGetBoolean("statsd_udp_listener_enabled", true);
      statsdUdpListenerPort_ =
          applicationConfiguration_.safeGetInt("statsd_udp_listener_port", 8125);
      graphiteAggregatorTcpListenerEnabled_ =
          applicationConfiguration_.safeGetBoolean(
              "graphite_aggregator_tcp_listener_enabled", true);
      graphiteAggregatorTcpListenerPort_ =
          applicationConfiguration_.safeGetInt("graphite_aggregator_tcp_listener_port", 22003);
      graphiteAggregatorUdpListenerEnabled_ =
          applicationConfiguration_.safeGetBoolean(
              "graphite_aggregator_udp_listener_enabled", true);
      graphiteAggregatorUdpListenerPort_ =
          applicationConfiguration_.safeGetInt("graphite_aggregator_udp_listener_port", 22003);
      graphitePassthroughTcpListenerEnabled_ =
          applicationConfiguration_.safeGetBoolean(
              "graphite_passthrough_tcp_listener_enabled", true);
      graphitePassthroughTcpListenerPort_ =
          applicationConfiguration_.safeGetInt("graphite_passthrough_tcp_listener_port", 2003);
      graphitePassthroughUdpListenerEnabled_ =
          applicationConfiguration_.safeGetBoolean(
              "graphite_passthrough_udp_listener_enabled", true);
      graphitePassthroughUdpListenerPort_ =
          applicationConfiguration_.safeGetInt("graphite_passthrough_udp_listener_port", 2003);
      openTsdbTcpTelnetListenerEnabled_ =
          applicationConfiguration_.safeGetBoolean("opentsdb_tcp_telnet_listener_enabled", true);
      openTsdbTcpTelnetListenerPort_ =
          applicationConfiguration_.safeGetInt("opentsdb_tcp_telnet_listener_port", 4242);
      openTsdbHttpListenerEnabled_ =
          applicationConfiguration_.safeGetBoolean("opentsdb_http_listener_enabled", true);
      openTsdbHttpListenerPort_ =
          applicationConfiguration_.safeGetInt("opentsdb_http_listener_port", 4243);
      influxdbHttpListenerEnabled_ =
          applicationConfiguration_.safeGetBoolean("influxdb_http_listener_enabled", true);
      influxdbHttpListenerPort_ =
          applicationConfiguration_.safeGetInt("influxdb_http_listener_port", 8086);

      // metric naming config
      globalMetricNamePrefixEnabled_ =
          applicationConfiguration_.safeGetBoolean("global_metric_name_prefix_enabled", false);
      globalMetricNamePrefixValue_ =
          applicationConfiguration_.safeGetString("global_metric_name_prefix_value", "statsagg");
      globalAggregatedMetricsSeparatorString_ =
          applicationConfiguration_.safeGetString(
              "global_aggregated_metrics_separator_string", ".");
      statsdMetricNamePrefixEnabled_ =
          applicationConfiguration_.safeGetBoolean("statsd_metric_name_prefix_enabled", false);
      statsdMetricNamePrefixValue_ =
          applicationConfiguration_.safeGetString("statsd_metric_name_prefix_value", "stats");
      statsdMetricNameSuffixEnabled_ =
          applicationConfiguration_.safeGetBoolean("statsd_metric_name_suffix_enabled", false);
      statsdMetricNameSuffixValue_ =
          applicationConfiguration_.safeGetString("statsd_metric_name_suffix_value", "");
      statsdCounterMetricNamePrefixEnabled_ =
          applicationConfiguration_.safeGetBoolean(
              "statsd_counter_metric_name_prefix_enabled", false);
      statsdCounterMetricNamePrefixValue_ =
          applicationConfiguration_.safeGetString(
              "statsd_counter_metric_name_prefix_value", "counters");
      statsdGaugeMetricNamePrefixEnabled_ =
          applicationConfiguration_.safeGetBoolean(
              "statsd_gauge_metric_name_prefix_enabled", false);
      statsdGaugeMetricNamePrefixValue_ =
          applicationConfiguration_.safeGetString(
              "statsd_gauge_metric_name_prefix_value", "gauges");
      statsdTimerMetricNamePrefixEnabled_ =
          applicationConfiguration_.safeGetBoolean(
              "statsd_timer_metric_name_prefix_enabled", false);
      statsdTimerMetricNamePrefixValue_ =
          applicationConfiguration_.safeGetString(
              "statsd_timer_metric_name_prefix_value", "timers");
      statsdSetMetricNamePrefixEnabled_ =
          applicationConfiguration_.safeGetBoolean("statsd_set_metric_name_prefix_enabled", false);
      statsdSetMetricNamePrefixValue_ =
          applicationConfiguration_.safeGetString("statsd_set_metric_name_prefix_value", "sets");
      graphiteAggregatorMetricNamePrefixEnabled_ =
          applicationConfiguration_.safeGetBoolean(
              "graphite_aggregator_metric_name_prefix_enabled", false);
      graphiteAggregatorMetricNamePrefixValue_ =
          applicationConfiguration_.safeGetString(
              "graphite_aggregator_metric_name_prefix_value", "graphite-agg");
      graphitePassthroughMetricNamePrefixEnabled_ =
          applicationConfiguration_.safeGetBoolean(
              "graphite_passthrough_metric_name_prefix_enabled", false);
      graphitePassthroughMetricNamePrefixValue_ =
          applicationConfiguration_.safeGetString(
              "graphite_passthrough_metric_name_prefix_value", "graphite");
      openTsdbMetricNamePrefixEnabled_ =
          applicationConfiguration_.safeGetBoolean("opentsdb_metric_name_prefix_enabled", false);
      openTsdbMetricNamePrefixValue_ =
          applicationConfiguration_.safeGetString("opentsdb_metric_name_prefix_value", "opentsdb");
      influxdbMetricNamePrefixEnabled_ =
          applicationConfiguration_.safeGetBoolean("influxdb_metric_name_prefix_enabled", false);
      influxdbMetricNamePrefixValue_ =
          applicationConfiguration_.safeGetString("influxdb_metric_name_prefix_value", "influxdb");
      influxdbIncludeDatabaseNameInNonNativeOutput_ =
          applicationConfiguration_.safeGetBoolean(
              "influxdb_include_database_name_in_non_native_output", true);

      // statsd specific variables
      statsdCounterSendZeroOnInactive_ =
          applicationConfiguration_.safeGetBoolean("statsd_counter_send_0_on_inactive", true);
      statsdTimerSendZeroOnInactive_ =
          applicationConfiguration_.safeGetBoolean("statsd_timer_send_0_on_inactive", true);
      statsdGaugeSendPreviousValue_ =
          applicationConfiguration_.safeGetBoolean("statsd_gauge_send_previous_value", true);
      statsdSetSendZeroOnInactive_ =
          applicationConfiguration_.safeGetBoolean("statsd_set_send_0_on_inactive", true);
      statsdNthPercentiles_ =
          new StatsdNthPercentiles(
              applicationConfiguration_.safeGetString("statsd_nth_percentiles", "90"));
      statsdHistogramConfigurations_ =
          readStatsdHistogramConfiguration(
              applicationConfiguration_.safeGetString("statsd_histograms", null));
      statsdUseLegacyNameSpacing_ =
          applicationConfiguration_.safeGetBoolean("statsd_use_legacy_name_spacing", false);
      statsdPersistGauges_ =
          applicationConfiguration_.safeGetBoolean("statsd_persist_gauges", true);

      // influxdb specific variables
      influxdbDefaultDatabaseName_ =
          applicationConfiguration_.safeGetString("influxdb_default_database_name", "statsagg");
      influxdbDefaultDatabaseUsername_ =
          applicationConfiguration_.safeGetString("influxdb_default_database_username", "statsagg");
      influxdbDefaultDatabasePassword_ =
          applicationConfiguration_.safeGetString("influxdb_default_database_password", "statsagg");
      if ((influxdbDefaultDatabaseUsername_ != null) && (influxdbDefaultDatabasePassword_ != null))
        influxdbDefaultDatabaseHttpBasicAuthValue_ =
            "Basic "
                + Base64.encodeBase64String(
                    (influxdbDefaultDatabaseUsername_ + ":" + influxdbDefaultDatabasePassword_)
                        .getBytes("UTF-8"));
      else influxdbDefaultDatabaseHttpBasicAuthValue_ = null;

      // alerting variables
      alertRoutineEnabled_ =
          applicationConfiguration_.safeGetBoolean("alert_routine_enabled", true);
      alertRoutineInterval_ =
          applicationConfiguration_.safeGetInteger("alert_routine_interval", 5000);
      alertSendEmailEnabled_ =
          applicationConfiguration_.safeGetBoolean("alert_send_email_enabled", false);
      alertMaxMetricsInEmail_ =
          applicationConfiguration_.safeGetInteger("alert_max_metrics_in_email", 100);
      alertOutputStatus_ = applicationConfiguration_.safeGetBoolean("alert_output_status", true);
      alertOutputStatusMetricPrefix_ =
          applicationConfiguration_.safeGetString(
              "alert_output_status_metric_prefix", "StatsAgg-Alerts");
      alertStatsAggLocation_ =
          applicationConfiguration_.safeGetString("alert_statsagg_location", "");
      alertWaitTimeAfterRestart_ =
          applicationConfiguration_.safeGetInteger("alert_wait_time_after_restart", 120000);

      alertSmtpHost_ = applicationConfiguration_.safeGetString("alert_smtp_host", "127.0.0.1");
      alertSmtpPort_ = applicationConfiguration_.safeGetInteger("alert_smtp_port", 25);
      alertSmtpConnectionTimeout_ =
          applicationConfiguration_.safeGetInteger("alert_smtp_connection_timeout", 15000);
      alertSmtpUsername_ = applicationConfiguration_.safeGetString("alert_smtp_username", "");
      alertSmtpPassword_ = applicationConfiguration_.safeGetString("alert_smtp_password", "");
      alertSmtpUseSslTls_ =
          applicationConfiguration_.safeGetBoolean("alert_smtp_use_ssl_tls", false);
      alertSmtpUseStartTls_ =
          applicationConfiguration_.safeGetBoolean("alert_smtp_use_starttls", false);
      alertSmtpFromAddress_ =
          applicationConfiguration_.safeGetString("alert_smtp_from_address", "*****@*****.**");
      alertSmtpFromName_ =
          applicationConfiguration_.safeGetString("alert_smtp_from_name", "StatsAgg");

      // website custominzation variables
      customActionUrls_.addAll(readCustomActionUrls());

      // advanced
      outputModuleMaxConnectTime_ =
          applicationConfiguration_.safeGetInteger("output_module_max_connect_time", 3000);
      outputModuleMaxReadTime_ =
          applicationConfiguration_.safeGetInteger("output_module_max_read_time", 120000);
      outputModuleMaxConcurrentThreads_ =
          applicationConfiguration_.safeGetInteger("output_module_max_concurrent_threads", 25);
      outputModuleMaxConcurrentThreadsForSingleModule_ =
          applicationConfiguration_.safeGetInteger(
              "output_module_max_concurrent_threads_for_single_module", 10);

      return true;
    } catch (Exception e) {
      logger.error(e.toString() + System.lineSeparator() + StackTrace.getStringFromStackTrace(e));
      return false;
    }
  }